2 lines
4.5 KiB
JavaScript
2 lines
4.5 KiB
JavaScript
import{R as l,j as n,r as y}from"./router-zNjPR4CY.js";import{am as Z,a2 as T,u as ee,g as oe,P as M,an as re,ao as te,ap as ne,aq as ae,U as ce,ar as V,a1 as se}from"./radix-C-ZuImoP.js";import{g as E}from"./index-CuOHsLf7.js";import{a as ie}from"./icons-DTcdLw9j.js";var d="Accordion",le=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[S,de,pe]=Z(d),[g]=se(d,[pe,V]),k=V(),H=l.forwardRef((o,a)=>{const{type:e,...t}=o,c=t,r=t;return n.jsx(S.Provider,{scope:o.__scopeAccordion,children:e==="multiple"?n.jsx(xe,{...r,ref:a}):n.jsx(ue,{...c,ref:a})})});H.displayName=d;var[K,fe]=g(d),[$,me]=g(d,{collapsible:!1}),ue=l.forwardRef((o,a)=>{const{value:e,defaultValue:t,onValueChange:c=()=>{},collapsible:r=!1,...i}=o,[s,p]=T({prop:e,defaultProp:t??"",onChange:c,caller:d});return n.jsx(K,{scope:o.__scopeAccordion,value:l.useMemo(()=>s?[s]:[],[s]),onItemOpen:p,onItemClose:l.useCallback(()=>r&&p(""),[r,p]),children:n.jsx($,{scope:o.__scopeAccordion,collapsible:r,children:n.jsx(L,{...i,ref:a})})})}),xe=l.forwardRef((o,a)=>{const{value:e,defaultValue:t,onValueChange:c=()=>{},...r}=o,[i,s]=T({prop:e,defaultProp:t??[],onChange:c,caller:d}),p=l.useCallback(x=>s((m=[])=>[...m,x]),[s]),u=l.useCallback(x=>s((m=[])=>m.filter(b=>b!==x)),[s]);return n.jsx(K,{scope:o.__scopeAccordion,value:i,onItemOpen:p,onItemClose:u,children:n.jsx($,{scope:o.__scopeAccordion,collapsible:!0,children:n.jsx(L,{...r,ref:a})})})}),[ve,h]=g(d),L=l.forwardRef((o,a)=>{const{__scopeAccordion:e,disabled:t,dir:c,orientation:r="vertical",...i}=o,s=l.useRef(null),p=ne(s,a),u=de(e),m=ae(c)==="ltr",b=ce(o.onKeyDown,v=>{if(!le.includes(v.key))return;const W=v.target,I=u().filter(_=>!_.ref.current?.disabled),A=I.findIndex(_=>_.ref.current===W),O=I.length;if(A===-1)return;v.preventDefault();let f=A;const w=0,j=O-1,R=()=>{f=A+1,f>j&&(f=w)},N=()=>{f=A-1,f<w&&(f=j)};switch(v.key){case"Home":f=w;break;case"End":f=j;break;case"ArrowRight":r==="horizontal"&&(m?R():N());break;case"ArrowDown":r==="vertical"&&R();break;case"ArrowLeft":r==="horizontal"&&(m?N():R());break;case"ArrowUp":r==="vertical"&&N();break}const X=f%O;I[X].ref.current?.focus()});return n.jsx(ve,{scope:e,disabled:t,direction:c,orientation:r,children:n.jsx(S.Slot,{scope:e,children:n.jsx(M.div,{...i,"data-orientation":r,ref:p,onKeyDown:t?void 0:b})})})}),C="AccordionItem",[Ae,D]=g(C),U=l.forwardRef((o,a)=>{const{__scopeAccordion:e,value:t,...c}=o,r=h(C,e),i=fe(C,e),s=k(e),p=ee(),u=t&&i.value.includes(t)||!1,x=r.disabled||o.disabled;return n.jsx(Ae,{scope:e,open:u,disabled:x,triggerId:p,children:n.jsx(oe,{"data-orientation":r.orientation,"data-state":F(u),...s,...c,ref:a,disabled:x,open:u,onOpenChange:m=>{m?i.onItemOpen(t):i.onItemClose(t)}})})});U.displayName=C;var z="AccordionHeader",G=l.forwardRef((o,a)=>{const{__scopeAccordion:e,...t}=o,c=h(d,e),r=D(z,e);return n.jsx(M.h3,{"data-orientation":c.orientation,"data-state":F(r.open),"data-disabled":r.disabled?"":void 0,...t,ref:a})});G.displayName=z;var P="AccordionTrigger",q=l.forwardRef((o,a)=>{const{__scopeAccordion:e,...t}=o,c=h(d,e),r=D(P,e),i=me(P,e),s=k(e);return n.jsx(S.ItemSlot,{scope:e,children:n.jsx(re,{"aria-disabled":r.open&&!i.collapsible||void 0,"data-orientation":c.orientation,id:r.triggerId,...s,...t,ref:a})})});q.displayName=P;var Y="AccordionContent",B=l.forwardRef((o,a)=>{const{__scopeAccordion:e,...t}=o,c=h(d,e),r=D(Y,e),i=k(e);return n.jsx(te,{role:"region","aria-labelledby":r.triggerId,"data-orientation":c.orientation,...i,...t,ref:a,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...o.style}})});B.displayName=Y;function F(o){return o?"open":"closed"}var Ce=H,ge=U,he=G,J=q,Q=B;const Pe=Ce,be=y.forwardRef(({className:o,...a},e)=>n.jsx(ge,{ref:e,className:E("border-b",o),...a}));be.displayName="AccordionItem";const Ie=y.forwardRef(({className:o,children:a,...e},t)=>n.jsx(he,{className:"flex",children:n.jsxs(J,{ref:t,className:E("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",o),...e,children:[a,n.jsx(ie,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));Ie.displayName=J.displayName;const we=y.forwardRef(({className:o,children:a,...e},t)=>n.jsx(Q,{ref:t,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...e,children:n.jsx("div",{className:E("pb-4 pt-0",o),children:a})}));we.displayName=Q.displayName;export{Pe as A,be as a,Ie as b,we as c};
|