tweakit 0.5.0 → 0.5.2
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 +1 -1
- package/dist/tweaks/{bezier-FGHOXLK7.js → bezier-2RABC6LD.js} +1 -1
- package/dist/tweaks/{chunk-3OFFERWV.js → chunk-4ATI34PB.js} +1 -1
- package/dist/tweaks/chunk-7OSCMZ2J.js +1 -0
- package/dist/tweaks/{chunk-TJ7C7WEG.js → chunk-W3JNIJ2F.js} +1 -1
- package/dist/tweaks/{clip-DEE6IYA2.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-WMNCNKTT.js → fold-UGN7TXGX.js} +1 -1
- package/dist/tweaks/{gradient-LEJ2EDYX.js → gradient-DB6XTDHO.js} +1 -1
- package/dist/tweaks/{heavy-SO6ALHQ7.js → heavy-PKOMHB3C.js} +1 -1
- package/dist/tweaks/image-7MCLBOZ3.js +1 -0
- package/dist/tweaks/{interval-WUVSRTUI.js → interval-L2E4L3AZ.js} +1 -1
- package/dist/tweaks/markup-ZJJ6CCWM.js +1 -0
- package/dist/tweaks/{monitor-FPVS44FV.js → monitor-IEK742PG.js} +1 -1
- package/dist/tweaks/{motion-LS7Q6QBU.js → motion-N5UNVR55.js} +1 -1
- package/dist/tweaks/{plot-XPUREPOK.js → plot-VVTOY3RA.js} +1 -1
- package/dist/tweaks/{point-EQKNOK5O.js → point-YMMHSLO7.js} +1 -1
- package/dist/tweaks/{shadow-YHAPHE3U.js → shadow-IKYOV3VN.js} +1 -1
- package/dist/tweaks/{sides-LN4RJOHZ.js → sides-FH227Z54.js} +1 -1
- package/dist/tweaks/{spring-FJQOZ2JN.js → spring-3PKAFIH7.js} +1 -1
- package/dist/tweaks/{tabs-C2N4PHDG.js → tabs-BKK5NIIY.js} +1 -1
- package/dist/tweaks.css +1 -1
- package/dist/tweaks.js +3 -3
- package/dist/types/tweaks/panel.d.ts +1 -0
- package/dist/types/tweaks/schema.d.ts +3 -0
- package/dist/types/tweaks/types.d.ts +16 -3
- package/package.json +1 -1
- package/dist/tweaks/chunk-JLZ4DKW3.js +0 -1
- package/dist/tweaks/colour-CZXGQSCD.js +0 -1
- package/dist/tweaks/image-KDCHYEEV.js +0 -1
- package/dist/tweaks/markup-GW37JHKB.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; an upload past `fit` px (2560) on its long side, or over 1.5 MB, is redrawn, as a PNG up to 1.5 MB, else JPEG at `quality` (0.85), or WebP for transparency; `fit: false` keeps it whole | 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]` |
|
|
@@ -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);
|
|
@@ -1 +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-
|
|
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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as pt,f as re,g as oe,i as bt,j as mt}from"./chunk-3OFFERWV.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-JLZ4DKW3.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
|
+
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 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-JLZ4DKW3.js";var Be={number:()=>import("./heavy-SO6ALHQ7.js"),interval:()=>import("./interval-WUVSRTUI.js"),color:()=>import("./colour-CZXGQSCD.js"),gradient:()=>import("./gradient-LEJ2EDYX.js"),shadow:()=>import("./shadow-YHAPHE3U.js"),sides:()=>import("./sides-LN4RJOHZ.js"),tabs:()=>import("./tabs-C2N4PHDG.js"),image:()=>import("./image-KDCHYEEV.js"),fpsgraph:()=>import("./monitor-FPVS44FV.js"),monitor:()=>import("./monitor-FPVS44FV.js"),spring:()=>import("./spring-FJQOZ2JN.js"),cubicbezier:()=>import("./bezier-FGHOXLK7.js"),motion:()=>Promise.all([import("./bezier-FGHOXLK7.js"),import("./spring-FJQOZ2JN.js")]).then(()=>import("./motion-LS7Q6QBU.js")),point:()=>import("./point-EQKNOK5O.js"),plot:()=>import("./plot-XPUREPOK.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","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, .tw-image-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-DEE6IYA2.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-WMNCNKTT.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-GW37JHKB.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
|
+
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 So,da as Ee,e as Mo,f as Mn,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 St,r as Ne,s as Nn,t as In,u as S,v as we,w as J,x as Rn,y as Mt,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-7MCLBOZ3.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=>St(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,b=2;for(;n.has(l);)l=`${c}-${b++}`;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,b=2;for(;s.has(l);)l=`${c}-${b++}`;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=Mn(t),i=(c,l,b=a)=>({type:c,key:t,label:b,...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,...b}=n;return i(c,b,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,b]=St(c),k=n.length>1?n[1]:l,x=n.length>2?n[2]:b;return i("slider",{value:c,min:k,max:x,step:n[3]??it(k,x)})}if(typeof n=="number"){let[c,l]=St(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"/>'),un=t=>Ae('<path d="M18 9s-4.4 6-6 6-6-6-6-6"/>',t,2.5),ro=un("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),pn=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,b=Number.isFinite(+t.value)?+t.value:a,k=t.soft&&!l?b:j(b,a,i),x=0,L=Tn(c),C=S("div","tw-slider-wrap"),y=S("div","tw-slider"),ae=S("div","tw-slider-hashmarks"),X=S("div","tw-slider-fill"),H=S("div","tw-slider-handle"),W=J("span","tw-slider-label",s),T=S("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=p=>{if(ne)try{let O=ne(p);if(typeof O=="string"&&O)return O}catch{}return p.toFixed(L)};y.append(ae,X,H,W,T),C.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=p=>An(p,a,c),ue=l?Array.from({length:Math.max(0,Math.round((i-a)/c)-1)},(p,O)=>(O+1)*c/(i-a)*100):[];for(let p of ue){let O=S("div","tw-slider-hashmark");O.style.left=p+"%",ae.append(O)}let re=()=>{let p=j((k-a)/(i-a||1)*100,0,100),O=x?` + ${x.toFixed(1)}px`:"",$=`${p}%${O}`;X.style.width=x?`calc(${$})`:p+"%",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=C.offsetWidth,ie=T.offsetWidth;if(Z){ie&&(W.style.maxWidth=Math.max(0,Z-ie-30)+"px");let Me=Math.max(5,p/100*Z+x-9);y.classList.toggle("is-dodge",Hn(W,T,Me,3))}};re();let G=null,Re=1,pe=null,fe=!0,qe,Ce=null,je=null,nt=`width 0.34s ${an}`,pt=`left 0.34s ${an}, opacity 0.15s, transform 0.2s ${Bn}`,m=.2,De=p=>{if(!G)return k;let O=C.offsetWidth||G.width,$=j((p-G.left)/Re/O,0,1);return j(a+$*(i-a),a,i)},D=(p,O=!0)=>{p=+p,Number.isFinite(p)&&(k=l?j(oe(p),a,i):t.soft?p:j(p,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=p=>(p-a)/c,te=0,se=0,z=0,de=!1,Se=null,U=k,Fe=0,he=()=>{z&&cancelAnimationFrame(z),z=0,Fe=0},me=p=>{if(!y.isConnected){he();return}let O=Fe?Math.min((p-Fe)/1e3,.05):1/60;Fe=p;let $=C.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,Me=1/240;for(;ie>1e-4;){let xe=Math.min(Me,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!==Se&&(Se=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=p=>{te=Ve(k),se=0,de=!0,Se=Math.round(Ve(k)),U=De(p),z||(z=requestAnimationFrame(me))};y.addEventListener("pointerdown",p=>{if(!T.classList.contains("is-editing")&&!(p.button!==0||pe)){p.preventDefault(),y.focus({focusVisible:!1}),je=p.pointerId;try{p.target.setPointerCapture(p.pointerId)}catch{}clearTimeout(qe),y.style.transition="",pe={x:p.clientX,y:p.clientY},fe=!0,y.classList.add("is-active"),G=C.getBoundingClientRect(),Re=G.width/(C.offsetWidth||G.width),l?(X.style.transition="",H.style.transition="",Bt(p.clientX)):(X.style.transition=nt,H.style.transition=pt,D(De(p.clientX)))}}),y.addEventListener("pointermove",p=>{if(!(!pe||p.pointerId!==je)){if(p.buttons===0){$e();return}if(fe&&Math.hypot(p.clientX-pe.x,p.clientY-pe.y)>Oo&&(fe=!1,y.classList.add("is-dragging"),l||(X.style.transition="",H.style.transition="")),!fe)if(qn(y,G,p.clientX),l)U=De(p.clientX);else{let O;if(p.altKey){Ce||(Ce={x:p.clientX,v:k});let $=C.offsetWidth||G.width;O=j(Ce.v+(p.clientX-Ce.x)/$*(i-a)*m,a,i)}else Ce=null,O=De(p.clientX);D(O)}}});let $e=p=>{!pe||p&&p.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),pe=null,Ce=null,je=null)};y.addEventListener("pointerup",$e),y.addEventListener("pointercancel",$e),y.addEventListener("lostpointercapture",$e),jn(y,re),Mt(re),at(y,[[window,"resize"]],re),y.addEventListener("keydown",p=>{if(p.target!==y||pe)return;let O=_n(p,k,c,a,i,(i-a)/10||c*10);O!=null&&(p.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",p=>{p.pointerType&&p.pointerType!=="mouse"?(T.classList.add("is-editable"),p.stopPropagation()):T.classList.contains("is-editable")&&p.stopPropagation()});let We=()=>{if(T.classList.contains("is-editing"))return;let p=S("input","tw-slider-input");p.type="text",p.inputMode=F?"text":"decimal",Ue(p),p.value=F?le(oe(k)):oe(k).toFixed(L);let O=p.value;p.style.width=O.length+1+"ch",T.classList.add("is-editing"),T.replaceWith(p),p.focus(),p.select();let $=()=>{p.replaceWith(T),T.classList.remove("is-editing","is-editable")},N=()=>{let I=p.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)),$()};p.addEventListener("pointerdown",I=>I.stopPropagation()),p.addEventListener("blur",N),p.addEventListener("keydown",I=>{I.key==="Enter"?(p.removeEventListener("blur",N),y.focus(),N()):I.key==="Escape"&&(I.stopPropagation(),p.removeEventListener("blur",N),y.focus(),$())})};return T.addEventListener("click",()=>{T.classList.contains("is-editable")&&We()}),y.addEventListener("keydown",p=>{p.key==="Enter"&&p.target===y&&!pe&&(p.preventDefault(),We())}),{el:C,set:p=>D(p,!1),get:()=>oe(k)}}function Ho(t,n){let s=S("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=S("div",s.length>a?"tw-radiogrid is-grid":"tw-radiogrid"),c=S("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]),b=s.map(L=>{let C=Wn("tw-radiogrid-btn",L,y=>x(y));return c.append(C),C}),k=()=>Vn(b,l),x=(L,C=!0)=>{L!=null&&!b.some(y=>y._twVal===L)||(l=L,k(),C&&n(L))};return c.addEventListener("keydown",L=>{let C=Xn(b,l);if(C<0)return;let y=zn(L.key,C,b.length,a);y<0||(L.preventDefault(),y!==C&&(x(b[y]._twVal),b[y].focus()))}),k(),i.append(J("span","tw-radiogrid-label",t.label),c),{el:i,set:L=>x(L,!1),get:()=>l}}var Io=/^(?:#[0-9a-f]{3,8}|[a-z]+|(?:oklch|oklab|rgba?|hsla?|hwb|lab|lch|color|var)\([^()]*\))$/i,Ro=un("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=S("div","tw-select"),c=we("tw-select-trigger");c.setAttribute("aria-haspopup","listbox"),c.setAttribute("aria-expanded","false");let l=S("span","tw-select-right"),b=g=>`linear-gradient(${g}, ${g}), var(--tw-checker)`,k=g=>{let _=S("span","tw-option-swatch");return _.style.background=b(g),_},x=S("span","tw-option-swatch"),L=S("span","tw-select-value");l.append(x,L),l.insertAdjacentHTML("beforeend",Ro),c.append(J("span","tw-select-label",t.label),l);let C=S("div","tw-select-dropdown");C.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()}),C.append(_),_});i.append(c,C);let ae=()=>{let g=a.find(_=>_.value===s);L.textContent=g?.label??s,x.style.display=g?.color?"":"none",g?.color&&(x.style.background=b(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,C,{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())}),C.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,ue=re=>a.findIndex((G,Re)=>Re>=re&&String(G.label).toLowerCase().trimStart().startsWith(oe));if(K=ue(le?_+1:_),K<0&&(K=ue(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=S("div","tw-row tw-buttongroup");t.label&&n.append(J("span","tw-row-label",t.label));let s=S("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(S("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=S("div",i?"tw-row tw-row-multiline":"tw-row"),l=S(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 b=()=>{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",b),l.addEventListener("input",b),typeof ResizeObserver=="function"&&new ResizeObserver(b).observe(l)),c.append(J("span","tw-row-label",t.label),l),{el:c,set:k=>{a=s(k),l.value=a,i&&b()},get:()=>a}}function lt(t){let n=S("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=S("div","tw-folder-body"),i=S("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=S("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?S("span","tw-hint",pn):we("tw-hint",pn),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,ut=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,b=new Set,k=new Set,x=[],L=!1,C=!1,y=[],ae=new Map,X=!1,H=-1,W=e=>{if(!L){if(X){console.warn("[tweaks] call ignored \u2014 the panel could not be built");return}C?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}},ue=(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},pe=F?(()=>{let e=0,o=!1,r=new Map,d=()=>{e=0;let v=Re(ne()),M=c.filter(u=>u.persist&&u.m.type==="image").filter(u=>!(r.get(u)===u.get()&&G(v,u)));if(ue(F,v))return;let h=[];for(let u of M.filter(E=>E.get()).sort((E,R)=>String(R.get()).length-String(E.get()).length))if(G(v,u)&&(h.push(u),r.set(u,u.get()),!!ue(F,v))){for(let E of h)E.note?.("Too big to save");o||(o=!0,console.warn("[tweaks] persist: the values didn't fit in storage with an image included \u2014 saved without it"));return}};return x.push(()=>{e&&(clearTimeout(e),d())}),()=>{clearTimeout(e),e=setTimeout(d,150)}})():()=>{},fe=(e,o=i._last)=>{(e?k:b).forEach(r=>{try{r(i,o)}catch(d){console.error("[tweaks] listener threw:",d)}}),L||pe()},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,pt=()=>{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=S("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=S("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=S("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:()=>!L},se=$t(pt),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)),Se=de?ct("",oo,"Filter controls"):null,U=de?S("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(Se)),Xe.append(Ve,se),D.append(ce),de&&D.append(U),s.toolbar!==!1&&D.append(Xe);let Fe=[Ve,se,z,Se].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=S("div","tw-body"),p=S("div","tw-controls");We.append(p),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",Me=/right$/.test(ie),xe=/^bottom/.test(ie);(Me||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(()=>{!L&&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,h=()=>{d&&(clearTimeout(d),d=0,r.classList.remove("tw-reset-holding"))};r.addEventListener("pointerdown",u=>{u.stopPropagation(),M=!1,!(u.pointerType!=="touch"&&u.pointerType!=="pen")&&(v=u.clientX,f=u.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",u=>{d&&Math.abs(u.clientX-v)+Math.abs(u.clientY-f)>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(),wt(o))}),r.classList.contains("tw-slider-value")&&e.addEventListener("dblclick",u=>{let E=u.target;!E.classList||!E.classList.contains("tw-slider-input")||(u.preventDefault(),u.stopPropagation(),E.blur(),wt(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(),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 u={};l.add(u),r[f.key]=u;let E=ke("tabs"),R=E&&E(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),u[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 u={};l.add(u),r[f.key]=u;let E=lt(f);vt.push({path:[...d,f.key],el:E.el,setCollapsed:E.setCollapsed}),st.set(E.el,{kind:"folder",path:[...d,f.key],label:f.label});let R=de?{el:E.el,label:f.label,body:E.body}:null;R&&Zt.push(R),en(E.body,f.children,u,[...d,f.key],R),Ut(E.el,f),e.append(E.el);continue}let M=!Rt.has(f.type),h=Ze(f,M?u=>{Oe(r[f.key],u)&&(r[f.key]=u,i._last=f.key,fe())}:()=>{});if(h){if(yo(h),M){let u=h.get();Pe(r,f.key)&&h.set(r[f.key]),r[f.key]=h.get();let E={target:r,key:f.key,set:h.set,get:h.get,raw:f.value,def:u,path:[...d,f.key],persist:f.persist!==!1,m:f,el:h.el,note:h.note};c.push(E),mo(h.el,E),st.set(h.el,{kind:"row",entry:E,label:f.label})}Ut(h.el,f),de&&f.type!=="separator"&&Qt.push({el:h.el,label:f.label,folder:v}),e.append(h.el)}}};if(de){let e=r=>{let d=r.trim().toLowerCase(),v=!1,f=(M,h)=>{!h&&M.classList.contains("tw-filter-hidden")&&(v=!0),M.classList.toggle("tw-filter-hidden",h)};if(!d)Qt.forEach(M=>f(M.el,!1)),Zt.forEach(M=>f(M.el,!1));else{for(let M of Qt){let h=M.folder&&Tt(M.folder.label,d);f(M.el,!(Tt(M.label,d)||h))}for(let M of Zt.slice().reverse()){let h=[...M.body.children].some(u=>!u.classList.contains("tw-filter-hidden"));f(M.el,!(Tt(M.label,d)||h))}}v&&nn()},o=()=>{m.classList.remove("is-searching"),U.value="",e("")};Se.addEventListener("click",()=>{Se.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(),Se.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=ue(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],ue(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=Me?yn()-w.right:w.left,B=xe?yt()-w.bottom:w.top,m.parentNode&&(T=S("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,h=0,u=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",E,!0):document.removeEventListener("keydown",E,!0)},E=w=>{if(w.key!=="Escape"||r===null)return;w.preventDefault(),w.stopPropagation();let A=r;r=null,u(!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,u(!0),m.classList.contains("is-snapping"))){clearTimeout(h);let A=getComputedStyle(m);V=parseFloat(A[Me?"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+(Me?-Y:Y),N,Ct),B=j(B+(xe?-P:P),N,He),ge(),ze&&ue(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+(Me?-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,u(!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(h),m.classList.add("is-snapping"),h=setTimeout(()=>m.classList.remove("is-snapping"),340),ge(),ze&&ue(ze,{x:V,y:B,corner:ie})}m.classList.remove("is-dragging")}};D.addEventListener("lostpointercapture",q),x.push(()=>u(!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=S("div","tw-presets-menu"),o=S("div","tw-presets-save"),r=S("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=S("div","tw-presets-list");e.append(o,v);let f=()=>{let u=Ge(),E=Object.keys(u);if(v.replaceChildren(),!E.length)return v.append(J("div","tw-presets-empty","No presets yet"));for(let R of E){let q=S("div","tw-presets-row"),w=J("button","tw-presets-load",R);w.addEventListener("click",()=>{wn(R),h.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 u=r.value.trim();if(!u){r.focus();return}if(!bn(u)){Ee(`Preset ${u} not saved: storage is full`);return}r.value="",f(),Ee(`Saved preset ${u}`)},h=xt(z,z,e,{width:208,fallbackH:160,gap:6,align:"end",onOpen:()=>{f(),r.focus()}});d.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())},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)},h=()=>{d||(clearTimeout(v),v=setTimeout(M,350))},u=()=>{v&&(clearTimeout(v),M())};b.add(h),k.add(h);let E=P=>{d=!0,Et(o[P]),d=!1,r=P},R=()=>{u(),r>0&&E(r-1)},q=()=>{u(),r<o.length-1&&E(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:u,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=>{L||Ee(w?`${d.label} copied`:"Copy failed")},M=ye?.[0],h=document.activeElement,u=!!h?.matches(":focus-visible");if(!ut){ut=S("textarea","tw-sr"),ut.tabIndex=-1,ut.setAttribute("aria-hidden","true");for(let w of["copy","paste"])document.addEventListener(w,A=>Kt?.(A),!0)}let E=ut,R=()=>{Kt=null,document.activeElement===E&&(E.blur(),h?.focus?.({preventScroll:!0,focusVisible:u}))},q=Kt=w=>{if(w.target!==E&&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),()=>{})};E.isConnected||document.body.appendChild(E),E.value=v,E.focus({preventScroll:!0}),E.select(),setTimeout(()=>{Kt===q&&(R(),v&&gn(v).then(f))},1e3)},Ln=()=>{if(!L){if(H=x.length,en(p,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()};b.add(r),k.add(r),r(),import("./fold-UGN7TXGX.js").then(d=>{Gt=d.fold},()=>{})}if(F&&Et(Re(oe(F))),!L){_e?.arm(),vo(),x.push(at(m,[[document,"keydown"]],e=>{_e?.onKey(e),Co(e)})),C=!0;for(let e of y.splice(0)){if(L)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 h=i;for(let u=0;u<r.length-1&&h;u++)h=h[r[u]],l.has(h)||(h=null);if(d=h&&c.find(u=>u.target===h&&u.key===r[r.length-1]),!d)return console.warn(`[tweaks] set("${e}") \u2014 no control at that path`),!1}else{let h=c.filter(E=>E.key===e),u=h.find(E=>E.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;d=u||h[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(h){return console.error(`[tweaks] set("${e}") failed \u2014 value skipped:`,h),!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 L?()=>{}:(b.add(e),()=>b.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(h){console.error(`[tweaks] setMany("${f}") failed \u2014 key skipped:`,h)}v&&fe(d)})},reset(){C&&!L&&fn(se),W(pt)},toJSON(){return L?{values:{},ui:{}}:{values:ne(),ui:bo()}},changes(){return L?{}: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){L||(Ye=String(e),ft.textContent=Ye,De(Ye))},setTheme(e){if(!L){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(L||X||!le||!e)return!1;C||ae.set(String(e),"save");let o=!0;return W(()=>{o=bn(e)}),o},loadPreset:e=>{let o=ae.get(String(e));return L||X||o==="delete"||!(o==="save"||Ge()[e])?!1:(W(()=>wn(e)),!0)},deletePreset:e=>{le&&(C||ae.set(String(e),"delete"),W(()=>vn(e)))},presets:()=>L?[]:Object.keys(Ge()),undo:()=>{_e&&W(_e.undo)},redo:()=>{_e&&W(_e.redo)},destroy(){if(!L){L=!0,Kn(m),dt(m);for(let e of x.splice(0))try{e()}catch{}b.clear(),T&&(T.remove(),T=null),tt===m&&(tt=null),m.dataset.twDestroyed="",m.remove()}}},Sn=Qe(a);if(Sn){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 p.children)r.dataset.twDestroyed="";throw b.clear(),c.length=0,p.replaceChildren(),L||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=Sn.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 uo(t=document){let n=ln();return n?n?n(t,co):Promise.resolve():import("./markup-ZJJ6CCWM.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')&&uo(document)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}var po=t=>S("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=po("tw-control");t.append(l);let b=null,k=!1,x=i.value,L,C=!1,y=H=>{Oe(x,H)&&(x=H,s.onChange&&s.onChange(H,a))},ae=()=>{if(k||(b=Ze(i,c?y:()=>{}),!b))return;i.hint&&et(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)&&At(b.el,!0)}catch{}l.append(b.el),c&&(x=b.get(),C&&(b.set(L),y(b.get())))},X={el:l,set:H=>{k||!c||(b?(b.set(H),y(b.get())):(L=H,C=!0))},get:()=>c?b?b.get():C?L:i.value:void 0,destroy:()=>{k=!0,b&&typeof b.destroy=="function"&&b.destroy(),l.dataset.twDestroyed="",l.remove()},ready:null};return X.ready=fo([i],ae,X),X}function Vo(t={}){let n=po("tw-color-picker"),s=null,a=!1,i=t.value,c,l=!1,b=null,k=C=>{Oe(i,C)&&(i=C,t.onChange&&t.onChange(C))},x=()=>{if(a)return;let C=ke("colorpicker");C&&(s=C({value:t.value,mode:t.mode},k),i=s.get(),n.append(s.el),b&&s.setMode(b),l&&(s.set(c),k(s.get())),Mt(s.reflow))},L={el:n,set:C=>{a||(s?(s.set(C),k(s.get())):(c=C,l=!0))},get:()=>s?s.get():l?c:t.value,mode:()=>s?s.mode():b||t.mode||"oklch",setMode:C=>{s?s.setMode(C):b=C},reflow:()=>{s&&s.reflow()},destroy:()=>{a=!0,n.remove()},ready:null};return L.ready=fo([{type:"color"}],x,L),L}export{Vo as createColorPicker,uo as enhance,Mo as gradientCss,So as gradientStops,Xo as mountControl,Yo as tweaks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as n}from"./chunk-
|
|
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};
|