stofli-ui
Version:
Biblioteca moderna de componentes UI para React con Tailwind CSS y Framer Motion
4 lines (3 loc) • 8.51 kB
JavaScript
'use client';
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useState as a,useRef as t,useId as n,useEffect as i}from"react";import{motion as o}from"framer-motion";import{ChevronLeft as l,ChevronRight as d,MoreHorizontal as s}from"lucide-react";import{clsx as c}from"clsx";import{twMerge as u}from"tailwind-merge";function b(e,r,a){if(a||2===arguments.length)for(var t,n=0,i=r.length;n<i;n++)!t&&n in r||(t||(t=Array.prototype.slice.call(r,0,n)),t[n]=r[n]);return e.concat(t||Array.prototype.slice.call(r))}function g(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return u(c(e))}"function"==typeof SuppressedError&&SuppressedError;var p=function(c){var u=c.totalPages,p=c.currentPage,m=void 0===p?1:p,f=c.onPageChange,h=c.siblingsCount,v=void 0===h?1:h,x=c.variant,k=void 0===x?"default":x,w=c.size,y=void 0===w?"md":w,N=c.withNumbers,z=void 0===N||N,P=c.withEdges,C=void 0!==P&&P,D=c.withText,M=void 0!==D&&D,S=c.disabled,j=void 0!==S&&S,A=c.className,T=void 0===A?"":A,L=c.fullWidth,I=void 0!==L&&L,E=c.customText,B=void 0===E?{previous:"Anterior",next:"Siguiente",first:"Primera",last:"Última",pageLabel:"Página",navigationLabel:"Paginación",statusText:"Página {current} de {total}"}:E,H=c.showPrevious,W=void 0===H||H,K=c.showNext,R=void 0===K||K,U=c.navButtonClassName,q=c.activePageClassName,F=c.pageButtonClassName,G=c.ellipsisClassName,J=c.indicatorClassName,O=c.numbersContainerClassName,Q=c.id,V=c["aria-label"],X=a(m),Y=X[0],Z=X[1],$=t([]),_=a({left:0,width:0,top:0,height:0}),ee=_[0],re=_[1],ae=a(""),te=ae[0],ne=ae[1],ie=t(null),oe=n(),le="pagination-".concat(oe.replace(/:/g,"")),de=Q||le,se="".concat(de,"-live"),ce=V||B.navigationLabel||"Paginación";i((function(){Z(m)}),[m]),i((function(){if(te){var e=setTimeout((function(){return ne("")}),1e3);return function(){return clearTimeout(e)}}}),[te]);i((function(){if(z&&$.current[Y]){var e=$.current[Y];e&&re({left:e.offsetLeft||0,width:e.offsetWidth||0,top:0,height:e.offsetHeight||0})}}),[Y,z]);var ue={default:"bg-white dark:bg-zinc-900 text-neutral-900 dark:text-neutral-100 border-zinc-200 dark:border-zinc-700 hover:bg-zinc-200 dark:hover:bg-zinc-700 active:bg-zinc-300 dark:active:bg-zinc-600 transition-colors duration-150",primary:"bg-white dark:bg-zinc-900 text-blue-600 dark:text-blue-400 border-blue-200 dark:border-blue-800 hover:bg-blue-100 dark:hover:bg-blue-800/60 active:bg-blue-200 dark:active:bg-blue-700 transition-colors duration-150",secondary:"bg-white dark:bg-zinc-900 text-purple-600 dark:text-purple-400 border-purple-200 dark:border-purple-800 hover:bg-purple-100 dark:hover:bg-purple-800/60 active:bg-purple-200 dark:active:bg-purple-700 transition-colors duration-150",success:"bg-white dark:bg-zinc-900 text-green-600 dark:text-green-400 border-green-200 dark:border-green-800 hover:bg-green-100 dark:hover:bg-green-800/60 active:bg-green-200 dark:active:bg-green-700 transition-colors duration-150",warning:"bg-white dark:bg-zinc-900 text-amber-600 dark:text-amber-400 border-amber-200 dark:border-amber-800 hover:bg-amber-100 dark:hover:bg-amber-800/60 active:bg-amber-200 dark:active:bg-amber-700 transition-colors duration-150",danger:"bg-white dark:bg-zinc-900 text-red-600 dark:text-red-400 border-red-200 dark:border-red-800 hover:bg-red-100 dark:hover:bg-red-800/60 active:bg-red-200 dark:active:bg-red-700 transition-colors duration-150"},be={default:"text-neutral-900 dark:text-white",primary:"text-blue-700 dark:text-blue-300",secondary:"text-purple-700 dark:text-purple-300",success:"text-green-700 dark:text-green-300",warning:"text-amber-700 dark:text-amber-300",danger:"text-red-700 dark:text-red-300"},ge={sm:"h-7 min-w-7 min-h-[28px] text-xs",md:"h-9 min-w-9 min-h-[36px] text-sm",lg:"h-11 min-w-11 min-h-[44px]"},pe="flex items-center justify-center border rounded-md transition-colors duration-200 focus:outline-none focus-visible:ring-1 focus-visible:ring-offset-1 disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none",me={sm:14,md:16,lg:18},fe=function(e){j||e===Y||e<1||e>u||(Z(e),null==f||f(e),function(e){var r=(B.statusText||"Página {current} de {total}").replace("{current}",e.toString()).replace("{total}",u.toString());ne(r)}(e))},he=I?W&&R?"justify-between":W?"justify-start":"justify-end":"justify-center";if(!(z||W||R))return null;var ve=(B.statusText||"Página {current} de {total}").replace("{current}",Y.toString()).replace("{total}",u.toString());return e("nav",{ref:ie,id:de,role:"navigation","aria-label":ce,className:g("flex items-center gap-1 flex-wrap",I&&"w-full",he,T),onKeyDown:function(e){if(!j)switch(e.key){case"ArrowRight":e.preventDefault(),Y<u&&fe(Y+1);break;case"ArrowLeft":e.preventDefault(),Y>1&&fe(Y-1);break;case"Home":e.preventDefault(),fe(1);break;case"End":e.preventDefault(),fe(u);break;case"PageUp":e.preventDefault();var r=Math.max(1,Y-5);fe(r);break;case"PageDown":e.preventDefault();var a=Math.min(u,Y+5);fe(a)}},children:[r("div",{id:se,className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:te}),r("div",{className:"sr-only","aria-live":"polite",children:ve}),C&&W&&r("button",{type:"button",disabled:1===Y||j,className:g(pe,ge[y],ue[k],"gap-1",U),onClick:function(){return fe(1)},"aria-label":"Primera página",tabIndex:0,children:e("span",{className:"flex items-center",children:[r(l,{size:me[y],"aria-hidden":"true"}),r(l,{size:me[y],className:"-ml-3","aria-hidden":"true"}),M&&r("span",{className:"mx-1",children:B.first})]})}),W&&r("button",{type:"button",disabled:1===Y||j,className:g(pe,ge[y],ue[k],M&&"px-2",U),onClick:function(){return fe(Y-1)},"aria-label":"Página anterior",tabIndex:0,children:e("span",{className:"flex items-center",children:[r(l,{size:me[y],"aria-hidden":"true"}),M&&r("span",{className:"ml-1",children:B.previous})]})}),z&&e("div",{className:g("relative flex flex-wrap items-center gap-1",O),role:"group","aria-label":"Páginas",children:[r(o.div,{className:g("absolute rounded-md border shadow-sm z-10",{default:"bg-zinc-200 dark:bg-zinc-700",primary:"bg-blue-100 dark:bg-blue-900/50",secondary:"bg-purple-100 dark:bg-purple-900/50",success:"bg-green-100 dark:bg-green-900/50",warning:"bg-amber-100 dark:bg-amber-900/50",danger:"bg-red-100 dark:bg-red-900/50"}[k],{default:"border-zinc-400 dark:border-zinc-500",primary:"border-blue-400 dark:border-blue-500",secondary:"border-purple-400 dark:border-purple-500",success:"border-green-400 dark:border-green-500",warning:"border-amber-400 dark:border-amber-500",danger:"border-red-400 dark:border-red-500"}[k],J),initial:!1,animate:{left:ee.left,width:ee.width,height:ee.height,top:ee.top},transition:{type:"spring",stiffness:400,damping:30},"aria-hidden":"true"}),function(){for(var e=function(e,r){return Array.from({length:r-e+1},(function(r,a){return e+a}))},a=e(1,Math.min(v+1,u)),t=e(Math.max(u-v,v+2),u),n=Math.max(Math.min(Y-v,u-2*v-1),v+2),i=Math.min(Math.max(Y+v,2*v+2),t.length>0?t[0]-1:u),o=b(b(b(b([1],a,!0),e(n,i),!0),t,!0),[u],!1),l=[],d=null,c=0,p=Array.from(new Set(o)).sort((function(e,r){return e-r}));c<p.length;c++){var m=p[c];null!==d&&m-d>1&&l.push("ellipsis"),l.push(m),d=m}return l.map((function(e,a){if("ellipsis"===e)return r("div",{className:g(ge[y],"px-1 flex items-center justify-center",G),"aria-hidden":"true",children:r(s,{size:me[y]})},"ellipsis-".concat(a));var t=Y===e,n=e,i=B.pageLabel||"Página";return r("button",{ref:function(r){"number"==typeof e&&($.current[e]=r)},type:"button",disabled:j,onClick:function(){return fe(n)},className:g(pe,ge[y],"px-3 relative",t?g(be[k],"font-semibold z-20",q):ue[k],t&&"border-transparent bg-transparent",F),"aria-current":t?"page":void 0,"aria-label":"".concat(i," ").concat(n).concat(t?" (página actual)":""),tabIndex:0,children:e},"page-".concat(e))}))}()]}),R&&r("button",{type:"button",disabled:Y===u||j,className:g(pe,ge[y],ue[k],M&&"px-2",U),onClick:function(){return fe(Y+1)},"aria-label":"Página siguiente",tabIndex:0,children:e("span",{className:"flex items-center",children:[M&&r("span",{className:"mr-1",children:B.next}),r(d,{size:me[y],"aria-hidden":"true"})]})}),C&&R&&r("button",{type:"button",disabled:Y===u||j,className:g(pe,ge[y],ue[k],"gap-1",U),onClick:function(){return fe(u)},"aria-label":"Última página",tabIndex:0,children:e("span",{className:"flex items-center",children:[M&&r("span",{className:"mx-1",children:B.last}),r(d,{size:me[y],"aria-hidden":"true"}),r(d,{size:me[y],className:"-ml-3","aria-hidden":"true"})]})})]})};export{p as default};
//# sourceMappingURL=index.esm.js.map