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