lizaui 8.3.9 → 8.4.9

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 (63) 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 +1 -1
  4. package/dist/calendar/index.es.js +1 -1
  5. package/dist/chunks/{button-DaAJ3J_i.js → button-DFrxQHAW.js} +2 -2
  6. package/dist/chunks/{button-DaAJ3J_i.js.map → button-DFrxQHAW.js.map} +1 -1
  7. package/dist/chunks/{button-DJYse8Dw.js → button-uo4_Xad_.js} +2 -2
  8. package/dist/chunks/{button-DJYse8Dw.js.map → button-uo4_Xad_.js.map} +1 -1
  9. package/dist/chunks/features-animation-BRAvwYFN.js +3437 -0
  10. package/dist/chunks/features-animation-BRAvwYFN.js.map +1 -0
  11. package/dist/chunks/features-animation-BoXKk5t2.js +2 -0
  12. package/dist/chunks/features-animation-BoXKk5t2.js.map +1 -0
  13. package/dist/chunks/index-BbDfYVLO.js +174 -0
  14. package/dist/chunks/index-BbDfYVLO.js.map +1 -0
  15. package/dist/chunks/index-CL73JQgs.js +2 -0
  16. package/dist/chunks/index-CL73JQgs.js.map +1 -0
  17. package/dist/chunks/index-DC9BfnBH.js +208 -0
  18. package/dist/chunks/index-DC9BfnBH.js.map +1 -0
  19. package/dist/chunks/index-lrI_r1ww.js +10 -0
  20. package/dist/chunks/index-lrI_r1ww.js.map +1 -0
  21. package/dist/chunks/proxy-BwQyOw8U.js +2 -0
  22. package/dist/chunks/proxy-BwQyOw8U.js.map +1 -0
  23. package/dist/chunks/proxy-kv_Ue2k_.js +1346 -0
  24. package/dist/chunks/proxy-kv_Ue2k_.js.map +1 -0
  25. package/dist/chunks/ripple-CzU7YM2G.js +69 -0
  26. package/dist/chunks/{ripple-DMI95LHg.js.map → ripple-CzU7YM2G.js.map} +1 -1
  27. package/dist/chunks/ripple-SBteSEo3.js +2 -0
  28. package/dist/chunks/{ripple-DieNd7XQ.js.map → ripple-SBteSEo3.js.map} +1 -1
  29. package/dist/chunks/{scroll-area-BwqigcJy.js → scroll-area-B0mWCpSW.js} +2 -2
  30. package/dist/chunks/{scroll-area-BwqigcJy.js.map → scroll-area-B0mWCpSW.js.map} +1 -1
  31. package/dist/chunks/{scroll-area-1okMO4N6.js → scroll-area-CE7quLQL.js} +2 -2
  32. package/dist/chunks/{scroll-area-1okMO4N6.js.map → scroll-area-CE7quLQL.js.map} +1 -1
  33. package/dist/chunks/{select-B6a8A7js.js → select-BwMqXSzv.js} +2 -2
  34. package/dist/chunks/{select-B6a8A7js.js.map → select-BwMqXSzv.js.map} +1 -1
  35. package/dist/chunks/{select-CFefk2Xz.js → select-DGSPwoy8.js} +2 -2
  36. package/dist/chunks/{select-CFefk2Xz.js.map → select-DGSPwoy8.js.map} +1 -1
  37. package/dist/chunks/{textarea-BPsle-xc.js → textarea-BYbersWf.js} +32 -31
  38. package/dist/chunks/{textarea-BPsle-xc.js.map → textarea-BYbersWf.js.map} +1 -1
  39. package/dist/chunks/{textarea-C2i9A3jn.js → textarea-D9X4fUkV.js} +12 -12
  40. package/dist/chunks/{textarea-C2i9A3jn.js.map → textarea-D9X4fUkV.js.map} +1 -1
  41. package/dist/modal/index.cjs.js +1 -1
  42. package/dist/modal/index.cjs.js.map +1 -1
  43. package/dist/modal/index.es.js +15 -14
  44. package/dist/modal/index.es.js.map +1 -1
  45. package/dist/pagination/index.cjs.js +1 -1
  46. package/dist/pagination/index.es.js +3 -3
  47. package/dist/phone-input/index.cjs.js +1 -1
  48. package/dist/phone-input/index.cjs.js.map +1 -1
  49. package/dist/phone-input/index.es.js +62 -61
  50. package/dist/phone-input/index.es.js.map +1 -1
  51. package/dist/ripple/index.cjs.js +1 -1
  52. package/dist/ripple/index.es.js +1 -1
  53. package/dist/table/index.cjs.js +1 -1
  54. package/dist/table/index.cjs.js.map +1 -1
  55. package/dist/table/index.es.js +11 -11
  56. package/dist/table/index.es.js.map +1 -1
  57. package/dist/time-input/index.cjs.js +1 -1
  58. package/dist/time-input/index.es.js +2 -2
  59. package/dist/ui/index.cjs.js +1 -1
  60. package/dist/ui/index.es.js +7 -7
  61. package/package.json +1 -1
  62. package/dist/chunks/ripple-DMI95LHg.js +0 -68
  63. package/dist/chunks/ripple-DieNd7XQ.js +0 -2
@@ -1,14 +1,15 @@
1
1
  import { j as t } from "../chunks/jsx-runtime-Cl_4eDuT.js";
2
- import { useState as r, useRef as L, useId as ae, useEffect as C } from "react";
2
+ import { useState as r, useRef as I, useId as ae, useEffect as C } from "react";
3
3
  import { getCountryCallingCode as U, AsYouType as S, isValidPhoneNumber as k } from "libphonenumber-js";
4
4
  import { t as u } from "../chunks/bundle-mjs-2oQ8XDAz.js";
5
- import { c as le } from "../chunks/utils-CvyT6Z0O.js";
6
- import "../chunks/textarea-BPsle-xc.js";
7
- import { L as ie } from "../chunks/label-error-BOE4Qj5S.js";
8
- import { S as ce, a as de } from "../chunks/scroll-area-1okMO4N6.js";
9
- import "../chunks/button-DJYse8Dw.js";
10
- import { AnimatePresence as me, LazyMotion as fe, domAnimation as ue, m as pe } from "framer-motion";
11
- import { C as ge, a as he } from "../chunks/index-VJ2Qvmen.js";
5
+ import { c as ie } from "../chunks/utils-CvyT6Z0O.js";
6
+ import "../chunks/textarea-BYbersWf.js";
7
+ import { L as le } from "../chunks/label-error-BOE4Qj5S.js";
8
+ import { S as ce, a as de } from "../chunks/scroll-area-CE7quLQL.js";
9
+ import "../chunks/button-uo4_Xad_.js";
10
+ import { C as me, a as fe } from "../chunks/index-VJ2Qvmen.js";
11
+ import { A as ue, L as pe } from "../chunks/index-DC9BfnBH.js";
12
+ import { e as ge, m as he } from "../chunks/features-animation-BRAvwYFN.js";
12
13
  const j = {
13
14
  PE: { name: "Perú", flag: "🇵🇪" },
14
15
  US: { name: "Estados Unidos", flag: "🇺🇸" },
@@ -19,7 +20,7 @@ const j = {
19
20
  BR: { name: "Brasil", flag: "🇧🇷" },
20
21
  BO: { name: "Bolivia", flag: "🇧🇴" },
21
22
  VE: { name: "Venezuela", flag: "🇻🇪" }
22
- }, Se = ({
23
+ }, ke = ({
23
24
  id: W,
24
25
  name: X,
25
26
  label: B = "Teléfono",
@@ -36,85 +37,85 @@ const j = {
36
37
  defaultCountry: g = "PE",
37
38
  disabled: h = !1
38
39
  }) => {
39
- const [s, P] = r({
40
+ const [s, A] = r({
40
41
  code: g,
41
42
  name: j[g].name,
42
43
  flag: j[g].flag,
43
44
  callingCode: `+${U(g)}`
44
- }), [x, y] = r(!1), [b, d] = r(""), [Q, a] = r(""), [Z, m] = r(!1), [l, _] = r([]), [f, R] = r(""), [ee, E] = r([]), I = L(null), T = L(null), A = L(null), te = ae(), V = W || te, D = c !== void 0;
45
+ }), [x, y] = r(!1), [b, d] = r(""), [Q, a] = r(""), [Z, m] = r(!1), [i, _] = r([]), [f, P] = r(""), [ee, E] = r([]), L = I(null), R = I(null), T = I(null), te = ae(), V = W || te, D = c !== void 0;
45
46
  C(() => {
46
- const e = Object.keys(j).map((o) => {
47
- const n = j[o];
47
+ const e = Object.keys(j).map((n) => {
48
+ const o = j[n];
48
49
  return {
49
- code: o,
50
- name: n.name,
51
- flag: n.flag,
52
- callingCode: `+${U(o)}`
50
+ code: n,
51
+ name: o.name,
52
+ flag: o.flag,
53
+ callingCode: `+${U(n)}`
53
54
  };
54
55
  });
55
56
  _(e), E(e);
56
57
  }, []), C(() => {
57
- const e = (o) => {
58
- I.current && !I.current.contains(o.target) && y(!1);
58
+ const e = (n) => {
59
+ L.current && !L.current.contains(n.target) && y(!1);
59
60
  };
60
61
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
61
62
  }, []), C(() => {
62
- if (!D || l.length === 0) return;
63
+ if (!D || i.length === 0) return;
63
64
  if (c === "" || c == null) {
64
65
  d(""), a(""), m(!1);
65
66
  return;
66
67
  }
67
68
  const e = String(c);
68
- let o = l.find((n) => e.startsWith(n.callingCode));
69
- if (o || (o = s), o) {
70
- s.code !== o.code && P(o);
71
- const n = e.replace(o.callingCode, "").replace(/[^\d]/g, "");
72
- d(n);
73
- const i = new S(o.code).input(n);
74
- a(i);
69
+ let n = i.find((o) => e.startsWith(o.callingCode));
70
+ if (n || (n = s), n) {
71
+ s.code !== n.code && A(n);
72
+ const o = e.replace(n.callingCode, "").replace(/[^\d]/g, "");
73
+ d(o);
74
+ const l = new S(n.code).input(o);
75
+ a(l);
75
76
  const v = k(e);
76
77
  m(v);
77
78
  } else
78
79
  d(""), a(""), m(!1);
79
- }, [c, l, D, s]);
80
- const ne = (e, o) => {
81
- const n = e.replace(/[^\d]/g, "");
82
- if (o?.nativeEvent instanceof InputEvent && o.nativeEvent.inputType === "deleteContentBackward" && n.length < 4) {
83
- d(n), a(n);
80
+ }, [c, i, D, s]);
81
+ const oe = (e, n) => {
82
+ const o = e.replace(/[^\d]/g, "");
83
+ if (n?.nativeEvent instanceof InputEvent && n.nativeEvent.inputType === "deleteContentBackward" && o.length < 4) {
84
+ d(o), a(o);
84
85
  return;
85
86
  }
86
- const i = new S(s.code).input(n);
87
- d(n), a(i);
88
- const v = s.callingCode + n, $ = k(v);
87
+ const l = new S(s.code).input(o);
88
+ d(o), a(l);
89
+ const v = s.callingCode + o, $ = k(v);
89
90
  m($), O?.(v, $);
90
- }, oe = (e) => {
91
- if (P(e), y(!1), R(""), b) {
92
- const n = new S(e.code).input(b);
93
- a(n);
94
- const w = e.callingCode + b, i = k(w);
95
- m(i), O?.(w, i);
91
+ }, ne = (e) => {
92
+ if (A(e), y(!1), P(""), b) {
93
+ const o = new S(e.code).input(b);
94
+ a(o);
95
+ const w = e.callingCode + b, l = k(w);
96
+ m(l), O?.(w, l);
96
97
  }
97
- J?.(e), setTimeout(() => T.current?.focus(), 100);
98
+ J?.(e), setTimeout(() => R.current?.focus(), 100);
98
99
  }, se = () => {
99
- y(!x), x || setTimeout(() => A.current?.focus(), 100);
100
+ y(!x), x || setTimeout(() => T.current?.focus(), 100);
100
101
  };
101
102
  C(() => {
102
103
  if (!f.trim())
103
- E(l);
104
+ E(i);
104
105
  else {
105
- const e = f.toLowerCase(), o = l.filter(
106
- (n) => n.name.toLowerCase().includes(e) || n.callingCode.includes(f) || n.code.toLowerCase().includes(e)
106
+ const e = f.toLowerCase(), n = i.filter(
107
+ (o) => o.name.toLowerCase().includes(e) || o.callingCode.includes(f) || o.code.toLowerCase().includes(e)
107
108
  );
108
- E(o);
109
+ E(n);
109
110
  }
110
- }, [f, l]);
111
+ }, [f, i]);
111
112
  const re = N, M = p, z = re && M, F = !h && !!p && N;
112
113
  return /* @__PURE__ */ t.jsxs("div", { className: u("w-full relative flex flex-col", H), children: [
113
114
  B && /* @__PURE__ */ t.jsxs(
114
115
  "label",
115
116
  {
116
117
  htmlFor: V,
117
- className: le("form-control-label block font-normal text-sm text-foreground mb-1", {
118
+ className: ie("form-control-label block font-normal text-sm text-foreground mb-1", {
118
119
  "text-danger": z
119
120
  }),
120
121
  children: [
@@ -136,7 +137,7 @@ const j = {
136
137
  ),
137
138
  "aria-invalid": F ? "true" : "false",
138
139
  children: [
139
- /* @__PURE__ */ t.jsxs("div", { className: "relative", ref: I, children: [
140
+ /* @__PURE__ */ t.jsxs("div", { className: "relative", ref: L, children: [
140
141
  /* @__PURE__ */ t.jsxs(
141
142
  "button",
142
143
  {
@@ -149,12 +150,12 @@ const j = {
149
150
  children: [
150
151
  /* @__PURE__ */ t.jsx("span", { className: "text-lg", children: s.flag }),
151
152
  /* @__PURE__ */ t.jsx("span", { className: "text-sm font-medium text-foreground", children: s.callingCode }),
152
- /* @__PURE__ */ t.jsx(ge, { className: `w-4 h-4 text-muted-foreground transition-transform ${x ? "rotate-180" : ""}` })
153
+ /* @__PURE__ */ t.jsx(me, { className: `w-4 h-4 text-muted-foreground transition-transform ${x ? "rotate-180" : ""}` })
153
154
  ]
154
155
  }
155
156
  ),
156
- /* @__PURE__ */ t.jsx(me, { children: x && /* @__PURE__ */ t.jsx(fe, { features: ue, children: /* @__PURE__ */ t.jsxs(
157
- pe.div,
157
+ /* @__PURE__ */ t.jsx(ue, { children: x && /* @__PURE__ */ t.jsx(pe, { features: ge, children: /* @__PURE__ */ t.jsxs(
158
+ he.div,
158
159
  {
159
160
  initial: { opacity: 0, y: -8, scale: 0.98 },
160
161
  animate: { opacity: 1, y: 0, scale: 1, transition: { type: "spring", stiffness: 420, damping: 28 } },
@@ -167,10 +168,10 @@ const j = {
167
168
  /* @__PURE__ */ t.jsx(
168
169
  "input",
169
170
  {
170
- ref: A,
171
+ ref: T,
171
172
  type: "text",
172
173
  value: f,
173
- onChange: (e) => R(e.target.value),
174
+ onChange: (e) => P(e.target.value),
174
175
  placeholder: "Buscar país o código",
175
176
  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"
176
177
  }
@@ -180,7 +181,7 @@ const j = {
180
181
  "button",
181
182
  {
182
183
  type: "button",
183
- onClick: () => oe(e),
184
+ onClick: () => ne(e),
184
185
  className: u(
185
186
  "w-full flex items-center gap-3 px-3 py-1 text-sm transition",
186
187
  s.code === e.code ? "bg-primary/5 border-l-2 border-primary" : "hover:bg-muted/20"
@@ -189,7 +190,7 @@ const j = {
189
190
  /* @__PURE__ */ t.jsx("span", { className: "text-lg", children: e.flag }),
190
191
  /* @__PURE__ */ t.jsx("span", { className: "flex-1 text-left", children: e.name }),
191
192
  /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: e.callingCode }),
192
- s.code === e.code && /* @__PURE__ */ t.jsx(he, { className: "w-4 h-4 text-primary" })
193
+ s.code === e.code && /* @__PURE__ */ t.jsx(fe, { className: "w-4 h-4 text-primary" })
193
194
  ]
194
195
  },
195
196
  e.code
@@ -202,12 +203,12 @@ const j = {
202
203
  /* @__PURE__ */ t.jsx(
203
204
  "input",
204
205
  {
205
- ref: T,
206
+ ref: R,
206
207
  id: V,
207
208
  type: "tel",
208
209
  name: X,
209
210
  value: Q,
210
- onChange: (e) => ne(e.target.value, e),
211
+ onChange: (e) => oe(e.target.value, e),
211
212
  onBlur: K,
212
213
  placeholder: Y,
213
214
  disabled: h,
@@ -222,10 +223,10 @@ const j = {
222
223
  ]
223
224
  }
224
225
  ),
225
- !h && p && N && /* @__PURE__ */ t.jsx(ie, { text: p || M || "" })
226
+ !h && p && N && /* @__PURE__ */ t.jsx(le, { text: p || M || "" })
226
227
  ] });
227
228
  };
228
229
  export {
229
- Se as PhoneInput
230
+ ke as PhoneInput
230
231
  };
231
232
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.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.es.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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/ripple-DieNd7XQ.js");exports.Ripple=e.Ripple;exports.useRipple=e.useRipple;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/ripple-SBteSEo3.js");exports.Ripple=e.Ripple;exports.useRipple=e.useRipple;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { R as s, u as R } from "../chunks/ripple-DMI95LHg.js";
1
+ import { R as s, u as R } from "../chunks/ripple-CzU7YM2G.js";
2
2
  export {
3
3
  s as Ripple,
4
4
  R as useRipple
@@ -1,2 +1,2 @@
1
- "use strict";var H=Object.create;var w=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var D=(t,o,s,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let l of $(o))!P.call(t,l)&&l!==s&&w(t,l,{get:()=>o[l],enumerable:!(i=W(o,l))||i.enumerable});return t};var L=(t,o,s)=>(s=t!=null?H(O(t)):{},D(o||!t||!t.__esModule?w(s,"default",{value:t,enumerable:!0}):s,t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../chunks/jsx-runtime-BjzqJBtL.js"),e=require("react"),E=require("../chunks/bundle-mjs-8z5d_e-8.js"),F=require("../chunks/tooltip-BPp8Maa7.js"),G=require("../chunks/clsx-C11secjj.js"),M=require("../chunks/checkbox-w969v4lK.js"),N=require("../chunks/v4-CqdK_b8Y.js"),k=require("framer-motion"),T=e.memo(({children:t,className:o,...s})=>{const i=e.useMemo(()=>E.twMerge("min-h-[100px] sticky top-0 z-10",o),[o]),l=e.useMemo(()=>e.Children.map(t,a=>e.isValidElement(a)?e.cloneElement(a,{...s}):a),[t,s]);return n.jsxRuntimeExports.jsx("thead",{className:i,children:l})});T.displayName="TableHeader";const g=e.memo(({children:t,className:o,style:s={},icon:i=null,text:l="",size:a,header:c})=>{const h=e.useMemo(()=>E.twMerge("px-2 border-b border-divider",o),[o]),f=e.useMemo(()=>({...s,width:a?`${a}px`:s.width,minWidth:a?`${a}px`:s.minWidth}),[s,a]),x=!t||typeof t=="string"&&t.trim()==="";return n.jsxRuntimeExports.jsx("th",{className:h,style:f,children:x?n.jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center gap-x-2 font-medium",children:[n.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2",children:[n.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-xs text-gray-500 dark:text-foreground-500 text-left",children:l}),c?.information&&n.jsxRuntimeExports.jsx(F.Tooltip,{content:c?.information||"",children:n.jsxRuntimeExports.jsx("svg",{"aria-hidden":"true",role:"img",className:"text-default-300 cursor-pointer dark:text-foreground-500",width:16,height:16,viewBox:"0 0 24 24",children:n.jsxRuntimeExports.jsxs("g",{fill:"none",children:[n.jsxRuntimeExports.jsx("circle",{cx:12,cy:12,r:10,stroke:"currentColor",strokeWidth:"1.5"}),n.jsxRuntimeExports.jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:"1.5",d:"M12 17v-6"}),n.jsxRuntimeExports.jsx("circle",{cx:1,cy:1,r:1,fill:"currentColor",transform:"matrix(1 0 0 -1 11 9)"})]})})})]}),n.jsxRuntimeExports.jsx("div",{className:"flex-1 flex",children:i})]}):t})});g.displayName="TableHeaderColumn";const I={color:"primary",disabledKeys:[],isChecks:!0,selectKeys:[],isActions:!0,widthAction:100,totalColumn:0},S=e.createContext(I),R=()=>e.useContext(S);function J({children:t,className:o,data:s=[],textNoData:i="No hay información",isLoading:l=!1,loadingText:a="Cargando ...",rowKey:c,...h}){const{totalColumn:f,isActions:x,isChecks:d}=R(),j=Number(f)+Number(x)+Number(d),y=e.useMemo(()=>E.twMerge(o),[o]),p=e.useMemo(()=>typeof t=="function"?s.map((m,b)=>{const u=t({item:m,index:b}),q=c?c(m,b):b;return e.isValidElement(u)?e.cloneElement(u,{key:q,...h}):null}):e.Children.map(t,(m,b)=>e.isValidElement(m)?e.cloneElement(m,{key:c?c(s[b],b):b,...h}):m),[t,s,h,c]);let r=null;return l?r=n.jsxRuntimeExports.jsx("tr",{className:"border-b border-gray-200",children:n.jsxRuntimeExports.jsx("td",{className:"px-2 py-2.5 w-full",colSpan:j,children:n.jsxRuntimeExports.jsx("div",{className:"flex justify-center relative",children:n.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-sm text-gray-900",children:a})})})}):s.length===0&&(r=n.jsxRuntimeExports.jsx("tr",{className:"border-b border-gray-200",children:n.jsxRuntimeExports.jsx("td",{className:"px-2 py-2.5 w-full",colSpan:j,children:n.jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:n.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-sm text-gray-900",children:i})})})})),n.jsxRuntimeExports.jsxs("tbody",{className:y,children:[p,r]})}const Q=e.memo(t=>n.jsxRuntimeExports.jsx(J,{...t})),v=e.memo(e.forwardRef(({children:t,className:o,keyCurrent:s,onChangeCheck:i,disabled:l,style:a,isCheck:c=!0},h)=>{const f=e.useMemo(()=>N.v4(),[]),{isChecks:x,selectKeys:d,disabledKeys:j,color:y}=R(),p=e.useMemo(()=>d?.some(u=>u.id===s.id),[d,s.id]),r=e.useMemo(()=>j?.some(u=>u===s.id),[j,s.id]),m=u=>{r||l||i?.(s,u)},b=e.useMemo(()=>E.twMerge("relative border-b border-divider min-h-[45px] h-[45px] transition-colors duration-200 ease-in-out",G.clsx({"bg-content1 dark:hover:bg-default-100 hover:bg-default-100":!p,"bg-default-100 dark:bg-default-200":p}),o),[p,o]);return n.jsxRuntimeExports.jsxs("tr",{className:b,ref:h,style:a,children:[x&&n.jsxRuntimeExports.jsx("td",{className:"px-2 py-1",children:c&&n.jsxRuntimeExports.jsx(M.Checkbox,{id:f,onChange:u=>m(u.target.checked),checked:p||!1,className:"flex justify-center",disabled:r||l,color:y})}),t]})}));v.displayName="TableBodyRow";const V=e.memo(e.forwardRef(({children:t,className:o,text:s,style:i},l)=>{const a=e.useMemo(()=>E.twMerge("px-2 py-1 text-gray-900 dark:text-default-500 text-sm",o),[o]),c=!t||typeof t=="string"&&t.trim()==="";return n.jsxRuntimeExports.jsx("td",{ref:l,className:a,style:i,children:c?n.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-sm",children:s}):t})}));V.displayName="TableBodyColumn";const A=e.memo(({children:t,className:o,dataHeader:s=[],valueCheck:i=!1,disabledCheck:l,onChangeCheck:a,...c})=>{const h=e.useMemo(()=>N.v4(),[]),{isChecks:f,widthAction:x,isActions:d,color:j}=R(),y=r=>{l||a?.(r)},p=e.useMemo(()=>typeof t=="function"?s.map((r,m)=>{const b=t({item:r}),u=r?.id??r.header??m;return e.isValidElement(b)?e.cloneElement(b,{key:u,...c}):null}):e.Children.map(t,(r,m)=>e.isValidElement(r)?e.cloneElement(r,{key:s[m]?.id??s[m]?.header??m,...c}):r),[t,s,c]);return n.jsxRuntimeExports.jsxs("tr",{className:E.twMerge("bg-gray-50 dark:bg-default-100 h-[50px]",o),children:[f&&n.jsxRuntimeExports.jsx(g,{className:"min-w-[40px] w-[40px]",children:n.jsxRuntimeExports.jsx(M.Checkbox,{id:h,onChange:r=>y(r.target.checked),checked:i,className:"flex justify-center",color:j})}),p,d&&n.jsxRuntimeExports.jsx(g,{color:j,style:{minWidth:`${x}px`,width:`${x}px`}})]})});A.displayName="TableHeaderRow";const C=e.memo(({children:t,className:o="",style:s={}})=>{const i=e.useMemo(()=>E.twMerge("table-column-search px-2 border-b border-divider",o),[o]);return n.jsxRuntimeExports.jsx("th",{className:i,style:s,children:t})});C.displayName="TableSearchColumn";const B=e.memo(({children:t,className:o,dataHeader:s=[],...i})=>{const{isChecks:l,widthAction:a,isActions:c}=R(),h=e.useMemo(()=>E.twMerge("bg-gray-50 dark:bg-default-100 h-[50px]",o),[o]),f=e.useMemo(()=>typeof t=="function"?s.map((x,d)=>{const j=t({item:x}),y=x?.id??x?.header??d;return e.isValidElement(j)?e.cloneElement(j,{key:y,...i}):null}):e.Children.map(t,(x,d)=>e.isValidElement(x)?e.cloneElement(x,{key:s[d]?.id??s[d]?.header??d,...i}):x),[t,s,i]);return n.jsxRuntimeExports.jsxs("tr",{className:h,children:[l&&n.jsxRuntimeExports.jsx(C,{className:"min-w-[40px] w-[40px]"}),f,c&&n.jsxRuntimeExports.jsx(C,{style:{minWidth:`${a}px`,width:`${a}px`}})]})});B.displayName="TableSearchRow";const K=({className:t,children:o,classNameContainer:s,...i})=>{const{color:l="primary",disabledKeys:a,isChecks:c=!0,selectKeys:h=[],isActions:f=!0,widthAction:x=100,dataHeader:d}=i,j=e.useMemo(()=>E.twMerge("table-main-container w-full border-collapse table-auto",t),[t]),y=e.useMemo(()=>E.twMerge("max-w-full overflow-x-auto overflow-y-auto bg-content1",s),[s]);return n.jsxRuntimeExports.jsx(S.Provider,{value:{color:l,disabledKeys:a,isChecks:c,selectKeys:h,isActions:f,widthAction:x,totalColumn:d?.length||0},children:n.jsxRuntimeExports.jsx("div",{className:y,children:n.jsxRuntimeExports.jsx(k.AnimatePresence,{children:n.jsxRuntimeExports.jsx(k.LazyMotion,{features:()=>import("framer-motion").then(p=>p.domAnimation),children:n.jsxRuntimeExports.jsx("table",{className:j,children:e.Children.map(o,p=>e.isValidElement(p)?e.cloneElement(p,{...i}):p)})})})})})},U=Object.assign(K,{Header:T,HeaderRow:A,HeaderColumn:g,SearchRow:B,SearchColumn:C,Body:Q,BodyRow:v,BodyColumn:V}),X=({initialDisabledKeys:t=[],initialSelectKey:o=[],initialValueSearch:s={}})=>{const[i,l]=e.useState(o),[a,c]=e.useState(t),[h,f]=e.useState(s),x=e.useCallback(r=>{l(m=>m.some(u=>u.id===r.id)?m.filter(u=>u.id!==r.id):[...m,r])},[]),d=e.useCallback(r=>{l(r)},[]),j=e.useCallback(r=>{c(r)},[]),y=e.useCallback(()=>{l([])},[]),p=e.useCallback((r,m)=>{f(b=>{const u={...b};return m?u[r]=m:delete u[r],u})},[]);return{selectKeys:i,disabledKeys:a,valueSearch:h,handleSelectKeys:d,handleSelectKey:x,handleDisabledKeys:j,handleSetValueSearch:p,handleResetSelectKeys:y}};exports.Table=U;exports.TableHOC=K;exports.useTable=X;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../chunks/jsx-runtime-BjzqJBtL.js"),e=require("react"),E=require("../chunks/bundle-mjs-8z5d_e-8.js"),q=require("../chunks/tooltip-BPp8Maa7.js"),H=require("../chunks/clsx-C11secjj.js"),k=require("../chunks/checkbox-w969v4lK.js"),M=require("../chunks/v4-CqdK_b8Y.js"),w=require("../chunks/index-lrI_r1ww.js"),N=e.memo(({children:s,className:r,...n})=>{const i=e.useMemo(()=>E.twMerge("min-h-[100px] sticky top-0 z-10",r),[r]),m=e.useMemo(()=>e.Children.map(s,l=>e.isValidElement(l)?e.cloneElement(l,{...n}):l),[s,n]);return t.jsxRuntimeExports.jsx("thead",{className:i,children:m})});N.displayName="TableHeader";const g=e.memo(({children:s,className:r,style:n={},icon:i=null,text:m="",size:l,header:a})=>{const h=e.useMemo(()=>E.twMerge("px-2 border-b border-divider",r),[r]),y=e.useMemo(()=>({...n,width:l?`${l}px`:n.width,minWidth:l?`${l}px`:n.minWidth}),[n,l]),x=!s||typeof s=="string"&&s.trim()==="";return t.jsxRuntimeExports.jsx("th",{className:h,style:y,children:x?t.jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center gap-x-2 font-medium",children:[t.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2",children:[t.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-xs text-gray-500 dark:text-foreground-500 text-left",children:m}),a?.information&&t.jsxRuntimeExports.jsx(q.Tooltip,{content:a?.information||"",children:t.jsxRuntimeExports.jsx("svg",{"aria-hidden":"true",role:"img",className:"text-default-300 cursor-pointer dark:text-foreground-500",width:16,height:16,viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsxs("g",{fill:"none",children:[t.jsxRuntimeExports.jsx("circle",{cx:12,cy:12,r:10,stroke:"currentColor",strokeWidth:"1.5"}),t.jsxRuntimeExports.jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:"1.5",d:"M12 17v-6"}),t.jsxRuntimeExports.jsx("circle",{cx:1,cy:1,r:1,fill:"currentColor",transform:"matrix(1 0 0 -1 11 9)"})]})})})]}),t.jsxRuntimeExports.jsx("div",{className:"flex-1 flex",children:i})]}):s})});g.displayName="TableHeaderColumn";const W={color:"primary",disabledKeys:[],isChecks:!0,selectKeys:[],isActions:!0,widthAction:100,totalColumn:0},T=e.createContext(W),R=()=>e.useContext(T);function $({children:s,className:r,data:n=[],textNoData:i="No hay información",isLoading:m=!1,loadingText:l="Cargando ...",rowKey:a,...h}){const{totalColumn:y,isActions:x,isChecks:d}=R(),j=Number(y)+Number(x)+Number(d),f=e.useMemo(()=>E.twMerge(r),[r]),p=e.useMemo(()=>typeof s=="function"?n.map((c,b)=>{const u=s({item:c,index:b}),K=a?a(c,b):b;return e.isValidElement(u)?e.cloneElement(u,{key:K,...h}):null}):e.Children.map(s,(c,b)=>e.isValidElement(c)?e.cloneElement(c,{key:a?a(n[b],b):b,...h}):c),[s,n,h,a]);let o=null;return m?o=t.jsxRuntimeExports.jsx("tr",{className:"border-b border-gray-200",children:t.jsxRuntimeExports.jsx("td",{className:"px-2 py-2.5 w-full",colSpan:j,children:t.jsxRuntimeExports.jsx("div",{className:"flex justify-center relative",children:t.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-sm text-gray-900",children:l})})})}):n.length===0&&(o=t.jsxRuntimeExports.jsx("tr",{className:"border-b border-gray-200",children:t.jsxRuntimeExports.jsx("td",{className:"px-2 py-2.5 w-full",colSpan:j,children:t.jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:t.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-sm text-gray-900",children:i})})})})),t.jsxRuntimeExports.jsxs("tbody",{className:f,children:[p,o]})}const O=e.memo(s=>t.jsxRuntimeExports.jsx($,{...s})),S=e.memo(e.forwardRef(({children:s,className:r,keyCurrent:n,onChangeCheck:i,disabled:m,style:l,isCheck:a=!0},h)=>{const y=e.useMemo(()=>M.v4(),[]),{isChecks:x,selectKeys:d,disabledKeys:j,color:f}=R(),p=e.useMemo(()=>d?.some(u=>u.id===n.id),[d,n.id]),o=e.useMemo(()=>j?.some(u=>u===n.id),[j,n.id]),c=u=>{o||m||i?.(n,u)},b=e.useMemo(()=>E.twMerge("relative border-b border-divider min-h-[45px] h-[45px] transition-colors duration-200 ease-in-out",H.clsx({"bg-content1 dark:hover:bg-default-100 hover:bg-default-100":!p,"bg-default-100 dark:bg-default-200":p}),r),[p,r]);return t.jsxRuntimeExports.jsxs("tr",{className:b,ref:h,style:l,children:[x&&t.jsxRuntimeExports.jsx("td",{className:"px-2 py-1",children:a&&t.jsxRuntimeExports.jsx(k.Checkbox,{id:y,onChange:u=>c(u.target.checked),checked:p||!1,className:"flex justify-center",disabled:o||m,color:f})}),s]})}));S.displayName="TableBodyRow";const v=e.memo(e.forwardRef(({children:s,className:r,text:n,style:i},m)=>{const l=e.useMemo(()=>E.twMerge("px-2 py-1 text-gray-900 dark:text-default-500 text-sm",r),[r]),a=!s||typeof s=="string"&&s.trim()==="";return t.jsxRuntimeExports.jsx("td",{ref:m,className:l,style:i,children:a?t.jsxRuntimeExports.jsx("p",{className:"line-clamp-1 text-sm",children:n}):s})}));v.displayName="TableBodyColumn";const V=e.memo(({children:s,className:r,dataHeader:n=[],valueCheck:i=!1,disabledCheck:m,onChangeCheck:l,...a})=>{const h=e.useMemo(()=>M.v4(),[]),{isChecks:y,widthAction:x,isActions:d,color:j}=R(),f=o=>{m||l?.(o)},p=e.useMemo(()=>typeof s=="function"?n.map((o,c)=>{const b=s({item:o}),u=o?.id??o.header??c;return e.isValidElement(b)?e.cloneElement(b,{key:u,...a}):null}):e.Children.map(s,(o,c)=>e.isValidElement(o)?e.cloneElement(o,{key:n[c]?.id??n[c]?.header??c,...a}):o),[s,n,a]);return t.jsxRuntimeExports.jsxs("tr",{className:E.twMerge("bg-gray-50 dark:bg-default-100 h-[50px]",r),children:[y&&t.jsxRuntimeExports.jsx(g,{className:"min-w-[40px] w-[40px]",children:t.jsxRuntimeExports.jsx(k.Checkbox,{id:h,onChange:o=>f(o.target.checked),checked:i,className:"flex justify-center",color:j})}),p,d&&t.jsxRuntimeExports.jsx(g,{color:j,style:{minWidth:`${x}px`,width:`${x}px`}})]})});V.displayName="TableHeaderRow";const C=e.memo(({children:s,className:r="",style:n={}})=>{const i=e.useMemo(()=>E.twMerge("table-column-search px-2 border-b border-divider",r),[r]);return t.jsxRuntimeExports.jsx("th",{className:i,style:n,children:s})});C.displayName="TableSearchColumn";const A=e.memo(({children:s,className:r,dataHeader:n=[],...i})=>{const{isChecks:m,widthAction:l,isActions:a}=R(),h=e.useMemo(()=>E.twMerge("bg-gray-50 dark:bg-default-100 h-[50px]",r),[r]),y=e.useMemo(()=>typeof s=="function"?n.map((x,d)=>{const j=s({item:x}),f=x?.id??x?.header??d;return e.isValidElement(j)?e.cloneElement(j,{key:f,...i}):null}):e.Children.map(s,(x,d)=>e.isValidElement(x)?e.cloneElement(x,{key:n[d]?.id??n[d]?.header??d,...i}):x),[s,n,i]);return t.jsxRuntimeExports.jsxs("tr",{className:h,children:[m&&t.jsxRuntimeExports.jsx(C,{className:"min-w-[40px] w-[40px]"}),y,a&&t.jsxRuntimeExports.jsx(C,{style:{minWidth:`${l}px`,width:`${l}px`}})]})});A.displayName="TableSearchRow";const B=({className:s,children:r,classNameContainer:n,...i})=>{const{color:m="primary",disabledKeys:l,isChecks:a=!0,selectKeys:h=[],isActions:y=!0,widthAction:x=100,dataHeader:d}=i,j=e.useMemo(()=>E.twMerge("table-main-container w-full border-collapse table-auto",s),[s]),f=e.useMemo(()=>E.twMerge("max-w-full overflow-x-auto overflow-y-auto bg-content1",n),[n]);return t.jsxRuntimeExports.jsx(T.Provider,{value:{color:m,disabledKeys:l,isChecks:a,selectKeys:h,isActions:y,widthAction:x,totalColumn:d?.length||0},children:t.jsxRuntimeExports.jsx("div",{className:f,children:t.jsxRuntimeExports.jsx(w.AnimatePresence,{children:t.jsxRuntimeExports.jsx(w.LazyMotion,{features:()=>Promise.resolve().then(()=>require("../chunks/index-CL73JQgs.js")).then(p=>p.domAnimation),children:t.jsxRuntimeExports.jsx("table",{className:j,children:e.Children.map(r,p=>e.isValidElement(p)?e.cloneElement(p,{...i}):p)})})})})})},P=Object.assign(B,{Header:N,HeaderRow:V,HeaderColumn:g,SearchRow:A,SearchColumn:C,Body:O,BodyRow:S,BodyColumn:v}),D=({initialDisabledKeys:s=[],initialSelectKey:r=[],initialValueSearch:n={}})=>{const[i,m]=e.useState(r),[l,a]=e.useState(s),[h,y]=e.useState(n),x=e.useCallback(o=>{m(c=>c.some(u=>u.id===o.id)?c.filter(u=>u.id!==o.id):[...c,o])},[]),d=e.useCallback(o=>{m(o)},[]),j=e.useCallback(o=>{a(o)},[]),f=e.useCallback(()=>{m([])},[]),p=e.useCallback((o,c)=>{y(b=>{const u={...b};return c?u[o]=c:delete u[o],u})},[]);return{selectKeys:i,disabledKeys:l,valueSearch:h,handleSelectKeys:d,handleSelectKey:x,handleDisabledKeys:j,handleSetValueSearch:p,handleResetSelectKeys:f}};exports.Table=P;exports.TableHOC=B;exports.useTable=D;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/table/header/table-header.tsx","../../src/components/table/header/table-header-column.tsx","../../src/components/table/context/table.context.tsx","../../src/components/table/hook/use-table-context.tsx","../../src/components/table/body/table-body.tsx","../../src/components/table/body/table-body-row.tsx","../../src/components/table/body/table-body-column.tsx","../../src/components/table/header/table-header-row.tsx","../../src/components/table/search/table-search-column.tsx","../../src/components/table/search/table-search-row.tsx","../../src/components/table/table.tsx","../../src/components/table/hook/use-table.tsx"],"sourcesContent":["import React, { type FC, type ReactElement, isValidElement, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { type TableHeaderProps } from \"../interface/table.interface\";\n\nexport const TableHeader: FC<TableHeaderProps> = React.memo(({ children, className, ...props }) => {\n\tconst mergedClass = useMemo(() => twMerge(\"min-h-[100px] sticky top-0 z-10\", className), [className]);\n\n\tconst clonedChildren = useMemo(\n\t\t() => React.Children.map(children, (child) => (isValidElement(child) ? React.cloneElement(child as ReactElement, { ...props }) : child)),\n\t\t[children, props],\n\t);\n\n\treturn <thead className={mergedClass}>{clonedChildren}</thead>;\n});\nTableHeader.displayName = \"TableHeader\";\n","import React, { type FC, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { type TableHeaderColumnProps } from \"../interface/table.interface\";\nimport { Tooltip } from \"@/components/tooltip\";\n\nexport const TableHeaderColumn: FC<TableHeaderColumnProps> = React.memo(\n\t({ children, className, style = {}, icon = null, text = \"\", size, header }) => {\n\t\tconst mergedClass = useMemo(() => twMerge(\"px-2 border-b border-divider\", className), [className]);\n\n\t\tconst mergedStyle = useMemo(\n\t\t\t() => ({\n\t\t\t\t...style,\n\t\t\t\twidth: size ? `${size}px` : style.width,\n\t\t\t\tminWidth: size ? `${size}px` : style.minWidth,\n\t\t\t}),\n\t\t\t[style, size],\n\t\t);\n\n\t\tconst isChildrenEmpty = !children || (typeof children === \"string\" && children.trim() === \"\");\n\n\t\treturn (\n\t\t\t<th className={mergedClass} style={mergedStyle}>\n\t\t\t\t{isChildrenEmpty ? (\n\t\t\t\t\t<div className=\"flex justify-between items-center gap-x-2 font-medium\">\n\t\t\t\t\t\t<div className=\"flex items-center gap-x-2\">\n\t\t\t\t\t\t\t<p className=\"line-clamp-1 text-xs text-gray-500 dark:text-foreground-500 text-left\">{text}</p>\n\t\t\t\t\t\t\t{header?.information && (\n\t\t\t\t\t\t\t\t<Tooltip content={header?.information || \"\"}>\n\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"text-default-300 cursor-pointer dark:text-foreground-500\"\n\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<g fill=\"none\">\n\t\t\t\t\t\t\t\t\t\t\t<circle cx={12} cy={12} r={10} stroke=\"currentColor\" strokeWidth=\"1.5\" />\n\t\t\t\t\t\t\t\t\t\t\t<path stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth=\"1.5\" d=\"M12 17v-6\" />\n\t\t\t\t\t\t\t\t\t\t\t<circle cx={1} cy={1} r={1} fill=\"currentColor\" transform=\"matrix(1 0 0 -1 11 9)\" />\n\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-1 flex\">{icon}</div>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\tchildren\n\t\t\t\t)}\n\t\t\t</th>\n\t\t);\n\t},\n);\nTableHeaderColumn.displayName = \"TableHeaderColumn\";\n","import { createContext } from \"react\";\n\nimport { type TableContextProps } from \"../interface/table.interface\";\n\nconst initialValues: TableContextProps = {\n\tcolor: \"primary\",\n\tdisabledKeys: [],\n\tisChecks: true,\n\tselectKeys: [],\n\tisActions: true,\n\twidthAction: 100,\n\ttotalColumn: 0,\n};\n\nexport const TableContext = createContext<TableContextProps>(initialValues);\n","import { useContext } from \"react\";\r\nimport { TableContext } from \"../context/table.context\";\r\n\r\nexport const useTableContext = () => {\r\n\treturn useContext(TableContext);\r\n};\r\n","import React, { type ReactElement, isValidElement, memo, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { type TableBodyProps, type TableShareProps } from \"../interface/table.interface\";\n\nfunction TableBodyComponent<TData extends object>({\n\tchildren,\n\tclassName,\n\tdata = [],\n\ttextNoData = \"No hay información\",\n\tisLoading = false,\n\tloadingText = \"Cargando ...\",\n\trowKey,\n\t...props\n}: TableBodyProps<TData>) {\n\t\tconst { totalColumn, isActions, isChecks } = useTableContext();\n\t\tconst total = Number(totalColumn) + Number(isActions) + Number(isChecks);\n\n\t\tconst mergedClass = useMemo(() => twMerge(className), [className]);\n\n\t\tconst renderedRows = useMemo(() => {\n\t\t\tif (typeof children === \"function\") {\n\t\t\t\treturn data.map((el, index) => {\n\t\t\t\t\tconst child = children({ item: el, index });\n\t\t\t\t\tconst keyValue = rowKey ? rowKey(el, index) : index; // fallback\n\n\t\t\t\t\treturn isValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: keyValue,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn React.Children.map(children, (child, index) =>\n\t\t\t\t\tisValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: rowKey ? rowKey(data[index] as TData, index) : index,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: child,\n\t\t\t\t);\n\t\t\t}\n\t\t}, [children, data, props, rowKey]);\n\n\t\tlet fallbackContent: React.ReactNode = null;\n\n\t\tif (isLoading) {\n\t\t\tfallbackContent = (\n\t\t\t\t<tr className=\"border-b border-gray-200\">\n\t\t\t\t\t<td className=\"px-2 py-2.5 w-full\" colSpan={total}>\n\t\t\t\t\t\t<div className=\"flex justify-center relative\">\n\t\t\t\t\t\t\t<p className=\"line-clamp-1 text-sm text-gray-900\">{loadingText}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t);\n\t\t} else if (data.length === 0) {\n\t\t\tfallbackContent = (\n\t\t\t\t<tr className=\"border-b border-gray-200\">\n\t\t\t\t\t<td className=\"px-2 py-2.5 w-full\" colSpan={total}>\n\t\t\t\t\t\t<div className=\"flex justify-center\">\n\t\t\t\t\t\t\t<p className=\"line-clamp-1 text-sm text-gray-900\">{textNoData}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<tbody className={mergedClass}>\n\t\t\t\t{renderedRows}\n\t\t\t\t{fallbackContent}\n\t\t\t</tbody>\n\t\t);\n}\n\nexport const TableBody = memo(\n\t<TData extends object>(props: TableBodyProps<TData>) => {\n\t\treturn <TableBodyComponent {...props} />;\n\t}\n) as <TData extends object>(props: TableBodyProps<TData>) => React.JSX.Element;\n\n// export function TableBody<TData extends object>(props: TableBodyProps<TData>) {\n// \treturn <TableBodyComponent {...props} />;\n// }\n\n","import { twMerge } from \"tailwind-merge\";\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { forwardRef, memo, useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport { type TableBodyRowProps } from \"../interface/table.interface\";\nimport Checkbox from \"@/components/checkbox/checkbox\";\n\nexport const TableBodyRow = memo(\n\tforwardRef<HTMLTableRowElement, TableBodyRowProps>(({ children, className, keyCurrent, onChangeCheck, disabled, style, isCheck = true }, ref) => {\n\t\tconst uui = useMemo(() => uuidv4(), []);\n\t\tconst { isChecks, selectKeys, disabledKeys, color } = useTableContext();\n\n\t\tconst check = useMemo(() => selectKeys?.some((el) => el.id === keyCurrent.id), [selectKeys, keyCurrent.id]);\n\n\t\tconst disabledCheck = useMemo(() => disabledKeys?.some((el) => el === keyCurrent.id), [disabledKeys, keyCurrent.id]);\n\n\t\tconst handleChange = (value: boolean) => {\n\t\t\tif (disabledCheck || disabled) return;\n\t\t\tonChangeCheck?.(keyCurrent, value);\n\t\t};\n\n\t\tconst rowClass = useMemo(\n\t\t\t() =>\n\t\t\t\ttwMerge(\n\t\t\t\t\t\"relative border-b border-divider min-h-[45px] h-[45px] transition-colors duration-200 ease-in-out\",\n\t\t\t\t\tclsx({\n\t\t\t\t\t\t\"bg-content1 dark:hover:bg-default-100 hover:bg-default-100\": !check,\n\t\t\t\t\t\t\"bg-default-100 dark:bg-default-200\": check,\n\t\t\t\t\t}),\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t[check, className],\n\t\t);\n\n\t\treturn (\n\t\t\t<tr className={rowClass} ref={ref} style={style}>\n\t\t\t\t{isChecks && (\n\t\t\t\t\t<td className=\"px-2 py-1\">\n\t\t\t\t\t\t{isCheck && (\n\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\tid={uui}\n\t\t\t\t\t\t\t\tonChange={(e) => handleChange(e.target.checked)}\n\t\t\t\t\t\t\t\tchecked={check || false}\n\t\t\t\t\t\t\t\tclassName=\"flex justify-center\"\n\t\t\t\t\t\t\t\tdisabled={disabledCheck || disabled}\n\t\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</td>\n\t\t\t\t)}\n\t\t\t\t{children}\n\t\t\t</tr>\n\t\t);\n\t}),\n);\n\nTableBodyRow.displayName = \"TableBodyRow\";\n","import { forwardRef, memo, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { type TableBodyColumnProps } from \"../interface/table.interface\";\n\nexport const TableBodyColumn = memo(\n\tforwardRef<HTMLTableCellElement, TableBodyColumnProps>(({ children, className, text , style}, ref) => {\n\t\tconst mergedClass = useMemo(\n\t\t\t() => twMerge(\"px-2 py-1 text-gray-900 dark:text-default-500 text-sm\", className),\n\t\t\t[className]\n\t\t);\n\n\t\tconst isChildrenEmpty = !children || (typeof children === \"string\" && children.trim() === \"\");\n\n\t\treturn (\n\t\t\t<td ref={ref} className={mergedClass} style={style}>\n\t\t\t\t{isChildrenEmpty ? (\n\t\t\t\t\t<p className=\"line-clamp-1 text-sm\">{text}</p>\n\t\t\t\t) : (\n\t\t\t\t\tchildren\n\t\t\t\t)}\n\t\t\t</td>\n\t\t);\n\t})\n);\n\nTableBodyColumn.displayName = \"TableBodyColumn\";\n","import React, { type FC, type ReactElement, isValidElement, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { type TableHeaderRowProps, type TableShareProps } from \"../interface/table.interface\";\n\nimport { TableHeaderColumn } from \"./table-header-column\";\nimport Checkbox from \"@/components/checkbox/checkbox\";\n\nexport const TableHeaderRow: FC<TableHeaderRowProps> = React.memo(\n\t({ children, className, dataHeader = [], valueCheck = false, disabledCheck, onChangeCheck, ...props }) => {\n\t\tconst uui = useMemo(() => uuidv4(), []);\n\t\tconst { isChecks, widthAction, isActions, color } = useTableContext();\n\n\t\tconst handleChange = (value: boolean) => {\n\t\t\tif (disabledCheck) return;\n\t\t\tonChangeCheck?.(value);\n\t\t};\n\n\t\tconst headerChildren = useMemo(() => {\n\t\t\tif (typeof children === \"function\") {\n\t\t\t\treturn dataHeader.map((el, index) => {\n\t\t\t\t\tconst child = children({ item: el });\n\n\t\t\t\t\tconst keyValue = (el as any)?.id ?? el.header ?? index;\n\n\t\t\t\t\treturn isValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: keyValue,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t })\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn React.Children.map(children, (child, index) =>\n\t\t\t\t\tisValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: (dataHeader[index] as any)?.id ?? dataHeader[index]?.header ?? index,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t })\n\t\t\t\t\t\t: child,\n\t\t\t\t);\n\t\t\t}\n\t\t}, [children, dataHeader, props]);\n\n\t\treturn (\n\t\t\t<tr className={twMerge(\"bg-gray-50 dark:bg-default-100 h-[50px]\", className)}>\n\t\t\t\t{isChecks && (\n\t\t\t\t\t<TableHeaderColumn className=\"min-w-[40px] w-[40px]\">\n\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\tid={uui}\n\t\t\t\t\t\t\tonChange={(e) => handleChange(e.target.checked)}\n\t\t\t\t\t\t\tchecked={valueCheck}\n\t\t\t\t\t\t\tclassName=\"flex justify-center\"\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TableHeaderColumn>\n\t\t\t\t)}\n\n\t\t\t\t{headerChildren}\n\n\t\t\t\t{isActions && <TableHeaderColumn color={color} style={{ minWidth: `${widthAction}px`, width: `${widthAction}px` }} />}\n\t\t\t</tr>\n\t\t);\n\t},\n);\nTableHeaderRow.displayName = \"TableHeaderRow\";\n","import React, { type FC, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { type TableSearchColumnProps } from \"../interface/table.interface\";\n\nexport const TableSearchColumn: FC<TableSearchColumnProps> = React.memo(({ children, className = \"\", style = {} }) => {\n\tconst mergedClass = useMemo(() => twMerge(\"table-column-search px-2 border-b border-divider\", className), [className]);\n\n\treturn (\n\t\t<th className={mergedClass} style={style}>\n\t\t\t{children}\n\t\t</th>\n\t);\n});\nTableSearchColumn.displayName = \"TableSearchColumn\";\n","import React, { type FC, type ReactElement, isValidElement, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { type TableSearchRowProps, type TableShareProps } from \"../interface/table.interface\";\n\nimport { TableSearchColumn } from \"./table-search-column\";\n\nexport const TableSearchRow: FC<TableSearchRowProps> = React.memo(({ children, className, dataHeader = [], ...props }) => {\n\tconst { isChecks, widthAction, isActions } = useTableContext();\n\n\tconst mergedClass = useMemo(() => twMerge(\"bg-gray-50 dark:bg-default-100 h-[50px]\", className), [className]);\n\n\tconst renderedChildren = useMemo(() => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn dataHeader.map((el, index) => {\n\t\t\t\tconst child = children({ item: el });\n\t\t\t\tconst keyValue = (el as any)?.id ?? (el as any)?.header ?? index;\n\t\t\t\treturn isValidElement(child)\n\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\tkey: keyValue,\n\t\t\t\t\t\t\t...props,\n\t\t\t\t })\n\t\t\t\t\t: null;\n\t\t\t});\n\t\t} else {\n\t\t\treturn React.Children.map(children, (child, index) =>\n\t\t\t\tisValidElement(child)\n\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\tkey: (dataHeader[index] as any)?.id ?? (dataHeader[index] as any)?.header ?? index,\n\t\t\t\t\t\t\t...props,\n\t\t\t\t })\n\t\t\t\t\t: child,\n\t\t\t);\n\t\t}\n\t}, [children, dataHeader, props]);\n\n\treturn (\n\t\t<tr className={mergedClass}>\n\t\t\t{isChecks && <TableSearchColumn className=\"min-w-[40px] w-[40px]\" />}\n\t\t\t{renderedChildren}\n\t\t\t{isActions && <TableSearchColumn style={{ minWidth: `${widthAction}px`, width: `${widthAction}px` }} />}\n\t\t</tr>\n\t);\n});\nTableSearchRow.displayName = \"TableSearchRow\";\n","import { TableHeader } from \"./header/table-header\";\nimport { TableHeaderColumn } from \"./header/table-header-column\";\nimport { twMerge } from \"tailwind-merge\";\nimport { TableBody } from \"./body/table-body\";\nimport { TableBodyRow } from \"./body/table-body-row\";\nimport { TableBodyColumn } from \"./body/table-body-column\";\nimport { TableContext } from \"./context/table.context\";\nimport { TableHeaderRow } from \"./header/table-header-row\";\nimport { TableSearchRow } from \"./search/table-search-row\";\nimport { TableSearchColumn } from \"./search/table-search-column\";\nimport { type TableProps } from \"./interface/table.interface\";\nimport React, { type ReactElement, isValidElement, useMemo } from \"react\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { LazyMotion } from \"framer-motion\";\n\nexport const TableHOC = ({ className, children, classNameContainer, ...props }: TableProps) => {\n\tconst { color = \"primary\", disabledKeys, isChecks = true, selectKeys = [], isActions = true, widthAction = 100, dataHeader } = props;\n\n\tconst tableClass = useMemo(() => twMerge(\"table-main-container w-full border-collapse table-auto\", className), [className]);\n\tconst containerClass = useMemo(() => twMerge(\"max-w-full overflow-x-auto overflow-y-auto bg-content1\", classNameContainer), [classNameContainer]);\n\n\treturn (\n\t\t<TableContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcolor,\n\t\t\t\tdisabledKeys,\n\t\t\t\tisChecks,\n\t\t\t\tselectKeys,\n\t\t\t\tisActions,\n\t\t\t\twidthAction,\n\t\t\t\ttotalColumn: dataHeader?.length || 0,\n\t\t\t}}\n\t\t>\n\t\t\t<div className={containerClass}>\n\t\t\t\t<AnimatePresence>\n\t\t\t\t\t<LazyMotion features={() => import(\"framer-motion\").then((res) => res.domAnimation)}>\n\t\t\t\t\t\t<table className={tableClass}>\n\t\t\t\t\t\t\t{React.Children.map(children, (child) =>\n\t\t\t\t\t\t\t\tisValidElement(child)\n\t\t\t\t\t\t\t\t\t? React.cloneElement(child as ReactElement, {\n\t\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t\t\t: child,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t</AnimatePresence>\n\t\t\t</div>\n\t\t</TableContext.Provider>\n\t);\n};\n\nexport const Table = Object.assign(TableHOC, {\n\tHeader: TableHeader,\n\n\tHeaderRow: TableHeaderRow,\n\tHeaderColumn: TableHeaderColumn,\n\n\tSearchRow: TableSearchRow,\n\tSearchColumn: TableSearchColumn,\n\n\tBody: TableBody,\n\n\tBodyRow: TableBodyRow,\n\tBodyColumn: TableBodyColumn,\n});\n","import { useCallback, useState } from \"react\";\n\nimport { type TableKeyCurrent, type TableValueSearchProps } from \"../interface/table-share.interface\";\nimport { type TableHookProps } from \"../interface/table.interface\";\n\ninterface TableProps {\n\tinitialSelectKey?: TableKeyCurrent[];\n\tinitialDisabledKeys?: string[];\n\tinitialValueSearch?: TableValueSearchProps;\n}\n\nexport const useTable = ({ initialDisabledKeys = [], initialSelectKey = [], initialValueSearch = {} }: TableProps): TableHookProps => {\n\tconst [selectKeys, setSelectKeys] = useState<TableKeyCurrent[]>(initialSelectKey);\n\tconst [disabledKeys, setDisabledKeys] = useState<string[]>(initialDisabledKeys);\n\tconst [valueSearch, setValueSearch] = useState<TableValueSearchProps>(initialValueSearch);\n\n\tconst handleSelectKey = useCallback((value: TableKeyCurrent) => {\n\t\tsetSelectKeys((prev) => {\n\t\t\tconst exists = prev.some((el) => el.id === value.id);\n\n\t\t\treturn exists ? prev.filter((el) => el.id !== value.id) : [...prev, value];\n\t\t});\n\t}, []);\n\n\tconst handleSelectKeys = useCallback((value: TableKeyCurrent[]) => {\n\t\tsetSelectKeys(value);\n\t}, []);\n\n\tconst handleDisabledKeys = useCallback((value: string[]) => {\n\t\tsetDisabledKeys(value);\n\t}, []);\n\n const handleResetSelectKeys = useCallback(() => {\n setSelectKeys([]);\n }, []);\n\n\tconst handleSetValueSearch = useCallback((key: string, value: string) => {\n\t\tsetValueSearch((prev) => {\n\t\t\tconst newState = { ...prev };\n\n\t\t\tif (value) newState[key] = value;\n\t\t\telse delete newState[key];\n\n\t\t\treturn newState;\n\t\t});\n\t}, []);\n\n\treturn {\n\t\tselectKeys,\n\t\tdisabledKeys,\n\t\tvalueSearch,\n\t\thandleSelectKeys,\n\t\thandleSelectKey,\n\t\thandleDisabledKeys,\n\t\thandleSetValueSearch,\n handleResetSelectKeys,\n\t};\n};\n"],"names":["TableHeader","React","children","className","props","mergedClass","useMemo","twMerge","clonedChildren","child","isValidElement","jsx","TableHeaderColumn","style","icon","text","size","header","mergedStyle","isChildrenEmpty","jsxs","Tooltip","initialValues","TableContext","createContext","useTableContext","useContext","TableBodyComponent","data","textNoData","isLoading","loadingText","rowKey","totalColumn","isActions","isChecks","total","renderedRows","el","index","keyValue","fallbackContent","TableBody","memo","TableBodyRow","forwardRef","keyCurrent","onChangeCheck","disabled","isCheck","ref","uui","uuidv4","selectKeys","disabledKeys","color","check","disabledCheck","handleChange","value","rowClass","clsx","Checkbox","e","TableBodyColumn","TableHeaderRow","dataHeader","valueCheck","widthAction","headerChildren","TableSearchColumn","TableSearchRow","renderedChildren","TableHOC","classNameContainer","tableClass","containerClass","AnimatePresence","LazyMotion","res","Table","useTable","initialDisabledKeys","initialSelectKey","initialValueSearch","setSelectKeys","useState","setDisabledKeys","valueSearch","setValueSearch","handleSelectKey","useCallback","prev","handleSelectKeys","handleDisabledKeys","handleResetSelectKeys","handleSetValueSearch","key","newState"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/table/header/table-header.tsx","../../src/components/table/header/table-header-column.tsx","../../src/components/table/context/table.context.tsx","../../src/components/table/hook/use-table-context.tsx","../../src/components/table/body/table-body.tsx","../../src/components/table/body/table-body-row.tsx","../../src/components/table/body/table-body-column.tsx","../../src/components/table/header/table-header-row.tsx","../../src/components/table/search/table-search-column.tsx","../../src/components/table/search/table-search-row.tsx","../../src/components/table/table.tsx","../../src/components/table/hook/use-table.tsx"],"sourcesContent":["import React, { type FC, type ReactElement, isValidElement, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { type TableHeaderProps } from \"../interface/table.interface\";\n\nexport const TableHeader: FC<TableHeaderProps> = React.memo(({ children, className, ...props }) => {\n\tconst mergedClass = useMemo(() => twMerge(\"min-h-[100px] sticky top-0 z-10\", className), [className]);\n\n\tconst clonedChildren = useMemo(\n\t\t() => React.Children.map(children, (child) => (isValidElement(child) ? React.cloneElement(child as ReactElement, { ...props }) : child)),\n\t\t[children, props],\n\t);\n\n\treturn <thead className={mergedClass}>{clonedChildren}</thead>;\n});\nTableHeader.displayName = \"TableHeader\";\n","import React, { type FC, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { type TableHeaderColumnProps } from \"../interface/table.interface\";\nimport { Tooltip } from \"@/components/tooltip\";\n\nexport const TableHeaderColumn: FC<TableHeaderColumnProps> = React.memo(\n\t({ children, className, style = {}, icon = null, text = \"\", size, header }) => {\n\t\tconst mergedClass = useMemo(() => twMerge(\"px-2 border-b border-divider\", className), [className]);\n\n\t\tconst mergedStyle = useMemo(\n\t\t\t() => ({\n\t\t\t\t...style,\n\t\t\t\twidth: size ? `${size}px` : style.width,\n\t\t\t\tminWidth: size ? `${size}px` : style.minWidth,\n\t\t\t}),\n\t\t\t[style, size],\n\t\t);\n\n\t\tconst isChildrenEmpty = !children || (typeof children === \"string\" && children.trim() === \"\");\n\n\t\treturn (\n\t\t\t<th className={mergedClass} style={mergedStyle}>\n\t\t\t\t{isChildrenEmpty ? (\n\t\t\t\t\t<div className=\"flex justify-between items-center gap-x-2 font-medium\">\n\t\t\t\t\t\t<div className=\"flex items-center gap-x-2\">\n\t\t\t\t\t\t\t<p className=\"line-clamp-1 text-xs text-gray-500 dark:text-foreground-500 text-left\">{text}</p>\n\t\t\t\t\t\t\t{header?.information && (\n\t\t\t\t\t\t\t\t<Tooltip content={header?.information || \"\"}>\n\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"text-default-300 cursor-pointer dark:text-foreground-500\"\n\t\t\t\t\t\t\t\t\t\twidth={16}\n\t\t\t\t\t\t\t\t\t\theight={16}\n\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<g fill=\"none\">\n\t\t\t\t\t\t\t\t\t\t\t<circle cx={12} cy={12} r={10} stroke=\"currentColor\" strokeWidth=\"1.5\" />\n\t\t\t\t\t\t\t\t\t\t\t<path stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth=\"1.5\" d=\"M12 17v-6\" />\n\t\t\t\t\t\t\t\t\t\t\t<circle cx={1} cy={1} r={1} fill=\"currentColor\" transform=\"matrix(1 0 0 -1 11 9)\" />\n\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-1 flex\">{icon}</div>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\tchildren\n\t\t\t\t)}\n\t\t\t</th>\n\t\t);\n\t},\n);\nTableHeaderColumn.displayName = \"TableHeaderColumn\";\n","import { createContext } from \"react\";\n\nimport { type TableContextProps } from \"../interface/table.interface\";\n\nconst initialValues: TableContextProps = {\n\tcolor: \"primary\",\n\tdisabledKeys: [],\n\tisChecks: true,\n\tselectKeys: [],\n\tisActions: true,\n\twidthAction: 100,\n\ttotalColumn: 0,\n};\n\nexport const TableContext = createContext<TableContextProps>(initialValues);\n","import { useContext } from \"react\";\r\nimport { TableContext } from \"../context/table.context\";\r\n\r\nexport const useTableContext = () => {\r\n\treturn useContext(TableContext);\r\n};\r\n","import React, { type ReactElement, isValidElement, memo, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { type TableBodyProps, type TableShareProps } from \"../interface/table.interface\";\n\nfunction TableBodyComponent<TData extends object>({\n\tchildren,\n\tclassName,\n\tdata = [],\n\ttextNoData = \"No hay información\",\n\tisLoading = false,\n\tloadingText = \"Cargando ...\",\n\trowKey,\n\t...props\n}: TableBodyProps<TData>) {\n\t\tconst { totalColumn, isActions, isChecks } = useTableContext();\n\t\tconst total = Number(totalColumn) + Number(isActions) + Number(isChecks);\n\n\t\tconst mergedClass = useMemo(() => twMerge(className), [className]);\n\n\t\tconst renderedRows = useMemo(() => {\n\t\t\tif (typeof children === \"function\") {\n\t\t\t\treturn data.map((el, index) => {\n\t\t\t\t\tconst child = children({ item: el, index });\n\t\t\t\t\tconst keyValue = rowKey ? rowKey(el, index) : index; // fallback\n\n\t\t\t\t\treturn isValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: keyValue,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn React.Children.map(children, (child, index) =>\n\t\t\t\t\tisValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: rowKey ? rowKey(data[index] as TData, index) : index,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: child,\n\t\t\t\t);\n\t\t\t}\n\t\t}, [children, data, props, rowKey]);\n\n\t\tlet fallbackContent: React.ReactNode = null;\n\n\t\tif (isLoading) {\n\t\t\tfallbackContent = (\n\t\t\t\t<tr className=\"border-b border-gray-200\">\n\t\t\t\t\t<td className=\"px-2 py-2.5 w-full\" colSpan={total}>\n\t\t\t\t\t\t<div className=\"flex justify-center relative\">\n\t\t\t\t\t\t\t<p className=\"line-clamp-1 text-sm text-gray-900\">{loadingText}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t);\n\t\t} else if (data.length === 0) {\n\t\t\tfallbackContent = (\n\t\t\t\t<tr className=\"border-b border-gray-200\">\n\t\t\t\t\t<td className=\"px-2 py-2.5 w-full\" colSpan={total}>\n\t\t\t\t\t\t<div className=\"flex justify-center\">\n\t\t\t\t\t\t\t<p className=\"line-clamp-1 text-sm text-gray-900\">{textNoData}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<tbody className={mergedClass}>\n\t\t\t\t{renderedRows}\n\t\t\t\t{fallbackContent}\n\t\t\t</tbody>\n\t\t);\n}\n\nexport const TableBody = memo(\n\t<TData extends object>(props: TableBodyProps<TData>) => {\n\t\treturn <TableBodyComponent {...props} />;\n\t}\n) as <TData extends object>(props: TableBodyProps<TData>) => React.JSX.Element;\n\n// export function TableBody<TData extends object>(props: TableBodyProps<TData>) {\n// \treturn <TableBodyComponent {...props} />;\n// }\n\n","import { twMerge } from \"tailwind-merge\";\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { forwardRef, memo, useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport { type TableBodyRowProps } from \"../interface/table.interface\";\nimport Checkbox from \"@/components/checkbox/checkbox\";\n\nexport const TableBodyRow = memo(\n\tforwardRef<HTMLTableRowElement, TableBodyRowProps>(({ children, className, keyCurrent, onChangeCheck, disabled, style, isCheck = true }, ref) => {\n\t\tconst uui = useMemo(() => uuidv4(), []);\n\t\tconst { isChecks, selectKeys, disabledKeys, color } = useTableContext();\n\n\t\tconst check = useMemo(() => selectKeys?.some((el) => el.id === keyCurrent.id), [selectKeys, keyCurrent.id]);\n\n\t\tconst disabledCheck = useMemo(() => disabledKeys?.some((el) => el === keyCurrent.id), [disabledKeys, keyCurrent.id]);\n\n\t\tconst handleChange = (value: boolean) => {\n\t\t\tif (disabledCheck || disabled) return;\n\t\t\tonChangeCheck?.(keyCurrent, value);\n\t\t};\n\n\t\tconst rowClass = useMemo(\n\t\t\t() =>\n\t\t\t\ttwMerge(\n\t\t\t\t\t\"relative border-b border-divider min-h-[45px] h-[45px] transition-colors duration-200 ease-in-out\",\n\t\t\t\t\tclsx({\n\t\t\t\t\t\t\"bg-content1 dark:hover:bg-default-100 hover:bg-default-100\": !check,\n\t\t\t\t\t\t\"bg-default-100 dark:bg-default-200\": check,\n\t\t\t\t\t}),\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t[check, className],\n\t\t);\n\n\t\treturn (\n\t\t\t<tr className={rowClass} ref={ref} style={style}>\n\t\t\t\t{isChecks && (\n\t\t\t\t\t<td className=\"px-2 py-1\">\n\t\t\t\t\t\t{isCheck && (\n\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\tid={uui}\n\t\t\t\t\t\t\t\tonChange={(e) => handleChange(e.target.checked)}\n\t\t\t\t\t\t\t\tchecked={check || false}\n\t\t\t\t\t\t\t\tclassName=\"flex justify-center\"\n\t\t\t\t\t\t\t\tdisabled={disabledCheck || disabled}\n\t\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</td>\n\t\t\t\t)}\n\t\t\t\t{children}\n\t\t\t</tr>\n\t\t);\n\t}),\n);\n\nTableBodyRow.displayName = \"TableBodyRow\";\n","import { forwardRef, memo, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { type TableBodyColumnProps } from \"../interface/table.interface\";\n\nexport const TableBodyColumn = memo(\n\tforwardRef<HTMLTableCellElement, TableBodyColumnProps>(({ children, className, text , style}, ref) => {\n\t\tconst mergedClass = useMemo(\n\t\t\t() => twMerge(\"px-2 py-1 text-gray-900 dark:text-default-500 text-sm\", className),\n\t\t\t[className]\n\t\t);\n\n\t\tconst isChildrenEmpty = !children || (typeof children === \"string\" && children.trim() === \"\");\n\n\t\treturn (\n\t\t\t<td ref={ref} className={mergedClass} style={style}>\n\t\t\t\t{isChildrenEmpty ? (\n\t\t\t\t\t<p className=\"line-clamp-1 text-sm\">{text}</p>\n\t\t\t\t) : (\n\t\t\t\t\tchildren\n\t\t\t\t)}\n\t\t\t</td>\n\t\t);\n\t})\n);\n\nTableBodyColumn.displayName = \"TableBodyColumn\";\n","import React, { type FC, type ReactElement, isValidElement, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { type TableHeaderRowProps, type TableShareProps } from \"../interface/table.interface\";\n\nimport { TableHeaderColumn } from \"./table-header-column\";\nimport Checkbox from \"@/components/checkbox/checkbox\";\n\nexport const TableHeaderRow: FC<TableHeaderRowProps> = React.memo(\n\t({ children, className, dataHeader = [], valueCheck = false, disabledCheck, onChangeCheck, ...props }) => {\n\t\tconst uui = useMemo(() => uuidv4(), []);\n\t\tconst { isChecks, widthAction, isActions, color } = useTableContext();\n\n\t\tconst handleChange = (value: boolean) => {\n\t\t\tif (disabledCheck) return;\n\t\t\tonChangeCheck?.(value);\n\t\t};\n\n\t\tconst headerChildren = useMemo(() => {\n\t\t\tif (typeof children === \"function\") {\n\t\t\t\treturn dataHeader.map((el, index) => {\n\t\t\t\t\tconst child = children({ item: el });\n\n\t\t\t\t\tconst keyValue = (el as any)?.id ?? el.header ?? index;\n\n\t\t\t\t\treturn isValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: keyValue,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t })\n\t\t\t\t\t\t: null;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn React.Children.map(children, (child, index) =>\n\t\t\t\t\tisValidElement(child)\n\t\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\t\tkey: (dataHeader[index] as any)?.id ?? dataHeader[index]?.header ?? index,\n\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t })\n\t\t\t\t\t\t: child,\n\t\t\t\t);\n\t\t\t}\n\t\t}, [children, dataHeader, props]);\n\n\t\treturn (\n\t\t\t<tr className={twMerge(\"bg-gray-50 dark:bg-default-100 h-[50px]\", className)}>\n\t\t\t\t{isChecks && (\n\t\t\t\t\t<TableHeaderColumn className=\"min-w-[40px] w-[40px]\">\n\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\tid={uui}\n\t\t\t\t\t\t\tonChange={(e) => handleChange(e.target.checked)}\n\t\t\t\t\t\t\tchecked={valueCheck}\n\t\t\t\t\t\t\tclassName=\"flex justify-center\"\n\t\t\t\t\t\t\tcolor={color}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TableHeaderColumn>\n\t\t\t\t)}\n\n\t\t\t\t{headerChildren}\n\n\t\t\t\t{isActions && <TableHeaderColumn color={color} style={{ minWidth: `${widthAction}px`, width: `${widthAction}px` }} />}\n\t\t\t</tr>\n\t\t);\n\t},\n);\nTableHeaderRow.displayName = \"TableHeaderRow\";\n","import React, { type FC, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { type TableSearchColumnProps } from \"../interface/table.interface\";\n\nexport const TableSearchColumn: FC<TableSearchColumnProps> = React.memo(({ children, className = \"\", style = {} }) => {\n\tconst mergedClass = useMemo(() => twMerge(\"table-column-search px-2 border-b border-divider\", className), [className]);\n\n\treturn (\n\t\t<th className={mergedClass} style={style}>\n\t\t\t{children}\n\t\t</th>\n\t);\n});\nTableSearchColumn.displayName = \"TableSearchColumn\";\n","import React, { type FC, type ReactElement, isValidElement, useMemo } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport { useTableContext } from \"../hook/use-table-context\";\nimport { type TableSearchRowProps, type TableShareProps } from \"../interface/table.interface\";\n\nimport { TableSearchColumn } from \"./table-search-column\";\n\nexport const TableSearchRow: FC<TableSearchRowProps> = React.memo(({ children, className, dataHeader = [], ...props }) => {\n\tconst { isChecks, widthAction, isActions } = useTableContext();\n\n\tconst mergedClass = useMemo(() => twMerge(\"bg-gray-50 dark:bg-default-100 h-[50px]\", className), [className]);\n\n\tconst renderedChildren = useMemo(() => {\n\t\tif (typeof children === \"function\") {\n\t\t\treturn dataHeader.map((el, index) => {\n\t\t\t\tconst child = children({ item: el });\n\t\t\t\tconst keyValue = (el as any)?.id ?? (el as any)?.header ?? index;\n\t\t\t\treturn isValidElement(child)\n\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\tkey: keyValue,\n\t\t\t\t\t\t\t...props,\n\t\t\t\t })\n\t\t\t\t\t: null;\n\t\t\t});\n\t\t} else {\n\t\t\treturn React.Children.map(children, (child, index) =>\n\t\t\t\tisValidElement(child)\n\t\t\t\t\t? React.cloneElement(child as ReactElement<TableShareProps>, {\n\t\t\t\t\t\t\tkey: (dataHeader[index] as any)?.id ?? (dataHeader[index] as any)?.header ?? index,\n\t\t\t\t\t\t\t...props,\n\t\t\t\t })\n\t\t\t\t\t: child,\n\t\t\t);\n\t\t}\n\t}, [children, dataHeader, props]);\n\n\treturn (\n\t\t<tr className={mergedClass}>\n\t\t\t{isChecks && <TableSearchColumn className=\"min-w-[40px] w-[40px]\" />}\n\t\t\t{renderedChildren}\n\t\t\t{isActions && <TableSearchColumn style={{ minWidth: `${widthAction}px`, width: `${widthAction}px` }} />}\n\t\t</tr>\n\t);\n});\nTableSearchRow.displayName = \"TableSearchRow\";\n","import { TableHeader } from \"./header/table-header\";\nimport { TableHeaderColumn } from \"./header/table-header-column\";\nimport { twMerge } from \"tailwind-merge\";\nimport { TableBody } from \"./body/table-body\";\nimport { TableBodyRow } from \"./body/table-body-row\";\nimport { TableBodyColumn } from \"./body/table-body-column\";\nimport { TableContext } from \"./context/table.context\";\nimport { TableHeaderRow } from \"./header/table-header-row\";\nimport { TableSearchRow } from \"./search/table-search-row\";\nimport { TableSearchColumn } from \"./search/table-search-column\";\nimport { type TableProps } from \"./interface/table.interface\";\nimport React, { type ReactElement, isValidElement, useMemo } from \"react\";\nimport { AnimatePresence } from \"framer-motion\";\nimport { LazyMotion } from \"framer-motion\";\n\nexport const TableHOC = ({ className, children, classNameContainer, ...props }: TableProps) => {\n\tconst { color = \"primary\", disabledKeys, isChecks = true, selectKeys = [], isActions = true, widthAction = 100, dataHeader } = props;\n\n\tconst tableClass = useMemo(() => twMerge(\"table-main-container w-full border-collapse table-auto\", className), [className]);\n\tconst containerClass = useMemo(() => twMerge(\"max-w-full overflow-x-auto overflow-y-auto bg-content1\", classNameContainer), [classNameContainer]);\n\n\treturn (\n\t\t<TableContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcolor,\n\t\t\t\tdisabledKeys,\n\t\t\t\tisChecks,\n\t\t\t\tselectKeys,\n\t\t\t\tisActions,\n\t\t\t\twidthAction,\n\t\t\t\ttotalColumn: dataHeader?.length || 0,\n\t\t\t}}\n\t\t>\n\t\t\t<div className={containerClass}>\n\t\t\t\t<AnimatePresence>\n\t\t\t\t\t<LazyMotion features={() => import(\"framer-motion\").then((res) => res.domAnimation)}>\n\t\t\t\t\t\t<table className={tableClass}>\n\t\t\t\t\t\t\t{React.Children.map(children, (child) =>\n\t\t\t\t\t\t\t\tisValidElement(child)\n\t\t\t\t\t\t\t\t\t? React.cloneElement(child as ReactElement, {\n\t\t\t\t\t\t\t\t\t\t\t...props,\n\t\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t\t\t: child,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t</AnimatePresence>\n\t\t\t</div>\n\t\t</TableContext.Provider>\n\t);\n};\n\nexport const Table = Object.assign(TableHOC, {\n\tHeader: TableHeader,\n\n\tHeaderRow: TableHeaderRow,\n\tHeaderColumn: TableHeaderColumn,\n\n\tSearchRow: TableSearchRow,\n\tSearchColumn: TableSearchColumn,\n\n\tBody: TableBody,\n\n\tBodyRow: TableBodyRow,\n\tBodyColumn: TableBodyColumn,\n});\n","import { useCallback, useState } from \"react\";\n\nimport { type TableKeyCurrent, type TableValueSearchProps } from \"../interface/table-share.interface\";\nimport { type TableHookProps } from \"../interface/table.interface\";\n\ninterface TableProps {\n\tinitialSelectKey?: TableKeyCurrent[];\n\tinitialDisabledKeys?: string[];\n\tinitialValueSearch?: TableValueSearchProps;\n}\n\nexport const useTable = ({ initialDisabledKeys = [], initialSelectKey = [], initialValueSearch = {} }: TableProps): TableHookProps => {\n\tconst [selectKeys, setSelectKeys] = useState<TableKeyCurrent[]>(initialSelectKey);\n\tconst [disabledKeys, setDisabledKeys] = useState<string[]>(initialDisabledKeys);\n\tconst [valueSearch, setValueSearch] = useState<TableValueSearchProps>(initialValueSearch);\n\n\tconst handleSelectKey = useCallback((value: TableKeyCurrent) => {\n\t\tsetSelectKeys((prev) => {\n\t\t\tconst exists = prev.some((el) => el.id === value.id);\n\n\t\t\treturn exists ? prev.filter((el) => el.id !== value.id) : [...prev, value];\n\t\t});\n\t}, []);\n\n\tconst handleSelectKeys = useCallback((value: TableKeyCurrent[]) => {\n\t\tsetSelectKeys(value);\n\t}, []);\n\n\tconst handleDisabledKeys = useCallback((value: string[]) => {\n\t\tsetDisabledKeys(value);\n\t}, []);\n\n const handleResetSelectKeys = useCallback(() => {\n setSelectKeys([]);\n }, []);\n\n\tconst handleSetValueSearch = useCallback((key: string, value: string) => {\n\t\tsetValueSearch((prev) => {\n\t\t\tconst newState = { ...prev };\n\n\t\t\tif (value) newState[key] = value;\n\t\t\telse delete newState[key];\n\n\t\t\treturn newState;\n\t\t});\n\t}, []);\n\n\treturn {\n\t\tselectKeys,\n\t\tdisabledKeys,\n\t\tvalueSearch,\n\t\thandleSelectKeys,\n\t\thandleSelectKey,\n\t\thandleDisabledKeys,\n\t\thandleSetValueSearch,\n handleResetSelectKeys,\n\t};\n};\n"],"names":["TableHeader","React","children","className","props","mergedClass","useMemo","twMerge","clonedChildren","child","isValidElement","jsx","TableHeaderColumn","style","icon","text","size","header","mergedStyle","isChildrenEmpty","jsxs","Tooltip","initialValues","TableContext","createContext","useTableContext","useContext","TableBodyComponent","data","textNoData","isLoading","loadingText","rowKey","totalColumn","isActions","isChecks","total","renderedRows","el","index","keyValue","fallbackContent","TableBody","memo","TableBodyRow","forwardRef","keyCurrent","onChangeCheck","disabled","isCheck","ref","uui","uuidv4","selectKeys","disabledKeys","color","check","disabledCheck","handleChange","value","rowClass","clsx","Checkbox","e","TableBodyColumn","TableHeaderRow","dataHeader","valueCheck","widthAction","headerChildren","TableSearchColumn","TableSearchRow","renderedChildren","TableHOC","classNameContainer","tableClass","containerClass","AnimatePresence","LazyMotion","res","Table","useTable","initialDisabledKeys","initialSelectKey","initialValueSearch","setSelectKeys","useState","setDisabledKeys","valueSearch","setValueSearch","handleSelectKey","useCallback","prev","handleSelectKeys","handleDisabledKeys","handleResetSelectKeys","handleSetValueSearch","key","newState"],"mappings":"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"}