UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

2 lines (1 loc) 1.28 kB
"use strict";const e=require("react/jsx-runtime"),t=require("react"),y=require("./misc-yOvtbcCM.js"),B=require("./useOpenState-E2H2jSZj.js"),F=require("./Button-CoJ-cT_W.js"),h=require("./IconSearchGrid-VWe2_LG2.js"),i=require("./Popover-B2LKUvk1.js"),G=({open:s,onOpenChange:a,defaultOpen:p=!1,modal:x=!1,searchPlaceholder:j="Search for an icon...",icons:I,onValueChange:l,columns:S,visibleRows:g,rowHeight:m,showTooltip:q,value:u,defaultValue:C,triggerPlaceholder:b="Select an icon",children:f,...k})=>{const[v,P]=t.useState(C),{isOpen:O,setIsOpen:d}=B.useOpenState(p),c=u!==void 0,r=c?u:v,R=s??O,o=t.useCallback(n=>{s===void 0&&d(n),a?.(n)},[s,a,d]),w=t.useCallback(n=>{c||P(n),l?.(n),o(!1)},[c,l,o]);return e.jsxs(i.PopoverRoot,{open:R,onOpenChange:o,modal:x,children:[e.jsx(i.PopoverTrigger,{asChild:!0,...k,children:f??e.jsx(F.Button,{variant:"outline",children:r?e.jsxs(e.Fragment,{children:[e.jsx(h.DynamicIcon,{name:r,className:"size-4.5 opacity-80"})," ",y.upperFirst(r.split("-").join(" "))]}):b})}),e.jsx(i.PopoverContent,{className:"w-96 rounded-xl border-black/10 bg-clip-padding pr-2 shadow-xl shadow-black/5",children:e.jsx(h.IconSearchGrid,{searchPlaceholder:j,icons:I,onValueChange:w,columns:S,visibleRows:g,rowHeight:m,showTooltip:q})})]})};exports.IconPicker=G;