@stanfordspezi/spezi-web-design-system
Version:
Stanford Biodesign Digital Health Spezi Web Design System
79 lines (78 loc) • 2.02 kB
JavaScript
import { jsxs as d, jsx as o, Fragment as B } from "react/jsx-runtime";
import { useState as D, useCallback as p } from "react";
import { u as F } from "./misc-CHmrAmhc.mjs";
import { u as N } from "./useOpenState-D7bIra9A.mjs";
import { B as z } from "./Button-nH76KtOO.mjs";
import { D as G, a as R } from "./IconSearchGrid-D3rPhw53.mjs";
import { e as T, g as V, b as q } from "./Popover-B_eTNIg4.mjs";
const Q = ({
// Popover root props
open: r,
onOpenChange: t,
defaultOpen: m = !1,
modal: h = !1,
// Icon search grid props
searchPlaceholder: f = "Search for an icon...",
icons: u,
onValueChange: c,
columns: g,
visibleRows: I,
rowHeight: b,
showTooltip: C,
// Trigger props
value: i,
defaultValue: S,
triggerPlaceholder: v = "Select an icon",
children: x,
...k
}) => {
const [O, P] = D(
S
), { isOpen: j, setIsOpen: l } = N(m), n = i !== void 0, s = n ? i : O, w = r ?? j, a = p(
(e) => {
r === void 0 && l(e), t?.(e);
},
[r, t, l]
), y = p(
(e) => {
n || P(e), c?.(e), a(!1);
},
[n, c, a]
);
return /* @__PURE__ */ d(
T,
{
open: w,
onOpenChange: a,
modal: h,
children: [
/* @__PURE__ */ o(V, { asChild: !0, ...k, children: x ?? /* @__PURE__ */ o(z, { variant: "outline", children: s ? /* @__PURE__ */ d(B, { children: [
/* @__PURE__ */ o(
G,
{
name: s,
className: "size-4.5 opacity-80"
}
),
" ",
F(s.split("-").join(" "))
] }) : v }) }),
/* @__PURE__ */ o(q, { className: "w-96 rounded-xl border-black/10 bg-clip-padding pr-2 shadow-xl shadow-black/5", children: /* @__PURE__ */ o(
R,
{
searchPlaceholder: f,
icons: u,
onValueChange: y,
columns: g,
visibleRows: I,
rowHeight: b,
showTooltip: C
}
) })
]
}
);
};
export {
Q as I
};