tweakit 0.4.5 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -2
- package/dist/tweaks/{bezier-EIWM4A6M.js → bezier-2RABC6LD.js} +1 -1
- package/dist/tweaks/chunk-4ATI34PB.js +1 -0
- package/dist/tweaks/chunk-7OSCMZ2J.js +1 -0
- package/dist/tweaks/chunk-W3JNIJ2F.js +1 -0
- package/dist/tweaks/{clip-7QEIBTKZ.js → clip-ECGCECEC.js} +1 -1
- package/dist/tweaks/colour-2RE3FQ5E.js +1 -0
- package/dist/tweaks/core.js +1 -1
- package/dist/tweaks/{fold-UQORAAPG.js → fold-UGN7TXGX.js} +1 -1
- package/dist/tweaks/{gradient-IXD2AINY.js → gradient-DB6XTDHO.js} +1 -1
- package/dist/tweaks/{heavy-KPG2LKVX.js → heavy-PKOMHB3C.js} +1 -1
- package/dist/tweaks/image-JD2NSQYE.js +1 -0
- package/dist/tweaks/interval-L2E4L3AZ.js +1 -0
- package/dist/tweaks/markup-MLAHTUK4.js +1 -0
- package/dist/tweaks/{monitor-PEBMH5MH.js → monitor-IEK742PG.js} +1 -1
- package/dist/tweaks/motion-N5UNVR55.js +1 -0
- package/dist/tweaks/{plot-SFD5OPF6.js → plot-VVTOY3RA.js} +1 -1
- package/dist/tweaks/{point-PK3CZSBO.js → point-YMMHSLO7.js} +1 -1
- package/dist/tweaks/{shadow-SKTAWRUK.js → shadow-IKYOV3VN.js} +1 -1
- package/dist/tweaks/{sides-RVC5PQY3.js → sides-FH227Z54.js} +1 -1
- package/dist/tweaks/spring-3PKAFIH7.js +1 -0
- package/dist/tweaks/{tabs-LB5KTQXF.js → tabs-BKK5NIIY.js} +1 -1
- package/dist/tweaks.css +1 -1
- package/dist/tweaks.js +3 -3
- package/dist/types/tweaks/schema.d.ts +1 -0
- package/dist/types/tweaks/types.d.ts +5 -3
- package/package.json +1 -1
- package/dist/tweaks/chunk-JWHF6V72.js +0 -1
- package/dist/tweaks/chunk-NB4K6RS2.js +0 -1
- package/dist/tweaks/chunk-QPSYEOZS.js +0 -1
- package/dist/tweaks/colour-DJHDXBXF.js +0 -1
- package/dist/tweaks/image-E7OAWFFK.js +0 -1
- package/dist/tweaks/interval-LPI5MWBB.js +0 -1
- package/dist/tweaks/markup-ZSBV67SW.js +0 -1
- package/dist/tweaks/motion-QSDSYDKR.js +0 -1
- package/dist/tweaks/spring-QIVBIUPF.js +0 -1
package/AGENTS.md
CHANGED
|
@@ -90,7 +90,7 @@ Every `{ type }` form also takes `label`, `hint` (a tooltip), `render: (get) =>
|
|
|
90
90
|
| `color` | `value` | color string in the picker's notation: `oklch(60% 0.23 286)` by default, whatever you wrote; `#rrggbb` once the user picks hex |
|
|
91
91
|
| `gradient` | `stops: [[color, position], …]` | `{ stops: [{ color, pos }], interpolation, easing }`, which goes back in whole as `value`; `gradientCss(value, angle)` makes the CSS |
|
|
92
92
|
| `shadow` | `x, y, blur, spread, color, inset`, or `value` as a `box-shadow` string | `{ x, y, blur, spread, color, inset, css }`; `css` is ready for `box-shadow` |
|
|
93
|
-
| `image` | `value`; `options` (URLs or `{ value, label }`) makes a gallery, with `cols, maxSize, upload` | the chosen URL, the upload's data URL, or `""` |
|
|
93
|
+
| `image` | `value`; `options` (URLs or `{ value, label }`) makes a row that opens a gallery pane, with `cols` (1 to 6), `maxSize, upload`, and `clear: false` to keep a value chosen | the chosen URL, the upload's data URL, or `""` |
|
|
94
94
|
| `motion` | `mode: "easing"` with `curve` and `duration` (ms), or `mode: "spring"` with `stiffness, damping, mass` or `visualDuration, bounce` | `{ mode, …, duration, easing }`; `easing` is a `cubic-bezier(…)` or sampled `linear(…)` string for a CSS transition; a spring's `duration` is its settle time |
|
|
95
95
|
| `spring` | `mode: "time"` or `"physics"`, `visualDuration, bounce, stiffness, damping, mass` | `{ stiffness, damping, mass }`, plus the time pair when tuned by feel |
|
|
96
96
|
| `cubicbezier` | `value: [x1, y1, x2, y2]` | `[x1, y1, x2, y2]` |
|
|
@@ -117,7 +117,9 @@ Every `{ type }` form also takes `label`, `hint` (a tooltip), `render: (get) =>
|
|
|
117
117
|
|
|
118
118
|
Options, the third argument: `theme` (token overrides), `persist` (a localStorage key, or `true` to key by name; turns presets on), `presets: false`, `filter: true` (a search field; needs the toolbar), `floating: true` or `{ x, y, corner }`, `draggable: false` to pin, `toolbar: false`, `undo: true`, `onReset`, `onEditStart` and `onEditEnd`.
|
|
119
119
|
|
|
120
|
-
Every panel drags by its header and lifts into a floating layer on the first drag; `floating` starts it there, inset from a corner. Its placement is plain `.tw-panel` CSS, so a class of yours loaded after `tweakit/css` overrides it.
|
|
120
|
+
Every panel drags by its header and lifts into a floating layer on the first drag; `floating` starts it there, inset from a corner. A click anywhere on the header outside its toolbar folds the panel; Escape mid-drag puts it back. Its placement is plain `.tw-panel` CSS, so a class of yours loaded after `tweakit/css` overrides it.
|
|
121
|
+
|
|
122
|
+
An open editor pane or the presets menu drags by its edge and keeps that spot until it closes. In a pane's field, Escape restores an unsaved edit and a second Escape closes the pane. Escapes the panel handles stop at the document.
|
|
121
123
|
|
|
122
124
|
## Copy and paste: how tuned values come back to you
|
|
123
125
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f,e as J,j as Q}from"./chunk-
|
|
1
|
+
import{a as f,e as J,j as Q}from"./chunk-4ATI34PB.js";import{$ as q,g as A,u as M,v as N,w as I,y as K,z as U}from"./chunk-7OSCMZ2J.js";function ee(v,$){let R=[.25,.1,.25,1],b=-.25,w=1.25,H=w-b,o=8,Y=e=>e.map((n,i)=>A(n,i%2?b:0,i%2?w:1)),t=Array.isArray(v.value)&&v.value.length===4?v.value.map(Number):R.slice();t.some(e=>!Number.isFinite(e))&&(t=R.slice()),t=Y(t);let Z=t.slice(),E=M("div","tw-bezier");v.label&&E.append(I("div","tw-bezier-label",v.label));let d=M("div","tw-bezier-graph"),k=f("svg","tw-bezier-svg");k.setAttribute("preserveAspectRatio","none");let G=f("line","tw-bezier-guide"),P=f("line","tw-bezier-guide"),X=f("line","tw-bezier-diag"),j=f("line","tw-bezier-ctl"),O=f("line","tw-bezier-ctl"),S=f("path","tw-bezier-curve");k.append(G,P,X,j,O,S);let g=N("tw-bezier-handle");g.setAttribute("aria-label","Control point 1");let x=N("tw-bezier-handle");x.setAttribute("aria-label","Control point 2"),d.append(k,g,x);let W=M("div","tw-fields tw-bezier-fields");E.append(d,W);let h=0,C=0,F=e=>o+e*(h-2*o),D=e=>C-o-(e-b)/H*(C-2*o),z=(e,n,i,m,a)=>{e.setAttribute("x1",n),e.setAttribute("y1",i),e.setAttribute("x2",m),e.setAttribute("y2",a)},y=()=>{if(g.setAttribute("aria-label",`Control point 1, x ${t[0]}, y ${t[1]}`),x.setAttribute("aria-label",`Control point 2, x ${t[2]}, y ${t[3]}`),h=d.offsetWidth,C=d.offsetHeight,h<2)return;k.setAttribute("viewBox",`0 0 ${h} ${C}`);let[e,n,i,m]=t,a=F(0),c=D(0),r=F(1),l=D(1),u=F(e),p=D(n),s=F(i),B=D(m);z(G,o,c,h-o,c),z(P,o,l,h-o,l),z(X,a,c,r,l),z(j,a,c,u,p),z(O,r,l,s,B),S.setAttribute("d",`M${a},${c} C${u},${p} ${s},${B} ${r},${l}`),g.style.left=u+"px",g.style.top=p+"px",x.style.left=s+"px",x.style.top=B+"px"},T=[{label:"X1",i:0,lo:0,hi:1},{label:"Y1",i:1,lo:b,hi:w},{label:"X2",i:2,lo:0,hi:1},{label:"Y2",i:3,lo:b,hi:w}],_=T.map(e=>{let n=Q({label:e.label,value:t[e.i],step:.01,min:e.lo,max:e.hi},i=>{t[e.i]=i,y(),$(t.slice())});return W.append(n.el),n}),L=()=>_.forEach((e,n)=>e.set(t[T[n].i])),V=(e,n)=>{let i=null,m=0,a=0,c=1;J(e,{onDown:r=>{r.preventDefault(),i=d.getBoundingClientRect(),m=d.offsetWidth||i.width,a=d.offsetHeight||i.height,c=i.width/m,e.classList.add("is-dragging"),e.focus({focusVisible:!1})},onMove:r=>{let l=(r.clientX-i.left)/c,u=(r.clientY-i.top)/c,p=A((l-o)/(m-2*o),0,1),s=A(b+(a-o-u)/(a-2*o)*H,b,w);t[n*2]=+p.toFixed(2),t[n*2+1]=+s.toFixed(2),y(),L(),$(t.slice())},onEnd:()=>{i=null,e.classList.remove("is-dragging")}}),e.addEventListener("keydown",r=>{if(r.key==="Escape")return e.blur();if(r.key==="Home"){r.preventDefault(),t=Z.slice(),y(),L(),$(t.slice());return}let l=r.key==="ArrowRight"?1:r.key==="ArrowLeft"?-1:0,u=r.key==="ArrowUp"?1:r.key==="ArrowDown"?-1:0;if(!l&&!u)return;r.preventDefault();let p=r.shiftKey?.1:.01,s=n*2;l&&(t[s]=+A(t[s]+l*p,0,1).toFixed(2)),u&&(t[s+1]=+A(t[s+1]+u*p,b,w).toFixed(2)),y(),L(),$(t.slice())})};return V(g,0),V(x,1),K(y),U(E,[[window,"resize"],[window,"tw-reflow"]],y),{el:E,set:e=>{if(Array.isArray(e)&&e.length===4){let n=e.map(Number);if(n.some(i=>!Number.isFinite(i)))return;t=Y(n),y(),L()}},get:()=>t.slice()}}q("cubicbezier",ee);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as P,C as T,D as S,I as $,Z as I,g as E,j as L,k as N,l as F,u as g,v as C,w as M}from"./chunk-7OSCMZ2J.js";var D="http://www.w3.org/2000/svg",k=(t,n)=>{let e=document.createElementNS(D,t);return n&&e.setAttribute("class",n),e},V=(t,n)=>getComputedStyle(t).getPropertyValue(n).trim(),B=t=>{let n=getComputedStyle(t),e=s=>n.getPropertyValue(s).trim();return e("--tw-accent")||e("--tw-text-primary")||"#fff"},O=t=>{let n=!1;t.addEventListener("pointerdown",e=>{n=e.button===0&&document.activeElement!==t}),t.addEventListener("focus",()=>t.select()),t.addEventListener("mouseup",e=>{n&&(n=!1,e.button===0&&document.activeElement===t&&t.selectionStart===0&&t.selectionEnd===t.value.length&&e.preventDefault())})};function H(t,{onDown:n,onMove:e,onEnd:s}={}){let r=null,o=i=>{r===null||i.pointerId!==r||(r=null,s&&s(i))};t.addEventListener("pointerdown",i=>{if(!(i.button!==0||r!==null)){r=i.pointerId;try{t.setPointerCapture(i.pointerId)}catch{}n&&n(i)}}),t.addEventListener("pointermove",i=>{if(i.pointerId===r){if(i.buttons===0)return o(i);e&&e(i)}}),t.addEventListener("pointerup",o),t.addEventListener("pointercancel",o),t.addEventListener("lostpointercapture",o)}var j=(t,n)=>H(t,{onDown:e=>{t.classList.add("is-grabbing"),n(e)},onMove:n,onEnd:()=>t.classList.remove("is-grabbing")}),z=(t,n)=>{let e=n.getBoundingClientRect();return[E((t.clientX-e.left)/e.width,0,1),E((t.clientY-e.top)/e.height,0,1)]},U=(t,n,e=1/0)=>{let s=t.getBoundingClientRect(),r=Math.min(window.devicePixelRatio||1,e);return t.width=s.width*r,t.height=s.height*r,n.setTransform(r,0,0,r,0,0),[s.width,s.height]},Y=(t,n)=>{let e=g("div",t),s=C("tw-trigger");s.setAttribute("aria-expanded","false");let r=g("span","tw-trigger-right");return s.append(M("span","tw-trigger-label",n),r),e.append(s),{root:e,trigger:s,right:r}},G=I('<path d="M6 4v8M10 4v8"/>',"",2,16);function X(){let t=null,n=0,e=0,s=0;return{show(r,o,i,m){t=g("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>',n=o,e=r,s=i??r,t.children[1].style.cssText=`left:${r}px;top:${n}px`,$(t,m),document.body.appendChild(t)},move(r,o){t&&(t.children[0].style.cssText=`left:${Math.min(e,r)}px;top:${n}px;width:${Math.abs(r-e)}px`,t.children[2].style.cssText=`left:${r}px;top:${n}px;transform:translate(-50%,-50%) scaleX(${r>=e?1:-1})`,t.children[3].style.cssText=`left:${s}px;top:${n-16}px`,t.children[3].textContent=o)},hide(){t&&(t.remove(),t=null)}}}function R(t,n,e,s,r,o){let i=0,m=0,p=1,d=X();H(t,{onDown:u=>{u.preventDefault(),i=u.clientX,m=s(),p=1,t.classList.add("is-dragging");let a=n.getBoundingClientRect();d.show(u.clientX,a.top+a.height/2,a.left+a.width/2,n),d.move(u.clientX,o())},onMove:u=>{let a=u.shiftKey?10:u.altKey?.1:1;a!==p&&(p=a,i=u.clientX,m=s()),r(m+(u.clientX-i)*e*a),d.move(u.clientX,o())},onEnd:()=>{t.classList.remove("is-dragging"),d.hide()}})}function q(t,n){let e=Number.isFinite(+t.step)&&+t.step>0?+t.step:1,s=l=>l==null?NaN:+l,r=s(t.min),o=s(t.max);if(Number.isFinite(r)&&Number.isFinite(o)&&o<r){let l=r;r=o,o=l}let i=Number.isFinite(r)?r:0,m=L(e),[p,d]=F(Number.isFinite(r)?r:-1/0,Number.isFinite(o)?o:1/0,e,i),u=l=>{let h=N(l,i,e);return t.soft?h:E(h,p,d)},a=u(Number.isFinite(+t.value)?+t.value:0),f=g("div",t.row?"tw-row":"tw-field"),b=g("div","tw-num-wrap"),v=g("span","tw-num-grab",G);v.setAttribute("aria-hidden","true"),v.title="Drag to adjust";let c=g("input","tw-num");c.type="text",c.inputMode="decimal",c.setAttribute("aria-label",t.unit?`${t.label} (${t.unit})`:t.label),c.value=a.toFixed(m),T(c),b.append(v,c),t.unit&&b.append(M("span","tw-num-unit",t.unit)),f.append(M("span",t.row?"tw-row-label":"tw-field-label",t.label),b);let w=(l,h=!0)=>{l=+l,Number.isFinite(l)&&(a=u(l),c.value=a.toFixed(m),h&&n&&n(a))},x=()=>Number(c.value.replace(t.unit||"","").trim()||NaN);return c.addEventListener("change",()=>{let l=x();Number.isFinite(l)&&u(l)!==a?w(l):c.value=a.toFixed(m)}),S(c,()=>a.toFixed(m)),c.addEventListener("keydown",l=>{if(l.key==="Enter")return c.blur();let h=l.key==="ArrowUp"?1:l.key==="ArrowDown"?-1:0;if(!h)return;l.preventDefault();let y=x();w((Number.isFinite(y)?y:a)+h*e*(l.shiftKey?10:1))}),R(v,b,e,()=>a,w,()=>c.value),{el:f,set:l=>w(l,!1),get:()=>a}}P("number",(t,n)=>q({...t,row:!0},n));var A=(t,n,e)=>{let s=Math.sqrt(t/e),r=n/(2*Math.sqrt(t*e));return Math.min(2.2,9/Math.max(r*s,.5))};function _(t,n,e,s=64,r=A(t,n,e)){let o=Math.sqrt(t/e),i=n/(2*Math.sqrt(t*e)),m=[];for(let p=0;p<s;p++){let d=p/(s-1)*r,u;if(i<1-1e-4){let a=o*Math.sqrt(1-i*i);u=1-Math.exp(-i*o*d)*(Math.cos(a*d)+i*o/a*Math.sin(a*d))}else if(i<=1+1e-4)u=1-Math.exp(-o*d)*(1+o*d);else{let a=Math.sqrt(i*i-1),f=o*(i+a),b=o*(i-a);u=1-(f*Math.exp(-b*d)-b*Math.exp(-f*d))/(f-b)}m.push(u)}return m}export{k as a,V as b,B as c,O as d,H as e,j as f,z as g,U as h,Y as i,q as j,A as k,_ as l};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var G=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]}),k=e=>Math.min(1,Math.max(0,e)),P=15;function U(e){if(typeof e!="string")return null;let n=e.trim().toLowerCase();if(G[n])return G[n];let t=/^cubic-bezier\(([^()]*)\)$/.exec(n);if(!t)return null;let r=t[1].split(",").map(o=>o.trim()?Number(o):NaN);return r.length!==4||!r.every(Number.isFinite)?null:[k(r[0]),r[1],k(r[2]),r[3]]}var Oe=e=>U(e)?e.trim().toLowerCase():"linear";function q(e){let n=[];for(let t=0;t<=P;t++){let r=t/P,o=1-r,i=3*o*o*r,a=3*o*r*r,s=r*r*r;n.push([i*e[0]+a*e[2]+s,k(i*e[1]+a*e[3]+s)])}return n}function Ne(e,n){if(n=k(n),!e)return n;let t=q(e);for(let r=1;r<t.length;r++)if(n<=t[r][0]){let[o,i]=t[r-1],[a,s]=t[r];return a>o?i+(s-i)*(n-o)/(a-o):s}return 1}var F=e=>+(e*100).toFixed(2);function X(e){let n=[...e.stops].sort((s,c)=>s.pos-c.pos),t=s=>`${s.color} ${F(s.pos)}%`,r=U(e.easing);if(!r||n.length<2)return n.map(t).join(", ");let o=q(r),i=e.interpolation||"oklch",a=[t(n[0])];for(let s=1;s<n.length;s++){let c=n[s-1],w=n[s],u=w.pos-c.pos;if(u>1e-6)for(let f=1;f<P;f++){let[m,p]=o[f];a.push(`color-mix(in ${i}, ${c.color}, ${w.color} ${F(p)}%) ${F(c.pos+u*m)}%`)}a.push(t(w))}return a.join(", ")}function ae(e,n="to right"){return`linear-gradient(in ${e.interpolation||"oklch"} ${typeof n=="number"?`${n}deg`:n}, ${X(e)})`}var le=e=>e.replace(/([a-z])(?=[A-Z])|([A-Z\d])(?=[A-Z][a-z])/g,"$1$2 ").replace(/^./,n=>n.toUpperCase()).trim(),B=(e,n,t)=>Math.min(t,Math.max(n,e)),$e=e=>!!e&&typeof e=="object",Ve=e=>typeof e=="string"&&(/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(e.trim())||/^(oklch|oklab|rgba?|hsla?|hwb|lab|lch|color)\(/i.test(e.trim())),Y=20,ce=e=>{let n=String(e),t=/e-(\d+)$/i.exec(n);if(t)return Math.min(Y,Number(t[1])+(n.split("e")[0].split(".")[1]||"").length);let r=n.indexOf(".");return r===-1?0:Math.min(Y,n.length-r-1)},ue=(e,n,t)=>{if(!(t>0))return e;let r=ce(t),o=Number((+n).toFixed(r)),i=Math.round((e-o)/t);return Number.isFinite(i)?Number((o+i*t).toFixed(r)):e},je=(e,n,t,r=e)=>{let o=s=>ue(s,r,t),i=Number.isFinite(e)?o(e):-1/0,a=Number.isFinite(n)?o(n):1/0;return i<e&&(i=o(i+t)),a>n&&(a=o(a-t)),i>a?[e,e]:[i,a]},de=(e,n)=>{let t=n-e;return t<=1?.01:t<=10?.1:t<=100?1:10},Ie=(e,n,t,r=0,o=null)=>{let i=+e,a=+n,s=+t;if(Number.isFinite(i)||(i=r),Number.isFinite(a)||(a=o??i+100),a<i){let c=i;i=a,a=c}return(!(s>0)||s>a-i)&&(s=de(i,a)),{min:i,max:a,step:s}},ze=(e,n,t,r,o,i=null)=>{let a=e.shiftKey?10:1;switch(e.key){case"ArrowRight":case"ArrowUp":return n+t*a;case"ArrowLeft":case"ArrowDown":return n-t*a;case"PageUp":return i!=null?n+i:null;case"PageDown":return i!=null?n-i:null;case"Home":return r;case"End":return o}return null},De=(e,n,t,r,o=0)=>{let i=e.offsetLeft,a=i+e.offsetWidth,s=n.offsetLeft,c=s+n.offsetWidth;return t<a&&t+r>i||t<c+o&&t+r>s-o},Ke=e=>e>=0?[0,e<=1?1:e*3||100]:[e>=-1?-1:e*3,0],fe=e=>e==null?void 0:typeof e=="object"?e.value:e,me=e=>{try{return JSON.stringify(e)}catch{return String(e)}},we=e=>e==null?"":typeof e=="string"?le(e):typeof e=="object"?e.label??(e.value!==void 0?String(e.value):me(e)):String(e),A=(e,n,t)=>{let r=document.createElement(e);return n&&(r.className=n),t!=null&&(r.innerHTML=t),(e=="input"||e=="textarea")&&(r.setAttribute("autocomplete","off"),r.setAttribute("data-1p-ignore",""),r.setAttribute("data-lpignore","true")),r},We=(e,n)=>{let t=A("button",e,n);return t.type="button",t},ge=(e,n,t)=>{let r=A(e,n);return r.textContent=t,e==="button"&&(r.type="button"),r},be=e=>["pointerdown","pointermove","pointerup","click"].forEach(n=>e.addEventListener(n,t=>t.stopPropagation())),he=e=>{requestAnimationFrame(e),document.fonts&&document.fonts.ready&&document.fonts.ready.then(e)},pe=(e,n,t)=>{let r=e.isConnected;r||requestAnimationFrame(()=>{e.isConnected&&(r=!0)});let o=a=>{if(!e.isConnected){(r||e.closest("[data-tw-destroyed]"))&&i();return}r=!0,t(a)},i=()=>n.forEach(([a,s])=>a.removeEventListener(s,o));return n.forEach(([a,s])=>a.addEventListener(s,o)),i},Ge=()=>requestAnimationFrame(()=>window.dispatchEvent(new Event("tw-reflow"))),Ue=(e,n)=>{e.addEventListener("pointerenter",()=>{e.classList.add("is-hover"),n&&n()}),e.addEventListener("pointerleave",()=>e.classList.remove("is-hover"))},C=!1;typeof document<"u"&&(document.addEventListener("pointerdown",()=>{C=!0},!0),document.addEventListener("keydown",()=>{C=!1},!0));var qe=e=>{e.addEventListener("focus",()=>e.classList.toggle("tw-focus-quiet",C)),e.addEventListener("blur",()=>e.classList.remove("tw-focus-quiet"))},Xe=(e,n)=>e.addEventListener("keydown",t=>{t.key!=="Escape"||e.value===n()||(t.preventDefault(),t.stopPropagation(),e.value=n())}),ve=(e,n,{width:t,fallbackH:r=300,gap:o=6,align:i="start",prefer:a="below"}={})=>{let s=e.getBoundingClientRect();t==="match"&&(n.style.width=s.width+"px");let c=n.offsetWidth||(t==="match"?s.width:t||0),u=i==="end"||t==="match"&&c>s.width+.5?s.right-c:i==="center"?s.left+s.width/2-c/2:s.left;n.style.left=Math.max(8,Math.min(u,window.innerWidth-c-8))+"px";let f=n.offsetHeight||r,m=window.innerHeight-s.bottom,p=s.top,g=f+12,v=m>=g,E=p>=g,y=a==="above"?E||!v&&p>=m:!v&&(E||p>m),M=y?s.top-f-o:s.bottom+o;n.style.top=B(M,o,window.innerHeight-f-o)+"px",n.dataset.side=y?"above":"below",n.style.setProperty("--tw-pop-h",String(f))},Ee=Object.assign(Object.create(null),{accent:"--tw-accent",onAccent:"--tw-on-accent",base:"--tw-base",dropdownBg:"--tw-dropdown-bg",surface:"--tw-surface",surfaceHover:"--tw-surface-hover",surfaceActive:"--tw-surface-active",border:"--tw-border",borderHover:"--tw-border-hover",selection:"--tw-selection",title:"--tw-text-root",section:"--tw-text-section",text:"--tw-text-primary",label:"--tw-text-label",textMuted:"--tw-text-secondary",textFaint:"--tw-text-tertiary",focus:"--tw-text-focus",success:"--tw-success",danger:"--tw-danger",shadow:"--tw-shadow-dropdown",shadowPanel:"--tw-shadow-panel",shadowPanelLifted:"--tw-shadow-panel-lifted",font:"--tw-font-sans",fontMono:"--tw-font-mono",radius:"--tw-radius",density:"--tw-row-height",width:"--tw-width"}),ye=new Set(["radius","density","width"]),S=e=>(e/=255,e<=.03928?e/12.92:((e+.055)/1.055)**2.4),Le=e=>{e=String(e).trim();let n=/^#([0-9a-f]{3})$/i.exec(e);if(n)return n[1].split("").map(t=>parseInt(t+t,16));if(n=/^#([0-9a-f]{6})$/i.exec(e),n)return[0,2,4].map(t=>parseInt(n[1].slice(t,t+2),16));if(n=/^rgba?\(([^)]+)\)/i.exec(e),n){let t=n[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return[t[0],t[1],t[2]]}return null},Me=e=>{let n=Le(e);if(!n||n.some(r=>!Number.isFinite(r)))return"#ffffff";let t=.2126*S(n[0])+.7152*S(n[1])+.0722*S(n[2]);return 1.05/(t+.05)>=(t+.05)/.0571?"#ffffff":"#161616"},Ye=e=>{if(!e||typeof e!="object")return null;let n={};for(let[t,r]of Object.entries(e)){if(t.startsWith("--")){n[t]=String(r);continue}let o=Ee[t];o&&(n[o]=ye.has(t)&&typeof r=="number"?`${r}px`:String(r))}return n["--tw-accent"]&&!n["--tw-on-accent"]&&(n["--tw-on-accent"]=Me(n["--tw-accent"])),Object.keys(n).length?n:null},Te=(e,n)=>{if(e){if(e._twAppliedVars)for(let t of e._twAppliedVars)e.style.removeProperty(t);if(e._twAppliedVars=n?Object.keys(n):null,n)for(let t in n)e.style.setProperty(t,n[t])}},xe=(e,n)=>{let t=n?.closest('[data-tw-scheme="light"]')?"light":n?.closest('[data-tw-scheme="dark"]')?"dark":null;t?e.setAttribute("data-tw-scheme",t):e.removeAttribute("data-tw-scheme")},Z=(e,n)=>{Te(e,n?.closest(".tw-panel")?._twTheme),xe(e,n)},L=null,O=null,Ce=e=>{L&&(!e||e.contains(O))&&L()};function Ze(e,n,t,r={}){let o=!1,i=null,a,s=!1,c=null,w=()=>n.focus({focusVisible:!s});t.classList.add("tw-portal"),t.inert=!0,t.addEventListener("pointerdown",l=>n.closest(".tw-panel")?._twEditPointer?.(l),!0),be(t);let u=0,f=0,m=!1,p=()=>{t.style.left=B(parseFloat(t.style.left),8,window.innerWidth-t.offsetWidth-8)+"px",t.style.top=B(parseFloat(t.style.top),8,window.innerHeight-t.offsetHeight-8)+"px"},g=()=>{m?p():ve(n,t,{width:r.width??"match",fallbackH:r.fallbackH,gap:r.gap,align:r.align});let l=n.getBoundingClientRect();u=parseFloat(t.style.left)-l.left,f=parseFloat(t.style.top)-l.top};t.addEventListener("pointerdown",l=>{if(l.target!==t||l.button!==0||!o||r.movable===!1)return;l.preventDefault();let d=l.pointerId,V=l.clientX,j=l.clientY,I=parseFloat(t.style.left),z=parseFloat(t.style.top),se=m,R=!1;try{t.setPointerCapture(d)}catch{}let D=h=>{if(h.pointerId===d){if(!R){if(Math.hypot(h.clientX-V,h.clientY-j)<4)return;R=m=!0,t.classList.add("is-moving")}t.style.left=I+h.clientX-V+"px",t.style.top=z+h.clientY-j+"px",g()}},x=h=>{h.pointerId===d&&W()},K=h=>{if(!(h.key!=="Escape"||!R)){h.preventDefault(),h.stopPropagation(),t.style.left=I+"px",t.style.top=z+"px",m=se,g(),W();try{t.releasePointerCapture(d)}catch{}}},W=()=>{t.removeEventListener("pointermove",D),t.removeEventListener("pointerup",x),t.removeEventListener("pointercancel",x),t.removeEventListener("lostpointercapture",x),document.removeEventListener("keydown",K,!0),t.classList.remove("is-moving")};t.addEventListener("pointermove",D),t.addEventListener("pointerup",x),t.addEventListener("pointercancel",x),t.addEventListener("lostpointercapture",x),document.addEventListener("keydown",K,!0)});let v=()=>{if(o){if(!e.isConnected)return b();g(),r.onReflow&&r.onReflow()}},E=()=>{if(!o)return;if(!e.isConnected)return b();let l=n.getBoundingClientRect(),d=n.closest(".tw-panel")?.getBoundingClientRect();if(!(l.width||l.height)||l.bottom<0||l.top>window.innerHeight||l.right<0||l.left>window.innerWidth||d?.height&&(l.bottom<d.top||l.top>d.bottom))return b();t.style.left=l.left+u+"px",t.style.top=l.top+f+"px"},y=l=>{!e.contains(l.target)&&!t.contains(l.target)&&b()},M=l=>{l.key==="Escape"&&o&&!l.defaultPrevented&&(l.preventDefault(),l.stopPropagation(),b(),w())},_=l=>{if(!o)return;let d=l.relatedTarget;!d&&!document.hasFocus()||(d?e.contains(d)||t.contains(d):C)||(b(),d&&!n.closest(".tw-panel")?.contains(d)&&setTimeout(()=>{!o&&document.activeElement===d&&n.focus()},0))};e.addEventListener("focusout",_),t.addEventListener("focusout",_);let oe=()=>t.querySelector('button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'),H=()=>Z(t,e),ie=l=>{l.every(d=>d.target===t)||H()},$=()=>{L&&L!==b&&L(),L=b,O=n,o=!0,e.classList.add("is-open"),n.setAttribute("aria-expanded","true"),clearTimeout(a);let l=t.parentNode===document.body;m=!1,s=C,t.inert=!1,l||document.body.appendChild(t),Z(t,e),window.addEventListener("tw-retheme",H),typeof MutationObserver=="function"&&(i=new MutationObserver(ie),i.observe(document.documentElement,{subtree:!0,attributes:!0,attributeFilter:["data-tw-scheme"]})),l?g():(t.style.transition="none",g(),t.offsetWidth,t.style.transition=""),typeof ResizeObserver=="function"&&(c=new ResizeObserver(()=>{o&&g()}),c.observe(t)),requestAnimationFrame(()=>{if(o&&(t.classList.add("is-open"),r.onOpen&&r.onOpen(),g(),!t.contains(document.activeElement))){let d=r.initialFocus&&r.initialFocus()||oe();d&&d.focus({focusVisible:!C})}}),requestAnimationFrame(function d(){if(o){if(!e.isConnected)return b();requestAnimationFrame(d)}}),setTimeout(()=>{o&&document.addEventListener("pointerdown",y,!0)},0),document.addEventListener("keydown",M),window.addEventListener("scroll",E,!0),window.addEventListener("resize",v)},b=()=>{L===b&&(L=null,O=null),t.contains(document.activeElement)&&w(),o=!1,e.classList.remove("is-open"),t.classList.remove("is-open"),t.inert=!0,n.setAttribute("aria-expanded","false"),document.removeEventListener("pointerdown",y,!0),document.removeEventListener("keydown",M),window.removeEventListener("scroll",E,!0),window.removeEventListener("resize",v),window.removeEventListener("tw-retheme",H),i&&(i.disconnect(),i=null),c?.disconnect(),c=null,a=setTimeout(()=>{o||t.remove()},200)};return n.addEventListener("click",()=>{n.disabled||(o?b():$())}),{open:$,close:b,isOpen:()=>o,reflow:v}}var Je=(e,n)=>{if(e=e.toLowerCase(),e.includes(n))return!0;if(n.length<3)return!1;let t=n.length,r=e.length,o=new Array(r+1).fill(0);for(let i=1;i<=t;i++){let a=[i];for(let s=1;s<=r;s++)a[s]=Math.min(o[s]+1,a[s-1]+1,o[s-1]+(n[i-1]===e[s-1]?0:1));o=a}return Math.min(...o)<=(n.length<6?1:2)},ee=typeof matchMedia=="function"?matchMedia("(prefers-reduced-motion: reduce)"):{matches:!1},N="cubic-bezier(0.22, 1, 0.36, 1)",Qe="cubic-bezier(0.34, 1.2, 0.64, 1)",Ae=(e,n)=>{ee.matches||typeof e.animate!="function"||(e.style.transformOrigin=n>0?"left center":"right center",e.animate([{transform:"scaleX(1)"},{transform:"scaleX(1.18)"},{transform:"scaleX(1)"}],{duration:300,easing:N}))},ke=(e,n,t)=>{let r=e.querySelector('[data-active="true"]');if(!r)return;let o=r.offsetLeft,i=r.offsetWidth,a=parseFloat(n.style.left);n.style.left=o+"px",n.style.width=i+"px",t&&Number.isFinite(a)&&a!==o&&Ae(n,o>a?1:-1)},He=32,Re=200,Fe=8,et=(e,n,t)=>{let r=t<n.left?t-n.left:t>n.right?t-n.right:0,o=Math.sign(r)*Fe*Math.sqrt(Math.min(Math.max(0,Math.abs(r)-He)/Re,1));e.style.width=o?`calc(100% + ${Math.abs(o)}px)`:"",e.style.transform=o<0?`translateX(${o}px)`:""},tt=e=>{e.style.transition=`width 0.35s ${N}, transform 0.35s ${N}`,e.style.width="",e.style.transform="",setTimeout(()=>{e.style.transition=""},360)},nt=(e,n)=>{e.classList.toggle("is-disabled",n);for(let t of e.children)t.classList.contains("tw-portal")||(t.inert=n);n&&Ce(e)},J=(e,n,t,r)=>{e.classList.toggle("is-collapsed",r),n.setAttribute("aria-expanded",String(!r)),t.inert=r},rt=(e,n,t,r,o)=>{if(ee.matches||typeof t.animate!="function"){J(e,n,t,r),o&&setTimeout(o,370);return}let i=t.getBoundingClientRect(),a=i.height,s=e.closest(".tw-panel"),c=s&&getComputedStyle(s),w=c?parseFloat(c.maxHeight):NaN,u=c&&s.dataset.mode==="floating"&&w>=0?s.getBoundingClientRect().top+w-parseFloat(c.paddingBottom)-parseFloat(c.borderBottomWidth):1/0,f=Math.max(0,Math.min(window.innerHeight,u)-i.top),m=getComputedStyle(t).getPropertyValue("--tw-ease-fold").trim();t._twFold?.cancel(),t._twFold=null,t.style.transition="none",t.style.gridTemplateRows="",J(e,n,t,r);let p=0;if(!r){for(let M of t.firstElementChild?.getAnimations?.()??[])M.transitionProperty!=="opacity"&&M.finish();p=t.getBoundingClientRect().height}let g=Math.min(a,f),v=Math.min(p,f),E=()=>{t.style.gridTemplateRows="",t.offsetHeight,t._twFold?.cancel(),t._twFold=null,t.style.transition="",o?.()};if(Math.abs(g-v)<1)return E();t.style.gridTemplateRows="1fr";let y=t._twFold=t.animate([{height:g+"px"},{height:v+"px"}],{duration:350,easing:m,fill:"forwards"});y.onfinish=()=>{t._twFold===y&&E()}},te=(e,n)=>{let t=e.findIndex(r=>r.dataset.value===String(n));return t<0&&e.length?0:t},Pe=(e,n)=>{let t=te(e,n);e.forEach((r,o)=>{let i=r.dataset.value===String(n);r.dataset.active=String(i),r.setAttribute("aria-checked",String(i)),r.tabIndex=o===t?0:-1})},Se=(e,n,t)=>{let r=ge("button",e,we(n));return r.setAttribute("role","radio"),r._twVal=fe(n),r.dataset.value=r._twVal,r.addEventListener("click",()=>t(r._twVal)),r},Be=(e,n,t,r=0)=>{switch(e){case"ArrowRight":return(n+1)%t;case"ArrowLeft":return(n-1+t)%t;case"ArrowDown":return r<0?-1:r?n+r<t?n+r:n:(n+1)%t;case"ArrowUp":return r<0?-1:r?n-r>=0?n-r:n:(n-1+t)%t;case"Home":return 0;case"End":return t-1}return-1};function ot(e,n,t,r){let o=A("div","tw-seg");o.setAttribute("role","radiogroup"),r&&o.setAttribute("aria-label",r);let i=A("div","tw-seg-pill");o.append(i);let a=e.map(u=>{let f=Se("tw-seg-btn",u,m=>w(m));return o.append(f),f}),s=u=>ke(o,i,u),c=()=>{Pe(a,n),s(!0)},w=(u,f=!0)=>{u!=null&&!a.some(m=>m._twVal===u)||(n=u,c(),f&&t(u))};return o.addEventListener("keydown",u=>{let f=te(a,n);if(f<0)return;let m=Be(u.key,f,a.length);m<0||(u.preventDefault(),w(a[m]._twVal),a[m].focus())}),c(),he(()=>{s(),o.classList.add("is-ready")}),pe(o,[[window,"tw-reflow"]],()=>s()),{el:o,set:u=>w(u,!1),get:()=>n}}var it=(e,n="",t=2,r=24)=>`<svg${n?` class="${n}"`:""} viewBox="0 0 ${r} ${r}" fill="none" stroke="currentColor" stroke-width="${t}" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${e}</svg>`,st=(e,n)=>({el:e,set:()=>{},get:()=>{},destroy:n}),ne={},at=(e,n)=>{ne[e]=n},lt=e=>ne[e],re=null,ct=e=>{re=e},ut=()=>re,T=null,Q=0,dt=e=>{T||(T=A("div","tw-sr"),T.setAttribute("role","status")),T.isConnected||document.body.appendChild(T),T.textContent="",clearTimeout(Q),Q=setTimeout(()=>{T.textContent=e},100)};export{U as a,Oe as b,Ne as c,X as d,ae as e,le as f,B as g,$e as h,Ve as i,ce as j,ue as k,je as l,de as m,Ie as n,ze as o,De as p,Ke as q,fe as r,me as s,we as t,A as u,We as v,ge as w,be as x,he as y,pe as z,Ge as A,Ue as B,qe as C,Xe as D,ve as E,Ye as F,Te as G,xe as H,Z as I,Ce as J,Ze as K,Je as L,ee as M,N,Qe as O,ke as P,et as Q,tt as R,nt as S,rt as T,te as U,Pe as V,Se as W,Be as X,ot as Y,it as Z,st as _,at as $,lt as aa,ct as ba,ut as ca,dt as da};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as pt,f as re,g as oe,i as bt,j as mt}from"./chunk-4ATI34PB.js";import{$ as Le,C as lt,D as it,K as ut,da as ht,g as d,o as Te,u as C,w as ct}from"./chunk-7OSCMZ2J.js";var un=180/Math.PI,Re=Math.PI/180,L=(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]],hn=(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},x=e=>Number.isFinite(e)?e:0,pn=(e,t,n)=>Math.min(n,Math.max(t,e)),ae=e=>{let t=Math.abs(e);return t<=.04045?e/12.92:Math.sign(e)*((t+.055)/1.055)**2.4},U=e=>{let t=Math.abs(e);return t<=.0031308?e*12.92:Math.sign(e)*(1.055*t**(1/2.4)-.055)},le=1.09929682680944,yt=.018053968510807,bn=e=>{let t=Math.abs(e);return t<yt*4.5?e/4.5:Math.sign(e)*((t+le-1)/le)**(1/.45)},$t=e=>{let t=Math.abs(e);return t<yt?e*4.5:Math.sign(e)*(le*t**.45-(le-1))},Et=1/512,mn=e=>{let t=Math.abs(e);return t<=Et*16?e/16:Math.sign(e)*t**1.8},dn=e=>{let t=Math.abs(e);return t>=Et?Math.sign(e)*t**(1/1.8):16*e},Ve=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],se=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],fn=[[.4865709486482162,.26566769316909306,.19821728523436247],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],_t=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],gn=[[.6369580483012914,.14461690358620832,.16888097516417205],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],St=[[1.7166511879712674,-.35567078377639233,-.25336628137365974],[-.6666843518324892,1.6164812366349395,.01576854581391113],[.017639857445310783,-.042770613257808524,.9421031212354738]],xn=[[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],Mn=[[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],At=[[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],Tt=[[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],kn=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],Lt=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],wn=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],Vt=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],ce=216/24389,q=24389/27,Z=[.3457/.3585,1,(1-.3457-.3585)/.3585],W=(e,t,n)=>L(n,[t(e[0]),t(e[1]),t(e[2])]),Y=(e,t,n)=>{let o=L(n,e);return[t(o[0]),t(o[1]),t(o[2])]},dt=e=>{let t=L(Vt,e);return L(Lt,[t[0]**3,t[1]**3,t[2]**3])},ft=e=>{let t=L(kn,e);return L(wn,[Math.cbrt(t[0]),Math.cbrt(t[1]),Math.cbrt(t[2])])};function gt(e){let[t,n,o]=e,r=(t+16)/116,a=n/500+r,s=r-o/200,l=a**3>ce?a**3:(116*a-16)/q,h=t>q*ce?r**3:t/q,p=s**3>ce?s**3:(116*s-16)/q;return L(Tt,[l*Z[0],h*Z[1],p*Z[2]])}function xt(e){let t=L(At,e),n=s=>s>ce?Math.cbrt(s):(q*s+16)/116,o=n(t[0]/Z[0]),r=n(t[1]/Z[1]),a=n(t[2]/Z[2]);return[116*r-16,500*(o-r),200*(r-a)]}var ie=e=>{let t=Math.hypot(e[1],e[2]),n=Math.atan2(e[2],e[1])*un;return n<0&&(n+=360),[e[0],t,n]},ue=e=>[e[0],e[1]*Math.cos(e[2]*Re),e[1]*Math.sin(e[2]*Re)];function Ot(e){let t=((Number.isNaN(e[0])?0:e[0])%360+360)%360,n=e[1]/100,o=e[2]/100,r=a=>{let s=(a+t/30)%12,l=n*Math.min(o,1-o);return o-l*Math.max(-1,Math.min(s-3,9-s,1))};return[r(0),r(8),r(4)]}function Rt(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 Cn(e){let t=Math.max(...e),n=Math.min(...e),o=(n+t)/2,r=Rt(e),a=t===n||o===0||o===1?0:(t-o)/Math.min(o,1-o);return a<0&&(r+=180,a=-a),r>=360&&(r-=360),[r,a*100,o*100]}function vn(e){let t=e[1]/100,n=e[2]/100;if(t+n>=1){let a=t/(t+n);return[a,a,a]}let o=Ot([e[0],100,50]),r=1-t-n;return[o[0]*r+t,o[1]*r+t,o[2]*r+t]}var yn=e=>[Rt(e),Math.min(...e)*100,(1-Math.max(...e))*100];function $n(e,t){switch(t){case"srgb":return W(e,ae,Ve);case"p3":return W(e,ae,fn);case"rec2020":return W(e,bn,gn);case"prophoto-rgb":return L(Tt,W(e,mn,xn));case"oklab":return dt(e);case"oklch":return dt(ue(e));case"lab":return gt(e);case"lch":return gt(ue(e));case"hsl":return W(Ot(e),ae,Ve);case"hwb":return W(vn(e),ae,Ve)}}function En(e,t){switch(t){case"srgb":return Y(e,U,se);case"p3":return Y(e,U,_t);case"rec2020":return Y(e,$t,St);case"prophoto-rgb":return Y(L(At,e),dn,Mn);case"oklab":return ft(e);case"oklch":return ie(ft(e));case"lab":return xt(e);case"lch":return ie(xt(e));case"hsl":return Cn(Y(e,U,se));case"hwb":return yn(Y(e,U,se))}}function k(e,t,n){return t===n?[e[0],e[1],e[2]]:t==="oklch"&&n==="oklab"?ue(e):t==="oklab"&&n==="oklch"?ie(e):t==="lch"&&n==="lab"?ue(e):t==="lab"&&n==="lch"?ie(e):En($n(e,t),n)}var he=75e-6,Nt=e=>e.every(t=>t>=-he&&t<=1+he),Ne=(e,t)=>Nt(k(e,"oklch",t)),Oe=e=>e.map(t=>Math.min(1,Math.max(0,t))),Mt=(e,t)=>Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2]);function pe(e,t){if(Ne(e,t))return k(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 Oe(k([n,0,x(e[2])],"oklch",t));let o=.02,r=1e-4,a=[e[0],e[1],e[2]],s=0,l=e[1],h=!0,p=Oe(k(a,"oklch",t));if(Mt(k(p,t,"oklab"),k(e,"oklch","oklab"))<o)return p;for(;l-s>r;){let u=(s+l)/2;a[1]=u;let b=k(a,"oklch",t);if(h&&Nt(b)){s=u;continue}p=Oe(b);let f=Mt(k(p,t,"oklab"),k(a,"oklch","oklab"));if(f<o){if(o-f<r)return p;h=!1,s=u}else l=u}return p}var Ht=(e,t)=>{let n=e*Re,o=Math.cos(n),r=Math.sin(n),a=Vt.map(l=>o*l[1]+r*l[2]),s=hn(t==="p3"?_t:t==="rec2020"?St:se,Lt);return{d:a,F:s,gam:t==="rec2020"?$t:U}};function be(e,t){let{d:[n,o,r],F:a,gam:s}=Ht(e,t),l=-he,h=1+he;return(p,u)=>{let b=p+u*n,f=p+u*o,_=p+u*r,g=b**3,w=f**3,v=_**3,M=s(a[0][0]*g+a[0][1]*w+a[0][2]*v);if(M<l||M>h)return!1;let A=s(a[1][0]*g+a[1][1]*w+a[1][2]*v);if(A<l||A>h)return!1;let B=s(a[2][0]*g+a[2][1]*w+a[2][2]*v);return B>=l&&B<=h}}function Ft(e,t){let{d:[n,o,r],F:a,gam:s}=Ht(e,t);return(l,h,p)=>{let u=l+h*n,b=l+h*o,f=l+h*r,_=u**3,g=b**3,w=f**3;p[0]=s(a[0][0]*_+a[0][1]*g+a[0][2]*w),p[1]=s(a[1][0]*_+a[1][1]*g+a[1][2]*w),p[2]=s(a[2][0]*_+a[2][1]*g+a[2][2]*w)}}function me(e,t,n=.5){if(!e(t,0))return 0;let o=0;for(let r=0;r<16;r++){let a=(o+n)/2;e(t,a)?o=a:n=a}return o}var G=e=>Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,"0"),_n=e=>`#${G(e[0])}${G(e[1])}${G(e[2])}`,de=(e,t,n)=>_n(pe([e,t,n],"srgb"));function It(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 k(n,"srgb","oklch").map(x)}var fe=["hex","srgb","css","hsl","hwb","oklch","oklab","lch","lab","p3","rec2020"],Dt={hex:"HEX",srgb:"RGB",css:"CSS",hsl:"HSL",hwb:"HWB",oklch:"OKLCH",oklab:"OKLab",lch:"LCH",lab:"Lab",p3:"P3",rec2020:"Rec2020"},Gt=["srgb","css","hsl","hwb","hex"],He=e=>!Gt.includes(e),Pt=e=>e==="hex"||e==="css"?"srgb":e,Sn=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"}),Xn=e=>Sn[e]||"oklch",An=Object.assign(Object.create(null),{srgb:"srgb",hsl:"hsl",hwb:"hwb",oklch:"oklch",oklab:"oklab",lch:"lch",lab:"lab","display-p3":"p3",rec2020:"rec2020"}),jn=e=>An[e]||"oklch",ge=.5,Bt=(e,t,n)=>Object.freeze(["R","G","B"].map(o=>Object.freeze({k:o,min:0,max:e,step:t,scale:n}))),kt=Bt(255,1,255),wt=Bt(1,.01,1),J={oklch:[{k:"L",min:0,max:100,step:1,scale:100},{k:"C",min:0,max:ge,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:kt,css:kt,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:wt,rec2020:wt},Ct=e=>e>=1?0:e>=.1?1:e>=.01?2:3,Xt=(e,t,n)=>t==="oklch"?[e[0],e[1],e[2]]:Gt.includes(n)?t==="srgb"?pe(e,"srgb"):k(pe(e,"srgb"),"srgb",t):k(e,"oklch",t);function xe(e,t){let n=Xt(e,Pt(t),t);return J[t].map((o,r)=>{let a=x(n[r])*o.scale;return pn(Math.abs(a)<.5*o.step?0:a,o.min,o.max)})}function jt(e,t,n,o){let r=Pt(t),a=Xt(e,r,t).map(x);a[n]=o/J[t][n].scale;let s=k(a,r,"oklch");return[x(s[0]),x(s[1]),x(s[2])]}function Kt(e,t){if(!He(t))return"sRGB";let n=pe(e,"srgb");return Math.max(...n)<.03||Math.min(...n)>.97||Ne(e,"srgb")?"sRGB":Ne(e,"p3")?"P3":"wide"}function Fe(e,t){if(t==="hex")return de(e[0],e[1],e[2]);let n=J[t],o=xe(e,t),r=a=>{let s=o[a].toFixed(Ct(n[a].step));return n[a].k==="H"&&+s==360?0 .toFixed(Ct(n[a].step)):s};return t==="css"?`${r(0)}, ${r(1)}, ${r(2)}`:t==="oklch"||t==="oklab"||t==="lch"||t==="lab"?`${r(0)}% ${r(1)} ${r(2)}`:t==="hsl"||t==="hwb"?`${r(0)} ${r(1)}% ${r(2)}%`:`${r(0)} ${r(1)} ${r(2)}`}var vt=(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 Wt(e,t,n){let o=x(n);if(t==="hex")return de(e[0],e[1],e[2])+(o<.999?G(o):"");let r=Fe(e,t);if(o>=.999)return vt(r,t);let a=+o.toFixed(3);return t==="css"?`rgba(${r}, ${a})`:vt(`${r} / ${a}`,t)}var Yt=(()=>{try{return document.createElement("canvas").getContext("2d",{colorSpace:"display-p3"})?.getContextAttributes?.().colorSpace==="display-p3"}catch{return!1}})(),Ie=Yt?{colorSpace:"display-p3"}:{},Tn=Yt?"p3":"srgb",Me=(e,t)=>{let n=e.length-1,o=Math.max(0,Math.min(n,t*n)),r=Math.floor(o),a=o-r;return e[r]*(1-a)+e[Math.min(r+1,n)]*a},Ln=(e,t)=>{let n=be(e,t),o=new Float64Array(128);for(let r=0;r<128;r++)o[r]=me(n,r/127);return o},Vn="var(--tw-checker)",On=Object.assign(Object.create(null),{srgb:"srgb","display-p3":"p3",rec2020:"rec2020","prophoto-rgb":"prophoto-rgb"}),Xe=/^(rgba?|hsla?|hwb)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,je=/^(oklch|oklab|lch|lab|color)\([ \t\n\r\f]*([^)]*?)[ \t\n\r\f]*\)$/i,Rn=/^(srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/i,we=/^#?([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,De,Zt=()=>De===void 0?De=document.createElement("canvas").getContext("2d"):De,Nn=/^(#[0-9a-f]{3,8}|[a-z][a-z-]*(?:\([\w\s.,%+\-\/]*\))?)$/i;function zn(e){if(e=String(e??"").trim(),!Nn.test(e))return!1;if(we.test(e))return!0;if(je.test(e))return In(e);if(Xe.test(e))return Ut(e)!==null;let t=Zt();return t?["#000","#fff"].some(n=>{t.fillStyle=n;let o=t.fillStyle;return t.fillStyle=e,t.fillStyle!==o}):!0}var Ke="[+-]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?",Hn=new RegExp("^"+Ke+"$","i"),Fn=new RegExp("^"+Ke+"%$","i"),zt=new RegExp("^("+Ke+")(deg|grad|rad|turn)$","i"),We=/[ \t\n\r\f]+/,Ye=/^none$/i,Ge=e=>e.replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g,""),Pe=e=>!!e&&!We.test(e),P=e=>Ye.test(e)?"none":Hn.test(e)?"num":Fn.test(e)?"pct":zt.test(e)?"angle":null,Be=e=>{let t=zt.exec(e);if(!t)return x(parseFloat(e));let n=parseFloat(t[1]),o=t[2].toLowerCase();return x(o==="turn"?n*360:o==="grad"?n*.9:o==="rad"?n*180/Math.PI:n)};function Ut(e){let t=Xe.exec(e);if(!t)return null;let n=t[1].toLowerCase().replace(/a$/,""),o=t[2],r,a,s;if(o.includes(",")){if(n==="hwb")return null;let u=o.split(",").map(Ge);if(u.length<3||u.length>4||!u.every(Pe)||(r=u.slice(0,3),a=u[3],s=r.map(P),n==="rgb"?!(s.every(b=>b==="num")||s.every(b=>b==="pct")):!((s[0]==="num"||s[0]==="angle")&&s[1]==="pct"&&s[2]==="pct"))||a!==void 0&&P(a)!=="num"&&P(a)!=="pct")return null}else{let u=o.split("/");if(u.length>2||(r=u[0].split(We).filter(Boolean),r.length!==3))return null;if(u.length===2){a=Ge(u[1]);let b=Pe(a)?P(a):null;if(!b||b==="angle")return null}if(s=r.map(P),n==="rgb"?!s.every(b=>b&&b!=="angle"):!(s[0]&&s[0]!=="pct"&&s[1]&&s[1]!=="angle"&&s[2]&&s[2]!=="angle"))return null}let l=(u,b)=>Ye.test(u)?0:/%$/.test(u)?parseFloat(u)/100*b:parseFloat(u),h=a===void 0?1:d(l(a,1),0,1);return[n==="rgb"?k([d(l(r[0],255)/255,0,1),d(l(r[1],255)/255,0,1),d(l(r[2],255)/255,0,1)],"srgb","oklch"):k([s[0]==="none"?0:Be(r[0]),d(l(r[1],100),0,100),d(l(r[2],100),0,100)],n,"oklch"),h]}var In=e=>{let t=je.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(We).filter(Boolean);if(n==="color"&&!Rn.test(r.shift()||"")||r.length!==3)return!1;let a=n==="lch"||n==="oklch";if(!r.every((s,l)=>{let h=P(s);return h&&(a&&l===2?h!=="pct":h!=="angle")}))return!1;if(o.length===2){let s=Ge(o[1]),l=Pe(s)?P(s):null;if(!l||l==="angle")return!1}return!0};function ke(e){if(e=String(e??"").trim(),we.test(e)){let l=e.replace("#",""),h=1;l.length===4?(h=parseInt(l[3]+l[3],16)/255,l=l.slice(0,3)):l.length===8&&(h=parseInt(l.slice(6,8),16)/255,l=l.slice(0,6));let[p,u,b]=It("#"+l);return[p,u,b,h]}let t=je.exec(e);if(t){let l=t[1].toLowerCase(),[h,p]=t[2].split("/").map(v=>v.trim()),u=h.split(/\s+/).filter(Boolean),b=l;if(l==="color"&&(b=On[(u[0]||"").toLowerCase()],u=u.slice(1),!b))return[.7,.1,280,1];let f=(v,M=1)=>!v||Ye.test(v)?0:x(parseFloat(v))*(/%$/.test(v)?M:1),_=p?d(f(p,.01),0,1):1,g=l==="lab"?[d(f(u[0]),0,100),f(u[1],1.25),f(u[2],1.25)]:l==="lch"?[d(f(u[0]),0,100),Math.max(0,f(u[1],1.5)),Be(u[2]||"0")]:l==="color"?[f(u[0],.01),f(u[1],.01),f(u[2],.01)]:l==="oklab"?[d(f(u[0],.01),0,1),f(u[1],.004),f(u[2],.004)]:[d(f(u[0],.01),0,1),Math.max(0,f(u[1],.004)),Be(u[2]||"0")],w=b==="oklch"?g:k(g,b,"oklch");return[x(w[0]),d(x(w[1]),0,ge),(x(w[2])%360+360)%360,_]}if(Xe.test(e)){let l=Ut(e);if(!l)return[0,0,0,1];let[h,p]=l;return[x(h[0]),d(x(h[1]),0,ge),(x(h[2])%360+360)%360,p]}let n=Zt();if(!n)return[0,0,0,1];n.fillStyle="#000",n.fillStyle=e;let o=n.fillStyle;if(we.test(o))return ke(o);let r=o.match(/^rgba?\(([^)]*)\)/i),a=((r?r[1]:"").match(/-?[\d.]+(?:e[+-]?\d+)?/gi)||[0,0,0]).map(Number),s=k([a[0]/255,a[1]/255,a[2]/255],"srgb","oklch");return[x(s[0]),x(s[1]),x(s[2]),a[3]!=null?d(x(a[3]),0,1):1]}function qt(e,t){let[n,o,r,a]=ke(e.value||"#7c5cff"),s=fe.includes(e.mode)?e.mode:"oklch",l=NaN,h=null,p=[],u=NaN,b="",f=()=>Wt([n,o,r],s,a),_=C("div","tw-color-body"),g=C("div","tw-wg-area"),w=document.createElement("canvas");w.className="tw-wg-canvas";let v=C("div","tw-wg-thumb");g.append(w,v);let M=C("div","tw-wg-hue"),A=document.createElement("canvas");A.className="tw-wg-hue-canvas";let B=C("div","tw-wg-hue-thumb");M.append(A,B);let S=C("div","tw-wg-alpha"),Ze=C("div","tw-wg-alpha-grad"),Ce=C("div","tw-wg-hue-thumb");S.append(Ze,Ce),w.setAttribute("aria-hidden","true"),A.setAttribute("aria-hidden","true"),g.tabIndex=0,g.setAttribute("role","group"),g.setAttribute("aria-label","Colour plane: chroma across, lightness up"),M.tabIndex=0,M.setAttribute("role","slider"),M.setAttribute("aria-label","Hue"),M.setAttribute("aria-valuemin","0"),M.setAttribute("aria-valuemax","360"),S.tabIndex=0,S.setAttribute("role","slider"),S.setAttribute("aria-label","Alpha"),S.setAttribute("aria-valuemin","0"),S.setAttribute("aria-valuemax","1");let ze=C("div","tw-color-mode-row"),R=C("select","tw-color-mode");R.setAttribute("aria-label","Color mode"),fe.forEach(c=>{let i=document.createElement("option");i.value=c,i.textContent=Dt[c],R.append(i)}),R.value=s;let Ue=C("span","tw-color-gamut");ze.append(R,Ue);let N=C("div","tw-color-channels");_.append(g,M,S,ze,N);let y=w.getContext("2d",Ie),qe=A.getContext("2d"),X=document.createElement("canvas"),Jt=X.getContext("2d",Ie),ve=null,ye=()=>{let c=g.clientWidth,i=g.clientHeight;if(c<2)return;let m=window.devicePixelRatio||1,$=He(s)?"p3":"srgb",E=Ln(r,$);h=E;let V=Math.round(c*m),H=Math.round(i*m),F=Math.max(1,Math.round(V/4)),j=Math.max(1,Math.round(H/4));(X.width!==F||X.height!==j)&&(X.width=F,X.height=j,ve=new ImageData(F,j,Ie));let ee=ve.data,an=j>1?1/(j-1):0,sn=F>1?1/(F-1):0,cn=Ft(r,Tn),te=[0,0,0];for(let I=0;I<j;I++){let ne=1-I*an,_e=Me(E,ne);for(let D=0;D<F;D++){cn(ne,D*sn*_e,te);let K=(I*F+D)*4;ee[K]=Math.round(d(te[0],0,1)*255),ee[K+1]=Math.round(d(te[1],0,1)*255),ee[K+2]=Math.round(d(te[2],0,1)*255),ee[K+3]=255}}if(Jt.putImageData(ve,0,0),w.width=V,w.height=H,y.imageSmoothingEnabled=!0,y.drawImage(X,0,0,V,H),$!=="srgb"){let I=(ne,_e,D,K)=>{let ln=be(r,ne),Se=[];for(let T=0;T<=100;T++){let z=T/100,Ae=Me(E,z);if(Ae<=0)continue;let st=me(ln,z,Ae);st<=0||Se.push([Math.min(st/Ae*V,V-D*m/2),(1-z)*H])}Se.length<2||(y.save(),y.strokeStyle=_e,y.lineWidth=D*m,y.lineJoin=y.lineCap="round",y.setLineDash(K.map(T=>T*m)),y.beginPath(),Se.forEach((T,z)=>z?y.lineTo(T[0],T[1]):y.moveTo(T[0],T[1])),y.stroke(),y.restore())};I("srgb","rgba(255,255,255,0.7)",1.5,[]),I("p3","rgba(255,255,255,0.4)",1,[3,3])}l=r},Je=.7,Qe=c=>{let i=k([Je,me(be(c,"srgb"),Je),c],"oklch","srgb");return`rgb(${d(i[0]*255,0,255)|0},${d(i[1]*255,0,255)|0},${d(i[2]*255,0,255)|0})`},et=0,Qt=()=>{let c=Math.max(1,M.clientWidth),i=Math.max(1,M.clientHeight);if(!(c<2)&&!(c===et&&A.width===c)){et=c,A.width=c,A.height=i;for(let m=0;m<c;m++)qe.fillStyle=Qe(m/(c-1)*360),qe.fillRect(m,0,1,i)}},$e=()=>{let c=h?Me(h,n):.4,i=E=>`${d(E,0,1)*100}%`,m=(E,V)=>{let H=d(E,0,1);return`calc(${H*100}% + ${(.5-H)*V}px)`};v.style.left=i(c>0?o/c:0),v.style.top=i(1-n),B.style.left=m(r/360,16),Ce.style.left=m(a,16),S.setAttribute("aria-valuenow",String(+a.toFixed(2)));let $=Math.round(r);M.setAttribute("aria-valuenow",String($)),M.setAttribute("aria-valuetext",`${$}\xB0`),g.setAttribute("aria-description",`lightness ${Math.round(n*100)}%, chroma ${+o.toFixed(3)}`),Ze.style.background=`linear-gradient(to right, oklch(${n} ${o} ${r} / 0), oklch(${n} ${o} ${r}))`,v.style.background=`oklch(${n} ${o} ${r})`,Ce.style.background=`linear-gradient(oklch(${n} ${o} ${r} / ${a}), oklch(${n} ${o} ${r} / ${a})), var(--tw-dropdown-bg)`,r!==u&&(b=Qe(r),u=r),B.style.background=b},tt=()=>de(n,o,r)+(a<.999?G(a):""),Q=()=>{if(Ue.textContent=Kt([n,o,r],s),s==="hex"){let c=N.querySelector(".tw-color-chan-input");c&&document.activeElement!==c&&(c.value=tt())}else{let c=xe([n,o,r],s);p.forEach((i,m)=>{i.el.contains(document.activeElement)||i.set(c[m])})}},en=()=>{Qt(),ye(),$e()},tn=()=>t(f()),nt=c=>{c&&r!==l&&ye(),$e(),Q()},O=c=>{nt(c),tn()},rt=()=>{if(N.replaceChildren(),p=[],s==="hex"){N.classList.add("tw-color-channels--hex");let c=C("div","tw-color-chan"),i=C("input","tw-color-chan-input");i.type="text",i.spellcheck=!1,i.setAttribute("aria-label","Hex color"),lt(i),pt(i),i.addEventListener("change",()=>{let m=i.value.trim();we.test(m)&&([n,o,r,a]=ke(m),O(!0))}),i.addEventListener("blur",Q),i.addEventListener("keydown",m=>{m.key==="Enter"&&i.blur()}),it(i,tt),c.append(ct("span","tw-color-chan-label","HEX"),i),N.append(c)}else{N.classList.remove("tw-color-channels--hex");let c=xe([n,o,r],s);J[s].forEach((i,m)=>{let $=mt({label:i.k,value:c[m],min:i.min,max:i.max,step:i.step},E=>{[n,o,r]=jt([n,o,r],s,m,d(E,i.min,i.max)),O(!0)});$.el.addEventListener("focusout",Q),p.push($),N.append($.el)})}Q()},Ee=c=>h?Me(h,c):.4,nn=c=>oe(c,g);re(g,c=>{let[i,m]=nn(c);n=1-m,o=i*Ee(n),O(!1)});let ot=0;g.addEventListener("keydown",c=>{if(c.key==="Home"||c.key==="End"){c.preventDefault();return}let i=c.shiftKey?10:1,m=c.key==="ArrowRight"?i:c.key==="ArrowLeft"?-i:0,$=c.key==="ArrowUp"?i:c.key==="ArrowDown"?-i:c.key==="PageUp"?10:c.key==="PageDown"?-10:0;if(!m&&!$)return;c.preventDefault();let E=Ee(n),V=d((E>0?o/E:0)+m*.01,0,1);n=d(n+$*.01,0,1),o=V*Ee(n),O(!1),clearTimeout(ot),ot=setTimeout(()=>{g.isConnected&&ht(g.getAttribute("aria-description")||"")},250)});let rn=c=>oe(c,M)[0]*360;re(M,c=>{r=rn(c),O(!0)}),M.addEventListener("keydown",c=>{let i=Te(c,r,1,0,360);i!=null&&(c.preventDefault(),r=d(i,0,360),O(!0))});let on=c=>oe(c,S)[0];re(S,c=>{a=on(c),O(!1)}),S.addEventListener("keydown",c=>{let i=Te(c,a,.01,0,1);i!=null&&(c.preventDefault(),a=d(i,0,1),O(!1))});let at=c=>{s=c,R.value=c,rt(),ye(),$e()};return R.addEventListener("change",()=>{at(R.value),e.onMode&&e.onMode()}),rt(),{el:_,set:c=>{let i=document.activeElement;i&&_.contains(i)&&i.matches("input")&&i.blur(),[n,o,r,a]=ke(c),nt(!0)},get:()=>f(),mode:()=>s,setMode:c=>{c!==s&&fe.includes(c)&&at(c)},reflow:en,swatchCss:()=>`linear-gradient(oklch(${n} ${o} ${r} / ${a}), oklch(${n} ${o} ${r} / ${a})), ${Vn}`,valueText:()=>Fe([n,o,r],s)+(a<.999?s==="hex"?G(a):` / ${+a.toFixed(2)}`:"")}}function Dn(e,t){let{root:n,trigger:o,right:r}=bt("tw-color",e.label??"Colour"),a=C("span","tw-trigger-chip tw-color-swatch"),s=C("span","tw-trigger-value");r.append(a,s);let l=C("div","tw-color-pop"),h=()=>{a.style.background=p.swatchCss(),s.textContent=p.valueText()},p=qt({value:e.value,onMode:()=>h()},u=>{h(),t(u)});return l.append(p.el),n.append(l),ut(n,o,l,{fallbackH:340,onOpen:p.reflow,onReflow:p.reflow}),h(),{el:n,set:u=>{u!=null&&(p.set(u),h())},get:()=>p.get()}}var Un=(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)})`;Le("color",Dn);Le("colorpicker",qt);export{Xn as a,jn as b,Vn as c,zn as d,ke as e,qt as f,Un as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i,i as y,r as c}from"./chunk-
|
|
1
|
+
import{h as i,i as y,r as c}from"./chunk-7OSCMZ2J.js";var g=new Set(["__proto__","constructor","prototype"]),h=(e,n)=>n.reduce((r,t)=>i(r)&&Object.prototype.hasOwnProperty.call(r,t)?r[t]:void 0,e),S=e=>{let n={};for(let r of Object.keys(e)){let t=r.split(".");if(t.some(s=>g.has(s)))continue;let o=n;for(let s of t.slice(0,-1))o=i(o[s])?o[s]:o[s]={};o[t[t.length-1]]=e[r]}return n},d=e=>y(e)&&(typeof CSS>"u"||!CSS.supports||CSS.supports("color",e)),f=(e,n,r)=>Array.isArray(e)?Array.isArray(n)&&(e.every(t=>!i(t))?n.length===e.length&&n.every((t,o)=>f(e[o],t,r)):n.length>=2&&n.length<=64&&n.every(t=>f(e[0],t,r))):i(e)?i(n)&&!Array.isArray(n)&&Object.keys(e).every(t=>f(e[t],n[t],r)):typeof n==typeof e&&(typeof n!="number"||Number.isFinite(n))&&(!r||!y(e)||d(n)),m=(e,n)=>n!=null&&!e.el?.closest(".is-disabled")&&f(e.get(),n,e.m.type==="color"||e.m.type==="gradient")&&(!e.m.options||e.m.options.some(r=>JSON.stringify(c(r))===JSON.stringify(n))),k=(e,n,r=[])=>e.map(t=>[t,h(n,t.path.slice(r.length))]).filter(([t,o])=>m(t,o)),w=(e,n)=>{let r={};for(let[t,o]of n){let s=r;for(let a of t.path.slice(0,-1))s=s[a]||(s[a]={});s[t.path[t.path.length-1]]=o}e.fromJSON({values:r})};function A(e,n,r){let t=JSON.parse(r),o;if(n.kind==="row"){let s=n.entry,a=i(t)&&!Array.isArray(t)&&Object.keys(t).length===1&&Object.prototype.hasOwnProperty.call(t,s.key)?t[s.key]:t;o=m(s,a)?[[s,a]]:[]}else{if(!i(t)||Array.isArray(t))return!1;let s=e.entries.filter(a=>a.path.length>n.path.length&&n.path.every((p,l)=>a.path[l]===p));o=[];for(let a of[t,S(t)])for(let p of[h(a,n.path),a]){let l=i(p)?k(s,p,n.path):[];l.length>o.length&&(o=l)}}return o.length?(w(e,o),o.length):!1}var u=new WeakMap;function O(e,n,r,t){if(!r.alive())return;let o=!1;if(e!==null)try{o=n(e)}catch{}if(r.announce(o?`${o} value${o===1?"":"s"} pasted`:e===null?"Couldn't read the clipboard":"Nothing to paste"),t){let s=o?"is-pasted":"is-refused";t.classList.remove("is-pasted","is-refused"),t.classList.add(s),clearTimeout(u.get(t)),u.set(t,setTimeout(()=>t.classList.remove(s),450))}return!!o}export{O as pasteInto,A as pasteScope,k as pick};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as a,d as b,e as c,f as d,g as e}from"./chunk-W3JNIJ2F.js";import"./chunk-4ATI34PB.js";import"./chunk-7OSCMZ2J.js";export{a as CHECKER,d as createPickerBody,b as isColor,e as oklchStr,c as parseColor};
|
package/dist/tweaks/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as ve,A as en,B as Nn,C as Ze,D as In,E as tn,F as nn,G as Rn,H as jn,I as Dn,J as St,K as xt,L as on,M as Fn,N as rn,P as $n,Q as Kn,R as Tt,S as At,T as Bn,U as qn,V as Yn,W as Xn,X as Vn,Y as Oe,Z as Ot,_ as we,ba as sn,ca as ke,d as Eo,e as Lo,f as Ln,g as j,h as be,i as Cn,j as Mn,k as Sn,l as xn,m as lt,n as Tn,o as An,p as On,q as Ct,r as Ie,s as Pn,t as _n,u as C,v as he,w as z,x as Hn,y as Mt,z as ct}from"./chunk-JWHF6V72.js";var Be={number:()=>import("./heavy-KPG2LKVX.js"),interval:()=>import("./interval-LPI5MWBB.js"),color:()=>import("./colour-DJHDXBXF.js"),gradient:()=>import("./gradient-IXD2AINY.js"),shadow:()=>import("./shadow-SKTAWRUK.js"),sides:()=>import("./sides-RVC5PQY3.js"),tabs:()=>import("./tabs-LB5KTQXF.js"),image:()=>import("./image-E7OAWFFK.js"),fpsgraph:()=>import("./monitor-PEBMH5MH.js"),monitor:()=>import("./monitor-PEBMH5MH.js"),spring:()=>import("./spring-QIVBIUPF.js"),cubicbezier:()=>import("./bezier-EIWM4A6M.js"),motion:()=>Promise.all([import("./bezier-EIWM4A6M.js"),import("./spring-QIVBIUPF.js")]).then(()=>import("./motion-QSDSYDKR.js")),point:()=>import("./point-PK3CZSBO.js"),plot:()=>import("./plot-SFD5OPF6.js")},Pt={},Co=t=>ve(t)||!Be[t]?null:Pt[t]||(Pt[t]=Be[t]().catch(n=>{throw delete Pt[t],console.error(`[tweaks] control chunk "${t}" failed to load:`,n),n})),an=(t,n=new Set)=>{for(let s of t)if(s&&(Be[s.type]&&n.add(s.type),s.children&&an(s.children,n),s.pages))for(let a of s.pages)an(a.children,n);return n},et=t=>{let n=[...an(t)].map(Co).filter(Boolean);return n.length?Promise.all(n):null};function Re(t,n,s=0){if(Ht(t))return null;let a=xo(t,n,s);return a&&n&&typeof n=="object"&&(typeof n.render=="function"&&(a.render=n.render),n.disabled!=null&&(a.disabled=n.disabled),n.hint!=null&&(a.hint=String(n.hint)),n.persist===!1&&(a.persist=!1)),a}var Pe=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),Ht=t=>t==="__proto__"||t==="constructor"||t==="prototype",_e=(t,n)=>t!==n&&!(be(t)&&be(n)&&JSON.stringify(t)===JSON.stringify(n)),Nt=(t,n,s)=>{t.set(s),t.set(n)},Wn=t=>Array.isArray(t.options)&&{type:"radiogrid",options:t.options,value:t.value??Ie(t.options[0]),cols:t.cols},Mo=(t,...n)=>{let s=(n.length?n:[0]).map(d=>Ct(Number.isFinite(+d)?+d:0)),a=t.min??Math.min(...s.map(d=>d[0])),i=t.max??Math.max(...s.map(d=>d[1]));return{min:a,max:i,step:t.step??lt(a,i)}},ln=(t,n)=>t.label==null?n:String(t.label),zn=t=>typeof t=="function"?t:void 0,Jn=t=>typeof t=="string"&&t.trim()?t.trim().slice(0,12):void 0,_t=["stiffness","damping","mass","visualDuration","bounce"],Gn={slider:t=>{let n=Mo(t,t.value??t.min??0);return{value:t.value??n.min,...n,soft:t.soft,unit:Jn(t.unit),format:zn(t.format),parse:zn(t.parse)}},number:t=>({value:t.value??0,min:t.min,max:t.max,step:t.step??1,soft:t.soft,unit:Jn(t.unit)}),checkbox:t=>({value:!!t.value}),radiogrid:Wn,segmented:Wn,list:t=>Array.isArray(t.options)&&{options:t.options,value:t.value??Ie(t.options[0])},text:t=>({value:t.value??"",rows:t.rows,placeholder:t.placeholder}),spring:t=>{let n=be(t.value)?t.value:t,s={stiffness:n.stiffness??300,damping:n.damping??26,mass:n.mass??1};Number.isFinite(+n.visualDuration)&&(s.visualDuration=+n.visualDuration),Number.isFinite(+n.bounce)&&(s.bounce=+n.bounce);let a=t.mode??n.mode;return(a==="time"||a==="physics")&&(s.mode=a),{value:s}},motion:t=>{let n=typeof t.value=="string"||Array.isArray(t.value)?{...t,curve:t.value}:be(t.value)?t.value:t,s=_t.some(i=>n[i]!=null),a={curve:"ease",duration:300,...s?{}:{visualDuration:.5,bounce:.2}};for(let i of["mode","curve","duration",..._t])n[i]!=null&&(a[i]=n[i]);return a.mode!=="easing"&&a.mode!=="spring"&&(a.mode=s?"spring":"easing"),{value:a}},point:t=>{if(!Array.isArray(t.components)||!t.components.length)return!1;let n=new Set,s=t.components.map((a,i)=>{let d=String(a.key??((a.label?String(a.label).toLowerCase():"")||`c${i}`)),c=d,b=2;for(;n.has(c);)c=`${d}-${b++}`;return n.add(c),{...a,key:c}});return{components:s,pad:t.pad,invertY:t.invertY,value:Object.fromEntries(s.map(a=>[a.key,a.value??0]))}},buttongroup:t=>({buttons:t.buttons}),separator:()=>({}),tabs:(t,n)=>{if(!t.pages||typeof t.pages!="object"||!Object.keys(t.pages).length)return!1;let s=new Set;return{pages:Object.entries(t.pages).map(([a,i])=>{let d=a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tab",c=d,b=2;for(;s.has(c);)c=`${d}-${b++}`;return s.add(c),{key:c,title:a.trim()?a:"Tab",children:Object.entries(i).map(([k,T])=>Re(k,T,n+1)).filter(Boolean)}})}}},So=Object.assign(Object.create(null),{list:"options",radiogrid:"options",segmented:"options",point:"components",tabs:"pages"});function xo(t,n,s=0){if(s>64)return null;let a=Ln(t),i=(d,c,b=a)=>({type:d,key:t,label:b,...c});if(be(n)&&!Array.isArray(n)&&Pe(Gn,n.type)){let d;try{d=Gn[n.type](n,s)}catch(c){return console.error(`[tweaks] malformed "${n.type}" schema value for "${t}" \u2014 control skipped:`,c),null}if(d)return i(String(n.type),d,ln(n,a));if(Pe(n,So[n.type]))return console.error(`[tweaks] malformed "${n.type}" schema value for "${t}" \u2014 control skipped`),null}else if(be(n)&&!Array.isArray(n)&&typeof n.type=="string"&&(Be[n.type]||ve(n.type))){let{type:d,label:c,...b}=n;return i(d,b,ln(n,a))}if(Array.isArray(n)&&Array.isArray(n[0])&&n[0].length===2&&typeof n[0][0]=="number"){let d=Number.isFinite(+n[1])?+n[1]:+n[0][0],c=Number.isFinite(+n[2])?+n[2]:+n[0][1];return i("interval",{value:n[0].map(Number),min:d,max:c,step:n[3]??lt(d,c)})}if(Array.isArray(n)&&n.length<=4&&typeof n[0]=="number"){let d=n[0],[c,b]=Ct(d),k=n.length>1?n[1]:c,T=n.length>2?n[2]:b;return i("slider",{value:d,min:k,max:T,step:n[3]??lt(k,T)})}if(typeof n=="number"){let[d,c]=Ct(n);return i("slider",{value:n,min:d,max:c,step:lt(d,c)})}return typeof n=="boolean"?i("checkbox",{value:n}):Array.isArray(n)?i("list",{options:n,value:Ie(n[0])}):be(n)&&typeof n.action=="function"?i("button",{action:n.action},ln(n,a)):be(n)&&Array.isArray(n.options)?i("list",{options:n.options,value:n.value??Ie(n.options[0])}):Cn(n)?i("color",{value:n}):typeof n=="string"?i("text",{value:n}):be(n)?i("folder",{children:Object.entries(n).filter(([d,c])=>!(d==="render"&&typeof c=="function")&&!((d==="disabled"||d==="hint")&&c!=null)).map(([d,c])=>Re(d,c,s+1)).filter(Boolean)}):null}var It=new Set(["button","fpsgraph","monitor","buttongroup","separator"]);var Un=Oe('<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"),Qn=Oe('<path d="m5 14 3.5 3.5L19 6.5"/>',"tw-toolbar-btn__check",2.4),Zn=Oe('<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"/>'),eo=Oe('<path d="m17 17 4 4m-2-10a8 8 0 0 0-16 0 8 8 0 0 0 16 0"/>'),cn=t=>Oe('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',t,2.5),to=cn("tw-chevron"),no=Oe('<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"/>'),oo=Oe('<path d="M18 6 6 18m12 0L6 6"/>',"",2.2),dn=Oe('<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 To=3;function Ao(t,n){let s=t.label,{min:a,max:i,step:d}=Tn(t.min,t.max,t.step);t.soft||([a,i]=xn(a,i,d));let c=(i-a)/d<=6,b=Number.isFinite(+t.value)?+t.value:a,k=t.soft&&!c?b:j(b,a,i),T=0,E=Mn(d),L=C("div","tw-slider-wrap"),y=C("div","tw-slider"),se=C("div","tw-slider-hashmarks"),$=C("div","tw-slider-fill"),H=C("div","tw-slider-handle"),B=z("span","tw-slider-label",s),A=C("span","tw-slider-value"),g=typeof t.unit=="string"?t.unit.trim():"",P=document.createTextNode(""),F=g?/^[%°]$/.test(g)?g:" "+g:"";A.append(P),g&&A.append(z("span","tw-slider-unit",F));let ee=t.format,D=t.parse,ie=l=>{if(ee)try{let _=ee(l);if(typeof _=="string"&&_)return _}catch{}return l.toFixed(E)};y.append(se,$,H,B,A),L.append(y),y.tabIndex=0,y.setAttribute("role","slider"),y.setAttribute("aria-label",s),y.setAttribute("aria-valuemin",String(a)),y.setAttribute("aria-valuemax",String(i));let te=l=>Sn(l,a,d),le=c?Array.from({length:Math.max(0,Math.round((i-a)/d)-1)},(l,_)=>(_+1)*d/(i-a)*100):[];for(let l of le){let _=C("div","tw-slider-hashmark");_.style.left=l+"%",se.append(_)}let ne=()=>{let l=j((k-a)/(i-a||1)*100,0,100),_=T?` + ${T.toFixed(1)}px`:"",Q=`${l}%${_}`;$.style.width=T?`calc(${Q})`:l+"%",H.style.left=`max(5px, calc(${Q} - 9px))`;let X=te(k),N=ie(X);P.data=N,y.setAttribute("aria-valuenow",String(X)),y.setAttribute("aria-valuetext",N+F);let V=L.offsetWidth,Te=A.offsetWidth;if(V){Te&&(B.style.maxWidth=Math.max(0,V-Te-30)+"px");let We=Math.max(5,l/100*V+T-9);y.classList.toggle("is-dodge",On(B,A,We,3))}};ne();let J=null,je=1,ce=null,de=!0,qe,Le=null,De=null,rt=`width 0.34s ${rn}`,mt=`left 0.34s ${rn}, opacity 0.15s, transform 0.2s ${Fn}`,f=.2,Fe=l=>{if(!J)return k;let _=L.offsetWidth||J.width,Q=j((l-J.left)/je/_,0,1);return j(a+Q*(i-a),a,i)},q=(l,_=!0)=>{l=+l,Number.isFinite(l)&&(k=c?j(te(l),a,i):t.soft?l:j(l,a,i),ne(),_&&n(te(k)))},pe=Math.max(1,Math.round((i-a)/d)),Ye=.2,gt=.3,Xe=520,yt=27,Ve=l=>(l-a)/d,Z=0,oe=0,Y=0,ae=!1,Ce=null,G=k,$e=0,Me=()=>{Y&&cancelAnimationFrame(Y),Y=0,$e=0},Se=l=>{if(!y.isConnected){Me();return}let _=$e?Math.min((l-$e)/1e3,.05):1/60;$e=l;let Q=L.offsetWidth||J&&J.width||1,X=Ve(j(G,a,i)),N=j(Math.round(X+Ye),0,pe),V=ae?N+gt*j(X-N,-.5,.5):N;if(on&&on.matches)Z=V,oe=0;else{let Te=_,We=1/240;for(;Te>1e-4;){let He=Math.min(We,Te);Te-=He;let ze=Xe*(V-Z)-yt*oe;oe+=ze*He,Z+=oe*He,Z<0&&(Z=0,oe=0),Z>pe&&(Z=pe,oe=0)}}T=(Z-N)*d/(i-a||1)*Q,k=j(a+N*d,a,i),ne(),N!==Ce&&(Ce=N,n(te(k))),!ae&&Math.abs(oe)<.004&&Math.abs(Z-N)<.004?(Z=N,oe=0,T=0,ne(),Me(),y.classList.remove("is-active")):Y=requestAnimationFrame(Se)},st=l=>{Z=Ve(k),oe=0,ae=!0,Ce=Math.round(Ve(k)),G=Fe(l),Y||(Y=requestAnimationFrame(Se))};y.addEventListener("pointerdown",l=>{if(!A.classList.contains("is-editing")&&!(l.button!==0||ce)){l.preventDefault(),y.focus({focusVisible:!1}),De=l.pointerId;try{l.target.setPointerCapture(l.pointerId)}catch{}clearTimeout(qe),y.style.transition="",ce={x:l.clientX,y:l.clientY},de=!0,y.classList.add("is-active"),J=L.getBoundingClientRect(),je=J.width/(L.offsetWidth||J.width),c?($.style.transition="",H.style.transition="",st(l.clientX)):($.style.transition=rt,H.style.transition=mt,q(Fe(l.clientX)))}}),y.addEventListener("pointermove",l=>{if(!(!ce||l.pointerId!==De)){if(l.buttons===0){xe();return}if(de&&Math.hypot(l.clientX-ce.x,l.clientY-ce.y)>To&&(de=!1,y.classList.add("is-dragging"),c||($.style.transition="",H.style.transition="")),!de)if($n(y,J,l.clientX),c)G=Fe(l.clientX);else{let _;if(l.altKey){Le||(Le={x:l.clientX,v:k});let Q=L.offsetWidth||J.width;_=j(Le.v+(l.clientX-Le.x)/Q*(i-a)*f,a,i)}else Le=null,_=Fe(l.clientX);q(_)}}});let xe=l=>{!ce||l&&l.pointerId!==De||(c?(ae=!1,y.classList.remove("is-dragging"),Y||(Y=requestAnimationFrame(Se))):(qe=setTimeout(()=>{$.style.transition="",H.style.transition=""},360),y.classList.remove("is-active","is-dragging")),Kn(y),ce=null,Le=null,De=null)};y.addEventListener("pointerup",xe),y.addEventListener("pointercancel",xe),y.addEventListener("lostpointercapture",xe),Nn(y,ne),Mt(ne),ct(y,[[window,"resize"]],ne),y.addEventListener("keydown",l=>{if(l.target!==y||ce)return;let _=An(l,k,d,a,i,(i-a)/10||d*10);_!=null&&(l.preventDefault(),c&&(Me(),T=0,y.classList.remove("is-active")),q(j(_,a,i)))});let me;A.addEventListener("mouseenter",()=>{me=setTimeout(()=>A.classList.add("is-editable"),800)}),A.addEventListener("mouseleave",()=>{clearTimeout(me),A.classList.contains("is-editing")||A.classList.remove("is-editable")}),A.addEventListener("pointerdown",l=>{l.pointerType&&l.pointerType!=="mouse"?(A.classList.add("is-editable"),l.stopPropagation()):A.classList.contains("is-editable")&&l.stopPropagation()});let ue=()=>{if(A.classList.contains("is-editing"))return;let l=C("input","tw-slider-input");l.type="text",l.inputMode=D?"text":"decimal",Ze(l),l.value=D?ie(te(k)):te(k).toFixed(E);let _=l.value;l.style.width=_.length+1+"ch",A.classList.add("is-editing"),A.replaceWith(l),l.focus(),l.select();let Q=()=>{l.replaceWith(A),A.classList.remove("is-editing","is-editable")},X=()=>{let N=l.value,V=NaN;if(N!==_)try{V=D?D(N):Number(N.replace(g,"").trim()||NaN)}catch{}Number.isFinite(V)&&q(t.soft?V:j(V,a,i)),Q()};l.addEventListener("pointerdown",N=>N.stopPropagation()),l.addEventListener("blur",X),l.addEventListener("keydown",N=>{N.key==="Enter"?(l.removeEventListener("blur",X),y.focus(),X()):N.key==="Escape"&&(N.stopPropagation(),l.removeEventListener("blur",X),y.focus(),Q())})};return A.addEventListener("click",()=>{A.classList.contains("is-editable")&&ue()}),y.addEventListener("keydown",l=>{l.key==="Enter"&&l.target===y&&!ce&&(l.preventDefault(),ue())}),{el:L,set:l=>q(l,!1),get:()=>te(k)}}function Oo(t,n){let s=C("div","tw-row"),a=Vn([{value:"off",label:"Off"},{value:"on",label:"On"}],t.value?"on":"off",i=>n(i==="on"),t.label);return s.append(z("span","tw-row-label",t.label),a.el),{el:s,set:i=>a.set(i?"on":"off"),get:()=>a.get()==="on"}}function Po(t,n){let s=t.options||[],a=Math.min(3,Math.max(2,t.cols||(s.length<=3?s.length:s.length===4?2:3))),i=C("div","tw-radiogrid"),d=C("div","tw-radiogrid-grid");d.style.setProperty("--tw-rg-cols",a),d.setAttribute("role","radiogroup"),d.setAttribute("aria-label",t.label);let c=t.value??Ie(s[0]),b=s.map(E=>{let L=Yn("tw-radiogrid-btn",E,y=>T(y));return d.append(L),L}),k=()=>qn(b,c),T=(E,L=!0)=>{E!=null&&!b.some(y=>y._twVal===E)||(c=E,k(),L&&n(E))};return d.addEventListener("keydown",E=>{let L=Bn(b,c);if(L<0)return;let y=Xn(E.key,L,b.length,a);y<0||(E.preventDefault(),y!==L&&(T(b[y]._twVal),b[y].focus()))}),k(),i.append(z("span","tw-radiogrid-label",t.label),d),{el:i,set:E=>T(E,!1),get:()=>c}}var _o=/^(?:#[0-9a-f]{3,8}|[a-z]+|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color|var)\([^()]*\))$/i,Ho=cn("tw-select-chevron");function No(t,n){let s=t.value,a=t.options.map(g=>({value:Ie(g),label:_n(g),color:g&&typeof g=="object"&&typeof g.color=="string"&&_o.test(g.color.trim())?g.color.trim():""})),i=C("div","tw-select"),d=he("tw-select-trigger");d.setAttribute("aria-haspopup","listbox"),d.setAttribute("aria-expanded","false");let c=C("span","tw-select-right"),b=g=>`linear-gradient(${g}, ${g}), var(--tw-checker)`,k=g=>{let P=C("span","tw-option-swatch");return P.style.background=b(g),P},T=C("span","tw-option-swatch"),E=C("span","tw-select-value");c.append(T,E),c.insertAdjacentHTML("beforeend",Ho),d.append(z("span","tw-select-label",t.label),c);let L=C("div","tw-select-dropdown");L.setAttribute("role","listbox");let y=a.map(g=>{let P=he("tw-select-option");return P.setAttribute("role","option"),g.color&&P.append(k(g.color)),P.append(z("span","tw-option-label",g.label)),P.dataset.value=g.value,P.addEventListener("click",()=>{$(g.value),A.close()}),L.append(P),P});i.append(d,L);let se=()=>{let g=a.find(P=>P.value===s);E.textContent=g?.label??s,T.style.display=g?.color?"":"none",g?.color&&(T.style.background=b(g.color)),y.forEach(P=>{let F=P.dataset.value===String(s);P.dataset.selected=String(F),P.setAttribute("aria-selected",String(F))})},$=(g,P=!0)=>{g!=null&&!a.some(F=>F.value===g)||(s=g,se(),P&&n(g))},H="",B=0,A=St(i,d,L,{width:"match",fallbackH:200,gap:4,onOpen:()=>{H="",(y.find(g=>g.dataset.value===String(s))||y[0])?.focus()}});return d.addEventListener("keydown",g=>{!A.isOpen()&&(g.key==="ArrowDown"||g.key==="ArrowUp")&&(g.preventDefault(),A.open())}),L.addEventListener("keydown",g=>{let P=y.indexOf(document.activeElement),F=P,ee=!!H&&performance.now()-B<600;if(g.key==="ArrowDown")F=P<0?0:Math.min(y.length-1,P+1);else if(g.key==="ArrowUp")F=P<0?y.length-1:Math.max(0,P-1);else if(g.key==="Home")F=0;else if(g.key==="End")F=y.length-1;else if(g.key.length===1&&(g.key!==" "||ee)&&!g.ctrlKey&&!g.metaKey&&!g.altKey&&!g.isComposing){let D=g.key.toLowerCase();H=(ee?H:"")+D,B=performance.now();let ie=H===D.repeat(H.length/D.length),te=ie?D:H,le=ne=>a.findIndex((J,je)=>je>=ne&&String(J.label).toLowerCase().trimStart().startsWith(te));if(F=le(ie?P+1:P),F<0&&(F=le(0)),F<0&&g.key!==" ")return}else return;g.preventDefault(),y[F]?.focus()}),se(),{el:i,set:g=>$(g,!1),get:()=>s}}function Io(t){let n=z("button","tw-button",t.label);return n.addEventListener("click",()=>typeof t.action=="function"&&t.action()),Ot(n)}function Ro(t){let n=C("div","tw-row tw-buttongroup");t.label&&n.append(z("span","tw-row-label",t.label));let s=C("div","tw-buttongroup-btns"),a=Array.isArray(t.buttons)?t.buttons.map(i=>[i.label??"Button",i.action]):Object.entries(t.buttons||{});for(let[i,d]of a){let c=z("button","tw-buttongroup-btn",i);c.addEventListener("click",()=>typeof d=="function"&&d()),s.append(c)}return n.append(s),Ot(n)}var jo=()=>Ot(C("div","tw-separator"));function Do(t,n){let s=k=>k==null?"":typeof k=="object"?Pn(k):String(k),a=s(t.value),i=t.rows>0,d=C("div",i?"tw-row tw-row-multiline":"tw-row"),c=C(i?"textarea":"input",i?"tw-text tw-textarea":"tw-text");i?c.rows=t.rows:c.type="text",c.value=a,Ze(c),t.placeholder&&(c.placeholder=t.placeholder),c.addEventListener("input",()=>{a=c.value,n(a)});let b=()=>{let k=c.scrollHeight-c.clientHeight>1;c.classList.toggle("is-clip-top",k&&c.scrollTop>1),c.classList.toggle("is-clip-bottom",k&&c.scrollTop+c.clientHeight<c.scrollHeight-1)};return i&&(c.addEventListener("scroll",b),c.addEventListener("input",b),typeof ResizeObserver=="function"&&new ResizeObserver(b).observe(c)),d.append(z("span","tw-row-label",t.label),c),{el:d,set:k=>{a=s(k),c.value=a,i&&b()},get:()=>a}}function dt(t){let n=C("div","tw-folder"),s=he("tw-folder-header");s.setAttribute("aria-expanded","true"),s.append(z("span","tw-folder-title",t.label)),s.insertAdjacentHTML("beforeend",to);let a=C("div","tw-folder-body"),i=C("div","tw-controls");a.append(i),n.append(s,a);let d=c=>At(n,s,a,c);return s.addEventListener("click",()=>d(!n.classList.contains("is-collapsed"))),{el:n,body:i,setCollapsed:d}}function tt(t,n){let s=ve(t.type);if(!s)return null;try{return s(t,n)}catch(a){return console.error("[tweaks] control failed to build:",t&&t.type,a),null}}we("slider",Ao);we("checkbox",Oo);we("radiogrid",Po);we("list",No);we("button",Io);we("buttongroup",Ro);we("separator",jo);we("text",Do);we("folder",dt);var pt=(t,n,s)=>{let a=he("tw-toolbar-btn"+(t?" "+t:""),n);return a.title=s,a.setAttribute("aria-label",s),a},Dt=t=>{let n=pt("tw-toolbar-btn--swap",`<span class="tw-toolbar-btn__icons">${Un}${Qn}</span>`,"Copy values (\u21E7: changed only)");return n.addEventListener("click",async s=>{if(n.disabled)return;let[a,i]=t(s.shiftKey);if(!i)return ke("Nothing has changed");if(!await fn(a))return ke("Copy failed");Fo(n),ke(i>0?`${i} changed value${i===1?"":"s"} copied`:"Values copied")}),n},Ft=t=>{let n=pt("tw-toolbar-btn--reset",Zn,"Reset");return n.addEventListener("click",()=>{n.disabled||(pn(n),t())}),n},Fo=t=>{t.classList.add("is-copied"),clearTimeout(t._t),t._t=setTimeout(()=>t.classList.remove("is-copied"),1400)},pn=t=>{let n=t.querySelector("svg");t._spinSettle||(t._spinSettle=()=>{clearTimeout(t._t),t.classList.remove("is-spinning"),n.style.transition="none",n.style.setProperty("--tw-spin","0deg"),n.getBoundingClientRect(),n.style.transition=""},n.addEventListener("transitionend",a=>{a.propertyName==="transform"&&t.classList.contains("is-spinning")&&performance.now()-t._spinT>250&&t._spinSettle()})),t._spinT=performance.now(),n.style.setProperty("--tw-spin",`${(parseFloat(n.style.getPropertyValue("--tw-spin"))||0)-360}deg`),t.classList.add("is-spinning"),clearTimeout(t._t);let s=()=>{n.getAnimations&&n.getAnimations().length?t._t=setTimeout(s,250):t._spinSettle()};t._t=setTimeout(s,600)},U=null,Rt=0,jt=null,so=t=>{t.key==="Escape"&&ut()},ut=t=>{t&&jt&&!t.contains(jt)||(clearTimeout(Rt),document.removeEventListener("keydown",so),U&&U.classList.remove("is-open"))};function $o(t,n){U||(U=C("div","tw-tip tw-portal"),U.setAttribute("role","tooltip")),U.isConnected||document.body.appendChild(U),clearTimeout(Rt),U.textContent=n,jn(U,t);let s=U.classList.contains("is-open");U.style.visibility="hidden",U.classList.add("is-open"),In(t,U,{align:"center",prefer:"above",gap:8}),U.style.visibility="",document.addEventListener("keydown",so),jt=t,s||requestAnimationFrame(function a(){if(U.classList.contains("is-open")){if(!jt.isConnected)return ut();requestAnimationFrame(a)}})}function ro(){U&&(clearTimeout(Rt),Rt=setTimeout(ut,80))}var un=".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, .tw-image-label";function nt(t,n){let s=t.querySelector(un)||t;if(s===t&&t.classList.contains("tw-separator"))return;let a=s.closest("button"),i=a?C("span","tw-hint",dn):he("tw-hint",dn),d=()=>$o(i,n);if(a){i.setAttribute("aria-hidden","true");let c=a.getAttribute("aria-description");a.setAttribute("aria-description",c?`${c}. ${n}`:n)}else i.setAttribute("aria-label",n),i.addEventListener("focus",d),i.addEventListener("blur",ro),i.addEventListener("keydown",c=>{(c.key==="Enter"||c.key===" ")&&c.stopPropagation()});i.addEventListener("pointerenter",d),i.addEventListener("pointerleave",ro),i.addEventListener("pointerdown",c=>c.stopPropagation()),i.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation()}),s.appendChild(i)}async function fn(t){try{return await navigator.clipboard.writeText(t),!0}catch{}let n=document.createElement("textarea");n.value=t,n.style.position="fixed",n.style.top="-9999px",document.body.appendChild(n),n.focus(),n.select();let s=!1;try{s=document.execCommand("copy")}catch{}return document.body.removeChild(n),s}var ot=null,Ee=null,ft=null,$t=null;function Ko(t,n,s={}){let a=Object.entries(n).filter(([e])=>e!=="_last"||(console.warn('[tweaks] "_last" is reserved (the changed-key channel) \u2014 schema entry skipped'),!1)).map(([e,o])=>Re(e,o)).filter(Boolean),i={},d=[],c=new Set,b=new Set,k=new Set,T=[],E=!1,L=!1,y=[],se=new Map,$=!1,H=-1,B=e=>{if(!E){if($){console.warn("[tweaks] call ignored \u2014 the panel could not be built");return}L?e():y.push(e)}},A=null,g=function(e,o){return e==="_last"&&this===i?void 0:o===void 0?null:typeof o=="bigint"?String(o):o},P=!1,F=()=>{let e={};for(let o of d){let r=e;for(let p of o.path.slice(0,-1))r=r[p]||(r[p]={});r[o.key]=o.get()}return JSON.parse(JSON.stringify(e,g))},ee=()=>{try{return JSON.parse(JSON.stringify(i,g))}catch(e){return P||(P=!0,console.warn("[tweaks] a value parked on params can't be serialised \u2014 snapshots carry the controls' values only:",e)),F()}},D=s.persist?`tw:${s.persist===!0?t:s.persist}`:null,ie=D?`${D}:presets`:null,te=e=>{try{return JSON.parse(localStorage.getItem(e)||"null")}catch{return null}},le=(e,o)=>{try{return localStorage.setItem(e,JSON.stringify(o)),!0}catch{return!1}},ne=(e,o)=>o.reduce((r,p)=>r!=null&&Pe(r,p)?r[p]:void 0,e),J=(e,o)=>{let r=ne(e,o.path.slice(0,-1));return!r||typeof r!="object"||!Pe(r,o.key)?!1:(Reflect.deleteProperty(r,o.key),!0)},je=e=>{for(let o of d)o.persist||J(e,o);return e},ce=D?(()=>{let e=0,o=!1,r=new Map,p=()=>{e=0;let w=je(ee()),M=d.filter(u=>u.persist&&u.m.type==="image").filter(u=>!(r.get(u)===u.get()&&J(w,u)));if(le(D,w))return;let h=M.filter(u=>J(w,u));if(h.length){for(let u of h)r.set(u,u.get());le(D,w)&&!o&&(o=!0,console.warn("[tweaks] persist: the values didn't fit in storage with an image included \u2014 saved without it"))}};return T.push(()=>{e&&(clearTimeout(e),p())}),()=>{clearTimeout(e),e=setTimeout(p,150)}})():()=>{},de=(e,o=i._last)=>{(e?k:b).forEach(r=>{try{r(i,o)}catch(p){console.error("[tweaks] listener threw:",p)}}),E||ce()},qe=e=>typeof e=="function"||typeof e=="symbol"||typeof e=="bigint",Le=(e,o)=>{if(qe(o))throw new TypeError(`a ${typeof o} is not a control value`);e.set(o),e.target[e.key]=e.get()},De=e=>{Nt(e,e.raw,e.def),e.target[e.key]=e.get()},rt=!1,mt=()=>{if(typeof s.onReset=="function"&&!rt){rt=!0;try{return s.onReset()}finally{rt=!1}}for(let e of d)try{De(e)}catch(o){console.error(`[tweaks] resetting "${e.path.join(".")}" failed \u2014 control skipped:`,o)}i._last=void 0,de()},f=C("div","tw-panel");f.dataset.mode="inline";let Fe=e=>f.setAttribute("aria-label",e.trim()||"Tweaks");f.setAttribute("role","region"),Fe(t),Hn(f);let q=C("div","tw-header"),pe=he("tw-header-toggle");pe.setAttribute("aria-expanded","true");let Ye=t,gt=z("span","tw-title",Ye);pe.append(gt);let Xe=C("div","tw-toolbar"),yt=()=>{let e={};for(let o of d)_e(o.get(),o.def)&&(e[o.path.join(".")]=o.get());return JSON.parse(JSON.stringify(e,g))},Ve=Dt(e=>{if(!e)return[JSON.stringify(ee(),null,2),-1];let o=yt();return[JSON.stringify(o,null,2),Object.keys(o).length]}),Z={panel:f,entries:d,fromJSON:e=>{Ne?.flush(),Ke.fromJSON(e),Ne?.flush()},announce:ke,alive:()=>!E},oe=Ft(mt),Y=null;D&&s.presets!==!1&&(Y=pt("",no,"Presets"),Y.setAttribute("aria-haspopup","menu"),Y.setAttribute("aria-expanded","false"),Xe.append(Y));let ae=!!s.filter&&(s.toolbar!==!1||(console.warn("[tweaks] opts.filter needs the toolbar (its search button lives there) \u2014 ignored alongside toolbar:false"),!1)),Ce=ae?pt("",eo,"Filter controls"):null,G=ae?C("input","tw-search"):null;ae&&(G.type="text",G.placeholder="Filter\u2026",G.spellcheck=!1,G.setAttribute("aria-label","Filter controls"),Ze(G),Xe.append(Ce)),Xe.append(Ve,oe),q.append(pe),ae&&q.append(G),s.toolbar!==!1&&q.append(Xe);let $e=[Ve,oe,Y,Ce].filter(Boolean);for(let e of $e)e.disabled=!0;let Me=!1,Se=!1;q.addEventListener("click",e=>{Se&&(Se=!1,e.preventDefault(),e.stopPropagation())},!0),pe.addEventListener("click",()=>{At(f,pe,st,!f.classList.contains("is-collapsed")),f.dataset.mode==="floating"&&setTimeout(()=>{f.dataset.mode==="floating"&&f.isConnected&&(it(),ge())},270)});let st=C("div","tw-body"),xe=C("div","tw-controls");st.append(xe),f.append(q,st);let me=tn(s.theme);nn(f,me),f._twTheme=me;let ue=s.draggable!==!1,l=8,_=28,Q=typeof s.floating=="object"&&s.floating?s.floating:null,X=Q?.corner||"top-left",N=/right$/.test(X),V=/^bottom/.test(X);(N||V)&&(f.dataset.corner=X);let Te=()=>document.compatMode==="CSS1Compat"?document.documentElement:null,We=()=>Te()?.clientWidth||window.innerWidth,He=()=>Te()?.clientHeight||window.innerHeight,ze=()=>({maxX:Math.max(l,We()-f.offsetWidth-l),maxY:Math.max(l,He()-f.scrollHeight-1-Ge)}),Je=D?`${D}:pos`:null,bt=ue&&Je?te(Je):null,Kt=bt&&typeof bt=="object"&&(bt.corner||"top-left")===X?bt:null,mn=Kt||Q||{x:16,y:16},Bt=e=>{let o=parseFloat(e);return o>=0?o:16},qt=Bt(mn.x),Yt=Bt(mn.y),W=qt,K=Yt,Xt=!!Kt,Ge=l,Vt=()=>{let e=parseFloat(getComputedStyle(f).getPropertyValue("--tw-float-gap"));Ge=e>=0?e:s.floating&&!Xt?Bt(Q?.y):l},ge=()=>{let e=f.style;e.setProperty("--tw-float-x",W+"px"),e.setProperty("--tw-float-y",K+"px"),e.setProperty("--tw-float-max-h",`calc(100dvh - ${K+Ge}px)`)},it=()=>{Vt();let{maxX:e,maxY:o}=ze();if(ue){W=j(W,l,e),K=j(K,l,o);return}W=j(qt,Math.min(l,qt),e);let r=He()-Math.min(f.scrollHeight+1,He()/2),p=Math.min(1,r/(Yt+Ge||1));K=Math.round(Yt*p),Ge=Math.round(Ge*p)};(ue||s.floating)&&(s.floating||Kt)&&(f.dataset.mode="floating",it(),ge(),requestAnimationFrame(()=>{!E&&f.dataset.mode==="floating"&&f.isConnected&&(it(),ge())}));let ht=e=>{De(e),i._last=e.key,de()},po=(e,o)=>{let r=e.querySelector(".tw-slider-value")||e.querySelector(un)||e;r.classList.add("tw-resettable"),r.title="Double-click or hold to reset";let p=0,w=0,m=0,M=!1,h=()=>{p&&(clearTimeout(p),p=0,r.classList.remove("tw-reset-holding"))};r.addEventListener("pointerdown",u=>{u.stopPropagation(),M=!1,!(u.pointerType!=="touch"&&u.pointerType!=="pen")&&(w=u.clientX,m=u.clientY,r.classList.add("tw-reset-holding"),p=setTimeout(()=>{p=0,r.classList.remove("tw-reset-holding","is-editable"),M=!0,ht(o)},500))}),r.addEventListener("pointermove",u=>{p&&Math.abs(u.clientX-w)+Math.abs(u.clientY-m)>8&&h()}),r.addEventListener("pointerup",h),r.addEventListener("pointercancel",h),r.addEventListener("pointerleave",h),r.addEventListener("contextmenu",u=>{M&&u.preventDefault()}),r.addEventListener("click",u=>{M&&(u.preventDefault(),u.stopImmediatePropagation(),M=!1)},!0),r.addEventListener("dblclick",u=>{r===e&&u.target.closest&&u.target.closest("input, textarea")||(u.preventDefault(),u.stopPropagation(),ht(o))}),r.classList.contains("tw-slider-value")&&e.addEventListener("dblclick",u=>{let S=u.target;!S.classList||!S.classList.contains("tw-slider-input")||(u.preventDefault(),u.stopPropagation(),S.blur(),ht(o))}),e.addEventListener("keydown",u=>{!u.altKey||u.metaKey||u.ctrlKey||u.key!=="Backspace"&&u.key!=="Delete"||(u.preventDefault(),u.stopPropagation(),u.target.classList&&u.target.classList.contains("tw-slider-input")&&u.target.blur(),ht(o))})},Wt=[],zt,uo=(e,o)=>!e._hid==!o?!1:(e._hid=o,zt?zt(e,o):e.classList.toggle("tw-cond-hidden",o),!o),Jt=(e,o)=>{o.hint&&nt(e,o.hint),(o.render||o.disabled!=null)&&Wt.push({node:e,m:o})},Gt=[],Ut=[],wt=[],vt=[],fo=e=>{typeof e.destroy=="function"&&T.push(e.destroy)},Qt=(e,o,r,p=[],w=null)=>{for(let m of o){if(m.type==="tabs"){let u={};c.add(u),r[m.key]=u;let S=ve("tabs"),R=S&&S(m);if(!R)continue;vt.push({path:[...p,m.key],ctrl:R,pageKeys:m.pages.map(v=>v.key)}),m.pages.forEach((v,x)=>{let I={};c.add(I),u[v.key]=I,Qt(R.bodies[x],v.children,I,[...p,m.key,v.key])}),Jt(R.el,m),e.append(R.el);continue}if(m.type==="folder"){let u={};c.add(u),r[m.key]=u;let S=dt(m);wt.push({path:[...p,m.key],el:S.el,setCollapsed:S.setCollapsed}),at.set(S.el,{kind:"folder",path:[...p,m.key],label:m.label});let R=ae?{el:S.el,label:m.label,body:S.body}:null;R&&Ut.push(R),Qt(S.body,m.children,u,[...p,m.key],R),Jt(S.el,m),e.append(S.el);continue}let M=!It.has(m.type),h=tt(m,M?u=>{_e(r[m.key],u)&&(r[m.key]=u,i._last=m.key,de())}:()=>{});if(h){if(fo(h),M){let u=h.get();Pe(r,m.key)&&h.set(r[m.key]),r[m.key]=h.get();let S={target:r,key:m.key,set:h.set,get:h.get,raw:m.value,def:u,path:[...p,m.key],persist:m.persist!==!1,m,el:h.el};d.push(S),po(h.el,S),at.set(h.el,{kind:"row",entry:S,label:m.label})}Jt(h.el,m),ae&&m.type!=="separator"&&Gt.push({el:h.el,label:m.label,folder:w}),e.append(h.el)}}};if(ae){let e=r=>{let p=r.trim().toLowerCase(),w=!1,m=(M,h)=>{!h&&M.classList.contains("tw-filter-hidden")&&(w=!0),M.classList.toggle("tw-filter-hidden",h)};if(!p)Gt.forEach(M=>m(M.el,!1)),Ut.forEach(M=>m(M.el,!1));else{for(let M of Gt){let h=M.folder&&xt(M.folder.label,p);m(M.el,!(xt(M.label,p)||h))}for(let M of Ut.slice().reverse()){let h=[...M.body.children].some(u=>!u.classList.contains("tw-filter-hidden"));m(M.el,!(xt(M.label,p)||h))}}w&&en()},o=()=>{f.classList.remove("is-searching"),G.value="",e("")};Ce.addEventListener("click",()=>{Ce.disabled||(f.classList.toggle("is-searching")?(G.focus(),G.select()):o())}),G.addEventListener("input",()=>e(G.value)),G.addEventListener("keydown",r=>{r.key==="Escape"&&(o(),Ce.focus())})}let mo=new Set(a.map(e=>e.key)),kt=(e,o)=>{if(!(!e||typeof e!="object")){for(let r of d){let p=ne(e,r.path);if(p!==void 0)try{Le(r,p)}catch(w){console.error(`[tweaks] restoring "${r.path.join(".")}" failed \u2014 value skipped:`,w)}}for(let r of Object.keys(e))if(!mo.has(r)&&r!=="_last"&&Pe(i,r)&&!Ht(r)&&!qe(e[r]))try{i[r]=e[r]}catch(p){console.error(`[tweaks] restoring "${r}" failed \u2014 value skipped:`,p)}i._last=void 0,de(o)}},Ue=()=>{let e=ie?te(ie):null;return Object.assign(Object.create(null),e&&typeof e=="object"?e:{})},gn=e=>{let o=Ue();o[e]=ee();let r=le(ie,o);return r||console.warn(`[tweaks] preset "${e}" didn't fit in storage \u2014 not saved`),r},yn=e=>{let o=Ue();o[e]&&kt(o[e])},bn=e=>{let o=Ue();delete o[e],le(ie,o)},Et=e=>e.map(o=>String(o).replace(/~/g,"~1").replace(/\./g,"~0")).join("."),go=()=>{let e={};if(wt.length){let o={};for(let r of wt)o[Et(r.path)]=r.el.classList.contains("is-collapsed");e.folders=o}if(vt.length){let o={};for(let r of vt)o[Et(r.path)]=r.pageKeys[r.ctrl.active()]??null;e.tabs=o}return e},yo=e=>{if(!(!e||typeof e!="object")){if(e.folders)for(let o of wt){let r=e.folders[Et(o.path)];typeof r=="boolean"&&o.setCollapsed(r)}if(e.tabs)for(let o of vt){let r=o.pageKeys.indexOf(e.tabs[Et(o.path)]);r>=0&&r!==o.ctrl.active()&&o.ctrl.activate(r)}}};if(ue||s.floating){if(ue){f.dataset.draggable="true";let v=C("span","tw-grabber");v.setAttribute("aria-hidden","true"),q.prepend(v)}let e=()=>{if(f.dataset.mode==="floating")return;let v=f.getBoundingClientRect();if(W=N?We()-v.right:v.left,K=V?He()-v.bottom:v.top,f.parentNode&&(A=C("span","tw-lift-slot"),A.style.width=v.width+"px",A.style.height=v.height+"px",A.setAttribute("aria-hidden","true"),f.before(A)),Rn(f,f),document.body.appendChild(f),f.dataset.mode="floating",ge(),A&&typeof MutationObserver=="function"){let x=new MutationObserver(()=>{A&&!A.isConnected&&(x.disconnect(),A=null,f.remove())});x.observe(document.documentElement,{childList:!0,subtree:!0}),T.push(()=>x.disconnect())}},o=()=>{ot&&ot!==f&&ot.classList.remove("is-raised"),f.classList.add("is-raised"),ot=f},r=null,p=0,w=0,m=0,M=0,h=0,u=v=>{for(let[x,I]of[["pointermove",S],["pointerup",R],["pointercancel",R]])v?document.addEventListener(x,I,!0):document.removeEventListener(x,I,!0)};ue&&q.addEventListener("pointerdown",v=>{if(!(v.button!==0||r!==null||v.target.closest(".tw-toolbar, input, textarea, select"))&&(r=v.pointerId,p=v.clientX,w=v.clientY,Me=!1,u(!0),f.classList.add("is-grabbing"),f.classList.contains("is-snapping"))){clearTimeout(h);let x=getComputedStyle(f);W=parseFloat(x[N?"right":"left"])||W,K=parseFloat(x[V?"bottom":"top"])||K,f.classList.remove("is-snapping"),ge()}}),ue&&q.addEventListener("keydown",v=>{if(v.target!==pe||!v.altKey||v.metaKey||v.ctrlKey)return;let x=v.shiftKey?50:10,I=v.key==="ArrowRight"?x:v.key==="ArrowLeft"?-x:0,fe=v.key==="ArrowDown"?x:v.key==="ArrowUp"?-x:0;if(!I&&!fe)return;v.preventDefault(),v.stopPropagation();let O=f.dataset.mode!=="floating";Xt=!0,e(),o(),Vt(),O&&pe.focus({preventScroll:!0});let{maxX:re,maxY:Lt}=ze();W=j(W+(N?-I:I),l,re),K=j(K+(V?-fe:fe),l,Lt),ge(),Je&&le(Je,{x:W,y:K,corner:X})});let S=v=>{if(v.pointerId!==r)return;if(v.buttons===0){R(v);return}let x=v.clientX-p,I=v.clientY-w;if(!Me){if(Math.abs(x)+Math.abs(I)<4)return;Me=!0,Xt=!0,e(),o(),Vt(),m=W,M=K;try{q.setPointerCapture(r)}catch{}f.classList.add("is-dragging")}let{maxX:fe,maxY:O}=ze();W=j(m+(N?-x:x),l,fe),K=j(M+(V?-I:I),l,O),ge()},R=v=>{if(v.pointerId===r){try{q.releasePointerCapture(r)}catch{}if(r=null,u(!1),Se=Me,Se&&setTimeout(()=>{Se=!1},0),Me){let{maxX:x,maxY:I}=ze();W<=l+_?W=l:W>=x-_&&(W=x),K<=l+_?K=l:K>=I-_&&(K=I),clearTimeout(h),f.classList.add("is-snapping"),h=setTimeout(()=>f.classList.remove("is-snapping"),340),ge(),Je&&le(Je,{x:W,y:K,corner:X})}f.classList.remove("is-dragging","is-grabbing")}};q.addEventListener("lostpointercapture",R),T.push(()=>u(!1))}let bo=()=>{(ue||s.floating)&&(f.dataset.mode==="floating"&&(it(),ge()),T.push(ct(f,[[window,"resize"]],()=>{f.dataset.mode==="floating"&&(it(),ge())})))};if(Y){let e=C("div","tw-presets-menu"),o=C("div","tw-presets-save"),r=C("input","tw-presets-input");r.type="text",r.placeholder="Preset name\u2026",r.spellcheck=!1,r.setAttribute("aria-label","New preset name"),Ze(r);let p=z("button","tw-presets-savebtn","Save");o.append(r,p);let w=C("div","tw-presets-list");e.append(o,w);let m=()=>{let u=Ue(),S=Object.keys(u);if(w.replaceChildren(),!S.length)return w.append(z("div","tw-presets-empty","No presets yet"));for(let R of S){let v=C("div","tw-presets-row"),x=z("button","tw-presets-load",R);x.addEventListener("click",()=>{yn(R),h.close(),ke(`Loaded preset ${R}`)});let I=he("tw-presets-del",oo);I.setAttribute("aria-label",`Delete preset ${R}`),I.addEventListener("click",fe=>{fe.stopPropagation(),bn(R),m()}),v.append(x,I),w.append(v)}},M=()=>{let u=r.value.trim();if(!u){r.focus();return}if(!gn(u)){ke(`Preset ${u} not saved: storage is full`);return}r.value="",m(),ke(`Saved preset ${u}`)},h=St(Y,Y,e,{width:208,fallbackH:160,gap:6,align:"end",onOpen:()=>{m(),r.focus()}});p.addEventListener("click",M),r.addEventListener("keydown",u=>{u.key==="Enter"&&M()})}if(s.onEditStart||s.onEditEnd){let e=".tw-slider, .tw-num-grab, .tw-pad, .tw-wg-area, .tw-wg-hue, .tw-wg-alpha, .tw-bezier-handle, .tw-gradient-bar, .tw-gradient-stop",o=!1,r=()=>{document.removeEventListener("pointerup",r,!0),document.removeEventListener("pointercancel",r,!0),o&&(o=!1,s.onEditEnd&&s.onEditEnd())},p=w=>{o||!w.target.closest(e)||(o=!0,s.onEditStart&&s.onEditStart(),document.addEventListener("pointerup",r,!0),document.addEventListener("pointercancel",r,!0))};f.addEventListener("pointerdown",p),f._twEditPointer=p,T.push(r)}let Ne=s.undo?(()=>{let o=[],r=0,p=!1,w=0,m=(O,re)=>{if(O===re)return!0;if(!O||!re||typeof O!="object"||typeof re!="object"||Array.isArray(O)!=Array.isArray(re))return!1;let Lt=Object.keys(O).length==Object.keys(re).length;for(let Qe in O)O[Qe]===re[Qe]?O[Qe]=re[Qe]:m(O[Qe],re[Qe])||(Lt=!1);return Lt},M=()=>{w=0;let O=ee();m(O,o[r])||(o=o.slice(0,r+1),o.push(O),o.length>200&&(o=o.slice(o.length-200)),r=o.length-1)},h=()=>{p||(clearTimeout(w),w=setTimeout(M,350))},u=()=>{w&&(clearTimeout(w),M())};b.add(h),k.add(h);let S=O=>{p=!0,kt(o[O]),p=!1,r=O},R=()=>{u(),r>0&&S(r-1)},v=()=>{u(),r<o.length-1&&S(r+1)},x=()=>f.matches(":hover")||f.contains(document.activeElement),I=O=>!!(O&&O.matches&&(O.matches("input, textarea")||O.isContentEditable));return{undo:R,redo:v,onKey:O=>{if(!x()||!(O.metaKey||O.ctrlKey)||I(O.target))return;let re=O.key.toLowerCase();re==="z"?(O.preventDefault(),O.shiftKey?v():R()):re==="y"&&(O.preventDefault(),v())},flush:u,arm:()=>{o=[ee()],r=0}}})():null,at=new Map,ho=e=>{for(;e&&e!==f&&f.contains(e);e=e.parentElement){let o=at.get(e);if(o)return o}},wo=e=>{for(;e&&e!==f;e=e.parentElement)if(at.get(e)?.kind==="row")return e},Zt=e=>!!(e.closest(".tw-filter-hidden, .tw-cond-hidden, .tw-tabs-page:not([data-active=true])")||e.parentElement?.closest(".is-collapsed")),ye,hn=e=>{let o=e.target;!f.contains(o)&&!o.closest?.(".tw-portal")&&Ae()},Ae=()=>{ye&&(ye[0].classList.remove("is-picked"),ye=void 0,document.removeEventListener("pointerdown",hn,!0),Ee?.[0]===f&&(Ee=null))},vo=(e,o)=>{Ee&&Ee[0]!==f&&Ee[1](),Ae(),ye=[e,o],Ee=[f,Ae],e.classList.add("is-picked"),document.addEventListener("pointerdown",hn,!0);let r=[...e.querySelectorAll('button:not(:disabled):not([tabindex="-1"]), [tabindex="0"]')].find(p=>!p.closest(".tw-hint, .tw-portal, [inert]"));r?r.focus({preventScroll:!0,focusVisible:!1}):document.activeElement?.blur?.(),document.getSelection?.()?.removeAllRanges()};T.push(Ae),f.addEventListener("pointerdown",e=>{let o=e.target;if(wo(o)||o.closest(".tw-header, .tw-folder-header, button, input, textarea, select")){ye?.[0].contains(o)||Ae();return}if(e.button!==0||e.pointerType==="touch")return Ae();let r;for(let[p,w]of at){let m=(w.kind==="folder"?p.firstElementChild:p).getBoundingClientRect();m.height&&e.clientY>=m.top&&e.clientY<m.bottom&&!Zt(p)&&(r=[p,w])}if(!r)return Ae();e.preventDefault(),vo(...r)},!0);let wn=e=>!!(e&&e.matches&&(e.matches("input, textarea, select")||e.isContentEditable)),ko=e=>{if(e.key==="Escape")return Ae();if(!(e.metaKey||e.ctrlKey)||e.altKey||e.repeat||wn(e.target))return;let o=e.key.toLowerCase();if(o!=="c"&&o!=="v")return;Ee&&!Ee[0].isConnected&&Ee[1](),ye&&Zt(ye[0])&&Ae();let r=document.activeElement,p=ye?ye[1]:Ee||!r||Zt(r)?void 0:ho(r);if(!p||o==="c"&&String(document.getSelection?.()||""))return;let w=o==="c"?JSON.stringify(p.kind==="row"?p.entry.get():ne(ee(),p.path),g,2):"",m=x=>{E||ke(x?`${p.label} copied`:"Copy failed")},M=ye?.[0],h=document.activeElement,u=!!h?.matches(":focus-visible");if(!ft){ft=C("textarea","tw-sr"),ft.tabIndex=-1,ft.setAttribute("aria-hidden","true");for(let x of["copy","paste"])document.addEventListener(x,I=>$t?.(I),!0)}let S=ft,R=()=>{$t=null,document.activeElement===S&&(S.blur(),h?.focus?.({preventScroll:!0,focusVisible:u}))},v=$t=x=>{if(x.target!==S&&wn(x.target))return;if(x.preventDefault(),R(),w)return x.clipboardData?.setData("text/plain",w),m(!!x.clipboardData);let I=x.clipboardData?.getData("text/plain")??null;import("./clip-7QEIBTKZ.js").then(fe=>fe.pasteInto(I,O=>fe.pasteScope(Z,p,O),Z,M),()=>{})};S.isConnected||document.body.appendChild(S),S.value=w,S.focus({preventScroll:!0}),S.select(),setTimeout(()=>{$t===v&&(R(),w&&fn(w).then(m))},1e3)},vn=()=>{if(!E){if(H=T.length,Qt(xe,a,i),Wt.length){let e=new Map;for(let p of d)e.has(p.key)||e.set(p.key,p);let o=p=>{let w=e.get(p);return w?w.target[w.key]:i[p]},r=()=>{let p=!1;for(let{node:w,m}of Wt)try{if(m.render&&uo(w,!m.render(o))&&(p=!0),m.disabled!=null){let M=typeof m.disabled=="function"?m.disabled(o):m.disabled;Tt(w,!!M)}}catch{}p&&en()};b.add(r),k.add(r),r(),import("./fold-UQORAAPG.js").then(p=>{zt=p.fold},()=>{})}if(D&&kt(je(te(D))),!E){Ne?.arm(),bo(),T.push(ct(f,[[document,"keydown"]],e=>{Ne?.onKey(e),ko(e)})),L=!0;for(let e of y.splice(0)){if(E)break;try{e()}catch(o){console.error("[tweaks] a call queued before ready failed:",o)}}se.clear();for(let e of $e)e.disabled=!1}}},kn=(e,o)=>{if(String(e).split(".").some(Ht))return console.warn(`[tweaks] set("${e}") ignored \u2014 reserved key`),!1;let r=String(e).split("."),p;if(r.length>1){let h=i;for(let u=0;u<r.length-1&&h;u++)h=h[r[u]],c.has(h)||(h=null);if(p=h&&d.find(u=>u.target===h&&u.key===r[r.length-1]),!p)return console.warn(`[tweaks] set("${e}") \u2014 no control at that path`),!1}else{let h=d.filter(S=>S.key===e),u=h.find(S=>S.target===i);if(!u&&h.length>1)return console.warn(`[tweaks] set("${e}") is ambiguous \u2014 ${h.length} controls share that key; use a dotted path (e.g. "${h[0].path.join(".")}")`),!1;p=u||h[0]}let w=p?p.target:i,m=p?p.key:e,M=w[m];if(p&&qe(o))return console.warn(`[tweaks] set("${e}") ignored \u2014 a ${typeof o} is not a control value`),!1;if(p)try{Le(p,o)}catch(h){return console.error(`[tweaks] set("${e}") failed \u2014 value skipped:`,h),!1}else{if(c.has(i[e]))return console.warn(`[tweaks] set("${e}") ignored \u2014 it's a folder/tabs group; set its children instead`),!1;i[e]=o}return _e(M,w[m])?(i._last=m,!0):!1},Ke={el:f,params:i,on(e){return E?()=>{}:(b.add(e),()=>b.delete(e))},set(e,o,r){let p=String(e),w=r?.silent;B(()=>{kn(p,o)&&de(w)})},setMany(e,o){if(e==null||typeof e!="object")return;let r=Object.entries(e),p=o?.silent;B(()=>{let w=!1;for(let[m,M]of r)try{kn(m,M)&&(w=!0)}catch(h){console.error(`[tweaks] setMany("${m}") failed \u2014 key skipped:`,h)}w&&de(p)})},reset(){L&&!E&&pn(oe),B(mt)},toJSON(){return E?{values:{},ui:{}}:{values:ee(),ui:go()}},changes(){return E?{}:yt()},fromJSON(e,o){if(!e||typeof e!="object")return;let r=o?.silent,p=e.values&&typeof e.values=="object"?{...e.values}:e.values,w=e.ui&&typeof e.ui=="object"?{...e.ui}:e.ui;B(()=>{p&&kt(p,r),yo(w)})},setName(e){E||(Ye=String(e),gt.textContent=Ye,Fe(Ye))},setTheme(e){if(!E){if(me)for(let o in me)f.style.removeProperty(o);me=tn(e),f._twTheme=me,nn(f,me),window.dispatchEvent(new Event("tw-retheme"))}},savePreset:e=>{if(E||$||!ie||!e)return!1;L||se.set(String(e),"save");let o=!0;return B(()=>{o=gn(e)}),o},loadPreset:e=>{let o=se.get(String(e));return E||$||o==="delete"||!(o==="save"||Ue()[e])?!1:(B(()=>yn(e)),!0)},deletePreset:e=>{ie&&(L||se.set(String(e),"delete"),B(()=>bn(e)))},presets:()=>E?[]:Object.keys(Ue()),undo:()=>{Ne&&B(Ne.undo)},redo:()=>{Ne&&B(Ne.redo)},destroy(){if(!E){E=!0,Dn(f),ut(f);for(let e of T.splice(0))try{e()}catch{}b.clear(),A&&(A.remove(),A=null),ot===f&&(ot=null),f.dataset.twDestroyed="",f.remove()}}},En=et(a);if(En){let e=o=>{if($=!0,y.length=0,H>=0)for(let r of T.splice(H))try{r()}catch{}for(let r of xe.children)r.dataset.twDestroyed="";throw b.clear(),d.length=0,xe.replaceChildren(),E||console.warn(`[tweaks] "${t}": the panel could not be built \u2014 ${H>=0?"the build threw":"its lazy controls failed to load"}; the API is inert`),o};Ke.ready=f.ready=En.then(vn).then(()=>Ke,e),Ke.ready.catch(()=>{})}else vn(),Ke.ready=f.ready=Promise.resolve(Ke);return Ke}var io={metaFor:Re,restoreDefault:Nt,hasOwn:Pe,valueChanged:_e,SPRING_KEYS:_t,ensureForMetas:et,LAZY_IMPORT:Be,createFolder:dt,createControl:tt,makeCopyBtn:Dt,makeResetBtn:Ft,addHintMarker:nt};function ao(t=document){let n=sn();return n?n?n(t,io):Promise.resolve():import("./markup-ZSBV67SW.js").then(()=>sn()(t,io),s=>console.error("[tweaks] markup chunk failed to load:",s))}if(typeof document<"u"){let t=()=>{document.querySelector('[data-tw], .tw-panel[data-mode="inline"] > .tw-controls')&&ao(document)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}var lo=t=>C("div",`${t} tw-standalone tw-portal`),co=(t,n,s)=>{let a=et(t);if(!a)return n(),Promise.resolve(s);let i=a.then(n).then(()=>s);return i.catch(()=>{}),i};function Bo(t,n,s={}){let a=s.key??"value",i=Re(a,n);if(!i||i.type==="folder"||i.type==="tabs")throw new TypeError(`[tweaks] mountControl: "${a}" is not a single-control schema value`);s.label!=null&&(i.label=String(s.label));let d=!It.has(i.type),c=lo("tw-control");t.append(c);let b=null,k=!1,T=i.value,E,L=!1,y=H=>{_e(T,H)&&(T=H,s.onChange&&s.onChange(H,a))},se=()=>{if(k||(b=tt(i,d?y:()=>{}),!b))return;i.hint&&nt(b.el,i.hint);let H=()=>{};try{i.render&&!i.render(H)&&b.el.classList.add("tw-cond-hidden")}catch{}try{(typeof i.disabled=="function"?i.disabled(H):i.disabled)&&Tt(b.el,!0)}catch{}c.append(b.el),d&&(T=b.get(),L&&(b.set(E),y(b.get())))},$={el:c,set:H=>{k||!d||(b?(b.set(H),y(b.get())):(E=H,L=!0))},get:()=>d?b?b.get():L?E:i.value:void 0,destroy:()=>{k=!0,b&&typeof b.destroy=="function"&&b.destroy(),c.dataset.twDestroyed="",c.remove()},ready:null};return $.ready=co([i],se,$),$}function qo(t={}){let n=lo("tw-color-picker"),s=null,a=!1,i=t.value,d,c=!1,b=null,k=L=>{_e(i,L)&&(i=L,t.onChange&&t.onChange(L))},T=()=>{if(a)return;let L=ve("colorpicker");L&&(s=L({value:t.value,mode:t.mode},k),i=s.get(),n.append(s.el),b&&s.setMode(b),c&&(s.set(d),k(s.get())),Mt(s.reflow))},E={el:n,set:L=>{a||(s?(s.set(L),k(s.get())):(d=L,c=!0))},get:()=>s?s.get():c?d:t.value,mode:()=>s?s.mode():b||t.mode||"oklch",setMode:L=>{s?s.setMode(L):b=L},reflow:()=>{s&&s.reflow()},destroy:()=>{a=!0,n.remove()},ready:null};return E.ready=co([{type:"color"}],T,E),E}export{qo as createColorPicker,ao as enhance,Lo as gradientCss,Eo as gradientStops,Bo as mountControl,Ko as tweaks};
|
|
1
|
+
import{$ as ve,A as nn,B as jn,C as Ue,E as Dn,F as on,G as rn,H as Fn,I as $n,J as Kn,K as xt,L as Tt,M as sn,N as Bn,O as an,Q as qn,R as Yn,S as At,T as Pt,U as Xn,V as Vn,W as Wn,X as zn,Y as Jn,Z as Ae,_ as Ot,aa as ke,ca as ln,d as Mo,da as Ee,e as So,f as Sn,g as j,h as be,i as xn,j as Tn,k as An,l as Pn,m as it,n as On,o as _n,p as Hn,q as Mt,r as Ne,s as Nn,t as In,u as C,v as we,w as J,x as Rn,y as St,z as at}from"./chunk-7OSCMZ2J.js";var Be={number:()=>import("./heavy-PKOMHB3C.js"),interval:()=>import("./interval-L2E4L3AZ.js"),color:()=>import("./colour-2RE3FQ5E.js"),gradient:()=>import("./gradient-DB6XTDHO.js"),shadow:()=>import("./shadow-IKYOV3VN.js"),sides:()=>import("./sides-FH227Z54.js"),tabs:()=>import("./tabs-BKK5NIIY.js"),image:()=>import("./image-JD2NSQYE.js"),fpsgraph:()=>import("./monitor-IEK742PG.js"),monitor:()=>import("./monitor-IEK742PG.js"),spring:()=>import("./spring-3PKAFIH7.js"),cubicbezier:()=>import("./bezier-2RABC6LD.js"),motion:()=>Promise.all([import("./bezier-2RABC6LD.js"),import("./spring-3PKAFIH7.js")]).then(()=>import("./motion-N5UNVR55.js")),point:()=>import("./point-YMMHSLO7.js"),plot:()=>import("./plot-VVTOY3RA.js")},_t={},xo=t=>ke(t)||!Be[t]?null:_t[t]||(_t[t]=Be[t]().catch(n=>{throw delete _t[t],console.error(`[tweaks] control chunk "${t}" failed to load:`,n),n})),cn=(t,n=new Set)=>{for(let s of t)if(s&&(Be[s.type]&&n.add(s.type),s.children&&cn(s.children,n),s.pages))for(let a of s.pages)cn(a.children,n);return n},Qe=t=>{let n=[...cn(t)].map(xo).filter(Boolean);return n.length?Promise.all(n):null};function Ie(t,n,s=0){if(Nt(t))return null;let a=Po(t,n,s);return a&&n&&typeof n=="object"&&(typeof n.render=="function"&&(a.render=n.render),n.disabled!=null&&(a.disabled=n.disabled),n.hint!=null&&(a.hint=String(n.hint)),n.persist===!1&&(a.persist=!1)),a}var Pe=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),Nt=t=>t==="__proto__"||t==="constructor"||t==="prototype",Oe=(t,n)=>t!==n&&!(be(t)&&be(n)&&JSON.stringify(t)===JSON.stringify(n)),It=(t,n,s)=>{t.set(s),t.set(n)},Gn=t=>Array.isArray(t.options)&&{type:"radiogrid",options:t.options,value:t.value??Ne(t.options[0]),cols:t.cols},To=(t,...n)=>{let s=(n.length?n:[0]).map(c=>Mt(Number.isFinite(+c)?+c:0)),a=t.min??Math.min(...s.map(c=>c[0])),i=t.max??Math.max(...s.map(c=>c[1]));return{min:a,max:i,step:t.step??it(a,i)}},dn=(t,n)=>t.label==null?n:String(t.label),Un=t=>typeof t=="function"?t:void 0,Qn=t=>typeof t=="string"&&t.trim()?t.trim().slice(0,12):void 0,Ht=["stiffness","damping","mass","visualDuration","bounce"],Zn={slider:t=>{let n=To(t,t.value??t.min??0);return{value:t.value??n.min,...n,soft:t.soft,unit:Qn(t.unit),format:Un(t.format),parse:Un(t.parse)}},number:t=>({value:t.value??0,min:t.min,max:t.max,step:t.step??1,soft:t.soft,unit:Qn(t.unit)}),checkbox:t=>({value:!!t.value}),radiogrid:Gn,segmented:Gn,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 n=be(t.value)?t.value:t,s={stiffness:n.stiffness??300,damping:n.damping??26,mass:n.mass??1};Number.isFinite(+n.visualDuration)&&(s.visualDuration=+n.visualDuration),Number.isFinite(+n.bounce)&&(s.bounce=+n.bounce);let a=t.mode??n.mode;return(a==="time"||a==="physics")&&(s.mode=a),{value:s}},motion:t=>{let n=typeof t.value=="string"||Array.isArray(t.value)?{...t,curve:t.value}:be(t.value)?t.value:t,s=Ht.some(i=>n[i]!=null),a={curve:"ease",duration:300,...s?{}:{visualDuration:.5,bounce:.2}};for(let i of["mode","curve","duration",...Ht])n[i]!=null&&(a[i]=n[i]);return a.mode!=="easing"&&a.mode!=="spring"&&(a.mode=s?"spring":"easing"),{value:a}},point:t=>{if(!Array.isArray(t.components)||!t.components.length)return!1;let n=new Set,s=t.components.map((a,i)=>{let c=String(a.key??((a.label?String(a.label).toLowerCase():"")||`c${i}`)),l=c,h=2;for(;n.has(l);)l=`${c}-${h++}`;return n.add(l),{...a,key:l}});return{components:s,pad:t.pad,invertY:t.invertY,value:Object.fromEntries(s.map(a=>[a.key,a.value??0]))}},buttongroup:t=>({buttons:t.buttons}),separator:()=>({}),tabs:(t,n)=>{if(!t.pages||typeof t.pages!="object"||!Object.keys(t.pages).length)return!1;let s=new Set;return{pages:Object.entries(t.pages).map(([a,i])=>{let c=a.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tab",l=c,h=2;for(;s.has(l);)l=`${c}-${h++}`;return s.add(l),{key:l,title:a.trim()?a:"Tab",children:Object.entries(i).map(([k,x])=>Ie(k,x,n+1)).filter(Boolean)}})}}},Ao=Object.assign(Object.create(null),{list:"options",radiogrid:"options",segmented:"options",point:"components",tabs:"pages"});function Po(t,n,s=0){if(s>64)return null;let a=Sn(t),i=(c,l,h=a)=>({type:c,key:t,label:h,...l});if(be(n)&&!Array.isArray(n)&&Pe(Zn,n.type)){let c;try{c=Zn[n.type](n,s)}catch(l){return console.error(`[tweaks] malformed "${n.type}" schema value for "${t}" \u2014 control skipped:`,l),null}if(c)return i(String(n.type),c,dn(n,a));if(Pe(n,Ao[n.type]))return console.error(`[tweaks] malformed "${n.type}" schema value for "${t}" \u2014 control skipped`),null}else if(be(n)&&!Array.isArray(n)&&typeof n.type=="string"&&(Be[n.type]||ke(n.type))){let{type:c,label:l,...h}=n;return i(c,h,dn(n,a))}if(Array.isArray(n)&&Array.isArray(n[0])&&n[0].length===2&&typeof n[0][0]=="number"){let c=Number.isFinite(+n[1])?+n[1]:+n[0][0],l=Number.isFinite(+n[2])?+n[2]:+n[0][1];return i("interval",{value:n[0].map(Number),min:c,max:l,step:n[3]??it(c,l)})}if(Array.isArray(n)&&n.length<=4&&typeof n[0]=="number"){let c=n[0],[l,h]=Mt(c),k=n.length>1?n[1]:l,x=n.length>2?n[2]:h;return i("slider",{value:c,min:k,max:x,step:n[3]??it(k,x)})}if(typeof n=="number"){let[c,l]=Mt(n);return i("slider",{value:n,min:c,max:l,step:it(c,l)})}return typeof n=="boolean"?i("checkbox",{value:n}):Array.isArray(n)?i("list",{options:n,value:Ne(n[0])}):be(n)&&typeof n.action=="function"?i("button",{action:n.action},dn(n,a)):be(n)&&Array.isArray(n.options)?i("list",{options:n.options,value:n.value??Ne(n.options[0])}):xn(n)?i("color",{value:n}):typeof n=="string"?i("text",{value:n}):be(n)?i("folder",{children:Object.entries(n).filter(([c,l])=>!(c==="render"&&typeof l=="function")&&!((c==="disabled"||c==="hint")&&l!=null)).map(([c,l])=>Ie(c,l,s+1)).filter(Boolean)}):null}var Rt=new Set(["button","fpsgraph","monitor","buttongroup","separator"]);var eo=Ae('<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"),to=Ae('<path d="m5 14 3.5 3.5L19 6.5"/>',"tw-toolbar-btn__check",2.4),no=Ae('<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"/>'),oo=Ae('<path d="m17 17 4 4m-2-10a8 8 0 0 0-16 0 8 8 0 0 0 16 0"/>'),pn=t=>Ae('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',t,2.5),ro=pn("tw-chevron"),so=Ae('<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"/>'),io=Ae('<path d="M18 6 6 18m12 0L6 6"/>',"",2.2),un=Ae('<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 Oo=3;function _o(t,n){let s=t.label,{min:a,max:i,step:c}=On(t.min,t.max,t.step);t.soft||([a,i]=Pn(a,i,c));let l=(i-a)/c<=6,h=Number.isFinite(+t.value)?+t.value:a,k=t.soft&&!l?h:j(h,a,i),x=0,E=Tn(c),L=C("div","tw-slider-wrap"),y=C("div","tw-slider"),ae=C("div","tw-slider-hashmarks"),X=C("div","tw-slider-fill"),H=C("div","tw-slider-handle"),W=J("span","tw-slider-label",s),T=C("span","tw-slider-value"),g=typeof t.unit=="string"?t.unit.trim():"",_=document.createTextNode(""),K=g?/^[%°]$/.test(g)?g:" "+g:"";T.append(_),g&&T.append(J("span","tw-slider-unit",K));let ne=t.format,F=t.parse,le=u=>{if(ne)try{let O=ne(u);if(typeof O=="string"&&O)return O}catch{}return u.toFixed(E)};y.append(ae,X,H,W,T),L.append(y),y.tabIndex=0,y.setAttribute("role","slider"),y.setAttribute("aria-label",s),y.setAttribute("aria-valuemin",String(a)),y.setAttribute("aria-valuemax",String(i));let oe=u=>An(u,a,c),pe=l?Array.from({length:Math.max(0,Math.round((i-a)/c)-1)},(u,O)=>(O+1)*c/(i-a)*100):[];for(let u of pe){let O=C("div","tw-slider-hashmark");O.style.left=u+"%",ae.append(O)}let re=()=>{let u=j((k-a)/(i-a||1)*100,0,100),O=x?` + ${x.toFixed(1)}px`:"",$=`${u}%${O}`;X.style.width=x?`calc(${$})`:u+"%",H.style.left=`max(5px, calc(${$} - 9px))`;let N=oe(k),I=le(N);_.data=I,y.setAttribute("aria-valuenow",String(N)),y.setAttribute("aria-valuetext",I+K);let Z=L.offsetWidth,ie=T.offsetWidth;if(Z){ie&&(W.style.maxWidth=Math.max(0,Z-ie-30)+"px");let Se=Math.max(5,u/100*Z+x-9);y.classList.toggle("is-dodge",Hn(W,T,Se,3))}};re();let G=null,Re=1,ue=null,fe=!0,qe,Ce=null,je=null,nt=`width 0.34s ${an}`,ut=`left 0.34s ${an}, opacity 0.15s, transform 0.2s ${Bn}`,m=.2,De=u=>{if(!G)return k;let O=L.offsetWidth||G.width,$=j((u-G.left)/Re/O,0,1);return j(a+$*(i-a),a,i)},D=(u,O=!0)=>{u=+u,Number.isFinite(u)&&(k=l?j(oe(u),a,i):t.soft?u:j(u,a,i),re(),O&&n(oe(k)))},ce=Math.max(1,Math.round((i-a)/c)),Ye=.2,ft=.3,Xe=520,mt=27,Ve=u=>(u-a)/c,te=0,se=0,z=0,de=!1,Me=null,U=k,Fe=0,he=()=>{z&&cancelAnimationFrame(z),z=0,Fe=0},me=u=>{if(!y.isConnected){he();return}let O=Fe?Math.min((u-Fe)/1e3,.05):1/60;Fe=u;let $=L.offsetWidth||G&&G.width||1,N=Ve(j(U,a,i)),I=j(Math.round(N+Ye),0,ce),Z=de?I+ft*j(N-I,-.5,.5):I;if(sn&&sn.matches)te=Z,se=0;else{let ie=O,Se=1/240;for(;ie>1e-4;){let xe=Math.min(Se,ie);ie-=xe;let gt=Xe*(Z-te)-mt*se;se+=gt*xe,te+=se*xe,te<0&&(te=0,se=0),te>ce&&(te=ce,se=0)}}x=(te-I)*c/(i-a||1)*$,k=j(a+I*c,a,i),re(),I!==Me&&(Me=I,n(oe(k))),!de&&Math.abs(se)<.004&&Math.abs(te-I)<.004?(te=I,se=0,x=0,re(),he(),y.classList.remove("is-active")):z=requestAnimationFrame(me)},Bt=u=>{te=Ve(k),se=0,de=!0,Me=Math.round(Ve(k)),U=De(u),z||(z=requestAnimationFrame(me))};y.addEventListener("pointerdown",u=>{if(!T.classList.contains("is-editing")&&!(u.button!==0||ue)){u.preventDefault(),y.focus({focusVisible:!1}),je=u.pointerId;try{u.target.setPointerCapture(u.pointerId)}catch{}clearTimeout(qe),y.style.transition="",ue={x:u.clientX,y:u.clientY},fe=!0,y.classList.add("is-active"),G=L.getBoundingClientRect(),Re=G.width/(L.offsetWidth||G.width),l?(X.style.transition="",H.style.transition="",Bt(u.clientX)):(X.style.transition=nt,H.style.transition=ut,D(De(u.clientX)))}}),y.addEventListener("pointermove",u=>{if(!(!ue||u.pointerId!==je)){if(u.buttons===0){$e();return}if(fe&&Math.hypot(u.clientX-ue.x,u.clientY-ue.y)>Oo&&(fe=!1,y.classList.add("is-dragging"),l||(X.style.transition="",H.style.transition="")),!fe)if(qn(y,G,u.clientX),l)U=De(u.clientX);else{let O;if(u.altKey){Ce||(Ce={x:u.clientX,v:k});let $=L.offsetWidth||G.width;O=j(Ce.v+(u.clientX-Ce.x)/$*(i-a)*m,a,i)}else Ce=null,O=De(u.clientX);D(O)}}});let $e=u=>{!ue||u&&u.pointerId!==je||(l?(de=!1,y.classList.remove("is-dragging"),z||(z=requestAnimationFrame(me))):(qe=setTimeout(()=>{X.style.transition="",H.style.transition=""},360),y.classList.remove("is-active","is-dragging")),Yn(y),ue=null,Ce=null,je=null)};y.addEventListener("pointerup",$e),y.addEventListener("pointercancel",$e),y.addEventListener("lostpointercapture",$e),jn(y,re),St(re),at(y,[[window,"resize"]],re),y.addEventListener("keydown",u=>{if(u.target!==y||ue)return;let O=_n(u,k,c,a,i,(i-a)/10||c*10);O!=null&&(u.preventDefault(),l&&(he(),x=0,y.classList.remove("is-active")),D(j(O,a,i)))});let ot;T.addEventListener("mouseenter",()=>{ot=setTimeout(()=>T.classList.add("is-editable"),800)}),T.addEventListener("mouseleave",()=>{clearTimeout(ot),T.classList.contains("is-editing")||T.classList.remove("is-editable")}),T.addEventListener("pointerdown",u=>{u.pointerType&&u.pointerType!=="mouse"?(T.classList.add("is-editable"),u.stopPropagation()):T.classList.contains("is-editable")&&u.stopPropagation()});let We=()=>{if(T.classList.contains("is-editing"))return;let u=C("input","tw-slider-input");u.type="text",u.inputMode=F?"text":"decimal",Ue(u),u.value=F?le(oe(k)):oe(k).toFixed(E);let O=u.value;u.style.width=O.length+1+"ch",T.classList.add("is-editing"),T.replaceWith(u),u.focus(),u.select();let $=()=>{u.replaceWith(T),T.classList.remove("is-editing","is-editable")},N=()=>{let I=u.value,Z=NaN;if(I!==O)try{Z=F?F(I):Number(I.replace(g,"").trim()||NaN)}catch{}Number.isFinite(Z)&&D(t.soft?Z:j(Z,a,i)),$()};u.addEventListener("pointerdown",I=>I.stopPropagation()),u.addEventListener("blur",N),u.addEventListener("keydown",I=>{I.key==="Enter"?(u.removeEventListener("blur",N),y.focus(),N()):I.key==="Escape"&&(I.stopPropagation(),u.removeEventListener("blur",N),y.focus(),$())})};return T.addEventListener("click",()=>{T.classList.contains("is-editable")&&We()}),y.addEventListener("keydown",u=>{u.key==="Enter"&&u.target===y&&!ue&&(u.preventDefault(),We())}),{el:L,set:u=>D(u,!1),get:()=>oe(k)}}function Ho(t,n){let s=C("div","tw-row"),a=Jn([{value:"off",label:"Off"},{value:"on",label:"On"}],t.value?"on":"off",i=>n(i==="on"),t.label);return s.append(J("span","tw-row-label",t.label),a.el),{el:s,set:i=>a.set(i?"on":"off"),get:()=>a.get()==="on"}}function No(t,n){let s=t.options||[],a=Math.min(3,Math.max(2,t.cols||(s.length<=3?s.length:s.length===4?2:3))),i=C("div",s.length>a?"tw-radiogrid is-grid":"tw-radiogrid"),c=C("div","tw-radiogrid-grid");c.style.setProperty("--tw-rg-cols",a),c.setAttribute("role","radiogroup"),c.setAttribute("aria-label",t.label);let l=t.value??Ne(s[0]),h=s.map(E=>{let L=Wn("tw-radiogrid-btn",E,y=>x(y));return c.append(L),L}),k=()=>Vn(h,l),x=(E,L=!0)=>{E!=null&&!h.some(y=>y._twVal===E)||(l=E,k(),L&&n(E))};return c.addEventListener("keydown",E=>{let L=Xn(h,l);if(L<0)return;let y=zn(E.key,L,h.length,a);y<0||(E.preventDefault(),y!==L&&(x(h[y]._twVal),h[y].focus()))}),k(),i.append(J("span","tw-radiogrid-label",t.label),c),{el:i,set:E=>x(E,!1),get:()=>l}}var Io=/^(?:#[0-9a-f]{3,8}|[a-z]+|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color|var)\([^()]*\))$/i,Ro=pn("tw-select-chevron");function jo(t,n){let s=t.value,a=t.options.map(g=>({value:Ne(g),label:In(g),color:g&&typeof g=="object"&&typeof g.color=="string"&&Io.test(g.color.trim())?g.color.trim():""})),i=C("div","tw-select"),c=we("tw-select-trigger");c.setAttribute("aria-haspopup","listbox"),c.setAttribute("aria-expanded","false");let l=C("span","tw-select-right"),h=g=>`linear-gradient(${g}, ${g}), var(--tw-checker)`,k=g=>{let _=C("span","tw-option-swatch");return _.style.background=h(g),_},x=C("span","tw-option-swatch"),E=C("span","tw-select-value");l.append(x,E),l.insertAdjacentHTML("beforeend",Ro),c.append(J("span","tw-select-label",t.label),l);let L=C("div","tw-select-dropdown");L.setAttribute("role","listbox");let y=a.map(g=>{let _=we("tw-select-option");return _.setAttribute("role","option"),g.color&&_.append(k(g.color)),_.append(J("span","tw-option-label",g.label)),_.dataset.value=g.value,_.addEventListener("click",()=>{X(g.value),T.close()}),L.append(_),_});i.append(c,L);let ae=()=>{let g=a.find(_=>_.value===s);E.textContent=g?.label??s,x.style.display=g?.color?"":"none",g?.color&&(x.style.background=h(g.color)),y.forEach(_=>{let K=_.dataset.value===String(s);_.dataset.selected=String(K),_.setAttribute("aria-selected",String(K))})},X=(g,_=!0)=>{g!=null&&!a.some(K=>K.value===g)||(s=g,ae(),_&&n(g))},H="",W=0,T=xt(i,c,L,{fallbackH:200,movable:!1,onOpen:()=>{H="",(y.find(g=>g.dataset.value===String(s))||y[0])?.focus()}});return c.addEventListener("keydown",g=>{!T.isOpen()&&(g.key==="ArrowDown"||g.key==="ArrowUp")&&(g.preventDefault(),T.open())}),L.addEventListener("keydown",g=>{let _=y.indexOf(document.activeElement),K=_,ne=!!H&&performance.now()-W<600;if(g.key==="ArrowDown")K=_<0?0:Math.min(y.length-1,_+1);else if(g.key==="ArrowUp")K=_<0?y.length-1:Math.max(0,_-1);else if(g.key==="Home")K=0;else if(g.key==="End")K=y.length-1;else if(g.key.length===1&&(g.key!==" "||ne)&&!g.ctrlKey&&!g.metaKey&&!g.altKey&&!g.isComposing){let F=g.key.toLowerCase();H=(ne?H:"")+F,W=performance.now();let le=H===F.repeat(H.length/F.length),oe=le?F:H,pe=re=>a.findIndex((G,Re)=>Re>=re&&String(G.label).toLowerCase().trimStart().startsWith(oe));if(K=pe(le?_+1:_),K<0&&(K=pe(0)),K<0&&g.key!==" ")return}else return;g.preventDefault(),y[K]?.focus()}),ae(),{el:i,set:g=>X(g,!1),get:()=>s}}function Do(t){let n=J("button","tw-button",t.label);return n.addEventListener("click",()=>typeof t.action=="function"&&t.action()),Ot(n)}function Fo(t){let n=C("div","tw-row tw-buttongroup");t.label&&n.append(J("span","tw-row-label",t.label));let s=C("div","tw-buttongroup-btns"),a=Array.isArray(t.buttons)?t.buttons.map(i=>[i.label??"Button",i.action]):Object.entries(t.buttons||{});for(let[i,c]of a){let l=J("button","tw-buttongroup-btn",i);l.addEventListener("click",()=>typeof c=="function"&&c()),s.append(l)}return n.append(s),Ot(n)}var $o=()=>Ot(C("div","tw-separator"));function Ko(t,n){let s=k=>k==null?"":typeof k=="object"?Nn(k):String(k),a=s(t.value),i=t.rows>0,c=C("div",i?"tw-row tw-row-multiline":"tw-row"),l=C(i?"textarea":"input",i?"tw-text tw-textarea":"tw-text");i?l.rows=t.rows:l.type="text",l.value=a,Ue(l),t.placeholder&&(l.placeholder=t.placeholder),l.addEventListener("input",()=>{a=l.value,n(a)});let h=()=>{let k=l.scrollHeight-l.clientHeight>1;l.classList.toggle("is-clip-top",k&&l.scrollTop>1),l.classList.toggle("is-clip-bottom",k&&l.scrollTop+l.clientHeight<l.scrollHeight-1)};return i&&(l.addEventListener("scroll",h),l.addEventListener("input",h),typeof ResizeObserver=="function"&&new ResizeObserver(h).observe(l)),c.append(J("span","tw-row-label",t.label),l),{el:c,set:k=>{a=s(k),l.value=a,i&&h()},get:()=>a}}function lt(t){let n=C("div","tw-folder"),s=we("tw-folder-header");s.setAttribute("aria-expanded","true"),s.append(J("span","tw-folder-title",t.label)),s.insertAdjacentHTML("beforeend",ro);let a=C("div","tw-folder-body"),i=C("div","tw-controls");a.append(i),n.append(s,a);let c=l=>Pt(n,s,a,l);return s.addEventListener("click",()=>c(!n.classList.contains("is-collapsed"))),{el:n,body:i,setCollapsed:c}}function Ze(t,n){let s=ke(t.type);if(!s)return null;try{return s(t,n)}catch(a){return console.error("[tweaks] control failed to build:",t&&t.type,a),null}}ve("slider",_o);ve("checkbox",Ho);ve("radiogrid",No);ve("list",jo);ve("button",Do);ve("buttongroup",Fo);ve("separator",$o);ve("text",Ko);ve("folder",lt);var ct=(t,n,s)=>{let a=we("tw-toolbar-btn"+(t?" "+t:""),n);return a.title=s,a.setAttribute("aria-label",s),a},Ft=t=>{let n=ct("tw-toolbar-btn--swap",`<span class="tw-toolbar-btn__icons">${eo}${to}</span>`,"Copy values (\u21E7: changed only)");return n.addEventListener("click",async s=>{if(n.disabled)return;let[a,i]=t(s.shiftKey);if(!i)return Ee("Nothing has changed");if(!await gn(a))return Ee("Copy failed");Bo(n),Ee(i>0?`${i} changed value${i===1?"":"s"} copied`:"Values copied")}),n},$t=t=>{let n=ct("tw-toolbar-btn--reset",no,"Reset");return n.addEventListener("click",()=>{n.disabled||(fn(n),t())}),n},Bo=t=>{t.classList.add("is-copied"),clearTimeout(t._t),t._t=setTimeout(()=>t.classList.remove("is-copied"),1400)},fn=t=>{let n=t.querySelector("svg");t._spinSettle||(t._spinSettle=()=>{clearTimeout(t._t),t.classList.remove("is-spinning"),n.style.transition="none",n.style.setProperty("--tw-spin","0deg"),n.getBoundingClientRect(),n.style.transition=""},n.addEventListener("transitionend",a=>{a.propertyName==="transform"&&t.classList.contains("is-spinning")&&performance.now()-t._spinT>250&&t._spinSettle()})),t._spinT=performance.now(),n.style.setProperty("--tw-spin",`${(parseFloat(n.style.getPropertyValue("--tw-spin"))||0)-360}deg`),t.classList.add("is-spinning"),clearTimeout(t._t);let s=()=>{n.getAnimations&&n.getAnimations().length?t._t=setTimeout(s,250):t._spinSettle()};t._t=setTimeout(s,600)},Q=null,jt=0,Dt=null,lo=t=>{t.key==="Escape"&&(t.stopPropagation(),dt())},dt=t=>{t&&Dt&&!t.contains(Dt)||(clearTimeout(jt),document.removeEventListener("keydown",lo),Q&&Q.classList.remove("is-open"))};function qo(t,n){Q||(Q=C("div","tw-tip tw-portal"),Q.setAttribute("role","tooltip")),Q.isConnected||document.body.appendChild(Q),clearTimeout(jt),Q.textContent=n,$n(Q,t);let s=Q.classList.contains("is-open");Q.style.visibility="hidden",Q.classList.add("is-open"),Dn(t,Q,{align:"center",prefer:"above",gap:8}),Q.style.visibility="",document.addEventListener("keydown",lo),Dt=t,s||requestAnimationFrame(function a(){if(Q.classList.contains("is-open")){if(!Dt.isConnected)return dt();requestAnimationFrame(a)}})}function ao(){Q&&(clearTimeout(jt),jt=setTimeout(dt,80))}var mn=".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 et(t,n){let s=t.querySelector(mn)||t;if(s===t&&t.classList.contains("tw-separator"))return;let a=s.closest("button"),i=a?C("span","tw-hint",un):we("tw-hint",un),c=()=>qo(i,n);if(a){i.setAttribute("aria-hidden","true");let l=a.getAttribute("aria-description");a.setAttribute("aria-description",l?`${l}. ${n}`:n)}else i.setAttribute("aria-label",n),i.addEventListener("focus",c),i.addEventListener("blur",ao),i.addEventListener("keydown",l=>{(l.key==="Enter"||l.key===" ")&&l.stopPropagation()});i.addEventListener("pointerenter",c),i.addEventListener("pointerleave",ao),i.addEventListener("pointerdown",l=>l.stopPropagation()),i.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation()}),s.appendChild(i)}async function gn(t){try{return await navigator.clipboard.writeText(t),!0}catch{}let n=document.createElement("textarea");n.value=t,n.style.position="fixed",n.style.top="-9999px",document.body.appendChild(n),n.focus(),n.select();let s=!1;try{s=document.execCommand("copy")}catch{}return document.body.removeChild(n),s}var tt=null,Le=null,pt=null,Kt=null;function Yo(t,n,s={}){let a=Object.entries(n).filter(([e])=>e!=="_last"||(console.warn('[tweaks] "_last" is reserved (the changed-key channel) \u2014 schema entry skipped'),!1)).map(([e,o])=>Ie(e,o)).filter(Boolean),i={},c=[],l=new Set,h=new Set,k=new Set,x=[],E=!1,L=!1,y=[],ae=new Map,X=!1,H=-1,W=e=>{if(!E){if(X){console.warn("[tweaks] call ignored \u2014 the panel could not be built");return}L?e():y.push(e)}},T=null,g=function(e,o){return e==="_last"&&this===i?void 0:o===void 0?null:typeof o=="bigint"?String(o):o},_=!1,K=()=>{let e={};for(let o of c){let r=e;for(let d of o.path.slice(0,-1))r=r[d]||(r[d]={});r[o.key]=o.get()}return JSON.parse(JSON.stringify(e,g))},ne=()=>{try{return JSON.parse(JSON.stringify(i,g))}catch(e){return _||(_=!0,console.warn("[tweaks] a value parked on params can't be serialised \u2014 snapshots carry the controls' values only:",e)),K()}},F=s.persist?`tw:${s.persist===!0?t:s.persist}`:null,le=F?`${F}:presets`:null,oe=e=>{try{return JSON.parse(localStorage.getItem(e)||"null")}catch{return null}},pe=(e,o)=>{try{return localStorage.setItem(e,JSON.stringify(o)),!0}catch{return!1}},re=(e,o)=>o.reduce((r,d)=>r!=null&&Pe(r,d)?r[d]:void 0,e),G=(e,o)=>{let r=re(e,o.path.slice(0,-1));return!r||typeof r!="object"||!Pe(r,o.key)?!1:(Reflect.deleteProperty(r,o.key),!0)},Re=e=>{for(let o of c)o.persist||G(e,o);return e},ue=F?(()=>{let e=0,o=!1,r=new Map,d=()=>{e=0;let v=Re(ne()),M=c.filter(p=>p.persist&&p.m.type==="image").filter(p=>!(r.get(p)===p.get()&&G(v,p)));if(pe(F,v))return;let b=M.filter(p=>G(v,p));if(b.length){for(let p of b)r.set(p,p.get());pe(F,v)&&!o&&(o=!0,console.warn("[tweaks] persist: the values didn't fit in storage with an image included \u2014 saved without it"))}};return x.push(()=>{e&&(clearTimeout(e),d())}),()=>{clearTimeout(e),e=setTimeout(d,150)}})():()=>{},fe=(e,o=i._last)=>{(e?k:h).forEach(r=>{try{r(i,o)}catch(d){console.error("[tweaks] listener threw:",d)}}),E||ue()},qe=e=>typeof e=="function"||typeof e=="symbol"||typeof e=="bigint",Ce=(e,o)=>{if(qe(o))throw new TypeError(`a ${typeof o} is not a control value`);e.set(o),e.target[e.key]=e.get()},je=e=>{It(e,e.raw,e.def),e.target[e.key]=e.get()},nt=!1,ut=()=>{if(typeof s.onReset=="function"&&!nt){nt=!0;try{return s.onReset()}finally{nt=!1}}for(let e of c)try{je(e)}catch(o){console.error(`[tweaks] resetting "${e.path.join(".")}" failed \u2014 control skipped:`,o)}i._last=void 0,fe()},m=C("div","tw-panel");m.dataset.mode="inline";let De=e=>m.setAttribute("aria-label",e.trim()||"Tweaks");m.setAttribute("role","region"),De(t),Rn(m);let D=C("div","tw-header"),ce=we("tw-header-toggle");ce.setAttribute("aria-expanded","true");let Ye=t,ft=J("span","tw-title",Ye);ce.append(ft);let Xe=C("div","tw-toolbar"),mt=()=>{let e={};for(let o of c)Oe(o.get(),o.def)&&(e[o.path.join(".")]=o.get());return JSON.parse(JSON.stringify(e,g))},Ve=Ft(e=>{if(!e)return[JSON.stringify(ne(),null,2),-1];let o=mt();return[JSON.stringify(o,null,2),Object.keys(o).length]}),te={panel:m,entries:c,fromJSON:e=>{_e?.flush(),Ke.fromJSON(e),_e?.flush()},announce:Ee,alive:()=>!E},se=$t(ut),z=null;F&&s.presets!==!1&&(z=ct("",so,"Presets"),z.setAttribute("aria-haspopup","menu"),z.setAttribute("aria-expanded","false"),Xe.append(z));let de=!!s.filter&&(s.toolbar!==!1||(console.warn("[tweaks] opts.filter needs the toolbar (its search button lives there) \u2014 ignored alongside toolbar:false"),!1)),Me=de?ct("",oo,"Filter controls"):null,U=de?C("input","tw-search"):null;de&&(U.type="text",U.placeholder="Filter\u2026",U.spellcheck=!1,U.setAttribute("aria-label","Filter controls"),Ue(U),Xe.append(Me)),Xe.append(Ve,se),D.append(ce),de&&D.append(U),s.toolbar!==!1&&D.append(Xe);let Fe=[Ve,se,z,Me].filter(Boolean);for(let e of Fe)e.disabled=!0;let he=!1,me=!1;D.addEventListener("click",e=>{me&&(me=!1,e.preventDefault(),e.stopPropagation())},!0);let Bt=()=>{m.dataset.mode==="floating"&&m.isConnected&&(rt(),ge())},$e=()=>Pt(m,ce,We,!m.classList.contains("is-collapsed"),Bt);ce.addEventListener("click",$e);let ot=!1;D.addEventListener("pointerdown",e=>{ot=e.target===D||ce.contains(e.target)},!0),D.addEventListener("click",e=>{e.target===D&&ot&&!e.defaultPrevented&&!m.classList.contains("is-searching")&&$e()});let We=C("div","tw-body"),u=C("div","tw-controls");We.append(u),m.append(D,We);let O=on(s.theme);rn(m,O),m._twTheme=O;let $=s.draggable!==!1,N=8,I=28,Z=typeof s.floating=="object"&&s.floating?s.floating:null,ie=Z?.corner||"top-left",Se=/right$/.test(ie),xe=/^bottom/.test(ie);(Se||xe)&&(m.dataset.corner=ie);let gt=()=>document.compatMode==="CSS1Compat"?document.documentElement:null,yn=()=>gt()?.clientWidth||window.innerWidth,yt=()=>gt()?.clientHeight||window.innerHeight,ht=()=>({maxX:Math.max(N,yn()-m.offsetWidth-N),maxY:Math.max(N,yt()-m.scrollHeight-1-Je)}),ze=F?`${F}:pos`:null,bt=$&&ze?oe(ze):null,qt=bt&&typeof bt=="object"&&(bt.corner||"top-left")===ie?bt:null,hn=qt||Z||{x:16,y:16},Yt=e=>{let o=parseFloat(e);return o>=0?o:16},Xt=Yt(hn.x),Vt=Yt(hn.y),V=Xt,B=Vt,Wt=!!qt,Je=N,zt=()=>{let e=parseFloat(getComputedStyle(m).getPropertyValue("--tw-float-gap"));Je=e>=0?e:s.floating&&!Wt?Yt(Z?.y):N},ge=()=>{let e=m.style;e.setProperty("--tw-float-x",V+"px"),e.setProperty("--tw-float-y",B+"px"),e.setProperty("--tw-float-max-h",`calc(100dvh - ${B+Je}px)`)},rt=()=>{zt();let{maxX:e,maxY:o}=ht();if($){V=j(V,N,e),B=j(B,N,o);return}V=j(Xt,Math.min(N,Xt),e);let r=yt()-Math.min(m.scrollHeight+1,yt()/2),d=Math.min(1,r/(Vt+Je||1));B=Math.round(Vt*d),Je=Math.round(Je*d)};($||s.floating)&&(s.floating||qt)&&(m.dataset.mode="floating",rt(),ge(),requestAnimationFrame(()=>{!E&&m.dataset.mode==="floating"&&m.isConnected&&(rt(),ge())}));let wt=e=>{je(e),i._last=e.key,fe()},mo=(e,o)=>{let r=e.querySelector(".tw-slider-value")||e.querySelector(mn)||e;r.classList.add("tw-resettable"),r.title="Double-click or hold to reset";let d=0,v=0,f=0,M=!1,b=()=>{d&&(clearTimeout(d),d=0,r.classList.remove("tw-reset-holding"))};r.addEventListener("pointerdown",p=>{p.stopPropagation(),M=!1,!(p.pointerType!=="touch"&&p.pointerType!=="pen")&&(v=p.clientX,f=p.clientY,r.classList.add("tw-reset-holding"),d=setTimeout(()=>{d=0,r.classList.remove("tw-reset-holding","is-editable"),M=!0,wt(o)},500))}),r.addEventListener("pointermove",p=>{d&&Math.abs(p.clientX-v)+Math.abs(p.clientY-f)>8&&b()}),r.addEventListener("pointerup",b),r.addEventListener("pointercancel",b),r.addEventListener("pointerleave",b),r.addEventListener("contextmenu",p=>{M&&p.preventDefault()}),r.addEventListener("click",p=>{M&&(p.preventDefault(),p.stopImmediatePropagation(),M=!1)},!0),r.addEventListener("dblclick",p=>{r===e&&p.target.closest&&p.target.closest("input, textarea")||(p.preventDefault(),p.stopPropagation(),wt(o))}),r.classList.contains("tw-slider-value")&&e.addEventListener("dblclick",p=>{let S=p.target;!S.classList||!S.classList.contains("tw-slider-input")||(p.preventDefault(),p.stopPropagation(),S.blur(),wt(o))}),e.addEventListener("keydown",p=>{!p.altKey||p.metaKey||p.ctrlKey||p.key!=="Backspace"&&p.key!=="Delete"||(p.preventDefault(),p.stopPropagation(),p.target.classList&&p.target.classList.contains("tw-slider-input")&&p.target.blur(),wt(o))})},Jt=[],Gt,go=(e,o)=>!e._hid==!o?!1:(e._hid=o,Gt?Gt(e,o):e.classList.toggle("tw-cond-hidden",o),!o),Ut=(e,o)=>{o.hint&&et(e,o.hint),(o.render||o.disabled!=null)&&Jt.push({node:e,m:o})},Qt=[],Zt=[],vt=[],kt=[],yo=e=>{typeof e.destroy=="function"&&x.push(e.destroy)},en=(e,o,r,d=[],v=null)=>{for(let f of o){if(f.type==="tabs"){let p={};l.add(p),r[f.key]=p;let S=ke("tabs"),R=S&&S(f);if(!R)continue;kt.push({path:[...d,f.key],ctrl:R,pageKeys:f.pages.map(q=>q.key)}),f.pages.forEach((q,w)=>{let A={};l.add(A),p[q.key]=A,en(R.bodies[w],q.children,A,[...d,f.key,q.key])}),Ut(R.el,f),e.append(R.el);continue}if(f.type==="folder"){let p={};l.add(p),r[f.key]=p;let S=lt(f);vt.push({path:[...d,f.key],el:S.el,setCollapsed:S.setCollapsed}),st.set(S.el,{kind:"folder",path:[...d,f.key],label:f.label});let R=de?{el:S.el,label:f.label,body:S.body}:null;R&&Zt.push(R),en(S.body,f.children,p,[...d,f.key],R),Ut(S.el,f),e.append(S.el);continue}let M=!Rt.has(f.type),b=Ze(f,M?p=>{Oe(r[f.key],p)&&(r[f.key]=p,i._last=f.key,fe())}:()=>{});if(b){if(yo(b),M){let p=b.get();Pe(r,f.key)&&b.set(r[f.key]),r[f.key]=b.get();let S={target:r,key:f.key,set:b.set,get:b.get,raw:f.value,def:p,path:[...d,f.key],persist:f.persist!==!1,m:f,el:b.el};c.push(S),mo(b.el,S),st.set(b.el,{kind:"row",entry:S,label:f.label})}Ut(b.el,f),de&&f.type!=="separator"&&Qt.push({el:b.el,label:f.label,folder:v}),e.append(b.el)}}};if(de){let e=r=>{let d=r.trim().toLowerCase(),v=!1,f=(M,b)=>{!b&&M.classList.contains("tw-filter-hidden")&&(v=!0),M.classList.toggle("tw-filter-hidden",b)};if(!d)Qt.forEach(M=>f(M.el,!1)),Zt.forEach(M=>f(M.el,!1));else{for(let M of Qt){let b=M.folder&&Tt(M.folder.label,d);f(M.el,!(Tt(M.label,d)||b))}for(let M of Zt.slice().reverse()){let b=[...M.body.children].some(p=>!p.classList.contains("tw-filter-hidden"));f(M.el,!(Tt(M.label,d)||b))}}v&&nn()},o=()=>{m.classList.remove("is-searching"),U.value="",e("")};Me.addEventListener("click",()=>{Me.disabled||(m.classList.toggle("is-searching")?(U.focus(),U.select()):o())}),U.addEventListener("input",()=>e(U.value)),U.addEventListener("keydown",r=>{r.key==="Escape"&&(r.preventDefault(),r.stopPropagation(),o(),Me.focus())})}let ho=new Set(a.map(e=>e.key)),Et=(e,o)=>{if(!(!e||typeof e!="object")){for(let r of c){let d=re(e,r.path);if(d!==void 0)try{Ce(r,d)}catch(v){console.error(`[tweaks] restoring "${r.path.join(".")}" failed \u2014 value skipped:`,v)}}for(let r of Object.keys(e))if(!ho.has(r)&&r!=="_last"&&Pe(i,r)&&!Nt(r)&&!qe(e[r]))try{i[r]=e[r]}catch(d){console.error(`[tweaks] restoring "${r}" failed \u2014 value skipped:`,d)}i._last=void 0,fe(o)}},Ge=()=>{let e=le?oe(le):null;return Object.assign(Object.create(null),e&&typeof e=="object"?e:{})},bn=e=>{let o=Ge();o[e]=ne();let r=pe(le,o);return r||console.warn(`[tweaks] preset "${e}" didn't fit in storage \u2014 not saved`),r},wn=e=>{let o=Ge();o[e]&&Et(o[e])},vn=e=>{let o=Ge();delete o[e],pe(le,o)},Lt=e=>e.map(o=>String(o).replace(/~/g,"~1").replace(/\./g,"~0")).join("."),bo=()=>{let e={};if(vt.length){let o={};for(let r of vt)o[Lt(r.path)]=r.el.classList.contains("is-collapsed");e.folders=o}if(kt.length){let o={};for(let r of kt)o[Lt(r.path)]=r.pageKeys[r.ctrl.active()]??null;e.tabs=o}return e},wo=e=>{if(!(!e||typeof e!="object")){if(e.folders)for(let o of vt){let r=e.folders[Lt(o.path)];typeof r=="boolean"&&o.setCollapsed(r)}if(e.tabs)for(let o of kt){let r=o.pageKeys.indexOf(e.tabs[Lt(o.path)]);r>=0&&r!==o.ctrl.active()&&o.ctrl.activate(r)}}};if($||s.floating){$&&(m.dataset.draggable="true");let e=()=>{if(m.dataset.mode==="floating")return;let w=m.getBoundingClientRect();if(V=Se?yn()-w.right:w.left,B=xe?yt()-w.bottom:w.top,m.parentNode&&(T=C("span","tw-lift-slot"),T.style.width=w.width+"px",T.style.height=w.height+"px",T.setAttribute("aria-hidden","true"),m.before(T)),Fn(m,m),document.body.appendChild(m),m.dataset.mode="floating",ge(),T&&typeof MutationObserver=="function"){let A=new MutationObserver(()=>{T&&!T.isConnected&&(A.disconnect(),T=null,m.remove())});A.observe(document.documentElement,{childList:!0,subtree:!0}),x.push(()=>A.disconnect())}},o=()=>{tt&&tt!==m&&tt.classList.remove("is-raised"),m.classList.add("is-raised"),tt=m},r=null,d=0,v=0,f=0,M=0,b=0,p=w=>{for(let[A,Y]of[["pointermove",R],["pointerup",q],["pointercancel",q]])w?document.addEventListener(A,Y,!0):document.removeEventListener(A,Y,!0);w?document.addEventListener("keydown",S,!0):document.removeEventListener("keydown",S,!0)},S=w=>{if(w.key!=="Escape"||r===null)return;w.preventDefault(),w.stopPropagation();let A=r;r=null,p(!1);try{D.releasePointerCapture(A)}catch{}he&&(V=f,B=M,ge()),m.classList.remove("is-dragging"),me=!0,document.addEventListener("pointerup",()=>setTimeout(()=>{me=!1},0),{capture:!0,once:!0})};$&&D.addEventListener("pointerdown",w=>{if(!(w.button!==0||r!==null||w.target.closest(".tw-toolbar, input, textarea, select"))&&(r=w.pointerId,d=w.clientX,v=w.clientY,he=!1,p(!0),m.classList.contains("is-snapping"))){clearTimeout(b);let A=getComputedStyle(m);V=parseFloat(A[Se?"right":"left"])||V,B=parseFloat(A[xe?"bottom":"top"])||B,m.classList.remove("is-snapping"),ge()}}),$&&D.addEventListener("keydown",w=>{if(w.target!==ce||!w.altKey||w.metaKey||w.ctrlKey)return;let A=w.shiftKey?50:10,Y=w.key==="ArrowRight"?A:w.key==="ArrowLeft"?-A:0,P=w.key==="ArrowDown"?A:w.key==="ArrowUp"?-A:0;if(!Y&&!P)return;w.preventDefault(),w.stopPropagation();let ee=m.dataset.mode!=="floating";Wt=!0,e(),o(),zt(),ee&&ce.focus({preventScroll:!0});let{maxX:Ct,maxY:He}=ht();V=j(V+(Se?-Y:Y),N,Ct),B=j(B+(xe?-P:P),N,He),ge(),ze&&pe(ze,{x:V,y:B,corner:ie})});let R=w=>{if(w.pointerId!==r)return;if(w.buttons===0){q(w);return}let A=w.clientX-d,Y=w.clientY-v;if(!he){if(Math.hypot(A,Y)<(w.pointerType==="mouse"?6:10))return;he=!0,Wt=!0,e(),o(),zt(),f=V,M=B;try{D.setPointerCapture(r)}catch{}m.classList.add("is-dragging")}let{maxX:P,maxY:ee}=ht();V=j(f+(Se?-A:A),N,P),B=j(M+(xe?-Y:Y),N,ee),ge()},q=w=>{if(w.pointerId===r){try{D.releasePointerCapture(r)}catch{}if(r=null,p(!1),me=he,me&&setTimeout(()=>{me=!1},0),he){let{maxX:A,maxY:Y}=ht();V<=N+I?V=N:V>=A-I&&(V=A),B<=N+I?B=N:B>=Y-I&&(B=Y),clearTimeout(b),m.classList.add("is-snapping"),b=setTimeout(()=>m.classList.remove("is-snapping"),340),ge(),ze&&pe(ze,{x:V,y:B,corner:ie})}m.classList.remove("is-dragging")}};D.addEventListener("lostpointercapture",q),x.push(()=>p(!1))}let vo=()=>{($||s.floating)&&(m.dataset.mode==="floating"&&(rt(),ge()),x.push(at(m,[[window,"resize"]],()=>{m.dataset.mode==="floating"&&(rt(),ge())})))};if(z){let e=C("div","tw-presets-menu"),o=C("div","tw-presets-save"),r=C("input","tw-presets-input");r.type="text",r.placeholder="Preset name\u2026",r.spellcheck=!1,r.setAttribute("aria-label","New preset name"),Ue(r);let d=J("button","tw-presets-savebtn","Save");o.append(r,d);let v=C("div","tw-presets-list");e.append(o,v);let f=()=>{let p=Ge(),S=Object.keys(p);if(v.replaceChildren(),!S.length)return v.append(J("div","tw-presets-empty","No presets yet"));for(let R of S){let q=C("div","tw-presets-row"),w=J("button","tw-presets-load",R);w.addEventListener("click",()=>{wn(R),b.close(),Ee(`Loaded preset ${R}`)});let A=we("tw-presets-del",io);A.setAttribute("aria-label",`Delete preset ${R}`),A.addEventListener("click",Y=>{Y.stopPropagation(),vn(R),f()}),q.append(w,A),v.append(q)}},M=()=>{let p=r.value.trim();if(!p){r.focus();return}if(!bn(p)){Ee(`Preset ${p} not saved: storage is full`);return}r.value="",f(),Ee(`Saved preset ${p}`)},b=xt(z,z,e,{width:208,fallbackH:160,gap:6,align:"end",onOpen:()=>{f(),r.focus()}});d.addEventListener("click",M),r.addEventListener("keydown",p=>{p.key==="Enter"&&M()})}if(s.onEditStart||s.onEditEnd){let e=".tw-slider, .tw-num-grab, .tw-pad, .tw-wg-area, .tw-wg-hue, .tw-wg-alpha, .tw-bezier-handle, .tw-gradient-bar, .tw-gradient-stop",o=!1,r=()=>{document.removeEventListener("pointerup",r,!0),document.removeEventListener("pointercancel",r,!0),o&&(o=!1,s.onEditEnd&&s.onEditEnd())},d=v=>{o||!v.target.closest(e)||(o=!0,s.onEditStart&&s.onEditStart(),document.addEventListener("pointerup",r,!0),document.addEventListener("pointercancel",r,!0))};m.addEventListener("pointerdown",d),m._twEditPointer=d,x.push(r)}let _e=s.undo?(()=>{let o=[],r=0,d=!1,v=0,f=(P,ee)=>{if(P===ee)return!0;if(!P||!ee||typeof P!="object"||typeof ee!="object"||Array.isArray(P)!=Array.isArray(ee))return!1;let Ct=Object.keys(P).length==Object.keys(ee).length;for(let He in P)P[He]===ee[He]?P[He]=ee[He]:f(P[He],ee[He])||(Ct=!1);return Ct},M=()=>{v=0;let P=ne();f(P,o[r])||(o=o.slice(0,r+1),o.push(P),o.length>200&&(o=o.slice(o.length-200)),r=o.length-1)},b=()=>{d||(clearTimeout(v),v=setTimeout(M,350))},p=()=>{v&&(clearTimeout(v),M())};h.add(b),k.add(b);let S=P=>{d=!0,Et(o[P]),d=!1,r=P},R=()=>{p(),r>0&&S(r-1)},q=()=>{p(),r<o.length-1&&S(r+1)},w=()=>m.matches(":hover")||m.contains(document.activeElement),A=P=>!!(P&&P.matches&&(P.matches("input, textarea")||P.isContentEditable));return{undo:R,redo:q,onKey:P=>{if(!w()||!(P.metaKey||P.ctrlKey)||A(P.target))return;let ee=P.key.toLowerCase();ee==="z"?(P.preventDefault(),P.shiftKey?q():R()):ee==="y"&&(P.preventDefault(),q())},flush:p,arm:()=>{o=[ne()],r=0}}})():null,st=new Map,ko=e=>{for(;e&&e!==m&&m.contains(e);e=e.parentElement){let o=st.get(e);if(o)return o}},Eo=e=>{for(;e&&e!==m;e=e.parentElement)if(st.get(e)?.kind==="row")return e},tn=e=>!!(e.closest(".tw-filter-hidden, .tw-cond-hidden, .tw-tabs-page:not([data-active=true])")||e.parentElement?.closest(".is-collapsed")),ye,kn=e=>{let o=e.target;!m.contains(o)&&!o.closest?.(".tw-portal")&&Te()},Te=()=>{ye&&(ye[0].classList.remove("is-picked"),ye=void 0,document.removeEventListener("pointerdown",kn,!0),Le?.[0]===m&&(Le=null))},Lo=(e,o)=>{Le&&Le[0]!==m&&Le[1](),Te(),ye=[e,o],Le=[m,Te],e.classList.add("is-picked"),document.addEventListener("pointerdown",kn,!0);let r=[...e.querySelectorAll('button:not(:disabled):not([tabindex="-1"]), [tabindex="0"]')].find(d=>!d.closest(".tw-hint, .tw-portal, [inert]"));r?r.focus({preventScroll:!0,focusVisible:!1}):document.activeElement?.blur?.(),document.getSelection?.()?.removeAllRanges()};x.push(Te),m.addEventListener("pointerdown",e=>{let o=e.target;if(Eo(o)||o.closest(".tw-header, .tw-folder-header, button, input, textarea, select")){ye?.[0].contains(o)||Te();return}if(e.button!==0||e.pointerType==="touch")return Te();let r;for(let[d,v]of st){let f=(v.kind==="folder"?d.firstElementChild:d).getBoundingClientRect();f.height&&e.clientY>=f.top&&e.clientY<f.bottom&&!tn(d)&&(r=[d,v])}if(!r)return Te();e.preventDefault(),Lo(...r)},!0);let En=e=>!!(e&&e.matches&&(e.matches("input, textarea, select")||e.isContentEditable)),Co=e=>{if(e.key==="Escape"){ye&&(e.stopPropagation(),Te());return}if(!(e.metaKey||e.ctrlKey)||e.altKey||e.repeat||En(e.target))return;let o=e.key.toLowerCase();if(o!=="c"&&o!=="v")return;Le&&!Le[0].isConnected&&Le[1](),ye&&tn(ye[0])&&Te();let r=document.activeElement,d=ye?ye[1]:Le||!r||tn(r)?void 0:ko(r);if(!d||o==="c"&&String(document.getSelection?.()||""))return;let v=o==="c"?JSON.stringify(d.kind==="row"?d.entry.get():re(ne(),d.path),g,2):"",f=w=>{E||Ee(w?`${d.label} copied`:"Copy failed")},M=ye?.[0],b=document.activeElement,p=!!b?.matches(":focus-visible");if(!pt){pt=C("textarea","tw-sr"),pt.tabIndex=-1,pt.setAttribute("aria-hidden","true");for(let w of["copy","paste"])document.addEventListener(w,A=>Kt?.(A),!0)}let S=pt,R=()=>{Kt=null,document.activeElement===S&&(S.blur(),b?.focus?.({preventScroll:!0,focusVisible:p}))},q=Kt=w=>{if(w.target!==S&&En(w.target))return;if(w.preventDefault(),R(),v)return w.clipboardData?.setData("text/plain",v),f(!!w.clipboardData);let A=w.clipboardData?.getData("text/plain")??null;import("./clip-ECGCECEC.js").then(Y=>Y.pasteInto(A,P=>Y.pasteScope(te,d,P),te,M),()=>{})};S.isConnected||document.body.appendChild(S),S.value=v,S.focus({preventScroll:!0}),S.select(),setTimeout(()=>{Kt===q&&(R(),v&&gn(v).then(f))},1e3)},Ln=()=>{if(!E){if(H=x.length,en(u,a,i),Jt.length){let e=new Map;for(let d of c)e.has(d.key)||e.set(d.key,d);let o=d=>{let v=e.get(d);return v?v.target[v.key]:i[d]},r=()=>{let d=!1;for(let{node:v,m:f}of Jt)try{if(f.render&&go(v,!f.render(o))&&(d=!0),f.disabled!=null){let M=typeof f.disabled=="function"?f.disabled(o):f.disabled;At(v,!!M)}}catch{}d&&nn()};h.add(r),k.add(r),r(),import("./fold-UGN7TXGX.js").then(d=>{Gt=d.fold},()=>{})}if(F&&Et(Re(oe(F))),!E){_e?.arm(),vo(),x.push(at(m,[[document,"keydown"]],e=>{_e?.onKey(e),Co(e)})),L=!0;for(let e of y.splice(0)){if(E)break;try{e()}catch(o){console.error("[tweaks] a call queued before ready failed:",o)}}ae.clear();for(let e of Fe)e.disabled=!1}}},Cn=(e,o)=>{if(String(e).split(".").some(Nt))return console.warn(`[tweaks] set("${e}") ignored \u2014 reserved key`),!1;let r=String(e).split("."),d;if(r.length>1){let b=i;for(let p=0;p<r.length-1&&b;p++)b=b[r[p]],l.has(b)||(b=null);if(d=b&&c.find(p=>p.target===b&&p.key===r[r.length-1]),!d)return console.warn(`[tweaks] set("${e}") \u2014 no control at that path`),!1}else{let b=c.filter(S=>S.key===e),p=b.find(S=>S.target===i);if(!p&&b.length>1)return console.warn(`[tweaks] set("${e}") is ambiguous \u2014 ${b.length} controls share that key; use a dotted path (e.g. "${b[0].path.join(".")}")`),!1;d=p||b[0]}let v=d?d.target:i,f=d?d.key:e,M=v[f];if(d&&qe(o))return console.warn(`[tweaks] set("${e}") ignored \u2014 a ${typeof o} is not a control value`),!1;if(d)try{Ce(d,o)}catch(b){return console.error(`[tweaks] set("${e}") failed \u2014 value skipped:`,b),!1}else{if(l.has(i[e]))return console.warn(`[tweaks] set("${e}") ignored \u2014 it's a folder/tabs group; set its children instead`),!1;i[e]=o}return Oe(M,v[f])?(i._last=f,!0):!1},Ke={el:m,params:i,on(e){return E?()=>{}:(h.add(e),()=>h.delete(e))},set(e,o,r){let d=String(e),v=r?.silent;W(()=>{Cn(d,o)&&fe(v)})},setMany(e,o){if(e==null||typeof e!="object")return;let r=Object.entries(e),d=o?.silent;W(()=>{let v=!1;for(let[f,M]of r)try{Cn(f,M)&&(v=!0)}catch(b){console.error(`[tweaks] setMany("${f}") failed \u2014 key skipped:`,b)}v&&fe(d)})},reset(){L&&!E&&fn(se),W(ut)},toJSON(){return E?{values:{},ui:{}}:{values:ne(),ui:bo()}},changes(){return E?{}:mt()},fromJSON(e,o){if(!e||typeof e!="object")return;let r=o?.silent,d=e.values&&typeof e.values=="object"?{...e.values}:e.values,v=e.ui&&typeof e.ui=="object"?{...e.ui}:e.ui;W(()=>{d&&Et(d,r),wo(v)})},setName(e){E||(Ye=String(e),ft.textContent=Ye,De(Ye))},setTheme(e){if(!E){if(O)for(let o in O)m.style.removeProperty(o);O=on(e),m._twTheme=O,rn(m,O),window.dispatchEvent(new Event("tw-retheme"))}},savePreset:e=>{if(E||X||!le||!e)return!1;L||ae.set(String(e),"save");let o=!0;return W(()=>{o=bn(e)}),o},loadPreset:e=>{let o=ae.get(String(e));return E||X||o==="delete"||!(o==="save"||Ge()[e])?!1:(W(()=>wn(e)),!0)},deletePreset:e=>{le&&(L||ae.set(String(e),"delete"),W(()=>vn(e)))},presets:()=>E?[]:Object.keys(Ge()),undo:()=>{_e&&W(_e.undo)},redo:()=>{_e&&W(_e.redo)},destroy(){if(!E){E=!0,Kn(m),dt(m);for(let e of x.splice(0))try{e()}catch{}h.clear(),T&&(T.remove(),T=null),tt===m&&(tt=null),m.dataset.twDestroyed="",m.remove()}}},Mn=Qe(a);if(Mn){let e=o=>{if(X=!0,y.length=0,H>=0)for(let r of x.splice(H))try{r()}catch{}for(let r of u.children)r.dataset.twDestroyed="";throw h.clear(),c.length=0,u.replaceChildren(),E||console.warn(`[tweaks] "${t}": the panel could not be built \u2014 ${H>=0?"the build threw":"its lazy controls failed to load"}; the API is inert`),o};Ke.ready=m.ready=Mn.then(Ln).then(()=>Ke,e),Ke.ready.catch(()=>{})}else Ln(),Ke.ready=m.ready=Promise.resolve(Ke);return Ke}var co={metaFor:Ie,restoreDefault:It,hasOwn:Pe,valueChanged:Oe,SPRING_KEYS:Ht,ensureForMetas:Qe,LAZY_IMPORT:Be,createFolder:lt,createControl:Ze,makeCopyBtn:Ft,makeResetBtn:$t,addHintMarker:et};function po(t=document){let n=ln();return n?n?n(t,co):Promise.resolve():import("./markup-MLAHTUK4.js").then(()=>ln()(t,co),s=>console.error("[tweaks] markup chunk failed to load:",s))}if(typeof document<"u"){let t=()=>{document.querySelector('[data-tw], .tw-panel[data-mode="inline"] > .tw-controls')&&po(document)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}var uo=t=>C("div",`${t} tw-standalone tw-portal`),fo=(t,n,s)=>{let a=Qe(t);if(!a)return n(),Promise.resolve(s);let i=a.then(n).then(()=>s);return i.catch(()=>{}),i};function Xo(t,n,s={}){let a=s.key??"value",i=Ie(a,n);if(!i||i.type==="folder"||i.type==="tabs")throw new TypeError(`[tweaks] mountControl: "${a}" is not a single-control schema value`);s.label!=null&&(i.label=String(s.label));let c=!Rt.has(i.type),l=uo("tw-control");t.append(l);let h=null,k=!1,x=i.value,E,L=!1,y=H=>{Oe(x,H)&&(x=H,s.onChange&&s.onChange(H,a))},ae=()=>{if(k||(h=Ze(i,c?y:()=>{}),!h))return;i.hint&&et(h.el,i.hint);let H=()=>{};try{i.render&&!i.render(H)&&h.el.classList.add("tw-cond-hidden")}catch{}try{(typeof i.disabled=="function"?i.disabled(H):i.disabled)&&At(h.el,!0)}catch{}l.append(h.el),c&&(x=h.get(),L&&(h.set(E),y(h.get())))},X={el:l,set:H=>{k||!c||(h?(h.set(H),y(h.get())):(E=H,L=!0))},get:()=>c?h?h.get():L?E:i.value:void 0,destroy:()=>{k=!0,h&&typeof h.destroy=="function"&&h.destroy(),l.dataset.twDestroyed="",l.remove()},ready:null};return X.ready=fo([i],ae,X),X}function Vo(t={}){let n=uo("tw-color-picker"),s=null,a=!1,i=t.value,c,l=!1,h=null,k=L=>{Oe(i,L)&&(i=L,t.onChange&&t.onChange(L))},x=()=>{if(a)return;let L=ke("colorpicker");L&&(s=L({value:t.value,mode:t.mode},k),i=s.get(),n.append(s.el),h&&s.setMode(h),l&&(s.set(c),k(s.get())),St(s.reflow))},E={el:n,set:L=>{a||(s?(s.set(L),k(s.get())):(c=L,l=!0))},get:()=>s?s.get():l?c:t.value,mode:()=>s?s.mode():h||t.mode||"oklch",setMode:L=>{s?s.setMode(L):h=L},reflow:()=>{s&&s.reflow()},destroy:()=>{a=!0,n.remove()},ready:null};return E.ready=fo([{type:"color"}],x,E),E}export{Vo as createColorPicker,po as enhance,So as gradientCss,Mo as gradientStops,Xo as mountControl,Yo as tweaks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{M as n}from"./chunk-7OSCMZ2J.js";var r=(t,i)=>{let a=getComputedStyle(t),m=t._fold?.playState=="running"&&{marginBottom:a.marginBottom,clipPath:a.clipPath,opacity:a.opacity};t._fold?.cancel(),t.classList.remove("tw-cond-hidden");let o=!n.matches&&t.animate&&t.offsetHeight;if(t.classList.toggle("tw-cond-hidden",i),o)try{let s=o+6+parseFloat(a.marginTop),c=o+"px",e={height:c,marginBottom:-s+"px",clipPath:`inset(0 0 ${s}px)`,opacity:0},l={height:c,clipPath:"inset(0)"};(t._fold=t.animate([m||(i?l:e),i?e:l],{duration:350,easing:a.getPropertyValue("--tw-ease-fold").trim()})).onfinish=()=>t.classList.toggle("tw-cond-hidden",i),t.classList.remove("tw-cond-hidden")}catch{}};export{r as fold};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as W,b as F,c as Z,d as tt,e as I,f as et,g as ot}from"./chunk-
|
|
1
|
+
import{a as W,b as F,c as Z,d as tt,e as I,f as et,g as ot}from"./chunk-W3JNIJ2F.js";import{e as J,i as Q}from"./chunk-4ATI34PB.js";import{$ as V,K as z,Z as U,a as X,b as $,c as q,e as Y,g as h,u as y,v as j}from"./chunk-7OSCMZ2J.js";var mt=U('<path d="M12 5v14m7-7H5"/>',"",2.5),lt=(o,S)=>o&&!Array.isArray(o)&&typeof o[S]=="string"?o[S]:null,nt=o=>lt(o,"interpolation"),rt=o=>lt(o,"easing"),st=[["linear","Linear"],["ease","Ease"],["ease-in","Ease in"],["ease-out","Ease out"],["ease-in-out","Ease in-out"]];function at(o){let S=[{color:"oklch(0.72 0.19 25)",pos:0},{color:"oklch(0.72 0.16 280)",pos:1}],l=Array.isArray(o)?o:o&&Array.isArray(o.stops)?o.stops:null,a=(p,O)=>tt(p)?{color:String(p).trim(),pos:h(+O||0,0,1)}:null,d=(l||[]).map(p=>Array.isArray(p)?a(p[0],p[1]):p&&typeof p=="object"?a(p.color,p.pos):null).filter(Boolean);return d.length>=2?d:S}function ht(o,S){o.value??(o.value=o.stops);let l=at(o.value),a=l[0],d=$(rt(o.value)),{root:p,trigger:O,right:it}=Q("tw-gradient",o.label??"Gradient"),k=y("span","tw-trigger-chip tw-gradient-preview");k.setAttribute("role","img"),it.append(k);let v=y("div","tw-color-pop tw-gradient-pop"),N=y("div","tw-gradient-bar-row"),B=y("div","tw-gradient-bar"),T=y("div","tw-gradient-grad"),b=y("div","tw-gradient-rail");B.append(T,b);let A=j("tw-gradient-add",mt);A.title="Add a stop after the selected one",A.setAttribute("aria-label","Add a colour stop after the selected one"),N.append(B,A);let C=()=>[...l].sort((t,e)=>t.pos-e.pos),pt=()=>W(g.mode()),D=()=>({stops:C().map(t=>({color:t.color,pos:+t.pos.toFixed(4)})),interpolation:pt(),easing:d}),f=()=>{let t=Y(D());T.style.background=t,k.style.background=`${t}, ${Z}`},G=()=>{k.setAttribute("aria-label",`${l.length} stop${l.length===1?"":"s"}`)},w=()=>S(D()),H=t=>[...b.children].find(e=>e._stop===t),g=et({value:a.color,mode:F(nt(o.value)||"oklch"),onMode:()=>{f(),w()}},t=>{a.color=t,H(a)?.style.setProperty("--stop",t),f(),w()}),u=y("select","tw-color-mode tw-gradient-ease");u.setAttribute("aria-label","Easing between stops"),u.title="How the ramp blends between stops";for(let[t,e]of st){let s=document.createElement("option");s.value=t,s.textContent=e,u.append(s)}let P=()=>{let t=u.querySelector("option[data-custom]");st.some(([e])=>e===d)?t?.remove():(t||(t=document.createElement("option"),t.dataset.custom="",t.textContent="Custom",u.append(t)),t.value=d),u.value=d};u.addEventListener("change",()=>{d=u.value,P(),f(),w()}),g.el.querySelector(".tw-color-mode").after(u),P(),v.append(N,g.el),p.append(v);let M=t=>t.setAttribute("aria-label",`Colour stop at ${Math.round(t._stop.pos*100)}%${t._stop===a?", selected":""}`),ct=()=>{for(let t of b.children)t.dataset.sel=String(t._stop===a),M(t)},R=()=>{b.replaceChildren();for(let t of l){let e=j("tw-gradient-stop");e._stop=t,e.style.left=t.pos*100+"%",e.style.setProperty("--stop",t.color),e.dataset.sel=String(t===a),M(e),e.addEventListener("focus",()=>L(t,!1));let s=!1;J(e,{onDown:n=>{n.preventDefault(),n.stopPropagation(),e.focus({focusVisible:!1}),L(t,!1),s=!1},onMove:n=>{let r=b.getBoundingClientRect();t.pos=h((n.clientX-r.left)/(r.width||1),0,1),e.style.left=t.pos*100+"%",M(e),f(),w(),s=l.length>2&&(n.clientY<r.top-24||n.clientY>r.bottom+24),e.dataset.removing=String(s)},onEnd:()=>{s?_(t):e.dataset.removing="false"}}),e.addEventListener("dblclick",n=>{n.preventDefault(),_(t)}),e.addEventListener("keydown",n=>{let r=n.key==="ArrowLeft"?-1:n.key==="ArrowRight"?1:0;r&&(n.preventDefault(),t.pos=h(t.pos+r*(n.shiftKey?.1:.01),0,1),e.style.left=t.pos*100+"%",M(e),f(),w())}),b.append(e)}},L=(t,e)=>{t!==a&&(g.set(t.color),a=t),e?R():ct()},dt=t=>{let e=b.getBoundingClientRect();return h((t-e.left)/(e.width||1),0,1)},ft=t=>{let e=C(),s=e[0],n=e[e.length-1];for(let m=0;m<e.length-1;m++)if(t>=e[m].pos&&t<=e[m+1].pos){s=e[m],n=e[m+1];break}let r=q(X(d),n.pos>s.pos?h((t-s.pos)/(n.pos-s.pos),0,1):0),i=I(s.color),c=I(n.color),x=m=>m[1]<1e-4,E=c[2]-i[2];E>180?E-=360:E<-180&&(E+=360),(x(i)||x(c))&&(E=0);let gt=(((x(i)&&!x(c)?c[2]:i[2])+E*r)%360+360)%360;return ot(i[0]+(c[0]-i[0])*r,i[1]+(c[1]-i[1])*r,gt,i[3]+(c[3]-i[3])*r)},_=t=>{if(l.length<=2)return;let e=l.indexOf(t);if(e<0)return;l.splice(e,1);let s=a===t?l[Math.max(0,e-1)]:a;f(),L(s,!0),G(),w(),H(a)?.focus()},K=t=>{let e={color:ft(t),pos:h(t,0,1)};return l.push(e),f(),L(e,!0),G(),w(),e},ut=()=>{let t=C(),e=t.indexOf(a);e<0&&(e=0);let s=e<t.length-1?(t[e].pos+t[e+1].pos)/2:e>0?(t[e-1].pos+t[e].pos)/2:h(t[e].pos+.1,0,1);K(s)};return A.addEventListener("click",t=>{t.stopPropagation(),ut()}),B.addEventListener("dblclick",t=>{t.target.closest(".tw-gradient-stop")||(t.preventDefault(),K(dt(t.clientX)))}),v.tabIndex=-1,v.addEventListener("keydown",t=>{(t.key==="Delete"||t.key==="Backspace")&&!t.altKey&&!/^(input|textarea|select)$/i.test(t.target.tagName)&&l.length>2&&(t.preventDefault(),_(a))}),z(p,O,v,{fallbackH:392,onOpen:g.reflow,onReflow:g.reflow,initialFocus:()=>H(a)}),R(),f(),G(),{el:p,set:t=>{let e=nt(t);e&&g.setMode(F(e));let s=rt(t);s!==null&&(d=$(s),P());let n=at(t).sort((r,i)=>r.pos-i.pos);if(n.length===l.length)C().forEach((r,i)=>{r.color=n[i].color,r.pos=n[i].pos;let c=H(r);c&&(c.style.left=r.pos*100+"%",c.style.setProperty("--stop",r.color))});else{let r=a.pos;l=n,a=l.reduce((i,c)=>Math.abs(c.pos-r)<Math.abs(i.pos-r)?c:i,l[0]),R()}f(),G(),g.set(a.color)},get:()=>D()}}V("gradient",ht);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-4ATI34PB.js";import"./chunk-7OSCMZ2J.js";export{c as accentColor,g as boxFrac,b as cssVar,e as dragGesture,h as fitCanvas,f as grabSurface,j as numField,d as selectAllOnFocus,l as springCurve,k as springSpan,a as svgEl,i as triggerRow};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as _}from"./chunk-4ATI34PB.js";import{$ as Y,K as G,W as J,X as Q,Z as X,r as q,u as i,v as V,w as U}from"./chunk-7OSCMZ2J.js";var ot=e=>String(e).replace(/[\\"]/g,"\\$&").replace(/[\x00-\x1f\x7f]/g,b=>"\\"+b.charCodeAt(0).toString(16)+" "),L=e=>`url("${ot(e)}")`,j=1<<20,tt=e=>e>=j?`${Math.round(e/j*10)/10} MB`:e>=1024?`${Math.round(e/1024)} KB`:`${e} B`,et=e=>{if(/^data:/i.test(e))return"";let b=e.split(/[?#]/)[0].split("/").pop().replace(/\.\w+$/,"");try{return decodeURIComponent(b)}catch{return b}},it=X('<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 st(e,b){let n=typeof e.value=="string"?e.value:"",O=new Set,v=(Array.isArray(e.options)?e.options:[]).map(t=>({value:q(t),label:t&&typeof t=="object"&&t.label!=null?String(t.label):""})).filter(t=>typeof t.value=="string"&&!!t.value&&!O.has(t.value)&&!!O.add(t.value)),at=e.upload!==!1||!v.length,S=e.clear!==!1,z=+e.maxSize>0?+e.maxSize:10*j,d=i("input","tw-image-input");d.type="file",d.accept="image/*";let I=i("span","tw-image-note"),C=i("span","tw-image-live");C.setAttribute("role","status");let E=[I,C],H,$=t=>{for(let r of E)r.textContent=t;clearTimeout(H),H=setTimeout(()=>{for(let r of E)r.textContent=""},2600)},K=t=>(/^blob:/i.test(t)?"":et(t))||(/^(data|blob):/i.test(t)?"Uploaded image":"Custom image"),k,R=0,w=(t,r=!0)=>{R++,n=t,k(),r&&b(n)},F=t=>{if(!t)return;if(!t.type.startsWith("image/"))return $("Not an image");if(t.size>z)return $(`${tt(t.size)}, max ${tt(z)}`);let r=new FileReader,c=++R;r.onload=()=>{R===c&&w(String(r.result))},r.onerror=()=>$("Couldn't read the file"),r.readAsDataURL(t)},B=(t,r)=>{let c=()=>!!p.closest(".is-disabled");t.addEventListener("dragover",u=>{c()||(u.preventDefault(),r.dataset.over="true")}),t.addEventListener("dragleave",()=>{r.dataset.over="false"}),t.addEventListener("drop",u=>{r.dataset.over="false",!c()&&(u.preventDefault(),F(u.dataTransfer?.files[0]))})};d.addEventListener("change",()=>{F(d.files?.[0]),d.value=""});let p;if(v.length){let t=_("tw-image",e.label);p=t.root;let r=i("span","tw-trigger-value"),c=i("span","tw-image-note"),u=i("span","tw-trigger-chip tw-image-thumb");t.right.append(u,c,r),E.push(c);let y=i("div","tw-color-pop tw-image-pop tw-image-gallery"),m=at?V("tw-button tw-image-upload",it):null,A=U("button","tw-image-clear","Clear");A.type="button",A.setAttribute("aria-label",`${e.label}: clear the image`);let x=i("div","tw-image-foot"),T=i("div","tw-image-foot-row"),M=i("div","tw-image-clear-slot");x.append(T),M.append(A);let f=i("div","tw-image-grid");f.setAttribute("role","radiogroup"),f.setAttribute("aria-label",e.label);let D=v.length,P=Math.min(6,Math.max(1,e.cols|0||(D<=3?Math.max(2,D):D===4?2:3)));f.style.setProperty("--tw-img-cols",String(P));let nt=(a,s)=>{let l=J("tw-image-tile",a,o=>w(o));return l.textContent="",l.setAttribute("aria-label",s),l.style.backgroundImage=L(a),l},W=v.map((a,s)=>a.label||et(a.value)||`Image ${s+1}`),h=v.map((a,s)=>{let l=nt(a.value,W[s]);return f.append(l),l}),g=V("tw-image-tile tw-image-custom");g.setAttribute("role","radio");let N=()=>g.parentNode?[...h,g]:h;k=()=>{let a=h.findIndex(o=>o._twVal===n);n&&a<0?(g._twVal=n,g.style.backgroundImage=L(n),g.setAttribute("aria-label",K(n)),g.parentNode||f.append(g)):(g.matches(":focus")&&h[Math.max(0,a)].focus(),g.remove());let s=N(),l=Math.max(0,s.findIndex(o=>o._twVal===n));s.forEach((o,rt)=>{let Z=!!n&&o._twVal===n;o.dataset.active=String(Z),o.setAttribute("aria-checked",String(Z)),o.tabIndex=rt===l?0:-1}),M.dataset.open=String(!!n),M.inert=!n,x.dataset.open=String(!!m||S&&!!n),x.inert=x.dataset.open==="false",u.dataset.set=n?"true":"false",u.style.backgroundImage=n?L(n):"",r.textContent=n?a>=0?W[a]:K(n):"None"},f.addEventListener("keydown",a=>{let s=N(),l=s.indexOf(a.target);if(l<0)return;if(S&&(a.key==="Delete"||a.key==="Backspace")&&!a.altKey&&!a.metaKey&&!a.ctrlKey){a.preventDefault(),h[0].focus(),w("");return}let o=Q(a.key,l,s.length,P);o<0||(a.preventDefault(),o!==l&&(s[o].focus(),w(s[o]._twVal)))}),A.addEventListener("click",()=>{(m||h[0]).focus(),w("")}),y.append(f,x),p.append(y,C),m&&(m.setAttribute("aria-label",`${e.label}: upload an image`),m.append(I,U("span","tw-image-text","Upload image")),m.addEventListener("click",()=>d.click()),T.append(m),p.append(d),B(t.trigger,t.trigger),B(y,y)),S&&T.append(M),G(p,t.trigger,y,{fallbackH:220,initialFocus:()=>N().find(a=>a.tabIndex===0)})}else{let t=_("tw-image",e.label);p=t.root,t.trigger.removeAttribute("aria-expanded"),t.trigger.setAttribute("aria-label",`${e.label}: choose an image`);let r=i("span","tw-image-text"),c=i("span","tw-trigger-chip tw-image-thumb");t.right.append(c,I,r),p.append(d,C),k=()=>{c.dataset.set=n?"true":"false",c.style.backgroundImage=n?L(n):"",r.textContent=n?"Replace":"Drop or choose"},t.trigger.addEventListener("click",()=>d.click()),B(t.trigger,t.trigger)}return k(),{el:p,set:t=>{t!=null&&typeof t!="string"||w(t||"",!1)},get:()=>n}}Y("image",st);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as tt}from"./chunk-4ATI34PB.js";import{$ as _,B as U,Q as Y,R as Z,g as c,j as K,k as T,l as q,n as G,o as A,p as P,q as C,u as f,w as V,y as J,z as Q}from"./chunk-7OSCMZ2J.js";function st(r,et){let E=r.label,w=+(r.value&&r.value[0]),x=+(r.value&&r.value[1]),N=Number.isFinite(w)?w:0,k=Number.isFinite(x)?x:1,[R,S]=[C(N),C(k)],W=t=>t!=null&&t!==""&&Number.isFinite(+t),{min:n,max:l,step:h}=G(W(r.min)?r.min:Math.min(R[0],S[0]),W(r.max)?r.max:Math.max(R[1],S[1]),r.step,N,k);[n,l]=q(n,l,h);let $=K(h),v=t=>T(t,n,h),i=c(v(Number.isFinite(w)?w:n),n,l),s=c(v(Number.isFinite(x)?x:l),n,l);if(i>s){let t=i;i=s,s=t}let p=f("div","tw-slider-wrap"),a=f("div","tw-slider tw-interval"),F=f("div","tw-slider-fill"),d=f("div","tw-slider-handle"),u=f("div","tw-slider-handle"),L=V("span","tw-slider-label",E),y=f("span","tw-slider-value");a.append(F,d,u,L,y),p.append(a),[["minimum",d],["maximum",u]].forEach(([t,e])=>{e.tabIndex=0,e.setAttribute("role","slider"),e.setAttribute("aria-label",`${E} ${t}`),e.setAttribute("aria-valuemin",String(n)),e.setAttribute("aria-valuemax",String(l))});let M=t=>(t-n)/(l-n||1)*100,D=t=>`clamp(5px, calc(${t}% - 1.5px), calc(100% - 9px))`,m=()=>{let t=M(i),e=M(s);F.style.left=t+"%",F.style.width=Math.max(0,e-t)+"%",d.style.left=D(t),u.style.left=D(e),y.textContent=`${i.toFixed($)} \u2013 ${s.toFixed($)}`,d.setAttribute("aria-valuenow",String(i)),u.setAttribute("aria-valuenow",String(s));let o=p.offsetWidth;if(o){L.style.maxWidth=Math.max(0,o-y.offsetWidth-12-8-10)+"px";let I=it=>P(L,y,it/100*o-1.5,3);d.classList.toggle("is-dodge",I(M(i))),u.classList.toggle("is-dodge",I(M(s)))}};m();let O=()=>et([i,s]),X=t=>{i=c(Math.min(v(t),s),n,l),m()},j=t=>{s=c(Math.max(v(t),i),n,l),m()},b=null,H=1,g=null,nt=t=>{let e=p.offsetWidth||b.width,o=c((t-b.left)/H/e,0,1);return c(n+o*(l-n),n,l)},z=t=>{let e=nt(t);g||(g=e<i?"lo":e>s?"hi":Math.abs(e-i)<=Math.abs(e-s)?"lo":"hi"),g==="lo"?X(e):j(e),O()};tt(a,{onDown:t=>{t.preventDefault(),b=p.getBoundingClientRect(),H=b.width/(p.offsetWidth||b.width),a.style.transition="",a.classList.add("is-active","is-dragging"),g=null,z(t.clientX),(g==="lo"?d:u).focus({focusVisible:!1})},onMove:t=>{z(t.clientX),Y(a,b,t.clientX)},onEnd:()=>{Z(a),b=null,g=null,a.classList.remove("is-active","is-dragging")}}),U(a,m),J(m),Q(a,[[window,"resize"],[window,"tw-reflow"]],m);let B=t=>e=>{let o=t==="lo"?A(e,i,h,n,s):A(e,s,h,i,l);o!=null&&(e.preventDefault(),t==="lo"?X(o):j(o),O())};return d.addEventListener("keydown",B("lo")),u.addEventListener("keydown",B("hi")),{el:p,set:t=>{if(Array.isArray(t)){let e=+t[0],o=+t[1];if(!Number.isFinite(e)||!Number.isFinite(o))return;i=c(v(Math.min(e,o)),n,l),s=c(v(Math.max(e,o)),n,l),m()}},get:()=>[i,s]}}_("interval",st);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as L,aa as O,ba as T,f as H,u as k,v as C}from"./chunk-7OSCMZ2J.js";var j=[],F=e=>({...Object.fromEntries(j.map(t=>[t,a(e[t])])),mode:e.mode}),A={slider:e=>({value:a(e.value),min:a(e.min),max:a(e.max),step:a(e.step),soft:v(e.soft),unit:e.unit}),checkbox:e=>e.options?{type:"radiogrid",options:d(e.options),value:e.value,cols:a(e.cols)}:{value:e.checked==="true"},radiogrid:e=>({options:d(e.options),value:e.value,cols:a(e.cols)}),list:e=>({options:d(e.options),value:e.value}),image:e=>({value:e.value,options:e.options?d(e.options):void 0,cols:a(e.cols),maxSize:a(e.maxSize),upload:e.upload==="false"?!1:void 0,clear:e.clear==="false"?!1:void 0}),buttongroup:e=>({buttons:d(e.buttons).map(t=>({label:t}))}),separator:()=>({}),number:e=>({value:a(e.value),min:a(e.min),max:a(e.max),step:a(e.step),unit:e.unit}),text:e=>({value:e.value??"",placeholder:e.placeholder,rows:a(e.rows)}),fpsgraph:e=>({label:e.label??"FPS"}),interval:e=>({value:e.value?e.value.split(",").map(Number):void 0,min:a(e.min),max:a(e.max),step:a(e.step)}),sides:e=>({value:e.value??e,corners:v(e.corners),unit:e.unit,step:a(e.step),min:a(e.min),max:a(e.max)}),shadow:e=>({value:e.value??{...e,inset:v(e.inset)}}),spring:F,motion:e=>({...F(e),curve:e.curve&&e.curve.includes(",")?e.curve.split(",").map(Number):e.curve,duration:a(e.duration)}),cubicbezier:e=>({value:e.value?e.value.split(",").map(Number):void 0}),point:e=>{let t=(e.value||"").split(",").map(o=>parseFloat(o));return{components:d(e.components||"X,Y").map((o,i)=>({key:o.toLowerCase(),label:o,value:isNaN(t[i])?0:t[i],step:a(e.step),min:a(e.min),max:a(e.max)})),pad:v(e.pad),invertY:e.invertY==="true"}},plot:e=>({expr:e.expr,xMin:a(e.xmin),xMax:a(e.xmax),yMin:a(e.ymin),yMax:a(e.ymax),samples:a(e.samples),editable:e.editable!=="false"})},a=e=>{if(e==null||e==="")return;let t=+e;return Number.isFinite(t)?t:void 0},v=e=>e==="true"||e==="",d=e=>(e||"").split(",").map(t=>t.trim()).filter(Boolean),Y=(e,t)=>{let o=t.dataset,i=o.tw,y=o.label??H(o.key||i),b=e.hasOwn(A,i)?A[i](o,t,y):e.LAZY_IMPORT[i]||O(i)?{...o}:null;return b?e.metaFor("v",{type:i,label:y,...b}):null},I=(e,t)=>{e.dataset.value=t==null?"":Array.isArray(t)?t.join(","):typeof t=="object"?Object.values(t).join(","):String(t)},K=(e,t,o)=>{I(e,o),e.dispatchEvent(new CustomEvent("tw:change",{bubbles:!0,detail:{key:t,value:o}}))},x=(e,t)=>[...typeof e.matches=="function"&&e.matches(t)?[e]:[],...e.querySelectorAll(t)];async function q(e,t){let{createFolder:o,createControl:i,makeCopyBtn:y,makeResetBtn:b,addHintMarker:R,restoreDefault:B,hasOwn:_,valueChanged:D,ensureForMetas:N}=t;j=t.SPRING_KEYS,x(e,'.tw-panel[data-mode="inline"]:not([data-tw-panel-bound])').forEach(n=>{let r=n.querySelector(":scope > .tw-header"),c=n.querySelector(":scope > .tw-controls");if(!r||!c)return;n.setAttribute("data-tw-panel-bound","");let p=k("div","tw-body");n.insertBefore(p,c),p.append(c);let l=r.querySelector(".tw-header-toggle"),s=r.querySelector(".tw-title");if(!l&&s&&(l=C("tw-header-toggle"),s.replaceWith(l),l.append(s)),!!l&&(l.setAttribute("aria-expanded","true"),l.addEventListener("click",()=>L(n,l,p,!n.classList.contains("is-collapsed"))),!r.querySelector(".tw-toolbar"))){let f=()=>[...n.querySelectorAll("[data-tw]")].map(u=>u._tw).filter(u=>u&&u.ctrl.get()!==void 0),g=()=>{let u=Object.create(null);for(let h of f()){let M=h.key,P=2;for(;_(u,M);)M=`${h.key}-${P++}`;u[M]=h.ctrl.get()}return JSON.stringify(u,null,2)},m=()=>{for(let u of f())u.reset()},S=k("div","tw-toolbar");S.append(y(()=>[g(),-1]),b(m)),r.append(S)}}),x(e,'[data-tw="folder"]:not([data-tw-bound])').forEach(n=>{n.setAttribute("data-tw-bound","");let r=o({label:n.dataset.label||"Folder"});[...n.children].forEach(c=>r.body.append(c)),n.append(r.el)});let w=x(e,"[data-tw]:not([data-tw-bound])").map(n=>({host:n,meta:Y(t,n)})).filter(n=>n.meta);w.forEach(({host:n})=>n.setAttribute("data-tw-bound",""));let E=N(w.map(n=>n.meta));E&&await E.catch(()=>{});for(let{host:n,meta:r}of w){let c=n.dataset.key||r.label,p,l=m=>{D(p,m)&&(p=m,K(n,c,m))},s=i(r,l);if(!s)continue;n.closest(".tw-panel, .tw-portal")||n.classList.add("tw-portal"),n.append(s.el),n.dataset.hint&&R(s.el,n.dataset.hint);let f=s.get();p=f;let g={...s,set:m=>{s.set(m),l(s.get())}};n._tw={ctrl:g,raw:r.value,def:f,key:c,host:n,reset:()=>{B(s,r.value,f),l(s.get())}}}}T(q);export{A as DATA_VALUE};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as T,h as D}from"./chunk-
|
|
1
|
+
import{c as T,h as D}from"./chunk-4ATI34PB.js";import{$ as j,_ as y,g as q,s as L,u as R,w as S}from"./chunk-7OSCMZ2J.js";var G=(n,o,u,m,p,k,N)=>{let r=p.length;n.clearRect(0,0,u,m),n.strokeStyle=T(o),n.lineWidth=1.5,n.lineJoin="round",n.beginPath();let s=!1;for(let l=0;l<r;l++){let a=p[(k+l)%r];if(Number.isNaN(a))continue;let w=l/(r-1)*u,b=m-q(N(a),0,1)*m;s?n.lineTo(w,b):(n.moveTo(w,b),s=!0)}n.stroke()},H=n=>{for(let o of["resize","tw-reflow"])window.addEventListener(o,n);return()=>{for(let o of["resize","tw-reflow"])window.removeEventListener(o,n)}};function J(n,o=!1){let u=typeof n.get=="function"?n.get:()=>n.value,m=Math.max(30,Number.isFinite(+n.interval)?+n.interval:200),p;try{p=u()}catch{}let k=typeof p=="number",N=n.view==="graph"||k&&n.graph!==!1&&n.view!=="text"&&n.rows==null,r=R("div","tw-fps tw-monitor"),s=S("span","tw-fps-val","\u2014");r.append(S("span","tw-fps-label",n.label??"Monitor"),s);let l=0,a=0,w=()=>{},b=!1,W=Number.isFinite(+n.decimals)?Math.min(20,Math.max(0,Math.floor(+n.decimals))):2,d=e=>e==null?"\u2014":typeof e=="number"?Number.isInteger(e)||!Number.isFinite(e)?String(e):e.toFixed(W):typeof e=="object"?L(e):String(e),h=()=>{l&&clearInterval(l),l=0,a&&cancelAnimationFrame(a),a=0,w()},v=e=>{let i=f=>{if(o&&(a=requestAnimationFrame(i)),!r.isConnected){b&&h();return}b=!0;let t;try{t=u(f)}catch{return}e(t)};o?a=requestAnimationFrame(i):l=setInterval(i,m)};if(!N&&n.rows){s.remove();let e=Math.max(1,Math.floor(+n.rows)||1),i=R("pre","tw-monitor-buffer");i.style.setProperty("--tw-monitor-rows",e),r.append(i);let f=[];return v(t=>{for(f.push(d(t));f.length>e;)f.shift();i.textContent=f.join(`
|
|
2
2
|
`)}),y(r,h)}if(!N)return v(e=>{s.textContent=d(e)}),y(r,h);let C=document.createElement("canvas");C.className="tw-fps-canvas",r.append(C);let F=C.getContext("2d");if(!F)return v(e=>{s.textContent=d(e)}),y(r,h);let A=80,I=new Array(A).fill(NaN),x=0,M=0,E=0,z=()=>{[M,E]=D(C,F,2)};w=H(z);let B=()=>{if(M||z(),!M)return;let e=n.min,i=n.max;if(e==null||i==null){let t=1/0,c=-1/0;for(let g of I)Number.isFinite(g)&&(g<t&&(t=g),g>c&&(c=g));t===1/0?(t=0,c=1):t===c&&(t-=.5,c+=.5);let P=(c-t)*.1;e==null&&(e=t-P),i==null&&(i=c+P)}let f=i-e||1;G(F,r,M,E,I,x,t=>(t-e)/f)};return v(e=>{if(typeof e!="number"||!Number.isFinite(e)){s.textContent=d(e);return}I[x]=e,x=(x+1)%A,s.textContent=d(e),B()}),y(r,h)}var K=()=>{let n=0;return o=>{if(!(o>0))return;let u=n?1e3/(o-n):void 0;return n=o,u}},O=n=>J({...n,label:n.label??"FPS",get:K(),view:"graph",min:0,max:120,decimals:0},!0);j("fpsgraph",O);j("monitor",n=>J(n));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as U,i as re,j as ae,l as X}from"./chunk-4ATI34PB.js";import{$ as oe,K as ne,M as ie,Y as se,aa as L,g as b,h as _,u as a,w as te}from"./chunk-7OSCMZ2J.js";var q={ease:[.25,.1,.25,1],linear:[0,0,1,1],"ease-in":[.42,0,1,1],"ease-out":[0,0,.58,1],"ease-in-out":[.42,0,.58,1]},ye=300,F=1e4,he=16,ue=.9,r=e=>typeof e=="number"?Number.isFinite(e):typeof e=="string"&&e.trim()!==""&&Number.isFinite(+e),B=e=>{if(typeof e=="string")return Object.prototype.hasOwnProperty.call(q,e)?q[e].slice():null;if(Array.isArray(e)&&e.length===4){let o=e.map(Number);return o.every(Number.isFinite)?o:null}return null},ce=e=>r(e.stiffness)||r(e.damping)||r(e.mass)||r(e.visualDuration)||r(e.bounce),pe=e=>{let o={mode:"time"};if(r(e.stiffness)){let M=+e.stiffness,w=r(e.mass)?+e.mass:1,g=Math.sqrt(M/w);o.visualDuration=2*Math.PI/g,r(e.damping)&&(o.bounce=b(1-+e.damping/(2*Math.sqrt(M*w)),0,ue))}return r(e.visualDuration)&&(o.visualDuration=+e.visualDuration),r(e.bounce)&&(o.bounce=b(+e.bounce,0,ue)),o},le=(e,o)=>e.mode==="spring"||e.mode==="easing"?e.mode:ce(e)?"spring":B(e.curve)?"easing":o;function ve(e,o){let M=L("cubicbezier"),w=L("spring");if(!M||!w)throw new Error("[tweaks] motion: the bezier and spring controls are not loaded");let g=_(e.value)?e.value:{},i=le(g,"easing"),l=B(g.curve)??q.ease.slice(),y=r(g.duration)?b(+g.duration,0,F):ye,{root:I,trigger:me,right:de}=re("tw-motion",e.label??"Motion"),H=a("span","tw-trigger-chip tw-motion-chip"),E=U("svg");E.setAttribute("viewBox","0 0 100 100"),E.setAttribute("preserveAspectRatio","none");let V=U("path");E.append(V),H.append(E);let W=a("span","tw-trigger-value");de.append(H,W);let R=a("div","tw-color-pop tw-motion-pop"),G=a("div","tw-motion-body");R.append(G);let C=M({...e,type:"cubicbezier",label:"",value:l.slice()},t=>{l=t,v(),S()});l=C.get();let p=w({...e,type:"spring",label:"",value:pe(g)},()=>{v(),S()}),D=ae({label:"Duration",value:y,step:10,min:0,max:F,unit:"ms"},t=>{y=b(t,0,F),v(),S()});y=D.get();let $=a("div","tw-motion-pane"),j=a("div","tw-motion-pane"),K=a("div","tw-fields");K.append(D.el),$.append(C.el,K),j.append(p.el);let c=a("div","tw-motion-stage"),h=a("div","tw-motion-box");c.append(h);let O=se([{value:"easing",label:"Easing"},{value:"spring",label:"Spring"}],i,t=>{(t==="easing"||t==="spring")&&t!==i&&(i=t,z(),v(),S())},"Motion type"),J=a("div","tw-row");J.append(te("span","tw-row-label","Type"),O.el),G.append(J,$,j,c),I.append(R);let P=()=>{if(i==="easing")return{mode:i,curve:l.slice(),duration:y,easing:`cubic-bezier(${l.join(", ")})`};let t=p.get(),n=7/Math.max(t.damping/(2*t.mass),.5),u=b(Math.round(n*40),48,240);return{mode:i,...t,duration:Math.round(n*1e3),easing:`linear(${X(t.stiffness,t.damping,t.mass,u,n).map(s=>+s.toFixed(3)).join(", ")})`}},S=()=>o(P()),x=!1,A=null,k=t=>{if(t)x=!x;else if(A&&A.playState==="running")return;let n=P(),u=Math.max(0,c.clientWidth-h.offsetWidth-2*he),s=`translateX(${x?0:u}px)`,m=`translateX(${x?u:0}px)`;if(ie.matches||typeof h.animate!="function"){h.style.transform=m;return}A?.cancel();let d=[{transform:s},{transform:m}];try{A=h.animate(d,{duration:n.duration,easing:n.easing,fill:"forwards"})}catch{A=h.animate(d,{duration:n.duration,fill:"forwards"})}};c.addEventListener("click",()=>k(!0)),c.tabIndex=0,c.setAttribute("role","button"),c.setAttribute("aria-label","Replay the motion"),c.addEventListener("keydown",t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),k(!0))});let ge=()=>{let t;if(i==="easing"){let[s,m,d,be]=l;t=[];for(let N=0;N<=24;N++){let f=N/24,T=1-f,Y=3*T*T*f,Z=3*T*f*f,ee=f*f*f;t.push([Y*s+Z*d+ee,Y*m+Z*be+ee])}}else{let s=p.get();t=X(s.stiffness,s.damping,s.mass,32).map((m,d)=>[d/31,m])}let n=Math.max(1,...t.map(s=>s[1])),u=Math.min(0,...t.map(s=>s[1]));return t.map(([s,m],d)=>`${d?"L":"M"}${(10+s*80).toFixed(1)},${(90-(m-u)/(n-u)*80).toFixed(1)}`).join(" ")},Q=()=>{i==="easing"?C.set(l.slice()):p.set(p.get())},z=()=>{$.style.display=i==="easing"?"":"none",j.style.display=i==="spring"?"":"none",Q()},fe=()=>i==="easing"?`Easing \xB7 ${y} ms`:`Spring \xB7 ${Math.round((p.get().visualDuration??0)*1e3)} ms`,v=()=>{V.setAttribute("d",ge()),W.textContent=fe(),k(!1)};return ne(I,me,R,{fallbackH:380,onOpen:()=>{O.set(i),Q(),k(!0)},initialFocus:()=>O.el.querySelector('[tabindex="0"]')}),z(),v(),{el:I,set:t=>{let n=typeof t=="string"?{curve:t}:Array.isArray(t)&&t.length===4?{curve:t}:_(t)?t:null;if(!n)return;i=le(n,i);let u=B(n.curve);u&&(C.set(u.slice()),l=C.get()),i==="easing"&&r(n.duration)&&(D.set(b(+n.duration,0,F)),y=D.get()),ce(n)&&p.set(pe(n)),O.set(i),z(),v()},get:P,destroy:()=>p.destroy&&p.destroy()}}oe("motion",ve);
|