vlist 3.0.1-next.1 → 3.1.0-next.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/README.github.md +46 -40
- package/README.md +46 -40
- package/dist/config.js +1 -1
- package/dist/core/switching.d.ts +15 -0
- package/dist/core/types.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/plugins/carousel/input.d.ts +16 -0
- package/dist/size.json +1 -1
- package/dist/synthetic.js +1 -1
- package/dist/version.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* carousel() under `scroll.mode: "synthetic"` (RFC-015).
|
|
3
|
+
*
|
|
4
|
+
* A carousel brings its own engine: the runway (core/runway.ts), a native
|
|
5
|
+
* scroller a few viewports long. With "synthetic" it runs the synthetic handler
|
|
6
|
+
* instead, the same one the deprecated vlist/synthetic entry runs a carousel on:
|
|
7
|
+
* at once when the driver is loaded, otherwise on the runway until the driver
|
|
8
|
+
* arrives and then, in place, on the synthetic handler (core/switching.ts).
|
|
9
|
+
*/
|
|
10
|
+
import type { LogicalScrollConfig, LogicalScrollHandler } from "../../core/logical";
|
|
11
|
+
import { type LogicalHandlerFactory } from "../../core/switching";
|
|
12
|
+
/** Load the synthetic driver; once it resolves, new carousels start synthetic. */
|
|
13
|
+
export declare const loadDriver: () => Promise<LogicalHandlerFactory>;
|
|
14
|
+
/** The engine a `scroll.mode: "synthetic"` carousel hands the core. */
|
|
15
|
+
export declare function startSyntheticCarousel(config: LogicalScrollConfig, onSynthetic: () => void, onError: (error: Error) => void): LogicalScrollHandler;
|
|
16
|
+
//# sourceMappingURL=input.d.ts.map
|
package/dist/size.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"base":{"minified":"27.3","gzipped":"10.3","minBytes":
|
|
1
|
+
{"base":{"minified":"27.3","gzipped":"10.3","minBytes":27986,"gzBytes":10539},"synthetic":{"minified":"34.2","gzipped":"12.9","minBytes":35039,"gzBytes":13192},"synthetic + carousel":{"minified":"49.3","gzipped":"18.1","minBytes":50498,"gzBytes":18513},"synthetic + sortable":{"minified":"46.1","gzipped":"16.5","minBytes":47232,"gzBytes":16885},"createStats":{"minified":"27.9","gzipped":"10.5","minBytes":28588,"gzBytes":10770},"synthetic + createStats":{"minified":"34.8","gzipped":"13.1","minBytes":35641,"gzBytes":13422},"native":{"minified":"27.3","gzipped":"10.3","minBytes":27986,"gzBytes":10536},"a11y":{"minified":"31.2","gzipped":"11.7","minBytes":31938,"gzBytes":11988},"selection":{"minified":"36.9","gzipped":"13.3","minBytes":37809,"gzBytes":13568},"data":{"minified":"41.0","gzipped":"15.1","minBytes":41945,"gzBytes":15449},"scrollbar":{"minified":"35.5","gzipped":"13.2","minBytes":36335,"gzBytes":13499},"sortable":{"minified":"39.2","gzipped":"13.9","minBytes":40170,"gzBytes":14245},"groups":{"minified":"43.4","gzipped":"15.7","minBytes":44439,"gzBytes":16060},"page":{"minified":"29.9","gzipped":"11.2","minBytes":30588,"gzBytes":11478},"snapshots":{"minified":"30.6","gzipped":"11.4","minBytes":31366,"gzBytes":11697},"transition":{"minified":"34.1","gzipped":"12.3","minBytes":34883,"gzBytes":12570},"autosize":{"minified":"30.6","gzipped":"11.5","minBytes":31336,"gzBytes":11739},"grid":{"minified":"34.7","gzipped":"12.9","minBytes":35573,"gzBytes":13179},"table":{"minified":"45.8","gzipped":"16.2","minBytes":46881,"gzBytes":16634},"masonry":{"minified":"39.4","gzipped":"14.7","minBytes":40373,"gzBytes":15056},"tree":{"minified":"43.5","gzipped":"15.7","minBytes":44581,"gzBytes":16050},"search":{"minified":"36.9","gzipped":"13.6","minBytes":37750,"gzBytes":13912},"carousel":{"minified":"43.2","gzipped":"15.8","minBytes":44286,"gzBytes":16154}}
|
package/dist/synthetic.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Pt=(e,t,o)=>()=>{if(e)try{t=e(e=0)}catch(i){o=[i]}if(o)throw o[0];return t};var Re=3,At="vlist",Qe=16000000,ve=150,Oe=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,Mt=300,ke="__placeholder_";function Cn(e,t,o,i,r){if(t===0||e.size===0)return;let s=e.size;if(Ne.length<s)Ne=new Int32Array(s);if(Me.length<s)Me.length=s;let l=0;for(let[S,x]of e)Ne[l]=S,Me[l]=x,l++;e.clear();let d=o+"-item-",g=i.getAttribute("aria-activedescendant"),P=null,p=r&&t&1;for(let S=0;S<s;S++){let x=Ne[S],b=Me[S];Me[S]=void 0;let _=x-t;if(e.set(_,b),g!==null&&b.id===g)P=b;if(b.id===d+x)b.id=d+_;if(p)b.classList.toggle(r)}if(P!==null)i.setAttribute("aria-activedescendant",P.id)}function Pn(e,t,o){if(t===0&&o===0)return;e.prevRangeStart-=t,e.prevRangeEnd-=t,e.startIndex-=t,e.prevBaseOffset-=o;let i=e.visibleCount;for(let r=0;r<i;r++)e.visibleIndices[r]-=t,e.visibleOffsets[r]-=o}function Xt(e,t){let o=t>1?Math.trunc(e):Math.floor(e);return Math.abs(o)<t?0:o}function Yt(e,t,o,i,r,s,l){let d=e.lapSize(),g=e.itemsPerLap(),P=d>0?Math.round(t/d)*g:0;if(P===0)return;if(r)Cn(r,P,s,i,l);Pn(o,P,t)}var Ne,Me;var Zt=Pt(()=>{Ne=new Int32Array(0),Me=[]});function en({getMax:e,onChange:t=()=>{},onFinish:o,axis:i="y",reducedMotion:r}){let s=0,l=0,d=null,g=0,P=0,p=0,S=0,x=0,b=null,_=0,A=0,w=0,h=0,B=400,E=jt,M=()=>w,W=0.006,c=(y)=>{let L=e();return Number.isFinite(L)?Math.max(0,Math.min(L,y)):y},v=(y,L)=>i==="y"?L:y,z=(y,L)=>i==="y"?y:L;function C(y){let L=c(y);if(L!==s)s=L,t(s);return L!==y}function f(){x=0,l=d===null?0:5}function D(y){f(),C(y)}return{get position(){return s},get state(){return l},get velocity(){return x},get active(){return l===3||l===4},begin(y,L,N,O){if(d!==null){f();return}f(),d=y,g=p=v(L,N),P=z(L,N),S=O,l=1},move(y,L,N,O){if(y!==d||l!==1&&l!==2)return!1;let G=v(L,N);if(l===1){let R=Math.abs(G-g),k=Math.abs(z(L,N)-P);if(Math.max(R,k)<6)return!1;if(k>R*1.2)return f(),!1;if(R<k*1.2)return!1;l=2}let Q=p-G,T=O-S;if(T>0){let R=Math.max(-3,Math.min(3,Q/T));x=T>80?0:R*x<0?R:0.65*R+0.35*x}if(p=G,S=O,C(s+Q))x=0;return!0},end(y,L){if(y!==d)return;if(d=null,l===2&&!r()&&L-S<=80&&Math.abs(x)>=0.02)b=null,l=3;else x=0,l=0},cancel:f,reset(){d=null,f()},jump:D,shiftBy(y){A+=y,h+=y,C(s+y)},by(y){f();let L=s;return C(s+y),s!==L},smooth(y,L=400,N=jt){if(f(),h=0,M=typeof y==="function"?y:()=>y,d!==null||r()||L<=0){C(M());return}B=L,E=N,A=s,w=c(M()+h),b=null,l=4},resize(){f(),C(s)},tick(y){if(l!==3&&l!==4)return;if(b===null){if(b=y,l===4)_=y;return}let L=y-b;if(L<=0)return;if(b=y,L>100){if(l===4)C(c(M()+h)),l=0,o?.();else f();return}if(l===4){w=c(M()+h);let G=Math.min(1,(y-_)/B);if(C(A+(w-A)*E(G)),G===1)l=0,o?.();return}let N=Math.exp(-W*L),O=C(s+x*(1-N)/W);if(x*=N,O||Math.abs(x)<0.02)x=0,l=0}}}var Jt=1,Qt=2,jt=(e)=>1-(1-e)**3;function it(e){if(e.closest("textarea,select,[contenteditable]:not([contenteditable=false])"))return!0;let t=e.closest("input");return!!t&&!/^(button|submit|reset|checkbox|radio|image)$/.test(t.type)}function tn(e){let{state:t,viewport:o,content:i,isX:r,onFrame:s,onIdle:l,mainAxisPadding:d,wrap:g}=e,P=o.parentElement??o,p=o.ownerDocument.defaultView,S=o.ownerDocument,x=p.matchMedia("(prefers-reduced-motion: reduce)"),b=0,_=null,A=null,w=!1,h=!1,B=!1,E=-1,M=-1,W=null,c=null,v=!1,z=!1,C=!1,f=!1,D,y=new Set;function L(a){let H=t.scrollPosition;if(g){let K=g.lapSize(),V=K>0?Xt((a-g.home())/K,g.thresholdLaps):0;if(V!==0){let q=V*K;B=!0,T.shiftBy(-q),B=!1,a=T.position,H-=q,Yt(g,q,t,i,e.rendered,e.classPrefix??"",e.oddClass),e.onFold?.(q),g.onFold?.(q)}}if(t.prevScrollPosition=H,t.scrollPosition=t.baseOffset=a,t.scrollDirection=a>H?1:a<H?-1:0,!h)s()}function N(){if(A=null,T.active||T.state===Qt||T.state===Jt)return;t.scrollDirection=0,l()}function O(){if(!w)return;if(A!==null)clearTimeout(A);A=setTimeout(N,e.idleTimeout||ve)}function G(){if(w&&_===null&&T.active)_=requestAnimationFrame(Q)}function Q(a){if(_=null,T.tick(a),T.active)G();else O()}let T=en({axis:r?"x":"y",getMax:()=>g?1/0:b,reducedMotion:()=>x.matches,onChange(a){if(!B)L(a)},onFinish(){let a=D;D=void 0,a?.()}});function R(){if(D=void 0,_!==null)cancelAnimationFrame(_),_=null;if(T.cancel(),A!==null)clearTimeout(A),A=null}function k(){if(R(),T.reset(),f&&W!==null&&o.hasPointerCapture(W))o.releasePointerCapture(W);f=!1,y.clear(),W=c=null,v=z=C=!1,O()}function de(a){if(!Be(a))return;if(a.isPrimary){if(y.size)k();y.clear()}if(y.add(a.pointerId),y.size>1){C=!0,R();return}if(!(a.target instanceof Element)||it(a.target)){R();return}W=a.pointerId,v=!1,z=T.active,c=null,R(),T.begin(a.pointerId,a.clientX,a.clientY,a.timeStamp)}function se(a){if(!Be(a)||a.target instanceof Node&&o.contains(a.target))return;if(a.isPrimary&&y.size)k();else if(y.size)y.add(a.pointerId),C=!0,R()}function he(a){if(!Be(a)||C)return;if(T.move(a.pointerId,a.clientX,a.clientY,a.timeStamp)){if(v=!0,!f)o.setPointerCapture(a.pointerId),f=!0;if(a.cancelable)a.preventDefault()}}function ae(a){if(!Be(a)||!y.has(a.pointerId))return;let H=a.type==="pointercancel";if(H)R();if(W===a.pointerId){if(!H&&!C&&(v||z))c=a.pointerId;if(f&&o.hasPointerCapture(a.pointerId))o.releasePointerCapture(a.pointerId);f=!1,W=null,v=z=!1}if(T.end(a.pointerId,a.timeStamp),y.delete(a.pointerId),!y.size){if(C||H)T.reset();C=!1}G(),O()}function ee(a){let H=a.pointerId;if(a.detail!==0&&c!==null&&(H===c||H===void 0))c=null,a.preventDefault(),a.stopImmediatePropagation()}function j(a){if(a.ctrlKey||a.defaultPrevented||!(a.target instanceof Element)||it(a.target))return;let H=a.deltaMode===1?16:a.deltaMode===2?t.containerSize:1,K=r?a.deltaX:a.deltaY,V=r?a.deltaY:a.deltaX,q=r?o.scrollHeight>o.clientHeight:o.scrollWidth>o.clientWidth;if(q&&Math.abs(V)>Math.abs(K))return;if(q&&V!==0)if(a.preventDefault(),r)o.scrollTop+=V*H;else o.scrollLeft+=V*H;let xe=r&&!q&&K===0?V:K;if(R(),T.by(xe*H))a.preventDefault();O()}function ye(a){if(a.defaultPrevented||a.ctrlKey||a.metaKey||a.altKey||!(a.target instanceof Element)||it(a.target))return;if((a.key===" "||a.key==="Enter")&&a.target.closest("button,summary,a,input"))return;let H=e.sizeCache,K=H.getSize(H.indexAtOffset(T.position)),V;if(a.key===(r?"ArrowRight":"ArrowDown"))V=T.position+K;if(a.key===(r?"ArrowLeft":"ArrowUp"))V=T.position-K;if(a.key==="PageDown"||a.key===" ")V=T.position+t.containerSize*(a.shiftKey&&a.key===" "?-1:1);if(a.key==="PageUp")V=T.position-t.containerSize;if(a.key==="Home")V=0;if(a.key==="End")V=b;if(V!==void 0)a.preventDefault(),te(V)}function me(){if(S.hidden)k()}function te(a){let H=T.position;if(R(),T.jump(a),H===(g?a:Math.max(0,Math.min(b,a))))L(T.position);O()}function Se(a){let H=E!==t.containerSize||M!==t.crossSize,K=a!==t.totalSize||H;if(E=t.containerSize,M=t.crossSize,t.totalSize=a,b=Math.max(0,a+d-t.containerSize),K){if(h=!0,H)R(),T.resize();else T.shiftBy(0);L(T.position),h=!1}}return{setLogical:te,refresh:Se,shiftBy(a){if(t.totalSize=e.sizeCache.getTotalSize(),b=Math.max(0,t.totalSize+d-t.containerSize),T.shiftBy(a),!T.active)O()},cancelScroll(){R(),O()},getLogical:()=>t.scrollPosition,getMaxLogical:()=>b,smoothScrollTo(a,H,K,V=Oe,q){if(R(),T.smooth(a,H,V),D=q,!T.active)D=void 0,q?.(),O();else G()},attach(){if(w)return;if(w=!0,o.style.overflowX=r?"hidden":"auto",o.style.overflowY=r?"auto":"hidden",o.style.touchAction=r?"pan-y pinch-zoom":"pan-x pinch-zoom",o.style.overflowAnchor="none",i.style[r?"width":"height"]="100%",i.style.overflow="clip",i.style.overflowAnchor="none",o.addEventListener("pointerdown",de),p.addEventListener("pointerdown",se),o.addEventListener("pointermove",he,{passive:!1}),p.addEventListener("pointerup",ae),p.addEventListener("pointercancel",ae),o.addEventListener("click",ee,!0),e.wheelEnabled)o.addEventListener("wheel",j,{passive:!1});P.addEventListener("keydown",ye),p.addEventListener("blur",k),S.addEventListener("visibilitychange",me),x.addEventListener("change",k),G()},detach(){if(w=!1,k(),A!==null)clearTimeout(A),A=null;o.removeEventListener("pointerdown",de),p.removeEventListener("pointerdown",se),o.removeEventListener("pointermove",he),p.removeEventListener("pointerup",ae),p.removeEventListener("pointercancel",ae),o.removeEventListener("click",ee,!0),o.removeEventListener("wheel",j),P.removeEventListener("keydown",ye),p.removeEventListener("blur",k),S.removeEventListener("visibilitychange",me),x.removeEventListener("change",k),o.style.overflowX=o.style.overflowY=o.style.touchAction=o.style.overflowAnchor="",i.style.overflow=i.style.overflowAnchor=""}}}var Be=(e)=>e.pointerType==="touch"||e.pointerType==="pen";var nn=Pt(()=>{Zt()});function wt(e){let{state:t,viewport:o,isX:i,onFrame:r,onIdle:s}=e,l=e.idleTimeout||ve,d=null,g=null;function P(b=i?o.scrollLeft:o.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=b,t.scrollDirection=b>t.prevScrollPosition?1:b<t.prevScrollPosition?-1:0,r(),p()}function p(){if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,t.scrollDirection=0,s()},l)}function S(){if(g!==null)cancelAnimationFrame(g),g=null}function x(b,_,A,w=Oe,h){S();let B=t.scrollPosition,E=typeof b==="function"?b:()=>b,M=E();if(Math.abs(M-B)<1){if(A)A(M);else if(i)o.scrollLeft=M;else o.scrollTop=M;h?.();return}let W=performance.now();function c(v){M=E();let z=v-W,C=Math.min(z/_,1),f=B+(M-B)*w(C);if(A)A(f);else{if(i)o.scrollLeft=f;else o.scrollTop=f;let D=i?o.scrollLeft:o.scrollTop;P(Math.abs(D-f)>1?D:f)}if(C<1)g=requestAnimationFrame(c);else g=null,h?.()}g=requestAnimationFrame(c)}return{attach(){},detach(){if(S(),d!==null)clearTimeout(d),d=null},cancelScroll:S,smoothScrollTo:x,commitScroll:P}}var Ve={top:0,right:0,bottom:0,left:0},zt=(e)=>{if(e==null)return Ve;if(typeof e==="number")return e===0?Ve:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[s,l]=e;return s===0&&l===0?Ve:{top:s,right:l,bottom:s,left:l}}let[t,o,i,r]=e;return t===0&&o===0&&i===0&&r===0?Ve:{top:t,right:o,bottom:i,left:r}},_t=(e,t)=>t?e.left+e.right:e.top+e.bottom,Ht=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Rt(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,windowClamped:!1,windowClampReported:!1,prevAriaTotal:-1,ensureCapacity(o){if(o<=t.capacity)return;let i=o+8,r=new Int32Array(i),s=new Float64Array(i),l=new Float64Array(i);r.set(t.visibleIndices),s.set(t.visibleOffsets),l.set(t.visibleSizes),t.visibleIndices=r,t.visibleOffsets=s,t.visibleSizes=l,t.capacity=i},resizeCapacity(o,i,r=Re){if(i<=0||o<=0)return;t.ensureCapacity(Math.ceil(o/i)+r*2)},clear(){t.visibleCount=0,t.startIndex=0}};return t}var cn=(e,t,o)=>{let i=t;return{getOffset:(r)=>r*e,getSize:(r)=>e,indexAtOffset:(r)=>{if(i===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(r/e),i-1))},getTotalSize:()=>{let r=i*e;return r>0?r-o:0},getTotal:()=>i,rebuild:(r)=>{i=r},invalidate:()=>{},isVariable:()=>!1}};var Ot=(e,t,o,i)=>{while(t<o){let r=t+o+1>>>1;if(e[r]<=i)t=r;else o=r-1}return t},un=(e,t,o)=>{let i=0,r=0,s=new Float64Array(0),l=new Float64Array(0),d=new Float64Array(1),g=(p,S)=>{for(let x=p;x<r;x++){if(x<=S){let b=x<<9,_=Math.min(b+512,i),A=0;for(let w=b;w<_;w++)s[w]=A,A+=e(w);l[x]=A}d[x+1]=d[x]+l[x]}},P=(p)=>{i=p,r=Math.ceil(p/512),s=new Float64Array(p),l=new Float64Array(r),d=new Float64Array(r+1),g(0,r-1)};return P(t),{getOffset:(p)=>{if(p<=0)return 0;if(p>=i)return d[r];return d[p>>>9]+s[p]},getSize:(p)=>e(p),indexAtOffset:(p)=>{if(i===0||p<=0)return 0;if(p>=d[r])return i-1;let S=Ot(d,0,r-1,p),x=S<<9;return Ot(s,x,Math.min(x+512,i)-1,p-d[S])},getTotalSize:()=>{let p=d[r];return p>0?p-o:0},getTotal:()=>i,rebuild:(p)=>P(p),invalidate:(p,S=p)=>{if(p>=0&&S<i)g(p>>>9,S>>>9)},isVariable:()=>!0}},Fe=(e,t,o=0)=>{if(typeof e==="number")return cn(e,t,o);return un(e,t,o)};function kt(e){let t=[],o=`${e}-item`,i=document.createElement("div");return i.className=o,{acquire(){if(t.length>0)return t.pop();return i.cloneNode(!1)},release(r){r.className=o,r.removeAttribute("style"),r.removeAttribute("id"),r.removeAttribute("role"),r.removeAttribute("aria-selected"),r.removeAttribute("aria-posinset"),r.removeAttribute("aria-setsize"),r.removeAttribute("data-index"),r.removeAttribute("data-id"),r.textContent="",t.push(r)},get size(){return t.length},trim(r){let s=r>0?r:0;if(t.length>s)t.length=s},clear(){t.length=0}}}function et(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let o=0;o<t.length;o++)t[o].setAttribute("tabindex","-1");e._stamp=0}function tt(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function Vt(e,t,o,i){let r=o?`${t} ${t}--horizontal`:t,s=o?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",l=o?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",d=' role="list"';if(i)d+=` aria-label="${i.replace(/"/g,""")}"`;if(o)d+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${r}"><div class="${t}-viewport" style="${s}" tabindex="-1"><div class="${t}-content" style="${l}"${d}></div></div></div>`);let g=e.lastElementChild,P=g.firstElementChild,p=P.firstElementChild,S=document.createElement("div");return S.className=`${t}-live`,S.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",S.setAttribute("aria-live","polite"),S.setAttribute("aria-atomic","true"),S.setAttribute("role","status"),g.appendChild(S),{root:g,viewport:P,content:p,liveRegion:S}}function dn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let i=t<=0?0:t,r=e.indexAtOffset(i),s=i-e.getOffset(r);return{index:r,offsetPx:s>0?s:0}}function mn(e,t){let o=fn(e,t);return e.getOffset(o.index)+o.offsetPx}function fn(e,t){let o=e.getTotal();if(o<=0)return{index:0,offsetPx:0};let{index:i,offsetPx:r}=t;if(i<0)return{index:0,offsetPx:0};if(i>o-1)i=o-1;while(r>0&&i<o-1){let s=e.getSize(i);if(r<s)break;r-=s,i++}while(r<0&&i>0)i--,r+=e.getSize(i);if(r<0)r=0;return{index:i,offsetPx:r}}function Ft(e){let{sizeCache:t,getPixel:o,setPixel:i,getContainerSize:r}=e;function s(){let d=t.getTotalSize()+e.padding-r();return d>0?d:0}function l(d){if(d<=0)return 0;let g=s();return d>g?g:d}return{getLogical(){return dn(t,o())},setLogical(d){i(l(mn(t,d)))},getPixelEquivalent(){return o()},setPixelEquivalent(d){i(l(d))},getMaxPixelEquivalent:s,getRenderOrigin:e.getRenderOrigin,scrollByPx(d){i(l(o()+d))}}}var Pe=[],pn={calculate:Pe,commit:Pe,afterScroll:Pe,idle:Pe,resize:Pe};function Dt(e){if(e.length===0)return pn;let t=[],o=[],i=[],r=[],s=[];for(let l=0;l<e.length;l++){let d=e[l].hooks;if(d===void 0)continue;if(d.onCalculate!==void 0)t.push(d.onCalculate);if(d.onCommit!==void 0)o.push(d.onCommit);if(d.onAfterScroll!==void 0)i.push(d.onAfterScroll);if(d.onIdle!==void 0)r.push(d.onIdle);if(d.onResize!==void 0)s.push(d.onResize)}return{calculate:t,commit:o,afterScroll:i,idle:r,resize:s}}function Nt(e,t){for(let o=0;o<e.length;o++)e[o](t)}function Ae(e,t){for(let o=0;o<e.length;o++)e[o](t)}function nt(e,t,o){for(let i=0;i<e.length;i++)e[i](t,o)}function Bt(e){for(let t=0;t<e.length;t++)e[t]()}function Kt(e,t,o){for(let i=0;i<e.length;i++)e[i](t,o)}function $t(e,t,o,i,r,s,l,d){let g=i!==0||r!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:o,gap:l,hasCrossPad:g,crossStartProp:g?t?"top":"left":"",crossEndProp:g?t?"bottom":"right":"",crossStartVal:g?i+"px":"",crossEndVal:g?r+"px":"",oddClass:s,emitter:d??null,indexMap:null,ariaTotalFn:null}}function bn(e,t,o,i,r){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:s,containerSize:l,totalItems:d}=e,g=r??0;e.totalSize=t.getTotalSize();let P=t.indexAtOffset(g>0?Math.max(0,s-g):s),p=t.indexAtOffset(s+l);if(p<d-1)p++;P=Math.max(0,P),p=Math.min(d-1,Math.max(0,p));let S=Math.max(0,P-o),x=Math.min(d-1,p+o),b=Math.ceil(l)+o*2;if(x-S+1>b)x=S+b-1,e.windowClamped=!0;let _=x-S+1;if(_>e.capacity)e.ensureCapacity(_);let A=Math.min(_,e.capacity);if(S===e.prevRangeStart&&x===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=A,e.startIndex=S;for(let w=0;w<A;w++){let h=S+w;e.visibleIndices[w]=h,e.visibleOffsets[w]=t.getOffset(h),e.visibleSizes[w]=t.getSize(h)}return Nt(i.calculate,e),e.prevRangeStart=S,e.prevRangeEnd=x,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var U={selected:!1,focused:!1};function vn(e,t,o){for(let i=0;i<t;i++)if(e[i]===o)return!0;return!1}function gn(e,t){if(t<=1)return!0;let o=e[0];for(let i=1;i<t;i++){let r=e[i];if(r!==o+1)return!1;o=r}return!0}function hn(e,t,o,i,r,s,l,d,g,P){let p=g?null:r(),{visibleCount:S,visibleIndices:x}=e,b=l.ariaTotalFn?l.ariaTotalFn():e.totalItems,_=l.interactive?String(b):"",A=l.interactive&&b!==e.prevAriaTotal,w=null,h=l.indexMap;for(let B=0;B<S;B++){let E=x[B],M=h?h(E):E,W=e.visibleOffsets[B],c=e.visibleSizes[B],v=g?g(E):p[E];if(P)P(M,U);else U.selected=!1,U.focused=!1;let z=s.get(E),C=z;if(z===void 0){let f=t.acquire();if(v!==void 0){let L;try{L=i(v,M,U)}catch(N){if(l.emitter)l.emitter.emit("error",{error:N instanceof Error?N:Error(String(N)),context:`template:render:${M}`});t.release(f);continue}if(typeof L==="string")f.innerHTML=L;else f.textContent="",f.appendChild(L);et(f)}if(f.setAttribute("role",l.itemRole),f.setAttribute("data-index",String(M)),l.interactive)f.id=l.prefix+"-item-"+E,f.setAttribute("aria-posinset",String(M+1)),f.setAttribute("aria-setsize",_);if(v!==void 0){let L=String(v.id);if(f.setAttribute("data-id",L),L.startsWith(ke))f.classList.add(l.placeholderClass)}if(l.hasCrossPad)f.style.setProperty(l.crossStartProp,l.crossStartVal),f.style.setProperty(l.crossEndProp,l.crossEndVal);if(P){if(f.classList.toggle(l.selectedClass,U.selected),f.classList.toggle(l.focusedClass,U.focused),U.selected)f.setAttribute("aria-selected","true");else f.removeAttribute("aria-selected");f._lastSelected=U.selected,f._lastFocused=U.focused}if(l.oddClass)f.classList.toggle(l.oddClass,(E&1)===1);let D=W-e.baseOffset+l.startPadding;f.style.transform=l.translateProp+D+"px)",f._lastOffset=D;let y=c-l.gap;if(f.style[l.sizeProp]=y+"px",f._lastSize=y,f._lastItem=v,s.set(E,f),w===null)w=document.createDocumentFragment();w.appendChild(f)}else{if(A)z.setAttribute("aria-setsize",_);if(v!==void 0&&C._lastItem!==v){let y=z.getAttribute("data-id"),L=String(v.id),N;try{N=i(v,M,U)}catch(O){if(l.emitter)l.emitter.emit("error",{error:O instanceof Error?O:Error(String(O)),context:`template:render:${M}`});continue}if(typeof N==="string")z.innerHTML=N;else z.textContent="",z.appendChild(N);if(et(z),z.setAttribute("data-id",L),C._lastItem=v,y!==L){let O=y!==null&&y.startsWith(ke),G=L.startsWith(ke);if(O!==G)z.classList.toggle(l.placeholderClass,G);if(O&&!G)z.classList.add(l.replacedClass),setTimeout(()=>{z.classList.remove(l.replacedClass)},300)}}if(P){if(C._lastSelected!==U.selected){if(z.classList.toggle(l.selectedClass,U.selected),U.selected)z.setAttribute("aria-selected","true");else z.removeAttribute("aria-selected");C._lastSelected=U.selected}if(C._lastFocused!==U.focused)z.classList.toggle(l.focusedClass,U.focused),C._lastFocused=U.focused}let f=W-e.baseOffset+l.startPadding;if(C._lastOffset!==f)z.style.transform=l.translateProp+f+"px)",C._lastOffset=f;let D=c-l.gap;if(C._lastSize!==D)z.style[l.sizeProp]=D+"px",C._lastSize=D}}if(w!==null)o.appendChild(w);if(S>0&&gn(x,S)){let B=x[0],E=x[S-1];for(let[M,W]of s)if(M<B||M>E)W.remove(),t.release(W),s.delete(M)}else for(let[B,E]of s)if(!vn(x,S,B))E.remove(),t.release(E),s.delete(B);if(l.interactive)e.prevAriaTotal=e.totalItems;Ae(d.commit,e)}function ot(e,t,o,i,r,s,l,d,g,P,p,S){let x=bn(e,t,o,P,g.startPadding);if(e.windowClamped&&!e.windowClampReported)e.windowClampReported=!0,queueMicrotask(()=>{if(e.destroyed)return;g.emitter?.emit("error",{error:Error("[vlist] render window capped to the viewport: the item size spec reports sizes below 1px"),context:"render:window-ceiling"})});if(x)hn(e,i,r,s,l,d,g,P,p,S)}var rt=()=>{let e={},t=(s,l)=>{if(!e[s])e[s]=new Set;return e[s].add(l),()=>o(s,l)},o=(s,l)=>{e[s]?.delete(l)};return{on:t,off:o,emit:(s,l)=>{e[s]?.forEach((d)=>{try{d(l)}catch(g){}})},clear:(s)=>{if(s)delete e[s];else for(let l in e)delete e[l]}}};var Wt=2,Gt=(e=0)=>({velocity:0,sampleCount:0}),Ut=(e,t)=>{let o=performance.now(),i=e._lt??o,r=e._lp??t,s=o-i;if(e._lp=t,e._lt=o,s===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(s>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-r)/s,e.sampleCount=Math.min(e.sampleCount+1,5),e};function ge(e,t,o=!1){if(t===void 0)return;if(typeof t!=="number"||!Number.isFinite(t)||t<0||t===0&&!o)throw Error(`vlist: ${e} must be a ${o?"non-negative":"positive"} number, got ${t}`)}function yn(e){let{item:t}=e;if(typeof t.height==="number")ge("item.height",t.height);if(typeof t.width==="number")ge("item.width",t.width);ge("item.estimatedHeight",t.estimatedHeight),ge("item.estimatedWidth",t.estimatedWidth),ge("item.gap",t.gap,!0),ge("overscan",e.overscan,!0);let o=e.scroll;if(o?.runway!==void 0||!/^(auto|native|synthetic)?$/.test(o?.mode??""))throw Error('vlist: scroll.mode is "auto", "native" or "synthetic" (bounded mode and scroll.runway were removed in 3.0)')}function Sn(e,t){let o=e==="horizontal"?"x":"y";if(t.some((r)=>r.name==="grid"))return{primary:o,cross:o==="x"?"y":"x"};return{primary:o}}function xn(e,t){let o=Sn(e.orientation,t),i=o.primary==="x",r=zt(e.padding);return{axis:o,hasCrossAxis:o.cross!==void 0,overscan:e.overscan??Re,reverse:e.reverse??!1,classPrefix:e.classPrefix??At,mainAxisPadding:_t(r,i),crossAxisPadding:Ht(r,i),startPadding:i?r.left:r.top,endPadding:i?r.right:r.bottom,crossPadStart:i?r.top:r.left,crossPadEnd:i?r.bottom:r.right,striped:e.item.striped||!1,gap:e.item.gap??0}}function En(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function Ln(e){let t=[...e];return t.sort((o,i)=>(o.priority??50)-(i.priority??50)),t}function In(e){let t=new Set;for(let o of e){if(t.has(o.name))throw Error(`[vlist] Duplicate plugin: ${o.name}`);t.add(o.name)}for(let o of e)if(o.conflicts){for(let i of o.conflicts)if(t.has(i))throw Error(`[vlist] Plugin "${o.name}" conflicts with "${i}"`)}}function Tn(e,t){for(let o of e)o.validateConfig?.(t)}var De=null;function qt(e,t=[],o,i){yn(e);let r=o?"synthetic":e.scroll?.mode??"auto";if(r==="synthetic"&&e.scroll?.scrollbar==="native")throw Error('vlist: scroll.scrollbar "native" needs native scrolling');if(e.orientation==="horizontal"&&getComputedStyle(tt(e.container)).direction==="rtl")throw Error("vlist: horizontal RTL lists are not supported; use a vertical list, or an LTR container");let s=xn(e,t),l=s.axis.primary==="x",d=En(e,l),g=s.gap,P=g>0?typeof d==="function"?(u)=>d(u)+g:d+g:d,p=typeof d==="number"?d:20,S=e.items?.length??0,x=s.striped?`${s.classPrefix}-item--odd`:"",b=rt(),_=$t(s.classPrefix,l,s.startPadding,s.crossPadStart,s.crossPadEnd,x,g,b),A=t.length>0?Ln(t):t;if(t.length>0)In(A),Tn(A,s);let w=tt(e.container),h=Vt(w,s.classPrefix,l,e.ariaLabel);if(e.scroll?.scrollbar==="none")h.viewport.classList.add(`${s.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")h.viewport.classList.add(`${s.classPrefix}-viewport--gutter-stable`);let E=Fe(P,S,g),M=kt(s.classPrefix),W=Math.ceil(4096/p)+s.overscan*2+8,c=Rt(W);c.totalItems=S;let v=e.items?[...e.items]:[],z=()=>v,C=new Map,f=Gt(),D={velocity:0,reliable:!1},y={range:{start:0,end:-1}},L={scrollPosition:0,direction:"down"},N={scrollPosition:0},O=-1,G=-1,Q=-1,T=null,R=Dt(A),k=new Map,de=[],se=[],he=[],ae=(u)=>{let n=(m)=>{u.push(m instanceof Error?m:Error(String(m)))};for(let m of he)try{m()}catch(I){n(I)}for(let m of A)if(m.destroy)try{m.destroy()}catch(I){n(I)}},ee=null,j=null,ye,me,te=null,Se=null,a=null,H=null,K=null,V=null,q=null,xe=null,ce=!1,lt=!1,Ee=null,st=0,at=0,ct=null,ut=null,dt=null,mt=null,Ke=null,$e=null,we=null,Z=null,ze=null,X=null,ft=(u)=>X.setLogical(u),We=!1,fe=!1,Ge=null,pe=null,Le=null,pt=null;c.containerSize=l?h.viewport.clientWidth:h.viewport.clientHeight,c.crossSize=l?h.viewport.clientHeight:h.viewport.clientWidth;function ue(u){if(j)j(u);else{if(l)h.viewport.scrollLeft=u;else h.viewport.scrollTop=u;if(me?.(),fe&&Math.abs(c.scrollPosition-u)>1)Ge=u}}let bt=Ft({sizeCache:E,getPixel:()=>c.scrollPosition,setPixel:ue,getRenderOrigin:()=>c.baseOffset,getContainerSize:()=>c.containerSize,padding:s.mainAxisPadding});if(t.length>0){let u={pool:M,config:s,emitter:b,template:e.item.template,getState(){return c},dom:{...h,renderedElement(n){let m=k.get("_getRenderedElement");if(m)return m(n);return C.get(n)??null},enableListbox(){let n=h.content.getAttribute("role");if(!n||n==="list")h.content.setAttribute("role","listbox"),h.content.setAttribute("tabindex","0");_.itemRole="option",_.interactive=!0}},scroll:{...bt,to:ue,shiftBy(n){if(X?.shiftBy)X.shiftBy(n);else u.scroll.to(c.scrollPosition+n)},smoothTo(n,m,I,F){if(Z)Z.smoothScrollTo(n,m,j??void 0,I,F);else u.scroll.to(typeof n==="function"?n():n)},cancel(){Z?.cancelScroll()},commit(n){me(n)},setSource(n){j=n.write,ye=n.onContentSize,ce=!0},setTarget(n){Ee=n},setWrap(n,m){Le=n,pt=m},setBoundedWrap(n,m){u.scroll.setWrap(n,m)},setToPosFn(n){Ke=n},setToIndexFn(n){$e=n},onFrame:Xe,onIdle:_e,disableResize(){lt=!0}},items:{all:z,at(n){return a?a(n):v[n]},removeById(n){if(K)return K(n);let m=v.findIndex((I)=>I.id===n);if(m===-1)return-1;return v.splice(m,1),c.totalItems=v.length,E.rebuild(c.totalItems),J(),m},insertAt(n,m){if(V){V(n,m);return}v.splice(m,0,n),c.totalItems=v.length,E.rebuild(c.totalItems),J()},setGetFn(n){a=n},setRemoveFn(n){K=n},setInsertFn(n){V=n},setUpdateFn(n){q=n},setIndexByIdFn(n){xe=n},setTotalFn(n){ee=n,_.ariaTotalFn=n},setIndexMapFn(n){_.indexMap=n}},sizes:{cache:E,get rawSpec(){return d},setConfig(n,m=0){let I=Fe(n,c.totalItems,m),F=k.get("_setSizeCacheBase");if(F){let Y=E.rebuild;Object.assign(E,I),E.rebuild=Y,F(I.rebuild)}else Object.assign(E,I)},rebuild(){E.rebuild(c.totalItems)}},render:{force(){ne()},ifNeeded(){Ie()},contentSize:gt,setFn(n,m){te=()=>{let{prevRangeStart:I,prevRangeEnd:F}=c;if(n(),c.prevRangeStart!==I||c.prevRangeEnd!==F)Ae(R.commit,c)},Se=()=>{m(),Ae(R.commit,c)}},setStateFn(n){H=n},getStateFn(){return H}},hooks:{method(n,m){if(!n.startsWith("_")&&k.has(n))throw Error(`[vlist] duplicate method "${n}"; rename it or use a set*Fn hook`);k.set(n,m)},get(n){return k.get(n)},onClick(n){de.push(n)},onKeydown(n){se.push(n)},onDestroy(n){he.push(n)}},nav:{set(n){if(n.ud!==void 0)st=n.ud;if(n.lr!==void 0)at=n.lr;if(n.scrollIndex)ct=n.scrollIndex;if(n.navigate)ut=n.navigate;if(n.total)dt=n.total;if(n.reveal)mt=n.reveal},get:(()=>{let n={ud:0,lr:0,scrollIndex:null,navigate:null,total:null,reveal:null};return()=>(n.ud=st,n.lr=at,n.scrollIndex=ct,n.navigate=ut,n.total=dt,n.reveal=mt,n)})()}};for(let n of A)if(n.setup)try{n.setup(u)}catch(m){let I=m instanceof Error?m:Error(String(m));b.emit("error",{error:I,context:`plugin:setup:${n.name}`})}}let Ue=s.classPrefix+"--scrolling",re=!1,qe=e.scroll?.idleTimeout??ve;function vt(){if(L.scrollPosition=c.scrollPosition,l)L.direction=c.scrollDirection>0?"right":"left";else L.direction=c.scrollDirection>0?"down":"up";if(b.emit("scroll",L),Ut(f,c.scrollPosition),D.velocity=f.velocity,D.reliable=f.sampleCount>=Wt,b.emit("velocity:change",D),c.startIndex!==O||c.prevRangeEnd!==G)O=c.startIndex,G=c.prevRangeEnd,y.range.start=c.startIndex,y.range.end=c.prevRangeEnd,b.emit("range:change",y)}function gt(u,n=!0){let m=u+s.mainAxisPadding;if(We)on(m);if(X){if(n)X.refresh(u);return}if(c.totalSize=u,ye?.(m),n)h.content.style[l?"width":"height"]=Math.min(m,Qe)+"px"}function J(){let u=te?c.totalSize:E.getTotalSize();if(gt(u,!te),X||te||We)return;i?.onContentSize(u,b)}function ht(){if(!we)return;if((ee?ee():v.length)===0)return;let n=we;we=null,je.scrollToIndex(n.index,n.alignOrOptions)}function Ie(){if(te)te();else ot(c,E,s.overscan,M,h.content,e.item.template,z,C,_,R,a,H);ht()}function Xe(){if(Ge=null,!re)re=!0,h.root.classList.add(Ue);if(Ie(),nt(R.afterScroll,c.scrollPosition,c.scrollDirection),pe?.sync(),c.scrollPosition!==Q)Q=c.scrollPosition,vt()}function yt(){M.trim(C.size)}function on(u){let n=!!X;if(fe=(r==="synthetic"||u>Qe*(n?0.75:1))!==n,!fe)return;if(!De)i.load().then((I)=>{if(De=I,!c.destroyed)J()},(I)=>b.emit("error",{error:I,context:"scroll:mode"}));else if(!re)rn(u)}function rn(u){let n=Ge??c.scrollPosition;if(fe=!1,Z.detach(),pe?.destroy(),pe=null,X)Z=ze,X=j=null,c.baseOffset=0,h.content.style[l?"width":"height"]=u+"px",Z.attach(),ue(n);else if(h.viewport[l?"scrollLeft":"scrollTop"]=0,Z=X=xt(De.createSyntheticScrollHandler),j=ft,X.refresh(u-s.mainAxisPadding),(pe=De.attachScrollbar(c,h,s,E,ue,e.scroll?.scrollbar))?.sync(),c.initialized)Z.attach(),X.setLogical(n);b.emit("scroll:mode",{mode:X?"synthetic":"native"})}function _e(){if(re)re=!1,h.root.classList.remove(Ue);if(c.scrollDirection=0,yt(),Bt(R.idle),D.velocity=0,D.reliable=!1,b.emit("velocity:change",D),N.scrollPosition=c.scrollPosition,b.emit("scroll:idle",N),fe)J()}function ne(){if(c.renderPending=!0,Se)Se();else ot(c,E,s.overscan,M,h.content,e.item.template,z,C,_,R,a,H);if(ht(),nt(R.afterScroll,c.scrollPosition,c.scrollDirection),pe?.sync(),c.scrollPosition!==Q){if(Q=c.scrollPosition,vt(),T!==null)clearTimeout(T);T=setTimeout(_e,qe)}else if(!re)yt()}let St=ce?!1:e.scroll?.wheel!==!1;if(ce&&Le)throw ae([]),h.root.remove(),Error("vlist: page() is not compatible with the carousel plugin — document scrolling cannot wrap.");function xt(u){return u({state:c,sizeCache:E,viewport:h.viewport,content:h.content,isX:l,wheelEnabled:St,idleTimeout:qe,...Ee?{scrollTarget:Ee}:{},mainAxisPadding:s.mainAxisPadding,...Le?{wrap:Le,rendered:C,classPrefix:s.classPrefix,oddClass:x,onFold(n){let m=f;if(m._lp!==void 0)m._lp-=n;Q-=n}}:{},onFrame:Xe,onIdle:_e})}if(!ce&&(o||Le))Z=X=xt(o??pt),j=ft;else ze=(ce?wt:i.native)({state:c,viewport:h.viewport,isX:l,wheelEnabled:St,idleTimeout:qe,...Ee?{scrollTarget:Ee}:{},onFrame:Xe,onIdle:_e}),Z=ze,me=ze.commitScroll,We=!ce&&r!=="native";function Ye(u){let m=u.target.closest("[data-index]");if(!m)return null;let I=parseInt(m.getAttribute("data-index"),10);if(Number.isNaN(I))return null;let F=k.get("_layoutToDataIndex"),Y,ie=I;if(F){let oe=F(I);if(oe<0)return null;let be=k.get("_getItemAtLayout"),Ce=k.get("_getItem");Y=be?be(I):Ce?Ce(oe):a?a(oe):v[oe],ie=oe}else Y=a?a(I):v[I];if(Y===void 0)return null;return{item:Y,index:ie}}function Et(u){for(let m=0;m<de.length;m++)de[m](u);let n=Ye(u);if(n)b.emit("item:click",{item:n.item,index:n.index,event:u})}function Lt(u){let n=Ye(u);if(n)b.emit("item:dblclick",{item:n.item,index:n.index,event:u})}function It(u){let n=Ye(u);if(n)b.emit("item:contextmenu",{item:n.item,index:n.index,event:u})}function Tt(u){let n=u.target?.tagName;if((n==="INPUT"||n==="TEXTAREA"||n==="SELECT")&&!((u.ctrlKey||u.metaKey)&&(u.key==="f"||u.key==="F")))return;for(let m=0;m<se.length;m++)se[m](u)}if(h.content.addEventListener("click",Et),h.content.addEventListener("dblclick",Lt),h.content.addEventListener("contextmenu",It),se.length>0)h.root.addEventListener("keydown",Tt);let Ze=null;if(!lt)setTimeout(()=>{if(c.destroyed)return;Ze=new ResizeObserver((n)=>{for(let m of n){let{width:I,height:F}=m.contentRect,Y=l?I:F,ie=l?F:I;if(Math.abs(Y-c.containerSize)<1&&Math.abs(ie-c.crossSize)<1)continue;if(c.containerSize=Y,c.crossSize=ie,c.resizeCapacity(Y,p,s.overscan),X)X.refresh(E.getTotalSize());ne(),Kt(R.resize,I,F),b.emit("resize",{width:I,height:F})}}),Ze.observe(h.viewport)},0);c.resizeCapacity(c.containerSize,p,s.overscan),J(),c.initialized=!0;let Te=null;if(e.defer)Te=requestAnimationFrame(()=>{if(Te=null,!c.destroyed)Ie()});else Ie();if(!ce)Z.attach();let je={get element(){return h.root},get items(){return v},get total(){return ee?ee():v.length},setItems(u){v=[...u],c.totalItems=v.length,E.rebuild(c.totalItems),J(),ne()},appendItems(u){let n=()=>Math.max(0,E.getTotalSize()+s.mainAxisPadding-c.containerSize),m=s.reverse&&c.scrollPosition>=n()-1;if(v.push(...u),c.totalItems=v.length,E.rebuild(c.totalItems),J(),ne(),m)ue(n())},prependItems(u){let n=c.totalItems>0,m=E.getTotalSize();if(v.unshift(...u),c.totalItems=v.length,E.rebuild(c.totalItems),J(),ne(),!s.reverse||!n)return;let I=E.getTotalSize()-m;if(I<=0)return;let F=Math.max(0,E.getTotalSize()+s.mainAxisPadding-c.containerSize);ue(Math.min(c.scrollPosition+I,F))},updateItem(u,n){if(q){if(!q(u,n))return}else{let m=v.findIndex((I)=>I.id===u);if(m===-1)return;v[m]={...v[m],...n}}ne()},insertItem(u,n){if(V)V(u,n??c.totalItems);else{if(n===void 0)v.push(u);else v.splice(n,0,u);c.totalItems=v.length,E.rebuild(c.totalItems),J()}ne()},removeItem(u){if(K){if(K(u)<0)return}else{let n=v.findIndex((m)=>m.id===u);if(n===-1)return;v.splice(n,1),c.totalItems=v.length,E.rebuild(c.totalItems),J()}ne()},removeItems(u){if(K){let F=0;for(let Y of u)if(K(Y)>=0)F++;if(F>0)ne();return F}let n=new Set(u),m=v.length;v=v.filter((F)=>!n.has(F.id));let I=m-v.length;if(I>0)c.totalItems=v.length,E.rebuild(c.totalItems),J(),c.renderPending=!0,Ie();return I},getItemAt(u){if(_.indexMap){let m=k.get("_getLoadedItem");return m?m(u):v[u]}let n=k.get("_getItemAtLayout");if(n){let m=k.get("_dataToLayoutIndex");return n(m?m(u):u)}return a?a(u):v[u]},getIndexById(u){if(xe)return xe(u);return v.findIndex((n)=>n.id===u)},scrollToIndex(u,n="start"){let m=ee?ee():v.length;if(m===0){we={index:u,alignOrOptions:n};return}let I=typeof n==="string"?n:n.align??"start",F=typeof n==="object"?n.behavior:void 0,Y=typeof n==="object"?n.duration:void 0,ie=typeof n==="object"?n.easing:void 0;if($e&&$e(u,I,F,Y,ie)!==!1)return;let oe=Math.max(0,Math.min(u,m-1)),be=E.getOffset(oe),Ce=E.getSize(oe),He=c.containerSize,ln=E.getTotalSize(),Ct=s.mainAxisPadding,sn=Math.max(0,ln+Ct-He),le;if(Ke)le=Ke(oe,E,He,m,I);else{let an=s.startPadding;switch(I){case"center":le=an+be-(He-Ce)/2;break;case"end":le=be+Ce+Ct-He;break;default:le=be}le=Math.max(0,Math.min(le,sn))}if(F==="smooth"&&!fe)Z.smoothScrollTo(le,Y??Mt,j??void 0,ie);else ue(le)},getScrollPosition(){return bt.getPixelEquivalent()},on:b.on.bind(b),off:b.off.bind(b),destroy(){if(c.destroyed)return;if(c.destroyed=!0,re)re=!1,h.root.classList.remove(Ue);if(Te!==null)cancelAnimationFrame(Te),Te=null;if(T!==null)clearTimeout(T),T=null;Z.detach(),pe?.destroy(),Ze?.disconnect(),h.content.removeEventListener("click",Et),h.content.removeEventListener("dblclick",Lt),h.content.removeEventListener("contextmenu",It),h.root.removeEventListener("keydown",Tt);let u=[];ae(u);for(let[,n]of C)n.remove();if(C.clear(),M.clear(),h.root.remove(),b.emit("destroy",void 0),b.clear(),u.length>0)for(let n of u)console.error("vlist: error during destroy:",n)}};for(let[u,n]of k){if(u.startsWith("_"))continue;je[u]=n}return je}nn();function xo(e,t=[]){return qt(e,t,tn)}export{xo as createVList};
|
|
1
|
+
var Pt=(e,t,o)=>()=>{if(e)try{t=e(e=0)}catch(l){o=[l]}if(o)throw o[0];return t};var Re=3,At="vlist",Qe=16000000,ve=150,Oe=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,Mt=300,ke="__placeholder_";function Cn(e,t,o,l,i){if(t===0||e.size===0)return;let r=e.size;if(Ne.length<r)Ne=new Int32Array(r);if(Me.length<r)Me.length=r;let s=0;for(let[S,x]of e)Ne[s]=S,Me[s]=x,s++;e.clear();let d=o+"-item-",g=l.getAttribute("aria-activedescendant"),P=null,p=i&&t&1;for(let S=0;S<r;S++){let x=Ne[S],b=Me[S];Me[S]=void 0;let _=x-t;if(e.set(_,b),g!==null&&b.id===g)P=b;if(b.id===d+x)b.id=d+_;if(p)b.classList.toggle(i)}if(P!==null)l.setAttribute("aria-activedescendant",P.id)}function Pn(e,t,o){if(t===0&&o===0)return;e.prevRangeStart-=t,e.prevRangeEnd-=t,e.startIndex-=t,e.prevBaseOffset-=o;let l=e.visibleCount;for(let i=0;i<l;i++)e.visibleIndices[i]-=t,e.visibleOffsets[i]-=o}function Xt(e,t){let o=t>1?Math.trunc(e):Math.floor(e);return Math.abs(o)<t?0:o}function Yt(e,t,o,l,i,r,s){let d=e.lapSize(),g=e.itemsPerLap(),P=d>0?Math.round(t/d)*g:0;if(P===0)return;if(i)Cn(i,P,r,l,s);Pn(o,P,t)}var Ne,Me;var Zt=Pt(()=>{Ne=new Int32Array(0),Me=[]});function en({getMax:e,onChange:t=()=>{},onFinish:o,axis:l="y",reducedMotion:i}){let r=0,s=0,d=null,g=0,P=0,p=0,S=0,x=0,b=null,_=0,A=0,w=0,h=0,B=400,E=jt,M=()=>w,W=0.006,c=(y)=>{let L=e();return Number.isFinite(L)?Math.max(0,Math.min(L,y)):y},v=(y,L)=>l==="y"?L:y,z=(y,L)=>l==="y"?y:L;function C(y){let L=c(y);if(L!==r)r=L,t(r);return L!==y}function f(){x=0,s=d===null?0:5}function D(y){f(),C(y)}return{get position(){return r},get state(){return s},get velocity(){return x},get active(){return s===3||s===4},begin(y,L,N,O){if(d!==null){f();return}f(),d=y,g=p=v(L,N),P=z(L,N),S=O,s=1},move(y,L,N,O){if(y!==d||s!==1&&s!==2)return!1;let G=v(L,N);if(s===1){let R=Math.abs(G-g),k=Math.abs(z(L,N)-P);if(Math.max(R,k)<6)return!1;if(k>R*1.2)return f(),!1;if(R<k*1.2)return!1;s=2}let Q=p-G,T=O-S;if(T>0){let R=Math.max(-3,Math.min(3,Q/T));x=T>80?0:R*x<0?R:0.65*R+0.35*x}if(p=G,S=O,C(r+Q))x=0;return!0},end(y,L){if(y!==d)return;if(d=null,s===2&&!i()&&L-S<=80&&Math.abs(x)>=0.02)b=null,s=3;else x=0,s=0},cancel:f,reset(){d=null,f()},jump:D,shiftBy(y){A+=y,h+=y,C(r+y)},by(y){f();let L=r;return C(r+y),r!==L},smooth(y,L=400,N=jt){if(f(),h=0,M=typeof y==="function"?y:()=>y,d!==null||i()||L<=0){C(M());return}B=L,E=N,A=r,w=c(M()+h),b=null,s=4},resize(){f(),C(r)},tick(y){if(s!==3&&s!==4)return;if(b===null){if(b=y,s===4)_=y;return}let L=y-b;if(L<=0)return;if(b=y,L>100){if(s===4)C(c(M()+h)),s=0,o?.();else f();return}if(s===4){w=c(M()+h);let G=Math.min(1,(y-_)/B);if(C(A+(w-A)*E(G)),G===1)s=0,o?.();return}let N=Math.exp(-W*L),O=C(r+x*(1-N)/W);if(x*=N,O||Math.abs(x)<0.02)x=0,s=0}}}var Jt=1,Qt=2,jt=(e)=>1-(1-e)**3;function it(e){if(e.closest("textarea,select,[contenteditable]:not([contenteditable=false])"))return!0;let t=e.closest("input");return!!t&&!/^(button|submit|reset|checkbox|radio|image)$/.test(t.type)}function tn(e){let{state:t,viewport:o,content:l,isX:i,onFrame:r,onIdle:s,mainAxisPadding:d,wrap:g}=e,P=o.parentElement??o,p=o.ownerDocument.defaultView,S=o.ownerDocument,x=p.matchMedia("(prefers-reduced-motion: reduce)"),b=0,_=null,A=null,w=!1,h=!1,B=!1,E=-1,M=-1,W=null,c=null,v=!1,z=!1,C=!1,f=!1,D,y=new Set;function L(a){let H=t.scrollPosition;if(g){let K=g.lapSize(),V=K>0?Xt((a-g.home())/K,g.thresholdLaps):0;if(V!==0){let q=V*K;B=!0,T.shiftBy(-q),B=!1,a=T.position,H-=q,Yt(g,q,t,l,e.rendered,e.classPrefix??"",e.oddClass),e.onFold?.(q),g.onFold?.(q)}}if(t.prevScrollPosition=H,t.scrollPosition=t.baseOffset=a,t.scrollDirection=a>H?1:a<H?-1:0,!h)r()}function N(){if(A=null,T.active||T.state===Qt||T.state===Jt)return;t.scrollDirection=0,s()}function O(){if(!w)return;if(A!==null)clearTimeout(A);A=setTimeout(N,e.idleTimeout||ve)}function G(){if(w&&_===null&&T.active)_=requestAnimationFrame(Q)}function Q(a){if(_=null,T.tick(a),T.active)G();else O()}let T=en({axis:i?"x":"y",getMax:()=>g?1/0:b,reducedMotion:()=>x.matches,onChange(a){if(!B)L(a)},onFinish(){let a=D;D=void 0,a?.()}});function R(){if(D=void 0,_!==null)cancelAnimationFrame(_),_=null;if(T.cancel(),A!==null)clearTimeout(A),A=null}function k(){if(R(),T.reset(),f&&W!==null&&o.hasPointerCapture(W))o.releasePointerCapture(W);f=!1,y.clear(),W=c=null,v=z=C=!1,O()}function de(a){if(!Be(a))return;if(a.isPrimary){if(y.size)k();y.clear()}if(y.add(a.pointerId),y.size>1){C=!0,R();return}if(!(a.target instanceof Element)||it(a.target)){R();return}W=a.pointerId,v=!1,z=T.active,c=null,R(),T.begin(a.pointerId,a.clientX,a.clientY,a.timeStamp)}function se(a){if(!Be(a)||a.target instanceof Node&&o.contains(a.target))return;if(a.isPrimary&&y.size)k();else if(y.size)y.add(a.pointerId),C=!0,R()}function he(a){if(!Be(a)||C)return;if(T.move(a.pointerId,a.clientX,a.clientY,a.timeStamp)){if(v=!0,!f)o.setPointerCapture(a.pointerId),f=!0;if(a.cancelable)a.preventDefault()}}function ae(a){if(!Be(a)||!y.has(a.pointerId))return;let H=a.type==="pointercancel";if(H)R();if(W===a.pointerId){if(!H&&!C&&(v||z))c=a.pointerId;if(f&&o.hasPointerCapture(a.pointerId))o.releasePointerCapture(a.pointerId);f=!1,W=null,v=z=!1}if(T.end(a.pointerId,a.timeStamp),y.delete(a.pointerId),!y.size){if(C||H)T.reset();C=!1}G(),O()}function ee(a){let H=a.pointerId;if(a.detail!==0&&c!==null&&(H===c||H===void 0))c=null,a.preventDefault(),a.stopImmediatePropagation()}function j(a){if(a.ctrlKey||a.defaultPrevented||!(a.target instanceof Element)||it(a.target))return;let H=a.deltaMode===1?16:a.deltaMode===2?t.containerSize:1,K=i?a.deltaX:a.deltaY,V=i?a.deltaY:a.deltaX,q=i?o.scrollHeight>o.clientHeight:o.scrollWidth>o.clientWidth;if(q&&Math.abs(V)>Math.abs(K))return;if(q&&V!==0)if(a.preventDefault(),i)o.scrollTop+=V*H;else o.scrollLeft+=V*H;let xe=i&&!q&&K===0?V:K;if(R(),T.by(xe*H))a.preventDefault();O()}function ye(a){if(a.defaultPrevented||a.ctrlKey||a.metaKey||a.altKey||!(a.target instanceof Element)||it(a.target))return;if((a.key===" "||a.key==="Enter")&&a.target.closest("button,summary,a,input"))return;let H=e.sizeCache,K=H.getSize(H.indexAtOffset(T.position)),V;if(a.key===(i?"ArrowRight":"ArrowDown"))V=T.position+K;if(a.key===(i?"ArrowLeft":"ArrowUp"))V=T.position-K;if(a.key==="PageDown"||a.key===" ")V=T.position+t.containerSize*(a.shiftKey&&a.key===" "?-1:1);if(a.key==="PageUp")V=T.position-t.containerSize;if(a.key==="Home")V=0;if(a.key==="End")V=b;if(V!==void 0)a.preventDefault(),te(V)}function me(){if(S.hidden)k()}function te(a){let H=T.position;if(R(),T.jump(a),H===(g?a:Math.max(0,Math.min(b,a))))L(T.position);O()}function Se(a){let H=E!==t.containerSize||M!==t.crossSize,K=a!==t.totalSize||H;if(E=t.containerSize,M=t.crossSize,t.totalSize=a,b=Math.max(0,a+d-t.containerSize),K){if(h=!0,H)R(),T.resize();else T.shiftBy(0);L(T.position),h=!1}}return{setLogical:te,refresh:Se,shiftBy(a){if(t.totalSize=e.sizeCache.getTotalSize(),b=Math.max(0,t.totalSize+d-t.containerSize),T.shiftBy(a),!T.active)O()},cancelScroll(){R(),O()},getLogical:()=>t.scrollPosition,getMaxLogical:()=>b,smoothScrollTo(a,H,K,V=Oe,q){if(R(),T.smooth(a,H,V),D=q,!T.active)D=void 0,q?.(),O();else G()},attach(){if(w)return;if(w=!0,o.style.overflowX=i?"hidden":"auto",o.style.overflowY=i?"auto":"hidden",o.style.touchAction=i?"pan-y pinch-zoom":"pan-x pinch-zoom",o.style.overflowAnchor="none",l.style[i?"width":"height"]="100%",l.style.overflow="clip",l.style.overflowAnchor="none",o.addEventListener("pointerdown",de),p.addEventListener("pointerdown",se),o.addEventListener("pointermove",he,{passive:!1}),p.addEventListener("pointerup",ae),p.addEventListener("pointercancel",ae),o.addEventListener("click",ee,!0),e.wheelEnabled)o.addEventListener("wheel",j,{passive:!1});P.addEventListener("keydown",ye),p.addEventListener("blur",k),S.addEventListener("visibilitychange",me),x.addEventListener("change",k),G()},detach(){if(w=!1,k(),A!==null)clearTimeout(A),A=null;o.removeEventListener("pointerdown",de),p.removeEventListener("pointerdown",se),o.removeEventListener("pointermove",he),p.removeEventListener("pointerup",ae),p.removeEventListener("pointercancel",ae),o.removeEventListener("click",ee,!0),o.removeEventListener("wheel",j),P.removeEventListener("keydown",ye),p.removeEventListener("blur",k),S.removeEventListener("visibilitychange",me),x.removeEventListener("change",k),o.style.overflowX=o.style.overflowY=o.style.touchAction=o.style.overflowAnchor="",l.style.overflow=l.style.overflowAnchor=""}}}var Be=(e)=>e.pointerType==="touch"||e.pointerType==="pen";var nn=Pt(()=>{Zt()});function wt(e){let{state:t,viewport:o,isX:l,onFrame:i,onIdle:r}=e,s=e.idleTimeout||ve,d=null,g=null;function P(b=l?o.scrollLeft:o.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=b,t.scrollDirection=b>t.prevScrollPosition?1:b<t.prevScrollPosition?-1:0,i(),p()}function p(){if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,t.scrollDirection=0,r()},s)}function S(){if(g!==null)cancelAnimationFrame(g),g=null}function x(b,_,A,w=Oe,h){S();let B=t.scrollPosition,E=typeof b==="function"?b:()=>b,M=E();if(Math.abs(M-B)<1){if(A)A(M);else if(l)o.scrollLeft=M;else o.scrollTop=M;h?.();return}let W=performance.now();function c(v){M=E();let z=v-W,C=Math.min(z/_,1),f=B+(M-B)*w(C);if(A)A(f);else{if(l)o.scrollLeft=f;else o.scrollTop=f;let D=l?o.scrollLeft:o.scrollTop;P(Math.abs(D-f)>1?D:f)}if(C<1)g=requestAnimationFrame(c);else g=null,h?.()}g=requestAnimationFrame(c)}return{attach(){},detach(){if(S(),d!==null)clearTimeout(d),d=null},cancelScroll:S,smoothScrollTo:x,commitScroll:P}}var Ve={top:0,right:0,bottom:0,left:0},zt=(e)=>{if(e==null)return Ve;if(typeof e==="number")return e===0?Ve:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[r,s]=e;return r===0&&s===0?Ve:{top:r,right:s,bottom:r,left:s}}let[t,o,l,i]=e;return t===0&&o===0&&l===0&&i===0?Ve:{top:t,right:o,bottom:l,left:i}},_t=(e,t)=>t?e.left+e.right:e.top+e.bottom,Ht=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Rt(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,windowClamped:!1,windowClampReported:!1,prevAriaTotal:-1,ensureCapacity(o){if(o<=t.capacity)return;let l=o+8,i=new Int32Array(l),r=new Float64Array(l),s=new Float64Array(l);i.set(t.visibleIndices),r.set(t.visibleOffsets),s.set(t.visibleSizes),t.visibleIndices=i,t.visibleOffsets=r,t.visibleSizes=s,t.capacity=l},resizeCapacity(o,l,i=Re){if(l<=0||o<=0)return;t.ensureCapacity(Math.ceil(o/l)+i*2)},clear(){t.visibleCount=0,t.startIndex=0}};return t}var cn=(e,t,o)=>{let l=t;return{getOffset:(i)=>i*e,getSize:(i)=>e,indexAtOffset:(i)=>{if(l===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(i/e),l-1))},getTotalSize:()=>{let i=l*e;return i>0?i-o:0},getTotal:()=>l,rebuild:(i)=>{l=i},invalidate:()=>{},isVariable:()=>!1}};var Ot=(e,t,o,l)=>{while(t<o){let i=t+o+1>>>1;if(e[i]<=l)t=i;else o=i-1}return t},un=(e,t,o)=>{let l=0,i=0,r=new Float64Array(0),s=new Float64Array(0),d=new Float64Array(1),g=(p,S)=>{for(let x=p;x<i;x++){if(x<=S){let b=x<<9,_=Math.min(b+512,l),A=0;for(let w=b;w<_;w++)r[w]=A,A+=e(w);s[x]=A}d[x+1]=d[x]+s[x]}},P=(p)=>{l=p,i=Math.ceil(p/512),r=new Float64Array(p),s=new Float64Array(i),d=new Float64Array(i+1),g(0,i-1)};return P(t),{getOffset:(p)=>{if(p<=0)return 0;if(p>=l)return d[i];return d[p>>>9]+r[p]},getSize:(p)=>e(p),indexAtOffset:(p)=>{if(l===0||p<=0)return 0;if(p>=d[i])return l-1;let S=Ot(d,0,i-1,p),x=S<<9;return Ot(r,x,Math.min(x+512,l)-1,p-d[S])},getTotalSize:()=>{let p=d[i];return p>0?p-o:0},getTotal:()=>l,rebuild:(p)=>P(p),invalidate:(p,S=p)=>{if(p>=0&&S<l)g(p>>>9,S>>>9)},isVariable:()=>!0}},Fe=(e,t,o=0)=>{if(typeof e==="number")return cn(e,t,o);return un(e,t,o)};function kt(e){let t=[],o=`${e}-item`,l=document.createElement("div");return l.className=o,{acquire(){if(t.length>0)return t.pop();return l.cloneNode(!1)},release(i){i.className=o,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",t.push(i)},get size(){return t.length},trim(i){let r=i>0?i:0;if(t.length>r)t.length=r},clear(){t.length=0}}}function et(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let o=0;o<t.length;o++)t[o].setAttribute("tabindex","-1");e._stamp=0}function tt(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function Vt(e,t,o,l){let i=o?`${t} ${t}--horizontal`:t,r=o?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=o?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",d=' role="list"';if(l)d+=` aria-label="${l.replace(/"/g,""")}"`;if(o)d+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${t}-viewport" style="${r}" tabindex="-1"><div class="${t}-content" style="${s}"${d}></div></div></div>`);let g=e.lastElementChild,P=g.firstElementChild,p=P.firstElementChild,S=document.createElement("div");return S.className=`${t}-live`,S.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",S.setAttribute("aria-live","polite"),S.setAttribute("aria-atomic","true"),S.setAttribute("role","status"),g.appendChild(S),{root:g,viewport:P,content:p,liveRegion:S}}function dn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let l=t<=0?0:t,i=e.indexAtOffset(l),r=l-e.getOffset(i);return{index:i,offsetPx:r>0?r:0}}function mn(e,t){let o=fn(e,t);return e.getOffset(o.index)+o.offsetPx}function fn(e,t){let o=e.getTotal();if(o<=0)return{index:0,offsetPx:0};let{index:l,offsetPx:i}=t;if(l<0)return{index:0,offsetPx:0};if(l>o-1)l=o-1;while(i>0&&l<o-1){let r=e.getSize(l);if(i<r)break;i-=r,l++}while(i<0&&l>0)l--,i+=e.getSize(l);if(i<0)i=0;return{index:l,offsetPx:i}}function Ft(e){let{sizeCache:t,getPixel:o,setPixel:l,getContainerSize:i}=e;function r(){let d=t.getTotalSize()+e.padding-i();return d>0?d:0}function s(d){if(d<=0)return 0;let g=r();return d>g?g:d}return{getLogical(){return dn(t,o())},setLogical(d){l(s(mn(t,d)))},getPixelEquivalent(){return o()},setPixelEquivalent(d){l(s(d))},getMaxPixelEquivalent:r,getRenderOrigin:e.getRenderOrigin,scrollByPx(d){l(s(o()+d))}}}var Pe=[],pn={calculate:Pe,commit:Pe,afterScroll:Pe,idle:Pe,resize:Pe};function Dt(e){if(e.length===0)return pn;let t=[],o=[],l=[],i=[],r=[];for(let s=0;s<e.length;s++){let d=e[s].hooks;if(d===void 0)continue;if(d.onCalculate!==void 0)t.push(d.onCalculate);if(d.onCommit!==void 0)o.push(d.onCommit);if(d.onAfterScroll!==void 0)l.push(d.onAfterScroll);if(d.onIdle!==void 0)i.push(d.onIdle);if(d.onResize!==void 0)r.push(d.onResize)}return{calculate:t,commit:o,afterScroll:l,idle:i,resize:r}}function Nt(e,t){for(let o=0;o<e.length;o++)e[o](t)}function Ae(e,t){for(let o=0;o<e.length;o++)e[o](t)}function nt(e,t,o){for(let l=0;l<e.length;l++)e[l](t,o)}function Bt(e){for(let t=0;t<e.length;t++)e[t]()}function Kt(e,t,o){for(let l=0;l<e.length;l++)e[l](t,o)}function $t(e,t,o,l,i,r,s,d){let g=l!==0||i!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:o,gap:s,hasCrossPad:g,crossStartProp:g?t?"top":"left":"",crossEndProp:g?t?"bottom":"right":"",crossStartVal:g?l+"px":"",crossEndVal:g?i+"px":"",oddClass:r,emitter:d??null,indexMap:null,ariaTotalFn:null}}function bn(e,t,o,l,i){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:r,containerSize:s,totalItems:d}=e,g=i??0;e.totalSize=t.getTotalSize();let P=t.indexAtOffset(g>0?Math.max(0,r-g):r),p=t.indexAtOffset(r+s);if(p<d-1)p++;P=Math.max(0,P),p=Math.min(d-1,Math.max(0,p));let S=Math.max(0,P-o),x=Math.min(d-1,p+o),b=Math.ceil(s)+o*2;if(x-S+1>b)x=S+b-1,e.windowClamped=!0;let _=x-S+1;if(_>e.capacity)e.ensureCapacity(_);let A=Math.min(_,e.capacity);if(S===e.prevRangeStart&&x===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=A,e.startIndex=S;for(let w=0;w<A;w++){let h=S+w;e.visibleIndices[w]=h,e.visibleOffsets[w]=t.getOffset(h),e.visibleSizes[w]=t.getSize(h)}return Nt(l.calculate,e),e.prevRangeStart=S,e.prevRangeEnd=x,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var U={selected:!1,focused:!1};function vn(e,t,o){for(let l=0;l<t;l++)if(e[l]===o)return!0;return!1}function gn(e,t){if(t<=1)return!0;let o=e[0];for(let l=1;l<t;l++){let i=e[l];if(i!==o+1)return!1;o=i}return!0}function hn(e,t,o,l,i,r,s,d,g,P){let p=g?null:i(),{visibleCount:S,visibleIndices:x}=e,b=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,_=s.interactive?String(b):"",A=s.interactive&&b!==e.prevAriaTotal,w=null,h=s.indexMap;for(let B=0;B<S;B++){let E=x[B],M=h?h(E):E,W=e.visibleOffsets[B],c=e.visibleSizes[B],v=g?g(E):p[E];if(P)P(M,U);else U.selected=!1,U.focused=!1;let z=r.get(E),C=z;if(z===void 0){let f=t.acquire();if(v!==void 0){let L;try{L=l(v,M,U)}catch(N){if(s.emitter)s.emitter.emit("error",{error:N instanceof Error?N:Error(String(N)),context:`template:render:${M}`});t.release(f);continue}if(typeof L==="string")f.innerHTML=L;else f.textContent="",f.appendChild(L);et(f)}if(f.setAttribute("role",s.itemRole),f.setAttribute("data-index",String(M)),s.interactive)f.id=s.prefix+"-item-"+E,f.setAttribute("aria-posinset",String(M+1)),f.setAttribute("aria-setsize",_);if(v!==void 0){let L=String(v.id);if(f.setAttribute("data-id",L),L.startsWith(ke))f.classList.add(s.placeholderClass)}if(s.hasCrossPad)f.style.setProperty(s.crossStartProp,s.crossStartVal),f.style.setProperty(s.crossEndProp,s.crossEndVal);if(P){if(f.classList.toggle(s.selectedClass,U.selected),f.classList.toggle(s.focusedClass,U.focused),U.selected)f.setAttribute("aria-selected","true");else f.removeAttribute("aria-selected");f._lastSelected=U.selected,f._lastFocused=U.focused}if(s.oddClass)f.classList.toggle(s.oddClass,(E&1)===1);let D=W-e.baseOffset+s.startPadding;f.style.transform=s.translateProp+D+"px)",f._lastOffset=D;let y=c-s.gap;if(f.style[s.sizeProp]=y+"px",f._lastSize=y,f._lastItem=v,r.set(E,f),w===null)w=document.createDocumentFragment();w.appendChild(f)}else{if(A)z.setAttribute("aria-setsize",_);if(v!==void 0&&C._lastItem!==v){let y=z.getAttribute("data-id"),L=String(v.id),N;try{N=l(v,M,U)}catch(O){if(s.emitter)s.emitter.emit("error",{error:O instanceof Error?O:Error(String(O)),context:`template:render:${M}`});continue}if(typeof N==="string")z.innerHTML=N;else z.textContent="",z.appendChild(N);if(et(z),z.setAttribute("data-id",L),C._lastItem=v,y!==L){let O=y!==null&&y.startsWith(ke),G=L.startsWith(ke);if(O!==G)z.classList.toggle(s.placeholderClass,G);if(O&&!G)z.classList.add(s.replacedClass),setTimeout(()=>{z.classList.remove(s.replacedClass)},300)}}if(P){if(C._lastSelected!==U.selected){if(z.classList.toggle(s.selectedClass,U.selected),U.selected)z.setAttribute("aria-selected","true");else z.removeAttribute("aria-selected");C._lastSelected=U.selected}if(C._lastFocused!==U.focused)z.classList.toggle(s.focusedClass,U.focused),C._lastFocused=U.focused}let f=W-e.baseOffset+s.startPadding;if(C._lastOffset!==f)z.style.transform=s.translateProp+f+"px)",C._lastOffset=f;let D=c-s.gap;if(C._lastSize!==D)z.style[s.sizeProp]=D+"px",C._lastSize=D}}if(w!==null)o.appendChild(w);if(S>0&&gn(x,S)){let B=x[0],E=x[S-1];for(let[M,W]of r)if(M<B||M>E)W.remove(),t.release(W),r.delete(M)}else for(let[B,E]of r)if(!vn(x,S,B))E.remove(),t.release(E),r.delete(B);if(s.interactive)e.prevAriaTotal=e.totalItems;Ae(d.commit,e)}function ot(e,t,o,l,i,r,s,d,g,P,p,S){let x=bn(e,t,o,P,g.startPadding);if(e.windowClamped&&!e.windowClampReported)e.windowClampReported=!0,queueMicrotask(()=>{if(e.destroyed)return;g.emitter?.emit("error",{error:Error("[vlist] render window capped to the viewport: the item size spec reports sizes below 1px"),context:"render:window-ceiling"})});if(x)hn(e,l,i,r,s,d,g,P,p,S)}var rt=()=>{let e={},t=(r,s)=>{if(!e[r])e[r]=new Set;return e[r].add(s),()=>o(r,s)},o=(r,s)=>{e[r]?.delete(s)};return{on:t,off:o,emit:(r,s)=>{e[r]?.forEach((d)=>{try{d(s)}catch(g){}})},clear:(r)=>{if(r)delete e[r];else for(let s in e)delete e[s]}}};var Wt=2,Gt=(e=0)=>({velocity:0,sampleCount:0}),Ut=(e,t)=>{let o=performance.now(),l=e._lt??o,i=e._lp??t,r=o-l;if(e._lp=t,e._lt=o,r===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(r>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-i)/r,e.sampleCount=Math.min(e.sampleCount+1,5),e};function ge(e,t,o=!1){if(t===void 0)return;if(typeof t!=="number"||!Number.isFinite(t)||t<0||t===0&&!o)throw Error(`vlist: ${e} must be a ${o?"non-negative":"positive"} number, got ${t}`)}function yn(e){let{item:t}=e;if(typeof t.height==="number")ge("item.height",t.height);if(typeof t.width==="number")ge("item.width",t.width);ge("item.estimatedHeight",t.estimatedHeight),ge("item.estimatedWidth",t.estimatedWidth),ge("item.gap",t.gap,!0),ge("overscan",e.overscan,!0);let o=e.scroll;if(o?.runway!==void 0||!/^(auto|native|synthetic)?$/.test(o?.mode??""))throw Error('vlist: scroll.mode is "auto", "native" or "synthetic" (bounded mode and scroll.runway were removed in 3.0)')}function Sn(e,t){let o=e==="horizontal"?"x":"y";if(t.some((i)=>i.name==="grid"))return{primary:o,cross:o==="x"?"y":"x"};return{primary:o}}function xn(e,t,o){let l=Sn(e.orientation,t),i=l.primary==="x",r=zt(e.padding);return{axis:l,hasCrossAxis:l.cross!==void 0,overscan:e.overscan??Re,reverse:e.reverse??!1,classPrefix:e.classPrefix??At,mainAxisPadding:_t(r,i),crossAxisPadding:Ht(r,i),startPadding:i?r.left:r.top,endPadding:i?r.right:r.bottom,crossPadStart:i?r.top:r.left,crossPadEnd:i?r.bottom:r.right,striped:e.item.striped||!1,gap:e.item.gap??0,scrollMode:o}}function En(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function Ln(e){let t=[...e];return t.sort((o,l)=>(o.priority??50)-(l.priority??50)),t}function In(e){let t=new Set;for(let o of e){if(t.has(o.name))throw Error(`[vlist] Duplicate plugin: ${o.name}`);t.add(o.name)}for(let o of e)if(o.conflicts){for(let l of o.conflicts)if(t.has(l))throw Error(`[vlist] Plugin "${o.name}" conflicts with "${l}"`)}}function Tn(e,t){for(let o of e)o.validateConfig?.(t)}var De=null;function qt(e,t=[],o,l){yn(e);let i=o?"synthetic":e.scroll?.mode??"auto";if(i==="synthetic"&&e.scroll?.scrollbar==="native")throw Error('vlist: scroll.scrollbar "native" needs native scrolling');if(e.orientation==="horizontal"&&getComputedStyle(tt(e.container)).direction==="rtl")throw Error("vlist: horizontal RTL lists are not supported; use a vertical list, or an LTR container");let r=xn(e,t,i),s=r.axis.primary==="x",d=En(e,s),g=r.gap,P=g>0?typeof d==="function"?(u)=>d(u)+g:d+g:d,p=typeof d==="number"?d:20,S=e.items?.length??0,x=r.striped?`${r.classPrefix}-item--odd`:"",b=rt(),_=$t(r.classPrefix,s,r.startPadding,r.crossPadStart,r.crossPadEnd,x,g,b),A=t.length>0?Ln(t):t;if(t.length>0)In(A),Tn(A,r);let w=tt(e.container),h=Vt(w,r.classPrefix,s,e.ariaLabel);if(e.scroll?.scrollbar==="none")h.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")h.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let E=Fe(P,S,g),M=kt(r.classPrefix),W=Math.ceil(4096/p)+r.overscan*2+8,c=Rt(W);c.totalItems=S;let v=e.items?[...e.items]:[],z=()=>v,C=new Map,f=Gt(),D={velocity:0,reliable:!1},y={range:{start:0,end:-1}},L={scrollPosition:0,direction:"down"},N={scrollPosition:0},O=-1,G=-1,Q=-1,T=null,R=Dt(A),k=new Map,de=[],se=[],he=[],ae=(u)=>{let n=(m)=>{u.push(m instanceof Error?m:Error(String(m)))};for(let m of he)try{m()}catch(I){n(I)}for(let m of A)if(m.destroy)try{m.destroy()}catch(I){n(I)}},ee=null,j=null,ye,me,te=null,Se=null,a=null,H=null,K=null,V=null,q=null,xe=null,ce=!1,lt=!1,Ee=null,st=0,at=0,ct=null,ut=null,dt=null,mt=null,Ke=null,$e=null,we=null,Z=null,ze=null,X=null,ft=(u)=>X.setLogical(u),We=!1,fe=!1,Ge=null,pe=null,Le=null,pt=null;c.containerSize=s?h.viewport.clientWidth:h.viewport.clientHeight,c.crossSize=s?h.viewport.clientHeight:h.viewport.clientWidth;function ue(u){if(j)j(u);else{if(s)h.viewport.scrollLeft=u;else h.viewport.scrollTop=u;if(me?.(),fe&&Math.abs(c.scrollPosition-u)>1)Ge=u}}let bt=Ft({sizeCache:E,getPixel:()=>c.scrollPosition,setPixel:ue,getRenderOrigin:()=>c.baseOffset,getContainerSize:()=>c.containerSize,padding:r.mainAxisPadding});if(t.length>0){let u={pool:M,config:r,emitter:b,template:e.item.template,getState(){return c},dom:{...h,renderedElement(n){let m=k.get("_getRenderedElement");if(m)return m(n);return C.get(n)??null},enableListbox(){let n=h.content.getAttribute("role");if(!n||n==="list")h.content.setAttribute("role","listbox"),h.content.setAttribute("tabindex","0");_.itemRole="option",_.interactive=!0}},scroll:{...bt,to:ue,shiftBy(n){if(X?.shiftBy)X.shiftBy(n);else u.scroll.to(c.scrollPosition+n)},smoothTo(n,m,I,F){if(Z)Z.smoothScrollTo(n,m,j??void 0,I,F);else u.scroll.to(typeof n==="function"?n():n)},cancel(){Z?.cancelScroll()},commit(n){me(n)},setSource(n){j=n.write,ye=n.onContentSize,ce=!0},setTarget(n){Ee=n},setWrap(n,m){Le=n,pt=m},setBoundedWrap(n,m){u.scroll.setWrap(n,m)},setToPosFn(n){Ke=n},setToIndexFn(n){$e=n},onFrame:Xe,onIdle:_e,disableResize(){lt=!0}},items:{all:z,at(n){return a?a(n):v[n]},removeById(n){if(K)return K(n);let m=v.findIndex((I)=>I.id===n);if(m===-1)return-1;return v.splice(m,1),c.totalItems=v.length,E.rebuild(c.totalItems),J(),m},insertAt(n,m){if(V){V(n,m);return}v.splice(m,0,n),c.totalItems=v.length,E.rebuild(c.totalItems),J()},setGetFn(n){a=n},setRemoveFn(n){K=n},setInsertFn(n){V=n},setUpdateFn(n){q=n},setIndexByIdFn(n){xe=n},setTotalFn(n){ee=n,_.ariaTotalFn=n},setIndexMapFn(n){_.indexMap=n}},sizes:{cache:E,get rawSpec(){return d},setConfig(n,m=0){let I=Fe(n,c.totalItems,m),F=k.get("_setSizeCacheBase");if(F){let Y=E.rebuild;Object.assign(E,I),E.rebuild=Y,F(I.rebuild)}else Object.assign(E,I)},rebuild(){E.rebuild(c.totalItems)}},render:{force(){ne()},ifNeeded(){Ie()},contentSize:gt,setFn(n,m){te=()=>{let{prevRangeStart:I,prevRangeEnd:F}=c;if(n(),c.prevRangeStart!==I||c.prevRangeEnd!==F)Ae(R.commit,c)},Se=()=>{m(),Ae(R.commit,c)}},setStateFn(n){H=n},getStateFn(){return H}},hooks:{method(n,m){if(!n.startsWith("_")&&k.has(n))throw Error(`[vlist] duplicate method "${n}"; rename it or use a set*Fn hook`);k.set(n,m)},get(n){return k.get(n)},onClick(n){de.push(n)},onKeydown(n){se.push(n)},onDestroy(n){he.push(n)}},nav:{set(n){if(n.ud!==void 0)st=n.ud;if(n.lr!==void 0)at=n.lr;if(n.scrollIndex)ct=n.scrollIndex;if(n.navigate)ut=n.navigate;if(n.total)dt=n.total;if(n.reveal)mt=n.reveal},get:(()=>{let n={ud:0,lr:0,scrollIndex:null,navigate:null,total:null,reveal:null};return()=>(n.ud=st,n.lr=at,n.scrollIndex=ct,n.navigate=ut,n.total=dt,n.reveal=mt,n)})()}};for(let n of A)if(n.setup)try{n.setup(u)}catch(m){let I=m instanceof Error?m:Error(String(m));b.emit("error",{error:I,context:`plugin:setup:${n.name}`})}}let Ue=r.classPrefix+"--scrolling",re=!1,qe=e.scroll?.idleTimeout??ve;function vt(){if(L.scrollPosition=c.scrollPosition,s)L.direction=c.scrollDirection>0?"right":"left";else L.direction=c.scrollDirection>0?"down":"up";if(b.emit("scroll",L),Ut(f,c.scrollPosition),D.velocity=f.velocity,D.reliable=f.sampleCount>=Wt,b.emit("velocity:change",D),c.startIndex!==O||c.prevRangeEnd!==G)O=c.startIndex,G=c.prevRangeEnd,y.range.start=c.startIndex,y.range.end=c.prevRangeEnd,b.emit("range:change",y)}function gt(u,n=!0){let m=u+r.mainAxisPadding;if(We)on(m);if(X){if(n)X.refresh(u);return}if(c.totalSize=u,ye?.(m),n)h.content.style[s?"width":"height"]=Math.min(m,Qe)+"px"}function J(){let u=te?c.totalSize:E.getTotalSize();if(gt(u,!te),X||te||We)return;l?.onContentSize(u,b)}function ht(){if(!we)return;if((ee?ee():v.length)===0)return;let n=we;we=null,je.scrollToIndex(n.index,n.alignOrOptions)}function Ie(){if(te)te();else ot(c,E,r.overscan,M,h.content,e.item.template,z,C,_,R,a,H);ht()}function Xe(){if(Ge=null,!re)re=!0,h.root.classList.add(Ue);if(Ie(),nt(R.afterScroll,c.scrollPosition,c.scrollDirection),pe?.sync(),c.scrollPosition!==Q)Q=c.scrollPosition,vt()}function yt(){M.trim(C.size)}function on(u){let n=!!X;if(fe=(i==="synthetic"||u>Qe*(n?0.75:1))!==n,!fe)return;if(!De)l.load().then((I)=>{if(De=I,!c.destroyed)J()},(I)=>b.emit("error",{error:I,context:"scroll:mode"}));else if(!re)rn(u)}function rn(u){let n=Ge??c.scrollPosition;if(fe=!1,Z.detach(),pe?.destroy(),pe=null,X)Z=ze,X=j=null,c.baseOffset=0,h.content.style[s?"width":"height"]=u+"px",Z.attach(),ue(n);else if(h.viewport[s?"scrollLeft":"scrollTop"]=0,Z=X=xt(De.createSyntheticScrollHandler),j=ft,X.refresh(u-r.mainAxisPadding),(pe=De.attachScrollbar(c,h,r,E,ue,e.scroll?.scrollbar))?.sync(),c.initialized)Z.attach(),X.setLogical(n);b.emit("scroll:mode",{mode:X?"synthetic":"native"})}function _e(){if(re)re=!1,h.root.classList.remove(Ue);if(c.scrollDirection=0,yt(),Bt(R.idle),D.velocity=0,D.reliable=!1,b.emit("velocity:change",D),N.scrollPosition=c.scrollPosition,b.emit("scroll:idle",N),fe)J()}function ne(){if(c.renderPending=!0,Se)Se();else ot(c,E,r.overscan,M,h.content,e.item.template,z,C,_,R,a,H);if(ht(),nt(R.afterScroll,c.scrollPosition,c.scrollDirection),pe?.sync(),c.scrollPosition!==Q){if(Q=c.scrollPosition,vt(),T!==null)clearTimeout(T);T=setTimeout(_e,qe)}else if(!re)yt()}let St=ce?!1:e.scroll?.wheel!==!1;if(ce&&Le)throw ae([]),h.root.remove(),Error("vlist: page() is not compatible with the carousel plugin — document scrolling cannot wrap.");function xt(u){return u({state:c,sizeCache:E,viewport:h.viewport,content:h.content,isX:s,wheelEnabled:St,idleTimeout:qe,...Ee?{scrollTarget:Ee}:{},mainAxisPadding:r.mainAxisPadding,...Le?{wrap:Le,rendered:C,classPrefix:r.classPrefix,oddClass:x,onFold(n){let m=f;if(m._lp!==void 0)m._lp-=n;Q-=n}}:{},onFrame:Xe,onIdle:_e})}if(!ce&&(o||Le))Z=X=xt(o??pt),j=ft;else ze=(ce?wt:l.native)({state:c,viewport:h.viewport,isX:s,wheelEnabled:St,idleTimeout:qe,...Ee?{scrollTarget:Ee}:{},onFrame:Xe,onIdle:_e}),Z=ze,me=ze.commitScroll,We=!ce&&i!=="native";function Ye(u){let m=u.target.closest("[data-index]");if(!m)return null;let I=parseInt(m.getAttribute("data-index"),10);if(Number.isNaN(I))return null;let F=k.get("_layoutToDataIndex"),Y,ie=I;if(F){let oe=F(I);if(oe<0)return null;let be=k.get("_getItemAtLayout"),Ce=k.get("_getItem");Y=be?be(I):Ce?Ce(oe):a?a(oe):v[oe],ie=oe}else Y=a?a(I):v[I];if(Y===void 0)return null;return{item:Y,index:ie}}function Et(u){for(let m=0;m<de.length;m++)de[m](u);let n=Ye(u);if(n)b.emit("item:click",{item:n.item,index:n.index,event:u})}function Lt(u){let n=Ye(u);if(n)b.emit("item:dblclick",{item:n.item,index:n.index,event:u})}function It(u){let n=Ye(u);if(n)b.emit("item:contextmenu",{item:n.item,index:n.index,event:u})}function Tt(u){let n=u.target?.tagName;if((n==="INPUT"||n==="TEXTAREA"||n==="SELECT")&&!((u.ctrlKey||u.metaKey)&&(u.key==="f"||u.key==="F")))return;for(let m=0;m<se.length;m++)se[m](u)}if(h.content.addEventListener("click",Et),h.content.addEventListener("dblclick",Lt),h.content.addEventListener("contextmenu",It),se.length>0)h.root.addEventListener("keydown",Tt);let Ze=null;if(!lt)setTimeout(()=>{if(c.destroyed)return;Ze=new ResizeObserver((n)=>{for(let m of n){let{width:I,height:F}=m.contentRect,Y=s?I:F,ie=s?F:I;if(Math.abs(Y-c.containerSize)<1&&Math.abs(ie-c.crossSize)<1)continue;if(c.containerSize=Y,c.crossSize=ie,c.resizeCapacity(Y,p,r.overscan),X)X.refresh(E.getTotalSize());ne(),Kt(R.resize,I,F),b.emit("resize",{width:I,height:F})}}),Ze.observe(h.viewport)},0);c.resizeCapacity(c.containerSize,p,r.overscan),J(),c.initialized=!0;let Te=null;if(e.defer)Te=requestAnimationFrame(()=>{if(Te=null,!c.destroyed)Ie()});else Ie();if(!ce)Z.attach();let je={get element(){return h.root},get items(){return v},get total(){return ee?ee():v.length},setItems(u){v=[...u],c.totalItems=v.length,E.rebuild(c.totalItems),J(),ne()},appendItems(u){let n=()=>Math.max(0,E.getTotalSize()+r.mainAxisPadding-c.containerSize),m=r.reverse&&c.scrollPosition>=n()-1;if(v.push(...u),c.totalItems=v.length,E.rebuild(c.totalItems),J(),ne(),m)ue(n())},prependItems(u){let n=c.totalItems>0,m=E.getTotalSize();if(v.unshift(...u),c.totalItems=v.length,E.rebuild(c.totalItems),J(),ne(),!r.reverse||!n)return;let I=E.getTotalSize()-m;if(I<=0)return;let F=Math.max(0,E.getTotalSize()+r.mainAxisPadding-c.containerSize);ue(Math.min(c.scrollPosition+I,F))},updateItem(u,n){if(q){if(!q(u,n))return}else{let m=v.findIndex((I)=>I.id===u);if(m===-1)return;v[m]={...v[m],...n}}ne()},insertItem(u,n){if(V)V(u,n??c.totalItems);else{if(n===void 0)v.push(u);else v.splice(n,0,u);c.totalItems=v.length,E.rebuild(c.totalItems),J()}ne()},removeItem(u){if(K){if(K(u)<0)return}else{let n=v.findIndex((m)=>m.id===u);if(n===-1)return;v.splice(n,1),c.totalItems=v.length,E.rebuild(c.totalItems),J()}ne()},removeItems(u){if(K){let F=0;for(let Y of u)if(K(Y)>=0)F++;if(F>0)ne();return F}let n=new Set(u),m=v.length;v=v.filter((F)=>!n.has(F.id));let I=m-v.length;if(I>0)c.totalItems=v.length,E.rebuild(c.totalItems),J(),c.renderPending=!0,Ie();return I},getItemAt(u){if(_.indexMap){let m=k.get("_getLoadedItem");return m?m(u):v[u]}let n=k.get("_getItemAtLayout");if(n){let m=k.get("_dataToLayoutIndex");return n(m?m(u):u)}return a?a(u):v[u]},getIndexById(u){if(xe)return xe(u);return v.findIndex((n)=>n.id===u)},scrollToIndex(u,n="start"){let m=ee?ee():v.length;if(m===0){we={index:u,alignOrOptions:n};return}let I=typeof n==="string"?n:n.align??"start",F=typeof n==="object"?n.behavior:void 0,Y=typeof n==="object"?n.duration:void 0,ie=typeof n==="object"?n.easing:void 0;if($e&&$e(u,I,F,Y,ie)!==!1)return;let oe=Math.max(0,Math.min(u,m-1)),be=E.getOffset(oe),Ce=E.getSize(oe),He=c.containerSize,ln=E.getTotalSize(),Ct=r.mainAxisPadding,sn=Math.max(0,ln+Ct-He),le;if(Ke)le=Ke(oe,E,He,m,I);else{let an=r.startPadding;switch(I){case"center":le=an+be-(He-Ce)/2;break;case"end":le=be+Ce+Ct-He;break;default:le=be}le=Math.max(0,Math.min(le,sn))}if(F==="smooth"&&!fe)Z.smoothScrollTo(le,Y??Mt,j??void 0,ie);else ue(le)},getScrollPosition(){return bt.getPixelEquivalent()},on:b.on.bind(b),off:b.off.bind(b),destroy(){if(c.destroyed)return;if(c.destroyed=!0,re)re=!1,h.root.classList.remove(Ue);if(Te!==null)cancelAnimationFrame(Te),Te=null;if(T!==null)clearTimeout(T),T=null;Z.detach(),pe?.destroy(),Ze?.disconnect(),h.content.removeEventListener("click",Et),h.content.removeEventListener("dblclick",Lt),h.content.removeEventListener("contextmenu",It),h.root.removeEventListener("keydown",Tt);let u=[];ae(u);for(let[,n]of C)n.remove();if(C.clear(),M.clear(),h.root.remove(),b.emit("destroy",void 0),b.clear(),u.length>0)for(let n of u)console.error("vlist: error during destroy:",n)}};for(let[u,n]of k){if(u.startsWith("_"))continue;je[u]=n}return je}nn();function xo(e,t=[]){return qt(e,t,tn)}export{xo as createVList};
|
package/dist/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"3.0
|
|
1
|
+
{"version":"3.1.0-next.2","commit":"0304127","builtAt":"2026-09-27T23:15:44.114Z","released":true}
|