UNPKG

ivt

Version:

Ivt Components Library

3 lines (2 loc) 7.07 kB
import{c as e}from"./utils-B4HRExF_.mjs";import*as r from"react";import o from"react";import{c as t}from"./index-BXKQJZ6z.mjs";import{createCollection as a}from"@radix-ui/react-collection";import{c as n,P as i,u as s}from"./index-BgU_7G37.mjs";import{u as c}from"./index-CJw5YZXp.mjs";import{P as l}from"./index-Bj6b6xW8.mjs";import{u as d}from"./index-C99OdH8-.mjs";import{u as p}from"./index-BclYsZHn.mjs";import{jsx as u}from"react/jsx-runtime";import{u as m}from"./index-X2oEHtiP.mjs";import{C as f}from"./chevron-down-DAXj2M4s.mjs";var b="Collapsible",[h,v]=t(b),[g,w]=h(b),_=r.forwardRef(((e,o)=>{const{__scopeCollapsible:t,open:a,defaultOpen:n,disabled:i,onOpenChange:s,...d}=e,[m,f]=c({prop:a,defaultProp:n??!1,onChange:s,caller:b});return u(g,{scope:t,disabled:i,contentId:p(),open:m,onOpenToggle:r.useCallback((()=>f((e=>!e))),[f]),children:u(l.div,{"data-state":R(m),"data-disabled":i?"":void 0,...d,ref:o})})}));_.displayName=b;var y="CollapsibleTrigger",C=r.forwardRef(((e,r)=>{const{__scopeCollapsible:o,...t}=e,a=w(y,o);return u(l.button,{type:"button","aria-controls":a.contentId,"aria-expanded":a.open||!1,"data-state":R(a.open),"data-disabled":a.disabled?"":void 0,disabled:a.disabled,...t,ref:r,onClick:n(e.onClick,a.onOpenToggle)})}));C.displayName=y;var A="CollapsibleContent",x=r.forwardRef(((e,r)=>{const{forceMount:o,...t}=e,a=w(A,e.__scopeCollapsible);return u(i,{present:o||a.open,children:({present:e})=>u(N,{...t,ref:r,present:e})})}));x.displayName=A;var N=r.forwardRef(((e,o)=>{const{__scopeCollapsible:t,present:a,children:n,...i}=e,c=w(A,t),[p,m]=r.useState(a),f=r.useRef(null),b=s(o,f),h=r.useRef(0),v=h.current,g=r.useRef(0),_=g.current,y=c.open||p,C=r.useRef(y),x=r.useRef(void 0);return r.useEffect((()=>{const e=requestAnimationFrame((()=>C.current=!1));return()=>cancelAnimationFrame(e)}),[]),d((()=>{const e=f.current;if(e){x.current=x.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";const r=e.getBoundingClientRect();h.current=r.height,g.current=r.width,C.current||(e.style.transitionDuration=x.current.transitionDuration,e.style.animationName=x.current.animationName),m(a)}}),[c.open,a]),u(l.div,{"data-state":R(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!y,...i,ref:b,style:{"--radix-collapsible-content-height":v?`${v}px`:void 0,"--radix-collapsible-content-width":_?`${_}px`:void 0,...e.style},children:y&&n})}));function R(e){return e?"open":"closed"}var k=_,I=C,j=x,E="Accordion",D=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[O,P,z]=a(E),[S,T]=t(E,[z,v]),V=v(),H=o.forwardRef(((e,r)=>{const{type:o,...t}=e,a=t,n=t;return u(O.Provider,{scope:e.__scopeAccordion,children:"multiple"===o?u($,{...n,ref:r}):u(U,{...a,ref:r})})}));H.displayName=E;var[F,K]=S(E),[L,M]=S(E,{collapsible:!1}),U=o.forwardRef(((e,r)=>{const{value:t,defaultValue:a,onValueChange:n=()=>{},collapsible:i=!1,...s}=e,[l,d]=c({prop:t,defaultProp:a??"",onChange:n,caller:E});return u(F,{scope:e.__scopeAccordion,value:o.useMemo((()=>l?[l]:[]),[l]),onItemOpen:d,onItemClose:o.useCallback((()=>i&&d("")),[i,d]),children:u(L,{scope:e.__scopeAccordion,collapsible:i,children:u(G,{...s,ref:r})})})})),$=o.forwardRef(((e,r)=>{const{value:t,defaultValue:a,onValueChange:n=()=>{},...i}=e,[s,l]=c({prop:t,defaultProp:a??[],onChange:n,caller:E}),d=o.useCallback((e=>l(((r=[])=>[...r,e]))),[l]),p=o.useCallback((e=>l(((r=[])=>r.filter((r=>r!==e))))),[l]);return u(F,{scope:e.__scopeAccordion,value:s,onItemOpen:d,onItemClose:p,children:u(L,{scope:e.__scopeAccordion,collapsible:!0,children:u(G,{...i,ref:r})})})})),[q,B]=S(E),G=o.forwardRef(((e,r)=>{const{__scopeAccordion:t,disabled:a,dir:i,orientation:c="vertical",...d}=e,p=o.useRef(null),f=s(p,r),b=P(t),h="ltr"===m(i),v=n(e.onKeyDown,(e=>{if(!D.includes(e.key))return;const r=e.target,o=b().filter((e=>!e.ref.current?.disabled)),t=o.findIndex((e=>e.ref.current===r)),a=o.length;if(-1===t)return;e.preventDefault();let n=t;const i=a-1,s=()=>{n=t+1,n>i&&(n=0)},l=()=>{n=t-1,n<0&&(n=i)};switch(e.key){case"Home":n=0;break;case"End":n=i;break;case"ArrowRight":"horizontal"===c&&(h?s():l());break;case"ArrowDown":"vertical"===c&&s();break;case"ArrowLeft":"horizontal"===c&&(h?l():s());break;case"ArrowUp":"vertical"===c&&l()}const d=n%a;o[d].ref.current?.focus()}));return u(q,{scope:t,disabled:a,direction:i,orientation:c,children:u(O.Slot,{scope:t,children:u(l.div,{...d,"data-orientation":c,ref:f,onKeyDown:a?void 0:v})})})})),J="AccordionItem",[Q,W]=S(J),X=o.forwardRef(((e,r)=>{const{__scopeAccordion:o,value:t,...a}=e,n=B(J,o),i=K(J,o),s=V(o),c=p(),l=t&&i.value.includes(t)||!1,d=n.disabled||e.disabled;return u(Q,{scope:o,open:l,disabled:d,triggerId:c,children:u(k,{"data-orientation":n.orientation,"data-state":ae(l),...s,...a,ref:r,disabled:d,open:l,onOpenChange:e=>{e?i.onItemOpen(t):i.onItemClose(t)}})})}));X.displayName=J;var Y="AccordionHeader",Z=o.forwardRef(((e,r)=>{const{__scopeAccordion:o,...t}=e,a=B(E,o),n=W(Y,o);return u(l.h3,{"data-orientation":a.orientation,"data-state":ae(n.open),"data-disabled":n.disabled?"":void 0,...t,ref:r})}));Z.displayName=Y;var ee="AccordionTrigger",re=o.forwardRef(((e,r)=>{const{__scopeAccordion:o,...t}=e,a=B(E,o),n=W(ee,o),i=M(ee,o),s=V(o);return u(O.ItemSlot,{scope:o,children:u(I,{"aria-disabled":n.open&&!i.collapsible||void 0,"data-orientation":a.orientation,id:n.triggerId,...s,...t,ref:r})})}));re.displayName=ee;var oe="AccordionContent",te=o.forwardRef(((e,r)=>{const{__scopeAccordion:o,...t}=e,a=B(E,o),n=W(oe,o),i=V(o);return u(j,{role:"region","aria-labelledby":n.triggerId,"data-orientation":a.orientation,...i,...t,ref:r,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})}));function ae(e){return e?"open":"closed"}te.displayName=oe;var ne=H,ie=X,se=Z,ce=re,le=te;function de({...e}){return o.createElement(ne,{"data-slot":"accordion",...e})}function pe({className:r,...t}){return o.createElement(ie,{"data-slot":"accordion-item",className:e("border-b last:border-b-0",r),...t})}function ue({className:r,children:t,iconPosition:a,iconSize:n="size-4",...i}){return o.createElement(se,{className:"flex"},o.createElement(ce,{"data-slot":"accordion-trigger",className:e("flex flex-1 cursor-pointer items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",r),...i},"left"===a?o.createElement(f,{className:e(n,"shrink-0 transition-transform duration-200")}):null,t,"left"!==a?o.createElement(f,{className:e(n,"shrink-0 transition-transform duration-200")}):null))}function me({className:r,children:t,...a}){return o.createElement(le,{"data-slot":"accordion-content",className:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",...a},o.createElement("div",{className:e("pt-0 pb-4",r)},t))}export{de as A,pe as a,ue as b,me as c}; //# sourceMappingURL=accordion-BZ27divW.mjs.map