UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

2,612 lines • 80.1 kB
(function() {
	try {
		var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
		e.SENTRY_RELEASE = { id: "3.39.1" };
		var t = new e.Error().stack;
		t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "1f6df595-8a62-422b-aaa1-9c7b9943612c", e._sentryDebugIdIdentifier = "sentry-dbid-1f6df595-8a62-422b-aaa1-9c7b9943612c");
	} catch {}
})();
import { r as e } from "./rolldown-runtime-BOCG9HEF.js";
import { t } from "./react-CM7l092i.js";
import { t as n } from "./jsx-runtime-BGutO_I9.js";
import { t as r } from "./react-dom-DV2t60Bu.js";
//#region ../../node_modules/.pnpm/react-virtuoso@4.18.7_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-virtuoso/dist/index.mjs
var i = n(), a = /* @__PURE__ */ e(t(), 1), o = /* @__PURE__ */ e(r(), 1), s = 0, c = 1, l = 2, u = 4;
function d(e) {
	return () => e;
}
function f(e) {
	e();
}
function p(e, t) {
	return (n) => e(t(n));
}
function m(e, t) {
	return () => e(t);
}
function h(e, t) {
	return (n) => e(t, n);
}
function g(e) {
	return e !== void 0;
}
function _(...e) {
	return () => {
		e.map(f);
	};
}
function v() {}
function y(e, t) {
	return t(e), e;
}
function b(e, t) {
	return t(e);
}
function x(...e) {
	return e;
}
function S(e, t) {
	return e(c, t);
}
function C(e, t) {
	e(s, t);
}
function w(e) {
	e(l);
}
function T(e) {
	return e(u);
}
function E(e, t) {
	return S(e, h(t, s));
}
function D(e, t) {
	let n = e(c, (e) => {
		n(), t(e);
	});
	return n;
}
function O(e) {
	let t, n;
	return (r) => (i) => {
		t = i, n && clearTimeout(n), n = setTimeout(() => {
			r(t);
		}, e);
	};
}
function k(e, t) {
	return e === t;
}
function A(e = k) {
	let t;
	return (n) => (r) => {
		e(t, r) || (t = r, n(r));
	};
}
function j(e) {
	return (t) => (n) => {
		e(n) && t(n);
	};
}
function M(e) {
	return (t) => p(t, e);
}
function ee(e) {
	return (t) => () => {
		t(e);
	};
}
function N(e, ...t) {
	let n = re(...t);
	return ((t, r) => {
		switch (t) {
			case l:
				w(e);
				return;
			case c: return S(e, n(r));
		}
	});
}
function P(e, t) {
	return (n) => (r) => {
		n(t = e(t, r));
	};
}
function te(e) {
	return (t) => (n) => {
		e > 0 ? e-- : t(n);
	};
}
function ne(e) {
	let t = null, n;
	return (r) => (i) => {
		t = i, !n && (n = setTimeout(() => {
			n = void 0, r(t);
		}, e));
	};
}
function F(...e) {
	let t = Array(e.length), n = 0, r = null, i = 2 ** e.length - 1;
	return e.forEach((e, a) => {
		let o = 2 ** a;
		S(e, (e) => {
			let s = n;
			n |= o, t[a] = e, s !== i && n === i && r && (r(), r = null);
		});
	}), (e) => (a) => {
		let o = () => {
			e([a].concat(t));
		};
		n === i ? o() : r = o;
	};
}
function re(...e) {
	return (t) => e.reduceRight(b, t);
}
function ie(e) {
	let t, n, r = () => t == null ? void 0 : t();
	return function(i, a) {
		switch (i) {
			case c: return a ? n === a ? void 0 : (r(), n = a, t = S(e, a), t) : (r(), v);
			case l:
				r(), n = null;
				return;
		}
	};
}
function I(e) {
	let t = e, n = R();
	return ((e, r) => {
		switch (e) {
			case s:
				t = r;
				break;
			case c:
				r(t);
				break;
			case u: return t;
		}
		return n(e, r);
	});
}
function L(e, t) {
	return y(I(t), (t) => E(e, t));
}
function R() {
	let e = [];
	return ((t, n) => {
		switch (t) {
			case s:
				e.slice().forEach((e) => {
					e(n);
				});
				return;
			case l:
				e.splice(0, e.length);
				return;
			case c: return e.push(n), () => {
				let t = e.indexOf(n);
				t > -1 && e.splice(t, 1);
			};
		}
	});
}
function z(e) {
	return y(R(), (t) => E(e, t));
}
function B(e, t = [], { singleton: n } = { singleton: !0 }) {
	return {
		constructor: e,
		dependencies: t,
		id: ae(),
		singleton: n
	};
}
var ae = () => Symbol();
function oe(e) {
	let t = /* @__PURE__ */ new Map(), n = ({ constructor: e, dependencies: r, id: i, singleton: a }) => {
		if (a && t.has(i)) return t.get(i);
		let o = e(r.map((e) => n(e)));
		return a && t.set(i, o), o;
	};
	return n(e);
}
function V(...e) {
	let t = R(), n = Array(e.length), r = 0, i = 2 ** e.length - 1;
	return e.forEach((e, a) => {
		let o = 2 ** a;
		S(e, (e) => {
			n[a] = e, r |= o, r === i && C(t, n);
		});
	}), function(e, a) {
		switch (e) {
			case l:
				w(t);
				return;
			case c: return r === i && a(n), S(t, a);
		}
	};
}
function H(e, t = k) {
	return N(e, A(t));
}
function se(...e) {
	return function(t, n) {
		switch (t) {
			case l: return;
			case c: return _(...e.map((e) => S(e, n)));
		}
	};
}
var U = {
	DEBUG: 0,
	INFO: 1,
	WARN: 2,
	ERROR: 3
}, ce = {
	[U.DEBUG]: "debug",
	[U.ERROR]: "error",
	[U.INFO]: "log",
	[U.WARN]: "warn"
}, le = () => typeof globalThis > "u" ? window : globalThis, W = B(() => {
	let e = I(U.ERROR);
	return {
		log: I((t, n, r = U.INFO) => {
			var i;
			r >= ((i = le().VIRTUOSO_LOG_LEVEL) == null ? T(e) : i) && console[ce[r]]("%creact-virtuoso: %c%s %o", "color: #0253b3; font-weight: bold", "color: initial", t, n);
		}),
		logLevel: e
	};
}, [], { singleton: !0 }), ue = /* @__PURE__ */ new WeakMap();
function de(e) {
	return "self" in e ? e.document.documentElement : e;
}
function fe(e) {
	let t = de(e), n = ue.get(t);
	if (n !== void 0) return n;
	let r = t.ownerDocument.defaultView.getComputedStyle(t).direction === "rtl";
	return ue.set(t, r), r;
}
function pe(e) {
	ue.delete(de(e));
}
function me(e, t) {
	return fe(e) ? -t : t;
}
var he = me;
function ge(e, t) {
	return me(e, t);
}
function _e(e, t, n) {
	return ve(e, t, n).callbackRef;
}
function ve(e, t, n) {
	let r = a.useRef(null), i = (e) => {}, o = a.useMemo(() => typeof ResizeObserver < "u" ? new ResizeObserver((t) => {
		let r = () => {
			let n = t[0].target;
			n.offsetParent !== null && e(n);
		};
		n ? r() : requestAnimationFrame(r);
	}) : null, [e, n]);
	return i = (e) => {
		e && t ? (o == null || o.observe(e), r.current = e) : (r.current && (o == null || o.unobserve(r.current)), r.current = null);
	}, {
		callbackRef: i,
		ref: r
	};
}
function ye(e, t, n, r, i, o, s, c, l) {
	return ve(a.useCallback((n) => {
		let a = be(n.children, t, c ? "offsetWidth" : "offsetHeight", i), l = n.parentElement;
		for (; l.dataset.virtuosoScroller === void 0;) l = l.parentElement;
		let u = l.lastElementChild.dataset.viewportType === "window", d;
		u && (d = l.ownerDocument.defaultView);
		let f = s ? c ? s.scrollWidth : s.scrollHeight : u ? c ? d.document.documentElement.scrollWidth : d.document.documentElement.scrollHeight : c ? l.scrollWidth : l.scrollHeight, p = s ? c ? s.offsetWidth : s.offsetHeight : u ? c ? d.innerWidth : d.innerHeight : c ? l.offsetWidth : l.offsetHeight, m = s ? c ? he(s, s.scrollLeft) : s.scrollTop : u ? c ? he(d, d.scrollX || d.document.documentElement.scrollLeft) : d.scrollY || d.document.documentElement.scrollTop : c ? he(l, l.scrollLeft) : l.scrollTop;
		r({
			scrollHeight: f,
			scrollTop: Math.max(m, 0),
			viewportHeight: p
		}), o == null || o(c ? xe("column-gap", getComputedStyle(n).columnGap, i) : xe("row-gap", getComputedStyle(n).rowGap, i)), a !== null && e(a);
	}, [
		e,
		t,
		i,
		o,
		s,
		r,
		c
	]), n, l);
}
function be(e, t, n, r) {
	let i = e.length;
	if (i === 0) return null;
	let a = [];
	for (let o = 0; o < i; o++) {
		let i = e.item(o);
		if (i.dataset.index === void 0) continue;
		let s = parseInt(i.dataset.index), c = parseFloat(i.dataset.knownSize), l = t(i, n);
		if (l === 0 && r("Zero-sized element, this should not happen", { child: i }, U.ERROR), l === c) continue;
		let u = a[a.length - 1];
		a.length === 0 || u.size !== l || u.endIndex !== s - 1 ? a.push({
			endIndex: s,
			size: l,
			startIndex: s
		}) : a[a.length - 1].endIndex++;
	}
	return a;
}
function xe(e, t, n) {
	return t !== "normal" && (t == null ? void 0 : t.endsWith("px")) !== !0 && n(`${e} was not resolved to pixel value correctly`, t, U.WARN), t === "normal" ? 0 : parseInt(t == null ? "0" : t, 10);
}
function Se(e, t, n) {
	let r = a.useRef(null), i = a.useCallback((n) => {
		if (!(n != null && n.offsetParent)) return;
		let i = n.getBoundingClientRect(), a = i.width, o, c;
		if (t) {
			let e = t.getBoundingClientRect(), n = i.top - e.top;
			c = e.height - Math.max(0, n), o = n + t.scrollTop;
		} else {
			let e = s.current.ownerDocument.defaultView;
			c = e.innerHeight - Math.max(0, i.top), o = i.top + e.scrollY;
		}
		r.current = {
			listHeight: i.height,
			offsetTop: o,
			visibleHeight: c,
			visibleWidth: a
		}, e(r.current);
	}, [e, t]), { callbackRef: o, ref: s } = ve(i, !0, n), c = a.useCallback(() => {
		i(s.current);
	}, [i, s]);
	return a.useEffect(() => {
		var e;
		if (t) {
			t.addEventListener("scroll", c);
			let e = new ResizeObserver(() => {
				requestAnimationFrame(c);
			});
			return e.observe(t), () => {
				t.removeEventListener("scroll", c), e.unobserve(t);
			};
		}
		let n = (e = s.current) == null ? void 0 : e.ownerDocument.defaultView;
		return n == null || n.addEventListener("scroll", c), n == null || n.addEventListener("resize", c), () => {
			n == null || n.removeEventListener("scroll", c), n == null || n.removeEventListener("resize", c);
		};
	}, [
		c,
		t,
		s
	]), o;
}
var G = B(() => {
	let e = R(), t = R(), n = I(0), r = R(), i = I(0), a = R(), o = R(), s = I(0), c = I(0), l = I(0), u = I(0), d = R(), f = R(), p = I(!1), m = I(!1), h = I(!1);
	return E(N(e, M(({ scrollTop: e }) => e)), t), E(N(e, M(({ scrollHeight: e }) => e)), o), E(t, i), {
		deviation: n,
		fixedFooterHeight: l,
		fixedHeaderHeight: c,
		footerHeight: u,
		headerHeight: s,
		horizontalDirection: m,
		scrollBy: f,
		scrollContainerState: e,
		scrollHeight: o,
		scrollingInProgress: p,
		scrollTo: d,
		scrollTop: t,
		skipAnimationFrameInResizeObserver: h,
		smoothScrollTargetReached: r,
		statefulScrollTop: i,
		viewportHeight: a
	};
}, [], { singleton: !0 }), Ce = { lvl: 0 };
function we(e, t) {
	let n = e.length;
	if (n === 0) return [];
	let { index: r, value: i } = t(e[0]), a = [];
	for (let o = 1; o < n; o++) {
		let { index: n, value: s } = t(e[o]);
		a.push({
			end: n - 1,
			start: r,
			value: i
		}), r = n, i = s;
	}
	return a.push({
		end: Infinity,
		start: r,
		value: i
	}), a;
}
function K(e) {
	return e === Ce;
}
function Te(e, t) {
	if (!K(e)) return t === e.k ? e.v : t < e.k ? Te(e.l, t) : Te(e.r, t);
}
function Ee(e, t, n = "k") {
	if (K(e)) return [-Infinity, void 0];
	if (Number(e[n]) === t) return [e.k, e.v];
	if (Number(e[n]) < t) {
		let r = Ee(e.r, t, n);
		return r[0] === -Infinity ? [e.k, e.v] : r;
	}
	return Ee(e.l, t, n);
}
function q(e, t, n) {
	return K(e) ? Ie(t, n, 1) : t === e.k ? J(e, {
		k: t,
		v: n
	}) : t < e.k ? Le(J(e, { l: q(e.l, t, n) })) : Le(J(e, { r: q(e.r, t, n) }));
}
function De() {
	return Ce;
}
function Oe(e, t, n) {
	if (K(e)) return [];
	let r = Ee(e, t)[0];
	return Be(je(e, r, n));
}
function ke(e, t) {
	if (K(e)) return Ce;
	let { k: n, l: r, r: i } = e;
	if (t === n) {
		if (K(r)) return i;
		if (K(i)) return r;
		let [t, n] = Fe(r);
		return Me(J(e, {
			k: t,
			l: Ne(r),
			v: n
		}));
	}
	return Me(t < n ? J(e, { l: ke(r, t) }) : J(e, { r: ke(i, t) }));
}
function Ae(e) {
	return K(e) ? [] : [
		...Ae(e.l),
		{
			k: e.k,
			v: e.v
		},
		...Ae(e.r)
	];
}
function je(e, t, n) {
	if (K(e)) return [];
	let { k: r, l: i, r: a, v: o } = e, s = [];
	return r > t && (s = s.concat(je(i, t, n))), r >= t && r <= n && s.push({
		k: r,
		v: o
	}), r <= n && (s = s.concat(je(a, t, n))), s;
}
function Me(e) {
	let { l: t, lvl: n, r } = e;
	if (r.lvl >= n - 1 && t.lvl >= n - 1) return e;
	if (n > r.lvl + 1) {
		if (Pe(t)) return Re(J(e, { lvl: n - 1 }));
		if (!K(t) && !K(t.r)) return J(t.r, {
			l: J(t, { r: t.r.l }),
			lvl: n,
			r: J(e, {
				l: t.r.r,
				lvl: n - 1
			})
		});
		throw Error("Unexpected empty nodes");
	}
	if (Pe(e)) return ze(J(e, { lvl: n - 1 }));
	if (!K(r) && !K(r.l)) {
		let t = r.l, i = Pe(t) ? r.lvl - 1 : r.lvl;
		return J(t, {
			l: J(e, {
				lvl: n - 1,
				r: t.l
			}),
			lvl: t.lvl + 1,
			r: ze(J(r, {
				l: t.r,
				lvl: i
			}))
		});
	}
	throw Error("Unexpected empty nodes");
}
function J(e, t) {
	return Ie(t.k === void 0 ? e.k : t.k, t.v === void 0 ? e.v : t.v, t.lvl === void 0 ? e.lvl : t.lvl, t.l === void 0 ? e.l : t.l, t.r === void 0 ? e.r : t.r);
}
function Ne(e) {
	return K(e.r) ? e.l : Me(J(e, { r: Ne(e.r) }));
}
function Pe(e) {
	return K(e) || e.lvl > e.r.lvl;
}
function Fe(e) {
	return K(e.r) ? [e.k, e.v] : Fe(e.r);
}
function Ie(e, t, n, r = Ce, i = Ce) {
	return {
		k: e,
		l: r,
		lvl: n,
		r: i,
		v: t
	};
}
function Le(e) {
	return ze(Re(e));
}
function Re(e) {
	let { l: t } = e;
	return !K(t) && t.lvl === e.lvl ? J(t, { r: J(e, { l: t.r }) }) : e;
}
function ze(e) {
	let { lvl: t, r: n } = e;
	return !K(n) && !K(n.r) && n.lvl === t && n.r.lvl === t ? J(n, {
		l: J(e, { r: n.l }),
		lvl: t + 1
	}) : e;
}
function Be(e) {
	return we(e, ({ k: e, v: t }) => ({
		index: e,
		value: t
	}));
}
function Ve(e, t) {
	return !!(e && e.startIndex === t.startIndex && e.endIndex === t.endIndex);
}
function He(e, t) {
	return !!(e && e[0] === t[0] && e[1] === t[1]);
}
var Ue = B(() => ({ recalcInProgress: I(!1) }), [], { singleton: !0 });
function We(e, t, n) {
	return e[Ge(e, t, n)];
}
function Ge(e, t, n, r = 0) {
	let i = e.length - 1;
	for (; r <= i;) {
		let a = Math.floor((r + i) / 2), o = e[a], s = n(o, t);
		if (s === 0) return a;
		if (s === -1) {
			if (i - r < 2) return a - 1;
			i = a - 1;
		} else {
			if (i === r) return a;
			r = a + 1;
		}
	}
	throw Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`);
}
function Ke(e, t, n, r) {
	let i = Ge(e, t, r), a = Ge(e, n, r, i);
	return e.slice(i, a + 1);
}
function qe(e, t) {
	return Math.round(e.getBoundingClientRect()[t]);
}
function Je(e) {
	return !K(e.groupOffsetTree);
}
function Ye({ index: e }, t) {
	return t === e ? 0 : t < e ? -1 : 1;
}
function Xe() {
	return {
		groupIndices: [],
		groupOffsetTree: De(),
		lastIndex: 0,
		lastOffset: 0,
		lastSize: 0,
		offsetTree: [],
		sizeTree: De()
	};
}
function Ze(e, t) {
	let n = K(e) ? 0 : Infinity;
	for (let r of t) {
		let { endIndex: t, size: i, startIndex: a } = r;
		if (n = Math.min(n, a), K(e)) {
			e = q(e, 0, i);
			continue;
		}
		let o = Oe(e, a - 1, t + 1);
		if (o.some(lt(r))) continue;
		let s = !1, c = !1;
		for (let { end: n, start: r, value: a } of o) s ? (t >= r || i === a) && (e = ke(e, r)) : (c = a !== i, s = !0), n > t && t >= r && a !== i && (e = q(e, t + 1, a));
		c && (e = q(e, a, i));
	}
	return [e, n];
}
function Qe(e) {
	return typeof e.groupIndex < "u";
}
function $e({ offset: e }, t) {
	return t === e ? 0 : t < e ? -1 : 1;
}
function et(e, t, n) {
	if (t.length === 0) return 0;
	let { index: r, offset: i, size: a } = We(t, e, Ye), o = e - r, s = a * o + (o - 1) * n + i;
	return s > 0 ? s + n : s;
}
function tt(e, t) {
	if (!Je(t)) return e;
	let n = 0;
	for (; t.groupIndices[n] <= e + n;) n++;
	return e + n;
}
function nt(e, t, n) {
	if (Qe(e)) return t.groupIndices[e.groupIndex] + 1;
	let r = tt(e.index === "LAST" ? n : e.index, t);
	return r = Math.max(0, r, Math.min(n, r)), r;
}
function rt(e, t, n, r = 0) {
	return r > 0 && (t = Math.max(t, We(e, r, Ye).offset)), we(Ke(e, t, n, $e), ct);
}
function it(e, [t, n, r, i]) {
	t.length > 0 && r("received item sizes", t, U.DEBUG);
	let a = e.sizeTree, o = a, s = 0;
	if (n.length > 0 && K(a) && t.length === 2) {
		let e = t[0].size, r = t[1].size;
		o = n.reduce((t, n) => q(q(t, n, e), n + 1, r), o);
	} else [o, s] = Ze(o, t);
	if (o === a) return e;
	let { lastIndex: c, lastOffset: l, lastSize: u, offsetTree: d } = st(e.offsetTree, s, o, i);
	return {
		groupIndices: n,
		groupOffsetTree: n.reduce((e, t) => q(e, t, et(t, d, i)), De()),
		lastIndex: c,
		lastOffset: l,
		lastSize: u,
		offsetTree: d,
		sizeTree: o
	};
}
function at(e) {
	return Ae(e).map(({ k: e, v: t }, n, r) => {
		let i = r[n + 1];
		return {
			endIndex: i === void 0 ? Infinity : i.k - 1,
			size: t,
			startIndex: e
		};
	});
}
function ot(e, t) {
	let n = 0, r = 0;
	for (; n < e;) n += t[r + 1] - t[r] - 1, r++;
	return r - (n === e ? 0 : 1);
}
function st(e, t, n, r) {
	let i = e, a = 0, o = 0, s = 0, c = 0;
	if (t !== 0) {
		c = Ge(i, t - 1, Ye), s = i[c].offset;
		let e = Ee(n, t - 1);
		a = e[0], o = e[1], i.length && i[c].size === Ee(n, t)[1] && --c, i = i.slice(0, c + 1);
	} else i = [];
	for (let { start: e, value: c } of Oe(n, t, Infinity)) {
		let t = e - a, n = t * o + s + t * r;
		i.push({
			index: e,
			offset: n,
			size: c
		}), a = e, s = n, o = c;
	}
	return {
		lastIndex: a,
		lastOffset: s,
		lastSize: o,
		offsetTree: i
	};
}
function ct(e) {
	return {
		index: e.index,
		value: e
	};
}
function lt(e) {
	let { endIndex: t, size: n, startIndex: r } = e;
	return (e) => e.start === r && (e.end === t || e.end === Infinity) && e.value === n;
}
var ut = {
	offsetHeight: "height",
	offsetWidth: "width"
}, dt = B(([{ log: e }, { recalcInProgress: t }]) => {
	let n = R(), r = R(), i = L(r, 0), a = R(), o = R(), s = I(0), c = I([]), l = I(void 0), u = I(void 0), d = I(void 0), f = I(void 0), p = I((e, t) => qe(e, ut[t])), m = I(void 0), h = I(0), g = Xe(), _ = L(N(n, F(c, e, h), P(it, g), A()), g), v = L(N(c, A(), P((e, t) => ({
		current: t,
		prev: e.current
	}), {
		current: [],
		prev: []
	}), M(({ prev: e }) => e)), []);
	E(N(c, j((e) => e.length > 0), F(_, h), M(([e, t, n]) => {
		let r = e.reduce((e, r, i) => q(e, r, et(r, t.offsetTree, n) || i), De());
		return {
			...t,
			groupIndices: e,
			groupOffsetTree: r
		};
	})), _), E(N(r, F(_), j(([e, { lastIndex: t }]) => e < t), M(([e, { lastIndex: t, lastSize: n }]) => [{
		endIndex: t,
		size: n,
		startIndex: e
	}])), n), E(l, u);
	let y = L(N(l, M((e) => e === void 0)), !0);
	E(N(u, j((e) => e !== void 0 && K(T(_).sizeTree)), M((e) => {
		let t = T(d), n = T(c).length > 0;
		return t !== void 0 && t !== 0 ? n ? [{
			endIndex: 0,
			size: t,
			startIndex: 0
		}, {
			endIndex: 1,
			size: e,
			startIndex: 1
		}] : [] : [{
			endIndex: 0,
			size: e,
			startIndex: 0
		}];
	})), n), E(N(f, j((e) => e !== void 0 && e.length > 0 && K(T(_).sizeTree)), M((e) => {
		let t = [], n = e[0], r = 0;
		for (let i = 1; i < e.length; i++) {
			let a = e[i];
			a !== n && (t.push({
				endIndex: i - 1,
				size: n,
				startIndex: r
			}), n = a, r = i);
		}
		return t.push({
			endIndex: e.length - 1,
			size: n,
			startIndex: r
		}), t;
	})), n), E(N(c, F(d, u), j(([, e, t]) => e !== void 0 && t !== void 0), M(([e, t, n]) => {
		let r = [];
		for (let i = 0; i < e.length; i++) {
			let a = e[i], o = e[i + 1];
			r.push({
				startIndex: a,
				endIndex: a,
				size: t
			}), o !== void 0 && r.push({
				startIndex: a + 1,
				endIndex: o - 1,
				size: n
			});
		}
		return r;
	})), n);
	let b = z(N(n, F(_), P(({ sizes: e }, [t, n]) => ({
		changed: n !== e,
		sizes: n
	}), {
		changed: !1,
		sizes: g
	}), M((e) => e.changed)));
	S(N(s, P((e, t) => ({
		diff: e.prev - t,
		prev: t
	}), {
		diff: 0,
		prev: 0
	}), M((e) => e.diff)), (e) => {
		let { groupIndices: n } = T(_);
		if (e > 0) C(t, !0), C(a, e + ot(e, n));
		else if (e < 0) {
			let t = T(v);
			t.length > 0 && (e -= ot(-e, t)), C(o, e);
		}
	}), S(N(s, F(e)), ([e, t]) => {
		e < 0 && t("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value", { firstItemIndex: s }, U.ERROR);
	});
	let x = z(a);
	E(N(a, F(_), M(([e, t]) => {
		let n = t.groupIndices.length > 0, r = [], i = t.lastSize;
		if (n) {
			let n = Te(t.sizeTree, 0), a = 0, o = 0;
			for (; a < e;) {
				let e = t.groupIndices[o], s = t.groupIndices.length === o + 1 ? Infinity : t.groupIndices[o + 1] - e - 1;
				r.push({
					endIndex: e,
					size: n,
					startIndex: e
				}), r.push({
					endIndex: e + 1 + s - 1,
					size: i,
					startIndex: e + 1
				}), o++, a += s + 1;
			}
			let s = Ae(t.sizeTree);
			return a !== e && s.shift(), s.reduce((t, { k: n, v: r }) => {
				let i = t.ranges;
				return t.prevSize !== 0 && (i = [...t.ranges, {
					endIndex: n + e - 1,
					size: t.prevSize,
					startIndex: t.prevIndex
				}]), {
					prevIndex: n + e,
					prevSize: r,
					ranges: i
				};
			}, {
				prevIndex: e,
				prevSize: 0,
				ranges: r
			}).ranges;
		}
		return Ae(t.sizeTree).reduce((t, { k: n, v: r }) => ({
			prevIndex: n + e,
			prevSize: r,
			ranges: [...t.ranges, {
				endIndex: n + e - 1,
				size: t.prevSize,
				startIndex: t.prevIndex
			}]
		}), {
			prevIndex: 0,
			prevSize: i,
			ranges: []
		}).ranges;
	})), n);
	let w = z(N(o, F(_, h), M(([e, { offsetTree: t }, n]) => et(-e, t, n))));
	return E(N(o, F(_, h), M(([e, t, n]) => {
		if (t.groupIndices.length > 0) {
			if (K(t.sizeTree)) return t;
			let r = De(), i = T(v), a = 0, o = 0, s = 0;
			for (; a < -e;) {
				s = i[o];
				let e = i[o + 1] - s - 1;
				o++, a += e + 1;
			}
			if (r = Ae(t.sizeTree).reduce((t, { k: n, v: r }) => q(t, Math.max(0, n + e), r), r), a !== -e) {
				let n = Te(t.sizeTree, s);
				r = q(r, 0, n);
				let i = Ee(t.sizeTree, -e + 1)[1];
				r = q(r, 1, i);
			}
			return {
				...t,
				sizeTree: r,
				...st(t.offsetTree, 0, r, n)
			};
		}
		let r = Ae(t.sizeTree).reduce((t, { k: n, v: r }) => q(t, Math.max(0, n + e), r), De());
		return {
			...t,
			sizeTree: r,
			...st(t.offsetTree, 0, r, n)
		};
	})), _), {
		beforeUnshiftWith: x,
		data: m,
		defaultItemSize: u,
		firstItemIndex: s,
		fixedItemSize: l,
		fixedGroupSize: d,
		gap: h,
		groupIndices: c,
		heightEstimates: f,
		itemSize: p,
		listRefresh: b,
		shiftWith: o,
		shiftWithOffset: w,
		sizeRanges: n,
		sizes: _,
		statefulTotalCount: i,
		totalCount: r,
		trackItemSizes: y,
		unshiftWith: a
	};
}, x(W, Ue), { singleton: !0 });
function ft(e) {
	return e.reduce((e, t) => (e.groupIndices.push(e.totalCount), e.totalCount += t + 1, e), {
		groupIndices: [],
		totalCount: 0
	});
}
var pt = B(([{ groupIndices: e, sizes: t, totalCount: n }, { headerHeight: r, scrollTop: i }]) => {
	let a = R(), o = R(), s = z(N(a, M(ft)));
	return E(N(s, M((e) => e.totalCount)), n), E(N(s, M((e) => e.groupIndices)), e), E(N(V(i, t, r), j(([e, t]) => Je(t)), M(([e, t, n]) => Ee(t.groupOffsetTree, Math.max(e - n, 0), "v")[0]), A(), M((e) => [e])), o), {
		groupCounts: a,
		topItemsIndexes: o
	};
}, x(dt, G)), mt = B(([{ log: e }]) => {
	let t = I(!1), n = z(N(t, j((e) => e), A()));
	return S(t, (t) => {
		t && T(e)("props updated", {}, U.DEBUG);
	}), {
		didMount: n,
		propsReady: t
	};
}, x(W), { singleton: !0 }), ht = typeof document < "u" && "scrollBehavior" in document.documentElement.style;
function gt(e) {
	let t = typeof e == "number" ? { index: e } : e;
	return t.align || (t.align = "start"), (!t.behavior || !ht) && (t.behavior = "auto"), t.offset === void 0 && (t.offset = 0), t;
}
var _t = B(([{ gap: e, listRefresh: t, sizes: n, totalCount: r }, { fixedFooterHeight: i, fixedHeaderHeight: a, footerHeight: o, headerHeight: s, scrollingInProgress: c, scrollTo: l, smoothScrollTargetReached: u, viewportHeight: d }, { log: f }]) => {
	let p = R(), m = R(), h = I(0), g = null, _ = null, v = null;
	function y() {
		g !== null && (g(), g = null), v !== null && (v(), v = null), _ && (clearTimeout(_), _ = null), C(c, !1);
	}
	return E(N(p, F(n, d, r, h, s, o, f), F(e, a, i), M(([[e, n, r, i, a, o, s, l], d, f, h]) => {
		let b = gt(e), { align: x, behavior: w, offset: T } = b, E = i - 1, O = nt(b, n, E), k = et(O, n.offsetTree, d) + o;
		x === "end" ? (k += f + Ee(n.sizeTree, O)[1] - r + h, O === E && (k += s)) : x === "center" ? k += (f + Ee(n.sizeTree, O)[1] - r + h) / 2 : k -= a, T !== void 0 && T !== 0 && (k += T);
		let A = (t) => {
			y(), t ? (l("retrying to scroll to", { location: e }, U.DEBUG), C(p, e)) : (C(m, !0), l("list did not change, scroll successful", {}, U.DEBUG));
		};
		if (y(), w === "smooth") {
			let e = !1;
			v = S(t, (t) => {
				e = e || t;
			}), g = D(u, () => {
				A(e);
			});
		} else g = D(N(t, vt(150)), A);
		return _ = setTimeout(() => {
			y();
		}, 1200), C(c, !0), l("scrolling from index to", {
			behavior: w,
			index: O,
			top: k
		}, U.DEBUG), {
			behavior: w,
			top: k
		};
	})), l), {
		scrollTargetReached: m,
		scrollToIndex: p,
		topListHeight: h
	};
}, x(dt, G, W), { singleton: !0 });
function vt(e) {
	return (t) => {
		let n = setTimeout(() => {
			t(!1);
		}, e);
		return (e) => {
			e && (t(!0), clearTimeout(n));
		};
	};
}
function yt(e, t) {
	e === 0 ? t() : requestAnimationFrame(() => {
		yt(e - 1, t);
	});
}
function bt(e, t) {
	let n = t - 1;
	return typeof e == "number" ? e : e.index === "LAST" ? n : e.index;
}
var xt = B(([{ defaultItemSize: e, listRefresh: t, sizes: n }, { scrollTop: r }, { scrollTargetReached: i, scrollToIndex: a }, { didMount: o }]) => {
	let s = I(!0), c = I(0), l = I(!0);
	return E(N(o, F(c), j(([e, t]) => t !== 0), ee(!1)), s), E(N(o, F(c), j(([e, t]) => t !== 0), ee(!1)), l), S(N(V(t, o), F(s, n, e, l), j(([[, e], t, { sizeTree: n }, r, i]) => e && (!K(n) || g(r)) && !t && !i), F(c)), ([, e]) => {
		D(i, () => {
			C(l, !0);
		}), yt(4, () => {
			D(r, () => {
				C(s, !0);
			}), C(a, e);
		});
	}), {
		initialItemFinalLocationReached: l,
		initialTopMostItemIndex: c,
		scrolledToInitialItem: s
	};
}, x(dt, G, _t, mt), { singleton: !0 });
function St(e, t) {
	return Math.abs(e - t) < 1.01;
}
var Ct = "up", wt = "down", Tt = "none", Et = {
	atBottom: !1,
	notAtBottomBecause: "NOT_SHOWING_LAST_ITEM",
	state: {
		offsetBottom: 0,
		scrollHeight: 0,
		scrollTop: 0,
		viewportHeight: 0
	}
}, Dt = 0, Ot = B(([{ footerHeight: e, headerHeight: t, scrollBy: n, scrollContainerState: r, scrollTop: i, viewportHeight: a }]) => {
	let o = I(!1), s = I(!0), c = R(), l = R(), u = I(4), d = I(Dt), f = L(N(se(N(H(i), te(1), ee(!0)), N(H(i), te(1), ee(!1), O(100))), A()), !1), p = L(N(se(N(n, ee(!0)), N(n, ee(!1), O(200))), A()), !1);
	E(N(V(H(i), H(d)), M(([e, t]) => e <= t), A()), s), E(N(s, ne(50)), l);
	let m = z(N(V(r, H(a), H(t), H(e), H(u)), P((e, [{ scrollHeight: t, scrollTop: n }, r, i, a, o]) => {
		let s = n + r - t > -o, c = {
			scrollHeight: t,
			scrollTop: n,
			viewportHeight: r
		};
		if (s) {
			let t, r;
			return n > e.state.scrollTop ? (t = "SCROLLED_DOWN", r = e.state.scrollTop - n) : (t = "SIZE_DECREASED", r = e.state.scrollTop - n || e.scrollTopDelta), {
				atBottom: !0,
				atBottomBecause: t,
				scrollTopDelta: r,
				state: c
			};
		}
		let l;
		return l = c.scrollHeight > e.state.scrollHeight ? "SIZE_INCREASED" : r < e.state.viewportHeight ? "VIEWPORT_HEIGHT_DECREASING" : n < e.state.scrollTop ? "SCROLLING_UPWARDS" : "NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM", {
			atBottom: !1,
			notAtBottomBecause: l,
			state: c
		};
	}, Et), A((e, t) => e !== void 0 && e.atBottom === t.atBottom))), h = L(N(r, P((e, { scrollHeight: t, scrollTop: n, viewportHeight: r }) => {
		if (!St(e.scrollHeight, t)) {
			let i = t - (n + r) < 1;
			return e.scrollTop !== n && i ? {
				changed: !0,
				jump: e.scrollTop - n,
				scrollHeight: t,
				scrollTop: n
			} : {
				changed: !0,
				jump: 0,
				scrollHeight: t,
				scrollTop: n
			};
		}
		return {
			changed: !1,
			jump: 0,
			scrollHeight: t,
			scrollTop: n
		};
	}, {
		changed: !1,
		jump: 0,
		scrollHeight: 0,
		scrollTop: 0
	}), j((e) => e.changed), M((e) => e.jump)), 0);
	E(N(m, M((e) => e.atBottom)), o), E(N(o, ne(50)), c);
	let g = I(wt);
	E(N(r, M(({ scrollTop: e }) => e), A(), P((e, t) => T(p) ? {
		direction: e.direction,
		prevScrollTop: t
	} : {
		direction: t < e.prevScrollTop ? Ct : wt,
		prevScrollTop: t
	}, {
		direction: wt,
		prevScrollTop: 0
	}), M((e) => e.direction)), g), E(N(r, ne(50), ee(Tt)), g);
	let _ = I(0);
	return E(N(f, j((e) => !e), ee(0)), _), E(N(i, ne(100), F(f), j(([e, t]) => t), P(([e, t], [n]) => [t, n], [0, 0]), M(([e, t]) => t - e)), _), {
		atBottomState: m,
		atBottomStateChange: c,
		atBottomThreshold: u,
		atTopStateChange: l,
		atTopThreshold: d,
		isAtBottom: o,
		isAtTop: s,
		isScrolling: f,
		lastJumpDueToItemResize: h,
		scrollDirection: g,
		scrollVelocity: _
	};
}, x(G)), kt = "top", At = "bottom", jt = "none";
function Mt(e, t, n) {
	return typeof e == "number" ? n === Ct && t === kt || n === wt && t === At ? e : 0 : n === Ct ? t === kt ? e.main : e.reverse : t === At ? e.main : e.reverse;
}
function Nt(e, t) {
	var n;
	return typeof e == "number" ? e : (n = e[t]) == null ? 0 : n;
}
var Pt = B(([{ deviation: e, fixedHeaderHeight: t, headerHeight: n, scrollTop: r, viewportHeight: i }]) => {
	let a = R(), o = I(0), s = I(0), c = I(0);
	return {
		increaseViewportBy: s,
		listBoundary: a,
		overscan: c,
		topListHeight: o,
		visibleRange: L(N(V(H(r), H(i), H(n), H(a, He), H(c), H(o), H(t), H(e), H(s)), M(([e, t, n, [r, i], a, o, s, c, l]) => {
			let u = e - c, d = o + s, f = Math.max(n - u, 0), p = jt, m = Nt(l, kt), h = Nt(l, At);
			return r -= c, r += n + s, i += n + s, i -= c, r > e + d - m && (p = Ct), i < e - f + t + h && (p = wt), p === jt ? null : [Math.max(u - n - Mt(a, kt, p) - m, 0), u - f - s + t + Mt(a, At, p) + h];
		}), j((e) => e !== null), A(He)), [0, 0])
	};
}, x(G), { singleton: !0 });
function Ft(e, t, n) {
	if (Je(t)) {
		let r = tt(e, t);
		return [{
			index: Ee(t.groupOffsetTree, r)[0],
			offset: 0,
			size: 0
		}, {
			data: n == null ? void 0 : n[0],
			index: r,
			offset: 0,
			size: 0
		}];
	}
	return [{
		data: n == null ? void 0 : n[0],
		index: e,
		offset: 0,
		size: 0
	}];
}
var It = {
	bottom: 0,
	firstItemIndex: 0,
	items: [],
	offsetBottom: 0,
	offsetTop: 0,
	top: 0,
	topItems: [],
	topListHeight: 0,
	totalCount: 0
};
function Lt(e, t, n, r, i, a) {
	let { lastIndex: o, lastOffset: s, lastSize: c } = i, l = 0, u = 0;
	if (e.length > 0) {
		l = e[0].offset;
		let t = e[e.length - 1];
		u = t.offset + t.size;
	}
	let d = n - o, f = s + d * c + (d - 1) * r, p = l, m = f - u;
	return {
		bottom: u,
		firstItemIndex: a,
		items: zt(e, i, a),
		offsetBottom: m,
		offsetTop: l,
		top: p,
		topItems: zt(t, i, a),
		topListHeight: t.reduce((e, t) => t.size + e, 0),
		totalCount: n
	};
}
function Rt(e, t, n, r, i, a) {
	let o = 0;
	if (n.groupIndices.length > 0) for (let t of n.groupIndices) {
		if (t - o >= e) break;
		o++;
	}
	let s = e + o, c = bt(t, s);
	return Lt(Array.from({ length: s }).map((e, t) => ({
		data: a[t + c],
		index: t + c,
		offset: 0,
		size: 0
	})), [], s, i, n, r);
}
function zt(e, t, n) {
	if (e.length === 0) return [];
	if (!Je(t)) return e.map((e) => ({
		...e,
		index: e.index + n,
		originalIndex: e.index
	}));
	let r = e[0].index, i = e[e.length - 1].index, a = [], o = Oe(t.groupOffsetTree, r, i), s, c = 0;
	for (let r of e) {
		(!s || s.end < r.index) && (s = o.shift(), c = t.groupIndices.indexOf(s.start));
		let e;
		e = r.index === s.start ? {
			index: c,
			type: "group"
		} : {
			groupIndex: c,
			index: r.index - (c + 1) + n
		}, a.push({
			...e,
			data: r.data,
			offset: r.offset,
			originalIndex: r.index,
			size: r.size
		});
	}
	return a;
}
function Bt(e, t) {
	var n;
	return e === void 0 ? 0 : typeof e == "number" ? e : (n = e[t]) == null ? 0 : n;
}
var Vt = B(([{ data: e, firstItemIndex: t, gap: n, sizes: r, totalCount: i }, a, { listBoundary: o, topListHeight: s, visibleRange: c }, { initialTopMostItemIndex: l, scrolledToInitialItem: u }, { topListHeight: d }, f, { didMount: p }, { recalcInProgress: m }]) => {
	let h = I([]), _ = I(0), v = R(), b = I(0);
	E(a.topItemsIndexes, h);
	let x = L(N(V(p, m, H(c, He), H(i), H(r), H(l), u, H(h), H(t), H(n), H(b), e), j(([e, t, , n, , , , , , , , r]) => {
		let i = r !== void 0 && r.length !== n;
		return e && !t && !i;
	}), M(([, , [e, t], n, r, i, a, o, s, c, l, u]) => {
		let d = r, { offsetTree: f, sizeTree: p } = d, m = T(_);
		if (n === 0) return {
			...It,
			totalCount: n
		};
		if (e === 0 && t === 0) return m === 0 ? {
			...It,
			totalCount: n
		} : Rt(m, i, r, s, c, u || []);
		if (K(p)) return m > 0 ? null : Lt(Ft(bt(i, n), d, u), [], n, c, d, s);
		let h = [];
		if (o.length > 0) {
			let e = o[0], t = o[o.length - 1], n = 0;
			for (let r of Oe(p, e, t)) {
				let i = r.value, a = Math.max(r.start, e), o = Math.min(r.end, t);
				for (let e = a; e <= o; e++) h.push({
					data: u == null ? void 0 : u[e],
					index: e,
					offset: n,
					size: i
				}), n += i;
			}
		}
		if (!a) return Lt([], h, n, c, d, s);
		let g = o.length > 0 ? o[o.length - 1] + 1 : 0, v = rt(f, e, t, g);
		if (v.length === 0) return null;
		let b = n - 1, x = y([], (n) => {
			for (let r of v) {
				let i = r.value, a = i.offset, o = r.start, s = i.size;
				if (i.offset < e) {
					o += Math.floor((e - i.offset + c) / (s + c));
					let t = o - r.start;
					a += t * s + t * c;
				}
				o < g && (a += (g - o) * s, o = g);
				let l = Math.min(r.end, b);
				for (let e = o; e <= l && !(a >= t); e++) n.push({
					data: u == null ? void 0 : u[e],
					index: e,
					offset: a,
					size: s
				}), a += s + c;
			}
		}), S = Bt(l, kt), C = Bt(l, At);
		if (x.length > 0 && (S > 0 || C > 0)) {
			let e = x[0], t = x[x.length - 1];
			if (S > 0 && e.index > g) {
				let t = Math.min(S, e.index - g), n = [], r = e.offset;
				for (let i = e.index - 1; i >= e.index - t; i--) {
					var w, E;
					let t = (w = (E = Oe(p, i, i)[0]) == null ? void 0 : E.value) == null ? e.size : w;
					r -= t + c, n.unshift({
						data: u == null ? void 0 : u[i],
						index: i,
						offset: r,
						size: t
					});
				}
				x.unshift(...n);
			}
			if (C > 0 && t.index < b) {
				let e = Math.min(C, b - t.index), n = t.offset + t.size + c;
				for (let r = t.index + 1; r <= t.index + e; r++) {
					var D, O;
					let e = (D = (O = Oe(p, r, r)[0]) == null ? void 0 : O.value) == null ? t.size : D;
					x.push({
						data: u == null ? void 0 : u[r],
						index: r,
						offset: n,
						size: e
					}), n += e + c;
				}
			}
		}
		return Lt(x, h, n, c, d, s);
	}), j((e) => e !== null), A()), It);
	E(N(e, j(g), M((e) => e == null ? void 0 : e.length)), i), E(N(x, M((e) => e.topListHeight)), d), E(d, s), E(N(x, M((e) => [e.top, e.bottom])), o), E(N(x, M((e) => e.items)), v);
	let S = z(N(x, j(({ items: e }) => e.length > 0), F(i, e), j(([{ items: e }, t]) => e[e.length - 1].originalIndex === t - 1), M(([, e, t]) => [e - 1, t]), A(He), M(([e]) => e))), C = z(N(x, ne(200), j(({ items: e, topItems: t }) => e.length > 0 && e[0].originalIndex === t.length), M(({ items: e }) => e[0].index), A()));
	return {
		endReached: S,
		initialItemCount: _,
		itemsRendered: v,
		listState: x,
		minOverscanItemCount: b,
		rangeChanged: z(N(x, j(({ items: e }) => e.length > 0), M(({ items: e }) => {
			let t = 0, n = e.length - 1;
			for (; e[t].type === "group" && t < n;) t++;
			for (; e[n].type === "group" && n > t;) n--;
			return {
				endIndex: e[n].index,
				startIndex: e[t].index
			};
		}), A(Ve))),
		startReached: C,
		topItemsIndexes: h,
		...f
	};
}, x(dt, pt, Pt, xt, _t, Ot, mt, Ue), { singleton: !0 }), Ht = B(([{ fixedFooterHeight: e, fixedHeaderHeight: t, footerHeight: n, headerHeight: r }, { listState: i }]) => {
	let a = R(), o = L(N(V(n, e, r, t, i), M(([e, t, n, r, i]) => e + t + n + r + i.offsetBottom + i.bottom)), 0);
	return E(H(o), a), {
		totalListHeight: o,
		totalListHeightChanged: a
	};
}, x(G, Vt), { singleton: !0 }), Ut = B(([{ viewportHeight: e }, { totalListHeight: t }]) => {
	let n = I(!1);
	return {
		alignToBottom: n,
		paddingTopAddition: L(N(V(n, e, t), j(([e]) => e), M(([, e, t]) => Math.max(0, e - t)), ne(0), A()), 0)
	};
}, x(G, Ht), { singleton: !0 }), Wt = B(() => ({ context: I(null) })), Gt = ({ itemBottom: e, itemTop: t, locationParams: { align: n, behavior: r, ...i }, viewportBottom: a, viewportTop: o }) => t < o ? {
	...i,
	align: n == null ? "start" : n,
	...r === void 0 ? {} : { behavior: r }
} : e > a ? {
	...i,
	align: n == null ? "end" : n,
	...r === void 0 ? {} : { behavior: r }
} : null, Kt = B(([{ gap: e, sizes: t, totalCount: n }, { fixedFooterHeight: r, fixedHeaderHeight: i, headerHeight: a, scrollingInProgress: o, scrollTop: s, viewportHeight: c }, { scrollToIndex: l }]) => {
	let u = R();
	return E(N(u, F(t, c, n, a, i, r, s), F(e), M(([[e, t, n, r, i, a, s, c], l]) => {
		let { calculateViewLocation: u = Gt, done: d, ...f } = e, p = nt(e, t, r - 1), m = et(p, t.offsetTree, l) + i + a, h = m + Ee(t.sizeTree, p)[1], g = c + a, _ = u({
			itemBottom: h,
			itemTop: m,
			locationParams: f,
			viewportBottom: c + n - s,
			viewportTop: g
		});
		return _ === null ? d == null || d() : d && D(N(o, j((e) => !e), te(T(o) ? 1 : 2)), d), _;
	}), j((e) => e !== null)), l), { scrollIntoView: u };
}, x(dt, G, _t, Vt, W), { singleton: !0 });
function qt(e) {
	return e === !1 ? !1 : e === "smooth" ? "smooth" : "auto";
}
var Jt = (e, t) => typeof e == "function" ? qt(e(t)) : t && qt(e), Yt = B(([{ listRefresh: e, totalCount: t, fixedItemSize: n, data: r }, { atBottomState: i, isAtBottom: a }, { scrollToIndex: o }, { scrolledToInitialItem: s }, { didMount: c, propsReady: l }, { log: u }, { scrollingInProgress: d }, { context: f }, { scrollIntoView: p }]) => {
	let m = I(!1), h = R(), g = null;
	function _(e) {
		C(o, {
			align: "end",
			behavior: e,
			index: "LAST"
		});
	}
	S(N(V(N(H(t), te(1)), c), F(H(m), a, s, d), M(([[e, t], n, r, i, a]) => {
		let o = t && i, s = "auto";
		return o && (s = Jt(n, r || a), o = o && s !== !1), {
			followOutputBehavior: s,
			shouldFollow: o,
			totalCount: e
		};
	}), j(({ shouldFollow: e }) => e)), ({ followOutputBehavior: t, totalCount: r }) => {
		g !== null && (g(), g = null), T(n) === void 0 ? g = D(e, () => {
			T(u)("following output to ", { totalCount: r }, U.DEBUG), _(t), g = null;
		}) : requestAnimationFrame(() => {
			T(u)("following output to ", { totalCount: r }, U.DEBUG), _(t);
		});
	});
	function v(e) {
		let t = D(i, (t) => {
			e && !t.atBottom && t.notAtBottomBecause === "SIZE_INCREASED" && g === null && (T(u)("scrolling to bottom due to increased size", {}, U.DEBUG), _("auto"));
		});
		setTimeout(t, 100);
	}
	S(N(V(H(m), t, l), j(([e, , t]) => e !== !1 && t), P(({ value: e }, [, t]) => ({
		refreshed: e === t,
		value: t
	}), {
		refreshed: !1,
		value: 0
	}), j(({ refreshed: e }) => e), F(m, t)), ([, e]) => {
		T(s) && v(e !== !1);
	}), S(h, () => {
		v(T(m) !== !1);
	}), S(V(H(m), i), ([e, t]) => {
		e !== !1 && !t.atBottom && t.notAtBottomBecause === "VIEWPORT_HEIGHT_DECREASING" && _("auto");
	});
	let y = I(null), b = R();
	return E(se(N(H(r), M((e) => {
		var t;
		return (t = e == null ? void 0 : e.length) == null ? 0 : t;
	})), N(H(t))), b), S(N(V(N(b, te(1)), c), F(H(y), s, d, f), M(([[e, t], n, r, i, a]) => t && r && (n == null ? void 0 : n({
		context: a,
		totalCount: e,
		scrollingInProgress: i
	}))), j((e) => !!e), ne(0)), (t) => {
		g !== null && (g(), g = null), T(n) === void 0 ? g = D(e, () => {
			T(u)("scrolling into view", {}), C(p, t), g = null;
		}) : requestAnimationFrame(() => {
			T(u)("scrolling into view", {}), C(p, t);
		});
	}), {
		autoscrollToBottom: h,
		followOutput: m,
		scrollIntoViewOnChange: y
	};
}, x(dt, Ot, _t, xt, mt, W, G, Wt, Kt)), Xt = B(([{ data: e, firstItemIndex: t, gap: n, sizes: r }, { initialTopMostItemIndex: i }, { initialItemCount: a, listState: o }, { didMount: s }]) => (E(N(s, F(a), j(([, e]) => e !== 0), F(i, r, t, n, e), M(([[, e], t, n, r, i, a = []]) => Rt(e, t, n, r, i, a))), o), {}), x(dt, xt, Vt, mt), { singleton: !0 }), Zt = B(([{ didMount: e }, { scrollTo: t }, { listState: n }]) => {
	let r = I(0);
	return S(N(e, F(r), j(([, e]) => e !== 0), M(([, e]) => ({ top: e }))), (e) => {
		D(N(n, te(1), j((e) => e.items.length > 1)), () => {
			requestAnimationFrame(() => {
				C(t, e);
			});
		});
	}), { initialScrollTop: r };
}, x(mt, G, Vt), { singleton: !0 }), Qt = B(([{ scrollVelocity: e }]) => {
	let t = I(!1), n = R(), r = I(!1);
	return E(N(e, F(r, t, n), j(([e, t]) => t !== !1 && t !== void 0), M(([e, t, n, r]) => {
		let { enter: i, exit: a } = t;
		if (n) {
			if (a(e, r)) return !1;
		} else if (i(e, r)) return !0;
		return n;
	}), A()), t), S(N(V(t, e, n), F(r)), ([[e, t, n], r]) => {
		e && r !== !1 && r !== void 0 && r.change && r.change(t, n);
	}), {
		isSeeking: t,
		scrollSeekConfiguration: r,
		scrollSeekRangeChanged: n,
		scrollVelocity: e
	};
}, x(Ot), { singleton: !0 }), $t = B(([{ scrollContainerState: e, scrollTo: t }]) => {
	let n = R(), r = R(), i = R(), a = I(!1), o = I(void 0);
	return E(N(V(n, r), M(([{ scrollTop: e, viewportHeight: t }, { offsetTop: n, listHeight: r }]) => ({
		scrollHeight: r,
		scrollTop: Math.max(0, e - n),
		viewportHeight: t
	}))), e), E(N(t, F(r), M(([e, { offsetTop: t }]) => ({
		...e,
		top: e.top + t
	}))), i), {
		customScrollParent: o,
		useWindowScroll: a,
		windowScrollContainerState: n,
		windowScrollTo: i,
		windowViewportRect: r
	};
}, x(G)), en = B(([{ sizeRanges: e, sizes: t }, { headerHeight: n, scrollTop: r }, { initialTopMostItemIndex: i }, { didMount: a }, { useWindowScroll: o, windowScrollContainerState: s, windowViewportRect: c }]) => {
	let l = R(), u = I(void 0), d = I(null), f = I(null);
	return E(s, d), E(c, f), S(N(l, F(t, r, o, d, f, n)), ([e, t, n, r, i, a, o]) => {
		let s = at(t.sizeTree);
		r && i !== null && a !== null && (n = i.scrollTop - a.offsetTop), n -= o, e({
			ranges: s,
			scrollTop: n
		});
	}), E(N(u, j(g), M(tn)), i), E(N(a, F(u), j(([, e]) => e !== void 0), A(), M(([, e]) => e.ranges)), e), {
		getState: l,
		restoreStateFrom: u
	};
}, x(dt, G, xt, mt, $t));
function tn(e) {
	return {
		align: "start",
		index: 0,
		offset: e.scrollTop
	};
}
var nn = B(([{ topItemsIndexes: e }]) => {
	let t = I(0);
	return E(N(t, j((e) => e >= 0), M((e) => Array.from({ length: e }).map((e, t) => t))), e), { topItemCount: t };
}, x(Vt));
function rn(e) {
	let t = !1, n;
	return (() => (t || (t = !0, n = e()), n));
}
var an = rn(() => /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.test(navigator.userAgent)), on = B(([{ data: e, defaultItemSize: t, firstItemIndex: n, fixedItemSize: r, fixedGroupSize: i, gap: a, groupIndices: o, heightEstimates: s, itemSize: c, sizeRanges: l, sizes: u, statefulTotalCount: d, totalCount: f, trackItemSizes: p }, { initialItemFinalLocationReached: m, initialTopMostItemIndex: h, scrolledToInitialItem: g }, _, v, y, b, { scrollToIndex: x }, S, { topItemCount: C }, { groupCounts: w }, T]) => {
	let { listState: D, minOverscanItemCount: O, topItemsIndexes: k, rangeChanged: A, ...j } = b;
	return E(A, T.scrollSeekRangeChanged), E(N(T.windowViewportRect, M((e) => e.visibleHeight)), _.viewportHeight), {
		data: e,
		defaultItemHeight: t,
		firstItemIndex: n,
		fixedItemHeight: r,
		fixedGroupHeight: i,
		gap: a,
		groupCounts: w,
		heightEstimates: s,
		initialItemFinalLocationReached: m,
		initialTopMostItemIndex: h,
		scrolledToInitialItem: g,
		sizeRanges: l,
		topItemCount: C,
		topItemsIndexes: k,
		totalCount: f,
		...y,
		groupIndices: o,
		itemSize: c,
		listState: D,
		minOverscanItemCount: O,
		scrollToIndex: x,
		statefulTotalCount: d,
		trackItemSizes: p,
		rangeChanged: A,
		...j,
		...T,
		..._,
		sizes: u,
		...v
	};
}, x(dt, xt, G, en, Yt, Vt, _t, B(([{ deviation: e, scrollBy: t, scrollingInProgress: n, scrollTop: r }, { isAtBottom: i, isScrolling: a, lastJumpDueToItemResize: o, scrollDirection: s }, { listState: c }, { beforeUnshiftWith: l, gap: u, shiftWithOffset: d, sizes: f }, { log: p }, { recalcInProgress: m }]) => {
	let h = z(N(c, F(o), P(([, e, t, n], [{ bottom: r, items: i, offsetBottom: a, totalCount: o }, s]) => {
		let c = r + a, l = 0;
		return t === o && e.length > 0 && i.length > 0 && (i[0].originalIndex === 0 && e[0].originalIndex === 0 || (l = c - n, l !== 0 && (l += s))), [
			l,
			i,
			o,
			c
		];
	}, [
		0,
		[],
		0,
		0
	]), j(([e]) => e !== 0), F(r, s, n, i, p, m), j(([, e, t, n, , , r]) => !r && !n && e !== 0 && t === Ct), M(([[e], , , , , t]) => (t("Upward scrolling compensation", { amount: e }, U.DEBUG), e))));
	function g(n) {
		n > 0 ? (C(t, {
			behavior: "auto",
			top: -n
		}), C(e, 0)) : (C(e, 0), C(t, {
			behavior: "auto",
			top: -n
		}));
	}
	return S(N(h, F(e, a)), ([t, n, r]) => {
		r && an() ? C(e, n - t) : g(-t);
	}), S(N(V(L(a, !1), e, m), j(([e, t, n]) => !e && !n && t !== 0), M(([e, t]) => t), ne(1)), g), E(N(d, M((e) => ({ top: -e }))), t), S(N(l, F(f, u), M(([e, { groupIndices: t, lastSize: n, sizeTree: r }, i]) => {
		function a(e) {
			return e * (n + i);
		}
		if (t.length === 0) return a(e);
		let o = 0, s = Te(r, 0), c = 0, l = 0;
		for (; c < e;) {
			c++, o += s;
			let n = t.length === l + 1 ? Infinity : t[l + 1] - t[l] - 1;
			c + n > e && (o -= s, n = e - c + 1), c += n, o += a(n), l++;
		}
		return o;
	})), (n) => {
		C(e, n), requestAnimationFrame(() => {
			C(t, { top: n }), requestAnimationFrame(() => {
				C(e, 0), C(m, !1);
			});
		});
	}), { deviation: e };
}, x(G, Ot, Vt, dt, W, Ue)), nn, pt, B(([e, t, n, r, i, a, o, s, c, l, u]) => ({
	...e,
	...t,
	...n,
	...r,
	...i,
	...a,
	...o,
	...s,
	...c,
	...l,
	...u
}), x(Pt, Xt, mt, Qt, Ht, Zt, Ut, $t, Kt, W, Wt))));
function sn(e, t) {
	let n = {}, r = {}, i = 0, a = e.length;
	for (; i < a;) r[e[i]] = 1, i += 1;
	for (let e in t) Object.hasOwn(r, e) || (n[e] = t[e]);
	return n;
}
var cn = typeof document < "u" ? a.useLayoutEffect : a.useEffect;
function ln(e, t, n) {
	let r = Object.keys(t.required || {}), o = Object.keys(t.optional || {}), s = Object.keys(t.methods || {}), c = Object.keys(t.events || {}), l = a.createContext({});
	function u(e, n) {
		e.propsReady !== void 0 && C(e.propsReady, !1);
		for (let i of r) {
			let r = e[t.required[i]];
			C(r, n[i]);
		}
		for (let r of o) if (r in n) {
			let i = e[t.optional[r]];
			C(i, n[r]);
		}
		e.propsReady !== void 0 && C(e.propsReady, !0);
	}
	function f(e) {
		return s.reduce((n, r) => (n[r] = (n) => {
			let i = e[t.methods[r]];
			C(i, n);
		}, n), {});
	}
	function p(e) {
		return c.reduce((n, r) => (n[r] = ie(e[t.events[r]]), n), {});
	}
	return {
		Component: a.forwardRef(function(t, s) {
			let { children: h, ...g } = t, [_] = a.useState(() => y(oe(e), (e) => {
				u(e, g);
			})), [v] = a.useState(m(p, _));
			cn(() => {
				for (let e of c) e in g && S(v[e], g[e]);
				return () => {
					Object.values(v).map(w);
				};
			}, [
				g,
				v,
				_
			]), cn(() => {
				u(_, g);
			}), a.useImperativeHandle(s, d(f(_)));
			let b = n;
			return /* @__PURE__ */ (0, i.jsx)(l.Provider, {
				value: _,
				children: n === void 0 ? h : /* @__PURE__ */ (0, i.jsx)(b, {
					...sn([
						...r,
						...o,
						...c
					], g),
					children: h
				})
			});
		}),
		useEmitter: (e, t) => {
			let n = a.useContext(l)[e];
			cn(() => S(n, t), [t, n]);
		},
		useEmitterValue: (e) => {
			let t = a.useContext(l)[e], n = a.useCallback((e) => S(t, e), [t]);
			return a.useSyncExternalStore(n, () => T(t), () => T(t));
		},
		usePublisher: (e) => {
			let t = a.useContext(l);
			return a.useCallback((n) => {
				C(t[e], n);
			}, [t, e]);
		}
	};
}
var un = a.createContext(void 0), dn = a.createContext(void 0), fn = "-webkit-sticky", pn = "sticky", mn = rn(() => {
	if (typeof document > "u") return pn;
	let e = document.createElement("div");
	return e.style.position = fn, e.style.position === fn ? fn : pn;
}), hn = typeof document < "u" ? a.useLayoutEffect : a.useEffect;
function gn(e) {
	return "self" in e;
}
function _n(e) {
	return "body" in e;
}
function vn(e, t, n, r = v, i, s) {
	let c = a.useRef(null), l = a.useRef(null), u = a.useRef(null), d = a.useCallback((n) => {
		let r, i, a, c = n.target;
		if (_n(c) || gn(c)) {
			let e = gn(c) ? c : c.defaultView;
			a = s === !0 ? he(e, e.scrollX) : e.scrollY, r = s === !0 ? e.document.documentElement.scrollWidth : e.document.documentElement.scrollHeight, i = s === !0 ? e.innerWidth : e.innerHeight;
		} else a = s === !0 ? he(c, c.scrollLeft) : c.scrollTop, r = s === !0 ? c.scrollWidth : c.scrollHeight, i = s === !0 ? c.offsetWidth : c.offsetHeight;
		let d = () => {
			e({
				scrollHeight: r,
				scrollTop: Math.max(a, 0),
				viewportHeight: i
			});
		};
		n.suppressFlushSync === !0 ? d() : o.flushSync(d), l.current !== null && (a === l.current || a <= 0 || a === r - i) && (l.current = null, t(!0), u.current && (clearTimeout(u.current), u.current = null));
	}, [
		e,
		t,
		s
	]);
	a.useEffect(() => {
		let e = i || c.current;
		return pe(e), r(i || c.current), d({
			suppressFlushSync: !0,
			target: e
		}), e.addEventListener("scroll", d, { passive: !0 }), () => {
			pe(e), r(null), e.removeEventListener("scroll", d);
		};
	}, [
		c,
		d,
		n,
		r,
		i
	]);
	function f(n) {
		let r = c.current;
		if (!r || (s === !0 ? "offsetWidth" in r && r.offsetWidth === 0 : "offsetHeight" in r && r.offsetHeight === 0)) return;
		let i = n.behavior === "smooth", a, o, d;
		gn(r) ? (o = Math.max(qe(r.document.documentElement, s === !0 ? "width" : "height"), s === !0 ? r.document.documentElement.scrollWidth : r.document.documentElement.scrollHeight), a = s === !0 ? r.innerWidth : r.innerHeight, d = s === !0 ? he(r, r.scrollX) : r.scrollY) : (o = r[s === !0 ? "scrollWidth" : "scrollHeight"], a = qe(r, s === !0 ? "width" : "height"), d = s === !0 ? he(r, r.scrollLeft) : r.scrollTop);
		let f = o - a;
		if (n.top === void 0) {
			r.scrollTo(n);
			return;
		}
		let p = Math.ceil(Math.max(Math.min(f, n.top), 0));
		if (n.top = p, St(a, o) || p === d) {
			e({
				scrollHeight: o,
				scrollTop: d,
				viewportHeight: a
			}), i && t(!0);
			return;
		}
		i ? (l.current = p, u.current && clearTimeout(u.current), u.current = setTimeout(() => {
			u.current = null, l.current = null, t(!0);
		}, 1e3)) : l.current = null, s === !0 && (n = {
			...n.behavior === void 0 ? {} : { behavior: n.behavior },
			left: ge(r, p)
		}), r.scrollTo(n);
	}
	function p(e) {
		s === !0 && (e = {
			...e.behavior === void 0 ? {} : { behavior: e.behavior },
			...e.top === void 0 ? {} : { left: ge(c.current, e.top) }
		}), c.current.scrollBy(e);
	}
	return {
		scrollByCallback: p,
		scrollerRef: c,
		scrollToCallback: f
	};
}
function yn(e) {
	return e;
}
var bn = /* @__PURE__ */ B(([e, t]) => ({
	...e,
	...t
}), x(on, /* @__PURE__ */ B(() => {
	let e = I((e) => `Item ${e}`), t = I((e) => `Group ${e}`), n = I({}), r = I(yn), i = I("div"), a = I(v), o = (e, t = null) => L(N(n, M((t) => t[e]), A()), t);
	return {
		components: n,
		computeItemKey: r,
		EmptyPlaceholder: o("EmptyPlaceholder"),
		FooterComponent: o("Footer"),
		GroupComponent: o("Group", "div"),
		groupContent: t,
		HeaderComponent: o("Header"),
		HeaderFooterTag: i,
		ItemComponent: o("Item", "div"),
		itemContent: e,
		ListComponent: o("List", "div"),
		ScrollerComponent: o("Scroller", "div"),
		scrollerRef: a,
		ScrollSeekPlaceholder: o("ScrollSeekPlaceholder"),
		TopItemListComponent: o("TopItemList")
	};
}))), xn = ({ height: e }) => /* @__PURE__ */ (0, i.jsx)("div", { style: { height: e } }), Sn = {
	overflowAnchor: "none",
	position: mn(),
	zIndex: 1
}, Cn = { overflowAnchor: "none" }, wn = {
	...Cn,
	display: "inline-block",
	height: "100%"
}, Tn = /* @__PURE__ */ a.memo(function({ showTopList: e = !1 }) {
	var t;
	let n = X("listState"), r = Z("sizeRanges"), o = X("useWindowScroll"), s = X("customScrollParent"), c = Z("windowScrollContainerState"), l = Z("scrollContainerState"), u = s || o ? c : l, d = X("itemContent"), f = X("context"), p = X("groupContent"), m = X("trackItemSizes"), h = X("itemSize"), g = X("log"), _ = Z("gap"), y = X("horizontalDirection"), { callbackRef: b } = ye(r, h, m, e ? v : u, g, _, s, y, X("skipAnimationFrameInResizeObserver")), [x, S] = a.useState(0);
	Bn("deviation", (e) => {
		x !== e && S(e);
	});
	let C = X("EmptyPlaceholder"), w = (t = X("ScrollSeekPlaceholder")) == null ? xn : t, T = X("ListComponent"), E = X("ItemComponent"), D = X("GroupComponent"), O = X("computeItemKey"), k = X("isSeeking"), A = X("groupIndices").length > 0, j = X("alignToBottom"), M = X("initialItemFinalLocationReached"), ee = e ? {} : {
		boxSizing: "border-box",
		...y ? {
			display: "inline-block",
			height: "100%",
			marginInlineStart: x === 0 ? j ? "auto" : 0 : x,
			paddingInlineEnd: n.offsetBottom,
			paddingInlineStart: n.offsetTop,
			whiteSpace: "nowrap"
		} : {
			marginTop: x === 0 ? j ? "auto" : 0 : x,
			paddingBottom: n.offsetBottom,
			paddingTop: n.offsetTop
		},
		...M ? {} : { visibility: "hidden" }
	};
	return !e && n.totalCount === 0 && C != null ? /* @__PURE__ */ (0, i.jsx)(C, { ...Y(C, f) }) : /* @__PURE__ */ (0, i.jsx)(T, {
		...Y(T, f),
		"data-testid": e ? "virtuoso-top-item-list" : "virtuoso-item-list",
		ref: b,
		style: ee,
		children: (e ? n.topItems : n.items).map((e) => {
			let t = e.originalIndex, r = O(t + n.firstItemIndex, e.data, f);
			return k ? /* @__PURE__ */ (0, a.createElement)(w, {
				...Y(w, f),
				height: e.size,
				index: e.index,
				key: r,
				type: e.type || "item",
				...e.type === "group" ? {} : { groupIndex: e.groupIndex }
			}) : e.type === "group" ? /* @__PURE__ */ (0, a.createElement)(D, {
				...Y(D, f),
				"data-index": t,
				"data-item-index": e.index,
				"data-known-size": e.size,
				key: r,
				style: Sn
			}, p(e.index, f)) : /* @__PURE__ */ (0, a.createElement)(E, {
				...Y(E, f),
				...jn(E, e.data),
				"data-index": t,
				"data-item-group-index": e.groupIndex,
				"data-item-index": e.index,
				"data-known-size": e.size,
				key: r,
				style: y ? wn : Cn
			}, A ? d(e.index, e.groupIndex, e.data, f) : d(e.index, e.data, f));
		})
	});
}), En = {
	height: "100%",
	outline: "none",
	overflowY: "auto",
	position: "relative",
	WebkitOverflowScrolling: "touch"
}, Dn = {
	outline: "none",
	overflowX: "auto",
	position: "relative"
}, On = (e) => ({
	height: "100%",
	position: "absolute",
	top: 0,
	width: "100%",
	...e ? {
		display: "flex",
		flexDirection: "column"
	} : void 0
}), kn = (e, t, n = 0) => ({
	...On(e),
	position: t ? "relative" : "absolute",
	top: t ? -n : 0
}), An = {
	position: mn(),
	top: 0,
	width: "100%",
	zIndex: 1
};
function Y(e, t) {
	if (typeof e != "string") return { context: t };
}
function jn(e, t) {
	return { item: typeof e == "string" ? void 0 : t };
}
var Mn = /* @__PURE__ */ a.memo(function() {
	let e = X("HeaderComponent"), t = Z("headerHeight"), n = X("HeaderFooterTag"), r = _e(a.useMemo(() => (e) => {
		t(qe(e, "height"));
	}, [t]), !0, X("skipAnimationFrameInResizeObserver")), o = X("context");
	return e == null ? null : /* @__PURE__ */ (0, i.jsx)(n, {
		ref: r,
		children: /* @__PURE__ */ (0, i.jsx)(e, { ...Y(e, o) })
	});
}), Nn = /* @__PURE__ */ a.memo(function() {
	let e = X("FooterComponent"), t = Z("footerHeight"), n = X("HeaderFooterTag"), r = _e(a.useMemo(() => (e) => {
		t(qe(e, "height"));
	}, [t]), !0, X("skipAnimationFrameInResizeObserver")), o = X("context");
	return e == null ? null : /* @__PURE__ */ (0, i.jsx)(n, {
		ref: r,
		children: /* @__PURE__ */ (0, i.jsx)(e, { ...Y(e, o) })
	});
});
function Pn({ useEmitter: e, useEmitterValue: t, usePublisher: n }) {
	return a.memo(function({ children: r, style: a, context: o, ...s }) {
		let c = n("scrollContainerState"), l = t("ScrollerComponent"), u = n("smoothScrollTargetReached"), d = t("scrollerRef"), f = t("horizontalDirection") || !1, { scrollByCallback: p, scrollerRef: m, scrollToCallback: h } = vn(c, u, l, d, void 0, f);
		return e("scrollTo", h), e("scrollBy", p), /* @__PURE__ */ (0, i.jsx)(l, {
			"data-testid": "virtuoso-scroller",
			"data-virtuoso-scroller": !0,
			ref: m,
			style: {
				...f ? Dn : En,
				...a
			},
			tabIndex: 0,
			...s,
			...Y(l, o),
			children: r
		});
	});
}
function Fn({ useEmitter: e, useEmitterValue: t, usePublisher: n }) {
	return a.memo(function({ children: r, style: o, context: s, ...c }) {
		let l = n("windowScrollContainerState"), u = t("ScrollerComponent"), d = n("smoothScrollTargetReached"), f = t("totalListHeight"), p = t("deviation"), m = t("customScrollParent"), h = a.useRef(null), { scrollByCallback: g, scrollerRef: _, scrollToCallback: v } = vn(l, d, u, t("scrollerRef"), m);
		return hn(() => {
			var e;
			return _.current = m || ((e = h.current) == null ? void 0 : e.ownerDocument.defaultView), () => {
				_.current = null;
			};
		}, [_, m]), e("windowScrollTo", v), e("scrollBy", g), /* @__PURE__ */ (0, i.jsx)(u, {
			ref: h,
			"data-virtuoso-scroller": !0,
			style: {
				position: "relative",
				...o,
				...f === 0 ? void 0 : { height: f + p }
			},
			...c,
			...Y(u, s),
			children: r
		});
	});
}
var In = ({ children: e }) => {
	let t = a.useContext(un), n = Z("viewportHeight"), r = Z("fixedItemHeight"), o = X("alignToBottom"), s = X("horizontalDirection"), c = _e(a.useMemo(() => p(n, (e) => qe(e, s ? "width" : "height")), [n, s]), !0, X("skipAnimationFrameInResizeObserver"));
	return a.useEffect(() => {
		t && (n(t.viewportHeight), r(t.itemHeight));
	}, [
		t,
		n,
		r
	]), /* @__PURE__ */ (0, i.jsx)("div", {
		"data-viewport-type": "element",
		ref: c,
		style: On(o),
		children: e
	});
}, Ln = ({ children: e }) => {
	let t = a.useContext(un), n = Z("windowViewportRect"), r = Z("fixedItemHeight"), o = X("customScrollParent"), s = X("useWindowScroll"), c = X("topListHeight"), l = Se(n, o, X("skipAnimationFrameInResizeObserver")), u = X("alignToBottom");
	return a.useEffect(() => {
		t && (r(t.itemHeight), n({
			listHeight: 0,
			offsetTop: 0,
			visibleHeight: t.viewportHeight,
			visibleWidth: 100
		}));
	}, [
		t,
		n,
		r
	]), /* @__PURE__ */ (0, i.jsx)("div", {
		"data-viewport-type": "window",
		ref: l,
		style: kn(u, s, c),
		children: e
	});
}, Rn = ({ children: e }) => {
	var t;
	let n = (t = X("TopItemListComponent")) == null ? "div" : t, r = X("headerHeight");
	return /* @__PURE__ */ (0, i.jsx)(n, {
		style: {
			...An,
			marginTop: `${r}px`
		},
		...Y(n, X("context")),
		children: e
	});
}, { Component: zn, useEmitter: Bn, useEmitterValue: X, usePublisher: Z } = /* @__PURE__ */ ln(bn, {
	optional: {
		restoreStateFrom: "restoreStateFrom",
		context: "context",
		followOutput: "followOutput",
		scrollIntoViewOnChange: "scrollIntoViewOnChange",
		itemContent: "itemContent",
		groupContent: "groupContent",
		overscan: "overscan",
		increaseViewportBy: "increaseViewportBy",
		minOverscanItemCount: "minOverscanItemCount",
		totalCount: "totalCount",
		groupCounts: "groupCounts",
		topItemCount: "topItemCount",
		firstItemIndex: "firstItemIndex",
		initialTopMostItemIndex: "initialTopMostItemIndex",
		components: "components",
		atBottomThreshold: "atBottomThreshold",
		atTopThreshold: "atTopThreshold",
		computeItemKey: "computeItemKey",
		defaultItemHeight: "defaultItemHeight",
		fixedGroupHeight: "fixedGroupHeight",
		fixedItemHeight: "fixedItemHeight",
		heightEstimates: "heightEstimates",
		itemSize: "itemSize",
		scrollSeekConfiguration: "scrollSeekConfiguration",
		headerFooterTag: "HeaderFooterTag",
		data: "data",
		initialItemCount: "initialItemCount",
		initialScrollTop: "initialScrollTop",
		alignToBottom: "alignToBottom",
		useWindowScroll: "useWindowScroll",
		customScrollParent: "customScrollParent",
		scrollerRef: "scrollerRef",
		logLevel: "logLevel",
		horizontalDirection: "horizontalDirection",
		skipAnimationFrameInResizeObserver: "skipAnimationFrameInResizeObserver"
	},
	methods: {
		scrollToIndex: "scrollToIndex",
		scrollIntoView: "scrollIntoView",
		scrollTo: "scrollTo",
		scrollBy: "scrollBy",
		autoscrollToBottom: "autoscrollToBottom",
		getState: "getState"
	},
	events: {
		isScrolling: "isScrolling",
		endReached: "endReached",
		startReached: "startReached",
		rangeChanged: "rangeChanged",
		atBottomStateChange: "atBottomStateChange",
		atTopStateChange: "atTopStateChange",
		totalListHeightChanged: "totalListHeightChanged",
		itemsRendered: "itemsRendered",
		groupIndices: "groupIndices"
	}
}, /* @__PURE__ */ a.memo(function(e) {
	let t = X("useWindowScroll"), n = X("topItemsIndexes").length > 0, r = X("customScrollParent"), a = X("context");
	return /* @__PURE__ */ (0, i.jsxs)(r || t ? Hn : Vn, {
		...e,
		context: a,
		children: [n && /* @__PURE__ */ (0, i.jsx)(Rn, { children: /* @__PURE__ */ (0, i.jsx)(Tn, { showTopList: !0 }) }), /* @__PURE__ */ (0, i.jsxs)(r || t ? Ln : In, { children: [
			/* @__PURE__ */ (0, i.jsx)(Mn, {}),
			/* @__PURE__ */ (0, i.jsx)(Tn, {}),
			/* @__PURE__ */ (0, i.jsx)(Nn, {})
		] })]
	});
})), Vn = /* @__PURE__ */ Pn({
	useEmitter: Bn,
	useEmitterValue: X,
	usePublisher: Z
}), Hn = /* @__PURE__ */ Fn({
	useEmitter: Bn,
	useEmitterValue: X,
	usePublisher: Z
}), Un = zn, Wn = /* @__PURE__ */ B(([e, t]) => ({
	...e,
	...t
}), x(on, /* @__PURE__ */ B(() => {
	let e = I((e) => /* @__PURE__ */ (0, i.jsxs)("td", { children: ["Item $", e] })), t = I(null), n = I((e) => /* @__PURE__ */ (0, i.jsxs)("td", {
		colSpan: 1e3,
		children: ["Group ", e]
	})), r = I(null), a = I(null), o = I({}), s = I(yn), c = I(v), l = (e, t = null) => L(N(o, M((t) => t[e]), A()), t);
	return {
		components: o,
		computeItemKey: s,
		context: t,
		EmptyPlaceholder: l("EmptyPlaceholder"),
		FillerRow: l("FillerRow"),
		fixedFooterContent: a,
		fixedHeaderContent: r,
		itemContent: e,
		groupContent: n,
		ScrollerComponent: l("Scroller", "div"),
		scrollerRef: c,
		ScrollSeekPlaceholder: l("ScrollSeekPlaceholder"),
		TableBodyComponent: l("TableBody", "tbody"),
		TableComponent: l("Table", "table"),
		TableFooterComponent: l("TableFoot", "tfoot"),
		TableHeadComponent: l("TableHead", "thead"),
		TableRowComponent: l("TableRow", "tr"),
		GroupComponent: l("Group", "tr")
	};
}))), Gn = ({ height: e }) => /* @__PURE__ */ (0, i.jsx)("tr", { children: /* @__PURE__ */ (0, i.jsx)("td", { style: { height: e } }) }), Kn = ({ height: e }) => /* @__PURE__ */ (0, i.jsx)("tr", { children: /* @__PURE__ */ (0, i.jsx)("td", { style: {
	border: 0,
	height: e,
	padding: 0
} }) }), qn = { overflowAnchor: "none" }, Jn = {
	position: mn(),
	zIndex: 2,
	overflowAnchor: "none"
}, Yn = /* @__PURE__ */ a.memo(function({ showTopList: e = !1 }) {
	var t;
	let n = Q("listState"), r = Q("computeItemKey"), i = Q("firstItemIndex"), o = Q("context"), s = Q("isSeeking"), c = Q("fixedHeaderHeight"), l = Q("groupIndices").length > 0, u = Q("itemContent"), d = Q("groupContent"), f = (t = Q("ScrollSeekPlaceholder")) == null ? Gn : t, p = Q("GroupComponent"), m = Q("TableRowComponent"), h = (e ? n.topItems : []).reduce((e, t, n) => (n === 0 ? e.push(t.size) : e.push(e[n - 1] + t.size), e), []);
	return (e ? n.topItems : n.items).map((t) => {
		let n = t.originalIndex, g = r(n + i, t.data, o), _ = e ? n === 0 ? 0 : h[n - 1] : 0;
		return s ? /* @__PURE__ */ (0, a.createElement)(f, {
			...Y(f, o),
			height: t.size,
			index: t.index,
			key: g,
			type: t.type || "item"
		}) : t.type === "group" ? /* @__PURE__ */ (0, a.createElement)(p, {
			...Y(p, o),
			"data-index": n,
			"data-item-index": t.index,
			"data-known-size": t.size,
			key: g,
			style: {
				...Jn,
				top: c
			}
		}, d(t.index, o)) : /* @__PURE__ */ (0, a.createElement)(m, {
			...Y(m, o),
			...jn(m, t.data),
			"data-index": n,
			"data-item-index": t.index,
			"data-known-size": t.size,
			"data-item-group-index": t.groupIndex,
			key: g,
			style: e ? {
				...Jn,
				top: c + _
			} : qn
		}, l ? u(t.index, t.groupIndex, t.data, o) : u(t.index, t.data, o));
	});
}), Xn = /* @__PURE__ */ a.memo(function() {
	var e;
	let t = Q("listState"), n = Q("topItemsIndexes").length > 0, r = tr("sizeRanges"), o = Q("useWindowScroll"), s = Q("customScrollParent"), c = tr("windowScrollContainerState"), l = tr("scrollContainerState"), u = s || o ? c : l, d = Q("trackItemSizes"), { callbackRef: f, ref: p } = ye(r, Q("itemSize"), d, u, Q("log"), void 0, s, !1, Q("skipAnimationFrameInResizeObserver")), [m, h] = a.useState(0);
	er("deviation", (e) => {
		m !== e && (p.current.style.marginTop = `${e}px`, h(e));
	});
	let g = Q("EmptyPlaceholder"), _ = (e = Q("FillerRow")) == null ? Kn : e, v = Q("TableBodyComponent"), y = Q("paddingTopAddition"), b = Q("statefulTotalCount"), x = Q("context");
	if (b === 0 && g != null) return /* @__PURE__ */ (0, i.jsx)(g, { ...Y(g, x) });
	let S = (n ? t.topItems : []).reduce((e, t) => e + t.size, 0), C = t.offsetTop + y + m - S, w = t.offsetBottom, T = C > 0 ? /* @__PURE__ */ (0, i.jsx)(_, {
		context: x,
		height: C
	}, "padding-top") : null, E = w > 0 ? /* @__PURE__ */ (0, i.jsx)(_, {
		context: x,
		height: w
	}, "padding-bottom") : null;
	return /* @__PURE__ */ (0, i.jsxs)(v, {
		"data-testid": "virtuoso-item-list",
		ref: f,
		...Y(v, x),
		children: [
			T,
			n && /* @__PURE__ */ (0, i.jsx)(Yn, { showTopList: !0 }),
			/* @__PURE__ */ (0, i.jsx)(Yn, {}),
			E
		]
	});
}), Zn = ({ children: e }) => {
	let t = a.useContext(un), n = tr("viewportHeight"), r = tr("fixedItemHeight"), o = _e(a.useMemo(() => p(n, (e) => qe(e, "height")), [n]), !0, Q("skipAnimationFrameInResizeObserver"));
	return a.useEffect(() => {
		t && (n(t.viewportHeight), r(t.itemHeight));
	}, [
		t,
		n,
		r
	]), /* @__PURE__ */ (0, i.jsx)("div", {
		"data-viewport-type": "element",
		ref: o,
		style: On(!1),
		children: e
	});
}, Qn = ({ children: e }) => {
	let t = a.useContext(un), n = tr("windowViewportRect"), r = tr("fixedItemHeight"), o = Q("customScrollParent"), s = Q("useWindowScroll"), c = Se(n, o, Q("skipAnimationFrameInResizeObserver"));
	return a.useEffect(() => {
		t && (r(t.itemHeight), n({
			listHeight: 0,
			offsetTop: 0,
			visibleHeight: t.viewportHeight,
			visibleWidth: 100
		}));
	}, [
		t,
		n,
		r
	]), /* @__PURE__ */ (0, i.jsx)("div", {
		"data-viewport-type": "window",
		ref: c,
		style: kn(!1, s),
		children: e
	});
}, { Component: $n, useEmitter: er, useEmitterValue: Q, usePublisher: tr } = /* @__PURE__ */ ln(Wn, {
	optional: {
		restoreStateFrom: "restoreStateFrom",
		context: "context",
		followOutput: "followOutput",
		firstItemIndex: "firstItemIndex",
		itemContent: "itemContent",
		groupContent: "groupContent",
		fixedHeaderContent: "fixedHeaderContent",
		fixedFooterContent: "fixedFooterContent",
		overscan: "overscan",
		increaseViewportBy: "increaseViewportBy",
		minOverscanItemCount: "minOverscanItemCount",
		totalCount: "totalCount",
		topItemCount: "topItemCount",
		initialTopMostItemIndex: "initialTopMostItemIndex",
		components: "components",
		groupCounts: "groupCounts",
		atBottomThreshold: "atBottomThreshold",
		atTopThreshold: "atTopThreshold",
		computeItemKey: "computeItemKey",
		defaultItemHeight: "defaultItemHeight",
		fixedGroupHeight: "fixedGroupHeight",
		fixedItemHeight: "fixedItemHeight",
		itemSize: "itemSize",
		scrollSeekConfiguration: "scrollSeekConfiguration",
		data: "data",
		initialItemCount: "initialItemCount",
		initialScrollTop: "initialScrollTop",
		alignToBottom: "alignToBottom",
		useWindowScroll: "useWindowScroll",
		customScrollParent: "customScrollParent",
		scrollerRef: "scrollerRef",
		logLevel: "logLevel"
	},
	methods: {
		scrollToIndex: "scrollToIndex",
		scrollIntoView: "scrollIntoView",
		scrollTo: "scrollTo",
		scrollBy: "scrollBy",
		getState: "getState"
	},
	events: {
		isScrolling: "isScrolling",
		endReached: "endReached",
		startReached: "startReached",
		rangeChanged: "rangeChanged",
		atBottomStateChange: "atBottomStateChange",
		atTopStateChange: "atTopStateChange",
		totalListHeightChanged: "totalListHeightChanged",
		itemsRendered: "itemsRendered",
		groupIndices: "groupIndices"
	}
}, /* @__PURE__ */ a.memo(function(e) {
	let t = Q("useWindowScroll"), n = Q("customScrollParent"), r = tr("fixedHeaderHeight"), o = tr("fixedFooterHeight"), s = Q("fixedHeaderContent"), c = Q("fixedFooterContent"), l = Q("context"), u = _e(a.useMemo(() => p(r, (e) => qe(e, "height")), [r]), !0, Q("skipAnimationFrameInResizeObserver")), d = _e(a.useMemo(() => p(o, (e) => qe(e, "height")), [o]), !0, Q("skipAnimationFrameInResizeObserver")), f = n || t ? rr : nr, m = n || t ? Qn : Zn, h = Q("TableComponent"), g = Q("TableHeadComponent"), _ = Q("TableFooterComponent"), v = s ? /* @__PURE__ */ (0, i.jsx)(g, {
		ref: u,
		style: {
			position: "sticky",
			top: 0,
			zIndex: 2
		},
		...Y(g, l),
		children: s()
	}, "TableHead") : null, y = c ? /* @__PURE__ */ (0, i.jsx)(_, {
		ref: d,
		style: {
			bottom: 0,
			position: "sticky",
			zIndex: 1
		},
		...Y(_, l),
		children: c()
	}, "TableFoot") : null;
	return /* @__PURE__ */ (0, i.jsx)(f, {
		...e,
		...Y(f, l),
		children: /* @__PURE__ */ (0, i.jsx)(m, { children: /* @__PURE__ */ (0, i.jsxs)(h, {
			style: {
				borderSpacing: 0,
				overflowAnchor: "none"
			},
			...Y(h, l),
			children: [
				v,
				/* @__PURE__ */ (0, i.jsx)(Xn, {}, "TableBody"),
				y
			]
		}) })
	});
})), nr = /* @__PURE__ */ Pn({
	useEmitter: er,
	useEmitterValue: Q,
	usePublisher: tr
}), rr = /* @__PURE__ */ Fn({
	useEmitter: er,
	useEmitterValue: Q,
	usePublisher: tr
}), ir = {
	bottom: 0,
	itemHeight: 0,
	items: [],
	itemWidth: 0,
	offsetBottom: 0,
	offsetTop: 0,
	top: 0
}, ar = {
	bottom: 0,
	itemHeight: 0,
	items: [{ index: 0 }],
	itemWidth: 0,
	offsetBottom: 0,
	offsetTop: 0,
	top: 0
}, { ceil: or, floor: sr, max: cr, min: lr, round: ur } = Math;
function dr(e, t, n) {
	return Array.from({ length: t - e + 1 }).map((t, r) => ({
		data: n === null ? null : n[r + e],
		index: r + e
	}));
}
function fr(e) {
	return {
		...ar,
		items: e
	};
}
function pr(e, t) {
	return e !== void 0 && e.width === t.width && e.height === t.height;
}
function mr(e, t) {
	return e !== void 0 && e.column === t.column && e.row === t.row;
}
var hr = /* @__PURE__ */ B(([{ increaseViewportBy: e, listBoundary: t, overscan: n, visibleRange: r }, { footerHeight: i, headerHeight: a, scrollBy: o, scrollContainerState: s, scrollTo: c, scrollTop: l, smoothScrollTargetReached: u, viewportHeight: d }, f, p, { didMount: m, propsReady: h }, { customScrollParent: g, useWindowScroll: _, windowScrollContainerState: v, windowScrollTo: y, windowViewportRect: b }, x]) => {
	let w = I(0), T = I(0), O = I(ir), k = I({
		height: 0,
		width: 0
	}), P = I({
		height: 0,
		width: 0
	}), re = R(), ie = R(), B = I(0), ae = I(null), oe = I({
		column: 0,
		row: 0
	}), se = R(), U = R(), ce = I(!1), le = I(0), W = I(!0), ue = I(!1), de = I(!1);
	S(N(m, F(le), j(([e, t]) => t !== 0)), () => {
		C(W, !1);
	}), S(N(V(m, W, P, k, le, ue), j(([e, t, n, r, , i]) => e && !t && n.height !== 0 && r.height !== 0 && !i)), ([, , , , e]) => {
		C(ue, !0), yt(1, () => {
			C(re, e);
		}), D(N(l), () => {
			C(t, [0, 0]), C(W, !0);
		});
	}), E(N(U, j((e) => e != null && e.scrollTop > 0), ee(0)), T), S(N(m, F(U), j(([, e]) => e != null)), ([, e]) => {
		e && (C(k, e.viewport), C(P, e.item), C(oe, e.gap), e.scrollTop > 0 && (C(ce, !0), D(N(l, te(1)), (e) => {
			C(ce, !1);
		}), C(c, { top: e.scrollTop })));
	}), E(N(k, M(({ height: e }) => e)), d), E(N(V(H(k, pr), H(P, pr), H(oe, (e, t) => e !== void 0 && e.column === t.column && e.row === t.row), H(l)), M(([e, t, n, r]) => ({
		gap: n,
		item: t,
		scrollTop: r,
		viewport: e
	}))), se), E(N(V(H(w), r, H(oe, mr), H(P, pr), H(k, pr), H(ae), H(T), H(ce), H(W), H(le)), j(([, , , , , , , e]) => !e), M(([e, [t, n], r, i, a, o, s, , c, l]) => {
		let { column: u, row: d } = r, { height: f, width: p } = i, { width: m } = a;
		if (s === 0 && (e === 0 || m === 0)) return ir;
		if (p === 0) {
			let t = bt(l, e);
			return fr(dr(t, t + Math.max(s - 1, 0), o));
		}
		let h = gr(m, p, u), g, _;
		c ? t === 0 && n === 0 && s > 0 ? (g = 0, _ = s - 1) : (g = h * sr((t + d) / (f + d)), _ = h * or((n + d) / (f + d)) - 1, _ = lr(e - 1, cr(_, h - 1)), g = lr(_, cr(0, g))) : (g = 0, _ = -1);
		let v = dr(g, _, o), { bottom: y, top: b } = _r(a, r, i, v), x = or(e / h);
		return {
			bottom: y,
			itemHeight: f,
			items: v,
			itemWidth: p,
			offsetBottom: x * f + (x - 1) * d - y,
			offsetTop: b,
			top: b
		};
	})), O), E(N(ae, j((e) => e !== null), M((e) => e.length)), w), E(N(V(k, P, O, oe), j(([e, t, { items: n }]) => n.length > 0 && t.height !== 0 && e.height !== 0), M(([e, t, { items: n }, r]) => {
		let { bottom: i, top: a } = _r(e, r, t, n);
		return [a, i];
	}), A(He)), t);
	let fe = I(!1);
	E(N(l, F(fe), M(([e, t]) => t || e !== 0)), fe);
	let pe = z(N(V(O, w), j(([{ items: e }]) => e.length > 0), F(fe), j(([[e, t], n]) => {
		let r = e.items[e.items.length - 1].index === t - 1;
		return (n || e.bottom > 0 && e.itemHeight > 0 && e.offsetBottom === 0 && e.items.length === t) && r;
	}), M(([[, e]]) => e - 1), A())), me = z(N(H(O), j(({ items: e }) => e.length > 0 && e[0].index === 0), ee(0), A())), he = z(N(H(O), F(ce), j(([{ items: e }, t]) => e.length > 0 && !t), M(([{ items: e }]) => ({
		endIndex: e[e.length - 1].index,
		startIndex: e[0].index
	})), A(Ve), ne(0)));
	E(he, p.scrollSeekRangeChanged), E(N(re, F(k, P, w, oe), M(([e, t, n, r, i]) => {
		let a = gt(e), { align: o, behavior: s, offset: c } = a, l = a.index;
		l === "LAST" && (l = r - 1), l = cr(0, l, lr(r - 1, l));
		let u = vr(t, i, n, l);
		return o === "end" ? u = ur(u - t.height + n.height) : o === "center" && (u = ur(u - t.height / 2 + n.height / 2)), c !== void 0 && c !== 0 && (u += c), {
			behavior: s,
			top: u
		};
	})), c);
	let ge = L(N(O, M((e) => e.offsetBottom + e.bottom)), 0);
	return E(N(b, M((e) => ({
		height: e.visibleHeight,
		width: e.visibleWidth
	}))), k), {
		customScrollParent: g,
		data: ae,
		deviation: B,
		footerHeight: i,
		gap: oe,
		headerHeight: a,
		increaseViewportBy: e,
		initialItemCount: T,
		itemDimensions: P,
		overscan: n,
		restoreStateFrom: U,
		scrollBy: o,
		scrollContainerState: s,
		scrollHeight: ie,
		scrollTo: c,
		scrollToIndex: re,
		scrollTop: l,
		smoothScrollTargetReached: u,
		totalCount: w,
		useWindowScroll: _,
		viewportDimensions: k,
		windowScrollContainerState: v,
		windowScrollTo: y,
		windowViewportRect: b,
		...p,
		gridState: O,
		horizontalDirection: de,
		initialTopMostItemIndex: le,
		totalListHeight: ge,
		...f,
		endReached: pe,
		propsReady: h,
		rangeChanged: he,
		startReached: me,
		stateChanged: se,
		stateRestoreInProgress: ce,
		...x
	};
}, x(Pt, G, Ot, Qt, mt, $t, W));
function gr(e, t, n) {
	return cr(1, sr((e + n) / (sr(t) + n)));
}
function _r(e, t, n, r) {
	let { height: i } = n;
	if (i === void 0 || r.length === 0) return {
		bottom: 0,
		top: 0
	};
	let a = vr(e, t, n, r[0].index);
	return {
		bottom: vr(e, t, n, r[r.length - 1].index) + i,
		top: a
	};
}
function vr(e, t, n, r) {
	let i = sr(r / gr(e.width, n.width, t.column)), a = i * n.height + cr(0, i - 1) * t.row;
	return a > 0 ? a + t.row : a;
}
var yr = /* @__PURE__ */ B(([e, t]) => ({
	...e,
	...t
}), x(hr, /* @__PURE__ */ B(() => {
	let e = I((e) => `Item ${e}`), t = I({}), n = I(null), r = I("virtuoso-grid-item"), i = I("virtuoso-grid-list"), a = I(yn), o = I("div"), s = I(v), c = (e, n = null) => L(N(t, M((t) => t[e]), A()), n), l = I(!1), u = I(!1);
	return E(H(u), l), {
		components: t,
		computeItemKey: a,
		context: n,
		FooterComponent: c("Footer"),
		HeaderComponent: c("Header"),
		headerFooterTag: o,
		itemClassName: r,
		ItemComponent: c("Item", "div"),
		itemContent: e,
		listClassName: i,
		ListComponent: c("List", "div"),
		readyStateChanged: l,
		reportReadyState: u,
		ScrollerComponent: c("Scroller", "div"),
		scrollerRef: s,
		ScrollSeekPlaceholder: c("ScrollSeekPlaceholder", "div")
	};
}))), br = /* @__PURE__ */ a.memo(function() {
	let e = $("gridState"), t = $("listClassName"), n = $("itemClassName"), r = $("itemContent"), o = $("computeItemKey"), s = $("isSeeking"), c = Dr("scrollHeight"), l = $("ItemComponent"), u = $("ListComponent"), d = $("ScrollSeekPlaceholder"), f = $("context"), p = Dr("itemDimensions"), m = Dr("gap"), h = $("log"), g = $("stateRestoreInProgress"), _ = Dr("reportReadyState"), v = _e(a.useMemo(() => (e) => {
		let t = e.parentElement.parentElement.scrollHeight;
		c(t);
		let n = e.firstChild;
		if (n !== null) {
			let { height: e, width: t } = n.getBoundingClientRect();
			p({
				height: e,
				width: t
			});
		}
		m({
			column: Ar("column-gap", getComputedStyle(e).columnGap, h),
			row: Ar("row-gap", getComputedStyle(e).rowGap, h)
		});
	}, [
		c,
		p,
		m,
		h
	]), !0, !1);
	return hn(() => {
		e.itemHeight > 0 && e.itemWidth > 0 && _(!0);
	}, [e]), g ? null : /* @__PURE__ */ (0, i.jsx)(u, {
		className: t,
		ref: v,
		...Y(u, f),
		"data-testid": "virtuoso-item-list",
		style: {
			paddingBottom: e.offsetBottom,
			paddingTop: e.offsetTop
		},
		children: e.items.map((t) => {
			let c = o(t.index, t.data, f);
			return s ? /* @__PURE__ */ (0, i.jsx)(d, {
				...Y(d, f),
				height: e.itemHeight,
				index: t.index,
				width: e.itemWidth
			}, c) : /* @__PURE__ */ (0, a.createElement)(l, {
				...Y(l, f),
				className: n,
				"data-index": t.index,
				key: c
			}, r(t.index, t.data, f));
		})
	});
}), xr = a.memo(function() {
	let e = $("HeaderComponent"), t = Dr("headerHeight"), n = $("headerFooterTag"), r = _e(a.useMemo(() => (e) => {
		t(qe(e, "height"));
	}, [t]), !0, !1), o = $("context");
	return e == null ? null : /* @__PURE__ */ (0, i.jsx)(n, {
		ref: r,
		children: /* @__PURE__ */ (0, i.jsx)(e, { ...Y(e, o) })
	});
}), Sr = a.memo(function() {
	let e = $("FooterComponent"), t = Dr("footerHeight"), n = $("headerFooterTag"), r = _e(a.useMemo(() => (e) => {
		t(qe(e, "height"));
	}, [t]), !0, !1), o = $("context");
	return e == null ? null : /* @__PURE__ */ (0, i.jsx)(n, {
		ref: r,
		children: /* @__PURE__ */ (0, i.jsx)(e, { ...Y(e, o) })
	});
}), Cr = ({ children: e }) => {
	let t = a.useContext(dn), n = Dr("itemDimensions"), r = Dr("viewportDimensions"), o = _e(a.useMemo(() => (e) => {
		r(e.getBoundingClientRect());
	}, [r]), !0, !1);
	return a.useEffect(() => {
		t && (r({
			height: t.viewportHeight,
			width: t.viewportWidth
		}), n({
			height: t.itemHeight,
			width: t.itemWidth
		}));
	}, [
		t,
		r,
		n
	]), /* @__PURE__ */ (0, i.jsx)("div", {
		ref: o,
		style: On(!1),
		children: e
	});
}, wr = ({ children: e }) => {
	let t = a.useContext(dn), n = Dr("windowViewportRect"), r = Dr("itemDimensions"), o = $("customScrollParent"), s = $("useWindowScroll"), c = Se(n, o, !1);
	return a.useEffect(() => {
		t && (r({
			height: t.itemHeight,
			width: t.itemWidth
		}), n({
			listHeight: 0,
			offsetTop: 0,
			visibleHeight: t.viewportHeight,
			visibleWidth: t.viewportWidth
		}));
	}, [
		t,
		n,
		r
	]), /* @__PURE__ */ (0, i.jsx)("div", {
		ref: c,
		style: kn(!1, s),
		children: e
	});
}, { Component: Tr, useEmitter: Er, useEmitterValue: $, usePublisher: Dr } = /* @__PURE__ */ ln(yr, {
	optional: {
		context: "context",
		totalCount: "totalCount",
		overscan: "overscan",
		itemContent: "itemContent",
		components: "components",
		computeItemKey: "computeItemKey",
		data: "data",
		initialItemCount: "initialItemCount",
		scrollSeekConfiguration: "scrollSeekConfiguration",
		headerFooterTag: "headerFooterTag",
		listClassName: "listClassName",
		itemClassName: "itemClassName",
		useWindowScroll: "useWindowScroll",
		customScrollParent: "customScrollParent",
		scrollerRef: "scrollerRef",
		logLevel: "logLevel",
		restoreStateFrom: "restoreStateFrom",
		initialTopMostItemIndex: "initialTopMostItemIndex",
		increaseViewportBy: "increaseViewportBy"
	},
	methods: {
		scrollTo: "scrollTo",
		scrollBy: "scrollBy",
		scrollToIndex: "scrollToIndex"
	},
	events: {
		isScrolling: "isScrolling",
		endReached: "endReached",
		startReached: "startReached",
		rangeChanged: "rangeChanged",
		atBottomStateChange: "atBottomStateChange",
		atTopStateChange: "atTopStateChange",
		stateChanged: "stateChanged",
		readyStateChanged: "readyStateChanged"
	}
}, /* @__PURE__ */ a.memo(function({ ...e }) {
	let t = $("useWindowScroll"), n = $("customScrollParent"), r = n || t ? kr : Or, a = n || t ? wr : Cr, o = $("context");
	return /* @__PURE__ */ (0, i.jsx)(r, {
		...e,
		...Y(r, o),
		children: /* @__PURE__ */ (0, i.jsxs)(a, { children: [
			/* @__PURE__ */ (0, i.jsx)(xr, {}),
			/* @__PURE__ */ (0, i.jsx)(br, {}),
			/* @__PURE__ */ (0, i.jsx)(Sr, {})
		] })
	});
})), Or = /* @__PURE__ */ Pn({
	useEmitter: Er,
	useEmitterValue: $,
	usePublisher: Dr
}), kr = /* @__PURE__ */ Fn({
	useEmitter: Er,
	useEmitterValue: $,
	usePublisher: Dr
});
function Ar(e, t, n) {
	return t !== "normal" && (t == null ? void 0 : t.endsWith("px")) !== !0 && n(`${e} was not resolved to pixel value correctly`, t, U.WARN), t === "normal" ? 0 : parseInt(t == null ? "0" : t, 10);
}
//#endregion
export { Un as Virtuoso };