limbo-component 2.4.2 → 2.5.1
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/limbo.cjs.js +1 -1
- package/dist/limbo.cjs.map +1 -1
- package/dist/limbo.css +1 -1
- package/dist/limbo.es.js +29 -27
- package/dist/limbo.es.map +1 -1
- package/dist/limbo.min.js +1 -1
- package/dist/limbo.min.js.map +1 -1
- package/dist/limbo.umd.js +1 -1
- package/dist/limbo.umd.js.map +1 -1
- package/dist/types/App.d.ts.map +1 -1
- package/dist/types/components/Gallery.d.ts +2 -1
- package/dist/types/components/Gallery.d.ts.map +1 -1
- package/dist/types/components/ImageCard.d.ts.map +1 -1
- package/dist/types/components/ImageViewer.d.ts.map +1 -1
- package/dist/types/hooks/useSearching.d.ts +15 -0
- package/dist/types/hooks/useSearching.d.ts.map +1 -0
- package/package.json +2 -2
package/dist/limbo.es.js
CHANGED
|
@@ -16,11 +16,11 @@ return s("div",{className:"lb:fixed lb:inset-0 lb:bg-black/95 lb:z-[10000] lb:fl
|
|
|
16
16
|
/* @__PURE__ */o("img",{ref:$,src:e,alt:a,className:"lb:max-w-full lb:max-h-full lb:object-contain lb:transition-opacity lb:duration-200 lb:select-none "+(k?"lb:opacity-100":"lb:opacity-0"),style:{transform:`scale(${b}) translate(${h.x/b}px, ${h.y/b}px)`,transition:f?"none":"transform 0.2s ease-out"},onLoad:()=>C(!0),onError:()=>N(!0),onClick:O,onDoubleClick:R,draggable:!1})]}),
|
|
17
17
|
/* @__PURE__ */o("div",{className:"lb:px-4 lb:py-2 lb:bg-black/50 lb:backdrop-blur-sm lb:text-center",children:/* @__PURE__ */s("p",{className:"lb:text-gray-400 lb:text-xs",children:[
|
|
18
18
|
/* @__PURE__ */s("span",{className:"lb:hidden lb:sm:inline",children:[
|
|
19
|
-
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"Ctrl"})," + rueda para zoom •"," ",
|
|
20
|
-
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"Ctrl"})," +"," ",
|
|
21
|
-
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"+"})," /"," ",
|
|
22
|
-
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"-"})," ","zoom •
|
|
23
|
-
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"ESC"})," cerrar"]}),
|
|
19
|
+
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"Ctrl"})," ","+ rueda para zoom •"," ",
|
|
20
|
+
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"Ctrl"})," ","+"," ",
|
|
21
|
+
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"+"})," ","/"," ",
|
|
22
|
+
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"-"})," ","zoom • Click para zoom • Doble click para restablecer • Flechas para mover •"," ",
|
|
23
|
+
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"ESC"})," ","cerrar"]}),
|
|
24
24
|
/* @__PURE__ */o("span",{className:"lb:sm:hidden",children:"Click para zoom • Doble click para restablecer • ESC para cerrar"})]})})]})}function X({image:a,isOpen:i,onClose:u,onSelect:d,onDelete:b,onCrop:m,onVariantDeleted:h,allowedActions:p={select:!0,download:!0,copy:!0,delete:!0,crop:!0}}){const{loadVariants:f,getVariants:g,isLoading:y,getError:v,removeVariant:w}=Q(),x=window.limboCore?.accessibilityManager,[k,C]=e.useState(null),[S,N]=e.useState(null),[E,$]=t(null),[_,z]=t(null),P=(window.limboCore?.config?.getGlobal()||{}).interaction||{allowSelection:!1,allowCropping:!0},I=P.allowSelection&&p.select&&d,L=P.allowCropping&&p.crop&&m,D=p.download,O=p.copy,R=p.delete,[j,F]=e.useState(/* @__PURE__ */new Set),[U,q]=e.useState(/* @__PURE__ */new Set),[B,W]=t({}),V=l(null),H=l(null),K=r(e=>{if("Escape"===e.key){if(E)return;e.preventDefault(),u?.()}if("Tab"===e.key&&V.current){const t=V.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r?.focus()):e.shiftKey||document.activeElement!==r||(e.preventDefault(),n?.focus())}},[u,E]);n(()=>{if(i)return H.current?.focus(),document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)},[i,K]);const G=e.useMemo(()=>a?.variants||[],[a?.variants]),X=g(a?.id),J=(G.length>0?G:X).filter(e=>!U.has(e.id)),Z=0===G.length&&y(a?.id),ee=0===G.length?v(a?.id):null;n(()=>{!i||!a?.id||a?.variants&&0!==a.variants.length||f(a.id)},[i,a?.id,a?.variants,f]),e.useEffect(()=>{i&&(F(/* @__PURE__ */new Set),q(/* @__PURE__ */new Set),W({}))},[i]);const te=J.map(e=>e.id).join(",");n(()=>{if(!i||!a?.url)return;let e=!1;return(async()=>{const t=await T(a.url);if(!e&&(t&&W(e=>({...e,original:t})),J.length>0)){const t=J.map(e=>e.url),n=await M(t,4);if(e)return;const r={};J.forEach((e,t)=>{n[t]&&(r[e.id]=n[t])}),W(e=>({...e,...r}))}})(),()=>{e=!0}},[i,a?.url,te]);if(!i)return null;const ne=[{...a,isOriginal:!0},...J.map(e=>({...e,isOriginal:!1}))];/* @__PURE__ */
|
|
25
25
|
return s("div",{className:"lb:fixed lb:inset-0 lb:bg-black/85 lb:flex lb:items-center lb:justify-center lb:z-[1000] lb:p-4",onClick:()=>{E||u?.()},role:"dialog","aria-modal":"true","aria-labelledby":"variants-modal-title","aria-describedby":"variants-modal-description",children:[
|
|
26
26
|
/* @__PURE__ */s("div",{ref:V,className:"lb:bg-white lb:rounded-xl lb:max-w-[95vw] lb:max-h-[90vh] lb:overflow-hidden lb:shadow-2xl lb:flex lb:flex-col lb:w-[900px]",onClick:e=>e.stopPropagation(),children:[
|
|
@@ -52,33 +52,35 @@ return s("article",{role:"listitem","aria-label":`${i} - ${p}×${f} píxeles`,cl
|
|
|
52
52
|
/* @__PURE__ */o(Y,{isOpen:!!E,src:E?.src||"",alt:E?.title||"Imagen",title:E?.title,subtitle:E?.subtitle,onClose:()=>$(null)})]})}function J({image:r,onDelete:l,onCrop:a,onSelect:i,thumbnailSize:u=32,isDeleting:d=!1,allowedActions:b={select:!0,download:!0,copy:!0,delete:!0,crop:!0,variants:!0}}){const[m,h]=t(!1),[p,f]=t(!1),[g,y]=t(!1),[v,w]=t(r.variants_count||0),x=r.url||r.path,[k,C]=t(()=>A(x)),[S,E]=t(()=>!P(x)),[$,_]=t(!1),[z,M]=t(()=>P(x)),{isMobile:I,isTouch:L}=N(),D=window.limboCore?.accessibilityManager,O=(window.limboCore?.config?.getGlobal()||{}).interaction||{allowSelection:!1,allowCropping:!0},R=e=>{e.stopPropagation(),D?.announce(`Eliminando imagen ${r.filename}`,"assertive"),l?.(r)},j=async e=>{e.stopPropagation();let t=r.url||r.path;try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.focus(),e.select(),document.execCommand("copy"),document.body.removeChild(e)}h(!0),D?.announce(`URL de ${r.filename} copiada al portapapeles. Nota: La URL puede tener un tiempo de validez limitado.`),setTimeout(()=>h(!1),2e3)}catch(n){console.error("Error al copiar URL:",n),D?.announce(`Error al copiar URL de ${r.filename}. Inténtalo de nuevo.`),alert(`Error al copiar URL de ${r.filename}. Por favor, inténtalo de nuevo.`)}},F=async e=>{e.preventDefault(),e.stopPropagation();const{downloadImage:t}=await Promise.resolve().then(()=>rn);await t(r.url||r.path,r.filename||"limbo-image",{originalFormat:r.format,accessibilityManager:D})},U=e=>{e.stopPropagation(),D?.announce(`Editando imagen ${r.filename}`),a?.(r)},q=r.variants&&r.variants.length>0||v>0,B=v,W=e.useCallback(()=>{w(e=>Math.max(0,e-1))},[]);e.useEffect(()=>{w(r.variants_count||0)},[r.variants_count]),n(()=>{const e=r.url||r.path;if(P(e))return C(A(e)),E(!1),_(!1),void M(!0);E(!0),_(!1),M(!1),T(e).then(e=>{C(e),E(!1),M(!0)}).catch(()=>{C(e),E(!1),_(!0)})},[r.url,r.path]);const V=O.allowSelection&&b.select&&i,H=O.allowCropping&&b.crop&&a,K=()=>{q?(D?.announce(`Mostrando recortes de ${r.filename}`),f(!0)):(D?.announce(`Abriendo visor de ${r.filename}`),y(!0))};/* @__PURE__ */
|
|
53
53
|
return s(c,{children:[
|
|
54
54
|
/* @__PURE__ */s("div",{className:`limbo-image-card lb:flex lb:flex-col lb:items-center lb:cursor-pointer lb:relative lb:transition ${d?"lb:opacity-50":""} ${I?"limbo-image-card--mobile":""}`,onClick:K,onKeyDown:e=>{switch(e.key){case"Enter":case" ":e.preventDefault(),K();break;case"d":case"D":b.download&&(e.preventDefault(),F(e));break;case"c":case"C":b.copy&&(e.preventDefault(),j(e));break;case"Delete":case"Backspace":b.delete&&l&&(e.preventDefault(),R(e));break;case"x":case"X":b.crop&&a&&(e.preventDefault(),U(e));break;case"v":case"V":b.variants&&(e.preventDefault(),(e=>{e.stopPropagation(),D?.announce(`Mostrando recortes de ${r.filename}`),f(!0)})(e))}},title:q?`Ver ${B} recorte${1!==B?"s":""} de ${r.filename}`:I?"Toque para ampliar imagen":"Click para ampliar imagen con zoom",role:"button",tabIndex:0,"aria-label":`Imagen ${r.filename}. ${r.width}x${r.height} px`,style:{...L&&{touchAction:"manipulation",WebkitTapHighlightColor:"transparent"}},children:[
|
|
55
|
-
/* @__PURE__ */s("div",{className:"limbo-image-actions "+(I?"limbo-image-actions--mobile":""),children:[!q&&V&&/* @__PURE__ */o("button",{type:"button",title:"Seleccionar imagen",className:"limbo-action-btn btn-success lb:bg-brand-blue-800 lb:hover:bg-brand-blue-1000 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:e=>{e.stopPropagation(),D?.announce(`Seleccionando ${r.filename} para el portal`),i?.(r)},tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:"icon icon-tick-white icon--sm","aria-hidden":"true"})}),H&&/* @__PURE__ */o("button",{type:"button",title:"Editar imagen",className:"limbo-action-btn limbo-btn-crop lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:U,tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:"icon icon-scissors-white icon--sm","aria-hidden":"true"})}),b.copy&&/* @__PURE__ */o("button",{type:"button",title:m?"¡Copiado!":"Copiar URL",className:"limbo-action-btn limbo-btn-copy lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:j,tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:`icon ${m?"icon-copied-white":"icon-copy-white"} icon--sm`,"aria-hidden":"true"})}),b.download&&/* @__PURE__ */o("button",{type:"button",title:"Descargar",className:"limbo-action-btn limbo-btn-download lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:F,tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:"icon icon-download-white icon--sm","aria-hidden":"true"})}),b.delete&&l&&/* @__PURE__ */o("button",{onClick:R,disabled:d,className:"limbo-action-btn limbo-btn-delete lb:bg-red-1000 lb:hover:bg-red-800 lb:border lb:border-red-1000/50 "+(I?"lb:btn--touch lb:active:lb:bg-red-800":""),title:"Eliminar imagen",tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:d?"…":/* @__PURE__ */o("span",{className:"icon icon-close-small-white icon--sm","aria-hidden":"true"})})]}),S&&!$&&/* @__PURE__ */o("div",{className:"lb:w-full lb:aspect-square lb:rounded lb:bg-neutral-200 lb:animate-pulse lb:flex lb:items-center lb:justify-center lb:absolute lb:inset-0 lb:z-10 "+(q?"lb:ring-2 lb:ring-brand-blue-400 lb:ring-offset-2":""),style:{...I&&{minHeight:`${Math.max(3*u,80)}px`}},children:/* @__PURE__ */o("span",{className:"icon icon-spinner lb:w-8 lb:h-8 lb:animate-spin"})}),$&&/* @__PURE__ */s("div",{className:"lb:w-full lb:aspect-square lb:rounded lb:bg-neutral-100 lb:flex lb:flex-col lb:items-center lb:justify-center lb:text-neutral-400",style:{...I&&{minHeight:`${Math.max(3*u,80)}px`}},children:[
|
|
55
|
+
/* @__PURE__ */s("div",{className:"limbo-image-actions "+(I?"limbo-image-actions--mobile":""),children:[!q&&V&&/* @__PURE__ */o("button",{type:"button",title:"Seleccionar imagen",className:"limbo-action-btn btn-success lb:bg-brand-blue-800 lb:hover:bg-brand-blue-1000 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:e=>{e.stopPropagation(),D?.announce(`Seleccionando ${r.filename} para el portal`),i?.(r)},tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:"icon icon-tick-white icon--sm","aria-hidden":"true"})}),H&&/* @__PURE__ */o("button",{type:"button",title:"Editar imagen",className:"limbo-action-btn limbo-btn-crop lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:U,tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:"icon icon-scissors-white icon--sm","aria-hidden":"true"})}),b.copy&&/* @__PURE__ */o("button",{type:"button",title:m?"¡Copiado!":"Copiar URL",className:"limbo-action-btn limbo-btn-copy lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:j,tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:`icon ${m?"icon-copied-white":"icon-copy-white"} icon--sm`,"aria-hidden":"true"})}),b.download&&/* @__PURE__ */o("button",{type:"button",title:"Descargar",className:"limbo-action-btn limbo-btn-download lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(I?"lb:btn--touch":""),onClick:F,tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:/* @__PURE__ */o("span",{className:"icon icon-download-white icon--sm","aria-hidden":"true"})}),b.delete&&l&&/* @__PURE__ */o("button",{onClick:R,disabled:d,className:"limbo-action-btn limbo-btn-delete lb:bg-red-1000 lb:hover:bg-red-800 lb:border lb:border-red-1000/50 "+(I?"lb:btn--touch lb:active:lb:bg-red-800":""),title:"Eliminar imagen",tabIndex:-1,style:{...I&&{width:"40px",height:"40px"}},children:d?"…":/* @__PURE__ */o("span",{className:"icon icon-close-small-white icon--sm","aria-hidden":"true"})})]}),S&&!$&&/* @__PURE__ */o("div",{className:"lb:w-full lb:aspect-square lb:rounded lb:bg-neutral-200 lb:animate-pulse lb:flex lb:items-center lb:justify-center lb:absolute lb:inset-0 lb:z-10 "+(q?"lb:ring-2 lb:ring-brand-blue-400 lb:ring-offset-2":""),style:{...I&&{minHeight:`${Math.max(3*u,80)}px`}},children:/* @__PURE__ */o("span",{className:"icon icon-spinner lb:w-8 lb:h-8 lb:animate-spin"})}),$&&/* @__PURE__ */s("div",{className:"lb:z-0 lb:absolute lb:top-0 lb:left-0 lb:w-full lb:aspect-square lb:rounded lb:bg-neutral-100 lb:flex lb:flex-col lb:items-center lb:justify-center lb:text-neutral-400",style:{...I&&{minHeight:`${Math.max(3*u,80)}px`}},children:[
|
|
56
56
|
/* @__PURE__ */o("span",{className:"icon icon-close icon--lg lb:mb-1","aria-hidden":"true"}),
|
|
57
57
|
/* @__PURE__ */o("span",{className:"lb:text-xs",children:"Error al cargar"})]}),
|
|
58
|
-
/* @__PURE__ */o("img",{src:k,loading:"lazy",decoding:"async",alt:r.filename.split(".")[0]??r.filename,className:`lb:w-full lb:object-cover lb:rounded lb:aspect-square lb:transition-opacity lb:duration-300 ${q?"lb:ring-2 lb:ring-brand-blue-400 lb:ring-offset-2":""} ${z?"lb:opacity-100":"lb:opacity-0"}`,sizes:`height: ${6*u}px,width: ${6*u}px`,draggable:!1,onLoad:()=>{E(!1),M(!0)},onError:()=>{E(!1),_(!0)},style:{...I&&{minHeight:`${Math.max(3*u,80)}px`,height:"auto",aspectRatio:"1 / 1",objectFit:"cover"}}}),
|
|
59
|
-
/* @__PURE__ */s("span",{className:"lb:text-xs lb:mt-1 lb:truncate lb:w-full lb:text-center limbo-image-card-name "+(I?"limbo-image-card-name--mobile":""),style:{...I&&{fontSize:"0.75rem",lineHeight:"1.2",maxWidth:"100%",padding:"2px 4px",backgroundColor:"rgba(255, 255, 255, 0.9)",borderRadius:"4px",color:"#333",fontWeight:"500"}},children:[r.filename.split(".")[0]??r.filename,q&&/* @__PURE__ */o("span",{className:"limbo-variants-indicator",style:{marginLeft:"4px",padding:"1px 6px",backgroundColor:"#dc2626",color:"white",borderRadius:"10px",fontSize:"10px",fontWeight:"700",display:"inline-block"},title:`${B} recorte${1!==B?"s":""}`,children:B})]})]}),
|
|
58
|
+
/* @__PURE__ */o("img",{src:k,loading:"lazy",decoding:"async",alt:r.filename.split(".")[0]??r.filename,className:`lb:z-1 lb:w-full lb:object-cover lb:rounded lb:aspect-square lb:transition-opacity lb:duration-300 ${q?"lb:ring-2 lb:ring-brand-blue-400 lb:ring-offset-2":""} ${z?"lb:opacity-100":"lb:opacity-0"}`,sizes:`height: ${6*u}px,width: ${6*u}px`,draggable:!1,onLoad:()=>{E(!1),M(!0)},onError:()=>{E(!1),_(!0)},style:{...I&&{minHeight:`${Math.max(3*u,80)}px`,height:"auto",aspectRatio:"1 / 1",objectFit:"cover"}}}),
|
|
59
|
+
/* @__PURE__ */s("span",{className:"lb:text-xs lb:z-10 lb:mt-1 lb:truncate lb:w-full lb:text-center limbo-image-card-name "+(I?"limbo-image-card-name--mobile":""),style:{...I&&{fontSize:"0.75rem",lineHeight:"1.2",maxWidth:"100%",padding:"2px 4px",backgroundColor:"rgba(255, 255, 255, 0.9)",borderRadius:"4px",color:"#333",fontWeight:"500"}},children:[r.filename.split(".")[0]??r.filename,q&&/* @__PURE__ */o("span",{className:"limbo-variants-indicator",style:{marginLeft:"4px",padding:"1px 6px",backgroundColor:"#dc2626",color:"white",borderRadius:"10px",fontSize:"10px",fontWeight:"700",display:"inline-block"},title:`${B} recorte${1!==B?"s":""}`,children:B})]})]}),
|
|
60
60
|
/* @__PURE__ */o(X,{image:r,isOpen:p,onClose:()=>f(!1),onSelect:i,onDelete:l,onCrop:a,onVariantDeleted:W,allowedActions:{select:b.select,download:b.download,copy:b.copy,delete:b.delete,crop:b.crop}}),
|
|
61
61
|
/* @__PURE__ */o(Y,{isOpen:g,src:k,alt:r.filename,title:r.filename,subtitle:`${r.width}×${r.height} · ${Math.round((r.file_size||0)/1024)}KB`,onClose:()=>y(!1)})]})}function Z(){/* @__PURE__ */
|
|
62
62
|
return s("div",{className:"limbo-image-card lb:animate-pulse",role:"status","aria-label":"Cargando imágen...",children:[
|
|
63
63
|
/* @__PURE__ */o("div",{className:"lb:w-full lb:aspect-square lb:bg-neutral-gray-200 lb:rounded-md lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("span",{className:"icon icon-spinner"})}),
|
|
64
64
|
/* @__PURE__ */o("div",{className:"limbo-image-card-name lb:opacity-100 lb:position-relative lb:bottom-0 lb:p-2",children:/* @__PURE__ */o("div",{className:"lb:h-4 lb:bg-neutral-gray-200 lb:rounded lb:w-3/4"})}),
|
|
65
|
-
/* @__PURE__ */o("span",{className:"lb:sr-only",children:"Cargando imágen..."})]})}function ee({onSelect:e,onCrop:
|
|
66
|
-
return s("div",{className:"lb:w-full lb:py-
|
|
67
|
-
/* @__PURE__ */o("div",{className:"lb:
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
/* @__PURE__ */o("input",{type:"text",name:"name",id:"name",placeholder:"Buscar
|
|
70
|
-
/* @__PURE__ */s("div",{className:"
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
/* @__PURE__ */o("
|
|
73
|
-
/* @__PURE__ */
|
|
74
|
-
/* @__PURE__ */
|
|
75
|
-
/* @__PURE__ */o("
|
|
76
|
-
/* @__PURE__ */o("
|
|
77
|
-
/* @__PURE__ */o("
|
|
78
|
-
/* @__PURE__ */o("input",{type:"text",name:"uploadedBy",id:"uploadedBy",placeholder:"Subido por",value:b.uploadedBy,onChange:k,className:"limbo-form-control"})]})]})]})}),u?/* @__PURE__ */s("div",{className:"lb:relative",children:[
|
|
65
|
+
/* @__PURE__ */o("span",{className:"lb:sr-only",children:"Cargando imágen..."})]})}function ee({onSelect:e,onCrop:r,onDelete:a,deletingId:i,images:c,loading:u,error:d,filters:b={name:"",dateFrom:"",dateTo:"",uploadedBy:""},debouncedFilters:m=null,onFiltersChange:h,filterConfig:p={showNameFilter:!0,showUploadedByFilter:!1,showDateFilter:!0},loadingConfig:f={showPlaceholders:!0,placeholderCount:10,showSpinner:!0},allowedActions:g={select:!0,download:!0,copy:!0,delete:!0,crop:!0,variants:!0}}){const{isSearching:y,searchPending:v}=function(e,r,a){const[i,o]=t(!1),s=l(null);return n(()=>(Object.keys(e).some(t=>e[t]!==r[t])?s.current=setTimeout(()=>{o(!0)},150):(s.current&&clearTimeout(s.current),o(!1)),()=>{s.current&&clearTimeout(s.current)}),[e,r]),{isSearching:i||a,searchPending:i}}(b,m||b,u),w=!1!==p.showNameFilter,x=!0===p.showUploadedByFilter,k=!1!==p.showDateFilter,C=l(null),S=window.limboCore?.accessibilityManager;n(()=>{if(C.current&&window.limboCore?.keyboardManager){const e="gallery-grid";C.current.setAttribute("data-grid-id",e),window.limboCore.keyboardManager.setupGridNavigation(C.current,{itemSelector:".limbo-image-card",gridId:e,columns:"auto"})}},[c]),n(()=>{if(!u&&c.length>0){const e=c.slice(0,12).map(e=>e.url||e.path).filter(Boolean);e.length>0&&M(e,4)}},[u,c]),n(()=>{u?S?.announceLoading(!0,"galería"):u||d?d&&S?.announceError(d,"galería"):(S?.announceLoading(!1,"galería"),c.length>0&&S?.announce(`Se encontraron ${c.length} imágenes en la galería`))},[u,d,c.length,S]),n(()=>{v&&S?.announce("Buscando...","polite")},[v,S]);const N=e=>{const{name:t,value:n}=e.target;h&&h({...b,[t]:n})},E=y&&c.length>0&&!u;/* @__PURE__ */
|
|
66
|
+
return s("div",{className:"lb:w-full lb:py-2",children:[
|
|
67
|
+
/* @__PURE__ */o("div",{className:"lb:px-2 lb:mb-3 lb:mx-2 lb:w-max lb:max-w-full",children:/* @__PURE__ */s("form",{className:"limbo-filters",onSubmit:e=>e.preventDefault(),role:"search","aria-label":"Filtrar imágenes",children:[w&&/* @__PURE__ */s("div",{className:"limbo-filter-group limbo-filter-group--name",children:[
|
|
68
|
+
/* @__PURE__ */s("label",{htmlFor:"name",className:"limbo-filter-label",children:["Nombre",v&&/* @__PURE__ */o("span",{className:"limbo-filter-searching","aria-hidden":"true",children:/* @__PURE__ */o("span",{className:"icon icon-spinner lb:animate-spin lb:w-3 lb:h-3"})})]}),
|
|
69
|
+
/* @__PURE__ */o("input",{type:"text",name:"name",id:"name",placeholder:"Buscar...",value:b.name,onChange:N,className:"limbo-filter-input",autoComplete:"off"})]}),k&&/* @__PURE__ */s("div",{className:"limbo-filter-dates",children:[
|
|
70
|
+
/* @__PURE__ */s("div",{className:"limbo-filter-group limbo-filter-group--date",children:[
|
|
71
|
+
/* @__PURE__ */o("label",{htmlFor:"dateFrom",className:"limbo-filter-label",children:"Desde"}),
|
|
72
|
+
/* @__PURE__ */o("input",{type:"date",name:"dateFrom",id:"dateFrom",value:b.dateFrom,onChange:N,className:"limbo-filter-input"})]}),
|
|
73
|
+
/* @__PURE__ */s("div",{className:"limbo-filter-group limbo-filter-group--date",children:[
|
|
74
|
+
/* @__PURE__ */o("label",{htmlFor:"dateTo",className:"limbo-filter-label",children:"Hasta"}),
|
|
75
|
+
/* @__PURE__ */o("input",{type:"date",name:"dateTo",id:"dateTo",value:b.dateTo,onChange:N,className:"limbo-filter-input"})]})]}),x&&/* @__PURE__ */s("div",{className:"limbo-filter-group",children:[
|
|
76
|
+
/* @__PURE__ */o("label",{htmlFor:"uploadedBy",className:"limbo-filter-label",children:"Subido por"}),
|
|
77
|
+
/* @__PURE__ */o("input",{type:"text",name:"uploadedBy",id:"uploadedBy",placeholder:"Usuario...",value:b.uploadedBy,onChange:N,className:"limbo-filter-input",style:{minWidth:"100px",maxWidth:"140px"}})]})]})}),u?/* @__PURE__ */s("div",{className:"lb:relative",children:[
|
|
79
78
|
/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:flex lb:items-center lb:justify-center lb:bg-white/80 lb:z-10 lb:min-h-75",children:/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-3",children:[
|
|
80
79
|
/* @__PURE__ */o("span",{className:"icon icon-spinner lb:p-4 lb:animate-spin"}),
|
|
81
|
-
/* @__PURE__ */o("span",{className:"lb:text-sm lb:text-gray-600 lb:font-medium",children:"Cargando imágenes..."})]})}),
|
|
80
|
+
/* @__PURE__ */o("span",{className:"lb:text-sm lb:text-gray-600 lb:font-medium",children:"Cargando imágenes..."})]})}),f.showPlaceholders&&/* @__PURE__ */o("div",{ref:C,className:"limbo-gallery lb:opacity-30","data-limbo-responsive":!0,role:"grid","aria-label":"Cargando imágenes de la galería","aria-busy":"true",children:Array.from({length:f.placeholderCount}).map((e,t)=>/* @__PURE__ */o("div",{role:"gridcell","aria-posinset":t+1,"aria-setsize":f.placeholderCount,children:/* @__PURE__ */o(Z,{})},`skeleton-${t}`))})]}):d?/* @__PURE__ */o("div",{className:"alert alert-danger lb:text-center",children:d}):/* @__PURE__ */s("div",{className:"lb:relative",children:[E&&/* @__PURE__ */o("div",{className:"limbo-search-overlay",role:"status","aria-live":"polite","aria-label":"Buscando imágenes",children:/* @__PURE__ */s("div",{className:"limbo-search-overlay__content",children:[
|
|
81
|
+
/* @__PURE__ */o("span",{className:"icon icon-spinner lb:animate-spin"}),
|
|
82
|
+
/* @__PURE__ */o("span",{children:"Buscando..."})]})}),
|
|
83
|
+
/* @__PURE__ */o("div",{ref:C,className:"limbo-gallery lb:px-3 "+(E?"lb:opacity-50 lb:pointer-events-none":""),"data-limbo-responsive":!0,"data-grid-id":"gallery-grid",role:"grid","aria-label":"Galería de imágenes. Use las flechas para navegar entre imágenes","aria-busy":E,children:c.length>0?c.map((t,n)=>/* @__PURE__ */o("div",{role:"gridcell","aria-posinset":n+1,"aria-setsize":c.length,children:/* @__PURE__ */o(J,{image:t,onSelect:e,onCrop:r,onDelete:g.delete&&a?()=>a(t.id):null,thumbnailSize:32,isDeleting:i===t.id,allowedActions:g})},t.id)):/* @__PURE__ */o("div",{className:"lb:col-span-full lb:text-center lb:text-gray-500 lb:py-8",role:"status","aria-live":"polite",children:/* @__PURE__ */o("p",{children:"No se han encontrado imágenes"})})})]})]})}function te({image:e,onDiscard:r,onRetry:l,onDownload:a,onSelect:i,showRetry:c=!1,disabled:u=!1}){const[d,b]=t(null),[m,h]=t({name:"",size:"",type:""}),[p,f]=t(!1),[g,y]=t(!1),[v,w]=t("");n(()=>{if(!e)return void b(null);const t=URL.createObjectURL(e);b(t);const n=e.name||"imagen.webp",r=(e=>{const t=e?.split(".")[0]?.toLowerCase()||"";return["ai-image","ai_image","generated","imagen-ia","imagen_ia"].some(e=>t.startsWith(e))})(n);return h({name:n,size:x(e.size||0),type:e.type||"image/webp"}),r?(w(""),y(!1)):w(n.split(".")[0]),()=>{URL.revokeObjectURL(t)}},[e]);const x=e=>{if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return Math.round(e/Math.pow(1024,t)*100)/100+" "+["Bytes","KB","MB","GB"][t]};return e&&d?/* @__PURE__ */s("div",{className:"lb:w-fit lb:md:w-full lb:bg-white lb:border lb:border-gray-200 lb:rounded-lg lb:px-1 lb:sm:px-3 lb:py-2 lb:m-0 lb:shadow-sm",children:[
|
|
82
84
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-4 lb:px-1",children:[
|
|
83
85
|
/* @__PURE__ */o("h3",{className:"lb:text-sm lb:font-medium lb:text-gray-700",children:"Vista previa de imagen"}),
|
|
84
86
|
/* @__PURE__ */o("button",{type:"button",onClick:r,disabled:u,className:"lb:p-1.5 lb:text-gray-400 lb:cursor-pointer lb:hover:text-gray-600 lb:hover:bg-red-300 lb:rounded lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed","aria-label":"Descartar imagen",title:"Descartar imagen",children:/* @__PURE__ */o("span",{className:"icon icon-close-small icon--md"})})]}),
|
|
@@ -124,7 +126,7 @@ return s("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-6","aria-l
|
|
|
124
126
|
/* @__PURE__ */s("div",{className:"lb:flex lb:flex-wrap lb:items-center lb:gap-3 lb:mb-2",children:[
|
|
125
127
|
/* @__PURE__ */o("h3",{className:"lb:text-2xl lb:font-semibold lb:text-brand-blue-1000",children:a.services.find(e=>e.slug===b)?.label||"Generación IA"}),a.services.find(e=>e.slug===b)?.costInfo&&/* @__PURE__ */s("div",{title:"Coste estimado por imagen que le cuesta a la empresa, este coste depende de la calidad de la imagen generada y puede variar según el proveedor IA, ten en cuenta este coste para hacer un uso más responsable del servicio IA",className:"lb:flex lb:items-center lb:gap-1","aria-description":"Coste estimado por imagen que le cuesta a la empresa, este coste depende de la calidad de la imagen generada y puede variar según el proveedor IA, ten en cuenta este coste para hacer un uso más responsable del servicio IA",children:[
|
|
126
128
|
/* @__PURE__ */s("span",{className:"lb:inline-flex lb:items-center lb:gap-1 lb:px-2 lb:py-0.5 lb:text-xs lb:font-medium lb:text-warning-1000 lb:bg-yellow-200/60 lb:rounded-full lb:border lb:border-warning-1000 lb:select-none",children:[
|
|
127
|
-
/* @__PURE__ */o("span",{className:"icon icon-euro-blue icon--2sm icon--warning",style:{filter:"var(--icon-warning-dark)"}}),"Coste:"," ",a.services.find(e=>e.slug===b)?.costInfo]}),
|
|
129
|
+
/* @__PURE__ */o("span",{className:"icon icon-euro-blue icon--2sm icon--warning",style:{filter:"var(--limbo-icon-warning-dark)"}}),"Coste:"," ",a.services.find(e=>e.slug===b)?.costInfo]}),
|
|
128
130
|
/* @__PURE__ */o("span",{className:"icon icon-info lb:cursor-help"})]})]}),i.loading&&/* @__PURE__ */o("div",{children:"Cargando parámetros..."}),i.error&&/* @__PURE__ */o("div",{className:"alert alert-danger",children:i.error}),b&&(()=>{const e=i.params?.[b]?.parameters;if(!e)return null;const t=Object.entries(e).filter(([e,t])=>!t.hidden),n=t.filter(([e])=>e.toLowerCase().includes("prompt")||e.toLowerCase().includes("query")),l=t.filter(([e])=>!e.toLowerCase().includes("prompt")&&!e.toLowerCase().includes("query")),c=(e,t)=>{let n=t.placeholder||"";n||(n="integer"===t.type?t.minValue&&t.maxValue?`Entre ${t.minValue} y ${t.maxValue}`:t.minValue?`Mínimo ${t.minValue}`:t.maxValue?`Máximo ${t.maxValue}`:"Introduce un número":e.toLowerCase().includes("prompt")?"Describe la imagen que deseas generar...":e.toLowerCase().includes("negative")?"Elementos a evitar en la imagen...":`Introduce ${(t.label||e).toLowerCase()}`);const l=e.toLowerCase().includes("prompt")||e.toLowerCase().includes("query");/* @__PURE__ */
|
|
129
131
|
return s("div",{className:"lb:flex lb:flex-col lb:gap-1",children:[
|
|
130
132
|
/* @__PURE__ */s("label",{htmlFor:`ai-${e}`,className:"lb:text-xs lb:font-medium lb:text-brand-blue-1000",children:[t.label||e,t.required&&/* @__PURE__ */o("span",{className:"lb:text-red-1000 lb:ml-1",children:"*"})]}),t.options?/* @__PURE__ */o("select",{id:`ai-${e}`,name:e,value:h[e]??"",onChange:_,className:"limbo-input",disabled:r,title:t.label||e,children:t.options.map(e=>/* @__PURE__ */o("option",{value:e,children:e},e))}):l?/* @__PURE__ */o("textarea",{id:`ai-${e}`,name:e,value:h[e]??"",onChange:_,className:"limbo-input lb:resize-none lb:overflow-y-auto",disabled:r,required:t.required,placeholder:n,title:t.label||e,rows:3,style:{maxHeight:"9rem",minHeight:"3rem"},onInput:e=>{e.target.style.height="auto";const t=Math.min(e.target.scrollHeight,144);e.target.style.height=`${t}px`}}):/* @__PURE__ */o("input",{id:`ai-${e}`,type:"integer"===t.type?"number":"text",name:e,value:h[e]??"",onChange:_,className:"limbo-input",disabled:r,required:t.required,min:t.minValue,max:t.maxValue,placeholder:n,title:t.label||e})]},e)};/* @__PURE__ */
|
|
@@ -243,7 +245,7 @@ return o("button",{type:"button","data-upload-tab-id":e.id,className:y(t),"aria-
|
|
|
243
245
|
/* @__PURE__ */s("div",{className:"lb:bg-white lb:border-b lb:border-gray-200 lb:py-2 lb:mx-2 lb:shrink-0 lb:sticky lb:top-0 lb:z-10 lb:mb-1",children:[
|
|
244
246
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-2",children:[
|
|
245
247
|
/* @__PURE__ */s("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-700",children:["Recortes ",Z.length>1&&`(${Z.length})`]}),J.allowCustomCrops&&/* @__PURE__ */s("button",{onClick:Qe,disabled:pe,className:"lb:text-xs lb:cursor-pointer lb:px-2 lb:py-1 lb:bg-brand-blue-50 lb:hover:bg-brand-blue-200 lb:text-brand-blue-1000 lb:rounded lb:border lb:border-brand-blue-200 lb:transition-colors lb:flex lb:items-center lb:gap-1",title:"Añadir recorte personalizado",children:[
|
|
246
|
-
/* @__PURE__ */o("span",{className:"icon icon-add icon--sm",style:{filter:"var(--icon-blue)"}}),"Añadir recorte"]})]}),
|
|
248
|
+
/* @__PURE__ */o("span",{className:"icon icon-add icon--sm",style:{filter:"var(--limbo-icon-blue)"}}),"Añadir recorte"]})]}),
|
|
247
249
|
/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:lg:grid-cols-4 lb:xl:grid-cols-5 lb:gap-1.5 lb:max-h-48 lb:overflow-y-auto",children:Z.map((e,t)=>{const n=e.savedState||t===te;/* @__PURE__ */
|
|
248
250
|
return s("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb:border lb:cursor-pointer lb:transition-colors lb:min-h-17.5 lb:w-full "+(te===t?"lb:bg-blue-50 lb:border-blue-300":n?"lb:bg-gray-50 lb:border-gray-200 lb:hover:bg-gray-100":"lb:bg-orange-50 lb:border-orange-300 lb:hover:bg-orange-100"),children:[
|
|
249
251
|
/* @__PURE__ */o("input",{type:"radio",name:"active-crop",checked:te===t,onChange:()=>Ge(t),disabled:pe,className:"lb:hidden"}),
|
|
@@ -498,9 +500,9 @@ return s("div",{className:"lb:flex lb:flex-col lb:items-center lb:justify-center
|
|
|
498
500
|
/* @__PURE__ */s("div",{className:"lb:mb-6",children:[
|
|
499
501
|
/* @__PURE__ */o("p",{className:"lb:text-gray-600 lb:mb-2",children:"Su sesión ha expirado por seguridad."}),
|
|
500
502
|
/* @__PURE__ */o("p",{className:"lb:text-gray-600",children:"Es necesario recargar la página para obtener un nuevo token de acceso."})]}),
|
|
501
|
-
/* @__PURE__ */o("div",{className:"lb:flex lb:justify-end lb:space-x-3",children:/* @__PURE__ */o("button",{onClick:t,className:"lb:px-4 lb:py-2 lb:bg-blue-600 lb:text-white lb:rounded-md lb:hover:bg-blue-700 lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-blue-500 lb:focus:ring-offset-2 lb:transition-colors",children:"Recargar Página"})})]})}):null}function cn(){const[e,n]=t(!1),[r,l]=t(null);return{deleteImg:async e=>{if(!e)return l("ID de imagen no proporcionado"),!1;n(!0),l(null);try{const t=await async function(e){try{return await R({endpoint:`/assets/${e}`,method:"DELETE",basePath:V,useJWT:!0})}catch(r){throw W(r)}}(e);return!1!==t.success}catch(t){return l(t.message),!1}finally{n(!1)}},loading:e,error:r,reset:()=>{l(null)}}}const un=/* @__PURE__ */new Map,dn=6e5,bn="limbo_gallery_cache";function mn(e,r=!1,i={},o=!0){const s=a(()=>JSON.stringify(i),[i]),c=l((()=>{const e=s,t=un.get(e),n=Date.now();return t&&n-t.timestamp<dn?{images:t.data,pagination:t.pagination||null,loading:!1}:{images:[],pagination:null,loading:o}})()),[u,d]=t(c.current.images),[b,m]=t(c.current.loading),[h,p]=t(null),[f,g]=t(c.current.pagination),[y,v]=t(0);n(()=>{if(!o)return void m(!1);const e=`${s}`,t=un.get(e),n=Date.now();if(t&&n-t.timestamp<dn)return d(t.data),g(t.pagination||null),void m(!1);let r=!0;return(async()=>{if(y>=3)r&&(p("Error de autenticación: Verifica tus credenciales API"),m(!1));else try{const t=await H(i);if(!r)return;const l=t.result||t.data||[],a=t.pagination||null;d(l),g(a),p(null),v(0),un.set(e,{data:l,pagination:a,timestamp:n}),(()=>{try{const e={};un.forEach((t,n)=>{e[n]=t}),sessionStorage.setItem(bn,JSON.stringify(e))}catch{}})()}catch(t){r&&(p(t.message),v(e=>e+1))}finally{r&&m(!1)}})(),()=>{r=!1}},[e,r,s,y,i,o]);return{images:u,loading:b,error:h,pagination:f,setImages:d,invalidateCache:()=>{un.delete(`${s}`)}}}function hn(e,r=500){const[l,a]=t(e);return n(()=>{const t=setTimeout(()=>{a(e)},r);return()=>{clearTimeout(t)}},[e,r]),l}function pn({apiKey:e,prod:l=!1,url:a=!0,features:i=["gallery","upload","cropper"],modeUI:u="full",ui:d={showActions:["select","download","copy","delete","crop","variants"],hideActions:[],theme:"light",language:"es",compactMode:!1,showTabs:!0},callbacks:b={},instanceId:m=null,itemsPerPage:h=10,_externalImage:p=null,cropperConfig:f=null}){sessionStorage.removeItem("limbo_stock_selectedService"),sessionStorage.removeItem("limbo_stock_dynamicForm"),sessionStorage.removeItem("limbo_stock_stockImages"),sessionStorage.removeItem("limbo_stock_currentPage"),sessionStorage.removeItem("limbo_stock_paginationInfo"),sessionStorage.removeItem("limbo_portals_searchName"),sessionStorage.removeItem("limbo_portals_limit"),sessionStorage.removeItem("limbo_portals_currentPage"),sessionStorage.removeItem("limbo_portals_images"),sessionStorage.removeItem("limbo_portals_portalResults"),sessionStorage.removeItem("limbo_portals_paginationInfo");const[g,y]=t({name:"",uploadedBy:"",dateFrom:"",dateTo:""}),v=hn(g.name,
|
|
503
|
+
/* @__PURE__ */o("div",{className:"lb:flex lb:justify-end lb:space-x-3",children:/* @__PURE__ */o("button",{onClick:t,className:"lb:px-4 lb:py-2 lb:bg-blue-600 lb:text-white lb:rounded-md lb:hover:bg-blue-700 lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-blue-500 lb:focus:ring-offset-2 lb:transition-colors",children:"Recargar Página"})})]})}):null}function cn(){const[e,n]=t(!1),[r,l]=t(null);return{deleteImg:async e=>{if(!e)return l("ID de imagen no proporcionado"),!1;n(!0),l(null);try{const t=await async function(e){try{return await R({endpoint:`/assets/${e}`,method:"DELETE",basePath:V,useJWT:!0})}catch(r){throw W(r)}}(e);return!1!==t.success}catch(t){return l(t.message),!1}finally{n(!1)}},loading:e,error:r,reset:()=>{l(null)}}}const un=/* @__PURE__ */new Map,dn=6e5,bn="limbo_gallery_cache";function mn(e,r=!1,i={},o=!0){const s=a(()=>JSON.stringify(i),[i]),c=l((()=>{const e=s,t=un.get(e),n=Date.now();return t&&n-t.timestamp<dn?{images:t.data,pagination:t.pagination||null,loading:!1}:{images:[],pagination:null,loading:o}})()),[u,d]=t(c.current.images),[b,m]=t(c.current.loading),[h,p]=t(null),[f,g]=t(c.current.pagination),[y,v]=t(0);n(()=>{if(!o)return void m(!1);const e=`${s}`,t=un.get(e),n=Date.now();if(t&&n-t.timestamp<dn)return d(t.data),g(t.pagination||null),void m(!1);let r=!0;return(async()=>{if(y>=3)r&&(p("Error de autenticación: Verifica tus credenciales API"),m(!1));else try{const t=await H(i);if(!r)return;const l=t.result||t.data||[],a=t.pagination||null;d(l),g(a),p(null),v(0),un.set(e,{data:l,pagination:a,timestamp:n}),(()=>{try{const e={};un.forEach((t,n)=>{e[n]=t}),sessionStorage.setItem(bn,JSON.stringify(e))}catch{}})()}catch(t){r&&(p(t.message),v(e=>e+1))}finally{r&&m(!1)}})(),()=>{r=!1}},[e,r,s,y,i,o]);return{images:u,loading:b,error:h,pagination:f,setImages:d,invalidateCache:()=>{un.delete(`${s}`)}}}function hn(e,r=500){const[l,a]=t(e);return n(()=>{const t=setTimeout(()=>{a(e)},r);return()=>{clearTimeout(t)}},[e,r]),l}function pn({apiKey:e,prod:l=!1,url:a=!0,features:i=["gallery","upload","cropper"],modeUI:u="full",ui:d={showActions:["select","download","copy","delete","crop","variants"],hideActions:[],theme:"light",language:"es",compactMode:!1,showTabs:!0},callbacks:b={},instanceId:m=null,itemsPerPage:h=10,_externalImage:p=null,cropperConfig:f=null}){sessionStorage.removeItem("limbo_stock_selectedService"),sessionStorage.removeItem("limbo_stock_dynamicForm"),sessionStorage.removeItem("limbo_stock_stockImages"),sessionStorage.removeItem("limbo_stock_currentPage"),sessionStorage.removeItem("limbo_stock_paginationInfo"),sessionStorage.removeItem("limbo_portals_searchName"),sessionStorage.removeItem("limbo_portals_limit"),sessionStorage.removeItem("limbo_portals_currentPage"),sessionStorage.removeItem("limbo_portals_images"),sessionStorage.removeItem("limbo_portals_portalResults"),sessionStorage.removeItem("limbo_portals_paginationInfo");const[g,y]=t({name:"",uploadedBy:"",dateFrom:"",dateTo:""}),v=hn(g.name,400),w=hn(g.uploadedBy,400),x=(()=>{switch(u){case"gallery-only":return["gallery"];case"upload-only":return["upload","cropper"];case"crop-only":return["cropper"];case"ia-only":return["ia"];default:return i}})(),[k,C]=t(x.includes("gallery")?"gallery":x.includes("upload")?"upload":x.includes("cropper")?"cropper":x.includes("ia")?"ia":x[0]||"gallery"),[S,N]=t(null);n(()=>{p&&(console.log("📸 Imagen externa detectada:",p),N(p),C("cropper"))},[p]);const[$,_]=t(1),{isTokenExpired:z,handleTokenExpiredClose:T}=function(){const[e,l]=t(!1),a=r(e=>{if(401===e?.response?.status){const t=e.response.data;if("token_expired"===t?.error||t?.message?.includes("expired")||t?.message?.includes("caducado")||t?.error?.includes("expired"))return l(!0),!0}return!1},[]),i=r(()=>{l(!1),alert("El token ha expirado. La página se recargará para obtener un nuevo token."),window.location.reload()},[]);return n(()=>{const e=e=>{e.detail&&e.detail.error&&a(e.detail.error)};return window.addEventListener("tokenExpiredError",e),()=>{window.removeEventListener("tokenExpiredError",e)}},[a]),{isTokenExpired:e,checkTokenExpiration:a,handleTokenExpiredClose:i}}(),{upload:A,loading:P,error:M,uploadedImage:I,reset:L}=function(){const[e,n]=t(!1),[r,l]=t(null),[a,i]=t(null);return{upload:async(e,t=null)=>{if(!e)return l("No se ha proporcionado ningún archivo"),null;n(!0),l(null),i(null);try{const n=await K(e,t,!1),r=n.result||n;return i(r),r}catch(r){return l(r.message),null}finally{n(!1)}},loading:e,error:r,uploadedImage:a,reset:()=>{l(null),i(null)}}}(),{deleteImg:D,loading:O,error:R,reset:j}=cn(),F={limit:h,page:$,...v&&{name:v},...w&&{uploadedBy:w},...g.dateFrom&&{dateFrom:g.dateFrom},...g.dateTo&&{dateTo:g.dateTo}},U=x.includes("gallery"),{images:q,loading:B,error:W,pagination:V,invalidateCache:H,setImages:G}=mn(e,l,F,U),{refreshVariants:Y}=Q(),X=e=>!d.hideActions?.includes(e)&&(!!d.showActions?.includes(e)||!(d.showActions?.length>0)),J=[{id:"gallery",label:"Galería",feature:"gallery"},{id:"upload",label:"Subir nueva",feature:"upload"},{id:"cropper",label:"Recortador",hideNonActive:!0,feature:"cropper"}].filter(e=>x.includes(e.feature)),Z=async e=>{const t=URL.createObjectURL(e),n=await new Promise(e=>{const n=new Image;n.onload=()=>{e({width:n.naturalWidth,height:n.naturalHeight}),URL.revokeObjectURL(t)},n.onerror=()=>{e({width:1920,height:1080}),URL.revokeObjectURL(t)},n.src=t}),r={file:e,filename:e.name,mime_type:e.type,url:URL.createObjectURL(e),width:n.width,height:n.height};if(N(r),x.includes("cropper"))C("cropper");else{const t=await A(e);t&&(H(),_(1),G(e=>[t,...e]),C("gallery"),b.onUpload&&b.onUpload({assetId:t.id,url:t.url,fileName:t.filename,mime:t.mime_type,width:t.width,height:t.height,instanceId:m}))}},te=async e=>{if(!confirm("¿Estás seguro de que deseas eliminar esta imagen? Esta acción también eliminará todos sus recortes."))return;await D(e)&&(H(),_(1),G(t=>t.filter(t=>t.id!==e)),S&&S.id===e&&(N(null),C("gallery")))},ne=e=>{N(e),x.includes("cropper")&&C("cropper")},re=()=>"crop-only"===u||1===x.length&&"cropper"===x[0]?"crop-only":x.includes("gallery")?"with-gallery":x.includes("upload")&&!x.includes("gallery")?"upload-only":"with-gallery";/* @__PURE__ */
|
|
502
504
|
return s(c,{children:[d.showTabs&&"cropper"!=k&&/* @__PURE__ */o(E,{tabs:J,active:k,onChange:e=>{C(e),"upload"!==e&&L(),"gallery"!==e&&j()}}),W&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:["Error al cargar imágenes: ",W]}),R&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:["Error al eliminar imagen: ",R]}),"gallery"===k&&/* @__PURE__ */s(c,{children:[O&&/* @__PURE__ */o(on,{text:"Eliminando imagen..."}),I&&/* @__PURE__ */s("div",{className:"alert alert-success lb:absolute lb:top-0 lb:right-[50px] lb:m-4",children:["✅ Imagen subida correctamente: ",I.filename]}),
|
|
503
|
-
/* @__PURE__ */o(ee,{onSelect:e=>{if(f?.mandatoryCrops?.length>0&&x.includes("cropper"))return console.log("[App] 📐 MandatoryCrops detectados, navegando al cropper primero"),void ne(e);b.onSelect&&b.onSelect({assetId:e.id,url:e.url,fileName:e.filename,mime:e.mime_type,width:e.width,height:e.height,instanceId:m})},onCrop:ne,onDelete:X("delete")?te:null,deletingId:O,images:q,loading:B,error:W,filters:g,onFiltersChange:e=>{y(e),_(1)},filterConfig:d.galleryFilters||{},loadingConfig:d.galleryLoading||{},allowedActions:{select:X("select"),download:X("download"),copy:X("copy"),delete:X("delete"),crop:X("crop")}}),V&&!B&&/* @__PURE__ */o(an,{currentPage:V.page||$,totalPages:V.pages||1,onPageChange:e=>{_(e)},disabled:B||O})]}),"upload"===k&&/* @__PURE__ */s("div",{children:[P&&/* @__PURE__ */o(on,{text:"Subiendo imagen..."}),M&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:["Error al subir imagen: ",M]}),I&&/* @__PURE__ */s("div",{className:"alert alert-success lb:absolute lb:top-0 lb:right-[50px] lb:m-4",children:["✅ Imagen subida correctamente: ",I.filename]}),
|
|
505
|
+
/* @__PURE__ */o(ee,{onSelect:e=>{if(f?.mandatoryCrops?.length>0&&x.includes("cropper"))return console.log("[App] 📐 MandatoryCrops detectados, navegando al cropper primero"),void ne(e);b.onSelect&&b.onSelect({assetId:e.id,url:e.url,fileName:e.filename,mime:e.mime_type,width:e.width,height:e.height,instanceId:m})},onCrop:ne,onDelete:X("delete")?te:null,deletingId:O,images:q,loading:B,error:W,filters:g,debouncedFilters:{name:v,uploadedBy:w,dateFrom:g.dateFrom,dateTo:g.dateTo},onFiltersChange:e=>{y(e),_(1)},filterConfig:d.galleryFilters||{},loadingConfig:d.galleryLoading||{},allowedActions:{select:X("select"),download:X("download"),copy:X("copy"),delete:X("delete"),crop:X("crop")}}),V&&!B&&/* @__PURE__ */o(an,{currentPage:V.page||$,totalPages:V.pages||1,onPageChange:e=>{_(e)},disabled:B||O})]}),"upload"===k&&/* @__PURE__ */s("div",{children:[P&&/* @__PURE__ */o(on,{text:"Subiendo imagen..."}),M&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:["Error al subir imagen: ",M]}),I&&/* @__PURE__ */s("div",{className:"alert alert-success lb:absolute lb:top-0 lb:right-[50px] lb:m-4",children:["✅ Imagen subida correctamente: ",I.filename]}),
|
|
504
506
|
/* @__PURE__ */o(we,{onSelect:Z,disabled:P,apiKey:e,prod:l})]}),"cropper"===k&&S&&/* @__PURE__ */o(ln,{image:S,onSave:e=>{const t=re(),n=window.limboCore?.config?.getGlobal()||{},r=n.mode||"embed",l=n.autoHideOnComplete||!1;let a=[],i=null;e.crops&&e.asset?(a=e.crops,i=e.asset):a=Array.isArray(e)?e:[e],i&&"with-gallery"===t&&(G(e=>[i,...e]),_(1),b.onUpload&&b.onUpload({assetId:i.id,url:i.url,fileName:i.filename,mime:i.mime_type,width:i.width,height:i.height,instanceId:m})),"with-gallery"===t&&H();const o=i||S,s={crops:a,assetId:o?.id,instanceId:m,asset:o?{id:o.id,url:o.url||o.urlSigned,width:o.width,height:o.height,filename:o.filename,mime_type:o.mime_type}:null};switch(b.onCropsSaved&&b.onCropsSaved(s),window.limboCore?.events&&window.limboCore.events.emit("cropsSaved",s),t){case"with-gallery":"modal"===r?window.limboCore?.modals?.closeAllModals():(N(null),C("gallery"));break;case"upload-only":"modal"===r?window.limboCore?.modals?.closeAllModals():(N(null),C("upload"));break;case"crop-only":if("modal"===r)b.onCropperComplete&&b.onCropperComplete({crops:a,instanceId:m}),window.limboCore?.events&&window.limboCore.events.emit("cropperComplete",{crops:a,instanceId:m}),window.limboCore?.modals?.closeAllModals();else if(b.onCropperComplete&&b.onCropperComplete({crops:a,instanceId:m}),window.limboCore?.events&&window.limboCore.events.emit("cropperComplete",{crops:a,instanceId:m}),l){const e=document.querySelector(`#limbo-instance-${m}`);e&&(e.style.display="none")}}},onCancel:()=>{const e=re(),t=(window.limboCore?.config?.getGlobal()||{}).mode||"embed";switch(b.onCropperCancelled&&b.onCropperCancelled({assetId:S?.id,instanceId:m}),window.limboCore?.events&&window.limboCore.events.emit("cropperCancelled",{assetId:S?.id,instanceId:m}),e){case"with-gallery":N(null),C("gallery");break;case"upload-only":"modal"===t?window.limboCore?.modals?.closeAllModals():(N(null),C("upload"));break;case"crop-only":"modal"===t?window.limboCore?.modals?.closeAllModals():window.limboCore?.events&&window.limboCore.events.emit("cropperClosed",{instanceId:m,reason:"cancelled"})}},onDelete:S?.id&&X("delete")?()=>te(S.id):null,onError:e=>{b.onCropperError&&b.onCropperError(e,m),window.limboCore?.events&&window.limboCore.events.emit("cropperError",{error:e,assetId:S?.id,instanceId:m}),console.error("Cropper error:",e)},deleting:O,onVariantCreated:(e,t)=>{Y(e)},onUpload:A,uploading:P,cropperConfig:f}),"cropper"===k&&!S&&
|
|
505
507
|
/* @__PURE__ */s("div","crop-only"===u?{children:[P&&/* @__PURE__ */o(on,{text:"Subiendo imagen..."}),M&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:["Error al subir imagen: ",M]}),
|
|
506
508
|
/* @__PURE__ */o(we,{onSelect:Z,disabled:P,apiKey:e,prod:l})]}:{className:"limbo-empty-state lb:flex lb:flex-col lb:items-center lb:justify-center lb:py-12 lb:px-6 lb:text-center",children:[
|