@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
3 lines (2 loc) • 3.73 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),J=require("react/compiler-runtime"),R=require("@floating-ui/react"),i=require("react"),v=require("react-icons/hi"),N=require("tailwind-merge"),K=require("../../helpers/merge-deep.js"),C=require("../../hooks/use-floating.js"),Q=require("../../theme-store/index.js"),V=require("./DropdownContext.js"),H=require("./DropdownDivider.js"),P=require("./DropdownHeader.js"),X=require("./DropdownItem.js"),Y=require("../Button/Button.js"),Z={top:v.HiOutlineChevronUp,right:v.HiOutlineChevronRight,bottom:v.HiOutlineChevronDown,left:v.HiOutlineChevronLeft},_=b=>{const e=J.c(24);let p,l,a,f,o,r,c,n,t;e[0]!==b?({refs:r,children:l,inline:o,theme:t,disabled:a,setButtonWidth:n,getReferenceProps:f,renderTrigger:c,...p}=b,e[0]=b,e[1]=p,e[2]=l,e[3]=a,e[4]=f,e[5]=o,e[6]=r,e[7]=c,e[8]=n,e[9]=t):(p=e[1],l=e[2],a=e[3],f=e[4],o=e[5],r=e[6],c=e[7],n=e[8],t=e[9]);const d=r.reference,g=f();let D;e[10]!==d.current||e[11]!==n?(D=()=>{d.current&&(n==null||n(d.current.clientWidth))},e[10]=d.current,e[11]=n,e[12]=D):D=e[12];let m;if(e[13]!==d||e[14]!==n?(m=[d,n],e[13]=d,e[14]=n,e[15]=m):m=e[15],i.useEffect(D,m),c){const s=c(t);return i.cloneElement(s,{ref:r.setReference,disabled:a,...g,...s.props})}let w;return e[16]!==g||e[17]!==p||e[18]!==l||e[19]!==a||e[20]!==o||e[21]!==r.setReference||e[22]!==(t==null?void 0:t.inlineWrapper)?(w=o?u.jsx("button",{type:"button",ref:r.setReference,className:t==null?void 0:t.inlineWrapper,disabled:a,...g,children:l}):u.jsx(Y.Button,{...p,disabled:a,type:"button",ref:r.setReference,...g,children:l}),e[16]=g,e[17]=p,e[18]=l,e[19]=a,e[20]=o,e[21]=r.setReference,e[22]=t==null?void 0:t.inlineWrapper,e[23]=w):w=e[23],w},S=({children:b,className:e,dismissOnClick:p=!0,theme:l={},renderTrigger:a,...f})=>{const[o,r]=i.useState(!1),[c,n]=i.useState(null),[t,d]=i.useState(null),[g,D]=i.useState(void 0),m=i.useRef([]),w=i.useRef([]),s=K.mergeDeep(Q.getTheme().dropdown,l),F=f,M=f["data-testid"]||"flowbite-dropdown-target",{placement:q=f.inline?"bottom-start":"bottom",trigger:O="click",label:T,inline:W,arrowIcon:L=!0,...I}=F,y=i.useCallback(h=>{d(h),r(!1)},[]),k=i.useCallback(h=>{o?n(h):y(h)},[o,y]),{context:x,floatingStyles:B,refs:j}=C.useBaseFLoating({open:o,setOpen:r,placement:q}),E=R.useListNavigation(x,{listRef:m,activeIndex:c,selectedIndex:t,onNavigate:n}),$=R.useTypeahead(x,{listRef:w,activeIndex:c,selectedIndex:t,onMatch:k}),{getReferenceProps:A,getFloatingProps:U,getItemProps:z}=C.useFloatingInteractions({context:x,role:"menu",trigger:O,interactions:[E,$]}),G=i.useMemo(()=>{const[h]=q.split("-");return Z[h]??v.HiOutlineChevronDown},[q]);return u.jsxs(V.DropdownContext.Provider,{value:{theme:s,activeIndex:c,dismissOnClick:p,getItemProps:z,handleSelect:y},children:[u.jsxs(_,{...I,refs:j,inline:W,theme:s,"data-testid":M,className:N.twMerge(s.floating.target,I.className),setButtonWidth:D,getReferenceProps:A,renderTrigger:a,children:[T,L&&u.jsx(G,{className:s.arrowIcon})]}),o&&u.jsx(R.FloatingFocusManager,{context:x,modal:!1,children:u.jsx("div",{ref:j.setFloating,style:{...B,minWidth:g},"data-testid":"flowbite-dropdown","aria-expanded":o,...U({className:N.twMerge(s.floating.base,s.floating.animation,"duration-100",!o&&s.floating.hidden,s.floating.style.auto,e)}),children:u.jsx(R.FloatingList,{elementsRef:m,labelsRef:w,children:u.jsx("ul",{className:s.content,tabIndex:-1,children:b})})})})]})};S.displayName="Dropdown";P.DropdownHeader.displayName="Dropdown.Header";H.DropdownDivider.displayName="Dropdown.Divider";const ee=Object.assign(S,{Item:X.DropdownItem,Header:P.DropdownHeader,Divider:H.DropdownDivider});exports.Dropdown=ee;
//# sourceMappingURL=Dropdown.js.map