UNPKG

ivt

Version:

Ivt Components Library

3 lines (2 loc) 7.09 kB
import{c as e}from"./utils-C-nkZ_Ir.mjs";import*as r from"react";import o from"react";import{c as t}from"./index-Dr5ObK3L.mjs";import{createCollection as n}from"@radix-ui/react-collection";import{u as a}from"./index-C-j8pU3U.mjs";import{c as i}from"./index-DVnblQ-a.mjs";import{u as s}from"./index-BOUg6o32.mjs";import{P as c}from"./index-DiPp8h7C.mjs";import{u as l}from"./index-0-u0cdz8.mjs";import{P as d}from"./index-1xuBLrml.mjs";import{u as p}from"./index-UQBMY2z8.mjs";import{jsx as u}from"react/jsx-runtime";import{u as m}from"./index-DBjm5RwN.mjs";import{C as f}from"./chevron-down-CxCeX9iY.mjs";var b="Collapsible",[h,v]=t(b),[g,w]=h(b),_=r.forwardRef((e,o)=>{const{__scopeCollapsible:t,open:n,defaultOpen:a,disabled:i,onOpenChange:l,...d}=e,[m,f]=s({prop:n,defaultProp:a??!1,onChange:l,caller:b});return u(g,{scope:t,disabled:i,contentId:p(),open:m,onOpenToggle:r.useCallback(()=>f(e=>!e),[f]),children:u(c.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,n=w(y,o);return u(c.button,{type:"button","aria-controls":n.contentId,"aria-expanded":n.open||!1,"data-state":R(n.open),"data-disabled":n.disabled?"":void 0,disabled:n.disabled,...t,ref:r,onClick:i(e.onClick,n.onOpenToggle)})});C.displayName=y;var x="CollapsibleContent",A=r.forwardRef((e,r)=>{const{forceMount:o,...t}=e,n=w(x,e.__scopeCollapsible);return u(d,{present:o||n.open,children:({present:e})=>u(N,{...t,ref:r,present:e})})});A.displayName=x;var N=r.forwardRef((e,o)=>{const{__scopeCollapsible:t,present:n,children:i,...s}=e,d=w(x,t),[p,m]=r.useState(n),f=r.useRef(null),b=a(o,f),h=r.useRef(0),v=h.current,g=r.useRef(0),_=g.current,y=d.open||p,C=r.useRef(y),A=r.useRef(void 0);return r.useEffect(()=>{const e=requestAnimationFrame(()=>C.current=!1);return()=>cancelAnimationFrame(e)},[]),l(()=>{const e=f.current;if(e){A.current=A.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=A.current.transitionDuration,e.style.animationName=A.current.animationName),m(n)}},[d.open,n]),u(c.div,{"data-state":R(d.open),"data-disabled":d.disabled?"":void 0,id:d.contentId,hidden:!y,...s,ref:b,style:{"--radix-collapsible-content-height":v?`${v}px`:void 0,"--radix-collapsible-content-width":_?`${_}px`:void 0,...e.style},children:y&&i})});function R(e){return e?"open":"closed"}var k=_,I=C,j=A,E="Accordion",D=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[O,P,z]=n(E),[S,T]=t(E,[z,v]),V=v(),H=o.forwardRef((e,r)=>{const{type:o,...t}=e,n=t,a=t;return u(O.Provider,{scope:e.__scopeAccordion,children:"multiple"===o?u($,{...a,ref:r}):u(U,{...n,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:n,onValueChange:a=()=>{},collapsible:i=!1,...c}=e,[l,d]=s({prop:t,defaultProp:n??"",onChange:a,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,{...c,ref:r})})})}),$=o.forwardRef((e,r)=>{const{value:t,defaultValue:n,onValueChange:a=()=>{},...i}=e,[c,l]=s({prop:t,defaultProp:n??[],onChange:a,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:c,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:n,dir:s,orientation:l="vertical",...d}=e,p=o.useRef(null),f=a(p,r),b=P(t),h="ltr"===m(s),v=i(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),n=o.length;if(-1===t)return;e.preventDefault();let a=t;const i=n-1,s=()=>{a=t+1,a>i&&(a=0)},c=()=>{a=t-1,a<0&&(a=i)};switch(e.key){case"Home":a=0;break;case"End":a=i;break;case"ArrowRight":"horizontal"===l&&(h?s():c());break;case"ArrowDown":"vertical"===l&&s();break;case"ArrowLeft":"horizontal"===l&&(h?c():s());break;case"ArrowUp":"vertical"===l&&c()}const d=a%n;o[d].ref.current?.focus()});return u(q,{scope:t,disabled:n,direction:s,orientation:l,children:u(O.Slot,{scope:t,children:u(c.div,{...d,"data-orientation":l,ref:f,onKeyDown:n?void 0:v})})})}),J="AccordionItem",[Q,W]=S(J),X=o.forwardRef((e,r)=>{const{__scopeAccordion:o,value:t,...n}=e,a=B(J,o),i=K(J,o),s=V(o),c=p(),l=t&&i.value.includes(t)||!1,d=a.disabled||e.disabled;return u(Q,{scope:o,open:l,disabled:d,triggerId:c,children:u(k,{"data-orientation":a.orientation,"data-state":ne(l),...s,...n,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,n=B(E,o),a=W(Y,o);return u(c.h3,{"data-orientation":n.orientation,"data-state":ne(a.open),"data-disabled":a.disabled?"":void 0,...t,ref:r})});Z.displayName=Y;var ee="AccordionTrigger",re=o.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,n=B(E,o),a=W(ee,o),i=M(ee,o),s=V(o);return u(O.ItemSlot,{scope:o,children:u(I,{"aria-disabled":a.open&&!i.collapsible||void 0,"data-orientation":n.orientation,id:a.triggerId,...s,...t,ref:r})})});re.displayName=ee;var oe="AccordionContent",te=o.forwardRef((e,r)=>{const{__scopeAccordion:o,...t}=e,n=B(E,o),a=W(oe,o),i=V(o);return u(j,{role:"region","aria-labelledby":a.triggerId,"data-orientation":n.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 ne(e){return e?"open":"closed"}te.displayName=oe;var ae=H,ie=X,se=Z,ce=re,le=te;function de({...e}){return o.createElement(ae,{"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:n,iconSize:a="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"===n?o.createElement(f,{className:e(a,"shrink-0 transition-transform duration-200")}):null,t,"left"!==n?o.createElement(f,{className:e(a,"shrink-0 transition-transform duration-200")}):null))}function me({className:r,children:t,...n}){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",...n},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-DN_eyopq.mjs.map