@stanfordspezi/spezi-web-design-system
Version:
Stanford Biodesign Digital Health Spezi Web Design System
2 lines (1 loc) • 5.09 kB
JavaScript
"use strict";const t=require("react/jsx-runtime"),v=require("./Collapsible-DIPKmZMq.js"),E=require("./index-DwV9MiDB.js"),Z=require("./chevron-down-Bf4uQviB.js"),l=require("react"),b=require("./index-Df0u7aLq.js"),V=require("./index-BsBb8abU.js"),ee=require("./index-k79m3Yno.js"),H=require("./index-4XkuMsix.js"),oe=require("./index-Bbq55jou.js");var d="Accordion",te=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[D,re,ne]=V.createCollection(d),[h,be]=b.createContextScope(d,[ne,v.createCollapsibleScope]),k=v.createCollapsibleScope(),$=l.forwardRef((e,n)=>{const{type:o,...c}=e,i=c,r=c;return t.jsx(D.Provider,{scope:e.__scopeAccordion,children:o==="multiple"?t.jsx(se,{...r,ref:n}):t.jsx(ae,{...i,ref:n})})});$.displayName=d;var[K,ce]=h(d),[z,ie]=h(d,{collapsible:!1}),ae=l.forwardRef((e,n)=>{const{value:o,defaultValue:c,onValueChange:i=()=>{},collapsible:r=!1,...s}=e,[a,p]=b.useControllableState({prop:o,defaultProp:c??"",onChange:i,caller:d});return t.jsx(K,{scope:e.__scopeAccordion,value:l.useMemo(()=>a?[a]:[],[a]),onItemOpen:p,onItemClose:l.useCallback(()=>r&&p(""),[r,p]),children:t.jsx(z,{scope:e.__scopeAccordion,collapsible:r,children:t.jsx(L,{...s,ref:n})})})}),se=l.forwardRef((e,n)=>{const{value:o,defaultValue:c,onValueChange:i=()=>{},...r}=e,[s,a]=b.useControllableState({prop:o,defaultProp:c??[],onChange:i,caller:d}),p=l.useCallback(m=>a((x=[])=>[...x,m]),[a]),f=l.useCallback(m=>a((x=[])=>x.filter(j=>j!==m)),[a]);return t.jsx(K,{scope:e.__scopeAccordion,value:s,onItemOpen:p,onItemClose:f,children:t.jsx(z,{scope:e.__scopeAccordion,collapsible:!0,children:t.jsx(L,{...r,ref:n})})})}),[le,I]=h(d),L=l.forwardRef((e,n)=>{const{__scopeAccordion:o,disabled:c,dir:i,orientation:r="vertical",...s}=e,a=l.useRef(null),p=ee.useComposedRefs(a,n),f=re(o),x=V.useDirection(i)==="ltr",j=b.composeEventHandlers(e.onKeyDown,C=>{var M;if(!te.includes(C.key))return;const W=C.target,_=f().filter(y=>{var O;return!((O=y.ref.current)!=null&&O.disabled)}),A=_.findIndex(y=>y.ref.current===W),q=_.length;if(A===-1)return;C.preventDefault();let u=A;const w=0,R=q-1,N=()=>{u=A+1,u>R&&(u=w)},P=()=>{u=A-1,u<w&&(u=R)};switch(C.key){case"Home":u=w;break;case"End":u=R;break;case"ArrowRight":r==="horizontal"&&(x?N():P());break;case"ArrowDown":r==="vertical"&&N();break;case"ArrowLeft":r==="horizontal"&&(x?P():N());break;case"ArrowUp":r==="vertical"&&P();break}const X=u%q;(M=_[X].ref.current)==null||M.focus()});return t.jsx(le,{scope:o,disabled:c,direction:i,orientation:r,children:t.jsx(D.Slot,{scope:o,children:t.jsx(H.Primitive.div,{...s,"data-orientation":r,ref:p,onKeyDown:c?void 0:j})})})}),g="AccordionItem",[de,T]=h(g),G=l.forwardRef((e,n)=>{const{__scopeAccordion:o,value:c,...i}=e,r=I(g,o),s=ce(g,o),a=k(o),p=oe.useId(),f=c&&s.value.includes(c)||!1,m=r.disabled||e.disabled;return t.jsx(de,{scope:o,open:f,disabled:m,triggerId:p,children:t.jsx(v.Root,{"data-orientation":r.orientation,"data-state":Q(f),...a,...i,ref:n,disabled:m,open:f,onOpenChange:x=>{x?s.onItemOpen(c):s.onItemClose(c)}})})});G.displayName=g;var U="AccordionHeader",Y=l.forwardRef((e,n)=>{const{__scopeAccordion:o,...c}=e,i=I(d,o),r=T(U,o);return t.jsx(H.Primitive.h3,{"data-orientation":i.orientation,"data-state":Q(r.open),"data-disabled":r.disabled?"":void 0,...c,ref:n})});Y.displayName=U;var S="AccordionTrigger",B=l.forwardRef((e,n)=>{const{__scopeAccordion:o,...c}=e,i=I(d,o),r=T(S,o),s=ie(S,o),a=k(o);return t.jsx(D.ItemSlot,{scope:o,children:t.jsx(v.Trigger,{"aria-disabled":r.open&&!s.collapsible||void 0,"data-orientation":i.orientation,id:r.triggerId,...a,...c,ref:n})})});B.displayName=S;var F="AccordionContent",J=l.forwardRef((e,n)=>{const{__scopeAccordion:o,...c}=e,i=I(d,o),r=T(F,o),s=k(o);return t.jsx(v.Content,{role:"region","aria-labelledby":r.triggerId,"data-orientation":i.orientation,...s,...c,ref:n,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});J.displayName=F;function Q(e){return e?"open":"closed"}var pe=$,ue=G,xe=Y,fe=B,me=J;const ve=e=>t.jsx(pe,{"data-slot":"accordion",...e}),Ce=({className:e,...n})=>t.jsx(ue,{"data-slot":"accordion-item",className:E.cn("border-b last:border-b-0",e),...n}),Ae=({className:e,children:n,...o})=>t.jsx(xe,{className:"flex",children:t.jsxs(fe,{"data-slot":"accordion-trigger",className:E.cn("interactive-opacity flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",e),...o,children:[n,t.jsx(Z.ChevronDown,{className:"text-muted-foreground size-4 shrink-0 translate-y-0.5 transition"})]})}),ge=({className:e,children:n,...o})=>t.jsx(me,{"data-slot":"accordion-content",className:"text-sm",asChild:!0,forceMount:!0,...o,children:t.jsx(v.CollapsibleContentRoot,{children:t.jsx(v.CollapsibleContentInner,{children:t.jsx("div",{className:E.cn("pt-0 pb-4",e),children:n})})})});exports.AccordionContent=ge;exports.AccordionItem=Ce;exports.AccordionRoot=ve;exports.AccordionTrigger=Ae;