lizaui 8.0.4 → 8.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/button/index.cjs.js +1 -1
  2. package/dist/button/index.es.js +1 -1
  3. package/dist/calendar/index.cjs.js +10 -10
  4. package/dist/calendar/index.cjs.js.map +1 -1
  5. package/dist/calendar/index.es.js +1309 -1842
  6. package/dist/calendar/index.es.js.map +1 -1
  7. package/dist/checkbox/index.cjs.js +1 -1
  8. package/dist/checkbox/index.es.js +1 -1
  9. package/dist/chip/index.cjs.js +1 -1
  10. package/dist/chip/index.es.js +1 -1
  11. package/dist/chunks/{button-OdZ6El_t.js → button-CGIs6rx_.js} +2 -2
  12. package/dist/chunks/{button-OdZ6El_t.js.map → button-CGIs6rx_.js.map} +1 -1
  13. package/dist/chunks/{button-CSuKvE1x.js → button-COC4E-Qv.js} +4 -4
  14. package/dist/chunks/{button-CSuKvE1x.js.map → button-COC4E-Qv.js.map} +1 -1
  15. package/dist/chunks/{checkbox-BhW9i0pm.js → checkbox-C4O1CC2o.js} +3 -3
  16. package/dist/chunks/{checkbox-BhW9i0pm.js.map → checkbox-C4O1CC2o.js.map} +1 -1
  17. package/dist/chunks/{checkbox-CWDPVAn2.js → checkbox-C7iPXnsq.js} +2 -2
  18. package/dist/chunks/{checkbox-CWDPVAn2.js.map → checkbox-C7iPXnsq.js.map} +1 -1
  19. package/dist/chunks/{index-Do-g2tEs.js → index-6UmdGTUS.js} +2 -2
  20. package/dist/chunks/{index-Do-g2tEs.js.map → index-6UmdGTUS.js.map} +1 -1
  21. package/dist/chunks/index-BD4EmzUR.js +15 -0
  22. package/dist/chunks/index-BD4EmzUR.js.map +1 -0
  23. package/dist/chunks/{index-6ER8bShj.js → index-B_lLnyI9.js} +2 -2
  24. package/dist/chunks/{index-6ER8bShj.js.map → index-B_lLnyI9.js.map} +1 -1
  25. package/dist/chunks/index-COBcVFMF.js +2 -0
  26. package/dist/chunks/index-COBcVFMF.js.map +1 -0
  27. package/dist/chunks/jsx-runtime-DZW6kfQG.js +2 -0
  28. package/dist/chunks/{jsx-runtime-BjzqJBtL.js.map → jsx-runtime-DZW6kfQG.js.map} +1 -1
  29. package/dist/chunks/{jsx-runtime-Cl_4eDuT.js → jsx-runtime-Dk9ExdSX.js} +2 -3
  30. package/dist/chunks/{jsx-runtime-Cl_4eDuT.js.map → jsx-runtime-Dk9ExdSX.js.map} +1 -1
  31. package/dist/chunks/{label-error-DGQqDKTV.js → label-error-Dg6_L7YY.js} +2 -2
  32. package/dist/chunks/{label-error-DGQqDKTV.js.map → label-error-Dg6_L7YY.js.map} +1 -1
  33. package/dist/chunks/{label-error-Ax74Uy3M.js → label-error-wbavGDVw.js} +2 -2
  34. package/dist/chunks/{label-error-Ax74Uy3M.js.map → label-error-wbavGDVw.js.map} +1 -1
  35. package/dist/chunks/{ripple-DMI95LHg.js → ripple-DkVNrwwK.js} +2 -2
  36. package/dist/chunks/{ripple-DMI95LHg.js.map → ripple-DkVNrwwK.js.map} +1 -1
  37. package/dist/chunks/{ripple-DieNd7XQ.js → ripple-S5nRL6TJ.js} +2 -2
  38. package/dist/chunks/{ripple-DieNd7XQ.js.map → ripple-S5nRL6TJ.js.map} +1 -1
  39. package/dist/chunks/scroll-area--KGqTnx5.js +2 -0
  40. package/dist/chunks/scroll-area--KGqTnx5.js.map +1 -0
  41. package/dist/chunks/{scroll-area-zt_z9PRo.js → scroll-area-CsOiTMG3.js} +163 -168
  42. package/dist/chunks/scroll-area-CsOiTMG3.js.map +1 -0
  43. package/dist/chunks/{select-qaP_vaF3.js → select-CJRY9hSL.js} +181 -181
  44. package/dist/chunks/select-CJRY9hSL.js.map +1 -0
  45. package/dist/chunks/select-DCeDDexH.js +2 -0
  46. package/dist/chunks/select-DCeDDexH.js.map +1 -0
  47. package/dist/chunks/{styled-components.browser.esm-CAEXERbT.js → styled-components.browser.esm-CxZkQVdi.js} +2 -2
  48. package/dist/chunks/{styled-components.browser.esm-CAEXERbT.js.map → styled-components.browser.esm-CxZkQVdi.js.map} +1 -1
  49. package/dist/chunks/{styled-components.browser.esm-DwaG9BxE.js → styled-components.browser.esm-M-8MrVJR.js} +2 -2
  50. package/dist/chunks/{styled-components.browser.esm-DwaG9BxE.js.map → styled-components.browser.esm-M-8MrVJR.js.map} +1 -1
  51. package/dist/chunks/{textarea-Cklud2kp.js → textarea-99dejq_o.js} +2 -2
  52. package/dist/chunks/{textarea-Cklud2kp.js.map → textarea-99dejq_o.js.map} +1 -1
  53. package/dist/chunks/{textarea-BIy5pTb5.js → textarea-COi5ngTN.js} +5 -5
  54. package/dist/chunks/{textarea-BIy5pTb5.js.map → textarea-COi5ngTN.js.map} +1 -1
  55. package/dist/chunks/{tooltip-B-5G3VVC.js → tooltip-Bxodcuiq.js} +2 -2
  56. package/dist/chunks/{tooltip-B-5G3VVC.js.map → tooltip-Bxodcuiq.js.map} +1 -1
  57. package/dist/chunks/{tooltip-DGFz59KW.js → tooltip-DWnKIv1c.js} +2 -2
  58. package/dist/chunks/{tooltip-DGFz59KW.js.map → tooltip-DWnKIv1c.js.map} +1 -1
  59. package/dist/divider/index.cjs.js +1 -1
  60. package/dist/divider/index.es.js +2 -2
  61. package/dist/modal/index.cjs.js +1 -1
  62. package/dist/modal/index.es.js +2 -2
  63. package/dist/pagination/index.cjs.js +1 -1
  64. package/dist/pagination/index.cjs.js.map +1 -1
  65. package/dist/pagination/index.es.js +28 -27
  66. package/dist/pagination/index.es.js.map +1 -1
  67. package/dist/phone-input/index.cjs.js +1 -1
  68. package/dist/phone-input/index.cjs.js.map +1 -1
  69. package/dist/phone-input/index.es.js +16 -16
  70. package/dist/ripple/index.cjs.js +1 -1
  71. package/dist/ripple/index.es.js +1 -1
  72. package/dist/select-input/index.cjs.js +1 -1
  73. package/dist/select-input/index.es.js +3 -3
  74. package/dist/table/index.cjs.js +1 -1
  75. package/dist/table/index.es.js +3 -3
  76. package/dist/time-input/index.cjs.js +1 -1
  77. package/dist/time-input/index.cjs.js.map +1 -1
  78. package/dist/time-input/index.es.js +8 -7
  79. package/dist/time-input/index.es.js.map +1 -1
  80. package/dist/tooltip/index.cjs.js +1 -1
  81. package/dist/tooltip/index.es.js +1 -1
  82. package/dist/ui/index.cjs.js +4 -4
  83. package/dist/ui/index.cjs.js.map +1 -1
  84. package/dist/ui/index.es.js +1052 -1063
  85. package/dist/ui/index.es.js.map +1 -1
  86. package/package.json +1 -1
  87. package/dist/chunks/index-BydcKEwP.js +0 -2
  88. package/dist/chunks/index-BydcKEwP.js.map +0 -1
  89. package/dist/chunks/index-VJ2Qvmen.js +0 -87
  90. package/dist/chunks/index-VJ2Qvmen.js.map +0 -1
  91. package/dist/chunks/jsx-runtime-BjzqJBtL.js +0 -2
  92. package/dist/chunks/scroll-area-C8l3z7wv.js +0 -2
  93. package/dist/chunks/scroll-area-C8l3z7wv.js.map +0 -1
  94. package/dist/chunks/scroll-area-zt_z9PRo.js.map +0 -1
  95. package/dist/chunks/select-CC7ump6t.js +0 -2
  96. package/dist/chunks/select-CC7ump6t.js.map +0 -1
  97. package/dist/chunks/select-qaP_vaF3.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../chunks/jsx-runtime-BjzqJBtL.js"),l=require("react"),h=require("../chunks/index-6ER8bShj.js"),f=require("../chunks/tv-CLzaSzqw.js");function m(o){const{orientation:i="horizontal",asChild:e=!1,role:r,...n}=o,a=i==="vertical"?"vertical":void 0,t={role:r??"separator",...a&&{"aria-orientation":a},...n},s=e?h.Slot:"hr";return{separatorProps:t,Separator:s}}const b=f.tv({base:"shrink-0 bg-divider border-none",variants:{orientation:{horizontal:"w-full h-divider",vertical:"h-full w-divider"}},defaultVariants:{orientation:"horizontal"}});function g(o){const{as:i,className:e,orientation:r="horizontal",ref:n,...a}=o;let t=i||"hr";t==="hr"&&r==="vertical"&&(t="div");const{separatorProps:s}=m({orientation:r,asChild:typeof t!="string"}),c=l.useMemo(()=>b({orientation:r,className:e}),[r,e]),u=l.useCallback((v={})=>({ref:n,className:c,role:"separator","data-orientation":r,...s,...a,...v}),[c,r,s,a,n]);return{Component:t,getDividerProps:u}}const d=l.forwardRef((o,i)=>{const{Component:e,getDividerProps:r}=g({...o,ref:i});return p.jsxRuntimeExports.jsx(e,{...r()})});d.displayName="Custom.Divider";exports.Divider=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("../chunks/jsx-runtime-DZW6kfQG.js"),l=require("react"),h=require("../chunks/index-B_lLnyI9.js"),f=require("../chunks/tv-CLzaSzqw.js");function m(o){const{orientation:i="horizontal",asChild:e=!1,role:r,...n}=o,a=i==="vertical"?"vertical":void 0,t={role:r??"separator",...a&&{"aria-orientation":a},...n},s=e?h.Slot:"hr";return{separatorProps:t,Separator:s}}const b=f.tv({base:"shrink-0 bg-divider border-none",variants:{orientation:{horizontal:"w-full h-divider",vertical:"h-full w-divider"}},defaultVariants:{orientation:"horizontal"}});function g(o){const{as:i,className:e,orientation:r="horizontal",ref:n,...a}=o;let t=i||"hr";t==="hr"&&r==="vertical"&&(t="div");const{separatorProps:s}=m({orientation:r,asChild:typeof t!="string"}),c=l.useMemo(()=>b({orientation:r,className:e}),[r,e]),u=l.useCallback((v={})=>({ref:n,className:c,role:"separator","data-orientation":r,...s,...a,...v}),[c,r,s,a,n]);return{Component:t,getDividerProps:u}}const d=l.forwardRef((o,i)=>{const{Component:e,getDividerProps:r}=g({...o,ref:i});return p.jsxRuntimeExports.jsx(e,{...r()})});d.displayName="Custom.Divider";exports.Divider=d;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,6 +1,6 @@
1
- import { j as c } from "../chunks/jsx-runtime-Cl_4eDuT.js";
1
+ import { j as c } from "../chunks/jsx-runtime-Dk9ExdSX.js";
2
2
  import { useMemo as v, useCallback as m, forwardRef as f } from "react";
3
- import { S as u } from "../chunks/index-Do-g2tEs.js";
3
+ import { S as u } from "../chunks/index-6UmdGTUS.js";
4
4
  import { t as h } from "../chunks/tv-3Bk5oRI_.js";
5
5
  function C(t) {
6
6
  const {
@@ -1,2 +1,2 @@
1
- "use strict";var z=Object.create;var h=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var T=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of A(e))!P.call(t,o)&&o!==n&&h(t,o,{get:()=>e[o],enumerable:!(s=L(e,o))||s.enumerable});return t};var B=(t,e,n)=>(n=t!=null?z(O(t)):{},T(e||!t||!t.__esModule?h(n,"default",{value:t,enumerable:!0}):n,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/jsx-runtime-BjzqJBtL.js"),C=require("react-dom"),i=require("react"),r=require("../chunks/utils-IjLH3w2e.js"),S=require("../chunks/button-OdZ6El_t.js"),x=require("framer-motion"),m=require("../chunks/index-BxK4T-v8.js"),u={ease:[.36,.66,.4,1]},y={scaleInOut:{enter:{transform:"scale(1)",opacity:1,transition:{duration:.4,ease:u.ease}},exit:{transform:"scale(1.03)",opacity:0,transition:{duration:.3,ease:u.ease}}},fade:{enter:{opacity:1,transition:{duration:.4,ease:u.ease}},exit:{opacity:0,transition:{duration:.3,ease:u.ease}}}},_=m.cva("",{variants:{backdrop:{transparent:"bg-transparent",opaque:"bg-black/50",blur:"backdrop-blur-md backdrop-saturate-150 bg-overlay/30"}},defaultVariants:{backdrop:"opaque"}}),F=m.cva("",{variants:{size:{xs:"max-w-xs",sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl","3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl",full:"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none"}},defaultVariants:{size:"md"}}),H=m.cva("",{variants:{radius:{none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg"}},defaultVariants:{radius:"lg"}}),G=m.cva("",{variants:{placement:{center:"fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]",top:"fixed top-0 left-[50%] translate-x-[-50%] sm:mt-8",bottom:"fixed bottom-0 left-[50%] translate-x-[-50%] sm:mb-8"}},defaultVariants:{placement:"center"}}),Z=m.cva("",{variants:{shadow:{none:"shadow-none",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"}},defaultVariants:{shadow:"md"}}),j=i.forwardRef(({modalId:t,isShow:e,isVisible:n,children:s,style:o,classNameOverlay:c="",styleContainer:f,onClickOutside:d,classNameDialog:w="modal-custom-dialog",classNameContent:b="",backdrop:R="opaque",size:E="md",isKeyboardDismissDisabled:p=!1,shadow:N="md",radius:M="lg",placement:k="center"},I)=>{const q=i.useRef(null);if(i.useEffect(()=>(typeof window<"u"&&n&&document.body.classList.add("modal-open"),()=>{typeof window<"u"&&document.body.classList.remove("modal-open")}),[n]),i.useEffect(()=>{const l=V=>{V.key==="Escape"&&!p&&d?.()};return e&&document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[e,p,d]),typeof window>"u")return null;const v=document.getElementById("modal-root");return v?C.createPortal(a.jsxRuntimeExports.jsx(x.AnimatePresence,{children:e&&a.jsxRuntimeExports.jsx(x.LazyMotion,{features:()=>import("framer-motion").then(l=>l.domAnimation),children:a.jsxRuntimeExports.jsxs(a.jsxRuntimeExports.Fragment,{children:[a.jsxRuntimeExports.jsx(x.m.div,{initial:"exit",animate:"enter",exit:"exit",variants:y.fade,className:r.cn("fixed inset-0 z-50",_({backdrop:R}),c),onClick:d,"aria-hidden":!e,role:"dialog","aria-modal":"true",tabIndex:-1,ref:q},"modal-overlay"),a.jsxRuntimeExports.jsx(x.m.div,{initial:"exit",animate:"enter",exit:"exit",variants:y.scaleInOut,ref:I,id:t,onClick:l=>l.stopPropagation(),className:r.cn(" z-50 w-full rounded-lg shadow-lg bg-content1",G({placement:k}),F({size:E}),H({radius:M}),Z({shadow:N}),w),style:o,children:a.jsxRuntimeExports.jsx("div",{className:r.cn("modal-custom-content w-full flex flex-col max-h-[calc(100vh_-_4rem)]",b),style:f,children:s})},"modal-content")]})})}),v):null});j.displayName="ModalPortalComponent";const $=({title:t,showCloseButton:e=!0,disabled:n=!1,onClick:s,className:o,styled:c,children:f,...d})=>a.jsxRuntimeExports.jsxs("div",{className:r.cn("modal-custom-header-container w-full"),style:c,children:[a.jsxRuntimeExports.jsx("div",{className:r.cn("w-full flex py-4 px-6 flex-initial text-large font-semibold",o),...d,children:f||a.jsxRuntimeExports.jsx("header",{className:"modal-custom-title text-lg leading-none font-semibold",children:t})}),e&&a.jsxRuntimeExports.jsx("div",{className:"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10",children:a.jsxRuntimeExports.jsxs(S.Button,{isIconOnly:!0,variant:"light",radius:"full","aria-label":"Close",onClick:s,disabled:n,className:"p-0 w-[36px] h-[36px] min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none",children:[a.jsxRuntimeExports.jsxs("svg",{width:"20",height:"20",fill:"currentColor",role:"img","aria-hidden":"true",children:[a.jsxRuntimeExports.jsx("path",{fill:"none",d:"M0 0h21v21H0z"}),a.jsxRuntimeExports.jsx("path",{d:"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z"})]}),a.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})})]}),g=i.forwardRef(({children:t,className:e="",styled:n,height:s},o)=>a.jsxRuntimeExports.jsx("div",{className:r.cn("modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto",e),ref:o,style:{...n,height:s?`${s}px`:"auto"},children:t}));g.displayName="ModalBodyPortalComponent";const D=({children:t,className:e,styled:n})=>a.jsxRuntimeExports.jsx("div",{className:r.cn("modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto",e),style:n,children:t});exports.Modal=j;exports.ModalBody=g;exports.ModalFooter=D;exports.ModalHeader=$;
1
+ "use strict";var z=Object.create;var h=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var T=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of A(e))!P.call(t,o)&&o!==n&&h(t,o,{get:()=>e[o],enumerable:!(s=L(e,o))||s.enumerable});return t};var B=(t,e,n)=>(n=t!=null?z(O(t)):{},T(e||!t||!t.__esModule?h(n,"default",{value:t,enumerable:!0}):n,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/jsx-runtime-DZW6kfQG.js"),C=require("react-dom"),i=require("react"),r=require("../chunks/utils-IjLH3w2e.js"),S=require("../chunks/button-CGIs6rx_.js"),x=require("framer-motion"),m=require("../chunks/index-BxK4T-v8.js"),u={ease:[.36,.66,.4,1]},y={scaleInOut:{enter:{transform:"scale(1)",opacity:1,transition:{duration:.4,ease:u.ease}},exit:{transform:"scale(1.03)",opacity:0,transition:{duration:.3,ease:u.ease}}},fade:{enter:{opacity:1,transition:{duration:.4,ease:u.ease}},exit:{opacity:0,transition:{duration:.3,ease:u.ease}}}},_=m.cva("",{variants:{backdrop:{transparent:"bg-transparent",opaque:"bg-black/50",blur:"backdrop-blur-md backdrop-saturate-150 bg-overlay/30"}},defaultVariants:{backdrop:"opaque"}}),F=m.cva("",{variants:{size:{xs:"max-w-xs",sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl","2xl":"max-w-2xl","3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl",full:"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none"}},defaultVariants:{size:"md"}}),H=m.cva("",{variants:{radius:{none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg"}},defaultVariants:{radius:"lg"}}),G=m.cva("",{variants:{placement:{center:"fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]",top:"fixed top-0 left-[50%] translate-x-[-50%] sm:mt-8",bottom:"fixed bottom-0 left-[50%] translate-x-[-50%] sm:mb-8"}},defaultVariants:{placement:"center"}}),Z=m.cva("",{variants:{shadow:{none:"shadow-none",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"}},defaultVariants:{shadow:"md"}}),j=i.forwardRef(({modalId:t,isShow:e,isVisible:n,children:s,style:o,classNameOverlay:c="",styleContainer:f,onClickOutside:d,classNameDialog:w="modal-custom-dialog",classNameContent:b="",backdrop:R="opaque",size:E="md",isKeyboardDismissDisabled:p=!1,shadow:N="md",radius:M="lg",placement:k="center"},I)=>{const q=i.useRef(null);if(i.useEffect(()=>(typeof window<"u"&&n&&document.body.classList.add("modal-open"),()=>{typeof window<"u"&&document.body.classList.remove("modal-open")}),[n]),i.useEffect(()=>{const l=V=>{V.key==="Escape"&&!p&&d?.()};return e&&document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[e,p,d]),typeof window>"u")return null;const v=document.getElementById("modal-root");return v?C.createPortal(a.jsxRuntimeExports.jsx(x.AnimatePresence,{children:e&&a.jsxRuntimeExports.jsx(x.LazyMotion,{features:()=>import("framer-motion").then(l=>l.domAnimation),children:a.jsxRuntimeExports.jsxs(a.jsxRuntimeExports.Fragment,{children:[a.jsxRuntimeExports.jsx(x.m.div,{initial:"exit",animate:"enter",exit:"exit",variants:y.fade,className:r.cn("fixed inset-0 z-50",_({backdrop:R}),c),onClick:d,"aria-hidden":!e,role:"dialog","aria-modal":"true",tabIndex:-1,ref:q},"modal-overlay"),a.jsxRuntimeExports.jsx(x.m.div,{initial:"exit",animate:"enter",exit:"exit",variants:y.scaleInOut,ref:I,id:t,onClick:l=>l.stopPropagation(),className:r.cn(" z-50 w-full rounded-lg shadow-lg bg-content1",G({placement:k}),F({size:E}),H({radius:M}),Z({shadow:N}),w),style:o,children:a.jsxRuntimeExports.jsx("div",{className:r.cn("modal-custom-content w-full flex flex-col max-h-[calc(100vh_-_4rem)]",b),style:f,children:s})},"modal-content")]})})}),v):null});j.displayName="ModalPortalComponent";const $=({title:t,showCloseButton:e=!0,disabled:n=!1,onClick:s,className:o,styled:c,children:f,...d})=>a.jsxRuntimeExports.jsxs("div",{className:r.cn("modal-custom-header-container w-full"),style:c,children:[a.jsxRuntimeExports.jsx("div",{className:r.cn("w-full flex py-4 px-6 flex-initial text-large font-semibold",o),...d,children:f||a.jsxRuntimeExports.jsx("header",{className:"modal-custom-title text-lg leading-none font-semibold",children:t})}),e&&a.jsxRuntimeExports.jsx("div",{className:"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10",children:a.jsxRuntimeExports.jsxs(S.Button,{isIconOnly:!0,variant:"light",radius:"full","aria-label":"Close",onClick:s,disabled:n,className:"p-0 w-[36px] h-[36px] min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none",children:[a.jsxRuntimeExports.jsxs("svg",{width:"20",height:"20",fill:"currentColor",role:"img","aria-hidden":"true",children:[a.jsxRuntimeExports.jsx("path",{fill:"none",d:"M0 0h21v21H0z"}),a.jsxRuntimeExports.jsx("path",{d:"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z"})]}),a.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})})]}),g=i.forwardRef(({children:t,className:e="",styled:n,height:s},o)=>a.jsxRuntimeExports.jsx("div",{className:r.cn("modal-custom-body flex flex-1 flex-col gap-3 px-6 overflow-y-auto",e),ref:o,style:{...n,height:s?`${s}px`:"auto"},children:t}));g.displayName="ModalBodyPortalComponent";const D=({children:t,className:e,styled:n})=>a.jsxRuntimeExports.jsx("div",{className:r.cn("modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto",e),style:n,children:t});exports.Modal=j;exports.ModalBody=g;exports.ModalFooter=D;exports.ModalHeader=$;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,8 +1,8 @@
1
- import { j as e } from "../chunks/jsx-runtime-Cl_4eDuT.js";
1
+ import { j as e } from "../chunks/jsx-runtime-Dk9ExdSX.js";
2
2
  import z from "react-dom";
3
3
  import { forwardRef as y, useRef as L, useEffect as p } from "react";
4
4
  import { c as n } from "../chunks/utils-B6yFEsav.js";
5
- import { B as A } from "../chunks/button-CSuKvE1x.js";
5
+ import { B as A } from "../chunks/button-COC4E-Qv.js";
6
6
  import { AnimatePresence as E, LazyMotion as _, m as h } from "framer-motion";
7
7
  import { c as i } from "../chunks/index-BOQuZ0gG.js";
8
8
  const m = {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../chunks/jsx-runtime-BjzqJBtL.js"),p=require("tailwind-merge"),R=require("../chunks/index-CeBD7F1N.js"),h=require("react"),g=require("clsx");require("../chunks/textarea-Cklud2kp.js");const m=require("../chunks/select-CC7ump6t.js");require("../chunks/button-OdZ6El_t.js");const j=({className:u,color:e="primary",active:t,children:o,text:r,onClick:l})=>{const c=g({"bg-primary":e==="primary"&&t,"bg-success":e==="success"&&t,"bg-danger":e==="danger"&&t,"bg-warning":e==="warning"&&t,"bg-default":e==="default"&&t,"dark:hover:bg-default-200 dark:hover:text-default-800":!t}),d=p.twMerge(g("text-sm",{"group-hover:text-primary-500 dark:group-hover:text-default-800":e==="primary"&&!t,"group-hover:text-success-500 dark:group-hover:text-default-800":e==="success"&&!t,"group-hover:text-danger-500 dark:group-hover:text-default-800":e==="danger"&&!t,"group-hover:text-warning-500 dark:group-hover:text-default-800":e==="warning"&&!t,"group-hover:text-default-500 dark:group-hover:text-default-800":e==="default"&&!t,"text-default-foreground":t&&e==="default","text-primary-foreground":t&&e==="primary","text-success-foreground":t&&e==="success","text-danger-foreground":t&&e==="danger","text-warning-foreground":t&&e==="warning"}));return s.jsxRuntimeExports.jsx("div",{className:p.twMerge("w-[33px] h-[32px] flex items-center justify-center group ",c,u),onClick:l,children:o||s.jsxRuntimeExports.jsx("p",{className:d,children:r})})},y=({page:u,total:e,siblings:t=1})=>{if(7+t>=e)return Array.from({length:e},(n,x)=>x+1);const r=Math.max(u-t,1),l=Math.min(u+t,e),c=r>2,d=l<e-2;if(!c&&d){const n=3+2*t;return[...Array.from({length:n},(i,f)=>f+1),"...",e]}else if(c&&!d){const n=3+2*t;return[1,"...",...Array.from({length:n},(i,f)=>e-n+f+1)]}else return[1,"...",...Array.from({length:l-r+1},(x,i)=>r+i),"...",e]},k=u=>u.map(e=>({id:e,name:e})),v=({className:u,color:e="primary",total:t,limit:o=20,page:r=1,siblings:l=1,isLimitSelect:c=!0,dataLimit:d=[10,15,20,50,100,200],onChange:n,translate:x={selectLimit:"Limites",rowPerPage:"Filas por pagina",of:"de"}})=>{const i=Math.ceil(t/o),f=y({page:r,siblings:l,total:i}),w=k(d),b=a=>{a!=="..."&&n&&n({limit:o,page:Number(a)})},E=()=>{r!==1&&n&&n({limit:o,page:r-1})},P=()=>{r===i||i===0||n&&n({limit:o,page:r+1})},N=a=>{n&&n({page:r,limit:a?Number(a):20})};return s.jsxRuntimeExports.jsxs("div",{className:p.twMerge("flex justify-between gap-x-2 items-center",u),children:[c?s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2.5",children:[s.jsxRuntimeExports.jsx("div",{children:s.jsxRuntimeExports.jsxs("span",{className:"text-sm text-default-500",children:[x?.rowPerPage||"Filas por pagina",":"]})}),s.jsxRuntimeExports.jsxs(m.Select,{value:o?.toString(),onValueChange:N,children:[s.jsxRuntimeExports.jsx(m.SelectTrigger,{className:"min-w-20",children:s.jsxRuntimeExports.jsx(m.SelectValue,{placeholder:"Select limit"})}),s.jsxRuntimeExports.jsx(m.SelectContent,{children:s.jsxRuntimeExports.jsxs(m.SelectGroup,{children:[s.jsxRuntimeExports.jsx(m.SelectLabel,{children:x?.selectLimit||"Limites"}),w.map(a=>s.jsxRuntimeExports.jsx(m.SelectItem,{value:a.id?.toString(),children:a.name},a.id))]})})]}),s.jsxRuntimeExports.jsxs("div",{className:"text-sm text-default-500",children:[s.jsxRuntimeExports.jsx("span",{className:"text-default-500",children:`${r} - ${o}`})," ",x?.of||"de"," ",s.jsxRuntimeExports.jsx("span",{className:"text-default-500",children:t})]})]}):null,i>1&&s.jsxRuntimeExports.jsxs("div",{className:"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100",children:[s.jsxRuntimeExports.jsx(j,{className:g(r===1&&"cursor-no-drop","rounded-tl-lg rounded-bl-lg "),onClick:E,children:s.jsxRuntimeExports.jsx(R.IoIosArrowBack,{className:p.twMerge("fill-default-500",g(r===1&&"fill-default-300"))})}),f.map((a,S)=>s.jsxRuntimeExports.jsx(j,{text:a,active:r===a,color:e,onClick:()=>b(a),className:"border-l border-divider "},S)),s.jsxRuntimeExports.jsx(j,{className:g("border-l border-divider rounded-tr-lg rounded-br-lg ",(r===i||i===0)&&"cursor-no-drop"),onClick:P,children:s.jsxRuntimeExports.jsx(R.IoIosArrowBack,{className:p.twMerge("fill-default-500 transform rotate-180 ",g((r===i||i===0)&&"fill-default-300"))})})]})]})},I=({initialPage:u=1,initialLimit:e=20})=>{const[t,o]=h.useState(u),[r,l]=h.useState(e);return{handleSetPagination:h.useCallback(({page:d,limit:n})=>{d!==t&&o(d),n!==r&&l(n)},[r,t]),page:t,limit:r}};exports.Pagination=v;exports.usePagination=I;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../chunks/jsx-runtime-DZW6kfQG.js"),p=require("tailwind-merge"),R=require("../chunks/index-CeBD7F1N.js"),h=require("react"),g=require("clsx");require("../chunks/textarea-99dejq_o.js");require("lucide-react");const m=require("../chunks/select-DCeDDexH.js");require("../chunks/button-CGIs6rx_.js");const j=({className:u,color:e="primary",active:t,children:o,text:r,onClick:l})=>{const c=g({"bg-primary":e==="primary"&&t,"bg-success":e==="success"&&t,"bg-danger":e==="danger"&&t,"bg-warning":e==="warning"&&t,"bg-default":e==="default"&&t,"dark:hover:bg-default-200 dark:hover:text-default-800":!t}),d=p.twMerge(g("text-sm",{"group-hover:text-primary-500 dark:group-hover:text-default-800":e==="primary"&&!t,"group-hover:text-success-500 dark:group-hover:text-default-800":e==="success"&&!t,"group-hover:text-danger-500 dark:group-hover:text-default-800":e==="danger"&&!t,"group-hover:text-warning-500 dark:group-hover:text-default-800":e==="warning"&&!t,"group-hover:text-default-500 dark:group-hover:text-default-800":e==="default"&&!t,"text-default-foreground":t&&e==="default","text-primary-foreground":t&&e==="primary","text-success-foreground":t&&e==="success","text-danger-foreground":t&&e==="danger","text-warning-foreground":t&&e==="warning"}));return s.jsxRuntimeExports.jsx("div",{className:p.twMerge("w-[33px] h-[32px] flex items-center justify-center group ",c,u),onClick:l,children:o||s.jsxRuntimeExports.jsx("p",{className:d,children:r})})},y=({page:u,total:e,siblings:t=1})=>{if(7+t>=e)return Array.from({length:e},(n,x)=>x+1);const r=Math.max(u-t,1),l=Math.min(u+t,e),c=r>2,d=l<e-2;if(!c&&d){const n=3+2*t;return[...Array.from({length:n},(a,f)=>f+1),"...",e]}else if(c&&!d){const n=3+2*t;return[1,"...",...Array.from({length:n},(a,f)=>e-n+f+1)]}else return[1,"...",...Array.from({length:l-r+1},(x,a)=>r+a),"...",e]},k=u=>u.map(e=>({id:e,name:e})),v=({className:u,color:e="primary",total:t,limit:o=20,page:r=1,siblings:l=1,isLimitSelect:c=!0,dataLimit:d=[10,15,20,50,100,200],onChange:n,translate:x={selectLimit:"Limites",rowPerPage:"Filas por pagina",of:"de"}})=>{const a=Math.ceil(t/o),f=y({page:r,siblings:l,total:a}),w=k(d),b=i=>{i!=="..."&&n&&n({limit:o,page:Number(i)})},E=()=>{r!==1&&n&&n({limit:o,page:r-1})},P=()=>{r===a||a===0||n&&n({limit:o,page:r+1})},N=i=>{n&&n({page:r,limit:i?Number(i):20})};return s.jsxRuntimeExports.jsxs("div",{className:p.twMerge("flex justify-between gap-x-2 items-center",u),children:[c?s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2.5",children:[s.jsxRuntimeExports.jsx("div",{children:s.jsxRuntimeExports.jsxs("span",{className:"text-sm text-default-500",children:[x?.rowPerPage||"Filas por pagina",":"]})}),s.jsxRuntimeExports.jsxs(m.Select,{value:o?.toString(),onValueChange:N,children:[s.jsxRuntimeExports.jsx(m.SelectTrigger,{className:"min-w-20",children:s.jsxRuntimeExports.jsx(m.SelectValue,{placeholder:"Select limit"})}),s.jsxRuntimeExports.jsx(m.SelectContent,{children:s.jsxRuntimeExports.jsxs(m.SelectGroup,{children:[s.jsxRuntimeExports.jsx(m.SelectLabel,{children:x?.selectLimit||"Limites"}),w.map(i=>s.jsxRuntimeExports.jsx(m.SelectItem,{value:i.id?.toString(),children:i.name},i.id))]})})]}),s.jsxRuntimeExports.jsxs("div",{className:"text-sm text-default-500",children:[s.jsxRuntimeExports.jsx("span",{className:"text-default-500",children:`${r} - ${o}`})," ",x?.of||"de"," ",s.jsxRuntimeExports.jsx("span",{className:"text-default-500",children:t})]})]}):null,a>1&&s.jsxRuntimeExports.jsxs("div",{className:"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100",children:[s.jsxRuntimeExports.jsx(j,{className:g(r===1&&"cursor-no-drop","rounded-tl-lg rounded-bl-lg "),onClick:E,children:s.jsxRuntimeExports.jsx(R.IoIosArrowBack,{className:p.twMerge("fill-default-500",g(r===1&&"fill-default-300"))})}),f.map((i,S)=>s.jsxRuntimeExports.jsx(j,{text:i,active:r===i,color:e,onClick:()=>b(i),className:"border-l border-divider "},S)),s.jsxRuntimeExports.jsx(j,{className:g("border-l border-divider rounded-tr-lg rounded-br-lg ",(r===a||a===0)&&"cursor-no-drop"),onClick:P,children:s.jsxRuntimeExports.jsx(R.IoIosArrowBack,{className:p.twMerge("fill-default-500 transform rotate-180 ",g((r===a||a===0)&&"fill-default-300"))})})]})]})},I=({initialPage:u=1,initialLimit:e=20})=>{const[t,o]=h.useState(u),[r,l]=h.useState(e);return{handleSetPagination:h.useCallback(({page:d,limit:n})=>{d!==t&&o(d),n!==r&&l(n)},[r,t]),page:t,limit:r}};exports.Pagination=v;exports.usePagination=I;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({ className, color = \"primary\", active, children, text, onClick }: PaginationItemProps) => {\n\tconst bgClass = clsx(\n\t\t{\n\t\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\t\"bg-success\": color === \"success\" && active,\n\t\t\t\"bg-danger\": color === \"danger\" && active,\n\t\t\t\"bg-warning\": color === \"warning\" && active,\n\t\t\t\"bg-default\": color === \"default\" && active,\n \"dark:hover:bg-default-200 dark:hover:text-default-800\": !active,\n\t\t},\n\t);\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500 dark:group-hover:text-default-800\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500 dark:group-hover:text-default-800\": color === \"success\" && !active,\n\t\t\t\"group-hover:text-danger-500 dark:group-hover:text-default-800\": color === \"danger\" && !active,\n\t\t\t\"group-hover:text-warning-500 dark:group-hover:text-default-800\": color === \"warning\" && !active,\n\t\t\t\"group-hover:text-default-500 dark:group-hover:text-default-800\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n\t\t\t\"text-success-foreground\": active && color === \"success\",\n\t\t\t\"text-danger-foreground\": active && color === \"danger\",\n\t\t\t\"text-warning-foreground\": active && color === \"warning\",\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div className={twMerge(\"w-[33px] h-[32px] flex items-center justify-center group \", bgClass, className)} onClick={onClick}>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n\ttranslate = {\n\t\tselectLimit: \"Limites\",\n\t\trowPerPage: \"Filas por pagina\",\n\t\tof: \"de\",\n\t},\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-default-500\">{translate?.rowPerPage || \"Filas por pagina\"}:</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select limit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>{translate?.selectLimit || \"Limites\"}</SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-default-500\">\n\t\t\t\t\t\t<span className=\"text-default-500\">{`${page} - ${limit}`}</span> {translate?.of || \"de\"}{\" \"}\n\t\t\t\t\t\t<span className=\"text-default-500\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t{totalPagination > 1 && (\n\t\t\t\t<div className=\"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100\">\n\t\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\", \"rounded-tl-lg rounded-bl-lg \")} onClick={handlePrev}>\n\t\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-default-500\", clsx(page === 1 && \"fill-default-300\"))} />\n\t\t\t\t\t</PaginationItem>\n\n\t\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\ttext={el}\n\t\t\t\t\t\t\tactive={page === el}\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\tonClick={() => handleChange(el)}\n\t\t\t\t\t\t\tclassName=\"border-l border-divider \"\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"border-l border-divider rounded-tr-lg rounded-br-lg \",\n\t\t\t\t\t\t\t(page === totalPagination || totalPagination === 0) && \"cursor-no-drop\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\t\"fill-default-500 transform rotate-180 \",\n\t\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-default-300\"),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","translate","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({ className, color = \"primary\", active, children, text, onClick }: PaginationItemProps) => {\n\tconst bgClass = clsx(\n\t\t{\n\t\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\t\"bg-success\": color === \"success\" && active,\n\t\t\t\"bg-danger\": color === \"danger\" && active,\n\t\t\t\"bg-warning\": color === \"warning\" && active,\n\t\t\t\"bg-default\": color === \"default\" && active,\n \"dark:hover:bg-default-200 dark:hover:text-default-800\": !active,\n\t\t},\n\t);\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500 dark:group-hover:text-default-800\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500 dark:group-hover:text-default-800\": color === \"success\" && !active,\n\t\t\t\"group-hover:text-danger-500 dark:group-hover:text-default-800\": color === \"danger\" && !active,\n\t\t\t\"group-hover:text-warning-500 dark:group-hover:text-default-800\": color === \"warning\" && !active,\n\t\t\t\"group-hover:text-default-500 dark:group-hover:text-default-800\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n\t\t\t\"text-success-foreground\": active && color === \"success\",\n\t\t\t\"text-danger-foreground\": active && color === \"danger\",\n\t\t\t\"text-warning-foreground\": active && color === \"warning\",\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div className={twMerge(\"w-[33px] h-[32px] flex items-center justify-center group \", bgClass, className)} onClick={onClick}>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n\ttranslate = {\n\t\tselectLimit: \"Limites\",\n\t\trowPerPage: \"Filas por pagina\",\n\t\tof: \"de\",\n\t},\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-default-500\">{translate?.rowPerPage || \"Filas por pagina\"}:</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select limit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>{translate?.selectLimit || \"Limites\"}</SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-default-500\">\n\t\t\t\t\t\t<span className=\"text-default-500\">{`${page} - ${limit}`}</span> {translate?.of || \"de\"}{\" \"}\n\t\t\t\t\t\t<span className=\"text-default-500\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t{totalPagination > 1 && (\n\t\t\t\t<div className=\"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100\">\n\t\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\", \"rounded-tl-lg rounded-bl-lg \")} onClick={handlePrev}>\n\t\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-default-500\", clsx(page === 1 && \"fill-default-300\"))} />\n\t\t\t\t\t</PaginationItem>\n\n\t\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\ttext={el}\n\t\t\t\t\t\t\tactive={page === el}\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\tonClick={() => handleChange(el)}\n\t\t\t\t\t\t\tclassName=\"border-l border-divider \"\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"border-l border-divider rounded-tr-lg rounded-br-lg \",\n\t\t\t\t\t\t\t(page === totalPagination || totalPagination === 0) && \"cursor-no-drop\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\t\"fill-default-500 transform rotate-180 \",\n\t\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-default-300\"),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","translate","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { j as s } from "../chunks/jsx-runtime-Cl_4eDuT.js";
1
+ import { j as s } from "../chunks/jsx-runtime-Dk9ExdSX.js";
2
2
  import { twMerge as x } from "tailwind-merge";
3
3
  import { I as p } from "../chunks/index-DK44x_HP.js";
4
4
  import { useState as j, useCallback as k } from "react";
5
5
  import f from "clsx";
6
- import "../chunks/textarea-BIy5pTb5.js";
7
- import { S as v, a as I, b as C, c as L, d as R, e as A, f as F } from "../chunks/select-qaP_vaF3.js";
8
- import "../chunks/button-CSuKvE1x.js";
9
- const h = ({ className: o, color: e = "primary", active: r, children: i, text: t, onClick: u }) => {
6
+ import "../chunks/textarea-COi5ngTN.js";
7
+ import "lucide-react";
8
+ import { S as v, a as I, b as C, c as L, d as R, e as A, f as F } from "../chunks/select-CJRY9hSL.js";
9
+ import "../chunks/button-COC4E-Qv.js";
10
+ const h = ({ className: o, color: e = "primary", active: r, children: d, text: t, onClick: u }) => {
10
11
  const c = f(
11
12
  {
12
13
  "bg-primary": e === "primary" && r,
@@ -30,7 +31,7 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
30
31
  "text-warning-foreground": r && e === "warning"
31
32
  })
32
33
  );
33
- return /* @__PURE__ */ s.jsx("div", { className: x("w-[33px] h-[32px] flex items-center justify-center group ", c, o), onClick: u, children: i || /* @__PURE__ */ s.jsx("p", { className: l, children: t }) });
34
+ return /* @__PURE__ */ s.jsx("div", { className: x("w-[33px] h-[32px] flex items-center justify-center group ", c, o), onClick: u, children: d || /* @__PURE__ */ s.jsx("p", { className: l, children: t }) });
34
35
  }, M = ({
35
36
  page: o,
36
37
  total: e,
@@ -41,26 +42,26 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
41
42
  const t = Math.max(o - r, 1), u = Math.min(o + r, e), c = t > 2, l = u < e - 2;
42
43
  if (!c && l) {
43
44
  const a = 3 + 2 * r;
44
- return [...Array.from({ length: a }, (d, g) => g + 1), "...", e];
45
+ return [...Array.from({ length: a }, (i, g) => g + 1), "...", e];
45
46
  } else if (c && !l) {
46
47
  const a = 3 + 2 * r;
47
48
  return [1, "...", ...Array.from(
48
49
  { length: a },
49
- (d, g) => e - a + g + 1
50
+ (i, g) => e - a + g + 1
50
51
  )];
51
52
  } else
52
53
  return [1, "...", ...Array.from(
53
54
  { length: u - t + 1 },
54
- (m, d) => t + d
55
+ (m, i) => t + i
55
56
  ), "...", e];
56
57
  }, _ = (o) => o.map((e) => ({
57
58
  id: e,
58
59
  name: e
59
- })), z = ({
60
+ })), H = ({
60
61
  className: o,
61
62
  color: e = "primary",
62
63
  total: r,
63
- limit: i = 20,
64
+ limit: d = 20,
64
65
  page: t = 1,
65
66
  siblings: u = 1,
66
67
  isLimitSelect: c = !0,
@@ -72,23 +73,23 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
72
73
  of: "de"
73
74
  }
74
75
  }) => {
75
- const d = Math.ceil(r / i), g = M({
76
+ const i = Math.ceil(r / d), g = M({
76
77
  page: t,
77
78
  siblings: u,
78
- total: d
79
+ total: i
79
80
  }), b = _(l), N = (n) => {
80
81
  n !== "..." && a && a({
81
- limit: i,
82
+ limit: d,
82
83
  page: Number(n)
83
84
  });
84
85
  }, w = () => {
85
86
  t !== 1 && a && a({
86
- limit: i,
87
+ limit: d,
87
88
  page: t - 1
88
89
  });
89
90
  }, P = () => {
90
- t === d || d === 0 || a && a({
91
- limit: i,
91
+ t === i || i === 0 || a && a({
92
+ limit: d,
92
93
  page: t + 1
93
94
  });
94
95
  }, S = (n) => {
@@ -103,7 +104,7 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
103
104
  m?.rowPerPage || "Filas por pagina",
104
105
  ":"
105
106
  ] }) }),
106
- /* @__PURE__ */ s.jsxs(v, { value: i?.toString(), onValueChange: S, children: [
107
+ /* @__PURE__ */ s.jsxs(v, { value: d?.toString(), onValueChange: S, children: [
107
108
  /* @__PURE__ */ s.jsx(I, { className: "min-w-20", children: /* @__PURE__ */ s.jsx(C, { placeholder: "Select limit" }) }),
108
109
  /* @__PURE__ */ s.jsx(L, { children: /* @__PURE__ */ s.jsxs(R, { children: [
109
110
  /* @__PURE__ */ s.jsx(A, { children: m?.selectLimit || "Limites" }),
@@ -111,14 +112,14 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
111
112
  ] }) })
112
113
  ] }),
113
114
  /* @__PURE__ */ s.jsxs("div", { className: "text-sm text-default-500", children: [
114
- /* @__PURE__ */ s.jsx("span", { className: "text-default-500", children: `${t} - ${i}` }),
115
+ /* @__PURE__ */ s.jsx("span", { className: "text-default-500", children: `${t} - ${d}` }),
115
116
  " ",
116
117
  m?.of || "de",
117
118
  " ",
118
119
  /* @__PURE__ */ s.jsx("span", { className: "text-default-500", children: r })
119
120
  ] })
120
121
  ] }) : null,
121
- d > 1 && /* @__PURE__ */ s.jsxs("div", { className: "flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100", children: [
122
+ i > 1 && /* @__PURE__ */ s.jsxs("div", { className: "flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100", children: [
122
123
  /* @__PURE__ */ s.jsx(h, { className: f(t === 1 && "cursor-no-drop", "rounded-tl-lg rounded-bl-lg "), onClick: w, children: /* @__PURE__ */ s.jsx(p, { className: x("fill-default-500", f(t === 1 && "fill-default-300")) }) }),
123
124
  g.map((n, y) => /* @__PURE__ */ s.jsx(
124
125
  h,
@@ -136,7 +137,7 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
136
137
  {
137
138
  className: f(
138
139
  "border-l border-divider rounded-tr-lg rounded-br-lg ",
139
- (t === d || d === 0) && "cursor-no-drop"
140
+ (t === i || i === 0) && "cursor-no-drop"
140
141
  ),
141
142
  onClick: P,
142
143
  children: /* @__PURE__ */ s.jsx(
@@ -144,7 +145,7 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
144
145
  {
145
146
  className: x(
146
147
  "fill-default-500 transform rotate-180 ",
147
- f((t === d || d === 0) && "fill-default-300")
148
+ f((t === i || i === 0) && "fill-default-300")
148
149
  )
149
150
  }
150
151
  )
@@ -152,12 +153,12 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
152
153
  )
153
154
  ] })
154
155
  ] });
155
- }, H = ({ initialPage: o = 1, initialLimit: e = 20 }) => {
156
- const [r, i] = j(o), [t, u] = j(e);
156
+ }, J = ({ initialPage: o = 1, initialLimit: e = 20 }) => {
157
+ const [r, d] = j(o), [t, u] = j(e);
157
158
  return {
158
159
  handleSetPagination: k(
159
160
  ({ page: l, limit: a }) => {
160
- l !== r && i(l), a !== t && u(a);
161
+ l !== r && d(l), a !== t && u(a);
161
162
  },
162
163
  [t, r]
163
164
  ),
@@ -166,7 +167,7 @@ const h = ({ className: o, color: e = "primary", active: r, children: i, text: t
166
167
  };
167
168
  };
168
169
  export {
169
- z as Pagination,
170
- H as usePagination
170
+ H as Pagination,
171
+ J as usePagination
171
172
  };
172
173
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({ className, color = \"primary\", active, children, text, onClick }: PaginationItemProps) => {\n\tconst bgClass = clsx(\n\t\t{\n\t\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\t\"bg-success\": color === \"success\" && active,\n\t\t\t\"bg-danger\": color === \"danger\" && active,\n\t\t\t\"bg-warning\": color === \"warning\" && active,\n\t\t\t\"bg-default\": color === \"default\" && active,\n \"dark:hover:bg-default-200 dark:hover:text-default-800\": !active,\n\t\t},\n\t);\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500 dark:group-hover:text-default-800\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500 dark:group-hover:text-default-800\": color === \"success\" && !active,\n\t\t\t\"group-hover:text-danger-500 dark:group-hover:text-default-800\": color === \"danger\" && !active,\n\t\t\t\"group-hover:text-warning-500 dark:group-hover:text-default-800\": color === \"warning\" && !active,\n\t\t\t\"group-hover:text-default-500 dark:group-hover:text-default-800\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n\t\t\t\"text-success-foreground\": active && color === \"success\",\n\t\t\t\"text-danger-foreground\": active && color === \"danger\",\n\t\t\t\"text-warning-foreground\": active && color === \"warning\",\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div className={twMerge(\"w-[33px] h-[32px] flex items-center justify-center group \", bgClass, className)} onClick={onClick}>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n\ttranslate = {\n\t\tselectLimit: \"Limites\",\n\t\trowPerPage: \"Filas por pagina\",\n\t\tof: \"de\",\n\t},\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-default-500\">{translate?.rowPerPage || \"Filas por pagina\"}:</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select limit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>{translate?.selectLimit || \"Limites\"}</SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-default-500\">\n\t\t\t\t\t\t<span className=\"text-default-500\">{`${page} - ${limit}`}</span> {translate?.of || \"de\"}{\" \"}\n\t\t\t\t\t\t<span className=\"text-default-500\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t{totalPagination > 1 && (\n\t\t\t\t<div className=\"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100\">\n\t\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\", \"rounded-tl-lg rounded-bl-lg \")} onClick={handlePrev}>\n\t\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-default-500\", clsx(page === 1 && \"fill-default-300\"))} />\n\t\t\t\t\t</PaginationItem>\n\n\t\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\ttext={el}\n\t\t\t\t\t\t\tactive={page === el}\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\tonClick={() => handleChange(el)}\n\t\t\t\t\t\t\tclassName=\"border-l border-divider \"\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"border-l border-divider rounded-tr-lg rounded-br-lg \",\n\t\t\t\t\t\t\t(page === totalPagination || totalPagination === 0) && \"cursor-no-drop\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\t\"fill-default-500 transform rotate-180 \",\n\t\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-default-300\"),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","translate","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../src/components/pagination/pagination-item.tsx","../../src/components/pagination/function/index.ts","../../src/components/pagination/pagination.tsx","../../src/components/pagination/hook/use-pagination.tsx"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport { type PaginationItemProps } from \"./interface/pagination.interface\";\nimport clsx from \"clsx\";\n\nexport const PaginationItem = ({ className, color = \"primary\", active, children, text, onClick }: PaginationItemProps) => {\n\tconst bgClass = clsx(\n\t\t{\n\t\t\t\"bg-primary\": color === \"primary\" && active,\n\t\t\t\"bg-success\": color === \"success\" && active,\n\t\t\t\"bg-danger\": color === \"danger\" && active,\n\t\t\t\"bg-warning\": color === \"warning\" && active,\n\t\t\t\"bg-default\": color === \"default\" && active,\n \"dark:hover:bg-default-200 dark:hover:text-default-800\": !active,\n\t\t},\n\t);\n\tconst colorClass = twMerge(\n\t\tclsx(\"text-sm\", {\n\t\t\t\"group-hover:text-primary-500 dark:group-hover:text-default-800\": color === \"primary\" && !active,\n\t\t\t\"group-hover:text-success-500 dark:group-hover:text-default-800\": color === \"success\" && !active,\n\t\t\t\"group-hover:text-danger-500 dark:group-hover:text-default-800\": color === \"danger\" && !active,\n\t\t\t\"group-hover:text-warning-500 dark:group-hover:text-default-800\": color === \"warning\" && !active,\n\t\t\t\"group-hover:text-default-500 dark:group-hover:text-default-800\": color === \"default\" && !active,\n\n\t\t\t\"text-default-foreground\": active && color === \"default\",\n\t\t\t\"text-primary-foreground\": active && color === \"primary\",\n\t\t\t\"text-success-foreground\": active && color === \"success\",\n\t\t\t\"text-danger-foreground\": active && color === \"danger\",\n\t\t\t\"text-warning-foreground\": active && color === \"warning\",\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div className={twMerge(\"w-[33px] h-[32px] flex items-center justify-center group \", bgClass, className)} onClick={onClick}>\n\t\t\t{children || <p className={colorClass}>{text}</p>}\n\t\t</div>\n\t);\n};\n","import { type PaginationValueProps } from \"../interface/pagination-share.interface\";\n\nexport const FormatPagePagination = ({\n\tpage,\n\ttotal,\n\tsiblings = 1,\n}: PaginationValueProps) => {\n\tconst totalPageNoInArray = 7 + siblings;\n\n\tif (totalPageNoInArray >= total) {\n\t\treturn Array.from({ length: total }, (_, i) => i + 1);\n\t}\n\n\tconst leftSiblingsIndex = Math.max(page - siblings, 1);\n\tconst rightSiblingsIndex = Math.min(page + siblings, total);\n\n\tconst showLeftDots = leftSiblingsIndex > 2;\n\tconst showRightDots = rightSiblingsIndex < total - 2;\n\n\tif (!showLeftDots && showRightDots) {\n\t\tconst leftItemsCount = 3 + 2 * siblings;\n\t\tconst leftRange = Array.from({ length: leftItemsCount }, (_, i) => i + 1);\n\t\treturn [...leftRange, \"...\", total];\n\t} else if (showLeftDots && !showRightDots) {\n\t\tconst rightItemsCount = 3 + 2 * siblings;\n\t\tconst rightRange = Array.from(\n\t\t\t{ length: rightItemsCount },\n\t\t\t(_, i) => total - rightItemsCount + i + 1\n\t\t);\n\t\treturn [1, \"...\", ...rightRange];\n\t} else {\n\t\tconst middleRange = Array.from(\n\t\t\t{ length: rightSiblingsIndex - leftSiblingsIndex + 1 },\n\t\t\t(_, i) => leftSiblingsIndex + i\n\t\t);\n\t\treturn [1, \"...\", ...middleRange, \"...\", total];\n\t}\n};\n\nexport const FormatLimitPagination = (data: number[]) => {\n\treturn data.map((el) => {\n\t\treturn {\n\t\t\tid: el,\n\t\t\tname: el,\n\t\t};\n\t});\n};\n","import { twMerge } from \"tailwind-merge\";\nimport { IoIosArrowBack } from \"react-icons/io\";\nimport { PaginationItem } from \"./pagination-item\";\nimport { type PaginationProps } from \"./interface/pagination.interface\";\nimport { FormatLimitPagination, FormatPagePagination } from \"./function\";\nimport clsx from \"clsx\";\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from \"../ui\";\n\nexport const Pagination = ({\n\tclassName,\n\tcolor = \"primary\",\n\n\ttotal,\n\tlimit = 20,\n\tpage = 1,\n\tsiblings = 1,\n\tisLimitSelect = true,\n\tdataLimit = [10, 15, 20, 50, 100, 200],\n\tonChange,\n\ttranslate = {\n\t\tselectLimit: \"Limites\",\n\t\trowPerPage: \"Filas por pagina\",\n\t\tof: \"de\",\n\t},\n}: PaginationProps) => {\n\tconst totalPagination = Math.ceil(total / limit);\n\n\tconst dataPageFormat = FormatPagePagination({\n\t\tlimit,\n\t\tpage,\n\t\tsiblings,\n\t\ttotal: totalPagination,\n\t});\n\tconst dataLimitFormat = FormatLimitPagination(dataLimit);\n\n\tconst handleChange = (value: number | string | null) => {\n\t\tif (value === \"...\") return;\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: Number(value),\n\t\t\t});\n\t};\n\n\tconst handlePrev = () => {\n\t\tif (page === 1) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page - 1,\n\t\t\t});\n\t};\n\n\tconst handleNext = () => {\n\t\tif (page === totalPagination || totalPagination === 0) return;\n\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tlimit,\n\t\t\t\tpage: page + 1,\n\t\t\t});\n\t};\n\n\tconst handleChangeSelect = (value: string) => {\n\t\tif (onChange)\n\t\t\tonChange({\n\t\t\t\tpage,\n\t\t\t\tlimit: value ? Number(value) : 20,\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"flex justify-between gap-x-2 items-center\", className)}>\n\t\t\t{isLimitSelect ? (\n\t\t\t\t<div className=\"flex items-center gap-x-2.5\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span className=\"text-sm text-default-500\">{translate?.rowPerPage || \"Filas por pagina\"}:</span>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Select value={limit?.toString()} onValueChange={handleChangeSelect}>\n\t\t\t\t\t\t<SelectTrigger className=\"min-w-20\">\n\t\t\t\t\t\t\t<SelectValue placeholder=\"Select limit\" />\n\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t<SelectGroup>\n\t\t\t\t\t\t\t\t<SelectLabel>{translate?.selectLimit || \"Limites\"}</SelectLabel>\n\t\t\t\t\t\t\t\t{dataLimitFormat.map((item) => (\n\t\t\t\t\t\t\t\t\t<SelectItem key={item.id} value={item.id?.toString()}>\n\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SelectGroup>\n\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t</Select>\n\n\t\t\t\t\t<div className=\"text-sm text-default-500\">\n\t\t\t\t\t\t<span className=\"text-default-500\">{`${page} - ${limit}`}</span> {translate?.of || \"de\"}{\" \"}\n\t\t\t\t\t\t<span className=\"text-default-500\">{total}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t{totalPagination > 1 && (\n\t\t\t\t<div className=\"flex flex-nowrap h-fit max-w-fit relative items-center overflow-visible gap-0 border border-divider rounded-lg cursor-pointer dark:bg-default-100\">\n\t\t\t\t\t<PaginationItem className={clsx(page === 1 && \"cursor-no-drop\", \"rounded-tl-lg rounded-bl-lg \")} onClick={handlePrev}>\n\t\t\t\t\t\t<IoIosArrowBack className={twMerge(\"fill-default-500\", clsx(page === 1 && \"fill-default-300\"))} />\n\t\t\t\t\t</PaginationItem>\n\n\t\t\t\t\t{dataPageFormat.map((el, i) => (\n\t\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\ttext={el}\n\t\t\t\t\t\t\tactive={page === el}\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\tonClick={() => handleChange(el)}\n\t\t\t\t\t\t\tclassName=\"border-l border-divider \"\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\n\t\t\t\t\t<PaginationItem\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\t\"border-l border-divider rounded-tr-lg rounded-br-lg \",\n\t\t\t\t\t\t\t(page === totalPagination || totalPagination === 0) && \"cursor-no-drop\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IoIosArrowBack\n\t\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\t\"fill-default-500 transform rotate-180 \",\n\t\t\t\t\t\t\t\tclsx((page === totalPagination || totalPagination === 0) && \"fill-default-300\"),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useCallback, useState } from \"react\";\nimport { type PaginationHookProps, type UsePaginationProps } from \"../interface/pagination.interface\";\nimport { type PaginationSetValueProps } from \"../interface/pagination-share.interface\";\n\nexport const usePagination = ({ initialPage = 1, initialLimit = 20 }: UsePaginationProps): PaginationHookProps => {\n\tconst [pageCurrent, setPageCurrent] = useState<number>(initialPage);\n\tconst [limitCurrent, setLimitCurrent] = useState<number>(initialLimit);\n\n\tconst handleSetPagination = useCallback(\n\t\t({ page, limit }: PaginationSetValueProps) => {\n\t\t\tif (page !== pageCurrent) setPageCurrent(page);\n\t\t\tif (limit !== limitCurrent) setLimitCurrent(limit);\n\t\t},\n\t\t[limitCurrent, pageCurrent],\n\t);\n\n\treturn {\n\t\thandleSetPagination,\n\t\tpage: pageCurrent,\n\t\tlimit: limitCurrent,\n\t};\n};\n"],"names":["PaginationItem","className","color","active","children","text","onClick","bgClass","clsx","colorClass","twMerge","jsx","FormatPagePagination","page","total","siblings","_","i","leftSiblingsIndex","rightSiblingsIndex","showLeftDots","showRightDots","leftItemsCount","rightItemsCount","FormatLimitPagination","data","el","Pagination","limit","isLimitSelect","dataLimit","onChange","translate","totalPagination","dataPageFormat","dataLimitFormat","handleChange","value","handlePrev","handleNext","handleChangeSelect","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectGroup","SelectLabel","item","SelectItem","IoIosArrowBack","usePagination","initialPage","initialLimit","pageCurrent","setPageCurrent","useState","limitCurrent","setLimitCurrent","useCallback"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../chunks/jsx-runtime-BjzqJBtL.js"),r=require("react"),a=require("libphonenumber-js"),p=require("tailwind-merge"),oe=require("../chunks/utils-IjLH3w2e.js");require("../chunks/textarea-Cklud2kp.js");const ae=require("../chunks/label-error-Ax74Uy3M.js");require("clsx");const z=require("../chunks/scroll-area-C8l3z7wv.js");require("../chunks/button-OdZ6El_t.js");const E=require("framer-motion"),F=require("../chunks/index-BydcKEwP.js"),C={PE:{name:"Perú",flag:"🇵🇪"},US:{name:"Estados Unidos",flag:"🇺🇸"},MX:{name:"México",flag:"🇲🇽"},AR:{name:"Argentina",flag:"🇦🇷"},CO:{name:"Colombia",flag:"🇨🇴"},CL:{name:"Chile",flag:"🇨🇱"},BR:{name:"Brasil",flag:"🇧🇷"},BO:{name:"Bolivia",flag:"🇧🇴"},VE:{name:"Venezuela",flag:"🇻🇪"}},ie=({id:Y,name:$,label:q="Teléfono",placeholder:U="Ingrese un número de teléfono",required:J=!1,className:W="",classNameContainer:X="",onCountryChange:G,onPhoneChange:I,touched:R,onBlur:H,error:x,value:u,defaultCountry:g="PE",disabled:h=!1})=>{const[o,M]=r.useState({code:g,name:C[g].name,flag:C[g].flag,callingCode:`+${a.getCountryCallingCode(g)}`}),[j,y]=r.useState(!1),[b,d]=r.useState(""),[K,i]=r.useState(""),[Q,m]=r.useState(!1),[l,Z]=r.useState([]),[f,P]=r.useState(""),[_,N]=r.useState([]),S=r.useRef(null),T=r.useRef(null),A=r.useRef(null),ee=r.useId(),L=Y||ee,O=u!==void 0;r.useEffect(()=>{const e=Object.keys(C).map(n=>{const s=C[n];return{code:n,name:s.name,flag:s.flag,callingCode:`+${a.getCountryCallingCode(n)}`}});Z(e),N(e)},[]),r.useEffect(()=>{const e=n=>{S.current&&!S.current.contains(n.target)&&y(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),r.useEffect(()=>{if(!O||l.length===0)return;if(u===""||u==null){d(""),i(""),m(!1);return}const e=String(u);let n=l.find(s=>e.startsWith(s.callingCode));if(n||(n=o),n){o.code!==n.code&&M(n);const s=e.replace(n.callingCode,"").replace(/[^\d]/g,"");d(s);const c=new a.AsYouType(n.code).input(s);i(c);const v=a.isValidPhoneNumber(e);m(v)}else d(""),i(""),m(!1)},[u,l,O,o]);const te=(e,n)=>{const s=e.replace(/[^\d]/g,"");if(n?.nativeEvent instanceof InputEvent&&n.nativeEvent.inputType==="deleteContentBackward"&&s.length<4){d(s),i(s);return}const c=new a.AsYouType(o.code).input(s);d(s),i(c);const v=o.callingCode+s,D=a.isValidPhoneNumber(v);m(D),I?.(v,D)},se=e=>{if(M(e),y(!1),P(""),b){const s=new a.AsYouType(e.code).input(b);i(s);const w=e.callingCode+b,c=a.isValidPhoneNumber(w);m(c),I?.(w,c)}G?.(e),setTimeout(()=>T.current?.focus(),100)},ne=()=>{y(!j),j||setTimeout(()=>A.current?.focus(),100)};r.useEffect(()=>{if(!f.trim())N(l);else{const e=f.toLowerCase(),n=l.filter(s=>s.name.toLowerCase().includes(e)||s.callingCode.includes(f)||s.code.toLowerCase().includes(e));N(n)}},[f,l]);const re=R,k=x,B=re&&k,V=!h&&!!x&&R;return t.jsxRuntimeExports.jsxs("div",{className:p.twMerge("w-full relative flex flex-col",X),children:[q&&t.jsxRuntimeExports.jsxs("label",{htmlFor:L,className:oe.cn("form-control-label block font-normal text-sm text-foreground mb-1",{"text-danger":B}),children:[q," ",J&&t.jsxRuntimeExports.jsx("span",{className:"text-danger",children:"*"})]}),t.jsxRuntimeExports.jsxs("div",{className:p.twMerge("flex w-full min-w-0 transition-[color,box-shadow] outline-none rounded-md h-input-default","bg-white border border-input","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",B?"border-danger aria-invalid:ring-danger/20":"focus-within:border-primary focus-within:ring-primary/20","focus-within:ring-[3px]"),"aria-invalid":V?"true":"false",children:[t.jsxRuntimeExports.jsxs("div",{className:"relative",ref:S,children:[t.jsxRuntimeExports.jsxs("button",{type:"button",onClick:ne,className:p.twMerge("flex items-center gap-2 px-3 border-r border-input h-input-default","hover:bg-muted/20 focus:outline-none rounded-l-md"),children:[t.jsxRuntimeExports.jsx("span",{className:"text-lg",children:o.flag}),t.jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-foreground",children:o.callingCode}),t.jsxRuntimeExports.jsx(F.ChevronDown,{className:`w-4 h-4 text-muted-foreground transition-transform ${j?"rotate-180":""}`})]}),t.jsxRuntimeExports.jsx(E.AnimatePresence,{children:j&&t.jsxRuntimeExports.jsx(E.LazyMotion,{features:E.domAnimation,children:t.jsxRuntimeExports.jsxs(E.m.div,{initial:{opacity:0,y:-8,scale:.98},animate:{opacity:1,y:0,scale:1,transition:{type:"spring",stiffness:420,damping:28}},exit:{opacity:0,y:-6,scale:.98,transition:{duration:.15,ease:"easeOut"}},style:{transformOrigin:"top center"},className:"absolute top-full left-0 z-50 w-60 mt-1 bg-white border border-input rounded-md shadow-lg max-h-60 overflow-hidden",children:[t.jsxRuntimeExports.jsx("div",{className:"sticky top-0 bg-white border-b border-input p-3",children:t.jsxRuntimeExports.jsxs("div",{className:"relative",children:[t.jsxRuntimeExports.jsx(z.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),t.jsxRuntimeExports.jsx("input",{ref:A,type:"text",value:f,onChange:e=>P(e.target.value),placeholder:"Buscar país o código",className:"w-full pl-10 pr-3 py-2 h-9 border border-input rounded-md text-sm focus:outline-none focus:border-primary focus:ring-[3px] focus:ring-primary/20"})]})}),t.jsxRuntimeExports.jsx(z.ScrollArea,{className:"max-h-48 overflow-y-auto pb-5",children:_.map(e=>t.jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>se(e),className:p.twMerge("w-full flex items-center gap-3 px-3 py-1 text-sm transition",o.code===e.code?"bg-primary/5 border-l-2 border-primary":"hover:bg-muted/20"),children:[t.jsxRuntimeExports.jsx("span",{className:"text-lg",children:e.flag}),t.jsxRuntimeExports.jsx("span",{className:"flex-1 text-left",children:e.name}),t.jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:e.callingCode}),o.code===e.code&&t.jsxRuntimeExports.jsx(F.Check,{className:"w-4 h-4 text-primary"})]},e.code))})]},"country-dropdown")})})]}),t.jsxRuntimeExports.jsx("input",{ref:T,id:L,type:"tel",name:$,value:K,onChange:e=>te(e.target.value,e),onBlur:H,placeholder:U,disabled:h,...h?{}:{"aria-invalid":V},className:p.twMerge("flex-1 px-3 py-1 h-input-default border-0 rounded-r-md bg-transparent focus:outline-none text-foreground text-sm",W),autoComplete:"tel"})]}),!h&&x&&R&&t.jsxRuntimeExports.jsx(ae.LabelError,{text:x||k||""})]})};exports.PhoneInput=ie;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../chunks/jsx-runtime-DZW6kfQG.js"),r=require("react"),a=require("libphonenumber-js"),q=require("lucide-react"),p=require("tailwind-merge"),re=require("../chunks/utils-IjLH3w2e.js");require("../chunks/textarea-99dejq_o.js");const oe=require("../chunks/label-error-wbavGDVw.js");require("clsx");const ae=require("../chunks/scroll-area--KGqTnx5.js");require("../chunks/button-CGIs6rx_.js");const E=require("framer-motion"),R={PE:{name:"Perú",flag:"🇵🇪"},US:{name:"Estados Unidos",flag:"🇺🇸"},MX:{name:"México",flag:"🇲🇽"},AR:{name:"Argentina",flag:"🇦🇷"},CO:{name:"Colombia",flag:"🇨🇴"},CL:{name:"Chile",flag:"🇨🇱"},BR:{name:"Brasil",flag:"🇧🇷"},BO:{name:"Bolivia",flag:"🇧🇴"},VE:{name:"Venezuela",flag:"🇻🇪"}},ie=({id:F,name:Y,label:I="Teléfono",placeholder:$="Ingrese un número de teléfono",required:U=!1,className:J="",classNameContainer:W="",onCountryChange:X,onPhoneChange:M,touched:C,onBlur:G,error:x,value:u,defaultCountry:g="PE",disabled:h=!1})=>{const[o,P]=r.useState({code:g,name:R[g].name,flag:R[g].flag,callingCode:`+${a.getCountryCallingCode(g)}`}),[j,y]=r.useState(!1),[b,d]=r.useState(""),[H,i]=r.useState(""),[K,m]=r.useState(!1),[l,Q]=r.useState([]),[f,T]=r.useState(""),[Z,N]=r.useState([]),S=r.useRef(null),A=r.useRef(null),L=r.useRef(null),_=r.useId(),O=F||_,k=u!==void 0;r.useEffect(()=>{const e=Object.keys(R).map(n=>{const s=R[n];return{code:n,name:s.name,flag:s.flag,callingCode:`+${a.getCountryCallingCode(n)}`}});Q(e),N(e)},[]),r.useEffect(()=>{const e=n=>{S.current&&!S.current.contains(n.target)&&y(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),r.useEffect(()=>{if(!k||l.length===0)return;if(u===""||u==null){d(""),i(""),m(!1);return}const e=String(u);let n=l.find(s=>e.startsWith(s.callingCode));if(n||(n=o),n){o.code!==n.code&&P(n);const s=e.replace(n.callingCode,"").replace(/[^\d]/g,"");d(s);const c=new a.AsYouType(n.code).input(s);i(c);const v=a.isValidPhoneNumber(e);m(v)}else d(""),i(""),m(!1)},[u,l,k,o]);const ee=(e,n)=>{const s=e.replace(/[^\d]/g,"");if(n?.nativeEvent instanceof InputEvent&&n.nativeEvent.inputType==="deleteContentBackward"&&s.length<4){d(s),i(s);return}const c=new a.AsYouType(o.code).input(s);d(s),i(c);const v=o.callingCode+s,z=a.isValidPhoneNumber(v);m(z),M?.(v,z)},te=e=>{if(P(e),y(!1),T(""),b){const s=new a.AsYouType(e.code).input(b);i(s);const w=e.callingCode+b,c=a.isValidPhoneNumber(w);m(c),M?.(w,c)}X?.(e),setTimeout(()=>A.current?.focus(),100)},se=()=>{y(!j),j||setTimeout(()=>L.current?.focus(),100)};r.useEffect(()=>{if(!f.trim())N(l);else{const e=f.toLowerCase(),n=l.filter(s=>s.name.toLowerCase().includes(e)||s.callingCode.includes(f)||s.code.toLowerCase().includes(e));N(n)}},[f,l]);const ne=C,B=x,V=ne&&B,D=!h&&!!x&&C;return t.jsxRuntimeExports.jsxs("div",{className:p.twMerge("w-full relative flex flex-col",W),children:[I&&t.jsxRuntimeExports.jsxs("label",{htmlFor:O,className:re.cn("form-control-label block font-normal text-sm text-foreground mb-1",{"text-danger":V}),children:[I," ",U&&t.jsxRuntimeExports.jsx("span",{className:"text-danger",children:"*"})]}),t.jsxRuntimeExports.jsxs("div",{className:p.twMerge("flex w-full min-w-0 transition-[color,box-shadow] outline-none rounded-md h-input-default","bg-white border border-input","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",V?"border-danger aria-invalid:ring-danger/20":"focus-within:border-primary focus-within:ring-primary/20","focus-within:ring-[3px]"),"aria-invalid":D?"true":"false",children:[t.jsxRuntimeExports.jsxs("div",{className:"relative",ref:S,children:[t.jsxRuntimeExports.jsxs("button",{type:"button",onClick:se,className:p.twMerge("flex items-center gap-2 px-3 border-r border-input h-input-default","hover:bg-muted/20 focus:outline-none rounded-l-md"),children:[t.jsxRuntimeExports.jsx("span",{className:"text-lg",children:o.flag}),t.jsxRuntimeExports.jsx("span",{className:"text-sm font-medium text-foreground",children:o.callingCode}),t.jsxRuntimeExports.jsx(q.ChevronDown,{className:`w-4 h-4 text-muted-foreground transition-transform ${j?"rotate-180":""}`})]}),t.jsxRuntimeExports.jsx(E.AnimatePresence,{children:j&&t.jsxRuntimeExports.jsx(E.LazyMotion,{features:E.domAnimation,children:t.jsxRuntimeExports.jsxs(E.m.div,{initial:{opacity:0,y:-8,scale:.98},animate:{opacity:1,y:0,scale:1,transition:{type:"spring",stiffness:420,damping:28}},exit:{opacity:0,y:-6,scale:.98,transition:{duration:.15,ease:"easeOut"}},style:{transformOrigin:"top center"},className:"absolute top-full left-0 z-50 w-60 mt-1 bg-white border border-input rounded-md shadow-lg max-h-60 overflow-hidden",children:[t.jsxRuntimeExports.jsx("div",{className:"sticky top-0 bg-white border-b border-input p-3",children:t.jsxRuntimeExports.jsxs("div",{className:"relative",children:[t.jsxRuntimeExports.jsx(q.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),t.jsxRuntimeExports.jsx("input",{ref:L,type:"text",value:f,onChange:e=>T(e.target.value),placeholder:"Buscar país o código",className:"w-full pl-10 pr-3 py-2 h-9 border border-input rounded-md text-sm focus:outline-none focus:border-primary focus:ring-[3px] focus:ring-primary/20"})]})}),t.jsxRuntimeExports.jsx(ae.ScrollArea,{className:"max-h-48 overflow-y-auto pb-5",children:Z.map(e=>t.jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>te(e),className:p.twMerge("w-full flex items-center gap-3 px-3 py-1 text-sm transition",o.code===e.code?"bg-primary/5 border-l-2 border-primary":"hover:bg-muted/20"),children:[t.jsxRuntimeExports.jsx("span",{className:"text-lg",children:e.flag}),t.jsxRuntimeExports.jsx("span",{className:"flex-1 text-left",children:e.name}),t.jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:e.callingCode}),o.code===e.code&&t.jsxRuntimeExports.jsx(q.Check,{className:"w-4 h-4 text-primary"})]},e.code))})]},"country-dropdown")})})]}),t.jsxRuntimeExports.jsx("input",{ref:A,id:O,type:"tel",name:Y,value:H,onChange:e=>ee(e.target.value,e),onBlur:G,placeholder:$,disabled:h,...h?{}:{"aria-invalid":D},className:p.twMerge("flex-1 px-3 py-1 h-input-default border-0 rounded-r-md bg-transparent focus:outline-none text-foreground text-sm",J),autoComplete:"tel"})]}),!h&&x&&C&&t.jsxRuntimeExports.jsx(oe.LabelError,{text:x||B||""})]})};exports.PhoneInput=ie;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/phone-input/phone-input.tsx"],"sourcesContent":["import type React from \"react\";\nimport { useState, useEffect, useRef, useId } from \"react\";\nimport { getCountryCallingCode, AsYouType, isValidPhoneNumber } from \"libphonenumber-js\";\nimport { ChevronDown, Check, Search } from \"lucide-react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { cn } from \"@/lib/utils\";\nimport { LabelError, ScrollArea } from \"../ui\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { LazyMotion, m, domAnimation } from \"framer-motion\";\n\nconst countryData = {\n\tPE: { name: \"Perú\", flag: \"🇵🇪\" },\n\tUS: { name: \"Estados Unidos\", flag: \"🇺🇸\" },\n\tMX: { name: \"México\", flag: \"🇲🇽\" },\n\tAR: { name: \"Argentina\", flag: \"🇦🇷\" },\n\tCO: { name: \"Colombia\", flag: \"🇨🇴\" },\n\tCL: { name: \"Chile\", flag: \"🇨🇱\" },\n\tBR: { name: \"Brasil\", flag: \"🇧🇷\" },\n\tBO: { name: \"Bolivia\", flag: \"🇧🇴\" },\n\tVE: { name: \"Venezuela\", flag: \"🇻🇪\" },\n};\n\ninterface Country {\n\tcode: string;\n\tname: string;\n\tflag: string;\n\tcallingCode: string;\n}\n\ninterface PhoneInputProps {\n\tid?: string;\n\tname: string;\n\tlabel?: string;\n\tplaceholder?: string;\n\trequired?: boolean;\n\tclassName?: string;\n\tonCountryChange?: (country: Country) => void;\n\tonPhoneChange?: (phone: string, isValid: boolean) => void;\n\ttouched?: boolean;\n\tvalues?: any;\n\tonBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n\terror?: string;\n\tvalue?: string; // para standalone\n\tdefaultCountry?: string;\n\tdisabled?: boolean;\n\tclassNameContainer?: string;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n\tid,\n\tname,\n\tlabel = \"Teléfono\",\n\tplaceholder = \"Ingrese un número de teléfono\",\n\trequired = false,\n\tclassName = \"\",\n\tclassNameContainer = \"\",\n\tonCountryChange,\n\tonPhoneChange,\n\ttouched: externalTouched,\n\tonBlur: externalOnBlur,\n\terror: externalError,\n\tvalue: externalValue,\n\tdefaultCountry = \"PE\",\n\tdisabled = false,\n}) => {\n\tconst [selectedCountry, setSelectedCountry] = useState<Country>({\n\t\tcode: defaultCountry,\n\t\tname: countryData[defaultCountry as keyof typeof countryData].name,\n\t\tflag: countryData[defaultCountry as keyof typeof countryData].flag,\n\t\tcallingCode: `+${getCountryCallingCode(defaultCountry as keyof typeof countryData)}`,\n\t});\n\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\tconst [phoneValue, setPhoneValue] = useState(\"\");\n\tconst [formattedValue, setFormattedValue] = useState(\"\");\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [countries, setCountries] = useState<Country[]>([]);\n\tconst [searchTerm, setSearchTerm] = useState(\"\");\n\tconst [filteredCountries, setFilteredCountries] = useState<Country[]>([]);\n\n\tconst dropdownRef = useRef<HTMLDivElement>(null);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst searchInputRef = useRef<HTMLInputElement>(null);\n\n\tconst inputId = useId();\n\tconst resolvedId = id || inputId;\n\tconst isControlled = externalValue !== undefined;\n\n\t// Inicializar países en el orden definido en countryData\n\tuseEffect(() => {\n\t\tconst availableCountries = Object.keys(countryData).map((countryCode) => {\n\t\t\tconst data = countryData[countryCode as keyof typeof countryData];\n\t\t\treturn {\n\t\t\t\tcode: countryCode,\n\t\t\t\tname: data.name,\n\t\t\t\tflag: data.flag,\n\t\t\t\tcallingCode: `+${getCountryCallingCode(countryCode as keyof typeof countryData)}`,\n\t\t\t};\n\t\t});\n\t\tsetCountries(availableCountries);\n\t\tsetFilteredCountries(availableCountries);\n\t}, []);\n\n\t// Manejo de click fuera para cerrar dropdown\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\treturn () => document.removeEventListener(\"mousedown\", handleClickOutside);\n\t}, []);\n\n\t// Sincronizar externalValue con estados internos (incluye reset con \"\")\n\tuseEffect(() => {\n\t\tif (!isControlled || countries.length === 0) return;\n\n\t\t// Si el valor externo es vacío o null, limpiar estados\n\t\tif (externalValue === \"\" || externalValue == null) {\n\t\t\tsetPhoneValue(\"\");\n\t\t\tsetFormattedValue(\"\");\n\t\t\tsetIsValid(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = String(externalValue);\n\t\tlet country = countries.find((c) => value.startsWith(c.callingCode));\n\n\t\t// Si no se detecta país por código, mantener el seleccionado actual\n\t\tif (!country) {\n\t\t\tcountry = selectedCountry;\n\t\t}\n\n\t\tif (country) {\n\t\t\t// Actualizar país si cambió\n\t\t\tif (selectedCountry.code !== country.code) {\n\t\t\t\tsetSelectedCountry(country);\n\t\t\t}\n\n\t\t\tconst raw = value.replace(country.callingCode, \"\").replace(/[^\\d]/g, \"\");\n\t\t\tsetPhoneValue(raw);\n\n\t\t\tconst formatter = new AsYouType(country.code as keyof typeof countryData);\n\t\t\tconst formatted = formatter.input(raw);\n\t\t\tsetFormattedValue(formatted);\n\n\t\t\tconst valid = isValidPhoneNumber(value);\n\t\t\tsetIsValid(valid);\n\t\t} else {\n\t\t\t// Fallback: no país detectado, limpiar formato pero conservar value crudo\n\t\t\tsetPhoneValue(\"\");\n\t\t\tsetFormattedValue(\"\");\n\t\t\tsetIsValid(false);\n\t\t}\n\t}, [externalValue, countries, isControlled, selectedCountry]);\n\n\t// Formatear número al escribir\n\tconst handlePhoneChange = (value: string, event?: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst cleanValue = value.replace(/[^\\d]/g, \"\");\n\n\t\tif (event?.nativeEvent instanceof InputEvent && event.nativeEvent.inputType === \"deleteContentBackward\" && cleanValue.length < 4) {\n\t\t\tsetPhoneValue(cleanValue);\n\t\t\tsetFormattedValue(cleanValue); // mostrar sin formato\n\t\t\treturn;\n\t\t}\n\t\tconst formatter = new AsYouType(selectedCountry.code as keyof typeof countryData);\n\t\tconst formatted = formatter.input(cleanValue);\n\n\t\tsetPhoneValue(cleanValue);\n\t\tsetFormattedValue(formatted);\n\n\t\tconst fullNumber = selectedCountry.callingCode + cleanValue;\n\t\tconst valid = isValidPhoneNumber(fullNumber);\n\t\tsetIsValid(valid);\n\n\t\tonPhoneChange?.(fullNumber, valid);\n\t};\n\n\t// Seleccionar país\n\tconst handleCountrySelect = (country: Country) => {\n\t\tsetSelectedCountry(country);\n\t\tsetIsDropdownOpen(false);\n\t\tsetSearchTerm(\"\");\n\n\t\tif (phoneValue) {\n\t\t\tconst formatter = new AsYouType(country.code as keyof typeof countryData);\n\t\t\tconst formatted = formatter.input(phoneValue);\n\t\t\tsetFormattedValue(formatted);\n\n\t\t\tconst fullNumber = country.callingCode + phoneValue;\n\t\t\tconst valid = isValidPhoneNumber(fullNumber);\n\t\t\tsetIsValid(valid);\n\n\t\t\tonPhoneChange?.(fullNumber, valid);\n\t\t}\n\n\t\tonCountryChange?.(country);\n\t\tsetTimeout(() => inputRef.current?.focus(), 100);\n\t};\n\n\tconst handleDropdownToggle = () => {\n\t\tsetIsDropdownOpen(!isDropdownOpen);\n\t\tif (!isDropdownOpen) {\n\t\t\tsetTimeout(() => searchInputRef.current?.focus(), 100);\n\t\t}\n\t};\n\n\t// Filtrar países en búsqueda\n\tuseEffect(() => {\n\t\tif (!searchTerm.trim()) {\n\t\t\tsetFilteredCountries(countries);\n\t\t} else {\n\t\t\tconst searchLower = searchTerm.toLowerCase();\n\t\t\tconst filtered = countries.filter(\n\t\t\t\t(country) =>\n\t\t\t\t\tcountry.name.toLowerCase().includes(searchLower) ||\n\t\t\t\t\tcountry.callingCode.includes(searchTerm) ||\n\t\t\t\t\tcountry.code.toLowerCase().includes(searchLower),\n\t\t\t);\n\t\t\tsetFilteredCountries(filtered);\n\t\t}\n\t}, [searchTerm, countries]);\n\n\tconst isTouched = externalTouched;\n\tconst currentError = externalError;\n\tconst hasError = isTouched && currentError;\n\n\tconst isInvalid = !disabled && !!externalError && externalTouched;\n\n\treturn (\n\t\t<div className={twMerge(\"w-full relative flex flex-col\", classNameContainer)}>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={resolvedId}\n\t\t\t\t\tclassName={cn(\"form-control-label block font-normal text-sm text-foreground mb-1\", {\n\t\t\t\t\t\t\"text-danger\": hasError,\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\"flex w-full min-w-0 transition-[color,box-shadow] outline-none rounded-md h-input-default\",\n\t\t\t\t\t\"bg-white border border-input\",\n\t\t\t\t\t\"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\thasError\n\t\t\t\t\t\t? \"border-danger aria-invalid:ring-danger/20\"\n\t\t\t\t\t\t: isValid && phoneValue\n\t\t\t\t\t\t? \"focus-within:border-primary focus-within:ring-primary/20\"\n\t\t\t\t\t\t: \"focus-within:border-primary focus-within:ring-primary/20\",\n\t\t\t\t\t\"focus-within:ring-[3px]\",\n\t\t\t\t)}\n\t\t\t\taria-invalid={isInvalid ? \"true\" : \"false\"}\n\t\t\t>\n\t\t\t\t{/* Country selector */}\n\t\t\t\t<div className=\"relative\" ref={dropdownRef}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={handleDropdownToggle}\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"flex items-center gap-2 px-3 border-r border-input h-input-default\",\n\t\t\t\t\t\t\t\"hover:bg-muted/20 focus:outline-none rounded-l-md\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"text-lg\">{selectedCountry.flag}</span>\n\t\t\t\t\t\t<span className=\"text-sm font-medium text-foreground\">{selectedCountry.callingCode}</span>\n\t\t\t\t\t\t<ChevronDown className={`w-4 h-4 text-muted-foreground transition-transform ${isDropdownOpen ? \"rotate-180\" : \"\"}`} />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t{isDropdownOpen && (\n\t\t\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\t\tkey=\"country-dropdown\"\n\t\t\t\t\t\t\t\t\tinitial={{ opacity: 0, y: -8, scale: 0.98 }}\n\t\t\t\t\t\t\t\t\tanimate={{ opacity: 1, y: 0, scale: 1, transition: { type: \"spring\", stiffness: 420, damping: 28 } }}\n\t\t\t\t\t\t\t\t\texit={{ opacity: 0, y: -6, scale: 0.98, transition: { duration: 0.15, ease: \"easeOut\" } }}\n\t\t\t\t\t\t\t\t\tstyle={{ transformOrigin: \"top center\" }}\n\t\t\t\t\t\t\t\t\tclassName=\"absolute top-full left-0 z-50 w-60 mt-1 bg-white border border-input rounded-md shadow-lg max-h-60 overflow-hidden\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"sticky top-0 bg-white border-b border-input p-3\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t\t\t\t\t\t\t<Search className=\"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tref={searchInputRef}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => setSearchTerm(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Buscar país o código\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full pl-10 pr-3 py-2 h-9 border border-input rounded-md text-sm focus:outline-none focus:border-primary focus:ring-[3px] focus:ring-primary/20\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<ScrollArea className=\"max-h-48 overflow-y-auto pb-5\">\n\t\t\t\t\t\t\t\t\t\t{filteredCountries.map((country) => (\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tkey={country.code}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleCountrySelect(country)}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"w-full flex items-center gap-3 px-3 py-1 text-sm transition\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectedCountry.code === country.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"bg-primary/5 border-l-2 border-primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"hover:bg-muted/20\",\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-lg\">{country.flag}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex-1 text-left\">{country.name}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">{country.callingCode}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t{selectedCountry.code === country.code && <Check className=\"w-4 h-4 text-primary\" />}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</ScrollArea>\n\t\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t\t</LazyMotion>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Phone input */}\n\t\t\t\t<input\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\ttype=\"tel\"\n\t\t\t\t\tname={name}\n\t\t\t\t\tvalue={formattedValue}\n\t\t\t\t\tonChange={(e) => handlePhoneChange(e.target.value, e)}\n\t\t\t\t\tonBlur={externalOnBlur}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\"flex-1 px-3 py-1 h-input-default border-0 rounded-r-md bg-transparent focus:outline-none text-foreground text-sm\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tautoComplete=\"tel\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{!disabled && externalError && externalTouched && <LabelError text={externalError || currentError || \"\"} />}\n\t\t</div>\n\t);\n};\n"],"names":["countryData","PhoneInput","id","name","label","placeholder","required","className","classNameContainer","onCountryChange","onPhoneChange","externalTouched","externalOnBlur","externalError","externalValue","defaultCountry","disabled","selectedCountry","setSelectedCountry","useState","getCountryCallingCode","isDropdownOpen","setIsDropdownOpen","phoneValue","setPhoneValue","formattedValue","setFormattedValue","isValid","setIsValid","countries","setCountries","searchTerm","setSearchTerm","filteredCountries","setFilteredCountries","dropdownRef","useRef","inputRef","searchInputRef","inputId","useId","resolvedId","isControlled","useEffect","availableCountries","countryCode","data","handleClickOutside","event","value","country","c","raw","formatted","AsYouType","valid","isValidPhoneNumber","handlePhoneChange","cleanValue","fullNumber","handleCountrySelect","handleDropdownToggle","searchLower","filtered","isTouched","currentError","hasError","isInvalid","twMerge","jsxs","cn","jsx","ChevronDown","AnimatePresence","LazyMotion","domAnimation","m","Search","ScrollArea","Check","LabelError"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/phone-input/phone-input.tsx"],"sourcesContent":["import type React from \"react\";\nimport { useState, useEffect, useRef, useId } from \"react\";\nimport { getCountryCallingCode, AsYouType, isValidPhoneNumber } from \"libphonenumber-js\";\nimport { ChevronDown, Check, Search } from \"lucide-react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { cn } from \"@/lib/utils\";\nimport { LabelError, ScrollArea } from \"../ui\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { LazyMotion, m, domAnimation } from \"framer-motion\";\n\nconst countryData = {\n\tPE: { name: \"Perú\", flag: \"🇵🇪\" },\n\tUS: { name: \"Estados Unidos\", flag: \"🇺🇸\" },\n\tMX: { name: \"México\", flag: \"🇲🇽\" },\n\tAR: { name: \"Argentina\", flag: \"🇦🇷\" },\n\tCO: { name: \"Colombia\", flag: \"🇨🇴\" },\n\tCL: { name: \"Chile\", flag: \"🇨🇱\" },\n\tBR: { name: \"Brasil\", flag: \"🇧🇷\" },\n\tBO: { name: \"Bolivia\", flag: \"🇧🇴\" },\n\tVE: { name: \"Venezuela\", flag: \"🇻🇪\" },\n};\n\ninterface Country {\n\tcode: string;\n\tname: string;\n\tflag: string;\n\tcallingCode: string;\n}\n\ninterface PhoneInputProps {\n\tid?: string;\n\tname: string;\n\tlabel?: string;\n\tplaceholder?: string;\n\trequired?: boolean;\n\tclassName?: string;\n\tonCountryChange?: (country: Country) => void;\n\tonPhoneChange?: (phone: string, isValid: boolean) => void;\n\ttouched?: boolean;\n\tvalues?: any;\n\tonBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;\n\terror?: string;\n\tvalue?: string; // para standalone\n\tdefaultCountry?: string;\n\tdisabled?: boolean;\n\tclassNameContainer?: string;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n\tid,\n\tname,\n\tlabel = \"Teléfono\",\n\tplaceholder = \"Ingrese un número de teléfono\",\n\trequired = false,\n\tclassName = \"\",\n\tclassNameContainer = \"\",\n\tonCountryChange,\n\tonPhoneChange,\n\ttouched: externalTouched,\n\tonBlur: externalOnBlur,\n\terror: externalError,\n\tvalue: externalValue,\n\tdefaultCountry = \"PE\",\n\tdisabled = false,\n}) => {\n\tconst [selectedCountry, setSelectedCountry] = useState<Country>({\n\t\tcode: defaultCountry,\n\t\tname: countryData[defaultCountry as keyof typeof countryData].name,\n\t\tflag: countryData[defaultCountry as keyof typeof countryData].flag,\n\t\tcallingCode: `+${getCountryCallingCode(defaultCountry as keyof typeof countryData)}`,\n\t});\n\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\tconst [phoneValue, setPhoneValue] = useState(\"\");\n\tconst [formattedValue, setFormattedValue] = useState(\"\");\n\tconst [isValid, setIsValid] = useState(false);\n\tconst [countries, setCountries] = useState<Country[]>([]);\n\tconst [searchTerm, setSearchTerm] = useState(\"\");\n\tconst [filteredCountries, setFilteredCountries] = useState<Country[]>([]);\n\n\tconst dropdownRef = useRef<HTMLDivElement>(null);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst searchInputRef = useRef<HTMLInputElement>(null);\n\n\tconst inputId = useId();\n\tconst resolvedId = id || inputId;\n\tconst isControlled = externalValue !== undefined;\n\n\t// Inicializar países en el orden definido en countryData\n\tuseEffect(() => {\n\t\tconst availableCountries = Object.keys(countryData).map((countryCode) => {\n\t\t\tconst data = countryData[countryCode as keyof typeof countryData];\n\t\t\treturn {\n\t\t\t\tcode: countryCode,\n\t\t\t\tname: data.name,\n\t\t\t\tflag: data.flag,\n\t\t\t\tcallingCode: `+${getCountryCallingCode(countryCode as keyof typeof countryData)}`,\n\t\t\t};\n\t\t});\n\t\tsetCountries(availableCountries);\n\t\tsetFilteredCountries(availableCountries);\n\t}, []);\n\n\t// Manejo de click fuera para cerrar dropdown\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n\t\t\t\tsetIsDropdownOpen(false);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\treturn () => document.removeEventListener(\"mousedown\", handleClickOutside);\n\t}, []);\n\n\t// Sincronizar externalValue con estados internos (incluye reset con \"\")\n\tuseEffect(() => {\n\t\tif (!isControlled || countries.length === 0) return;\n\n\t\t// Si el valor externo es vacío o null, limpiar estados\n\t\tif (externalValue === \"\" || externalValue == null) {\n\t\t\tsetPhoneValue(\"\");\n\t\t\tsetFormattedValue(\"\");\n\t\t\tsetIsValid(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = String(externalValue);\n\t\tlet country = countries.find((c) => value.startsWith(c.callingCode));\n\n\t\t// Si no se detecta país por código, mantener el seleccionado actual\n\t\tif (!country) {\n\t\t\tcountry = selectedCountry;\n\t\t}\n\n\t\tif (country) {\n\t\t\t// Actualizar país si cambió\n\t\t\tif (selectedCountry.code !== country.code) {\n\t\t\t\tsetSelectedCountry(country);\n\t\t\t}\n\n\t\t\tconst raw = value.replace(country.callingCode, \"\").replace(/[^\\d]/g, \"\");\n\t\t\tsetPhoneValue(raw);\n\n\t\t\tconst formatter = new AsYouType(country.code as keyof typeof countryData);\n\t\t\tconst formatted = formatter.input(raw);\n\t\t\tsetFormattedValue(formatted);\n\n\t\t\tconst valid = isValidPhoneNumber(value);\n\t\t\tsetIsValid(valid);\n\t\t} else {\n\t\t\t// Fallback: no país detectado, limpiar formato pero conservar value crudo\n\t\t\tsetPhoneValue(\"\");\n\t\t\tsetFormattedValue(\"\");\n\t\t\tsetIsValid(false);\n\t\t}\n\t}, [externalValue, countries, isControlled, selectedCountry]);\n\n\t// Formatear número al escribir\n\tconst handlePhoneChange = (value: string, event?: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst cleanValue = value.replace(/[^\\d]/g, \"\");\n\n\t\tif (event?.nativeEvent instanceof InputEvent && event.nativeEvent.inputType === \"deleteContentBackward\" && cleanValue.length < 4) {\n\t\t\tsetPhoneValue(cleanValue);\n\t\t\tsetFormattedValue(cleanValue); // mostrar sin formato\n\t\t\treturn;\n\t\t}\n\t\tconst formatter = new AsYouType(selectedCountry.code as keyof typeof countryData);\n\t\tconst formatted = formatter.input(cleanValue);\n\n\t\tsetPhoneValue(cleanValue);\n\t\tsetFormattedValue(formatted);\n\n\t\tconst fullNumber = selectedCountry.callingCode + cleanValue;\n\t\tconst valid = isValidPhoneNumber(fullNumber);\n\t\tsetIsValid(valid);\n\n\t\tonPhoneChange?.(fullNumber, valid);\n\t};\n\n\t// Seleccionar país\n\tconst handleCountrySelect = (country: Country) => {\n\t\tsetSelectedCountry(country);\n\t\tsetIsDropdownOpen(false);\n\t\tsetSearchTerm(\"\");\n\n\t\tif (phoneValue) {\n\t\t\tconst formatter = new AsYouType(country.code as keyof typeof countryData);\n\t\t\tconst formatted = formatter.input(phoneValue);\n\t\t\tsetFormattedValue(formatted);\n\n\t\t\tconst fullNumber = country.callingCode + phoneValue;\n\t\t\tconst valid = isValidPhoneNumber(fullNumber);\n\t\t\tsetIsValid(valid);\n\n\t\t\tonPhoneChange?.(fullNumber, valid);\n\t\t}\n\n\t\tonCountryChange?.(country);\n\t\tsetTimeout(() => inputRef.current?.focus(), 100);\n\t};\n\n\tconst handleDropdownToggle = () => {\n\t\tsetIsDropdownOpen(!isDropdownOpen);\n\t\tif (!isDropdownOpen) {\n\t\t\tsetTimeout(() => searchInputRef.current?.focus(), 100);\n\t\t}\n\t};\n\n\t// Filtrar países en búsqueda\n\tuseEffect(() => {\n\t\tif (!searchTerm.trim()) {\n\t\t\tsetFilteredCountries(countries);\n\t\t} else {\n\t\t\tconst searchLower = searchTerm.toLowerCase();\n\t\t\tconst filtered = countries.filter(\n\t\t\t\t(country) =>\n\t\t\t\t\tcountry.name.toLowerCase().includes(searchLower) ||\n\t\t\t\t\tcountry.callingCode.includes(searchTerm) ||\n\t\t\t\t\tcountry.code.toLowerCase().includes(searchLower),\n\t\t\t);\n\t\t\tsetFilteredCountries(filtered);\n\t\t}\n\t}, [searchTerm, countries]);\n\n\tconst isTouched = externalTouched;\n\tconst currentError = externalError;\n\tconst hasError = isTouched && currentError;\n\n\tconst isInvalid = !disabled && !!externalError && externalTouched;\n\n\treturn (\n\t\t<div className={twMerge(\"w-full relative flex flex-col\", classNameContainer)}>\n\t\t\t{label && (\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={resolvedId}\n\t\t\t\t\tclassName={cn(\"form-control-label block font-normal text-sm text-foreground mb-1\", {\n\t\t\t\t\t\t\"text-danger\": hasError,\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\"flex w-full min-w-0 transition-[color,box-shadow] outline-none rounded-md h-input-default\",\n\t\t\t\t\t\"bg-white border border-input\",\n\t\t\t\t\t\"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\thasError\n\t\t\t\t\t\t? \"border-danger aria-invalid:ring-danger/20\"\n\t\t\t\t\t\t: isValid && phoneValue\n\t\t\t\t\t\t? \"focus-within:border-primary focus-within:ring-primary/20\"\n\t\t\t\t\t\t: \"focus-within:border-primary focus-within:ring-primary/20\",\n\t\t\t\t\t\"focus-within:ring-[3px]\",\n\t\t\t\t)}\n\t\t\t\taria-invalid={isInvalid ? \"true\" : \"false\"}\n\t\t\t>\n\t\t\t\t{/* Country selector */}\n\t\t\t\t<div className=\"relative\" ref={dropdownRef}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={handleDropdownToggle}\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"flex items-center gap-2 px-3 border-r border-input h-input-default\",\n\t\t\t\t\t\t\t\"hover:bg-muted/20 focus:outline-none rounded-l-md\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"text-lg\">{selectedCountry.flag}</span>\n\t\t\t\t\t\t<span className=\"text-sm font-medium text-foreground\">{selectedCountry.callingCode}</span>\n\t\t\t\t\t\t<ChevronDown className={`w-4 h-4 text-muted-foreground transition-transform ${isDropdownOpen ? \"rotate-180\" : \"\"}`} />\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t{isDropdownOpen && (\n\t\t\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\t\tkey=\"country-dropdown\"\n\t\t\t\t\t\t\t\t\tinitial={{ opacity: 0, y: -8, scale: 0.98 }}\n\t\t\t\t\t\t\t\t\tanimate={{ opacity: 1, y: 0, scale: 1, transition: { type: \"spring\", stiffness: 420, damping: 28 } }}\n\t\t\t\t\t\t\t\t\texit={{ opacity: 0, y: -6, scale: 0.98, transition: { duration: 0.15, ease: \"easeOut\" } }}\n\t\t\t\t\t\t\t\t\tstyle={{ transformOrigin: \"top center\" }}\n\t\t\t\t\t\t\t\t\tclassName=\"absolute top-full left-0 z-50 w-60 mt-1 bg-white border border-input rounded-md shadow-lg max-h-60 overflow-hidden\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"sticky top-0 bg-white border-b border-input p-3\">\n\t\t\t\t\t\t\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t\t\t\t\t\t\t<Search className=\"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\tref={searchInputRef}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => setSearchTerm(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Buscar país o código\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full pl-10 pr-3 py-2 h-9 border border-input rounded-md text-sm focus:outline-none focus:border-primary focus:ring-[3px] focus:ring-primary/20\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<ScrollArea className=\"max-h-48 overflow-y-auto pb-5\">\n\t\t\t\t\t\t\t\t\t\t{filteredCountries.map((country) => (\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tkey={country.code}\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleCountrySelect(country)}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"w-full flex items-center gap-3 px-3 py-1 text-sm transition\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectedCountry.code === country.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"bg-primary/5 border-l-2 border-primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"hover:bg-muted/20\",\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-lg\">{country.flag}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex-1 text-left\">{country.name}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">{country.callingCode}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t{selectedCountry.code === country.code && <Check className=\"w-4 h-4 text-primary\" />}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</ScrollArea>\n\t\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t\t</LazyMotion>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Phone input */}\n\t\t\t\t<input\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\ttype=\"tel\"\n\t\t\t\t\tname={name}\n\t\t\t\t\tvalue={formattedValue}\n\t\t\t\t\tonChange={(e) => handlePhoneChange(e.target.value, e)}\n\t\t\t\t\tonBlur={externalOnBlur}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\"flex-1 px-3 py-1 h-input-default border-0 rounded-r-md bg-transparent focus:outline-none text-foreground text-sm\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tautoComplete=\"tel\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{!disabled && externalError && externalTouched && <LabelError text={externalError || currentError || \"\"} />}\n\t\t</div>\n\t);\n};\n"],"names":["countryData","PhoneInput","id","name","label","placeholder","required","className","classNameContainer","onCountryChange","onPhoneChange","externalTouched","externalOnBlur","externalError","externalValue","defaultCountry","disabled","selectedCountry","setSelectedCountry","useState","getCountryCallingCode","isDropdownOpen","setIsDropdownOpen","phoneValue","setPhoneValue","formattedValue","setFormattedValue","isValid","setIsValid","countries","setCountries","searchTerm","setSearchTerm","filteredCountries","setFilteredCountries","dropdownRef","useRef","inputRef","searchInputRef","inputId","useId","resolvedId","isControlled","useEffect","availableCountries","countryCode","data","handleClickOutside","event","value","country","c","raw","formatted","AsYouType","valid","isValidPhoneNumber","handlePhoneChange","cleanValue","fullNumber","handleCountrySelect","handleDropdownToggle","searchLower","filtered","isTouched","currentError","hasError","isInvalid","twMerge","jsxs","cn","jsx","ChevronDown","AnimatePresence","LazyMotion","domAnimation","m","Search","ScrollArea","Check","LabelError"],"mappings":"sgBAUMA,EAAc,CACnB,GAAI,CAAE,KAAM,OAAQ,KAAM,MAAA,EAC1B,GAAI,CAAE,KAAM,iBAAkB,KAAM,MAAA,EACpC,GAAI,CAAE,KAAM,SAAU,KAAM,MAAA,EAC5B,GAAI,CAAE,KAAM,YAAa,KAAM,MAAA,EAC/B,GAAI,CAAE,KAAM,WAAY,KAAM,MAAA,EAC9B,GAAI,CAAE,KAAM,QAAS,KAAM,MAAA,EAC3B,GAAI,CAAE,KAAM,SAAU,KAAM,MAAA,EAC5B,GAAI,CAAE,KAAM,UAAW,KAAM,MAAA,EAC7B,GAAI,CAAE,KAAM,YAAa,KAAM,MAAA,CAChC,EA4BaC,GAAwC,CAAC,CACrD,GAAAC,EACA,KAAAC,EACA,MAAAC,EAAQ,WACR,YAAAC,EAAc,gCACd,SAAAC,EAAW,GACX,UAAAC,EAAY,GACZ,mBAAAC,EAAqB,GACrB,gBAAAC,EACA,cAAAC,EACA,QAASC,EACT,OAAQC,EACR,MAAOC,EACP,MAAOC,EACP,eAAAC,EAAiB,KACjB,SAAAC,EAAW,EACZ,IAAM,CACL,KAAM,CAACC,EAAiBC,CAAkB,EAAIC,WAAkB,CAC/D,KAAMJ,EACN,KAAMf,EAAYe,CAA0C,EAAE,KAC9D,KAAMf,EAAYe,CAA0C,EAAE,KAC9D,YAAa,IAAIK,EAAAA,sBAAsBL,CAA0C,CAAC,EAAA,CAClF,EAEK,CAACM,EAAgBC,CAAiB,EAAIH,EAAAA,SAAS,EAAK,EACpD,CAACI,EAAYC,CAAa,EAAIL,EAAAA,SAAS,EAAE,EACzC,CAACM,EAAgBC,CAAiB,EAAIP,EAAAA,SAAS,EAAE,EACjD,CAACQ,EAASC,CAAU,EAAIT,EAAAA,SAAS,EAAK,EACtC,CAACU,EAAWC,CAAY,EAAIX,EAAAA,SAAoB,CAAA,CAAE,EAClD,CAACY,EAAYC,CAAa,EAAIb,EAAAA,SAAS,EAAE,EACzC,CAACc,EAAmBC,CAAoB,EAAIf,EAAAA,SAAoB,CAAA,CAAE,EAElEgB,EAAcC,EAAAA,OAAuB,IAAI,EACzCC,EAAWD,EAAAA,OAAyB,IAAI,EACxCE,EAAiBF,EAAAA,OAAyB,IAAI,EAE9CG,EAAUC,EAAAA,MAAA,EACVC,EAAavC,GAAMqC,EACnBG,EAAe5B,IAAkB,OAGvC6B,EAAAA,UAAU,IAAM,CACf,MAAMC,EAAqB,OAAO,KAAK5C,CAAW,EAAE,IAAK6C,GAAgB,CACxE,MAAMC,EAAO9C,EAAY6C,CAAuC,EAChE,MAAO,CACN,KAAMA,EACN,KAAMC,EAAK,KACX,KAAMA,EAAK,KACX,YAAa,IAAI1B,EAAAA,sBAAsByB,CAAuC,CAAC,EAAA,CAEjF,CAAC,EACDf,EAAac,CAAkB,EAC/BV,EAAqBU,CAAkB,CACxC,EAAG,CAAA,CAAE,EAGLD,EAAAA,UAAU,IAAM,CACf,MAAMI,EAAsBC,GAAsB,CAC7Cb,EAAY,SAAW,CAACA,EAAY,QAAQ,SAASa,EAAM,MAAc,GAC5E1B,EAAkB,EAAK,CAEzB,EACA,gBAAS,iBAAiB,YAAayB,CAAkB,EAClD,IAAM,SAAS,oBAAoB,YAAaA,CAAkB,CAC1E,EAAG,CAAA,CAAE,EAGLJ,EAAAA,UAAU,IAAM,CACf,GAAI,CAACD,GAAgBb,EAAU,SAAW,EAAG,OAG7C,GAAIf,IAAkB,IAAMA,GAAiB,KAAM,CAClDU,EAAc,EAAE,EAChBE,EAAkB,EAAE,EACpBE,EAAW,EAAK,EAChB,MACD,CAEA,MAAMqB,EAAQ,OAAOnC,CAAa,EAClC,IAAIoC,EAAUrB,EAAU,KAAMsB,GAAMF,EAAM,WAAWE,EAAE,WAAW,CAAC,EAOnE,GAJKD,IACJA,EAAUjC,GAGPiC,EAAS,CAERjC,EAAgB,OAASiC,EAAQ,MACpChC,EAAmBgC,CAAO,EAG3B,MAAME,EAAMH,EAAM,QAAQC,EAAQ,YAAa,EAAE,EAAE,QAAQ,SAAU,EAAE,EACvE1B,EAAc4B,CAAG,EAGjB,MAAMC,EADY,IAAIC,YAAUJ,EAAQ,IAAgC,EAC5C,MAAME,CAAG,EACrC1B,EAAkB2B,CAAS,EAE3B,MAAME,EAAQC,EAAAA,mBAAmBP,CAAK,EACtCrB,EAAW2B,CAAK,CACjB,MAEC/B,EAAc,EAAE,EAChBE,EAAkB,EAAE,EACpBE,EAAW,EAAK,CAElB,EAAG,CAACd,EAAee,EAAWa,EAAczB,CAAe,CAAC,EAG5D,MAAMwC,GAAoB,CAACR,EAAeD,IAAgD,CACzF,MAAMU,EAAaT,EAAM,QAAQ,SAAU,EAAE,EAE7C,GAAID,GAAO,uBAAuB,YAAcA,EAAM,YAAY,YAAc,yBAA2BU,EAAW,OAAS,EAAG,CACjIlC,EAAckC,CAAU,EACxBhC,EAAkBgC,CAAU,EAC5B,MACD,CAEA,MAAML,EADY,IAAIC,YAAUrC,EAAgB,IAAgC,EACpD,MAAMyC,CAAU,EAE5ClC,EAAckC,CAAU,EACxBhC,EAAkB2B,CAAS,EAE3B,MAAMM,EAAa1C,EAAgB,YAAcyC,EAC3CH,EAAQC,EAAAA,mBAAmBG,CAAU,EAC3C/B,EAAW2B,CAAK,EAEhB7C,IAAgBiD,EAAYJ,CAAK,CAClC,EAGMK,GAAuBV,GAAqB,CAKjD,GAJAhC,EAAmBgC,CAAO,EAC1B5B,EAAkB,EAAK,EACvBU,EAAc,EAAE,EAEZT,EAAY,CAEf,MAAM8B,EADY,IAAIC,YAAUJ,EAAQ,IAAgC,EAC5C,MAAM3B,CAAU,EAC5CG,EAAkB2B,CAAS,EAE3B,MAAMM,EAAaT,EAAQ,YAAc3B,EACnCgC,EAAQC,EAAAA,mBAAmBG,CAAU,EAC3C/B,EAAW2B,CAAK,EAEhB7C,IAAgBiD,EAAYJ,CAAK,CAClC,CAEA9C,IAAkByC,CAAO,EACzB,WAAW,IAAMb,EAAS,SAAS,MAAA,EAAS,GAAG,CAChD,EAEMwB,GAAuB,IAAM,CAClCvC,EAAkB,CAACD,CAAc,EAC5BA,GACJ,WAAW,IAAMiB,EAAe,SAAS,MAAA,EAAS,GAAG,CAEvD,EAGAK,EAAAA,UAAU,IAAM,CACf,GAAI,CAACZ,EAAW,OACfG,EAAqBL,CAAS,MACxB,CACN,MAAMiC,EAAc/B,EAAW,YAAA,EACzBgC,EAAWlC,EAAU,OACzBqB,GACAA,EAAQ,KAAK,YAAA,EAAc,SAASY,CAAW,GAC/CZ,EAAQ,YAAY,SAASnB,CAAU,GACvCmB,EAAQ,KAAK,YAAA,EAAc,SAASY,CAAW,CAAA,EAEjD5B,EAAqB6B,CAAQ,CAC9B,CACD,EAAG,CAAChC,EAAYF,CAAS,CAAC,EAE1B,MAAMmC,GAAYrD,EACZsD,EAAepD,EACfqD,EAAWF,IAAaC,EAExBE,EAAY,CAACnD,GAAY,CAAC,CAACH,GAAiBF,EAElD,gCACE,MAAA,CAAI,UAAWyD,EAAAA,QAAQ,gCAAiC5D,CAAkB,EACzE,SAAA,CAAAJ,GACAiE,EAAAA,kBAAAA,KAAC,QAAA,CACA,QAAS5B,EACT,UAAW6B,GAAAA,GAAG,oEAAqE,CAClF,cAAeJ,CAAA,CACf,EAEA,SAAA,CAAA9D,EAAM,IAAEE,GAAYiE,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,cAAc,SAAA,GAAA,CAAC,CAAA,CAAA,CAAA,EAItDF,EAAAA,kBAAAA,KAAC,MAAA,CACA,UAAWD,EAAAA,QACV,4FACA,+BACA,+EACAF,EACG,4CAEA,2DAEH,yBAAA,EAED,eAAcC,EAAY,OAAS,QAGnC,SAAA,CAAAE,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,WAAW,IAAKlC,EAC9B,SAAA,CAAAkC,EAAAA,kBAAAA,KAAC,SAAA,CACA,KAAK,SACL,QAASR,GACT,UAAWO,EAAAA,QACV,qEACA,mDAAA,EAGD,SAAA,CAAAG,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,UAAW,SAAAtD,EAAgB,KAAK,EAChDsD,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,sCAAuC,WAAgB,YAAY,0BAClFC,EAAAA,YAAA,CAAY,UAAW,sDAAsDnD,EAAiB,aAAe,EAAE,EAAA,CAAI,CAAA,CAAA,CAAA,0BAGpHoD,EAAAA,gBAAA,CACC,SAAApD,GACAkD,EAAAA,kBAAAA,IAACG,EAAAA,WAAA,CAAW,SAAUC,eACrB,SAAAN,EAAAA,kBAAAA,KAACO,EAAAA,EAAE,IAAF,CAEA,QAAS,CAAE,QAAS,EAAG,EAAG,GAAI,MAAO,GAAA,EACrC,QAAS,CAAE,QAAS,EAAG,EAAG,EAAG,MAAO,EAAG,WAAY,CAAE,KAAM,SAAU,UAAW,IAAK,QAAS,GAAG,EACjG,KAAM,CAAE,QAAS,EAAG,EAAG,GAAI,MAAO,IAAM,WAAY,CAAE,SAAU,IAAM,KAAM,UAAU,EACtF,MAAO,CAAE,gBAAiB,YAAA,EAC1B,UAAU,qHAEV,SAAA,CAAAL,EAAAA,kBAAAA,IAAC,OAAI,UAAU,kDACd,SAAAF,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,WACd,SAAA,CAAAE,EAAAA,kBAAAA,IAACM,EAAAA,OAAA,CAAO,UAAU,wEAAA,CAAyE,EAC3FN,EAAAA,kBAAAA,IAAC,QAAA,CACA,IAAKjC,EACL,KAAK,OACL,MAAOP,EACP,SAAW,GAAMC,EAAc,EAAE,OAAO,KAAK,EAC7C,YAAY,uBACZ,UAAU,kJAAA,CAAA,CACX,CAAA,CACD,CAAA,CACD,0BACC8C,GAAAA,WAAA,CAAW,UAAU,gCACpB,SAAA7C,EAAkB,IAAKiB,GACvBmB,EAAAA,kBAAAA,KAAC,SAAA,CAEA,KAAK,SACL,QAAS,IAAMT,GAAoBV,CAAO,EAC1C,UAAWkB,EAAAA,QACV,8DACAnD,EAAgB,OAASiC,EAAQ,KAC9B,yCACA,mBAAA,EAGJ,SAAA,CAAAqB,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,UAAW,SAAArB,EAAQ,KAAK,EACxCqB,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,mBAAoB,WAAQ,KAAK,EACjDA,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,WAAQ,YAAY,EAC5DtD,EAAgB,OAASiC,EAAQ,MAAQqB,EAAAA,kBAAAA,IAACQ,QAAA,CAAM,UAAU,sBAAA,CAAuB,CAAA,CAAA,EAb7E7B,EAAQ,IAAA,CAed,CAAA,CACF,CAAA,CAAA,EAvCI,kBAAA,EAyCN,CAAA,CAEF,CAAA,EACD,EAGAqB,EAAAA,kBAAAA,IAAC,QAAA,CACA,IAAKlC,EACL,GAAII,EACJ,KAAK,MACL,KAAAtC,EACA,MAAOsB,EACP,SAAW,GAAMgC,GAAkB,EAAE,OAAO,MAAO,CAAC,EACpD,OAAQ7C,EACR,YAAAP,EACA,SAAAW,EACC,GAAKA,EAA2C,CAAA,EAAhC,CAAE,eAAgBmD,CAAA,EACnC,UAAWC,EAAAA,QACV,mHACA7D,CAAA,EAED,aAAa,KAAA,CAAA,CACd,CAAA,CAAA,EAGA,CAACS,GAAYH,GAAiBF,2BAAoBqE,cAAA,CAAW,KAAMnE,GAAiBoD,GAAgB,EAAA,CAAI,CAAA,EAC1G,CAEF"}