tweakit 0.6.0 → 0.7.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.
- package/AGENTS.md +5 -5
- package/README.md +3 -3
- package/dist/tweaks/auto.js +1 -1
- package/dist/tweaks/auto.js.map +1 -1
- package/dist/tweaks/bezier-S2BOXQBM.js +2 -0
- package/dist/tweaks/bezier-S2BOXQBM.js.map +6 -0
- package/dist/tweaks/chunk-3MZAAMC2.js +2 -0
- package/dist/tweaks/chunk-3MZAAMC2.js.map +6 -0
- package/dist/tweaks/chunk-ETB35KFV.js +2 -0
- package/dist/tweaks/chunk-ETB35KFV.js.map +6 -0
- package/dist/tweaks/chunk-YB5GKWZI.js +2 -0
- package/dist/tweaks/chunk-YB5GKWZI.js.map +6 -0
- package/dist/tweaks/clip-A3VI53BK.js +2 -0
- package/dist/tweaks/clip-A3VI53BK.js.map +6 -0
- package/dist/tweaks/color-UGYMAF3W.js +2 -0
- package/dist/tweaks/core.js +1 -1
- package/dist/tweaks/core.js.map +3 -3
- package/dist/tweaks/fold-GY47HIQA.js +2 -0
- package/dist/tweaks/fold-GY47HIQA.js.map +6 -0
- package/dist/tweaks/gradient-BTX25WSH.js +2 -0
- package/dist/tweaks/gradient-BTX25WSH.js.map +6 -0
- package/dist/tweaks/{heavy-CLD7UAVI.js → heavy-NPFIGHRM.js} +2 -2
- package/dist/tweaks/image-HTQQ4WX6.js +4 -0
- package/dist/tweaks/image-HTQQ4WX6.js.map +6 -0
- package/dist/tweaks/{image-store-WRKY2NPU.js → image-store-QD5SMZXG.js} +1 -1
- package/dist/tweaks/image-store-QD5SMZXG.js.map +6 -0
- package/dist/tweaks/interval-BHPI4LRN.js +2 -0
- package/dist/tweaks/interval-BHPI4LRN.js.map +6 -0
- package/dist/tweaks/markup-QM53TQJZ.js +2 -0
- package/dist/tweaks/markup-QM53TQJZ.js.map +6 -0
- package/dist/tweaks/monitor-722WIYGW.js +3 -0
- package/dist/tweaks/monitor-722WIYGW.js.map +6 -0
- package/dist/tweaks/motion-HMCZK6HJ.js +2 -0
- package/dist/tweaks/motion-HMCZK6HJ.js.map +6 -0
- package/dist/tweaks/plot-D3NQ6XNN.js +3 -0
- package/dist/tweaks/plot-D3NQ6XNN.js.map +6 -0
- package/dist/tweaks/point-XDXKMDXH.js +2 -0
- package/dist/tweaks/point-XDXKMDXH.js.map +6 -0
- package/dist/tweaks/presets-EUWNSCUW.js +2 -0
- package/dist/tweaks/presets-EUWNSCUW.js.map +6 -0
- package/dist/tweaks/shadow-AM7VSRNS.js +2 -0
- package/dist/tweaks/shadow-AM7VSRNS.js.map +6 -0
- package/dist/tweaks/shadow-root-RYUV3AGS.js +3 -0
- package/dist/tweaks/shadow-root-RYUV3AGS.js.map +6 -0
- package/dist/tweaks/sides-JWIURDA4.js +2 -0
- package/dist/tweaks/sides-JWIURDA4.js.map +6 -0
- package/dist/tweaks/spring-BF5GBTPM.js +2 -0
- package/dist/tweaks/spring-BF5GBTPM.js.map +6 -0
- package/dist/tweaks/tabs-PRVUUZXZ.js +2 -0
- package/dist/tweaks/tabs-PRVUUZXZ.js.map +6 -0
- package/dist/tweaks.css +1 -1
- package/dist/tweaks.js +5 -4
- package/dist/tweaks.js.map +3 -3
- package/dist/types/tweaks/enhance.d.ts +3 -2
- package/dist/types/tweaks/types.d.ts +278 -72
- package/package.json +5 -2
- package/src/tweaks/auto.ts +9 -5
- package/src/tweaks/clip.ts +84 -22
- package/src/tweaks/controls/basic.ts +463 -139
- package/src/tweaks/controls/bezier.ts +152 -47
- package/src/tweaks/controls/color.ts +610 -161
- package/src/tweaks/controls/gradient.ts +256 -77
- package/src/tweaks/controls/image.ts +388 -132
- package/src/tweaks/controls/interval.ts +126 -41
- package/src/tweaks/controls/monitor.ts +142 -36
- package/src/tweaks/controls/motion.ts +231 -56
- package/src/tweaks/controls/plot.ts +321 -101
- package/src/tweaks/controls/point.ts +134 -45
- package/src/tweaks/controls/shadow.ts +103 -30
- package/src/tweaks/controls/sides.ts +150 -40
- package/src/tweaks/controls/spring.ts +220 -60
- package/src/tweaks/controls/tabs.ts +39 -18
- package/src/tweaks/core.ts +1 -1
- package/src/tweaks/easing.ts +45 -20
- package/src/tweaks/enhance.ts +21 -6
- package/src/tweaks/feedback.ts +133 -34
- package/src/tweaks/fold.ts +22 -10
- package/src/tweaks/heavy.ts +461 -137
- package/src/tweaks/icons.ts +12 -5
- package/src/tweaks/image-store.ts +131 -43
- package/src/tweaks/lazy.ts +36 -19
- package/src/tweaks/markup.ts +255 -92
- package/src/tweaks/panel.ts +1262 -438
- package/src/tweaks/presets.ts +85 -0
- package/src/tweaks/schema.ts +213 -51
- package/src/tweaks/shadow-root.ts +178 -0
- package/src/tweaks/shared.ts +802 -190
- package/src/tweaks/standalone.ts +120 -30
- package/src/tweaks/types.ts +644 -143
- package/src/tweaks/undo.ts +104 -0
- package/src/tweaks.css +556 -550
- package/src/wide-gamut.ts +473 -125
- package/dist/tweaks/bezier-JFEZMCLP.js +0 -2
- package/dist/tweaks/bezier-JFEZMCLP.js.map +0 -6
- package/dist/tweaks/chunk-6UO4DHBN.js +0 -2
- package/dist/tweaks/chunk-6UO4DHBN.js.map +0 -6
- package/dist/tweaks/chunk-DIQMLBAS.js +0 -2
- package/dist/tweaks/chunk-DIQMLBAS.js.map +0 -6
- package/dist/tweaks/chunk-XE6OUJBG.js +0 -2
- package/dist/tweaks/chunk-XE6OUJBG.js.map +0 -6
- package/dist/tweaks/clip-WW7JYO4X.js +0 -2
- package/dist/tweaks/clip-WW7JYO4X.js.map +0 -6
- package/dist/tweaks/color-YMMFURP6.js +0 -2
- package/dist/tweaks/fold-U6YRZLCJ.js +0 -2
- package/dist/tweaks/fold-U6YRZLCJ.js.map +0 -6
- package/dist/tweaks/gradient-JER7PW4D.js +0 -2
- package/dist/tweaks/gradient-JER7PW4D.js.map +0 -6
- package/dist/tweaks/image-H6QSLGO3.js +0 -4
- package/dist/tweaks/image-H6QSLGO3.js.map +0 -6
- package/dist/tweaks/image-store-WRKY2NPU.js.map +0 -6
- package/dist/tweaks/interval-TEUHQGZN.js +0 -2
- package/dist/tweaks/interval-TEUHQGZN.js.map +0 -6
- package/dist/tweaks/markup-NIBJD6E2.js +0 -2
- package/dist/tweaks/markup-NIBJD6E2.js.map +0 -6
- package/dist/tweaks/monitor-3BY7YCGX.js +0 -3
- package/dist/tweaks/monitor-3BY7YCGX.js.map +0 -6
- package/dist/tweaks/motion-FQPUBKKM.js +0 -2
- package/dist/tweaks/motion-FQPUBKKM.js.map +0 -6
- package/dist/tweaks/plot-2HBNBZSG.js +0 -3
- package/dist/tweaks/plot-2HBNBZSG.js.map +0 -6
- package/dist/tweaks/point-VV6XV3I6.js +0 -2
- package/dist/tweaks/point-VV6XV3I6.js.map +0 -6
- package/dist/tweaks/shadow-5E4E55I2.js +0 -2
- package/dist/tweaks/shadow-5E4E55I2.js.map +0 -6
- package/dist/tweaks/sides-P3STEVYY.js +0 -2
- package/dist/tweaks/sides-P3STEVYY.js.map +0 -6
- package/dist/tweaks/spring-HUVSXNVN.js +0 -2
- package/dist/tweaks/spring-HUVSXNVN.js.map +0 -6
- package/dist/tweaks/tabs-76FW7LQ7.js +0 -2
- package/dist/tweaks/tabs-76FW7LQ7.js.map +0 -6
- /package/dist/tweaks/{color-YMMFURP6.js.map → color-UGYMAF3W.js.map} +0 -0
- /package/dist/tweaks/{heavy-CLD7UAVI.js.map → heavy-NPFIGHRM.js.map} +0 -0
package/dist/tweaks.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/* tweakit — MIT © Ryan Kiley. Toolbar and control icons from Hugeicons (MIT); see THIRD-PARTY-NOTICES.md in the tweakit package. */
|
|
2
|
-
var Va=Object.defineProperty;var Be=(t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(r){throw n=[r],r}};var Cn=(t,e)=>{for(var n in e)Va(t,n,{get:e[n],enumerable:!0})};var rn={};Cn(rn,{SPRING_DUR:()=>nn,accentColor:()=>Ln,arrowStep:()=>Se,badGradient:()=>Ja,boxFrac:()=>Re,cssVar:()=>io,decimalStep:()=>Pe,dragGesture:()=>ge,dragPane:()=>Ga,escapeReverts:()=>nr,fitCanvas:()=>lo,grabSurface:()=>en,notice:()=>Ve,numField:()=>Rt,sayWhenKeysStop:()=>An,selectAllOnFocus:()=>ao,springCurve:()=>Tn,springFromTime:()=>co,springRun:()=>uo,springSpan:()=>Fs,svgEl:()=>Ot,timeFromSpring:()=>rr,triggerRow:()=>ee,unknownType:()=>Ya});function ge(t,{onDown:e,onMove:n,onEnd:r}={}){let o=null,s=i=>{o===null||i.pointerId!==o||(o=null,r&&r(i))};t.addEventListener("pointerdown",i=>{if(!(i.button!==0||o!==null)){o=i.pointerId;try{t.setPointerCapture(i.pointerId)}catch{}e&&e(i)}}),t.addEventListener("pointermove",i=>{if(i.pointerId===o){if(i.buttons===0)return s(i);n&&n(i)}}),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s),t.addEventListener("lostpointercapture",s)}function qa(){let t=null,e=0,n=0,r=0;return{show(o,s,i,a){t=w("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=o,r=i??o,t.children[1].style.cssText=`left:${o}px;top:${e}px`,sn(t,a),document.body.appendChild(t)},move(o,s){t&&(t.children[0].style.cssText=`left:${Math.min(n,o)}px;top:${e}px;width:${Math.abs(o-n)}px`,t.children[2].style.cssText=`left:${o}px;top:${e}px;transform:translate(-50%,-50%) scaleX(${o>=n?1:-1})`,t.children[3].style.cssText=`left:${r}px;top:${e-16}px`,t.children[3].textContent=s)},hide(){t&&(t.remove(),t=null)}}}function Xa(t,e,n,r,o,s){let i=0,a=0,u=1,f=qa();ge(t,{onDown:l=>{l.preventDefault(),i=l.clientX,a=r(),u=1,t.classList.add("is-dragging");let p=e.getBoundingClientRect();f.show(l.clientX,p.top+p.height/2,p.left+p.width/2,e),f.move(l.clientX,s())},onMove:l=>{let p=l.shiftKey?10:l.altKey?.1:1;p!==u&&(u=p,i=l.clientX,a=r()),o(a+(l.clientX-i)*n*p),f.move(l.clientX,s())},onEnd:()=>{t.classList.remove("is-dragging"),f.hide()}})}function Rt(t,e){let n=Number.isFinite(+t.step)&&+t.step>0?+t.step:1,r=b=>b==null?NaN:+b,o=r(t.min),s=r(t.max);if(Number.isFinite(o)&&Number.isFinite(s)&&s<o){Ve("swap",[t.label??"number",o,s]);let b=o;o=s,s=b}let i=Number.isFinite(o)?o:0,a=ie(n),[u,f]=on(Number.isFinite(o)?o:-1/0,Number.isFinite(s)?s:1/0,n,i),l=b=>{let O=Ke(b,i,n);return t.soft?O:G(O,u,f)},p=l(Number.isFinite(+t.value)?+t.value:0),d=w("div",t.row?"tw-row":"tw-field"),k=w("div","tw-num-wrap"),C=w("span","tw-num-grab",za);C.setAttribute("aria-hidden","true"),C.title="Drag to adjust";let v=w("input","tw-num");v.type="text",v.inputMode="decimal",v.setAttribute("aria-label",t.unit?`${t.label} (${t.unit})`:t.label),v.value=p.toFixed(a),he(v),k.append(C,v),t.unit&&k.append(st("span","tw-num-unit",t.unit)),d.append(st("span",t.row?"tw-row-label":"tw-field-label",t.label),k);let $=(b,O=!0)=>{b=+b,Number.isFinite(b)&&(p=l(b),v.value=p.toFixed(a),O&&e&&e(p))},A=()=>Number(v.value.replace(t.unit||"","").trim()||NaN);return v.addEventListener("change",()=>{let b=A();Number.isFinite(b)&&l(b)!==p?$(b):v.value=p.toFixed(a)}),nr(v,()=>p.toFixed(a)),v.addEventListener("keydown",b=>{if(b.key==="Enter")return v.blur();let O=b.key==="ArrowUp"?1:b.key==="ArrowDown"?-1:0;if(!O)return;b.preventDefault();let I=A();$((Number.isFinite(I)?I:p)+O*n*(b.shiftKey?10:1))}),Xa(C,k,n,()=>p,$,()=>v.value),{el:d,set:b=>$(b,!1),get:()=>p,range:[u,f]}}function Tn(t,e,n,r=64,o=Fs(t,e,n)){let s=Ds(t,e,n),i=[];for(let a=0;a<r;a++)i.push(s(a/(r-1)*o));return i}var Ka,Ot,Ps,io,Ln,ao,nr,Ga,en,Re,Se,An,lo,ee,za,Pe,tn,nn,Ua,Rs,co,rr,Ns,Fs,Ds,uo,Wa,Ya,$s,Ja,Za,Ve,Nt=Be(()=>{xt();Ka="http://www.w3.org/2000/svg",Ot=(t,e)=>{let n=document.createElementNS(Ka,t);return e&&n.setAttribute("class",e),n},Ps=(t,e)=>{if(!/light-dark\(/i.test(t))return t;let n=e.colorScheme||"",r=/\bdark\b/.test(n)&&(!/\blight\b/.test(n)||matchMedia("(prefers-color-scheme: dark)").matches);for(let o;(o=t.search(/light-dark\(/i))!==-1;){let s=0,i=-1,a=o+11;for(;a<t.length;a++){let u=t[a];if(u==="(")s++;else if(u===")"){if(!s)break;s--}else u===","&&!s&&i<0&&(i=a)}if(i<0||a>=t.length)return"";t=t.slice(0,o)+(r?t.slice(i+1,a):t.slice(o+11,i)).trim()+t.slice(a+1)}return t},io=(t,e)=>{let n=getComputedStyle(t);return Ps(n.getPropertyValue(e).trim(),n)},Ln=t=>{let e=getComputedStyle(t),n=r=>Ps(e.getPropertyValue(r).trim(),e);return n("--tw-accent")||n("--tw-text-primary")||"#fff"},ao=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())})},nr=(t,e)=>t.addEventListener("keydown",n=>{n.key!=="Escape"||t.value===e()||(n.preventDefault(),n.stopPropagation(),t.value=e())}),Ga=(t,e,n)=>t.addEventListener("pointerdown",r=>{if(r.target!==t||r.button!==0||!e.open)return;r.preventDefault();let o=r.pointerId,s=r.clientX,i=r.clientY,a=parseFloat(t.style.left),u=parseFloat(t.style.top),f=e.moved,l=!1;try{t.setPointerCapture(o)}catch{}let p=v=>{if(v.pointerId===o){if(!l){if(Math.hypot(v.clientX-s,v.clientY-i)<4)return;l=e.moved=!0,t.classList.add("is-moving")}t.style.left=a+v.clientX-s+"px",t.style.top=u+v.clientY-i+"px",n()}},d=v=>{v.pointerId===o&&C()},k=v=>{if(!(v.key!=="Escape"||!l)){v.preventDefault(),v.stopPropagation(),t.style.left=a+"px",t.style.top=u+"px",e.moved=f,n(),C();try{t.releasePointerCapture(o)}catch{}}},C=()=>{t.removeEventListener("pointermove",p),t.removeEventListener("pointerup",d),t.removeEventListener("pointercancel",d),t.removeEventListener("lostpointercapture",d),document.removeEventListener("keydown",k,!0),t.classList.remove("is-moving")};t.addEventListener("pointermove",p),t.addEventListener("pointerup",d),t.addEventListener("pointercancel",d),t.addEventListener("lostpointercapture",d),document.addEventListener("keydown",k,!0)});en=(t,e)=>ge(t,{onDown:n=>{t.classList.add("is-grabbing"),e(n)},onMove:e,onEnd:()=>t.classList.remove("is-grabbing")}),Re=(t,e)=>{let n=e.getBoundingClientRect();return[G((t.clientX-n.left)/n.width,0,1),G((t.clientY-n.top)/n.height,0,1)]},Se=t=>[t.key==="ArrowRight"?1:t.key==="ArrowLeft"?-1:0,t.key==="ArrowUp"?1:t.key==="ArrowDown"?-1:0],An=t=>{let e=0;return()=>{clearTimeout(e),e=setTimeout(()=>{t.isConnected&&ae(t.getAttribute("aria-description")||"")},250)}},lo=(t,e,n=1/0)=>{let r=t.getBoundingClientRect(),o=Math.min(window.devicePixelRatio||1,n);return t.width=r.width*o,t.height=r.height*o,e.setTransform(o,0,0,o,0,0),[r.width,r.height]},ee=(t,e)=>{let n=w("div",t),r=wt("tw-trigger");r.setAttribute("aria-expanded","false");let o=w("span","tw-trigger-right");return r.append(st("span","tw-trigger-label",e),o),n.append(r),{root:n,trigger:r,right:o}},za=$t('<path d="M6 4v8M10 4v8"/>',"",2,16);Pe=t=>{let e=Number(Math.abs(+t).toPrecision(12));if(!e||!Number.isFinite(e))return 1/0;let n=ie(e),r=Math.floor(Math.log10(e));if(n)return+`1e${r+n+1>8?r-3:-n}`;let o=0;for(;o<15&&e%10**(o+1)===0;)o++;return 10**o};pt("number",(t,e)=>Rt({...t,step:t.step??Math.min(1,Pe(t.value),Pe(t.min)),row:!0},e));tn=2*Math.PI/1.2,nn=[.01,10],Ua=t=>t<0?1/Math.max(1+t,.05):Math.max(1-t,.05),Rs=t=>{if(!(t>1))return 1;let e=Math.sqrt(t*t-1),n=t-e,r=t+e,o=2*e*Math.exp(-tn)*(1+tn),s=tn;for(let i=1;i<12;i++)s-=(r*Math.exp(-n*s)-n*Math.exp(-r*s)-o)/(Math.exp(-r*s)-Math.exp(-n*s));return s/tn},co=(t,e)=>{let n=Ua(e),r=tn/t*Rs(n),o=r*r;return{stiffness:o,damping:2*n*Math.sqrt(o),mass:1}},rr=(t,e,n=1)=>{let r=e/(2*Math.sqrt(t*n));return{visualDuration:tn*Rs(r)/Math.sqrt(t/n),bounce:r>1?1/r-1:1-r}},Ns=(t,e)=>e>1?t*(e-Math.sqrt(e*e-1)):e*t,Fs=(t,e,n)=>Math.min(2.2,9/Math.max(Ns(Math.sqrt(t/n),e/(2*Math.sqrt(t*n))),.5)),Ds=(t,e,n)=>{let r=Math.sqrt(t/n),o=e/(2*Math.sqrt(t*n));if(o<1-1e-4){let u=r*Math.sqrt(1-o*o);return f=>1-Math.exp(-o*r*f)*(Math.cos(u*f)+o*r/u*Math.sin(u*f))}if(o<=1+1e-4)return u=>1-Math.exp(-r*u)*(1+r*u);let s=Math.sqrt(o*o-1),i=r*(o+s),a=r*(o-s);return u=>1-(i*Math.exp(-a*u)-a*Math.exp(-i*u))/(i-a)};uo=(t,e,n)=>{let r=Math.sqrt(t/n),o=e/(2*Math.sqrt(t*n)),s=Ds(t,e,n),i=Math.min(7/Math.max(Ns(r,o),.001),10),a=o<1?r*Math.sqrt(1-o*o):0,u=Math.min(Math.max(48,Math.ceil(a?24*i*a/(2*Math.PI):i*40)),800),f=Array.from({length:u},(p,d)=>d/(u-1)*i);if(a)for(let p=Math.PI/a;p<i;p+=Math.PI/a)f.push(p);f.sort((p,d)=>p-d);let l=f.filter((p,d)=>d===0||p-f[d-1]>1e-6).map((p,d,k)=>`${d===k.length-1?1:+s(p).toFixed(3)} ${+(p/i*100).toFixed(2)}%`);return{duration:Math.round(i*1e3),easing:`linear(${l.join(", ")})`}},Wa=(t,e)=>{let n=t.toLowerCase();return e.find(r=>{let o=r.toLowerCase(),s=0;for(;s<n.length&&n[s]===o[s];)s++;return[[1,1],[0,1],[1,0]].some(([i,a])=>n.slice(s+i)===o.slice(s+a))})},Ya=(t,e,n,r)=>{let o=[...new Set(n)].filter(i=>i!=="folder"&&i!=="colorpicker").sort(),s=Wa(e,o);console.warn(`[tweaks] ${t}: "${e}" isn't a control type${s?` \u2014 did you mean "${s}"?`:"."} It ${r}. Types: ${o.join(", ")}`)},$s=new Set,Ja=(t,e,n,r)=>{let o=Array.isArray(n)?r<n.length?`skipped ${n.length-r} of ${n.length} stops without a CSS color and a numeric pos`:"the gradient has no stops":`expected { stops: [{ color, pos }] }, got ${e===null?"null":typeof e=="object"?"an object without a stops array":typeof e}`;$s.has(t+o)||($s.add(t+o),console.warn(`[tweaks] ${t}(): ${o}`))},Za={clamp:(t,e,n,r,o)=>`set("${t}", ${JSON.stringify(e)}) clamped to ${n>-1/0?n:"\u2212\u221E"}\u2013${r<1/0?r:"\u221E"}; widen min/max${o==="slider"||o==="number"?", or set soft: true to allow it":""}`,sharedKey:t=>`persist: another live panel already saves under "${t}", so each overwrites the other's values; give one its own persist key`,pointValue:(t,e)=>`"${t}": a point value that isn't a number starts at 0 (${e})`,swap:(t,e,n)=>`"${t}": min ${e} is above max ${n}, so they were swapped`,theme:t=>`theme: "${t}" isn't a --tw-* token ("--tw-accent", say) \u2014 skipped`,ambiguousPath:(t,e)=>`set("${t}") is ambiguous \u2014 ${e} controls read as that path (a key holding "." beside a folder); rename one`,noPath:t=>`set("${t}") \u2014 no control at that path`,noValue:(t,e)=>`set("${t}") ignored \u2014 a ${e} holds no value to set`,ambiguousKey:(t,e,n)=>`set("${t}") is ambiguous \u2014 ${e} controls share that key; use a dotted path (e.g. "${n}")`,springDur:(t,e,n)=>`"${t}": a spring visualDuration of ${e} s is past the editor's 0.01\u201310 s, so it uses ${n} s`,springKept:(t,e,n,r)=>`"${t}": a spring of stiffness ${e}, damping ${n}, mass ${r} is past what the editor draws (0.01\u201310 s, bounce \xB195%); the value keeps it as written, the editor shows the nearest`,noControl:(t,e)=>e?`set("${t}") ignored \u2014 it's a folder/tabs group; set its children instead`:`set("${t}") ignored \u2014 no control has that key`},Ve=(t,e)=>{let n=Za[t];n&&console.warn(`[tweaks] ${n(...e)}`)};_s(Ve)});function or(t){if(typeof t!="string")return null;let e=t.trim().toLowerCase();if(On[e])return On[e];let n=/^cubic-bezier\(([^()]*)\)$/.exec(e);if(!n)return null;let r=n[1].split(",").map(o=>o.trim()?Number(o):NaN);return r.length!==4||!r.every(Number.isFinite)?null:[fo(r[0]),r[1],fo(r[2]),r[3]]}function go(t){let e=[];for(let n=0;n<=mo;n++){let r=n/mo,o=1-r,s=3*o*o*r,i=3*o*r*r,a=r*r*r;e.push([s*t[0]+i*t[2]+a,fo(s*t[1]+i*t[3]+a)])}return e}function Is(t,e){let n=t&&typeof t=="object"?t.stops:null,r=Array.isArray(n)?n.filter(o=>o&&typeof o.color=="string"&&Qa.test(o.color.trim())&&Number.isFinite(o.pos)):[];return(!r.length||r.length<n.length)&&Promise.resolve().then(()=>(Nt(),rn)).then(o=>o.badGradient(e,t,n,r.length),()=>{}),r.sort((o,s)=>o.pos-s.pos)}function js(t){let e=Is(t,"gradientStops");return e.length?Bs(t,e):"transparent, transparent"}function Bs(t,e){let n=a=>`${a.color} ${po(a.pos)}%`;if(e.length<2)return`${e[0].color}, ${e[0].color}`;let r=or(t.easing);if(!r)return e.map(n).join(", ");let o=go(r),s=Hs(t),i=[n(e[0])];for(let a=1;a<e.length;a++){let u=e[a-1],f=e[a],l=f.pos-u.pos;if(l>1e-6)for(let p=1;p<mo;p++){let[d,k]=o[p];i.push(`color-mix(in ${s}, ${u.color}, ${f.color} ${po(k)}%) ${po(u.pos+l*d)}%`)}i.push(n(f))}return i.join(", ")}function sr(t,e="to right"){let n=Is(t,"gradientCss");return n.length?`linear-gradient(in ${Hs(t)} ${typeof e=="number"?`${e}deg`:e}, ${Bs(t,n)})`:"none"}var On,fo,mo,po,Qa,tl,Hs,$n=Be(()=>{On=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]}),fo=t=>Math.min(1,Math.max(0,t)),mo=15;po=t=>+(t*100).toFixed(2),Qa=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?!(?:url|var)\()[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i,tl=/^(?:(?:hsl|hwb|lch|oklch)(?: (?:shorter|longer|increasing|decreasing) hue)?|srgb(?:-linear)?|oklab|lab|display-p3|rec2020|a98-rgb|prophoto-rgb|xyz(?:-d50|-d65)?)$/i,Hs=t=>typeof t.interpolation=="string"&&tl.test(t.interpolation)?t.interpolation:"oklch"});function qt(t,e,n,r={}){let o=!1,s=null,i,a=!1,u=null,f=()=>e.focus({focusVisible:!a});n.classList.add("tw-portal"),n.inert=!0,vo(n);let l=0,p=0,d={open:!1,moved:!1},k=!1,C=()=>{n.style.left=G(parseFloat(n.style.left),8,window.innerWidth-n.offsetWidth-8)+"px",n.style.top=G(parseFloat(n.style.top),8,window.innerHeight-n.offsetHeight-8)+"px"},v=()=>{d.moved?C():xo(e,n,{width:r.width??"match",fallbackH:r.fallbackH,align:r.align});let E=e.getBoundingClientRect();l=parseFloat(n.style.left)-E.left,p=parseFloat(n.style.top)-E.top},$=()=>{if(o){if(!t.isConnected)return K();v(),r.onReflow&&r.onReflow()}},A=()=>{if(!o)return;if(!t.isConnected)return K();let E=e.getBoundingClientRect(),m=e.closest(".tw-panel")?.getBoundingClientRect();if(!(E.width||E.height)||E.bottom<0||E.top>window.innerHeight||E.right<0||E.left>window.innerWidth||m?.height&&(E.bottom<m.top||E.top>m.bottom))return K();n.style.left=E.left+l+"px",n.style.top=E.top+p+"px"},b=E=>{!t.contains(E.target)&&!n.contains(E.target)&&K()},O=E=>{E.key==="Escape"&&o&&!E.defaultPrevented&&(E.preventDefault(),E.stopPropagation(),K(),f())},I=E=>{if(!o)return;let m=E.relatedTarget;!m&&!document.hasFocus()||(m?t.contains(m)||n.contains(m):an)||(K(),m&&!e.closest(".tw-panel")?.contains(m)&&setTimeout(()=>{!o&&document.activeElement===m&&e.focus()},0))};t.addEventListener("focusout",I),n.addEventListener("focusout",I);let z=()=>n.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'),h=()=>sn(n,t),T=E=>{E.every(m=>m.target===n)||h()},j=()=>{Ne&&Ne!==K&&Ne(),Ne=K,yo=e,o=d.open=!0,t.classList.add("is-open"),e.setAttribute("aria-expanded","true"),clearTimeout(i);let E=n.parentNode===document.body;d.moved=!1,a=an,n.inert=!1,E||document.body.appendChild(n),!k&&r.movable!==!1&&(k=!0,Promise.resolve().then(()=>(Nt(),rn)).then(m=>m.dragPane(n,d,v),()=>{})),sn(n,t),window.addEventListener("tw-retheme",h),typeof MutationObserver=="function"&&(s=new MutationObserver(T),s.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),E?v():(n.style.transition="none",v(),n.offsetWidth,n.style.transition=""),typeof ResizeObserver=="function"&&(u=new ResizeObserver(()=>{o&&v()}),u.observe(n)),requestAnimationFrame(()=>{if(o&&(n.classList.add("is-open"),r.onOpen&&r.onOpen(),v(),!n.contains(document.activeElement))){let m=r.initialFocus&&r.initialFocus()||z();m&&m.focus({focusVisible:!an})}}),requestAnimationFrame(function m(){if(o){if(!t.isConnected)return K();requestAnimationFrame(m)}}),setTimeout(()=>{o&&document.addEventListener("pointerdown",b,!0)},0),document.addEventListener("keydown",O),window.addEventListener("scroll",A,!0),window.addEventListener("resize",$)},K=()=>{Ne===K&&(Ne=null,yo=null),n.contains(document.activeElement)&&f(),o=d.open=!1,t.classList.remove("is-open"),n.classList.remove("is-open"),n.inert=!0,e.setAttribute("aria-expanded","false"),document.removeEventListener("pointerdown",b,!0),document.removeEventListener("keydown",O),window.removeEventListener("scroll",A,!0),window.removeEventListener("resize",$),window.removeEventListener("tw-retheme",h),s&&(s.disconnect(),s=null),u?.disconnect(),u=null,i=setTimeout(()=>{o||n.remove()},200)};return e.addEventListener("click",()=>{e.disabled||(o?K():j())}),{open:j,close:K,isOpen:()=>o,reflow:$}}function De(t,e,n,r,o){let s=o!==void 0,i=w("div","tw-seg");i.setAttribute("role",s?"switch":"radiogroup"),r&&i.setAttribute("aria-label",r),s&&(i.tabIndex=0);let a=w("div","tw-seg-pill");i.append(a);let u=t.map(d=>{let k=Fn("tw-seg-btn",d,C=>p(C));return s&&(k.setAttribute("aria-hidden","true"),k.addEventListener("focus",()=>i.focus())),i.append(k),k}),f=d=>Co(i,a,d),l=()=>{Lo(u,e),s&&(i.setAttribute("aria-checked",String(e===o)),u.forEach(d=>d.tabIndex=-1)),f(!0)},p=(d,k=!0)=>{d!=null&&!u.some(C=>C._twVal===d)||(e=d,l(),k&&n(d))};return i.addEventListener("keydown",d=>{let k=gr(u,e);if(k<0)return;if(s&&(d.key===" "||d.key==="Enter")){d.preventDefault(),p(u[1-k]._twVal);return}let C=s?{ArrowRight:1,ArrowUp:1,End:1,ArrowLeft:0,ArrowDown:0,Home:0}[d.key]??-1:Xe(d.key,k,u.length);C<0||(d.preventDefault(),p(u[C]._twVal),(s?i:u[C]).focus())}),l(),Wt(()=>{f(),i.classList.add("is-ready")}),Zt(i,[[window,"tw-reflow"]],()=>f()),{el:i,set:d=>p(d,!1),get:()=>e}}var Vs,ir,G,yt,Rn,Ks,ie,Ke,on,ho,Gs,bo,_s,le,ar,ze,lr,cr,ne,Nn,wo,w,wt,st,vo,Wt,Zt,ur,pr,an,he,xo,ko,qe,Mo,sn,Ne,yo,Eo,Fe,Pn,So,el,Co,nl,rl,ol,dr,fr,mr,zs,ln,gr,Lo,Fn,Xe,$t,Ce,Ft,Le,ce,hr,Dn,Ao,pt,Yt,br,Xs,Us,To,Ge,qs,ae,xt=Be(()=>{$n();Vs=t=>t.replace(/([a-z])(?=[A-Z])|([A-Z\d])(?=[A-Z][a-z])/g,"$1$2 ").replace(/^./,e=>e.toUpperCase()).trim(),ir=t=>{let e=/^(?:[a-z][A-Z]{2,}?|(?:mac|tv|watch|iPad|vision)OS)(?=[A-Z][a-z]|[^A-Za-z]|$)/.exec(t);return e?`${e[0]} ${Vs(t.slice(e[0].length))}`.trim():Vs(t)},G=(t,e,n)=>Math.min(n,Math.max(e,t)),yt=t=>!!t&&typeof t=="object",Rn=t=>typeof t=="string"&&/^(#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$|(oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\()/i.test(t.trim()),Ks=20,ie=t=>{let e=String(t),n=/e-(\d+)$/i.exec(e);if(n)return Math.min(Ks,Number(n[1])+(e.split("e")[0].split(".")[1]||"").length);let r=e.indexOf(".");return r===-1?0:Math.min(Ks,e.length-r-1)},Ke=(t,e,n)=>{if(!(n>0))return t;let r=ie(n),o=Number((+e).toFixed(r)),s=Math.round((t-o)/n);return Number.isFinite(s)?Number((o+s*n).toFixed(r)):t},on=(t,e,n,r=t)=>{let o=u=>Ke(u,r,n),s=Number.isFinite(t)?o(t):-1/0,i=Number.isFinite(e)?o(e):1/0,a=n*1e-6;return s<t-a&&(s=o(s+n)),i>e+a&&(i=o(i-n)),s>i?[t,t]:[s,i]},ho=(t,e,...n)=>{let r=e-t;t<0&&e>0&&n.push(0);let o=r>0&&r<1e-4?10**Math.floor(Math.log10(r))/100:r<=1?.01:r<=10?.1:r<=100?1:10,s=f=>!Number.isFinite(f)||Math.abs(f-Math.round(f))<=1e-6,i=(f,l)=>s(t/Math.min(f,1))&&l.every(p=>s((p-t)/f)),a=f=>{let l=o;for(let p=0;p<2&&!i(l,f);p++)l/=10;return l},u=a([...n,e]);return i(u,[...n,e])?u:a(n)},Gs=(...t)=>{let e=(t.length?t:[0]).map(cr),n=Math.min(...e.map(o=>o[0])),r=Math.max(...e.map(o=>o[1]));return{min:n,max:r,step:n<0&&n===-r?ho(0,r,r,...t.map(Math.abs)):ho(n,r,...t)}},bo=null,_s=t=>{bo=t},le=(t,...e)=>{bo?bo(t,e):Promise.resolve().then(()=>(Nt(),rn)).then(n=>n.notice(t,e),()=>{})},ar=(t,e,n,r=[],o)=>{let s=l=>l!=null&&l!==""&&Number.isFinite(+l);r=r.filter(Number.isFinite);let i=Gs(...r),a=s(t)?+t:i.min,u=s(e)?+e:i.max,f=+n;if(s(t)!==s(e)&&!(u>a)){let l=s(t),p=l?a:u,d=Gs(p);l?u=d.max>p?d.max:p+d.max-d.min:a=d.min<p?d.min:p-d.max+d.min}if(u<a){o!=null&&le("swap",o,a,u);let l=a;a=u,u=l}return(!(f>0)||f>u-a)&&(f=s(t)||s(e)?ho(a,u,...r):i.step),{min:a,max:u,step:f}},ze=(t,e,n,r,o,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 r;case"End":return o}return null},lr=(t,e,n,r,o=0)=>{let s=t.offsetLeft,i=s+t.offsetWidth,a=e.offsetLeft,u=a+e.offsetWidth;return n<i&&n+r>s||n<u+o&&n+r>a-o},cr=t=>{if(!Number.isFinite(t))return[0,1];let e=Number((Math.abs(t)*3).toPrecision(12));if(t>=0)return[0,t<=1?1:e||100];let n=t>=-1?1:e;return[-n,n]},ne=t=>t==null?void 0:typeof t=="object"?t.value:t,Nn=t=>{try{return JSON.stringify(t)}catch{return String(t)}},wo=t=>t==null?"":typeof t=="string"?t:typeof t=="object"?t.label??(t.value!==void 0?String(t.value):Nn(t)):String(t),w=(t,e,n)=>{let r=document.createElement(t);return e&&(r.className=e),n!=null&&(r.innerHTML=n),(t=="input"||t=="textarea")&&(r.setAttribute("autocomplete","off"),r.setAttribute("data-1p-ignore",""),r.setAttribute("data-lpignore","true")),r},wt=(t,e)=>{let n=w("button",t,e);return n.type="button",n},st=(t,e,n)=>{let r=t==="button"?wt(e):w(t,e);return r.textContent=n,r},vo=t=>["pointerdown","pointermove","pointerup","click"].forEach(e=>t.addEventListener(e,n=>n.stopPropagation())),Wt=t=>{requestAnimationFrame(t),document.fonts&&document.fonts.ready&&document.fonts.ready.then(t)},Zt=(t,e,n)=>{let r=t.isConnected;r||requestAnimationFrame(()=>{t.isConnected&&(r=!0)});let o=i=>{if(!t.isConnected){(r||t.closest("[data-tw-destroyed]"))&&s();return}r=!0,n(i)},s=()=>e.forEach(([i,a])=>i.removeEventListener(a,o));return e.forEach(([i,a])=>i.addEventListener(a,o)),s},ur=()=>requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow"))),pr=(t,e)=>{t.addEventListener("pointerenter",()=>{t.classList.add("is-hover"),e()}),t.addEventListener("pointerleave",()=>t.classList.remove("is-hover"))},an=!1;typeof document<"u"&&(document.addEventListener("pointerdown",()=>{an=!0},!0),document.addEventListener("keydown",()=>{an=!1},!0));he=t=>{t.addEventListener("focus",()=>t.classList.toggle("tw-focus-quiet",an)),t.addEventListener("blur",()=>t.classList.remove("tw-focus-quiet"))},xo=(t,e,{width:n,fallbackH:r=300,gap:o=6,align:s="start",prefer:i="below"}={})=>{let a=t.getBoundingClientRect();n==="match"&&(e.style.width=a.width+"px");let u=e.offsetWidth||(n==="match"?a.width:n||0),l=s==="end"||n==="match"&&u>a.width+.5?a.right-u:s==="center"?a.left+a.width/2-u/2:a.left;e.style.left=Math.max(8,Math.min(l,window.innerWidth-u-8))+"px";let p=e.offsetHeight||r,d=window.innerHeight-a.bottom,k=a.top,C=p+12,v=d>=C,$=k>=C,A=i==="above"?$||!v&&k>=d:!v&&($||k>d),b=A?a.top-p-o:a.bottom+o;e.style.top=G(b,o,window.innerHeight-p-o)+"px",e.dataset.side=A?"above":"below",e.style.setProperty("--tw-pop-h",String(p))},ko=t=>{if(!t||typeof t!="object")return null;let e={};for(let[n,r]of Object.entries(t))r!=null&&(n.startsWith("--")?e[n]=String(r):le("theme",n));return Object.keys(e).length?e:null},qe=(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])}},Mo=(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")},sn=(t,e)=>{qe(t,e?.closest(".tw-panel")?._twTheme),Mo(t,e)},Ne=null,yo=null,Eo=t=>{Ne&&t.contains(yo)&&Ne()};Fe=typeof matchMedia=="function"?matchMedia("(prefers-reduced-motion: reduce)"):{matches:!1},Pn="cubic-bezier(0.22, 1, 0.36, 1)",So="cubic-bezier(0.34, 1.2, 0.64, 1)",el=(t,e)=>{Fe.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:Pn}))},Co=(t,e,n)=>{let r=t.querySelector('[data-active="true"]');if(!r)return;let o=r.offsetLeft,s=r.offsetWidth,i=parseFloat(e.style.left);e.style.left=o+"px",e.style.width=s+"px",n&&Number.isFinite(i)&&i!==o&&el(e,o>i?1:-1)},nl=32,rl=200,ol=8,dr=(t,e,n)=>{let r=n<e.left?n-e.left:n>e.right?n-e.right:0,o=Math.sign(r)*ol*Math.sqrt(Math.min(Math.max(0,Math.abs(r)-nl)/rl,1));t.style.width=o?`calc(100% + ${Math.abs(o)}px)`:"",t.style.transform=o<0?`translateX(${o}px)`:""},fr=t=>{t.style.transition=`width 0.35s ${Pn}, transform 0.35s ${Pn}`,t.style.width="",t.style.transform="",setTimeout(()=>{t.style.transition=""},360)},mr=(t,e)=>{t.classList.toggle("is-disabled",e);for(let n of t.children)n.classList.contains("tw-portal")||(n.inert=e);e&&Eo(t)},zs=(t,e,n,r)=>{t.classList.toggle("is-collapsed",r),e.setAttribute("aria-expanded",String(!r)),n.inert=r},ln=(t,e,n,r,o)=>{if(Fe.matches||typeof n.animate!="function"){zs(t,e,n,r),o&&setTimeout(o,370);return}let s=n.getBoundingClientRect(),i=s.height,a=t.closest(".tw-panel"),u=a&&getComputedStyle(a),f=u?parseFloat(u.maxHeight):NaN,l=u&&a.dataset.mode==="floating"&&f>=0?a.getBoundingClientRect().top+f-parseFloat(u.paddingBottom)-parseFloat(u.borderBottomWidth):1/0,p=Math.max(0,Math.min(window.innerHeight,l)-s.top),d=getComputedStyle(n).getPropertyValue("--tw-ease-fold").trim();n._twFold?.cancel(),n._twFold=null,n.style.transition="none",n.style.gridTemplateRows="",zs(t,e,n,r);let k=0;if(!r){for(let b of n.firstElementChild?.getAnimations?.()??[])b.transitionProperty!=="opacity"&&b.finish();k=n.getBoundingClientRect().height}let C=Math.min(i,p),v=Math.min(k,p),$=()=>{n.style.gridTemplateRows="",n.offsetHeight,n._twFold?.cancel(),n._twFold=null,n.style.transition="",o?.()};if(Math.abs(C-v)<1)return $();n.style.gridTemplateRows="1fr";let A=n._twFold=n.animate([{height:C+"px"},{height:v+"px"}],{duration:350,easing:d,fill:"forwards"});A.onfinish=()=>{n._twFold===A&&$()}},gr=(t,e)=>{let n=t.findIndex(r=>r.dataset.value===String(e));return n<0&&t.length?0:n},Lo=(t,e)=>{let n=gr(t,e);t.forEach((r,o)=>{let s=r.dataset.value===String(e);r.dataset.active=String(s),r.setAttribute("aria-checked",String(s)),r.tabIndex=o===n?0:-1})},Fn=(t,e,n)=>{let r=st("button",t,wo(e));return r.setAttribute("role","radio"),r._twVal=ne(e),r.dataset.value=String(r._twVal),r.addEventListener("click",()=>n(r._twVal)),r},Xe=(t,e,n,r=0)=>{switch(t){case"ArrowRight":return(e+1)%n;case"ArrowLeft":return(e-1+n)%n;case"ArrowDown":return r<0?-1:r?e+r<n?e+r:e:(e+1)%n;case"ArrowUp":return r<0?-1:r?e-r>=0?e-r:e:(e-1+n)%n;case"Home":return 0;case"End":return n-1}return-1};$t=(t,e="",n=2,r=24)=>`<svg${e?` class="${e}"`:""} viewBox="0 0 ${r} ${r}" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${t}</svg>`,Ce=(t,e)=>({el:t,set:()=>{},get:()=>{},destroy:e}),Ft=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Le=t=>t==="__proto__"||t==="constructor"||t==="prototype",ce=(t,e)=>t!==e&&!(yt(t)&&yt(e)&&JSON.stringify(t)===JSON.stringify(e)),hr=(t,e,n)=>{t.set(n),t.set(e)},Dn=["stiffness","damping","mass","visualDuration","bounce"],Ao={},pt=(t,e)=>{Ao[t]=e},Yt=t=>Ao[t],br=()=>Object.keys(Ao),Xs=null,Us=t=>{Xs=t},To=()=>Xs,Ge=null,qs=0,ae=t=>{Ge||(Ge=w("div","tw-sr"),Ge.setAttribute("role","status")),Ge.isConnected||document.body.appendChild(Ge),Ge.textContent="",clearTimeout(qs),qs=setTimeout(()=>{Ge.textContent=t},100)}});var Ys={};Cn(Ys,{DATA_VALUE:()=>wr});async function ll(t,e){let{createFolder:n,createControl:r,makeCopyBtn:o,makeResetBtn:s,addHintMarker:i,ensureForMetas:a}=e;$o(t,'.tw-panel[data-mode="inline"]:not([data-tw-panel-bound])').forEach(l=>{let p=l.querySelector(":scope > .tw-header"),d=l.querySelector(":scope > .tw-controls");if(!p||!d)return;l.setAttribute("data-tw-panel-bound","");let k=w("div","tw-body");l.insertBefore(k,d),k.append(d);let C=p.querySelector(".tw-header-toggle"),v=p.querySelector(".tw-title");if(!C&&v&&(C=wt("tw-header-toggle"),v.replaceWith(C),C.append(v)),!!C&&(C.setAttribute("aria-expanded","true"),C.addEventListener("click",()=>ln(l,C,k,!l.classList.contains("is-collapsed"))),!p.querySelector(".tw-toolbar"))){let $=()=>[...l.querySelectorAll("[data-tw]")].map(I=>I._tw).filter(I=>I&&I.ctrl.get()!==void 0),A=()=>{let I=Object.create(null);for(let z of $()){let h=z.key,T=2;for(;Ft(I,h);)h=`${z.key}-${T++}`;I[h]=z.ctrl.get()}return JSON.stringify(I,null,2)},b=()=>{for(let I of $())I.reset()},O=w("div","tw-toolbar");O.append(o(()=>[A(),-1]),s(b)),p.append(O)}}),$o(t,'[data-tw="folder"]:not([data-tw-bound])').forEach(l=>{l.setAttribute("data-tw-bound","");let p=n({label:l.dataset.label||"Folder"});[...l.children].forEach(d=>p.body.append(d)),l.append(p.el)});let u=$o(t,"[data-tw]:not([data-tw-bound])").map(l=>({host:l,meta:sl(e,l)})).filter(l=>l.meta);u.forEach(({host:l})=>l.setAttribute("data-tw-bound",""));let f=a(u.map(l=>l.meta));f&&await f.catch(()=>{});for(let{host:l,meta:p}of u)try{let d=l.dataset.key||p.label,k,C=b=>{ce(k,b)&&(k=b,al(l,d,b))},v=r(p,C);if(!v)continue;l.closest(".tw-panel, .tw-portal")||l.classList.add("tw-portal"),l.append(v.el),l.dataset.hint&&i(v.el,l.dataset.hint);let $=v.get();k=$;let A={...v,set:b=>{v.set(b),C(v.get())}};l._tw={ctrl:A,raw:p.value,def:$,key:d,host:l,reset:()=>{hr(v,p.value,$),C(v.get())}}}catch(d){console.error(`[tweaks] data-tw="${l.dataset.tw}" could not be built \u2014 skipped:`,d)}}var Ws,Oo,wr,bt,yr,_n,sl,il,al,$o,Po=Be(()=>{xt();Ws=t=>({...Object.fromEntries(Dn.map(e=>[e,bt(t[e])])),mode:t.mode}),Oo=t=>({options:_n(t.options),value:t.value,cols:bt(t.cols)}),wr={slider:t=>({value:bt(t.value),min:bt(t.min),max:bt(t.max),step:bt(t.step),soft:yr(t.soft),unit:t.unit}),checkbox:t=>t.options?{type:"radiogrid",...Oo(t)}:{value:t.checked==="true"},radiogrid:Oo,segmented:Oo,list:t=>({options:_n(t.options),value:t.value}),image:t=>({value:t.value,options:t.options?_n(t.options):void 0,cols:bt(t.cols),maxSize:bt(t.maxSize),fit:t.fit==="false"?!1:bt(t.fit),quality:bt(t.quality),upload:t.upload==="false"?!1:void 0,clear:t.clear==="false"?!1:void 0}),buttongroup:t=>({buttons:_n(t.buttons).map(e=>({label:e}))}),separator:()=>({}),number:t=>({value:bt(t.value),min:bt(t.min),max:bt(t.max),step:bt(t.step),unit:t.unit}),text:t=>({value:t.value??"",placeholder:t.placeholder,rows:bt(t.rows)}),fpsgraph:t=>({label:t.label??"FPS"}),interval:t=>({value:t.value?t.value.split(",").map(Number):void 0,min:bt(t.min),max:bt(t.max),step:bt(t.step)}),sides:t=>({value:t.value??t,corners:yr(t.corners),unit:t.unit,step:bt(t.step),min:bt(t.min),max:bt(t.max)}),shadow:t=>({value:t.value??{...t,inset:yr(t.inset)}}),spring:Ws,motion:t=>({...Ws(t),curve:t.curve&&t.curve.includes(",")?t.curve.split(",").map(Number):t.curve,duration:bt(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:_n(t.components||"X,Y").map((n,r)=>({key:n.toLowerCase(),label:n,value:isNaN(e[r])?0:e[r],step:bt(t.step),min:bt(t.min),max:bt(t.max)})),pad:yr(t.pad),invertY:t.invertY==="true"}},plot:t=>({expr:t.expr,xMin:bt(t.xmin),xMax:bt(t.xmax),yMin:bt(t.ymin),yMax:bt(t.ymax),samples:bt(t.samples),editable:t.editable!=="false"})},bt=t=>{if(t==null||t==="")return;let e=+t;return Number.isFinite(e)?e:void 0},yr=t=>t==="true"||t==="",_n=t=>(t||"").split(",").map(e=>e.trim()).filter(Boolean),sl=(t,e)=>{let n=e.dataset,r=n.tw;if(r==="tabs")return null;let o=n.label??ir(n.key||r),s=Ft(wr,r)?wr[r](n,e,o):t.LAZY_IMPORT[r]||Yt(r)?{...n}:null;if(!s)return Promise.resolve().then(()=>(Nt(),rn)).then(a=>a.unknownType(`data-tw="${r}"`,String(r),[...Object.keys(wr),...Object.keys(t.LAZY_IMPORT),...br()].filter(u=>u!=="tabs"),"is skipped"),()=>{}),null;let i=t.metaFor("v",{type:r,label:o,...s});return i&&i.type!=="folder"?i:null},il=(t,e)=>{t.dataset.value=e==null?"":Array.isArray(e)?e.join(","):typeof e=="object"?Object.values(e).join(","):String(e)},al=(t,e,n)=>{il(t,n),t.dispatchEvent(new CustomEvent("tw:change",{bubbles:!0,detail:{key:e,value:n}}))},$o=(t,e)=>[...typeof t.matches=="function"&&t.matches(e)?[t]:[],...t.querySelectorAll(e)];Us(ll)});var ba={};Cn(ba,{pasteInto:()=>iu,pasteScope:()=>su,pick:()=>ha});function su(t,e,n){let r=JSON.parse(n),o;if(e.kind==="row"){let s=e.entry,i=yt(r)&&!Array.isArray(r)&&Object.keys(r).length===1&&Ft(r,s.key)?r[s.key]:r;o=ga(s,i)?[[s,i]]:[]}else{if(!yt(r)||Array.isArray(r))return!1;let s=t.entries.filter(i=>i.path.length>e.path.length&&e.path.every((a,u)=>i.path[u]===a));o=[];for(let i of[r,nu(r)])for(let a of[ma(i,e.path),i]){let u=yt(a)?ha(s,a,e.path):[];u.length>o.length&&(o=u)}}return o.length?(ou(t,o),o.length):!1}function iu(t,e,n,r){if(!n.alive())return;let o=!1;if(t!==null)try{o=e(t)}catch{}if(n.announce(o?`${o} value${o===1?"":"s"} pasted`:t===null?"Couldn't read the clipboard":"Nothing to paste"),r){let s=o?"is-pasted":"is-refused";r.classList.remove("is-pasted","is-refused"),r.classList.add(s),clearTimeout(fa.get(r)),fa.set(r,setTimeout(()=>r.classList.remove(s),450))}return!!o}var ma,nu,ru,Vr,ga,ha,ou,fa,ya=Be(()=>{xt();ma=(t,e)=>e.reduce((n,r)=>yt(n)&&Ft(n,r)?n[r]:void 0,t),nu=t=>{let e={};for(let n of Object.keys(t)){let r=n.split(".");if(r.some(Le))continue;let o=e;for(let s of r.slice(0,-1))o=yt(o[s])?o[s]:o[s]={};o[r[r.length-1]]=t[n]}return e},ru=t=>Rn(t)&&(typeof CSS>"u"||!CSS.supports||CSS.supports("color",t)),Vr=(t,e,n)=>Array.isArray(t)?Array.isArray(e)&&(t.every(r=>!yt(r))?e.length===t.length&&e.every((r,o)=>Vr(t[o],r,n)):e.length>=2&&e.length<=64&&e.every(r=>Vr(t[0],r,n))):yt(t)?yt(e)&&!Array.isArray(e)&&Object.keys(t).every(r=>Vr(t[r],e[r],n)):typeof e==typeof t&&(typeof e!="number"||Number.isFinite(e))&&(!n||!Rn(t)||ru(e)),ga=(t,e)=>e!=null&&!t.el?.closest(".is-disabled")&&Vr(t.get(),e,t.m.type==="color"||t.m.type==="gradient")&&(!t.m.options||t.m.options.some(n=>JSON.stringify(ne(n))===JSON.stringify(e))),ha=(t,e,n=[])=>t.map(r=>[r,ma(e,r.path.slice(n.length))]).filter(([r,o])=>ga(r,o)),ou=(t,e)=>{let n={};for(let[r,o]of e){let s=n;for(let i of r.path.slice(0,-1))s=s[i]||(s[i]={});s[r.path[r.path.length-1]]=o}t.fromJSON({values:n})};fa=new WeakMap});var wa={};Cn(wa,{fold:()=>au});var au,va=Be(()=>{xt();au=(t,e)=>{let n=getComputedStyle(t),r=t._fold?.playState=="running"&&{marginBottom:n.marginBottom,clipPath:n.clipPath,opacity:n.opacity};t._fold?.cancel(),t.classList.remove("tw-cond-hidden");let o=!Fe.matches&&t.animate&&t.offsetHeight;if(t.classList.toggle("tw-cond-hidden",e),o)try{let s=o+6+parseFloat(n.marginTop),i=o+"px",a={height:i,marginBottom:-s+"px",clipPath:`inset(0 0 ${s}px)`,opacity:0},u={height:i,clipPath:"inset(0)"};(t._fold=t.animate([r||(e?u:a),e?a:u],{duration:350,easing:n.getPropertyValue("--tw-ease-fold").trim()})).onfinish=()=>t.classList.toggle("tw-cond-hidden",e),t.classList.remove("tw-cond-hidden")}catch{}}});var Ea={};Cn(Ea,{bind:()=>hu,load:()=>pu,refFor:()=>ka});var qn,wn,lu,Kr,cu,uu,ka,pu,du,fu,mu,Ma,gu,xa,hu,Sa=Be(()=>{qn="tw-image:",wn=null,lu=()=>wn||(wn=new Promise(t=>{let e=!1,n=setTimeout(()=>{e=!0,wn=null,t(null)},3e3);try{let r=indexedDB.open("tweakit",1);r.onupgradeneeded=()=>r.result.createObjectStore("images"),r.onsuccess=()=>{let o=r.result;if(clearTimeout(n),e){o.close();return}o.onversionchange=()=>{o.close(),wn=null},o.onclose=()=>{wn=null},t(o)},r.onerror=()=>{clearTimeout(n),wn=null,t(null)}}catch{clearTimeout(n),t(null)}})),Kr=(t,e)=>lu().then(n=>n&&new Promise(r=>{try{let o=n.transaction("images",t),s=e(o.objectStore("images"));o.oncomplete=()=>r(s),o.onerror=o.onabort=()=>r(null)}catch{r(null)}})),cu=t=>IDBKeyRange.bound([t],[t,[]]),uu=t=>{let e=3735928559,n=1103547991;for(let r=0;r<t.length;r++){let o=t.charCodeAt(r);e=Math.imul(e^o,2654435761),n=Math.imul(n^o,1597334677)}return e=Math.imul(e^e>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(e^e>>>13,3266489909),(4294967296*(2097151&n)+(e>>>0)).toString(36)+t.length.toString(36)},ka=t=>qn+uu(t),pu=t=>Kr("readonly",e=>{let n=new Map;return e.openCursor(cu(t)).onsuccess=function(){let r=this.result;r&&(typeof r.value=="string"&&n.set(qn+r.key[1],r.value),r.continue())},n}),du=(t,e)=>Kr("readonly",n=>n.get([t,e.slice(qn.length)])).then(n=>n&&typeof n.result=="string"?n.result:null),fu=(t,e,n)=>Kr("readwrite",r=>(r.put(n,[t,e.slice(qn.length)]),!0)),mu=(t,e)=>Kr("readwrite",n=>{for(let r of e)n.delete([t,r.slice(qn.length)]);return!0}),Ma=t=>new Set(JSON.stringify(t??null).match(/tw-image:[0-9a-z]+/g)||[]),gu=(t,e,n)=>{let r=Ma(n),o=[...e.keys()].filter(s=>!r.has(s));for(let s of o)e.delete(s);o.length&&mu(t,o)},xa=(t,e,n)=>{let r=JSON.stringify(t);return r.includes(e)?JSON.parse(r.split(e).join(JSON.stringify(n).slice(1,-1))):null},hu=(t,e,n,r,o)=>{let s=new Set,i=new WeakMap,a=(f,l)=>{let p=i.get(f);if(p?.[0]===l)return p[1];let d=ka(l);return i.set(f,[l,d]),d},u=(f,l)=>{let p=xa(r(),f,l);!p||o(p)||(o(xa(r(),f,"")),console.warn("[tweaks] persist: an image a preset holds didn't fit in storage \u2014 the preset keeps the rest"))};return{save(f,l,p){let d=a(f,l);return s.has(d)?null:((!e.has(d)||!Ma(p).has(d))&&(e.set(d,l),fu(t,d,l).then(k=>{k||(e.delete(d),s.add(d),n(d),u(d,l))})),d)},prune:f=>gu(t,e,f),fetch:f=>du(t,f).then(l=>(l&&e.set(f,l),l))}}});Po();Nt();xt();Nt();var cl=180/Math.PI,No=Math.PI/180,re=(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]],ul=(t,e)=>{let n=[[0,0,0],[0,0,0],[0,0,0]];for(let r=0;r<3;r++)for(let o=0;o<3;o++)n[r][o]=t[r][0]*e[0][o]+t[r][1]*e[1][o]+t[r][2]*e[2][o];return n},Lt=t=>Number.isFinite(t)?t:0,si=(t,e,n)=>Math.min(n,Math.max(e,t)),vr=t=>{let e=Math.abs(t);return e<=.04045?t/12.92:Math.sign(t)*((e+.055)/1.055)**2.4},Hn=t=>{let e=Math.abs(t);return e<=.0031308?t*12.92:Math.sign(t)*(1.055*e**(1/2.4)-.055)},Mr=1.09929682680944,ii=.018053968510807,pl=t=>{let e=Math.abs(t);return e<ii*4.5?t/4.5:Math.sign(t)*((e+Mr-1)/Mr)**(1/.45)},ai=t=>{let e=Math.abs(t);return e<ii?t*4.5:Math.sign(t)*(Mr*e**.45-(Mr-1))},li=1/512,dl=t=>{let e=Math.abs(t);return e<=li*16?t/16:Math.sign(t)*e**1.8},fl=t=>{let e=Math.abs(t);return e>=li?Math.sign(t)*e**(1/1.8):16*t},xr=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],In=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],ml=[[.4865709486482162,.26566769316909306,.19821728523436247],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],ci=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],gl=[[.6369580483012914,.14461690358620832,.16888097516417205],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],ui=[[1.7166511879712674,-.35567078377639233,-.25336628137365974],[-.6666843518324892,1.6164812366349395,.01576854581391113],[.017639857445310783,-.042770613257808524,.9421031212354738]],hl=[[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],bl=[[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],pi=563/256,yl=t=>Math.sign(t)*Math.abs(t)**pi,wl=t=>Math.sign(t)*Math.abs(t)**(1/pi),vl=[[573536/994567,263643/1420810,187206/994567],[591459/1989134,6239551/9945670,374412/4972835],[53769/1989134,351524/4972835,4929758/4972835]],xl=[[1829569/896150,-506331/896150,-308931/896150],[-851781/878810,1648619/878810,36519/878810],[16779/1248040,-147721/1248040,1266979/1248040]],kl=t=>t,Fo=[[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Do=[[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Ml=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],di=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],El=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],fi=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],kr=216/24389,jn=24389/27,cn=[.3457/.3585,1,(1-.3457-.3585)/.3585],Ue=(t,e,n)=>re(n,[e(t[0]),e(t[1]),e(t[2])]),_e=(t,e,n)=>{let r=re(n,t);return[e(r[0]),e(r[1]),e(r[2])]},Js=t=>{let e=re(fi,t);return re(di,[e[0]**3,e[1]**3,e[2]**3])},Zs=t=>{let e=re(Ml,t);return re(El,[Math.cbrt(e[0]),Math.cbrt(e[1]),Math.cbrt(e[2])])};function Qs(t){let[e,n,r]=t,o=(e+16)/116,s=n/500+o,i=o-r/200,a=s**3>kr?s**3:(116*s-16)/jn,u=e>jn*kr?o**3:e/jn,f=i**3>kr?i**3:(116*i-16)/jn;return re(Do,[a*cn[0],u*cn[1],f*cn[2]])}function ti(t){let e=re(Fo,t),n=i=>i>kr?Math.cbrt(i):(jn*i+16)/116,r=n(e[0]/cn[0]),o=n(e[1]/cn[1]),s=n(e[2]/cn[2]);return[116*o-16,500*(r-o),200*(o-s)]}var Er=t=>{let e=Math.hypot(t[1],t[2]),n=Math.atan2(t[2],t[1])*cl;return n<0&&(n+=360),[t[0],e,n]},Sr=t=>[t[0],t[1]*Math.cos(t[2]*No),t[1]*Math.sin(t[2]*No)];function mi(t){let e=((Number.isNaN(t[0])?0:t[0])%360+360)%360,n=t[1]/100,r=t[2]/100,o=s=>{let i=(s+e/30)%12,a=n*Math.min(r,1-r);return r-a*Math.max(-1,Math.min(i-3,9-i,1))};return[o(0),o(8),o(4)]}function gi(t){let e=Math.max(...t),n=Math.min(...t),r=e-n;if(r<1e-9)return NaN;let o;return e===t[0]?o=(t[1]-t[2])/r+(t[1]<t[2]?6:0):e===t[1]?o=(t[2]-t[0])/r+2:o=(t[0]-t[1])/r+4,o*60}function Sl(t){let e=Math.max(...t),n=Math.min(...t),r=(n+e)/2,o=gi(t),s=e===n||r===0||r===1?0:(e-r)/Math.min(r,1-r);return s<0&&(o+=180,s=-s),o>=360&&(o-=360),[o,s*100,r*100]}function Cl(t){let e=t[1]/100,n=t[2]/100;if(e+n>=1){let s=e/(e+n);return[s,s,s]}let r=mi([t[0],100,50]),o=1-e-n;return[r[0]*o+e,r[1]*o+e,r[2]*o+e]}var Ll=t=>[gi(t),Math.min(...t)*100,(1-Math.max(...t))*100];function Al(t,e){switch(e){case"srgb":return Ue(t,vr,xr);case"p3":return Ue(t,vr,ml);case"rec2020":return Ue(t,pl,gl);case"prophoto-rgb":return re(Do,Ue(t,dl,hl));case"a98-rgb":return Ue(t,yl,vl);case"srgb-linear":return re(xr,t);case"xyz-d65":return[t[0],t[1],t[2]];case"xyz-d50":return re(Do,t);case"oklab":return Js(t);case"oklch":return Js(Sr(t));case"lab":return Qs(t);case"lch":return Qs(Sr(t));case"hsl":return Ue(mi(t),vr,xr);case"hwb":return Ue(Cl(t),vr,xr)}}function Tl(t,e){switch(e){case"srgb":return _e(t,Hn,In);case"p3":return _e(t,Hn,ci);case"rec2020":return _e(t,ai,ui);case"prophoto-rgb":return _e(re(Fo,t),fl,bl);case"a98-rgb":return _e(t,wl,xl);case"srgb-linear":return _e(t,kl,In);case"xyz-d65":return[t[0],t[1],t[2]];case"xyz-d50":return re(Fo,t);case"oklab":return Zs(t);case"oklch":return Er(Zs(t));case"lab":return ti(t);case"lch":return Er(ti(t));case"hsl":return Sl(_e(t,Hn,In));case"hwb":return Ll(_e(t,Hn,In))}}function Dt(t,e,n){return e===n?[t[0],t[1],t[2]]:e==="oklch"&&n==="oklab"?Sr(t):e==="oklab"&&n==="oklch"?Er(t):e==="lch"&&n==="lab"?Sr(t):e==="lab"&&n==="lch"?Er(t):Tl(Al(t,e),n)}var Cr=75e-6,hi=t=>t.every(e=>e>=-Cr&&e<=1+Cr),_o=(t,e)=>hi(Dt(t,"oklch",e)),Ro=t=>t.map(e=>Math.min(1,Math.max(0,e))),ei=(t,e)=>Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2]);function pn(t,e){if(_o(t,e))return Dt(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 Ro(Dt([n,0,Lt(t[2])],"oklch",e));let r=.02,o=1e-4,s=[t[0],t[1],t[2]],i=0,a=t[1],u=!0,f=Ro(Dt(s,"oklch",e));if(ei(Dt(f,e,"oklab"),Dt(t,"oklch","oklab"))<r)return f;for(;a-i>o;){let l=(i+a)/2;s[1]=l;let p=Dt(s,"oklch",e);if(u&&hi(p)){i=l;continue}f=Ro(p);let d=ei(Dt(f,e,"oklab"),Dt(s,"oklch","oklab"));if(d<r){if(r-d<o)return f;u=!1,i=l}else a=l}return f}var Ol=(t,e)=>{let n=t*No,r=Math.cos(n),o=Math.sin(n),s=fi.map(a=>r*a[1]+o*a[2]),i=ul(e==="p3"?ci:e==="rec2020"?ui:In,di);return{d:s,F:i,gam:e==="rec2020"?ai:Hn}};function Io(t,e){let{d:[n,r,o],F:s,gam:i}=Ol(t,e);return(a,u,f)=>{let l=a+u*n,p=a+u*r,d=a+u*o,k=l**3,C=p**3,v=d**3;f[0]=i(s[0][0]*k+s[0][1]*C+s[0][2]*v),f[1]=i(s[1][0]*k+s[1][1]*C+s[1][2]*v),f[2]=i(s[2][0]*k+s[2][1]*C+s[2][2]*v)}}function Lr(t,e){let n=Io(t,e),r=[0,0,0],o=-Cr,s=1+Cr,i=a=>a>=o&&a<=s;return(a,u)=>(n(a,u,r),r.every(i))}function Ar(t,e,n=.5){if(!t(e,0))return 0;let r=0;for(let o=0;o<16;o++){let s=(r+n)/2;t(e,s)?r=s:n=s}return r}var un=t=>Math.round(Math.min(1,Math.max(0,t))*255).toString(16).padStart(2,"0").toUpperCase(),$l=t=>`#${un(t[0])}${un(t[1])}${un(t[2])}`,bi=(t,e,n)=>$l(pn([t,e,n],"srgb"));function yi(t){let e=String(t).replace("#","").trim();if(e.length===3&&(e=e.split("").map(r=>r+r).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 Dt(n,"srgb","oklch").map(Lt)}var Tr=["hex","srgb","css","hsl","hwb","oklch","oklab","lch","lab","p3","rec2020"],wi={hex:"HEX",srgb:"RGB",css:"CSS",hsl:"HSL",hwb:"HWB",oklch:"OKLCH",oklab:"OKLab",lch:"LCH",lab:"Lab",p3:"P3",rec2020:"Rec2020"},vi=["srgb","css","hsl","hwb","hex"],jo=t=>!vi.includes(t),Bo=t=>t==="hex"||t==="css"?"srgb":t,Pl=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"}),xi=t=>Pl[t]||"oklch",Rl=Object.assign(Object.create(null),{srgb:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab","display-p3":"p3",rec2020:"rec2020"}),Vo=t=>Rl[t]||"oklch",Ko=.5,ki=(t,e,n)=>Object.freeze(["R","G","B"].map(r=>Object.freeze({k:r,min:0,max:t,step:e,scale:n}))),ni=ki(255,1,255),ri=ki(1,.01,1),dn={oklch:[{k:"L",min:0,max:100,step:1,scale:100},{k:"C",min:0,max:Ko,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:ni,css:ni,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:ri,rec2020:ri},Ho=t=>t>=1?0:t>=.1?1:t>=.01?2:3,Go=(t,e,n)=>e==="oklch"?[t[0],t[1],t[2]]:vi.includes(n)?e==="srgb"?pn(t,"srgb"):Dt(pn(t,"srgb"),"srgb",e):Dt(t,"oklch",e);function Or(t,e){let n=Go(t,Bo(e),e);return dn[e].map((r,o)=>{let s=Lt(n[o])*r.scale;return si(Math.abs(s)<.5*r.step?0:s,r.min,r.max)})}function Mi(t,e,n,r){let o=Bo(e),s=Go(t,o,e).map(Lt);s[n]=r/dn[e][n].scale;let i=Dt(s,o,"oklch");return[Lt(i[0]),Lt(i[1]),Lt(i[2])]}function Ei(t,e){if(!jo(e))return"sRGB";let n=pn(t,"srgb");return Math.max(...n)<.03||Math.min(...n)>.97||_o(t,"srgb")?"sRGB":_o(t,"p3")?"P3":"wide"}var Si=(t,e)=>t==="css"?`${e(0)}, ${e(1)}, ${e(2)}`:t==="oklch"||t==="oklab"||t==="lch"||t==="lab"?`${e(0)}% ${e(1)} ${e(2)}`:t==="hsl"||t==="hwb"?`${e(0)} ${e(1)}% ${e(2)}%`:`${e(0)} ${e(1)} ${e(2)}`;function Ci(t,e){if(e==="hex")return bi(t[0],t[1],t[2]);let n=dn[e],r=Or(t,e);return Si(e,o=>{let s=r[o].toFixed(Ho(n[o].step));return n[o].k==="H"&&+s==360?0 .toFixed(Ho(n[o].step)):s})}var oi=(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 Nl(t,e){let n=dn[e],r=Go(t,Bo(e),e),o=n.map((i,a)=>{let u=Ho(i.step)+1,f=+si(Lt(r[a])*i.scale,i.min,i.max).toFixed(u);return i.k==="H"&&f===360?0:f+0});e==="hsl"&&(o[2]===0||o[2]===100)&&(o[1]=0);let s=e==="oklch"||e==="lch"||e==="hsl"?o[1]===0:e==="hwb"&&o[1]+o[2]>=100;return Si(e,i=>s&&n[i].k==="H"?"none":String(o[i]))}function zo(t,e,n){let r=Lt(n);if(e==="hex")return bi(t[0],t[1],t[2])+(r<.999?un(r):"");let o=Nl(t,e);if(r>=.999)return oi(o,e);let s=+r.toFixed(3);return e==="css"?`rgba(${o}, ${s})`:oi(`${o} / ${s}`,e)}var Oi=(()=>{try{return document.createElement("canvas").getContext("2d",{colorSpace:"display-p3"})?.getContextAttributes?.().colorSpace==="display-p3"}catch{return!1}})(),qo=Oi?{colorSpace:"display-p3"}:{},Fl=Oi?"p3":"srgb",$r=(t,e)=>{let n=t.length-1,r=Math.max(0,Math.min(n,e*n)),o=Math.floor(r),s=r-o;return t[o]*(1-s)+t[Math.min(o+1,n)]*s},Dl=(t,e)=>{let n=Lr(t,e),r=new Float64Array(128);for(let o=0;o<128;o++)r[o]=Ar(n,o/127);return r},Zo="var(--tw-checker)",_l=Object.assign(Object.create(null),{srgb:"srgb","display-p3":"p3",rec2020:"rec2020","prophoto-rgb":"prophoto-rgb","a98-rgb":"a98-rgb","srgb-linear":"srgb-linear",xyz:"xyz-d65","xyz-d65":"xyz-d65","xyz-d50":"xyz-d50"}),Qo=/^(rgba?|hsla?|hwb)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,ts=/^(oklch|oklab|lch|lab|color)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,Hl=/^(srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/i,fn=/^#?([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,Xo,$i=()=>Xo===void 0?Xo=document.createElement("canvas").getContext("2d"):Xo,Il=/^(#[0-9a-f]{3,8}|[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i,jl=new Set("aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkgrey darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkslategrey darkturquoise darkviolet deeppink deepskyblue dimgray dimgrey dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow grey honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightslategrey lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple rebeccapurple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray slategrey snow springgreen steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow yellowgreen transparent currentcolor".split(" "));function ve(t){if(t=String(t??"").trim(),!Il.test(t))return!1;if(fn.test(t))return!0;if(ts.test(t))return Kl(t);if(Qo.test(t))return Ri(t)!==null;let e=$i();return e?["#000","#fff"].some(n=>{e.fillStyle=n;let r=e.fillStyle;return e.fillStyle=t,e.fillStyle!==r}):!t.includes("(")&&jl.has(t.toLowerCase())}var es="[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?",Bl=new RegExp("^"+es+"$","i"),Vl=new RegExp("^"+es+"%$","i"),Pi=new RegExp("^("+es+")(deg|grad|rad|turn)$","i"),ns=/[ \t\n\r\f]+/,rs=/^none$/i,Uo=t=>t.replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g,""),Wo=t=>!!t&&!ns.test(t),We=t=>rs.test(t)?"none":Bl.test(t)?"num":Vl.test(t)?"pct":Pi.test(t)?"angle":null,Yo=t=>{let e=Pi.exec(t);if(!e)return Lt(parseFloat(t));let n=parseFloat(e[1]),r=e[2].toLowerCase();return Lt(r==="turn"?n*360:r==="grad"?n*.9:r==="rad"?n*180/Math.PI:n)};function Ri(t){let e=Qo.exec(t);if(!e)return null;let n=e[1].toLowerCase().replace(/a$/,""),r=e[2],o,s,i;if(r.includes(",")){if(n==="hwb")return null;let l=r.split(",").map(Uo);if(l.length<3||l.length>4||!l.every(Wo)||(o=l.slice(0,3),s=l[3],i=o.map(We),n==="rgb"?!(i.every(p=>p==="num")||i.every(p=>p==="pct")):!((i[0]==="num"||i[0]==="angle")&&i[1]==="pct"&&i[2]==="pct"))||s!==void 0&&We(s)!=="num"&&We(s)!=="pct")return null}else{let l=r.split("/");if(l.length>2||(o=l[0].split(ns).filter(Boolean),o.length!==3))return null;if(l.length===2){s=Uo(l[1]);let p=Wo(s)?We(s):null;if(!p||p==="angle")return null}if(i=o.map(We),n==="rgb"?!i.every(p=>p&&p!=="angle"):!(i[0]&&i[0]!=="pct"&&i[1]&&i[1]!=="angle"&&i[2]&&i[2]!=="angle"))return null}let a=(l,p)=>rs.test(l)?0:/%$/.test(l)?parseFloat(l)/100*p:parseFloat(l),u=s===void 0?1:G(a(s,1),0,1);return[n==="rgb"?Dt([G(a(o[0],255)/255,0,1),G(a(o[1],255)/255,0,1),G(a(o[2],255)/255,0,1)],"srgb","oklch"):Dt([i[0]==="none"?0:Yo(o[0]),G(a(o[1],100),0,100),G(a(o[2],100),0,100)],n,"oklch"),u]}var Kl=t=>{let e=ts.exec(t);if(!e)return!1;let n=e[1].toLowerCase(),r=e[2].split("/");if(r.length>2)return!1;let o=r[0].split(ns).filter(Boolean);if(n==="color"&&!Hl.test(o.shift()||"")||o.length!==3)return!1;let s=n==="lch"||n==="oklch";if(!o.every((i,a)=>{let u=We(i);return u&&(s&&a===2?u!=="pct":u!=="angle")}))return!1;if(r.length===2){let i=Uo(r[1]),a=Wo(i)?We(i):null;if(!a||a==="angle")return!1}return!0},Li=(t,e)=>[Lt(t[0]),G(Lt(t[1]),0,Ko),(Lt(t[2])%360+360)%360,e];function Ye(t){if(t=String(t??"").trim(),fn.test(t)){let a=t.replace("#",""),u=1;a.length===4?(u=parseInt(a[3]+a[3],16)/255,a=a.slice(0,3)):a.length===8&&(u=parseInt(a.slice(6,8),16)/255,a=a.slice(0,6));let[f,l,p]=yi("#"+a);return[f,l,p,u]}let e=ts.exec(t);if(e){let a=e[1].toLowerCase(),[u,f]=e[2].split("/").map(v=>v.trim()),l=u.split(/\s+/).filter(Boolean),p=a;if(a==="color"&&(p=_l[(l[0]||"").toLowerCase()],l=l.slice(1),!p))return[.7,.1,280,1];let d=(v,$=1)=>!v||rs.test(v)?0:Lt(parseFloat(v))*(/%$/.test(v)?$:1),k=f?G(d(f,.01),0,1):1,C=a==="lab"?[G(d(l[0]),0,100),d(l[1],1.25),d(l[2],1.25)]:a==="lch"?[G(d(l[0]),0,100),Math.max(0,d(l[1],1.5)),Yo(l[2]||"0")]:a==="color"?[d(l[0],.01),d(l[1],.01),d(l[2],.01)]:a==="oklab"?[G(d(l[0],.01),0,1),d(l[1],.004),d(l[2],.004)]:[G(d(l[0],.01),0,1),Math.max(0,d(l[1],.004)),Yo(l[2]||"0")];return Li(p==="oklch"?C:Dt(C,p,"oklch"),k)}if(Qo.test(t)){let a=Ri(t);return a?Li(...a):[0,0,0,1]}let n=$i();if(!n)return[0,0,0,1];n.fillStyle="#000",n.fillStyle=t;let r=n.fillStyle;if(fn.test(r))return Ye(r);let o=r.match(/^rgba?\(([^)]*)\)/i),s=((o?o[1]:"").match(/-?[\d.]+(?:e[+-]?\d+)?/gi)||[0,0,0]).map(Number),i=Dt([s[0]/255,s[1]/255,s[2]/255],"srgb","oklch");return[Lt(i[0]),Lt(i[1]),Lt(i[2]),s[3]!=null?G(Lt(s[3]),0,1):1]}var Ai=t=>typeof t=="string"&&ve(t)&&(Jo(t)!==null||/^\s*color\(/i.test(t))&&(fn.test(t.trim())||(t.replace(/^\s*[a-z]+\(\s*(?:[a-z][\w-]*\s)?/i,"").match(/[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/gi)||[]).every(e=>Math.abs(+e)<=1e3)),Jo=t=>{let e=String(t??"").trim().toLowerCase();if(fn.test(e))return"hex";let n=/^([a-z]+)\(\s*([a-z0-9-]*)/.exec(e);return n?n[1]==="rgb"||n[1]==="rgba"?e.includes(",")?"css":"srgb":n[1]==="color"?n[2]==="display-p3"?"p3":n[2]==="rec2020"?"rec2020":n[2]==="srgb"?"srgb":null:["hsl","hwb","oklch","oklab","lch","lab"].find(r=>r===n[1]||n[1]==="hsla"&&r==="hsl")??null:null},Ti=t=>{let e=/^\s*(rgba?|hsla?|color)\(\s*([^)]*)\)\s*$/i.exec(t);if(!e)return null;let n=e[1].toLowerCase(),r=e[2].split(",").length;return n==="color"?/^srgb\s/i.test(e[2])?{name:n,legacy:!1,alphaSlot:!1}:null:{name:n,legacy:r>1,alphaSlot:r===4}},Gl=(t,e)=>{if(!t)return null;if(t.name==="color")return"color(srgb)";let n=e==="css"?{name:"rgba",legacy:!0,alphaSlot:!0}:{name:e==="hsl"?"hsl":"rgb",legacy:!1,alphaSlot:!1};return t.name===n.name&&t.legacy===n.legacy&&t.alphaSlot===n.alphaSlot?null:`${t.name}(${t.legacy?",":""})`},zl=(t,e,n,r)=>{if(!e)return t;let o=r<.999?String(+r.toFixed(3)):e.alphaSlot?"1":"";if(e.name==="color")return`color(srgb ${pn(n,"srgb").map(i=>+G(Lt(i),0,1).toFixed(3)+0).join(" ")}${o&&` / ${o}`})`;let s=(/\((.*)\)$/.exec(t)?.[1]??"").split(/\s*[,/]\s*|\s+/).slice(0,3);return e.legacy?`${e.name}(${s.map(i=>i==="none"?"0":i).join(", ")}${o&&`, ${o}`})`:`${e.name}(${s.join(" ")}${o&&` / ${o}`})`};function mn(t,e){let[n,r,o,s]=Ye(ve(t.value)?t.value:"#7c5cff"),i=Tr.includes(t.mode),a=i?t.mode:Jo(t.value)??"oklch",u=Ai(t.value)?t.value.trim():null,f=!i&&ve(t.value)?Ti(String(t.value)):null,l=NaN,p=null,d=[],k=NaN,C="",v=()=>u??zl(zo([n,r,o],a,s),f,[n,r,o],s),$=w("div","tw-color-body"),A=w("div","tw-wg-area"),b=document.createElement("canvas");b.className="tw-wg-canvas";let O=w("div","tw-wg-thumb");A.append(b,O);let I=w("div","tw-wg-hue"),z=document.createElement("canvas");z.className="tw-wg-hue-canvas";let h=w("div","tw-wg-hue-thumb");I.append(z,h);let T=w("div","tw-wg-alpha"),j=w("div","tw-wg-alpha-grad"),K=w("div","tw-wg-hue-thumb");T.append(j,K),b.setAttribute("aria-hidden","true"),z.setAttribute("aria-hidden","true"),A.tabIndex=0,A.setAttribute("role","group"),A.setAttribute("aria-label","Color plane: chroma across, lightness up");let E=w("div","tw-color-mode-row"),m=w("select","tw-color-mode");m.setAttribute("aria-label","Color mode"),Tr.forEach(q=>{let ot=document.createElement("option");ot.value=q,ot.textContent=wi[q],m.append(ot)});let B=document.createElement("option");B.value="kept";let _=()=>{let q=Gl(f,a);q?(B.textContent=q,m.querySelector(`option[value="${a}"]`).after(B),m.value="kept"):(B.remove(),m.value=a)};_();let Z=w("span","tw-color-gamut");E.append(m,Z);let tt=w("div","tw-color-channels");$.append(A,I,T,E,tt);let V=b.getContext("2d",qo),Q=z.getContext("2d"),S=document.createElement("canvas"),N=S.getContext("2d",qo),F=null,x=()=>{let q=A.clientWidth,ot=A.clientHeight;if(q<2)return;let g=window.devicePixelRatio||1,at=jo(a)?"p3":"srgb",ct=Dl(o,at);p=ct;let gt=Math.round(q*g),lt=Math.round(ot*g),vt=Math.max(1,Math.round(gt/4)),Bt=Math.max(1,Math.round(lt/4));(S.width!==vt||S.height!==Bt)&&(S.width=vt,S.height=Bt,F=new ImageData(vt,Bt,qo));let pe=F.data,Ae=Bt>1?1/(Bt-1):0,Ze=vt>1?1/(vt-1):0,xn=Io(o,Fl),Qt=[0,0,0];for(let ye=0;ye<Bt;ye++){let de=1-ye*Ae,fe=$r(ct,de);for(let we=0;we<vt;we++){xn(de,we*Ze*fe,Qt);let ke=(ye*vt+we)*4;pe[ke]=Math.round(G(Qt[0],0,1)*255),pe[ke+1]=Math.round(G(Qt[1],0,1)*255),pe[ke+2]=Math.round(G(Qt[2],0,1)*255),pe[ke+3]=255}}if(N.putImageData(F,0,0),b.width=gt,b.height=lt,V.imageSmoothingEnabled=!0,V.drawImage(S,0,0,gt,lt),at!=="srgb"){let ye=(de,fe,we,ke)=>{let kn=Lr(o,de),Te=[];for(let Vt=0;Vt<=100;Vt++){let Jt=Vt/100,Ht=$r(ct,Jt);if(Ht<=0)continue;let Ie=Ar(kn,Jt,Ht);Ie<=0||Te.push([Math.min(Ie/Ht*gt,gt-we*g/2),(1-Jt)*lt])}Te.length<2||(V.save(),V.strokeStyle=fe,V.lineWidth=we*g,V.lineJoin=V.lineCap="round",V.setLineDash(ke.map(Vt=>Vt*g)),V.beginPath(),Te.forEach((Vt,Jt)=>Jt?V.lineTo(Vt[0],Vt[1]):V.moveTo(Vt[0],Vt[1])),V.stroke(),V.restore())};ye("srgb","rgba(255,255,255,0.7)",1.5,[]),ye("p3","rgba(255,255,255,0.4)",1,[3,3])}l=o},D=.7,et=q=>{let ot=Dt([D,Ar(Lr(q,"srgb"),D),q],"oklch","srgb");return`rgb(${G(ot[0]*255,0,255)|0},${G(ot[1]*255,0,255)|0},${G(ot[2]*255,0,255)|0})`},W=0,rt=()=>{let q=Math.max(1,I.clientWidth),ot=Math.max(1,I.clientHeight);if(!(q<2)&&!(q===W&&z.width===q)){W=q,z.width=q,z.height=ot;for(let g=0;g<q;g++)Q.fillStyle=et(g/(q-1)*360),Q.fillRect(g,0,1,ot)}},H=()=>{let q=p?$r(p,n):.4,ot=ct=>`${G(ct,0,1)*100}%`,g=(ct,gt)=>{let lt=G(ct,0,1);return`calc(${lt*100}% + ${(.5-lt)*gt}px)`};O.style.left=ot(q>0?r/q:0),O.style.top=ot(1-n),h.style.left=g(o/360,16),K.style.left=g(s,16),T.setAttribute("aria-valuenow",String(+s.toFixed(2)));let at=Math.round(o);I.setAttribute("aria-valuenow",String(at)),I.setAttribute("aria-valuetext",`${at}\xB0`),A.setAttribute("aria-description",`lightness ${Math.round(n*100)}%, chroma ${+r.toFixed(3)}`),j.style.background=`linear-gradient(to right, oklch(${n} ${r} ${o} / 0), oklch(${n} ${r} ${o}))`,O.style.background=`oklch(${n} ${r} ${o})`,K.style.background=`linear-gradient(oklch(${n} ${r} ${o} / ${s}), oklch(${n} ${r} ${o} / ${s})), var(--tw-dropdown-bg)`,o!==k&&(C=et(o),k=o),h.style.background=C},L=()=>zo([n,r,o],"hex",s),X=()=>{if(Z.textContent=Ei([n,r,o],a),a==="hex"){let q=tt.querySelector(".tw-color-chan-input");q&&document.activeElement!==q&&(q.value=L())}else{let q=Or([n,r,o],a);d.forEach((ot,g)=>{ot.el.contains(document.activeElement)||ot.set(q[g])})}},U=()=>{rt(),x(),H()},mt=()=>e(v()),dt=q=>{q&&o!==l&&x(),H(),X()},_t=q=>{u=null,dt(q),mt()},At=()=>{if(tt.replaceChildren(),d=[],a==="hex"){tt.classList.add("tw-color-channels--hex");let q=w("div","tw-color-chan"),ot=w("input","tw-color-chan-input");ot.type="text",ot.spellcheck=!1,ot.setAttribute("aria-label","Hex color"),he(ot),ao(ot),ot.addEventListener("change",()=>{let g=ot.value.trim();fn.test(g)&&([n,r,o,s]=Ye(g),_t(!0))}),ot.addEventListener("blur",X),ot.addEventListener("keydown",g=>{g.key==="Enter"&&ot.blur()}),nr(ot,L),q.append(st("span","tw-color-chan-label","HEX"),ot),tt.append(q)}else{tt.classList.remove("tw-color-channels--hex");let q=Or([n,r,o],a);dn[a].forEach((ot,g)=>{let at=Rt({label:ot.k,value:q[g],min:ot.min,max:ot.max,step:ot.step},ct=>{[n,r,o]=Mi([n,r,o],a,g,G(ct,ot.min,ot.max)),_t(!0)});at.el.addEventListener("focusout",X),d.push(at),tt.append(at.el)})}X()},St=q=>p?$r(p,q):.4,Mt=q=>Re(q,A);en(A,q=>{let[ot,g]=Mt(q);n=1-g,r=ot*St(n),_t(!1)});let Ut=An(A);A.addEventListener("keydown",q=>{if(q.key==="Home"||q.key==="End"){q.preventDefault();return}let ot=q.shiftKey?10:1,[g,at]=Se(q),ct=g*ot,gt=at?at*ot:q.key==="PageUp"?10:q.key==="PageDown"?-10:0;if(!ct&&!gt)return;q.preventDefault();let lt=St(n),vt=G((lt>0?r/lt:0)+ct*.01,0,1);n=G(n+gt*.01,0,1),r=vt*St(n),_t(!1),Ut()});let be=(q,ot,g,at,ct,gt)=>{q.tabIndex=0,q.setAttribute("role","slider"),q.setAttribute("aria-label",ot),q.setAttribute("aria-valuemin","0"),q.setAttribute("aria-valuemax",String(g)),en(q,lt=>gt(Re(lt,q)[0]*g)),q.addEventListener("keydown",lt=>{let vt=ze(lt,ct(),at,0,g);vt!=null&&(lt.preventDefault(),gt(G(vt,0,g)))})};be(I,"Hue",360,1,()=>o,q=>{o=q,_t(!0)}),be(T,"Alpha",1,.01,()=>s,q=>{s=q,_t(!1)});let ue=q=>{a=q,u=null,f=null,_(),At(),x(),H()};return m.addEventListener("change",()=>{m.value!=="kept"&&(ue(m.value),t.onMode&&t.onMode())}),At(),{el:$,set:q=>{if(!ve(q)){console.warn(`[tweaks] color: "${String(q).slice(0,40)}" isn't a color \u2014 kept ${v()}`);return}let ot=document.activeElement;ot&&$.contains(ot)&&ot.matches("input")&&ot.blur(),[n,r,o,s]=Ye(q);let g=i?null:Jo(q);g&&g!==a&&ue(g),f=g?Ti(q):null,_(),u=Ai(q)?q.trim():null,dt(!0)},get:()=>v(),mode:()=>a,setMode:q=>{q!==a&&Tr.includes(q)&&ue(q)},reflow:U,swatchCss:()=>`linear-gradient(oklch(${n} ${r} ${o} / ${s}), oklch(${n} ${r} ${o} / ${s})), ${Zo}`,valueText:()=>Ci([n,r,o],a)+(s<.999?a==="hex"?un(s):` / ${+s.toFixed(2)}`:"")}}function ql(t,e){let{root:n,trigger:r,right:o}=ee("tw-color",t.label??"Color"),s=w("span","tw-trigger-chip tw-color-swatch"),i=w("span","tw-trigger-value");o.append(s,i);let a=w("div","tw-color-pop"),u=()=>{s.style.background=f.swatchCss(),i.textContent=f.valueText()},f=mn({value:t.value,mode:t.mode,onMode:()=>u()},l=>{u(),e(l)});return a.append(f.el),n.append(a),qt(n,r,a,{fallbackH:340,onOpen:f.reflow,onReflow:f.reflow}),u(),{el:n,set:l=>{l!=null&&(f.set(l),u())},get:()=>f.get()}}var Ni=(t,e,n,r)=>r<.999?`oklch(${+t.toFixed(4)} ${+e.toFixed(4)} ${+n.toFixed(2)} / ${+r.toFixed(3)})`:`oklch(${+t.toFixed(4)} ${+e.toFixed(4)} ${+n.toFixed(2)})`;pt("color",ql);pt("colorpicker",mn);xt();Nt();$n();var Xl=t=>Math.min(1,Math.max(0,t)),Fi=t=>or(t)?t.trim().toLowerCase():"linear";function Ul(t,e){if(e=Xl(e),!t)return e;let n=go(t);for(let r=1;r<n.length;r++)if(e<=n[r][0]){let[o,s]=n[r-1],[i,a]=n[r];return i>o?s+(a-s)*(e-o)/(i-o):a}return 1}var Wl=$t('<path d="M12 5v14m7-7H5"/>',"",2.5),Hi=(t,e)=>t&&!Array.isArray(t)&&typeof t[e]=="string"?t[e]:null,os=t=>Hi(t,"interpolation"),ss=t=>Hi(t,"easing"),Di=[["linear","Linear"],["ease","Ease"],["ease-in","Ease in"],["ease-out","Ease out"],["ease-in-out","Ease in-out"]];function _i(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,r=(s,i)=>ve(s)?{color:String(s).trim(),pos:G(+i||0,0,1)}:null,o=(n||[]).map(s=>Array.isArray(s)?r(s[0],s[1]):s&&typeof s=="object"?r(s.color,s.pos):null).filter(Boolean);return o.length>=2?o:e}function Yl(t,e){t.value??(t.value=t.stops);let n=os(t.value)??os(t),r=ss(t.value)??ss(t),o=_i(t.value),s=o[0],i=Fi(r),{root:a,trigger:u,right:f}=ee("tw-gradient",t.label??"Gradient"),l=w("span","tw-trigger-chip tw-gradient-preview");l.setAttribute("role","img"),f.append(l);let p=w("div","tw-color-pop tw-gradient-pop"),d=w("div","tw-gradient-bar-row"),k=w("div","tw-gradient-bar"),C=w("div","tw-gradient-grad"),v=w("div","tw-gradient-rail");k.append(C,v);let $=wt("tw-gradient-add",Wl);$.title="Add a stop after the selected one",$.setAttribute("aria-label","Add a color stop after the selected one"),d.append(k,$);let A=()=>[...o].sort((x,D)=>x.pos-D.pos),b=()=>xi(j.mode()),O=()=>({stops:A().map(x=>({color:x.color,pos:+x.pos.toFixed(4)})),interpolation:b(),easing:i}),I=()=>{let x=sr(O());C.style.background=x,l.style.background=`${x}, ${Zo}`},z=()=>{l.setAttribute("aria-label",`${o.length} stop${o.length===1?"":"s"}`)},h=()=>e(O()),T=x=>[...v.children].find(D=>D._stop===x),j=mn({value:s.color,mode:Vo(n||"oklch"),onMode:()=>{I(),h()}},x=>{s.color=x,T(s)?.style.setProperty("--stop",x),I(),h()}),K=w("select","tw-color-mode tw-gradient-ease");K.setAttribute("aria-label","Easing between stops"),K.title="How the ramp blends between stops";for(let[x,D]of Di){let et=document.createElement("option");et.value=x,et.textContent=D,K.append(et)}let E=()=>{let x=K.querySelector("option[data-custom]");Di.some(([D])=>D===i)?x?.remove():(x||(x=document.createElement("option"),x.dataset.custom="",x.textContent="Custom",K.append(x)),x.value=i),K.value=i};K.addEventListener("change",()=>{i=K.value,E(),I(),h()}),j.el.querySelector(".tw-color-mode").after(K),E(),p.append(d,j.el),a.append(p);let m=x=>x.setAttribute("aria-label",`Color stop at ${Math.round(x._stop.pos*100)}%${x._stop===s?", selected":""}`),B=()=>{for(let x of v.children)x.dataset.sel=String(x._stop===s),m(x)},_=(x,D)=>{x._stop.pos=G(D,0,1),x.style.left=x._stop.pos*100+"%",m(x),I(),h()},Z=()=>{v.replaceChildren();for(let x of o){let D=wt("tw-gradient-stop");D._stop=x,D.style.left=x.pos*100+"%",D.style.setProperty("--stop",x.color),D.dataset.sel=String(x===s),m(D),D.addEventListener("focus",()=>tt(x,!1));let et=!1;ge(D,{onDown:W=>{W.preventDefault(),W.stopPropagation(),D.focus({focusVisible:!1}),tt(x,!1),et=!1},onMove:W=>{let rt=v.getBoundingClientRect();_(D,(W.clientX-rt.left)/(rt.width||1)),et=o.length>2&&(W.clientY<rt.top-24||W.clientY>rt.bottom+24),D.dataset.removing=String(et)},onEnd:()=>{et?S(x):D.dataset.removing="false"}}),D.addEventListener("dblclick",W=>{W.preventDefault(),S(x)}),D.addEventListener("keydown",W=>{let[rt]=Se(W);rt&&(W.preventDefault(),_(D,x.pos+rt*(W.shiftKey?.1:.01)))}),v.append(D)}},tt=(x,D)=>{x!==s&&(j.set(x.color),s=x),D?Z():B()},V=x=>{let D=v.getBoundingClientRect();return G((x-D.left)/(D.width||1),0,1)},Q=x=>{let D=A(),et=D[0],W=D[D.length-1];for(let dt=0;dt<D.length-1;dt++)if(x>=D[dt].pos&&x<=D[dt+1].pos){et=D[dt],W=D[dt+1];break}let rt=Ul(or(i),W.pos>et.pos?G((x-et.pos)/(W.pos-et.pos),0,1):0),H=Ye(et.color),L=Ye(W.color),X=dt=>dt[1]<1e-4,U=L[2]-H[2];U>180?U-=360:U<-180&&(U+=360),(X(H)||X(L))&&(U=0);let mt=(((X(H)&&!X(L)?L[2]:H[2])+U*rt)%360+360)%360;return Ni(H[0]+(L[0]-H[0])*rt,H[1]+(L[1]-H[1])*rt,mt,H[3]+(L[3]-H[3])*rt)},S=x=>{if(o.length<=2)return;let D=o.indexOf(x);if(D<0)return;o.splice(D,1);let et=s===x?o[Math.max(0,D-1)]:s;I(),tt(et,!0),z(),h(),T(s)?.focus()},N=x=>{let D={color:Q(x),pos:G(x,0,1)};o.push(D),I(),tt(D,!0),z(),h()},F=()=>{let x=A(),D=x.indexOf(s);N(D<x.length-1?(x[D].pos+x[D+1].pos)/2:(x[D-1].pos+x[D].pos)/2)};return $.addEventListener("click",x=>{x.stopPropagation(),F()}),k.addEventListener("dblclick",x=>{x.target.closest(".tw-gradient-stop")||(x.preventDefault(),N(V(x.clientX)))}),p.tabIndex=-1,p.addEventListener("keydown",x=>{(x.key==="Delete"||x.key==="Backspace")&&!x.altKey&&!/^(input|textarea|select)$/i.test(x.target.tagName)&&o.length>2&&(x.preventDefault(),S(s))}),qt(a,u,p,{fallbackH:392,onOpen:j.reflow,onReflow:j.reflow,initialFocus:()=>T(s)}),Z(),I(),z(),{el:a,set:x=>{let D=os(x);D&&j.setMode(Vo(D));let et=ss(x);et!==null&&(i=Fi(et),E());let W=_i(x).sort((rt,H)=>rt.pos-H.pos);if(W.length===o.length)A().forEach((rt,H)=>{rt.color=W[H].color,rt.pos=W[H].pos;let L=T(rt);L&&(L.style.left=rt.pos*100+"%",L.style.setProperty("--stop",rt.color))});else{let rt=s.pos;o=W,s=o.reduce((H,L)=>Math.abs(L.pos-rt)<Math.abs(H.pos-rt)?L:H,o[0]),Z()}I(),z(),j.set(s.color)},get:()=>O()}}pt("gradient",Yl);xt();Nt();var Bn={x:0,y:8,blur:24,spread:0,color:"rgb(0 0 0 / 0.18)"},Vn=(t,e)=>t!=null&&t!==""&&Number.isFinite(+t)?+t:e,gn=t=>String(+t.toFixed(1)),Jl=/#[0-9a-f]{3,8}\b|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\([^()]*\)/i,Zl=/^(-?\d*\.?\d+)(px)?$/,Ql=t=>{let e=Jl.exec(t);if(!e||!ve(e[0]))return null;let n=(t.slice(0,e.index)+" "+t.slice(e.index+e[0].length)).trim().split(/\s+/).filter(Boolean),r=n.includes("inset"),o=n.filter(i=>i!=="inset");if(o.length<2||o.length>4||!o.every(i=>Zl.test(i)))return null;let s=o.map(i=>+i.replace(/px$/,""));return{inset:r,x:s[0],y:s[1],blur:s[2]??0,spread:s[3]??0,color:e[0]}},tc=$t('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',"tw-shadow-chevron",2.5);function ec(t,e){let n=S=>typeof S=="string"?Ql(S):yt(S)?S:null,r=n(t.value??t)||{},o=!!r.inset,{root:s,trigger:i,right:a}=ee("tw-shadow",t.label??"Shadow"),u=w("span","tw-trigger-chip tw-shadow-chip"),f=w("span","tw-shadow-chip-tile");u.append(f);let l=w("span","tw-trigger-value");a.append(u,l);let p=w("div","tw-color-pop tw-shadow-pop"),d=w("div","tw-shadow-stage"),k=w("div","tw-shadow-card");d.append(k);let C=De([{value:"outer",label:"Outer"},{value:"inner",label:"Inner"}],o?"inner":"outer",S=>{S==="inner"!==o&&(o=S==="inner",tt(),Z())},"Shadow position"),v=w("div","tw-row");v.append(st("span","tw-row-label","Position"),C.el);let $=w("div","tw-fields tw-shadow-fields"),A=(S,N,F)=>{let x=Rt({label:S,value:N,step:1,min:F,unit:"px"},()=>{tt(),Z()});return $.append(x.el),x},b=A("X",Vn(r.x,Bn.x)),O=A("Y",Vn(r.y,Bn.y)),I=A("Blur",Vn(r.blur,Bn.blur),0),z=A("Spread",Vn(r.spread,Bn.spread)),h=()=>[b,O,I,z].map(S=>S.get()),T=wt("tw-trigger tw-shadow-color");T.setAttribute("aria-expanded","false");let j=w("span","tw-trigger-chip tw-color-swatch"),K=w("span","tw-trigger-value"),E=w("span","tw-trigger-right");E.append(j,K),E.insertAdjacentHTML("beforeend",tc),T.append(st("span","tw-trigger-label","Color"),E);let m=mn({value:typeof r.color=="string"&&ve(r.color)?r.color:Bn.color,onMode:()=>tt()},()=>{tt(),Z()});m.el.hidden=!0,T.addEventListener("click",()=>{let S=m.el.hidden;m.el.hidden=!S,T.setAttribute("aria-expanded",String(S)),V.reflow()}),p.append(d,v,$,T,m.el),s.append(p);let B=S=>`${o?"inset ":""}${h().map(N=>`${gn(N*S)}px`).join(" ")} ${m.get()}`,_=()=>{let[S,N,F,x]=h().map(D=>+gn(D));return{inset:o,x:S,y:N,blur:F,spread:x,color:m.get(),css:B(1)}},Z=()=>e(_()),tt=()=>{k.style.boxShadow=B(1),f.style.boxShadow=B(.3);let[S,N,F,x]=h();l.textContent=`${o?"in ":""}${gn(S)} ${gn(N)} ${gn(F)}${x?" "+gn(x):""}`,j.style.background=m.swatchCss(),K.textContent=m.valueText()},V=qt(s,i,p,{fallbackH:300,onOpen:m.reflow,onReflow:m.reflow});return tt(),{el:s,set:S=>{let N=n(S);N&&(N.inset!=null&&(o=!!N.inset,C.set(o?"inner":"outer")),[["x",b],["y",O],["blur",I],["spread",z]].forEach(([F,x])=>{N[F]!=null&&x.set(Vn(N[F],x.get()))}),typeof N.color=="string"&&ve(N.color)&&m.set(N.color),tt())},get:_}}pt("shadow",ec);xt();Nt();var nc=$t('<path d="M3 9V7a4 4 0 0 1 4-4h2M15 3h2a4 4 0 0 1 4 4v2M21 15v2a4 4 0 0 1-4 4h-2M9 21H7a4 4 0 0 1-4-4v-2"/>'),rc=$t('<path d="M3 13V8a5 5 0 0 1 5-5h5"/>',"",1.5,16),oc=$t('<path d="M3 10V8a5 5 0 0 1 5-5a5 5 0 0 1 5 5v2"/>',"",1.5,16),sc=/^(-?\d*\.?\d+)([a-z%]*)$/i,Ii=t=>t!=null&&t!==""&&Number.isFinite(+t)?+t:null,is=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),Bi=t=>{let e=t.trim().split(/\s+/).map(n=>sc.exec(n));return e.length<=4&&e.every(Boolean)?e.map(n=>[+n[1],n[2].toLowerCase()]):null},ji=(t,e)=>{if(typeof t=="number")return Number.isFinite(t)?[t,t,t,t]:null;if(typeof t=="string"){let n=Bi(t);return n?is(n.map(r=>r[0])):null}if(Array.isArray(t)){let n=t.map(Ii);return n.length>=1&&n.length<=4&&n.every(r=>r!==null)?is(n):null}if(t&&typeof t=="object"){let n=t,r=e.slice(),o=!1;return["top","right","bottom","left"].forEach((s,i)=>{let a=Ii(n[s]);a!==null&&(r[i]=a,o=!0)}),o?r:null}return null},ic=(t,e,n)=>{let r=typeof t=="string"&&Bi(t);if(!r)return"";let o=is(r.map((s,i)=>i)).map((s,i)=>[n[i].toLowerCase(),r[s][0]?r[s][1]:""]).filter(([,s])=>s);return new Set(o.map(([,s])=>s)).size<2?o.length?o[0][1]:"":(console.warn(`[tweaks] sides "${e}": "${t}" mixes units (${o.map(s=>s.join(" ")).join(", ")}) and the control edits one, so all four read as px; write one unit, or set unit`),"")};function ac(t,e){let n=!!t.corners,r=n?["Top-left","Top-right","Bottom-right","Bottom-left"]:["Top","Right","Bottom","Left"],o=t.label||t.key,s=t.value??t,i=typeof t.unit=="string"&&t.unit.trim()||ic(s,o,r)||"px",a=ji(s,[0,0,0,0]),u={step:t.step??Math.min(1,...(a||[]).map(Pe)),min:t.min??(n?0:void 0),max:t.max,unit:i},f=m=>String(+m.toFixed(Math.max(2,ie(+u.step))));!a&&t.value!=null&&(typeof t.value!="object"||Array.isArray(t.value))&&console.warn(`[tweaks] sides "${o}": can't read ${JSON.stringify(t.value)?.slice(0,60)}, so it starts at 0; it takes one to four numbers or plain lengths, like "8px 16px"`),a=a||[0,0,0,0];let l=a.every(m=>m===a[0]),p=w("div","tw-sides"),d=Rt({label:t.label,value:a[0],row:!0,...u},m=>{a=[m,m,m,m],j(),T()}),k=n?"Independent corners":"Independent sides",C=wt("tw-sides-link",nc);C.setAttribute("aria-label",k),C.title=k,C.addEventListener("click",()=>K());let v=w("div","tw-sides-multi"),$=w("div","tw-sides-head"),A=w("span","tw-sides-sum"),b=document.createTextNode("");A.append(b,st("span","tw-sides-unit",i)),$.append(st("span","tw-row-label",t.label),A);let O=w("div","tw-fields"),I=r.map((m,B)=>Rt({label:m,value:a[B],...u},_=>{a[B]=_,j(),T()}));I.forEach((m,B)=>{let _=m.el.querySelector(".tw-field-label");_.title=r[B],_.classList.add("tw-sides-glyph"),_.dataset.at=r[B].toLowerCase(),_.innerHTML=n?rc:oc,O.append(m.el)}),v.append($,O),p.append(d.el,v),a=I.map(m=>m.get());let z=()=>{let[m,B,_,Z]=a.map(f),tt=V=>V==="0"?"0":V+i;return(m===_&&B===Z?m===B?[m]:[m,B]:B===Z?[m,B,_]:[m,B,_,Z]).map(tt).join(" ")},h=()=>({top:a[0],right:a[1],bottom:a[2],left:a[3],css:z()}),T=()=>e(h()),j=()=>{p.classList.toggle("is-linked",l),C.setAttribute("aria-pressed",String(!l)),(l?d.el:$).append(C),d.set(a[0]),I.forEach((m,B)=>m.set(a[B])),b.data=a.map(f).join(" ")},K=()=>{l=!l,l&&(a=[a[0],a[0],a[0],a[0]]),j(),T(),C.focus()};return j(),{el:p,set:m=>{let B=ji(m,a);B&&(I.forEach((_,Z)=>_.set(B[Z])),a=I.map(_=>_.get()),l=a.every(_=>_===a[0]),j())},get:h,range:d.range}}pt("sides",ac);xt();Nt();function lc(t,e){let n=t.label,r=+(t.value&&t.value[0]),o=+(t.value&&t.value[1]),s=Number.isFinite(r)?r:0,i=Number.isFinite(o)?o:1,{min:a,max:u,step:f}=ar(t.min,t.max,t.step,[s,i],n);[a,u]=on(a,u,f);let l=ie(f),p=N=>Ke(N,a,f),d=0,k=0,C=(N,F)=>{d=G(p(Math.min(N,F)),a,u),k=G(p(Math.max(N,F)),a,u)};C(Number.isFinite(r)?r:a,Number.isFinite(o)?o:u);let v=w("div","tw-slider-wrap"),$=w("div","tw-slider tw-interval"),A=w("div","tw-slider-fill"),b=w("div","tw-slider-handle"),O=w("div","tw-slider-handle"),I=st("span","tw-slider-label",n),z=w("span","tw-slider-value");$.append(A,b,O,I,z),v.append($),[["minimum",b],["maximum",O]].forEach(([N,F])=>{F.tabIndex=0,F.setAttribute("role","slider"),F.setAttribute("aria-label",`${n} ${N}`),F.setAttribute("aria-valuemin",String(a)),F.setAttribute("aria-valuemax",String(u))});let h=N=>(N-a)/(u-a||1)*100,T=N=>`clamp(5px, calc(${N}% - 1.5px), calc(100% - 9px))`,j=()=>{let N=h(d),F=h(k);A.style.left=N+"%",A.style.width=Math.max(0,F-N)+"%",b.style.left=T(N),O.style.left=T(F),z.textContent=`${d.toFixed(l)} \u2013 ${k.toFixed(l)}`,b.setAttribute("aria-valuenow",String(d)),O.setAttribute("aria-valuenow",String(k));let x=v.offsetWidth;if(x){I.style.maxWidth=Math.max(0,x-z.offsetWidth-12-8-10)+"px";let D=et=>lr(I,z,et/100*x-1.5,3);b.classList.toggle("is-dodge",D(h(d))),O.classList.toggle("is-dodge",D(h(k)))}};j();let K=()=>e([d,k]),E=N=>{d=G(Math.min(p(N),k),a,u),j()},m=N=>{k=G(Math.max(p(N),d),a,u),j()},B=null,_=1,Z=null,tt=N=>{let F=v.offsetWidth||B.width,x=G((N-B.left)/_/F,0,1);return G(a+x*(u-a),a,u)},V=N=>{let F=tt(N);Z||(Z=F<d?"lo":F>k?"hi":Math.abs(F-d)<=Math.abs(F-k)?"lo":"hi"),Z==="lo"?E(F):m(F),K()};ge($,{onDown:N=>{N.preventDefault(),B=v.getBoundingClientRect(),_=B.width/(v.offsetWidth||B.width),$.style.transition="",$.classList.add("is-active","is-dragging"),Z=null,V(N.clientX),(Z==="lo"?b:O).focus({focusVisible:!1})},onMove:N=>{V(N.clientX),dr($,B,N.clientX)},onEnd:()=>{fr($),B=null,Z=null,$.classList.remove("is-active","is-dragging")}}),pr($,j),Wt(j),Zt($,[[window,"resize"],[window,"tw-reflow"]],j);let Q=(u-a)/10||f*10,S=N=>F=>{let x=N==="lo"?ze(F,d,f,a,k,Q):ze(F,k,f,d,u,Q);x!=null&&(F.preventDefault(),N==="lo"?E(x):m(x),K())};return b.addEventListener("keydown",S("lo")),O.addEventListener("keydown",S("hi")),{el:v,set:N=>{if(Array.isArray(N)){let F=+N[0],x=+N[1];if(!Number.isFinite(F)||!Number.isFinite(x))return;C(F,x),j()}},get:()=>[d,k],range:[a,u]}}pt("interval",lc);xt();var cc=0;function uc(t){let e=`tw-tabs-${++cc}`,n=w("div","tw-tabs"),r=w("div","tw-tabs-bar");r.setAttribute("role","tablist");let o=w("div","tw-tabs-pill");r.append(o);let s=w("div","tw-tabs-pages"),i=[],a=t.pages.map((p,d)=>{let k=st("button","tw-tabs-tab",p.title);k.setAttribute("role","tab"),k.id=`${e}-tab-${d}`,k.setAttribute("aria-controls",`${e}-page-${d}`);let C=w("div","tw-tabs-page tw-controls");return C.setAttribute("role","tabpanel"),C.id=`${e}-page-${d}`,C.setAttribute("aria-labelledby",k.id),i.push(C),s.append(C),k.addEventListener("click",()=>l(d)),r.append(k),k});n.append(r,s);let u=p=>Co(r,o,p),f=p=>{a.forEach((d,k)=>{d.dataset.active=String(k===p),d.setAttribute("aria-selected",String(k===p)),d.tabIndex=k===p?0:-1}),i.forEach((d,k)=>d.dataset.active=String(k===p))};f(0);function l(p){f(p),u(!0),ur()}return r.addEventListener("keydown",p=>{let d=a.findIndex(C=>C.dataset.active==="true");if(d<0)return;let k=Xe(p.key,d,a.length,-1);k<0||(p.preventDefault(),l(k),a[k].focus())}),Wt(u),{el:n,bodies:i,activate:l,active:()=>a.findIndex(p=>p.dataset.active==="true")}}pt("tabs",uc);xt();Nt();var pc=t=>String(t).replace(/[\\"]/g,"\\$&").replace(/[\x00-\x1f\x7f]/g,e=>"\\"+e.charCodeAt(0).toString(16)+" "),as=t=>`url("${pc(t)}")`,Pr=1<<20,Vi=t=>t>=Pr?`${Math.round(t/Pr*10)/10} MB`:t>=1024?`${Math.round(t/1024)} KB`:`${t} B`,Ki=t=>{if(/^data:/i.test(t))return"";let e=t.split(/[?#]/)[0].split("/").pop().replace(/\.\w+$/,"");try{return decodeURIComponent(e)}catch{return e}},dc=/^image\/(gif|svg\+xml)$/i,Gi=1.5*Pr,Ui=`\x89PNG\r
|
|
2
|
+
var cl=Object.defineProperty;var Pt=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(o){throw n=[o],o}};var qt=(e,t)=>{for(var n in t)cl(e,n,{get:t[n],enumerable:!0})};var cn={};qt(cn,{SPRING_DUR:()=>ln,accentColor:()=>Rn,arrowStep:()=>Rt,badGradient:()=>wl,boxFrac:()=>jt,cssVar:()=>br,decimalStep:()=>It,dragGesture:()=>ht,dragPane:()=>dl,escapeReverts:()=>mo,fitCanvas:()=>wr,grabSurface:()=>an,notice:()=>Ut,numField:()=>Ne,sayWhenKeysStop:()=>Nn,selectAllOnFocus:()=>yr,springCurve:()=>$n,springFromTime:()=>kr,springRun:()=>vr,springSpan:()=>Us,svgEl:()=>Oe,timeFromSpring:()=>go,triggerRow:()=>nt,unknownType:()=>yl});function ht(e,{onDown:t,onMove:n,onEnd:o}={}){let r=null,s=i=>{r===null||i.pointerId!==r||(r=null,o&&o(i))};e.addEventListener("pointerdown",i=>{if(!(i.button!==0||r!==null)){r=i.pointerId;try{e.setPointerCapture(i.pointerId)}catch{}t&&t(i)}}),e.addEventListener("pointermove",i=>{if(i.pointerId===r){if(i.buttons===0)return s(i);n&&n(i)}}),e.addEventListener("pointerup",s),e.addEventListener("pointercancel",s),e.addEventListener("lostpointercapture",s)}function fl(){let e=null,t=0,n=0,o=0;return{show(r,s,i,a){e=b("div","twk-grab-guide twk-portal"),e.innerHTML='<span class="twk-grab-line"></span><span class="twk-grab-dot"></span><span class="twk-grab-arrow"></span><span class="twk-grab-bubble"></span>',t=s,n=r,o=i??r,e.children[1].style.cssText=`left:${r}px;top:${t}px`,dn(e,a),Fn(e,a)},move(r,s){e&&(e.children[0].style.cssText=`left:${Math.min(n,r)}px;top:${t}px;width:${Math.abs(r-n)}px`,e.children[2].style.cssText=`left:${r}px;top:${t}px;transform:translate(-50%,-50%) scaleX(${r>=n?1:-1})`,e.children[3].style.cssText=`left:${o}px;top:${t-16}px`,e.children[3].textContent=s)},hide(){e&&(e.remove(),e=null)}}}function ml(e,t,n,o,r,s){let i=0,a=0,c=1,d=fl();ht(e,{onDown:p=>{p.preventDefault(),i=p.clientX,a=o(),c=1,e.classList.add("is-dragging");let f=t.getBoundingClientRect();d.show(p.clientX,f.top+f.height/2,f.left+f.width/2,t),d.move(p.clientX,s())},onMove:p=>{let f=p.shiftKey?10:p.altKey?.1:1;f!==c&&(c=f,i=p.clientX,a=o()),r(a+(p.clientX-i)*n*f),d.move(p.clientX,s())},onEnd:()=>{e.classList.remove("is-dragging"),d.hide()}})}function Ne(e,t){let n=Number.isFinite(+e.step)&&+e.step>0?+e.step:1,o=m=>m==null?NaN:+m,r=o(e.min),s=o(e.max);if(Number.isFinite(r)&&Number.isFinite(s)&&s<r){Ut("swap",[e.label??"number",r,s]);let m=r;r=s,s=m}let i=Number.isFinite(r)?r:0,a=lt(n),[c,d]=un(Number.isFinite(r)?r:-1/0,Number.isFinite(s)?s:1/0,n,i),p=m=>{let T=Xt(m,i,n);return e.soft?T:q(T,c,d)},f=p(Number.isFinite(+e.value)?+e.value:0),l=b("div",e.row?"twk-row":"twk-field"),k=b("div","twk-num-wrap"),L=b("span","twk-num-grab",pl);L.setAttribute("aria-hidden","true"),L.title=ce()("dragToAdjust","Drag to adjust");let x=b("input","twk-num");x.type="text",x.inputMode="decimal",x.setAttribute("aria-label",e.unit?`${e.label} (${e.unit})`:e.label),x.value=f.toFixed(a),bt(x),k.append(L,x),e.unit&&k.append(ie("span","twk-num-unit",e.unit)),l.append(ie("span",e.row?"twk-row-label":"twk-field-label",e.label),k);let M=(m,T=!0)=>{m=+m,Number.isFinite(m)&&(f=p(m),x.value=f.toFixed(a),T&&t&&t(f))},E=()=>Number(x.value.replace(e.unit||"","").trim()||NaN);return x.addEventListener("change",()=>{let m=E();Number.isFinite(m)&&p(m)!==f?M(m):x.value=f.toFixed(a)}),mo(x,()=>f.toFixed(a)),x.addEventListener("keydown",m=>{if(m.key==="Enter")return x.blur();let T=m.key==="ArrowUp"?1:m.key==="ArrowDown"?-1:0;if(!T)return;m.preventDefault();let j=E();M((Number.isFinite(j)?j:f)+T*n*(m.shiftKey?10:1))}),ml(L,k,n,()=>f,M,()=>x.value),{el:l,set:m=>M(m,!1),get:()=>f,range:[c,d]}}function $n(e,t,n,o=64,r=Us(e,t,n)){let s=Xs(e,t,n),i=[];for(let a=0;a<o;a++)i.push(s(a/(o-1)*r));return i}var ul,Oe,zs,br,Rn,yr,mo,dl,an,jt,Rt,Nn,wr,nt,pl,It,sn,ln,gl,Gs,kr,go,qs,Us,Xs,vr,Vs,hl,bl,yl,Ks,wl,kl,Ut,$e=Pt(()=>{we();ul="http://www.w3.org/2000/svg",Oe=(e,t)=>{let n=document.createElementNS(ul,e);return t&&n.setAttribute("class",t),n},zs=(e,t)=>{if(!/light-dark\(/i.test(e))return e;let n=t.colorScheme||"",o=/\bdark\b/.test(n)&&(!/\blight\b/.test(n)||matchMedia("(prefers-color-scheme: dark)").matches);for(let r;(r=e.search(/light-dark\(/i))!==-1;){let s=0,i=-1,a=r+11;for(;a<e.length;a++){let c=e[a];if(c==="(")s++;else if(c===")"){if(!s)break;s--}else c===","&&!s&&i<0&&(i=a)}if(i<0||a>=e.length)return"";e=e.slice(0,r)+(o?e.slice(i+1,a):e.slice(r+11,i)).trim()+e.slice(a+1)}return e},br=(e,t)=>{let n=getComputedStyle(e);return zs(n.getPropertyValue(t).trim(),n)},Rn=e=>{let t=getComputedStyle(e),n=o=>zs(t.getPropertyValue(o).trim(),t);return n("--twk-accent")||n("--twk-text-primary")||"#fff"},yr=e=>{let t=!1;e.addEventListener("pointerdown",n=>{t=n.button===0&&Ae(e)!==e}),e.addEventListener("focus",()=>e.select()),e.addEventListener("mouseup",n=>{t&&(t=!1,n.button===0&&Ae(e)===e&&e.selectionStart===0&&e.selectionEnd===e.value.length&&n.preventDefault())})},mo=(e,t)=>e.addEventListener("keydown",n=>{n.key!=="Escape"||e.value===t()||(n.preventDefault(),n.stopPropagation(),e.value=t())}),dl=(e,t,n)=>e.addEventListener("pointerdown",o=>{if(o.target!==e||o.button!==0||!t.open)return;o.preventDefault();let r=o.pointerId,s=o.clientX,i=o.clientY,a=parseFloat(e.style.left),c=parseFloat(e.style.top),d=t.moved,p=!1;try{e.setPointerCapture(r)}catch{}let f=x=>{if(x.pointerId===r){if(!p){if(Math.hypot(x.clientX-s,x.clientY-i)<4)return;p=t.moved=!0,e.classList.add("is-moving")}e.style.left=a+x.clientX-s+"px",e.style.top=c+x.clientY-i+"px",n()}},l=x=>{x.pointerId===r&&L()},k=x=>{if(!(x.key!=="Escape"||!p)){x.preventDefault(),x.stopPropagation(),e.style.left=a+"px",e.style.top=c+"px",t.moved=d,n(),L();try{e.releasePointerCapture(r)}catch{}}},L=()=>{e.removeEventListener("pointermove",f),e.removeEventListener("pointerup",l),e.removeEventListener("pointercancel",l),e.removeEventListener("lostpointercapture",l),document.removeEventListener("keydown",k,!0),e.classList.remove("is-moving")};e.addEventListener("pointermove",f),e.addEventListener("pointerup",l),e.addEventListener("pointercancel",l),e.addEventListener("lostpointercapture",l),document.addEventListener("keydown",k,!0)});an=(e,t)=>ht(e,{onDown:n=>{e.classList.add("is-grabbing"),t(n)},onMove:t,onEnd:()=>e.classList.remove("is-grabbing")}),jt=(e,t)=>{let n=t.getBoundingClientRect();return[q((e.clientX-n.left)/n.width,0,1),q((e.clientY-n.top)/n.height,0,1)]},Rt=e=>[e.key==="ArrowRight"?1:e.key==="ArrowLeft"?-1:0,e.key==="ArrowUp"?1:e.key==="ArrowDown"?-1:0],Nn=e=>{let t=0;return()=>{clearTimeout(t),t=setTimeout(()=>{e.isConnected&&xt(e.getAttribute("aria-description")||"")},250)}},wr=(e,t,n=1/0)=>{let o=e.getBoundingClientRect(),r=Math.min(window.devicePixelRatio||1,n);return e.width=o.width*r,e.height=o.height*r,t.setTransform(r,0,0,r,0,0),[o.width,o.height]},nt=(e,t)=>{let n=b("div",e),o=ye("twk-trigger");o.setAttribute("aria-expanded","false");let r=b("span","twk-trigger-right");return o.append(ie("span","twk-trigger-label",t),r),n.append(o),{root:n,trigger:o,right:r}},pl=Pe('<path d="M6 4v8M10 4v8"/>',"",2,16);It=e=>{let t=Number(Math.abs(+e).toPrecision(12));if(!t||!Number.isFinite(t))return 1/0;let n=lt(t),o=Math.floor(Math.log10(t));if(n)return+`1e${o+n+1>8?o-3:-n}`;let r=0;for(;r<15&&t%10**(r+1)===0;)r++;return 10**r};de("number",(e,t)=>Ne({...e,step:e.step??Math.min(1,It(e.value),It(e.min)),row:!0},t));sn=2*Math.PI/1.2,ln=[.01,10],gl=e=>e<0?1/Math.max(1+e,.05):Math.max(1-e,.05),Gs=e=>{if(!(e>1))return 1;let t=Math.sqrt(e*e-1),n=e-t,o=e+t,r=2*t*Math.exp(-sn)*(1+sn),s=sn;for(let i=1;i<12;i++)s-=(o*Math.exp(-n*s)-n*Math.exp(-o*s)-r)/(Math.exp(-o*s)-Math.exp(-n*s));return s/sn},kr=(e,t)=>{let n=gl(t),o=sn/e*Gs(n),r=o*o;return{stiffness:r,damping:2*n*Math.sqrt(r),mass:1}},go=(e,t,n=1)=>{let o=t/(2*Math.sqrt(e*n));return{visualDuration:sn*Gs(o)/Math.sqrt(e/n),bounce:o>1?1/o-1:1-o}},qs=(e,t)=>t>1?e*(t-Math.sqrt(t*t-1)):t*e,Us=(e,t,n)=>Math.min(2.2,9/Math.max(qs(Math.sqrt(e/n),t/(2*Math.sqrt(e*n))),.5)),Xs=(e,t,n)=>{let o=Math.sqrt(e/n),r=t/(2*Math.sqrt(e*n));if(r<1-1e-4){let c=o*Math.sqrt(1-r*r);return d=>1-Math.exp(-r*o*d)*(Math.cos(c*d)+r*o/c*Math.sin(c*d))}if(r<=1+1e-4)return c=>1-Math.exp(-o*c)*(1+o*c);let s=Math.sqrt(r*r-1),i=o*(r+s),a=o*(r-s);return c=>1-(i*Math.exp(-a*c)-a*Math.exp(-i*c))/(i-a)};vr=(e,t,n)=>{let o=Math.sqrt(e/n),r=t/(2*Math.sqrt(e*n)),s=Xs(e,t,n),i=Math.min(7/Math.max(qs(o,r),.001),10),a=r<1?o*Math.sqrt(1-r*r):0,c=Math.min(Math.max(48,Math.ceil(a?24*i*a/(2*Math.PI):i*40)),800),d=Array.from({length:c},(f,l)=>l/(c-1)*i);if(a)for(let f=Math.PI/a;f<i;f+=Math.PI/a)d.push(f);d.sort((f,l)=>f-l);let p=d.filter((f,l)=>l===0||f-d[l-1]>1e-6).map((f,l,k)=>`${l===k.length-1?1:+s(f).toFixed(3)} ${+(f/i*100).toFixed(2)}%`);return{duration:Math.round(i*1e3),easing:`linear(${p.join(", ")})`}},Vs=Object.assign(Object.create(null),{bezier:"cubicbezier","cubic-bezier":"cubicbezier",easing:"motion",toggle:"checkbox",switch:"checkbox",bool:"checkbox",boolean:"checkbox",dropdown:"list",select:"list",string:"text",textarea:"text",range:"slider",fps:"fpsgraph"}),hl=(e,t)=>{let n=e.toLowerCase();return t.includes(Vs[n])?Vs[n]:t.find(o=>{let r=o.toLowerCase(),s=0;for(;s<n.length&&n[s]===r[s];)s++;return[[1,1],[0,1],[1,0]].some(([i,a])=>n.slice(s+i)===r.slice(s+a))})},bl={control:"is skipped, as an object with value, options or action is read as a control",folder:"builds a folder",markup:"is skipped"},yl=(e,t,n,o)=>{let r=[...new Set(n)].filter(i=>i!=="folder"&&i!=="colorpicker").sort(),s=hl(t,r);console.warn(`[tweaks] ${e}: "${t}" isn't a control type${s?` \u2014 did you mean "${s}"?`:"."} It ${bl[o]}. Types: ${r.join(", ")}`)},Ks=new Set,wl=(e,t,n,o)=>{let r=Array.isArray(n)?o<n.length?`skipped ${n.length-o} of ${n.length} stops without a CSS color and a numeric pos`:"the gradient has no stops":`expected { stops: [{ color, pos }] }, got ${t===null?"null":typeof t=="object"?"an object without a stops array":typeof t}`;Ks.has(e+r)||(Ks.add(e+r),console.warn(`[tweaks] ${e}(): ${r}`))},kl={clamp:(e,t,n,o,r)=>`set("${e}", ${JSON.stringify(t)}) clamped to ${n>-1/0?n:"\u2212\u221E"}\u2013${o<1/0?o:"\u221E"}; widen min/max${r==="slider"||r==="number"?", or set soft: true to allow it":""}`,sharedKey:e=>`persist: another live panel already saves under "${e}", so each overwrites the other's values; give one its own persist key`,pointValue:(e,t)=>`"${e}": a point value that isn't a number starts at 0 (${t})`,swap:(e,t,n)=>`"${e}": min ${t} is above max ${n}, so they were swapped`,theme:e=>`theme: "${e}" isn't a --twk-* token (${e.startsWith("--tw-")?`renamed "--twk-${e.slice(5)}" in 0.7`:'"--twk-accent", say'}) \u2014 skipped`,ambiguousPath:(e,t)=>`set("${e}") is ambiguous \u2014 ${t} controls read as that path (a key holding "." beside a folder); rename one`,noPath:e=>`set("${e}") \u2014 no control at that path`,noValue:(e,t)=>`set("${e}") ignored \u2014 a ${t} holds no value to set`,ambiguousKey:(e,t,n)=>`set("${e}") is ambiguous \u2014 ${t} controls share that key; use a dotted path (e.g. "${n}")`,springDur:(e,t,n)=>`"${e}": a spring visualDuration of ${t} s is past the editor's 0.01\u201310 s, so it uses ${n} s`,springKept:(e,t,n,o)=>`"${e}": a spring of stiffness ${t}, damping ${n}, mass ${o} is past what the editor draws (0.01\u201310 s, bounce \xB195%); the value keeps it as written, the editor shows the nearest`,noControl:(e,t)=>t?`set("${e}") ignored \u2014 it's a folder/tabs group; set its children instead`:`set("${e}") ignored \u2014 no control has that key`},Ut=(e,t)=>{let n=kl[e];n&&console.warn(`[tweaks] ${n(...t)}`)};Ws(Ut)});function pn(e){if(typeof e!="string")return null;let t=e.trim().toLowerCase();if(_n[t])return _n[t];let n=/^cubic-bezier\(([^()]*)\)$/.exec(t);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:[Mr(o[0]),o[1],Mr(o[2]),o[3]]}function Sr(e){let t=[];for(let n=0;n<=Er;n++){let o=n/Er,r=1-o,s=3*r*r*o,i=3*r*o*o,a=o*o*o;t.push([s*e[0]+i*e[2]+a,Mr(s*e[1]+i*e[3]+a)])}return t}function Js(e,t){let n=e&&typeof e=="object"?e.stops:null,o=Array.isArray(n)?n.filter(r=>r&&typeof r.color=="string"&&vl.test(r.color.trim())&&Number.isFinite(r.pos)):[];return(!o.length||o.length<n.length)&&Promise.resolve().then(()=>($e(),cn)).then(r=>r.badGradient(t,e,n,o.length),()=>{}),o.sort((r,s)=>r.pos-s.pos)}function Zs(e){let t=Js(e,"gradientStops");return t.length?Qs(e,t):"transparent, transparent"}function Qs(e,t){let n=a=>`${a.color} ${xr(a.pos)}%`;if(t.length<2)return`${t[0].color}, ${t[0].color}`;let o=pn(e.easing);if(!o)return t.map(n).join(", ");let r=Sr(o),s=Ys(e),i=[n(t[0])];for(let a=1;a<t.length;a++){let c=t[a-1],d=t[a],p=d.pos-c.pos;if(p>1e-6)for(let f=1;f<Er;f++){let[l,k]=r[f];i.push(`color-mix(in ${s}, ${c.color}, ${d.color} ${xr(k)}%) ${xr(c.pos+p*l)}%`)}i.push(n(d))}return i.join(", ")}function ho(e,t="to right"){let n=Js(e,"gradientCss");return n.length?`linear-gradient(in ${Ys(e)} ${typeof t=="number"?`${t}deg`:t}, ${Qs(e,n)})`:"none"}var _n,Mr,Er,xr,vl,xl,Ys,fn=Pt(()=>{_n=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]}),Mr=e=>Math.min(1,Math.max(0,e)),Er=15;xr=e=>+(e*100).toFixed(2),vl=/^(?:#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|(?!(?:url|var)\()[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i,xl=/^(?:(?:hsl|hwb|lch|oklch)(?: (?:shorter|longer|increasing|decreasing) hue)?|srgb(?:-linear)?|oklab|lab|display-p3|rec2020|a98-rgb|prophoto-rgb|xyz(?:-d50|-d65)?)$/i,Ys=e=>typeof e.interpolation=="string"&&xl.test(e.interpolation)?e.interpolation:"oklch"});var oi={};qt(oi,{dress:()=>Sl});var ei,ti,Ml,Hn,Cr,El,ni,Sl,ri=Pt(()=>{we();ei=!1,ti='@property --twk-float-gap { syntax: "<length>"; inherits: true; initial-value: -1px; } .twk-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } .twk-lift-slot { display: block; flex: none; pointer-events: none; }',Ml=()=>{if(!ei){ei=!0;try{let e=new CSSStyleSheet;e.replaceSync(ti),document.adoptedStyleSheets=[...document.adoptedStyleSheets,e]}catch{let e=b("style");e.textContent=ti,document.head.append(e)}}},Hn=null,Cr=(e,t)=>[...e].flatMap(n=>{if("styleSheet"in n)try{return Cr(n.styleSheet.cssRules,t)}catch{return[]}if(!n.cssText.includes("twk-"))return[];if(n instanceof CSSStyleRule||!("cssRules"in n)||"appendRule"in n)return n.cssText.startsWith(":host")&&(t.host=!0),[n.cssText];let o=Cr(n.cssRules,t);return o.length?[`${n.cssText.slice(0,n.cssText.indexOf("{"))}{${o.join("")}}`]:[]}),El=()=>{if(Hn||typeof CSSStyleSheet!="function"||!("adoptedStyleSheets"in ShadowRoot.prototype))return Hn;let e=[],t={host:!1};for(let n of document.styleSheets)try{e.push(...Cr(n.cssRules,t))}catch{}return t.host&&(Hn=new CSSStyleSheet,Hn.replaceSync(e.join(`
|
|
3
|
+
`))),Hn},ni=(e,t,n)=>{let o=El();if(o){e.adoptedStyleSheets=[...e.adoptedStyleSheets,o],n?.();return}let r=b("link");r.rel="stylesheet",r.href=t,n&&(r.addEventListener("load",n),r.addEventListener("error",()=>{console.warn(`[tweaks] shadow: the stylesheet at ${t} didn't load \u2014 the panel is unstyled`),n()})),e.prepend(r)};typeof customElements<"u"&&!customElements.get("twk-host")&&customElements.define("twk-host",class extends HTMLElement{connectedCallback(){this._twOn?.(!0)}disconnectedCallback(){this._twOn?.(!1)}});Sl=(e,t,n)=>{let o=typeof n=="object"&&n?.href||new URL("./tweaks.css",import.meta.url).href;Ml();let r=()=>{e.style.visibility="",mn(),requestAnimationFrame(()=>requestAnimationFrame(()=>e.removeAttribute("data-twk-settling")))};e.setAttribute("data-twk-settling",""),ni(e.shadowRoot,o,r);let s=b("div","twk-portal-host"),i=s.attachShadow({mode:"open"});ni(i,o),Object.defineProperty(e,"_twPortal",{configurable:!0,get:()=>(s.isConnected||document.body.append(s),i)}),e._twSync=()=>{let d=getComputedStyle(t),p=s.style;for(let f of[...p])f.startsWith("--twk-")&&p.removeProperty(f);for(let f=0;f<d.length;f++){let l=d[f];l.startsWith("--twk-")&&p.setProperty(l,d.getPropertyValue(l))}};let a=()=>In(t,e._twSlot||e),c=typeof MutationObserver=="function"?new MutationObserver(a):null;return e._twOn=d=>{d?(a(),c?.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-twk-scheme"]})):queueMicrotask(()=>{e.isConnected||(c?.disconnect(),s.remove())})},e._twOn(e.isConnected),()=>{e._twOn=void 0,c?.disconnect(),s.remove()}}});function Ke(e,t,n,o={}){let r=!1,s=null,i,a=!1,c=null,d=()=>t.focus({focusVisible:!a});n.classList.add("twk-portal"),n.inert=!0,Pr(n);let p=0,f=0,l={open:!1,moved:!1},k=!1,L=()=>{n.style.left=q(parseFloat(n.style.left),8,window.innerWidth-n.offsetWidth-8)+"px",n.style.top=q(parseFloat(n.style.top),8,window.innerHeight-n.offsetHeight-8)+"px"},x=()=>{l.moved?L():Rr(t,n,{width:o.width??"match",fallbackH:o.fallbackH,align:o.align});let R=t.getBoundingClientRect();p=parseFloat(n.style.left)-R.left,f=parseFloat(n.style.top)-R.top},M=()=>{if(r){if(!e.isConnected)return _();x(),o.onReflow&&o.onReflow()}},E=()=>{if(!r)return;if(!e.isConnected)return _();let R=t.getBoundingClientRect(),w=t.closest(".twk-panel")?.getBoundingClientRect();if(!(R.width||R.height)||R.bottom<0||R.top>window.innerHeight||R.right<0||R.left>window.innerWidth||w?.height&&(R.bottom<w.top||R.top>w.bottom))return _();n.style.left=R.left+p+"px",n.style.top=R.top+f+"px"},m=R=>{let w=R.composedPath();!w.includes(e)&&!w.includes(n)&&_()},T=R=>{R.key==="Escape"&&r&&!R.defaultPrevented&&(R.preventDefault(),R.stopPropagation(),_(),d())},j=R=>{if(!r)return;let w=R.relatedTarget;if(!(!w&&!document.hasFocus())&&!(w?e.contains(w)||n.contains(w):gn)){if(w&&(li(e,w)||li(n,w))){setTimeout(()=>{r&&!e.contains(Ae(e))&&!n.contains(Ae(n))&&_()},0);return}_(),w&&!t.closest(".twk-panel")?.contains(w)&&setTimeout(()=>{!r&&Ae(w)===w&&t.focus()},0)}};e.addEventListener("focusout",j),n.addEventListener("focusout",j);let J=()=>n.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'),g=()=>dn(n,e),y=R=>{R.every(w=>w.target===n)||g()},F=()=>{if(r)return;Dt&&Dt!==_&&Dt(),Dt=_,Ar=t,r=l.open=!0,e.classList.add("is-open"),t.setAttribute("aria-expanded","true"),clearTimeout(i);let R=n.parentNode===di(e);l.moved=!1,a=gn,n.inert=!1,R||Fn(n,e),!k&&o.movable!==!1&&(k=!0,Promise.resolve().then(()=>($e(),cn)).then(w=>w.dragPane(n,l,x),()=>{})),dn(n,e),window.addEventListener("twk-retheme",g),typeof MutationObserver=="function"&&(s=new MutationObserver(y),s.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-twk-scheme"]})),R?x():(n.style.transition="none",x(),n.offsetWidth,n.style.transition=""),typeof ResizeObserver=="function"&&(c=new ResizeObserver(()=>{r&&x()}),c.observe(n)),requestAnimationFrame(()=>{if(r&&(n.classList.add("is-open"),o.onOpen&&o.onOpen(),x(),!n.contains(Ae(n)))){let w=o.initialFocus&&o.initialFocus()||J();w&&w.focus({focusVisible:!gn})}}),requestAnimationFrame(function w(){if(r){if(!e.isConnected)return _();requestAnimationFrame(w)}}),setTimeout(()=>{r&&document.addEventListener("pointerdown",m,!0)},0),document.addEventListener("keydown",T),window.addEventListener("scroll",E,!0),window.addEventListener("resize",M)},_=()=>{Dt===_&&(Dt=null,Ar=null),n.contains(Ae(n))&&d(),r=l.open=!1,e.classList.remove("is-open"),n.classList.remove("is-open"),n.inert=!0,t.setAttribute("aria-expanded","false"),document.removeEventListener("pointerdown",m,!0),document.removeEventListener("keydown",T),window.removeEventListener("scroll",E,!0),window.removeEventListener("resize",M),window.removeEventListener("twk-retheme",g),s&&(s.disconnect(),s=null),c?.disconnect(),c=null,i=setTimeout(()=>{r||n.remove()},200)};return t.addEventListener("click",()=>{t.disabled||(r?_():F())}),{open:F,close:_,isOpen:()=>r,reflow:M}}function Vt(e,t,n,o,r){let s=r!==void 0,i=b("div","twk-seg");i.setAttribute("role",s?"switch":"radiogroup"),o&&i.setAttribute("aria-label",o),s&&(i.tabIndex=0);let a=b("div","twk-seg-pill");i.append(a);let c=e.map(l=>{let k=Kn("twk-seg-btn",l,L=>f(L));return s&&(k.setAttribute("aria-hidden","true"),k.addEventListener("focus",()=>i.focus())),i.append(k),k}),d=l=>_r(i,a,l),p=()=>{Hr(c,t),s&&(i.setAttribute("aria-checked",String(t===r)),c.forEach(l=>l.tabIndex=-1)),d(!0)},f=(l,k=!0)=>{l!=null&&!c.some(L=>L._twVal===l)||(t=l,p(),k&&n(l))};return i.addEventListener("keydown",l=>{let k=Co(c,t);if(k<0)return;if(s&&(l.key===" "||l.key==="Enter")){l.preventDefault(),f(c[1-k]._twVal);return}let L=s?{ArrowRight:1,ArrowUp:1,End:1,ArrowLeft:0,ArrowDown:0,Home:0}[l.key]??-1:Zt(l.key,k,c.length);L<0||(l.preventDefault(),f(c[L]._twVal),(s?i:c[L]).focus())}),p(),Ge(()=>{d(),i.classList.add("is-ready")}),Ze(i,[[window,"twk-reflow"]],()=>d()),{el:i,set:l=>f(l,!1),get:()=>t}}var si,yo,q,ke,Dn,ii,lt,Xt,un,Lr,ai,Tr,Ws,ct,wo,Yt,ko,vo,ot,Bn,Or,b,ye,ie,Pr,Ge,Ze,mn,xo,gn,bt,Rr,Nr,Jt,In,dn,di,Ae,li,Vn,Fn,Dt,Ar,$r,Bt,jn,Fr,Cl,_r,Ll,Tl,Al,Mo,Eo,So,ci,hn,Co,Hr,Kn,Zt,Pe,Nt,Ee,$t,rt,Lo,zn,Ir,de,qe,To,pi,fi,jr,bo,Mt,ce,Wt,ui,xt,we=Pt(()=>{fn();si=e=>e.replace(/([a-z])(?=[A-Z])|([A-Z\d])(?=[A-Z][a-z])/g,"$1$2 ").replace(/^./,t=>t.toUpperCase()).trim(),yo=e=>{let t=/^(?:[a-z][A-Z]{2,}?|(?:mac|tv|watch|iPad|vision)OS)(?=[A-Z][a-z]|[^A-Za-z]|$)/.exec(e);return t?`${t[0]} ${si(e.slice(t[0].length))}`.trim():si(e)},q=(e,t,n)=>Math.min(n,Math.max(t,e)),ke=e=>!!e&&typeof e=="object",Dn=e=>typeof e=="string"&&/^(#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$|(oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\()/i.test(e.trim()),ii=20,lt=e=>{let t=String(e),n=/e-(\d+)$/i.exec(t);if(n)return Math.min(ii,Number(n[1])+(t.split("e")[0].split(".")[1]||"").length);let o=t.indexOf(".");return o===-1?0:Math.min(ii,t.length-o-1)},Xt=(e,t,n)=>{if(!(n>0))return e;let o=lt(n),r=Number((+t).toFixed(o)),s=Math.round((e-r)/n);return Number.isFinite(s)?Number((r+s*n).toFixed(o)):e},un=(e,t,n,o=e)=>{let r=c=>Xt(c,o,n),s=Number.isFinite(e)?r(e):-1/0,i=Number.isFinite(t)?r(t):1/0,a=n*1e-6;return s<e-a&&(s=r(s+n)),i>t+a&&(i=r(i-n)),s>i?[e,e]:[s,i]},Lr=(e,t,...n)=>{let o=t-e;e<0&&t>0&&n.push(0);let r=o>0&&o<1e-4?10**Math.floor(Math.log10(o))/100:o<=1?.01:o<=10?.1:o<=100?1:10,s=d=>!Number.isFinite(d)||Math.abs(d-Math.round(d))<=1e-6,i=(d,p)=>s(e/Math.min(d,1))&&p.every(f=>s((f-e)/d)),a=d=>{let p=r;for(let f=0;f<2&&!i(p,d);f++)p/=10;return p},c=a([...n,t]);return i(c,[...n,t])?c:a(n)},ai=(...e)=>{let t=(e.length?e:[0]).map(vo),n=Math.min(...t.map(r=>r[0])),o=Math.max(...t.map(r=>r[1]));return{min:n,max:o,step:n<0&&n===-o?Lr(0,o,o,...e.map(Math.abs)):Lr(n,o,...e)}},Tr=null,Ws=e=>{Tr=e},ct=(e,...t)=>{Tr?Tr(e,t):Promise.resolve().then(()=>($e(),cn)).then(n=>n.notice(e,t),()=>{})},wo=(e,t,n,o=[],r)=>{let s=p=>p!=null&&p!==""&&Number.isFinite(+p);o=o.filter(Number.isFinite);let i=ai(...o),a=s(e)?+e:i.min,c=s(t)?+t:i.max,d=+n;if(s(e)!==s(t)&&!(c>a)){let p=s(e),f=p?a:c,l=ai(f);p?c=l.max>f?l.max:f+l.max-l.min:a=l.min<f?l.min:f-l.max+l.min}if(c<a){r!=null&&ct("swap",r,a,c);let p=a;a=c,c=p}return(!(d>0)||d>c-a)&&(d=s(e)||s(t)?Lr(a,c,...o):i.step),{min:a,max:c,step:d}},Yt=(e,t,n,o,r,s=null)=>{let i=e.shiftKey?10:1;switch(e.key){case"ArrowRight":case"ArrowUp":return t+n*i;case"ArrowLeft":case"ArrowDown":return t-n*i;case"PageUp":return s!=null?t+s:null;case"PageDown":return s!=null?t-s:null;case"Home":return o;case"End":return r}return null},ko=(e,t,n,o,r=0)=>{let s=e.offsetLeft,i=s+e.offsetWidth,a=t.offsetLeft,c=a+t.offsetWidth;return n<i&&n+o>s||n<c+r&&n+o>a-r},vo=e=>{if(!Number.isFinite(e))return[0,1];let t=Number((Math.abs(e)*3).toPrecision(12));if(e>=0)return[0,e<=1?1:t||100];let n=e>=-1?1:t;return[-n,n]},ot=e=>e==null?void 0:typeof e=="object"?e.value:e,Bn=e=>{try{return JSON.stringify(e)}catch{return String(e)}},Or=e=>e==null?"":typeof e=="string"?e:typeof e=="object"?e.label??(e.value!==void 0?String(e.value):Bn(e)):String(e),b=(e,t,n)=>{let o=document.createElement(e);return t&&(o.className=t),n!=null&&(o.innerHTML=n),(e=="input"||e=="textarea")&&(o.setAttribute("autocomplete","off"),o.setAttribute("data-1p-ignore",""),o.setAttribute("data-lpignore","true")),o},ye=(e,t)=>{let n=b("button",e,t);return n.type="button",n},ie=(e,t,n)=>{let o=e==="button"?ye(t):b(e,t);return o.textContent=n,o},Pr=e=>["pointerdown","pointermove","pointerup","click"].forEach(t=>e.addEventListener(t,n=>n.stopPropagation())),Ge=e=>{requestAnimationFrame(e),document.fonts&&document.fonts.ready&&document.fonts.ready.then(e)},Ze=(e,t,n)=>{let o=e.isConnected;o||requestAnimationFrame(()=>{e.isConnected&&(o=!0)});let r=i=>{if(!e.isConnected){(o||e.closest("[data-twk-destroyed]"))&&s();return}o=!0,n(i)},s=()=>t.forEach(([i,a])=>i.removeEventListener(a,r));return t.forEach(([i,a])=>i.addEventListener(a,r)),s},mn=()=>requestAnimationFrame(()=>window.dispatchEvent(new Event("twk-reflow"))),xo=(e,t)=>{e.addEventListener("pointerenter",()=>{e.classList.add("is-hover"),t()}),e.addEventListener("pointerleave",()=>e.classList.remove("is-hover"))},gn=!1;typeof document<"u"&&(document.addEventListener("pointerdown",()=>{gn=!0},!0),document.addEventListener("keydown",()=>{gn=!1},!0));bt=e=>{e.addEventListener("focus",()=>e.classList.toggle("twk-focus-quiet",gn)),e.addEventListener("blur",()=>e.classList.remove("twk-focus-quiet"))},Rr=(e,t,{width:n,fallbackH:o=300,gap:r=6,align:s="start",prefer:i="below"}={})=>{let a=e.getBoundingClientRect();n==="match"&&(t.style.width=a.width+"px");let c=t.offsetWidth||(n==="match"?a.width:n||0),p=s==="end"||n==="match"&&c>a.width+.5?a.right-c:s==="center"?a.left+a.width/2-c/2:a.left;t.style.left=Math.max(8,Math.min(p,window.innerWidth-c-8))+"px";let f=t.offsetHeight||o,l=window.innerHeight-a.bottom,k=a.top,L=f+12,x=l>=L,M=k>=L,E=i==="above"?M||!x&&k>=l:!x&&(M||k>l),m=E?a.top-f-r:a.bottom+r;t.style.top=q(m,r,window.innerHeight-f-r)+"px",t.dataset.side=E?"above":"below",t.style.setProperty("--twk-pop-h",String(f))},Nr=e=>{if(!e||typeof e!="object")return null;let t={};for(let[n,o]of Object.entries(e))o!=null&&(n.startsWith("--twk-")?t[n]=String(o):ct("theme",n));return Object.keys(t).length?t:null},Jt=(e,t)=>{if(e){if(e._twAppliedVars)for(let n of e._twAppliedVars)e.style.removeProperty(n);if(e._twAppliedVars=t?Object.keys(t):null,t)for(let n in t)e.style.setProperty(n,t[n])}},In=(e,t)=>{let n=t?.closest('[data-twk-scheme="light"]')?"light":t?.closest('[data-twk-scheme="dark"]')?"dark":null;n?e.setAttribute("data-twk-scheme",n):e.removeAttribute("data-twk-scheme")},dn=(e,t)=>{Jt(e,t?.closest(".twk-panel")?._twTheme),In(e,t),t?.getRootNode()?.host?._twSync?.()},di=e=>{let t=e.getRootNode().host;return t?t._twPortal||(t.matches(".twk-host, .twk-portal-host")?t.shadowRoot:document.body):document.body},Ae=e=>e.getRootNode().activeElement,li=(e,t)=>!!t&&(e.contains(t)||t===e.getRootNode().host),Vn=(e,t)=>{if(!t)return{box:e,end:()=>{}};let n=b("twk-host","twk-host");n.attachShadow({mode:"open"}).append(e),e.classList.add("twk-in-shadow"),n.style.visibility="hidden";let o=Promise.resolve().then(()=>(ri(),oi)).then(r=>r.dress(n,e,t),r=>{n.style.visibility="",console.error("[tweaks] shadow:",r)});return{box:n,dressed:o,end:()=>{n.remove(),o.then(r=>r&&r())}}},Fn=(e,t)=>{let n=di(t);e.classList.toggle("twk-in-shadow",n!==document.body),e.parentNode!==n&&n.appendChild(e)},Dt=null,Ar=null,$r=e=>{Dt&&e.contains(Ar)&&Dt()};Bt=typeof matchMedia=="function"?matchMedia("(prefers-reduced-motion: reduce)"):{matches:!1},jn="cubic-bezier(0.22, 1, 0.36, 1)",Fr="cubic-bezier(0.34, 1.2, 0.64, 1)",Cl=(e,t)=>{Bt.matches||typeof e.animate!="function"||(e.style.transformOrigin=t>0?"left center":"right center",e.animate([{transform:"scaleX(1)"},{transform:"scaleX(1.18)"},{transform:"scaleX(1)"}],{duration:300,easing:jn}))},_r=(e,t,n)=>{let o=e.querySelector('[data-active="true"]');if(!o)return;let r=o.offsetLeft,s=o.offsetWidth,i=parseFloat(t.style.left);t.style.left=r+"px",t.style.width=s+"px",n&&Number.isFinite(i)&&i!==r&&Cl(t,r>i?1:-1)},Ll=32,Tl=200,Al=8,Mo=(e,t,n)=>{let o=n<t.left?n-t.left:n>t.right?n-t.right:0,r=Math.sign(o)*Al*Math.sqrt(Math.min(Math.max(0,Math.abs(o)-Ll)/Tl,1));e.style.width=r?`calc(100% + ${Math.abs(r)}px)`:"",e.style.transform=r<0?`translateX(${r}px)`:""},Eo=e=>{e.style.transition=`width 0.35s ${jn}, transform 0.35s ${jn}`,e.style.width="",e.style.transform="",setTimeout(()=>{e.style.transition=""},360)},So=(e,t)=>{e.classList.toggle("is-disabled",t);for(let n of e.children)n.classList.contains("twk-portal")||(n.inert=t);t&&$r(e)},ci=(e,t,n,o)=>{e.classList.toggle("is-collapsed",o),t.setAttribute("aria-expanded",String(!o)),n.inert=o},hn=(e,t,n,o,r)=>{if(Bt.matches||typeof n.animate!="function"){ci(e,t,n,o),r&&setTimeout(r,370);return}let s=n.getBoundingClientRect(),i=s.height,a=e.closest(".twk-panel"),c=a&&getComputedStyle(a),d=c?parseFloat(c.maxHeight):NaN,p=c&&a.dataset.mode==="floating"&&d>=0?a.getBoundingClientRect().top+d-parseFloat(c.paddingBottom)-parseFloat(c.borderBottomWidth):1/0,f=Math.max(0,Math.min(window.innerHeight,p)-s.top),l=getComputedStyle(n).getPropertyValue("--twk-ease-fold").trim();n._twFold?.cancel(),n._twFold=null,n.style.transition="none",n.style.gridTemplateRows="",ci(e,t,n,o);let k=0;if(!o){for(let m of n.firstElementChild?.getAnimations?.()??[])m.transitionProperty!=="opacity"&&m.finish();k=n.getBoundingClientRect().height}let L=Math.min(i,f),x=Math.min(k,f),M=()=>{n.style.gridTemplateRows="",n.offsetHeight,n._twFold?.cancel(),n._twFold=null,n.style.transition="",r?.()};if(Math.abs(L-x)<1)return M();n.style.gridTemplateRows="1fr";let E=n._twFold=n.animate([{height:L+"px"},{height:x+"px"}],{duration:350,easing:l,fill:"forwards"});E.onfinish=()=>{n._twFold===E&&M()}},Co=(e,t)=>{let n=e.findIndex(o=>o.dataset.value===String(t));return n<0&&e.length?0:n},Hr=(e,t)=>{let n=Co(e,t);e.forEach((o,r)=>{let s=o.dataset.value===String(t);o.dataset.active=String(s),o.setAttribute("aria-checked",String(s)),o.tabIndex=r===n?0:-1})},Kn=(e,t,n)=>{let o=ie("button",e,Or(t));return o.setAttribute("role","radio"),o._twVal=ot(t),o.dataset.value=String(o._twVal),o.addEventListener("click",()=>n(o._twVal)),o},Zt=(e,t,n,o=0)=>{switch(e){case"ArrowRight":return(t+1)%n;case"ArrowLeft":return(t-1+n)%n;case"ArrowDown":return o<0?-1:o?t+o<n?t+o:t:(t+1)%n;case"ArrowUp":return o<0?-1:o?t-o>=0?t-o:t:(t-1+n)%n;case"Home":return 0;case"End":return n-1}return-1};Pe=(e,t="",n=2,o=24)=>`<svg${t?` class="${t}"`:""} viewBox="0 0 ${o} ${o}" fill="none" stroke="currentColor" stroke-width="${n}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${e}</svg>`,Nt=(e,t)=>({el:e,set:()=>{},get:()=>{},destroy:t}),Ee=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),$t=e=>e==="__proto__"||e==="constructor"||e==="prototype",rt=(e,t)=>e!==t&&!(ke(e)&&ke(t)&&JSON.stringify(e)===JSON.stringify(t)),Lo=(e,t,n)=>{e.set(n),e.set(t)},zn=["stiffness","damping","mass","visualDuration","bounce"],Ir=Object.create(null),de=(e,t)=>{Ir[e]=t},qe=e=>Ir[e],To=()=>Object.keys(Ir),pi=null,fi=e=>{pi=e},jr=()=>pi,bo={},Mt=(e,t)=>{let n=bo;bo=e||n;try{return t()}finally{bo=n}},ce=(e=bo)=>Object.assign((t,n,o)=>{let r=e?.[t]??n;return typeof r=="function"?r(o):o?r.replace(/\{(\w+)\}/g,(s,i)=>Ee(o,i)?String(o[i]):s):r},{s:e}),Wt=null,ui=0,xt=e=>{Wt||(Wt=b("div","twk-sr"),Wt.setAttribute("role","status")),Wt.isConnected||document.body.appendChild(Wt),Wt.textContent="",clearTimeout(ui),ui=setTimeout(()=>{Wt.textContent=e},100)}});var gi={};qt(gi,{DATA_VALUE:()=>Oo});async function Nl(e,t,n){let{createFolder:o,createControl:r,makeCopyBtn:s,makeResetBtn:i,addHintMarker:a,ensureForMetas:c}=t,d=ce(n);Br(e,'.twk-panel[data-mode="inline"]:not([data-twk-panel-bound])').forEach(l=>{let k=l.querySelector(":scope > .twk-header"),L=l.querySelector(":scope > .twk-controls");if(!k||!L)return;l.setAttribute("data-twk-panel-bound","");let x=b("div","twk-body");l.insertBefore(x,L),x.append(L);let M=k.querySelector(".twk-header-toggle"),E=k.querySelector(".twk-title");if(!M&&E&&(M=ye("twk-header-toggle"),E.replaceWith(M),M.append(E)),!!M&&(M.setAttribute("aria-expanded","true"),M.addEventListener("click",()=>hn(l,M,x,!l.classList.contains("is-collapsed"))),!k.querySelector(".twk-toolbar"))){let m=()=>[...l.querySelectorAll("[data-twk]")].map(g=>g._tw).filter(g=>g&&g.ctrl.get()!==void 0),T=()=>{let g=Object.create(null);for(let y of m()){let F=y.key,_=2;for(;Ee(g,F);)F=`${y.key}-${_++}`;g[F]=y.ctrl.get()}return JSON.stringify(g,null,2)},j=()=>{for(let g of m())g.reset()},J=b("div","twk-toolbar");J.append(s(()=>[T(),-1],d),i(j,d)),k.append(J)}}),Br(e,'[data-twk="folder"]:not([data-twk-bound])').forEach(l=>{l.setAttribute("data-twk-bound","");let k=o({label:l.dataset.label||d("folder","Folder")});[...l.children].forEach(L=>k.body.append(L)),l.append(k.el)});let p=Br(e,"[data-twk]:not([data-twk-bound])").map(l=>({host:l,meta:Ol(t,l)})).filter(l=>l.meta);p.forEach(({host:l})=>l.setAttribute("data-twk-bound",""));let f=c(p.map(l=>l.meta));f&&await f.catch(()=>{});for(let{host:l,meta:k}of p)try{let L=l.dataset.key||k.label,x,M=j=>{rt(x,j)&&(x=j,Rl(l,L,j))},E=Mt(n,()=>r(k,M));if(!E)continue;l.closest(".twk-panel, .twk-portal")||l.classList.add("twk-portal"),l.append(E.el),l.dataset.hint&&a(E.el,l.dataset.hint);let m=E.get();x=m;let T={...E,set:j=>{E.set(j),M(E.get())}};l._tw={ctrl:T,raw:k.value,def:m,key:L,host:l,reset:()=>{Lo(E,k.value,m),M(E.get())}}}catch(L){console.error(`[tweaks] data-twk="${l.dataset.twk}" could not be built \u2014 skipped:`,L)}}var mi,Dr,Oo,be,Ao,Gn,Ol,Pl,Rl,Br,Vr=Pt(()=>{we();mi=e=>({...Object.fromEntries(zn.map(t=>[t,be(e[t])])),mode:e.mode}),Dr=e=>({options:Gn(e.options),value:e.value,cols:be(e.cols)}),Oo={slider:e=>({value:be(e.value),min:be(e.min),max:be(e.max),step:be(e.step),soft:Ao(e.soft),unit:e.unit}),checkbox:e=>e.options?{type:"radiogrid",...Dr(e)}:{value:e.checked==="true"},radiogrid:Dr,segmented:Dr,list:e=>({options:Gn(e.options),value:e.value}),image:e=>({value:e.value,options:e.options?Gn(e.options):void 0,cols:be(e.cols),maxSize:be(e.maxSize),fit:e.fit==="false"?!1:be(e.fit),quality:be(e.quality),upload:e.upload==="false"?!1:void 0,clear:e.clear==="false"?!1:void 0}),buttongroup:e=>({buttons:Gn(e.buttons).map(t=>({label:t}))}),separator:()=>({}),number:e=>({value:be(e.value),min:be(e.min),max:be(e.max),step:be(e.step),unit:e.unit}),text:e=>({value:e.value??"",placeholder:e.placeholder,rows:be(e.rows)}),fpsgraph:e=>({label:e.label??"FPS"}),interval:e=>({value:e.value?e.value.split(",").map(Number):void 0,min:be(e.min),max:be(e.max),step:be(e.step)}),sides:e=>({value:e.value??e,corners:Ao(e.corners),unit:e.unit,step:be(e.step),min:be(e.min),max:be(e.max)}),shadow:e=>({value:e.value??{...e,inset:Ao(e.inset)}}),spring:mi,motion:e=>({...mi(e),curve:e.curve&&e.curve.includes(",")?e.curve.split(",").map(Number):e.curve,duration:be(e.duration)}),cubicbezier:e=>({value:e.value?e.value.split(",").map(Number):void 0}),point:e=>{let t=(e.value||"").split(",").map(n=>parseFloat(n));return{components:Gn(e.components||"X,Y").map((n,o)=>({key:n.toLowerCase(),label:n,value:isNaN(t[o])?0:t[o],step:be(e.step),min:be(e.min),max:be(e.max)})),pad:Ao(e.pad),invertY:e.invertY==="true"}},plot:e=>({expr:e.expr,xMin:be(e.xmin),xMax:be(e.xmax),yMin:be(e.ymin),yMax:be(e.ymax),samples:be(e.samples),editable:e.editable!=="false"})},be=e=>{if(e==null||e==="")return;let t=+e;return Number.isFinite(t)?t:void 0},Ao=e=>e==="true"||e==="",Gn=e=>(e||"").split(",").map(t=>t.trim()).filter(Boolean),Ol=(e,t)=>{let n=t.dataset,o=n.twk;if(o==="tabs")return null;let r=n.label??yo(n.key||o),s=Ee(Oo,o)?Oo[o](n,t,r):e.LAZY_IMPORT[o]||qe(o)?{...n}:null;if(!s)return Promise.resolve().then(()=>($e(),cn)).then(a=>a.unknownType(`data-twk="${o}"`,String(o),[...Object.keys(Oo),...Object.keys(e.LAZY_IMPORT),...To()].filter(c=>c!=="tabs"),"markup"),()=>{}),null;let i=e.metaFor("v",{type:o,label:r,...s});return i&&i.type!=="folder"?i:null},Pl=(e,t)=>{e.dataset.value=t==null?"":Array.isArray(t)?t.join(","):typeof t=="object"?Object.values(t).join(","):String(t)},Rl=(e,t,n)=>{Pl(e,n),e.dispatchEvent(new CustomEvent("twk:change",{bubbles:!0,detail:{key:t,value:n}}))},Br=(e,t)=>[...typeof e.matches=="function"&&e.matches(t)?[e]:[],...e.querySelectorAll(t)];fi(Nl)});var Na={};qt(Na,{presetsMenu:()=>Lu});var Lu,$a=Pt(()=>{we();Lu=(e,t,n,o,r,s,i,a)=>{let c=b("div","twk-presets-menu"),d=b("div","twk-presets-save"),p=b("input","twk-presets-input");p.type="text",p.placeholder=a("presetName","Preset name\u2026"),p.spellcheck=!1,p.setAttribute("aria-label",a("newPreset","New preset name")),bt(p);let f=ie("button","twk-presets-savebtn",a("save","Save"));d.append(p,f);let l=b("div","twk-presets-list");c.append(d,l);let k=()=>{let M=t();if(l.replaceChildren(),!M.length)return l.append(ie("div","twk-presets-empty",a("noPresets","No presets yet")));for(let E of M){let m=b("div","twk-presets-row"),T=ie("button","twk-presets-load",E);T.addEventListener("click",()=>{o(E),x.close(),s(a("presetLoaded","Loaded preset {name}",{name:E}))});let j=ye("twk-presets-del",i);j.setAttribute("aria-label",a("presetDelete","Delete preset {name}",{name:E})),j.addEventListener("click",J=>{J.stopPropagation(),r(E),k()}),m.append(T,j),l.append(m)}},L=()=>{let M=p.value.trim();if(!M){p.focus();return}if(!n(M)){s(a("presetFull","Preset {name} not saved: storage is full",{name:M}));return}p.value="",k(),s(a("presetSaved","Saved preset {name}",{name:M}))},x=Ke(e,e,c,{width:208,fallbackH:160,align:"end",onOpen:()=>{k(),p.focus()}});return f.addEventListener("click",L),p.addEventListener("keydown",M=>{M.key==="Enter"&&L()}),x}});var ja={};qt(ja,{pasteInto:()=>Ru,pasteScope:()=>Pu,pick:()=>Ia});function Pu(e,t,n){let o=JSON.parse(n),r;if(t.kind==="row"){let s=t.entry,i=ke(o)&&!Array.isArray(o)&&Object.keys(o).length===1&&Ee(o,s.key)?o[s.key]:o;r=Ha(s,i)?[[s,i]]:[]}else{if(!ke(o)||Array.isArray(o))return!1;let s=e.entries.filter(i=>i.path.length>t.path.length&&t.path.every((a,c)=>i.path[c]===a));r=[];for(let i of[o,Tu(o)])for(let a of[_a(i,t.path),i]){let c=ke(a)?Ia(s,a,t.path):[];c.length>r.length&&(r=c)}}return r.length?(Ou(e,r),r.length):!1}function Ru(e,t,n,o){if(!n.alive())return;let r=!1;if(e!==null)try{r=t(e)}catch{}let s=n.tr||ce();if(n.announce(r?s("pasted",i=>`${i.n} value${i.n===1?"":"s"} pasted`,{n:r}):e===null?s("clipboardUnread","Couldn't read the clipboard"):s("nothingToPaste","Nothing to paste")),o){let i=r?"is-pasted":"is-refused";o.classList.remove("is-pasted","is-refused"),o.classList.add(i),clearTimeout(Fa.get(o)),Fa.set(o,setTimeout(()=>o.classList.remove(i),450))}return!!r}var _a,Tu,Au,Zo,Ha,Ia,Ou,Fa,Da=Pt(()=>{we();_a=(e,t)=>t.reduce((n,o)=>ke(n)&&Ee(n,o)?n[o]:void 0,e),Tu=e=>{let t={};for(let n of Object.keys(e)){let o=n.split(".");if(o.some($t))continue;let r=t;for(let s of o.slice(0,-1))r=ke(r[s])?r[s]:r[s]={};r[o[o.length-1]]=e[n]}return t},Au=e=>Dn(e)&&(typeof CSS>"u"||!CSS.supports||CSS.supports("color",e)),Zo=(e,t,n)=>Array.isArray(e)?Array.isArray(t)&&(e.every(o=>!ke(o))?t.length===e.length&&t.every((o,r)=>Zo(e[r],o,n)):t.length>=2&&t.length<=64&&t.every(o=>Zo(e[0],o,n))):ke(e)?ke(t)&&!Array.isArray(t)&&Object.keys(e).every(o=>Zo(e[o],t[o],n)):typeof t==typeof e&&(typeof t!="number"||Number.isFinite(t))&&(!n||!Dn(e)||Au(t)),Ha=(e,t)=>t!=null&&!e.el?.closest(".is-disabled")&&Zo(e.get(),t,e.m.type==="color"||e.m.type==="gradient")&&(!e.m.options||e.m.options.some(n=>JSON.stringify(ot(n))===JSON.stringify(t))),Ia=(e,t,n=[])=>e.map(o=>[o,_a(t,o.path.slice(n.length))]).filter(([o,r])=>Ha(o,r)),Ou=(e,t)=>{let n={};for(let[o,r]of t){let s=n;for(let i of o.path.slice(0,-1))s=s[i]||(s[i]={});s[o.path[o.path.length-1]]=r}e.fromJSON({values:n})};Fa=new WeakMap});var Ba={};qt(Ba,{fold:()=>Nu});var Nu,Va=Pt(()=>{we();Nu=(e,t)=>{let n=getComputedStyle(e),o=e._fold?.playState=="running"&&{marginBottom:n.marginBottom,clipPath:n.clipPath,opacity:n.opacity};e._fold?.cancel(),e.classList.remove("twk-cond-hidden");let r=!Bt.matches&&e.animate&&e.offsetHeight;if(e.classList.toggle("twk-cond-hidden",t),r)try{let s=r+6+parseFloat(n.marginTop),i=r+"px",a={height:i,marginBottom:-s+"px",clipPath:`inset(0 0 ${s}px)`,opacity:0},c={height:i,clipPath:"inset(0)"};(e._fold=e.animate([o||(t?c:a),t?a:c],{duration:350,easing:n.getPropertyValue("--twk-ease-fold").trim()})).onfinish=()=>e.classList.toggle("twk-cond-hidden",t),e.classList.remove("twk-cond-hidden")}catch{}}});var qa={};qt(qa,{bind:()=>Vu,load:()=>Hu,refFor:()=>za});var eo,Ln,$u,Qo,Fu,_u,za,Hu,Iu,ju,Du,Ga,Bu,Ka,Vu,Ua=Pt(()=>{eo="tw-image:",Ln=null,$u=()=>Ln||(Ln=new Promise(e=>{let t=!1,n=setTimeout(()=>{t=!0,Ln=null,e(null)},3e3);try{let o=indexedDB.open("tweakit",1);o.onupgradeneeded=()=>o.result.createObjectStore("images"),o.onsuccess=()=>{let r=o.result;if(clearTimeout(n),t){r.close();return}r.onversionchange=()=>{r.close(),Ln=null},r.onclose=()=>{Ln=null},e(r)},o.onerror=()=>{clearTimeout(n),Ln=null,e(null)}}catch{clearTimeout(n),e(null)}})),Qo=(e,t)=>$u().then(n=>n&&new Promise(o=>{try{let r=n.transaction("images",e),s=t(r.objectStore("images"));r.oncomplete=()=>o(s),r.onerror=r.onabort=()=>o(null)}catch{o(null)}})),Fu=e=>IDBKeyRange.bound([e],[e,[]]),_u=e=>{let t=3735928559,n=1103547991;for(let o=0;o<e.length;o++){let r=e.charCodeAt(o);t=Math.imul(t^r,2654435761),n=Math.imul(n^r,1597334677)}return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),(4294967296*(2097151&n)+(t>>>0)).toString(36)+e.length.toString(36)},za=e=>eo+_u(e),Hu=e=>Qo("readonly",t=>{let n=new Map;return t.openCursor(Fu(e)).onsuccess=function(){let o=this.result;o&&(typeof o.value=="string"&&n.set(eo+o.key[1],o.value),o.continue())},n}),Iu=(e,t)=>Qo("readonly",n=>n.get([e,t.slice(eo.length)])).then(n=>n&&typeof n.result=="string"?n.result:null),ju=(e,t,n)=>Qo("readwrite",o=>(o.put(n,[e,t.slice(eo.length)]),!0)),Du=(e,t)=>Qo("readwrite",n=>{for(let o of t)n.delete([e,o.slice(eo.length)]);return!0}),Ga=e=>new Set(JSON.stringify(e??null).match(/tw-image:[0-9a-z]+/g)||[]),Bu=(e,t,n)=>{let o=Ga(n),r=[...t.keys()].filter(s=>!o.has(s));for(let s of r)t.delete(s);r.length&&Du(e,r)},Ka=(e,t,n)=>{let o=JSON.stringify(e);return o.includes(t)?JSON.parse(o.split(t).join(JSON.stringify(n).slice(1,-1))):null},Vu=(e,t,n,o,r)=>{let s=new Set,i=new WeakMap,a=(d,p)=>{let f=i.get(d);if(f?.[0]===p)return f[1];let l=za(p);return i.set(d,[p,l]),l},c=(d,p)=>{let f=Ka(o(),d,p);!f||r(f)||(r(Ka(o(),d,"")),console.warn("[tweaks] persist: an image a preset holds didn't fit in storage \u2014 the preset keeps the rest"))};return{save(d,p,f){let l=a(d,p);return s.has(l)?null:((!t.has(l)||!Ga(f).has(l))&&(t.set(l,p),ju(e,l,p).then(k=>{k||(t.delete(l),s.add(l),n(l),c(l,p))})),l)},prune:d=>Bu(e,t,d),fetch:d=>Iu(e,d).then(p=>(p&&t.set(d,p),p))}}});Vr();$e();we();$e();var $l=180/Math.PI,zr=Math.PI/180,st=(e,t)=>[e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2]],Fl=(e,t)=>{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]=e[o][0]*t[0][r]+e[o][1]*t[1][r]+e[o][2]*t[2][r];return n},Le=e=>Number.isFinite(e)?e:0,Ei=(e,t,n)=>Math.min(n,Math.max(t,e)),Po=e=>{let t=Math.abs(e);return t<=.04045?e/12.92:Math.sign(e)*((t+.055)/1.055)**2.4},qn=e=>{let t=Math.abs(e);return t<=.0031308?e*12.92:Math.sign(e)*(1.055*t**(1/2.4)-.055)},$o=1.09929682680944,Si=.018053968510807,_l=e=>{let t=Math.abs(e);return t<Si*4.5?e/4.5:Math.sign(e)*((t+$o-1)/$o)**(1/.45)},Ci=e=>{let t=Math.abs(e);return t<Si?e*4.5:Math.sign(e)*($o*t**.45-($o-1))},Li=1/512,Hl=e=>{let t=Math.abs(e);return t<=Li*16?e/16:Math.sign(e)*t**1.8},Il=e=>{let t=Math.abs(e);return t>=Li?Math.sign(e)*t**(1/1.8):16*e},Ro=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Un=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],jl=[[.4865709486482162,.26566769316909306,.19821728523436247],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],Ti=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],Dl=[[.6369580483012914,.14461690358620832,.16888097516417205],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],Ai=[[1.7166511879712674,-.35567078377639233,-.25336628137365974],[-.6666843518324892,1.6164812366349395,.01576854581391113],[.017639857445310783,-.042770613257808524,.9421031212354738]],Bl=[[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],Vl=[[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],Oi=563/256,Kl=e=>Math.sign(e)*Math.abs(e)**Oi,zl=e=>Math.sign(e)*Math.abs(e)**(1/Oi),Gl=[[573536/994567,263643/1420810,187206/994567],[591459/1989134,6239551/9945670,374412/4972835],[53769/1989134,351524/4972835,4929758/4972835]],ql=[[1829569/896150,-506331/896150,-308931/896150],[-851781/878810,1648619/878810,36519/878810],[16779/1248040,-147721/1248040,1266979/1248040]],Ul=e=>e,Gr=[[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],qr=[[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],Xl=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],Pi=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],Wl=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],Ri=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],No=216/24389,Xn=24389/27,bn=[.3457/.3585,1,(1-.3457-.3585)/.3585],Qt=(e,t,n)=>st(n,[t(e[0]),t(e[1]),t(e[2])]),Kt=(e,t,n)=>{let o=st(n,e);return[t(o[0]),t(o[1]),t(o[2])]},hi=e=>{let t=st(Ri,e);return st(Pi,[t[0]**3,t[1]**3,t[2]**3])},bi=e=>{let t=st(Xl,e);return st(Wl,[Math.cbrt(t[0]),Math.cbrt(t[1]),Math.cbrt(t[2])])};function yi(e){let[t,n,o]=e,r=(t+16)/116,s=n/500+r,i=r-o/200,a=s**3>No?s**3:(116*s-16)/Xn,c=t>Xn*No?r**3:t/Xn,d=i**3>No?i**3:(116*i-16)/Xn;return st(qr,[a*bn[0],c*bn[1],d*bn[2]])}function wi(e){let t=st(Gr,e),n=i=>i>No?Math.cbrt(i):(Xn*i+16)/116,o=n(t[0]/bn[0]),r=n(t[1]/bn[1]),s=n(t[2]/bn[2]);return[116*r-16,500*(o-r),200*(r-s)]}var Fo=e=>{let t=Math.hypot(e[1],e[2]),n=Math.atan2(e[2],e[1])*$l;return n<0&&(n+=360),[e[0],t,n]},_o=e=>[e[0],e[1]*Math.cos(e[2]*zr),e[1]*Math.sin(e[2]*zr)];function Ni(e){let t=((Number.isNaN(e[0])?0:e[0])%360+360)%360,n=e[1]/100,o=e[2]/100,r=s=>{let i=(s+t/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 $i(e){let t=Math.max(...e),n=Math.min(...e),o=t-n;if(o<1e-9)return NaN;let r;return t===e[0]?r=(e[1]-e[2])/o+(e[1]<e[2]?6:0):t===e[1]?r=(e[2]-e[0])/o+2:r=(e[0]-e[1])/o+4,r*60}function Yl(e){let t=Math.max(...e),n=Math.min(...e),o=(n+t)/2,r=$i(e),s=t===n||o===0||o===1?0:(t-o)/Math.min(o,1-o);return s<0&&(r+=180,s=-s),r>=360&&(r-=360),[r,s*100,o*100]}function Jl(e){let t=e[1]/100,n=e[2]/100;if(t+n>=1){let s=t/(t+n);return[s,s,s]}let o=Ni([e[0],100,50]),r=1-t-n;return[o[0]*r+t,o[1]*r+t,o[2]*r+t]}var Zl=e=>[$i(e),Math.min(...e)*100,(1-Math.max(...e))*100];function Ql(e,t){switch(t){case"srgb":return Qt(e,Po,Ro);case"p3":return Qt(e,Po,jl);case"rec2020":return Qt(e,_l,Dl);case"prophoto-rgb":return st(qr,Qt(e,Hl,Bl));case"a98-rgb":return Qt(e,Kl,Gl);case"srgb-linear":return st(Ro,e);case"xyz-d65":return[e[0],e[1],e[2]];case"xyz-d50":return st(qr,e);case"oklab":return hi(e);case"oklch":return hi(_o(e));case"lab":return yi(e);case"lch":return yi(_o(e));case"hsl":return Qt(Ni(e),Po,Ro);case"hwb":return Qt(Jl(e),Po,Ro)}}function ec(e,t){switch(t){case"srgb":return Kt(e,qn,Un);case"p3":return Kt(e,qn,Ti);case"rec2020":return Kt(e,Ci,Ai);case"prophoto-rgb":return Kt(st(Gr,e),Il,Vl);case"a98-rgb":return Kt(e,zl,ql);case"srgb-linear":return Kt(e,Ul,Un);case"xyz-d65":return[e[0],e[1],e[2]];case"xyz-d50":return st(Gr,e);case"oklab":return bi(e);case"oklch":return Fo(bi(e));case"lab":return wi(e);case"lch":return Fo(wi(e));case"hsl":return Yl(Kt(e,qn,Un));case"hwb":return Zl(Kt(e,qn,Un))}}function Fe(e,t,n){return t===n?[e[0],e[1],e[2]]:t==="oklch"&&n==="oklab"?_o(e):t==="oklab"&&n==="oklch"?Fo(e):t==="lch"&&n==="lab"?_o(e):t==="lab"&&n==="lch"?Fo(e):ec(Ql(e,t),n)}var Ho=75e-6,Fi=e=>e.every(t=>t>=-Ho&&t<=1+Ho),Ur=(e,t)=>Fi(Fe(e,"oklch",t)),Kr=e=>e.map(t=>Math.min(1,Math.max(0,t))),ki=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2]);function wn(e,t){if(Ur(e,t))return Fe(e,"oklch",t);let n=e[0];if(n>=1)return[1,1,1];if(n<=0)return[0,0,0];if(!Number.isFinite(e[1]))return Kr(Fe([n,0,Le(e[2])],"oklch",t));let o=.02,r=1e-4,s=[e[0],e[1],e[2]],i=0,a=e[1],c=!0,d=Kr(Fe(s,"oklch",t));if(ki(Fe(d,t,"oklab"),Fe(e,"oklch","oklab"))<o)return d;for(;a-i>r;){let p=(i+a)/2;s[1]=p;let f=Fe(s,"oklch",t);if(c&&Fi(f)){i=p;continue}d=Kr(f);let l=ki(Fe(d,t,"oklab"),Fe(s,"oklch","oklab"));if(l<o){if(o-l<r)return d;c=!1,i=p}else a=p}return d}var tc=(e,t)=>{let n=e*zr,o=Math.cos(n),r=Math.sin(n),s=Ri.map(a=>o*a[1]+r*a[2]),i=Fl(t==="p3"?Ti:t==="rec2020"?Ai:Un,Pi);return{d:s,F:i,gam:t==="rec2020"?Ci:qn}};function Wr(e,t){let{d:[n,o,r],F:s,gam:i}=tc(e,t);return(a,c,d)=>{let p=a+c*n,f=a+c*o,l=a+c*r,k=p**3,L=f**3,x=l**3;d[0]=i(s[0][0]*k+s[0][1]*L+s[0][2]*x),d[1]=i(s[1][0]*k+s[1][1]*L+s[1][2]*x),d[2]=i(s[2][0]*k+s[2][1]*L+s[2][2]*x)}}function Io(e,t){let n=Wr(e,t),o=[0,0,0],r=-Ho,s=1+Ho,i=a=>a>=r&&a<=s;return(a,c)=>(n(a,c,o),o.every(i))}function jo(e,t,n=.5){if(!e(t,0))return 0;let o=0;for(let r=0;r<16;r++){let s=(o+n)/2;e(t,s)?o=s:n=s}return o}var yn=e=>Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,"0").toUpperCase(),nc=e=>`#${yn(e[0])}${yn(e[1])}${yn(e[2])}`,_i=(e,t,n)=>nc(wn([e,t,n],"srgb"));function Hi(e){let t=String(e).replace("#","").trim();if(t.length===3&&(t=t.split("").map(o=>o+o).join("")),t.length<6)return[.7,.1,280];let n=[parseInt(t.slice(0,2),16)/255,parseInt(t.slice(2,4),16)/255,parseInt(t.slice(4,6),16)/255];return Fe(n,"srgb","oklch").map(Le)}var Do=["hex","srgb","css","hsl","hwb","oklch","oklab","lch","lab","p3","rec2020"],Ii={hex:"HEX",srgb:"RGB",css:"CSS",hsl:"HSL",hwb:"HWB",oklch:"OKLCH",oklab:"OKLab",lch:"LCH",lab:"Lab",p3:"P3",rec2020:"Rec2020"},ji=["srgb","css","hsl","hwb","hex"],Yr=e=>!ji.includes(e),Jr=e=>e==="hex"||e==="css"?"srgb":e,oc=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"}),Di=e=>oc[e]||"oklch",rc=Object.assign(Object.create(null),{srgb:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab","display-p3":"p3",rec2020:"rec2020"}),Zr=e=>rc[e]||"oklch",Qr=.5,Bi=(e,t,n)=>Object.freeze(["R","G","B"].map(o=>Object.freeze({k:o,min:0,max:e,step:t,scale:n}))),vi=Bi(255,1,255),xi=Bi(1,.01,1),kn={oklch:[{k:"L",min:0,max:100,step:1,scale:100},{k:"C",min:0,max:Qr,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:vi,css:vi,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:xi,rec2020:xi},Xr=e=>e>=1?0:e>=.1?1:e>=.01?2:3,es=(e,t,n)=>t==="oklch"?[e[0],e[1],e[2]]:ji.includes(n)?t==="srgb"?wn(e,"srgb"):Fe(wn(e,"srgb"),"srgb",t):Fe(e,"oklch",t);function Bo(e,t){let n=es(e,Jr(t),t);return kn[t].map((o,r)=>{let s=Le(n[r])*o.scale;return Ei(Math.abs(s)<.5*o.step?0:s,o.min,o.max)})}function Vi(e,t,n,o){let r=Jr(t),s=es(e,r,t).map(Le);s[n]=o/kn[t][n].scale;let i=Fe(s,r,"oklch");return[Le(i[0]),Le(i[1]),Le(i[2])]}function Ki(e,t){if(!Yr(t))return"sRGB";let n=wn(e,"srgb");return Math.max(...n)<.03||Math.min(...n)>.97||Ur(e,"srgb")?"sRGB":Ur(e,"p3")?"P3":"wide"}var zi=(e,t)=>e==="css"?`${t(0)}, ${t(1)}, ${t(2)}`:e==="oklch"||e==="oklab"||e==="lch"||e==="lab"?`${t(0)}% ${t(1)} ${t(2)}`:e==="hsl"||e==="hwb"?`${t(0)} ${t(1)}% ${t(2)}%`:`${t(0)} ${t(1)} ${t(2)}`;function Gi(e,t){if(t==="hex")return _i(e[0],e[1],e[2]);let n=kn[t],o=Bo(e,t);return zi(t,r=>{let s=o[r].toFixed(Xr(n[r].step));return n[r].k==="H"&&+s==360?0 .toFixed(Xr(n[r].step)):s})}var Mi=(e,t)=>t==="hex"?e:t==="srgb"?`rgb(${e})`:t==="css"?`rgba(${e}, 1)`:t==="hsl"?`hsl(${e})`:t==="hwb"?`hwb(${e})`:t==="p3"?`color(display-p3 ${e})`:t==="rec2020"?`color(rec2020 ${e})`:`${t}(${e})`;function sc(e,t){let n=kn[t],o=es(e,Jr(t),t),r=n.map((i,a)=>{let c=Xr(i.step)+1,d=+Ei(Le(o[a])*i.scale,i.min,i.max).toFixed(c);return i.k==="H"&&d===360?0:d+0});t==="hsl"&&(r[2]===0||r[2]===100)&&(r[1]=0);let s=t==="oklch"||t==="lch"||t==="hsl"?r[1]===0:t==="hwb"&&r[1]+r[2]>=100;return zi(t,i=>s&&n[i].k==="H"?"none":String(r[i]))}function ts(e,t,n){let o=Le(n);if(t==="hex")return _i(e[0],e[1],e[2])+(o<.999?yn(o):"");let r=sc(e,t);if(o>=.999)return Mi(r,t);let s=+o.toFixed(3);return t==="css"?`rgba(${r}, ${s})`:Mi(`${r} / ${s}`,t)}var Wi=(()=>{try{return document.createElement("canvas").getContext("2d",{colorSpace:"display-p3"})?.getContextAttributes?.().colorSpace==="display-p3"}catch{return!1}})(),ns=Wi?{colorSpace:"display-p3"}:{},ic=Wi?"p3":"srgb",Vo=(e,t)=>{let n=e.length-1,o=Math.max(0,Math.min(n,t*n)),r=Math.floor(o),s=o-r;return e[r]*(1-s)+e[Math.min(r+1,n)]*s},ac=(e,t)=>{let n=Io(e,t),o=new Float64Array(128);for(let r=0;r<128;r++)o[r]=jo(n,r/127);return o},ls="var(--twk-checker)",lc=Object.assign(Object.create(null),{srgb:"srgb","display-p3":"p3",rec2020:"rec2020","prophoto-rgb":"prophoto-rgb","a98-rgb":"a98-rgb","srgb-linear":"srgb-linear",xyz:"xyz-d65","xyz-d65":"xyz-d65","xyz-d50":"xyz-d50"}),cs=/^(rgba?|hsla?|hwb)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,us=/^(oklch|oklab|lch|lab|color)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,cc=/^(srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/i,vn=/^#?([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,os,Yi=()=>os===void 0?os=document.createElement("canvas").getContext("2d"):os,uc=/^(#[0-9a-f]{3,8}|[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i,dc=new Set("aliceblue antiquewhite aqua aquamarine azure beige bisque black blanchedalmond blue blueviolet brown burlywood cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan darkblue darkcyan darkgoldenrod darkgray darkgreen darkgrey darkkhaki darkmagenta darkolivegreen darkorange darkorchid darkred darksalmon darkseagreen darkslateblue darkslategray darkslategrey darkturquoise darkviolet deeppink deepskyblue dimgray dimgrey dodgerblue firebrick floralwhite forestgreen fuchsia gainsboro ghostwhite gold goldenrod gray green greenyellow grey honeydew hotpink indianred indigo ivory khaki lavender lavenderblush lawngreen lemonchiffon lightblue lightcoral lightcyan lightgoldenrodyellow lightgray lightgreen lightgrey lightpink lightsalmon lightseagreen lightskyblue lightslategray lightslategrey lightsteelblue lightyellow lime limegreen linen magenta maroon mediumaquamarine mediumblue mediumorchid mediumpurple mediumseagreen mediumslateblue mediumspringgreen mediumturquoise mediumvioletred midnightblue mintcream mistyrose moccasin navajowhite navy oldlace olive olivedrab orange orangered orchid palegoldenrod palegreen paleturquoise palevioletred papayawhip peachpuff peru pink plum powderblue purple rebeccapurple red rosybrown royalblue saddlebrown salmon sandybrown seagreen seashell sienna silver skyblue slateblue slategray slategrey snow springgreen steelblue tan teal thistle tomato turquoise violet wheat white whitesmoke yellow yellowgreen transparent currentcolor".split(" "));function Et(e){if(e=String(e??"").trim(),!uc.test(e))return!1;if(vn.test(e))return!0;if(us.test(e))return mc(e);if(cs.test(e))return Zi(e)!==null;let t=Yi();return t?["#000","#fff"].some(n=>{t.fillStyle=n;let o=t.fillStyle;return t.fillStyle=e,t.fillStyle!==o}):!e.includes("(")&&dc.has(e.toLowerCase())}var ds="[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?",pc=new RegExp("^"+ds+"$","i"),fc=new RegExp("^"+ds+"%$","i"),Ji=new RegExp("^("+ds+")(deg|grad|rad|turn)$","i"),ps=/[ \t\n\r\f]+/,fs=/^none$/i,rs=e=>e.replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g,""),ss=e=>!!e&&!ps.test(e),en=e=>fs.test(e)?"none":pc.test(e)?"num":fc.test(e)?"pct":Ji.test(e)?"angle":null,is=e=>{let t=Ji.exec(e);if(!t)return Le(parseFloat(e));let n=parseFloat(t[1]),o=t[2].toLowerCase();return Le(o==="turn"?n*360:o==="grad"?n*.9:o==="rad"?n*180/Math.PI:n)};function Zi(e){let t=cs.exec(e);if(!t)return null;let n=t[1].toLowerCase().replace(/a$/,""),o=t[2],r,s,i;if(o.includes(",")){if(n==="hwb")return null;let p=o.split(",").map(rs);if(p.length<3||p.length>4||!p.every(ss)||(r=p.slice(0,3),s=p[3],i=r.map(en),n==="rgb"?!(i.every(f=>f==="num")||i.every(f=>f==="pct")):!((i[0]==="num"||i[0]==="angle")&&i[1]==="pct"&&i[2]==="pct"))||s!==void 0&&en(s)!=="num"&&en(s)!=="pct")return null}else{let p=o.split("/");if(p.length>2||(r=p[0].split(ps).filter(Boolean),r.length!==3))return null;if(p.length===2){s=rs(p[1]);let f=ss(s)?en(s):null;if(!f||f==="angle")return null}if(i=r.map(en),n==="rgb"?!i.every(f=>f&&f!=="angle"):!(i[0]&&i[0]!=="pct"&&i[1]&&i[1]!=="angle"&&i[2]&&i[2]!=="angle"))return null}let a=(p,f)=>fs.test(p)?0:/%$/.test(p)?parseFloat(p)/100*f:parseFloat(p),c=s===void 0?1:q(a(s,1),0,1);return[n==="rgb"?Fe([q(a(r[0],255)/255,0,1),q(a(r[1],255)/255,0,1),q(a(r[2],255)/255,0,1)],"srgb","oklch"):Fe([i[0]==="none"?0:is(r[0]),q(a(r[1],100),0,100),q(a(r[2],100),0,100)],n,"oklch"),c]}var mc=e=>{let t=us.exec(e);if(!t)return!1;let n=t[1].toLowerCase(),o=t[2].split("/");if(o.length>2)return!1;let r=o[0].split(ps).filter(Boolean);if(n==="color"&&!cc.test(r.shift()||"")||r.length!==3)return!1;let s=n==="lch"||n==="oklch";if(!r.every((i,a)=>{let c=en(i);return c&&(s&&a===2?c!=="pct":c!=="angle")}))return!1;if(o.length===2){let i=rs(o[1]),a=ss(i)?en(i):null;if(!a||a==="angle")return!1}return!0},qi=(e,t)=>[Le(e[0]),q(Le(e[1]),0,Qr),(Le(e[2])%360+360)%360,t];function tn(e){if(e=String(e??"").trim(),vn.test(e)){let a=e.replace("#",""),c=1;a.length===4?(c=parseInt(a[3]+a[3],16)/255,a=a.slice(0,3)):a.length===8&&(c=parseInt(a.slice(6,8),16)/255,a=a.slice(0,6));let[d,p,f]=Hi("#"+a);return[d,p,f,c]}let t=us.exec(e);if(t){let a=t[1].toLowerCase(),[c,d]=t[2].split("/").map(x=>x.trim()),p=c.split(/\s+/).filter(Boolean),f=a;if(a==="color"&&(f=lc[(p[0]||"").toLowerCase()],p=p.slice(1),!f))return[.7,.1,280,1];let l=(x,M=1)=>!x||fs.test(x)?0:Le(parseFloat(x))*(/%$/.test(x)?M:1),k=d?q(l(d,.01),0,1):1,L=a==="lab"?[q(l(p[0]),0,100),l(p[1],1.25),l(p[2],1.25)]:a==="lch"?[q(l(p[0]),0,100),Math.max(0,l(p[1],1.5)),is(p[2]||"0")]:a==="color"?[l(p[0],.01),l(p[1],.01),l(p[2],.01)]:a==="oklab"?[q(l(p[0],.01),0,1),l(p[1],.004),l(p[2],.004)]:[q(l(p[0],.01),0,1),Math.max(0,l(p[1],.004)),is(p[2]||"0")];return qi(f==="oklch"?L:Fe(L,f,"oklch"),k)}if(cs.test(e)){let a=Zi(e);return a?qi(...a):[0,0,0,1]}let n=Yi();if(!n)return[0,0,0,1];n.fillStyle="#000",n.fillStyle=e;let o=n.fillStyle;if(vn.test(o))return tn(o);let r=o.match(/^rgba?\(([^)]*)\)/i),s=((r?r[1]:"").match(/-?[\d.]+(?:e[+-]?\d+)?/gi)||[0,0,0]).map(Number),i=Fe([s[0]/255,s[1]/255,s[2]/255],"srgb","oklch");return[Le(i[0]),Le(i[1]),Le(i[2]),s[3]!=null?q(Le(s[3]),0,1):1]}var Ui=e=>typeof e=="string"&&Et(e)&&(as(e)!==null||/^\s*color\(/i.test(e))&&(vn.test(e.trim())||(e.replace(/^\s*[a-z]+\(\s*(?:[a-z][\w-]*\s)?/i,"").match(/[-+]?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/gi)||[]).every(t=>Math.abs(+t)<=1e3)),as=e=>{let t=String(e??"").trim().toLowerCase();if(vn.test(t))return"hex";let n=/^([a-z]+)\(\s*([a-z0-9-]*)/.exec(t);return n?n[1]==="rgb"||n[1]==="rgba"?t.includes(",")?"css":"srgb":n[1]==="color"?n[2]==="display-p3"?"p3":n[2]==="rec2020"?"rec2020":n[2]==="srgb"?"srgb":null:["hsl","hwb","oklch","oklab","lch","lab"].find(o=>o===n[1]||n[1]==="hsla"&&o==="hsl")??null:null},Xi=e=>{let t=/^\s*(rgba?|hsla?|color)\(\s*([^)]*)\)\s*$/i.exec(e);if(!t)return null;let n=t[1].toLowerCase(),o=t[2].split(",").length;return n==="color"?/^srgb\s/i.test(t[2])?{name:n,legacy:!1,alphaSlot:!1}:null:{name:n,legacy:o>1,alphaSlot:o===4}},gc=(e,t)=>{if(!e)return null;if(e.name==="color")return"color(srgb)";let n=t==="css"?{name:"rgba",legacy:!0,alphaSlot:!0}:{name:t==="hsl"?"hsl":"rgb",legacy:!1,alphaSlot:!1};return e.name===n.name&&e.legacy===n.legacy&&e.alphaSlot===n.alphaSlot?null:`${e.name}(${e.legacy?",":""})`},hc=(e,t,n,o)=>{if(!t)return e;let r=o<.999?String(+o.toFixed(3)):t.alphaSlot?"1":"";if(t.name==="color")return`color(srgb ${wn(n,"srgb").map(i=>+q(Le(i),0,1).toFixed(3)+0).join(" ")}${r&&` / ${r}`})`;let s=(/\((.*)\)$/.exec(e)?.[1]??"").split(/\s*[,/]\s*|\s+/).slice(0,3);return t.legacy?`${t.name}(${s.map(i=>i==="none"?"0":i).join(", ")}${r&&`, ${r}`})`:`${t.name}(${s.join(" ")}${r&&` / ${r}`})`};function xn(e,t){let n=ce(),[o,r,s,i]=tn(Et(e.value)?e.value:"#7c5cff"),a=Do.includes(e.mode),c=a?e.mode:as(e.value)??"oklch",d=Ui(e.value)?e.value.trim():null,p=!a&&Et(e.value)?Xi(String(e.value)):null,f=NaN,l=null,k=[],L=NaN,x="",M=()=>d??hc(ts([o,r,s],c,i),p,[o,r,s],i),E=b("div","twk-color-body"),m=b("div","twk-wg-area"),T=document.createElement("canvas");T.className="twk-wg-canvas";let j=b("div","twk-wg-thumb");m.append(T,j);let J=b("div","twk-wg-hue"),g=document.createElement("canvas");g.className="twk-wg-hue-canvas";let y=b("div","twk-wg-hue-thumb");J.append(g,y);let F=b("div","twk-wg-alpha"),_=b("div","twk-wg-alpha-grad"),R=b("div","twk-wg-hue-thumb");F.append(_,R),T.setAttribute("aria-hidden","true"),g.setAttribute("aria-hidden","true"),m.tabIndex=0,m.setAttribute("role","group"),m.setAttribute("aria-label",n("colorPlane","Color plane: chroma across, lightness up"));let w=b("div","twk-color-mode-row"),$=b("select","twk-color-mode");$.setAttribute("aria-label",n("colorMode","Color mode")),Do.forEach(U=>{let S=document.createElement("option");S.value=U,S.textContent=Ii[U],$.append(S)});let N=document.createElement("option");N.value="kept";let z=()=>{let U=gc(p,c);U?(N.textContent=U,$.querySelector(`option[value="${c}"]`).after(N),$.value="kept"):(N.remove(),$.value=c)};z();let Y=b("span","twk-color-gamut");w.append($,Y);let Q=b("div","twk-color-channels");E.append(m,J,F,w,Q);let G=T.getContext("2d",ns),ee=g.getContext("2d"),I=document.createElement("canvas"),A=I.getContext("2d",ns),D=null,h=()=>{let U=m.clientWidth,S=m.clientHeight;if(U<2)return;let C=window.devicePixelRatio||1,he=Yr(c)?"p3":"srgb",ue=ac(s,he);l=ue;let ae=Math.round(U*C),ge=Math.round(S*C),Se=Math.max(1,Math.round(ae/4)),Xe=Math.max(1,Math.round(ge/4));(I.width!==Se||I.height!==Xe)&&(I.width=Se,I.height=Xe,D=new ImageData(Se,Xe,ns));let ut=D.data,on=Xe>1?1/(Xe-1):0,oo=Se>1?1/(Se-1):0,An=Wr(s,ic),at=[0,0,0];for(let yt=0;yt<Xe;yt++){let dt=1-yt*on,pt=Vo(ue,dt);for(let wt=0;wt<Se;wt++){An(dt,wt*oo*pt,at);let Lt=(yt*Se+wt)*4;ut[Lt]=Math.round(q(at[0],0,1)*255),ut[Lt+1]=Math.round(q(at[1],0,1)*255),ut[Lt+2]=Math.round(q(at[2],0,1)*255),ut[Lt+3]=255}}if(A.putImageData(D,0,0),T.width=ae,T.height=ge,G.imageSmoothingEnabled=!0,G.drawImage(I,0,0,ae,ge),he!=="srgb"){let yt=(dt,pt,wt,Lt)=>{let On=Io(s,dt),Ft=[];for(let We=0;We<=100;We++){let ze=We/100,kt=Vo(ue,ze);if(kt<=0)continue;let ft=jo(On,ze,kt);ft<=0||Ft.push([Math.min(ft/kt*ae,ae-wt*C/2),(1-ze)*ge])}Ft.length<2||(G.save(),G.strokeStyle=pt,G.lineWidth=wt*C,G.lineJoin=G.lineCap="round",G.setLineDash(Lt.map(We=>We*C)),G.beginPath(),Ft.forEach((We,ze)=>ze?G.lineTo(We[0],We[1]):G.moveTo(We[0],We[1])),G.stroke(),G.restore())};yt("srgb","rgba(255,255,255,0.7)",1.5,[]),yt("p3","rgba(255,255,255,0.4)",1,[3,3])}f=s},K=.7,oe=U=>{let S=Fe([K,jo(Io(U,"srgb"),K),U],"oklch","srgb");return`rgb(${q(S[0]*255,0,255)|0},${q(S[1]*255,0,255)|0},${q(S[2]*255,0,255)|0})`},Z=0,te=()=>{let U=Math.max(1,J.clientWidth),S=Math.max(1,J.clientHeight);if(!(U<2)&&!(U===Z&&g.width===U)){Z=U,g.width=U,g.height=S;for(let C=0;C<U;C++)ee.fillStyle=oe(C/(U-1)*360),ee.fillRect(C,0,1,S)}},B=()=>{let U=l?Vo(l,o):.4,S=ue=>`${q(ue,0,1)*100}%`,C=(ue,ae)=>{let ge=q(ue,0,1);return`calc(${ge*100}% + ${(.5-ge)*ae}px)`};j.style.left=S(U>0?r/U:0),j.style.top=S(1-o),y.style.left=C(s/360,16),R.style.left=C(i,16),F.setAttribute("aria-valuenow",String(+i.toFixed(2)));let he=Math.round(s);J.setAttribute("aria-valuenow",String(he)),J.setAttribute("aria-valuetext",`${he}\xB0`),m.setAttribute("aria-description",n("colorReadout","lightness {l}%, chroma {c}",{l:Math.round(o*100),c:+r.toFixed(3)})),_.style.background=`linear-gradient(to right, oklch(${o} ${r} ${s} / 0), oklch(${o} ${r} ${s}))`,j.style.background=`oklch(${o} ${r} ${s})`,R.style.background=`linear-gradient(oklch(${o} ${r} ${s} / ${i}), oklch(${o} ${r} ${s} / ${i})), var(--twk-dropdown-bg)`,s!==L&&(x=oe(s),L=s),y.style.background=x},O=()=>ts([o,r,s],"hex",i),X=()=>{let U=Ki([o,r,s],c);if(Y.textContent=U==="wide"?n("wide","wide"):U,c==="hex"){let S=Q.querySelector(".twk-color-chan-input");S&&Ae(S)!==S&&(S.value=O())}else{let S=Bo([o,r,s],c);k.forEach((C,he)=>{C.el.contains(Ae(C.el))||C.set(S[he])})}},W=()=>{te(),h(),B()},pe=()=>t(M()),me=U=>{U&&s!==f&&h(),B(),X()},_e=U=>{d=null,me(U),pe()},Te=()=>{if(Q.replaceChildren(),k=[],c==="hex"){Q.classList.add("twk-color-channels--hex");let U=b("div","twk-color-chan"),S=b("input","twk-color-chan-input");S.type="text",S.spellcheck=!1,S.setAttribute("aria-label",n("hex","Hex color")),bt(S),yr(S),S.addEventListener("change",()=>{let C=S.value.trim();vn.test(C)&&([o,r,s,i]=tn(C),_e(!0))}),S.addEventListener("blur",X),S.addEventListener("keydown",C=>{C.key==="Enter"&&S.blur()}),mo(S,O),U.append(ie("span","twk-color-chan-label","HEX"),S),Q.append(U)}else{Q.classList.remove("twk-color-channels--hex");let U=Bo([o,r,s],c);kn[c].forEach((S,C)=>{let he=Ne({label:S.k,value:U[C],min:S.min,max:S.max,step:S.step},ue=>{[o,r,s]=Vi([o,r,s],c,C,q(ue,S.min,S.max)),_e(!0)});he.el.addEventListener("focusout",X),k.push(he),Q.append(he.el)})}X()},xe=U=>l?Vo(l,U):.4,Me=U=>jt(U,m);an(m,U=>{let[S,C]=Me(U);o=1-C,r=S*xe(o),_e(!1)});let Qe=Nn(m);m.addEventListener("keydown",U=>{if(U.key==="Home"||U.key==="End"){U.preventDefault();return}let S=U.shiftKey?10:1,[C,he]=Rt(U),ue=C*S,ae=he?he*S:U.key==="PageUp"?10:U.key==="PageDown"?-10:0;if(!ue&&!ae)return;U.preventDefault();let ge=xe(o),Se=q((ge>0?r/ge:0)+ue*.01,0,1);o=q(o+ae*.01,0,1),r=Se*xe(o),_e(!1),Qe()});let et=(U,S,C,he,ue,ae)=>{U.tabIndex=0,U.setAttribute("role","slider"),U.setAttribute("aria-label",S),U.setAttribute("aria-valuemin","0"),U.setAttribute("aria-valuemax",String(C)),an(U,ge=>ae(jt(ge,U)[0]*C)),U.addEventListener("keydown",ge=>{let Se=Yt(ge,ue(),he,0,C);Se!=null&&(ge.preventDefault(),ae(q(Se,0,C)))})};et(J,n("hue","Hue"),360,1,()=>s,U=>{s=U,_e(!0)}),et(F,n("alpha","Alpha"),1,.01,()=>i,U=>{i=U,_e(!1)});let Ct=U=>{c=U,d=null,p=null,z(),Mt(n.s,Te),h(),B()};return $.addEventListener("change",()=>{$.value!=="kept"&&(Ct($.value),e.onMode&&e.onMode())}),Te(),{el:E,set:U=>{if(!Et(U)){console.warn(`[tweaks] color: "${String(U).slice(0,40)}" isn't a color \u2014 kept ${M()}`);return}let S=Ae(E);S&&E.contains(S)&&S.matches("input")&&S.blur(),[o,r,s,i]=tn(U);let C=a?null:as(U);C&&C!==c&&Ct(C),p=C?Xi(U):null,z(),d=Ui(U)?U.trim():null,me(!0)},get:()=>M(),mode:()=>c,setMode:U=>{U!==c&&Do.includes(U)&&Ct(U)},reflow:W,swatchCss:()=>`linear-gradient(oklch(${o} ${r} ${s} / ${i}), oklch(${o} ${r} ${s} / ${i})), ${ls}`,valueText:()=>Gi([o,r,s],c)+(i<.999?c==="hex"?yn(i):` / ${+i.toFixed(2)}`:"")}}function bc(e,t){let{root:n,trigger:o,right:r}=nt("twk-color",e.label??ce()("color","Color")),s=b("span","twk-trigger-chip twk-color-swatch"),i=b("span","twk-trigger-value");r.append(s,i);let a=b("div","twk-color-pop"),c=()=>{s.style.background=d.swatchCss(),i.textContent=d.valueText()},d=xn({value:e.value,mode:e.mode,onMode:()=>c()},p=>{c(),t(p)});return a.append(d.el),n.append(a),Ke(n,o,a,{fallbackH:340,onOpen:d.reflow,onReflow:d.reflow}),c(),{el:n,set:p=>{p!=null&&(d.set(p),c())},get:()=>d.get()}}var Qi=(e,t,n,o)=>o<.999?`oklch(${+e.toFixed(4)} ${+t.toFixed(4)} ${+n.toFixed(2)} / ${+o.toFixed(3)})`:`oklch(${+e.toFixed(4)} ${+t.toFixed(4)} ${+n.toFixed(2)})`;de("color",bc);de("colorpicker",xn);we();$e();fn();var yc=e=>Math.min(1,Math.max(0,e)),ea=e=>pn(e)?e.trim().toLowerCase():"linear";function wc(e,t){if(t=yc(t),!e)return t;let n=Sr(e);for(let o=1;o<n.length;o++)if(t<=n[o][0]){let[r,s]=n[o-1],[i,a]=n[o];return i>r?s+(a-s)*(t-r)/(i-r):a}return 1}var kc=Pe('<path d="M12 5v14m7-7H5"/>',"",2.5),oa=(e,t)=>e&&!Array.isArray(e)&&typeof e[t]=="string"?e[t]:null,ms=e=>oa(e,"interpolation"),gs=e=>oa(e,"easing"),ta=[["linear","easeLinear","Linear"],["ease","ease","Ease"],["ease-in","easeIn","Ease in"],["ease-out","easeOut","Ease out"],["ease-in-out","easeInOut","Ease in-out"]];function na(e){let t=[{color:"oklch(0.72 0.19 25)",pos:0},{color:"oklch(0.72 0.16 280)",pos:1}],n=Array.isArray(e)?e:e&&Array.isArray(e.stops)?e.stops:null,o=(s,i)=>Et(s)?{color:String(s).trim(),pos:q(+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:t}function vc(e,t){let n=ce();e.value??(e.value=e.stops);let o=ms(e.value)??ms(e),r=gs(e.value)??gs(e),s=na(e.value),i=s[0],a=ea(r),{root:c,trigger:d,right:p}=nt("twk-gradient",e.label??n("gradient","Gradient")),f=b("span","twk-trigger-chip twk-gradient-preview");f.setAttribute("role","img"),p.append(f);let l=b("div","twk-color-pop twk-gradient-pop"),k=b("div","twk-gradient-bar-row"),L=b("div","twk-gradient-bar"),x=b("div","twk-gradient-grad"),M=b("div","twk-gradient-rail");L.append(x,M);let E=ye("twk-gradient-add",kc);E.title=n("addStop","Add a stop after the selected one"),E.setAttribute("aria-label",n("addStopAria","Add a color stop after the selected one")),k.append(L,E);let m=()=>[...s].sort((h,K)=>h.pos-K.pos),T=()=>Di(_.mode()),j=()=>({stops:m().map(h=>({color:h.color,pos:+h.pos.toFixed(4)})),interpolation:T(),easing:a}),J=()=>{let h=ho(j());x.style.background=h,f.style.background=`${h}, ${ls}`},g=()=>{f.setAttribute("aria-label",n("stops",h=>`${h.n} stop${h.n===1?"":"s"}`,{n:s.length}))},y=()=>t(j()),F=h=>[...M.children].find(K=>K._stop===h),_=xn({value:i.color,mode:Zr(o||"oklch"),onMode:()=>{J(),y()}},h=>{i.color=h,F(i)?.style.setProperty("--stop",h),J(),y()}),R=b("select","twk-color-mode twk-gradient-ease");R.setAttribute("aria-label",n("stopEasing","Easing between stops")),R.title=n("stopEasingHint","How the ramp blends between stops");for(let[h,K,oe]of ta){let Z=document.createElement("option");Z.value=h,Z.textContent=n(K,oe),R.append(Z)}let w=()=>{let h=R.querySelector("option[data-custom]");ta.some(([K])=>K===a)?h?.remove():(h||(h=document.createElement("option"),h.dataset.custom="",h.textContent=n("custom","Custom"),R.append(h)),h.value=a),R.value=a};R.addEventListener("change",()=>{a=R.value,w(),J(),y()}),_.el.querySelector(".twk-color-mode").after(R),w(),l.append(k,_.el),c.append(l);let $=h=>h.setAttribute("aria-label",n(h._stop===i?"stopAtSelected":"stopAt",h._stop===i?"Color stop at {pos}%, selected":"Color stop at {pos}%",{pos:Math.round(h._stop.pos*100)})),N=()=>{for(let h of M.children)h.dataset.sel=String(h._stop===i),$(h)},z=(h,K)=>{h._stop.pos=q(K,0,1),h.style.left=h._stop.pos*100+"%",$(h),J(),y()},Y=()=>{M.replaceChildren();for(let h of s){let K=ye("twk-gradient-stop");K._stop=h,K.style.left=h.pos*100+"%",K.style.setProperty("--stop",h.color),K.dataset.sel=String(h===i),$(K),K.addEventListener("focus",()=>Q(h,!1));let oe=!1;ht(K,{onDown:Z=>{Z.preventDefault(),Z.stopPropagation(),K.focus({focusVisible:!1}),Q(h,!1),oe=!1},onMove:Z=>{let te=M.getBoundingClientRect();z(K,(Z.clientX-te.left)/(te.width||1)),oe=s.length>2&&(Z.clientY<te.top-24||Z.clientY>te.bottom+24),K.dataset.removing=String(oe)},onEnd:()=>{oe?I(h):K.dataset.removing="false"}}),K.addEventListener("dblclick",Z=>{Z.preventDefault(),I(h)}),K.addEventListener("keydown",Z=>{let[te]=Rt(Z);te&&(Z.preventDefault(),z(K,h.pos+te*(Z.shiftKey?.1:.01)))}),M.append(K)}},Q=(h,K)=>{h!==i&&(_.set(h.color),i=h),K?Y():N()},G=h=>{let K=M.getBoundingClientRect();return q((h-K.left)/(K.width||1),0,1)},ee=h=>{let K=m(),oe=K[0],Z=K[K.length-1];for(let me=0;me<K.length-1;me++)if(h>=K[me].pos&&h<=K[me+1].pos){oe=K[me],Z=K[me+1];break}let te=wc(pn(a),Z.pos>oe.pos?q((h-oe.pos)/(Z.pos-oe.pos),0,1):0),B=tn(oe.color),O=tn(Z.color),X=me=>me[1]<1e-4,W=O[2]-B[2];W>180?W-=360:W<-180&&(W+=360),(X(B)||X(O))&&(W=0);let pe=(((X(B)&&!X(O)?O[2]:B[2])+W*te)%360+360)%360;return Qi(B[0]+(O[0]-B[0])*te,B[1]+(O[1]-B[1])*te,pe,B[3]+(O[3]-B[3])*te)},I=h=>{if(s.length<=2)return;let K=s.indexOf(h);if(K<0)return;s.splice(K,1);let oe=i===h?s[Math.max(0,K-1)]:i;J(),Q(oe,!0),g(),y(),F(i)?.focus()},A=h=>{let K={color:ee(h),pos:q(h,0,1)};s.push(K),J(),Q(K,!0),g(),y()},D=()=>{let h=m(),K=h.indexOf(i);A(K<h.length-1?(h[K].pos+h[K+1].pos)/2:(h[K-1].pos+h[K].pos)/2)};return E.addEventListener("click",h=>{h.stopPropagation(),D()}),L.addEventListener("dblclick",h=>{h.target.closest(".twk-gradient-stop")||(h.preventDefault(),A(G(h.clientX)))}),l.tabIndex=-1,l.addEventListener("keydown",h=>{(h.key==="Delete"||h.key==="Backspace")&&!h.altKey&&!/^(input|textarea|select)$/i.test(h.target.tagName)&&s.length>2&&(h.preventDefault(),I(i))}),Ke(c,d,l,{fallbackH:392,onOpen:_.reflow,onReflow:_.reflow,initialFocus:()=>F(i)}),Y(),J(),g(),{el:c,set:h=>{let K=ms(h);K&&_.setMode(Zr(K));let oe=gs(h);oe!==null&&(a=ea(oe),w());let Z=na(h).sort((te,B)=>te.pos-B.pos);if(Z.length===s.length)m().forEach((te,B)=>{te.color=Z[B].color,te.pos=Z[B].pos;let O=F(te);O&&(O.style.left=te.pos*100+"%",O.style.setProperty("--stop",te.color))});else{let te=i.pos;s=Z,i=s.reduce((B,O)=>Math.abs(O.pos-te)<Math.abs(B.pos-te)?O:B,s[0]),Y()}J(),g(),_.set(i.color)},get:()=>j()}}de("gradient",vc);we();$e();var Wn={x:0,y:8,blur:24,spread:0,color:"rgb(0 0 0 / 0.18)"},Yn=(e,t)=>e!=null&&e!==""&&Number.isFinite(+e)?+e:t,Mn=e=>String(+e.toFixed(1)),xc=/#[0-9a-f]{3,8}\b|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\([^()]*\)/i,Mc=/^(-?\d*\.?\d+)(px)?$/,Ec=e=>{let t=xc.exec(e);if(!t||!Et(t[0]))return null;let n=(e.slice(0,t.index)+" "+e.slice(t.index+t[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=>Mc.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:t[0]}},Sc=Pe('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',"twk-shadow-chevron",2.5);function Cc(e,t){let n=ce(),o=I=>typeof I=="string"?Ec(I):ke(I)?I:null,r=o(e.value??e)||{},s=!!r.inset,{root:i,trigger:a,right:c}=nt("twk-shadow",e.label??n("shadow","Shadow")),d=b("span","twk-trigger-chip twk-shadow-chip"),p=b("span","twk-shadow-chip-tile");d.append(p);let f=b("span","twk-trigger-value");c.append(d,f);let l=b("div","twk-color-pop twk-shadow-pop"),k=b("div","twk-shadow-stage"),L=b("div","twk-shadow-card");k.append(L);let x=Vt([{value:"outer",label:n("outer","Outer")},{value:"inner",label:n("inner","Inner")}],s?"inner":"outer",I=>{I==="inner"!==s&&(s=I==="inner",Q(),Y())},n("shadowPosition","Shadow position")),M=b("div","twk-row");M.append(ie("span","twk-row-label",n("position","Position")),x.el);let E=b("div","twk-fields twk-shadow-fields"),m=(I,A,D)=>{let h=Ne({label:I,value:A,step:1,min:D,unit:"px"},()=>{Q(),Y()});return E.append(h.el),h},T=m("X",Yn(r.x,Wn.x)),j=m("Y",Yn(r.y,Wn.y)),J=m(n("blur","Blur"),Yn(r.blur,Wn.blur),0),g=m(n("spread","Spread"),Yn(r.spread,Wn.spread)),y=()=>[T,j,J,g].map(I=>I.get()),F=ye("twk-trigger twk-shadow-color");F.setAttribute("aria-expanded","false");let _=b("span","twk-trigger-chip twk-color-swatch"),R=b("span","twk-trigger-value"),w=b("span","twk-trigger-right");w.append(_,R),w.insertAdjacentHTML("beforeend",Sc),F.append(ie("span","twk-trigger-label",n("color","Color")),w);let $=xn({value:typeof r.color=="string"&&Et(r.color)?r.color:Wn.color,onMode:()=>Q()},()=>{Q(),Y()});$.el.hidden=!0,F.addEventListener("click",()=>{let I=$.el.hidden;$.el.hidden=!I,F.setAttribute("aria-expanded",String(I)),G.reflow()}),l.append(k,M,E,F,$.el),i.append(l);let N=I=>`${s?"inset ":""}${y().map(A=>`${Mn(A*I)}px`).join(" ")} ${$.get()}`,z=()=>{let[I,A,D,h]=y().map(K=>+Mn(K));return{inset:s,x:I,y:A,blur:D,spread:h,color:$.get(),css:N(1)}},Y=()=>t(z()),Q=()=>{L.style.boxShadow=N(1),p.style.boxShadow=N(.3);let[I,A,D,h]=y();f.textContent=`${s?n("inset","in")+" ":""}${Mn(I)} ${Mn(A)} ${Mn(D)}${h?" "+Mn(h):""}`,_.style.background=$.swatchCss(),R.textContent=$.valueText()},G=Ke(i,a,l,{fallbackH:300,onOpen:$.reflow,onReflow:$.reflow});return Q(),{el:i,set:I=>{let A=o(I);A&&(A.inset!=null&&(s=!!A.inset,x.set(s?"inner":"outer")),[["x",T],["y",j],["blur",J],["spread",g]].forEach(([D,h])=>{A[D]!=null&&h.set(Yn(A[D],h.get()))}),typeof A.color=="string"&&Et(A.color)&&$.set(A.color),Q())},get:z}}de("shadow",Cc);we();$e();var Lc=Pe('<path d="M3 9V7a4 4 0 0 1 4-4h2M15 3h2a4 4 0 0 1 4 4v2M21 15v2a4 4 0 0 1-4 4h-2M9 21H7a4 4 0 0 1-4-4v-2"/>'),Tc=Pe('<path d="M3 13V8a5 5 0 0 1 5-5h5"/>',"",1.5,16),Ac=Pe('<path d="M3 10V8a5 5 0 0 1 5-5a5 5 0 0 1 5 5v2"/>',"",1.5,16),Oc=/^(-?\d*\.?\d+)([a-z%]*)$/i,ra=e=>e!=null&&e!==""&&Number.isFinite(+e)?+e:null,hs=e=>e.length===1?[e[0],e[0],e[0],e[0]]:e.length===2?[e[0],e[1],e[0],e[1]]:e.length===3?[e[0],e[1],e[2],e[1]]:e.slice(0,4),ia=e=>{let t=e.trim().split(/\s+/).map(n=>Oc.exec(n));return t.length<=4&&t.every(Boolean)?t.map(n=>[+n[1],n[2].toLowerCase()]):null},sa=(e,t)=>{if(typeof e=="number")return Number.isFinite(e)?[e,e,e,e]:null;if(typeof e=="string"){let n=ia(e);return n?hs(n.map(o=>o[0])):null}if(Array.isArray(e)){let n=e.map(ra);return n.length>=1&&n.length<=4&&n.every(o=>o!==null)?hs(n):null}if(e&&typeof e=="object"){let n=e,o=t.slice(),r=!1;return["top","right","bottom","left"].forEach((s,i)=>{let a=ra(n[s]);a!==null&&(o[i]=a,r=!0)}),r?o:null}return null},Pc=(e,t,n)=>{let o=typeof e=="string"&&ia(e);if(!o)return"";let r=hs(o.map((s,i)=>i)).map((s,i)=>[n[i].toLowerCase(),o[s][0]?o[s][1]:""]).filter(([,s])=>s);return new Set(r.map(([,s])=>s)).size<2?r.length?r[0][1]:"":(console.warn(`[tweaks] sides "${t}": "${e}" mixes units (${r.map(s=>s.join(" ")).join(", ")}) and the control edits one, so all four read as px; write one unit, or set unit`),"")};function Rc(e,t){let n=!!e.corners,o=n?["Top-left","Top-right","Bottom-right","Bottom-left"]:["Top","Right","Bottom","Left"],r=ce(),s=o.map(N=>r(N.toLowerCase().replace(/-(\w)/,(z,Y)=>Y.toUpperCase()),N)),i=e.label||e.key,a=e.value??e,c=typeof e.unit=="string"&&e.unit.trim()||Pc(a,i,o)||"px",d=sa(a,[0,0,0,0]),p={step:e.step??Math.min(1,...(d||[]).map(It)),min:e.min??(n?0:void 0),max:e.max,unit:c},f=N=>String(+N.toFixed(Math.max(2,lt(+p.step))));!d&&e.value!=null&&(typeof e.value!="object"||Array.isArray(e.value))&&console.warn(`[tweaks] sides "${i}": can't read ${JSON.stringify(e.value)?.slice(0,60)}, so it starts at 0; it takes one to four numbers or plain lengths, like "8px 16px"`),d=d||[0,0,0,0];let l=d.every(N=>N===d[0]),k=b("div","twk-sides"),L=Ne({label:e.label,value:d[0],row:!0,...p},N=>{d=[N,N,N,N],R(),_()}),x=n?r("splitCorners","Independent corners"):r("splitSides","Independent sides"),M=ye("twk-sides-link",Lc);M.setAttribute("aria-label",x),M.title=x,M.addEventListener("click",()=>w());let E=b("div","twk-sides-multi"),m=b("div","twk-sides-head"),T=b("span","twk-sides-sum"),j=document.createTextNode("");T.append(j,ie("span","twk-sides-unit",c)),m.append(ie("span","twk-row-label",e.label),T);let J=b("div","twk-fields"),g=s.map((N,z)=>Ne({label:N,value:d[z],...p},Y=>{d[z]=Y,R(),_()}));g.forEach((N,z)=>{let Y=N.el.querySelector(".twk-field-label");Y.title=s[z],Y.classList.add("twk-sides-glyph"),Y.dataset.at=o[z].toLowerCase(),Y.innerHTML=n?Tc:Ac,J.append(N.el)}),E.append(m,J),k.append(L.el,E),d=g.map(N=>N.get());let y=()=>{let[N,z,Y,Q]=d.map(f),G=ee=>ee==="0"?"0":ee+c;return(N===Y&&z===Q?N===z?[N]:[N,z]:z===Q?[N,z,Y]:[N,z,Y,Q]).map(G).join(" ")},F=()=>({top:d[0],right:d[1],bottom:d[2],left:d[3],css:y()}),_=()=>t(F()),R=()=>{k.classList.toggle("is-linked",l),M.setAttribute("aria-pressed",String(!l)),(l?L.el:m).append(M),L.set(d[0]),g.forEach((N,z)=>N.set(d[z])),j.data=d.map(f).join(" ")},w=()=>{l=!l,l&&(d=[d[0],d[0],d[0],d[0]]),R(),_(),M.focus()};return R(),{el:k,set:N=>{let z=sa(N,d);z&&(g.forEach((Y,Q)=>Y.set(z[Q])),d=g.map(Y=>Y.get()),l=d.every(Y=>Y===d[0]),R())},get:F,range:L.range}}de("sides",Rc);we();$e();function Nc(e,t){let n=e.label,o=+(e.value&&e.value[0]),r=+(e.value&&e.value[1]),s=Number.isFinite(o)?o:0,i=Number.isFinite(r)?r:1,{min:a,max:c,step:d}=wo(e.min,e.max,e.step,[s,i],n);[a,c]=un(a,c,d);let p=lt(d),f=A=>Xt(A,a,d),l=0,k=0,L=(A,D)=>{l=q(f(Math.min(A,D)),a,c),k=q(f(Math.max(A,D)),a,c)};L(Number.isFinite(o)?o:a,Number.isFinite(r)?r:c);let x=b("div","twk-slider-wrap"),M=b("div","twk-slider twk-interval"),E=b("div","twk-slider-fill"),m=b("div","twk-slider-handle"),T=b("div","twk-slider-handle"),j=ie("span","twk-slider-label",n),J=b("span","twk-slider-value");M.append(E,m,T,j,J),x.append(M);let g=ce();[["intervalMin","{label} minimum",m],["intervalMax","{label} maximum",T]].forEach(([A,D,h])=>{h.tabIndex=0,h.setAttribute("role","slider"),h.setAttribute("aria-label",g(A,D,{label:n})),h.setAttribute("aria-valuemin",String(a)),h.setAttribute("aria-valuemax",String(c))});let y=A=>(A-a)/(c-a||1)*100,F=A=>`clamp(5px, calc(${A}% - 1.5px), calc(100% - 9px))`,_=()=>{let A=y(l),D=y(k);E.style.left=A+"%",E.style.width=Math.max(0,D-A)+"%",m.style.left=F(A),T.style.left=F(D),J.textContent=`${l.toFixed(p)} \u2013 ${k.toFixed(p)}`,m.setAttribute("aria-valuenow",String(l)),T.setAttribute("aria-valuenow",String(k));let h=x.offsetWidth;if(h){j.style.maxWidth=Math.max(0,h-J.offsetWidth-12-8-10)+"px";let K=oe=>ko(j,J,oe/100*h-1.5,3);m.classList.toggle("is-dodge",K(y(l))),T.classList.toggle("is-dodge",K(y(k)))}};_();let R=()=>t([l,k]),w=A=>{l=q(Math.min(f(A),k),a,c),_()},$=A=>{k=q(Math.max(f(A),l),a,c),_()},N=null,z=1,Y=null,Q=A=>{let D=x.offsetWidth||N.width,h=q((A-N.left)/z/D,0,1);return q(a+h*(c-a),a,c)},G=A=>{let D=Q(A);Y||(Y=D<l?"lo":D>k?"hi":Math.abs(D-l)<=Math.abs(D-k)?"lo":"hi"),Y==="lo"?w(D):$(D),R()};ht(M,{onDown:A=>{A.preventDefault(),N=x.getBoundingClientRect(),z=N.width/(x.offsetWidth||N.width),M.style.transition="",M.classList.add("is-active","is-dragging"),Y=null,G(A.clientX),(Y==="lo"?m:T).focus({focusVisible:!1})},onMove:A=>{G(A.clientX),Mo(M,N,A.clientX)},onEnd:()=>{Eo(M),N=null,Y=null,M.classList.remove("is-active","is-dragging")}}),xo(M,_),Ge(_),Ze(M,[[window,"resize"],[window,"twk-reflow"]],_);let ee=(c-a)/10||d*10,I=A=>D=>{let h=A==="lo"?Yt(D,l,d,a,k,ee):Yt(D,k,d,l,c,ee);h!=null&&(D.preventDefault(),A==="lo"?w(h):$(h),R())};return m.addEventListener("keydown",I("lo")),T.addEventListener("keydown",I("hi")),{el:x,set:A=>{if(Array.isArray(A)){let D=+A[0],h=+A[1];if(!Number.isFinite(D)||!Number.isFinite(h))return;L(D,h),_()}},get:()=>[l,k],range:[a,c]}}de("interval",Nc);we();var $c=0;function Fc(e){let t=`twk-tabs-${++$c}`,n=b("div","twk-tabs"),o=b("div","twk-tabs-bar");o.setAttribute("role","tablist");let r=b("div","twk-tabs-pill");o.append(r);let s=b("div","twk-tabs-pages"),i=[],a=e.pages.map((f,l)=>{let k=ie("button","twk-tabs-tab",f.title);k.setAttribute("role","tab"),k.id=`${t}-tab-${l}`,k.setAttribute("aria-controls",`${t}-page-${l}`);let L=b("div","twk-tabs-page twk-controls");return L.setAttribute("role","tabpanel"),L.id=`${t}-page-${l}`,L.setAttribute("aria-labelledby",k.id),i.push(L),s.append(L),k.addEventListener("click",()=>p(l)),o.append(k),k});n.append(o,s);let c=f=>_r(o,r,f),d=f=>{a.forEach((l,k)=>{l.dataset.active=String(k===f),l.setAttribute("aria-selected",String(k===f)),l.tabIndex=k===f?0:-1}),i.forEach((l,k)=>l.dataset.active=String(k===f))};d(0);function p(f){d(f),c(!0),mn()}return o.addEventListener("keydown",f=>{let l=a.findIndex(L=>L.dataset.active==="true");if(l<0)return;let k=Zt(f.key,l,a.length,-1);k<0||(f.preventDefault(),p(k),a[k].focus())}),Ge(c),{el:n,bodies:i,activate:p,active:()=>a.findIndex(f=>f.dataset.active==="true")}}de("tabs",Fc);we();$e();var _c=e=>String(e).replace(/[\\"]/g,"\\$&").replace(/[\x00-\x1f\x7f]/g,t=>"\\"+t.charCodeAt(0).toString(16)+" "),bs=e=>`url("${_c(e)}")`,Ko=1<<20,aa=e=>e>=Ko?`${Math.round(e/Ko*10)/10} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} B`,la=e=>{if(/^data:/i.test(e))return"";let t=e.split(/[?#]/)[0].split("/").pop().replace(/\.\w+$/,"");try{return decodeURIComponent(t)}catch{return t}},Hc=/^image\/(gif|svg\+xml)$/i,ca=1.5*Ko,fa=`\x89PNG\r
|
|
3
4
|
|
|
4
|
-
`,oe=(t,e,n)=>{for(let r=0;r<n.length;r++)if(t[e+r]!==n.charCodeAt(r))return!1;return!0},fc=async t=>{let e=async(o,s)=>new Uint8Array(await t.slice(o,o+s).arrayBuffer()),n=await e(0,21),r=oe(n,0,"RIFF")&&oe(n,8,"WEBP");if(r&&oe(n,12,"VP8X")&&n[20]&2)return!0;if(!r&&!oe(n,0,Ui))return!1;for(let o=r?12:8;;){let s=await e(o,8);if(s.length<8)return!1;let i=String.fromCharCode(...s.subarray(r?0:4,r?4:8));if(i===(r?"ANIM":"acTL"))return!0;if(r?/^(VP8 |VP8L|ANMF)$/.test(i):i==="IDAT")return!1;let a=new DataView(s.buffer).getUint32(r?4:0,r);o+=r?8+a+(a&1):12+a}},Wi=t=>{let e=oe(t,0,"II"),n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(!e&&!oe(t,0,"MM"))return null;try{let r=n.getUint32(4,e);for(let o=0,s=n.getUint16(r,e);o<s;o++)if(n.getUint16(r+2+o*12,e)===274){let i=n.getUint16(r+10+o*12,e);return i>1&&i<=8?i:1}return 1}catch{return null}},Yi=t=>new Uint8Array([77,77,0,42,0,0,0,8,0,1,1,18,0,3,0,0,0,1,0,t,0,0,0,0,0,0]),mc=t=>{let e=-1;for(let n of t){e^=n;for(let r=0;r<8;r++)e=e>>>1^3988292384&-(e&1)}return~e>>>0},zi="http://ns.adobe.com/xap/1.0/\0",qi=["adobe:ns:meta/","http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://ns.adobe.com/hdr-gain-map/1.0/","http://ns.google.com/photos/1.0/container/","http://ns.google.com/photos/1.0/container/item/"],gc=t=>{let e=new TextDecoder("latin1").decode(t),n=new Set(["xmlns","xml"]);if(!e.includes(qi[2]))return!1;for(let[,r,o]of e.matchAll(/xmlns(?::([\w.-]+))?\s*=\s*["']([^"']*)["']/g)){if(!qi.includes(o))return!1;r&&n.add(r)}for(let[,r]of e.matchAll(/[<\s/]([\w.-]+):[\w.-]/g))if(!n.has(r))return!1;return!0},hc=(t,e)=>{let n=oe(t,0,"II"),r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(!(!n&&!oe(t,0,"MM")))try{let o=r.getUint32(4,n);for(let s=0,i=r.getUint16(o,n);s<i;s++){let a=o+2+s*12;if(r.getUint16(a,n)!==45058)continue;let u=r.getUint32(a+8,n),f=r.getUint32(a+4,n)>>>4;f&&r.getUint32(u+f*16-4,n);for(let l=0;l<f;l++){let p=u+l*16+8,d=r.getUint32(p,n);d>e&&r.setUint32(p,d-e,n)}}}catch{}},bc=t=>{if(t[0]!==255||t[1]!==216)return null;let e=[],n=2,r=0,o=0,s=null,i=0;for(;;){for(;t[n]===255&&t[n+1]===255;)n++;let a=t[n+1],u=n+2+(t[n+2]<<8|t[n+3]);if(t[n]!==255||a===255||a===1||a>=208&&a<=217||u<n+4||u>t.length)return null;if(a===218)break;a===226&&oe(t,n+4,"MPF\0")&&(s=t.subarray(n+8,u));let f=a===225&&oe(t,n+4,"Exif\0");if(f||a===225&&oe(t,n+4,"http://ns.adobe.com/x")&&!(oe(t,n+4,zi)&&gc(t.subarray(n+4+zi.length,u)))){let l=f?Wi(t.subarray(n+10,u)):1;if(l===null)return null;e.push(t.subarray(r,n)),r=u;let p=l>1&&!o++;p&&e.push(new Uint8Array([255,225,0,34,69,120,105,102,0,0,...Yi(l)])),s&&(i+=u-n-(p?36:0))}n=u}return s&&i>0&&hc(s,i),e.length?[...e,t.subarray(r)]:null},yc=t=>{if(!oe(t,0,Ui))return null;let e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],r=8,o=0,s=0;for(let i="";i!=="IEND";){let a=r+12>t.length?1/0:r+12+e.getUint32(r);if(a>t.length)return null;i=String.fromCharCode(...t.subarray(r+4,r+8));let u=/^[tiz]TXt$/.test(i)?String.fromCharCode(...t.subarray(r+8,Math.min(a-4,r+88))).split("\0")[0]:"";if(i==="eXIf"||/^(XML:com\.adobe\.xmp|Raw profile type (exif|app1|xmp))$/i.test(u)){let f=i==="eXIf"?Wi(t.subarray(r+8,a-4)):1;if(f===null)return null;if(n.push(t.subarray(o,r)),o=a,f>1&&!s++){let l=new Uint8Array(38),p=new DataView(l.buffer);p.setUint32(0,26),l.set([101,88,73,102],4),l.set(Yi(f),8),p.setUint32(34,mc(l.subarray(4,34))),n.push(l)}}r=a}return n.length?[...n,t.subarray(o)]:null},wc=async t=>{try{let e=new Uint8Array(await t.arrayBuffer()),n=bc(e)||yc(e);return n?new Blob(n,{type:t.type}):t}catch{return t}},vc=(t,e,n)=>{let r=t.getImageData(0,0,e,n).data;for(let o=3;o<r.length;o+=4)if(r[o]<255)return!0;return!1},Xi=(t,e,n)=>new Promise(r=>t.toBlob(o=>r(o&&o.type===e?o:null),e,n)),xc=t=>new Promise((e,n)=>{let r=new FileReader;r.onload=()=>e(String(r.result)),r.onerror=n,r.readAsDataURL(t)}),kc=t=>{try{let e=t.getContext("2d",{colorSpace:"display-p3"});if(e)return e}catch{}return t.getContext("2d")},Mc=async(t,e,n)=>{if(!e||dc.test(t.type)||typeof Image>"u"||typeof URL.createObjectURL!="function")return"";let r="";try{if(await fc(t))return"";r=URL.createObjectURL(t);let o=new Image;o.src=r,await o.decode();let s=o.naturalWidth,i=o.naturalHeight,a=Math.min(1,e/Math.max(s,i));if(!(s>0&&i>0)||a===1&&t.size<=Gi)return"";let u=document.createElement("canvas"),f=u.width=Math.max(1,Math.round(s*a)),l=u.height=Math.max(1,Math.round(i*a)),p=kc(u);if(!p)return"";p.imageSmoothingQuality="high",p.drawImage(o,0,0,f,l);let d=/^image\/jpe?g$/i.test(t.type),k=d?null:await Xi(u,"image/png");if(!k||k.size>Gi){let C=await Xi(u,!d&&vc(p,f,l)?"image/webp":"image/jpeg",n);C&&(!k||C.size<k.size)&&(k=C)}return k&&k.size<t.size?await xc(k):""}catch{return""}finally{r&&URL.revokeObjectURL(r)}},Ec=$t('<path d="M12 15V4m-4.5 4.5L12 4l4.5 4.5M4 15v3a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-3"/>');function Sc(t,e){let n=typeof t.value=="string"?t.value:"",r=new Set,o=(Array.isArray(t.options)?t.options:[]).map(E=>({value:ne(E),label:E&&typeof E=="object"&&E.label!=null?String(E.label):""})).filter(E=>typeof E.value=="string"&&!!E.value&&!r.has(E.value)&&!!r.add(E.value)),s=t.upload!==!1||!o.length,i=t.clear!==!1,a=+t.maxSize>0?+t.maxSize:10*Pr,u=t.fit===!1||t.fit===0?0:typeof t.fit=="number"&&t.fit>=1?Math.round(t.fit):2560,f=typeof t.quality=="number"&&t.quality>0&&t.quality<=1?t.quality:.85,l=w("input","tw-image-input");l.type="file",l.accept="image/*";let p=w("span","tw-image-note"),d=w("span","tw-image-live");d.setAttribute("role","status");let k=[p,d],C,v=E=>{for(let m of k)m.textContent=E;clearTimeout(C),C=setTimeout(()=>{for(let m of k)m.textContent=""},2600)},$=E=>(/^blob:/i.test(E)?"":Ki(E))||(/^(data|blob):/i.test(E)?"Uploaded image":"Custom image"),A,b=0,O=(E,m=!0)=>{b++,n=E,A(),m&&e(n)},I=E=>{if(!E)return;if(!E.type.startsWith("image/"))return v("Not an image");if(E.size>a)return v(`${Vi(E.size)}, max ${Vi(a)}`);let m=++b;Mc(E,u,f).then(async B=>{if(b!==m)return;if(B)return O(B);let _=new FileReader;_.onload=()=>{b===m&&O(String(_.result))},_.onerror=()=>v("Couldn't read the file"),_.readAsDataURL(await wc(E))})},z=(E,m)=>{let B=()=>!!T.closest(".is-disabled");E.addEventListener("dragover",_=>{B()||(_.preventDefault(),m.dataset.over="true")}),E.addEventListener("dragleave",()=>{m.dataset.over="false"}),E.addEventListener("drop",_=>{m.dataset.over="false",!B()&&(_.preventDefault(),I(_.dataTransfer?.files[0]))})};l.addEventListener("change",()=>{I(l.files?.[0]),l.value=""});let h=ee("tw-image",t.label),T=h.root,j=w("span","tw-trigger-chip tw-image-thumb"),K=()=>{j.dataset.set=n?"true":"false",j.style.backgroundImage=n?as(n):""};if(o.length){let E=w("span","tw-trigger-value"),m=w("span","tw-image-note");h.right.append(j,m,E),k.push(m);let B=w("div","tw-color-pop tw-image-pop tw-image-gallery"),_=s?wt("tw-button tw-image-upload",Ec):null,Z=st("button","tw-image-clear","Clear");Z.type="button",Z.setAttribute("aria-label",`${t.label}: clear the image`);let tt=w("div","tw-image-foot"),V=w("div","tw-image-foot-row"),Q=w("div","tw-image-clear-slot");tt.append(V),Q.append(Z);let S=w("div","tw-image-grid");S.setAttribute("role","radiogroup"),S.setAttribute("aria-label",t.label);let N=o.length,F=Math.min(6,Math.max(1,t.cols|0||(N<=3?Math.max(2,N):N===4?2:3)));S.style.setProperty("--tw-img-cols",String(F));let x=(H,L)=>{let X=Fn("tw-image-tile",H,()=>O(H));return X.textContent="",X.setAttribute("aria-label",L),X.style.backgroundImage=as(H),X},D=o.map((H,L)=>H.label||Ki(H.value)||`Image ${L+1}`),et=o.map((H,L)=>{let X=x(H.value,D[L]);return S.append(X),X}),W=wt("tw-image-tile tw-image-custom");W.setAttribute("role","radio");let rt=()=>W.parentNode?[...et,W]:et;A=()=>{let H=et.findIndex(U=>U._twVal===n);n&&H<0?(W._twVal=n,W.style.backgroundImage=as(n),W.setAttribute("aria-label",$(n)),W.parentNode||S.append(W)):(W.matches(":focus")&&et[Math.max(0,H)].focus(),W.remove());let L=rt(),X=Math.max(0,L.findIndex(U=>U._twVal===n));L.forEach((U,mt)=>{let dt=!!n&&U._twVal===n;U.dataset.active=String(dt),U.setAttribute("aria-checked",String(dt)),U.tabIndex=mt===X?0:-1}),Q.dataset.open=String(!!n),Q.inert=!n,tt.dataset.open=String(!!_||i&&!!n),tt.inert=tt.dataset.open==="false",K(),E.textContent=n?H>=0?D[H]:$(n):"None"},S.addEventListener("keydown",H=>{let L=rt(),X=L.indexOf(H.target);if(X<0)return;if(i&&(H.key==="Delete"||H.key==="Backspace")&&!H.altKey&&!H.metaKey&&!H.ctrlKey){H.preventDefault(),et[0].focus(),O("");return}let U=Xe(H.key,X,L.length,F);U<0||(H.preventDefault(),U!==X&&(L[U].focus(),O(L[U]._twVal)))}),Z.addEventListener("click",()=>{(_||et[0]).focus(),O("")}),B.append(S,tt),T.append(B,d),_&&(_.setAttribute("aria-label",`${t.label}: upload an image`),_.append(p,st("span","tw-image-text","Upload image")),_.addEventListener("click",()=>l.click()),V.append(_),T.append(l),z(h.trigger,h.trigger),z(B,B)),i&&V.append(Q),qt(T,h.trigger,B,{fallbackH:220,initialFocus:()=>rt().find(H=>H.tabIndex===0)})}else{h.trigger.removeAttribute("aria-expanded"),h.trigger.setAttribute("aria-label",`${t.label}: choose an image`);let E=w("span","tw-image-text");h.right.append(j,p,E),T.append(l,d),A=()=>{K(),E.textContent=n?"Replace":"Drop or choose"},h.trigger.addEventListener("click",()=>l.click()),z(h.trigger,h.trigger)}return A(),{el:T,set:E=>{E!=null&&typeof E!="string"||O(E||"",!1)},get:()=>n,note:v}}pt("image",Sc);xt();Nt();var Cc=(t,e,n,r,o,s,i)=>{let a=o.length;t.clearRect(0,0,n,r),t.strokeStyle=Ln(e),t.lineWidth=1.5,t.lineJoin="round",t.beginPath();let u=!1;for(let f=0;f<a;f++){let l=o[(s+f)%a];if(Number.isNaN(l))continue;let p=f/(a-1)*n,d=r-G(i(l),0,1)*r;u?t.lineTo(p,d):(t.moveTo(p,d),u=!0)}t.stroke()},Lc=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 Ji(t,e=!1){let n=typeof t.get=="function"?t.get:()=>t.value,r=Math.max(30,Number.isFinite(+t.interval)?+t.interval:200),o;try{o=n()}catch{}let s=typeof o=="number",i=t.view==="graph"||s&&t.graph!==!1&&t.view!=="text"&&t.rows==null,a=w("div","tw-fps tw-monitor"),u=st("span","tw-fps-val","\u2014");a.append(st("span","tw-fps-label",t.label??"Monitor"),u);let f=0,l=0,p=()=>{},d=!1,k=Number.isFinite(+t.decimals)?Math.min(20,Math.max(0,Math.floor(+t.decimals))):2,C=m=>m==null?"\u2014":typeof m=="number"?Number.isInteger(m)||!Number.isFinite(m)?String(m):m.toFixed(k):typeof m=="object"?Nn(m):String(m),v=()=>{f&&clearInterval(f),f=0,l&&cancelAnimationFrame(l),l=0,p()},$=m=>{let B=_=>{if(e&&(l=requestAnimationFrame(B)),!a.isConnected){d&&v();return}d=!0;let Z;try{Z=n(_)}catch{return}m(Z)};e?l=requestAnimationFrame(B):f=setInterval(B,r)};if(!i&&t.rows){u.remove();let m=Math.max(1,Math.floor(+t.rows)||1),B=w("pre","tw-monitor-buffer");B.style.setProperty("--tw-monitor-rows",m),a.append(B);let _=[];return $(Z=>{for(_.push(C(Z));_.length>m;)_.shift();B.textContent=_.join(`
|
|
5
|
-
`)}),Ce(a,v)}let A=m=>{u.textContent=C(m)};if(!i)return $(A),Ce(a,v);let b=document.createElement("canvas");b.className="tw-fps-canvas",a.append(b);let O=b.getContext("2d");if(!O)return $(A),Ce(a,v);let I=80,z=new Array(I).fill(NaN),h=0,T=0,j=0,K=()=>{[T,j]=lo(b,O,2)};p=Lc(K);let E=()=>{if(T||K(),!T)return;let m=t.min,B=t.max;if(m==null||B==null){let Z=1/0,tt=-1/0;for(let Q of z)Number.isFinite(Q)&&(Q<Z&&(Z=Q),Q>tt&&(tt=Q));Z===1/0?(Z=0,tt=1):Z===tt&&(Z-=.5,tt+=.5);let V=(tt-Z)*.1;m==null&&(m=Z-V),B==null&&(B=tt+V)}let _=B-m||1;Cc(O,a,T,j,z,h,Z=>(Z-m)/_)};return $(m=>{A(m),typeof m=="number"&&Number.isFinite(m)&&(z[h]=m,h=(h+1)%I,E())}),Ce(a,v)}var Ac=()=>{let t=0;return e=>{if(!(e>0))return;let n=t?1e3/(e-t):void 0;return t=e,n}},Tc=t=>Ji({...t,label:t.label??"FPS",get:Ac(),view:"graph",min:0,max:120,decimals:0},!0);pt("fpsgraph",Tc);pt("monitor",t=>Ji(t));xt();Nt();function Oc(t,e){let n=(L,X,U)=>Number.isFinite(+L)?Math.max(X,+L):U,r=L=>({stiffness:n(L.stiffness,1,300),damping:n(L.damping,.5,26),mass:n(L.mass,.1,1)}),o=L=>Number.isFinite(+L),[s,i]=nn,a=!1,u=L=>{let X=o(L)?+L:.5,U=G(X,s,i);return U!==X&&!a&&(a=!0,Ve("springDur",[t.key,X,U])),U},f=L=>G(o(L)?+L:.2,-1,1),l=L=>+L.toPrecision(10),p=L=>{let X=co(L.visualDuration,L.bounce);return{stiffness:l(X.stiffness),damping:l(X.damping),mass:X.mass}},d=L=>L==="time"||L==="physics"?L:null,k={stiffness:t.stiffness,damping:t.damping,mass:t.mass,visualDuration:t.visualDuration,bounce:t.bounce,...t.value||{}},C=d(k.mode)??d(t.mode)??(o(k.visualDuration)||o(k.bounce)?"time":"physics"),v={visualDuration:u(k.visualDuration),bounce:f(k.bounce)},$=r({stiffness:k.stiffness,damping:k.damping,mass:k.mass}),A=w("div","tw-spring"),b=w("div","tw-spring-viz"),O=document.createElement("canvas");O.className="tw-spring-canvas",b.append(O);let I=w("div","tw-fields"),z=w("div","tw-fields"),h=O.getContext("2d"),T=()=>C==="time"?p(v):r($),j=()=>{let L=Math.max(1,b.clientWidth),X=Math.max(1,b.clientHeight);if(L<2)return;let U=window.devicePixelRatio||1;O.width=L*U,O.height=X*U,h.setTransform(U,0,0,U,0,0),h.clearRect(0,0,L,X);let mt=T(),dt=Tn(mt.stiffness,mt.damping,mt.mass,Math.max(160,Math.round(L*U))),_t=Math.max(1.05,...dt),At=8,St=jt=>At+jt/(dt.length-1)*(L-2*At),Mt=jt=>X-At-jt/_t*(X-2*At);h.strokeStyle=io(A,"--tw-surface-active")||"rgba(255,255,255,0.1)",h.lineWidth=1,h.beginPath(),h.moveTo(At,Mt(1)),h.lineTo(L-At,Mt(1)),h.stroke(),h.strokeStyle=Ln(A),h.lineWidth=1.5,h.lineJoin=h.lineCap="round",h.beginPath(),dt.forEach((jt,Ut)=>Ut?h.lineTo(St(Ut),Mt(jt)):h.moveTo(St(Ut),Mt(jt))),h.stroke()},K=()=>C==="time"?{...T(),visualDuration:v.visualDuration,bounce:v.bounce}:T(),E=()=>e(K()),m={};[["stiffness","Stiffness",1],["damping","Damping",.5],["mass","Mass",.1]].forEach(([L,X,U])=>{m[L]=Rt({label:X,value:$[L],step:U,min:U},mt=>{$[L]=mt,j(),E()}),I.append(m[L].el)});let B=Rt({label:"Duration",value:v.visualDuration*1e3,step:10,min:s*1e3,max:i*1e3,unit:"ms"},L=>{v.visualDuration=u(L/1e3),j(),E()}),_=Rt({label:"Bounce",value:v.bounce*100,step:5,min:-100,max:100,unit:"%"},L=>{v.bounce=f(L/100),j(),E()});z.append(B.el,_.el);let Z=()=>{z.style.display=C==="time"?"":"none",I.style.display=C==="physics"?"":"none"},V=De([{value:"time",label:"Time"},{value:"physics",label:"Physics"}],C,L=>{L!=="time"&&L!=="physics"||L===C||(C=L,Z(),j(),E())},"Spring mode"),Q=w("div","tw-row");Q.append(st("span","tw-row-label","Mode"),V.el),t.label&&A.append(st("div","tw-spring-label",t.label)),A.append(b,Q,I,z);let S=1,N=500,F=1,x=40,D=.1,et=1,W=L=>{let[X,U]=Re(L,b);C==="time"?(B.set((D+X*(et-D))*1e3),v.visualDuration=B.get()/1e3,_.set((1-2*U)*100),v.bounce=_.get()/100):(m.stiffness.set(S+X*(N-S)),$.stiffness=m.stiffness.get(),m.damping.set(F+U*(x-F)),$.damping=m.damping.get()),j(),E()};ge(b,{onDown:L=>{L.preventDefault(),b.classList.add("is-dragging"),W(L)},onMove:W,onEnd:()=>b.classList.remove("is-dragging")}),Z(),Wt(j),Zt(O,[[window,"resize"],[window,"tw-reflow"],[matchMedia("(prefers-color-scheme: dark)"),"change"],[window,"tw-retheme"]],j);let rt=null,H=!1;return typeof MutationObserver=="function"&&(rt=new MutationObserver(()=>{O.isConnected?(H=!0,j()):H&&(rt.disconnect(),rt=null)}),rt.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),{el:A,destroy:()=>{rt&&(rt.disconnect(),rt=null)},set:L=>{if(!L||typeof L!="object")return;let X=d(L.mode),U=o(L.visualDuration)||o(L.bounce),mt=o(L.stiffness)||o(L.damping)||o(L.mass);!U&&!mt&&!X||(C=X??(U?"time":"physics"),U&&(o(L.visualDuration)&&(v.visualDuration=u(L.visualDuration)),o(L.bounce)&&(v.bounce=f(L.bounce))),mt&&($=r({...$,...L})),V.set(C),B.set(v.visualDuration*1e3),_.set(v.bounce*100),m.stiffness.set($.stiffness),m.damping.set($.damping),m.mass.set($.mass),Z(),j())},get:()=>K()}}pt("spring",Oc);xt();Nt();function $c(t,e){let n=[.25,.1,.25,1],r=-1,o=2,s=8,i=S=>S.map((N,F)=>G(N,F%2?r:0,F%2?o:1)),a=[-.25,1.25],u=!1,f=()=>{u||(a=[Math.min(-.25,l[1]-.1,l[3]-.1),Math.max(1.25,l[1]+.1,l[3]+.1)])},l=Array.isArray(t.value)&&t.value.length===4?t.value.map(Number):n.slice();l.some(S=>!Number.isFinite(S))&&(l=n.slice()),l=i(l);let p=l.slice(),d=w("div","tw-bezier");t.label&&d.append(st("div","tw-bezier-label",t.label));let k=w("div","tw-bezier-graph"),C=Ot("svg","tw-bezier-svg");C.setAttribute("preserveAspectRatio","none");let v=Ot("line","tw-bezier-guide"),$=Ot("line","tw-bezier-guide"),A=Ot("line","tw-bezier-diag"),b=Ot("line","tw-bezier-ctl"),O=Ot("line","tw-bezier-ctl"),I=Ot("path","tw-bezier-curve");C.append(v,$,A,b,O,I);let z=wt("tw-bezier-handle");z.setAttribute("aria-label","Control point 1");let h=wt("tw-bezier-handle");h.setAttribute("aria-label","Control point 2"),k.append(C,z,h);let T=w("div","tw-fields tw-bezier-fields");d.append(k,T);let j=0,K=0,E=S=>s+S*(j-2*s),m=S=>K-s-(S-a[0])/(a[1]-a[0])*(K-2*s),B=(S,N,F,x,D)=>{S.setAttribute("x1",N),S.setAttribute("y1",F),S.setAttribute("x2",x),S.setAttribute("y2",D)},_=()=>{if(z.setAttribute("aria-label",`Control point 1, x ${l[0]}, y ${l[1]}`),h.setAttribute("aria-label",`Control point 2, x ${l[2]}, y ${l[3]}`),j=k.offsetWidth,K=k.offsetHeight,j<2)return;f(),C.setAttribute("viewBox",`0 0 ${j} ${K}`);let[S,N,F,x]=l,D=E(0),et=m(0),W=E(1),rt=m(1),H=E(S),L=m(N),X=E(F),U=m(x);B(v,s,et,j-s,et),B($,s,rt,j-s,rt),B(A,D,et,W,rt),B(b,D,et,H,L),B(O,W,rt,X,U),I.setAttribute("d",`M${D},${et} C${H},${L} ${X},${U} ${W},${rt}`),z.style.left=H+"px",z.style.top=L+"px",h.style.left=X+"px",h.style.top=U+"px"},Z=[{label:"X1",i:0,lo:0,hi:1},{label:"Y1",i:1,lo:r,hi:o},{label:"X2",i:2,lo:0,hi:1},{label:"Y2",i:3,lo:r,hi:o}],tt=Z.map(S=>{let N=Rt({label:S.label,value:l[S.i],step:.01,min:S.lo,max:S.hi},F=>{l[S.i]=F,_(),e(l.slice())});return T.append(N.el),N}),V=()=>tt.forEach((S,N)=>S.set(l[Z[N].i])),Q=(S,N)=>{let F=null,x=0,D=0,et=1;ge(S,{onDown:W=>{W.preventDefault(),F=k.getBoundingClientRect(),x=k.offsetWidth||F.width,D=k.offsetHeight||F.height,et=F.width/x,S.classList.add("is-dragging"),S.focus({focusVisible:!1}),u=!0},onMove:W=>{let rt=(W.clientX-F.left)/et,H=(W.clientY-F.top)/et,L=G((rt-s)/(x-2*s),0,1),X=G(a[0]+(D-s-H)/(D-2*s)*(a[1]-a[0]),r,o);l[N*2]=+L.toFixed(2),l[N*2+1]=+X.toFixed(2),_(),V(),e(l.slice())},onEnd:()=>{F=null,S.classList.remove("is-dragging"),u=!1,_()}}),S.addEventListener("keydown",W=>{if(W.key==="Escape")return S.blur();if(W.key==="Home"){W.preventDefault(),l=p.slice(),_(),V(),e(l.slice());return}let[rt,H]=Se(W);if(!rt&&!H)return;W.preventDefault();let L=W.shiftKey?.1:.01,X=N*2;rt&&(l[X]=+G(l[X]+rt*L,0,1).toFixed(2)),H&&(l[X+1]=+G(l[X+1]+H*L,r,o).toFixed(2)),_(),V(),e(l.slice())})};return Q(z,0),Q(h,1),Wt(_),Zt(d,[[window,"resize"],[window,"tw-reflow"]],_),{el:d,set:S=>{if(Array.isArray(S)&&S.length===4){let N=S.map(Number);if(N.some(F=>!Number.isFinite(F)))return;l=i(N),_(),V()}},get:()=>l.slice()}}pt("cubicbezier",$c);xt();Nt();$n();var Pc=300,Rr=1e4,Rc=16,Zi=1,Gt=t=>typeof t=="number"?Number.isFinite(t):typeof t=="string"&&t.trim()!==""&&Number.isFinite(+t),ls=t=>{if(typeof t=="string"){let e=t==="linear"?[0,0,1,1]:On[t];return e?e.slice():null}if(Array.isArray(t)&&t.length===4){let e=t.map(Number);return e.every(Number.isFinite)?e:null}return null},ta=t=>Gt(t.stiffness)||Gt(t.damping)||Gt(t.mass)||Gt(t.visualDuration)||Gt(t.bounce),Nc=t=>{let e={mode:"time"};if(Gt(t.stiffness)){let n=+t.stiffness,r=Gt(t.mass)?+t.mass:1,o=rr(n,Gt(t.damping)?+t.damping:2*Math.sqrt(n*r),r);e.visualDuration=o.visualDuration,Gt(t.damping)&&(e.bounce=G(o.bounce,-1,Zi))}return Gt(t.visualDuration)&&(e.visualDuration=+t.visualDuration),Gt(t.bounce)&&(e.bounce=G(+t.bounce,-1,Zi)),e},Fc=t=>{if(!Gt(t.stiffness)||!Gt(t.damping))return null;let e=+t.stiffness,n=+t.damping,r=Gt(t.mass)?+t.mass:1;if(!(e>0&&n>=0&&r>0))return null;let o=rr(e,n,r),s=(i,a)=>Gt(i)&&Math.abs(+i-a)>1e-6*Math.max(1,Math.abs(a));return s(t.visualDuration,o.visualDuration)||s(t.bounce,o.bounce)?null:{stiffness:e,damping:n,mass:r,...o}},Qi=(t,e)=>t.mode==="spring"||t.mode==="easing"?t.mode:ta(t)?"spring":ls(t.curve)?"easing":e;function Dc(t,e){let n=Yt("cubicbezier"),r=Yt("spring");if(!n||!r)throw new Error("[tweaks] motion: the bezier and spring controls are not loaded");let o=yt(t.value)?t.value:{},s=Qi(o,"easing"),i=ls(o.curve)??On.ease.slice(),a=Gt(o.duration)?G(+o.duration,0,Rr):Pc,{root:u,trigger:f,right:l}=ee("tw-motion",t.label??"Motion"),p=w("span","tw-trigger-chip tw-motion-chip"),d=Ot("svg");d.setAttribute("viewBox","0 0 100 100"),d.setAttribute("preserveAspectRatio","none");let k=Ot("path");d.append(k),p.append(d);let C=w("span","tw-trigger-value");l.append(p,C);let v=w("div","tw-color-pop tw-motion-pop"),$=w("div","tw-motion-body");v.append($);let A=n({...t,type:"cubicbezier",label:"",value:i.slice()},H=>{i=H,W(),V()});i=A.get();let b=null,O=!1,I=H=>{if(b=Fc(H),!b)return Nc(H);let L=G(b.visualDuration,nn[0],nn[1]),X=b.damping/(2*Math.sqrt(b.stiffness*b.mass));return(L!==b.visualDuration||X<.05||X>20)&&!O&&(O=!0,Ve("springKept",[t.key,b.stiffness,b.damping,b.mass])),{mode:"time",visualDuration:L,bounce:b.bounce}},z=r({...t,type:"spring",label:"",value:I(o)},()=>{b=null,W(),V()}),h=()=>b??z.get(),T=Rt({label:"Duration",value:a,step:10,min:0,max:Rr,unit:"ms"},H=>{a=G(H,0,Rr),W(),V()});a=T.get();let j=w("div","tw-motion-pane"),K=w("div","tw-motion-pane"),E=w("div","tw-fields");E.append(T.el),j.append(A.el,E),K.append(z.el);let m=w("div","tw-motion-stage"),B=w("div","tw-motion-box");m.append(B);let _=De([{value:"easing",label:"Easing"},{value:"spring",label:"Spring"}],s,H=>{(H==="easing"||H==="spring")&&H!==s&&(s=H,D(),W(),V())},"Motion type"),Z=w("div","tw-row");Z.append(st("span","tw-row-label","Type"),_.el),$.append(Z,j,K,m),u.append(v);let tt=()=>{if(s==="easing")return{mode:s,curve:i.slice(),duration:a,easing:`cubic-bezier(${i.join(", ")})`};let H=h();return{mode:s,...H,...uo(H.stiffness,H.damping,H.mass)}},V=()=>e(tt()),Q=!1,S=null,N=H=>{if(H)Q=!Q;else if(S&&S.playState==="running")return;let L=tt(),X=Math.max(0,m.clientWidth-B.offsetWidth-2*Rc),U=`translateX(${Q?0:X}px)`,mt=`translateX(${Q?X:0}px)`;if(Fe.matches||typeof B.animate!="function"){B.style.transform=mt;return}S?.cancel();let dt=[{transform:U},{transform:mt}];try{S=B.animate(dt,{duration:L.duration,easing:L.easing,fill:"forwards"})}catch{S=B.animate(dt,{duration:L.duration,fill:"forwards"})}};m.addEventListener("click",()=>N(!0)),m.tabIndex=0,m.setAttribute("role","button"),m.setAttribute("aria-label","Replay the motion"),m.addEventListener("keydown",H=>{(H.key==="Enter"||H.key===" ")&&(H.preventDefault(),N(!0))});let F=()=>{let H;if(s==="easing"){let[U,mt,dt,_t]=i;H=[];for(let At=0;At<=24;At++){let St=At/24,Mt=1-St,jt=3*Mt*Mt*St,Ut=3*Mt*St*St,be=St*St*St;H.push([jt*U+Ut*dt+be,jt*mt+Ut*_t+be])}}else{let U=h();H=Tn(U.stiffness,U.damping,U.mass,32).map((mt,dt)=>[dt/31,mt])}let L=Math.max(1,...H.map(U=>U[1])),X=Math.min(0,...H.map(U=>U[1]));return H.map(([U,mt],dt)=>`${dt?"L":"M"}${(10+U*80).toFixed(1)},${(90-(mt-X)/(L-X)*80).toFixed(1)}`).join(" ")},x=()=>{s==="easing"?A.set(i.slice()):z.set(z.get())},D=()=>{j.style.display=s==="easing"?"":"none",K.style.display=s==="spring"?"":"none",x()},et=()=>s==="easing"?`Easing \xB7 ${a} ms`:`Spring \xB7 ${Math.round((h().visualDuration??0)*1e3)} ms`,W=()=>{k.setAttribute("d",F()),C.textContent=et(),N(!1)};return qt(u,f,v,{fallbackH:380,onOpen:()=>{_.set(s),x(),N(!0)},initialFocus:()=>_.el.querySelector('[tabindex="0"]')}),D(),W(),{el:u,set:H=>{let L=typeof H=="string"?{curve:H}:Array.isArray(H)&&H.length===4?{curve:H}:yt(H)?H:null;if(!L)return;s=Qi(L,s);let X=ls(L.curve);X&&(A.set(X.slice()),i=A.get()),s==="easing"&&Gt(L.duration)&&(T.set(G(+L.duration,0,Rr)),a=T.get()),ta(L)&&z.set(I(L)),_.set(s),D(),W()},get:tt,destroy:()=>z.destroy&&z.destroy()}}pt("motion",Dc);xt();Nt();function _c(t,e){let n=t.components,{root:r,trigger:o,right:s}=ee("tw-point",t.label??"Point"),i=w("span","tw-trigger-value"),a=w("div","tw-trigger-chip tw-point-preview"),u=w("div","tw-point-preview-dot");a.append(u),s.append(a,i);let f=w("div","tw-color-pop tw-point-pop"),l=w("div","tw-point-body");f.append(l);let p=t.pad!==!1&&n.length>=2,d=V=>{let Q=cr(Math.abs(Number.isFinite(+V.value)?+V.value:0))[1],S=V.min??-Q,N=V.max??Q;if(V.min==null!=(V.max==null)&&!(N>S)){let D=2*cr(Math.abs(+(V.min??V.max)))[1];V.min==null?S=N-D:N=S+D}let F=10**Math.floor(Math.log10((N-S)/200)),x=V.step??(F>0&&Number.isFinite(F)?F:1);return{lo:S,hi:N,nudge:x,step:V.step??Math.min(x,Pe(V.value),Pe(V.min))}},k=n.map(d),C=k[0],v=k[1],$=C?.lo??-1,A=C?.hi??1,b=v?.lo??-1,O=v?.hi??1,I=(V,Q,S)=>S>Q?G((V-Q)/(S-Q),0,1):.5,z=null,h=null,T=null;if(p){z=w("div","tw-pad"),h=w("div","tw-pad-thumb");let V=Ot("svg","tw-pad-line");V.setAttribute("viewBox","0 0 100 100"),V.setAttribute("preserveAspectRatio","none"),T=Ot("line"),V.append(T);let Q=I(0,b,O);T.setAttribute("x1",I(0,$,A)*100),T.setAttribute("y1",(t.invertY?Q:1-Q)*100),z.append(w("div","tw-pad-axis tw-pad-axis-x"),w("div","tw-pad-axis tw-pad-axis-y"),V,h),l.append(z)}let j=w("div","tw-fields");l.append(j);let K=()=>{tt(),Z()},E=()=>e(B()),m=n.map((V,Q)=>{let S=Rt({label:V.label,value:V.value??0,step:k[Q].step,min:V.min,max:V.max},()=>{K(),E()});return j.append(S.el),S}),B=()=>Object.fromEntries(n.map((V,Q)=>[V.key,m[Q].get()])),_=(V,Q)=>(+V).toFixed(ie(Q)),Z=()=>{i.textContent=m.map((V,Q)=>_(V.get(),k[Q].step)).join(", ")},tt=()=>{u.style.left="50%",u.style.top="50%"};if(p){let Q=F=>`calc(${(F*100).toFixed(2)}% + ${((.5-F)*5).toFixed(2)}px)`;tt=()=>{let F=I(m[0].get(),$,A),x=I(m[1].get(),b,O),D=t.invertY?x:1-x,et=F*100,W=D*100;h.style.left=et+"%",h.style.top=W+"%",u.style.left=Q(F),u.style.top=Q(D),T.setAttribute("x2",et),T.setAttribute("y2",W),z.setAttribute("aria-description",`${n[0].label??n[0].key} ${_(m[0].get(),C.step)}, ${n[1].label??n[1].key} ${_(m[1].get(),v.step)}`)},en(z,F=>{let[x,D]=Re(F,z),et=t.invertY?D:1-D;m[0].set($+x*(A-$)),m[1].set(b+et*(O-b)),K(),E()}),z.tabIndex=0,z.setAttribute("role","group"),z.setAttribute("aria-label",`${t.label??"Point"} pad: ${n[0].label??n[0].key} and ${n[1].label??n[1].key}`);let N=An(z);z.addEventListener("keydown",F=>{if(F.key==="Home"){F.preventDefault(),n.forEach((W,rt)=>m[rt].set(W.value??0)),K(),E(),N();return}let[x,D]=Se(F);if(!x&&!D)return;F.preventDefault();let et=F.shiftKey?10:1;x&&m[0].set(G(m[0].get()+x*C.nudge*et,$,A)),D&&m[1].set(G(m[1].get()+(t.invertY?-D:D)*v.nudge*et,b,O)),K(),E(),N()})}return r.append(f),qt(r,o,f,{fallbackH:240,onOpen:K}),K(),{el:r,set:V=>{V&&n.forEach((Q,S)=>{V[Q.key]!=null&&m[S].set(V[Q.key])}),K()},get:B,range:Object.fromEntries(n.map((V,Q)=>[V.key,m[Q].range]))}}pt("point",_c);xt();Nt();var ea=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)}),Hc=["min","max","hypot"],cs=Object.assign(Object.create(null),{pi:Math.PI,e:Math.E,tau:Math.PI*2,phi:(1+Math.sqrt(5))/2});function us(t){if(typeof t!="string"||!t.trim())return"type an expression in x";if(t.length>512)return"too long: 512 characters at most";let e=t,n=[],r=/(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y,o=/[A-Za-z_]\w*/y,s=0;for(;s<e.length;){let h=e[s];if(h===" "||h===" "||h===`
|
|
6
|
-
`){s++;continue}if(h>="0"&&h<="9"||h==="."&&e[s+1]>="0"&&e[s+1]<="9"){r.lastIndex=s;let T=r.exec(e);if(!T||T.index!==s)return`unexpected "${h}"`;n.push({t:"num",v:parseFloat(T[0])}),s=r.lastIndex;continue}if(h>="A"&&h<="Z"||h>="a"&&h<="z"||h==="_"){o.lastIndex=s;let T=o.exec(e);n.push({t:"id",v:T[0]}),s=o.lastIndex;continue}if(h==="*"&&e[s+1]==="*"){n.push({t:"op",v:"^"}),s+=2;continue}if("+-*/%^".includes(h)){n.push({t:"op",v:h}),s++;continue}if(h==="("){n.push({t:"lp"}),s++;continue}if(h===")"){n.push({t:"rp"}),s++;continue}if(h===","){n.push({t:"comma"}),s++;continue}return`unexpected "${h}"`}let i=0,a="",u=h=>(a=a||h,null),f=()=>n[i],l=h=>{let T=n[i];return!T||h&&T.t!==h?null:(i++,T)},p=()=>{let h=d();if(!h)return null;for(;f()&&f().t==="op"&&(f().v==="+"||f().v==="-");){let T=l("op").v,j=d();if(!j)return null;let K=h;h=T==="+"?E=>K(E)+j(E):E=>K(E)-j(E)}return h},d=()=>{let h=k();if(!h)return null;for(let T=f();T;T=f()){let j=n[i-1].t,K=(j==="num"||j==="id"||j==="rp")&&(T.t==="id"||T.t==="lp");if(!K&&!(T.t==="op"&&(T.v==="*"||T.v==="/"||T.v==="%")))break;let E=K?"*":l("op").v,m=k();if(!m)return null;let B=h;h=E==="*"?_=>B(_)*m(_):E==="/"?_=>B(_)/m(_):_=>B(_)%m(_)}return h},k=()=>{if(f()&&f().t==="op"&&(f().v==="-"||f().v==="+")){let h=l("op").v,T=k();return T?h==="-"?j=>-T(j):T:null}return C()},C=()=>{let h=v();if(!h)return null;if(f()&&f().t==="op"&&f().v==="^"){l("op");let T=k();return T?j=>Math.pow(h(j),T(j)):null}return h},v=()=>{let h=f();if(!h)return null;if(h.t==="num")return l("num"),()=>h.v;if(h.t==="lp"){l("lp");let T=p();return!T||!l("rp")?null:T}if(h.t==="id"){l("id");let T=h.v.toLowerCase(),j=ea[T];if(f()&&f().t==="lp"&&(j||T!=="x"&&!(T in cs))){if(!j)return u(`unknown function "${h.v}"`);l("lp");let K=[];if(f()&&f().t!=="rp")do{let E=p();if(!E)return null;K.push(E)}while(l("comma"));return l("rp")?!K.length&&Hc.includes(T)?u(`${T}() needs at least one value`):E=>j(...K.map(m=>m(E))):null}if(j){let K=j.length===1?A():null,E=f();return!K||E&&(E.t==="op"?E.v==="^":E.t!=="rp"&&E.t!=="comma")?u(`write ${T}(\u2026)`):m=>j(K(m))}if(T==="x")return K=>K;if(T in cs){let K=cs[T];return()=>K}return u(`unknown name "${h.v}"`)}return null},$=h=>h&&h.t==="id"&&!ea[h.v.toLowerCase()],A=()=>{let h=f();if(h&&h.t==="num"){if(l("num"),!$(f()))return()=>h.v;let T=v();return T&&(j=>h.v*T(j))}return $(h)?v():null},b=p(),O=n[i];if(b&&!O)return b;if(a)return a;let I=n[i-1],z=n.slice(0,i).reduce((h,T)=>h+(T.t==="lp"?1:T.t==="rp"?-1:0),0);return!b&&I&&I.t==="op"?`"${I.v}" needs a value on each side`:O?O.t==="num"?`missing an operator before ${O.v}`:O.t==="rp"?I&&I.t==="lp"?"nothing inside the parentheses":'unmatched ")"':O.t==="comma"?`"," outside a function's parentheses`:O.t==="op"?`"${O.v}" needs a value on each side`:"not a valid expression":z>0?'missing ")"':"not a valid expression"}function Ic(t,e){let n=Number(t.xMin??t.min),r=Number(t.xMax??t.max);if(Number.isFinite(n)||(n=-10),Number.isFinite(r)||(r=10),r<n){let O=n;n=r,r=O}r===n&&(n-=1,r+=1);let o=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,u=t.expr!=null?String(t.expr):i?"":"sin(x)",f=i||us(u),l=w("div","tw-plot");t.label&&l.append(st("div","tw-plot-label",t.label));let p=w("div","tw-plot-graph"),d=Ot("svg","tw-plot-svg");d.setAttribute("preserveAspectRatio","none");let k=Ot("line","tw-plot-axis"),C=Ot("line","tw-plot-axis"),v=Ot("path","tw-plot-curve");d.append(k,C,v),p.append(d),l.append(p);let $=null;if(a){let O=w("div","tw-plot-field");$=w("input","tw-plot-input"),$.type="text",$.value=u,$.spellcheck=!1,$.autocapitalize="off",he($),$.setAttribute("aria-label",`${t.label||"Plot"} \u2014 expression in x`),$.setAttribute("aria-invalid","false"),O.append(st("span","tw-plot-fx","y ="),$),l.append(O)}let A=6,b=()=>{let O=typeof f=="function"?f:null,I=!!O;l.classList.toggle("is-invalid",a&&!I),$&&($.setAttribute("aria-invalid",I?"false":"true"),$.title=I?"":String(f));let z=p.getBoundingClientRect(),h=z.width,T=z.height;if(h<2)return;d.setAttribute("viewBox",`0 0 ${h} ${T}`);let j=[],K=1/0,E=-1/0;if(I)for(let S=0;S<o;S++){let N=n+(r-n)*(S/(o-1)),F;try{F=O(N)}catch{F=NaN}j.push(F),Number.isFinite(F)&&(F<K&&(K=F),F>E&&(E=F))}let m=t.yMin,B=t.yMax;if(!s)if(!Number.isFinite(K)||K===E){let S=Number.isFinite(K)?K:0;m=S-1,B=S+1}else{let S=(E-K)*.12;m=K-S,B=E+S}let _=S=>A+(S-n)/(r-n)*(h-2*A),Z=S=>T-A-(S-m)/(B-m)*(T-2*A),tt=(S,N,F,x,D,et)=>{S.style.display=et?"":"none",et&&(S.setAttribute("x1",N),S.setAttribute("y1",F),S.setAttribute("x2",x),S.setAttribute("y2",D))};tt(k,A,Z(0),h-A,Z(0),m<=0&&B>=0),tt(C,_(0),A,_(0),T-A,n<=0&&r>=0);let V="",Q=!1;if(I)for(let S=0;S<o;S++){let N=j[S];if(!Number.isFinite(N)){Q=!1;continue}let F=_(n+(r-n)*(S/(o-1))),x=G(Z(N),-1e4,1e4);V+=(Q?"L":"M")+F.toFixed(1)+","+x.toFixed(1)+" ",Q=!0}v.setAttribute("d",V)};return a&&$.addEventListener("input",()=>{u=$.value,f=us(u),b(),e(u)}),Wt(b),Zt(l,[[window,"resize"],[window,"tw-reflow"]],b),{el:l,get:()=>u,set:O=>{O!=null&&(u=String(O),$&&($.value=u),i||(f=us(u)),b())}}}pt("plot",Ic);xt();xt();xt();var Je={},Nr={},jc=t=>Yt(t)||!Je[t]?null:Nr[t]||(Nr[t]=Je[t]().catch(e=>{throw delete Nr[t],console.error(`[tweaks] control chunk "${t}" failed to load:`,e),e})),Kn=(t,e=new Set)=>{for(let n of t)if(e.add(n.type),n.children&&Kn(n.children,e),n.pages)for(let r of n.pages)Kn(r.children,e);return e},hn=t=>{let e=[...Kn(t)].map(jc).filter(Boolean);return e.length?Promise.all(e):null};function He(t,e,n=0){if(Le(t))return null;let r=Vc(t,e,n);return r&&e&&typeof e=="object"&&(typeof e.render=="function"&&(r.render=e.render),e.disabled!=null&&(r.disabled=e.disabled),e.hint!=null&&(r.hint=String(e.hint)),e.persist===!1&&(r.persist=!1)),r}var na=t=>Array.isArray(t.options)&&{type:"radiogrid",options:t.options,value:t.value??ne(t.options[0]),cols:t.cols},ps=(t,e)=>t.label==null?e:String(t.label),ra=t=>typeof t=="function"?t:void 0,oa=t=>typeof t=="string"&&t.trim()?t.trim().slice(0,12):void 0,Fr={slider:t=>({value:t.value??t.min??0,min:t.min,max:t.max,step:t.step,soft:t.soft,unit:oa(t.unit),format:ra(t.format),parse:ra(t.parse)}),number:t=>({value:t.value??0,min:t.min,max:t.max,step:t.step,soft:t.soft,unit:oa(t.unit)}),checkbox:t=>({value:!!t.value}),radiogrid:na,segmented:na,list:t=>Array.isArray(t.options)&&{options:t.options,value:t.value??ne(t.options[0])},text:t=>({value:t.value??"",rows:t.rows,placeholder:t.placeholder}),spring:t=>{let e=yt(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 r=t.mode??e.mode;return(r==="time"||r==="physics")&&(n.mode=r),{value:n}},motion:t=>{let e=typeof t.value=="string"||Array.isArray(t.value)?{...t,curve:t.value}:yt(t.value)?t.value:t,n=Dn.some(o=>e[o]!=null),r={curve:"ease",duration:300,...n?{}:{visualDuration:.5,bounce:.2}};for(let o of["mode","curve","duration",...Dn])e[o]!=null&&(r[o]=e[o]);return r.mode!=="easing"&&r.mode!=="spring"&&(r.mode=n?"spring":"easing"),{value:r}},point:(t,e,n)=>{let r=[],o=(u,f)=>{let l=typeof f=="number"?f:typeof f=="string"&&f.trim()?+f:NaN;return Number.isFinite(l)?l:(r.push(u),0)},s=yt(t.value)&&!Array.isArray(t.value)?Object.keys(t.value).filter(u=>!Le(u)):[];if((!Array.isArray(t.components)||!t.components.length)&&s.length&&(t={...t,components:s.map(u=>({key:u}))}),!Array.isArray(t.components)||!t.components.length)return!1;let i=new Set,a=t.components.flatMap((u,f)=>{let l=u.label?String(u.label).toLowerCase():"",p=String(u.key??((Le(l)?"":l)||`c${f}`));if(Le(p))return[];let d=p,k=2;for(;i.has(d);)d=`${p}-${k++}`;i.add(d);let C=yt(t.value)&&Ft(t.value,d)?o(d,t.value[d]):void 0;return[{...u,key:d,...C!==void 0&&{value:C}}]});return r.length&&le("pointValue",n,r.join(", ")),a.length?{components:a,pad:t.pad,invertY:t.invertY,value:Object.fromEntries(a.map(u=>[u.key,u.value??0]))}:!1},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(([r,o])=>{let s=r.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:r.trim()?r:"Tab",children:Object.entries(o).map(([u,f])=>He(u,f,e+1)).filter(Boolean)}})}}},Bc=Object.assign(Object.create(null),{list:"options",radiogrid:"options",segmented:"options",point:"components",tabs:"pages"});function Vc(t,e,n=0){if(n>64)return null;let r=ir(t),o=(s,i,a=r)=>({type:s,key:t,label:a,...i});if(yt(e)&&!Array.isArray(e)&&Ft(Fr,e.type)){let s;try{s=Fr[e.type](e,n,t)}catch(i){return console.error(`[tweaks] malformed "${e.type}" schema value for "${t}" \u2014 control skipped:`,i),null}if(s)return o(String(e.type),s,ps(e,r));if(Ft(e,Bc[e.type]))return console.error(`[tweaks] malformed "${e.type}" schema value for "${t}" \u2014 control skipped`),null}else if(yt(e)&&!Array.isArray(e)&&typeof e.type=="string"&&(Je[e.type]||Yt(e.type))){let{type:s,label:i,...a}=e;return o(s,a,ps(e,r))}else yt(e)&&!Array.isArray(e)&&typeof e.type=="string"&&!Ft(Fr,e.type)&&Promise.resolve().then(()=>(Nt(),rn)).then(s=>s.unknownType(`"${t}"`,e.type,[...Object.keys(Fr),...Object.keys(Je),...br()],"builds a folder"),()=>{});return Array.isArray(e)&&Array.isArray(e[0])&&e[0].length===2&&typeof e[0][0]=="number"?o("interval",{value:e[0].map(Number),min:e[1],max:e[2],step:e[3]}):Array.isArray(e)&&e.length<=4&&typeof e[0]=="number"?o("slider",{value:e[0],min:e[1],max:e[2],step:e[3]}):typeof e=="number"?o("slider",{value:e}):typeof e=="boolean"?o("checkbox",{value:e}):Array.isArray(e)?o("list",{options:e,value:ne(e[0])}):yt(e)&&typeof e.action=="function"?o("button",{action:e.action},ps(e,r)):yt(e)&&Array.isArray(e.options)?o("list",{options:e.options,value:e.value??ne(e.options[0])}):Rn(e)?o("color",{value:e}):typeof e=="string"?o("text",{value:e}):yt(e)?o("folder",{children:Object.entries(e).filter(([s,i])=>!(s==="render"&&typeof i=="function")&&!((s==="disabled"||s==="hint")&&i!=null)).map(([s,i])=>He(s,i,n+1)).filter(Boolean)}):null}var Dr=new Set(["button","fpsgraph","monitor","buttongroup","separator"]);xt();xt();var sa=$t('<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"),ia=$t('<path d="m5 14 3.5 3.5L19 6.5"/>',"tw-toolbar-btn__check",2.4),aa=$t('<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"/>'),ds=t=>$t('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',t,2.5),la=ds("tw-chevron"),ca=$t('<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"/>'),ua=$t('<path d="M18 6 6 18m12 0L6 6"/>',"",2.2),fs=$t('<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 Kc=3;function Gc(t,e){let n=t.label,{min:r,max:o,step:s}=ar(t.min,t.max,t.step,[+t.value],n);t.soft||([r,o]=on(r,o,s));let i=(o-r)/s<=6,a=Number.isFinite(+t.value)?+t.value:r,u=t.soft&&!i?a:G(a,r,o),f=0,l=ie(s),p=w("div","tw-slider-wrap"),d=w("div","tw-slider"),k=w("div","tw-slider-hashmarks"),C=w("div","tw-slider-fill"),v=w("div","tw-slider-handle"),$=st("span","tw-slider-label",n),A=w("span","tw-slider-value"),b=typeof t.unit=="string"?t.unit.trim():"",O=document.createTextNode(""),I=b?/^[%°]$/.test(b)?b:" "+b:"";A.append(O),b&&A.append(st("span","tw-slider-unit",I));let z=t.format,h=t.parse,T=g=>{if(z)try{let at=z(g);if(typeof at=="string"&&at)return at}catch{}return g.toFixed(l)};d.append(k,C,v,$,A),p.append(d),d.tabIndex=0,d.setAttribute("role","slider"),d.setAttribute("aria-label",n),d.setAttribute("aria-valuemin",String(r)),d.setAttribute("aria-valuemax",String(o));let j=g=>Ke(g,r,s),K=i?Array.from({length:Math.max(0,Math.round((o-r)/s)-1)},(g,at)=>(at+1)*s/(o-r)*100):[];for(let g of K){let at=w("div","tw-slider-hashmark");at.style.left=g+"%",k.append(at)}let E=()=>{let g=G((u-r)/(o-r||1)*100,0,100),at=f?` + ${f.toFixed(1)}px`:"",ct=`${g}%${at}`;C.style.width=f?`calc(${ct})`:g+"%",v.style.left=`max(5px, calc(${ct} - 9px))`;let gt=j(u),lt=T(gt);O.data=lt,d.setAttribute("aria-valuenow",String(gt)),d.setAttribute("aria-valuetext",lt+I);let vt=p.offsetWidth,Bt=A.offsetWidth;if(vt){Bt&&($.style.maxWidth=Math.max(0,vt-Bt-30)+"px");let pe=Math.max(5,g/100*vt+f-9);d.classList.toggle("is-dodge",lr($,A,pe,3))}};E();let m=null,B=1,_=null,Z=!0,tt,V=null,Q=null,S=`width 0.34s ${So}`,N=`left 0.34s ${So}, opacity 0.15s, transform 0.2s ${Pn}`,F=.2,x=g=>{if(!m)return u;let at=p.offsetWidth||m.width,ct=G((g-m.left)/B/at,0,1);return G(r+ct*(o-r),r,o)},D=(g,at=!0)=>{g=+g,Number.isFinite(g)&&(u=i?G(j(g),r,o):t.soft?g:G(g,r,o),E(),at&&e(j(u)))},et=Math.max(1,Math.round((o-r)/s)),W=.2,rt=.3,H=520,L=27,X=g=>(g-r)/s,U=0,mt=0,dt=0,_t=!1,At=null,St=u,Mt=0,jt=()=>{dt&&cancelAnimationFrame(dt),dt=0,Mt=0},Ut=g=>{if(!d.isConnected){jt();return}let at=Mt?Math.min((g-Mt)/1e3,.05):1/60;Mt=g;let ct=p.offsetWidth||m&&m.width||1,gt=X(G(St,r,o)),lt=G(Math.round(gt+W),0,et),vt=_t?lt+rt*G(gt-lt,-.5,.5):lt;if(Fe.matches)U=vt,mt=0;else{let Bt=at,pe=1/240;for(;Bt>1e-4;){let Ae=Math.min(pe,Bt);Bt-=Ae;let Ze=H*(vt-U)-L*mt;mt+=Ze*Ae,U+=mt*Ae,U<0&&(U=0,mt=0),U>et&&(U=et,mt=0)}}f=(U-lt)*s/(o-r||1)*ct,u=G(r+lt*s,r,o),E(),lt!==At&&(At=lt,e(j(u))),!_t&&Math.abs(mt)<.004&&Math.abs(U-lt)<.004?(U=lt,mt=0,f=0,E(),jt(),d.classList.remove("is-active")):dt=requestAnimationFrame(Ut)},be=g=>{U=X(u),mt=0,_t=!0,At=Math.round(X(u)),St=x(g),dt||(dt=requestAnimationFrame(Ut))};d.addEventListener("pointerdown",g=>{if(!A.classList.contains("is-editing")&&!(g.button!==0||_)){g.preventDefault(),d.focus({focusVisible:!1}),Q=g.pointerId;try{g.target.setPointerCapture(g.pointerId)}catch{}clearTimeout(tt),d.style.transition="",_={x:g.clientX,y:g.clientY},Z=!0,d.classList.add("is-active"),m=p.getBoundingClientRect(),B=m.width/(p.offsetWidth||m.width),i?(C.style.transition="",v.style.transition="",be(g.clientX)):(C.style.transition=S,v.style.transition=N,D(x(g.clientX)))}}),d.addEventListener("pointermove",g=>{if(!(!_||g.pointerId!==Q)){if(g.buttons===0){ue();return}if(Z&&Math.hypot(g.clientX-_.x,g.clientY-_.y)>Kc&&(Z=!1,d.classList.add("is-dragging"),i||(C.style.transition="",v.style.transition="")),!Z)if(dr(d,m,g.clientX),i)St=x(g.clientX);else{let at;if(g.altKey){V||(V={x:g.clientX,v:u});let ct=p.offsetWidth||m.width;at=G(V.v+(g.clientX-V.x)/ct*(o-r)*F,r,o)}else V=null,at=x(g.clientX);D(at)}}});let ue=g=>{!_||g&&g.pointerId!==Q||(i?(_t=!1,d.classList.remove("is-dragging"),dt||(dt=requestAnimationFrame(Ut))):(tt=setTimeout(()=>{C.style.transition="",v.style.transition=""},360),d.classList.remove("is-active","is-dragging")),fr(d),_=null,V=null,Q=null)};d.addEventListener("pointerup",ue),d.addEventListener("pointercancel",ue),d.addEventListener("lostpointercapture",ue),pr(d,E),Wt(E),Zt(d,[[window,"resize"]],E),d.addEventListener("keydown",g=>{if(g.target!==d||_)return;if(g.key==="Enter")return g.preventDefault(),ot();let at=ze(g,u,s,r,o,(o-r)/10||s*10);at!=null&&(g.preventDefault(),i&&(jt(),f=0,d.classList.remove("is-active")),D(G(at,r,o)))});let q;A.addEventListener("mouseenter",()=>{q=setTimeout(()=>A.classList.add("is-editable"),800)}),A.addEventListener("mouseleave",()=>{clearTimeout(q),A.classList.contains("is-editing")||A.classList.remove("is-editable")}),A.addEventListener("pointerdown",g=>{g.pointerType&&g.pointerType!=="mouse"?(A.classList.add("is-editable"),g.stopPropagation()):A.classList.contains("is-editable")&&g.stopPropagation()});let ot=()=>{if(A.classList.contains("is-editing"))return;let g=w("input","tw-slider-input");g.type="text",g.inputMode=h?"text":"decimal",he(g),g.value=h?T(j(u)):j(u).toFixed(l);let at=g.value;g.style.width=at.length+1+"ch",A.classList.add("is-editing"),A.replaceWith(g),g.focus(),g.select();let ct=()=>{g.replaceWith(A),A.classList.remove("is-editing","is-editable")},gt=()=>{let lt=g.value,vt=NaN;if(lt!==at)try{vt=h?h(lt):Number(lt.replace(b,"").trim()||NaN)}catch{}Number.isFinite(vt)&&D(t.soft?vt:G(vt,r,o)),ct()};g.addEventListener("pointerdown",lt=>lt.stopPropagation()),g.addEventListener("blur",gt),g.addEventListener("keydown",lt=>{lt.key==="Enter"?(g.removeEventListener("blur",gt),d.focus(),gt()):lt.key==="Escape"&&(lt.stopPropagation(),g.removeEventListener("blur",gt),d.focus(),ct())})};return A.addEventListener("click",()=>{A.classList.contains("is-editable")&&ot()}),{el:p,set:g=>D(g,!1),get:()=>j(u),range:[r,o]}}function zc(t,e){let n=w("div","tw-row"),r=De([{value:"off",label:"Off"},{value:"on",label:"On"}],t.value?"on":"off",o=>e(o==="on"),t.label,"on");return n.append(st("span","tw-row-label",t.label),r.el),{el:n,set:o=>r.set(o?"on":"off"),get:()=>r.get()==="on"}}function qc(t,e){let n=t.options||[],r=Math.min(3,Math.max(2,t.cols||(n.length<=3?n.length:n.length===4?2:3))),o=w("div",n.length>r?"tw-radiogrid is-grid":"tw-radiogrid"),s=w("div","tw-radiogrid-grid");s.style.setProperty("--tw-rg-cols",r),s.setAttribute("role","radiogroup"),s.setAttribute("aria-label",t.label);let i=t.value??ne(n[0]),a=n.map(l=>{let p=Fn("tw-radiogrid-btn",l,d=>f(d));return s.append(p),p}),u=()=>Lo(a,i),f=(l,p=!0)=>{l!=null&&l!==t.value&&!a.some(d=>d._twVal===l)||(i=l,u(),p&&e(l))};return s.addEventListener("keydown",l=>{let p=gr(a,i);if(p<0)return;let d=Xe(l.key,p,a.length,r);d<0||(l.preventDefault(),d!==p&&(f(a[d]._twVal),a[d].focus()))}),u(),o.append(st("span","tw-radiogrid-label",t.label),s),{el:o,set:l=>f(l,!1),get:()=>i}}var Xc=/^(?:#[0-9a-f]{3,8}|[a-z]+|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color|var)\([^()]*\))$/i,Uc=ds("tw-select-chevron");function Wc(t,e){let n=t.value,r=t.options.map(b=>({value:ne(b),label:wo(b),color:b&&typeof b=="object"&&typeof b.color=="string"&&Xc.test(b.color.trim())?b.color.trim():""})),o=w("div","tw-select"),s=wt("tw-select-trigger");s.setAttribute("aria-haspopup","listbox"),s.setAttribute("aria-expanded","false");let i=w("span","tw-select-right"),a=b=>`linear-gradient(${b}, ${b}), var(--tw-checker)`,u=b=>{let O=w("span","tw-option-swatch");return O.style.background=a(b),O},f=w("span","tw-option-swatch"),l=w("span","tw-select-value");i.append(f,l),i.insertAdjacentHTML("beforeend",Uc),s.append(st("span","tw-select-label",t.label),i);let p=w("div","tw-select-dropdown");p.setAttribute("role","listbox");let d=r.map(b=>{let O=wt("tw-select-option");return O.setAttribute("role","option"),b.color&&O.append(u(b.color)),O.append(st("span","tw-option-label",b.label)),O.dataset.value=String(b.value),O.addEventListener("click",()=>{C(b.value),A.close()}),p.append(O),O});o.append(s,p);let k=()=>{let b=r.find(O=>O.value===n);l.textContent=b?.label??n,f.style.display=b?.color?"":"none",b?.color&&(f.style.background=a(b.color)),d.forEach(O=>{let I=O.dataset.value===String(n);O.dataset.selected=String(I),O.setAttribute("aria-selected",String(I))})},C=(b,O=!0)=>{b!=null&&b!==t.value&&!r.some(I=>I.value===b)||(n=b,k(),O&&e(b))},v="",$=0,A=qt(o,s,p,{fallbackH:200,movable:!1,onOpen:()=>{v="",(d.find(b=>b.dataset.value===String(n))||d[0])?.focus()}});return s.addEventListener("keydown",b=>{!A.isOpen()&&(b.key==="ArrowDown"||b.key==="ArrowUp")&&(b.preventDefault(),A.open())}),p.addEventListener("keydown",b=>{let O=d.indexOf(document.activeElement),I=O,z=!!v&&performance.now()-$<600;if(b.key==="ArrowDown")I=O<0?0:Math.min(d.length-1,O+1);else if(b.key==="ArrowUp")I=O<0?d.length-1:Math.max(0,O-1);else if(b.key==="Home")I=0;else if(b.key==="End")I=d.length-1;else if(b.key.length===1&&(b.key!==" "||z)&&!b.ctrlKey&&!b.metaKey&&!b.altKey&&!b.isComposing){let h=b.key.toLowerCase();v=(z?v:"")+h,$=performance.now();let T=v===h.repeat(v.length/h.length),j=T?h:v,K=E=>r.findIndex((m,B)=>B>=E&&String(m.label).toLowerCase().trimStart().startsWith(j));if(I=K(T?O+1:O),I<0&&(I=K(0)),I<0&&b.key!==" ")return}else return;b.preventDefault(),d[I]?.focus()}),k(),{el:o,set:b=>C(b,!1),get:()=>n}}function Yc(t){let e=st("button","tw-button",t.label);return e.addEventListener("click",()=>typeof t.action=="function"&&t.action()),Ce(e)}function Jc(t){let e=w("div","tw-row tw-buttongroup");t.label&&e.append(st("span","tw-row-label",t.label));let n=w("div","tw-buttongroup-btns"),r=Array.isArray(t.buttons)?t.buttons.map(o=>[o.label??"Button",o.action]):Object.entries(t.buttons||{});for(let[o,s]of r){let i=st("button","tw-buttongroup-btn",o);i.addEventListener("click",()=>typeof s=="function"&&s()),n.append(i)}return e.append(n),Ce(e)}var Zc=()=>Ce(w("div","tw-separator"));function Qc(t,e){let n=u=>u==null?"":typeof u=="object"?Nn(u):String(u),r=n(t.value),o=t.rows>0,s=w("div",o?"tw-row tw-row-multiline":"tw-row"),i=w(o?"textarea":"input",o?"tw-text tw-textarea":"tw-text");o?i.rows=t.rows:i.type="text",i.value=r,he(i),t.placeholder&&(i.placeholder=t.placeholder),i.addEventListener("input",()=>{r=i.value,e(r)});let a=()=>{let u=i.scrollHeight-i.clientHeight>1;i.classList.toggle("is-clip-top",u&&i.scrollTop>1),i.classList.toggle("is-clip-bottom",u&&i.scrollTop+i.clientHeight<i.scrollHeight-1)};return o&&(i.addEventListener("scroll",a),i.addEventListener("input",a),typeof ResizeObserver=="function"&&new ResizeObserver(a).observe(i)),s.append(st("span","tw-row-label",t.label),i),{el:s,set:u=>{r=n(u),i.value=r,o&&a()},get:()=>r}}function Gn(t){let e=w("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",la);let r=w("div","tw-folder-body"),o=w("div","tw-controls");r.append(o),e.append(n,r);let s=i=>ln(e,n,r,i);return n.addEventListener("click",()=>s(!e.classList.contains("is-collapsed"))),{el:e,body:o,setCollapsed:s}}function bn(t,e){let n=Yt(t.type);if(!n)return null;try{return n(t,e)}catch(r){return console.error("[tweaks] control failed to build:",t&&t.type,r),null}}pt("slider",Gc);pt("checkbox",zc);pt("radiogrid",qc);pt("list",Wc);pt("button",Yc);pt("buttongroup",Jc);pt("separator",Zc);pt("text",Qc);pt("folder",Gn);xt();var Ir=(t,e,n)=>{let r=wt("tw-toolbar-btn"+(t?" "+t:""),e);return r.title=n,r.setAttribute("aria-label",n),r},jr=t=>{let e=Ir("tw-toolbar-btn--swap",`<span class="tw-toolbar-btn__icons">${sa}${ia}</span>`,"Copy values (\u21E7: changed only)");return e.addEventListener("click",async n=>{if(e.disabled)return;let[r,o]=t(n.shiftKey);if(!o)return ae("Nothing has changed");if(!await hs(r))return ae("Copy failed");tu(e),ae(o>0?`${o} changed value${o===1?"":"s"} copied`:"Values copied")}),e},Br=t=>{let e=Ir("tw-toolbar-btn--reset",aa,"Reset");return e.addEventListener("click",()=>{e.disabled||(ms(e),t())}),e},tu=t=>{t.classList.add("is-copied"),clearTimeout(t._t),t._t=setTimeout(()=>t.classList.remove("is-copied"),1400)},ms=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",r=>{r.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)},Xt=null,_r=0,Hr=null,da=t=>{t.key==="Escape"&&(t.stopPropagation(),zn())},zn=t=>{t&&Hr&&!t.contains(Hr)||(clearTimeout(_r),document.removeEventListener("keydown",da),Xt&&Xt.classList.remove("is-open"))};function eu(t,e){Xt||(Xt=w("div","tw-tip tw-portal"),Xt.setAttribute("role","tooltip")),Xt.isConnected||document.body.appendChild(Xt),clearTimeout(_r),Xt.textContent=e,sn(Xt,t);let n=Xt.classList.contains("is-open");Xt.style.visibility="hidden",Xt.classList.add("is-open"),xo(t,Xt,{align:"center",prefer:"above",gap:8}),Xt.style.visibility="",document.addEventListener("keydown",da),Hr=t,n||requestAnimationFrame(function r(){if(Xt.classList.contains("is-open")){if(!Hr.isConnected)return zn();requestAnimationFrame(r)}})}function pa(){Xt&&(clearTimeout(_r),_r=setTimeout(zn,80))}var gs=".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, .tw-spring-label, .tw-bezier-label";function yn(t,e){let n=t.querySelector(gs)||t;if(n===t&&t.classList.contains("tw-separator"))return;let r=n.closest("button"),o=r?w("span","tw-hint",fs):wt("tw-hint",fs),s=()=>eu(o,e);if(r){o.setAttribute("aria-hidden","true");let i=r.getAttribute("aria-description");r.setAttribute("aria-description",i?`${i}. ${e}`:e)}else o.setAttribute("aria-label",e),o.addEventListener("focus",s),o.addEventListener("blur",pa),o.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&i.stopPropagation()});o.addEventListener("pointerenter",s),o.addEventListener("pointerleave",pa),o.addEventListener("pointerdown",i=>i.stopPropagation()),o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),n.appendChild(o)}async function hs(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}var vn=null,Xn=new Map,xe=null,Un=null,Gr=null;function bu(t,e,n={}){let r=Object.entries(e).map(([c,y])=>He(c,y)).filter(Boolean),o={},s,i=[],a=new Map,u=new Set,f=new Set,l=[],p=!1,d=!1,k=[],C=!1,v=-1,$=c=>{p||C||(d?c():k.push(c))},A=null,b={},O=(c,y)=>y===void 0?null:y,I=(c,y)=>{let M=Object.create(null);for(let R of c)if(Ft(y,R.key)){let P=y[R.key];if(R.type==="folder")M[R.key]=I(R.children,P);else if(R.type==="tabs"){let nt=M[R.key]=Object.create(null);for(let ut of R.pages)Ft(P,ut.key)&&(nt[ut.key]=I(ut.children,P[ut.key]))}else M[R.key]=P}return M},z=()=>JSON.parse(JSON.stringify(I(r,o),O)),h=n.persist?`tw:${n.persist===!0?t:n.persist}`:null,T=h?`${h}:presets`:null,j=!!h;if(h){let c=Xn.get(h)||0;c&&le("sharedKey",h.slice(3)),Xn.set(h,c+1)}let K=()=>{if(!j)return;j=!1;let c=(Xn.get(h)||1)-1;c?Xn.set(h,c):Xn.delete(h)},E=c=>{try{return JSON.parse(localStorage.getItem(c)||"null")}catch{return null}},m=(c,y)=>{try{return localStorage.setItem(c,JSON.stringify(y)),!0}catch{return!1}},B=(c,y)=>c?.v===1?c[y]:null,_=c=>m(h,{v:1,values:c}),Z=c=>m(T,{v:1,presets:c}),tt=(c,y)=>y.reduce((M,R)=>M!=null&&Ft(M,R)?M[R]:void 0,c),V=(c,y)=>{let M=tt(c,y.path.slice(0,-1));return!M||typeof M!="object"||!Ft(M,y.key)?!1:(Reflect.deleteProperty(M,y.key),!0)},Q=c=>{for(let y of i)y.persist||V(c,y);return c},S=null,N=null,F=!1,x=new Map,D=c=>typeof c=="string"&&c.startsWith("tw-image:"),et=c=>typeof c=="string"&&c.startsWith("data:"),W=()=>i.filter(c=>c.m.type==="image"),rt=new Map,H=(c,y)=>{rt.get(c)!==y&&(rt.set(c,y),c.note?.("Not saved"))},L=c=>{let y=F&&S?E(h):void 0;for(let M of W()){let R=tt(c,M.path.slice(0,-1)),P=R?.[M.key],nt=x.get(M);if(nt&&R&&Ft(R,M.key)){if(!ce(nt[1],P)){R[M.key]=nt[0];continue}x.delete(M)}if(!et(P)||y===void 0)continue;let ut=S.save(M,P,y);ut&&(R[M.key]=ut)}return c},X=(c,y,M)=>p||ce(y,c.get())||!be(c,M)?!1:(Me?.patch(c.path,y,c.get()),!0),U=(c,y=[])=>{if(c&&typeof c=="object")for(let M of W()){let R=tt(c,M.path);if(!D(R))continue;let P=N?.get(R);P?tt(c,M.path.slice(0,-1))[M.key]=P:(V(c,M),y.push([M,R]))}return c},mt=(c,y)=>{let M=[];no(U(c,M),y);for(let[R,P]of M){let nt=[P,R.get()];x.set(R,nt),!(!F||!S)&&S.fetch(P).then(ut=>{x.get(R)===nt&&(x.delete(R),ut&&X(R,nt[1],ut)&&(s=void 0,Mt()))})}},dt=()=>{if(F=!0,!d||p||C){x.clear();return}let c=!1;for(let[y,[M,R]]of[...x]){let P=N?.get(M);P&&X(y,R,P)&&(c=!0)}S&&x.clear(),c?(s=void 0,Mt()):S&&St()},_t=()=>S?.prune([E(h),Oe()]),At=()=>{},St=h?(()=>{let c=0,y=()=>{c=0;let M=L(Q(z()));if(!_(M)){let R=W().filter(P=>et(tt(M,P.path)));if(!R.length)return;for(let P of R)H(P,tt(M,P.path)),V(M,P);if(!_(M))return}_t()};return At=y,l.push(()=>{c&&(clearTimeout(c),y())}),()=>{clearTimeout(c),c=setTimeout(y,150)}})():()=>{},Mt=(c,y=s)=>{(c?f:u).forEach(M=>{try{M(o,y)}catch(R){console.error("[tweaks] listener threw:",R)}}),p||St()},jt=c=>typeof c=="function"||typeof c=="symbol"||typeof c=="bigint",Ut=(c,y)=>{if(jt(y))throw new TypeError(`a ${typeof y} is not a control value`);x.delete(c),c.set(y),c.target[c.key]=c.get()},be=(c,y)=>{try{return Ut(c,y),!0}catch(M){return console.error(`[tweaks] restoring "${c.path.join(".")}" failed \u2014 value skipped:`,M),!1}},ue=c=>{x.delete(c),hr(c,c.raw,c.def),c.target[c.key]=c.get()},q=!1,ot=()=>{if(typeof n.onReset=="function"&&!q){q=!0;try{return n.onReset()}finally{q=!1}}for(let c of i)try{ue(c)}catch(y){console.error(`[tweaks] resetting "${c.path.join(".")}" failed \u2014 control skipped:`,y)}s=void 0,Mt()},g=w("div","tw-panel");g.dataset.mode="inline";let at=c=>g.setAttribute("aria-label",c.trim()||"Tweaks");g.setAttribute("role","region"),at(t),vo(g);let ct=w("div","tw-header"),gt=wt("tw-header-toggle");gt.setAttribute("aria-expanded","true");let lt=t,vt=st("span","tw-title",lt);gt.append(vt);let Bt=w("div","tw-toolbar"),pe=()=>{let c={};for(let y of i)ce(y.get(),y.def)&&(c[y.path.join(".")]=y.get());return JSON.parse(JSON.stringify(c,O))},Ae=jr(c=>{if(!c)return[JSON.stringify(z(),null,2),-1];let y=pe();return[JSON.stringify(y,null,2),Object.keys(y).length]}),Ze={panel:g,entries:i,fromJSON:c=>{Me?.flush(),$e.fromJSON(c),Me?.flush()},announce:ae,alive:()=>!p},xn=Br(ot),Qt=null;h&&n.presets!==!1&&(Qt=Ir("",ca,"Presets"),Qt.setAttribute("aria-haspopup","menu"),Qt.setAttribute("aria-expanded","false"),Bt.append(Qt)),Bt.append(Ae,xn),ct.append(gt),n.toolbar!==!1&&ct.append(Bt);let ye=[Ae,xn,Qt].filter(Boolean);for(let c of ye)c.disabled=!0;let de=!1,fe=!1;ct.addEventListener("click",c=>{fe&&(fe=!1,c.preventDefault(),c.stopPropagation())},!0);let we=()=>ln(g,gt,kn,!g.classList.contains("is-collapsed"),Yn);gt.addEventListener("click",we);let ke=!1;ct.addEventListener("pointerdown",c=>{ke=c.target===ct||gt.contains(c.target)},!0),ct.addEventListener("click",c=>{c.target===ct&&ke&&!c.defaultPrevented&&we()});let kn=w("div","tw-body"),Te=w("div","tw-controls");kn.append(Te),g.append(ct,kn);let Vt=ko(n.theme);qe(g,Vt),g._twTheme=Vt;let Jt=n.draggable!==!1,Ht=8,Ie=28,bs=typeof n.floating=="object"&&n.floating?n.floating:null,ys=()=>document.compatMode==="CSS1Compat"?document.documentElement:null,Ta=()=>ys()?.clientWidth||window.innerWidth,zr=()=>ys()?.clientHeight||window.innerHeight,qr=()=>({maxX:Math.max(Ht,Ta()-g.offsetWidth-Ht),maxY:Math.max(Ht,zr()-g.scrollHeight-1-Qe)}),Wn=h?`${h}:pos`:null,Xr=Jt&&Wn?E(Wn):null,Ur=Xr&&typeof Xr=="object"?Xr:null,ws=Ur||bs||{x:16,y:16},Wr=c=>{let y=parseFloat(c);return y>=0?y:16},Yr=Wr(ws.x),Jr=Wr(ws.y),zt=Yr,Kt=Jr,vs=!!Ur,Qe=Ht,xs=()=>{let c=parseFloat(getComputedStyle(g).getPropertyValue("--tw-float-gap"));Qe=c>=0?c:n.floating&&!vs?Wr(bs?.y):Ht},je=()=>{let c=g.style;c.setProperty("--tw-float-x",zt+"px"),c.setProperty("--tw-float-y",Kt+"px"),c.setProperty("--tw-float-max-h",`calc(100dvh - ${Kt+Qe}px)`)},ks=()=>{xs();let{maxX:c,maxY:y}=qr();if(Jt){zt=G(zt,Ht,c),Kt=G(Kt,Ht,y);return}zt=G(Yr,Math.min(Ht,Yr),c);let M=zr()-Math.min(g.scrollHeight+1,zr()/2),R=Math.min(1,M/(Jr+Qe||1));Kt=Math.round(Jr*R),Qe=Math.round(Qe*R)},Yn=()=>{!p&&g.dataset.mode==="floating"&&g.isConnected&&(ks(),je())};(Jt||n.floating)&&(n.floating||Ur)&&(g.dataset.mode="floating",ks(),je(),requestAnimationFrame(Yn));let Jn=c=>{ue(c),s=c.path.join("."),Mt()},Oa=(c,y)=>{let M=c.querySelector(".tw-slider-value")||c.querySelector(gs)||c;M.classList.add("tw-resettable"),M.title="Double-click or hold to reset";let R=0,P=0,nt=0,ut=!1,it=()=>{R&&(clearTimeout(R),R=0,M.classList.remove("tw-reset-holding"))};M.addEventListener("pointerdown",Y=>{Y.stopPropagation(),ut=!1,!(Y.pointerType!=="touch"&&Y.pointerType!=="pen")&&(P=Y.clientX,nt=Y.clientY,M.classList.add("tw-reset-holding"),R=setTimeout(()=>{R=0,M.classList.remove("tw-reset-holding","is-editable"),ut=!0,Jn(y)},500))}),M.addEventListener("pointermove",Y=>{R&&Math.abs(Y.clientX-P)+Math.abs(Y.clientY-nt)>8&&it()}),M.addEventListener("pointerup",it),M.addEventListener("pointercancel",it),M.addEventListener("pointerleave",it),M.addEventListener("contextmenu",Y=>{ut&&Y.preventDefault()}),M.addEventListener("click",Y=>{ut&&(Y.preventDefault(),Y.stopImmediatePropagation(),ut=!1)},!0),M.addEventListener("dblclick",Y=>{M===c&&Y.target.closest?.("input, textarea")||(Y.preventDefault(),Y.stopPropagation(),Jn(y))}),M.classList.contains("tw-slider-value")&&c.addEventListener("dblclick",Y=>{let ht=Y.target;ht.classList?.contains("tw-slider-input")&&(Y.preventDefault(),Y.stopPropagation(),ht.blur(),Jn(y))}),c.addEventListener("keydown",Y=>{!Y.altKey||Y.metaKey||Y.ctrlKey||Y.key!=="Backspace"&&Y.key!=="Delete"||(Y.preventDefault(),Y.stopPropagation(),Y.target.classList?.contains("tw-slider-input")&&Y.target.blur(),Jn(y))})},Zr=[],Qr,$a=(c,y)=>!c._hid==!y?!1:(c._hid=y,Qr?Qr(c,y):c.classList.toggle("tw-cond-hidden",y),!y),to=(c,y)=>{y.hint&&yn(c,y.hint),(y.render||y.disabled!=null)&&Zr.push({node:c,m:y})},Zn=[],Qn=[],Pa=c=>{typeof c.destroy=="function"&&l.push(c.destroy)},eo=(c,y,M,R=[])=>{for(let P of y){if(P.type==="tabs"){let ht={};M[P.key]=ht;let kt=Yt("tabs"),Pt=kt&&kt(P);if(!Pt)continue;Qn.push({path:[...R,P.key],ctrl:Pt,pageKeys:P.pages.map(Et=>Et.key)}),P.pages.forEach((Et,se)=>{let te={};ht[Et.key]=te,eo(Pt.bodies[se],Et.children,te,[...R,P.key,Et.key])}),to(Pt.el,P),c.append(Pt.el);continue}if(P.type==="folder"){let ht={};M[P.key]=ht;let kt=Gn(P);Zn.push({path:[...R,P.key],el:kt.el,setCollapsed:kt.setCollapsed}),Mn.set(kt.el,{kind:"folder",path:[...R,P.key],label:P.label}),eo(kt.body,P.children,ht,[...R,P.key]),to(kt.el,P),c.append(kt.el);continue}let nt=!Dr.has(P.type),ut=[...R,P.key].join("."),it,Y=bn(P,nt?ht=>{ce(M[P.key],ht)&&(it&&x.delete(it),M[P.key]=ht,s=ut,Mt())}:()=>{});if(Y){if(Pa(Y),nt||a.set(ut,P.type),nt){let ht=Y.get();Ft(M,P.key)&&Y.set(M[P.key]),M[P.key]=Y.get(),it={target:M,key:P.key,set:Y.set,get:Y.get,raw:P.value,def:ht,path:[...R,P.key],persist:P.persist!==!1,m:P,el:Y.el,note:Y.note,range:Y.range},i.push(it),Oa(Y.el,it),Mn.set(Y.el,{kind:"row",entry:it,label:P.label})}to(Y.el,P),c.append(Y.el)}}},no=(c,y)=>{if(!(!c||typeof c!="object")){for(let M of i){let R=tt(c,M.path);R!==void 0&&be(M,R)}s=void 0,Mt(y)}},Oe=()=>{let c=T?B(E(T),"presets"):null;return Object.assign(Object.create(null),c&&typeof c=="object"?c:{})},Ms=c=>{let y=Oe();return y[c]=L(z()),Z(y)},Es=c=>{let y=Oe();y[c]&&mt(y[c])},Ss=c=>{let y=Oe();delete y[c],Z(y)&&_t()},tr=c=>c.map(y=>String(y).replace(/~/g,"~1").replace(/\./g,"~0")).join("."),Ra=()=>{let c={};if(Zn.length){let y={};for(let M of Zn)y[tr(M.path)]=M.el.classList.contains("is-collapsed");c.folders=y}if(Qn.length){let y={};for(let M of Qn)y[tr(M.path)]=M.pageKeys[M.ctrl.active()]??null;c.tabs=y}return c},Na=c=>{if(!(!c||typeof c!="object")){if(c.folders)for(let y of Zn){let M=c.folders[tr(y.path)];typeof M=="boolean"&&y.setCollapsed(M)}if(c.tabs)for(let y of Qn){let M=y.pageKeys.indexOf(c.tabs[tr(y.path)]);M>=0&&M!==y.ctrl.active()&&y.ctrl.activate(M)}}};if(Jt||n.floating){Jt&&(g.dataset.draggable="true");let c=()=>{if(g.dataset.mode==="floating")return;let J=g.getBoundingClientRect();zt=J.left,Kt=J.top,g.parentNode&&(A=w("span","tw-lift-slot"),A.style.width=J.width+"px",A.style.height=J.height+"px",A.setAttribute("aria-hidden","true"),g.before(A)),qe(g,null);let ft=getComputedStyle(g),Ct=g.closest("[lang]")?.getAttribute("lang"),Tt={};for(let It of["font-family","font-size","font-weight","font-style","font-stretch","font-variant","font-feature-settings","font-variation-settings","font-kerning","line-height","letter-spacing","word-spacing","text-transform","text-align","color","direction",...Array.from(ft).filter(En=>En.startsWith("--tw-"))])Tt[It]=ft.getPropertyValue(It);Mo(g,g),document.body.appendChild(g);for(let It in Tt)ft.getPropertyValue(It)!==Tt[It]&&g.style.setProperty(It,b[It]=Tt[It]);if(Ct&&g.closest("[lang]")?.getAttribute("lang")!==Ct&&(g.lang=Ct),qe(g,Vt),g.dataset.mode="floating",je(),A&&typeof MutationObserver=="function"){let It=new MutationObserver(()=>{A&&!A.isConnected&&(It.disconnect(),A=null,g.remove())});It.observe(document.documentElement,{childList:!0,subtree:!0}),l.push(()=>It.disconnect())}},y=()=>{vn&&vn!==g&&vn.classList.remove("is-raised"),g.classList.add("is-raised"),vn=g},M=()=>{vs=!0,c(),y(),xs()},R=(J,ft,Ct,Tt)=>{let{maxX:It,maxY:En}=qr();zt=G(J+Ct,Ht,It),Kt=G(ft+Tt,Ht,En),je()},P=()=>{Wn&&m(Wn,{x:zt,y:Kt})},nt=null,ut=0,it=0,Y=0,ht=0,kt=0,Pt=J=>{for(let[ft,Ct]of[["pointermove",se],["pointerup",te],["pointercancel",te]])J?document.addEventListener(ft,Ct,!0):document.removeEventListener(ft,Ct,!0);J?document.addEventListener("keydown",Et,!0):document.removeEventListener("keydown",Et,!0)},Et=J=>{if(J.key!=="Escape"||nt===null)return;J.preventDefault(),J.stopPropagation();let ft=nt;nt=null,Pt(!1);try{ct.releasePointerCapture(ft)}catch{}de&&(zt=Y,Kt=ht,je()),g.classList.remove("is-dragging"),fe=!0,document.addEventListener("pointerup",()=>setTimeout(()=>{fe=!1},0),{capture:!0,once:!0})};Jt&&ct.addEventListener("pointerdown",J=>{if(!(J.button!==0||nt!==null||J.target.closest(".tw-toolbar, input, textarea, select"))&&(nt=J.pointerId,ut=J.clientX,it=J.clientY,de=!1,Pt(!0),g.classList.contains("is-snapping"))){clearTimeout(kt);let ft=getComputedStyle(g);zt=parseFloat(ft.left)||zt,Kt=parseFloat(ft.top)||Kt,g.classList.remove("is-snapping"),je()}}),Jt&&ct.addEventListener("keydown",J=>{if(J.target!==gt||!J.altKey||J.metaKey||J.ctrlKey)return;let ft=J.shiftKey?50:10,Ct=J.key==="ArrowRight"?ft:J.key==="ArrowLeft"?-ft:0,Tt=J.key==="ArrowDown"?ft:J.key==="ArrowUp"?-ft:0;if(!Ct&&!Tt)return;J.preventDefault(),J.stopPropagation();let It=g.dataset.mode!=="floating";M(),It&>.focus({preventScroll:!0}),R(zt,Kt,Ct,Tt),P()});let se=J=>{if(J.pointerId!==nt)return;if(J.buttons===0){te(J);return}let ft=J.clientX-ut,Ct=J.clientY-it;if(!de){if(Math.hypot(ft,Ct)<(J.pointerType==="mouse"?6:10))return;de=!0,M(),Y=zt,ht=Kt;try{ct.setPointerCapture(nt)}catch{}g.classList.add("is-dragging")}R(Y,ht,ft,Ct)},te=J=>{if(J.pointerId===nt){try{ct.releasePointerCapture(nt)}catch{}if(nt=null,Pt(!1),fe=de,fe&&setTimeout(()=>{fe=!1},0),de){let{maxX:ft,maxY:Ct}=qr();zt<=Ht+Ie?zt=Ht:zt>=ft-Ie&&(zt=ft),Kt<=Ht+Ie?Kt=Ht:Kt>=Ct-Ie&&(Kt=Ct),clearTimeout(kt),g.classList.add("is-snapping"),kt=setTimeout(()=>g.classList.remove("is-snapping"),340),je(),P()}g.classList.remove("is-dragging")}};ct.addEventListener("lostpointercapture",te),l.push(()=>Pt(!1))}let Fa=()=>{(Jt||n.floating)&&(Yn(),l.push(Zt(g,[[window,"resize"]],Yn)))};if(Qt){let c=w("div","tw-presets-menu"),y=w("div","tw-presets-save"),M=w("input","tw-presets-input");M.type="text",M.placeholder="Preset name\u2026",M.spellcheck=!1,M.setAttribute("aria-label","New preset name"),he(M);let R=st("button","tw-presets-savebtn","Save");y.append(M,R);let P=w("div","tw-presets-list");c.append(y,P);let nt=()=>{let Y=Oe(),ht=Object.keys(Y);if(P.replaceChildren(),!ht.length)return P.append(st("div","tw-presets-empty","No presets yet"));for(let kt of ht){let Pt=w("div","tw-presets-row"),Et=st("button","tw-presets-load",kt);Et.addEventListener("click",()=>{Es(kt),it.close(),ae(`Loaded preset ${kt}`)});let se=wt("tw-presets-del",ua);se.setAttribute("aria-label",`Delete preset ${kt}`),se.addEventListener("click",te=>{te.stopPropagation(),Ss(kt),nt()}),Pt.append(Et,se),P.append(Pt)}},ut=()=>{let Y=M.value.trim();if(!Y){M.focus();return}if(!Ms(Y)){ae(`Preset ${Y} not saved: storage is full`);return}M.value="",nt(),ae(`Saved preset ${Y}`)},it=qt(Qt,Qt,c,{width:208,fallbackH:160,align:"end",onOpen:()=>{nt(),M.focus()}});R.addEventListener("click",ut),M.addEventListener("keydown",Y=>{Y.key==="Enter"&&ut()})}let Me=n.undo?(()=>{let y=[],M=0,R=!1,P=0,nt=(J,ft)=>{if(J===ft)return!0;if(!J||!ft||typeof J!="object"||typeof ft!="object"||Array.isArray(J)!=Array.isArray(ft))return!1;let Ct=Object.keys(J).length==Object.keys(ft).length;for(let Tt in J)J[Tt]===ft[Tt]?J[Tt]=ft[Tt]:nt(J[Tt],ft[Tt])||(Ct=!1);return Ct},ut=()=>{P=0;let J=z();nt(J,y[M])||(y=y.slice(0,M+1),y.push(J),y.length>200&&(y=y.slice(y.length-200)),M=y.length-1)},it=()=>{R||(clearTimeout(P),P=setTimeout(ut,350))},Y=()=>{P&&(clearTimeout(P),ut())};u.add(it),f.add(it);let ht=J=>{R=!0,no(y[J]),R=!1,M=J},kt=()=>{Y(),M>0&&ht(M-1)},Pt=()=>{Y(),M<y.length-1&&ht(M+1)},Et=()=>g.matches(":hover")||g.contains(document.activeElement);return{undo:kt,redo:Pt,onKey:J=>{if(!Et()||!(J.metaKey||J.ctrlKey)||oo(J.target))return;let ft=J.key.toLowerCase();ft==="z"?(J.preventDefault(),J.shiftKey?Pt():kt()):ft==="y"&&(J.preventDefault(),Pt())},flush:Y,arm:()=>{y=[z()],M=0},patch:(J,ft,Ct)=>{let Tt=J[J.length-1],It=JSON.parse(JSON.stringify(ft??null)),En=JSON.parse(JSON.stringify(Ct??null));for(let Ba of y){let Sn=tt(Ba,J.slice(0,-1));Sn&&typeof Sn=="object"&&Ft(Sn,Tt)&&!ce(Sn[Tt],It)&&(Sn[Tt]=En)}}}})():null,Mn=new Map,Da=c=>{for(;c&&c!==g&&g.contains(c);c=c.parentElement){let y=Mn.get(c);if(y)return y}},_a=c=>{for(;c&&c!==g;c=c.parentElement)if(Mn.get(c)?.kind==="row")return c},ro=c=>!!(c.closest(".tw-cond-hidden, .tw-tabs-page:not([data-active=true])")||c.parentElement?.closest(".is-collapsed")),me,Cs=c=>{let y=c.target;!g.contains(y)&&!y.closest?.(".tw-portal")&&Ee()},Ee=()=>{me&&(me[0].classList.remove("is-picked"),me=void 0,document.removeEventListener("pointerdown",Cs,!0),xe?.[0]===g&&(xe=null))},Ha=(c,y)=>{xe&&xe[0]!==g&&xe[1](),Ee(),me=[c,y],xe=[g,Ee],c.classList.add("is-picked"),document.addEventListener("pointerdown",Cs,!0);let M=[...c.querySelectorAll('button:not(:disabled):not([tabindex="-1"]), [tabindex="0"]')].find(R=>!R.closest(".tw-hint, .tw-portal, [inert]"));M?M.focus({preventScroll:!0,focusVisible:!1}):document.activeElement?.blur?.(),document.getSelection?.()?.removeAllRanges()};l.push(Ee),g.addEventListener("pointerdown",c=>{let y=c.target;if(_a(y)||y.closest(".tw-header, .tw-folder-header, button, input, textarea, select")){me?.[0].contains(y)||Ee();return}if(c.button!==0||c.pointerType==="touch")return Ee();let M;for(let[R,P]of Mn){let nt=(P.kind==="folder"?R.firstElementChild:R).getBoundingClientRect();nt.height&&c.clientY>=nt.top&&c.clientY<nt.bottom&&!ro(R)&&(M=[R,P])}if(!M)return Ee();c.preventDefault(),Ha(...M)},!0);let oo=c=>!!(c&&c.matches&&(c.matches("input, textarea, select")||c.isContentEditable)),Ia=c=>{if(c.key==="Escape"){me&&(c.stopPropagation(),Ee());return}if(!(c.metaKey||c.ctrlKey)||c.altKey||c.repeat||oo(c.target))return;let y=c.key.toLowerCase();if(y!=="c"&&y!=="v")return;xe&&!xe[0].isConnected&&xe[1](),me&&ro(me[0])&&Ee();let M=document.activeElement,R=me?me[1]:xe||!M||ro(M)?void 0:Da(M);if(!R||y==="c"&&String(document.getSelection?.()||""))return;let P=y==="c"?JSON.stringify(R.kind==="row"?R.entry.get():tt(z(),R.path),O,2):"",nt=Et=>{p||ae(Et?`${R.label} copied`:"Copy failed")},ut=me?.[0],it=document.activeElement,Y=!!it?.matches(":focus-visible");if(!Un){Un=w("textarea","tw-sr"),Un.tabIndex=-1,Un.setAttribute("aria-hidden","true");for(let Et of["copy","paste"])document.addEventListener(Et,se=>Gr?.(se),!0)}let ht=Un,kt=()=>{Gr=null,document.activeElement===ht&&(ht.blur(),it?.focus?.({preventScroll:!0,focusVisible:Y}))},Pt=Gr=Et=>{if(Et.target!==ht&&oo(Et.target))return;if(Et.preventDefault(),kt(),P)return Et.clipboardData?.setData("text/plain",P),nt(!!Et.clipboardData);let se=Et.clipboardData?.getData("text/plain")??null;Promise.resolve().then(()=>(ya(),ba)).then(te=>te.pasteInto(se,J=>te.pasteScope(Ze,R,J),Ze,ut),()=>{})};ht.isConnected||document.body.appendChild(ht),ht.value=P,ht.focus({preventScroll:!0}),ht.select(),setTimeout(()=>{Gr===Pt&&(kt(),P&&hs(P).then(nt))},1e3)},Ls=()=>{if(!p){if(v=l.length,eo(Te,r,o),Zr.length){let c=new Map;for(let R of i)c.has(R.key)||c.set(R.key,R);let y=R=>{let P=c.get(R);return P?P.target[P.key]:o[R]},M=()=>{let R=!1;for(let{node:P,m:nt}of Zr)try{if(nt.render&&$a(P,!nt.render(y))&&(R=!0),nt.disabled!=null){let ut=typeof nt.disabled=="function"?nt.disabled(y):nt.disabled;mr(P,!!ut)}}catch{}R&&ur()};u.add(M),f.add(M),M(),Promise.resolve().then(()=>(va(),wa)).then(R=>{Qr=R.fold},()=>{})}if(h&&mt(Q(B(E(h),"values"))),!p){Me?.arm(),Fa(),l.push(Zt(g,[[document,"keydown"]],c=>{Me?.onKey(c),Ia(c)})),d=!0;for(let c of k.splice(0)){if(p)break;try{c()}catch(y){console.error("[tweaks] a call queued before ready failed:",y)}}for(let c of ye)c.disabled=!1}}},As=new Set,ja=(c,y,M)=>{let R=c.range;if(!R||c.m.soft||As.has(c))return;let P=typeof M=="string"?M.trim().split(/\s+/).map(nt=>["",parseFloat(nt)]):Array.isArray(M)?M.map(nt=>["",nt]):yt(M)?Object.entries(M):[["",M]];for(let[nt,ut]of P){let it=Array.isArray(R)?R:R[nt],Y=1e-9*Math.max(1,Math.abs(ut));if(it&&typeof ut=="number"&&(ut<it[0]-Y||ut>it[1]+Y)){As.add(c),le("clamp",y,M,it[0],it[1],c.m.type);return}}},Ts=(c,y)=>{if(String(c).split(".").some(Le))return!1;let M=String(c).split("."),R=i.filter(it=>it.path.join(".")===c);if(R.length>1)return le("ambiguousPath",c,R.length),!1;let P=R[0];if(!P&&M.length>1){let it=a.get(c);return le(it?"noValue":"noPath",c,it),!1}if(!P){let it=i.filter(Y=>Y.key===c);if(it.length>1)return le("ambiguousKey",c,it.length,it[0].path.join(".")),!1;P=it[0]}let nt=!P&&(a.get(c)||[...a].find(([it])=>it.split(".").pop()===c)?.[1]);if(!P)return nt?le("noValue",c,nt):le("noControl",c,r.some(it=>it.key===c&&(it.type==="folder"||it.type==="tabs"))),!1;let ut=P.target[P.key];if(jt(y))return!1;try{Ut(P,y)}catch(it){return console.error(`[tweaks] set("${c}") failed \u2014 value skipped:`,it),!1}return ja(P,c,y),ce(ut,P.target[P.key])?(s=P.path.join("."),!0):!1},$e={el:g,params:o,on(c){return p?()=>{}:(u.add(c),()=>u.delete(c))},set(c,y,M){let R=String(c),P=M?.silent;$(()=>{Ts(R,y)&&Mt(P)})},setMany(c,y){if(c==null||typeof c!="object")return;let M=Object.entries(c),R=y?.silent;$(()=>{let P=0;for(let[nt,ut]of M)try{Ts(nt,ut)&&P++}catch(it){console.error(`[tweaks] setMany("${nt}") failed \u2014 key skipped:`,it)}P>1&&(s=void 0),P&&Mt(R)})},reset(){d&&!p&&ms(xn),$(ot)},toJSON(){return p?{values:{},ui:{}}:{values:z(),ui:Ra()}},changes(){return p?{}:pe()},fromJSON(c,y){if(!c||typeof c!="object")return;let M=y?.silent,R=c.values&&typeof c.values=="object"?{...c.values}:c.values,P=c.ui&&typeof c.ui=="object"?{...c.ui}:c.ui;$(()=>{R&&no(R,M),Na(P)})},setName(c){p||(lt=String(c),vt.textContent=lt,at(lt))},setTheme(c){if(!p){qe(g,null);for(let y in b)g.style.setProperty(y,b[y]);Vt=ko(c),g._twTheme=Vt,qe(g,Vt),window.dispatchEvent(new Event("tw-retheme"))}},savePreset:c=>{if(p||C||!T||!c)return!1;let y=!0;return $(()=>{y=Ms(c)}),y},loadPreset:c=>p||C||!Oe()[c]?!1:($(()=>Es(c)),!0),deletePreset:c=>{T&&$(()=>Ss(c))},presets:()=>p?[]:Object.keys(Oe()),undo:()=>{Me&&$(Me.undo)},redo:()=>{Me&&$(Me.redo)},destroy(){if(!p){p=!0,K(),Eo(g),zn(g);for(let c of l.splice(0))try{c()}catch{}u.clear(),A&&(A.remove(),A=null),vn===g&&(vn=null),g.dataset.twDestroyed="",g.remove()}}},so=h&&Kn(r).has("image")?Promise.resolve().then(()=>(Sa(),Ea)).then(async c=>{N=await c.load(h),N&&(S=c.bind(h,N,y=>{p?JSON.stringify(E(h)).includes(JSON.stringify(y))&&At():St()},Oe,y=>!!T&&Z(y)))},()=>{}):null;so||(F=!0);let er=so&&so.then(dt),Os=hn(r);if(Os){let c=M=>{if(C=!0,k.length=0,K(),v>=0)for(let R of l.splice(v))try{R()}catch{}for(let R of Te.children)R.dataset.twDestroyed="";throw u.clear(),i.length=0,Te.replaceChildren(),p||console.warn(`[tweaks] "${t}": the panel could not be built \u2014 ${v>=0?"the build threw":"its lazy controls failed to load"}; the API is inert`),M},y=Os.then(Ls);$e.ready=g.ready=(er?Promise.all([y,er]):y).then(()=>$e,c),$e.ready.catch(()=>{})}else Ls(),$e.ready=g.ready=er?er.then(()=>$e):Promise.resolve($e);return $e}xt();var Ca={metaFor:He,ensureForMetas:hn,LAZY_IMPORT:Je,createFolder:Gn,createControl:bn,makeCopyBtn:jr,makeResetBtn:Br,addHintMarker:yn};function yu(t=document){let e=To();return e?e(t,Ca):Promise.resolve()}xt();var La=t=>w("div",`${t} tw-standalone tw-portal`),Aa=(t,e,n)=>{let r=hn(t);if(!r)return e(),Promise.resolve(n);let o=r.then(e).then(()=>n);return o.catch(()=>{}),o};function wu(t,e,n={}){let r=n.key??"value",o=He(r,e);if(!o||o.type==="folder"||o.type==="tabs")throw new TypeError(`[tweaks] mountControl: "${r}" is not a single-control schema value`);n.label!=null&&(o.label=String(n.label));let s=!Dr.has(o.type),i=La("tw-control");t.append(i);let a=null,u=!1,f=o.value,l,p=!1,d=v=>{ce(f,v)&&(f=v,n.onChange&&n.onChange(v,r))},k=()=>{if(u||(a=bn(o,s?d:()=>{}),!a))return;o.hint&&yn(a.el,o.hint);let v=()=>{};try{o.render&&!o.render(v)&&a.el.classList.add("tw-cond-hidden")}catch{}try{(typeof o.disabled=="function"?o.disabled(v):o.disabled)&&mr(a.el,!0)}catch{}i.append(a.el),s&&(f=a.get(),p&&(a.set(l),d(a.get())))},C={el:i,set:v=>{u||!s||(a?(a.set(v),d(a.get())):(l=v,p=!0))},get:()=>s?a?a.get():p?l:o.value:void 0,destroy:()=>{u=!0,a&&typeof a.destroy=="function"&&a.destroy(),i.dataset.twDestroyed="",i.remove()},ready:null};return C.ready=Aa([o],k,C),C}function vu(t={}){let e=La("tw-color-picker"),n=null,r=!1,o=t.value,s,i=!1,a=null,u=p=>{ce(o,p)&&(o=p,t.onChange&&t.onChange(p))},f=()=>{if(r)return;let p=Yt("colorpicker");p&&(n=p({value:t.value,mode:t.mode},u),o=n.get(),e.append(n.el),a&&n.setMode(a),i&&(n.set(s),u(n.get())),Wt(n.reflow))},l={el:e,set:p=>{r||(n?(n.set(p),u(n.get())):(s=p,i=!0))},get:()=>n?n.get():i?s:t.value,mode:()=>n?n.mode():a||t.mode||"oklch",setMode:p=>{n?n.setMode(p):a=p},reflow:()=>{n&&n.reflow()},destroy:()=>{r=!0,e.remove()},ready:null};return l.ready=Aa([{type:"color"}],f,l),l}$n();export{vu as createColorPicker,yu as enhance,sr as gradientCss,js as gradientStops,wu as mountControl,bu as tweaks};
|
|
5
|
+
`,it=(e,t,n)=>{for(let o=0;o<n.length;o++)if(e[t+o]!==n.charCodeAt(o))return!1;return!0},Ic=async e=>{let t=async(r,s)=>new Uint8Array(await e.slice(r,r+s).arrayBuffer()),n=await t(0,21),o=it(n,0,"RIFF")&&it(n,8,"WEBP");if(o&&it(n,12,"VP8X")&&n[20]&2)return!0;if(!o&&!it(n,0,fa))return!1;for(let r=o?12:8;;){let s=await t(r,8);if(s.length<8)return!1;let i=String.fromCharCode(...s.subarray(o?0:4,o?4:8));if(i===(o?"ANIM":"acTL"))return!0;if(o?/^(VP8 |VP8L|ANMF)$/.test(i):i==="IDAT")return!1;let a=new DataView(s.buffer).getUint32(o?4:0,o);r+=o?8+a+(a&1):12+a}},ma=e=>{let t=it(e,0,"II"),n=new DataView(e.buffer,e.byteOffset,e.byteLength);if(!t&&!it(e,0,"MM"))return null;try{let o=n.getUint32(4,t);for(let r=0,s=n.getUint16(o,t);r<s;r++)if(n.getUint16(o+2+r*12,t)===274){let i=n.getUint16(o+10+r*12,t);return i>1&&i<=8?i:1}return 1}catch{return null}},ga=e=>new Uint8Array([77,77,0,42,0,0,0,8,0,1,1,18,0,3,0,0,0,1,0,e,0,0,0,0,0,0]),jc=e=>{let t=-1;for(let n of e){t^=n;for(let o=0;o<8;o++)t=t>>>1^3988292384&-(t&1)}return~t>>>0},ua="http://ns.adobe.com/xap/1.0/\0",da=["adobe:ns:meta/","http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://ns.adobe.com/hdr-gain-map/1.0/","http://ns.google.com/photos/1.0/container/","http://ns.google.com/photos/1.0/container/item/"],Dc=e=>{let t=new TextDecoder("latin1").decode(e),n=new Set(["xmlns","xml"]);if(!t.includes(da[2]))return!1;for(let[,o,r]of t.matchAll(/xmlns(?::([\w.-]+))?\s*=\s*["']([^"']*)["']/g)){if(!da.includes(r))return!1;o&&n.add(o)}for(let[,o]of t.matchAll(/[<\s/]([\w.-]+):[\w.-]/g))if(!n.has(o))return!1;return!0},Bc=(e,t)=>{let n=it(e,0,"II"),o=new DataView(e.buffer,e.byteOffset,e.byteLength);if(!(!n&&!it(e,0,"MM")))try{let r=o.getUint32(4,n);for(let s=0,i=o.getUint16(r,n);s<i;s++){let a=r+2+s*12;if(o.getUint16(a,n)!==45058)continue;let c=o.getUint32(a+8,n),d=o.getUint32(a+4,n)>>>4;d&&o.getUint32(c+d*16-4,n);for(let p=0;p<d;p++){let f=c+p*16+8,l=o.getUint32(f,n);l>t&&o.setUint32(f,l-t,n)}}}catch{}},Vc=e=>{if(e[0]!==255||e[1]!==216)return null;let t=[],n=2,o=0,r=0,s=null,i=0;for(;;){for(;e[n]===255&&e[n+1]===255;)n++;let a=e[n+1],c=n+2+(e[n+2]<<8|e[n+3]);if(e[n]!==255||a===255||a===1||a>=208&&a<=217||c<n+4||c>e.length)return null;if(a===218)break;a===226&&it(e,n+4,"MPF\0")&&(s=e.subarray(n+8,c));let d=a===225&&it(e,n+4,"Exif\0");if(d||a===225&&it(e,n+4,"http://ns.adobe.com/x")&&!(it(e,n+4,ua)&&Dc(e.subarray(n+4+ua.length,c)))){let p=d?ma(e.subarray(n+10,c)):1;if(p===null)return null;t.push(e.subarray(o,n)),o=c;let f=p>1&&!r++;f&&t.push(new Uint8Array([255,225,0,34,69,120,105,102,0,0,...ga(p)])),s&&(i+=c-n-(f?36:0))}n=c}return s&&i>0&&Bc(s,i),t.length?[...t,e.subarray(o)]:null},Kc=e=>{if(!it(e,0,fa))return null;let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=[],o=8,r=0,s=0;for(let i="";i!=="IEND";){let a=o+12>e.length?1/0:o+12+t.getUint32(o);if(a>e.length)return null;i=String.fromCharCode(...e.subarray(o+4,o+8));let c=/^[tiz]TXt$/.test(i)?String.fromCharCode(...e.subarray(o+8,Math.min(a-4,o+88))).split("\0")[0]:"";if(i==="eXIf"||/^(XML:com\.adobe\.xmp|Raw profile type (exif|app1|xmp))$/i.test(c)){let d=i==="eXIf"?ma(e.subarray(o+8,a-4)):1;if(d===null)return null;if(n.push(e.subarray(r,o)),r=a,d>1&&!s++){let p=new Uint8Array(38),f=new DataView(p.buffer);f.setUint32(0,26),p.set([101,88,73,102],4),p.set(ga(d),8),f.setUint32(34,jc(p.subarray(4,34))),n.push(p)}}o=a}return n.length?[...n,e.subarray(r)]:null},zc=async e=>{try{let t=new Uint8Array(await e.arrayBuffer()),n=Vc(t)||Kc(t);return n?new Blob(n,{type:e.type}):e}catch{return e}},Gc=(e,t,n)=>{let o=e.getImageData(0,0,t,n).data;for(let r=3;r<o.length;r+=4)if(o[r]<255)return!0;return!1},pa=(e,t,n)=>new Promise(o=>e.toBlob(r=>o(r&&r.type===t?r:null),t,n)),qc=e=>new Promise((t,n)=>{let o=new FileReader;o.onload=()=>t(String(o.result)),o.onerror=n,o.readAsDataURL(e)}),Uc=e=>{try{let t=e.getContext("2d",{colorSpace:"display-p3"});if(t)return t}catch{}return e.getContext("2d")},Xc=async(e,t,n)=>{if(!t||Hc.test(e.type)||typeof Image>"u"||typeof URL.createObjectURL!="function")return"";let o="";try{if(await Ic(e))return"";o=URL.createObjectURL(e);let r=new Image;r.src=o,await r.decode();let s=r.naturalWidth,i=r.naturalHeight,a=Math.min(1,t/Math.max(s,i));if(!(s>0&&i>0)||a===1&&e.size<=ca)return"";let c=document.createElement("canvas"),d=c.width=Math.max(1,Math.round(s*a)),p=c.height=Math.max(1,Math.round(i*a)),f=Uc(c);if(!f)return"";f.imageSmoothingQuality="high",f.drawImage(r,0,0,d,p);let l=/^image\/jpe?g$/i.test(e.type),k=l?null:await pa(c,"image/png");if(!k||k.size>ca){let L=await pa(c,!l&&Gc(f,d,p)?"image/webp":"image/jpeg",n);L&&(!k||L.size<k.size)&&(k=L)}return k&&k.size<e.size?await qc(k):""}catch{return""}finally{o&&URL.revokeObjectURL(o)}},Wc=Pe('<path d="M12 15V4m-4.5 4.5L12 4l4.5 4.5M4 15v3a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-3"/>');function Yc(e,t){let n=ce(),o=typeof e.value=="string"?e.value:"",r=new Set,s=(Array.isArray(e.options)?e.options:[]).map(w=>({value:ot(w),label:w&&typeof w=="object"&&w.label!=null?String(w.label):""})).filter(w=>typeof w.value=="string"&&!!w.value&&!r.has(w.value)&&!!r.add(w.value)),i=e.upload!==!1||!s.length,a=e.clear!==!1,c=+e.maxSize>0?+e.maxSize:10*Ko,d=e.fit===!1||e.fit===0?0:typeof e.fit=="number"&&e.fit>=1?Math.round(e.fit):2560,p=typeof e.quality=="number"&&e.quality>0&&e.quality<=1?e.quality:.85,f=b("input","twk-image-input");f.type="file",f.accept="image/*";let l=b("span","twk-image-note"),k=b("span","twk-image-live");k.setAttribute("role","status");let L=[l,k],x,M=w=>{for(let $ of L)$.textContent=w;clearTimeout(x),x=setTimeout(()=>{for(let $ of L)$.textContent=""},2600)},E=w=>(/^blob:/i.test(w)?"":la(w))||(/^(data|blob):/i.test(w)?n("uploadedImage","Uploaded image"):n("customImage","Custom image")),m,T=0,j=(w,$=!0)=>{T++,o=w,m(),$&&t(o)},J=w=>{if(!w)return;if(!w.type.startsWith("image/"))return M(n("notAnImage","Not an image"));if(w.size>c)return M(n("tooLarge","{size}, max {max}",{size:aa(w.size),max:aa(c)}));let $=++T;Xc(w,d,p).then(async N=>{if(T!==$)return;if(N)return j(N);let z=new FileReader;z.onload=()=>{T===$&&j(String(z.result))},z.onerror=()=>M(n("unreadable","Couldn't read the file")),z.readAsDataURL(await zc(w))})},g=(w,$)=>{let N=()=>!!F.closest(".is-disabled");w.addEventListener("dragover",z=>{N()||(z.preventDefault(),$.dataset.over="true")}),w.addEventListener("dragleave",()=>{$.dataset.over="false"}),w.addEventListener("drop",z=>{$.dataset.over="false",!N()&&(z.preventDefault(),J(z.dataTransfer?.files[0]))})};f.addEventListener("change",()=>{J(f.files?.[0]),f.value=""});let y=nt("twk-image",e.label),F=y.root,_=b("span","twk-trigger-chip twk-image-thumb"),R=()=>{_.dataset.set=o?"true":"false",_.style.backgroundImage=o?bs(o):""};if(s.length){let w=b("span","twk-trigger-value"),$=b("span","twk-image-note");y.right.append(_,$,w),L.push($);let N=b("div","twk-color-pop twk-image-pop twk-image-gallery"),z=i?ye("twk-button twk-image-upload",Wc):null,Y=ie("button","twk-image-clear",n("clear","Clear"));Y.type="button",Y.setAttribute("aria-label",n("clearImage","{label}: clear the image",{label:e.label}));let Q=b("div","twk-image-foot"),G=b("div","twk-image-foot-row"),ee=b("div","twk-image-clear-slot");Q.append(G),ee.append(Y);let I=b("div","twk-image-grid");I.setAttribute("role","radiogroup"),I.setAttribute("aria-label",e.label);let A=s.length,D=Math.min(6,Math.max(1,e.cols|0||(A<=3?Math.max(2,A):A===4?2:3)));I.style.setProperty("--twk-img-cols",String(D));let h=(B,O)=>{let X=Kn("twk-image-tile",B,()=>j(B));return X.textContent="",X.setAttribute("aria-label",O),X.style.backgroundImage=bs(B),X},K=s.map((B,O)=>B.label||la(B.value)||n("imageN","Image {n}",{n:O+1})),oe=s.map((B,O)=>{let X=h(B.value,K[O]);return I.append(X),X}),Z=ye("twk-image-tile twk-image-custom");Z.setAttribute("role","radio");let te=()=>Z.parentNode?[...oe,Z]:oe;m=()=>{let B=oe.findIndex(W=>W._twVal===o);o&&B<0?(Z._twVal=o,Z.style.backgroundImage=bs(o),Z.setAttribute("aria-label",E(o)),Z.parentNode||I.append(Z)):(Z.matches(":focus")&&oe[Math.max(0,B)].focus(),Z.remove());let O=te(),X=Math.max(0,O.findIndex(W=>W._twVal===o));O.forEach((W,pe)=>{let me=!!o&&W._twVal===o;W.dataset.active=String(me),W.setAttribute("aria-checked",String(me)),W.tabIndex=pe===X?0:-1}),ee.dataset.open=String(!!o),ee.inert=!o,Q.dataset.open=String(!!z||a&&!!o),Q.inert=Q.dataset.open==="false",R(),w.textContent=o?B>=0?K[B]:E(o):n("none","None")},I.addEventListener("keydown",B=>{let O=te(),X=O.indexOf(B.target);if(X<0)return;if(a&&(B.key==="Delete"||B.key==="Backspace")&&!B.altKey&&!B.metaKey&&!B.ctrlKey){B.preventDefault(),oe[0].focus(),j("");return}let W=Zt(B.key,X,O.length,D);W<0||(B.preventDefault(),W!==X&&(O[W].focus(),j(O[W]._twVal)))}),Y.addEventListener("click",()=>{(z||oe[0]).focus(),j("")}),N.append(I,Q),F.append(N,k),z&&(z.setAttribute("aria-label",n("uploadImage","{label}: upload an image",{label:e.label})),z.append(l,ie("span","twk-image-text",n("upload","Upload image"))),z.addEventListener("click",()=>f.click()),G.append(z),F.append(f),g(y.trigger,y.trigger),g(N,N)),a&&G.append(ee),Ke(F,y.trigger,N,{fallbackH:220,initialFocus:()=>te().find(B=>B.tabIndex===0)})}else{y.trigger.removeAttribute("aria-expanded"),y.trigger.setAttribute("aria-label",n("chooseImage","{label}: choose an image",{label:e.label}));let w=b("span","twk-image-text");y.right.append(_,l,w),F.append(f,k),m=()=>{R(),w.textContent=o?n("replace","Replace"):n("dropOrChoose","Drop or choose")},y.trigger.addEventListener("click",()=>f.click()),g(y.trigger,y.trigger)}return m(),{el:F,set:w=>{w!=null&&typeof w!="string"||j(w||"",!1)},get:()=>o,note:M}}de("image",Yc);we();$e();var Jc=(e,t,n,o,r,s,i)=>{let a=r.length;e.clearRect(0,0,n,o),e.strokeStyle=Rn(t),e.lineWidth=1.5,e.lineJoin="round",e.beginPath();let c=!1;for(let d=0;d<a;d++){let p=r[(s+d)%a];if(Number.isNaN(p))continue;let f=d/(a-1)*n,l=o-q(i(p),0,1)*o;c?e.lineTo(f,l):(e.moveTo(f,l),c=!0)}e.stroke()},Zc=e=>{for(let t of["resize","twk-reflow"])window.addEventListener(t,e);return()=>{for(let t of["resize","twk-reflow"])window.removeEventListener(t,e)}};function ha(e,t=!1){let n=typeof e.get=="function"?e.get:()=>e.value,o=Math.max(30,Number.isFinite(+e.interval)?+e.interval:200),r;try{r=n()}catch{}let s=typeof r=="number",i=e.view==="graph"||s&&e.graph!==!1&&e.view!=="text"&&e.rows==null,a=b("div","twk-fps twk-monitor"),c=ie("span","twk-fps-val","\u2014");a.append(ie("span","twk-fps-label",e.label??ce()("monitor","Monitor")),c);let d=0,p=0,f=()=>{},l=!1,k=Number.isFinite(+e.decimals)?Math.min(20,Math.max(0,Math.floor(+e.decimals))):2,L=w=>w==null?"\u2014":typeof w=="number"?Number.isInteger(w)||!Number.isFinite(w)?String(w):w.toFixed(k):typeof w=="object"?Bn(w):String(w),x=()=>{d&&clearInterval(d),d=0,p&&cancelAnimationFrame(p),p=0,f()},M=w=>{let $=N=>{if(t&&(p=requestAnimationFrame($)),!a.isConnected){l&&x();return}l=!0;let z;try{z=n(N)}catch{return}w(z)};t?p=requestAnimationFrame($):d=setInterval($,o)};if(!i&&e.rows){c.remove();let w=Math.max(1,Math.floor(+e.rows)||1),$=b("pre","twk-monitor-buffer");$.style.setProperty("--twk-monitor-rows",w),a.append($);let N=[];return M(z=>{for(N.push(L(z));N.length>w;)N.shift();$.textContent=N.join(`
|
|
6
|
+
`)}),Nt(a,x)}let E=w=>{c.textContent=L(w)};if(!i)return M(E),Nt(a,x);let m=document.createElement("canvas");m.className="twk-fps-canvas",a.append(m);let T=m.getContext("2d");if(!T)return M(E),Nt(a,x);let j=80,J=new Array(j).fill(NaN),g=0,y=0,F=0,_=()=>{[y,F]=wr(m,T,2)};f=Zc(_);let R=()=>{if(y||_(),!y)return;let w=e.min,$=e.max;if(w==null||$==null){let z=1/0,Y=-1/0;for(let G of J)Number.isFinite(G)&&(G<z&&(z=G),G>Y&&(Y=G));z===1/0?(z=0,Y=1):z===Y&&(z-=.5,Y+=.5);let Q=(Y-z)*.1;w==null&&(w=z-Q),$==null&&($=Y+Q)}let N=$-w||1;Jc(T,a,y,F,J,g,z=>(z-w)/N)};return M(w=>{E(w),typeof w=="number"&&Number.isFinite(w)&&(J[g]=w,g=(g+1)%j,R())}),Nt(a,x)}var Qc=()=>{let e=0;return t=>{if(!(t>0))return;let n=e?1e3/(t-e):void 0;return e=t,n}},eu=e=>ha({...e,label:e.label??ce()("fps","FPS"),get:Qc(),view:"graph",min:0,max:120,decimals:0},!0);de("fpsgraph",eu);de("monitor",e=>ha(e));we();$e();function tu(e,t){let n=ce(),o=(O,X,W)=>Number.isFinite(+O)?Math.max(X,+O):W,r=O=>({stiffness:o(O.stiffness,1,300),damping:o(O.damping,.5,26),mass:o(O.mass,.1,1)}),s=O=>Number.isFinite(+O),[i,a]=ln,c=!1,d=O=>{let X=s(O)?+O:.5,W=q(X,i,a);return W!==X&&!c&&(c=!0,Ut("springDur",[e.key,X,W])),W},p=O=>q(s(O)?+O:.2,-1,1),f=O=>+O.toPrecision(10),l=O=>{let X=kr(O.visualDuration,O.bounce);return{stiffness:f(X.stiffness),damping:f(X.damping),mass:X.mass}},k=O=>O==="time"||O==="physics"?O:null,L={stiffness:e.stiffness,damping:e.damping,mass:e.mass,visualDuration:e.visualDuration,bounce:e.bounce,...e.value||{}},x=k(L.mode)??k(e.mode)??(s(L.visualDuration)||s(L.bounce)?"time":"physics"),M={visualDuration:d(L.visualDuration),bounce:p(L.bounce)},E=r({stiffness:L.stiffness,damping:L.damping,mass:L.mass}),m=b("div","twk-spring"),T=b("div","twk-spring-viz"),j=document.createElement("canvas");j.className="twk-spring-canvas",T.append(j);let J=b("div","twk-fields"),g=b("div","twk-fields"),y=j.getContext("2d"),F=()=>x==="time"?l(M):r(E),_=()=>{let O=Math.max(1,T.clientWidth),X=Math.max(1,T.clientHeight);if(O<2)return;let W=window.devicePixelRatio||1;j.width=O*W,j.height=X*W,y.setTransform(W,0,0,W,0,0),y.clearRect(0,0,O,X);let pe=F(),me=$n(pe.stiffness,pe.damping,pe.mass,Math.max(160,Math.round(O*W))),_e=Math.max(1.05,...me),Te=8,xe=He=>Te+He/(me.length-1)*(O-2*Te),Me=He=>X-Te-He/_e*(X-2*Te);y.strokeStyle=br(m,"--twk-surface-active")||"rgba(255,255,255,0.1)",y.lineWidth=1,y.beginPath(),y.moveTo(Te,Me(1)),y.lineTo(O-Te,Me(1)),y.stroke(),y.strokeStyle=Rn(m),y.lineWidth=1.5,y.lineJoin=y.lineCap="round",y.beginPath(),me.forEach((He,Qe)=>Qe?y.lineTo(xe(Qe),Me(He)):y.moveTo(xe(Qe),Me(He))),y.stroke()},R=()=>x==="time"?{...F(),visualDuration:M.visualDuration,bounce:M.bounce}:F(),w=()=>t(R()),$={};[["stiffness","Stiffness",1],["damping","Damping",.5],["mass","Mass",.1]].forEach(([O,X,W])=>{$[O]=Ne({label:n(O,X),value:E[O],step:W,min:W},pe=>{E[O]=pe,_(),w()}),J.append($[O].el)});let N=Ne({label:n("duration","Duration"),value:M.visualDuration*1e3,step:10,min:i*1e3,max:a*1e3,unit:"ms"},O=>{M.visualDuration=d(O/1e3),_(),w()}),z=Ne({label:n("bounce","Bounce"),value:M.bounce*100,step:5,min:-100,max:100,unit:"%"},O=>{M.bounce=p(O/100),_(),w()});g.append(N.el,z.el);let Y=()=>{g.style.display=x==="time"?"":"none",J.style.display=x==="physics"?"":"none"},Q=O=>{O!=="time"&&O!=="physics"||O===x||(x=O,Y(),_(),w())},G=Vt([{value:"time",label:n("time","Time")},{value:"physics",label:n("physics","Physics")}],x,Q,n("springMode","Spring mode")),ee=b("div","twk-row");ee.append(ie("span","twk-row-label",n("mode","Mode")),G.el),e.label&&m.append(ie("div","twk-spring-label",e.label)),m.append(T,ee,J,g);let I=1,A=500,D=1,h=40,K=.1,oe=1,Z=O=>{let[X,W]=jt(O,T);x==="time"?(N.set((K+X*(oe-K))*1e3),M.visualDuration=N.get()/1e3,z.set((1-2*W)*100),M.bounce=z.get()/100):($.stiffness.set(I+X*(A-I)),E.stiffness=$.stiffness.get(),$.damping.set(D+W*(h-D)),E.damping=$.damping.get()),_(),w()};ht(T,{onDown:O=>{O.preventDefault(),T.classList.add("is-dragging"),Z(O)},onMove:Z,onEnd:()=>T.classList.remove("is-dragging")}),Y(),Ge(_),Ze(j,[[window,"resize"],[window,"twk-reflow"],[matchMedia("(prefers-color-scheme: dark)"),"change"],[window,"twk-retheme"]],_);let te=null,B=!1;return typeof MutationObserver=="function"&&(te=new MutationObserver(()=>{j.isConnected?(B=!0,requestAnimationFrame(_)):B&&(te.disconnect(),te=null)}),te.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-twk-scheme"]})),{el:m,destroy:()=>{te&&(te.disconnect(),te=null)},set:O=>{if(!O||typeof O!="object")return;let X=k(O.mode),W=s(O.visualDuration)||s(O.bounce),pe=s(O.stiffness)||s(O.damping)||s(O.mass);!W&&!pe&&!X||(x=X??(W?"time":"physics"),W&&(s(O.visualDuration)&&(M.visualDuration=d(O.visualDuration)),s(O.bounce)&&(M.bounce=p(O.bounce))),pe&&(E=r({...E,...O})),G.set(x),N.set(M.visualDuration*1e3),z.set(M.bounce*100),$.stiffness.set(E.stiffness),$.damping.set(E.damping),$.mass.set(E.mass),Y(),_())},get:()=>R()}}de("spring",tu);we();$e();fn();function nu(e,t){let n=ce(),o=[.25,.1,.25,1],r=-1,s=2,i=8,a=A=>A.map((D,h)=>q(D,h%2?r:0,h%2?s:1)),c=[-.25,1.25],d=!1,p=()=>{d||(c=[Math.min(-.25,l[1]-.1,l[3]-.1),Math.max(1.25,l[1]+.1,l[3]+.1)])},f=A=>Array.isArray(A)&&A.length===4?A.map(Number):A==="linear"?[0,0,1,1]:pn(A)?.slice(),l=f(e.value)||o.slice();l.some(A=>!Number.isFinite(A))&&(l=o.slice()),l=a(l);let k=l.slice(),L=b("div","twk-bezier");e.label&&L.append(ie("div","twk-bezier-label",e.label));let x=b("div","twk-bezier-graph"),M=Oe("svg","twk-bezier-svg");M.setAttribute("preserveAspectRatio","none");let E=Oe("line","twk-bezier-guide"),m=Oe("line","twk-bezier-guide"),T=Oe("line","twk-bezier-diag"),j=Oe("line","twk-bezier-ctl"),J=Oe("line","twk-bezier-ctl"),g=Oe("path","twk-bezier-curve");M.append(E,m,T,j,J,g);let y=ye("twk-bezier-handle");y.setAttribute("aria-label",n("controlPoint","Control point {n}",{n:1}));let F=ye("twk-bezier-handle");F.setAttribute("aria-label",n("controlPoint","Control point {n}",{n:2})),x.append(M,y,F);let _=b("div","twk-fields twk-bezier-fields");L.append(x,_);let R=0,w=0,$=A=>i+A*(R-2*i),N=A=>w-i-(A-c[0])/(c[1]-c[0])*(w-2*i),z=(A,D,h,K,oe)=>{A.setAttribute("x1",D),A.setAttribute("y1",h),A.setAttribute("x2",K),A.setAttribute("y2",oe)},Y=()=>{if(y.setAttribute("aria-label",n("controlPointAt","Control point {n}, x {x}, y {y}",{n:1,x:l[0],y:l[1]})),F.setAttribute("aria-label",n("controlPointAt","Control point {n}, x {x}, y {y}",{n:2,x:l[2],y:l[3]})),R=x.offsetWidth,w=x.offsetHeight,R<2)return;p(),M.setAttribute("viewBox",`0 0 ${R} ${w}`);let[A,D,h,K]=l,oe=$(0),Z=N(0),te=$(1),B=N(1),O=$(A),X=N(D),W=$(h),pe=N(K);z(E,i,Z,R-i,Z),z(m,i,B,R-i,B),z(T,oe,Z,te,B),z(j,oe,Z,O,X),z(J,te,B,W,pe),g.setAttribute("d",`M${oe},${Z} C${O},${X} ${W},${pe} ${te},${B}`),y.style.left=O+"px",y.style.top=X+"px",F.style.left=W+"px",F.style.top=pe+"px"},Q=[{label:"X1",i:0,lo:0,hi:1},{label:"Y1",i:1,lo:r,hi:s},{label:"X2",i:2,lo:0,hi:1},{label:"Y2",i:3,lo:r,hi:s}],G=Q.map(A=>{let D=Ne({label:A.label,value:l[A.i],step:.01,min:A.lo,max:A.hi},h=>{l[A.i]=h,Y(),t(l.slice())});return _.append(D.el),D}),ee=()=>G.forEach((A,D)=>A.set(l[Q[D].i])),I=(A,D)=>{let h=null,K=0,oe=0,Z=1;ht(A,{onDown:te=>{te.preventDefault(),h=x.getBoundingClientRect(),K=x.offsetWidth||h.width,oe=x.offsetHeight||h.height,Z=h.width/K,A.classList.add("is-dragging"),A.focus({focusVisible:!1}),d=!0},onMove:te=>{let B=(te.clientX-h.left)/Z,O=(te.clientY-h.top)/Z,X=q((B-i)/(K-2*i),0,1),W=q(c[0]+(oe-i-O)/(oe-2*i)*(c[1]-c[0]),r,s);l[D*2]=+X.toFixed(2),l[D*2+1]=+W.toFixed(2),Y(),ee(),t(l.slice())},onEnd:()=>{h=null,A.classList.remove("is-dragging"),d=!1,Y()}}),A.addEventListener("keydown",te=>{if(te.key==="Escape")return A.blur();if(te.key==="Home"){te.preventDefault(),l=k.slice(),Y(),ee(),t(l.slice());return}let[B,O]=Rt(te);if(!B&&!O)return;te.preventDefault();let X=te.shiftKey?.1:.01,W=D*2;B&&(l[W]=+q(l[W]+B*X,0,1).toFixed(2)),O&&(l[W+1]=+q(l[W+1]+O*X,r,s).toFixed(2)),Y(),ee(),t(l.slice())})};return I(y,0),I(F,1),Ge(Y),Ze(L,[[window,"resize"],[window,"twk-reflow"]],Y),{el:L,set:A=>{let D=f(A);if(D){if(D.some(h=>!Number.isFinite(h)))return;l=a(D),Y(),ee()}},get:()=>l.slice()}}de("cubicbezier",nu);we();$e();fn();var ou=300,zo=1e4,ru=16,ba=1,De=e=>typeof e=="number"?Number.isFinite(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(+e),ys=e=>{if(typeof e=="string"){let t=e==="linear"?[0,0,1,1]:_n[e];return t?t.slice():null}if(Array.isArray(e)&&e.length===4){let t=e.map(Number);return t.every(Number.isFinite)?t:null}return null},wa=e=>De(e.stiffness)||De(e.damping)||De(e.mass)||De(e.visualDuration)||De(e.bounce),su=e=>{let t={mode:"time"};if(De(e.stiffness)){let n=+e.stiffness,o=De(e.mass)?+e.mass:1,r=go(n,De(e.damping)?+e.damping:2*Math.sqrt(n*o),o);t.visualDuration=r.visualDuration,De(e.damping)&&(t.bounce=q(r.bounce,-1,ba))}return De(e.visualDuration)&&(t.visualDuration=+e.visualDuration),De(e.bounce)&&(t.bounce=q(+e.bounce,-1,ba)),t},iu=e=>{if(!De(e.stiffness)||!De(e.damping))return null;let t=+e.stiffness,n=+e.damping,o=De(e.mass)?+e.mass:1;if(!(t>0&&n>=0&&o>0))return null;let r=go(t,n,o),s=(i,a)=>De(i)&&Math.abs(+i-a)>1e-6*Math.max(1,Math.abs(a));return s(e.visualDuration,r.visualDuration)||s(e.bounce,r.bounce)?null:{stiffness:t,damping:n,mass:o,...r}},ya=(e,t)=>e.mode==="spring"||e.mode==="easing"?e.mode:wa(e)?"spring":ys(e.curve)?"easing":t;function au(e,t){let n=ce(),o=qe("cubicbezier"),r=qe("spring");if(!o||!r)throw new Error("[tweaks] motion: the bezier and spring controls are not loaded");let s=ke(e.value)?e.value:{},i=ya(s,"easing"),a=ys(s.curve)??_n.ease.slice(),c=De(s.duration)?q(+s.duration,0,zo):ou,{root:d,trigger:p,right:f}=nt("twk-motion",e.label??n("motion","Motion")),l=b("span","twk-trigger-chip twk-motion-chip"),k=Oe("svg");k.setAttribute("viewBox","0 0 100 100"),k.setAttribute("preserveAspectRatio","none");let L=Oe("path");k.append(L),l.append(k);let x=b("span","twk-trigger-value");f.append(l,x);let M=b("div","twk-color-pop twk-motion-pop"),E=b("div","twk-motion-body");M.append(E);let m=o({...e,type:"cubicbezier",label:"",value:a.slice()},B=>{a=B,Z(),G()});a=m.get();let T=null,j=!1,J=B=>{if(T=iu(B),!T)return su(B);let O=q(T.visualDuration,ln[0],ln[1]),X=T.damping/(2*Math.sqrt(T.stiffness*T.mass));return(O!==T.visualDuration||X<.05||X>20)&&!j&&(j=!0,Ut("springKept",[e.key,T.stiffness,T.damping,T.mass])),{mode:"time",visualDuration:O,bounce:T.bounce}},g=r({...e,type:"spring",label:"",value:J(s)},()=>{T=null,Z(),G()}),y=()=>T??g.get(),F=Ne({label:n("duration","Duration"),value:c,step:10,min:0,max:zo,unit:"ms"},B=>{c=q(B,0,zo),Z(),G()});c=F.get();let _=b("div","twk-motion-pane"),R=b("div","twk-motion-pane"),w=b("div","twk-fields");w.append(F.el),_.append(m.el,w),R.append(g.el);let $=b("div","twk-motion-stage"),N=b("div","twk-motion-box");$.append(N);let z=Vt([{value:"easing",label:n("easing","Easing")},{value:"spring",label:n("spring","Spring")}],i,B=>{(B==="easing"||B==="spring")&&B!==i&&(i=B,K(),Z(),G())},n("motionType","Motion type")),Y=b("div","twk-row");Y.append(ie("span","twk-row-label",n("type","Type")),z.el),E.append(Y,_,R,$),d.append(M);let Q=()=>{if(i==="easing")return{mode:i,curve:a.slice(),duration:c,easing:`cubic-bezier(${a.join(", ")})`};let B=y();return{mode:i,...B,...vr(B.stiffness,B.damping,B.mass)}},G=()=>t(Q()),ee=!1,I=null,A=B=>{if(B)ee=!ee;else if(I&&I.playState==="running")return;let O=Q(),X=Math.max(0,$.clientWidth-N.offsetWidth-2*ru),W=`translateX(${ee?0:X}px)`,pe=`translateX(${ee?X:0}px)`;if(Bt.matches||typeof N.animate!="function"){N.style.transform=pe;return}I?.cancel();let me=[{transform:W},{transform:pe}];try{I=N.animate(me,{duration:O.duration,easing:O.easing,fill:"forwards"})}catch{I=N.animate(me,{duration:O.duration,fill:"forwards"})}};$.addEventListener("click",()=>A(!0)),$.tabIndex=0,$.setAttribute("role","button"),$.setAttribute("aria-label",n("replay","Replay the motion")),$.addEventListener("keydown",B=>{(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),A(!0))});let D=()=>{let B;if(i==="easing"){let[W,pe,me,_e]=a;B=[];for(let Te=0;Te<=24;Te++){let xe=Te/24,Me=1-xe,He=3*Me*Me*xe,Qe=3*Me*xe*xe,et=xe*xe*xe;B.push([He*W+Qe*me+et,He*pe+Qe*_e+et])}}else{let W=y();B=$n(W.stiffness,W.damping,W.mass,32).map((pe,me)=>[me/31,pe])}let O=Math.max(1,...B.map(W=>W[1])),X=Math.min(0,...B.map(W=>W[1]));return B.map(([W,pe],me)=>`${me?"L":"M"}${(10+W*80).toFixed(1)},${(90-(pe-X)/(O-X)*80).toFixed(1)}`).join(" ")},h=()=>{i==="easing"?m.set(a.slice()):g.set(g.get())},K=()=>{_.style.display=i==="easing"?"":"none",R.style.display=i==="spring"?"":"none",h()},oe=()=>i==="easing"?n("easingSummary","Easing \xB7 {ms} ms",{ms:c}):n("springSummary","Spring \xB7 {ms} ms",{ms:Math.round((y().visualDuration??0)*1e3)}),Z=()=>{L.setAttribute("d",D()),x.textContent=oe(),A(!1)};return Ke(d,p,M,{fallbackH:380,onOpen:()=>{z.set(i),h(),A(!0)},initialFocus:()=>z.el.querySelector('[tabindex="0"]')}),K(),Z(),{el:d,set:B=>{let O=typeof B=="string"?{curve:B}:Array.isArray(B)&&B.length===4?{curve:B}:ke(B)?B:null;if(!O)return;i=ya(O,i);let X=ys(O.curve);X&&(m.set(X.slice()),a=m.get()),i==="easing"&&De(O.duration)&&(F.set(q(+O.duration,0,zo)),c=F.get()),wa(O)&&g.set(J(O)),z.set(i),K(),Z()},get:Q,destroy:()=>g.destroy&&g.destroy()}}de("motion",au);we();$e();function lu(e,t){let n=ce(),o=e.components,{root:r,trigger:s,right:i}=nt("twk-point",e.label??n("point","Point")),a=b("span","twk-trigger-value"),c=b("div","twk-trigger-chip twk-point-preview"),d=b("div","twk-point-preview-dot");c.append(d),i.append(c,a);let p=b("div","twk-color-pop twk-point-pop"),f=b("div","twk-point-body");p.append(f);let l=e.pad!==!1&&o.length>=2,k=G=>{let ee=vo(Math.abs(Number.isFinite(+G.value)?+G.value:0))[1],I=G.min??-ee,A=G.max??ee;if(G.min==null!=(G.max==null)&&!(A>I)){let K=2*vo(Math.abs(+(G.min??G.max)))[1];G.min==null?I=A-K:A=I+K}let D=10**Math.floor(Math.log10((A-I)/200)),h=G.step??(D>0&&Number.isFinite(D)?D:1);return{lo:I,hi:A,nudge:h,step:G.step??Math.min(h,It(G.value),It(G.min))}},L=o.map(k),x=L[0],M=L[1],E=x?.lo??-1,m=x?.hi??1,T=M?.lo??-1,j=M?.hi??1,J=(G,ee,I)=>I>ee?q((G-ee)/(I-ee),0,1):.5,g=null,y=null,F=null;if(l){g=b("div","twk-pad"),y=b("div","twk-pad-thumb");let G=Oe("svg","twk-pad-line");G.setAttribute("viewBox","0 0 100 100"),G.setAttribute("preserveAspectRatio","none"),F=Oe("line"),G.append(F);let ee=J(0,T,j);F.setAttribute("x1",J(0,E,m)*100),F.setAttribute("y1",(e.invertY?ee:1-ee)*100),g.append(b("div","twk-pad-axis twk-pad-axis-x"),b("div","twk-pad-axis twk-pad-axis-y"),G,y),f.append(g)}let _=b("div","twk-fields");f.append(_);let R=()=>{Q(),Y()},w=()=>t(N()),$=o.map((G,ee)=>{let I=Ne({label:G.label??G.key,value:G.value??0,step:L[ee].step,min:G.min,max:G.max},()=>{R(),w()});return _.append(I.el),I}),N=()=>Object.fromEntries(o.map((G,ee)=>[G.key,$[ee].get()])),z=(G,ee)=>(+G).toFixed(lt(ee)),Y=()=>{a.textContent=$.map((G,ee)=>z(G.get(),L[ee].step)).join(", ")},Q=()=>{d.style.left="50%",d.style.top="50%"};if(l){let ee=D=>`calc(${(D*100).toFixed(2)}% + ${((.5-D)*5).toFixed(2)}px)`;Q=()=>{let D=J($[0].get(),E,m),h=J($[1].get(),T,j),K=e.invertY?h:1-h,oe=D*100,Z=K*100;y.style.left=oe+"%",y.style.top=Z+"%",d.style.left=ee(D),d.style.top=ee(K),F.setAttribute("x2",oe),F.setAttribute("y2",Z),g.setAttribute("aria-description",`${o[0].label??o[0].key} ${z($[0].get(),x.step)}, ${o[1].label??o[1].key} ${z($[1].get(),M.step)}`)},an(g,D=>{let[h,K]=jt(D,g),oe=e.invertY?K:1-K;$[0].set(E+h*(m-E)),$[1].set(T+oe*(j-T)),R(),w()}),g.tabIndex=0,g.setAttribute("role","group"),g.setAttribute("aria-label",n("pointPad","{label} pad: {x} and {y}",{label:e.label??n("point","Point"),x:o[0].label??o[0].key,y:o[1].label??o[1].key}));let A=Nn(g);g.addEventListener("keydown",D=>{if(D.key==="Home"){D.preventDefault(),o.forEach((Z,te)=>$[te].set(Z.value??0)),R(),w(),A();return}let[h,K]=Rt(D);if(!h&&!K)return;D.preventDefault();let oe=D.shiftKey?10:1;h&&$[0].set(q($[0].get()+h*x.nudge*oe,E,m)),K&&$[1].set(q($[1].get()+(e.invertY?-K:K)*M.nudge*oe,T,j)),R(),w(),A()})}return r.append(p),Ke(r,s,p,{fallbackH:240,onOpen:R}),R(),{el:r,set:G=>{G&&o.forEach((ee,I)=>{G[ee.key]!=null&&$[I].set(G[ee.key])}),R()},get:N,range:Object.fromEntries(o.map((G,ee)=>[G.key,$[ee].range]))}}de("point",lu);we();$e();var ka=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:(e,t)=>e%t,clamp:(e,t,n)=>Math.min(Math.max(e,t),n)}),cu=["min","max","hypot"],ws=Object.assign(Object.create(null),{pi:Math.PI,e:Math.E,tau:Math.PI*2,phi:(1+Math.sqrt(5))/2});function ks(e){if(typeof e!="string"||!e.trim())return"type an expression in x";if(e.length>512)return"too long: 512 characters at most";let t=e,n=[],o=/(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y,r=/[A-Za-z_]\w*/y,s=0;for(;s<t.length;){let g=t[s];if(g===" "||g===" "||g===`
|
|
7
|
+
`){s++;continue}if(g>="0"&&g<="9"||g==="."&&t[s+1]>="0"&&t[s+1]<="9"){o.lastIndex=s;let y=o.exec(t);if(!y||y.index!==s)return`unexpected "${g}"`;n.push({t:"num",v:parseFloat(y[0])}),s=o.lastIndex;continue}if(g>="A"&&g<="Z"||g>="a"&&g<="z"||g==="_"){r.lastIndex=s;let y=r.exec(t);n.push({t:"id",v:y[0]}),s=r.lastIndex;continue}if(g==="*"&&t[s+1]==="*"){n.push({t:"op",v:"^"}),s+=2;continue}if("+-*/%^".includes(g)){n.push({t:"op",v:g}),s++;continue}if(g==="("){n.push({t:"lp"}),s++;continue}if(g===")"){n.push({t:"rp"}),s++;continue}if(g===","){n.push({t:"comma"}),s++;continue}return`unexpected "${g}"`}let i=0,a="",c=g=>(a=a||g,null),d=()=>n[i],p=g=>{let y=n[i];return!y||g&&y.t!==g?null:(i++,y)},f=()=>{let g=l();if(!g)return null;for(;d()&&d().t==="op"&&(d().v==="+"||d().v==="-");){let y=p("op").v,F=l();if(!F)return null;let _=g;g=y==="+"?R=>_(R)+F(R):R=>_(R)-F(R)}return g},l=()=>{let g=k();if(!g)return null;for(let y=d();y;y=d()){let F=n[i-1].t,_=(F==="num"||F==="id"||F==="rp")&&(y.t==="id"||y.t==="lp");if(!_&&!(y.t==="op"&&(y.v==="*"||y.v==="/"||y.v==="%")))break;let R=_?"*":p("op").v,w=k();if(!w)return null;let $=g;g=R==="*"?N=>$(N)*w(N):R==="/"?N=>$(N)/w(N):N=>$(N)%w(N)}return g},k=()=>{if(d()&&d().t==="op"&&(d().v==="-"||d().v==="+")){let g=p("op").v,y=k();return y?g==="-"?F=>-y(F):y:null}return L()},L=()=>{let g=x();if(!g)return null;if(d()&&d().t==="op"&&d().v==="^"){p("op");let y=k();return y?F=>Math.pow(g(F),y(F)):null}return g},x=()=>{let g=d();if(!g)return null;if(g.t==="num")return p("num"),()=>g.v;if(g.t==="lp"){p("lp");let y=f();return!y||!p("rp")?null:y}if(g.t==="id"){p("id");let y=g.v.toLowerCase(),F=ka[y];if(d()&&d().t==="lp"&&(F||y!=="x"&&!(y in ws))){if(!F)return c(`unknown function "${g.v}"`);p("lp");let _=[];if(d()&&d().t!=="rp")do{let R=f();if(!R)return null;_.push(R)}while(p("comma"));return p("rp")?!_.length&&cu.includes(y)?c(`${y}() needs at least one value`):R=>F(..._.map(w=>w(R))):null}if(F){let _=F.length===1?E():null,R=d();return!_||R&&(R.t==="op"?R.v==="^":R.t!=="rp"&&R.t!=="comma")?c(`write ${y}(\u2026)`):w=>F(_(w))}if(y==="x")return _=>_;if(y in ws){let _=ws[y];return()=>_}return c(`unknown name "${g.v}"`)}return null},M=g=>g&&g.t==="id"&&!ka[g.v.toLowerCase()],E=()=>{let g=d();if(g&&g.t==="num"){if(p("num"),!M(d()))return()=>g.v;let y=x();return y&&(F=>g.v*y(F))}return M(g)?x():null},m=f(),T=n[i];if(m&&!T)return m;if(a)return a;let j=n[i-1],J=n.slice(0,i).reduce((g,y)=>g+(y.t==="lp"?1:y.t==="rp"?-1:0),0);return!m&&j&&j.t==="op"?`"${j.v}" needs a value on each side`:T?T.t==="num"?`missing an operator before ${T.v}`:T.t==="rp"?j&&j.t==="lp"?"nothing inside the parentheses":'unmatched ")"':T.t==="comma"?`"," outside a function's parentheses`:T.t==="op"?`"${T.v}" needs a value on each side`:"not a valid expression":J>0?'missing ")"':"not a valid expression"}function uu(e,t){let n=ce(),o=Number(e.xMin??e.min),r=Number(e.xMax??e.max);if(Number.isFinite(o)||(o=-10),Number.isFinite(r)||(r=10),r<o){let j=o;o=r,r=j}r===o&&(o-=1,r+=1);let s=Math.max(2,Math.min(4096,e.samples|0||256)),i=Number.isFinite(e.yMin)&&Number.isFinite(e.yMax)&&+e.yMax>+e.yMin,a=typeof e.fn=="function"?e.fn:null,c=e.editable!==!1&&!a,d=e.expr!=null?String(e.expr):a?"":"sin(x)",p=a||ks(d),f=b("div","twk-plot");e.label&&f.append(ie("div","twk-plot-label",e.label));let l=b("div","twk-plot-graph"),k=Oe("svg","twk-plot-svg");k.setAttribute("preserveAspectRatio","none");let L=Oe("line","twk-plot-axis"),x=Oe("line","twk-plot-axis"),M=Oe("path","twk-plot-curve");k.append(L,x,M),l.append(k),f.append(l);let E=null;if(c){let j=b("div","twk-plot-field");E=b("input","twk-plot-input"),E.type="text",E.value=d,E.spellcheck=!1,E.autocapitalize="off",bt(E),E.setAttribute("aria-label",n("expression","{label} \u2014 expression in x",{label:e.label||n("plot","Plot")})),E.setAttribute("aria-invalid","false"),j.append(ie("span","twk-plot-fx","y ="),E),f.append(j)}let m=6,T=()=>{let j=typeof p=="function"?p:null,J=!!j;f.classList.toggle("is-invalid",c&&!J),E&&(E.setAttribute("aria-invalid",J?"false":"true"),E.title=J?"":String(p));let g=l.getBoundingClientRect(),y=g.width,F=g.height;if(y<2)return;k.setAttribute("viewBox",`0 0 ${y} ${F}`);let _=[],R=1/0,w=-1/0;if(J)for(let I=0;I<s;I++){let A=o+(r-o)*(I/(s-1)),D;try{D=j(A)}catch{D=NaN}_.push(D),Number.isFinite(D)&&(D<R&&(R=D),D>w&&(w=D))}let $=e.yMin,N=e.yMax;if(!i)if(!Number.isFinite(R)||R===w){let I=Number.isFinite(R)?R:0;$=I-1,N=I+1}else{let I=(w-R)*.12;$=R-I,N=w+I}let z=I=>m+(I-o)/(r-o)*(y-2*m),Y=I=>F-m-(I-$)/(N-$)*(F-2*m),Q=(I,A,D,h,K,oe)=>{I.style.display=oe?"":"none",oe&&(I.setAttribute("x1",A),I.setAttribute("y1",D),I.setAttribute("x2",h),I.setAttribute("y2",K))};Q(L,m,Y(0),y-m,Y(0),$<=0&&N>=0),Q(x,z(0),m,z(0),F-m,o<=0&&r>=0);let G="",ee=!1;if(J)for(let I=0;I<s;I++){let A=_[I];if(!Number.isFinite(A)){ee=!1;continue}let D=z(o+(r-o)*(I/(s-1))),h=q(Y(A),-1e4,1e4);G+=(ee?"L":"M")+D.toFixed(1)+","+h.toFixed(1)+" ",ee=!0}M.setAttribute("d",G)};return c&&E.addEventListener("input",()=>{d=E.value,p=ks(d),T(),t(d)}),Ge(T),Ze(f,[[window,"resize"],[window,"twk-reflow"]],T),{el:f,get:()=>d,set:j=>{j!=null&&(d=String(j),E&&(E.value=d),a||(p=ks(d)),T())}}}de("plot",uu);we();we();we();var nn=Object.assign(Object.create(null),{}),Go={},du=e=>qe(e)||!nn[e]?null:Go[e]||(Go[e]=nn[e]().catch(t=>{throw delete Go[e],console.error(`[tweaks] control chunk "${e}" failed to load:`,t),t})),Jn=(e,t=new Set)=>{for(let n of e)if(t.add(n.type),n.children&&Jn(n.children,t),n.pages)for(let o of n.pages)Jn(o.children,t);return t},En=e=>{let t=[...Jn(e)].map(du).filter(Boolean);return t.length?Promise.all(t):null};function zt(e,t,n=0){if($t(e))return null;let o=fu(e,t,n);return o&&t&&typeof t=="object"&&(typeof t.render=="function"&&(o.render=t.render),t.disabled!=null&&(o.disabled=t.disabled),t.hint!=null&&(o.hint=String(t.hint)),t.persist===!1&&(o.persist=!1)),o}var va=e=>Array.isArray(e.options)&&{type:"radiogrid",options:e.options,value:e.value??ot(e.options[0]),cols:e.cols},vs=(e,t)=>e.label==null?t:String(e.label),xa=e=>typeof e=="function"?e:void 0,Ma=e=>typeof e=="string"&&e.trim()?e.trim().slice(0,12):void 0,xs={slider:e=>({value:e.value??e.min??0,min:e.min,max:e.max,step:e.step,soft:e.soft,unit:Ma(e.unit),format:xa(e.format),parse:xa(e.parse)}),number:e=>({value:e.value??0,min:e.min,max:e.max,step:e.step,soft:e.soft,unit:Ma(e.unit)}),checkbox:e=>({value:!!e.value}),radiogrid:va,segmented:va,list:e=>Array.isArray(e.options)&&{options:e.options,value:e.value??ot(e.options[0])},text:e=>({value:e.value??"",rows:e.rows,placeholder:e.placeholder}),spring:e=>{let t=ke(e.value)?e.value:e,n={stiffness:t.stiffness??300,damping:t.damping??26,mass:t.mass??1};Number.isFinite(+t.visualDuration)&&(n.visualDuration=+t.visualDuration),Number.isFinite(+t.bounce)&&(n.bounce=+t.bounce);let o=e.mode??t.mode;return(o==="time"||o==="physics")&&(n.mode=o),{value:n}},motion:e=>{let t=typeof e.value=="string"||Array.isArray(e.value)?{...e,curve:e.value}:ke(e.value)?e.value:e,n=zn.some(r=>t[r]!=null),o={curve:"ease",duration:300,...n?{}:{visualDuration:.5,bounce:.2}};for(let r of["mode","curve","duration",...zn])t[r]!=null&&(o[r]=t[r]);return o.mode!=="easing"&&o.mode!=="spring"&&(o.mode=n?"spring":"easing"),{value:o}},point:(e,t,n)=>{let o=[],r=(c,d)=>{let p=typeof d=="number"?d:typeof d=="string"&&d.trim()?+d:NaN;return Number.isFinite(p)?p:(o.push(c),0)},s=ke(e.value)&&!Array.isArray(e.value)?Object.keys(e.value).filter(c=>!$t(c)):[];if((!Array.isArray(e.components)||!e.components.length)&&s.length&&(e={...e,components:s.map(c=>({key:c}))}),!Array.isArray(e.components)||!e.components.length)return!1;let i=new Set,a=e.components.flatMap((c,d)=>{let p=c.label?String(c.label).toLowerCase():"",f=String(c.key??(($t(p)?"":p)||`c${d}`));if($t(f))return[];let l=f,k=2;for(;i.has(l);)l=`${f}-${k++}`;i.add(l);let L=ke(e.value)&&Ee(e.value,l)?r(l,e.value[l]):void 0;return[{...c,key:l,...L!==void 0&&{value:L}}]});return o.length&&ct("pointValue",n,o.join(", ")),a.length?{components:a,pad:e.pad,invertY:e.invertY,value:Object.fromEntries(a.map(c=>[c.key,c.value??0]))}:!1},buttongroup:e=>({buttons:e.buttons}),separator:()=>({}),tabs:(e,t)=>{if(!e.pages||typeof e.pages!="object"||!Object.keys(e.pages).length)return!1;let n=new Set;return{pages:Object.entries(e.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:ce()("tab","Tab"),children:Object.entries(r).map(([c,d])=>zt(c,d,t+1)).filter(Boolean)}})}}},pu=Object.assign(Object.create(null),{list:"options",radiogrid:"options",segmented:"options",point:"components",tabs:"pages"});function fu(e,t,n=0){if(n>64)return null;let o=yo(e),r=(s,i,a=o)=>({type:s,key:e,label:a,...i});if(ke(t)&&!Array.isArray(t)&&Ee(xs,t.type)){let s;try{s=xs[t.type](t,n,e)}catch(a){return console.error(`[tweaks] malformed "${t.type}" schema value for "${e}" \u2014 control skipped:`,a),null}if(s)return r(String(t.type),s,vs(t,o));let i=pu[t.type];if(Ee(t,i)||Ee(t,"value"))return console.error(`[tweaks] malformed "${t.type}" schema value for "${e}" \u2014 ${Ee(t,i)?`its ${i} can't be used`:`it needs ${i}${t.type==="point"?" or a { x, y } value":""}`}; control skipped`),null}else if(ke(t)&&!Array.isArray(t)&&typeof t.type=="string"&&t.type!=="folder"&&t.type!=="colorpicker"&&(nn[t.type]||qe(t.type))){let{type:s,label:i,...a}=t;return r(s,a,vs(t,o))}else if(ke(t)&&!Array.isArray(t)&&typeof t.type=="string"){let s=Ee(t,"value")||Array.isArray(t.options)||typeof t.action=="function";if(Promise.resolve().then(()=>($e(),cn)).then(i=>i.unknownType(`"${e}"`,t.type,[...Object.keys(xs),...Object.keys(nn),...To()],s?"control":"folder"),()=>{}),s)return null}return Array.isArray(t)&&Array.isArray(t[0])&&t[0].length===2&&typeof t[0][0]=="number"?r("interval",{value:t[0].map(Number),min:t[1],max:t[2],step:t[3]}):Array.isArray(t)&&t.length<=4&&typeof t[0]=="number"?r("slider",{value:t[0],min:t[1],max:t[2],step:t[3]}):typeof t=="number"?r("slider",{value:t}):typeof t=="boolean"?r("checkbox",{value:t}):Array.isArray(t)?r("list",{options:t,value:ot(t[0])}):ke(t)&&typeof t.action=="function"?r("button",{action:t.action},vs(t,o)):ke(t)&&Array.isArray(t.options)?r("list",{options:t.options,value:t.value??ot(t.options[0])}):Dn(t)?r("color",{value:t}):typeof t=="string"?r("text",{value:t}):ke(t)?r("folder",{children:Object.entries(t).filter(([s,i])=>!(s==="render"&&typeof i=="function")&&!((s==="disabled"||s==="hint")&&i!=null)).map(([s,i])=>zt(s,i,n+1)).filter(Boolean)}):null}var qo=new Set(["button","fpsgraph","monitor","buttongroup","separator"]);we();we();var Ea=Pe('<path class="twk-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="twk-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"/>',"twk-toolbar-btn__copy"),Sa=Pe('<path d="m5 14 3.5 3.5L19 6.5"/>',"twk-toolbar-btn__check",2.4),Ca=Pe('<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"/>'),Ms=e=>Pe('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',e,2.5),La=Ms("twk-chevron"),Ta=Pe('<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="twk-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"/>'),Aa=Pe('<path d="M18 6 6 18m12 0L6 6"/>',"",2.2),Es=Pe('<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 mu=3;function gu(e,t){let n=e.label,{min:o,max:r,step:s}=wo(e.min,e.max,e.step,[+e.value],n);e.soft||([o,r]=un(o,r,s));let i=(r-o)/s<=6,a=Number.isFinite(+e.value)?+e.value:o,c=e.soft&&!i?a:q(a,o,r),d=0,p=lt(s),f=b("div","twk-slider-wrap"),l=b("div","twk-slider"),k=b("div","twk-slider-hashmarks"),L=b("div","twk-slider-fill"),x=b("div","twk-slider-handle"),M=ie("span","twk-slider-label",n),E=b("span","twk-slider-value"),m=typeof e.unit=="string"?e.unit.trim():"",T=document.createTextNode(""),j=m?/^[%°]$/.test(m)?m:" "+m:"";E.append(T),m&&E.append(ie("span","twk-slider-unit",j));let J=e.format,g=e.parse,y=S=>{if(J)try{let C=J(S);if(typeof C=="string"&&C)return C}catch{}return S.toFixed(p)};l.append(k,L,x,M,E),f.append(l),l.tabIndex=0,l.setAttribute("role","slider"),l.setAttribute("aria-label",n),l.setAttribute("aria-valuemin",String(o)),l.setAttribute("aria-valuemax",String(r));let F=S=>Xt(S,o,s),_=i?Array.from({length:Math.max(0,Math.round((r-o)/s)-1)},(S,C)=>(C+1)*s/(r-o)*100):[];for(let S of _){let C=b("div","twk-slider-hashmark");C.style.left=S+"%",k.append(C)}let R=()=>{let S=q((c-o)/(r-o||1)*100,0,100),C=d?` + ${d.toFixed(1)}px`:"",he=`${S}%${C}`;L.style.width=d?`calc(${he})`:S+"%",x.style.left=`max(5px, calc(${he} - 9px))`;let ue=F(c),ae=y(ue);T.data=ae,l.setAttribute("aria-valuenow",String(ue)),l.setAttribute("aria-valuetext",ae+j);let ge=f.offsetWidth,Se=E.offsetWidth;if(ge){Se&&(M.style.maxWidth=Math.max(0,ge-Se-30)+"px");let Xe=Math.max(5,S/100*ge+d-9);l.classList.toggle("is-dodge",ko(M,E,Xe,3))}};R();let w=null,$=1,N=null,z=!0,Y,Q=null,G=null,ee=`width 0.34s ${Fr}`,I=`left 0.34s ${Fr}, opacity 0.15s, transform 0.2s ${jn}`,A=.2,D=S=>{if(!w)return c;let C=f.offsetWidth||w.width,he=q((S-w.left)/$/C,0,1);return q(o+he*(r-o),o,r)},h=(S,C=!0)=>{S=+S,Number.isFinite(S)&&(c=i?q(F(S),o,r):e.soft?S:q(S,o,r),R(),C&&t(F(c)))},K=Math.max(1,Math.round((r-o)/s)),oe=.2,Z=.3,te=520,B=27,O=S=>(S-o)/s,X=0,W=0,pe=0,me=!1,_e=null,Te=c,xe=0,Me=()=>{pe&&cancelAnimationFrame(pe),pe=0,xe=0},He=S=>{if(!l.isConnected){Me();return}let C=xe?Math.min((S-xe)/1e3,.05):1/60;xe=S;let he=f.offsetWidth||w&&w.width||1,ue=O(q(Te,o,r)),ae=q(Math.round(ue+oe),0,K),ge=me?ae+Z*q(ue-ae,-.5,.5):ae;if(Bt.matches)X=ge,W=0;else{let Se=C,Xe=1/240;for(;Se>1e-4;){let ut=Math.min(Xe,Se);Se-=ut;let on=te*(ge-X)-B*W;W+=on*ut,X+=W*ut,X<0&&(X=0,W=0),X>K&&(X=K,W=0)}}d=(X-ae)*s/(r-o||1)*he,c=q(o+ae*s,o,r),R(),ae!==_e&&(_e=ae,t(F(c))),!me&&Math.abs(W)<.004&&Math.abs(X-ae)<.004?(X=ae,W=0,d=0,R(),Me(),l.classList.remove("is-active")):pe=requestAnimationFrame(He)},Qe=S=>{X=O(c),W=0,me=!0,_e=Math.round(O(c)),Te=D(S),pe||(pe=requestAnimationFrame(He))};l.addEventListener("pointerdown",S=>{if(!E.classList.contains("is-editing")&&!(S.button!==0||N)){S.preventDefault(),l.focus({focusVisible:!1}),G=S.pointerId;try{S.target.setPointerCapture(S.pointerId)}catch{}clearTimeout(Y),l.style.transition="",N={x:S.clientX,y:S.clientY},z=!0,l.classList.add("is-active"),w=f.getBoundingClientRect(),$=w.width/(f.offsetWidth||w.width),i?(L.style.transition="",x.style.transition="",Qe(S.clientX)):(L.style.transition=ee,x.style.transition=I,h(D(S.clientX)))}}),l.addEventListener("pointermove",S=>{if(!(!N||S.pointerId!==G)){if(S.buttons===0){et();return}if(z&&Math.hypot(S.clientX-N.x,S.clientY-N.y)>mu&&(z=!1,l.classList.add("is-dragging"),i||(L.style.transition="",x.style.transition="")),!z)if(Mo(l,w,S.clientX),i)Te=D(S.clientX);else{let C;if(S.altKey){Q||(Q={x:S.clientX,v:c});let he=f.offsetWidth||w.width;C=q(Q.v+(S.clientX-Q.x)/he*(r-o)*A,o,r)}else Q=null,C=D(S.clientX);h(C)}}});let et=S=>{!N||S&&S.pointerId!==G||(i?(me=!1,l.classList.remove("is-dragging"),pe||(pe=requestAnimationFrame(He))):(Y=setTimeout(()=>{L.style.transition="",x.style.transition=""},360),l.classList.remove("is-active","is-dragging")),Eo(l),N=null,Q=null,G=null)};l.addEventListener("pointerup",et),l.addEventListener("pointercancel",et),l.addEventListener("lostpointercapture",et),xo(l,R),Ge(R),Ze(l,[[window,"resize"]],R),l.addEventListener("keydown",S=>{if(S.target!==l||N)return;if(S.key==="Enter")return S.preventDefault(),U();let C=Yt(S,c,s,o,r,(r-o)/10||s*10);C!=null&&(S.preventDefault(),i&&(Me(),d=0,l.classList.remove("is-active")),h(q(C,o,r)))});let Ct;E.addEventListener("mouseenter",()=>{Ct=setTimeout(()=>E.classList.add("is-editable"),800)}),E.addEventListener("mouseleave",()=>{clearTimeout(Ct),E.classList.contains("is-editing")||E.classList.remove("is-editable")}),E.addEventListener("pointerdown",S=>{S.pointerType&&S.pointerType!=="mouse"?(E.classList.add("is-editable"),S.stopPropagation()):E.classList.contains("is-editable")&&S.stopPropagation()});let U=()=>{if(E.classList.contains("is-editing"))return;let S=b("input","twk-slider-input");S.type="text",S.inputMode=g?"text":"decimal",bt(S),S.value=g?y(F(c)):F(c).toFixed(p);let C=S.value;S.style.width=C.length+1+"ch",E.classList.add("is-editing"),E.replaceWith(S),S.focus(),S.select();let he=()=>{S.replaceWith(E),E.classList.remove("is-editing","is-editable")},ue=()=>{let ae=S.value,ge=NaN;if(ae!==C)try{ge=g?g(ae):Number(ae.replace(m,"").trim()||NaN)}catch{}Number.isFinite(ge)&&h(e.soft?ge:q(ge,o,r)),he()};S.addEventListener("pointerdown",ae=>ae.stopPropagation()),S.addEventListener("blur",ue),S.addEventListener("keydown",ae=>{ae.key==="Enter"?(S.removeEventListener("blur",ue),l.focus(),ue()):ae.key==="Escape"&&(ae.stopPropagation(),S.removeEventListener("blur",ue),l.focus(),he())})};return E.addEventListener("click",()=>{E.classList.contains("is-editable")&&U()}),{el:f,set:S=>h(S,!1),get:()=>F(c),range:[o,r]}}function hu(e,t){let n=b("div","twk-row"),o=ce(),r=Vt([{value:"off",label:o("off","Off")},{value:"on",label:o("on","On")}],e.value?"on":"off",s=>t(s==="on"),e.label,"on");return n.append(ie("span","twk-row-label",e.label),r.el),{el:n,set:s=>r.set(s?"on":"off"),get:()=>r.get()==="on"}}function bu(e,t){let n=e.options||[],o=Math.min(3,Math.max(2,e.cols||(n.length<=3?n.length:n.length===4?2:3))),r=b("div",n.length>o?"twk-radiogrid is-grid":"twk-radiogrid"),s=b("div","twk-radiogrid-grid");s.style.setProperty("--twk-rg-cols",o),s.setAttribute("role","radiogroup"),s.setAttribute("aria-label",e.label);let i=e.value??ot(n[0]),a=n.map(p=>{let f=Kn("twk-radiogrid-btn",p,l=>d(l));return s.append(f),f}),c=()=>Hr(a,i),d=(p,f=!0)=>{p!=null&&p!==e.value&&!a.some(l=>l._twVal===p)||(i=p,c(),f&&t(p))};return s.addEventListener("keydown",p=>{let f=Co(a,i);if(f<0)return;let l=Zt(p.key,f,a.length,o);l<0||(p.preventDefault(),l!==f&&(d(a[l]._twVal),a[l].focus()))}),c(),r.append(ie("span","twk-radiogrid-label",e.label),s),{el:r,set:p=>d(p,!1),get:()=>i}}var yu=/^(?:#[0-9a-f]{3,8}|[a-z]+|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color|var)\([^()]*\))$/i,wu=Ms("twk-select-chevron");function ku(e,t){let n=e.value,o=e.options.map(m=>({value:ot(m),label:Or(m),color:m&&typeof m=="object"&&typeof m.color=="string"&&yu.test(m.color.trim())?m.color.trim():""})),r=b("div","twk-select"),s=ye("twk-select-trigger");s.setAttribute("aria-haspopup","listbox"),s.setAttribute("aria-expanded","false");let i=b("span","twk-select-right"),a=m=>`linear-gradient(${m}, ${m}), var(--twk-checker)`,c=m=>{let T=b("span","twk-option-swatch");return T.style.background=a(m),T},d=b("span","twk-option-swatch"),p=b("span","twk-select-value");i.append(d,p),i.insertAdjacentHTML("beforeend",wu),s.append(ie("span","twk-select-label",e.label),i);let f=b("div","twk-select-dropdown");f.setAttribute("role","listbox");let l=o.map(m=>{let T=ye("twk-select-option");return T.setAttribute("role","option"),m.color&&T.append(c(m.color)),T.append(ie("span","twk-option-label",m.label)),T.dataset.value=String(m.value),T.addEventListener("click",()=>{L(m.value),E.close()}),f.append(T),T});r.append(s,f);let k=()=>{let m=o.find(T=>T.value===n);p.textContent=m?.label??n,d.style.display=m?.color?"":"none",m?.color&&(d.style.background=a(m.color)),l.forEach(T=>{let j=T.dataset.value===String(n);T.dataset.selected=String(j),T.setAttribute("aria-selected",String(j))})},L=(m,T=!0)=>{m!=null&&m!==e.value&&!o.some(j=>j.value===m)||(n=m,k(),T&&t(m))},x="",M=0,E=Ke(r,s,f,{fallbackH:200,movable:!1,onOpen:()=>{x="",(l.find(m=>m.dataset.value===String(n))||l[0])?.focus()}});return s.addEventListener("keydown",m=>{!E.isOpen()&&(m.key==="ArrowDown"||m.key==="ArrowUp")&&(m.preventDefault(),E.open())}),f.addEventListener("keydown",m=>{let T=l.indexOf(Ae(f)),j=T,J=!!x&&performance.now()-M<600;if(m.key==="ArrowDown")j=T<0?0:Math.min(l.length-1,T+1);else if(m.key==="ArrowUp")j=T<0?l.length-1:Math.max(0,T-1);else if(m.key==="Home")j=0;else if(m.key==="End")j=l.length-1;else if(m.key.length===1&&(m.key!==" "||J)&&!m.ctrlKey&&!m.metaKey&&!m.altKey&&!m.isComposing){let g=m.key.toLowerCase();x=(J?x:"")+g,M=performance.now();let y=x===g.repeat(x.length/g.length),F=y?g:x,_=R=>o.findIndex((w,$)=>$>=R&&String(w.label).toLowerCase().trimStart().startsWith(F));if(j=_(y?T+1:T),j<0&&(j=_(0)),j<0&&m.key!==" ")return}else return;m.preventDefault(),l[j]?.focus()}),k(),{el:r,set:m=>L(m,!1),get:()=>n}}function vu(e){let t=ie("button","twk-button",e.label);return t.addEventListener("click",()=>typeof e.action=="function"&&e.action()),Nt(t)}function xu(e){let t=b("div","twk-row twk-buttongroup");e.label&&t.append(ie("span","twk-row-label",e.label));let n=b("div","twk-buttongroup-btns"),o=Array.isArray(e.buttons)?e.buttons.map(r=>[r.label??ce()("button","Button"),r.action]):Object.entries(e.buttons||{});for(let[r,s]of o){let i=ie("button","twk-buttongroup-btn",r);i.addEventListener("click",()=>typeof s=="function"&&s()),n.append(i)}return t.append(n),Nt(t)}var Mu=()=>Nt(b("div","twk-separator"));function Eu(e,t){let n=c=>c==null?"":typeof c=="object"?Bn(c):String(c),o=n(e.value),r=e.rows>0,s=b("div",r?"twk-row twk-row-multiline":"twk-row"),i=b(r?"textarea":"input",r?"twk-text twk-textarea":"twk-text");r?i.rows=e.rows:i.type="text",i.value=o,bt(i),e.placeholder&&(i.placeholder=e.placeholder),i.addEventListener("input",()=>{o=i.value,t(o)});let a=()=>{let c=i.scrollHeight-i.clientHeight>1;i.classList.toggle("is-clip-top",c&&i.scrollTop>1),i.classList.toggle("is-clip-bottom",c&&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(ie("span","twk-row-label",e.label),i),{el:s,set:c=>{o=n(c),i.value=o,r&&a()},get:()=>o}}function Zn(e){let t=b("div","twk-folder"),n=ye("twk-folder-header");n.setAttribute("aria-expanded","true"),n.append(ie("span","twk-folder-title",e.label)),n.insertAdjacentHTML("beforeend",La);let o=b("div","twk-folder-body"),r=b("div","twk-controls");o.append(r),t.append(n,o);let s=i=>hn(t,n,o,i);return n.addEventListener("click",()=>s(!t.classList.contains("is-collapsed"))),{el:t,body:r,setCollapsed:s}}function Sn(e,t){let n=qe(e.type);if(!n)return null;try{return n(e,t)}catch(o){return console.error("[tweaks] control failed to build:",e&&e.type,o),null}}de("slider",gu);de("checkbox",hu);de("radiogrid",bu);de("list",ku);de("button",vu);de("buttongroup",xu);de("separator",Mu);de("text",Eu);de("folder",Zn);we();var Wo=(e,t,n)=>{let o=ye("twk-toolbar-btn"+(e?" "+e:""),t);return o.title=n,o.setAttribute("aria-label",n),o},Yo=(e,t=ce())=>{let n=Wo("twk-toolbar-btn--swap",`<span class="twk-toolbar-btn__icons">${Ea}${Sa}</span>`,t("copy","Copy values (\u21E7: changed only)"));return n.addEventListener("click",async o=>{if(n.disabled)return;let[r,s]=e(o.shiftKey);if(!s)return xt(t("nothingChanged","Nothing has changed"));if(!await Ls(r))return xt(t("copyFailed","Copy failed"));Su(n),xt(s>0?t("copiedChanged",i=>`${i.n} changed value${i.n===1?"":"s"} copied`,{n:s}):t("copied","Values copied"))}),n},Jo=(e,t=ce())=>{let n=Wo("twk-toolbar-btn--reset",Ca,t("reset","Reset"));return n.addEventListener("click",()=>{n.disabled||(Ss(n),e())}),n},Su=e=>{e.classList.add("is-copied"),clearTimeout(e._t),e._t=setTimeout(()=>e.classList.remove("is-copied"),1400)},Ss=e=>{let t=e.querySelector("svg");e._spinSettle||(e._spinSettle=()=>{clearTimeout(e._t),e.classList.remove("is-spinning"),t.style.transition="none",t.style.setProperty("--twk-spin","0deg"),t.getBoundingClientRect(),t.style.transition=""},t.addEventListener("transitionend",o=>{o.propertyName==="transform"&&e.classList.contains("is-spinning")&&performance.now()-e._spinT>250&&e._spinSettle()})),e._spinT=performance.now(),t.style.setProperty("--twk-spin",`${(parseFloat(t.style.getPropertyValue("--twk-spin"))||0)-360}deg`),e.classList.add("is-spinning"),clearTimeout(e._t);let n=()=>{t.getAnimations&&t.getAnimations().length?e._t=setTimeout(n,250):e._spinSettle()};e._t=setTimeout(n,600)},Ue=null,Uo=0,Xo=null,Pa=e=>{e.key==="Escape"&&(e.stopPropagation(),Qn())},Qn=e=>{e&&Xo&&!e.contains(Xo)||(clearTimeout(Uo),document.removeEventListener("keydown",Pa),Ue&&Ue.classList.remove("is-open"))};function Cu(e,t){Ue||(Ue=b("div","twk-tip twk-portal"),Ue.setAttribute("role","tooltip")),Fn(Ue,e),clearTimeout(Uo),Ue.textContent=t,dn(Ue,e);let n=Ue.classList.contains("is-open");Ue.style.visibility="hidden",Ue.classList.add("is-open"),Rr(e,Ue,{align:"center",prefer:"above",gap:8}),Ue.style.visibility="",document.addEventListener("keydown",Pa),Xo=e,n||requestAnimationFrame(function o(){if(Ue.classList.contains("is-open")){if(!Xo.isConnected)return Qn();requestAnimationFrame(o)}})}function Oa(){Ue&&(clearTimeout(Uo),Uo=setTimeout(Qn,80))}var Cs=".twk-slider-label, .twk-row-label, .twk-select-label, .twk-trigger-label, .twk-radiogrid-label, .twk-field-label, .twk-folder-title, .twk-fps-label, .twk-plot-label, .twk-spring-label, .twk-bezier-label";function Cn(e,t){let n=e.querySelector(Cs)||e;if(n===e&&e.classList.contains("twk-separator"))return;let o=n.closest("button"),r=o?b("span","twk-hint",Es):ye("twk-hint",Es),s=()=>Cu(r,t);if(o){r.setAttribute("aria-hidden","true");let i=o.getAttribute("aria-description");o.setAttribute("aria-description",i?`${i}. ${t}`:t)}else r.setAttribute("aria-label",t),r.addEventListener("focus",s),r.addEventListener("blur",Oa),r.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&i.stopPropagation()});r.addEventListener("pointerenter",s),r.addEventListener("pointerleave",Oa),r.addEventListener("pointerdown",i=>i.stopPropagation()),r.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation()}),n.appendChild(r)}async function Ls(e){try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.top="-9999px",document.body.appendChild(t),t.focus(),t.select();let n=!1;try{n=document.execCommand("copy")}catch{}return document.body.removeChild(t),n}we();var Ra=(e,t,n,o,r,s)=>{let a=[],c=0,d=!1,p=0,f=(g,y)=>{if(g===y)return!0;if(!g||!y||typeof g!="object"||typeof y!="object"||Array.isArray(g)!=Array.isArray(y))return!1;let F=Object.keys(g).length==Object.keys(y).length;for(let _ in g)g[_]===y[_]?g[_]=y[_]:f(g[_],y[_])||(F=!1);return F},l=()=>{p=0;let g=t();f(g,a[c])||(a=a.slice(0,c+1),a.push(g),a.length>200&&(a=a.slice(a.length-200)),c=a.length-1)},k=()=>{d||(clearTimeout(p),p=setTimeout(l,350))},L=()=>{p&&(clearTimeout(p),l())};s(k);let x=g=>{d=!0,n(a[g]),d=!1,c=g},M=()=>{L(),c>0&&x(c-1)},E=()=>{L(),c<a.length-1&&x(c+1)},m=()=>e.matches(":hover")||e.contains(Ae(e));return{undo:M,redo:E,onKey:g=>{if(!m()||!(g.metaKey||g.ctrlKey)||r(g.composedPath()[0]))return;let y=g.key.toLowerCase();y==="z"?(g.preventDefault(),g.shiftKey?E():M()):y==="y"&&(g.preventDefault(),E())},flush:L,arm:()=>{a=[t()],c=0},patch:(g,y,F)=>{let _=g[g.length-1],R=JSON.parse(JSON.stringify(y??null)),w=JSON.parse(JSON.stringify(F??null));for(let $ of a){let N=o($,g.slice(0,-1));N&&typeof N=="object"&&Ee(N,_)&&!rt(N[_],R)&&(N[_]=w)}}}};var Tn=null,to=new Map,St=null,no=null,er=null;function Ku(e,t,n={}){let o=Mt(n.strings,()=>Object.entries(t).map(([u,v])=>zt(u,v)).filter(Boolean)),r=ce(n.strings),s={},i,a=[],c=new Map,d=new Set,p=new Set,f=[],l=!1,k=!1,L=[],x=!1,M=-1,E=u=>{l||x||(k?u():L.push(u))},m=null,T={},j=(u,v)=>v===void 0?null:v,J=(u,v)=>{let P=Object.create(null);for(let H of u)if(Ee(v,H.key)){let V=v[H.key];if(H.type==="folder")P[H.key]=J(H.children,V);else if(H.type==="tabs"){let re=P[H.key]=Object.create(null);for(let fe of H.pages)Ee(V,fe.key)&&(re[fe.key]=J(fe.children,V[fe.key]))}else P[H.key]=V}return P},g=()=>JSON.parse(JSON.stringify(J(o,s),j)),y=n.persist?`tw:${n.persist===!0?e:n.persist}`:null,F=y?`${y}:presets`:null,_=!!y;if(y){let u=to.get(y)||0;u&&ct("sharedKey",y.slice(3)),to.set(y,u+1)}let R=()=>{if(!_)return;_=!1;let u=(to.get(y)||1)-1;u?to.set(y,u):to.delete(y)},w=u=>{try{return JSON.parse(localStorage.getItem(u)||"null")}catch{return null}},$=(u,v)=>{try{return localStorage.setItem(u,JSON.stringify(v)),!0}catch{return!1}},N=(u,v)=>u?.v===1?u[v]:null,z=u=>$(y,{v:1,values:u}),Y=u=>$(F,{v:1,presets:u}),Q=(u,v)=>v.reduce((P,H)=>P!=null&&Ee(P,H)?P[H]:void 0,u),G=(u,v)=>{let P=Q(u,v.path.slice(0,-1));return!P||typeof P!="object"||!Ee(P,v.key)?!1:(Reflect.deleteProperty(P,v.key),!0)},ee=u=>{for(let v of a)v.persist||G(u,v);return u},I=null,A=null,D=!1,h=new Map,K=u=>typeof u=="string"&&u.startsWith("tw-image:"),oe=u=>typeof u=="string"&&u.startsWith("data:"),Z=()=>a.filter(u=>u.m.type==="image"),te=new Map,B=(u,v)=>{te.get(u)!==v&&(te.set(u,v),u.note?.(r("notSaved","Not saved")))},O=u=>{let v=D&&I?w(y):void 0;for(let P of Z()){let H=Q(u,P.path.slice(0,-1)),V=H?.[P.key],re=h.get(P);if(re&&H&&Ee(H,P.key)){if(!rt(re[1],V)){H[P.key]=re[0];continue}h.delete(P)}if(!oe(V)||v===void 0)continue;let fe=I.save(P,V,v);fe&&(H[P.key]=fe)}return u},X=(u,v,P)=>l||rt(v,u.get())||!et(u,P)?!1:(Tt?.patch(u.path,v,u.get()),!0),W=(u,v=[])=>{if(u&&typeof u=="object")for(let P of Z()){let H=Q(u,P.path);if(!K(H))continue;let V=A?.get(H);V?Q(u,P.path.slice(0,-1))[P.key]=V:(G(u,P),v.push([P,H]))}return u},pe=(u,v)=>{let P=[];pr(W(u,P),v);for(let[H,V]of P){let re=[V,H.get()];h.set(H,re),!(!D||!I)&&I.fetch(V).then(fe=>{h.get(H)===re&&(h.delete(H),fe&&X(H,re[1],fe)&&(i=void 0,Me()))})}},me=()=>{if(D=!0,!k||l||x){h.clear();return}let u=!1;for(let[v,[P,H]]of[...h]){let V=A?.get(P);V&&X(v,H,V)&&(u=!0)}I&&h.clear(),u?(i=void 0,Me()):I&&xe()},_e=()=>I?.prune([w(y),_t()]),Te=()=>{},xe=y?(()=>{let u=0,v=()=>{u=0;let P=O(ee(g()));if(!z(P)){let H=Z().filter(V=>oe(Q(P,V.path)));if(!H.length)return;for(let V of H)B(V,Q(P,V.path)),G(P,V);if(!z(P))return}_e()};return Te=v,f.push(()=>{u&&(clearTimeout(u),v())}),()=>{clearTimeout(u),u=setTimeout(v,150)}})():()=>{},Me=(u,v=i)=>{(u?p:d).forEach(P=>{try{P(s,v)}catch(H){console.error("[tweaks] listener threw:",H)}}),l||xe()},He=u=>typeof u=="function"||typeof u=="symbol"||typeof u=="bigint",Qe=(u,v)=>{if(He(v))throw new TypeError(`a ${typeof v} is not a control value`);h.delete(u),u.set(v),u.target[u.key]=u.get()},et=(u,v)=>{try{return Qe(u,v),!0}catch(P){return console.error(`[tweaks] restoring "${u.path.join(".")}" failed \u2014 value skipped:`,P),!1}},Ct=u=>{h.delete(u),Lo(u,u.raw,u.def),u.target[u.key]=u.get()},U=!1,S=()=>{if(typeof n.onReset=="function"&&!U){U=!0;try{return n.onReset()}finally{U=!1}}for(let u of a)try{Ct(u)}catch(v){console.error(`[tweaks] resetting "${u.path.join(".")}" failed \u2014 control skipped:`,v)}i=void 0,Me()},C=b("div","twk-panel");C.dataset.mode="inline";let he=u=>C.setAttribute("aria-label",u.trim()||r("panel","Tweaks"));C.setAttribute("role","region"),he(e),Pr(C);let ue=b("div","twk-header"),ae=ye("twk-header-toggle");ae.setAttribute("aria-expanded","true");let ge=e,Se=ie("span","twk-title",ge);ae.append(Se);let Xe=b("div","twk-toolbar"),ut=()=>{let u={};for(let v of a)rt(v.get(),v.def)&&(u[v.path.join(".")]=v.get());return JSON.parse(JSON.stringify(u,j))},on=Yo(u=>{if(!u)return[JSON.stringify(g(),null,2),-1];let v=ut();return[JSON.stringify(v,null,2),Object.keys(v).length]},r),oo={panel:C,entries:a,fromJSON:u=>{Tt?.flush(),Ht.fromJSON(u),Tt?.flush()},announce:xt,alive:()=>!l,tr:r},An=Jo(S,r),at=null;y&&n.presets!==!1&&(at=Wo("",Ta,r("presets","Presets")),at.setAttribute("aria-haspopup","menu"),at.setAttribute("aria-expanded","false"),Xe.append(at)),Xe.append(on,An),ue.append(ae),n.toolbar!==!1&&ue.append(Xe);let yt=[on,An,at].filter(Boolean);for(let u of yt)u.disabled=!0;let dt=!1,pt=!1;ue.addEventListener("click",u=>{pt&&(pt=!1,u.preventDefault(),u.stopPropagation())},!0);let wt=()=>hn(C,ae,On,!C.classList.contains("is-collapsed"),io);ae.addEventListener("click",wt);let Lt=!1;ue.addEventListener("pointerdown",u=>{Lt=u.target===ue||ae.contains(u.target)},!0),ue.addEventListener("click",u=>{u.target===ue&&Lt&&!u.defaultPrevented&&wt()});let On=b("div","twk-body"),Ft=b("div","twk-controls");On.append(Ft),C.append(ue,On);let We=Vn(C,n.shadow),ze=We.box,kt=Nr(n.theme);Jt(C,kt),C._twTheme=kt;let ft=n.draggable!==!1,Ye=8,ro=28,Ts=typeof n.floating=="object"&&n.floating?n.floating:null,As=()=>document.compatMode==="CSS1Compat"?document.documentElement:null,Ja=()=>As()?.clientWidth||window.innerWidth,tr=()=>As()?.clientHeight||window.innerHeight,nr=()=>({maxX:Math.max(Ye,Ja()-C.offsetWidth-Ye),maxY:Math.max(Ye,tr()-C.scrollHeight-1-rn)}),so=y?`${y}:pos`:null,or=ft&&so?w(so):null,rr=or&&typeof or=="object"?or:null,Os=rr||Ts||{x:16,y:16},sr=u=>{let v=parseFloat(u);return v>=0?v:16},ir=sr(Os.x),ar=sr(Os.y),Be=ir,Ie=ar,Ps=!!rr,rn=Ye,Rs=()=>{let u=parseFloat(getComputedStyle(C).getPropertyValue("--twk-float-gap"));rn=u>=0?u:n.floating&&!Ps?sr(Ts?.y):Ye},Gt=()=>{let u=C.style;u.setProperty("--twk-float-x",Be+"px"),u.setProperty("--twk-float-y",Ie+"px"),u.setProperty("--twk-float-max-h",`calc(100dvh - ${Ie+rn}px)`)},Ns=()=>{Rs();let{maxX:u,maxY:v}=nr();if(ft){Be=q(Be,Ye,u),Ie=q(Ie,Ye,v);return}Be=q(ir,Math.min(Ye,ir),u);let P=tr()-Math.min(C.scrollHeight+1,tr()/2),H=Math.min(1,P/(ar+rn||1));Ie=Math.round(ar*H),rn=Math.round(rn*H)},io=()=>{!l&&C.dataset.mode==="floating"&&C.isConnected&&(Ns(),Gt())};(ft||n.floating)&&(n.floating||rr)&&(C.dataset.mode="floating",Ns(),Gt(),requestAnimationFrame(io));let ao=u=>{Ct(u),i=u.path.join("."),Me()},Za=(u,v)=>{let P=u.querySelector(".twk-slider-value")||u.querySelector(Cs)||u;P.classList.add("twk-resettable"),P.title=r("resetHint","Double-click or hold to reset");let H=0,V=0,re=0,fe=!1,se=()=>{H&&(clearTimeout(H),H=0,P.classList.remove("twk-reset-holding"))};P.addEventListener("pointerdown",ne=>{ne.stopPropagation(),fe=!1,!(ne.pointerType!=="touch"&&ne.pointerType!=="pen")&&(V=ne.clientX,re=ne.clientY,P.classList.add("twk-reset-holding"),H=setTimeout(()=>{H=0,P.classList.remove("twk-reset-holding","is-editable"),fe=!0,ao(v)},500))}),P.addEventListener("pointermove",ne=>{H&&Math.abs(ne.clientX-V)+Math.abs(ne.clientY-re)>8&&se()}),P.addEventListener("pointerup",se),P.addEventListener("pointercancel",se),P.addEventListener("pointerleave",se),P.addEventListener("contextmenu",ne=>{fe&&ne.preventDefault()}),P.addEventListener("click",ne=>{fe&&(ne.preventDefault(),ne.stopImmediatePropagation(),fe=!1)},!0),P.addEventListener("dblclick",ne=>{P===u&&ne.target.closest?.("input, textarea")||(ne.preventDefault(),ne.stopPropagation(),ao(v))}),P.classList.contains("twk-slider-value")&&u.addEventListener("dblclick",ne=>{let Re=ne.target;Re.classList?.contains("twk-slider-input")&&(ne.preventDefault(),ne.stopPropagation(),Re.blur(),ao(v))}),u.addEventListener("keydown",ne=>{!ne.altKey||ne.metaKey||ne.ctrlKey||ne.key!=="Backspace"&&ne.key!=="Delete"||(ne.preventDefault(),ne.stopPropagation(),ne.target.classList?.contains("twk-slider-input")&&ne.target.blur(),ao(v))})},lr=[],cr,Qa=(u,v)=>!u._hid==!v?!1:(u._hid=v,cr?cr(u,v):u.classList.toggle("twk-cond-hidden",v),!v),ur=(u,v)=>{v.hint&&Cn(u,v.hint),(v.render||v.disabled!=null)&&lr.push({node:u,m:v})},lo=[],co=[],el=u=>{typeof u.destroy=="function"&&f.push(u.destroy)},dr=(u,v,P,H=[])=>{for(let V of v){if(V.type==="tabs"){let Re={};P[V.key]=Re;let Ce=qe("tabs"),tt=Ce&&Ce(V);if(!tt)continue;co.push({path:[...H,V.key],ctrl:tt,pageKeys:V.pages.map(vt=>vt.key)}),V.pages.forEach((vt,Je)=>{let gt={};Re[vt.key]=gt,dr(tt.bodies[Je],vt.children,gt,[...H,V.key,vt.key])}),ur(tt.el,V),u.append(tt.el);continue}if(V.type==="folder"){let Re={};P[V.key]=Re;let Ce=Zn(V);lo.push({path:[...H,V.key],el:Ce.el,setCollapsed:Ce.setCollapsed}),Pn.set(Ce.el,{kind:"folder",path:[...H,V.key],label:V.label}),dr(Ce.body,V.children,Re,[...H,V.key]),ur(Ce.el,V),u.append(Ce.el);continue}let re=!qo.has(V.type),fe=[...H,V.key].join("."),se,ne=Sn(V,re?Re=>{rt(P[V.key],Re)&&(se&&h.delete(se),P[V.key]=Re,i=fe,Me())}:()=>{});if(ne){if(el(ne),re||c.set(fe,V.type),re){let Re=ne.get();Ee(P,V.key)&&ne.set(P[V.key]),P[V.key]=ne.get(),se={target:P,key:V.key,set:ne.set,get:ne.get,raw:V.value,def:Re,path:[...H,V.key],persist:V.persist!==!1,m:V,el:ne.el,note:ne.note,range:ne.range},a.push(se),Za(ne.el,se),Pn.set(ne.el,{kind:"row",entry:se,label:V.label})}ur(ne.el,V),u.append(ne.el)}}},pr=(u,v)=>{if(!(!u||typeof u!="object")){for(let P of a){let H=Q(u,P.path);H!==void 0&&et(P,H)}i=void 0,Me(v)}},_t=()=>{let u=F?N(w(F),"presets"):null;return Object.assign(Object.create(null),u&&typeof u=="object"?u:{})},$s=u=>{let v=_t();return v[u]=O(g()),Y(v)},Fs=u=>{let v=_t();v[u]&&pe(v[u])},_s=u=>{let v=_t();delete v[u],Y(v)&&_e()},uo=u=>u.map(v=>String(v).replace(/~/g,"~1").replace(/\./g,"~0")).join("."),tl=()=>{let u={};if(lo.length){let v={};for(let P of lo)v[uo(P.path)]=P.el.classList.contains("is-collapsed");u.folders=v}if(co.length){let v={};for(let P of co)v[uo(P.path)]=P.pageKeys[P.ctrl.active()]??null;u.tabs=v}return u},nl=u=>{if(!(!u||typeof u!="object")){if(u.folders)for(let v of lo){let P=u.folders[uo(v.path)];typeof P=="boolean"&&v.setCollapsed(P)}if(u.tabs)for(let v of co){let P=v.pageKeys.indexOf(u.tabs[uo(v.path)]);P>=0&&P!==v.ctrl.active()&&v.ctrl.activate(P)}}};if(ft||n.floating){ft&&(C.dataset.draggable="true");let u=()=>{if(C.dataset.mode==="floating")return;let le=C.getBoundingClientRect();Be=le.left,Ie=le.top,ze.parentNode&&(m=b("span","twk-lift-slot"),m.style.width=le.width+"px",m.style.height=le.height+"px",m.setAttribute("aria-hidden","true"),ze.before(m),ze._twSlot=m),Jt(C,null);let ve=getComputedStyle(C),je=ze.closest("[lang]")?.getAttribute("lang"),Ot={};for(let Ve of["font-family","font-size","font-weight","font-style","font-stretch","font-variant","font-feature-settings","font-variation-settings","font-kerning","line-height","letter-spacing","word-spacing","text-transform","text-align","color","direction",...Array.from(ve).filter(hr=>hr.startsWith("--twk-"))])Ot[Ve]=ve.getPropertyValue(Ve);In(C,C),document.body.appendChild(ze);for(let Ve in Ot)ve.getPropertyValue(Ve)!==Ot[Ve]&&C.style.setProperty(Ve,T[Ve]=Ot[Ve]);if(je&&ze.closest("[lang]")?.getAttribute("lang")!==je&&(C.lang=je),Jt(C,kt),C.dataset.mode="floating",Gt(),m&&typeof MutationObserver=="function"){let Ve=new MutationObserver(()=>{m&&!m.isConnected&&(Ve.disconnect(),m=null,ze.remove())});Ve.observe(document.documentElement,{childList:!0,subtree:!0}),f.push(()=>Ve.disconnect())}},v=()=>{Tn&&Tn!==C&&Tn.classList.remove("is-raised"),C.classList.add("is-raised"),Tn=C},P=()=>{Ps=!0,u(),v(),Rs()},H=(le,ve,je,Ot)=>{let{maxX:Ve,maxY:hr}=nr();Be=q(le+je,Ye,Ve),Ie=q(ve+Ot,Ye,hr),Gt()},V=()=>{so&&$(so,{x:Be,y:Ie})},re=null,fe=0,se=0,ne=0,Re=0,Ce=0,tt=le=>{for(let[ve,je]of[["pointermove",Je],["pointerup",gt],["pointercancel",gt]])le?document.addEventListener(ve,je,!0):document.removeEventListener(ve,je,!0);le?document.addEventListener("keydown",vt,!0):document.removeEventListener("keydown",vt,!0)},vt=le=>{if(le.key!=="Escape"||re===null)return;le.preventDefault(),le.stopPropagation();let ve=re;re=null,tt(!1);try{ue.releasePointerCapture(ve)}catch{}dt&&(Be=ne,Ie=Re,Gt()),C.classList.remove("is-dragging"),pt=!0,document.addEventListener("pointerup",()=>setTimeout(()=>{pt=!1},0),{capture:!0,once:!0})};ft&&ue.addEventListener("pointerdown",le=>{if(!(le.button!==0||re!==null||le.target.closest(".twk-toolbar, input, textarea, select"))&&(re=le.pointerId,fe=le.clientX,se=le.clientY,dt=!1,tt(!0),C.classList.contains("is-snapping"))){clearTimeout(Ce);let ve=getComputedStyle(C);Be=parseFloat(ve.left)||Be,Ie=parseFloat(ve.top)||Ie,C.classList.remove("is-snapping"),Gt()}}),ft&&ue.addEventListener("keydown",le=>{if(le.target!==ae||!le.altKey||le.metaKey||le.ctrlKey)return;let ve=le.shiftKey?50:10,je=le.key==="ArrowRight"?ve:le.key==="ArrowLeft"?-ve:0,Ot=le.key==="ArrowDown"?ve:le.key==="ArrowUp"?-ve:0;if(!je&&!Ot)return;le.preventDefault(),le.stopPropagation();let Ve=C.dataset.mode!=="floating";P(),Ve&&ae.focus({preventScroll:!0}),H(Be,Ie,je,Ot),V()});let Je=le=>{if(le.pointerId!==re)return;if(le.buttons===0){gt(le);return}let ve=le.clientX-fe,je=le.clientY-se;if(!dt){if(Math.hypot(ve,je)<(le.pointerType==="mouse"?6:10))return;dt=!0,P(),ne=Be,Re=Ie;try{ue.setPointerCapture(re)}catch{}C.classList.add("is-dragging")}H(ne,Re,ve,je)},gt=le=>{if(le.pointerId===re){try{ue.releasePointerCapture(re)}catch{}if(re=null,tt(!1),pt=dt,pt&&setTimeout(()=>{pt=!1},0),dt){let{maxX:ve,maxY:je}=nr();Be<=Ye+ro?Be=Ye:Be>=ve-ro&&(Be=ve),Ie<=Ye+ro?Ie=Ye:Ie>=je-ro&&(Ie=je),clearTimeout(Ce),C.classList.add("is-snapping"),Ce=setTimeout(()=>C.classList.remove("is-snapping"),340),Gt(),V()}C.classList.remove("is-dragging")}};ue.addEventListener("lostpointercapture",gt),f.push(()=>tt(!1))}let ol=()=>{(ft||n.floating)&&(io(),f.push(Ze(C,[[window,"resize"]],io)))};if(at){let u=at,v,P=!1,H=()=>v||(v=Promise.resolve().then(()=>($a(),Na)).then(se=>{if(l)throw 0;return P=!0,se.presetsMenu(u,()=>Object.keys(_t()),$s,Fs,_s,xt,Aa,r)},se=>{throw v=void 0,se!==0&&console.error("[tweaks] presets:",se),se}));for(let se of["pointerenter","focus"])u.addEventListener(se,()=>{H().catch(()=>{})},{once:!0});let V=!1,re=se=>{(se.type==="keydown"?se.key==="Escape":!se.composedPath().includes(u))&&(V=!1)},fe=se=>{for(let ne of["pointerdown","focusin","keydown"])(se?document.addEventListener:document.removeEventListener).call(document,ne,re,!0)};u.addEventListener("click",()=>{P||u.disabled||V||(V=!0,fe(!0),H().then(se=>{V&&se.open()},()=>{}).finally(()=>{V=!1,fe(!1)}))})}let Tt=n.undo?Ra(C,g,pr,Q,u=>mr(u),u=>{d.add(u),p.add(u)}):null,Pn=new Map,rl=u=>{for(;u&&u!==C&&C.contains(u);u=u.parentElement){let v=Pn.get(u);if(v)return v}},sl=u=>{for(;u&&u!==C;u=u.parentElement)if(Pn.get(u)?.kind==="row")return u},fr=u=>!!(u.closest(".twk-cond-hidden, .twk-tabs-page:not([data-active=true])")||u.parentElement?.closest(".is-collapsed")),mt,Hs=u=>{let v=u.composedPath()[0];!C.contains(v)&&!v.closest?.(".twk-portal")&&At()},At=()=>{mt&&(mt[0].classList.remove("is-picked"),mt=void 0,document.removeEventListener("pointerdown",Hs,!0),St?.[0]===C&&(St=null))},il=(u,v)=>{St&&St[0]!==C&&St[1](),At(),mt=[u,v],St=[C,At],u.classList.add("is-picked"),document.addEventListener("pointerdown",Hs,!0);let P=[...u.querySelectorAll('button:not(:disabled):not([tabindex="-1"]), [tabindex="0"]')].find(H=>!H.closest(".twk-hint, .twk-portal, [inert]"));P?P.focus({preventScroll:!0,focusVisible:!1}):Ae(C)?.blur?.(),document.getSelection?.()?.removeAllRanges()};f.push(At),C.addEventListener("pointerdown",u=>{let v=u.target;if(sl(v)||v.closest(".twk-header, .twk-folder-header, button, input, textarea, select")){mt?.[0].contains(v)||At();return}if(u.button!==0||u.pointerType==="touch")return At();let P;for(let[H,V]of Pn){let re=(V.kind==="folder"?H.firstElementChild:H).getBoundingClientRect();re.height&&u.clientY>=re.top&&u.clientY<re.bottom&&!fr(H)&&(P=[H,V])}if(!P)return At();u.preventDefault(),il(...P)},!0);let mr=u=>!!(u&&u.matches&&(u.matches("input, textarea, select")||u.isContentEditable)),al=u=>{if(u.key==="Escape"){mt&&(u.stopPropagation(),At());return}if(!(u.metaKey||u.ctrlKey)||u.altKey||u.repeat||mr(u.composedPath()[0]))return;let v=u.key.toLowerCase();if(v!=="c"&&v!=="v")return;St&&!St[0].isConnected&&St[1](),mt&&fr(mt[0])&&At();let P=Ae(C),H=mt?mt[1]:St||!P||fr(P)?void 0:rl(P),V=C.getRootNode();if(!H||v==="c"&&String((V.getSelection?V:document).getSelection?.()||""))return;let re=v==="c"?JSON.stringify(H.kind==="row"?H.entry.get():Q(g(),H.path),j,2):"",fe=Je=>{l||xt(Je?r("rowCopied","{label} copied",{label:H.label}):r("copyFailed","Copy failed"))},se=mt?.[0],ne=Ae(C),Re=!!ne?.matches(":focus-visible");if(!no){no=b("textarea","twk-sr"),no.tabIndex=-1,no.setAttribute("aria-hidden","true");for(let Je of["copy","paste"])document.addEventListener(Je,gt=>er?.(gt),!0)}let Ce=no,tt=()=>{er=null,document.activeElement===Ce&&(Ce.blur(),ne?.focus?.({preventScroll:!0,focusVisible:Re}))},vt=er=Je=>{if(Je.target!==Ce&&mr(Je.target))return;if(Je.preventDefault(),tt(),re)return Je.clipboardData?.setData("text/plain",re),fe(!!Je.clipboardData);let gt=Je.clipboardData?.getData("text/plain")??null;Promise.resolve().then(()=>(Da(),ja)).then(le=>le.pasteInto(gt,ve=>le.pasteScope(oo,H,ve),oo,se),()=>{})};Ce.isConnected||document.body.appendChild(Ce),Ce.value=re,Ce.focus({preventScroll:!0}),Ce.select(),setTimeout(()=>{er===vt&&(tt(),re&&Ls(re).then(fe))},1e3)},Is=()=>{if(!l){if(M=f.length,Mt(n.strings,()=>dr(Ft,o,s)),lr.length){let u=new Map;for(let H of a)u.has(H.key)||u.set(H.key,H);let v=H=>{let V=u.get(H);return V?V.target[V.key]:s[H]},P=()=>{let H=!1;for(let{node:V,m:re}of lr)try{if(re.render&&Qa(V,!re.render(v))&&(H=!0),re.disabled!=null){let fe=typeof re.disabled=="function"?re.disabled(v):re.disabled;So(V,!!fe)}}catch{}H&&mn()};d.add(P),p.add(P),P(),Promise.resolve().then(()=>(Va(),Ba)).then(H=>{cr=H.fold},()=>{})}if(y&&pe(ee(N(w(y),"values"))),!l){Tt?.arm(),ol(),f.push(Ze(C,[[document,"keydown"]],u=>{Tt?.onKey(u),al(u)})),k=!0;for(let u of L.splice(0)){if(l)break;try{u()}catch(v){console.error("[tweaks] a call queued before ready failed:",v)}}for(let u of yt)u.disabled=!1}}},js=new Set,ll=(u,v,P)=>{let H=u.range;if(!H||u.m.soft||js.has(u))return;let V=typeof P=="string"?P.trim().split(/\s+/).map(re=>["",parseFloat(re)]):Array.isArray(P)?P.map(re=>["",re]):ke(P)?Object.entries(P):[["",P]];for(let[re,fe]of V){let se=Array.isArray(H)?H:H[re],ne=1e-9*Math.max(1,Math.abs(fe));if(se&&typeof fe=="number"&&(fe<se[0]-ne||fe>se[1]+ne)){js.add(u),ct("clamp",v,P,se[0],se[1],u.m.type);return}}},Ds=(u,v)=>{if(String(u).split(".").some($t))return!1;let P=String(u).split("."),H=a.filter(se=>se.path.join(".")===u);if(H.length>1)return ct("ambiguousPath",u,H.length),!1;let V=H[0];if(!V&&P.length>1){let se=c.get(u);return ct(se?"noValue":"noPath",u,se),!1}if(!V){let se=a.filter(ne=>ne.key===u);if(se.length>1)return ct("ambiguousKey",u,se.length,se[0].path.join(".")),!1;V=se[0]}let re=!V&&(c.get(u)||[...c].find(([se])=>se.split(".").pop()===u)?.[1]);if(!V)return re?ct("noValue",u,re):ct("noControl",u,o.some(se=>se.key===u&&(se.type==="folder"||se.type==="tabs"))),!1;let fe=V.target[V.key];if(He(v))return!1;try{Qe(V,v)}catch(se){return console.error(`[tweaks] set("${u}") failed \u2014 value skipped:`,se),!1}return ll(V,u,v),rt(fe,V.target[V.key])?(i=V.path.join("."),!0):!1},Ht={el:ze,params:s,on(u){return l?()=>{}:(d.add(u),()=>d.delete(u))},set(u,v,P){let H=String(u),V=P?.silent;E(()=>{Ds(H,v)&&Me(V)})},setMany(u,v){if(u==null||typeof u!="object")return;let P=Object.entries(u),H=v?.silent;E(()=>{let V=0;for(let[re,fe]of P)try{Ds(re,fe)&&V++}catch(se){console.error(`[tweaks] setMany("${re}") failed \u2014 key skipped:`,se)}V>1&&(i=void 0),V&&Me(H)})},reset(){k&&!l&&Ss(An),E(S)},toJSON(){return l?{values:{},ui:{}}:{values:g(),ui:tl()}},changes(){return l?{}:ut()},fromJSON(u,v){if(!u||typeof u!="object")return;let P=v?.silent,H=u.values&&typeof u.values=="object"?{...u.values}:u.values,V=u.ui&&typeof u.ui=="object"?{...u.ui}:u.ui;E(()=>{H&&pr(H,P),nl(V)})},setName(u){l||(ge=String(u),Se.textContent=ge,he(ge))},setTheme(u){if(!l){Jt(C,null);for(let v in T)C.style.setProperty(v,T[v]);kt=Nr(u),C._twTheme=kt,Jt(C,kt),window.dispatchEvent(new Event("twk-retheme"))}},savePreset:u=>{if(l||x||!F||!u)return!1;let v=!0;return E(()=>{v=$s(u)}),v},loadPreset:u=>l||x||!_t()[u]?!1:(E(()=>Fs(u)),!0),deletePreset:u=>{F&&E(()=>_s(u))},presets:()=>l?[]:Object.keys(_t()),undo:()=>{Tt&&E(Tt.undo)},redo:()=>{Tt&&E(Tt.redo)},destroy(){if(!l){l=!0,R(),$r(C),Qn(C);for(let u of f.splice(0))try{u()}catch{}d.clear(),m&&(m.remove(),m=null),Tn===C&&(Tn=null),C.dataset.twkDestroyed="",ze.remove()}}},gr=y&&Jn(o).has("image")?Promise.resolve().then(()=>(Ua(),qa)).then(async u=>{A=await u.load(y),A&&(I=u.bind(y,A,v=>{l?JSON.stringify(w(y)).includes(JSON.stringify(v))&&Te():xe()},_t,v=>!!F&&Y(v)))},()=>{}):null;gr||(D=!0);let po=gr&&gr.then(me),fo=We.dressed;f.push(We.end);let Bs=En(o);if(Bs){let u=P=>{if(x=!0,L.length=0,R(),M>=0)for(let H of f.splice(M))try{H()}catch{}for(let H of Ft.children)H.dataset.twkDestroyed="";throw d.clear(),a.length=0,Ft.replaceChildren(),l||console.warn(`[tweaks] "${e}": the panel could not be built \u2014 ${M>=0?"the build threw":"its lazy controls failed to load"}; the API is inert`),P},v=Bs.then(Is);Ht.ready=C.ready=(po||fo?Promise.all([v,po,fo]):v).then(()=>Ht,u),Ht.ready.catch(()=>{})}else Is(),Ht.ready=C.ready=po||fo?Promise.all([po,fo]).then(()=>Ht):Promise.resolve(Ht);return Ht}we();var Xa={metaFor:zt,ensureForMetas:En,LAZY_IMPORT:nn,createFolder:Zn,createControl:Sn,makeCopyBtn:Yo,makeResetBtn:Jo,addHintMarker:Cn};function zu(e=document,t={}){let n=jr();return n?n(e,Xa,t.strings):Promise.resolve()}we();var Wa=e=>b("div",`${e} twk-standalone twk-portal`),Ya=(e,t,n)=>{let o=En(e);if(!o)return t(),Promise.resolve(n);let r=o.then(t).then(()=>n);return r.catch(()=>{}),r};function Gu(e,t,n={}){let o=n.key??"value",r=zt(o,t);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=!qo.has(r.type),i=Wa("twk-control"),a=Vn(i,n.shadow);e.append(a.box);let c=null,d=!1,p=r.value,f,l=!1,k=M=>{rt(p,M)&&(p=M,n.onChange&&n.onChange(M,o))},L=()=>{if(d||(c=Mt(n.strings,()=>Sn(r,s?k:()=>{})),!c))return;r.hint&&Cn(c.el,r.hint);let M=()=>{};try{r.render&&!r.render(M)&&c.el.classList.add("twk-cond-hidden")}catch{}try{(typeof r.disabled=="function"?r.disabled(M):r.disabled)&&So(c.el,!0)}catch{}i.append(c.el),s&&(p=c.get(),l&&(c.set(f),k(c.get())))},x={el:a.box,set:M=>{d||!s||(c?(c.set(M),k(c.get())):(f=M,l=!0))},get:()=>s?c?c.get():l?f:r.value:void 0,destroy:()=>{d=!0,c&&typeof c.destroy=="function"&&c.destroy(),i.dataset.twkDestroyed="",i.remove(),a.end()},ready:null};return x.ready=Ya([r],L,x),a.dressed&&(x.ready=Promise.all([x.ready,a.dressed]).then(()=>x)).catch(()=>{}),x}function qu(e={}){let t=Wa("twk-color-picker"),n=Vn(t,e.shadow),o=null,r=!1,s=e.value,i,a=!1,c=null,d=l=>{rt(s,l)&&(s=l,e.onChange&&e.onChange(l))},p=()=>{if(r)return;let l=qe("colorpicker");l&&(o=Mt(e.strings,()=>l({value:e.value,mode:e.mode},d)),s=o.get(),t.append(o.el),c&&o.setMode(c),a&&(o.set(i),d(o.get())),Ge(o.reflow))},f={el:n.box,set:l=>{r||(o?(o.set(l),d(o.get())):(i=l,a=!0))},get:()=>o?o.get():a?i:e.value,mode:()=>o?o.mode():c||e.mode||"oklch",setMode:l=>{o?o.setMode(l):c=l},reflow:()=>{o&&o.reflow()},destroy:()=>{r=!0,t.remove(),n.end()},ready:null};return f.ready=Ya([{type:"color"}],p,f),n.dressed&&(f.ready=Promise.all([f.ready,n.dressed]).then(()=>f)).catch(()=>{}),f}fn();export{qu as createColorPicker,zu as enhance,ho as gradientCss,Zs as gradientStops,Gu as mountControl,Ku as tweaks};
|
|
7
8
|
//# sourceMappingURL=tweaks.js.map
|