siesa-ui-kit 1.0.104 → 1.0.105
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.
- package/dist/components/FileUploaderGallery/FileUploaderGalleryGlobal.d.ts.map +1 -1
- package/dist/components/FileUploaderGallery/useFileUploaderGallery.d.ts +4 -16
- package/dist/components/FileUploaderGallery/useFileUploaderGallery.d.ts.map +1 -1
- package/dist/siesa-ui-kit.cjs +1 -1
- package/dist/siesa-ui-kit.cjs.map +1 -1
- package/dist/siesa-ui-kit.mjs +28 -6
- package/dist/siesa-ui-kit.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploaderGalleryGlobal.d.ts","sourceRoot":"","sources":["../../../src/components/FileUploaderGallery/FileUploaderGalleryGlobal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"FileUploaderGalleryGlobal.d.ts","sourceRoot":"","sources":["../../../src/components/FileUploaderGallery/FileUploaderGalleryGlobal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EA2B7C,CAAC"}
|
|
@@ -11,28 +11,16 @@ interface FileUploaderGalleryStore {
|
|
|
11
11
|
openGallery: (props: FileUploaderGalleryProps) => void;
|
|
12
12
|
/** Closes the active gallery instance */
|
|
13
13
|
closeGallery: () => void;
|
|
14
|
+
/** Updates the current props of the open gallery instance */
|
|
15
|
+
updateGalleryProps: (props: Partial<FileUploaderGalleryProps>) => void;
|
|
16
|
+
/** Specialized update for the resources list */
|
|
17
|
+
updateResources: (uuid: string, checked: boolean) => void;
|
|
14
18
|
}
|
|
15
19
|
/**
|
|
16
20
|
* Zustand hook to manage the file gallery globally.
|
|
17
21
|
*
|
|
18
22
|
* Este store proporciona el método solicitado para abrir la galería
|
|
19
23
|
* (en modo modal o página) desde cualquier parte del frontend.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```tsx
|
|
23
|
-
* const { openGallery } = useFileUploaderGallery();
|
|
24
|
-
*
|
|
25
|
-
* const handleClick = () => {
|
|
26
|
-
* openGallery({
|
|
27
|
-
* title: 'Gestión de Documentos',
|
|
28
|
-
* entity: 'Clientes',
|
|
29
|
-
* entityId: '123',
|
|
30
|
-
* mode: 'modal',
|
|
31
|
-
* resources: myResources,
|
|
32
|
-
* onAccept: (selected) => console.log(selected)
|
|
33
|
-
* });
|
|
34
|
-
* };
|
|
35
|
-
* ```
|
|
36
24
|
*/
|
|
37
25
|
export declare const useFileUploaderGallery: import("zustand").UseBoundStore<import("zustand").StoreApi<FileUploaderGalleryStore>>;
|
|
38
26
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileUploaderGallery.d.ts","sourceRoot":"","sources":["../../../src/components/FileUploaderGallery/useFileUploaderGallery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,UAAU,wBAAwB;IAChC,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,YAAY,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC9C;;;OAGG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvD,yCAAyC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useFileUploaderGallery.d.ts","sourceRoot":"","sources":["../../../src/components/FileUploaderGallery/useFileUploaderGallery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E,UAAU,wBAAwB;IAChC,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,YAAY,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC9C;;;OAGG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACvD,yCAAyC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,6DAA6D;IAC7D,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC;IACvE,gDAAgD;IAChD,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,uFAiChC,CAAC"}
|
package/dist/siesa-ui-kit.cjs
CHANGED
|
@@ -1860,7 +1860,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1860
1860
|
${N?v.dropzoneActive||"border-primary-custom-500 bg-primary-custom-50 dark:bg-primary-custom-900/20":v.dropzoneInactive||"border-border-secondary dark:border-dark-border-secondary hover:border-primary-custom-400 dark:hover:border-primary-custom-400"}
|
|
1861
1861
|
${m?"opacity-50 cursor-not-allowed":""}
|
|
1862
1862
|
bg-bg-primary dark:bg-dark-bg-primary
|
|
1863
|
-
`,children:[a.jsx("input",{...R()}),a.jsxs("div",{className:"flex flex-col items-center justify-center space-y-3",children:[a.jsx("div",{className:"p-3 bg-bg-secondary dark:bg-dark-bg-tertiary rounded-full",children:x||a.jsx(Kc,{className:"w-8 h-8 text-primary-custom-600 dark:text-primary-custom-400"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-lg font-medium text-content-primary dark:text-dark-content-primary",children:c}),a.jsx("p",{className:"text-sm text-content-tertiary dark:text-dark-content-tertiary mt-1",children:d}),g&&a.jsx("p",{className:"text-[11px] font-normal text-content-tertiary dark:text-dark-content-tertiary mt-2 uppercase tracking-wider",children:k()})]})]})]}),M.length>0&&a.jsx("div",{className:"mt-4",children:M}),!s&&b.length>0&&a.jsx("div",{className:"mt-6 space-y-3",children:b.map(T=>a.jsx(Gk,{file:T,onRemove:L,disabled:m,dictionary:p},T.id))}),!s&&P&&a.jsx("div",{className:"mt-6 flex justify-end",children:a.jsxs("button",{onClick:j,className:`px-4 py-2 rounded-md font-medium transition-colors shadow-sm flex items-center ${v.submitButton||"bg-primary-custom-600 hover:bg-primary-custom-700 text-white"}`,children:[x||a.jsx(Kc,{className:"w-5 h-5 mr-2"}),p.uploadPendingButton?p.uploadPendingButton.replace("{count}",b.filter(T=>T.status==="pending").length.toString()):`Subir ${b.filter(T=>T.status==="pending").length} archivos pendientes`]})})]})},Op=({title:e,entity:t,entityId:r,mode:n="modal",isMaximized:i=!1,resources:o=[],allowSelection:s=!1,acceptButtonText:l="Aceptar",showFileUploader:c=!0,showFileName:d,onAccept:u,onClose:f,onBack:m,onUpload:p,onResourceCheck:g,className:x=""})=>{const v=D=>D.startsWith("image/")||/\.(jpg|jpeg|png|gif|webp|svg)$/i.test(D),b=async(D,C)=>p?(C(50),await p(D),C(100),{url:URL.createObjectURL(D),name:D.name}):(C(100),URL.createObjectURL(D)),y=[n==="modal"?"fixed inset-0 z-[80] flex items-center justify-center bg-black/50 p-4":"w-full h-full","animate-in fade-in duration-200",x].join(" ").trim(),k=["bg-white dark:bg-dark-bg-primary","border border-border-primary dark:border-dark-border-primary","flex flex-col overflow-hidden",n==="modal"?i?"w-full h-full rounded-none":"w-full max-w-[800px] max-h-[90vh] rounded-2xl shadow-2xl":"w-full h-full rounded-none"].join(" ").trim();return a.jsx("div",{className:y,children:a.jsxs("div",{className:k,children:[a.jsxs("div",{className:"bg-[#f4f4f5] dark:bg-dark-bg-primary/50 border-b border-border-primary dark:border-dark-border-primary px-5 py-4 flex items-center justify-between shrink-0",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[n==="page"&&m&&a.jsx("button",{onClick:m,className:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full transition-colors","aria-label":"Volver",children:a.jsx(Q0,{className:"size-6 text-content-primary dark:text-dark-content-primary"})}),a.jsx("h3",{className:"text-[20px] font-bold text-content-primary dark:text-dark-content-primary leading-7 tracking-tight",children:e})]}),n==="modal"&&a.jsx("button",{onClick:f,className:"p-1.5 border border-[#93d1fd] dark:border-dark-border-custom bg-white dark:bg-dark-bg-primary rounded-md shadow-sm hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors","aria-label":"Cerrar",children:a.jsx(hn,{className:"size-4 text-primary-custom-600 dark:text-primary-custom-400"})})]}),a.jsx("div",{className:"flex-1 overflow-y-auto p-5 scrollbar-thin scrollbar-thumb-border-primary dark:scrollbar-thumb-dark-border-primary",children:a.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-5 items-stretch",children:[c&&a.jsx("div",{className:"col-span-2",children:a.jsx(Lp,{variant:"dropzone",uploadFunction:b,label:"Subir archivo",subLabel:"o arrastra y suelta aquí",accept:"image/*, .pdf, .doc, .docx, .xls, .xlsx",className:"h-full",classNames:{dropzoneInactive:"h-full min-h-[180px] flex flex-col justify-center",dropzoneActive:"h-full min-h-[180px] flex flex-col justify-center"}})}),o.map(D=>{const C=v(D.type),j=d??!C;return a.jsxs("div",{className:"group relative flex flex-col gap-2 animate-in zoom-in-95 duration-200",children:[a.jsxs("div",{className:"relative aspect-[3/4] w-full bg-gray-50 dark:bg-gray-800 rounded-lg border border-border-primary dark:border-dark-border-primary overflow-hidden",children:[C?a.jsx("img",{src:D.url,alt:D.name,className:"size-full object-cover transition-transform duration-300 group-hover:scale-105"}):a.jsx("div",{className:"size-full flex items-center justify-center",children:a.jsx(ef,{className:"size-12 text-gray-400 dark:text-gray-500"})}),s&&a.jsx("div",{className:"absolute top-2 left-2 z-10",children:a.jsx(Or,{checked:D.checked,onChange:L=>g?.(D.uuid,L.target.checked),className:"!p-0"})})]}),j&&a.jsx("span",{className:"text-sm font-medium text-content-primary dark:text-dark-content-primary truncate px-1",title:D.name,children:D.name})]},D.uuid)})]})}),a.jsxs("div",{className:"bg-[#f4f4f5] dark:bg-dark-bg-primary/50 border-t border-border-primary dark:border-dark-border-primary px-5 py-4 flex items-center justify-end gap-3 shrink-0",children:[a.jsx(te,{type:"plain",size:"l",onClick:f,className:"text-primary-custom-600 dark:text-primary-custom-400 hover:bg-primary-custom-50 dark:hover:bg-primary-custom-900/10",children:"Cancelar"}),a.jsx(te,{type:"default",size:"l",onClick:()=>u?.(o.filter(D=>D.checked)),children:l})]})]})})},zp=b0.create(e=>({isOpen:!1,galleryProps:null,openGallery:t=>e({isOpen:!0,galleryProps:{...t,onClose:()=>{t.onClose?.(),e({isOpen:!1,galleryProps:null})}}}),closeGallery:()=>e({isOpen:!1,galleryProps:null})})),Zk=()=>{const{isOpen:e,galleryProps:t,closeGallery:r}=zp();return!e||!t?null:a.jsx(Op,{...t,onClose:()=>{t.onClose?.(),r()}})},Fp=({onSelectFeature:e,onCreatePlansAndCriteria:t,searchTerm:r=""})=>{const{baseUrl:n}=jr(),i=h.useMemo(()=>new vr(n),[n]),[o,s]=h.useState([]),[l,c]=h.useState(!0),[d,u]=h.useState("");h.useEffect(()=>{const m=setTimeout(()=>{u(r)},300);return()=>clearTimeout(m)},[r]);const f=async()=>{c(!0);try{const m=await i.getAll({page:1,limit:100,search:d});s(m.data)}catch(m){console.error("Error loading features:",m),alert("Error cargando features. Revisa la consola.")}finally{c(!1)}};return h.useEffect(()=>{f()},[i,d]),a.jsx("div",{className:"bg-white rounded-2xl w-full p-5",children:l?a.jsx("div",{className:"p-6 text-gray-500",children:"Cargando..."}):a.jsx("div",{className:"w-full overflow-x-auto",children:a.jsxs("table",{className:"w-full text-left border-collapse",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Código"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Nombre"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Tipo"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200 text-center w-[100px]",children:"Acciones"})]})}),a.jsxs("tbody",{children:[o.length===0&&a.jsx("tr",{children:a.jsx("td",{colSpan:4,className:"px-5 py-6 text-center text-gray-500",children:"No hay maestros creados."})}),o.map(m=>a.jsxs("tr",{className:"group",children:[a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:m.code}),a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:m.description||m.name}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200",children:a.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal bg-[#dbeefe] text-[#0e79fd]",children:m.type==="Transaction"?"Transacción":m.type==="Document"?"Documento":"Maestro"})}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200 text-center",children:a.jsxs("div",{className:"flex items-center justify-center gap-2",children:[a.jsx(te,{type:"outline",size:"sm",onClick:()=>e&&e(m.id),leftIcon:a.jsx(Ua,{className:"h-4 w-4"}),ariaLabel:"Editar",title:"Entidad Dinámica",children:"ED"}),m.allowsPlansAndCriteria&&a.jsx(te,{type:"outline",size:"sm",onClick:()=>t&&t(m),leftIcon:a.jsx(Sb,{className:"h-4 w-4"}),ariaLabel:"Planes y Criterios",title:"Planes y Criterios",children:"PC"})]})})]},m.id))]})]})})})},Kk=()=>a.jsx("div",{className:"text-gray-400 cursor-grab active:cursor-grabbing hover:text-gray-600 transition-colors p-1",children:a.jsx(lo,{className:"w-5 h-5"})}),Yk=({id:e,field:t,onEdit:r,onDelete:n})=>{const{attributes:i,listeners:o,setNodeRef:s,transform:l,transition:c}=ko({id:e}),d={transform:Xr.Transform.toString(l),transition:c};return a.jsxs("div",{ref:s,style:d,className:"flex items-center border-b border-gray-200 py-2 group hover:bg-gray-50/50 transition-colors bg-white",children:[a.jsx("div",{className:"flex flex-col items-center justify-center min-h-[56px] px-4 py-2 shrink-0",children:a.jsx("div",{...i,...o,className:"outline-none",children:a.jsx(Kk,{})})}),a.jsx("div",{className:"flex flex-1 flex-col items-start justify-center min-h-[56px] px-4 py-2",children:a.jsx("p",{className:"leading-[20px] text-sm text-gray-900 font-medium",children:t.labels.es||t.code})}),a.jsxs("div",{className:"flex items-center gap-2 min-h-[56px] px-4 py-2 shrink-0 opacity-100 md:opacity-0 md:group-hover:opacity-100 transition-opacity",children:[a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(Ua,{className:"w-5 h-5 text-[#0e79fd] hover:text-blue-700"}),ariaLabel:"Editar campo",onClick:()=>r(t)}),a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500 hover:text-red-700"}),ariaLabel:"Eliminar campo",onClick:()=>n(t.id)})]})]})},Xk=({fields:e,onChange:t,onEdit:r,onAdd:n,isPlansAndCriteria:i})=>{const o=Gl(Gn(Ya),Gn(Ka,{coordinateGetter:ec})),s=u=>{const{active:f,over:m}=u;if(m&&f.id!==m.id){const p=e.findIndex(b=>b.id===f.id),g=e.findIndex(b=>b.id===m.id),v=Xa(e,p,g).map((b,y)=>({...b,order:y}));t(v)}},l=u=>{confirm("¿Seguro que deseas eliminar este campo?")&&t(e.filter(f=>f.id!==u))},c=u=>{r(u)},d=[...e].sort((u,f)=>u.order-f.order);return a.jsx(Xl,{sensors:o,collisionDetection:Zl,onDragEnd:s,children:a.jsxs("div",{className:"flex flex-col w-full h-full space-y-5",children:[a.jsxs("div",{className:"flex items-center justify-between w-full",children:[a.jsxs("div",{className:"bg-[#cffafe] border border-[#67e8f9] flex gap-2 items-center px-4 py-2 rounded-lg",children:[a.jsx(uo,{className:"w-6 h-6 text-[#0e7490]"}),a.jsx("p",{className:"font-normal text-sm text-[#0e7490]",children:"Arrastra las opciones para definir el orden en el formulario"})]}),a.jsx(te,{type:"outline-solid",onClick:n,children:i?"Nuevo Plan":"Nuevo Campo"})]}),a.jsxs("div",{className:"flex flex-col w-full border-t border-gray-200",children:[a.jsx(Ql,{items:d.map(u=>u.id),strategy:cp,children:d.map(u=>a.jsx(Yk,{id:u.id,field:u,onEdit:c,onDelete:l},u.id))}),e.length===0&&a.jsx("div",{className:"text-center text-gray-400 py-12 border-b border-gray-200 bg-gray-50/30",children:'No hay campos definidos. Haz clic en "Nuevo" para comenzar.'})]})]})})},Jk={[Pe.Text]:"Texto Corto",[Pe.TextArea]:"Texto Largo (Área)",[Pe.NumberInteger]:"Número Entero",[Pe.NumberDecimal]:"Número Decimal",[Pe.Currency]:"Moneda",[Pe.Date]:"Fecha",[Pe.Time]:"Hora",[Pe.DateTime]:"Fecha y Hora",[Pe.Checkbox]:"Casilla de Verificación",[Pe.Select]:"Selección Simple",[Pe.Radio]:"Botones de Opción (Radio)",[Pe.Multiselect]:"Selección Múltiple",[Pe.Lookup]:"Búsqueda (Lookup)",[Pe.Switch]:"Interruptor (Switch)",[Pe.GenericEntity]:"Entidad Genérica"},Qk=({field:e,genericLists:t=[],onSave:r,onCancel:n,isPlansAndCriteria:i,isNew:o})=>{const s=go(),l=s?.baseUrl?new URL(s.baseUrl).origin:"",[c,d]=h.useState({...e}),u=(m,p)=>{d(g=>({...g,[m]:p}))},f=(m,p)=>{d(g=>({...g,labels:{...g.labels,[m]:p}}))};return a.jsxs("div",{className:"flex flex-col w-full h-full relative overflow-hidden",children:[a.jsxs("div",{className:"flex justify-between items-center mb-6 shrink-0 border-b border-gray-100 pb-4",children:[a.jsx("p",{className:"font-medium text-base leading-6 text-primary-custom-600 dark:text-primary-custom-500 m-0",children:i?o?"Crear Plan":"Editar Plan":o?"Nuevo Campo":"Editar campo"}),a.jsx(te,{type:"outline",iconOnly:!0,size:"sm",onClick:n,leftIcon:a.jsx(hn,{className:"w-5 h-5"}),ariaLabel:"Cerrar"})]}),a.jsxs("div",{className:"flex flex-col gap-5 overflow-y-auto flex-1 pr-2 pb-2",children:[i&&a.jsx($e,{label:"Código",value:c.code,onChange:m=>u("code",m.target.value),disabled:!o&&!i,required:!0,fullWidth:!0}),a.jsxs("div",{className:"flex flex-col gap-5 w-full",children:[a.jsx($e,{label:"Etiqueta (ES)",value:c.labels.es||"",onChange:m=>f("es",m.target.value),required:!0,fullWidth:!0}),a.jsx($e,{label:"Etiqueta (EN)",value:c.labels.en||"",onChange:m=>f("en",m.target.value),fullWidth:!0})]}),!i&&a.jsx(St,{label:"Tipo",options:Object.values(Pe).filter(m=>![Pe.Select,Pe.Multiselect,Pe.Lookup].includes(m)).map(m=>({label:Jk[m]||m,value:m})),value:c.type,onChange:m=>u("type",m),required:!0,fullWidth:!0}),!i&&a.jsx(St,{label:"Espacio horizontal",options:[{label:"50%",value:"1"},{label:"100%",value:"2"}],value:String(c.layouts?.[0]?.colSpan||1),onChange:m=>{const p=typeof m=="string"?parseInt(m):m||1;d(g=>({...g,layouts:[{...g.layouts?.[0]||{breakpoint:"md",rowSpan:1,colStart:0,rowStart:0},colSpan:p}]}))},required:!0,fullWidth:!0}),a.jsxs("div",{className:"flex flex-col gap-3 w-full mt-2",children:[a.jsx(Wt,{label:"Requerido",labelPosition:"trailing",checked:c.required,onChange:m=>u("required",m.target.checked)}),!i&&a.jsxs(a.Fragment,{children:[a.jsx(Wt,{label:"Solo lectura",labelPosition:"trailing",checked:c.readonly,onChange:m=>u("readonly",m.target.checked)}),a.jsx(Wt,{label:"Visible",labelPosition:"trailing",checked:c.visible,onChange:m=>u("visible",m.target.checked)}),a.jsx(Wt,{label:"Único",labelPosition:"trailing",checked:c.isUnique||!1,onChange:m=>u("isUnique",m.target.checked)})]})]}),(c.type===Pe.NumberInteger||c.type===Pe.NumberDecimal||c.type===Pe.Currency)&&a.jsxs("div",{className:"flex flex-col gap-5",children:[a.jsx($e,{type:"number",label:"Mínimo",value:c.minValue||"",onChange:m=>u("minValue",parseFloat(m.target.value)),fullWidth:!0}),a.jsx($e,{type:"number",label:"Máximo",value:c.maxValue||"",onChange:m=>u("maxValue",parseFloat(m.target.value)),fullWidth:!0})]}),(c.type===Pe.Select||c.type===Pe.Radio||c.type===Pe.Multiselect)&&a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(St,{label:"Catálogo de Opciones",options:t.map(m=>({label:m.description||m.code,value:m.id})),value:c.genericListId,onChange:m=>u("genericListId",m),placeholder:t.length===0?"No hay catálogos creados":"Seleccionar catálogo...",disabled:t.length===0,fullWidth:!0}),t.length===0&&a.jsx("p",{className:"text-xs text-orange-600 bg-orange-50 p-2 rounded border border-orange-200 m-0",children:'⚠️ Debes crear un catálogo en "Configuración > Listas Generales" antes de usar este tipo de campo.'})]}),c.type===Pe.GenericEntity&&a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(br,{label:"Entidad Genérica",entity:"generic-entities",displayFields:["Code","Description"],value:c.genericEntityId||null,onChange:m=>u("genericEntityId",m?.Id||null),fetcher:async(m,p)=>{const g={...p,fields:p.fields.filter(b=>b!=="Id").concat("ID"),searchFields:p.searchFields?.map(b=>b==="Id"?"ID":b),filters:p.filters?.map(b=>b.map(y=>{const k={};for(const D in y)k[D==="Id"?"ID":D]=y[D];return k}))},x=await fetch(`${l}/api/v1/${m}/search`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(!x.ok)throw new Error("Error fetching generic entities");const v=await x.json();return{...v,data:v.data.map(b=>({...b,Id:b.ID}))}}}),!c.genericEntityId&&a.jsx("p",{className:"text-xs text-orange-600 bg-orange-50 p-2 rounded border border-orange-200 m-0",children:"⚠️ Debes elegir la entidad genérica relacionada a este campo."})]})]}),a.jsx("div",{className:"mt-5 shrink-0 w-full pt-1",children:a.jsx(te,{type:"outline",size:"xl",onClick:()=>r(c),className:"w-full flex justify-center",children:"Guardar"})})]})},e4=({fields:e,rules:t,onSave:r})=>{const[n,i]=h.useState(t||[]),o=[{label:"Mostrar",value:"Show"},{label:"Ocultar",value:"Hide"},{label:"Requerir",value:"Require"},{label:"Habilitar",value:"Enable"},{label:"Deshabilitar",value:"Disable"}],s=[{label:"Es Igual a",value:"Equals"},{label:"No es Igual a",value:"NotEquals"},{label:"Contiene",value:"Contains"},{label:"Mayor que",value:"GreaterThan"},{label:"Menor que",value:"LessThan"}],l=e.map(f=>({label:f.labels.es||f.code,value:f.id})),c=()=>{const f={id:crypto.randomUUID(),dynamicFieldId:e[0]?.id||"",action:"Show",dependsOnFieldId:e[0]?.id||"",condition:"Equals",value:""};i([...n,f])},d=f=>{i(n.filter(m=>m.id!==f))},u=(f,m,p)=>{i(n.map(g=>g.id===f?{...g,[m]:p}:g))};return a.jsxs("div",{className:"flex flex-col w-full h-full space-y-5",children:[a.jsxs("div",{className:"flex items-center justify-between w-full",children:[a.jsxs("div",{className:"bg-[#cffafe] border border-[#67e8f9] flex gap-2 items-center px-4 py-2 rounded-lg",children:[a.jsx(uo,{className:"w-6 h-6 text-[#0e7490]"}),a.jsx("p",{className:"font-normal text-sm text-[#0e7490]",children:"Configura reglas de comportamiento de los campos"})]}),a.jsx(te,{type:"outline-solid",onClick:c,disabled:e.length<2,children:"Nuevo"})]}),e.length<2&&a.jsx("div",{className:"text-sm text-yellow-600 bg-yellow-50 p-3 rounded-lg border border-yellow-200",children:"Necesitas al menos 2 campos creados para configurar reglas de dependencia."}),a.jsxs("div",{className:"flex flex-col w-full",children:[a.jsxs("div",{className:"flex w-full border-b border-gray-200 pb-3 mb-2 px-2 items-center min-h-[36px]",children:[a.jsx("div",{className:"w-10 shrink-0"})," ",a.jsx("div",{className:"w-[60px] shrink-0 text-sm font-medium text-gray-400",children:"Orden"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[140px] px-2",children:"Campo 1"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[120px] px-2",children:"Acción"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[140px] px-2",children:"Campo 2"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[120px] px-2",children:"Condición"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[120px] px-2",children:"Campo 3 (Valor)"}),a.jsx("div",{className:"w-[80px] shrink-0 text-center text-sm font-medium text-gray-400",children:"Acciones"})]}),a.jsxs("div",{className:"flex flex-col w-full gap-1",children:[n.map((f,m)=>a.jsxs("div",{className:"flex items-center w-full border-b border-gray-200 py-3 px-2 group bg-white hover:bg-gray-50/50 transition-colors",children:[a.jsx("div",{className:"w-10 shrink-0 flex justify-center text-gray-400",children:a.jsx(lo,{className:"w-5 h-5 cursor-grab"})}),a.jsx("div",{className:"w-[60px] shrink-0 flex items-center",children:a.jsx("span",{className:"text-sm text-gray-900 font-normal",children:m+1})}),a.jsx("div",{className:"flex-1 min-w-[140px] px-2",children:a.jsx(St,{label:"",options:l,value:f.dynamicFieldId,onChange:p=>u(f.id,"dynamicFieldId",p)})}),a.jsx("div",{className:"flex-1 min-w-[120px] px-2",children:a.jsx(St,{label:"",options:o,value:f.action,onChange:p=>u(f.id,"action",p)})}),a.jsx("div",{className:"flex-1 min-w-[140px] px-2",children:a.jsx(St,{label:"",options:l,value:f.dependsOnFieldId,onChange:p=>u(f.id,"dependsOnFieldId",p)})}),a.jsx("div",{className:"flex-1 min-w-[120px] px-2",children:a.jsx(St,{label:"",options:s,value:f.condition,onChange:p=>u(f.id,"condition",p)})}),a.jsx("div",{className:"flex-1 min-w-[120px] px-2",children:a.jsx("input",{type:"text",value:f.value||"",onChange:p=>u(f.id,"value",p.target.value),placeholder:"Valor...",className:"w-full h-10 px-3 py-2 bg-white border border-gray-200 rounded-lg text-sm focus:outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500"})}),a.jsx("div",{className:"w-[80px] shrink-0 flex items-center justify-center",children:a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500 hover:text-red-700"}),ariaLabel:"Eliminar regla",onClick:()=>d(f.id)})})]},f.id)),n.length===0&&a.jsx("div",{className:"text-center text-gray-400 py-12 border-b border-gray-200 bg-gray-50/30",children:'No hay reglas configuradas. Haz clic en "Nuevo" para comenzar.'})]})]}),a.jsx("div",{className:"pt-4 flex justify-end",children:a.jsx(te,{type:"default",onClick:()=>r(n),children:"Guardar Cambios"})})]})},Pp=({entityId:e,featureId:t,featureEntityId:r,initialRenderMode:n,onBack:i})=>{const{baseUrl:o}=jr(),[s,l]=h.useState(null),[c,d]=h.useState([]),[u,f]=h.useState([]),[m,p]=h.useState(!0),[g,x]=h.useState(null),[v,b]=h.useState("fields"),[y,k]=h.useState(n||"tab"),[D,C]=h.useState({isOpen:!1,config:{}}),j=()=>{fetch(`${o}/dynamic-entities/${e}`).then(R=>R.json()).then(R=>{l(R),d(R.fields||[]),f(R.rules||[]),p(!1)}).catch(R=>{console.error(R),p(!1)})};h.useEffect(()=>{j()},[e,o]);const L=async()=>{if(s){p(!0);try{const R=new vr(o);await R.updateEntity(e,{id:e,code:s.entityCode,multiRecord:s.multiRecord,description:s.description,isReadonly:s.isReadonly,isDisabled:s.isDisabled,isPlansAndCriteria:s.isPlansAndCriteria}),await R.saveFields(e,c),await R.saveRules(e,u),t&&r&&await R.updateFeatureEntity(t,e,{id:r,featureId:t,dynamicEntityId:e,renderMode:y,order:0}),C({isOpen:!0,config:{title:"¡Éxito!",description:"Guardado correctamente.",cancelText:"Cerrar",onCancel:()=>C({isOpen:!1,config:{}}),onConfirm:void 0}}),j()}catch(R){console.error(R),C({isOpen:!0,config:{title:"Error",description:"Hubo un error al guardar.",cancelText:"Cerrar",onCancel:()=>C({isOpen:!1,config:{}}),onConfirm:void 0}})}finally{p(!1)}}};if(m)return a.jsx("div",{className:"p-6 text-gray-500",children:"Cargando..."});if(!s)return a.jsx("div",{className:"p-6 text-red-500",children:"Entidad no encontrada"});const w={label:"Guardar Cambios",onClick:L,icon:a.jsx(co,{className:"w-4 h-4"})};return a.jsxs(Hn,{title:s.description||s.entityCode,onBack:i,primaryAction:w,children:[a.jsxs("div",{className:"flex flex-col gap-6 w-full",children:[a.jsx("div",{className:"bg-white rounded-2xl p-5 flex items-start w-full",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-5 w-full items-end",children:[s.isPlansAndCriteria&&a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx("label",{className:"text-sm font-medium text-gray-900",children:"Código"}),a.jsx("input",{type:"text",value:s.entityCode||"",onChange:R=>l({...s,entityCode:R.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm outline-none focus:ring-2 focus:ring-[#0e79fd] focus:border-transparent transition-all"})]}),a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx("label",{className:"text-sm font-medium text-gray-900",children:"Nombre"}),a.jsx("input",{type:"text",value:s.description||"",onChange:R=>l({...s,description:R.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm outline-none focus:ring-2 focus:ring-[#0e79fd] focus:border-transparent transition-all"})]}),!s.isPlansAndCriteria&&a.jsxs("div",{className:"flex gap-3 items-start cursor-pointer group",onClick:()=>l({...s,multiRecord:!s.multiRecord}),children:[a.jsx("div",{className:"mt-0.5",children:a.jsx("div",{className:`w-8 h-5 rounded-full relative transition-colors duration-200 ease-in-out ${s.multiRecord?"bg-[#0e79fd]":"bg-gray-200"}`,children:a.jsx("div",{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform duration-200 ease-in-out shadow-sm ${s.multiRecord?"transform translate-x-3":""}`})})}),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("span",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600 transition-colors",children:"Multi registro"}),a.jsx("span",{className:"text-sm text-gray-400",children:"Se agregan múltiples filas por cada definición"})]})]}),t&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex gap-3 items-start cursor-pointer group",onClick:()=>k("tab"),children:[a.jsx("div",{className:"mt-0.5",children:a.jsx("div",{className:`w-8 h-5 rounded-full relative transition-colors duration-200 ease-in-out ${y==="tab"?"bg-[#0e79fd]":"bg-gray-200"}`,children:a.jsx("div",{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform duration-200 ease-in-out shadow-sm ${y==="tab"?"transform translate-x-3":""}`})})}),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("span",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600 transition-colors",children:"Mostrar en pestaña"}),a.jsx("span",{className:"text-sm text-gray-400",children:"Se creará una pestaña para los campos"})]})]}),a.jsxs("div",{className:"flex gap-3 items-start cursor-pointer group",onClick:()=>k("inline"),children:[a.jsx("div",{className:"mt-0.5",children:a.jsx("div",{className:`w-8 h-5 rounded-full relative transition-colors duration-200 ease-in-out ${y==="inline"?"bg-[#0e79fd]":"bg-gray-200"}`,children:a.jsx("div",{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform duration-200 ease-in-out shadow-sm ${y==="inline"?"transform translate-x-3":""}`})})}),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("span",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600 transition-colors",children:"Mostrar en línea"}),a.jsx("span",{className:"text-sm text-gray-400",children:"Se agregarán los campos en el flujo"})]})]})]})]})}),a.jsxs("div",{className:"flex gap-2 border-b border-gray-200 pb-1",children:[a.jsxs("button",{className:`relative py-2 px-2 text-sm font-medium transition-colors ${v==="fields"?"text-[#0e79fd]":"text-gray-900 hover:text-gray-600"}`,onClick:()=>b("fields"),children:["Campos",v==="fields"&&a.jsx("div",{className:"absolute bottom-[-5px] left-0 right-0 h-[2px] bg-[#0e79fd] rounded-full"})]}),!s.isPlansAndCriteria&&a.jsxs("button",{className:`relative py-2 px-2 text-sm font-medium transition-colors ${v==="rules"?"text-[#0e79fd]":"text-gray-900 hover:text-gray-600"}`,onClick:()=>b("rules"),children:["Reglas",v==="rules"&&a.jsx("div",{className:"absolute bottom-[-5px] left-0 right-0 h-[2px] bg-[#0e79fd] rounded-full"})]})]}),a.jsxs("div",{className:"w-full min-h-[400px]",children:[v==="fields"&&a.jsxs("div",{className:"flex w-full items-start gap-6",children:[a.jsx("div",{className:`bg-white rounded-2xl p-6 h-fit border border-transparent transition-all duration-300 ease-in-out origin-left ${g?"lg:w-[calc(65%-24px)]":"w-full"} shrink-0`,children:a.jsx(Xk,{fields:c,isPlansAndCriteria:s.isPlansAndCriteria,onChange:d,onEdit:x,onAdd:()=>{const R={id:crypto.randomUUID(),code:`FIELD_${c.length+1}`,type:s.isPlansAndCriteria?"GenericEntity":"Text",labels:{es:"Nuevo Campo",en:"New Field"},order:c.length,layouts:s.isPlansAndCriteria?[{breakpoint:"md",colSpan:2,rowSpan:1,colStart:0,rowStart:0}]:void 0,required:!1,visible:!0,readonly:!1,isUnique:!1};x(R)}})}),g&&a.jsx("div",{className:"bg-white rounded-2xl p-6 h-fit border border-transparent w-full lg:w-[35%] shrink-0 animate-in slide-in-from-right-8 fade-in duration-300",children:a.jsx(Qk,{field:g,genericLists:s.lists||[],isPlansAndCriteria:s.isPlansAndCriteria,isNew:!c.some(R=>R.id===g.id),onSave:R=>{d(N=>N.find(M=>M.id===R.id)?N.map(M=>M.id===R.id?R:M):[...N,R]),x(null)},onCancel:()=>x(null)})})]}),v==="rules"&&a.jsx(e4,{fields:c,rules:u,onSave:R=>{f(R),C({isOpen:!0,config:{title:"Reglas actualizadas",description:'Reglas actualizadas en memoria. Presiona "Guardar Cambios" para aplicarlas de forma permanente.',cancelText:"Cerrar",onCancel:()=>C({isOpen:!1,config:{}}),onConfirm:void 0}})}})]})]}),D.isOpen&&D.config.title&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsx(Tr,{title:D.config.title,...D.config})})]})},t4=()=>a.jsx("div",{className:"text-gray-400 cursor-grab active:cursor-grabbing hover:text-gray-600 transition-colors p-1",children:a.jsx(lo,{className:"w-5 h-5"})}),r4=({fe:e,onEdit:t,onDelete:r})=>{const{attributes:n,listeners:i,setNodeRef:o,transform:s,transition:l}=ko({id:e.id}),c={transform:Xr.Transform.toString(s),transition:l};return a.jsxs("div",{ref:o,style:c,className:"flex items-center justify-between py-4 border-b border-gray-100 group bg-white hover:bg-gray-50/50 transition-colors px-2",children:[a.jsxs("div",{className:"flex items-center gap-4 flex-1",children:[a.jsx("div",{...n,...i,className:"outline-none",children:a.jsx(t4,{})}),a.jsxs("div",{className:"flex-1 grid grid-cols-12 gap-4 items-center",children:[a.jsx("div",{className:"col-span-4 font-medium text-sm text-gray-900",children:e.dynamicEntity?.code}),a.jsx("div",{className:"col-span-5 text-sm text-gray-500",children:e.dynamicEntity?.description||e.dynamicEntity?.code}),a.jsx("div",{className:"col-span-3",children:a.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal bg-[#dbeefe] text-[#0e79fd]",children:e.renderMode==="tab"?"Pestaña":"En Línea"})})]})]}),a.jsxs("div",{className:"flex items-center gap-2 w-[100px] justify-center",children:[a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(Ua,{className:"w-5 h-5 text-blue-500 hover:text-blue-700"}),ariaLabel:"Editar feature",onClick:()=>t(e)}),a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500 hover:text-red-700"}),ariaLabel:"Eliminar feature",onClick:()=>r(e)})]})]})},$p=({featureId:e,onBack:t})=>{const{baseUrl:r}=jr(),[n,i]=h.useState(null),[o,s]=h.useState(!0),[l,c]=h.useState("feature"),[d,u]=h.useState(null),[f,m]=h.useState(!1),[p,g]=h.useState(""),[x,v]=h.useState(""),[b,y]=h.useState("tab"),[k,D]=h.useState(!1),C=()=>{new vr(r).getById(e).then(T=>{i({...T,featureEntities:T.featureEntities?T.featureEntities.filter(F=>!F.dynamicEntity?.isPlansAndCriteria):[]}),s(!1)}).catch(T=>{console.error(T),s(!1)})};h.useEffect(()=>{C()},[e,r]);const j=async()=>{if(!p.trim()){alert("El código de la entidad es requerido");return}try{s(!0);const P=new vr(r),T=await P.createEntity({code:p.trim(),description:x.trim()||p.trim(),id:crypto.randomUUID(),multiRecord:!1});await P.addFeatureEntity(e,{id:crypto.randomUUID(),featureId:e,dynamicEntityId:T.id,renderMode:b,order:(n?.featureEntities?.length||0)+1,properties:{}}),m(!1),g(""),v(""),y("tab"),C()}catch(P){console.error(P),alert("Error al crear la entidad"),s(!1)}},L=async()=>{if(!(!n||!n.featureEntities)){s(!0);try{const P=new vr(r);await Promise.all(n.featureEntities.map(T=>P.updateFeatureEntity(e,T.dynamicEntityId,T))),D(!1),C()}catch(P){console.error(P),alert("Error al guardar el nuevo orden")}finally{s(!1)}}},w=Gl(Gn(Ya),Gn(Ka,{coordinateGetter:ec})),R=async P=>{const{active:T,over:F}=P;if(!(!n||!n.featureEntities||!F)&&T.id!==F.id){const $=[...n.featureEntities].sort((Z,G)=>(Z.order||0)-(G.order||0)),q=$.findIndex(Z=>Z.id===T.id),O=$.findIndex(Z=>Z.id===F.id),S=Xa($,q,O).map((Z,G)=>({...Z,order:G}));i({...n,featureEntities:S}),D(!0)}},N=async P=>{if(confirm("¿Está seguro? Esto elimina el vínculo, pero conserva la definición de la entidad."))try{s(!0),await new vr(r).removeFeatureEntity(e,P.dynamicEntityId),C()}catch(T){console.error(T),s(!1)}};if(o&&!n)return a.jsx("div",{className:"p-6 text-gray-500",children:"Cargando maestro..."});if(!n)return a.jsx("div",{className:"p-6 text-red-500",children:"Maestro no encontrado"});if(l==="entity"&&d)return a.jsx("div",{className:"w-full h-full",children:a.jsx(Pp,{entityId:d.dynamicEntityId,featureId:e,featureEntityId:d.id,initialRenderMode:d.renderMode||"tab",onBack:()=>{c("feature"),u(null),C()}})});const A=n.featureEntities?[...n.featureEntities].sort((P,T)=>(P.order||0)-(T.order||0)):[],M=a.jsxs("div",{className:"flex gap-3",children:[k&&a.jsx(te,{type:"outline-solid",onClick:L,disabled:o,leftIcon:a.jsx(co,{className:"w-4 h-4"}),children:"Guardar Orden"}),a.jsx(te,{type:"default",onClick:()=>m(!0),leftIcon:a.jsx(rf,{className:"w-4 h-4"}),children:"Nueva Entidad"})]});return a.jsx(Hn,{title:`Opción - ${n.name||n.description||n.code}`,onBack:t,toolbarEndContent:M,children:a.jsxs("div",{className:"flex flex-col w-full relative space-y-6",children:[a.jsx("div",{className:"bg-white rounded-2xl w-full p-6",children:a.jsxs("div",{className:"w-full",children:[a.jsxs("div",{className:"flex w-full border-b border-gray-200 pb-3 mb-2 px-2",children:[a.jsx("div",{className:"w-9"})," ",a.jsxs("div",{className:"flex-1 grid grid-cols-12 gap-4",children:[a.jsx("div",{className:"col-span-4 text-sm font-medium text-gray-400",children:"Código"}),a.jsx("div",{className:"col-span-5 text-sm font-medium text-gray-400",children:"Nombre"}),a.jsx("div",{className:"col-span-3 text-sm font-medium text-gray-400",children:"Visualización"})]}),a.jsx("div",{className:"w-[100px] text-center text-sm font-medium text-gray-400",children:"Acciones"})]}),n.featureEntities?.length===0&&a.jsx("div",{className:"text-center py-12 text-sm text-gray-400 border-b border-gray-100",children:'No hay entidades vinculadas. Haz clic en "Nueva Entidad" para empezar.'}),a.jsx(Xl,{sensors:w,collisionDetection:Zl,onDragEnd:R,children:a.jsx(Ql,{items:A.map(P=>P.id),strategy:cp,children:A.map(P=>a.jsx(r4,{fe:P,onEdit:T=>{u(T),c("entity")},onDelete:N},P.id))})})]})}),f&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm p-4",children:a.jsxs("div",{className:"bg-white rounded-xl shadow-2xl w-full max-w-md overflow-hidden relative",children:[a.jsx("div",{className:"absolute right-4 top-4",children:a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),onClick:()=>m(!1),ariaLabel:"Cerrar modal"})}),a.jsx("div",{className:"px-6 py-5 border-b border-gray-100",children:a.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Nueva Entidad"})}),a.jsxs("div",{className:"p-6 space-y-5",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Código de Entidad ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",className:"w-full border border-gray-200 rounded-md px-3 py-2 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: DATOS_ADICIONALES",value:p,onChange:P=>g(P.target.value),autoFocus:!0}),a.jsx("p",{className:"text-xs text-gray-500",children:"Un identificador único sin espacios para la base de datos."})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Nombre ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",className:"w-full border border-gray-200 rounded-md px-3 py-2 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: Información técnica extra",value:x,onChange:P=>v(P.target.value),onKeyDown:P=>{P.key==="Enter"&&j()}}),a.jsx("p",{className:"text-xs text-gray-500",children:"El nombre visible que se mostrará en las pestañas."})]}),a.jsxs("div",{className:"space-y-3 pt-2",children:[a.jsx("label",{className:"text-sm font-medium text-gray-900",children:"Modo de Visualización"}),a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsxs("label",{className:`cursor-pointer border rounded-lg p-3 flex flex-col items-center gap-2 transition-colors ${b==="tab"?"bg-[#dbeefe]/30 border-[#0e79fd]":"bg-white border-gray-200 hover:bg-gray-50"}`,children:[a.jsx("input",{type:"radio",name:"renderMode",value:"tab",className:"sr-only",checked:b==="tab",onChange:()=>y("tab")}),a.jsx("span",{className:`text-sm font-medium ${b==="tab"?"text-[#0e79fd]":"text-gray-700"}`,children:"Pestaña (Tab)"})]}),a.jsxs("label",{className:`cursor-pointer border rounded-lg p-3 flex flex-col items-center gap-2 transition-colors ${b==="inline"?"bg-[#dbeefe]/30 border-[#0e79fd]":"bg-white border-gray-200 hover:bg-gray-50"}`,children:[a.jsx("input",{type:"radio",name:"renderMode",value:"inline",className:"sr-only",checked:b==="inline",onChange:()=>y("inline")}),a.jsx("span",{className:`text-sm font-medium ${b==="inline"?"text-[#0e79fd]":"text-gray-700"}`,children:"En Línea"})]})]})]})]}),a.jsxs("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-end gap-3 shrink-0",children:[a.jsx(te,{type:"plain",onClick:()=>m(!1),children:"Cancelar"}),a.jsx(te,{type:"default",onClick:j,disabled:!p.trim()||o,children:o?"Creando...":"Guardar"})]})]})})]})})},n4=()=>{const{baseUrl:e}=jr(),[t,r]=h.useState([]),[n,i]=h.useState(!0),[o,s]=h.useState(null),l=async()=>{i(!0);try{const f=await(await fetch(`${e}/dynamic-entities/catalogs`)).json();r(f)}catch(u){console.error(u)}finally{i(!1)}};h.useEffect(()=>{l()},[e]);const c=async()=>{if(!o)return;const u=o.id?"PUT":"POST",f=o.id?`${e}/dynamic-entities/catalogs/${o.id}`:`${e}/dynamic-entities/catalogs`;try{await fetch(f,{method:u,headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),s(null),l()}catch(m){console.error(m),alert("Error al guardar catálogo")}},d=async u=>{if(confirm("¿Eliminar catálogo?"))try{await fetch(`${e}/dynamic-entities/catalogs/${u}`,{method:"DELETE"}),l()}catch(f){console.error(f)}};return a.jsxs("div",{className:"flex flex-col w-full",children:[a.jsxs("div",{className:"flex justify-between items-center mb-6",children:[a.jsxs("div",{className:"bg-[#cffafe] border border-[#67e8f9] flex items-center gap-2 px-4 py-2 rounded-lg",children:[a.jsx(uo,{className:"w-6 h-6 text-[#0e7490]"}),a.jsx("span",{className:"text-sm text-[#0e7490]",children:"Crea un listado de opciones"})]}),a.jsx(te,{type:"outline-solid",onClick:()=>s({code:"",active:!0,items:[]}),children:"Nuevo catálogo"})]}),n?a.jsx("div",{className:"text-gray-500 py-4",children:"Cargando catálogos..."}):a.jsx("div",{className:"w-full overflow-x-auto",children:a.jsxs("table",{className:"w-full text-left border-collapse",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Código"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Nombre"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Opciones"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200 text-center w-[100px]",children:"Acciones"})]})}),a.jsxs("tbody",{children:[t.length===0&&a.jsx("tr",{children:a.jsx("td",{colSpan:4,className:"px-5 py-6 text-center text-gray-500",children:"No has creado catálogos aún. Los catálogos son necesarios para campos de tipo Radio y Select."})}),t.map(u=>a.jsxs("tr",{className:"group",children:[a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:u.code}),a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:u.description||"Sin descripción"}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200",children:a.jsxs("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal bg-[#dbeefe] text-[#0e79fd]",children:[u.items?.length||0," ",u.items?.length===1?"Campo adicional":"Campos adicionales"]})}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200 text-center",children:a.jsxs("div",{className:"flex items-center justify-center gap-2",children:[a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(Ua,{className:"h-5 w-5"}),ariaLabel:"Editar",onClick:()=>s(u)}),a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"h-5 w-5"}),ariaLabel:"Eliminar",className:"text-red-500",onClick:()=>u.id&&d(u.id)})]})})]},u.id))]})]})}),o&&a.jsx("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm flex items-center justify-center p-4",children:a.jsxs("div",{className:"bg-white rounded-xl shadow-2xl border border-gray-200 relative w-full max-w-4xl flex flex-col max-h-[90vh] overflow-hidden",children:[a.jsx("div",{className:"absolute right-5 top-5 z-10",children:a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(hn,{className:"w-5 h-5"}),ariaLabel:"Cerrar modal",onClick:()=>s(null)})}),a.jsxs("div",{className:"p-6 flex flex-col gap-6 overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx("div",{className:"bg-[#fcedc9] w-10 h-10 rounded-full flex items-center justify-center shrink-0",children:a.jsx(zl,{className:"w-6 h-6 text-yellow-700"})}),a.jsx("h2",{className:"text-xl font-bold text-gray-900 tracking-tight",children:o.id?"Editar catálogo":"Nuevo catálogo"})]}),a.jsxs("div",{className:"flex gap-5",children:[a.jsxs("div",{className:"flex flex-col gap-2 w-64",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Código ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",value:o.code,onChange:u=>s({...o,code:u.target.value}),disabled:!!o.id,placeholder:"Ej: 91289421",className:"border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500 disabled:bg-gray-50"})]}),a.jsxs("div",{className:"flex flex-col gap-2 w-64",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Nombre ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",value:o.description||"",onChange:u=>s({...o,description:u.target.value}),placeholder:"Ej: Estado del producto",className:"border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500"})]})]}),a.jsxs("div",{className:"flex flex-col items-end gap-5",children:[a.jsx(te,{type:"outline-solid",size:"sm",onClick:()=>{const u=[...o.items,{value:"",label:"",order:o.items.length,active:!0}];s({...o,items:u})},children:"Nuevo"}),a.jsxs("div",{className:"w-full",children:[a.jsxs("div",{className:"flex w-full border-b border-gray-200 min-h-[36px]",children:[a.jsx("div",{className:"flex-1 px-4 py-2 text-sm font-medium text-gray-400 flex items-center",children:"Valor ID"}),a.jsx("div",{className:"flex-1 px-4 py-2 text-sm font-medium text-gray-400 flex items-center",children:"Etiqueta"}),a.jsx("div",{className:"w-[100px] px-4 py-2 text-sm font-medium text-gray-400 flex items-center justify-center",children:"Acciones"})]}),o.items.map((u,f)=>a.jsxs("div",{className:"flex w-full border-b border-gray-200 py-2 items-center",children:[a.jsx("div",{className:"flex-1 px-4",children:a.jsx("input",{type:"text",value:u.value,onChange:m=>{const p=[...o.items];p[f].value=m.target.value,s({...o,items:p})},className:"w-full border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: john_smith"})}),a.jsx("div",{className:"flex-1 px-4",children:a.jsx("input",{type:"text",value:u.label,onChange:m=>{const p=[...o.items];p[f].label=m.target.value,s({...o,items:p})},className:"w-full border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: John Smith"})}),a.jsx("div",{className:"w-[100px] px-4 flex items-center justify-center",children:a.jsx(te,{type:"plain",size:"sm",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5"}),ariaLabel:"Eliminar opción",className:"text-red-500",onClick:()=>{const m=o.items.filter((p,g)=>g!==f);s({...o,items:m})}})})]},f)),o.items.length===0&&a.jsx("div",{className:"w-full py-8 text-center text-sm text-gray-400 border-b border-gray-200",children:'No hay opciones agregadas. Haz clic en "Nuevo" para comenzar.'})]})]})]}),a.jsx("div",{className:"px-6 py-4 flex justify-end gap-3 w-full border-t border-gray-100 bg-gray-50 shrink-0",children:a.jsx(te,{type:"default",onClick:c,children:"Guardar"})})]})})]})},a4=()=>{const{baseUrl:e}=jr(),t=h.useMemo(()=>new vr(e),[e]),[r,n]=h.useState(null),[i,o]=h.useState(null),[s,l]=h.useState(null),[c,d]=h.useState(""),u=async f=>{try{const m=`${f.code}_planes_criterios`.toUpperCase(),g=(await t.getById(f.id)).featureEntities?.find(x=>x.dynamicEntity?.code===m||x.dynamicEntity?.isPlansAndCriteria);if(g)n(f.id),o(g.dynamicEntityId),l(g.id);else{const x=await t.createEntity({code:m,description:`Planes y Criterios para ${f.name}`,multiRecord:!0,isReadonly:!1,isDisabled:!1,isPlansAndCriteria:!0}),v=await t.addFeatureEntity(f.id,{featureId:f.id,dynamicEntityId:x.id,renderMode:"tab",order:0});n(f.id),o(x.id),l(v.id)}}catch(m){console.error("Error creating plans and criteria entity:",m),alert("Error al crear o abrir la entidad de planes y criterios. Revisa la consola.")}};return i&&r?a.jsx(Pp,{entityId:i,featureId:r,featureEntityId:s||void 0,onBack:()=>{o(null),l(null),n(null)}}):r?a.jsx($p,{featureId:r,onBack:()=>n(null)}):a.jsx(Hn,{title:"Opciones del sistema",toolbarEndContent:a.jsx("div",{className:"w-full sm:w-64",children:a.jsx($e,{placeholder:"Buscar por código o nombre...",value:c,onChange:f=>d(f.target.value),leftIcon:a.jsx(fo,{className:"h-5 w-5 text-gray-400"})})}),children:a.jsx("div",{className:"flex flex-col w-full",children:a.jsx(Fp,{onSelectFeature:n,onCreatePlansAndCriteria:u,searchTerm:c})})})},_p=({onClose:e,onSave:t})=>{const[r,n]=h.useState(""),[i,o]=h.useState("");return a.jsx("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm flex items-center justify-center p-4",children:a.jsxs("div",{className:"bg-white dark:bg-dark-bg-primary rounded-xl shadow-2xl border border-gray-200 dark:border-dark-border-primary relative w-full max-w-lg flex flex-col",children:[a.jsxs("div",{className:"flex justify-between items-center px-6 py-4 border-b border-gray-100 dark:border-dark-border-primary",children:[a.jsx("h2",{className:"text-lg font-bold text-gray-900 dark:text-dark-content-primary",children:"Nueva Entidad Genérica"}),a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(hn,{className:"w-5 h-5"}),ariaLabel:"Cerrar",onClick:e})]}),a.jsxs("div",{className:"p-6 flex flex-col gap-5",children:[a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 dark:text-dark-content-primary",children:["Código ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsx($e,{value:r,onChange:s=>n(s.target.value),placeholder:"Ej: ESTADO_CIVIL"})]}),a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 dark:text-dark-content-primary",children:["Descripción ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsx($e,{value:i,onChange:s=>o(s.target.value),placeholder:"Ej: Estado Civil"})]})]}),a.jsxs("div",{className:"px-6 py-4 flex justify-end gap-3 border-t border-gray-100 dark:border-dark-border-primary bg-gray-50 dark:bg-dark-bg-secondary rounded-b-xl",children:[a.jsx(te,{type:"plain",onClick:e,children:"Cancelar"}),a.jsx(te,{type:"default",disabled:!r||!i,onClick:()=>t({code:r,description:i,isActive:!0}),children:"Crear Entidad"})]})]})})},Bp=({entity:e,initialItems:t=[],onBack:r,onSave:n,isLoading:i=!1})=>{const[o,s]=h.useState(e.description),[l,c]=h.useState(t),d=()=>{c([...l,{id:Math.random().toString(),genericEntityId:e.id,code:"",value:"",sortOrder:l.length,isActive:!0}])},u=(m,p,g)=>{const x=[...l];x[m]={...x[m],[p]:g},c(x)},f=m=>{const p=l.filter((g,x)=>x!==m);c(p)};return a.jsxs("div",{className:"flex flex-col w-full h-full gap-6",children:[a.jsxs("div",{className:"flex flex-col sm:flex-row gap-5",children:[a.jsxs("div",{className:"flex w-full sm:w-1/3 flex-col gap-2",children:[a.jsx("label",{className:"text-sm font-medium text-content-primary dark:text-dark-content-primary",children:"Código"}),a.jsx($e,{value:e.code,disabled:!0})]}),a.jsxs("div",{className:"flex w-full sm:w-1/3 flex-col gap-2",children:[a.jsx("label",{className:"text-sm font-medium text-content-primary dark:text-dark-content-primary",children:"Descripción"}),a.jsx($e,{value:o,onChange:m=>s(m.target.value)})]})]}),a.jsx("hr",{className:"border-border-primary dark:border-dark-border-primary"}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsxs("div",{className:"flex justify-between items-center",children:[a.jsx("h3",{className:"text-lg font-medium text-content-primary dark:text-dark-content-primary",children:"Variables (Opciones)"}),a.jsx(te,{onClick:d,type:"outline-solid",size:"sm",children:"+ Agregar Opción"})]}),a.jsxs("div",{className:"flex flex-col border border-border-primary dark:border-dark-border-primary rounded-xl overflow-hidden bg-white dark:bg-dark-bg-primary",children:[a.jsxs("div",{className:"flex bg-gray-50 dark:bg-dark-bg-secondary px-4 py-3 border-b border-border-primary dark:border-dark-border-primary",children:[a.jsx("div",{className:"flex-1 text-xs font-semibold text-content-secondary dark:text-dark-content-secondary uppercase tracking-wider",children:"Código"}),a.jsx("div",{className:"flex-[2] text-xs font-semibold text-content-secondary dark:text-dark-content-secondary uppercase tracking-wider",children:"Valor (Etiqueta)"}),a.jsx("div",{className:"w-16 text-center text-xs font-semibold text-content-secondary dark:text-dark-content-secondary uppercase tracking-wider",children:"Acción"})]}),l.map((m,p)=>a.jsxs("div",{className:"flex items-center px-4 py-3 border-b border-border-primary dark:dark-border-primary last:border-0",children:[a.jsx("div",{className:"flex-1 pr-4",children:a.jsx($e,{placeholder:"Ej: OPT_1",value:m.code,onChange:g=>u(p,"code",g.target.value)})}),a.jsx("div",{className:"flex-[2] pr-4",children:a.jsx($e,{placeholder:"Ej: Opción 1",value:m.value,onChange:g=>u(p,"value",g.target.value)})}),a.jsx("div",{className:"w-16 flex justify-center",children:a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500"}),onClick:()=>f(p)})})]},m.id)),l.length===0&&a.jsx("div",{className:"p-8 text-center text-sm text-content-secondary dark:text-dark-content-secondary",children:'No se han agregado opciones. Haz clic en "Agregar Opción" para comenzar.'})]})]}),a.jsxs("div",{className:"flex justify-end gap-3 mt-auto pt-4",children:[a.jsx(te,{type:"plain",onClick:r,children:"Cancelar"}),a.jsx(te,{type:"default",disabled:i,onClick:()=>n({...e,description:o},l),children:i?"Guardando...":"Guardar Cambios"})]})]})},i4=({title:e="Entidades Genéricas",entities:t=[],isLoading:r=!1,onSelectEntity:n,onCreateEntity:i,onSaveEntity:o,onLoadItems:s,className:l=""})=>{const[c,d]=h.useState(""),[u,f]=h.useState(!1),[m,p]=h.useState(null),[g,x]=h.useState([]),[v,b]=h.useState(!1),y=async C=>{if(p(C),n&&n(C),s){b(!0);try{const j=await s(C);x(j)}catch(j){console.error("Error loading items:",j),x([])}finally{b(!1)}}},k=t.filter(C=>C.code.toLowerCase().includes(c.toLowerCase())||C.description.toLowerCase().includes(c.toLowerCase()));if(m)return a.jsx(Hn,{title:e,onBack:()=>{p(null),x([])},children:v?a.jsx("div",{className:"flex items-center justify-center py-16",children:a.jsx("span",{className:"text-sm text-content-secondary dark:text-dark-content-secondary",children:"Cargando opciones..."})}):a.jsx(Bp,{entity:m,initialItems:g,onBack:()=>{p(null),x([])},onSave:(C,j)=>{o&&o(C,j),p(null),x([])},isLoading:r},m.id+"-"+g.length)});const D=[{header:"Código",accessor:"code",sortable:!0},{header:"Descripción",accessor:"description",sortable:!0},{header:"Estado",accessor:"isActive",render:C=>a.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal ${C?"bg-[#dbeefe] text-[#0e79fd]":"bg-red-50 text-red-600"}`,children:C?"Activo":"Inactivo"})},{header:"Acciones",accessor:"id",align:"center",render:(C,j)=>a.jsx("button",{onClick:L=>{L.stopPropagation(),y(j)},className:"inline-flex items-center justify-center text-[#0e79fd] hover:text-blue-800 transition-colors",title:"Editar",children:a.jsx(Ua,{className:"h-5 w-5"})})}];return a.jsxs(Hn,{title:e,toolbarEndContent:a.jsxs("div",{className:"flex w-full sm:w-auto items-center gap-3",children:[a.jsx("div",{className:"w-full sm:w-64",children:a.jsx($e,{placeholder:"Buscar entidad...",value:c,onChange:C=>d(C.target.value),leftIcon:a.jsx(fo,{className:"h-5 w-5 text-gray-400"})})}),a.jsx(te,{onClick:()=>f(!0),variant:"default",children:"Nueva Entidad"})]}),children:[a.jsx("div",{className:`w-full h-full flex flex-col gap-4 ${l}`,children:a.jsx(Wn,{columns:D,data:k,loading:r})}),u&&a.jsx(_p,{onClose:()=>f(!1),onSave:C=>{i&&i(C),f(!1)}})]})},jo={schema:{name:{required:"El nombre es obligatorio",maxLength:"El nombre no puede exceder 200 caracteres"},email:{invalidFormat:"El formato del correo electrónico no es válido",maxLength:"El correo no puede exceder 256 caracteres"},address:{maxLength:"La dirección no puede exceder 500 caracteres"},phone:{countryRequired:"El país es obligatorio",areaCodeMaxLength:"El área no puede exceder 3 caracteres",numberRequired:"El número de teléfono es obligatorio",numberMaxLength:"El número no puede exceder 10 caracteres",extensionMaxLength:"La extensión no puede exceder 3 caracteres"},socialNetwork:{typeRequired:"Debe seleccionar un tipo de red social",urlRequired:"La URL del perfil es obligatoria",urlMaxLength:"La URL no puede exceder 2048 caracteres"},useFor:{required:"El contacto debe tener al menos un uso"}},modal:{title:{create:"Agregar contacto",edit:"Editar contacto",view:"Detalle de contacto"},description:"Formulario de contacto",button:{save:"Agregar",update:"Actualizar",cancel:"Cancelar",close:"Cerrar",addPhone:"Agregar teléfono",addSocialNetwork:"Agregar red social"},label:{name:"Nombre",nameRequired:"Nombre *",email:"Email",address:"Dirección",description:"Descripción",useFor:"Usar para",country:"País",state:"Estado/Departamento",city:"Ciudad",neighborhood:"Barrio",category:"Categoría",phoneNumber:"Número",socialType:"Tipo",socialUrl:"URL"},placeholder:{name:"Nombre del contacto",address:"Dirección del contacto",description:"Descripción del contacto",select:"— Seleccionar —",loading:"Cargando...",socialUrl:"https://..."},tab:{basicData:"Datos básicos",location:"Ubicación",phone:"Teléfono",socialNetwork:"Redes sociales"},section:{location:"Ubicación",phones:"Teléfonos",socialNetworks:"Redes Sociales"},error:{preventRemoval:"Debe existir al menos un contacto Predeterminado",transferBlocked:"No se puede transferir. El contacto predeterminado actual no tiene otros usos y quedaría sin ninguno.",neighborhoodMismatch:"El barrio seleccionado no pertenece a la ciudad indicada",catalogsPhone:"Error al cargar catálogos. Las opciones de país pueden no estar disponibles.",catalogsSocial:"Error al cargar catálogos. Los tipos de red social pueden no estar disponibles."},aria:{phoneCategory:e=>`Categoría del teléfono ${e+1}`,phoneCountry:e=>`País del teléfono ${e+1}`,removePhone:e=>`Eliminar teléfono ${e+1}`,socialType:e=>`Tipo de red social ${e+1}`,socialUrl:e=>`URL de red social ${e+1}`,removeSocial:e=>`Eliminar red social ${e+1}`,country:"País",state:"Estado/Departamento",city:"Ciudad",neighborhood:"Barrio"},defaultCategory:"Móvil",emptyState:{phone:'No hay registros. Haz clic en "Agregar teléfono"',socialNetwork:'No hay registros. Haz clic en "Agregar red social"'},column:{actions:"Acciones"}},grid:{title:"Contacto",button:{addContact:"Agregar contacto"},aria:{table:"Tabla de contactos"},column:{name:"Nombre",email:"Email",useFor:"Usar para",phone:"Teléfono",socialNetworks:"Redes sociales",actions:"Acciones"},pagination:{previous:"Anterior",next:"Siguiente"},emptyBanner:"No hay registros. Haz clic en “Agregar contacto”"},actions:{pendingDelete:"Pendiente de eliminación",undo:"Deshacer",viewDetail:"Ver Detalle",edit:"Editar",delete:"Eliminar"},emptyState:{noContacts:"No hay contactos registrados.",addHint:" Haz clic en 'Agregar Contacto' para comenzar.",addButton:"Agregar Contacto"},pillEmail:{error:{invalidFormat:"El formato del correo electrónico no es válido",duplicate:"Este correo ya fue agregado"},placeholder:"Ingrese correo y presione Enter...",aria:{list:"Correos electrónicos",emailLabel:e=>`Correo: ${e}`,removeEmail:e=>`Eliminar ${e}`,addEmail:"Agregar correo electrónico"}},phoneInput:{placeholder:{area:"Área",number:"Número de teléfono",extension:"Ext."},aria:{group:"Número de teléfono: área, número, extensión",areaCode:"Código de área",number:"Número",extension:"Extensión"}},tagSelector:{selectAll:"Usar para todo",aria:{group:"Usar para",option:e=>`Usar para: ${e}`}},manager:{defaultLabel:"Predeterminado"},dialog:{default:{title:"Cambiar contacto predeterminado",newContactFallback:"el nuevo contacto",message:(e,t)=>`El contacto “${e}” ya está marcado como Predeterminado. ¿Desea transferir el predeterminado a “${t}”?`,cancel:"Cancelar",confirm:"Confirmar"},delete:{title:"Eliminar",message:"¿Estás seguro de eliminar el registro?",cancel:"Cancelar",confirm:"Confirmar"},deleteDefault:{title:"Eliminar contacto predeterminado",message:(e,t)=>`El contacto “${e}” es el predeterminado. Al eliminarlo, el predeterminado se transferirá a “${t}”. ¿Desea continuar?`,cancel:"Cancelar",confirm:"Confirmar"}},skeleton:{column:{name:"Nombre",email:"Email",phone:"Teléfono",actions:"Acciones"}},enums:{useFor:{0:"Predeterminado"},phoneCategory:{0:"Móvil"}}};function o4(e,t){if(!t)return e;function r(n,i){const o={...n};for(const s of Object.keys(i)){const l=i[s];if(l===void 0)continue;const c=n[s];typeof l=="function"||typeof c!="object"||c===null?o[s]=l:o[s]=r(c,l)}return o}return r(e,t)}const Vp=h.createContext(null),Wp=h.createContext(jo);function Up(){const e=h.useContext(Vp);if(!e)throw new Error("useContactServiceAdapter must be used within a ContactServiceProvider");return e}function Qt(){return h.useContext(Wp)}function s4({adapter:e,translations:t,children:r}){const n=h.useMemo(()=>o4(jo,t),[t]);return a.jsx(Vp.Provider,{value:e,children:a.jsx(Wp.Provider,{value:n,children:r})})}const it=0;function wa(e){return Object.entries(e).map(([t,r])=>({value:Number(t),label:r}))}const l4={recordId:"",contacts:[],pendingAdds:[],pendingEdits:new Map,pendingDeletes:new Set,maxContacts:10},zt=b0.create()((e,t)=>({...l4,loadContacts:(r,n)=>{e({recordId:r,contacts:n,pendingAdds:[],pendingEdits:new Map,pendingDeletes:new Set})},addContact:r=>{const n={...r,id:crypto.randomUUID()};e(i=>({contacts:[...i.contacts,n],pendingAdds:[...i.pendingAdds,n]}))},editContact:(r,n)=>{e(i=>{const o=i.contacts.map(c=>c.id===r?{...c,...n}:c),s=o.find(c=>c.id===r);if(!s)return i;const l=new Map(i.pendingEdits);return l.set(r,s),{contacts:o,pendingEdits:l}})},deleteContact:r=>{e(n=>{const i=new Set(n.pendingDeletes);if(i.add(r),n.contacts.find(s=>s.id===r)?.useFor.includes(it)){const s=n.contacts.find(l=>l.id!==r&&!i.has(l.id??""));if(s?.id){const l=new Map(n.pendingEdits),c={...s,useFor:s.useFor.includes(it)?s.useFor:[it,...s.useFor],isDefault:!0};return l.set(s.id,c),{contacts:n.contacts.map(d=>d.id===s.id?c:d),pendingDeletes:i,pendingEdits:l}}}return{pendingDeletes:i}})},restoreContact:r=>{e(n=>{const i=new Set(n.pendingDeletes);if(i.delete(r),n.contacts.find(s=>s.id===r)?.useFor.includes(it)){const s=n.contacts.find(l=>l.id!==r&&!i.has(l.id??"")&&l.useFor.includes(it));if(s?.id){const l=new Map(n.pendingEdits),c={...s,useFor:s.useFor.filter(d=>d!==it),isDefault:!1};return l.set(s.id,c),{contacts:n.contacts.map(d=>d.id===s.id?c:d),pendingDeletes:i,pendingEdits:l}}}return{pendingDeletes:i}})},getPendingChanges:()=>{const r=t(),n=r.pendingAdds.length>0,i=r.pendingEdits.size>0,o=r.pendingDeletes.size>0;if(!n&&!i&&!o)return null;const s=new Set(r.pendingAdds.map(c=>c.id)),l=r.contacts.filter(c=>c.id==null||!r.pendingDeletes.has(c.id)).map(c=>s.has(c.id)?{...c,id:null}:c);return{recordId:r.recordId,contacts:l,maxContacts:r.maxContacts}},resetChanges:()=>{e({pendingAdds:[],pendingEdits:new Map,pendingDeletes:new Set})},setMaxContacts:r=>{e({maxContacts:r})}}));function qp(e){const[t,r]=h.useState(()=>typeof window>"u"?!1:window.matchMedia(e).matches);return h.useEffect(()=>{const n=window.matchMedia(e),i=o=>r(o.matches);return n.addEventListener("change",i),r(n.matches),()=>n.removeEventListener("change",i)},[e]),t}const uu=[{bg:"bg-primary-custom-100",text:"text-primary-custom-600",border:"border-primary-custom-300",darkBg:"dark:bg-blue-900",darkText:"dark:text-blue-200",darkBorder:"dark:border-blue-700"},{bg:"bg-green-100",text:"text-green-800",border:"border-green-300",darkBg:"dark:bg-green-900",darkText:"dark:text-green-200",darkBorder:"dark:border-green-700"},{bg:"bg-amber-100",text:"text-amber-800",border:"border-amber-300",darkBg:"dark:bg-amber-900",darkText:"dark:text-amber-200",darkBorder:"dark:border-amber-700"},{bg:"bg-purple-100",text:"text-purple-800",border:"border-purple-300",darkBg:"dark:bg-purple-900",darkText:"dark:text-purple-200",darkBorder:"dark:border-purple-700"},{bg:"bg-cyan-100",text:"text-cyan-800",border:"border-cyan-300",darkBg:"dark:bg-cyan-900",darkText:"dark:text-cyan-200",darkBorder:"dark:border-cyan-700"},{bg:"bg-red-100",text:"text-red-800",border:"border-red-300",darkBg:"dark:bg-red-900",darkText:"dark:text-red-200",darkBorder:"dark:border-red-700"}];function Hp(e){return uu[e%uu.length]}const Gp={new:"shadow-[inset_4px_0_0_0_var(--color-primary-400)]",modified:"shadow-[inset_4px_0_0_0_var(--color-amber-400)]",deleted:"shadow-[inset_4px_0_0_0_var(--color-red-400)]"};function fu(e,t,r,n){return e.id!=null&&n.has(e.id)?"deleted":t.some(i=>i.id===e.id)?"new":e.id!=null&&r.has(e.id)?"modified":null}function Zp(e,t){let r=t?.get(e.category)??String(e.category);return e.areaCode?r+=` ${e.areaCode}-${e.number}`:r+=` ${e.number}`,e.extension&&(r+=` ext ${e.extension}`),r}function Kp(e,t){const r=e.url.length>40?`${e.url.substring(0,37)}...`:e.url;return`${t?.get(e.socialNetworkTypeId)??e.socialNetworkTypeId}: ${r}`}const us=5,c4=h.createContext({}),Yp=!0;function d4({baseColor:e,highlightColor:t,width:r,height:n,borderRadius:i,circle:o,direction:s,duration:l,enableAnimation:c=Yp,customHighlightBackground:d}){const u={};return s==="rtl"&&(u["--animation-direction"]="reverse"),typeof l=="number"&&(u["--animation-duration"]=`${l}s`),c||(u["--pseudo-element-display"]="none"),(typeof r=="string"||typeof r=="number")&&(u.width=r),(typeof n=="string"||typeof n=="number")&&(u.height=n),(typeof i=="string"||typeof i=="number")&&(u.borderRadius=i),o&&(u.borderRadius="50%"),typeof e<"u"&&(u["--base-color"]=e),typeof t<"u"&&(u["--highlight-color"]=t),typeof d=="string"&&(u["--custom-highlight-background"]=d),u}function an({count:e=1,wrapper:t,className:r,containerClassName:n,containerTestId:i,circle:o=!1,style:s,...l}){var c,d,u;const f=h.useContext(c4),m={...l};for(const[k,D]of Object.entries(l))typeof D>"u"&&delete m[k];const p={...f,...m,circle:o},g={...s,...d4(p)};let x="react-loading-skeleton";r&&(x+=` ${r}`);const v=(c=p.inline)!==null&&c!==void 0?c:!1,b=[],y=Math.ceil(e);for(let k=0;k<y;k++){let D=g;if(y>e&&k===y-1){const j=(d=D.width)!==null&&d!==void 0?d:"100%",L=e%1,w=typeof j=="number"?j*L:`calc(${j} * ${L})`;D={...D,width:w}}const C=h.createElement("span",{className:x,style:D,key:k},"");v?b.push(C):b.push(h.createElement(h.Fragment,{key:k},C,h.createElement("br",null)))}return h.createElement("span",{className:n,"data-testid":i,"aria-live":"polite","aria-busy":(u=p.enableAnimation)!==null&&u!==void 0?u:Yp},t?b.map((k,D)=>h.createElement(t,{key:D},k)):b)}const pu=3;function u4({layout:e="table"}){const t=Qt();return e==="card"?a.jsx("div",{className:"flex flex-col gap-3",children:Array.from({length:pu}).map((r,n)=>a.jsxs("div",{className:"rounded-md bg-white p-4 shadow-sm dark:bg-slate-900",children:[a.jsx(an,{width:160,height:16}),a.jsx(an,{width:200,height:14,className:"mt-1"}),a.jsx(an,{width:120,height:12,className:"mt-1"})]},n))}):a.jsxs("table",{className:"w-full",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-slate-200 dark:border-slate-700",children:[a.jsx("th",{className:"py-3 px-4 text-left text-sm font-medium text-slate-500",children:t.skeleton.column.name}),a.jsx("th",{className:"py-3 px-4 text-left text-sm font-medium text-slate-500",children:t.skeleton.column.email}),a.jsx("th",{className:"py-3 px-4 text-left text-sm font-medium text-slate-500",children:t.skeleton.column.phone}),a.jsx("th",{className:"py-3 px-4 text-right text-sm font-medium text-slate-500",children:t.skeleton.column.actions})]})}),a.jsx("tbody",{children:Array.from({length:pu}).map((r,n)=>a.jsxs("tr",{className:"border-b border-slate-100 dark:border-slate-800",children:[a.jsx("td",{className:"py-3 px-4",children:a.jsx(an,{width:140})}),a.jsx("td",{className:"py-3 px-4",children:a.jsx(an,{width:180})}),a.jsx("td",{className:"py-3 px-4",children:a.jsx(an,{width:120})}),a.jsx("td",{className:"py-3 px-4 text-right",children:a.jsx(an,{width:80})})]},n))})]})}function f4({mode:e,onAddContact:t}){const r=Qt();return a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsxs("div",{className:"flex w-full items-center gap-3 rounded-lg bg-cyan-50 px-4 py-3 dark:bg-cyan-950/30",children:[a.jsx(ot.Info,{className:"h-5 w-5 shrink-0 text-cyan-600 dark:text-cyan-400"}),a.jsx("p",{className:"text-sm text-cyan-800 dark:text-cyan-200",children:r.grid.emptyBanner})]}),e==="edit"&&a.jsx(te,{type:"outline-solid",htmlType:"button",onClick:t,children:r.grid.button.addContact})]})}function Xp({contactId:e,mode:t,isPendingDelete:r,onEdit:n,onView:i,onDelete:o,onRestore:s}){const l=Qt();return r?a.jsx("div",{className:"flex items-center justify-end",children:a.jsx(te,{type:"outline-solid",size:"xs",onClick:()=>s(e),children:l.actions.undo})}):t==="view"?a.jsx("div",{className:"flex items-center justify-end gap-2",children:a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Eye,{className:"h-4 w-4"}),onClick:()=>i(e),ariaLabel:l.actions.viewDetail})}):a.jsxs("div",{className:"flex items-center justify-end gap-2",children:[a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Pencil,{className:"h-4 w-4"}),onClick:()=>n(e),ariaLabel:l.actions.edit}),a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Eye,{className:"h-4 w-4"}),onClick:()=>i(e),ariaLabel:l.actions.viewDetail}),a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Trash2,{className:"h-4 w-4 text-content-extensions-red"}),onClick:()=>o(e),ariaLabel:l.actions.delete})]})}function p4({contact:e,state:t,mode:r,useForOptions:n,phoneCategoryOptions:i,socialNetworkTypes:o,onEdit:s,onView:l,onDelete:c,onRestore:d}){const u=t?Gp[t]:"",f=t==="deleted",m=(n?.length??0)>1,p=h.useMemo(()=>{if(o)return new Map(o.map(x=>[x.id,x.name]))},[o]),g=h.useMemo(()=>{if(i)return new Map(i.map(x=>[x.value,x.label]))},[i]);return a.jsx("div",{className:`rounded-lg bg-bg-primary p-4 shadow-xs border border-border-secondary dark:bg-dark-bg-primary dark:border-dark-border-primary ${u} ${f?"opacity-60":""}`,children:a.jsxs("div",{className:"flex items-start justify-between",children:[a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("p",{className:`text-sm font-medium text-content-primary dark:text-dark-content-primary ${f?"line-through":""}`,children:e.name}),m&&e.useFor.length>0&&a.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:e.useFor.map(x=>{const v=n.find(k=>k.value===x),b=n.findIndex(k=>k.value===x),y=Hp(b>=0?b:0);return a.jsx("span",{className:`inline-block rounded-full px-2 py-0.5 text-xs font-medium ${y.bg} ${y.text} ${y.darkBg} ${y.darkText}`,children:v?.label??String(x)},x)})}),e.emails.length>0&&a.jsxs("div",{className:"mt-1 flex items-center gap-1",children:[a.jsx("span",{className:"inline-block max-w-[180px] truncate rounded-full bg-slate-100 px-2 py-0.5 text-xs text-content-primary dark:bg-slate-800 dark:text-dark-content-primary",children:e.emails[0]}),e.emails.length>1&&a.jsxs("span",{className:"inline-block rounded-full bg-primary-custom-100 px-1.5 py-0.5 text-xs font-medium text-primary-custom-600",children:["+",e.emails.length-1]})]}),e.phones.length>0&&a.jsx("div",{className:"mt-2 space-y-0.5",children:e.phones.map((x,v)=>a.jsx("p",{className:"text-xs text-content-secondary dark:text-dark-content-secondary",children:Zp(x,g)},v))}),e.socialNetworks.length>0&&a.jsx("div",{className:"mt-1 space-y-0.5",children:e.socialNetworks.map((x,v)=>a.jsx("p",{className:"text-xs text-content-tertiary dark:text-dark-content-tertiary",children:Kp(x,p)},v))})]}),a.jsx("div",{className:"ml-4 flex-shrink-0",children:e.id!=null&&a.jsx(Xp,{contactId:e.id,mode:r,isPendingDelete:f,onEdit:s,onView:l,onDelete:c,onRestore:d})})]})})}function m4({emails:e}){return e.length===0?a.jsx("span",{children:"—"}):a.jsxs("span",{className:"inline-flex items-center gap-1",children:[a.jsx("span",{className:"inline-block max-w-[180px] truncate rounded-full bg-slate-100 px-2 py-0.5 text-xs text-content-primary dark:bg-slate-800 dark:text-dark-content-primary",children:e[0]}),e.length>1&&a.jsx(Ft,{color:"blue",label:`+${e.length-1}`})]})}function h4({useFor:e,useForOptions:t}){if(e.length===0)return a.jsx("span",{children:"—"});const r=[...e].sort((n,i)=>{const o=t.findIndex(l=>l.value===n),s=t.findIndex(l=>l.value===i);return o-s});return a.jsx("span",{className:"flex flex-wrap gap-1",children:r.map(n=>{const i=t.find(l=>l.value===n),o=t.findIndex(l=>l.value===n),s=Hp(o>=0?o:0);return a.jsx("span",{className:`inline-block whitespace-nowrap rounded-full px-2 py-0.5 text-xs font-medium ${s.bg} ${s.text} ${s.darkBg} ${s.darkText}`,children:i?.label??String(n)},n)})})}function g4({phones:e,categoryLabelMap:t}){return e.length===0?a.jsx("span",{children:"—"}):a.jsxs("span",{className:"inline-flex items-center gap-1",children:[a.jsx("span",{className:"text-sm text-content-tertiary dark:text-dark-content-tertiary",children:Zp(e[0],t)}),e.length>1&&a.jsx(Ft,{color:"blue",label:`+${e.length-1}`})]})}function x4({socialNetworks:e,socialNetworkLabelMap:t}){return e.length===0?a.jsx("span",{children:"—"}):a.jsxs("span",{className:"inline-flex items-center gap-1",children:[a.jsx("span",{className:"text-sm text-content-tertiary dark:text-dark-content-tertiary",children:Kp(e[0],t)}),e.length>1&&a.jsx(Ft,{color:"blue",label:`+${e.length-1}`})]})}function b4({recordId:e,mode:t,useForOptions:r,phoneCategoryOptions:n,socialNetworkTypes:i,isLoading:o=!1,onAddContact:s,onEditContact:l,onViewContact:c,onDeleteContact:d,onRestoreContact:u}){const f=zt(w=>w.contacts),m=zt(w=>w.pendingAdds),p=zt(w=>w.pendingEdits),g=zt(w=>w.pendingDeletes),x=Qt(),v=qp("(min-width: 768px)"),b=(r?.length??0)>1,[y,k]=h.useState(1),D=Math.max(1,Math.ceil(f.length/us)),C=h.useMemo(()=>{const w=(y-1)*us;return f.slice(w,w+us)},[f,y]);y>D&&D>0&&k(1);const j=h.useMemo(()=>{if(i)return new Map(i.map(w=>[w.id,w.name]))},[i]),L=h.useMemo(()=>{if(n)return new Map(n.map(w=>[w.value,w.label]))},[n]);return a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsx("h2",{className:"text-base font-semibold text-content-primary dark:text-dark-content-primary",children:x.grid.title}),t==="edit"&&f.length>0&&a.jsx(te,{type:"outline-solid",size:"sm",onClick:s,disabled:o,children:x.grid.button.addContact})]}),o&&a.jsx(u4,{layout:v?"table":"card"}),!o&&f.length===0&&a.jsx(f4,{mode:t,onAddContact:s}),!o&&f.length>0&&a.jsxs(a.Fragment,{children:[v?a.jsx("div",{className:"overflow-x-auto",children:a.jsxs("table",{className:"min-w-[900px]","aria-label":x.grid.aria.table,children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border-primary dark:border-dark-border-primary",children:[b&&a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[240px]",children:x.grid.column.useFor}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[130px]",children:x.grid.column.name}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[160px]",children:x.grid.column.email}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[180px] whitespace-nowrap",children:x.grid.column.phone}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[180px]",children:x.grid.column.socialNetworks}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-right text-sm font-bold text-content-secondary dark:text-dark-content-secondary sticky right-0 bg-white dark:bg-dark-bg-primary z-10 min-w-[100px]",children:x.grid.column.actions})]})}),a.jsx("tbody",{children:C.map((w,R)=>{const N=fu(w,m,p,g),A=N?Gp[N]:"",M=N==="deleted",P=R%2===0?"bg-bg-primary dark:bg-dark-bg-primary":"bg-slate-50 dark:bg-slate-900";return a.jsxs("tr",{className:`border-b border-border-secondary dark:border-dark-border-primary ${A} ${P} ${M?"opacity-60":""}`,children:[b&&a.jsx("td",{className:"py-3 px-4 text-sm",children:a.jsx(h4,{useFor:w.useFor,useForOptions:r})}),a.jsx("td",{className:`py-3 px-4 text-sm text-content-primary dark:text-dark-content-primary ${M?"line-through text-content-tertiary dark:text-dark-content-tertiary":""}`,children:w.name}),a.jsx("td",{className:`py-3 px-4 text-sm text-content-tertiary dark:text-dark-content-tertiary ${M?"line-through":""}`,children:a.jsx(m4,{emails:w.emails})}),a.jsx("td",{className:`py-3 px-4 text-sm whitespace-nowrap ${M?"line-through":""}`,children:a.jsx(g4,{phones:w.phones,categoryLabelMap:L})}),a.jsx("td",{className:`py-3 px-4 text-sm whitespace-nowrap ${M?"line-through":""}`,children:a.jsx(x4,{socialNetworks:w.socialNetworks,socialNetworkLabelMap:j})}),a.jsx("td",{className:"py-3 px-4 text-right sticky right-0 bg-inherit z-10 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]",children:w.id!=null&&a.jsx(Xp,{contactId:w.id,mode:t,isPendingDelete:M,onEdit:l,onView:c,onDelete:d,onRestore:u})})]},w.id??R)})})]})}):a.jsx("div",{className:"flex flex-col gap-3",children:C.map((w,R)=>{const N=fu(w,m,p,g);return a.jsx(p4,{contact:w,state:N,mode:t,useForOptions:r,phoneCategoryOptions:n,socialNetworkTypes:i,onEdit:l,onView:c,onDelete:d,onRestore:u},w.id??R)})}),a.jsx("div",{className:"mt-4",children:a.jsx(j0,{currentPage:y,totalPages:D,onPageChange:k,backText:x.grid.pagination.previous,nextText:x.grid.pagination.next,className:"w-full"})})]})]})}function Jp(e){return ut.z.object({category:ut.z.number(),countryId:ut.z.string().min(1,e.phone.countryRequired),areaCode:ut.z.string().max(3,e.phone.areaCodeMaxLength),number:ut.z.string().trim().min(1,e.phone.numberRequired).max(10,e.phone.numberMaxLength),extension:ut.z.string().max(3,e.phone.extensionMaxLength)})}function Qp(e){return ut.z.object({socialNetworkTypeId:ut.z.string().min(1,e.socialNetwork.typeRequired),url:ut.z.string().trim().min(1,e.socialNetwork.urlRequired).max(2048,e.socialNetwork.urlMaxLength)})}function em(e,t){const r=ut.z.string().email(e.email.invalidFormat).max(256,e.email.maxLength),n=t?.requireClassification?ut.z.array(ut.z.number()).min(1,e.useFor.required):ut.z.array(ut.z.number());return ut.z.object({name:ut.z.string().trim().min(1,e.name.required).max(200,e.name.maxLength),emails:ut.z.array(r),address:ut.z.string().max(500,e.address.maxLength).nullable(),description:ut.z.string().nullable(),cityId:ut.z.string().nullable().optional(),neighborhoodId:ut.z.string().nullable().optional(),useFor:n,phones:ut.z.array(Jp(e)),socialNetworks:ut.z.array(Qp(e))})}const nc=jo.schema;Jp(nc);Qp(nc);em(nc);function mu(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function tm(...e){return t=>{let r=!1;const n=e.map(i=>{const o=mu(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i<n.length;i++){const o=n[i];typeof o=="function"?o():mu(e[i],null)}}}}function Fr(...e){return E.useCallback(tm(...e),e)}function rm(e){const t=v4(e),r=E.forwardRef((n,i)=>{const{children:o,...s}=n,l=E.Children.toArray(o),c=l.find(w4);if(c){const d=c.props.children,u=l.map(f=>f===c?E.Children.count(d)>1?E.Children.only(null):E.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...s,ref:i,children:E.isValidElement(d)?E.cloneElement(d,void 0,u):null})}return a.jsx(t,{...s,ref:i,children:o})});return r.displayName=`${e}.Slot`,r}function v4(e){const t=E.forwardRef((r,n)=>{const{children:i,...o}=r;if(E.isValidElement(i)){const s=j4(i),l=k4(o,i.props);return i.type!==E.Fragment&&(l.ref=n?tm(n,s):s),E.cloneElement(i,l)}return E.Children.count(i)>1?E.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var nm=Symbol("radix.slottable");function y4(e){const t=({children:r})=>a.jsx(a.Fragment,{children:r});return t.displayName=`${e}.Slottable`,t.__radixId=nm,t}function w4(e){return E.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===nm}function k4(e,t){const r={...t};for(const n in t){const i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...l)=>{const c=o(...l);return i(...l),c}:i&&(r[n]=i):n==="style"?r[n]={...i,...o}:n==="className"&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}function j4(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var C4=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pr=C4.reduce((e,t)=>{const r=rm(`Primitive.${t}`),n=E.forwardRef((i,o)=>{const{asChild:s,...l}=i,c=s?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(c,{...l,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function N4(e,t){e&&El.flushSync(()=>e.dispatchEvent(t))}function E4(e,t){const r=E.createContext(t),n=o=>{const{children:s,...l}=o,c=E.useMemo(()=>l,Object.values(l));return a.jsx(r.Provider,{value:c,children:s})};n.displayName=e+"Provider";function i(o){const s=E.useContext(r);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[n,i]}function am(e,t=[]){let r=[];function n(o,s){const l=E.createContext(s),c=r.length;r=[...r,s];const d=f=>{const{scope:m,children:p,...g}=f,x=m?.[e]?.[c]||l,v=E.useMemo(()=>g,Object.values(g));return a.jsx(x.Provider,{value:v,children:p})};d.displayName=o+"Provider";function u(f,m){const p=m?.[e]?.[c]||l,g=E.useContext(p);if(g)return g;if(s!==void 0)return s;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[d,u]}const i=()=>{const o=r.map(s=>E.createContext(s));return function(l){const c=l?.[e]||o;return E.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return i.scopeName=e,[n,S4(i,...t)]}function S4(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const s=n.reduce((l,{useScope:c,scopeName:d})=>{const f=c(o)[`__scope${d}`];return{...l,...f}},{});return E.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}function Lr(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}var Pa=globalThis?.document?E.useLayoutEffect:()=>{},R4=E[" useInsertionEffect ".trim().toString()]||Pa;function D4({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=I4({defaultProp:t,onChange:r}),l=e!==void 0,c=l?e:i;{const u=E.useRef(e!==void 0);E.useEffect(()=>{const f=u.current;f!==l&&console.warn(`${n} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=l},[l,n])}const d=E.useCallback(u=>{if(l){const f=A4(u)?u(e):u;f!==e&&s.current?.(f)}else o(u)},[l,e,o,s]);return[c,d]}function I4({defaultProp:e,onChange:t}){const[r,n]=E.useState(e),i=E.useRef(r),o=E.useRef(t);return R4(()=>{o.current=t},[t]),E.useEffect(()=>{i.current!==r&&(o.current?.(r),i.current=r)},[r,i]),[r,n,o]}function A4(e){return typeof e=="function"}function T4(e,t){return E.useReducer((r,n)=>t[r][n]??r,e)}var Co=e=>{const{present:t,children:r}=e,n=M4(t),i=typeof r=="function"?r({present:n.isPresent}):E.Children.only(r),o=Fr(n.ref,L4(i));return typeof r=="function"||n.isPresent?E.cloneElement(i,{ref:o}):null};Co.displayName="Presence";function M4(e){const[t,r]=E.useState(),n=E.useRef(null),i=E.useRef(e),o=E.useRef("none"),s=e?"mounted":"unmounted",[l,c]=T4(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return E.useEffect(()=>{const d=vi(n.current);o.current=l==="mounted"?d:"none"},[l]),Pa(()=>{const d=n.current,u=i.current;if(u!==e){const m=o.current,p=vi(d);e?c("MOUNT"):p==="none"||d?.display==="none"?c("UNMOUNT"):c(u&&m!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,c]),Pa(()=>{if(t){let d;const u=t.ownerDocument.defaultView??window,f=p=>{const x=vi(n.current).includes(CSS.escape(p.animationName));if(p.target===t&&x&&(c("ANIMATION_END"),!i.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",d=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},m=p=>{p.target===t&&(o.current=vi(n.current))};return t.addEventListener("animationstart",m),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{u.clearTimeout(d),t.removeEventListener("animationstart",m),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:E.useCallback(d=>{n.current=d?getComputedStyle(d):null,r(d)},[])}}function vi(e){return e?.animationName||"none"}function L4(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var O4=E[" useId ".trim().toString()]||(()=>{}),z4=0;function fs(e){const[t,r]=E.useState(O4());return Pa(()=>{r(n=>n??String(z4++))},[e]),e||(t?`radix-${t}`:"")}function $a(e){const t=E.useRef(e);return E.useEffect(()=>{t.current=e}),E.useMemo(()=>(...r)=>t.current?.(...r),[])}function F4(e,t=globalThis?.document){const r=$a(e);E.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var P4="DismissableLayer",dl="dismissableLayer.update",$4="dismissableLayer.pointerDownOutside",_4="dismissableLayer.focusOutside",hu,im=E.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),om=E.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:s,onDismiss:l,...c}=e,d=E.useContext(im),[u,f]=E.useState(null),m=u?.ownerDocument??globalThis?.document,[,p]=E.useState({}),g=Fr(t,L=>f(L)),x=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),b=x.indexOf(v),y=u?x.indexOf(u):-1,k=d.layersWithOutsidePointerEventsDisabled.size>0,D=y>=b,C=W4(L=>{const w=L.target,R=[...d.branches].some(N=>N.contains(w));!D||R||(i?.(L),s?.(L),L.defaultPrevented||l?.())},m),j=U4(L=>{const w=L.target;[...d.branches].some(N=>N.contains(w))||(o?.(L),s?.(L),L.defaultPrevented||l?.())},m);return F4(L=>{y===d.layers.size-1&&(n?.(L),!L.defaultPrevented&&l&&(L.preventDefault(),l()))},m),E.useEffect(()=>{if(u)return r&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(hu=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),gu(),()=>{r&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=hu)}},[u,m,r,d]),E.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),gu())},[u,d]),E.useEffect(()=>{const L=()=>p({});return document.addEventListener(dl,L),()=>document.removeEventListener(dl,L)},[]),a.jsx(Pr.div,{...c,ref:g,style:{pointerEvents:k?D?"auto":"none":void 0,...e.style},onFocusCapture:Lr(e.onFocusCapture,j.onFocusCapture),onBlurCapture:Lr(e.onBlurCapture,j.onBlurCapture),onPointerDownCapture:Lr(e.onPointerDownCapture,C.onPointerDownCapture)})});om.displayName=P4;var B4="DismissableLayerBranch",V4=E.forwardRef((e,t)=>{const r=E.useContext(im),n=E.useRef(null),i=Fr(t,n);return E.useEffect(()=>{const o=n.current;if(o)return r.branches.add(o),()=>{r.branches.delete(o)}},[r.branches]),a.jsx(Pr.div,{...e,ref:i})});V4.displayName=B4;function W4(e,t=globalThis?.document){const r=$a(e),n=E.useRef(!1),i=E.useRef(()=>{});return E.useEffect(()=>{const o=l=>{if(l.target&&!n.current){let c=function(){sm($4,r,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=c,t.addEventListener("click",i.current,{once:!0})):c()}else t.removeEventListener("click",i.current);n.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function U4(e,t=globalThis?.document){const r=$a(e),n=E.useRef(!1);return E.useEffect(()=>{const i=o=>{o.target&&!n.current&&sm(_4,r,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function gu(){const e=new CustomEvent(dl);document.dispatchEvent(e)}function sm(e,t,r,{discrete:n}){const i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?N4(i,o):i.dispatchEvent(o)}var ps="focusScope.autoFocusOnMount",ms="focusScope.autoFocusOnUnmount",xu={bubbles:!1,cancelable:!0},q4="FocusScope",lm=E.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[l,c]=E.useState(null),d=$a(i),u=$a(o),f=E.useRef(null),m=Fr(t,x=>c(x)),p=E.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;E.useEffect(()=>{if(n){let x=function(k){if(p.paused||!l)return;const D=k.target;l.contains(D)?f.current=D:qr(f.current,{select:!0})},v=function(k){if(p.paused||!l)return;const D=k.relatedTarget;D!==null&&(l.contains(D)||qr(f.current,{select:!0}))},b=function(k){if(document.activeElement===document.body)for(const C of k)C.removedNodes.length>0&&qr(l)};document.addEventListener("focusin",x),document.addEventListener("focusout",v);const y=new MutationObserver(b);return l&&y.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",v),y.disconnect()}}},[n,l,p.paused]),E.useEffect(()=>{if(l){vu.add(p);const x=document.activeElement;if(!l.contains(x)){const b=new CustomEvent(ps,xu);l.addEventListener(ps,d),l.dispatchEvent(b),b.defaultPrevented||(H4(X4(cm(l)),{select:!0}),document.activeElement===x&&qr(l))}return()=>{l.removeEventListener(ps,d),setTimeout(()=>{const b=new CustomEvent(ms,xu);l.addEventListener(ms,u),l.dispatchEvent(b),b.defaultPrevented||qr(x??document.body,{select:!0}),l.removeEventListener(ms,u),vu.remove(p)},0)}}},[l,d,u,p]);const g=E.useCallback(x=>{if(!r&&!n||p.paused)return;const v=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,b=document.activeElement;if(v&&b){const y=x.currentTarget,[k,D]=G4(y);k&&D?!x.shiftKey&&b===D?(x.preventDefault(),r&&qr(k,{select:!0})):x.shiftKey&&b===k&&(x.preventDefault(),r&&qr(D,{select:!0})):b===y&&x.preventDefault()}},[r,n,p.paused]);return a.jsx(Pr.div,{tabIndex:-1,...s,ref:m,onKeyDown:g})});lm.displayName=q4;function H4(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(qr(n,{select:t}),document.activeElement!==r)return}function G4(e){const t=cm(e),r=bu(t,e),n=bu(t.reverse(),e);return[r,n]}function cm(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function bu(e,t){for(const r of e)if(!Z4(r,{upTo:t}))return r}function Z4(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function K4(e){return e instanceof HTMLInputElement&&"select"in e}function qr(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&K4(e)&&t&&e.select()}}var vu=Y4();function Y4(){let e=[];return{add(t){const r=e[0];t!==r&&r?.pause(),e=yu(e,t),e.unshift(t)},remove(t){e=yu(e,t),e[0]?.resume()}}}function yu(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function X4(e){return e.filter(t=>t.tagName!=="A")}var J4="Portal",dm=E.forwardRef((e,t)=>{const{container:r,...n}=e,[i,o]=E.useState(!1);Pa(()=>o(!0),[]);const s=r||i&&globalThis?.document?.body;return s?xr.createPortal(a.jsx(Pr.div,{...n,ref:t}),s):null});dm.displayName=J4;var hs=0;function Q4(){E.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??wu()),document.body.insertAdjacentElement("beforeend",e[1]??wu()),hs++,()=>{hs===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),hs--}},[])}function wu(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ti="right-scroll-bar-position",Mi="width-before-scroll-bar",e6="with-scroll-bars-hidden",t6="--removed-body-scroll-bar-size";function gs(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function r6(e,t){var r=h.useState(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(n){var i=r.value;i!==n&&(r.value=n,r.callback(n,i))}}}})[0];return r.callback=t,r.facade}var n6=typeof window<"u"?E.useLayoutEffect:E.useEffect,ku=new WeakMap;function a6(e,t){var r=r6(null,function(n){return e.forEach(function(i){return gs(i,n)})});return n6(function(){var n=ku.get(r);if(n){var i=new Set(n),o=new Set(e),s=r.current;i.forEach(function(l){o.has(l)||gs(l,null)}),o.forEach(function(l){i.has(l)||gs(l,s)})}ku.set(r,e)},[e]),r}function i6(e){return e}function o6(e,t){t===void 0&&(t=i6);var r=[],n=!1,i={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(o){var s=t(o,n);return r.push(s),function(){r=r.filter(function(l){return l!==s})}},assignSyncMedium:function(o){for(n=!0;r.length;){var s=r;r=[],s.forEach(o)}r={push:function(l){return o(l)},filter:function(){return r}}},assignMedium:function(o){n=!0;var s=[];if(r.length){var l=r;r=[],l.forEach(o),s=r}var c=function(){var u=s;s=[],u.forEach(o)},d=function(){return Promise.resolve().then(c)};d(),r={push:function(u){s.push(u),d()},filter:function(u){return s=s.filter(u),r}}}};return i}function s6(e){e===void 0&&(e={});var t=o6(null);return t.options=gr({async:!0,ssr:!1},e),t}var um=function(e){var t=e.sideCar,r=kp(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw new Error("Sidecar medium not found");return E.createElement(n,gr({},r))};um.isSideCarExport=!0;function l6(e,t){return e.useMedium(t),um}var fm=s6(),xs=function(){},No=E.forwardRef(function(e,t){var r=E.useRef(null),n=E.useState({onScrollCapture:xs,onWheelCapture:xs,onTouchMoveCapture:xs}),i=n[0],o=n[1],s=e.forwardProps,l=e.children,c=e.className,d=e.removeScrollBar,u=e.enabled,f=e.shards,m=e.sideCar,p=e.noRelative,g=e.noIsolation,x=e.inert,v=e.allowPinchZoom,b=e.as,y=b===void 0?"div":b,k=e.gapMode,D=kp(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=m,j=a6([r,t]),L=gr(gr({},D),i);return E.createElement(E.Fragment,null,u&&E.createElement(C,{sideCar:fm,removeScrollBar:d,shards:f,noRelative:p,noIsolation:g,inert:x,setCallbacks:o,allowPinchZoom:!!v,lockRef:r,gapMode:k}),s?E.cloneElement(E.Children.only(l),gr(gr({},L),{ref:j})):E.createElement(y,gr({},L,{className:c,ref:j}),l))});No.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};No.classNames={fullWidth:Mi,zeroRight:Ti};var c6=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function d6(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=c6();return t&&e.setAttribute("nonce",t),e}function u6(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function f6(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var p6=function(){var e=0,t=null;return{add:function(r){e==0&&(t=d6())&&(u6(t,r),f6(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},m6=function(){var e=p6();return function(t,r){E.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},pm=function(){var e=m6(),t=function(r){var n=r.styles,i=r.dynamic;return e(n,i),null};return t},h6={left:0,top:0,right:0,gap:0},bs=function(e){return parseInt(e||"",10)||0},g6=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],n=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[bs(r),bs(n),bs(i)]},x6=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return h6;var t=g6(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},b6=pm(),_n="data-scroll-locked",v6=function(e,t,r,n){var i=e.left,o=e.top,s=e.right,l=e.gap;return r===void 0&&(r="margin"),`
|
|
1863
|
+
`,children:[a.jsx("input",{...R()}),a.jsxs("div",{className:"flex flex-col items-center justify-center space-y-3",children:[a.jsx("div",{className:"p-3 bg-bg-secondary dark:bg-dark-bg-tertiary rounded-full",children:x||a.jsx(Kc,{className:"w-8 h-8 text-primary-custom-600 dark:text-primary-custom-400"})}),a.jsxs("div",{children:[a.jsx("p",{className:"text-lg font-medium text-content-primary dark:text-dark-content-primary",children:c}),a.jsx("p",{className:"text-sm text-content-tertiary dark:text-dark-content-tertiary mt-1",children:d}),g&&a.jsx("p",{className:"text-[11px] font-normal text-content-tertiary dark:text-dark-content-tertiary mt-2 uppercase tracking-wider",children:k()})]})]})]}),M.length>0&&a.jsx("div",{className:"mt-4",children:M}),!s&&b.length>0&&a.jsx("div",{className:"mt-6 space-y-3",children:b.map(T=>a.jsx(Gk,{file:T,onRemove:L,disabled:m,dictionary:p},T.id))}),!s&&P&&a.jsx("div",{className:"mt-6 flex justify-end",children:a.jsxs("button",{onClick:j,className:`px-4 py-2 rounded-md font-medium transition-colors shadow-sm flex items-center ${v.submitButton||"bg-primary-custom-600 hover:bg-primary-custom-700 text-white"}`,children:[x||a.jsx(Kc,{className:"w-5 h-5 mr-2"}),p.uploadPendingButton?p.uploadPendingButton.replace("{count}",b.filter(T=>T.status==="pending").length.toString()):`Subir ${b.filter(T=>T.status==="pending").length} archivos pendientes`]})})]})},Op=({title:e,entity:t,entityId:r,mode:n="modal",isMaximized:i=!1,resources:o=[],allowSelection:s=!1,acceptButtonText:l="Aceptar",showFileUploader:c=!0,showFileName:d,onAccept:u,onClose:f,onBack:m,onUpload:p,onResourceCheck:g,className:x=""})=>{const v=D=>D.startsWith("image/")||/\.(jpg|jpeg|png|gif|webp|svg)$/i.test(D),b=async(D,C)=>p?(C(50),await p(D),C(100),{url:URL.createObjectURL(D),name:D.name}):(C(100),URL.createObjectURL(D)),y=[n==="modal"?"fixed inset-0 z-[80] flex items-center justify-center bg-black/50 p-4":"w-full h-full","animate-in fade-in duration-200",x].join(" ").trim(),k=["bg-white dark:bg-dark-bg-primary","border border-border-primary dark:border-dark-border-primary","flex flex-col overflow-hidden",n==="modal"?i?"w-full h-full rounded-none":"w-full max-w-[800px] max-h-[90vh] rounded-2xl shadow-2xl":"w-full h-full rounded-none"].join(" ").trim();return a.jsx("div",{className:y,children:a.jsxs("div",{className:k,children:[a.jsxs("div",{className:"bg-[#f4f4f5] dark:bg-dark-bg-primary/50 border-b border-border-primary dark:border-dark-border-primary px-5 py-4 flex items-center justify-between shrink-0",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[n==="page"&&m&&a.jsx("button",{onClick:m,className:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-full transition-colors","aria-label":"Volver",children:a.jsx(Q0,{className:"size-6 text-content-primary dark:text-dark-content-primary"})}),a.jsx("h3",{className:"text-[20px] font-bold text-content-primary dark:text-dark-content-primary leading-7 tracking-tight",children:e})]}),n==="modal"&&a.jsx("button",{onClick:f,className:"p-1.5 border border-[#93d1fd] dark:border-dark-border-custom bg-white dark:bg-dark-bg-primary rounded-md shadow-sm hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors","aria-label":"Cerrar",children:a.jsx(hn,{className:"size-4 text-primary-custom-600 dark:text-primary-custom-400"})})]}),a.jsx("div",{className:"flex-1 overflow-y-auto p-5 scrollbar-thin scrollbar-thumb-border-primary dark:scrollbar-thumb-dark-border-primary",children:a.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-5 items-stretch",children:[c&&a.jsx("div",{className:"col-span-2",children:a.jsx(Lp,{variant:"dropzone",uploadFunction:b,label:"Subir archivo",subLabel:"o arrastra y suelta aquí",accept:"image/*, .pdf, .doc, .docx, .xls, .xlsx",className:"h-full",classNames:{dropzoneInactive:"h-full min-h-[180px] flex flex-col justify-center",dropzoneActive:"h-full min-h-[180px] flex flex-col justify-center"}})}),o.map(D=>{const C=v(D.type),j=d??!C;return a.jsxs("div",{className:"group relative flex flex-col gap-2 animate-in zoom-in-95 duration-200",children:[a.jsxs("div",{className:"relative aspect-[3/4] w-full bg-gray-50 dark:bg-gray-800 rounded-lg border border-border-primary dark:border-dark-border-primary overflow-hidden",children:[C?a.jsx("img",{src:D.url,alt:D.name,className:"size-full object-cover transition-transform duration-300 group-hover:scale-105"}):a.jsx("div",{className:"size-full flex items-center justify-center",children:a.jsx(ef,{className:"size-12 text-gray-400 dark:text-gray-500"})}),s&&a.jsx("div",{className:"absolute top-2 left-2 z-10",children:a.jsx(Or,{checked:D.checked,onChange:L=>g?.(D.uuid,L.target.checked),className:"!p-0"})})]}),j&&a.jsx("span",{className:"text-sm font-medium text-content-primary dark:text-dark-content-primary truncate px-1",title:D.name,children:D.name})]},D.uuid)})]})}),a.jsxs("div",{className:"bg-[#f4f4f5] dark:bg-dark-bg-primary/50 border-t border-border-primary dark:border-dark-border-primary px-5 py-4 flex items-center justify-end gap-3 shrink-0",children:[a.jsx(te,{type:"plain",size:"l",onClick:f,className:"text-primary-custom-600 dark:text-primary-custom-400 hover:bg-primary-custom-50 dark:hover:bg-primary-custom-900/10",children:"Cancelar"}),a.jsx(te,{type:"default",size:"l",onClick:()=>u?.(o.filter(D=>D.checked)),children:l})]})]})})},zp=b0.create((e,t)=>({isOpen:!1,galleryProps:null,openGallery:r=>e({isOpen:!0,galleryProps:{...r,onClose:()=>{r.onClose?.(),e({isOpen:!1,galleryProps:null})}}}),closeGallery:()=>e({isOpen:!1,galleryProps:null}),updateGalleryProps:r=>e(n=>({galleryProps:n.galleryProps?{...n.galleryProps,...r}:null})),updateResources:(r,n)=>{const{galleryProps:i}=t();if(!i)return;const o=i.resources.map(s=>s.uuid===r?{...s,checked:n}:s);e({galleryProps:{...i,resources:o}})}})),Zk=()=>{const{isOpen:e,galleryProps:t,closeGallery:r,updateResources:n,updateGalleryProps:i}=zp();return!e||!t?null:a.jsx(Op,{...t,onResourceCheck:(o,s)=>{n(o,s),t.onResourceCheck?.(o,s)},onUpload:async o=>{t.onUpload&&await t.onUpload(o)},onClose:()=>{t.onClose?.(),r()}})},Fp=({onSelectFeature:e,onCreatePlansAndCriteria:t,searchTerm:r=""})=>{const{baseUrl:n}=jr(),i=h.useMemo(()=>new vr(n),[n]),[o,s]=h.useState([]),[l,c]=h.useState(!0),[d,u]=h.useState("");h.useEffect(()=>{const m=setTimeout(()=>{u(r)},300);return()=>clearTimeout(m)},[r]);const f=async()=>{c(!0);try{const m=await i.getAll({page:1,limit:100,search:d});s(m.data)}catch(m){console.error("Error loading features:",m),alert("Error cargando features. Revisa la consola.")}finally{c(!1)}};return h.useEffect(()=>{f()},[i,d]),a.jsx("div",{className:"bg-white rounded-2xl w-full p-5",children:l?a.jsx("div",{className:"p-6 text-gray-500",children:"Cargando..."}):a.jsx("div",{className:"w-full overflow-x-auto",children:a.jsxs("table",{className:"w-full text-left border-collapse",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Código"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Nombre"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Tipo"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200 text-center w-[100px]",children:"Acciones"})]})}),a.jsxs("tbody",{children:[o.length===0&&a.jsx("tr",{children:a.jsx("td",{colSpan:4,className:"px-5 py-6 text-center text-gray-500",children:"No hay maestros creados."})}),o.map(m=>a.jsxs("tr",{className:"group",children:[a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:m.code}),a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:m.description||m.name}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200",children:a.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal bg-[#dbeefe] text-[#0e79fd]",children:m.type==="Transaction"?"Transacción":m.type==="Document"?"Documento":"Maestro"})}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200 text-center",children:a.jsxs("div",{className:"flex items-center justify-center gap-2",children:[a.jsx(te,{type:"outline",size:"sm",onClick:()=>e&&e(m.id),leftIcon:a.jsx(Ua,{className:"h-4 w-4"}),ariaLabel:"Editar",title:"Entidad Dinámica",children:"ED"}),m.allowsPlansAndCriteria&&a.jsx(te,{type:"outline",size:"sm",onClick:()=>t&&t(m),leftIcon:a.jsx(Sb,{className:"h-4 w-4"}),ariaLabel:"Planes y Criterios",title:"Planes y Criterios",children:"PC"})]})})]},m.id))]})]})})})},Kk=()=>a.jsx("div",{className:"text-gray-400 cursor-grab active:cursor-grabbing hover:text-gray-600 transition-colors p-1",children:a.jsx(lo,{className:"w-5 h-5"})}),Yk=({id:e,field:t,onEdit:r,onDelete:n})=>{const{attributes:i,listeners:o,setNodeRef:s,transform:l,transition:c}=ko({id:e}),d={transform:Xr.Transform.toString(l),transition:c};return a.jsxs("div",{ref:s,style:d,className:"flex items-center border-b border-gray-200 py-2 group hover:bg-gray-50/50 transition-colors bg-white",children:[a.jsx("div",{className:"flex flex-col items-center justify-center min-h-[56px] px-4 py-2 shrink-0",children:a.jsx("div",{...i,...o,className:"outline-none",children:a.jsx(Kk,{})})}),a.jsx("div",{className:"flex flex-1 flex-col items-start justify-center min-h-[56px] px-4 py-2",children:a.jsx("p",{className:"leading-[20px] text-sm text-gray-900 font-medium",children:t.labels.es||t.code})}),a.jsxs("div",{className:"flex items-center gap-2 min-h-[56px] px-4 py-2 shrink-0 opacity-100 md:opacity-0 md:group-hover:opacity-100 transition-opacity",children:[a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(Ua,{className:"w-5 h-5 text-[#0e79fd] hover:text-blue-700"}),ariaLabel:"Editar campo",onClick:()=>r(t)}),a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500 hover:text-red-700"}),ariaLabel:"Eliminar campo",onClick:()=>n(t.id)})]})]})},Xk=({fields:e,onChange:t,onEdit:r,onAdd:n,isPlansAndCriteria:i})=>{const o=Gl(Gn(Ya),Gn(Ka,{coordinateGetter:ec})),s=u=>{const{active:f,over:m}=u;if(m&&f.id!==m.id){const p=e.findIndex(b=>b.id===f.id),g=e.findIndex(b=>b.id===m.id),v=Xa(e,p,g).map((b,y)=>({...b,order:y}));t(v)}},l=u=>{confirm("¿Seguro que deseas eliminar este campo?")&&t(e.filter(f=>f.id!==u))},c=u=>{r(u)},d=[...e].sort((u,f)=>u.order-f.order);return a.jsx(Xl,{sensors:o,collisionDetection:Zl,onDragEnd:s,children:a.jsxs("div",{className:"flex flex-col w-full h-full space-y-5",children:[a.jsxs("div",{className:"flex items-center justify-between w-full",children:[a.jsxs("div",{className:"bg-[#cffafe] border border-[#67e8f9] flex gap-2 items-center px-4 py-2 rounded-lg",children:[a.jsx(uo,{className:"w-6 h-6 text-[#0e7490]"}),a.jsx("p",{className:"font-normal text-sm text-[#0e7490]",children:"Arrastra las opciones para definir el orden en el formulario"})]}),a.jsx(te,{type:"outline-solid",onClick:n,children:i?"Nuevo Plan":"Nuevo Campo"})]}),a.jsxs("div",{className:"flex flex-col w-full border-t border-gray-200",children:[a.jsx(Ql,{items:d.map(u=>u.id),strategy:cp,children:d.map(u=>a.jsx(Yk,{id:u.id,field:u,onEdit:c,onDelete:l},u.id))}),e.length===0&&a.jsx("div",{className:"text-center text-gray-400 py-12 border-b border-gray-200 bg-gray-50/30",children:'No hay campos definidos. Haz clic en "Nuevo" para comenzar.'})]})]})})},Jk={[Pe.Text]:"Texto Corto",[Pe.TextArea]:"Texto Largo (Área)",[Pe.NumberInteger]:"Número Entero",[Pe.NumberDecimal]:"Número Decimal",[Pe.Currency]:"Moneda",[Pe.Date]:"Fecha",[Pe.Time]:"Hora",[Pe.DateTime]:"Fecha y Hora",[Pe.Checkbox]:"Casilla de Verificación",[Pe.Select]:"Selección Simple",[Pe.Radio]:"Botones de Opción (Radio)",[Pe.Multiselect]:"Selección Múltiple",[Pe.Lookup]:"Búsqueda (Lookup)",[Pe.Switch]:"Interruptor (Switch)",[Pe.GenericEntity]:"Entidad Genérica"},Qk=({field:e,genericLists:t=[],onSave:r,onCancel:n,isPlansAndCriteria:i,isNew:o})=>{const s=go(),l=s?.baseUrl?new URL(s.baseUrl).origin:"",[c,d]=h.useState({...e}),u=(m,p)=>{d(g=>({...g,[m]:p}))},f=(m,p)=>{d(g=>({...g,labels:{...g.labels,[m]:p}}))};return a.jsxs("div",{className:"flex flex-col w-full h-full relative overflow-hidden",children:[a.jsxs("div",{className:"flex justify-between items-center mb-6 shrink-0 border-b border-gray-100 pb-4",children:[a.jsx("p",{className:"font-medium text-base leading-6 text-primary-custom-600 dark:text-primary-custom-500 m-0",children:i?o?"Crear Plan":"Editar Plan":o?"Nuevo Campo":"Editar campo"}),a.jsx(te,{type:"outline",iconOnly:!0,size:"sm",onClick:n,leftIcon:a.jsx(hn,{className:"w-5 h-5"}),ariaLabel:"Cerrar"})]}),a.jsxs("div",{className:"flex flex-col gap-5 overflow-y-auto flex-1 pr-2 pb-2",children:[i&&a.jsx($e,{label:"Código",value:c.code,onChange:m=>u("code",m.target.value),disabled:!o&&!i,required:!0,fullWidth:!0}),a.jsxs("div",{className:"flex flex-col gap-5 w-full",children:[a.jsx($e,{label:"Etiqueta (ES)",value:c.labels.es||"",onChange:m=>f("es",m.target.value),required:!0,fullWidth:!0}),a.jsx($e,{label:"Etiqueta (EN)",value:c.labels.en||"",onChange:m=>f("en",m.target.value),fullWidth:!0})]}),!i&&a.jsx(St,{label:"Tipo",options:Object.values(Pe).filter(m=>![Pe.Select,Pe.Multiselect,Pe.Lookup].includes(m)).map(m=>({label:Jk[m]||m,value:m})),value:c.type,onChange:m=>u("type",m),required:!0,fullWidth:!0}),!i&&a.jsx(St,{label:"Espacio horizontal",options:[{label:"50%",value:"1"},{label:"100%",value:"2"}],value:String(c.layouts?.[0]?.colSpan||1),onChange:m=>{const p=typeof m=="string"?parseInt(m):m||1;d(g=>({...g,layouts:[{...g.layouts?.[0]||{breakpoint:"md",rowSpan:1,colStart:0,rowStart:0},colSpan:p}]}))},required:!0,fullWidth:!0}),a.jsxs("div",{className:"flex flex-col gap-3 w-full mt-2",children:[a.jsx(Wt,{label:"Requerido",labelPosition:"trailing",checked:c.required,onChange:m=>u("required",m.target.checked)}),!i&&a.jsxs(a.Fragment,{children:[a.jsx(Wt,{label:"Solo lectura",labelPosition:"trailing",checked:c.readonly,onChange:m=>u("readonly",m.target.checked)}),a.jsx(Wt,{label:"Visible",labelPosition:"trailing",checked:c.visible,onChange:m=>u("visible",m.target.checked)}),a.jsx(Wt,{label:"Único",labelPosition:"trailing",checked:c.isUnique||!1,onChange:m=>u("isUnique",m.target.checked)})]})]}),(c.type===Pe.NumberInteger||c.type===Pe.NumberDecimal||c.type===Pe.Currency)&&a.jsxs("div",{className:"flex flex-col gap-5",children:[a.jsx($e,{type:"number",label:"Mínimo",value:c.minValue||"",onChange:m=>u("minValue",parseFloat(m.target.value)),fullWidth:!0}),a.jsx($e,{type:"number",label:"Máximo",value:c.maxValue||"",onChange:m=>u("maxValue",parseFloat(m.target.value)),fullWidth:!0})]}),(c.type===Pe.Select||c.type===Pe.Radio||c.type===Pe.Multiselect)&&a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(St,{label:"Catálogo de Opciones",options:t.map(m=>({label:m.description||m.code,value:m.id})),value:c.genericListId,onChange:m=>u("genericListId",m),placeholder:t.length===0?"No hay catálogos creados":"Seleccionar catálogo...",disabled:t.length===0,fullWidth:!0}),t.length===0&&a.jsx("p",{className:"text-xs text-orange-600 bg-orange-50 p-2 rounded border border-orange-200 m-0",children:'⚠️ Debes crear un catálogo en "Configuración > Listas Generales" antes de usar este tipo de campo.'})]}),c.type===Pe.GenericEntity&&a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsx(br,{label:"Entidad Genérica",entity:"generic-entities",displayFields:["Code","Description"],value:c.genericEntityId||null,onChange:m=>u("genericEntityId",m?.Id||null),fetcher:async(m,p)=>{const g={...p,fields:p.fields.filter(b=>b!=="Id").concat("ID"),searchFields:p.searchFields?.map(b=>b==="Id"?"ID":b),filters:p.filters?.map(b=>b.map(y=>{const k={};for(const D in y)k[D==="Id"?"ID":D]=y[D];return k}))},x=await fetch(`${l}/api/v1/${m}/search`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(!x.ok)throw new Error("Error fetching generic entities");const v=await x.json();return{...v,data:v.data.map(b=>({...b,Id:b.ID}))}}}),!c.genericEntityId&&a.jsx("p",{className:"text-xs text-orange-600 bg-orange-50 p-2 rounded border border-orange-200 m-0",children:"⚠️ Debes elegir la entidad genérica relacionada a este campo."})]})]}),a.jsx("div",{className:"mt-5 shrink-0 w-full pt-1",children:a.jsx(te,{type:"outline",size:"xl",onClick:()=>r(c),className:"w-full flex justify-center",children:"Guardar"})})]})},e4=({fields:e,rules:t,onSave:r})=>{const[n,i]=h.useState(t||[]),o=[{label:"Mostrar",value:"Show"},{label:"Ocultar",value:"Hide"},{label:"Requerir",value:"Require"},{label:"Habilitar",value:"Enable"},{label:"Deshabilitar",value:"Disable"}],s=[{label:"Es Igual a",value:"Equals"},{label:"No es Igual a",value:"NotEquals"},{label:"Contiene",value:"Contains"},{label:"Mayor que",value:"GreaterThan"},{label:"Menor que",value:"LessThan"}],l=e.map(f=>({label:f.labels.es||f.code,value:f.id})),c=()=>{const f={id:crypto.randomUUID(),dynamicFieldId:e[0]?.id||"",action:"Show",dependsOnFieldId:e[0]?.id||"",condition:"Equals",value:""};i([...n,f])},d=f=>{i(n.filter(m=>m.id!==f))},u=(f,m,p)=>{i(n.map(g=>g.id===f?{...g,[m]:p}:g))};return a.jsxs("div",{className:"flex flex-col w-full h-full space-y-5",children:[a.jsxs("div",{className:"flex items-center justify-between w-full",children:[a.jsxs("div",{className:"bg-[#cffafe] border border-[#67e8f9] flex gap-2 items-center px-4 py-2 rounded-lg",children:[a.jsx(uo,{className:"w-6 h-6 text-[#0e7490]"}),a.jsx("p",{className:"font-normal text-sm text-[#0e7490]",children:"Configura reglas de comportamiento de los campos"})]}),a.jsx(te,{type:"outline-solid",onClick:c,disabled:e.length<2,children:"Nuevo"})]}),e.length<2&&a.jsx("div",{className:"text-sm text-yellow-600 bg-yellow-50 p-3 rounded-lg border border-yellow-200",children:"Necesitas al menos 2 campos creados para configurar reglas de dependencia."}),a.jsxs("div",{className:"flex flex-col w-full",children:[a.jsxs("div",{className:"flex w-full border-b border-gray-200 pb-3 mb-2 px-2 items-center min-h-[36px]",children:[a.jsx("div",{className:"w-10 shrink-0"})," ",a.jsx("div",{className:"w-[60px] shrink-0 text-sm font-medium text-gray-400",children:"Orden"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[140px] px-2",children:"Campo 1"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[120px] px-2",children:"Acción"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[140px] px-2",children:"Campo 2"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[120px] px-2",children:"Condición"}),a.jsx("div",{className:"flex-1 text-sm font-medium text-gray-400 min-w-[120px] px-2",children:"Campo 3 (Valor)"}),a.jsx("div",{className:"w-[80px] shrink-0 text-center text-sm font-medium text-gray-400",children:"Acciones"})]}),a.jsxs("div",{className:"flex flex-col w-full gap-1",children:[n.map((f,m)=>a.jsxs("div",{className:"flex items-center w-full border-b border-gray-200 py-3 px-2 group bg-white hover:bg-gray-50/50 transition-colors",children:[a.jsx("div",{className:"w-10 shrink-0 flex justify-center text-gray-400",children:a.jsx(lo,{className:"w-5 h-5 cursor-grab"})}),a.jsx("div",{className:"w-[60px] shrink-0 flex items-center",children:a.jsx("span",{className:"text-sm text-gray-900 font-normal",children:m+1})}),a.jsx("div",{className:"flex-1 min-w-[140px] px-2",children:a.jsx(St,{label:"",options:l,value:f.dynamicFieldId,onChange:p=>u(f.id,"dynamicFieldId",p)})}),a.jsx("div",{className:"flex-1 min-w-[120px] px-2",children:a.jsx(St,{label:"",options:o,value:f.action,onChange:p=>u(f.id,"action",p)})}),a.jsx("div",{className:"flex-1 min-w-[140px] px-2",children:a.jsx(St,{label:"",options:l,value:f.dependsOnFieldId,onChange:p=>u(f.id,"dependsOnFieldId",p)})}),a.jsx("div",{className:"flex-1 min-w-[120px] px-2",children:a.jsx(St,{label:"",options:s,value:f.condition,onChange:p=>u(f.id,"condition",p)})}),a.jsx("div",{className:"flex-1 min-w-[120px] px-2",children:a.jsx("input",{type:"text",value:f.value||"",onChange:p=>u(f.id,"value",p.target.value),placeholder:"Valor...",className:"w-full h-10 px-3 py-2 bg-white border border-gray-200 rounded-lg text-sm focus:outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500"})}),a.jsx("div",{className:"w-[80px] shrink-0 flex items-center justify-center",children:a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500 hover:text-red-700"}),ariaLabel:"Eliminar regla",onClick:()=>d(f.id)})})]},f.id)),n.length===0&&a.jsx("div",{className:"text-center text-gray-400 py-12 border-b border-gray-200 bg-gray-50/30",children:'No hay reglas configuradas. Haz clic en "Nuevo" para comenzar.'})]})]}),a.jsx("div",{className:"pt-4 flex justify-end",children:a.jsx(te,{type:"default",onClick:()=>r(n),children:"Guardar Cambios"})})]})},Pp=({entityId:e,featureId:t,featureEntityId:r,initialRenderMode:n,onBack:i})=>{const{baseUrl:o}=jr(),[s,l]=h.useState(null),[c,d]=h.useState([]),[u,f]=h.useState([]),[m,p]=h.useState(!0),[g,x]=h.useState(null),[v,b]=h.useState("fields"),[y,k]=h.useState(n||"tab"),[D,C]=h.useState({isOpen:!1,config:{}}),j=()=>{fetch(`${o}/dynamic-entities/${e}`).then(R=>R.json()).then(R=>{l(R),d(R.fields||[]),f(R.rules||[]),p(!1)}).catch(R=>{console.error(R),p(!1)})};h.useEffect(()=>{j()},[e,o]);const L=async()=>{if(s){p(!0);try{const R=new vr(o);await R.updateEntity(e,{id:e,code:s.entityCode,multiRecord:s.multiRecord,description:s.description,isReadonly:s.isReadonly,isDisabled:s.isDisabled,isPlansAndCriteria:s.isPlansAndCriteria}),await R.saveFields(e,c),await R.saveRules(e,u),t&&r&&await R.updateFeatureEntity(t,e,{id:r,featureId:t,dynamicEntityId:e,renderMode:y,order:0}),C({isOpen:!0,config:{title:"¡Éxito!",description:"Guardado correctamente.",cancelText:"Cerrar",onCancel:()=>C({isOpen:!1,config:{}}),onConfirm:void 0}}),j()}catch(R){console.error(R),C({isOpen:!0,config:{title:"Error",description:"Hubo un error al guardar.",cancelText:"Cerrar",onCancel:()=>C({isOpen:!1,config:{}}),onConfirm:void 0}})}finally{p(!1)}}};if(m)return a.jsx("div",{className:"p-6 text-gray-500",children:"Cargando..."});if(!s)return a.jsx("div",{className:"p-6 text-red-500",children:"Entidad no encontrada"});const w={label:"Guardar Cambios",onClick:L,icon:a.jsx(co,{className:"w-4 h-4"})};return a.jsxs(Hn,{title:s.description||s.entityCode,onBack:i,primaryAction:w,children:[a.jsxs("div",{className:"flex flex-col gap-6 w-full",children:[a.jsx("div",{className:"bg-white rounded-2xl p-5 flex items-start w-full",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-5 w-full items-end",children:[s.isPlansAndCriteria&&a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx("label",{className:"text-sm font-medium text-gray-900",children:"Código"}),a.jsx("input",{type:"text",value:s.entityCode||"",onChange:R=>l({...s,entityCode:R.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm outline-none focus:ring-2 focus:ring-[#0e79fd] focus:border-transparent transition-all"})]}),a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx("label",{className:"text-sm font-medium text-gray-900",children:"Nombre"}),a.jsx("input",{type:"text",value:s.description||"",onChange:R=>l({...s,description:R.target.value}),className:"px-3 py-2 border border-gray-300 rounded-lg text-sm outline-none focus:ring-2 focus:ring-[#0e79fd] focus:border-transparent transition-all"})]}),!s.isPlansAndCriteria&&a.jsxs("div",{className:"flex gap-3 items-start cursor-pointer group",onClick:()=>l({...s,multiRecord:!s.multiRecord}),children:[a.jsx("div",{className:"mt-0.5",children:a.jsx("div",{className:`w-8 h-5 rounded-full relative transition-colors duration-200 ease-in-out ${s.multiRecord?"bg-[#0e79fd]":"bg-gray-200"}`,children:a.jsx("div",{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform duration-200 ease-in-out shadow-sm ${s.multiRecord?"transform translate-x-3":""}`})})}),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("span",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600 transition-colors",children:"Multi registro"}),a.jsx("span",{className:"text-sm text-gray-400",children:"Se agregan múltiples filas por cada definición"})]})]}),t&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex gap-3 items-start cursor-pointer group",onClick:()=>k("tab"),children:[a.jsx("div",{className:"mt-0.5",children:a.jsx("div",{className:`w-8 h-5 rounded-full relative transition-colors duration-200 ease-in-out ${y==="tab"?"bg-[#0e79fd]":"bg-gray-200"}`,children:a.jsx("div",{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform duration-200 ease-in-out shadow-sm ${y==="tab"?"transform translate-x-3":""}`})})}),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("span",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600 transition-colors",children:"Mostrar en pestaña"}),a.jsx("span",{className:"text-sm text-gray-400",children:"Se creará una pestaña para los campos"})]})]}),a.jsxs("div",{className:"flex gap-3 items-start cursor-pointer group",onClick:()=>k("inline"),children:[a.jsx("div",{className:"mt-0.5",children:a.jsx("div",{className:`w-8 h-5 rounded-full relative transition-colors duration-200 ease-in-out ${y==="inline"?"bg-[#0e79fd]":"bg-gray-200"}`,children:a.jsx("div",{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform duration-200 ease-in-out shadow-sm ${y==="inline"?"transform translate-x-3":""}`})})}),a.jsxs("div",{className:"flex flex-col",children:[a.jsx("span",{className:"text-sm font-medium text-gray-900 group-hover:text-blue-600 transition-colors",children:"Mostrar en línea"}),a.jsx("span",{className:"text-sm text-gray-400",children:"Se agregarán los campos en el flujo"})]})]})]})]})}),a.jsxs("div",{className:"flex gap-2 border-b border-gray-200 pb-1",children:[a.jsxs("button",{className:`relative py-2 px-2 text-sm font-medium transition-colors ${v==="fields"?"text-[#0e79fd]":"text-gray-900 hover:text-gray-600"}`,onClick:()=>b("fields"),children:["Campos",v==="fields"&&a.jsx("div",{className:"absolute bottom-[-5px] left-0 right-0 h-[2px] bg-[#0e79fd] rounded-full"})]}),!s.isPlansAndCriteria&&a.jsxs("button",{className:`relative py-2 px-2 text-sm font-medium transition-colors ${v==="rules"?"text-[#0e79fd]":"text-gray-900 hover:text-gray-600"}`,onClick:()=>b("rules"),children:["Reglas",v==="rules"&&a.jsx("div",{className:"absolute bottom-[-5px] left-0 right-0 h-[2px] bg-[#0e79fd] rounded-full"})]})]}),a.jsxs("div",{className:"w-full min-h-[400px]",children:[v==="fields"&&a.jsxs("div",{className:"flex w-full items-start gap-6",children:[a.jsx("div",{className:`bg-white rounded-2xl p-6 h-fit border border-transparent transition-all duration-300 ease-in-out origin-left ${g?"lg:w-[calc(65%-24px)]":"w-full"} shrink-0`,children:a.jsx(Xk,{fields:c,isPlansAndCriteria:s.isPlansAndCriteria,onChange:d,onEdit:x,onAdd:()=>{const R={id:crypto.randomUUID(),code:`FIELD_${c.length+1}`,type:s.isPlansAndCriteria?"GenericEntity":"Text",labels:{es:"Nuevo Campo",en:"New Field"},order:c.length,layouts:s.isPlansAndCriteria?[{breakpoint:"md",colSpan:2,rowSpan:1,colStart:0,rowStart:0}]:void 0,required:!1,visible:!0,readonly:!1,isUnique:!1};x(R)}})}),g&&a.jsx("div",{className:"bg-white rounded-2xl p-6 h-fit border border-transparent w-full lg:w-[35%] shrink-0 animate-in slide-in-from-right-8 fade-in duration-300",children:a.jsx(Qk,{field:g,genericLists:s.lists||[],isPlansAndCriteria:s.isPlansAndCriteria,isNew:!c.some(R=>R.id===g.id),onSave:R=>{d(N=>N.find(M=>M.id===R.id)?N.map(M=>M.id===R.id?R:M):[...N,R]),x(null)},onCancel:()=>x(null)})})]}),v==="rules"&&a.jsx(e4,{fields:c,rules:u,onSave:R=>{f(R),C({isOpen:!0,config:{title:"Reglas actualizadas",description:'Reglas actualizadas en memoria. Presiona "Guardar Cambios" para aplicarlas de forma permanente.',cancelText:"Cerrar",onCancel:()=>C({isOpen:!1,config:{}}),onConfirm:void 0}})}})]})]}),D.isOpen&&D.config.title&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:a.jsx(Tr,{title:D.config.title,...D.config})})]})},t4=()=>a.jsx("div",{className:"text-gray-400 cursor-grab active:cursor-grabbing hover:text-gray-600 transition-colors p-1",children:a.jsx(lo,{className:"w-5 h-5"})}),r4=({fe:e,onEdit:t,onDelete:r})=>{const{attributes:n,listeners:i,setNodeRef:o,transform:s,transition:l}=ko({id:e.id}),c={transform:Xr.Transform.toString(s),transition:l};return a.jsxs("div",{ref:o,style:c,className:"flex items-center justify-between py-4 border-b border-gray-100 group bg-white hover:bg-gray-50/50 transition-colors px-2",children:[a.jsxs("div",{className:"flex items-center gap-4 flex-1",children:[a.jsx("div",{...n,...i,className:"outline-none",children:a.jsx(t4,{})}),a.jsxs("div",{className:"flex-1 grid grid-cols-12 gap-4 items-center",children:[a.jsx("div",{className:"col-span-4 font-medium text-sm text-gray-900",children:e.dynamicEntity?.code}),a.jsx("div",{className:"col-span-5 text-sm text-gray-500",children:e.dynamicEntity?.description||e.dynamicEntity?.code}),a.jsx("div",{className:"col-span-3",children:a.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal bg-[#dbeefe] text-[#0e79fd]",children:e.renderMode==="tab"?"Pestaña":"En Línea"})})]})]}),a.jsxs("div",{className:"flex items-center gap-2 w-[100px] justify-center",children:[a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(Ua,{className:"w-5 h-5 text-blue-500 hover:text-blue-700"}),ariaLabel:"Editar feature",onClick:()=>t(e)}),a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500 hover:text-red-700"}),ariaLabel:"Eliminar feature",onClick:()=>r(e)})]})]})},$p=({featureId:e,onBack:t})=>{const{baseUrl:r}=jr(),[n,i]=h.useState(null),[o,s]=h.useState(!0),[l,c]=h.useState("feature"),[d,u]=h.useState(null),[f,m]=h.useState(!1),[p,g]=h.useState(""),[x,v]=h.useState(""),[b,y]=h.useState("tab"),[k,D]=h.useState(!1),C=()=>{new vr(r).getById(e).then(T=>{i({...T,featureEntities:T.featureEntities?T.featureEntities.filter(F=>!F.dynamicEntity?.isPlansAndCriteria):[]}),s(!1)}).catch(T=>{console.error(T),s(!1)})};h.useEffect(()=>{C()},[e,r]);const j=async()=>{if(!p.trim()){alert("El código de la entidad es requerido");return}try{s(!0);const P=new vr(r),T=await P.createEntity({code:p.trim(),description:x.trim()||p.trim(),id:crypto.randomUUID(),multiRecord:!1});await P.addFeatureEntity(e,{id:crypto.randomUUID(),featureId:e,dynamicEntityId:T.id,renderMode:b,order:(n?.featureEntities?.length||0)+1,properties:{}}),m(!1),g(""),v(""),y("tab"),C()}catch(P){console.error(P),alert("Error al crear la entidad"),s(!1)}},L=async()=>{if(!(!n||!n.featureEntities)){s(!0);try{const P=new vr(r);await Promise.all(n.featureEntities.map(T=>P.updateFeatureEntity(e,T.dynamicEntityId,T))),D(!1),C()}catch(P){console.error(P),alert("Error al guardar el nuevo orden")}finally{s(!1)}}},w=Gl(Gn(Ya),Gn(Ka,{coordinateGetter:ec})),R=async P=>{const{active:T,over:F}=P;if(!(!n||!n.featureEntities||!F)&&T.id!==F.id){const $=[...n.featureEntities].sort((Z,G)=>(Z.order||0)-(G.order||0)),q=$.findIndex(Z=>Z.id===T.id),O=$.findIndex(Z=>Z.id===F.id),S=Xa($,q,O).map((Z,G)=>({...Z,order:G}));i({...n,featureEntities:S}),D(!0)}},N=async P=>{if(confirm("¿Está seguro? Esto elimina el vínculo, pero conserva la definición de la entidad."))try{s(!0),await new vr(r).removeFeatureEntity(e,P.dynamicEntityId),C()}catch(T){console.error(T),s(!1)}};if(o&&!n)return a.jsx("div",{className:"p-6 text-gray-500",children:"Cargando maestro..."});if(!n)return a.jsx("div",{className:"p-6 text-red-500",children:"Maestro no encontrado"});if(l==="entity"&&d)return a.jsx("div",{className:"w-full h-full",children:a.jsx(Pp,{entityId:d.dynamicEntityId,featureId:e,featureEntityId:d.id,initialRenderMode:d.renderMode||"tab",onBack:()=>{c("feature"),u(null),C()}})});const A=n.featureEntities?[...n.featureEntities].sort((P,T)=>(P.order||0)-(T.order||0)):[],M=a.jsxs("div",{className:"flex gap-3",children:[k&&a.jsx(te,{type:"outline-solid",onClick:L,disabled:o,leftIcon:a.jsx(co,{className:"w-4 h-4"}),children:"Guardar Orden"}),a.jsx(te,{type:"default",onClick:()=>m(!0),leftIcon:a.jsx(rf,{className:"w-4 h-4"}),children:"Nueva Entidad"})]});return a.jsx(Hn,{title:`Opción - ${n.name||n.description||n.code}`,onBack:t,toolbarEndContent:M,children:a.jsxs("div",{className:"flex flex-col w-full relative space-y-6",children:[a.jsx("div",{className:"bg-white rounded-2xl w-full p-6",children:a.jsxs("div",{className:"w-full",children:[a.jsxs("div",{className:"flex w-full border-b border-gray-200 pb-3 mb-2 px-2",children:[a.jsx("div",{className:"w-9"})," ",a.jsxs("div",{className:"flex-1 grid grid-cols-12 gap-4",children:[a.jsx("div",{className:"col-span-4 text-sm font-medium text-gray-400",children:"Código"}),a.jsx("div",{className:"col-span-5 text-sm font-medium text-gray-400",children:"Nombre"}),a.jsx("div",{className:"col-span-3 text-sm font-medium text-gray-400",children:"Visualización"})]}),a.jsx("div",{className:"w-[100px] text-center text-sm font-medium text-gray-400",children:"Acciones"})]}),n.featureEntities?.length===0&&a.jsx("div",{className:"text-center py-12 text-sm text-gray-400 border-b border-gray-100",children:'No hay entidades vinculadas. Haz clic en "Nueva Entidad" para empezar.'}),a.jsx(Xl,{sensors:w,collisionDetection:Zl,onDragEnd:R,children:a.jsx(Ql,{items:A.map(P=>P.id),strategy:cp,children:A.map(P=>a.jsx(r4,{fe:P,onEdit:T=>{u(T),c("entity")},onDelete:N},P.id))})})]})}),f&&a.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 backdrop-blur-sm p-4",children:a.jsxs("div",{className:"bg-white rounded-xl shadow-2xl w-full max-w-md overflow-hidden relative",children:[a.jsx("div",{className:"absolute right-4 top-4",children:a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),onClick:()=>m(!1),ariaLabel:"Cerrar modal"})}),a.jsx("div",{className:"px-6 py-5 border-b border-gray-100",children:a.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Nueva Entidad"})}),a.jsxs("div",{className:"p-6 space-y-5",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Código de Entidad ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",className:"w-full border border-gray-200 rounded-md px-3 py-2 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: DATOS_ADICIONALES",value:p,onChange:P=>g(P.target.value),autoFocus:!0}),a.jsx("p",{className:"text-xs text-gray-500",children:"Un identificador único sin espacios para la base de datos."})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Nombre ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",className:"w-full border border-gray-200 rounded-md px-3 py-2 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: Información técnica extra",value:x,onChange:P=>v(P.target.value),onKeyDown:P=>{P.key==="Enter"&&j()}}),a.jsx("p",{className:"text-xs text-gray-500",children:"El nombre visible que se mostrará en las pestañas."})]}),a.jsxs("div",{className:"space-y-3 pt-2",children:[a.jsx("label",{className:"text-sm font-medium text-gray-900",children:"Modo de Visualización"}),a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsxs("label",{className:`cursor-pointer border rounded-lg p-3 flex flex-col items-center gap-2 transition-colors ${b==="tab"?"bg-[#dbeefe]/30 border-[#0e79fd]":"bg-white border-gray-200 hover:bg-gray-50"}`,children:[a.jsx("input",{type:"radio",name:"renderMode",value:"tab",className:"sr-only",checked:b==="tab",onChange:()=>y("tab")}),a.jsx("span",{className:`text-sm font-medium ${b==="tab"?"text-[#0e79fd]":"text-gray-700"}`,children:"Pestaña (Tab)"})]}),a.jsxs("label",{className:`cursor-pointer border rounded-lg p-3 flex flex-col items-center gap-2 transition-colors ${b==="inline"?"bg-[#dbeefe]/30 border-[#0e79fd]":"bg-white border-gray-200 hover:bg-gray-50"}`,children:[a.jsx("input",{type:"radio",name:"renderMode",value:"inline",className:"sr-only",checked:b==="inline",onChange:()=>y("inline")}),a.jsx("span",{className:`text-sm font-medium ${b==="inline"?"text-[#0e79fd]":"text-gray-700"}`,children:"En Línea"})]})]})]})]}),a.jsxs("div",{className:"px-6 py-4 bg-gray-50 border-t border-gray-100 flex justify-end gap-3 shrink-0",children:[a.jsx(te,{type:"plain",onClick:()=>m(!1),children:"Cancelar"}),a.jsx(te,{type:"default",onClick:j,disabled:!p.trim()||o,children:o?"Creando...":"Guardar"})]})]})})]})})},n4=()=>{const{baseUrl:e}=jr(),[t,r]=h.useState([]),[n,i]=h.useState(!0),[o,s]=h.useState(null),l=async()=>{i(!0);try{const f=await(await fetch(`${e}/dynamic-entities/catalogs`)).json();r(f)}catch(u){console.error(u)}finally{i(!1)}};h.useEffect(()=>{l()},[e]);const c=async()=>{if(!o)return;const u=o.id?"PUT":"POST",f=o.id?`${e}/dynamic-entities/catalogs/${o.id}`:`${e}/dynamic-entities/catalogs`;try{await fetch(f,{method:u,headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),s(null),l()}catch(m){console.error(m),alert("Error al guardar catálogo")}},d=async u=>{if(confirm("¿Eliminar catálogo?"))try{await fetch(`${e}/dynamic-entities/catalogs/${u}`,{method:"DELETE"}),l()}catch(f){console.error(f)}};return a.jsxs("div",{className:"flex flex-col w-full",children:[a.jsxs("div",{className:"flex justify-between items-center mb-6",children:[a.jsxs("div",{className:"bg-[#cffafe] border border-[#67e8f9] flex items-center gap-2 px-4 py-2 rounded-lg",children:[a.jsx(uo,{className:"w-6 h-6 text-[#0e7490]"}),a.jsx("span",{className:"text-sm text-[#0e7490]",children:"Crea un listado de opciones"})]}),a.jsx(te,{type:"outline-solid",onClick:()=>s({code:"",active:!0,items:[]}),children:"Nuevo catálogo"})]}),n?a.jsx("div",{className:"text-gray-500 py-4",children:"Cargando catálogos..."}):a.jsx("div",{className:"w-full overflow-x-auto",children:a.jsxs("table",{className:"w-full text-left border-collapse",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Código"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Nombre"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200",children:"Opciones"}),a.jsx("th",{className:"px-5 py-4 text-sm font-medium text-gray-400 border-b border-gray-200 text-center w-[100px]",children:"Acciones"})]})}),a.jsxs("tbody",{children:[t.length===0&&a.jsx("tr",{children:a.jsx("td",{colSpan:4,className:"px-5 py-6 text-center text-gray-500",children:"No has creado catálogos aún. Los catálogos son necesarios para campos de tipo Radio y Select."})}),t.map(u=>a.jsxs("tr",{className:"group",children:[a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:u.code}),a.jsx("td",{className:"px-5 py-4 text-sm text-gray-900 border-b border-gray-200",children:u.description||"Sin descripción"}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200",children:a.jsxs("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal bg-[#dbeefe] text-[#0e79fd]",children:[u.items?.length||0," ",u.items?.length===1?"Campo adicional":"Campos adicionales"]})}),a.jsx("td",{className:"px-5 py-4 text-sm border-b border-gray-200 text-center",children:a.jsxs("div",{className:"flex items-center justify-center gap-2",children:[a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(Ua,{className:"h-5 w-5"}),ariaLabel:"Editar",onClick:()=>s(u)}),a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"h-5 w-5"}),ariaLabel:"Eliminar",className:"text-red-500",onClick:()=>u.id&&d(u.id)})]})})]},u.id))]})]})}),o&&a.jsx("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm flex items-center justify-center p-4",children:a.jsxs("div",{className:"bg-white rounded-xl shadow-2xl border border-gray-200 relative w-full max-w-4xl flex flex-col max-h-[90vh] overflow-hidden",children:[a.jsx("div",{className:"absolute right-5 top-5 z-10",children:a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(hn,{className:"w-5 h-5"}),ariaLabel:"Cerrar modal",onClick:()=>s(null)})}),a.jsxs("div",{className:"p-6 flex flex-col gap-6 overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx("div",{className:"bg-[#fcedc9] w-10 h-10 rounded-full flex items-center justify-center shrink-0",children:a.jsx(zl,{className:"w-6 h-6 text-yellow-700"})}),a.jsx("h2",{className:"text-xl font-bold text-gray-900 tracking-tight",children:o.id?"Editar catálogo":"Nuevo catálogo"})]}),a.jsxs("div",{className:"flex gap-5",children:[a.jsxs("div",{className:"flex flex-col gap-2 w-64",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Código ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",value:o.code,onChange:u=>s({...o,code:u.target.value}),disabled:!!o.id,placeholder:"Ej: 91289421",className:"border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500 disabled:bg-gray-50"})]}),a.jsxs("div",{className:"flex flex-col gap-2 w-64",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 flex gap-1",children:["Nombre ",a.jsx("span",{className:"text-red-300",children:"*"})]}),a.jsx("input",{type:"text",value:o.description||"",onChange:u=>s({...o,description:u.target.value}),placeholder:"Ej: Estado del producto",className:"border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500"})]})]}),a.jsxs("div",{className:"flex flex-col items-end gap-5",children:[a.jsx(te,{type:"outline-solid",size:"sm",onClick:()=>{const u=[...o.items,{value:"",label:"",order:o.items.length,active:!0}];s({...o,items:u})},children:"Nuevo"}),a.jsxs("div",{className:"w-full",children:[a.jsxs("div",{className:"flex w-full border-b border-gray-200 min-h-[36px]",children:[a.jsx("div",{className:"flex-1 px-4 py-2 text-sm font-medium text-gray-400 flex items-center",children:"Valor ID"}),a.jsx("div",{className:"flex-1 px-4 py-2 text-sm font-medium text-gray-400 flex items-center",children:"Etiqueta"}),a.jsx("div",{className:"w-[100px] px-4 py-2 text-sm font-medium text-gray-400 flex items-center justify-center",children:"Acciones"})]}),o.items.map((u,f)=>a.jsxs("div",{className:"flex w-full border-b border-gray-200 py-2 items-center",children:[a.jsx("div",{className:"flex-1 px-4",children:a.jsx("input",{type:"text",value:u.value,onChange:m=>{const p=[...o.items];p[f].value=m.target.value,s({...o,items:p})},className:"w-full border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: john_smith"})}),a.jsx("div",{className:"flex-1 px-4",children:a.jsx("input",{type:"text",value:u.label,onChange:m=>{const p=[...o.items];p[f].label=m.target.value,s({...o,items:p})},className:"w-full border border-gray-200 rounded-md px-3 py-1.5 text-sm text-gray-700 focus:outline-none focus:border-blue-500",placeholder:"Ej: John Smith"})}),a.jsx("div",{className:"w-[100px] px-4 flex items-center justify-center",children:a.jsx(te,{type:"plain",size:"sm",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5"}),ariaLabel:"Eliminar opción",className:"text-red-500",onClick:()=>{const m=o.items.filter((p,g)=>g!==f);s({...o,items:m})}})})]},f)),o.items.length===0&&a.jsx("div",{className:"w-full py-8 text-center text-sm text-gray-400 border-b border-gray-200",children:'No hay opciones agregadas. Haz clic en "Nuevo" para comenzar.'})]})]})]}),a.jsx("div",{className:"px-6 py-4 flex justify-end gap-3 w-full border-t border-gray-100 bg-gray-50 shrink-0",children:a.jsx(te,{type:"default",onClick:c,children:"Guardar"})})]})})]})},a4=()=>{const{baseUrl:e}=jr(),t=h.useMemo(()=>new vr(e),[e]),[r,n]=h.useState(null),[i,o]=h.useState(null),[s,l]=h.useState(null),[c,d]=h.useState(""),u=async f=>{try{const m=`${f.code}_planes_criterios`.toUpperCase(),g=(await t.getById(f.id)).featureEntities?.find(x=>x.dynamicEntity?.code===m||x.dynamicEntity?.isPlansAndCriteria);if(g)n(f.id),o(g.dynamicEntityId),l(g.id);else{const x=await t.createEntity({code:m,description:`Planes y Criterios para ${f.name}`,multiRecord:!0,isReadonly:!1,isDisabled:!1,isPlansAndCriteria:!0}),v=await t.addFeatureEntity(f.id,{featureId:f.id,dynamicEntityId:x.id,renderMode:"tab",order:0});n(f.id),o(x.id),l(v.id)}}catch(m){console.error("Error creating plans and criteria entity:",m),alert("Error al crear o abrir la entidad de planes y criterios. Revisa la consola.")}};return i&&r?a.jsx(Pp,{entityId:i,featureId:r,featureEntityId:s||void 0,onBack:()=>{o(null),l(null),n(null)}}):r?a.jsx($p,{featureId:r,onBack:()=>n(null)}):a.jsx(Hn,{title:"Opciones del sistema",toolbarEndContent:a.jsx("div",{className:"w-full sm:w-64",children:a.jsx($e,{placeholder:"Buscar por código o nombre...",value:c,onChange:f=>d(f.target.value),leftIcon:a.jsx(fo,{className:"h-5 w-5 text-gray-400"})})}),children:a.jsx("div",{className:"flex flex-col w-full",children:a.jsx(Fp,{onSelectFeature:n,onCreatePlansAndCriteria:u,searchTerm:c})})})},_p=({onClose:e,onSave:t})=>{const[r,n]=h.useState(""),[i,o]=h.useState("");return a.jsx("div",{className:"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm flex items-center justify-center p-4",children:a.jsxs("div",{className:"bg-white dark:bg-dark-bg-primary rounded-xl shadow-2xl border border-gray-200 dark:border-dark-border-primary relative w-full max-w-lg flex flex-col",children:[a.jsxs("div",{className:"flex justify-between items-center px-6 py-4 border-b border-gray-100 dark:border-dark-border-primary",children:[a.jsx("h2",{className:"text-lg font-bold text-gray-900 dark:text-dark-content-primary",children:"Nueva Entidad Genérica"}),a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(hn,{className:"w-5 h-5"}),ariaLabel:"Cerrar",onClick:e})]}),a.jsxs("div",{className:"p-6 flex flex-col gap-5",children:[a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 dark:text-dark-content-primary",children:["Código ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsx($e,{value:r,onChange:s=>n(s.target.value),placeholder:"Ej: ESTADO_CIVIL"})]}),a.jsxs("div",{className:"flex flex-col gap-2",children:[a.jsxs("label",{className:"text-sm font-medium text-gray-900 dark:text-dark-content-primary",children:["Descripción ",a.jsx("span",{className:"text-red-500",children:"*"})]}),a.jsx($e,{value:i,onChange:s=>o(s.target.value),placeholder:"Ej: Estado Civil"})]})]}),a.jsxs("div",{className:"px-6 py-4 flex justify-end gap-3 border-t border-gray-100 dark:border-dark-border-primary bg-gray-50 dark:bg-dark-bg-secondary rounded-b-xl",children:[a.jsx(te,{type:"plain",onClick:e,children:"Cancelar"}),a.jsx(te,{type:"default",disabled:!r||!i,onClick:()=>t({code:r,description:i,isActive:!0}),children:"Crear Entidad"})]})]})})},Bp=({entity:e,initialItems:t=[],onBack:r,onSave:n,isLoading:i=!1})=>{const[o,s]=h.useState(e.description),[l,c]=h.useState(t),d=()=>{c([...l,{id:Math.random().toString(),genericEntityId:e.id,code:"",value:"",sortOrder:l.length,isActive:!0}])},u=(m,p,g)=>{const x=[...l];x[m]={...x[m],[p]:g},c(x)},f=m=>{const p=l.filter((g,x)=>x!==m);c(p)};return a.jsxs("div",{className:"flex flex-col w-full h-full gap-6",children:[a.jsxs("div",{className:"flex flex-col sm:flex-row gap-5",children:[a.jsxs("div",{className:"flex w-full sm:w-1/3 flex-col gap-2",children:[a.jsx("label",{className:"text-sm font-medium text-content-primary dark:text-dark-content-primary",children:"Código"}),a.jsx($e,{value:e.code,disabled:!0})]}),a.jsxs("div",{className:"flex w-full sm:w-1/3 flex-col gap-2",children:[a.jsx("label",{className:"text-sm font-medium text-content-primary dark:text-dark-content-primary",children:"Descripción"}),a.jsx($e,{value:o,onChange:m=>s(m.target.value)})]})]}),a.jsx("hr",{className:"border-border-primary dark:border-dark-border-primary"}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsxs("div",{className:"flex justify-between items-center",children:[a.jsx("h3",{className:"text-lg font-medium text-content-primary dark:text-dark-content-primary",children:"Variables (Opciones)"}),a.jsx(te,{onClick:d,type:"outline-solid",size:"sm",children:"+ Agregar Opción"})]}),a.jsxs("div",{className:"flex flex-col border border-border-primary dark:border-dark-border-primary rounded-xl overflow-hidden bg-white dark:bg-dark-bg-primary",children:[a.jsxs("div",{className:"flex bg-gray-50 dark:bg-dark-bg-secondary px-4 py-3 border-b border-border-primary dark:border-dark-border-primary",children:[a.jsx("div",{className:"flex-1 text-xs font-semibold text-content-secondary dark:text-dark-content-secondary uppercase tracking-wider",children:"Código"}),a.jsx("div",{className:"flex-[2] text-xs font-semibold text-content-secondary dark:text-dark-content-secondary uppercase tracking-wider",children:"Valor (Etiqueta)"}),a.jsx("div",{className:"w-16 text-center text-xs font-semibold text-content-secondary dark:text-dark-content-secondary uppercase tracking-wider",children:"Acción"})]}),l.map((m,p)=>a.jsxs("div",{className:"flex items-center px-4 py-3 border-b border-border-primary dark:dark-border-primary last:border-0",children:[a.jsx("div",{className:"flex-1 pr-4",children:a.jsx($e,{placeholder:"Ej: OPT_1",value:m.code,onChange:g=>u(p,"code",g.target.value)})}),a.jsx("div",{className:"flex-[2] pr-4",children:a.jsx($e,{placeholder:"Ej: Opción 1",value:m.value,onChange:g=>u(p,"value",g.target.value)})}),a.jsx("div",{className:"w-16 flex justify-center",children:a.jsx(te,{type:"plain",iconOnly:!0,leftIcon:a.jsx(un,{className:"w-5 h-5 text-red-500"}),onClick:()=>f(p)})})]},m.id)),l.length===0&&a.jsx("div",{className:"p-8 text-center text-sm text-content-secondary dark:text-dark-content-secondary",children:'No se han agregado opciones. Haz clic en "Agregar Opción" para comenzar.'})]})]}),a.jsxs("div",{className:"flex justify-end gap-3 mt-auto pt-4",children:[a.jsx(te,{type:"plain",onClick:r,children:"Cancelar"}),a.jsx(te,{type:"default",disabled:i,onClick:()=>n({...e,description:o},l),children:i?"Guardando...":"Guardar Cambios"})]})]})},i4=({title:e="Entidades Genéricas",entities:t=[],isLoading:r=!1,onSelectEntity:n,onCreateEntity:i,onSaveEntity:o,onLoadItems:s,className:l=""})=>{const[c,d]=h.useState(""),[u,f]=h.useState(!1),[m,p]=h.useState(null),[g,x]=h.useState([]),[v,b]=h.useState(!1),y=async C=>{if(p(C),n&&n(C),s){b(!0);try{const j=await s(C);x(j)}catch(j){console.error("Error loading items:",j),x([])}finally{b(!1)}}},k=t.filter(C=>C.code.toLowerCase().includes(c.toLowerCase())||C.description.toLowerCase().includes(c.toLowerCase()));if(m)return a.jsx(Hn,{title:e,onBack:()=>{p(null),x([])},children:v?a.jsx("div",{className:"flex items-center justify-center py-16",children:a.jsx("span",{className:"text-sm text-content-secondary dark:text-dark-content-secondary",children:"Cargando opciones..."})}):a.jsx(Bp,{entity:m,initialItems:g,onBack:()=>{p(null),x([])},onSave:(C,j)=>{o&&o(C,j),p(null),x([])},isLoading:r},m.id+"-"+g.length)});const D=[{header:"Código",accessor:"code",sortable:!0},{header:"Descripción",accessor:"description",sortable:!0},{header:"Estado",accessor:"isActive",render:C=>a.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-md text-xs font-normal ${C?"bg-[#dbeefe] text-[#0e79fd]":"bg-red-50 text-red-600"}`,children:C?"Activo":"Inactivo"})},{header:"Acciones",accessor:"id",align:"center",render:(C,j)=>a.jsx("button",{onClick:L=>{L.stopPropagation(),y(j)},className:"inline-flex items-center justify-center text-[#0e79fd] hover:text-blue-800 transition-colors",title:"Editar",children:a.jsx(Ua,{className:"h-5 w-5"})})}];return a.jsxs(Hn,{title:e,toolbarEndContent:a.jsxs("div",{className:"flex w-full sm:w-auto items-center gap-3",children:[a.jsx("div",{className:"w-full sm:w-64",children:a.jsx($e,{placeholder:"Buscar entidad...",value:c,onChange:C=>d(C.target.value),leftIcon:a.jsx(fo,{className:"h-5 w-5 text-gray-400"})})}),a.jsx(te,{onClick:()=>f(!0),variant:"default",children:"Nueva Entidad"})]}),children:[a.jsx("div",{className:`w-full h-full flex flex-col gap-4 ${l}`,children:a.jsx(Wn,{columns:D,data:k,loading:r})}),u&&a.jsx(_p,{onClose:()=>f(!1),onSave:C=>{i&&i(C),f(!1)}})]})},jo={schema:{name:{required:"El nombre es obligatorio",maxLength:"El nombre no puede exceder 200 caracteres"},email:{invalidFormat:"El formato del correo electrónico no es válido",maxLength:"El correo no puede exceder 256 caracteres"},address:{maxLength:"La dirección no puede exceder 500 caracteres"},phone:{countryRequired:"El país es obligatorio",areaCodeMaxLength:"El área no puede exceder 3 caracteres",numberRequired:"El número de teléfono es obligatorio",numberMaxLength:"El número no puede exceder 10 caracteres",extensionMaxLength:"La extensión no puede exceder 3 caracteres"},socialNetwork:{typeRequired:"Debe seleccionar un tipo de red social",urlRequired:"La URL del perfil es obligatoria",urlMaxLength:"La URL no puede exceder 2048 caracteres"},useFor:{required:"El contacto debe tener al menos un uso"}},modal:{title:{create:"Agregar contacto",edit:"Editar contacto",view:"Detalle de contacto"},description:"Formulario de contacto",button:{save:"Agregar",update:"Actualizar",cancel:"Cancelar",close:"Cerrar",addPhone:"Agregar teléfono",addSocialNetwork:"Agregar red social"},label:{name:"Nombre",nameRequired:"Nombre *",email:"Email",address:"Dirección",description:"Descripción",useFor:"Usar para",country:"País",state:"Estado/Departamento",city:"Ciudad",neighborhood:"Barrio",category:"Categoría",phoneNumber:"Número",socialType:"Tipo",socialUrl:"URL"},placeholder:{name:"Nombre del contacto",address:"Dirección del contacto",description:"Descripción del contacto",select:"— Seleccionar —",loading:"Cargando...",socialUrl:"https://..."},tab:{basicData:"Datos básicos",location:"Ubicación",phone:"Teléfono",socialNetwork:"Redes sociales"},section:{location:"Ubicación",phones:"Teléfonos",socialNetworks:"Redes Sociales"},error:{preventRemoval:"Debe existir al menos un contacto Predeterminado",transferBlocked:"No se puede transferir. El contacto predeterminado actual no tiene otros usos y quedaría sin ninguno.",neighborhoodMismatch:"El barrio seleccionado no pertenece a la ciudad indicada",catalogsPhone:"Error al cargar catálogos. Las opciones de país pueden no estar disponibles.",catalogsSocial:"Error al cargar catálogos. Los tipos de red social pueden no estar disponibles."},aria:{phoneCategory:e=>`Categoría del teléfono ${e+1}`,phoneCountry:e=>`País del teléfono ${e+1}`,removePhone:e=>`Eliminar teléfono ${e+1}`,socialType:e=>`Tipo de red social ${e+1}`,socialUrl:e=>`URL de red social ${e+1}`,removeSocial:e=>`Eliminar red social ${e+1}`,country:"País",state:"Estado/Departamento",city:"Ciudad",neighborhood:"Barrio"},defaultCategory:"Móvil",emptyState:{phone:'No hay registros. Haz clic en "Agregar teléfono"',socialNetwork:'No hay registros. Haz clic en "Agregar red social"'},column:{actions:"Acciones"}},grid:{title:"Contacto",button:{addContact:"Agregar contacto"},aria:{table:"Tabla de contactos"},column:{name:"Nombre",email:"Email",useFor:"Usar para",phone:"Teléfono",socialNetworks:"Redes sociales",actions:"Acciones"},pagination:{previous:"Anterior",next:"Siguiente"},emptyBanner:"No hay registros. Haz clic en “Agregar contacto”"},actions:{pendingDelete:"Pendiente de eliminación",undo:"Deshacer",viewDetail:"Ver Detalle",edit:"Editar",delete:"Eliminar"},emptyState:{noContacts:"No hay contactos registrados.",addHint:" Haz clic en 'Agregar Contacto' para comenzar.",addButton:"Agregar Contacto"},pillEmail:{error:{invalidFormat:"El formato del correo electrónico no es válido",duplicate:"Este correo ya fue agregado"},placeholder:"Ingrese correo y presione Enter...",aria:{list:"Correos electrónicos",emailLabel:e=>`Correo: ${e}`,removeEmail:e=>`Eliminar ${e}`,addEmail:"Agregar correo electrónico"}},phoneInput:{placeholder:{area:"Área",number:"Número de teléfono",extension:"Ext."},aria:{group:"Número de teléfono: área, número, extensión",areaCode:"Código de área",number:"Número",extension:"Extensión"}},tagSelector:{selectAll:"Usar para todo",aria:{group:"Usar para",option:e=>`Usar para: ${e}`}},manager:{defaultLabel:"Predeterminado"},dialog:{default:{title:"Cambiar contacto predeterminado",newContactFallback:"el nuevo contacto",message:(e,t)=>`El contacto “${e}” ya está marcado como Predeterminado. ¿Desea transferir el predeterminado a “${t}”?`,cancel:"Cancelar",confirm:"Confirmar"},delete:{title:"Eliminar",message:"¿Estás seguro de eliminar el registro?",cancel:"Cancelar",confirm:"Confirmar"},deleteDefault:{title:"Eliminar contacto predeterminado",message:(e,t)=>`El contacto “${e}” es el predeterminado. Al eliminarlo, el predeterminado se transferirá a “${t}”. ¿Desea continuar?`,cancel:"Cancelar",confirm:"Confirmar"}},skeleton:{column:{name:"Nombre",email:"Email",phone:"Teléfono",actions:"Acciones"}},enums:{useFor:{0:"Predeterminado"},phoneCategory:{0:"Móvil"}}};function o4(e,t){if(!t)return e;function r(n,i){const o={...n};for(const s of Object.keys(i)){const l=i[s];if(l===void 0)continue;const c=n[s];typeof l=="function"||typeof c!="object"||c===null?o[s]=l:o[s]=r(c,l)}return o}return r(e,t)}const Vp=h.createContext(null),Wp=h.createContext(jo);function Up(){const e=h.useContext(Vp);if(!e)throw new Error("useContactServiceAdapter must be used within a ContactServiceProvider");return e}function Qt(){return h.useContext(Wp)}function s4({adapter:e,translations:t,children:r}){const n=h.useMemo(()=>o4(jo,t),[t]);return a.jsx(Vp.Provider,{value:e,children:a.jsx(Wp.Provider,{value:n,children:r})})}const it=0;function wa(e){return Object.entries(e).map(([t,r])=>({value:Number(t),label:r}))}const l4={recordId:"",contacts:[],pendingAdds:[],pendingEdits:new Map,pendingDeletes:new Set,maxContacts:10},zt=b0.create()((e,t)=>({...l4,loadContacts:(r,n)=>{e({recordId:r,contacts:n,pendingAdds:[],pendingEdits:new Map,pendingDeletes:new Set})},addContact:r=>{const n={...r,id:crypto.randomUUID()};e(i=>({contacts:[...i.contacts,n],pendingAdds:[...i.pendingAdds,n]}))},editContact:(r,n)=>{e(i=>{const o=i.contacts.map(c=>c.id===r?{...c,...n}:c),s=o.find(c=>c.id===r);if(!s)return i;const l=new Map(i.pendingEdits);return l.set(r,s),{contacts:o,pendingEdits:l}})},deleteContact:r=>{e(n=>{const i=new Set(n.pendingDeletes);if(i.add(r),n.contacts.find(s=>s.id===r)?.useFor.includes(it)){const s=n.contacts.find(l=>l.id!==r&&!i.has(l.id??""));if(s?.id){const l=new Map(n.pendingEdits),c={...s,useFor:s.useFor.includes(it)?s.useFor:[it,...s.useFor],isDefault:!0};return l.set(s.id,c),{contacts:n.contacts.map(d=>d.id===s.id?c:d),pendingDeletes:i,pendingEdits:l}}}return{pendingDeletes:i}})},restoreContact:r=>{e(n=>{const i=new Set(n.pendingDeletes);if(i.delete(r),n.contacts.find(s=>s.id===r)?.useFor.includes(it)){const s=n.contacts.find(l=>l.id!==r&&!i.has(l.id??"")&&l.useFor.includes(it));if(s?.id){const l=new Map(n.pendingEdits),c={...s,useFor:s.useFor.filter(d=>d!==it),isDefault:!1};return l.set(s.id,c),{contacts:n.contacts.map(d=>d.id===s.id?c:d),pendingDeletes:i,pendingEdits:l}}}return{pendingDeletes:i}})},getPendingChanges:()=>{const r=t(),n=r.pendingAdds.length>0,i=r.pendingEdits.size>0,o=r.pendingDeletes.size>0;if(!n&&!i&&!o)return null;const s=new Set(r.pendingAdds.map(c=>c.id)),l=r.contacts.filter(c=>c.id==null||!r.pendingDeletes.has(c.id)).map(c=>s.has(c.id)?{...c,id:null}:c);return{recordId:r.recordId,contacts:l,maxContacts:r.maxContacts}},resetChanges:()=>{e({pendingAdds:[],pendingEdits:new Map,pendingDeletes:new Set})},setMaxContacts:r=>{e({maxContacts:r})}}));function qp(e){const[t,r]=h.useState(()=>typeof window>"u"?!1:window.matchMedia(e).matches);return h.useEffect(()=>{const n=window.matchMedia(e),i=o=>r(o.matches);return n.addEventListener("change",i),r(n.matches),()=>n.removeEventListener("change",i)},[e]),t}const uu=[{bg:"bg-primary-custom-100",text:"text-primary-custom-600",border:"border-primary-custom-300",darkBg:"dark:bg-blue-900",darkText:"dark:text-blue-200",darkBorder:"dark:border-blue-700"},{bg:"bg-green-100",text:"text-green-800",border:"border-green-300",darkBg:"dark:bg-green-900",darkText:"dark:text-green-200",darkBorder:"dark:border-green-700"},{bg:"bg-amber-100",text:"text-amber-800",border:"border-amber-300",darkBg:"dark:bg-amber-900",darkText:"dark:text-amber-200",darkBorder:"dark:border-amber-700"},{bg:"bg-purple-100",text:"text-purple-800",border:"border-purple-300",darkBg:"dark:bg-purple-900",darkText:"dark:text-purple-200",darkBorder:"dark:border-purple-700"},{bg:"bg-cyan-100",text:"text-cyan-800",border:"border-cyan-300",darkBg:"dark:bg-cyan-900",darkText:"dark:text-cyan-200",darkBorder:"dark:border-cyan-700"},{bg:"bg-red-100",text:"text-red-800",border:"border-red-300",darkBg:"dark:bg-red-900",darkText:"dark:text-red-200",darkBorder:"dark:border-red-700"}];function Hp(e){return uu[e%uu.length]}const Gp={new:"shadow-[inset_4px_0_0_0_var(--color-primary-400)]",modified:"shadow-[inset_4px_0_0_0_var(--color-amber-400)]",deleted:"shadow-[inset_4px_0_0_0_var(--color-red-400)]"};function fu(e,t,r,n){return e.id!=null&&n.has(e.id)?"deleted":t.some(i=>i.id===e.id)?"new":e.id!=null&&r.has(e.id)?"modified":null}function Zp(e,t){let r=t?.get(e.category)??String(e.category);return e.areaCode?r+=` ${e.areaCode}-${e.number}`:r+=` ${e.number}`,e.extension&&(r+=` ext ${e.extension}`),r}function Kp(e,t){const r=e.url.length>40?`${e.url.substring(0,37)}...`:e.url;return`${t?.get(e.socialNetworkTypeId)??e.socialNetworkTypeId}: ${r}`}const us=5,c4=h.createContext({}),Yp=!0;function d4({baseColor:e,highlightColor:t,width:r,height:n,borderRadius:i,circle:o,direction:s,duration:l,enableAnimation:c=Yp,customHighlightBackground:d}){const u={};return s==="rtl"&&(u["--animation-direction"]="reverse"),typeof l=="number"&&(u["--animation-duration"]=`${l}s`),c||(u["--pseudo-element-display"]="none"),(typeof r=="string"||typeof r=="number")&&(u.width=r),(typeof n=="string"||typeof n=="number")&&(u.height=n),(typeof i=="string"||typeof i=="number")&&(u.borderRadius=i),o&&(u.borderRadius="50%"),typeof e<"u"&&(u["--base-color"]=e),typeof t<"u"&&(u["--highlight-color"]=t),typeof d=="string"&&(u["--custom-highlight-background"]=d),u}function an({count:e=1,wrapper:t,className:r,containerClassName:n,containerTestId:i,circle:o=!1,style:s,...l}){var c,d,u;const f=h.useContext(c4),m={...l};for(const[k,D]of Object.entries(l))typeof D>"u"&&delete m[k];const p={...f,...m,circle:o},g={...s,...d4(p)};let x="react-loading-skeleton";r&&(x+=` ${r}`);const v=(c=p.inline)!==null&&c!==void 0?c:!1,b=[],y=Math.ceil(e);for(let k=0;k<y;k++){let D=g;if(y>e&&k===y-1){const j=(d=D.width)!==null&&d!==void 0?d:"100%",L=e%1,w=typeof j=="number"?j*L:`calc(${j} * ${L})`;D={...D,width:w}}const C=h.createElement("span",{className:x,style:D,key:k},"");v?b.push(C):b.push(h.createElement(h.Fragment,{key:k},C,h.createElement("br",null)))}return h.createElement("span",{className:n,"data-testid":i,"aria-live":"polite","aria-busy":(u=p.enableAnimation)!==null&&u!==void 0?u:Yp},t?b.map((k,D)=>h.createElement(t,{key:D},k)):b)}const pu=3;function u4({layout:e="table"}){const t=Qt();return e==="card"?a.jsx("div",{className:"flex flex-col gap-3",children:Array.from({length:pu}).map((r,n)=>a.jsxs("div",{className:"rounded-md bg-white p-4 shadow-sm dark:bg-slate-900",children:[a.jsx(an,{width:160,height:16}),a.jsx(an,{width:200,height:14,className:"mt-1"}),a.jsx(an,{width:120,height:12,className:"mt-1"})]},n))}):a.jsxs("table",{className:"w-full",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-slate-200 dark:border-slate-700",children:[a.jsx("th",{className:"py-3 px-4 text-left text-sm font-medium text-slate-500",children:t.skeleton.column.name}),a.jsx("th",{className:"py-3 px-4 text-left text-sm font-medium text-slate-500",children:t.skeleton.column.email}),a.jsx("th",{className:"py-3 px-4 text-left text-sm font-medium text-slate-500",children:t.skeleton.column.phone}),a.jsx("th",{className:"py-3 px-4 text-right text-sm font-medium text-slate-500",children:t.skeleton.column.actions})]})}),a.jsx("tbody",{children:Array.from({length:pu}).map((r,n)=>a.jsxs("tr",{className:"border-b border-slate-100 dark:border-slate-800",children:[a.jsx("td",{className:"py-3 px-4",children:a.jsx(an,{width:140})}),a.jsx("td",{className:"py-3 px-4",children:a.jsx(an,{width:180})}),a.jsx("td",{className:"py-3 px-4",children:a.jsx(an,{width:120})}),a.jsx("td",{className:"py-3 px-4 text-right",children:a.jsx(an,{width:80})})]},n))})]})}function f4({mode:e,onAddContact:t}){const r=Qt();return a.jsxs("div",{className:"flex flex-col items-center gap-4",children:[a.jsxs("div",{className:"flex w-full items-center gap-3 rounded-lg bg-cyan-50 px-4 py-3 dark:bg-cyan-950/30",children:[a.jsx(ot.Info,{className:"h-5 w-5 shrink-0 text-cyan-600 dark:text-cyan-400"}),a.jsx("p",{className:"text-sm text-cyan-800 dark:text-cyan-200",children:r.grid.emptyBanner})]}),e==="edit"&&a.jsx(te,{type:"outline-solid",htmlType:"button",onClick:t,children:r.grid.button.addContact})]})}function Xp({contactId:e,mode:t,isPendingDelete:r,onEdit:n,onView:i,onDelete:o,onRestore:s}){const l=Qt();return r?a.jsx("div",{className:"flex items-center justify-end",children:a.jsx(te,{type:"outline-solid",size:"xs",onClick:()=>s(e),children:l.actions.undo})}):t==="view"?a.jsx("div",{className:"flex items-center justify-end gap-2",children:a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Eye,{className:"h-4 w-4"}),onClick:()=>i(e),ariaLabel:l.actions.viewDetail})}):a.jsxs("div",{className:"flex items-center justify-end gap-2",children:[a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Pencil,{className:"h-4 w-4"}),onClick:()=>n(e),ariaLabel:l.actions.edit}),a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Eye,{className:"h-4 w-4"}),onClick:()=>i(e),ariaLabel:l.actions.viewDetail}),a.jsx(te,{type:"plain",size:"xs",iconOnly:!0,leftIcon:a.jsx(ot.Trash2,{className:"h-4 w-4 text-content-extensions-red"}),onClick:()=>o(e),ariaLabel:l.actions.delete})]})}function p4({contact:e,state:t,mode:r,useForOptions:n,phoneCategoryOptions:i,socialNetworkTypes:o,onEdit:s,onView:l,onDelete:c,onRestore:d}){const u=t?Gp[t]:"",f=t==="deleted",m=(n?.length??0)>1,p=h.useMemo(()=>{if(o)return new Map(o.map(x=>[x.id,x.name]))},[o]),g=h.useMemo(()=>{if(i)return new Map(i.map(x=>[x.value,x.label]))},[i]);return a.jsx("div",{className:`rounded-lg bg-bg-primary p-4 shadow-xs border border-border-secondary dark:bg-dark-bg-primary dark:border-dark-border-primary ${u} ${f?"opacity-60":""}`,children:a.jsxs("div",{className:"flex items-start justify-between",children:[a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("p",{className:`text-sm font-medium text-content-primary dark:text-dark-content-primary ${f?"line-through":""}`,children:e.name}),m&&e.useFor.length>0&&a.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:e.useFor.map(x=>{const v=n.find(k=>k.value===x),b=n.findIndex(k=>k.value===x),y=Hp(b>=0?b:0);return a.jsx("span",{className:`inline-block rounded-full px-2 py-0.5 text-xs font-medium ${y.bg} ${y.text} ${y.darkBg} ${y.darkText}`,children:v?.label??String(x)},x)})}),e.emails.length>0&&a.jsxs("div",{className:"mt-1 flex items-center gap-1",children:[a.jsx("span",{className:"inline-block max-w-[180px] truncate rounded-full bg-slate-100 px-2 py-0.5 text-xs text-content-primary dark:bg-slate-800 dark:text-dark-content-primary",children:e.emails[0]}),e.emails.length>1&&a.jsxs("span",{className:"inline-block rounded-full bg-primary-custom-100 px-1.5 py-0.5 text-xs font-medium text-primary-custom-600",children:["+",e.emails.length-1]})]}),e.phones.length>0&&a.jsx("div",{className:"mt-2 space-y-0.5",children:e.phones.map((x,v)=>a.jsx("p",{className:"text-xs text-content-secondary dark:text-dark-content-secondary",children:Zp(x,g)},v))}),e.socialNetworks.length>0&&a.jsx("div",{className:"mt-1 space-y-0.5",children:e.socialNetworks.map((x,v)=>a.jsx("p",{className:"text-xs text-content-tertiary dark:text-dark-content-tertiary",children:Kp(x,p)},v))})]}),a.jsx("div",{className:"ml-4 flex-shrink-0",children:e.id!=null&&a.jsx(Xp,{contactId:e.id,mode:r,isPendingDelete:f,onEdit:s,onView:l,onDelete:c,onRestore:d})})]})})}function m4({emails:e}){return e.length===0?a.jsx("span",{children:"—"}):a.jsxs("span",{className:"inline-flex items-center gap-1",children:[a.jsx("span",{className:"inline-block max-w-[180px] truncate rounded-full bg-slate-100 px-2 py-0.5 text-xs text-content-primary dark:bg-slate-800 dark:text-dark-content-primary",children:e[0]}),e.length>1&&a.jsx(Ft,{color:"blue",label:`+${e.length-1}`})]})}function h4({useFor:e,useForOptions:t}){if(e.length===0)return a.jsx("span",{children:"—"});const r=[...e].sort((n,i)=>{const o=t.findIndex(l=>l.value===n),s=t.findIndex(l=>l.value===i);return o-s});return a.jsx("span",{className:"flex flex-wrap gap-1",children:r.map(n=>{const i=t.find(l=>l.value===n),o=t.findIndex(l=>l.value===n),s=Hp(o>=0?o:0);return a.jsx("span",{className:`inline-block whitespace-nowrap rounded-full px-2 py-0.5 text-xs font-medium ${s.bg} ${s.text} ${s.darkBg} ${s.darkText}`,children:i?.label??String(n)},n)})})}function g4({phones:e,categoryLabelMap:t}){return e.length===0?a.jsx("span",{children:"—"}):a.jsxs("span",{className:"inline-flex items-center gap-1",children:[a.jsx("span",{className:"text-sm text-content-tertiary dark:text-dark-content-tertiary",children:Zp(e[0],t)}),e.length>1&&a.jsx(Ft,{color:"blue",label:`+${e.length-1}`})]})}function x4({socialNetworks:e,socialNetworkLabelMap:t}){return e.length===0?a.jsx("span",{children:"—"}):a.jsxs("span",{className:"inline-flex items-center gap-1",children:[a.jsx("span",{className:"text-sm text-content-tertiary dark:text-dark-content-tertiary",children:Kp(e[0],t)}),e.length>1&&a.jsx(Ft,{color:"blue",label:`+${e.length-1}`})]})}function b4({recordId:e,mode:t,useForOptions:r,phoneCategoryOptions:n,socialNetworkTypes:i,isLoading:o=!1,onAddContact:s,onEditContact:l,onViewContact:c,onDeleteContact:d,onRestoreContact:u}){const f=zt(w=>w.contacts),m=zt(w=>w.pendingAdds),p=zt(w=>w.pendingEdits),g=zt(w=>w.pendingDeletes),x=Qt(),v=qp("(min-width: 768px)"),b=(r?.length??0)>1,[y,k]=h.useState(1),D=Math.max(1,Math.ceil(f.length/us)),C=h.useMemo(()=>{const w=(y-1)*us;return f.slice(w,w+us)},[f,y]);y>D&&D>0&&k(1);const j=h.useMemo(()=>{if(i)return new Map(i.map(w=>[w.id,w.name]))},[i]),L=h.useMemo(()=>{if(n)return new Map(n.map(w=>[w.value,w.label]))},[n]);return a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center justify-between mb-3",children:[a.jsx("h2",{className:"text-base font-semibold text-content-primary dark:text-dark-content-primary",children:x.grid.title}),t==="edit"&&f.length>0&&a.jsx(te,{type:"outline-solid",size:"sm",onClick:s,disabled:o,children:x.grid.button.addContact})]}),o&&a.jsx(u4,{layout:v?"table":"card"}),!o&&f.length===0&&a.jsx(f4,{mode:t,onAddContact:s}),!o&&f.length>0&&a.jsxs(a.Fragment,{children:[v?a.jsx("div",{className:"overflow-x-auto",children:a.jsxs("table",{className:"min-w-[900px]","aria-label":x.grid.aria.table,children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border-primary dark:border-dark-border-primary",children:[b&&a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[240px]",children:x.grid.column.useFor}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[130px]",children:x.grid.column.name}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[160px]",children:x.grid.column.email}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[180px] whitespace-nowrap",children:x.grid.column.phone}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-left text-sm font-bold text-content-secondary dark:text-dark-content-secondary min-w-[180px]",children:x.grid.column.socialNetworks}),a.jsx("th",{scope:"col",className:"py-3 px-4 text-right text-sm font-bold text-content-secondary dark:text-dark-content-secondary sticky right-0 bg-white dark:bg-dark-bg-primary z-10 min-w-[100px]",children:x.grid.column.actions})]})}),a.jsx("tbody",{children:C.map((w,R)=>{const N=fu(w,m,p,g),A=N?Gp[N]:"",M=N==="deleted",P=R%2===0?"bg-bg-primary dark:bg-dark-bg-primary":"bg-slate-50 dark:bg-slate-900";return a.jsxs("tr",{className:`border-b border-border-secondary dark:border-dark-border-primary ${A} ${P} ${M?"opacity-60":""}`,children:[b&&a.jsx("td",{className:"py-3 px-4 text-sm",children:a.jsx(h4,{useFor:w.useFor,useForOptions:r})}),a.jsx("td",{className:`py-3 px-4 text-sm text-content-primary dark:text-dark-content-primary ${M?"line-through text-content-tertiary dark:text-dark-content-tertiary":""}`,children:w.name}),a.jsx("td",{className:`py-3 px-4 text-sm text-content-tertiary dark:text-dark-content-tertiary ${M?"line-through":""}`,children:a.jsx(m4,{emails:w.emails})}),a.jsx("td",{className:`py-3 px-4 text-sm whitespace-nowrap ${M?"line-through":""}`,children:a.jsx(g4,{phones:w.phones,categoryLabelMap:L})}),a.jsx("td",{className:`py-3 px-4 text-sm whitespace-nowrap ${M?"line-through":""}`,children:a.jsx(x4,{socialNetworks:w.socialNetworks,socialNetworkLabelMap:j})}),a.jsx("td",{className:"py-3 px-4 text-right sticky right-0 bg-inherit z-10 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]",children:w.id!=null&&a.jsx(Xp,{contactId:w.id,mode:t,isPendingDelete:M,onEdit:l,onView:c,onDelete:d,onRestore:u})})]},w.id??R)})})]})}):a.jsx("div",{className:"flex flex-col gap-3",children:C.map((w,R)=>{const N=fu(w,m,p,g);return a.jsx(p4,{contact:w,state:N,mode:t,useForOptions:r,phoneCategoryOptions:n,socialNetworkTypes:i,onEdit:l,onView:c,onDelete:d,onRestore:u},w.id??R)})}),a.jsx("div",{className:"mt-4",children:a.jsx(j0,{currentPage:y,totalPages:D,onPageChange:k,backText:x.grid.pagination.previous,nextText:x.grid.pagination.next,className:"w-full"})})]})]})}function Jp(e){return ut.z.object({category:ut.z.number(),countryId:ut.z.string().min(1,e.phone.countryRequired),areaCode:ut.z.string().max(3,e.phone.areaCodeMaxLength),number:ut.z.string().trim().min(1,e.phone.numberRequired).max(10,e.phone.numberMaxLength),extension:ut.z.string().max(3,e.phone.extensionMaxLength)})}function Qp(e){return ut.z.object({socialNetworkTypeId:ut.z.string().min(1,e.socialNetwork.typeRequired),url:ut.z.string().trim().min(1,e.socialNetwork.urlRequired).max(2048,e.socialNetwork.urlMaxLength)})}function em(e,t){const r=ut.z.string().email(e.email.invalidFormat).max(256,e.email.maxLength),n=t?.requireClassification?ut.z.array(ut.z.number()).min(1,e.useFor.required):ut.z.array(ut.z.number());return ut.z.object({name:ut.z.string().trim().min(1,e.name.required).max(200,e.name.maxLength),emails:ut.z.array(r),address:ut.z.string().max(500,e.address.maxLength).nullable(),description:ut.z.string().nullable(),cityId:ut.z.string().nullable().optional(),neighborhoodId:ut.z.string().nullable().optional(),useFor:n,phones:ut.z.array(Jp(e)),socialNetworks:ut.z.array(Qp(e))})}const nc=jo.schema;Jp(nc);Qp(nc);em(nc);function mu(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function tm(...e){return t=>{let r=!1;const n=e.map(i=>{const o=mu(i,t);return!r&&typeof o=="function"&&(r=!0),o});if(r)return()=>{for(let i=0;i<n.length;i++){const o=n[i];typeof o=="function"?o():mu(e[i],null)}}}}function Fr(...e){return E.useCallback(tm(...e),e)}function rm(e){const t=v4(e),r=E.forwardRef((n,i)=>{const{children:o,...s}=n,l=E.Children.toArray(o),c=l.find(w4);if(c){const d=c.props.children,u=l.map(f=>f===c?E.Children.count(d)>1?E.Children.only(null):E.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...s,ref:i,children:E.isValidElement(d)?E.cloneElement(d,void 0,u):null})}return a.jsx(t,{...s,ref:i,children:o})});return r.displayName=`${e}.Slot`,r}function v4(e){const t=E.forwardRef((r,n)=>{const{children:i,...o}=r;if(E.isValidElement(i)){const s=j4(i),l=k4(o,i.props);return i.type!==E.Fragment&&(l.ref=n?tm(n,s):s),E.cloneElement(i,l)}return E.Children.count(i)>1?E.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var nm=Symbol("radix.slottable");function y4(e){const t=({children:r})=>a.jsx(a.Fragment,{children:r});return t.displayName=`${e}.Slottable`,t.__radixId=nm,t}function w4(e){return E.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===nm}function k4(e,t){const r={...t};for(const n in t){const i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...l)=>{const c=o(...l);return i(...l),c}:i&&(r[n]=i):n==="style"?r[n]={...i,...o}:n==="className"&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}function j4(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var C4=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pr=C4.reduce((e,t)=>{const r=rm(`Primitive.${t}`),n=E.forwardRef((i,o)=>{const{asChild:s,...l}=i,c=s?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(c,{...l,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function N4(e,t){e&&El.flushSync(()=>e.dispatchEvent(t))}function E4(e,t){const r=E.createContext(t),n=o=>{const{children:s,...l}=o,c=E.useMemo(()=>l,Object.values(l));return a.jsx(r.Provider,{value:c,children:s})};n.displayName=e+"Provider";function i(o){const s=E.useContext(r);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[n,i]}function am(e,t=[]){let r=[];function n(o,s){const l=E.createContext(s),c=r.length;r=[...r,s];const d=f=>{const{scope:m,children:p,...g}=f,x=m?.[e]?.[c]||l,v=E.useMemo(()=>g,Object.values(g));return a.jsx(x.Provider,{value:v,children:p})};d.displayName=o+"Provider";function u(f,m){const p=m?.[e]?.[c]||l,g=E.useContext(p);if(g)return g;if(s!==void 0)return s;throw new Error(`\`${f}\` must be used within \`${o}\``)}return[d,u]}const i=()=>{const o=r.map(s=>E.createContext(s));return function(l){const c=l?.[e]||o;return E.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return i.scopeName=e,[n,S4(i,...t)]}function S4(...e){const t=e[0];if(e.length===1)return t;const r=()=>{const n=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(o){const s=n.reduce((l,{useScope:c,scopeName:d})=>{const f=c(o)[`__scope${d}`];return{...l,...f}},{});return E.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return r.scopeName=t.scopeName,r}function Lr(e,t,{checkForDefaultPrevented:r=!0}={}){return function(i){if(e?.(i),r===!1||!i.defaultPrevented)return t?.(i)}}var Pa=globalThis?.document?E.useLayoutEffect:()=>{},R4=E[" useInsertionEffect ".trim().toString()]||Pa;function D4({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){const[i,o,s]=I4({defaultProp:t,onChange:r}),l=e!==void 0,c=l?e:i;{const u=E.useRef(e!==void 0);E.useEffect(()=>{const f=u.current;f!==l&&console.warn(`${n} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=l},[l,n])}const d=E.useCallback(u=>{if(l){const f=A4(u)?u(e):u;f!==e&&s.current?.(f)}else o(u)},[l,e,o,s]);return[c,d]}function I4({defaultProp:e,onChange:t}){const[r,n]=E.useState(e),i=E.useRef(r),o=E.useRef(t);return R4(()=>{o.current=t},[t]),E.useEffect(()=>{i.current!==r&&(o.current?.(r),i.current=r)},[r,i]),[r,n,o]}function A4(e){return typeof e=="function"}function T4(e,t){return E.useReducer((r,n)=>t[r][n]??r,e)}var Co=e=>{const{present:t,children:r}=e,n=M4(t),i=typeof r=="function"?r({present:n.isPresent}):E.Children.only(r),o=Fr(n.ref,L4(i));return typeof r=="function"||n.isPresent?E.cloneElement(i,{ref:o}):null};Co.displayName="Presence";function M4(e){const[t,r]=E.useState(),n=E.useRef(null),i=E.useRef(e),o=E.useRef("none"),s=e?"mounted":"unmounted",[l,c]=T4(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return E.useEffect(()=>{const d=vi(n.current);o.current=l==="mounted"?d:"none"},[l]),Pa(()=>{const d=n.current,u=i.current;if(u!==e){const m=o.current,p=vi(d);e?c("MOUNT"):p==="none"||d?.display==="none"?c("UNMOUNT"):c(u&&m!==p?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,c]),Pa(()=>{if(t){let d;const u=t.ownerDocument.defaultView??window,f=p=>{const x=vi(n.current).includes(CSS.escape(p.animationName));if(p.target===t&&x&&(c("ANIMATION_END"),!i.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",d=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},m=p=>{p.target===t&&(o.current=vi(n.current))};return t.addEventListener("animationstart",m),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{u.clearTimeout(d),t.removeEventListener("animationstart",m),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:E.useCallback(d=>{n.current=d?getComputedStyle(d):null,r(d)},[])}}function vi(e){return e?.animationName||"none"}function L4(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var O4=E[" useId ".trim().toString()]||(()=>{}),z4=0;function fs(e){const[t,r]=E.useState(O4());return Pa(()=>{r(n=>n??String(z4++))},[e]),e||(t?`radix-${t}`:"")}function $a(e){const t=E.useRef(e);return E.useEffect(()=>{t.current=e}),E.useMemo(()=>(...r)=>t.current?.(...r),[])}function F4(e,t=globalThis?.document){const r=$a(e);E.useEffect(()=>{const n=i=>{i.key==="Escape"&&r(i)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var P4="DismissableLayer",dl="dismissableLayer.update",$4="dismissableLayer.pointerDownOutside",_4="dismissableLayer.focusOutside",hu,im=E.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),om=E.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:s,onDismiss:l,...c}=e,d=E.useContext(im),[u,f]=E.useState(null),m=u?.ownerDocument??globalThis?.document,[,p]=E.useState({}),g=Fr(t,L=>f(L)),x=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),b=x.indexOf(v),y=u?x.indexOf(u):-1,k=d.layersWithOutsidePointerEventsDisabled.size>0,D=y>=b,C=W4(L=>{const w=L.target,R=[...d.branches].some(N=>N.contains(w));!D||R||(i?.(L),s?.(L),L.defaultPrevented||l?.())},m),j=U4(L=>{const w=L.target;[...d.branches].some(N=>N.contains(w))||(o?.(L),s?.(L),L.defaultPrevented||l?.())},m);return F4(L=>{y===d.layers.size-1&&(n?.(L),!L.defaultPrevented&&l&&(L.preventDefault(),l()))},m),E.useEffect(()=>{if(u)return r&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(hu=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),gu(),()=>{r&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=hu)}},[u,m,r,d]),E.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),gu())},[u,d]),E.useEffect(()=>{const L=()=>p({});return document.addEventListener(dl,L),()=>document.removeEventListener(dl,L)},[]),a.jsx(Pr.div,{...c,ref:g,style:{pointerEvents:k?D?"auto":"none":void 0,...e.style},onFocusCapture:Lr(e.onFocusCapture,j.onFocusCapture),onBlurCapture:Lr(e.onBlurCapture,j.onBlurCapture),onPointerDownCapture:Lr(e.onPointerDownCapture,C.onPointerDownCapture)})});om.displayName=P4;var B4="DismissableLayerBranch",V4=E.forwardRef((e,t)=>{const r=E.useContext(im),n=E.useRef(null),i=Fr(t,n);return E.useEffect(()=>{const o=n.current;if(o)return r.branches.add(o),()=>{r.branches.delete(o)}},[r.branches]),a.jsx(Pr.div,{...e,ref:i})});V4.displayName=B4;function W4(e,t=globalThis?.document){const r=$a(e),n=E.useRef(!1),i=E.useRef(()=>{});return E.useEffect(()=>{const o=l=>{if(l.target&&!n.current){let c=function(){sm($4,r,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=c,t.addEventListener("click",i.current,{once:!0})):c()}else t.removeEventListener("click",i.current);n.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",o),t.removeEventListener("click",i.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function U4(e,t=globalThis?.document){const r=$a(e),n=E.useRef(!1);return E.useEffect(()=>{const i=o=>{o.target&&!n.current&&sm(_4,r,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function gu(){const e=new CustomEvent(dl);document.dispatchEvent(e)}function sm(e,t,r,{discrete:n}){const i=r.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&i.addEventListener(e,t,{once:!0}),n?N4(i,o):i.dispatchEvent(o)}var ps="focusScope.autoFocusOnMount",ms="focusScope.autoFocusOnUnmount",xu={bubbles:!1,cancelable:!0},q4="FocusScope",lm=E.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:i,onUnmountAutoFocus:o,...s}=e,[l,c]=E.useState(null),d=$a(i),u=$a(o),f=E.useRef(null),m=Fr(t,x=>c(x)),p=E.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;E.useEffect(()=>{if(n){let x=function(k){if(p.paused||!l)return;const D=k.target;l.contains(D)?f.current=D:qr(f.current,{select:!0})},v=function(k){if(p.paused||!l)return;const D=k.relatedTarget;D!==null&&(l.contains(D)||qr(f.current,{select:!0}))},b=function(k){if(document.activeElement===document.body)for(const C of k)C.removedNodes.length>0&&qr(l)};document.addEventListener("focusin",x),document.addEventListener("focusout",v);const y=new MutationObserver(b);return l&&y.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",v),y.disconnect()}}},[n,l,p.paused]),E.useEffect(()=>{if(l){vu.add(p);const x=document.activeElement;if(!l.contains(x)){const b=new CustomEvent(ps,xu);l.addEventListener(ps,d),l.dispatchEvent(b),b.defaultPrevented||(H4(X4(cm(l)),{select:!0}),document.activeElement===x&&qr(l))}return()=>{l.removeEventListener(ps,d),setTimeout(()=>{const b=new CustomEvent(ms,xu);l.addEventListener(ms,u),l.dispatchEvent(b),b.defaultPrevented||qr(x??document.body,{select:!0}),l.removeEventListener(ms,u),vu.remove(p)},0)}}},[l,d,u,p]);const g=E.useCallback(x=>{if(!r&&!n||p.paused)return;const v=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,b=document.activeElement;if(v&&b){const y=x.currentTarget,[k,D]=G4(y);k&&D?!x.shiftKey&&b===D?(x.preventDefault(),r&&qr(k,{select:!0})):x.shiftKey&&b===k&&(x.preventDefault(),r&&qr(D,{select:!0})):b===y&&x.preventDefault()}},[r,n,p.paused]);return a.jsx(Pr.div,{tabIndex:-1,...s,ref:m,onKeyDown:g})});lm.displayName=q4;function H4(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(qr(n,{select:t}),document.activeElement!==r)return}function G4(e){const t=cm(e),r=bu(t,e),n=bu(t.reverse(),e);return[r,n]}function cm(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const i=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||i?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function bu(e,t){for(const r of e)if(!Z4(r,{upTo:t}))return r}function Z4(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function K4(e){return e instanceof HTMLInputElement&&"select"in e}function qr(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&K4(e)&&t&&e.select()}}var vu=Y4();function Y4(){let e=[];return{add(t){const r=e[0];t!==r&&r?.pause(),e=yu(e,t),e.unshift(t)},remove(t){e=yu(e,t),e[0]?.resume()}}}function yu(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function X4(e){return e.filter(t=>t.tagName!=="A")}var J4="Portal",dm=E.forwardRef((e,t)=>{const{container:r,...n}=e,[i,o]=E.useState(!1);Pa(()=>o(!0),[]);const s=r||i&&globalThis?.document?.body;return s?xr.createPortal(a.jsx(Pr.div,{...n,ref:t}),s):null});dm.displayName=J4;var hs=0;function Q4(){E.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??wu()),document.body.insertAdjacentElement("beforeend",e[1]??wu()),hs++,()=>{hs===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),hs--}},[])}function wu(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ti="right-scroll-bar-position",Mi="width-before-scroll-bar",e6="with-scroll-bars-hidden",t6="--removed-body-scroll-bar-size";function gs(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function r6(e,t){var r=h.useState(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(n){var i=r.value;i!==n&&(r.value=n,r.callback(n,i))}}}})[0];return r.callback=t,r.facade}var n6=typeof window<"u"?E.useLayoutEffect:E.useEffect,ku=new WeakMap;function a6(e,t){var r=r6(null,function(n){return e.forEach(function(i){return gs(i,n)})});return n6(function(){var n=ku.get(r);if(n){var i=new Set(n),o=new Set(e),s=r.current;i.forEach(function(l){o.has(l)||gs(l,null)}),o.forEach(function(l){i.has(l)||gs(l,s)})}ku.set(r,e)},[e]),r}function i6(e){return e}function o6(e,t){t===void 0&&(t=i6);var r=[],n=!1,i={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(o){var s=t(o,n);return r.push(s),function(){r=r.filter(function(l){return l!==s})}},assignSyncMedium:function(o){for(n=!0;r.length;){var s=r;r=[],s.forEach(o)}r={push:function(l){return o(l)},filter:function(){return r}}},assignMedium:function(o){n=!0;var s=[];if(r.length){var l=r;r=[],l.forEach(o),s=r}var c=function(){var u=s;s=[],u.forEach(o)},d=function(){return Promise.resolve().then(c)};d(),r={push:function(u){s.push(u),d()},filter:function(u){return s=s.filter(u),r}}}};return i}function s6(e){e===void 0&&(e={});var t=o6(null);return t.options=gr({async:!0,ssr:!1},e),t}var um=function(e){var t=e.sideCar,r=kp(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw new Error("Sidecar medium not found");return E.createElement(n,gr({},r))};um.isSideCarExport=!0;function l6(e,t){return e.useMedium(t),um}var fm=s6(),xs=function(){},No=E.forwardRef(function(e,t){var r=E.useRef(null),n=E.useState({onScrollCapture:xs,onWheelCapture:xs,onTouchMoveCapture:xs}),i=n[0],o=n[1],s=e.forwardProps,l=e.children,c=e.className,d=e.removeScrollBar,u=e.enabled,f=e.shards,m=e.sideCar,p=e.noRelative,g=e.noIsolation,x=e.inert,v=e.allowPinchZoom,b=e.as,y=b===void 0?"div":b,k=e.gapMode,D=kp(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=m,j=a6([r,t]),L=gr(gr({},D),i);return E.createElement(E.Fragment,null,u&&E.createElement(C,{sideCar:fm,removeScrollBar:d,shards:f,noRelative:p,noIsolation:g,inert:x,setCallbacks:o,allowPinchZoom:!!v,lockRef:r,gapMode:k}),s?E.cloneElement(E.Children.only(l),gr(gr({},L),{ref:j})):E.createElement(y,gr({},L,{className:c,ref:j}),l))});No.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};No.classNames={fullWidth:Mi,zeroRight:Ti};var c6=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function d6(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=c6();return t&&e.setAttribute("nonce",t),e}function u6(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function f6(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var p6=function(){var e=0,t=null;return{add:function(r){e==0&&(t=d6())&&(u6(t,r),f6(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},m6=function(){var e=p6();return function(t,r){E.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},pm=function(){var e=m6(),t=function(r){var n=r.styles,i=r.dynamic;return e(n,i),null};return t},h6={left:0,top:0,right:0,gap:0},bs=function(e){return parseInt(e||"",10)||0},g6=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],n=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[bs(r),bs(n),bs(i)]},x6=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return h6;var t=g6(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},b6=pm(),_n="data-scroll-locked",v6=function(e,t,r,n){var i=e.left,o=e.top,s=e.right,l=e.gap;return r===void 0&&(r="margin"),`
|
|
1864
1864
|
.`.concat(e6,` {
|
|
1865
1865
|
overflow: hidden `).concat(n,`;
|
|
1866
1866
|
padding-right: `).concat(l,"px ").concat(n,`;
|