@expofp/floorplan
Version:
Interactive floor plan library for expos and events
1,383 lines (1,382 loc) • 47.5 kB
JavaScript
(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.7.8" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "64230fce-2958-4ba7-bb9d-ccbd237b6d3c", e._sentryDebugIdIdentifier = "sentry-dbid-64230fce-2958-4ba7-bb9d-ccbd237b6d3c");
} catch {}
})();
import { r as e } from "./rolldown-runtime-YBAZwyzS.js";
import { t } from "./react-Di3Pmpio.js";
import { t as n } from "./jsx-runtime-C8yjdFgZ.js";
import { t as r } from "./react-dom-xeogvqlp.js";
import { O as i, T as a, g as o, l as s, s as c, u as l, y as u } from "./flex-CegveOzn.js";
import { i as d, n as f, o as p, r as m, s as h } from "./dist-CVz2SjQb.js";
import { _ as g, a as _, b as v, c as y, d as b, f as x, g as S, h as C, i as w, l as T, m as E, n as D, o as O, p as k, r as A, s as j, t as ee, u as te, v as ne } from "./theme-Du1VS-C5.js";
import { t as M } from "./dist-BeI1dlr0.js";
import { t as re } from "./classnames-BRCgwycl.js";
import { t as ie } from "./settings-item-Ie1tNhGr.js";
//#region ../../node_modules/.pnpm/@radix-ui+number@1.1.1/node_modules/@radix-ui/number/dist/index.mjs
function N(e, [t, n]) {
return Math.min(n, Math.max(t, e));
}
//#endregion
//#region ../../node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@19.2.3_@types+react@19.2.17__@types_e0729a9f5f9e9eb4a8e3fe721aeb1224/node_modules/@radix-ui/react-scroll-area/dist/index.mjs
var P = /* @__PURE__ */ e(t(), 1), F = n();
function ae(e, t) {
return P.useReducer((e, n) => {
let r = t[e][n];
return r == null ? e : r;
}, e);
}
var I = "ScrollArea", [L, R] = p(I), [oe, z] = L(I), se = P.forwardRef((e, t) => {
let { __scopeScrollArea: n, type: r = "hover", dir: a, scrollHideDelay: o = 600, ...s } = e, [c, l] = P.useState(null), [u, d] = P.useState(null), [f, p] = P.useState(null), [m, g] = P.useState(null), [_, v] = P.useState(null), [y, b] = P.useState(0), [x, S] = P.useState(0), [w, T] = P.useState(!1), [E, D] = P.useState(!1), O = i(t, (e) => l(e)), k = C(a);
return /* @__PURE__ */ (0, F.jsx)(oe, {
scope: n,
type: r,
dir: k,
scrollHideDelay: o,
scrollArea: c,
viewport: u,
onViewportChange: d,
content: f,
onContentChange: p,
scrollbarX: m,
onScrollbarXChange: g,
scrollbarXEnabled: w,
onScrollbarXEnabledChange: T,
scrollbarY: _,
onScrollbarYChange: v,
scrollbarYEnabled: E,
onScrollbarYEnabledChange: D,
onCornerWidthChange: b,
onCornerHeightChange: S,
children: /* @__PURE__ */ (0, F.jsx)(h.div, {
dir: k,
...s,
ref: O,
style: {
position: "relative",
"--radix-scroll-area-corner-width": y + "px",
"--radix-scroll-area-corner-height": x + "px",
...e.style
}
})
});
});
se.displayName = I;
var ce = "ScrollAreaViewport", le = P.forwardRef((e, t) => {
let { __scopeScrollArea: n, children: r, nonce: a, ...o } = e, s = z(ce, n), c = i(t, P.useRef(null), s.onViewportChange);
return /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsx)("style", {
dangerouslySetInnerHTML: { __html: "[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}" },
nonce: a
}), /* @__PURE__ */ (0, F.jsx)(h.div, {
"data-radix-scroll-area-viewport": "",
...o,
ref: c,
style: {
overflowX: s.scrollbarXEnabled ? "scroll" : "hidden",
overflowY: s.scrollbarYEnabled ? "scroll" : "hidden",
...e.style
},
children: /* @__PURE__ */ (0, F.jsx)("div", {
ref: s.onContentChange,
style: {
minWidth: "100%",
display: "table"
},
children: r
})
})] });
});
le.displayName = ce;
var B = "ScrollAreaScrollbar", ue = P.forwardRef((e, t) => {
let { forceMount: n, ...r } = e, i = z(B, e.__scopeScrollArea), { onScrollbarXEnabledChange: a, onScrollbarYEnabledChange: o } = i, s = e.orientation === "horizontal";
return P.useEffect(() => (s ? a(!0) : o(!0), () => {
s ? a(!1) : o(!1);
}), [
s,
a,
o
]), i.type === "hover" ? /* @__PURE__ */ (0, F.jsx)(de, {
...r,
ref: t,
forceMount: n
}) : i.type === "scroll" ? /* @__PURE__ */ (0, F.jsx)(fe, {
...r,
ref: t,
forceMount: n
}) : i.type === "auto" ? /* @__PURE__ */ (0, F.jsx)(pe, {
...r,
ref: t,
forceMount: n
}) : i.type === "always" ? /* @__PURE__ */ (0, F.jsx)(me, {
...r,
ref: t
}) : null;
});
ue.displayName = B;
var de = P.forwardRef((e, t) => {
let { forceMount: n, ...r } = e, i = z(B, e.__scopeScrollArea), [a, o] = P.useState(!1);
return P.useEffect(() => {
let e = i.scrollArea, t = 0;
if (e) {
let n = () => {
window.clearTimeout(t), o(!0);
}, r = () => {
t = window.setTimeout(() => o(!1), i.scrollHideDelay);
};
return e.addEventListener("pointerenter", n), e.addEventListener("pointerleave", r), () => {
window.clearTimeout(t), e.removeEventListener("pointerenter", n), e.removeEventListener("pointerleave", r);
};
}
}, [i.scrollArea, i.scrollHideDelay]), /* @__PURE__ */ (0, F.jsx)(g, {
present: n || a,
children: /* @__PURE__ */ (0, F.jsx)(pe, {
"data-state": a ? "visible" : "hidden",
...r,
ref: t
})
});
}), fe = P.forwardRef((e, t) => {
let { forceMount: n, ...r } = e, i = z(B, e.__scopeScrollArea), a = e.orientation === "horizontal", o = U(() => c("SCROLL_END"), 100), [s, c] = ae("hidden", {
hidden: { SCROLL: "scrolling" },
scrolling: {
SCROLL_END: "idle",
POINTER_ENTER: "interacting"
},
interacting: {
SCROLL: "interacting",
POINTER_LEAVE: "idle"
},
idle: {
HIDE: "hidden",
SCROLL: "scrolling",
POINTER_ENTER: "interacting"
}
});
return P.useEffect(() => {
if (s === "idle") {
let e = window.setTimeout(() => c("HIDE"), i.scrollHideDelay);
return () => window.clearTimeout(e);
}
}, [
s,
i.scrollHideDelay,
c
]), P.useEffect(() => {
let e = i.viewport, t = a ? "scrollLeft" : "scrollTop";
if (e) {
let n = e[t], r = () => {
let r = e[t];
n !== r && (c("SCROLL"), o()), n = r;
};
return e.addEventListener("scroll", r), () => e.removeEventListener("scroll", r);
}
}, [
i.viewport,
a,
c,
o
]), /* @__PURE__ */ (0, F.jsx)(g, {
present: n || s !== "hidden",
children: /* @__PURE__ */ (0, F.jsx)(me, {
"data-state": s === "hidden" ? "hidden" : "visible",
...r,
ref: t,
onPointerEnter: d(e.onPointerEnter, () => c("POINTER_ENTER")),
onPointerLeave: d(e.onPointerLeave, () => c("POINTER_LEAVE"))
})
});
}), pe = P.forwardRef((e, t) => {
let n = z(B, e.__scopeScrollArea), { forceMount: r, ...i } = e, [a, o] = P.useState(!1), s = e.orientation === "horizontal", c = U(() => {
if (n.viewport) {
let e = n.viewport.offsetWidth < n.viewport.scrollWidth, t = n.viewport.offsetHeight < n.viewport.scrollHeight;
o(s ? e : t);
}
}, 10);
return W(n.viewport, c), W(n.content, c), /* @__PURE__ */ (0, F.jsx)(g, {
present: r || a,
children: /* @__PURE__ */ (0, F.jsx)(me, {
"data-state": a ? "visible" : "hidden",
...i,
ref: t
})
});
}), me = P.forwardRef((e, t) => {
let { orientation: n = "vertical", ...r } = e, i = z(B, e.__scopeScrollArea), a = P.useRef(null), o = P.useRef(0), [s, c] = P.useState({
content: 0,
viewport: 0,
scrollbar: {
size: 0,
paddingStart: 0,
paddingEnd: 0
}
}), l = Ee(s.viewport, s.content), u = {
...r,
sizes: s,
onSizesChange: c,
hasThumb: l > 0 && l < 1,
onThumbChange: (e) => a.current = e,
onThumbPointerUp: () => o.current = 0,
onThumbPointerDown: (e) => o.current = e
};
function d(e, t) {
return De(e, o.current, s, t);
}
return n === "horizontal" ? /* @__PURE__ */ (0, F.jsx)(he, {
...u,
ref: t,
onThumbPositionChange: () => {
if (i.viewport && a.current) {
let e = i.viewport.scrollLeft, t = Oe(e, s, i.dir);
a.current.style.transform = `translate3d(${t}px, 0, 0)`;
}
},
onWheelScroll: (e) => {
i.viewport && (i.viewport.scrollLeft = e);
},
onDragScroll: (e) => {
i.viewport && (i.viewport.scrollLeft = d(e, i.dir));
}
}) : n === "vertical" ? /* @__PURE__ */ (0, F.jsx)(ge, {
...u,
ref: t,
onThumbPositionChange: () => {
if (i.viewport && a.current) {
let e = i.viewport.scrollTop, t = Oe(e, s);
a.current.style.transform = `translate3d(0, ${t}px, 0)`;
}
},
onWheelScroll: (e) => {
i.viewport && (i.viewport.scrollTop = e);
},
onDragScroll: (e) => {
i.viewport && (i.viewport.scrollTop = d(e));
}
}) : null;
}), he = P.forwardRef((e, t) => {
let { sizes: n, onSizesChange: r, ...a } = e, o = z(B, e.__scopeScrollArea), [s, c] = P.useState(), l = P.useRef(null), u = i(t, l, o.onScrollbarXChange);
return P.useEffect(() => {
l.current && c(getComputedStyle(l.current));
}, [l]), /* @__PURE__ */ (0, F.jsx)(ye, {
"data-orientation": "horizontal",
...a,
ref: u,
sizes: n,
style: {
bottom: 0,
left: o.dir === "rtl" ? "var(--radix-scroll-area-corner-width)" : 0,
right: o.dir === "ltr" ? "var(--radix-scroll-area-corner-width)" : 0,
"--radix-scroll-area-thumb-width": H(n) + "px",
...e.style
},
onThumbPointerDown: (t) => e.onThumbPointerDown(t.x),
onDragScroll: (t) => e.onDragScroll(t.x),
onWheelScroll: (t, n) => {
if (o.viewport) {
let r = o.viewport.scrollLeft + t.deltaX;
e.onWheelScroll(r), Ae(r, n) && t.preventDefault();
}
},
onResize: () => {
l.current && o.viewport && s && r({
content: o.viewport.scrollWidth,
viewport: o.viewport.offsetWidth,
scrollbar: {
size: l.current.clientWidth,
paddingStart: V(s.paddingLeft),
paddingEnd: V(s.paddingRight)
}
});
}
});
}), ge = P.forwardRef((e, t) => {
let { sizes: n, onSizesChange: r, ...a } = e, o = z(B, e.__scopeScrollArea), [s, c] = P.useState(), l = P.useRef(null), u = i(t, l, o.onScrollbarYChange);
return P.useEffect(() => {
l.current && c(getComputedStyle(l.current));
}, [l]), /* @__PURE__ */ (0, F.jsx)(ye, {
"data-orientation": "vertical",
...a,
ref: u,
sizes: n,
style: {
top: 0,
right: o.dir === "ltr" ? 0 : void 0,
left: o.dir === "rtl" ? 0 : void 0,
bottom: "var(--radix-scroll-area-corner-height)",
"--radix-scroll-area-thumb-height": H(n) + "px",
...e.style
},
onThumbPointerDown: (t) => e.onThumbPointerDown(t.y),
onDragScroll: (t) => e.onDragScroll(t.y),
onWheelScroll: (t, n) => {
if (o.viewport) {
let r = o.viewport.scrollTop + t.deltaY;
e.onWheelScroll(r), Ae(r, n) && t.preventDefault();
}
},
onResize: () => {
l.current && o.viewport && s && r({
content: o.viewport.scrollHeight,
viewport: o.viewport.offsetHeight,
scrollbar: {
size: l.current.clientHeight,
paddingStart: V(s.paddingTop),
paddingEnd: V(s.paddingBottom)
}
});
}
});
}), [_e, ve] = L(B), ye = P.forwardRef((e, t) => {
let { __scopeScrollArea: n, sizes: r, hasThumb: a, onThumbChange: o, onThumbPointerUp: s, onThumbPointerDown: c, onThumbPositionChange: l, onDragScroll: u, onWheelScroll: f, onResize: p, ...m } = e, g = z(B, n), [_, v] = P.useState(null), y = i(t, (e) => v(e)), b = P.useRef(null), x = P.useRef(""), S = g.viewport, C = r.content - r.viewport, w = E(f), T = E(l), D = U(p, 10);
function O(e) {
b.current && u({
x: e.clientX - b.current.left,
y: e.clientY - b.current.top
});
}
return P.useEffect(() => {
let e = (e) => {
let t = e.target;
_ != null && _.contains(t) && w(e, C);
};
return document.addEventListener("wheel", e, { passive: !1 }), () => document.removeEventListener("wheel", e, { passive: !1 });
}, [
S,
_,
C,
w
]), P.useEffect(T, [r, T]), W(_, D), W(g.content, D), /* @__PURE__ */ (0, F.jsx)(_e, {
scope: n,
scrollbar: _,
hasThumb: a,
onThumbChange: E(o),
onThumbPointerUp: E(s),
onThumbPositionChange: T,
onThumbPointerDown: E(c),
children: /* @__PURE__ */ (0, F.jsx)(h.div, {
...m,
ref: y,
style: {
position: "absolute",
...m.style
},
onPointerDown: d(e.onPointerDown, (e) => {
e.button === 0 && (e.target.setPointerCapture(e.pointerId), b.current = _.getBoundingClientRect(), x.current = document.body.style.webkitUserSelect, document.body.style.webkitUserSelect = "none", g.viewport && (g.viewport.style.scrollBehavior = "auto"), O(e));
}),
onPointerMove: d(e.onPointerMove, O),
onPointerUp: d(e.onPointerUp, (e) => {
let t = e.target;
t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), document.body.style.webkitUserSelect = x.current, g.viewport && (g.viewport.style.scrollBehavior = ""), b.current = null;
})
})
});
}), be = "ScrollAreaThumb", xe = P.forwardRef((e, t) => {
let { forceMount: n, ...r } = e, i = ve(be, e.__scopeScrollArea);
return /* @__PURE__ */ (0, F.jsx)(g, {
present: n || i.hasThumb,
children: /* @__PURE__ */ (0, F.jsx)(Se, {
ref: t,
...r
})
});
}), Se = P.forwardRef((e, t) => {
let { __scopeScrollArea: n, style: r, ...a } = e, o = z(be, n), s = ve(be, n), { onThumbPositionChange: c } = s, l = i(t, (e) => s.onThumbChange(e)), u = P.useRef(void 0), f = U(() => {
u.current && (u.current(), u.current = void 0);
}, 100);
return P.useEffect(() => {
let e = o.viewport;
if (e) {
let t = () => {
f(), u.current || (u.current = je(e, c), c());
};
return c(), e.addEventListener("scroll", t), () => e.removeEventListener("scroll", t);
}
}, [
o.viewport,
f,
c
]), /* @__PURE__ */ (0, F.jsx)(h.div, {
"data-state": s.hasThumb ? "visible" : "hidden",
...a,
ref: l,
style: {
width: "var(--radix-scroll-area-thumb-width)",
height: "var(--radix-scroll-area-thumb-height)",
...r
},
onPointerDownCapture: d(e.onPointerDownCapture, (e) => {
let t = e.target.getBoundingClientRect(), n = e.clientX - t.left, r = e.clientY - t.top;
s.onThumbPointerDown({
x: n,
y: r
});
}),
onPointerUp: d(e.onPointerUp, s.onThumbPointerUp)
});
});
xe.displayName = be;
var Ce = "ScrollAreaCorner", we = P.forwardRef((e, t) => {
let n = z(Ce, e.__scopeScrollArea), r = !!(n.scrollbarX && n.scrollbarY);
return n.type !== "scroll" && r ? /* @__PURE__ */ (0, F.jsx)(Te, {
...e,
ref: t
}) : null;
});
we.displayName = Ce;
var Te = P.forwardRef((e, t) => {
let { __scopeScrollArea: n, ...r } = e, i = z(Ce, n), [a, o] = P.useState(0), [s, c] = P.useState(0), l = !!(a && s);
return W(i.scrollbarX, () => {
var e;
let t = ((e = i.scrollbarX) == null ? void 0 : e.offsetHeight) || 0;
i.onCornerHeightChange(t), c(t);
}), W(i.scrollbarY, () => {
var e;
let t = ((e = i.scrollbarY) == null ? void 0 : e.offsetWidth) || 0;
i.onCornerWidthChange(t), o(t);
}), l ? /* @__PURE__ */ (0, F.jsx)(h.div, {
...r,
ref: t,
style: {
width: a,
height: s,
position: "absolute",
right: i.dir === "ltr" ? 0 : void 0,
left: i.dir === "rtl" ? 0 : void 0,
bottom: 0,
...e.style
}
}) : null;
});
function V(e) {
return e ? parseInt(e, 10) : 0;
}
function Ee(e, t) {
let n = e / t;
return isNaN(n) ? 0 : n;
}
function H(e) {
let t = Ee(e.viewport, e.content), n = e.scrollbar.paddingStart + e.scrollbar.paddingEnd, r = (e.scrollbar.size - n) * t;
return Math.max(r, 18);
}
function De(e, t, n, r = "ltr") {
let i = H(n), a = i / 2, o = t || a, s = i - o, c = n.scrollbar.paddingStart + o, l = n.scrollbar.size - n.scrollbar.paddingEnd - s, u = n.content - n.viewport, d = r === "ltr" ? [0, u] : [u * -1, 0];
return ke([c, l], d)(e);
}
function Oe(e, t, n = "ltr") {
let r = H(t), i = t.scrollbar.paddingStart + t.scrollbar.paddingEnd, a = t.scrollbar.size - i, o = t.content - t.viewport, s = a - r, c = N(e, n === "ltr" ? [0, o] : [o * -1, 0]);
return ke([0, o], [0, s])(c);
}
function ke(e, t) {
return (n) => {
if (e[0] === e[1] || t[0] === t[1]) return t[0];
let r = (t[1] - t[0]) / (e[1] - e[0]);
return t[0] + r * (n - e[0]);
};
}
function Ae(e, t) {
return e > 0 && e < t;
}
var je = (e, t = () => {}) => {
let n = {
left: e.scrollLeft,
top: e.scrollTop
}, r = 0;
return (function i() {
let a = {
left: e.scrollLeft,
top: e.scrollTop
}, o = n.left !== a.left, s = n.top !== a.top;
(o || s) && t(), n = a, r = window.requestAnimationFrame(i);
})(), () => window.cancelAnimationFrame(r);
};
function U(e, t) {
let n = E(e), r = P.useRef(0);
return P.useEffect(() => () => window.clearTimeout(r.current), []), P.useCallback(() => {
window.clearTimeout(r.current), r.current = window.setTimeout(n, t);
}, [n, t]);
}
function W(e, t) {
let n = E(t);
m(() => {
let t = 0;
if (e) {
let r = new ResizeObserver(() => {
cancelAnimationFrame(t), t = window.requestAnimationFrame(n);
});
return r.observe(e), () => {
window.cancelAnimationFrame(t), r.unobserve(e);
};
}
}, [e, n]);
}
var Me = se, Ne = le, Pe = ue, Fe = xe, Ie = /* @__PURE__ */ e(r(), 1), Le = [
" ",
"Enter",
"ArrowUp",
"ArrowDown"
], Re = [" ", "Enter"], G = "Select", [ze, Be, Ve] = ne(G), [K, He] = p(G, [Ve, j]), Ue = j(), [We, q] = K(G), [Ge, Ke] = K(G), qe = (e) => {
let { __scopeSelect: t, children: n, open: r, defaultOpen: i, onOpenChange: a, value: o, defaultValue: s, onValueChange: c, dir: l, name: u, autoComplete: d, disabled: p, required: m, form: h } = e, g = Ue(t), [_, v] = P.useState(null), [y, b] = P.useState(null), [x, w] = P.useState(!1), T = C(l), [E, D] = f({
prop: r,
defaultProp: i == null ? !1 : i,
onChange: a,
caller: G
}), [k, A] = f({
prop: o,
defaultProp: s,
onChange: c,
caller: G
}), j = P.useRef(null), ee = _ ? h || !!_.closest("form") : !0, [te, ne] = P.useState(/* @__PURE__ */ new Set()), M = Array.from(te).map((e) => e.props.value).join(";");
return /* @__PURE__ */ (0, F.jsx)(O, {
...g,
children: /* @__PURE__ */ (0, F.jsxs)(We, {
required: m,
scope: t,
trigger: _,
onTriggerChange: v,
valueNode: y,
onValueNodeChange: b,
valueNodeHasChildren: x,
onValueNodeHasChildrenChange: w,
contentId: S(),
value: k,
onValueChange: A,
open: E,
onOpenChange: D,
dir: T,
triggerPointerDownPosRef: j,
disabled: p,
children: [/* @__PURE__ */ (0, F.jsx)(ze.Provider, {
scope: t,
children: /* @__PURE__ */ (0, F.jsx)(Ge, {
scope: e.__scopeSelect,
onNativeOptionAdd: P.useCallback((e) => {
ne((t) => new Set(t).add(e));
}, []),
onNativeOptionRemove: P.useCallback((e) => {
ne((t) => {
let n = new Set(t);
return n.delete(e), n;
});
}, []),
children: n
})
}), ee ? /* @__PURE__ */ (0, F.jsxs)(Lt, {
"aria-hidden": !0,
required: m,
tabIndex: -1,
name: u,
autoComplete: d,
value: k,
onChange: (e) => A(e.target.value),
disabled: p,
form: h,
children: [k === void 0 ? /* @__PURE__ */ (0, F.jsx)("option", { value: "" }) : null, Array.from(te)]
}, M) : null]
})
});
};
qe.displayName = G;
var Je = "SelectTrigger", Ye = P.forwardRef((e, t) => {
let { __scopeSelect: n, disabled: r = !1, ...a } = e, o = Ue(n), s = q(Je, n), c = s.disabled || r, l = i(t, s.onTriggerChange), u = Be(n), f = P.useRef("touch"), [p, m, g] = zt((e) => {
let t = u().filter((e) => !e.disabled), n = Bt(t, e, t.find((e) => e.value === s.value));
n !== void 0 && s.onValueChange(n.value);
}), _ = (e) => {
c || (s.onOpenChange(!0), g()), e && (s.triggerPointerDownPosRef.current = {
x: Math.round(e.pageX),
y: Math.round(e.pageY)
});
};
return /* @__PURE__ */ (0, F.jsx)(A, {
asChild: !0,
...o,
children: /* @__PURE__ */ (0, F.jsx)(h.button, {
type: "button",
role: "combobox",
"aria-controls": s.contentId,
"aria-expanded": s.open,
"aria-required": s.required,
"aria-autocomplete": "none",
dir: s.dir,
"data-state": s.open ? "open" : "closed",
disabled: c,
"data-disabled": c ? "" : void 0,
"data-placeholder": Rt(s.value) ? "" : void 0,
...a,
ref: l,
onClick: d(a.onClick, (e) => {
e.currentTarget.focus(), f.current !== "mouse" && _(e);
}),
onPointerDown: d(a.onPointerDown, (e) => {
f.current = e.pointerType;
let t = e.target;
t.hasPointerCapture(e.pointerId) && t.releasePointerCapture(e.pointerId), e.button === 0 && e.ctrlKey === !1 && e.pointerType === "mouse" && (_(e), e.preventDefault());
}),
onKeyDown: d(a.onKeyDown, (e) => {
let t = p.current !== "";
!(e.ctrlKey || e.altKey || e.metaKey) && e.key.length === 1 && m(e.key), !(t && e.key === " ") && Le.includes(e.key) && (_(), e.preventDefault());
})
})
});
});
Ye.displayName = Je;
var Xe = "SelectValue", Ze = P.forwardRef((e, t) => {
let { __scopeSelect: n, className: r, style: a, children: o, placeholder: s = "", ...c } = e, l = q(Xe, n), { onValueNodeHasChildrenChange: u } = l, d = o !== void 0, f = i(t, l.onValueNodeChange);
return m(() => {
u(d);
}, [u, d]), /* @__PURE__ */ (0, F.jsx)(h.span, {
...c,
ref: f,
style: { pointerEvents: "none" },
children: Rt(l.value) ? /* @__PURE__ */ (0, F.jsx)(F.Fragment, { children: s }) : o
});
});
Ze.displayName = Xe;
var Qe = "SelectIcon", $e = P.forwardRef((e, t) => {
let { __scopeSelect: n, children: r, ...i } = e;
return /* @__PURE__ */ (0, F.jsx)(h.span, {
"aria-hidden": !0,
...i,
ref: t,
children: r || "▼"
});
});
$e.displayName = Qe;
var et = "SelectPortal", tt = (e) => /* @__PURE__ */ (0, F.jsx)(b, {
asChild: !0,
...e
});
tt.displayName = et;
var J = "SelectContent", nt = P.forwardRef((e, t) => {
let n = q(J, e.__scopeSelect), [r, i] = P.useState();
if (m(() => {
i(new DocumentFragment());
}, []), !n.open) {
let t = r;
return t ? Ie.createPortal(/* @__PURE__ */ (0, F.jsx)(rt, {
scope: e.__scopeSelect,
children: /* @__PURE__ */ (0, F.jsx)(ze.Slot, {
scope: e.__scopeSelect,
children: /* @__PURE__ */ (0, F.jsx)("div", { children: e.children })
})
}), t) : null;
}
return /* @__PURE__ */ (0, F.jsx)(ot, {
...e,
ref: t
});
});
nt.displayName = J;
var Y = 10, [rt, X] = K(J), it = "SelectContentImpl", at = a("SelectContent.RemoveScroll"), ot = P.forwardRef((e, t) => {
let { __scopeSelect: n, position: r = "item-aligned", onCloseAutoFocus: a, onEscapeKeyDown: o, onPointerDownOutside: s, side: c, sideOffset: l, align: u, alignOffset: f, arrowPadding: p, collisionBoundary: m, collisionPadding: h, sticky: g, hideWhenDetached: _, avoidCollisions: v, ...b } = e, S = q(J, n), [C, w] = P.useState(null), [E, D] = P.useState(null), O = i(t, (e) => w(e)), [A, j] = P.useState(null), [ee, ne] = P.useState(null), M = Be(n), [re, ie] = P.useState(!1), N = P.useRef(!1);
P.useEffect(() => {
if (C) return y(C);
}, [C]), te();
let ae = P.useCallback((e) => {
let [t, ...n] = M().map((e) => e.ref.current), [r] = n.slice(-1), i = document.activeElement;
for (let n of e) if (n === i || (n == null || n.scrollIntoView({ block: "nearest" }), n === t && E && (E.scrollTop = 0), n === r && E && (E.scrollTop = E.scrollHeight), n == null || n.focus(), document.activeElement !== i)) return;
}, [M, E]), I = P.useCallback(() => ae([A, C]), [
ae,
A,
C
]);
P.useEffect(() => {
re && I();
}, [re, I]);
let { onOpenChange: L, triggerPointerDownPosRef: R } = S;
P.useEffect(() => {
if (C) {
let e = {
x: 0,
y: 0
}, t = (t) => {
var n, r, i, a;
e = {
x: Math.abs(Math.round(t.pageX) - ((n = (r = R.current) == null ? void 0 : r.x) == null ? 0 : n)),
y: Math.abs(Math.round(t.pageY) - ((i = (a = R.current) == null ? void 0 : a.y) == null ? 0 : i))
};
}, n = (n) => {
e.x <= 10 && e.y <= 10 ? n.preventDefault() : C.contains(n.target) || L(!1), document.removeEventListener("pointermove", t), R.current = null;
};
return R.current !== null && (document.addEventListener("pointermove", t), document.addEventListener("pointerup", n, {
capture: !0,
once: !0
})), () => {
document.removeEventListener("pointermove", t), document.removeEventListener("pointerup", n, { capture: !0 });
};
}
}, [
C,
L,
R
]), P.useEffect(() => {
let e = () => L(!1);
return window.addEventListener("blur", e), window.addEventListener("resize", e), () => {
window.removeEventListener("blur", e), window.removeEventListener("resize", e);
};
}, [L]);
let [oe, z] = zt((e) => {
let t = M().filter((e) => !e.disabled), n = Bt(t, e, t.find((e) => e.ref.current === document.activeElement));
n && setTimeout(() => n.ref.current.focus());
}), se = P.useCallback((e, t, n) => {
let r = !N.current && !n;
(S.value !== void 0 && S.value === t || r) && (j(e), r && (N.current = !0));
}, [S.value]), ce = P.useCallback(() => C == null ? void 0 : C.focus(), [C]), le = P.useCallback((e, t, n) => {
let r = !N.current && !n;
(S.value !== void 0 && S.value === t || r) && ne(e);
}, [S.value]), B = r === "popper" ? ut : ct, ue = B === ut ? {
side: c,
sideOffset: l,
align: u,
alignOffset: f,
arrowPadding: p,
collisionBoundary: m,
collisionPadding: h,
sticky: g,
hideWhenDetached: _,
avoidCollisions: v
} : {};
return /* @__PURE__ */ (0, F.jsx)(rt, {
scope: n,
content: C,
viewport: E,
onViewportChange: D,
itemRefCallback: se,
selectedItem: A,
onItemLeave: ce,
itemTextRefCallback: le,
focusSelectedItem: I,
selectedItemText: ee,
position: r,
isPositioned: re,
searchRef: oe,
children: /* @__PURE__ */ (0, F.jsx)(T, {
as: at,
allowPinchZoom: !0,
children: /* @__PURE__ */ (0, F.jsx)(x, {
asChild: !0,
trapped: S.open,
onMountAutoFocus: (e) => {
e.preventDefault();
},
onUnmountAutoFocus: d(a, (e) => {
var t;
(t = S.trigger) == null || t.focus({ preventScroll: !0 }), e.preventDefault();
}),
children: /* @__PURE__ */ (0, F.jsx)(k, {
asChild: !0,
disableOutsidePointerEvents: !0,
onEscapeKeyDown: o,
onPointerDownOutside: s,
onFocusOutside: (e) => e.preventDefault(),
onDismiss: () => S.onOpenChange(!1),
children: /* @__PURE__ */ (0, F.jsx)(B, {
role: "listbox",
id: S.contentId,
"data-state": S.open ? "open" : "closed",
dir: S.dir,
onContextMenu: (e) => e.preventDefault(),
...b,
...ue,
onPlaced: () => ie(!0),
ref: O,
style: {
display: "flex",
flexDirection: "column",
outline: "none",
...b.style
},
onKeyDown: d(b.onKeyDown, (e) => {
let t = e.ctrlKey || e.altKey || e.metaKey;
if (e.key === "Tab" && e.preventDefault(), !t && e.key.length === 1 && z(e.key), [
"ArrowUp",
"ArrowDown",
"Home",
"End"
].includes(e.key)) {
let t = M().filter((e) => !e.disabled).map((e) => e.ref.current);
if (["ArrowUp", "End"].includes(e.key) && (t = t.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(e.key)) {
let n = e.target, r = t.indexOf(n);
t = t.slice(r + 1);
}
setTimeout(() => ae(t)), e.preventDefault();
}
})
})
})
})
})
});
});
ot.displayName = it;
var st = "SelectItemAlignedPosition", ct = P.forwardRef((e, t) => {
let { __scopeSelect: n, onPlaced: r, ...a } = e, o = q(J, n), s = X(J, n), [c, l] = P.useState(null), [u, d] = P.useState(null), f = i(t, (e) => d(e)), p = Be(n), g = P.useRef(!1), _ = P.useRef(!0), { viewport: v, selectedItem: y, selectedItemText: b, focusSelectedItem: x } = s, S = P.useCallback(() => {
if (o.trigger && o.valueNode && c && u && v && y && b) {
let e = o.trigger.getBoundingClientRect(), t = u.getBoundingClientRect(), n = o.valueNode.getBoundingClientRect(), i = b.getBoundingClientRect();
if (o.dir !== "rtl") {
let r = i.left - t.left, a = n.left - r, o = e.left - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - Y, d = N(a, [Y, Math.max(Y, u - l)]);
c.style.minWidth = s + "px", c.style.left = d + "px";
} else {
let r = t.right - i.right, a = window.innerWidth - n.right - r, o = window.innerWidth - e.right - a, s = e.width + o, l = Math.max(s, t.width), u = window.innerWidth - Y, d = N(a, [Y, Math.max(Y, u - l)]);
c.style.minWidth = s + "px", c.style.right = d + "px";
}
let a = p(), s = window.innerHeight - Y * 2, l = v.scrollHeight, d = window.getComputedStyle(u), f = parseInt(d.borderTopWidth, 10), m = parseInt(d.paddingTop, 10), h = parseInt(d.borderBottomWidth, 10), _ = parseInt(d.paddingBottom, 10), x = f + m + l + _ + h, S = Math.min(y.offsetHeight * 5, x), C = window.getComputedStyle(v), w = parseInt(C.paddingTop, 10), T = parseInt(C.paddingBottom, 10), E = e.top + e.height / 2 - Y, D = s - E, O = y.offsetHeight / 2, k = y.offsetTop + O, A = f + m + k, j = x - A;
if (A <= E) {
let e = a.length > 0 && y === a[a.length - 1].ref.current;
c.style.bottom = "0px";
let t = u.clientHeight - v.offsetTop - v.offsetHeight, n = A + Math.max(D, O + (e ? T : 0) + t + h);
c.style.height = n + "px";
} else {
let e = a.length > 0 && y === a[0].ref.current;
c.style.top = "0px";
let t = Math.max(E, f + v.offsetTop + (e ? w : 0) + O) + j;
c.style.height = t + "px", v.scrollTop = A - E + v.offsetTop;
}
c.style.margin = `${Y}px 0`, c.style.minHeight = S + "px", c.style.maxHeight = s + "px", r == null || r(), requestAnimationFrame(() => g.current = !0);
}
}, [
p,
o.trigger,
o.valueNode,
c,
u,
v,
y,
b,
o.dir,
r
]);
m(() => S(), [S]);
let [C, w] = P.useState();
return m(() => {
u && w(window.getComputedStyle(u).zIndex);
}, [u]), /* @__PURE__ */ (0, F.jsx)(dt, {
scope: n,
contentWrapper: c,
shouldExpandOnScrollRef: g,
onScrollButtonChange: P.useCallback((e) => {
e && _.current === !0 && (S(), x == null || x(), _.current = !1);
}, [S, x]),
children: /* @__PURE__ */ (0, F.jsx)("div", {
ref: l,
style: {
display: "flex",
flexDirection: "column",
position: "fixed",
zIndex: C
},
children: /* @__PURE__ */ (0, F.jsx)(h.div, {
...a,
ref: f,
style: {
boxSizing: "border-box",
maxHeight: "100%",
...a.style
}
})
})
});
});
ct.displayName = st;
var lt = "SelectPopperPosition", ut = P.forwardRef((e, t) => {
let { __scopeSelect: n, align: r = "start", collisionPadding: i = Y, ...a } = e, o = Ue(n);
return /* @__PURE__ */ (0, F.jsx)(_, {
...o,
...a,
ref: t,
align: r,
collisionPadding: i,
style: {
boxSizing: "border-box",
...a.style,
"--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
"--radix-select-content-available-width": "var(--radix-popper-available-width)",
"--radix-select-content-available-height": "var(--radix-popper-available-height)",
"--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
"--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
}
});
});
ut.displayName = lt;
var [dt, ft] = K(J, {}), pt = "SelectViewport", mt = P.forwardRef((e, t) => {
let { __scopeSelect: n, nonce: r, ...a } = e, o = X(pt, n), s = ft(pt, n), c = i(t, o.onViewportChange), l = P.useRef(0);
return /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsx)("style", {
dangerouslySetInnerHTML: { __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}" },
nonce: r
}), /* @__PURE__ */ (0, F.jsx)(ze.Slot, {
scope: n,
children: /* @__PURE__ */ (0, F.jsx)(h.div, {
"data-radix-select-viewport": "",
role: "presentation",
...a,
ref: c,
style: {
position: "relative",
flex: 1,
overflow: "hidden auto",
...a.style
},
onScroll: d(a.onScroll, (e) => {
let t = e.currentTarget, { contentWrapper: n, shouldExpandOnScrollRef: r } = s;
if (r != null && r.current && n) {
let e = Math.abs(l.current - t.scrollTop);
if (e > 0) {
let r = window.innerHeight - Y * 2, i = parseFloat(n.style.minHeight), a = parseFloat(n.style.height), o = Math.max(i, a);
if (o < r) {
let i = o + e, a = Math.min(r, i), s = i - a;
n.style.height = a + "px", n.style.bottom === "0px" && (t.scrollTop = s > 0 ? s : 0, n.style.justifyContent = "flex-end");
}
}
}
l.current = t.scrollTop;
})
})
})] });
});
mt.displayName = pt;
var ht = "SelectGroup", [gt, _t] = K(ht), vt = P.forwardRef((e, t) => {
let { __scopeSelect: n, ...r } = e, i = S();
return /* @__PURE__ */ (0, F.jsx)(gt, {
scope: n,
id: i,
children: /* @__PURE__ */ (0, F.jsx)(h.div, {
role: "group",
"aria-labelledby": i,
...r,
ref: t
})
});
});
vt.displayName = ht;
var yt = "SelectLabel", bt = P.forwardRef((e, t) => {
let { __scopeSelect: n, ...r } = e, i = _t(yt, n);
return /* @__PURE__ */ (0, F.jsx)(h.div, {
id: i.id,
...r,
ref: t
});
});
bt.displayName = yt;
var Z = "SelectItem", [xt, St] = K(Z), Ct = P.forwardRef((e, t) => {
let { __scopeSelect: n, value: r, disabled: a = !1, textValue: o, ...s } = e, c = q(Z, n), l = X(Z, n), u = c.value === r, [f, p] = P.useState(o == null ? "" : o), [m, g] = P.useState(!1), _ = i(t, (e) => {
var t;
return (t = l.itemRefCallback) == null ? void 0 : t.call(l, e, r, a);
}), v = S(), y = P.useRef("touch"), b = () => {
a || (c.onValueChange(r), c.onOpenChange(!1));
};
if (r === "") throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");
return /* @__PURE__ */ (0, F.jsx)(xt, {
scope: n,
value: r,
disabled: a,
textId: v,
isSelected: u,
onItemTextChange: P.useCallback((e) => {
p((t) => {
var n;
return t || ((n = e == null ? void 0 : e.textContent) == null ? "" : n).trim();
});
}, []),
children: /* @__PURE__ */ (0, F.jsx)(ze.ItemSlot, {
scope: n,
value: r,
disabled: a,
textValue: f,
children: /* @__PURE__ */ (0, F.jsx)(h.div, {
role: "option",
"aria-labelledby": v,
"data-highlighted": m ? "" : void 0,
"aria-selected": u && m,
"data-state": u ? "checked" : "unchecked",
"aria-disabled": a || void 0,
"data-disabled": a ? "" : void 0,
tabIndex: a ? void 0 : -1,
...s,
ref: _,
onFocus: d(s.onFocus, () => g(!0)),
onBlur: d(s.onBlur, () => g(!1)),
onClick: d(s.onClick, () => {
y.current !== "mouse" && b();
}),
onPointerUp: d(s.onPointerUp, () => {
y.current === "mouse" && b();
}),
onPointerDown: d(s.onPointerDown, (e) => {
y.current = e.pointerType;
}),
onPointerMove: d(s.onPointerMove, (e) => {
if (y.current = e.pointerType, a) {
var t;
(t = l.onItemLeave) == null || t.call(l);
} else y.current === "mouse" && e.currentTarget.focus({ preventScroll: !0 });
}),
onPointerLeave: d(s.onPointerLeave, (e) => {
if (e.currentTarget === document.activeElement) {
var t;
(t = l.onItemLeave) == null || t.call(l);
}
}),
onKeyDown: d(s.onKeyDown, (e) => {
var t;
((t = l.searchRef) == null ? void 0 : t.current) !== "" && e.key === " " || (Re.includes(e.key) && b(), e.key === " " && e.preventDefault());
})
})
})
});
});
Ct.displayName = Z;
var Q = "SelectItemText", wt = P.forwardRef((e, t) => {
let { __scopeSelect: n, className: r, style: a, ...o } = e, s = q(Q, n), c = X(Q, n), l = St(Q, n), u = Ke(Q, n), [d, f] = P.useState(null), p = i(t, (e) => f(e), l.onItemTextChange, (e) => {
var t;
return (t = c.itemTextRefCallback) == null ? void 0 : t.call(c, e, l.value, l.disabled);
}), g = d == null ? void 0 : d.textContent, _ = P.useMemo(() => /* @__PURE__ */ (0, F.jsx)("option", {
value: l.value,
disabled: l.disabled,
children: g
}, l.value), [
l.disabled,
l.value,
g
]), { onNativeOptionAdd: v, onNativeOptionRemove: y } = u;
return m(() => (v(_), () => y(_)), [
v,
y,
_
]), /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [/* @__PURE__ */ (0, F.jsx)(h.span, {
id: l.textId,
...o,
ref: p
}), l.isSelected && s.valueNode && !s.valueNodeHasChildren ? Ie.createPortal(o.children, s.valueNode) : null] });
});
wt.displayName = Q;
var Tt = "SelectItemIndicator", Et = P.forwardRef((e, t) => {
let { __scopeSelect: n, ...r } = e;
return St(Tt, n).isSelected ? /* @__PURE__ */ (0, F.jsx)(h.span, {
"aria-hidden": !0,
...r,
ref: t
}) : null;
});
Et.displayName = Tt;
var Dt = "SelectScrollUpButton", Ot = P.forwardRef((e, t) => {
let n = X(Dt, e.__scopeSelect), r = ft(Dt, e.__scopeSelect), [a, o] = P.useState(!1), s = i(t, r.onScrollButtonChange);
return m(() => {
if (n.viewport && n.isPositioned) {
let e = function() {
o(t.scrollTop > 0);
}, t = n.viewport;
return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
}
}, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, F.jsx)(jt, {
...e,
ref: s,
onAutoScroll: () => {
let { viewport: e, selectedItem: t } = n;
e && t && (e.scrollTop -= t.offsetHeight);
}
}) : null;
});
Ot.displayName = Dt;
var kt = "SelectScrollDownButton", At = P.forwardRef((e, t) => {
let n = X(kt, e.__scopeSelect), r = ft(kt, e.__scopeSelect), [a, o] = P.useState(!1), s = i(t, r.onScrollButtonChange);
return m(() => {
if (n.viewport && n.isPositioned) {
let e = function() {
let e = t.scrollHeight - t.clientHeight;
o(Math.ceil(t.scrollTop) < e);
}, t = n.viewport;
return e(), t.addEventListener("scroll", e), () => t.removeEventListener("scroll", e);
}
}, [n.viewport, n.isPositioned]), a ? /* @__PURE__ */ (0, F.jsx)(jt, {
...e,
ref: s,
onAutoScroll: () => {
let { viewport: e, selectedItem: t } = n;
e && t && (e.scrollTop += t.offsetHeight);
}
}) : null;
});
At.displayName = kt;
var jt = P.forwardRef((e, t) => {
let { __scopeSelect: n, onAutoScroll: r, ...i } = e, a = X("SelectScrollButton", n), o = P.useRef(null), s = Be(n), c = P.useCallback(() => {
o.current !== null && (window.clearInterval(o.current), o.current = null);
}, []);
return P.useEffect(() => () => c(), [c]), m(() => {
var e;
let t = s().find((e) => e.ref.current === document.activeElement);
t == null || (e = t.ref.current) == null || e.scrollIntoView({ block: "nearest" });
}, [s]), /* @__PURE__ */ (0, F.jsx)(h.div, {
"aria-hidden": !0,
...i,
ref: t,
style: {
flexShrink: 0,
...i.style
},
onPointerDown: d(i.onPointerDown, () => {
o.current === null && (o.current = window.setInterval(r, 50));
}),
onPointerMove: d(i.onPointerMove, () => {
var e;
(e = a.onItemLeave) == null || e.call(a), o.current === null && (o.current = window.setInterval(r, 50));
}),
onPointerLeave: d(i.onPointerLeave, () => {
c();
})
});
}), Mt = "SelectSeparator", Nt = P.forwardRef((e, t) => {
let { __scopeSelect: n, ...r } = e;
return /* @__PURE__ */ (0, F.jsx)(h.div, {
"aria-hidden": !0,
...r,
ref: t
});
});
Nt.displayName = Mt;
var Pt = "SelectArrow", Ft = P.forwardRef((e, t) => {
let { __scopeSelect: n, ...r } = e, i = Ue(n), a = q(Pt, n), o = X(Pt, n);
return a.open && o.position === "popper" ? /* @__PURE__ */ (0, F.jsx)(w, {
...i,
...r,
ref: t
}) : null;
});
Ft.displayName = Pt;
var It = "SelectBubbleInput", Lt = P.forwardRef(({ __scopeSelect: e, value: t, ...n }, r) => {
let a = P.useRef(null), o = i(r, a), s = M(t);
return P.useEffect(() => {
let e = a.current;
if (!e) return;
let n = window.HTMLSelectElement.prototype, r = Object.getOwnPropertyDescriptor(n, "value").set;
if (s !== t && r) {
let n = new Event("change", { bubbles: !0 });
r.call(e, t), e.dispatchEvent(n);
}
}, [s, t]), /* @__PURE__ */ (0, F.jsx)(h.select, {
...n,
style: {
...v,
...n.style
},
ref: o,
defaultValue: t
});
});
Lt.displayName = It;
function Rt(e) {
return e === "" || e === void 0;
}
function zt(e) {
let t = E(e), n = P.useRef(""), r = P.useRef(0), i = P.useCallback((e) => {
let i = n.current + e;
t(i), (function e(t) {
n.current = t, window.clearTimeout(r.current), t !== "" && (r.current = window.setTimeout(() => e(""), 1e3));
})(i);
}, [t]), a = P.useCallback(() => {
n.current = "", window.clearTimeout(r.current);
}, []);
return P.useEffect(() => () => window.clearTimeout(r.current), []), [
n,
i,
a
];
}
function Bt(e, t, n) {
let r = t.length > 1 && Array.from(t).every((e) => e === t[0]) ? t[0] : t, i = n ? e.indexOf(n) : -1, a = Vt(e, Math.max(i, 0));
r.length === 1 && (a = a.filter((e) => e !== n));
let o = a.find((e) => e.textValue.toLowerCase().startsWith(r.toLowerCase()));
return o === n ? void 0 : o;
}
function Vt(e, t) {
return e.map((n, r) => e[(t + r) % e.length]);
}
var Ht = qe, Ut = Ye, Wt = Ze, Gt = $e, Kt = tt, qt = nt, Jt = mt, Yt = vt, Xt = bt, Zt = Ct, Qt = wt, $t = Et, en = Nt, tn = P.forwardRef((e, t) => P.createElement("svg", {
width: "9",
height: "9",
viewBox: "0 0 9 9",
fill: "currentcolor",
xmlns: "http://www.w3.org/2000/svg",
...e,
ref: t
}, P.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M0.75 4.5C0.75 4.08579 1.08579 3.75 1.5 3.75H7.5C7.91421 3.75 8.25 4.08579 8.25 4.5C8.25 4.91421 7.91421 5.25 7.5 5.25H1.5C1.08579 5.25 0.75 4.91421 0.75 4.5Z"
})));
tn.displayName = "ThickDividerHorizontalIcon";
var nn = P.forwardRef((e, t) => P.createElement("svg", {
width: "9",
height: "9",
viewBox: "0 0 9 9",
fill: "currentcolor",
xmlns: "http://www.w3.org/2000/svg",
...e,
ref: t
}, P.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M8.53547 0.62293C8.88226 0.849446 8.97976 1.3142 8.75325 1.66099L4.5083 8.1599C4.38833 8.34356 4.19397 8.4655 3.9764 8.49358C3.75883 8.52167 3.53987 8.45309 3.3772 8.30591L0.616113 5.80777C0.308959 5.52987 0.285246 5.05559 0.563148 4.74844C0.84105 4.44128 1.31533 4.41757 1.62249 4.69547L3.73256 6.60459L7.49741 0.840706C7.72393 0.493916 8.18868 0.396414 8.53547 0.62293Z"
})));
nn.displayName = "ThickCheckIcon";
var rn = P.forwardRef((e, t) => P.createElement("svg", {
width: "9",
height: "9",
viewBox: "0 0 9 9",
fill: "currentcolor",
xmlns: "http://www.w3.org/2000/svg",
...e,
ref: t
}, P.createElement("path", { d: "M0.135232 3.15803C0.324102 2.95657 0.640521 2.94637 0.841971 3.13523L4.5 6.56464L8.158 3.13523C8.3595 2.94637 8.6759 2.95657 8.8648 3.15803C9.0536 3.35949 9.0434 3.67591 8.842 3.86477L4.84197 7.6148C4.64964 7.7951 4.35036 7.7951 4.15803 7.6148L0.158031 3.86477C-0.0434285 3.67591 -0.0536285 3.35949 0.135232 3.15803Z" })));
rn.displayName = "ChevronDownIcon";
var an = P.forwardRef((e, t) => P.createElement("svg", {
width: "9",
height: "9",
viewBox: "0 0 9 9",
fill: "currentcolor",
xmlns: "http://www.w3.org/2000/svg",
...e,
ref: t
}, P.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M3.23826 0.201711C3.54108 -0.0809141 4.01567 -0.0645489 4.29829 0.238264L7.79829 3.98826C8.06724 4.27642 8.06724 4.72359 7.79829 5.01174L4.29829 8.76174C4.01567 9.06455 3.54108 9.08092 3.23826 8.79829C2.93545 8.51567 2.91909 8.04108 3.20171 7.73826L6.22409 4.5L3.20171 1.26174C2.91909 0.958928 2.93545 0.484337 3.23826 0.201711Z"
})));
an.displayName = "ThickChevronRightIcon";
//#endregion
//#region ../../node_modules/.pnpm/@radix-ui+themes@3.3.0_@types+react-dom@19.2.3_@types+react@19.2.17__@types+react@19.2._925f851475345a9e5e368d312bb98178/node_modules/@radix-ui/themes/dist/esm/components/select.props.js
var on = { size: {
type: "enum",
className: "rt-r-size",
values: [
"1",
"2",
"3"
],
default: "2",
responsive: !0
} }, sn = {
variant: {
type: "enum",
className: "rt-variant",
values: [
"classic",
"surface",
"soft",
"ghost"
],
default: "surface"
},
...u,
...c,
placeholder: { type: "string" }
}, cn = {
variant: {
type: "enum",
className: "rt-variant",
values: ["solid", "soft"],
default: "solid"
},
...u,
...o
}, $ = /* @__PURE__ */ e(re()), ln = P.createContext({}), un = (e) => {
let { children: t, size: n = on.size.default, ...r } = e;
return P.createElement(Ht, { ...r }, P.createElement(ln.Provider, { value: P.useMemo(() => ({ size: n }), [n]) }, t));
};
un.displayName = "Select.Root";
var dn = P.forwardRef((e, t) => {
let n = P.useContext(ln), { children: r, className: i, color: a, radius: o, placeholder: c, ...u } = l({
size: n == null ? void 0 : n.size,
...e
}, { size: on.size }, sn, s);
return P.createElement(Ut, { asChild: !0 }, P.createElement("button", {
"data-accent-color": a,
"data-radius": o,
...u,
ref: t,
className: (0, $.default)("rt-reset", "rt-SelectTrigger", i)
}, P.createElement("span", { className: "rt-SelectTriggerInner" }, P.createElement(Wt, { placeholder: c }, r)), P.createElement(Gt, { asChild: !0 }, P.createElement(rn, { className: "rt-SelectIcon" }))));
});
dn.displayName = "Select.Trigger";
var fn = P.forwardRef((e, t) => {
let n = P.useContext(ln), { className: r, children: i, color: a, container: o, ...s } = l({
size: n == null ? void 0 : n.size,
...e
}, { size: on.size }, cn), c = ee(), u = a || c.accentColor;
return P.createElement(Kt, { container: o }, P.createElement(D, { asChild: !0 }, P.createElement(qt, {
"data-accent-color": u,
sideOffset: 4,
...s,
asChild: !1,
ref: t,
className: (0, $.default)({ "rt-PopperContent": s.position === "popper" }, "rt-SelectContent", r)
}, P.createElement(Me, {
type: "auto",
className: "rt-ScrollAreaRoot"
}, P.createElement(Jt, {
asChild: !0,
className: "rt-SelectViewport"
}, P.createElement(Ne, {
className: "rt-ScrollAreaViewport",
style: { overflowY: void 0 }
}, i)), P.createElement(Pe, {
className: "rt-ScrollAreaScrollbar rt-r-size-1",
orientation: "vertical"
}, P.createElement(Fe, { className: "rt-ScrollAreaThumb" }))))));
});
fn.displayName = "Select.Content";
var pn = P.forwardRef((e, t) => {
let { className: n, children: r, ...i } = e;
return P.createElement(Zt, {
...i,
asChild: !1,
ref: t,
className: (0, $.default)("rt-SelectItem", n)
}, P.createElement($t, { className: "rt-SelectItemIndicator" }, P.createElement(nn, { className: "rt-SelectItemIndicatorIcon" })), P.createElement(Qt, null, r));
});
pn.displayName = "Select.Item";
var mn = P.forwardRef(({ className: e, ...t }, n) => P.createElement(Yt, {
...t,
asChild: !1,
ref: n,
className: (0, $.default)("rt-SelectGroup", e)
}));
mn.displayName = "Select.Group";
var hn = P.forwardRef(({ className: e, ...t }, n) => P.createElement(Xt, {
...t,
asChild: !1,
ref: n,
className: (0, $.default)("rt-SelectLabel", e)
}));
hn.displayName = "Select.Label";
var gn = P.forwardRef(({ className: e, ...t }, n) => P.createElement(en, {
...t,
asChild: !1,
ref: n,
className: (0, $.default)("rt-SelectSeparator", e)
}));
gn.displayName = "Select.Separator";
//#endregion
//#region ../debug/src/lib/ui/enum-editor.tsx
var _n = "__EMPTY__", vn = (e) => e === "" ? _n : e, yn = (e) => e === _n ? "" : e;
function bn(e) {
let t = e.context.values.every((e) => typeof e == "string"), n = t ? (e) => e : (e) => JSON.stringify(e), r = t ? (e) => e : (e) => JSON.parse(e), i = vn(n(e.value)), a = e.context.values.map((e) => ({
value: vn(n(e)),
label: n(e)
}));
return /* @__PURE__ */ (0, F.jsx)(ie, {
label: e.label,
children: /* @__PURE__ */ (0, F.jsxs)(un, {
value: i,
onValueChange: (t) => {
e.onChange(r(yn(t)));
},
children: [/* @__PURE__ */ (0, F.jsx)(dn, {}), /* @__PURE__ */ (0, F.jsx)(fn, { children: a.map((e) => /* @__PURE__ */ (0, F.jsx)(pn, {
value: e.value,
children: e.label
}, e.value)) })]
})
});
}
//#endregion
export { bn as EnumEditor };