limbo-component 2.4.0 → 2.4.2
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 +87 -86
- 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/components/Gallery.d.ts.map +1 -1
- package/dist/types/components/ImageCard.d.ts.map +1 -1
- package/dist/types/components/ImagePreview.d.ts.map +1 -1
- package/dist/types/components/ImageVariantsModal.d.ts.map +1 -1
- package/dist/types/hooks/useImageCache.d.ts +18 -0
- package/dist/types/hooks/useImageCache.d.ts.map +1 -0
- package/dist/types/hooks/useImages.d.ts +2 -2
- package/dist/types/hooks/useImages.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/limbo.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import e,{useState as t,useEffect as n,useCallback as r,useRef as l,useMemo as a}from"react";import i from"react-dom";import{jsx as o,jsxs as s,Fragment as c}from"react/jsx-runtime";const u={es:{"button.select":"Seleccionar","button.upload":"Subir imagen","button.cancel":"Cancelar","button.close":"Cerrar","button.save":"Guardar","button.delete":"Eliminar","button.download":"Descargar","button.copy":"Copiar URL","button.crop":"Recortar","button.apply":"Aplicar","button.reset":"Reiniciar","button.back":"Volver","button.next":"Siguiente","button.previous":"Anterior","tab.gallery":"Galería","tab.upload":"Subir","tab.ia":"IA","tab.stock":"Stock","tab.cropper":"Recortar","message.loading":"Cargando...","message.uploading":"Subiendo imagen...","message.processing":"Procesando...","message.no_images":"No hay imágenes disponibles","message.upload_success":"Imagen subida correctamente","message.upload_error":"Error al subir la imagen","message.delete_confirm":"¿Estás seguro de que deseas eliminar esta imagen? Esta acción también eliminará todos sus recortes.","message.copy_success":"URL copiada al portapapeles","message.copy_error":"Error al copiar URL","error.file_too_large":"El archivo es demasiado grande","error.invalid_format":"Formato de archivo no válido","error.upload_failed":"Error al subir el archivo","error.network":"Error de conexión","error.unknown":"Error desconocido","error.api_key_missing":"API Key no proporcionada","placeholder.search":"Buscar imágenes...","placeholder.prompt":"Describe la imagen que quieres generar...","label.file_name":"Nombre del archivo","label.file_size":"Tamaño","label.dimensions":"Dimensiones","label.format":"Formato","label.uploaded_by":"Subido por","label.uploaded_at":"Fecha de subida","preset.square":"Cuadrado","preset.landscape":"Paisaje","preset.portrait":"Retrato","preset.thumbnail":"Miniatura","preset.medium":"Medio","preset.large":"Grande","preset.custom":"Personalizado"},en:{"button.select":"Select","button.upload":"Upload image","button.cancel":"Cancel","button.close":"Close","button.save":"Save","button.delete":"Delete","button.download":"Download","button.copy":"Copy URL","button.crop":"Crop","button.apply":"Apply","button.reset":"Reset","button.back":"Back","button.next":"Next","button.previous":"Previous","tab.gallery":"Gallery","tab.upload":"Upload","tab.ia":"AI","tab.stock":"Stock","tab.cropper":"Crop","message.loading":"Loading...","message.uploading":"Uploading image...","message.processing":"Processing...","message.no_images":"No images available","message.upload_success":"Image uploaded successfully","message.upload_error":"Error uploading image","message.delete_confirm":"Are you sure you want to delete this image?","message.copy_success":"URL copied to clipboard","message.copy_error":"Error copying URL","error.file_too_large":"File is too large","error.invalid_format":"Invalid file format","error.upload_failed":"Upload failed","error.network":"Network error","error.unknown":"Unknown error","error.api_key_missing":"API Key not provided","placeholder.search":"Search images...","placeholder.prompt":"Describe the image you want to generate...","label.file_name":"File name","label.file_size":"Size","label.dimensions":"Dimensions","label.format":"Format","label.uploaded_by":"Uploaded by","label.uploaded_at":"Upload date","preset.square":"Square","preset.landscape":"Landscape","preset.portrait":"Portrait","preset.thumbnail":"Thumbnail","preset.medium":"Medium","preset.large":"Large","preset.custom":"Custom"}};class d{constructor(e="es",t={}){this.locale=e,this.messages=this._mergeMessages(t)}_mergeMessages(e){const t={...u};return Object.keys(e).forEach(n=>{t[n]={...t[n]||{},...e[n]}}),t}t(e,t={}){let n=(this.messages[this.locale]||this.messages.es)[e]||e;return Object.keys(t).forEach(e=>{n=n.replace(`{${e}}`,t[e])}),n}setLocale(e){this.messages[e]?this.locale=e:console.warn(`Locale ${e} not available, keeping ${this.locale}`)}getLocale(){return this.locale}getAvailableLocales(){return Object.keys(this.messages)}addMessages(e,t){this.messages[e]={...this.messages[e]||{},...t}}hasKey(e){return e in(this.messages[this.locale]||this.messages.es)}}new d;class b{constructor(){this.globalConfig={},this.defaults={container:"#limbo-default",mode:"embed",modeUI:"full",features:["gallery","upload","cropper"],ui:{showActions:["select","download","copy","delete","crop"],hideActions:[],theme:"light",language:"es",compactMode:!1,showTabs:!0,showPreview:!0},cropper:{quality:.9,format:"webp",aspectRatio:null,lockAspectRatio:!1,showFreeAspectRatio:!0,showDimensionInputs:!1,enableEditMode:!0,showDownloadInCropper:!1,showCropName:!1,mandatoryCrops:[],allowCustomCrops:!0},gallery:{filters:{showNameFilter:!0,showUploadedByFilter:!1,showDateFilter:!0,enabledFilters:["name","date"],customFilters:[]},loading:{showPlaceholders:!0,placeholderCount:10,showSpinner:!0},pagination:{itemsPerPage:20,showPageSize:!0}},validation:{maxSize:"10MB",formats:["jpg","jpeg","png","webp","gif"],minWidth:null,minHeight:null,maxWidth:null,maxHeight:null},downloadFormat:"webp",return:{format:"url",autoAssign:!0,includeMetadata:!1},autoInputs:{dataset:"data-limbo-input-file",buttonText:"Seleccionar imagen",buttonStyle:"primary",buttonClass:"limbo-auto-button",scanOnLoad:!0,observeChanges:!0},presets:{aspects:[{name:"square",ratio:"1:1",label:"Cuadrado"},{name:"landscape",ratio:"16:9",label:"Paisaje"},{name:"portrait",ratio:"9:16",label:"Retrato"}],sizes:[{name:"thumbnail",width:300,height:300,fit:"cover",label:"Miniatura"},{name:"medium",width:800,height:600,fit:"cover",label:"Medio"},{name:"large",width:1920,height:1080,fit:"cover",label:"Grande"}],required:[],lockUserCrop:!1,allowArbitrary:!0,defaultAspect:"square",defaultSize:"medium"},modal:{size:"medium",title:"Limbo Image Manager",backdrop:!0,closeOnEscape:!0,closeOnBackdrop:!0,showCloseButton:!0},callbacks:{onUpload:null,onSelect:null,onDelete:null,onCropsSaved:null,onCropperComplete:null,onCropperCancelled:null,onCropperError:null},autoDestroy:!1,autoHideOnComplete:!1,debug:!1,apiEndpoint:null,auth:{apiKey:null,publicKey:null,portal:null,authMode:"jwt",tokenStorage:"memory",autoRefresh:!0,refreshBuffer:30},apiKey:null}}setGlobal(e){return this.globalConfig={...this.globalConfig,...e},this}getGlobal(){return{...this.globalConfig}}merge(e={}){return this._deepMerge(this.defaults,this.globalConfig,e)}_deepMerge(...e){const t={};return e.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(n=>{e[n]&&"object"==typeof e[n]&&!Array.isArray(e[n])?t[n]=this._deepMerge(t[n]||{},e[n]):t[n]=e[n]})}),t}setDefaults(e){return this.defaults=this._deepMerge(this.defaults,e),this}getDefaults(){return JSON.parse(JSON.stringify(this.defaults))}resetDefaults(){return this.defaults=this._getOriginalDefaults(),this}get(e,t=null){const n=t||this.merge();return this._getValueByPath(n,e)}set(e,t){return this._setValueByPath(this.globalConfig,e,t),this}_getValueByPath(e,t){return t.split(".").reduce((e,t)=>e&&void 0!==e[t]?e[t]:void 0,e)}_setValueByPath(e,t,n){const r=t.split("."),l=r.pop();r.reduce((e,t)=>(e[t]&&"object"==typeof e[t]||(e[t]={}),e[t]),e)[l]=n}_getOriginalDefaults(){return{container:"#limbo-default",mode:"embed",modeUI:"full",features:["gallery","upload","cropper"],ui:{showActions:["select","download","copy","delete","crop"],hideActions:[],theme:"light",language:"es",compactMode:!1,showTabs:!0,showPreview:!0},interaction:{allowSelection:!1,allowCropping:!0,requiresCropping:!1,selectionMode:"direct"},cropper:{quality:.9,format:"webp",aspectRatio:null,lockAspectRatio:!1,showFreeAspectRatio:!0,showDimensionInputs:!1,enableEditMode:!0,showDownloadInCropper:!1,showCropName:!1,mandatoryCrops:[],allowCustomCrops:!0},gallery:{filters:{showNameFilter:!0,showUploadedByFilter:!1,showDateFilter:!0,enabledFilters:["name","date"],customFilters:[]},loading:{showPlaceholders:!0,placeholderCount:10,showSpinner:!0},pagination:{itemsPerPage:20,showPageSize:!0}},validation:{maxSize:"10MB",formats:["jpg","jpeg","png","webp","gif"],minWidth:null,minHeight:null,maxWidth:null,maxHeight:null},return:{format:"url",autoAssign:!0,includeMetadata:!1},autoInputs:{dataset:"data-limbo-input-file",buttonText:"Seleccionar imagen",buttonStyle:"primary",buttonClass:"limbo-auto-button",scanOnLoad:!0,observeChanges:!0},modal:{size:"medium",title:"Limbo Image Manager",backdrop:!0,closeOnEscape:!0,closeOnBackdrop:!0,showCloseButton:!0},i18n:{locale:"es",messages:{},autoDetect:!0},theme:{colors:{},spacing:{},typography:{},borderRadius:{},shadows:{},customProperties:{}},callbacks:{onUpload:null,onSelect:null,onDelete:null,onCropsSaved:null,onCropperComplete:null,onCropperCancelled:null,onCropperError:null},autoDestroy:!1,autoHideOnComplete:!1,debug:!1,apiEndpoint:null,auth:{apiKey:null,publicKey:null,portal:null,authMode:"jwt",tokenStorage:"memory",autoRefresh:!0,refreshBuffer:30},apiKey:null}}_validatePresets(e){const t=[];if(e.aspects&&e.aspects.forEach((e,n)=>{e.name&&e.ratio||t.push(`Aspect preset ${n}: name and ratio are required`),e.ratio&&!/^\d+:\d+$/.test(e.ratio)&&t.push(`Aspect preset ${e.name}: ratio must be in format "w:h"`)}),e.sizes&&e.sizes.forEach((e,n)=>{e.name&&e.width||t.push(`Size preset ${n}: name and width are required`),e.width&&e.width<=0&&t.push(`Size preset ${e.name}: width must be positive`),e.height&&e.height<=0&&t.push(`Size preset ${e.name}: height must be positive`)}),e.required&&Array.isArray(e.required)){const n=[...e.aspects?.map(e=>e.name)||[],...e.sizes?.map(e=>e.name)||[]];e.required.forEach(e=>{n.includes(e)||t.push(`Required preset "${e}" not found in available presets`)})}return t}getPreset(e,t,n="aspect"){const r=e.presets||this.defaults.presets;return"aspect"===n?r.aspects?.find(e=>e.name===t):"size"===n?r.sizes?.find(e=>e.name===t):null}isPresetRequired(e,t){const n=e.presets||this.defaults.presets;return n.required?.includes(t)||!1}getAvailableAspects(e){return(e.presets||this.defaults.presets).aspects||[]}getAvailableSizes(e){return(e.presets||this.defaults.presets).sizes||[]}createI18n(e){const t=e.i18n||this.defaults.i18n;let n=t.locale;if(t.autoDetect&&"auto"===n){const e=(navigator.language||navigator.userLanguage).split("-")[0];n=["es","en"].includes(e)?e:"es"}else t.autoDetect&&!n&&(n="es");return new d(n,t.messages)}validate(e){const t=[],n=this._deepMerge(this.globalConfig.auth||{},e.auth||{}),r=e.apiKey||this.globalConfig.apiKey;if("jwt"!==n.authMode&&r||n.apiKey||t.push("auth.apiKey es requerido para autenticación JWT"),"legacy"!==n.authMode||r||t.push("apiKey es requerido para modo legacy"),n.apiKey||r||t.push("Se requiere configuración de autenticación (auth.apiKey o apiKey legacy)"),e.mode&&!["embed","modal","button"].includes(e.mode)&&t.push("mode debe ser: embed, modal o button"),e.features&&!Array.isArray(e.features)&&t.push("features debe ser un array"),e.presets){const n=this._validatePresets(e.presets);t.push(...n)}return{isValid:0===t.length,errors:t}}setJWTAuth(e,t=null,n={}){const r={apiKey:e,publicKey:t,authMode:"jwt",tokenStorage:n.tokenStorage||"memory",autoRefresh:!1!==n.autoRefresh,refreshBuffer:n.refreshBuffer||30,portal:n.portal||null,...n};return this.set("auth",r),this}getAuthConfig(e=null){const t=e||this.merge();return{authMode:t.auth?.authMode||(t.apiKey?"legacy":"jwt"),apiKey:t.auth?.apiKey||t.apiKey,publicKey:t.auth?.publicKey,portal:t.auth?.portal,tokenStorage:t.auth?.tokenStorage||"memory",autoRefresh:!1!==t.auth?.autoRefresh,refreshBuffer:t.auth?.refreshBuffer||30}}isJWTMode(e=null){return"jwt"===this.getAuthConfig(e).authMode}isLegacyMode(e=null){return"legacy"===this.getAuthConfig(e).authMode}migrateToJWT(e=null){const t=e||this.globalConfig.apiKey;if(!t)throw new Error("No hay apiKey para migrar a JWT");return this.setJWTAuth(t),this}getMandatoryCrops(e=null){const t=e||this.merge();return t.cropper?.mandatoryCrops||[]}hasMandatoryCrops(e=null){return this.getMandatoryCrops(e).length>0}isEditModeEnabled(e=null){const t=e||this.merge();return!1!==t.cropper?.enableEditMode}showDimensionInputs(e=null){const t=e||this.merge();return!0===t.cropper?.showDimensionInputs}showDownloadInCropper(e=null){const t=e||this.merge();return!0===t.cropper?.showDownloadInCropper}showCropName(e=null){const t=e||this.merge();return!0===t.cropper?.showCropName}allowCustomCrops(e=null){const t=e||this.merge();return!1!==t.cropper?.allowCustomCrops}getGalleryFilters(e=null){const t=e||this.merge();return t.gallery?.filters||this.defaults.gallery.filters}isGalleryFilterEnabled(e,t=null){const n=this.getGalleryFilters(t);return n.enabledFilters?.includes(e)||!1}getCustomGalleryFilters(e=null){return this.getGalleryFilters(e).customFilters||[]}getGalleryLoadingConfig(e=null){const t=e||this.merge();return t.gallery?.loading||this.defaults.gallery.loading}showGalleryPlaceholders(e=null){return!1!==this.getGalleryLoadingConfig(e).showPlaceholders}getPlaceholderCount(e=null){return this.getGalleryLoadingConfig(e).placeholderCount||10}showGallerySpinner(e=null){return!1!==this.getGalleryLoadingConfig(e).showSpinner}getGalleryPagination(e=null){const t=e||this.merge();return t.gallery?.pagination||this.defaults.gallery.pagination}getItemsPerPage(e=null){return this.getGalleryPagination(e).itemsPerPage||20}}var m,h,p,f,g={exports:{}},y={},v={exports:{}},w={};function x(){return h||(h=1,v.exports=(m||(m=1,function(e){function t(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<l(a,t)))break e;e[r]=t,e[n]=a,n=r}}function n(e){return 0===e.length?null:e[0]}function r(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var o=2*(r+1)-1,s=e[o],c=o+1,u=e[c];if(0>l(s,n))c<a&&0>l(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[o]=n,r=o);else{if(!(c<a&&0>l(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function l(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(e.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var a=performance;e.unstable_now=function(){return a.now()}}else{var i=Date,o=i.now();e.unstable_now=function(){return i.now()-o}}var s=[],c=[],u=1,d=null,b=3,m=!1,h=!1,p=!1,f=!1,g="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var l=n(c);null!==l;){if(null===l.callback)r(c);else{if(!(l.startTime<=e))break;r(c),l.sortIndex=l.expirationTime,t(s,l)}l=n(c)}}function x(e){if(p=!1,w(e),!h)if(null!==n(s))h=!0,C||(C=!0,k());else{var t=n(c);null!==t&&A(x,t.startTime-e)}}var k,C=!1,S=-1,N=5,E=-1;function $(){return!(!f&&e.unstable_now()-E<N)}function _(){if(f=!1,C){var t=e.unstable_now();E=t;var l=!0;try{e:{h=!1,p&&(p=!1,y(S),S=-1),m=!0;var a=b;try{t:{for(w(t),d=n(s);null!==d&&!(d.expirationTime>t&&$());){var i=d.callback;if("function"==typeof i){d.callback=null,b=d.priorityLevel;var o=i(d.expirationTime<=t);if(t=e.unstable_now(),"function"==typeof o){d.callback=o,w(t),l=!0;break t}d===n(s)&&r(s),w(t)}else r(s);d=n(s)}if(null!==d)l=!0;else{var u=n(c);null!==u&&A(x,u.startTime-t),l=!1}}break e}finally{d=null,b=a,m=!1}l=void 0}}finally{l?k():C=!1}}}if("function"==typeof v)k=function(){v(_)};else if("undefined"!=typeof MessageChannel){var z=new MessageChannel,T=z.port2;z.port1.onmessage=_,k=function(){T.postMessage(null)}}else k=function(){g(_,0)};function A(t,n){S=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):N=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return b},e.unstable_next=function(e){switch(b){case 1:case 2:case 3:var t=3;break;default:t=b}var n=b;b=t;try{return e()}finally{b=n}},e.unstable_requestPaint=function(){f=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=b;b=e;try{return t()}finally{b=n}},e.unstable_scheduleCallback=function(r,l,a){var i=e.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?i+a:i,r){case 1:var o=-1;break;case 2:o=250;break;case 5:o=1073741823;break;case 4:o=1e4;break;default:o=5e3}return r={id:u++,callback:l,priorityLevel:r,startTime:a,expirationTime:o=a+o,sortIndex:-1},a>i?(r.sortIndex=a,t(c,r),null===n(s)&&r===n(c)&&(p?(y(S),S=-1):p=!0,A(x,a-i))):(r.sortIndex=o,t(s,r),h||m||(h=!0,C||(C=!0,k()))),r},e.unstable_shouldYield=$,e.unstable_wrapCallback=function(e){var t=b;return function(){var n=b;b=t;try{return e.apply(this,arguments)}finally{b=n}}}}(w)),w)),v.exports}function k(){if(p)return y;p=1;var t=x(),n=e,r=i;function l(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function s(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function c(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function u(e){if(o(e)!==e)throw Error(l(188))}function d(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e;for(e=e.child;null!==e;){if(null!==(t=d(e)))return t;e=e.sibling}return null}var b=Object.assign,m=/* @__PURE__ */Symbol.for("react.element"),h=/* @__PURE__ */Symbol.for("react.transitional.element"),f=/* @__PURE__ */Symbol.for("react.portal"),g=/* @__PURE__ */Symbol.for("react.fragment"),v=/* @__PURE__ */Symbol.for("react.strict_mode"),w=/* @__PURE__ */Symbol.for("react.profiler"),k=/* @__PURE__ */Symbol.for("react.consumer"),C=/* @__PURE__ */Symbol.for("react.context"),S=/* @__PURE__ */Symbol.for("react.forward_ref"),N=/* @__PURE__ */Symbol.for("react.suspense"),E=/* @__PURE__ */Symbol.for("react.suspense_list"),$=/* @__PURE__ */Symbol.for("react.memo"),_=/* @__PURE__ */Symbol.for("react.lazy"),z=/* @__PURE__ */Symbol.for("react.activity"),T=/* @__PURE__ */Symbol.for("react.memo_cache_sentinel"),A=Symbol.iterator;function P(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=A&&e[A]||e["@@iterator"])?e:null}var M=/* @__PURE__ */Symbol.for("react.client.reference");function I(e){if(null==e)return null;if("function"==typeof e)return e.$$typeof===M?null:e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case g:return"Fragment";case w:return"Profiler";case v:return"StrictMode";case N:return"Suspense";case E:return"SuspenseList";case z:return"Activity"}if("object"==typeof e)switch(e.$$typeof){case f:return"Portal";case C:return e.displayName||"Context";case k:return(e._context.displayName||"Context")+".Consumer";case S:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case $:return null!==(t=e.displayName||null)?t:I(e.type)||"Memo";case _:t=e._payload,e=e._init;try{return I(e(t))}catch(n){}}return null}var L=Array.isArray,D=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R={pending:!1,data:null,method:null,action:null},j=[],F=-1;function U(e){return{current:e}}function q(e){0>F||(e.current=j[F],j[F]=null,F--)}function B(e,t){F++,j[F]=e.current,e.current=t}var W,V,H=U(null),K=U(null),G=U(null),Q=U(null);function Y(e,t){switch(B(G,t),B(K,e),B(H,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=wd(t=vd(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}q(H),B(H,e)}function X(){q(H),q(K),q(G)}function J(e){null!==e.memoizedState&&B(Q,e);var t=H.current,n=wd(t,e.type);t!==n&&(B(K,e),B(H,n))}function Z(e){K.current===e&&(q(H),q(K)),Q.current===e&&(q(Q),bb._currentValue=R)}function ee(e){if(void 0===W)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);W=t&&t[1]||"",V=-1<n.stack.indexOf("\n at")?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+W+e+V}var te=!1;function ne(e,t){if(!e||te)return"";te=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(l){var r=l}Reflect.construct(e,[],n)}else{try{n.call()}catch(a){r=a}e.call(n.prototype)}}else{try{throw Error()}catch(i){r=i}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(o){if(o&&r&&"string"==typeof o.stack)return[o.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=r.DetermineComponentFrameRoot(),i=a[0],o=a[1];if(i&&o){var s=i.split("\n"),c=o.split("\n");for(l=r=0;r<s.length&&!s[r].includes("DetermineComponentFrameRoot");)r++;for(;l<c.length&&!c[l].includes("DetermineComponentFrameRoot");)l++;if(r===s.length||l===c.length)for(r=s.length-1,l=c.length-1;1<=r&&0<=l&&s[r]!==c[l];)l--;for(;1<=r&&0<=l;r--,l--)if(s[r]!==c[l]){if(1!==r||1!==l)do{if(r--,0>--l||s[r]!==c[l]){var u="\n"+s[r].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}}while(1<=r&&0<=l);break}}}finally{te=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?ee(n):""}function re(e,t){switch(e.tag){case 26:case 27:case 5:return ee(e.type);case 16:return ee("Lazy");case 13:return e.child!==t&&null!==t?ee("Suspense Fallback"):ee("Suspense");case 19:return ee("SuspenseList");case 0:case 15:return ne(e.type,!1);case 11:return ne(e.type.render,!1);case 1:return ne(e.type,!0);case 31:return ee("Activity");default:return""}}function le(e){try{var t="",n=null;do{t+=re(e,n),n=e,e=e.return}while(e);return t}catch(r){return"\nError generating stack: "+r.message+"\n"+r.stack}}var ae=Object.prototype.hasOwnProperty,ie=t.unstable_scheduleCallback,oe=t.unstable_cancelCallback,se=t.unstable_shouldYield,ce=t.unstable_requestPaint,ue=t.unstable_now,de=t.unstable_getCurrentPriorityLevel,be=t.unstable_ImmediatePriority,me=t.unstable_UserBlockingPriority,he=t.unstable_NormalPriority,pe=t.unstable_LowPriority,fe=t.unstable_IdlePriority,ge=t.log,ye=t.unstable_setDisableYieldValue,ve=null,we=null;function xe(e){if("function"==typeof ge&&ye(e),we&&"function"==typeof we.setStrictMode)try{we.setStrictMode(ve,e)}catch(t){}}var ke=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(Ce(e)/Se|0)|0},Ce=Math.log,Se=Math.LN2;var Ne=256,Ee=262144,$e=4194304;function _e(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ze(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var l=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var o=134217727&r;return 0!==o?0!==(r=o&~a)?l=_e(r):0!==(i&=o)?l=_e(i):n||0!==(n=o&~e)&&(l=_e(n)):0!==(o=r&~a)?l=_e(o):0!==i?l=_e(i):n||0!==(n=r&~e)&&(l=_e(n)),0===l?0:0!==t&&t!==l&&0===(t&a)&&((a=l&-l)>=(n=t&-t)||32===a&&4194048&n)?t:l}function Te(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Ae(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Pe(){var e=$e;return!(62914560&($e<<=1))&&($e=4194304),e}function Me(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ie(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Le(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-ke(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|261930&n}function De(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ke(n),l=1<<r;l&t|e[r]&t&&(e[r]|=t),n&=~l}}function Oe(e,t){var n=t&-t;return 0!==((n=42&n?1:Re(n))&(e.suspendedLanes|t))?0:n}function Re(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function je(e){return 2<(e&=-e)?8<e?134217727&e?32:268435456:8:2}function Fe(){var e=O.p;return 0!==e?e:void 0===(e=window.event)?32:_b(e.type)}function Ue(e,t){var n=O.p;try{return O.p=e,t()}finally{O.p=n}}var qe=Math.random().toString(36).slice(2),Be="__reactFiber$"+qe,We="__reactProps$"+qe,Ve="__reactContainer$"+qe,He="__reactEvents$"+qe,Ke="__reactListeners$"+qe,Ge="__reactHandles$"+qe,Qe="__reactResources$"+qe,Ye="__reactMarker$"+qe;function Xe(e){delete e[Be],delete e[We],delete e[He],delete e[Ke],delete e[Ge]}function Je(e){var t=e[Be];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ve]||n[Be]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Rd(e);null!==e;){if(n=e[Be])return n;e=Rd(e)}return t}n=(e=n).parentNode}return null}function Ze(e){if(e=e[Be]||e[Ve]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function et(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(l(33))}function tt(e){var t=e[Qe];return t||(t=e[Qe]={hoistableStyles:/* @__PURE__ */new Map,hoistableScripts:/* @__PURE__ */new Map}),t}function nt(e){e[Ye]=!0}var rt=/* @__PURE__ */new Set,lt={};function at(e,t){it(e,t),it(e+"Capture",t)}function it(e,t){for(lt[e]=t,e=0;e<t.length;e++)rt.add(t[e])}var ot=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),st={},ct={};function ut(e,t,n){if(l=t,ae.call(ct,l)||!ae.call(st,l)&&(ot.test(l)?ct[l]=!0:(st[l]=!0,0)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":return void e.removeAttribute(t);case"boolean":var r=t.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(t)}e.setAttribute(t,""+n)}var l}function dt(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(t)}e.setAttribute(t,""+n)}}function bt(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(n)}e.setAttributeNS(t,n,""+r)}}function mt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function ht(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function pt(e){if(!e._valueTracker){var t=ht(e)?"checked":"value";e._valueTracker=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==r&&"function"==typeof r.get&&"function"==typeof r.set){var l=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(e){n=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,""+e[t])}}function ft(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ht(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function gt(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var yt=/[\n"\\]/g;function vt(e){return e.replace(yt,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function wt(e,t,n,r,l,a,i,o){e.name="",null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i?e.type=i:e.removeAttribute("type"),null!=t?"number"===i?(0===t&&""===e.value||e.value!=t)&&(e.value=""+mt(t)):e.value!==""+mt(t)&&(e.value=""+mt(t)):"submit"!==i&&"reset"!==i||e.removeAttribute("value"),null!=t?kt(e,i,mt(t)):null!=n?kt(e,i,mt(n)):null!=r&&e.removeAttribute("value"),null==l&&null!=a&&(e.defaultChecked=!!a),null!=l&&(e.checked=l&&"function"!=typeof l&&"symbol"!=typeof l),null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o?e.name=""+mt(o):e.removeAttribute("name")}function xt(e,t,n,r,l,a,i,o){if(null!=a&&"function"!=typeof a&&"symbol"!=typeof a&&"boolean"!=typeof a&&(e.type=a),null!=t||null!=n){if(("submit"===a||"reset"===a)&&null==t)return void pt(e);n=null!=n?""+mt(n):"",t=null!=t?""+mt(t):n,o||t===e.value||(e.value=t),e.defaultValue=t}r="function"!=typeof(r=null!=r?r:l)&&"symbol"!=typeof r&&!!r,e.checked=o?e.checked:!!r,e.defaultChecked=!!r,null!=i&&"function"!=typeof i&&"symbol"!=typeof i&&"boolean"!=typeof i&&(e.name=i),pt(e)}function kt(e,t,n){"number"===t&>(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ct(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+mt(n),t=null,l=0;l<e.length;l++){if(e[l].value===n)return e[l].selected=!0,void(r&&(e[l].defaultSelected=!0));null!==t||e[l].disabled||(t=e[l])}null!==t&&(t.selected=!0)}}function St(e,t,n){null==t||((t=""+mt(t))!==e.value&&(e.value=t),null!=n)?e.defaultValue=null!=n?""+mt(n):"":e.defaultValue!==t&&(e.defaultValue=t)}function Nt(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(l(92));if(L(r)){if(1<r.length)throw Error(l(93));r=r[0]}n=r}null==n&&(n=""),t=n}n=mt(t),e.defaultValue=n,(r=e.textContent)===n&&""!==r&&null!==r&&(e.value=r),pt(e)}function Et(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var $t=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function _t(e,t,n){var r=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?r?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":r?e.setProperty(t,n):"number"!=typeof n||0===n||$t.has(t)?"float"===t?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function zt(e,t,n){if(null!=t&&"object"!=typeof t)throw Error(l(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="");for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&_t(e,a,r)}else for(var i in t)t.hasOwnProperty(i)&&_t(e,i,t[i])}function Tt(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var At=/* @__PURE__ */new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Pt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Mt(e){return Pt.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function It(){}var Lt=null;function Dt(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ot=null,Rt=null;function jt(e){var t=Ze(e);if(t&&(e=t.stateNode)){var n=e[We]||null;e:switch(e=t.stateNode,t.type){case"input":if(wt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+vt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[We]||null;if(!a)throw Error(l(90));wt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&ft(r)}break e;case"textarea":St(e,n.value,n.defaultValue);break e;case"select":null!=(t=n.value)&&Ct(e,!!n.multiple,t,!1)}}}var Ft=!1;function Ut(e,t,n){if(Ft)return e(t,n);Ft=!0;try{return e(t)}finally{if(Ft=!1,(null!==Ot||null!==Rt)&&(tu(),Ot&&(t=Ot,e=Rt,Rt=Ot=null,jt(t),e)))for(t=0;t<e.length;t++)jt(e[t])}}function qt(e,t){var n=e.stateNode;if(null===n)return null;var r=n[We]||null;if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(l(231,t,typeof n));return n}var Bt=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),Wt=!1;if(Bt)try{var Vt={};Object.defineProperty(Vt,"passive",{get:function(){Wt=!0}}),window.addEventListener("test",Vt,Vt),window.removeEventListener("test",Vt,Vt)}catch(Zb){Wt=!1}var Ht=null,Kt=null,Gt=null;function Qt(){if(Gt)return Gt;var e,t,n=Kt,r=n.length,l="value"in Ht?Ht.value:Ht.textContent,a=l.length;for(e=0;e<r&&n[e]===l[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===l[a-t];t++);return Gt=l.slice(e,1<t?1-t:void 0)}function Yt(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function Xt(){return!0}function Jt(){return!1}function Zt(e){function t(t,n,r,l,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=l,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(l):l[i]);return this.isDefaultPrevented=(null!=l.defaultPrevented?l.defaultPrevented:!1===l.returnValue)?Xt:Jt,this.isPropagationStopped=Jt,this}return b(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Xt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Xt)},persist:function(){},isPersistent:Xt}),t}var en,tn,nn,rn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ln=Zt(rn),an=b({},rn,{view:0,detail:0}),on=Zt(an),sn=b({},an,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:vn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==nn&&(nn&&"mousemove"===e.type?(en=e.screenX-nn.screenX,tn=e.screenY-nn.screenY):tn=en=0,nn=e),en)},movementY:function(e){return"movementY"in e?e.movementY:tn}}),cn=Zt(sn),un=Zt(b({},sn,{dataTransfer:0})),dn=Zt(b({},an,{relatedTarget:0})),bn=Zt(b({},rn,{animationName:0,elapsedTime:0,pseudoElement:0})),mn=Zt(b({},rn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),hn=Zt(b({},rn,{data:0})),pn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},fn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},gn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function yn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=gn[e])&&!!t[e]}function vn(){return yn}var wn=Zt(b({},an,{key:function(e){if(e.key){var t=pn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=Yt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?fn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:vn,charCode:function(e){return"keypress"===e.type?Yt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Yt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),xn=Zt(b({},sn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),kn=Zt(b({},an,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:vn})),Cn=Zt(b({},rn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Sn=Zt(b({},sn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Nn=Zt(b({},rn,{newState:0,oldState:0})),En=[9,13,27,32],$n=Bt&&"CompositionEvent"in window,_n=null;Bt&&"documentMode"in document&&(_n=document.documentMode);var zn=Bt&&"TextEvent"in window&&!_n,Tn=Bt&&(!$n||_n&&8<_n&&11>=_n),An=String.fromCharCode(32),Pn=!1;function Mn(e,t){switch(e){case"keyup":return-1!==En.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function In(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Ln=!1;var Dn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function On(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Dn[e.type]:"textarea"===t}function Rn(e,t,n,r){Ot?Rt?Rt.push(r):Rt=[r]:Ot=r,0<(t=ad(t,"onChange")).length&&(n=new ln("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var jn=null,Fn=null;function Un(e){Xu(e,0)}function qn(e){if(ft(et(e)))return e}function Bn(e,t){if("change"===e)return t}var Wn=!1;if(Bt){var Vn;if(Bt){var Hn="oninput"in document;if(!Hn){var Kn=document.createElement("div");Kn.setAttribute("oninput","return;"),Hn="function"==typeof Kn.oninput}Vn=Hn}else Vn=!1;Wn=Vn&&(!document.documentMode||9<document.documentMode)}function Gn(){jn&&(jn.detachEvent("onpropertychange",Qn),Fn=jn=null)}function Qn(e){if("value"===e.propertyName&&qn(Fn)){var t=[];Rn(t,Fn,e,Dt(e)),Ut(Un,t)}}function Yn(e,t,n){"focusin"===e?(Gn(),Fn=n,(jn=t).attachEvent("onpropertychange",Qn)):"focusout"===e&&Gn()}function Xn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return qn(Fn)}function Jn(e,t){if("click"===e)return qn(t)}function Zn(e,t){if("input"===e||"change"===e)return qn(t)}var er="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function tr(e,t){if(er(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var l=n[r];if(!ae.call(t,l)||!er(e[l],t[l]))return!1}return!0}function nr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function rr(e,t){var n,r=nr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=nr(r)}}function lr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?lr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function ar(e){for(var t=gt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=gt((e=t.contentWindow).document)}return t}function ir(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var or=Bt&&"documentMode"in document&&11>=document.documentMode,sr=null,cr=null,ur=null,dr=!1;function br(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;dr||null==sr||sr!==gt(r)||("selectionStart"in(r=sr)&&ir(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},ur&&tr(ur,r)||(ur=r,0<(r=ad(cr,"onSelect")).length&&(t=new ln("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=sr)))}function mr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var hr={animationend:mr("Animation","AnimationEnd"),animationiteration:mr("Animation","AnimationIteration"),animationstart:mr("Animation","AnimationStart"),transitionrun:mr("Transition","TransitionRun"),transitionstart:mr("Transition","TransitionStart"),transitioncancel:mr("Transition","TransitionCancel"),transitionend:mr("Transition","TransitionEnd")},pr={},fr={};function gr(e){if(pr[e])return pr[e];if(!hr[e])return e;var t,n=hr[e];for(t in n)if(n.hasOwnProperty(t)&&t in fr)return pr[e]=n[t];return e}Bt&&(fr=document.createElement("div").style,"AnimationEvent"in window||(delete hr.animationend.animation,delete hr.animationiteration.animation,delete hr.animationstart.animation),"TransitionEvent"in window||delete hr.transitionend.transition);var yr=gr("animationend"),vr=gr("animationiteration"),wr=gr("animationstart"),xr=gr("transitionrun"),kr=gr("transitionstart"),Cr=gr("transitioncancel"),Sr=gr("transitionend"),Nr=/* @__PURE__ */new Map,Er="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function $r(e,t){Nr.set(e,t),at(t,[e])}Er.push("scrollEnd");var _r="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},zr=[],Tr=0,Ar=0;function Pr(){for(var e=Tr,t=Ar=Tr=0;t<e;){var n=zr[t];zr[t++]=null;var r=zr[t];zr[t++]=null;var l=zr[t];zr[t++]=null;var a=zr[t];if(zr[t++]=null,null!==r&&null!==l){var i=r.pending;null===i?l.next=l:(l.next=i.next,i.next=l),r.pending=l}0!==a&&Dr(n,l,a)}}function Mr(e,t,n,r){zr[Tr++]=e,zr[Tr++]=t,zr[Tr++]=n,zr[Tr++]=r,Ar|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function Ir(e,t,n,r){return Mr(e,t,n,r),Or(e)}function Lr(e,t){return Mr(e,null,null,t),Or(e)}function Dr(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var l=!1,a=e.return;null!==a;)a.childLanes|=n,null!==(r=a.alternate)&&(r.childLanes|=n),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(l=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,l&&null!==t&&(l=31-ke(n),null===(r=(e=a.hiddenUpdates)[l])?e[l]=[t]:r.push(t),t.lane=536870912|n),a):null}function Or(e){if(50<Hc)throw Hc=0,Kc=null,Error(l(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var Rr={};function jr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Fr(e,t,n,r){return new jr(e,t,n,r)}function Ur(e){return!(!(e=e.prototype)||!e.isReactComponent)}function qr(e,t){var n=e.alternate;return null===n?((n=Fr(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=65011712&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Br(e,t){e.flags&=65011714;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Wr(e,t,n,r,a,i){var o=0;if(r=e,"function"==typeof e)Ur(e)&&(o=1);else if("string"==typeof e)o=function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof t.precedence||"string"!=typeof t.href||""===t.href)break;return!0;case"link":if("string"!=typeof t.rel||"string"!=typeof t.href||""===t.href||t.onLoad||t.onError)break;return"stylesheet"!==t.rel||(e=t.disabled,"string"==typeof t.precedence&&null==e);case"script":if(t.async&&"function"!=typeof t.async&&"symbol"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&"string"==typeof t.src)return!0}return!1}(e,n,H.current)?26:"html"===e||"head"===e||"body"===e?27:5;else e:switch(e){case z:return(e=Fr(31,n,t,a)).elementType=z,e.lanes=i,e;case g:return Vr(n.children,a,i,t);case v:o=8,a|=24;break;case w:return(e=Fr(12,n,t,2|a)).elementType=w,e.lanes=i,e;case N:return(e=Fr(13,n,t,a)).elementType=N,e.lanes=i,e;case E:return(e=Fr(19,n,t,a)).elementType=E,e.lanes=i,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:o=10;break e;case k:o=9;break e;case S:o=11;break e;case $:o=14;break e;case _:o=16,r=null;break e}o=29,n=Error(l(130,null===e?"null":typeof e,"")),r=null}return(t=Fr(o,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Vr(e,t,n,r){return(e=Fr(7,e,r,t)).lanes=n,e}function Hr(e,t,n){return(e=Fr(6,e,null,t)).lanes=n,e}function Kr(e){var t=Fr(18,null,null,0);return t.stateNode=e,t}function Gr(e,t,n){return(t=Fr(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Qr=/* @__PURE__ */new WeakMap;function Yr(e,t){if("object"==typeof e&&null!==e){var n=Qr.get(e);return void 0!==n?n:(t={value:e,source:t,stack:le(t)},Qr.set(e,t),t)}return{value:e,source:t,stack:le(t)}}var Xr=[],Jr=0,Zr=null,el=0,tl=[],nl=0,rl=null,ll=1,al="";function il(e,t){Xr[Jr++]=el,Xr[Jr++]=Zr,Zr=e,el=t}function ol(e,t,n){tl[nl++]=ll,tl[nl++]=al,tl[nl++]=rl,rl=e;var r=ll;e=al;var l=32-ke(r)-1;r&=~(1<<l),n+=1;var a=32-ke(t)+l;if(30<a){var i=l-l%5;a=(r&(1<<i)-1).toString(32),r>>=i,l-=i,ll=1<<32-ke(t)+l|n<<l|r,al=a+e}else ll=1<<a|n<<l|r,al=e}function sl(e){null!==e.return&&(il(e,1),ol(e,1,0))}function cl(e){for(;e===Zr;)Zr=Xr[--Jr],Xr[Jr]=null,el=Xr[--Jr],Xr[Jr]=null;for(;e===rl;)rl=tl[--nl],tl[nl]=null,al=tl[--nl],tl[nl]=null,ll=tl[--nl],tl[nl]=null}function ul(e,t){tl[nl++]=ll,tl[nl++]=al,tl[nl++]=rl,ll=t.id,al=t.overflow,rl=e}var dl=null,bl=null,ml=!1,hl=null,pl=!1,fl=Error(l(519));function gl(e){throw Cl(Yr(Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML","")),e)),fl}function yl(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[Be]=e,t[We]=r,n){case"dialog":Ju("cancel",t),Ju("close",t);break;case"iframe":case"object":case"embed":Ju("load",t);break;case"video":case"audio":for(n=0;n<Qu.length;n++)Ju(Qu[n],t);break;case"source":Ju("error",t);break;case"img":case"image":case"link":Ju("error",t),Ju("load",t);break;case"details":Ju("toggle",t);break;case"input":Ju("invalid",t),xt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case"select":Ju("invalid",t);break;case"textarea":Ju("invalid",t),Nt(t,r.value,r.defaultValue,r.children)}"string"!=typeof(n=r.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===r.suppressHydrationWarning||dd(t.textContent,n)?(null!=r.popover&&(Ju("beforetoggle",t),Ju("toggle",t)),null!=r.onScroll&&Ju("scroll",t),null!=r.onScrollEnd&&Ju("scrollend",t),null!=r.onClick&&(t.onclick=It),t=!0):t=!1,t||gl(e,!0)}function vl(e){for(dl=e.return;dl;)switch(dl.tag){case 5:case 31:case 13:return void(pl=!1);case 27:case 3:return void(pl=!0);default:dl=dl.return}}function wl(e){if(e!==dl)return!1;if(!ml)return vl(e),ml=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t=!("form"!==(t=e.type)&&"button"!==t)||xd(e.type,e.memoizedProps)),t=!t),t&&bl&&gl(e),vl(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));bl=Od(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));bl=Od(e)}else 27===n?(n=bl,_d(e.type)?(e=Dd,Dd=null,bl=e):bl=n):bl=dl?Ld(e.stateNode.nextSibling):null;return!0}function xl(){bl=dl=null,ml=!1}function kl(){var e=hl;return null!==e&&(null===Pc?Pc=e:Pc.push.apply(Pc,e),hl=null),e}function Cl(e){null===hl?hl=[e]:hl.push(e)}var Sl=U(null),Nl=null,El=null;function $l(e,t,n){B(Sl,t._currentValue),t._currentValue=n}function _l(e){e._currentValue=Sl.current,q(Sl)}function zl(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Tl(e,t,n,r){var a=e.child;for(null!==a&&(a.return=e);null!==a;){var i=a.dependencies;if(null!==i){var o=a.child;i=i.firstContext;e:for(;null!==i;){var s=i;i=a;for(var c=0;c<t.length;c++)if(s.context===t[c]){i.lanes|=n,null!==(s=i.alternate)&&(s.lanes|=n),zl(i.return,n,e),r||(o=null);break e}i=s.next}}else if(18===a.tag){if(null===(o=a.return))throw Error(l(341));o.lanes|=n,null!==(i=o.alternate)&&(i.lanes|=n),zl(o,n,e),o=null}else o=a.child;if(null!==o)o.return=a;else for(o=a;null!==o;){if(o===e){o=null;break}if(null!==(a=o.sibling)){a.return=o.return,o=a;break}o=o.return}a=o}}function Al(e,t,n,r){e=null;for(var a=t,i=!1;null!==a;){if(!i)if(524288&a.flags)i=!0;else if(262144&a.flags)break;if(10===a.tag){var o=a.alternate;if(null===o)throw Error(l(387));if(null!==(o=o.memoizedProps)){var s=a.type;er(a.pendingProps.value,o.value)||(null!==e?e.push(s):e=[s])}}else if(a===Q.current){if(null===(o=a.alternate))throw Error(l(387));o.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(bb):e=[bb])}a=a.return}null!==e&&Tl(t,e,n,r),t.flags|=262144}function Pl(e){for(e=e.firstContext;null!==e;){if(!er(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Ml(e){Nl=e,El=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function Il(e){return Dl(Nl,e)}function Ll(e,t){return null===Nl&&Ml(e),Dl(e,t)}function Dl(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===El){if(null===e)throw Error(l(308));El=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else El=El.next=t;return n}var Ol="undefined"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Rl=t.unstable_scheduleCallback,jl=t.unstable_NormalPriority,Fl={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ul(){return{controller:new Ol,data:/* @__PURE__ */new Map,refCount:0}}function ql(e){e.refCount--,0===e.refCount&&Rl(jl,function(){e.controller.abort()})}var Bl=null,Wl=0,Vl=0,Hl=null;function Kl(){if(0===--Wl&&null!==Bl){null!==Hl&&(Hl.status="fulfilled");var e=Bl;Bl=null,Vl=0,Hl=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var Gl=D.S;D.S=function(e,t){Lc=ue(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e,t){if(null===Bl){var n=Bl=[];Wl=0,Vl=Wu(),Hl={status:"pending",value:void 0,then:function(e){n.push(e)}}}Wl++,t.then(Kl,Kl)}(0,t),null!==Gl&&Gl(e,t)};var Ql=U(null);function Yl(){var e=Ql.current;return null!==e?e:fc.pooledCache}function Xl(e,t){B(Ql,null===t?Ql.current:t.pool)}function Jl(){var e=Yl();return null===e?null:{parent:Fl._currentValue,pool:e}}var Zl=Error(l(460)),ea=Error(l(474)),ta=Error(l(542)),na={then:function(){}};function ra(e){return"fulfilled"===(e=e.status)||"rejected"===e}function la(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(It,It),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw sa(e=t.reason),e;default:if("string"==typeof t.status)t.then(It,It);else{if(null!==(e=fc)&&100<e.shellSuspendCounter)throw Error(l(482));(e=t).status="pending",e.then(function(e){if("pending"===t.status){var n=t;n.status="fulfilled",n.value=e}},function(e){if("pending"===t.status){var n=t;n.status="rejected",n.reason=e}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw sa(e=t.reason),e}throw ia=t,Zl}}function aa(e){try{return(0,e._init)(e._payload)}catch(t){if(null!==t&&"object"==typeof t&&"function"==typeof t.then)throw ia=t,Zl;throw t}}var ia=null;function oa(){if(null===ia)throw Error(l(459));var e=ia;return ia=null,e}function sa(e){if(e===Zl||e===ta)throw Error(l(483))}var ca=null,ua=0;function da(e){var t=ua;return ua+=1,null===ca&&(ca=[]),la(ca,e,t)}function ba(e,t){t=t.props.ref,e.ref=void 0!==t?t:null}function ma(e,t){if(t.$$typeof===m)throw Error(l(525));throw e=Object.prototype.toString.call(t),Error(l(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function ha(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=/* @__PURE__ */new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function a(e,t){return(e=qr(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=67108866,n):r:(t.flags|=67108866,n):(t.flags|=1048576,n)}function o(t){return e&&null===t.alternate&&(t.flags|=67108866),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Hr(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var l=n.type;return l===g?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===l||"object"==typeof l&&null!==l&&l.$$typeof===_&&aa(l)===t.type)?(ba(t=a(t,n.props),n),t.return=e,t):(ba(t=Wr(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Gr(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,l){return null===t||7!==t.tag?((t=Vr(n,e.mode,r,l)).return=e,t):((t=a(t,n)).return=e,t)}function b(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return(t=Hr(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case h:return ba(n=Wr(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case f:return(t=Gr(t,e.mode,n)).return=e,t;case _:return b(e,t=aa(t),n)}if(L(t)||P(t))return(t=Vr(t,e.mode,n,null)).return=e,t;if("function"==typeof t.then)return b(e,da(t),n);if(t.$$typeof===C)return b(e,Ll(e,t),n);ma(e,t)}return null}function m(e,t,n,r){var l=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==l?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case h:return n.key===l?c(e,t,n,r):null;case f:return n.key===l?u(e,t,n,r):null;case _:return m(e,t,n=aa(n),r)}if(L(n)||P(n))return null!==l?null:d(e,t,n,r,null);if("function"==typeof n.then)return m(e,t,da(n),r);if(n.$$typeof===C)return m(e,t,Ll(e,n),r);ma(e,n)}return null}function p(e,t,n,r,l){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return s(t,e=e.get(n)||null,""+r,l);if("object"==typeof r&&null!==r){switch(r.$$typeof){case h:return c(t,e=e.get(null===r.key?n:r.key)||null,r,l);case f:return u(t,e=e.get(null===r.key?n:r.key)||null,r,l);case _:return p(e,t,n,r=aa(r),l)}if(L(r)||P(r))return d(t,e=e.get(n)||null,r,l,null);if("function"==typeof r.then)return p(e,t,n,da(r),l);if(r.$$typeof===C)return p(e,t,n,Ll(t,r),l);ma(t,r)}return null}function y(s,c,u,d){if("object"==typeof u&&null!==u&&u.type===g&&null===u.key&&(u=u.props.children),"object"==typeof u&&null!==u){switch(u.$$typeof){case h:e:{for(var v=u.key;null!==c;){if(c.key===v){if((v=u.type)===g){if(7===c.tag){n(s,c.sibling),(d=a(c,u.props.children)).return=s,s=d;break e}}else if(c.elementType===v||"object"==typeof v&&null!==v&&v.$$typeof===_&&aa(v)===c.type){n(s,c.sibling),ba(d=a(c,u.props),u),d.return=s,s=d;break e}n(s,c);break}t(s,c),c=c.sibling}u.type===g?((d=Vr(u.props.children,s.mode,d,u.key)).return=s,s=d):(ba(d=Wr(u.type,u.key,u.props,null,s.mode,d),u),d.return=s,s=d)}return o(s);case f:e:{for(v=u.key;null!==c;){if(c.key===v){if(4===c.tag&&c.stateNode.containerInfo===u.containerInfo&&c.stateNode.implementation===u.implementation){n(s,c.sibling),(d=a(c,u.children||[])).return=s,s=d;break e}n(s,c);break}t(s,c),c=c.sibling}(d=Gr(u,s.mode,d)).return=s,s=d}return o(s);case _:return y(s,c,u=aa(u),d)}if(L(u))return function(l,a,o,s){for(var c=null,u=null,d=a,h=a=0,f=null;null!==d&&h<o.length;h++){d.index>h?(f=d,d=null):f=d.sibling;var g=m(l,d,o[h],s);if(null===g){null===d&&(d=f);break}e&&d&&null===g.alternate&&t(l,d),a=i(g,a,h),null===u?c=g:u.sibling=g,u=g,d=f}if(h===o.length)return n(l,d),ml&&il(l,h),c;if(null===d){for(;h<o.length;h++)null!==(d=b(l,o[h],s))&&(a=i(d,a,h),null===u?c=d:u.sibling=d,u=d);return ml&&il(l,h),c}for(d=r(d);h<o.length;h++)null!==(f=p(d,l,h,o[h],s))&&(e&&null!==f.alternate&&d.delete(null===f.key?h:f.key),a=i(f,a,h),null===u?c=f:u.sibling=f,u=f);return e&&d.forEach(function(e){return t(l,e)}),ml&&il(l,h),c}(s,c,u,d);if(P(u)){if("function"!=typeof(v=P(u)))throw Error(l(150));return function(a,o,s,c){if(null==s)throw Error(l(151));for(var u=null,d=null,h=o,f=o=0,g=null,y=s.next();null!==h&&!y.done;f++,y=s.next()){h.index>f?(g=h,h=null):g=h.sibling;var v=m(a,h,y.value,c);if(null===v){null===h&&(h=g);break}e&&h&&null===v.alternate&&t(a,h),o=i(v,o,f),null===d?u=v:d.sibling=v,d=v,h=g}if(y.done)return n(a,h),ml&&il(a,f),u;if(null===h){for(;!y.done;f++,y=s.next())null!==(y=b(a,y.value,c))&&(o=i(y,o,f),null===d?u=y:d.sibling=y,d=y);return ml&&il(a,f),u}for(h=r(h);!y.done;f++,y=s.next())null!==(y=p(h,a,f,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?f:y.key),o=i(y,o,f),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach(function(e){return t(a,e)}),ml&&il(a,f),u}(s,c,u=v.call(u),d)}if("function"==typeof u.then)return y(s,c,da(u),d);if(u.$$typeof===C)return y(s,c,Ll(s,u),d);ma(s,u)}return"string"==typeof u&&""!==u||"number"==typeof u||"bigint"==typeof u?(u=""+u,null!==c&&6===c.tag?(n(s,c.sibling),(d=a(c,u)).return=s,s=d):(n(s,c),(d=Hr(u,s.mode,d)).return=s,s=d),o(s)):n(s,c)}return function(e,t,n,r){try{ua=0;var l=y(e,t,n,r);return ca=null,l}catch(i){if(i===Zl||i===ta)throw i;var a=Fr(29,i,null,e.mode);return a.lanes=r,a.return=e,a}}}var pa=ha(!0),fa=ha(!1),ga=!1;function ya(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function va(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function wa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function xa(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&pc){var l=r.pending;return null===l?t.next=t:(t.next=l.next,l.next=t),r.pending=t,t=Or(e),Dr(e,null,n),t}return Mr(e,r,t,n),Or(e)}function ka(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,De(e,n)}}function Ca(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var l=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===a?l=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?l=a=t:a=a.next=t}else l=a=t;return n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Sa=!1;function Na(){if(Sa){if(null!==Hl)throw Hl}}function Ea(e,t,n,r){Sa=!1;var l=e.updateQueue;ga=!1;var a=l.firstBaseUpdate,i=l.lastBaseUpdate,o=l.shared.pending;if(null!==o){l.shared.pending=null;var s=o,c=s.next;s.next=null,null===i?a=c:i.next=c,i=s;var u=e.alternate;null!==u&&((o=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===o?u.firstBaseUpdate=c:o.next=c,u.lastBaseUpdate=s))}if(null!==a){var d=l.baseState;for(i=0,u=c=s=null,o=a;;){var m=-536870913&o.lane,h=m!==o.lane;if(h?(yc&m)===m:(r&m)===m){0!==m&&m===Vl&&(Sa=!0),null!==u&&(u=u.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var p=e,f=o;m=t;var g=n;switch(f.tag){case 1:if("function"==typeof(p=f.payload)){d=p.call(g,d,m);break e}d=p;break e;case 3:p.flags=-65537&p.flags|128;case 0:if(null==(m="function"==typeof(p=f.payload)?p.call(g,d,m):p))break e;d=b({},d,m);break e;case 2:ga=!0}}null!==(m=o.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=l.callbacks)?l.callbacks=[m]:h.push(m))}else h={lane:m,tag:o.tag,payload:o.payload,callback:o.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,i|=m;if(null===(o=o.next)){if(null===(o=l.shared.pending))break;o=(h=o).next,h.next=null,l.lastBaseUpdate=h,l.shared.pending=null}}null===u&&(s=d),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=u,null===a&&(l.shared.lanes=0),Ec|=i,e.lanes=i,e.memoizedState=d}}function $a(e,t){if("function"!=typeof e)throw Error(l(191,e));e.call(t)}function _a(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)$a(n[e],t)}var za=U(null),Ta=U(0);function Aa(e,t){B(Ta,e=Sc),B(za,t),Sc=e|t.baseLanes}function Pa(){B(Ta,Sc),B(za,za.current)}function Ma(){Sc=Ta.current,q(za),q(Ta)}var Ia=U(null),La=null;function Da(e){var t=e.alternate;B(Ua,1&Ua.current),B(Ia,e),null===La&&(null===t||null!==za.current||null!==t.memoizedState)&&(La=e)}function Oa(e){B(Ua,Ua.current),B(Ia,e),null===La&&(La=e)}function Ra(e){22===e.tag?(B(Ua,Ua.current),B(Ia,e),null===La&&(La=e)):ja()}function ja(){B(Ua,Ua.current),B(Ia,Ia.current)}function Fa(e){q(Ia),La===e&&(La=null),q(Ua)}var Ua=U(0);function qa(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||Md(n)||Id(n)))return t}else if(19!==t.tag||"forwards"!==t.memoizedProps.revealOrder&&"backwards"!==t.memoizedProps.revealOrder&&"unstable_legacy-backwards"!==t.memoizedProps.revealOrder&&"together"!==t.memoizedProps.revealOrder){if(null!==t.child){t.child.return=t,t=t.child;continue}}else if(128&t.flags)return t;if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ba=0,Wa=null,Va=null,Ha=null,Ka=!1,Ga=!1,Qa=!1,Ya=0,Xa=0,Ja=null,Za=0;function ei(){throw Error(l(321))}function ti(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!er(e[n],t[n]))return!1;return!0}function ni(e,t,n,r,l,a){return Ba=a,Wa=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,D.H=null===e||null===e.memoizedState?yo:vo,Qa=!1,a=n(r,l),Qa=!1,Ga&&(a=li(t,n,r,l)),ri(e),a}function ri(e){D.H=go;var t=null!==Va&&null!==Va.next;if(Ba=0,Ha=Va=Wa=null,Ka=!1,Xa=0,Ja=null,t)throw Error(l(300));null===e||Lo||null!==(e=e.dependencies)&&Pl(e)&&(Lo=!0)}function li(e,t,n,r){Wa=e;var a=0;do{if(Ga&&(Ja=null),Xa=0,Ga=!1,25<=a)throw Error(l(301));if(a+=1,Ha=Va=null,null!=e.updateQueue){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,null!=i.memoCache&&(i.memoCache.index=0)}D.H=wo,i=t(n,r)}while(Ga);return i}function ai(){var e=D.H,t=e.useState()[0];return t="function"==typeof t.then?di(t):t,e=e.useState()[0],(null!==Va?Va.memoizedState:null)!==e&&(Wa.flags|=1024),t}function ii(){var e=0!==Ya;return Ya=0,e}function oi(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function si(e){if(Ka){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}Ka=!1}Ba=0,Ha=Va=Wa=null,Ga=!1,Xa=Ya=0,Ja=null}function ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Ha?Wa.memoizedState=Ha=e:Ha=Ha.next=e,Ha}function ui(){if(null===Va){var e=Wa.alternate;e=null!==e?e.memoizedState:null}else e=Va.next;var t=null===Ha?Wa.memoizedState:Ha.next;if(null!==t)Ha=t,Va=e;else{if(null===e){if(null===Wa.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(Va=e).memoizedState,baseState:Va.baseState,baseQueue:Va.baseQueue,queue:Va.queue,next:null},null===Ha?Wa.memoizedState=Ha=e:Ha=Ha.next=e}return Ha}function di(e){var t=Xa;return Xa+=1,null===Ja&&(Ja=[]),e=la(Ja,e,t),t=Wa,null===(null===Ha?t.memoizedState:Ha.next)&&(t=t.alternate,D.H=null===t||null===t.memoizedState?yo:vo),e}function bi(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return di(e);if(e.$$typeof===C)return Il(e)}throw Error(l(438,String(e)))}function mi(e){var t=null,n=Wa.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=Wa.alternate;null!==r&&(null!==(r=r.updateQueue)&&(null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(null==t&&(t={data:[],index:0}),null===n&&(n={lastEffect:null,events:null,stores:null,memoCache:null},Wa.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=T;return t.index++,n}function hi(e,t){return"function"==typeof t?t(e):t}function pi(e){return fi(ui(),Va,e)}function fi(e,t,n){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=n;var a=e.baseQueue,i=r.pending;if(null!==i){if(null!==a){var o=a.next;a.next=i.next,i.next=o}t.baseQueue=a=i,r.pending=null}if(i=e.baseState,null===a)e.memoizedState=i;else{var s=o=null,c=null,u=t=a.next,d=!1;do{var b=-536870913&u.lane;if(b!==u.lane?(yc&b)===b:(Ba&b)===b){var m=u.revertLane;if(0===m)null!==c&&(c=c.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),b===Vl&&(d=!0);else{if((Ba&m)===m){u=u.next,m===Vl&&(d=!0);continue}b={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=b,o=i):c=c.next=b,Wa.lanes|=m,Ec|=m}b=u.action,Qa&&n(i,b),i=u.hasEagerState?u.eagerState:n(i,b)}else m={lane:b,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=m,o=i):c=c.next=m,Wa.lanes|=b,Ec|=b;u=u.next}while(null!==u&&u!==t);if(null===c?o=i:c.next=s,!er(i,e.memoizedState)&&(Lo=!0,d&&null!==(n=Hl)))throw n;e.memoizedState=i,e.baseState=o,e.baseQueue=c,r.lastRenderedState=i}return null===a&&(r.lanes=0),[e.memoizedState,r.dispatch]}function gi(e){var t=ui(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var o=a=a.next;do{i=e(i,o.action),o=o.next}while(o!==a);er(i,t.memoizedState)||(Lo=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function yi(e,t,n){var r=Wa,a=ui(),i=ml;if(i){if(void 0===n)throw Error(l(407));n=n()}else n=t();var o=!er((Va||a).memoizedState,n);if(o&&(a.memoizedState=n,Lo=!0),a=a.queue,Bi(xi.bind(null,r,a,e),[e]),a.getSnapshot!==t||o||null!==Ha&&1&Ha.memoizedState.tag){if(r.flags|=2048,Ri(9,{destroy:void 0},wi.bind(null,r,a,n,t),null),null===fc)throw Error(l(349));i||127&Ba||vi(r,t,n)}return n}function vi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=Wa.updateQueue)?(t={lastEffect:null,events:null,stores:null,memoCache:null},Wa.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function wi(e,t,n,r){t.value=n,t.getSnapshot=r,ki(t)&&Ci(e)}function xi(e,t,n){return n(function(){ki(t)&&Ci(e)})}function ki(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!er(e,n)}catch(r){return!0}}function Ci(e){var t=Lr(e,2);null!==t&&Yc(t,e,2)}function Si(e){var t=ci();if("function"==typeof e){var n=e;if(e=n(),Qa){xe(!0);try{n()}finally{xe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:hi,lastRenderedState:e},t}function Ni(e,t,n,r){return e.baseState=n,fi(e,Va,"function"==typeof r?r:hi)}function Ei(e,t,n,r,a){if(ho(e))throw Error(l(485));if(null!==(e=t.action)){var i={payload:a,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){i.listeners.push(e)}};null!==D.T?n(!0):i.isTransition=!1,r(i),null===(n=t.pending)?(i.next=t.pending=i,$i(t,i)):(i.next=n.next,t.pending=n.next=i)}}function $i(e,t){var n=t.action,r=t.payload,l=e.state;if(t.isTransition){var a=D.T,i={};D.T=i;try{var o=n(l,r),s=D.S;null!==s&&s(i,o),_i(e,t,o)}catch(c){Ti(e,t,c)}finally{null!==a&&null!==i.types&&(a.types=i.types),D.T=a}}else try{_i(e,t,a=n(l,r))}catch(u){Ti(e,t,u)}}function _i(e,t,n){null!==n&&"object"==typeof n&&"function"==typeof n.then?n.then(function(n){zi(e,t,n)},function(n){return Ti(e,t,n)}):zi(e,t,n)}function zi(e,t,n){t.status="fulfilled",t.value=n,Ai(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,$i(e,n)))}function Ti(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do{t.status="rejected",t.reason=n,Ai(t),t=t.next}while(t!==r)}e.action=null}function Ai(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Pi(e,t){return t}function Mi(e,t){if(ml){var n=fc.formState;if(null!==n){e:{var r=Wa;if(ml){if(bl){t:{for(var l=bl,a=pl;8!==l.nodeType;){if(!a){l=null;break t}if(null===(l=Ld(l.nextSibling))){l=null;break t}}l="F!"===(a=l.data)||"F"===a?l:null}if(l){bl=Ld(l.nextSibling),r="F!"===l.data;break e}}gl(r)}r=!1}r&&(t=n[0])}}return(n=ci()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Pi,lastRenderedState:t},n.queue=r,n=uo.bind(null,Wa,r),r.dispatch=n,r=Si(!1),a=mo.bind(null,Wa,!1,r.queue),l={state:t,dispatch:null,action:e,pending:null},(r=ci()).queue=l,n=Ei.bind(null,Wa,l,a,n),l.dispatch=n,r.memoizedState=e,[t,n,!1]}function Ii(e){return Li(ui(),Va,e)}function Li(e,t,n){if(t=fi(e,t,Pi)[0],e=pi(hi)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var r=di(t)}catch(i){if(i===Zl)throw ta;throw i}else r=t;var l=(t=ui()).queue,a=l.dispatch;return n!==t.memoizedState&&(Wa.flags|=2048,Ri(9,{destroy:void 0},Di.bind(null,l,n),null)),[r,a,e]}function Di(e,t){e.action=t}function Oi(e){var t=ui(),n=Va;if(null!==n)return Li(t,n,e);ui(),t=t.memoizedState;var r=(n=ui()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function Ri(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=Wa.updateQueue)&&(t={lastEffect:null,events:null,stores:null,memoCache:null},Wa.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ji(){return ui().memoizedState}function Fi(e,t,n,r){var l=ci();Wa.flags|=e,l.memoizedState=Ri(1|t,{destroy:void 0},n,void 0===r?null:r)}function Ui(e,t,n,r){var l=ui();r=void 0===r?null:r;var a=l.memoizedState.inst;null!==Va&&null!==r&&ti(r,Va.memoizedState.deps)?l.memoizedState=Ri(t,a,n,r):(Wa.flags|=e,l.memoizedState=Ri(1|t,a,n,r))}function qi(e,t){Fi(8390656,8,e,t)}function Bi(e,t){Ui(2048,8,e,t)}function Wi(e){var t=ui().memoizedState;return function(e){Wa.flags|=4;var t=Wa.updateQueue;if(null===t)t={lastEffect:null,events:null,stores:null,memoCache:null},Wa.updateQueue=t,t.events=[e];else{var n=t.events;null===n?t.events=[e]:n.push(e)}}({ref:t,nextImpl:e}),function(){if(2&pc)throw Error(l(440));return t.impl.apply(void 0,arguments)}}function Vi(e,t){return Ui(4,2,e,t)}function Hi(e,t){return Ui(4,4,e,t)}function Ki(e,t){if("function"==typeof t){e=e();var n=t(e);return function(){"function"==typeof n?n():t(null)}}if(null!=t)return e=e(),t.current=e,function(){t.current=null}}function Gi(e,t,n){n=null!=n?n.concat([e]):null,Ui(4,4,Ki.bind(null,t,e),n)}function Qi(){}function Yi(e,t){var n=ui();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&ti(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Xi(e,t){var n=ui();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&ti(t,r[1]))return r[0];if(r=e(),Qa){xe(!0);try{e()}finally{xe(!1)}}return n.memoizedState=[r,t],r}function Ji(e,t,n){return void 0===n||1073741824&Ba&&!(261930&yc)?e.memoizedState=t:(e.memoizedState=n,e=Qc(),Wa.lanes|=e,Ec|=e,n)}function Zi(e,t,n,r){return er(n,t)?n:null!==za.current?(e=Ji(e,n,r),er(e,t)||(Lo=!0),e):42&Ba&&(!(1073741824&Ba)||261930&yc)?(e=Qc(),Wa.lanes|=e,Ec|=e,t):(Lo=!0,e.memoizedState=n)}function eo(e,t,n,r,l){var a=O.p;O.p=0!==a&&8>a?a:8;var i,o,s,c=D.T,u={};D.T=u,mo(e,!1,t,n);try{var d=l(),b=D.S;if(null!==b&&b(u,d),null!==d&&"object"==typeof d&&"function"==typeof d.then)bo(e,t,(i=r,o=[],s={status:"pending",value:null,reason:null,then:function(e){o.push(e)}},d.then(function(){s.status="fulfilled",s.value=i;for(var e=0;e<o.length;e++)(0,o[e])(i)},function(e){for(s.status="rejected",s.reason=e,e=0;e<o.length;e++)(0,o[e])(void 0)}),s),Gc());else bo(e,t,r,Gc())}catch(m){bo(e,t,{then:function(){},status:"rejected",reason:m},Gc())}finally{O.p=a,null!==c&&null!==u.types&&(c.types=u.types),D.T=c}}function to(){}function no(e,t,n,r){if(5!==e.tag)throw Error(l(476));var a=ro(e).queue;eo(e,a,t,R,null===n?to:function(){return lo(e),n(r)})}function ro(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:R,baseState:R,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hi,lastRenderedState:R},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hi,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function lo(e){var t=ro(e);null===t.next&&(t=e.alternate.memoizedState),bo(e,t.next.queue,{},Gc())}function ao(){return Il(bb)}function io(){return ui().memoizedState}function oo(){return ui().memoizedState}function so(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=Gc(),r=xa(t,e=wa(n),n);return null!==r&&(Yc(r,t,n),ka(r,t,n)),t={cache:Ul()},void(e.payload=t)}t=t.return}}function co(e,t,n){var r=Gc();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ho(e)?po(t,n):null!==(n=Ir(e,t,n,r))&&(Yc(n,e,r),fo(n,t,r))}function uo(e,t,n){bo(e,t,n,Gc())}function bo(e,t,n,r){var l={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ho(e))po(t,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,o=a(i,n);if(l.hasEagerState=!0,l.eagerState=o,er(o,i))return Mr(e,t,l,0),null===fc&&Pr(),!1}catch(s){}if(null!==(n=Ir(e,t,l,r)))return Yc(n,e,r),fo(n,t,r),!0}return!1}function mo(e,t,n,r){if(r={lane:2,revertLane:Wu(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},ho(e)){if(t)throw Error(l(479))}else null!==(t=Ir(e,n,r,2))&&Yc(t,e,2)}function ho(e){var t=e.alternate;return e===Wa||null!==t&&t===Wa}function po(e,t){Ga=Ka=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function fo(e,t,n){if(4194048&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,De(e,n)}}var go={readContext:Il,use:bi,useCallback:ei,useContext:ei,useEffect:ei,useImperativeHandle:ei,useLayoutEffect:ei,useInsertionEffect:ei,useMemo:ei,useReducer:ei,useRef:ei,useState:ei,useDebugValue:ei,useDeferredValue:ei,useTransition:ei,useSyncExternalStore:ei,useId:ei,useHostTransitionStatus:ei,useFormState:ei,useActionState:ei,useOptimistic:ei,useMemoCache:ei,useCacheRefresh:ei};go.useEffectEvent=ei;var yo={readContext:Il,use:bi,useCallback:function(e,t){return ci().memoizedState=[e,void 0===t?null:t],e},useContext:Il,useEffect:qi,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,Fi(4194308,4,Ki.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fi(4194308,4,e,t)},useInsertionEffect:function(e,t){Fi(4,2,e,t)},useMemo:function(e,t){var n=ci();t=void 0===t?null:t;var r=e();if(Qa){xe(!0);try{e()}finally{xe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ci();if(void 0!==n){var l=n(t);if(Qa){xe(!0);try{n(t)}finally{xe(!1)}}}else l=t;return r.memoizedState=r.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},r.queue=e,e=e.dispatch=co.bind(null,Wa,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},ci().memoizedState=e},useState:function(e){var t=(e=Si(e)).queue,n=uo.bind(null,Wa,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Qi,useDeferredValue:function(e,t){return Ji(ci(),e,t)},useTransition:function(){var e=Si(!1);return e=eo.bind(null,Wa,e.queue,!0,!1),ci().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=Wa,a=ci();if(ml){if(void 0===n)throw Error(l(407));n=n()}else{if(n=t(),null===fc)throw Error(l(349));127&yc||vi(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,qi(xi.bind(null,r,i,e),[e]),r.flags|=2048,Ri(9,{destroy:void 0},wi.bind(null,r,i,n,t),null),n},useId:function(){var e=ci(),t=fc.identifierPrefix;if(ml){var n=al;t="_"+t+"R_"+(n=(ll&~(1<<32-ke(ll)-1)).toString(32)+n),0<(n=Ya++)&&(t+="H"+n.toString(32)),t+="_"}else t="_"+t+"r_"+(n=Za++).toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:ao,useFormState:Mi,useActionState:Mi,useOptimistic:function(e){var t=ci();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=mo.bind(null,Wa,!0,n),n.dispatch=t,[e,t]},useMemoCache:mi,useCacheRefresh:function(){return ci().memoizedState=so.bind(null,Wa)},useEffectEvent:function(e){var t=ci(),n={impl:e};return t.memoizedState=n,function(){if(2&pc)throw Error(l(440));return n.impl.apply(void 0,arguments)}}},vo={readContext:Il,use:bi,useCallback:Yi,useContext:Il,useEffect:Bi,useImperativeHandle:Gi,useInsertionEffect:Vi,useLayoutEffect:Hi,useMemo:Xi,useReducer:pi,useRef:ji,useState:function(){return pi(hi)},useDebugValue:Qi,useDeferredValue:function(e,t){return Zi(ui(),Va.memoizedState,e,t)},useTransition:function(){var e=pi(hi)[0],t=ui().memoizedState;return["boolean"==typeof e?e:di(e),t]},useSyncExternalStore:yi,useId:io,useHostTransitionStatus:ao,useFormState:Ii,useActionState:Ii,useOptimistic:function(e,t){return Ni(ui(),0,e,t)},useMemoCache:mi,useCacheRefresh:oo};vo.useEffectEvent=Wi;var wo={readContext:Il,use:bi,useCallback:Yi,useContext:Il,useEffect:Bi,useImperativeHandle:Gi,useInsertionEffect:Vi,useLayoutEffect:Hi,useMemo:Xi,useReducer:gi,useRef:ji,useState:function(){return gi(hi)},useDebugValue:Qi,useDeferredValue:function(e,t){var n=ui();return null===Va?Ji(n,e,t):Zi(n,Va.memoizedState,e,t)},useTransition:function(){var e=gi(hi)[0],t=ui().memoizedState;return["boolean"==typeof e?e:di(e),t]},useSyncExternalStore:yi,useId:io,useHostTransitionStatus:ao,useFormState:Oi,useActionState:Oi,useOptimistic:function(e,t){var n=ui();return null!==Va?Ni(n,0,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:mi,useCacheRefresh:oo};function xo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:b({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}wo.useEffectEvent=Wi;var ko={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Gc(),l=wa(r);l.payload=t,null!=n&&(l.callback=n),null!==(t=xa(e,l,r))&&(Yc(t,e,r),ka(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Gc(),l=wa(r);l.tag=1,l.payload=t,null!=n&&(l.callback=n),null!==(t=xa(e,l,r))&&(Yc(t,e,r),ka(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Gc(),r=wa(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=xa(e,r,n))&&(Yc(t,e,n),ka(t,e,n))}};function Co(e,t,n,r,l,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!tr(n,r)||!tr(l,a))}function So(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ko.enqueueReplaceState(t,t.state,null)}function No(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var l in n===t&&(n=b({},n)),e)void 0===n[l]&&(n[l]=e[l]);return n}function Eo(e){_r(e)}function $o(e){console.error(e)}function _o(e){_r(e)}function zo(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(n){setTimeout(function(){throw n})}}function To(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(r){setTimeout(function(){throw r})}}function Ao(e,t,n){return(n=wa(n)).tag=3,n.payload={element:null},n.callback=function(){zo(e,t)},n}function Po(e){return(e=wa(e)).tag=3,e}function Mo(e,t,n,r){var l=n.type.getDerivedStateFromError;if("function"==typeof l){var a=r.value;e.payload=function(){return l(a)},e.callback=function(){To(t,n,r)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){To(t,n,r),"function"!=typeof l&&(null===Rc?Rc=/* @__PURE__ */new Set([this]):Rc.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var Io=Error(l(461)),Lo=!1;function Do(e,t,n,r){t.child=null===e?fa(t,null,n,r):pa(t,e.child,n,r)}function Oo(e,t,n,r,l){n=n.render;var a=t.ref;if("ref"in r){var i={};for(var o in r)"ref"!==o&&(i[o]=r[o])}else i=r;return Ml(t),r=ni(e,t,n,i,a,l),o=ii(),null===e||Lo?(ml&&o&&sl(t),t.flags|=1,Do(e,t,r,l),t.child):(oi(e,t,l),is(e,t,l))}function Ro(e,t,n,r,l){if(null===e){var a=n.type;return"function"!=typeof a||Ur(a)||void 0!==a.defaultProps||null!==n.compare?((e=Wr(n.type,null,r,t,t.mode,l)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,jo(e,t,a,r,l))}if(a=e.child,!os(e,l)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:tr)(i,r)&&e.ref===t.ref)return is(e,t,l)}return t.flags|=1,(e=qr(a,r)).ref=t.ref,e.return=t,t.child=e}function jo(e,t,n,r,l){if(null!==e){var a=e.memoizedProps;if(tr(a,r)&&e.ref===t.ref){if(Lo=!1,t.pendingProps=r=a,!os(e,l))return t.lanes=e.lanes,is(e,t,l);131072&e.flags&&(Lo=!0)}}return Ho(e,t,n,r,l)}function Fo(e,t,n,r){var l=r.children,a=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),"hidden"===r.mode){if(128&t.flags){if(a=null!==a?a.baseLanes|n:n,null!==e){for(r=t.child=e.child,l=0;null!==r;)l=l|r.lanes|r.childLanes,r=r.sibling;r=l&~a}else r=0,t.child=null;return qo(e,t,a,n,r)}if(!(536870912&n))return r=t.lanes=536870912,qo(e,t,null!==a?a.baseLanes|n:n,n,r);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&Xl(0,null!==a?a.cachePool:null),null!==a?Aa(t,a):Pa(),Ra(t)}else null!==a?(Xl(0,a.cachePool),Aa(t,a),ja(),t.memoizedState=null):(null!==e&&Xl(0,null),Pa(),ja());return Do(e,t,l,n),t.child}function Uo(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function qo(e,t,n,r,l){var a=Yl();return a=null===a?null:{parent:Fl._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},null!==e&&Xl(0,null),Pa(),Ra(t),null!==e&&Al(e,t,r,!0),t.childLanes=l,null}function Bo(e,t){return(t=ts({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function Wo(e,t,n){return pa(t,e.child,null,n),(e=Bo(t,t.pendingProps)).flags|=2,Fa(t),t.memoizedState=null,e}function Vo(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!=typeof n&&"object"!=typeof n)throw Error(l(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function Ho(e,t,n,r,l){return Ml(t),n=ni(e,t,n,r,void 0,l),r=ii(),null===e||Lo?(ml&&r&&sl(t),t.flags|=1,Do(e,t,n,l),t.child):(oi(e,t,l),is(e,t,l))}function Ko(e,t,n,r,l,a){return Ml(t),t.updateQueue=null,n=li(t,r,n,l),ri(e),r=ii(),null===e||Lo?(ml&&r&&sl(t),t.flags|=1,Do(e,t,n,a),t.child):(oi(e,t,a),is(e,t,a))}function Go(e,t,n,r,l){if(Ml(t),null===t.stateNode){var a=Rr,i=n.contextType;"object"==typeof i&&null!==i&&(a=Il(i)),a=new n(r,a),t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,a.updater=ko,t.stateNode=a,a._reactInternals=t,(a=t.stateNode).props=r,a.state=t.memoizedState,a.refs={},ya(t),i=n.contextType,a.context="object"==typeof i&&null!==i?Il(i):Rr,a.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(xo(t,n,i,r),a.state=t.memoizedState),"function"==typeof n.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(i=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),i!==a.state&&ko.enqueueReplaceState(a,a.state,null),Ea(t,r,a,l),Na(),a.state=t.memoizedState),"function"==typeof a.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){a=t.stateNode;var o=t.memoizedProps,s=No(n,o);a.props=s;var c=a.context,u=n.contextType;i=Rr,"object"==typeof u&&null!==u&&(i=Il(u));var d=n.getDerivedStateFromProps;u="function"==typeof d||"function"==typeof a.getSnapshotBeforeUpdate,o=t.pendingProps!==o,u||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(o||c!==i)&&So(t,a,r,i),ga=!1;var b=t.memoizedState;a.state=b,Ea(t,r,a,l),Na(),c=t.memoizedState,o||b!==c||ga?("function"==typeof d&&(xo(t,n,d,r),c=t.memoizedState),(s=ga||Co(t,n,s,r,b,c,i))?(u||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(t.flags|=4194308)):("function"==typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),a.props=r,a.state=c,a.context=i,r=s):("function"==typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,va(e,t),u=No(n,i=t.memoizedProps),a.props=u,d=t.pendingProps,b=a.context,c=n.contextType,s=Rr,"object"==typeof c&&null!==c&&(s=Il(c)),(c="function"==typeof(o=n.getDerivedStateFromProps)||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(i!==d||b!==s)&&So(t,a,r,s),ga=!1,b=t.memoizedState,a.state=b,Ea(t,r,a,l),Na();var m=t.memoizedState;i!==d||b!==m||ga||null!==e&&null!==e.dependencies&&Pl(e.dependencies)?("function"==typeof o&&(xo(t,n,o,r),m=t.memoizedState),(u=ga||Co(t,n,u,r,b,m,s)||null!==e&&null!==e.dependencies&&Pl(e.dependencies))?(c||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,m,s),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof a.componentDidUpdate&&(t.flags|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof a.componentDidUpdate||i===e.memoizedProps&&b===e.memoizedState||(t.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&b===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),a.props=r,a.state=m,a.context=s,r=u):("function"!=typeof a.componentDidUpdate||i===e.memoizedProps&&b===e.memoizedState||(t.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&b===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,Vo(e,t),r=!!(128&t.flags),a||r?(a=t.stateNode,n=r&&"function"!=typeof n.getDerivedStateFromError?null:a.render(),t.flags|=1,null!==e&&r?(t.child=pa(t,e.child,null,l),t.child=pa(t,null,n,l)):Do(e,t,n,l),t.memoizedState=a.state,e=t.child):e=is(e,t,l),e}function Qo(e,t,n,r){return xl(),t.flags|=256,Do(e,t,n,r),t.child}var Yo={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Xo(e){return{baseLanes:e,cachePool:Jl()}}function Jo(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=zc),e}function Zo(e,t,n){var r,a=t.pendingProps,i=!1,o=!!(128&t.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&!!(2&Ua.current)),r&&(i=!0,t.flags&=-129),r=!!(32&t.flags),t.flags&=-33,null===e){if(ml){if(i?Da(t):ja(),(e=bl)?null!==(e=null!==(e=Pd(e,pl))&&"&"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==rl?{id:ll,overflow:al}:null,retryLane:536870912,hydrationErrors:null},(n=Kr(e)).return=t,t.child=n,dl=t,bl=null):e=null,null===e)throw gl(t);return Id(e)?t.lanes=32:t.lanes=536870912,null}var s=a.children;return a=a.fallback,i?(ja(),s=ts({mode:"hidden",children:s},i=t.mode),a=Vr(a,i,n,null),s.return=t,a.return=t,s.sibling=a,t.child=s,(a=t.child).memoizedState=Xo(n),a.childLanes=Jo(e,r,n),t.memoizedState=Yo,Uo(null,a)):(Da(t),es(t,s))}var c=e.memoizedState;if(null!==c&&null!==(s=c.dehydrated)){if(o)256&t.flags?(Da(t),t.flags&=-257,t=ns(e,t,n)):null!==t.memoizedState?(ja(),t.child=e.child,t.flags|=128,t=null):(ja(),s=a.fallback,i=t.mode,a=ts({mode:"visible",children:a.children},i),(s=Vr(s,i,n,null)).flags|=2,a.return=t,s.return=t,a.sibling=s,t.child=a,pa(t,e.child,null,n),(a=t.child).memoizedState=Xo(n),a.childLanes=Jo(e,r,n),t.memoizedState=Yo,t=Uo(null,a));else if(Da(t),Id(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var u=r.dgst;r=u,(a=Error(l(419))).stack="",a.digest=r,Cl({value:a,source:null,stack:null}),t=ns(e,t,n)}else if(Lo||Al(e,t,n,!1),r=0!==(n&e.childLanes),Lo||r){if(null!==(r=fc)&&(0!==(a=Oe(r,n))&&a!==c.retryLane))throw c.retryLane=a,Lr(e,a),Yc(r,e,a),Io;Md(s)||su(),t=ns(e,t,n)}else Md(s)?(t.flags|=192,t.child=e.child,t=null):(e=c.treeContext,bl=Ld(s.nextSibling),dl=t,ml=!0,hl=null,pl=!1,null!==e&&ul(t,e),(t=es(t,a.children)).flags|=4096);return t}return i?(ja(),s=a.fallback,i=t.mode,u=(c=e.child).sibling,(a=qr(c,{mode:"hidden",children:a.children})).subtreeFlags=65011712&c.subtreeFlags,null!==u?s=qr(u,s):(s=Vr(s,i,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,Uo(null,a),a=t.child,null===(s=e.child.memoizedState)?s=Xo(n):(null!==(i=s.cachePool)?(c=Fl._currentValue,i=i.parent!==c?{parent:c,pool:c}:i):i=Jl(),s={baseLanes:s.baseLanes|n,cachePool:i}),a.memoizedState=s,a.childLanes=Jo(e,r,n),t.memoizedState=Yo,Uo(e.child,a)):(Da(t),e=(n=e.child).sibling,(n=qr(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function es(e,t){return(t=ts({mode:"visible",children:t},e.mode)).return=e,e.child=t}function ts(e,t){return(e=Fr(22,e,null,t)).lanes=0,e}function ns(e,t,n){return pa(t,e.child,null,n),(e=es(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function rs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),zl(e.return,t,n)}function ls(e,t,n,r,l,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l,treeForkCount:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=l,i.treeForkCount=a)}function as(e,t,n){var r=t.pendingProps,l=r.revealOrder,a=r.tail;r=r.children;var i=Ua.current,o=!!(2&i);if(o?(i=1&i|2,t.flags|=128):i&=1,B(Ua,i),Do(e,t,r,n),r=ml?el:0,!o&&null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&rs(e,n,t);else if(19===e.tag)rs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;null!==n;)null!==(e=n.alternate)&&null===qa(e)&&(l=n),n=n.sibling;null===(n=l)?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),ls(t,!1,l,n,a,r);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;null!==l;){if(null!==(e=l.alternate)&&null===qa(e)){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}ls(t,!0,n,null,a,r);break;case"together":ls(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function is(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ec|=t.lanes,0===(n&t.childLanes)){if(null===e)return null;if(Al(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=qr(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=qr(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function os(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!Pl(e))}function ss(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)Lo=!0;else{if(!(os(e,n)||128&t.flags))return Lo=!1,function(e,t,n){switch(t.tag){case 3:Y(t,t.stateNode.containerInfo),$l(0,Fl,e.memoizedState.cache),xl();break;case 27:case 5:J(t);break;case 4:Y(t,t.stateNode.containerInfo);break;case 10:$l(0,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,Oa(t),null;break;case 13:var r=t.memoizedState;if(null!==r)return null!==r.dehydrated?(Da(t),t.flags|=128,null):0!==(n&t.child.childLanes)?Zo(e,t,n):(Da(t),null!==(e=is(e,t,n))?e.sibling:null);Da(t);break;case 19:var l=!!(128&e.flags);if((r=0!==(n&t.childLanes))||(Al(e,t,n,!1),r=0!==(n&t.childLanes)),l){if(r)return as(e,t,n);t.flags|=128}if(null!==(l=t.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),B(Ua,Ua.current),r)break;return null;case 22:return t.lanes=0,Fo(e,t,n,t.pendingProps);case 24:$l(0,Fl,e.memoizedState.cache)}return is(e,t,n)}(e,t,n);Lo=!!(131072&e.flags)}else Lo=!1,ml&&1048576&t.flags&&ol(t,el,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=aa(t.elementType),t.type=e,"function"!=typeof e){if(null!=e){var a=e.$$typeof;if(a===S){t.tag=11,t=Oo(null,t,e,r,n);break e}if(a===$){t.tag=14,t=Ro(null,t,e,r,n);break e}}throw t=I(e)||e,Error(l(306,t,""))}Ur(e)?(r=No(e,r),t.tag=1,t=Go(null,t,e,r,n)):(t.tag=0,t=Ho(null,t,e,r,n))}return t;case 0:return Ho(e,t,t.type,t.pendingProps,n);case 1:return Go(e,t,r=t.type,a=No(r,t.pendingProps),n);case 3:e:{if(Y(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var i=t.memoizedState;a=i.element,va(e,t),Ea(t,r,null,n);var o=t.memoizedState;if(r=o.cache,$l(0,Fl,r),r!==i.cache&&Tl(t,[Fl],n,!0),Na(),r=o.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:o.cache},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Qo(e,t,r,n);break e}if(r!==a){Cl(a=Yr(Error(l(424)),t)),t=Qo(e,t,r,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(bl=Ld(e.firstChild),dl=t,ml=!0,hl=null,pl=!0,n=fa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(xl(),r===a){t=is(e,t,n);break e}Do(e,t,r,n)}t=t.child}return t;case 26:return Vo(e,t),null===e?(n=Kd(t.type,null,t.pendingProps,null))?t.memoizedState=n:ml||(n=t.type,e=t.pendingProps,(r=yd(G.current).createElement(n))[Be]=t,r[We]=e,hd(r,n,e),nt(r),t.stateNode=r):t.memoizedState=Kd(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return J(t),null===e&&ml&&(r=t.stateNode=jd(t.type,t.pendingProps,G.current),dl=t,pl=!0,a=bl,_d(t.type)?(Dd=a,bl=Ld(r.firstChild)):bl=a),Do(e,t,t.pendingProps.children,n),Vo(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&ml&&((a=r=bl)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[Ye])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(a=e.getAttribute("rel"))&&e.hasAttribute("data-precedence"))break;if(a!==l.rel||e.getAttribute("href")!==(null==l.href||""===l.href?null:l.href)||e.getAttribute("crossorigin")!==(null==l.crossOrigin?null:l.crossOrigin)||e.getAttribute("title")!==(null==l.title?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((a=e.getAttribute("src"))!==(null==l.src?null:l.src)||e.getAttribute("type")!==(null==l.type?null:l.type)||e.getAttribute("crossorigin")!==(null==l.crossOrigin?null:l.crossOrigin))&&a&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var a=null==l.name?null:""+l.name;if("hidden"===l.type&&e.getAttribute("name")===a)return e}if(null===(e=Ld(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,pl))?(t.stateNode=r,dl=t,bl=Ld(r.firstChild),pl=!1,a=!0):a=!1),a||gl(t)),J(t),a=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,r=i.children,xd(a,i)?r=null:null!==o&&xd(a,o)&&(t.flags|=32),null!==t.memoizedState&&(a=ni(e,t,ai,null,null,n),bb._currentValue=a),Vo(e,t),Do(e,t,r,n),t.child;case 6:return null===e&&ml&&((e=n=bl)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n)return null;if(null===(e=Ld(e.nextSibling)))return null}return e}(n,t.pendingProps,pl))?(t.stateNode=n,dl=t,bl=null,e=!0):e=!1),e||gl(t)),null;case 13:return Zo(e,t,n);case 4:return Y(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=pa(t,null,r,n):Do(e,t,r,n),t.child;case 11:return Oo(e,t,t.type,t.pendingProps,n);case 7:return Do(e,t,t.pendingProps,n),t.child;case 8:case 12:return Do(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,$l(0,t.type,r.value),Do(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Ml(t),r=r(a=Il(a)),t.flags|=1,Do(e,t,r,n),t.child;case 14:return Ro(e,t,t.type,t.pendingProps,n);case 15:return jo(e,t,t.type,t.pendingProps,n);case 19:return as(e,t,n);case 31:return function(e,t,n){var r=t.pendingProps,a=!!(128&t.flags);if(t.flags&=-129,null===e){if(ml){if("hidden"===r.mode)return e=Bo(t,r),t.lanes=536870912,Uo(null,e);if(Oa(t),(e=bl)?null!==(e=null!==(e=Pd(e,pl))&&"&"===e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==rl?{id:ll,overflow:al}:null,retryLane:536870912,hydrationErrors:null},(n=Kr(e)).return=t,t.child=n,dl=t,bl=null):e=null,null===e)throw gl(t);return t.lanes=536870912,null}return Bo(t,r)}var i=e.memoizedState;if(null!==i){var o=i.dehydrated;if(Oa(t),a)if(256&t.flags)t.flags&=-257,t=Wo(e,t,n);else{if(null===t.memoizedState)throw Error(l(558));t.child=e.child,t.flags|=128,t=null}else if(Lo||Al(e,t,n,!1),a=0!==(n&e.childLanes),Lo||a){if(null!==(r=fc)&&0!==(o=Oe(r,n))&&o!==i.retryLane)throw i.retryLane=o,Lr(e,o),Yc(r,e,o),Io;su(),t=Wo(e,t,n)}else e=i.treeContext,bl=Ld(o.nextSibling),dl=t,ml=!0,hl=null,pl=!1,null!==e&&ul(t,e),(t=Bo(t,r)).flags|=4096;return t}return(e=qr(e.child,{mode:r.mode,children:r.children})).ref=t.ref,t.child=e,e.return=t,e}(e,t,n);case 22:return Fo(e,t,n,t.pendingProps);case 24:return Ml(t),r=Il(Fl),null===e?(null===(a=Yl())&&(a=fc,i=Ul(),a.pooledCache=i,i.refCount++,null!==i&&(a.pooledCacheLanes|=n),a=i),t.memoizedState={parent:r,cache:a},ya(t),$l(0,Fl,a)):(0!==(e.lanes&n)&&(va(e,t),Ea(t,null,null,n),Na()),a=e.memoizedState,i=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),$l(0,Fl,r)):(r=i.cache,$l(0,Fl,r),r!==a.cache&&Tl(t,[Fl],n,!0))),Do(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function cs(e){e.flags|=4}function us(e,t,n,r,l){if((t=!!(32&e.mode))&&(t=!1),t){if(e.flags|=16777216,(335544128&l)===l)if(e.stateNode.complete)e.flags|=8192;else{if(!au())throw ia=na,ea;e.flags|=8192}}else e.flags&=-16777217}function ds(e,t){if("stylesheet"!==t.type||4&t.state.loading)e.flags&=-16777217;else if(e.flags|=16777216,!ib(t)){if(!au())throw ia=na,ea;e.flags|=8192}}function bs(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?Pe():536870912,e.lanes|=t,Tc|=t)}function ms(e,t){if(!ml)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function hs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;null!==l;)n|=l.lanes|l.childLanes,r|=65011712&l.subtreeFlags,r|=65011712&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function ps(e,t,n){var r=t.pendingProps;switch(cl(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return hs(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),_l(Fl),X(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(wl(t)?cs(t):null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,kl())),hs(t),null;case 26:var a=t.type,i=t.memoizedState;return null===e?(cs(t),null!==i?(hs(t),ds(t,i)):(hs(t),us(t,a,0,0,n))):i?i!==e.memoizedState?(cs(t),hs(t),ds(t,i)):(hs(t),t.flags&=-16777217):((e=e.memoizedProps)!==r&&cs(t),hs(t),us(t,a,0,0,n)),null;case 27:if(Z(t),n=G.current,a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&cs(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return hs(t),null}e=H.current,wl(t)?yl(t):(e=jd(a,r,n),t.stateNode=e,cs(t))}return hs(t),null;case 5:if(Z(t),a=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&cs(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return hs(t),null}if(i=H.current,wl(t))yl(t);else{var o=yd(G.current);switch(i){case 1:i=o.createElementNS("http://www.w3.org/2000/svg",a);break;case 2:i=o.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;default:switch(a){case"svg":i=o.createElementNS("http://www.w3.org/2000/svg",a);break;case"math":i=o.createElementNS("http://www.w3.org/1998/Math/MathML",a);break;case"script":(i=o.createElement("div")).innerHTML="<script><\/script>",i=i.removeChild(i.firstChild);break;case"select":i="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?i.multiple=!0:r.size&&(i.size=r.size);break;default:i="string"==typeof r.is?o.createElement(a,{is:r.is}):o.createElement(a)}}i[Be]=t,i[We]=r;e:for(o=t.child;null!==o;){if(5===o.tag||6===o.tag)i.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;null===o.sibling;){if(null===o.return||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=i;e:switch(hd(i,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&cs(t)}}return hs(t),us(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&cs(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=G.current,wl(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=dl))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Be]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||dd(e.nodeValue,n)))||gl(t,!0)}else(e=yd(e).createTextNode(r))[Be]=t,t.stateNode=e}return hs(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=wl(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[Be]=t}else xl(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;hs(t),e=!1}else n=kl(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(Fa(t),t):(Fa(t),null);if(128&t.flags)throw Error(l(558))}return hs(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=wl(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(l(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(l(317));a[Be]=t}else xl(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;hs(t),a=!1}else a=kl(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(Fa(t),t):(Fa(t),null)}return Fa(t),128&t.flags?(t.lanes=n,t):(n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(a=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),i=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(i=r.memoizedState.cachePool.pool),i!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),bs(t,t.updateQueue),hs(t),null);case 4:return X(),null===e&&td(t.stateNode.containerInfo),hs(t),null;case 10:return _l(t.type),hs(t),null;case 19:if(q(Ua),null===(r=t.memoizedState))return hs(t),null;if(a=!!(128&t.flags),null===(i=r.rendering))if(a)ms(r,!1);else{if(0!==Nc||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(i=qa(e))){for(t.flags|=128,ms(r,!1),e=i.updateQueue,t.updateQueue=e,bs(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Br(n,e),n=n.sibling;return B(Ua,1&Ua.current|2),ml&&il(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ue()>Dc&&(t.flags|=128,a=!0,ms(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=qa(i))){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,bs(t,e),ms(r,!0),null===r.tail&&"hidden"===r.tailMode&&!i.alternate&&!ml)return hs(t),null}else 2*ue()-r.renderingStartTime>Dc&&536870912!==n&&(t.flags|=128,a=!0,ms(r,!1),t.lanes=4194304);r.isBackwards?(i.sibling=t.child,t.child=i):(null!==(e=r.last)?e.sibling=i:t.child=i,r.last=i)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ue(),e.sibling=null,n=Ua.current,B(Ua,a?1&n|2:1&n),ml&&il(t,r.treeForkCount),e):(hs(t),null);case 22:case 23:return Fa(t),Ma(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?!!(536870912&n)&&!(128&t.flags)&&(hs(t),6&t.subtreeFlags&&(t.flags|=8192)):hs(t),null!==(n=t.updateQueue)&&bs(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&q(Ql),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),_l(Fl),hs(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}function fs(e,t){switch(cl(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return _l(Fl),X(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Z(t),null;case 31:if(null!==t.memoizedState){if(Fa(t),null===t.alternate)throw Error(l(340));xl()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(Fa(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));xl()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return q(Ua),null;case 4:return X(),null;case 10:return _l(t.type),null;case 22:case 23:return Fa(t),Ma(),null!==e&&q(Ql),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return _l(Fl),null;default:return null}}function gs(e,t){switch(cl(t),t.tag){case 3:_l(Fl),X();break;case 26:case 27:case 5:Z(t);break;case 4:X();break;case 31:null!==t.memoizedState&&Fa(t);break;case 13:Fa(t);break;case 19:q(Ua);break;case 10:_l(t.type);break;case 22:case 23:Fa(t),Ma(),null!==e&&q(Ql);break;case 24:_l(Fl)}}function ys(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var l=r.next;n=l;do{if((n.tag&e)===e){r=void 0;var a=n.create,i=n.inst;r=a(),i.destroy=r}n=n.next}while(n!==l)}}catch(o){Nu(t,t.return,o)}}function vs(e,t,n){try{var r=t.updateQueue,l=null!==r?r.lastEffect:null;if(null!==l){var a=l.next;r=a;do{if((r.tag&e)===e){var i=r.inst,o=i.destroy;if(void 0!==o){i.destroy=void 0,l=t;var s=n,c=o;try{c()}catch(u){Nu(l,s,u)}}}r=r.next}while(r!==a)}}catch(u){Nu(t,t.return,u)}}function ws(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{_a(t,n)}catch(r){Nu(e,e.return,r)}}}function xs(e,t,n){n.props=No(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(r){Nu(e,t,r)}}function ks(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof n?e.refCleanup=n(r):n.current=r}}catch(l){Nu(e,t,l)}}function Cs(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"==typeof r)try{r()}catch(l){Nu(e,t,l)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof n)try{n(null)}catch(a){Nu(e,t,a)}else n.current=null}function Ss(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(l){Nu(e,e.return,l)}}function Ns(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,i=null,o=null,s=null,c=null,u=null,d=null;for(h in n){var b=n[h];if(n.hasOwnProperty(h)&&null!=b)switch(h){case"checked":case"value":break;case"defaultValue":c=b;default:r.hasOwnProperty(h)||bd(e,t,h,null,r,b)}}for(var m in r){var h=r[m];if(b=n[m],r.hasOwnProperty(m)&&(null!=h||null!=b))switch(m){case"type":i=h;break;case"name":a=h;break;case"checked":u=h;break;case"defaultChecked":d=h;break;case"value":o=h;break;case"defaultValue":s=h;break;case"children":case"dangerouslySetInnerHTML":if(null!=h)throw Error(l(137,t));break;default:h!==b&&bd(e,t,m,h,r,b)}}return void wt(e,o,s,c,u,d,i,a);case"select":for(i in h=o=s=m=null,n)if(c=n[i],n.hasOwnProperty(i)&&null!=c)switch(i){case"value":break;case"multiple":h=c;default:r.hasOwnProperty(i)||bd(e,t,i,null,r,c)}for(a in r)if(i=r[a],c=n[a],r.hasOwnProperty(a)&&(null!=i||null!=c))switch(a){case"value":m=i;break;case"defaultValue":s=i;break;case"multiple":o=i;default:i!==c&&bd(e,t,a,i,r,c)}return t=s,n=o,r=h,void(null!=m?Ct(e,!!n,m,!1):!!r!=!!n&&(null!=t?Ct(e,!!n,t,!0):Ct(e,!!n,n?[]:"",!1)));case"textarea":for(s in h=m=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:bd(e,t,s,null,r,a)}for(o in r)if(a=r[o],i=n[o],r.hasOwnProperty(o)&&(null!=a||null!=i))switch(o){case"value":m=a;break;case"defaultValue":h=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(l(91));break;default:a!==i&&bd(e,t,o,a,r,i)}return void St(e,m,h);case"option":for(var p in n)if(m=n[p],n.hasOwnProperty(p)&&null!=m&&!r.hasOwnProperty(p))if("selected"===p)e.selected=!1;else bd(e,t,p,null,r,m);for(c in r)if(m=r[c],h=n[c],r.hasOwnProperty(c)&&m!==h&&(null!=m||null!=h))if("selected"===c)e.selected=m&&"function"!=typeof m&&"symbol"!=typeof m;else bd(e,t,c,m,r,h);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var f in n)m=n[f],n.hasOwnProperty(f)&&null!=m&&!r.hasOwnProperty(f)&&bd(e,t,f,null,r,m);for(u in r)if(m=r[u],h=n[u],r.hasOwnProperty(u)&&m!==h&&(null!=m||null!=h))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(l(137,t));break;default:bd(e,t,u,m,r,h)}return;default:if(Tt(t)){for(var g in n)m=n[g],n.hasOwnProperty(g)&&void 0!==m&&!r.hasOwnProperty(g)&&md(e,t,g,void 0,r,m);for(d in r)m=r[d],h=n[d],!r.hasOwnProperty(d)||m===h||void 0===m&&void 0===h||md(e,t,d,m,r,h);return}}for(var y in n)m=n[y],n.hasOwnProperty(y)&&null!=m&&!r.hasOwnProperty(y)&&bd(e,t,y,null,r,m);for(b in r)m=r[b],h=n[b],!r.hasOwnProperty(b)||m===h||null==m&&null==h||bd(e,t,b,m,r,h)}(r,e.type,n,t),r[We]=t}catch(a){Nu(e,e.return,a)}}function Es(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&_d(e.type)||4===e.tag}function $s(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||Es(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&_d(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function _s(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=It));else if(4!==r&&(27===r&&_d(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(_s(e,t,n),e=e.sibling;null!==e;)_s(e,t,n),e=e.sibling}function zs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&_d(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(zs(e,t,n),e=e.sibling;null!==e;)zs(e,t,n),e=e.sibling}function Ts(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);hd(t,r,n),t[Be]=e,t[We]=n}catch(a){Nu(e,e.return,a)}}var As=!1,Ps=!1,Ms=!1,Is="function"==typeof WeakSet?WeakSet:Set,Ls=null;function Ds(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Ys(e,n),4&r&&ys(5,n);break;case 1:if(Ys(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(i){Nu(n,n.return,i)}else{var l=No(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(o){Nu(n,n.return,o)}}64&r&&ws(n),512&r&&ks(n,n.return);break;case 3:if(Ys(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{_a(e,t)}catch(i){Nu(n,n.return,i)}}break;case 27:null===t&&4&r&&Ts(n);case 26:case 5:Ys(e,n),null===t&&4&r&&Ss(n),512&r&&ks(n,n.return);break;case 12:Ys(e,n);break;case 31:Ys(e,n),4&r&&qs(e,n);break;case 13:Ys(e,n),4&r&&Bs(e,n),64&r&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=zu.bind(null,n))));break;case 22:if(!(r=null!==n.memoizedState||As)){t=null!==t&&null!==t.memoizedState||Ps,l=As;var a=Ps;As=r,(Ps=t)&&!a?Js(e,n,!!(8772&n.subtreeFlags)):Ys(e,n),As=l,Ps=a}break;case 30:break;default:Ys(e,n)}}function Os(e){var t=e.alternate;null!==t&&(e.alternate=null,Os(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&Xe(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Rs=null,js=!1;function Fs(e,t,n){for(n=n.child;null!==n;)Us(e,t,n),n=n.sibling}function Us(e,t,n){if(we&&"function"==typeof we.onCommitFiberUnmount)try{we.onCommitFiberUnmount(ve,n)}catch(a){}switch(n.tag){case 26:Ps||Cs(n,t),Fs(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Ps||Cs(n,t);var r=Rs,l=js;_d(n.type)&&(Rs=n.stateNode,js=!1),Fs(e,t,n),Fd(n.stateNode),Rs=r,js=l;break;case 5:Ps||Cs(n,t);case 6:if(r=Rs,l=js,Rs=null,Fs(e,t,n),js=l,null!==(Rs=r))if(js)try{(9===Rs.nodeType?Rs.body:"HTML"===Rs.nodeName?Rs.ownerDocument.body:Rs).removeChild(n.stateNode)}catch(i){Nu(n,t,i)}else try{Rs.removeChild(n.stateNode)}catch(i){Nu(n,t,i)}break;case 18:null!==Rs&&(js?(zd(9===(e=Rs).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Hb(e)):zd(Rs,n.stateNode));break;case 4:r=Rs,l=js,Rs=n.stateNode.containerInfo,js=!0,Fs(e,t,n),Rs=r,js=l;break;case 0:case 11:case 14:case 15:vs(2,n,t),Ps||vs(4,n,t),Fs(e,t,n);break;case 1:Ps||(Cs(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount&&xs(n,t,r)),Fs(e,t,n);break;case 21:Fs(e,t,n);break;case 22:Ps=(r=Ps)||null!==n.memoizedState,Fs(e,t,n),Ps=r;break;default:Fs(e,t,n)}}function qs(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&null!==(e=e.memoizedState))){e=e.dehydrated;try{Hb(e)}catch(n){Nu(t,t.return,n)}}}function Bs(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{Hb(e)}catch(n){Nu(t,t.return,n)}}function Ws(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Is),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Is),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Tu.bind(null,e,t);t.then(r,r)}})}function Vs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r],i=e,o=t,s=o;e:for(;null!==s;){switch(s.tag){case 27:if(_d(s.type)){Rs=s.stateNode,js=!1;break e}break;case 5:Rs=s.stateNode,js=!1;break e;case 3:case 4:Rs=s.stateNode.containerInfo,js=!0;break e}s=s.return}if(null===Rs)throw Error(l(160));Us(i,o,a),Rs=null,js=!1,null!==(i=a.alternate)&&(i.return=null),a.return=null}if(13886&t.subtreeFlags)for(t=t.child;null!==t;)Ks(t,e),t=t.sibling}var Hs=null;function Ks(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Vs(t,e),Gs(e),4&r&&(vs(3,e,e.return),ys(3,e),vs(5,e,e.return));break;case 1:Vs(t,e),Gs(e),512&r&&(Ps||null===n||Cs(n,n.return)),64&r&&As&&(null!==(e=e.updateQueue)&&(null!==(r=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?r:n.concat(r))));break;case 26:var a=Hs;if(Vs(t,e),Gs(e),512&r&&(Ps||null===n||Cs(n,n.return)),4&r){var i=null!==n?n.memoizedState:null;if(r=e.memoizedState,null===n)if(null===r)if(null===e.stateNode){e:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;t:switch(r){case"title":(!(i=a.getElementsByTagName("title")[0])||i[Ye]||i[Be]||"http://www.w3.org/2000/svg"===i.namespaceURI||i.hasAttribute("itemprop"))&&(i=a.createElement(r),a.head.insertBefore(i,a.querySelector("head > title"))),hd(i,r,n),i[Be]=e,nt(i),r=i;break e;case"link":var o=lb("link","href",a).get(r+(n.href||""));if(o)for(var s=0;s<o.length;s++)if((i=o[s]).getAttribute("href")===(null==n.href||""===n.href?null:n.href)&&i.getAttribute("rel")===(null==n.rel?null:n.rel)&&i.getAttribute("title")===(null==n.title?null:n.title)&&i.getAttribute("crossorigin")===(null==n.crossOrigin?null:n.crossOrigin)){o.splice(s,1);break t}hd(i=a.createElement(r),r,n),a.head.appendChild(i);break;case"meta":if(o=lb("meta","content",a).get(r+(n.content||"")))for(s=0;s<o.length;s++)if((i=o[s]).getAttribute("content")===(null==n.content?null:""+n.content)&&i.getAttribute("name")===(null==n.name?null:n.name)&&i.getAttribute("property")===(null==n.property?null:n.property)&&i.getAttribute("http-equiv")===(null==n.httpEquiv?null:n.httpEquiv)&&i.getAttribute("charset")===(null==n.charSet?null:n.charSet)){o.splice(s,1);break t}hd(i=a.createElement(r),r,n),a.head.appendChild(i);break;default:throw Error(l(468,r))}i[Be]=e,nt(i),r=i}e.stateNode=r}else ab(a,e.type,e.stateNode);else e.stateNode=Zd(a,r,e.memoizedProps);else i!==r?(null===i?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):i.count--,null===r?ab(a,e.type,e.stateNode):Zd(a,r,e.memoizedProps)):null===r&&null!==e.stateNode&&Ns(e,e.memoizedProps,n.memoizedProps)}break;case 27:Vs(t,e),Gs(e),512&r&&(Ps||null===n||Cs(n,n.return)),null!==n&&4&r&&Ns(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Vs(t,e),Gs(e),512&r&&(Ps||null===n||Cs(n,n.return)),32&e.flags){a=e.stateNode;try{Et(a,"")}catch(p){Nu(e,e.return,p)}}4&r&&null!=e.stateNode&&Ns(e,a=e.memoizedProps,null!==n?n.memoizedProps:a),1024&r&&(Ms=!0);break;case 6:if(Vs(t,e),Gs(e),4&r){if(null===e.stateNode)throw Error(l(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(p){Nu(e,e.return,p)}}break;case 3:if(rb=null,a=Hs,Hs=Bd(t.containerInfo),Vs(t,e),Hs=a,Gs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Hb(t.containerInfo)}catch(p){Nu(e,e.return,p)}Ms&&(Ms=!1,Qs(e));break;case 4:r=Hs,Hs=Bd(e.stateNode.containerInfo),Vs(t,e),Gs(e),Hs=r;break;case 12:default:Vs(t,e),Gs(e);break;case 31:case 19:Vs(t,e),Gs(e),4&r&&(null!==(r=e.updateQueue)&&(e.updateQueue=null,Ws(e,r)));break;case 13:Vs(t,e),Gs(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(Ic=ue()),4&r&&(null!==(r=e.updateQueue)&&(e.updateQueue=null,Ws(e,r)));break;case 22:a=null!==e.memoizedState;var c=null!==n&&null!==n.memoizedState,u=As,d=Ps;if(As=u||a,Ps=d||c,Vs(t,e),Ps=d,As=u,Gs(e),8192&r)e:for(t=e.stateNode,t._visibility=a?-2&t._visibility:1|t._visibility,a&&(null===n||c||As||Ps||Xs(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){c=n=t;try{if(i=c.stateNode,a)"function"==typeof(o=i.style).setProperty?o.setProperty("display","none","important"):o.display="none";else{s=c.stateNode;var b=c.memoizedProps.style,m=null!=b&&b.hasOwnProperty("display")?b.display:null;s.style.display=null==m||"boolean"==typeof m?"":(""+m).trim()}}catch(p){Nu(c,c.return,p)}}}else if(6===t.tag){if(null===n){c=t;try{c.stateNode.nodeValue=a?"":c.memoizedProps}catch(p){Nu(c,c.return,p)}}}else if(18===t.tag){if(null===n){c=t;try{var h=c.stateNode;a?Td(h,!0):Td(c.stateNode,!1)}catch(p){Nu(c,c.return,p)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;null===t.sibling;){if(null===t.return||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&r&&(null!==(r=e.updateQueue)&&(null!==(n=r.retryQueue)&&(r.retryQueue=null,Ws(e,n))));case 30:case 21:}}function Gs(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(Es(r)){n=r;break}r=r.return}if(null==n)throw Error(l(160));switch(n.tag){case 27:var a=n.stateNode;zs(e,$s(e),a);break;case 5:var i=n.stateNode;32&n.flags&&(Et(i,""),n.flags&=-33),zs(e,$s(e),i);break;case 3:case 4:var o=n.stateNode.containerInfo;_s(e,$s(e),o);break;default:throw Error(l(161))}}catch(s){Nu(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function Qs(e){if(1024&e.subtreeFlags)for(e=e.child;null!==e;){var t=e;Qs(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),e=e.sibling}}function Ys(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)Ds(e,t.alternate,t),t=t.sibling}function Xs(e){for(e=e.child;null!==e;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:vs(4,t,t.return),Xs(t);break;case 1:Cs(t,t.return);var n=t.stateNode;"function"==typeof n.componentWillUnmount&&xs(t,t.return,n),Xs(t);break;case 27:Fd(t.stateNode);case 26:case 5:Cs(t,t.return),Xs(t);break;case 22:null===t.memoizedState&&Xs(t);break;default:Xs(t)}e=e.sibling}}function Js(e,t,n){for(n=n&&!!(8772&t.subtreeFlags),t=t.child;null!==t;){var r=t.alternate,l=e,a=t,i=a.flags;switch(a.tag){case 0:case 11:case 15:Js(l,a,n),ys(4,a);break;case 1:if(Js(l,a,n),"function"==typeof(l=(r=a).stateNode).componentDidMount)try{l.componentDidMount()}catch(c){Nu(r,r.return,c)}if(null!==(l=(r=a).updateQueue)){var o=r.stateNode;try{var s=l.shared.hiddenCallbacks;if(null!==s)for(l.shared.hiddenCallbacks=null,l=0;l<s.length;l++)$a(s[l],o)}catch(c){Nu(r,r.return,c)}}n&&64&i&&ws(a),ks(a,a.return);break;case 27:Ts(a);case 26:case 5:Js(l,a,n),n&&null===r&&4&i&&Ss(a),ks(a,a.return);break;case 12:Js(l,a,n);break;case 31:Js(l,a,n),n&&4&i&&qs(l,a);break;case 13:Js(l,a,n),n&&4&i&&Bs(l,a);break;case 22:null===a.memoizedState&&Js(l,a,n),ks(a,a.return);break;case 30:break;default:Js(l,a,n)}t=t.sibling}}function Zs(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&ql(n))}function ec(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&ql(e))}function tc(e,t,n,r){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)nc(e,t,n,r),t=t.sibling}function nc(e,t,n,r){var l=t.flags;switch(t.tag){case 0:case 11:case 15:tc(e,t,n,r),2048&l&&ys(9,t);break;case 1:case 31:case 13:default:tc(e,t,n,r);break;case 3:tc(e,t,n,r),2048&l&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&ql(e)));break;case 12:if(2048&l){tc(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,i=a.id,o=a.onPostCommit;"function"==typeof o&&o(i,null===t.alternate?"mount":"update",e.passiveEffectDuration,-0)}catch(s){Nu(t,t.return,s)}}else tc(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,i=t.alternate,null!==t.memoizedState?2&a._visibility?tc(e,t,n,r):lc(e,t):2&a._visibility?tc(e,t,n,r):(a._visibility|=2,rc(e,t,n,r,!!(10256&t.subtreeFlags)||!1)),2048&l&&Zs(i,t);break;case 24:tc(e,t,n,r),2048&l&&ec(t.alternate,t)}}function rc(e,t,n,r,l){for(l=l&&(!!(10256&t.subtreeFlags)||!1),t=t.child;null!==t;){var a=e,i=t,o=n,s=r,c=i.flags;switch(i.tag){case 0:case 11:case 15:rc(a,i,o,s,l),ys(8,i);break;case 23:break;case 22:var u=i.stateNode;null!==i.memoizedState?2&u._visibility?rc(a,i,o,s,l):lc(a,i):(u._visibility|=2,rc(a,i,o,s,l)),l&&2048&c&&Zs(i.alternate,i);break;case 24:rc(a,i,o,s,l),l&&2048&c&&ec(i.alternate,i);break;default:rc(a,i,o,s,l)}t=t.sibling}}function lc(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=e,r=t,l=r.flags;switch(r.tag){case 22:lc(n,r),2048&l&&Zs(r.alternate,r);break;case 24:lc(n,r),2048&l&&ec(r.alternate,r);break;default:lc(n,r)}t=t.sibling}}var ac=8192;function ic(e,t,n){if(e.subtreeFlags&ac)for(e=e.child;null!==e;)oc(e,t,n),e=e.sibling}function oc(e,t,n){switch(e.tag){case 26:ic(e,t,n),e.flags&ac&&null!==e.memoizedState&&function(e,t,n,r){if(!("stylesheet"!==n.type||"string"==typeof r.media&&!1===matchMedia(r.media).matches||4&n.state.loading)){if(null===n.instance){var l=Gd(r.href),a=t.querySelector(Qd(l));if(a)return null!==(t=a._p)&&"object"==typeof t&&"function"==typeof t.then&&(e.count++,e=sb.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,void nt(a);a=t.ownerDocument||t,r=Yd(r),(l=Ud.get(l))&&tb(r,l),nt(a=a.createElement("link"));var i=a;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),hd(a,"link",r),n.instance=a}null===e.stylesheets&&(e.stylesheets=/* @__PURE__ */new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(3&n.state.loading)&&(e.count++,n=sb.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}(n,Hs,e.memoizedState,e.memoizedProps);break;case 5:default:ic(e,t,n);break;case 3:case 4:var r=Hs;Hs=Bd(e.stateNode.containerInfo),ic(e,t,n),Hs=r;break;case 22:null===e.memoizedState&&(null!==(r=e.alternate)&&null!==r.memoizedState?(r=ac,ac=16777216,ic(e,t,n),ac=r):ic(e,t,n))}}function sc(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do{t=e.sibling,e.sibling=null,e=t}while(null!==e)}}function cc(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];Ls=r,bc(r,e)}sc(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)uc(e),e=e.sibling}function uc(e){switch(e.tag){case 0:case 11:case 15:cc(e),2048&e.flags&&vs(9,e,e.return);break;case 3:case 12:default:cc(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,dc(e)):cc(e)}}function dc(e){var t=e.deletions;if(16&e.flags){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];Ls=r,bc(r,e)}sc(e)}for(e=e.child;null!==e;){switch((t=e).tag){case 0:case 11:case 15:vs(8,t,t.return),dc(t);break;case 22:2&(n=t.stateNode)._visibility&&(n._visibility&=-3,dc(t));break;default:dc(t)}e=e.sibling}}function bc(e,t){for(;null!==Ls;){var n=Ls;switch(n.tag){case 0:case 11:case 15:vs(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:ql(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,Ls=r;else e:for(n=e;null!==Ls;){var l=(r=Ls).sibling,a=r.return;if(Os(r),r===n){Ls=null;break e}if(null!==l){l.return=a,Ls=l;break e}Ls=a}}}var mc={getCacheForType:function(e){var t=Il(Fl),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Il(Fl).controller.signal}},hc="function"==typeof WeakMap?WeakMap:Map,pc=0,fc=null,gc=null,yc=0,vc=0,wc=null,xc=!1,kc=!1,Cc=!1,Sc=0,Nc=0,Ec=0,$c=0,_c=0,zc=0,Tc=0,Ac=null,Pc=null,Mc=!1,Ic=0,Lc=0,Dc=1/0,Oc=null,Rc=null,jc=0,Fc=null,Uc=null,qc=0,Bc=0,Wc=null,Vc=null,Hc=0,Kc=null;function Gc(){return 2&pc&&0!==yc?yc&-yc:null!==D.T?Wu():Fe()}function Qc(){if(0===zc)if(536870912&yc&&!ml)zc=536870912;else{var e=Ee;!(3932160&(Ee<<=1))&&(Ee=262144),zc=e}return null!==(e=Ia.current)&&(e.flags|=32),zc}function Yc(e,t,n){(e!==fc||2!==vc&&9!==vc)&&null===e.cancelPendingCommit||(ru(e,0),eu(e,yc,zc,!1)),Ie(e,n),2&pc&&e===fc||(e===fc&&(!(2&pc)&&($c|=n),4===Nc&&eu(e,yc,zc,!1)),Ou(e))}function Xc(e,t,n){if(6&pc)throw Error(l(327));for(var r=!n&&!(127&t)&&0===(t&e.expiredLanes)||Te(e,t),a=r?function(e,t){var n=pc;pc|=2;var r=iu(),a=ou();fc!==e||yc!==t?(Oc=null,Dc=ue()+500,ru(e,t)):kc=Te(e,t);e:for(;;)try{if(0!==vc&&null!==gc){t=gc;var i=wc;t:switch(vc){case 1:vc=0,wc=null,hu(e,t,i,1);break;case 2:case 9:if(ra(i)){vc=0,wc=null,mu(t);break}t=function(){2!==vc&&9!==vc||fc!==e||(vc=7),Ou(e)},i.then(t,t);break e;case 3:vc=7;break e;case 4:vc=5;break e;case 7:ra(i)?(vc=0,wc=null,mu(t)):(vc=0,wc=null,hu(e,t,i,7));break;case 5:var o=null;switch(gc.tag){case 26:o=gc.memoizedState;case 5:case 27:var s=gc;if(o?ib(o):s.stateNode.complete){vc=0,wc=null;var c=s.sibling;if(null!==c)gc=c;else{var u=s.return;null!==u?(gc=u,pu(u)):gc=null}break t}}vc=0,wc=null,hu(e,t,i,5);break;case 6:vc=0,wc=null,hu(e,t,i,6);break;case 8:nu(),Nc=6;break e;default:throw Error(l(462))}}du();break}catch(d){lu(e,d)}return El=Nl=null,D.H=r,D.A=a,pc=n,null!==gc?0:(fc=null,yc=0,Pr(),Nc)}(e,t):cu(e,t,!0),i=r;;){if(0===a){kc&&!r&&eu(e,t,0,!1);break}if(n=e.current.alternate,!i||Zc(n)){if(2===a){if(i=t,e.errorRecoveryDisabledLanes&i)var o=0;else o=0!==(o=-536870913&e.pendingLanes)?o:536870912&o?536870912:0;if(0!==o){t=o;e:{var s=e;a=Ac;var c=s.current.memoizedState.isDehydrated;if(c&&(ru(s,o).flags|=256),2!==(o=cu(s,o,!1))){if(Cc&&!c){s.errorRecoveryDisabledLanes|=i,$c|=i,a=4;break e}i=Pc,Pc=a,null!==i&&(null===Pc?Pc=i:Pc.push.apply(Pc,i))}a=o}if(i=!1,2!==a)continue}}if(1===a){ru(e,0),eu(e,t,0,!0);break}e:{switch(r=e,i=a){case 0:case 1:throw Error(l(345));case 4:if((4194048&t)!==t)break;case 6:eu(r,t,zc,!xc);break e;case 2:Pc=null;break;case 3:case 5:break;default:throw Error(l(329))}if((62914560&t)===t&&10<(a=Ic+300-ue())){if(eu(r,t,zc,!xc),0!==ze(r,0,!0))break e;qc=t,r.timeoutHandle=Cd(Jc.bind(null,r,n,Pc,Oc,Mc,t,zc,$c,Tc,xc,i,"Throttled",-0,0),a)}else Jc(r,n,Pc,Oc,Mc,t,zc,$c,Tc,xc,i,null,-0,0)}break}a=cu(e,t,!1),i=!1}Ou(e)}function Jc(e,t,n,r,l,a,i,o,s,c,u,d,b,m){if(e.timeoutHandle=-1,8192&(d=t.subtreeFlags)||!(16785408&~d)){oc(t,a,d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:It});var h=(62914560&a)===a?Ic-ue():(4194048&a)===a?Lc-ue():0;if(null!==(h=function(e,t){return e.stylesheets&&0===e.count&&ub(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&ub(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&0===ob&&(ob=62500*function(){if("function"==typeof performance.getEntriesByType){for(var e=0,t=0,n=performance.getEntriesByType("resource"),r=0;r<n.length;r++){var l=n[r],a=l.transferSize,i=l.initiatorType,o=l.duration;if(a&&o&&pd(i)){for(i=0,o=l.responseEnd,r+=1;r<n.length;r++){var s=n[r],c=s.startTime;if(c>o)break;var u=s.transferSize,d=s.initiatorType;u&&pd(d)&&(i+=u*((s=s.responseEnd)<o?1:(o-c)/(s-c)))}if(--r,t+=8*(a+i)/(l.duration/1e3),10<++e)break}}if(0<e)return t/e/1e6}return navigator.connection&&"number"==typeof(e=navigator.connection.downlink)?e:5}());var l=setTimeout(function(){if(e.waitingForImages=!1,0===e.count&&(e.stylesheets&&ub(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>ob?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(l)}}:null}(d,h)))return qc=a,e.cancelPendingCommit=h(gu.bind(null,e,t,a,n,r,l,i,o,s,u,d,null,b,m)),void eu(e,a,i,!c)}gu(e,t,a,n,r,l,i,o,s)}function Zc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var r=0;r<n.length;r++){var l=n[r],a=l.getSnapshot;l=l.value;try{if(!er(a(),l))return!1}catch(i){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function eu(e,t,n,r){t&=~_c,t&=~$c,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var l=t;0<l;){var a=31-ke(l),i=1<<a;r[a]=-1,l&=~i}0!==n&&Le(e,n,t)}function tu(){return!!(6&pc)||(Ru(0),!1)}function nu(){if(null!==gc){if(0===vc)var e=gc.return;else El=Nl=null,si(e=gc),ca=null,ua=0,e=gc;for(;null!==e;)gs(e.alternate,e),e=e.return;gc=null}}function ru(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,Sd(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),qc=0,nu(),fc=e,gc=n=qr(e.current,null),yc=t,vc=0,wc=null,xc=!1,kc=Te(e,t),Cc=!1,Tc=zc=_c=$c=Ec=Nc=0,Pc=Ac=null,Mc=!1,8&t&&(t|=32&t);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=t;0<r;){var l=31-ke(r),a=1<<l;t|=e[l],r&=~a}return Sc=t,Pr(),n}function lu(e,t){Wa=null,D.H=go,t===Zl||t===ta?(t=oa(),vc=3):t===ea?(t=oa(),vc=4):vc=t===Io?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,wc=t,null===gc&&(Nc=1,zo(e,Yr(t,e.current)))}function au(){var e=Ia.current;return null===e||((4194048&yc)===yc?null===La:!!((62914560&yc)===yc||536870912&yc)&&e===La)}function iu(){var e=D.H;return D.H=go,null===e?go:e}function ou(){var e=D.A;return D.A=mc,e}function su(){Nc=4,xc||(4194048&yc)!==yc&&null!==Ia.current||(kc=!0),!(134217727&Ec)&&!(134217727&$c)||null===fc||eu(fc,yc,zc,!1)}function cu(e,t,n){var r=pc;pc|=2;var l=iu(),a=ou();fc===e&&yc===t||(Oc=null,ru(e,t)),t=!1;var i=Nc;e:for(;;)try{if(0!==vc&&null!==gc){var o=gc,s=wc;switch(vc){case 8:nu(),i=6;break e;case 3:case 2:case 9:case 6:null===Ia.current&&(t=!0);var c=vc;if(vc=0,wc=null,hu(e,o,s,c),n&&kc){i=0;break e}break;default:c=vc,vc=0,wc=null,hu(e,o,s,c)}}uu(),i=Nc;break}catch(u){lu(e,u)}return t&&e.shellSuspendCounter++,El=Nl=null,pc=r,D.H=l,D.A=a,null===gc&&(fc=null,yc=0,Pr()),i}function uu(){for(;null!==gc;)bu(gc)}function du(){for(;null!==gc&&!se();)bu(gc)}function bu(e){var t=ss(e.alternate,e,Sc);e.memoizedProps=e.pendingProps,null===t?pu(e):gc=t}function mu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Ko(n,t,t.pendingProps,t.type,void 0,yc);break;case 11:t=Ko(n,t,t.pendingProps,t.type.render,t.ref,yc);break;case 5:si(t);default:gs(n,t),t=ss(n,t=gc=Br(t,Sc),Sc)}e.memoizedProps=e.pendingProps,null===t?pu(e):gc=t}function hu(e,t,n,r){El=Nl=null,si(t),ca=null,ua=0;var a=t.return;try{if(function(e,t,n,r,a){if(n.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(t=n.alternate)&&Al(t,n,a,!0),null!==(n=Ia.current)){switch(n.tag){case 31:case 13:return null===La?su():null===n.alternate&&0===Nc&&(Nc=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===na?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=/* @__PURE__ */new Set([r]):t.add(r),Eu(e,r,a)),!1;case 22:return n.flags|=65536,r===na?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:/* @__PURE__ */new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=/* @__PURE__ */new Set([r]):n.add(r),Eu(e,r,a)),!1}throw Error(l(435,n.tag))}return Eu(e,r,a),su(),!1}if(ml)return null!==(t=Ia.current)?(!(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==fl&&Cl(Yr(e=Error(l(422),{cause:r}),n))):(r!==fl&&Cl(Yr(t=Error(l(423),{cause:r}),n)),(e=e.current.alternate).flags|=65536,a&=-a,e.lanes|=a,r=Yr(r,n),Ca(e,a=Ao(e.stateNode,r,a)),4!==Nc&&(Nc=2)),!1;var i=Error(l(520),{cause:r});if(i=Yr(i,n),null===Ac?Ac=[i]:Ac.push(i),4!==Nc&&(Nc=2),null===t)return!0;r=Yr(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,Ca(n,e=Ao(n.stateNode,r,e)),!1;case 1:if(t=n.type,i=n.stateNode,!(128&n.flags||"function"!=typeof t.getDerivedStateFromError&&(null===i||"function"!=typeof i.componentDidCatch||null!==Rc&&Rc.has(i))))return n.flags|=65536,a&=-a,n.lanes|=a,Mo(a=Po(a),e,n,r),Ca(n,a),!1}n=n.return}while(null!==n);return!1}(e,a,t,n,yc))return Nc=1,zo(e,Yr(n,e.current)),void(gc=null)}catch(i){if(null!==a)throw gc=a,i;return Nc=1,zo(e,Yr(n,e.current)),void(gc=null)}32768&t.flags?(ml||1===r?e=!0:kc||536870912&yc?e=!1:(xc=e=!0,(2===r||9===r||3===r||6===r)&&(null!==(r=Ia.current)&&13===r.tag&&(r.flags|=16384))),fu(t,e)):pu(t)}function pu(e){var t=e;do{if(32768&t.flags)return void fu(t,xc);e=t.return;var n=ps(t.alternate,t,Sc);if(null!==n)return void(gc=n);if(null!==(t=t.sibling))return void(gc=t);gc=t=e}while(null!==t);0===Nc&&(Nc=5)}function fu(e,t){do{var n=fs(e.alternate,e);if(null!==n)return n.flags&=32767,void(gc=n);if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling))return void(gc=e);gc=e=n}while(null!==e);Nc=6,gc=null}function gu(e,t,n,r,a,i,o,s,c){e.cancelPendingCommit=null;do{ku()}while(0!==jc);if(6&pc)throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));if(i=t.lanes|t.childLanes,function(e,t,n,r,l,a){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,s=e.expirationTimes,c=e.hiddenUpdates;for(n=i&~n;0<n;){var u=31-ke(n),d=1<<u;o[u]=0,s[u]=-1;var b=c[u];if(null!==b)for(c[u]=null,u=0;u<b.length;u++){var m=b[u];null!==m&&(m.lane&=-536870913)}n&=~d}0!==r&&Le(e,r,0),0!==a&&0===l&&0!==e.tag&&(e.suspendedLanes|=a&~(i&~t))}(e,n,i|=Ar,o,s,c),e===fc&&(gc=fc=null,yc=0),Uc=t,Fc=e,qc=n,Bc=i,Wc=a,Vc=r,10256&t.subtreeFlags||10256&t.flags?(e.callbackNode=null,e.callbackPriority=0,ie(he,function(){return Cu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(13878&t.flags),13878&t.subtreeFlags||r){r=D.T,D.T=null,a=O.p,O.p=2,o=pc,pc|=4;try{!function(e,t){if(e=e.containerInfo,fd=xb,ir(e=ar(e))){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(f){n=null;break e}var o=0,s=-1,c=-1,u=0,d=0,b=e,m=null;t:for(;;){for(var h;b!==n||0!==a&&3!==b.nodeType||(s=o+a),b!==i||0!==r&&3!==b.nodeType||(c=o+r),3===b.nodeType&&(o+=b.nodeValue.length),null!==(h=b.firstChild);)m=b,b=h;for(;;){if(b===e)break t;if(m===n&&++u===a&&(s=o),m===i&&++d===r&&(c=o),null!==(h=b.nextSibling))break;m=(b=m).parentNode}b=h}n=-1===s||-1===c?null:{start:s,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(gd={focusedElem:e,selectionRange:n},xb=!1,Ls=t;null!==Ls;)if(e=(t=Ls).child,1028&t.subtreeFlags&&null!==e)e.return=t,Ls=e;else for(;null!==Ls;){switch(i=(t=Ls).alternate,e=t.flags,t.tag){case 0:if(4&e&&null!==(e=null!==(e=t.updateQueue)?e.events:null))for(n=0;n<e.length;n++)(a=e[n]).ref.impl=a.nextImpl;break;case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(1024&e&&null!==i){e=void 0,n=t,a=i.memoizedProps,i=i.memoizedState,r=n.stateNode;try{var p=No(n.type,a);e=r.getSnapshotBeforeUpdate(p,i),r.__reactInternalSnapshotBeforeUpdate=e}catch(g){Nu(n,n.return,g)}}break;case 3:if(1024&e)if(9===(n=(e=t.stateNode.containerInfo).nodeType))Ad(e);else if(1===n)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Ad(e);break;default:e.textContent=""}break;default:if(1024&e)throw Error(l(163))}if(null!==(e=t.sibling)){e.return=t.return,Ls=e;break}Ls=t.return}}(e,t)}finally{pc=o,O.p=a,D.T=r}}jc=1,yu(),vu(),wu()}}function yu(){if(1===jc){jc=0;var e=Fc,t=Uc,n=!!(13878&t.flags);if(13878&t.subtreeFlags||n){n=D.T,D.T=null;var r=O.p;O.p=2;var l=pc;pc|=4;try{Ks(t,e);var a=gd,i=ar(e.containerInfo),o=a.focusedElem,s=a.selectionRange;if(i!==o&&o&&o.ownerDocument&&lr(o.ownerDocument.documentElement,o)){if(null!==s&&ir(o)){var c=s.start,u=s.end;if(void 0===u&&(u=c),"selectionStart"in o)o.selectionStart=c,o.selectionEnd=Math.min(u,o.value.length);else{var d=o.ownerDocument||document,b=d&&d.defaultView||window;if(b.getSelection){var m=b.getSelection(),h=o.textContent.length,p=Math.min(s.start,h),f=void 0===s.end?p:Math.min(s.end,h);!m.extend&&p>f&&(i=f,f=p,p=i);var g=rr(o,p),y=rr(o,f);if(g&&y&&(1!==m.rangeCount||m.anchorNode!==g.node||m.anchorOffset!==g.offset||m.focusNode!==y.node||m.focusOffset!==y.offset)){var v=d.createRange();v.setStart(g.node,g.offset),m.removeAllRanges(),p>f?(m.addRange(v),m.extend(y.node,y.offset)):(v.setEnd(y.node,y.offset),m.addRange(v))}}}}for(d=[],m=o;m=m.parentNode;)1===m.nodeType&&d.push({element:m,left:m.scrollLeft,top:m.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;o<d.length;o++){var w=d[o];w.element.scrollLeft=w.left,w.element.scrollTop=w.top}}xb=!!fd,gd=fd=null}finally{pc=l,O.p=r,D.T=n}}e.current=t,jc=2}}function vu(){if(2===jc){jc=0;var e=Fc,t=Uc,n=!!(8772&t.flags);if(8772&t.subtreeFlags||n){n=D.T,D.T=null;var r=O.p;O.p=2;var l=pc;pc|=4;try{Ds(e,t.alternate,t)}finally{pc=l,O.p=r,D.T=n}}jc=3}}function wu(){if(4===jc||3===jc){jc=0,ce();var e=Fc,t=Uc,n=qc,r=Vc;10256&t.subtreeFlags||10256&t.flags?jc=5:(jc=0,Uc=Fc=null,xu(e,e.pendingLanes));var l=e.pendingLanes;if(0===l&&(Rc=null),je(n),t=t.stateNode,we&&"function"==typeof we.onCommitFiberRoot)try{we.onCommitFiberRoot(ve,t,void 0,!(128&~t.current.flags))}catch(s){}if(null!==r){t=D.T,l=O.p,O.p=2,D.T=null;try{for(var a=e.onRecoverableError,i=0;i<r.length;i++){var o=r[i];a(o.value,{componentStack:o.stack})}}finally{D.T=t,O.p=l}}3&qc&&ku(),Ou(e),l=e.pendingLanes,261930&n&&42&l?e===Kc?Hc++:(Hc=0,Kc=e):Hc=0,Ru(0)}}function xu(e,t){0===(e.pooledCacheLanes&=t)&&(null!=(t=e.pooledCache)&&(e.pooledCache=null,ql(t)))}function ku(){return yu(),vu(),wu(),Cu()}function Cu(){if(5!==jc)return!1;var e=Fc,t=Bc;Bc=0;var n=je(qc),r=D.T,a=O.p;try{O.p=32>n?32:n,D.T=null,n=Wc,Wc=null;var i=Fc,o=qc;if(jc=0,Uc=Fc=null,qc=0,6&pc)throw Error(l(331));var s=pc;if(pc|=4,uc(i.current),nc(i,i.current,o,n),pc=s,Ru(0,!1),we&&"function"==typeof we.onPostCommitFiberRoot)try{we.onPostCommitFiberRoot(ve,i)}catch(c){}return!0}finally{O.p=a,D.T=r,xu(e,t)}}function Su(e,t,n){t=Yr(n,t),null!==(e=xa(e,t=Ao(e.stateNode,t,2),2))&&(Ie(e,2),Ou(e))}function Nu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Rc||!Rc.has(r))){e=Yr(n,e),null!==(r=xa(t,n=Po(2),2))&&(Mo(n,r,t,e),Ie(r,2),Ou(r));break}}t=t.return}}function Eu(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new hc;var l=/* @__PURE__ */new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=/* @__PURE__ */new Set,r.set(t,l));l.has(n)||(Cc=!0,l.add(n),e=$u.bind(null,e,t,n),t.then(e,e))}function $u(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,fc===e&&(yc&n)===n&&(4===Nc||3===Nc&&(62914560&yc)===yc&&300>ue()-Ic?!(2&pc)&&ru(e,0):_c|=n,Tc===yc&&(Tc=0)),Ou(e)}function _u(e,t){0===t&&(t=Pe()),null!==(e=Lr(e,t))&&(Ie(e,t),Ou(e))}function zu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),_u(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),_u(e,n)}var Au=null,Pu=null,Mu=!1,Iu=!1,Lu=!1,Du=0;function Ou(e){e!==Pu&&null===e.next&&(null===Pu?Au=Pu=e:Pu=Pu.next=e),Iu=!0,Mu||(Mu=!0,Ed(function(){6&pc?ie(be,ju):Fu()}))}function Ru(e,t){if(!Lu&&Iu){Lu=!0;do{for(var n=!1,r=Au;null!==r;){if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var i=r.suspendedLanes,o=r.pingedLanes;a=(1<<31-ke(42|e)+1)-1,a=201326741&(a&=l&~(i&~o))?201326741&a|1:a?2|a:0}0!==a&&(n=!0,Bu(r,a))}else a=yc,!(3&(a=ze(r,r===fc?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||Te(r,a)||(n=!0,Bu(r,a));r=r.next}}while(n);Lu=!1}}function ju(){Fu()}function Fu(){Iu=Mu=!1;var e=0;0!==Du&&function(){var e=window.event;if(e&&"popstate"===e.type)return e!==kd&&(kd=e,!0);return kd=null,!1}()&&(e=Du);for(var t=ue(),n=null,r=Au;null!==r;){var l=r.next,a=Uu(r,t);0===a?(r.next=null,null===n?Au=l:n.next=l,null===l&&(Pu=n)):(n=r,(0!==e||3&a)&&(Iu=!0)),r=l}0!==jc&&5!==jc||Ru(e),0!==Du&&(Du=0)}function Uu(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-62914561&e.pendingLanes;0<a;){var i=31-ke(a),o=1<<i,s=l[i];-1===s?0!==(o&n)&&0===(o&r)||(l[i]=Ae(o,t)):s<=t&&(e.expiredLanes|=o),a&=~o}if(n=yc,n=ze(e,e===(t=fc)?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===vc||9===vc)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&oe(r),e.callbackNode=null,e.callbackPriority=0;if(!(3&n)||Te(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&oe(r),je(n)){case 2:case 8:n=me;break;case 32:default:n=he;break;case 268435456:n=fe}return r=qu.bind(null,e),n=ie(n,r),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&oe(r),e.callbackPriority=2,e.callbackNode=null,2}function qu(e,t){if(0!==jc&&5!==jc)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ku()&&e.callbackNode!==n)return null;var r=yc;return 0===(r=ze(e,e===fc?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(Xc(e,r,t),Uu(e,ue()),null!=e.callbackNode&&e.callbackNode===n?qu.bind(null,e):null)}function Bu(e,t){if(ku())return null;Xc(e,t,!0)}function Wu(){if(0===Du){var e=Vl;0===e&&(e=Ne,!(261888&(Ne<<=1))&&(Ne=256)),Du=e}return Du}function Vu(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:Mt(""+e)}function Hu(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var Ku=0;Ku<Er.length;Ku++){var Gu=Er[Ku];$r(Gu.toLowerCase(),"on"+(Gu[0].toUpperCase()+Gu.slice(1)))}$r(yr,"onAnimationEnd"),$r(vr,"onAnimationIteration"),$r(wr,"onAnimationStart"),$r("dblclick","onDoubleClick"),$r("focusin","onFocus"),$r("focusout","onBlur"),$r(xr,"onTransitionRun"),$r(kr,"onTransitionStart"),$r(Cr,"onTransitionCancel"),$r(Sr,"onTransitionEnd"),it("onMouseEnter",["mouseout","mouseover"]),it("onMouseLeave",["mouseout","mouseover"]),it("onPointerEnter",["pointerout","pointerover"]),it("onPointerLeave",["pointerout","pointerover"]),at("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),at("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),at("onBeforeInput",["compositionend","keypress","textInput","paste"]),at("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),at("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),at("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Qu="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Yu=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Qu));function Xu(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],l=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var o=r[i],s=o.instance,c=o.currentTarget;if(o=o.listener,s!==a&&l.isPropagationStopped())break e;a=o,l.currentTarget=c;try{a(l)}catch(u){_r(u)}l.currentTarget=null,a=s}else for(i=0;i<r.length;i++){if(s=(o=r[i]).instance,c=o.currentTarget,o=o.listener,s!==a&&l.isPropagationStopped())break e;a=o,l.currentTarget=c;try{a(l)}catch(u){_r(u)}l.currentTarget=null,a=s}}}}function Ju(e,t){var n=t[He];void 0===n&&(n=t[He]=/* @__PURE__ */new Set);var r=e+"__bubble";n.has(r)||(nd(t,e,2,!1),n.add(r))}function Zu(e,t,n){var r=0;t&&(r|=4),nd(n,e,r,t)}var ed="_reactListening"+Math.random().toString(36).slice(2);function td(e){if(!e[ed]){e[ed]=!0,rt.forEach(function(t){"selectionchange"!==t&&(Yu.has(t)||Zu(t,!1,e),Zu(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[ed]||(t[ed]=!0,Zu("selectionchange",!1,t))}}function nd(e,t,n,r){switch(_b(t)){case 2:var l=kb;break;case 8:l=Cb;break;default:l=Sb}n=l.bind(null,t,n,e),l=void 0,!Wt||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(l=!0),r?void 0!==l?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):void 0!==l?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function rd(e,t,n,r,l){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===l)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&i.stateNode.containerInfo===l)return;i=i.return}for(;null!==s;){if(null===(i=Je(s)))return;if(5===(c=i.tag)||6===c||26===c||27===c){r=a=i;continue e}s=s.parentNode}}r=r.return}Ut(function(){var r=a,l=Dt(n),i=[];e:{var s=Nr.get(e);if(void 0!==s){var c=ln,u=e;switch(e){case"keypress":if(0===Yt(n))break e;case"keydown":case"keyup":c=wn;break;case"focusin":u="focus",c=dn;break;case"focusout":u="blur",c=dn;break;case"beforeblur":case"afterblur":c=dn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=cn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=un;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=kn;break;case yr:case vr:case wr:c=bn;break;case Sr:c=Cn;break;case"scroll":case"scrollend":c=on;break;case"wheel":c=Sn;break;case"copy":case"cut":case"paste":c=mn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=xn;break;case"toggle":case"beforetoggle":c=Nn}var d=!!(4&t),b=!d&&("scroll"===e||"scrollend"===e),m=d?null!==s?s+"Capture":null:s;d=[];for(var h,p=r;null!==p;){var f=p;if(h=f.stateNode,5!==(f=f.tag)&&26!==f&&27!==f||null===h||null===m||null!=(f=qt(p,m))&&d.push(ld(p,f,h)),b)break;p=p.return}0<d.length&&(s=new c(s,u,null,n,l),i.push({event:s,listeners:d}))}}if(!(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===Lt||!(u=n.relatedTarget||n.fromElement)||!Je(u)&&!u[Ve])&&(c||s)&&(s=l.window===l?l:(s=l.ownerDocument)?s.defaultView||s.parentWindow:window,c?(c=r,null!==(u=(u=n.relatedTarget||n.toElement)?Je(u):null)&&(b=o(u),d=u.tag,u!==b||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=r),c!==u)){if(d=cn,f="onMouseLeave",m="onMouseEnter",p="mouse","pointerout"!==e&&"pointerover"!==e||(d=xn,f="onPointerLeave",m="onPointerEnter",p="pointer"),b=null==c?s:et(c),h=null==u?s:et(u),(s=new d(f,p+"leave",c,n,l)).target=b,s.relatedTarget=h,f=null,Je(l)===r&&((d=new d(m,p+"enter",u,n,l)).target=h,d.relatedTarget=b,f=d),b=f,c&&u)e:{for(d=id,p=u,h=0,f=m=c;f;f=d(f))h++;f=0;for(var g=p;g;g=d(g))f++;for(;0<h-f;)m=d(m),h--;for(;0<f-h;)p=d(p),f--;for(;h--;){if(m===p||null!==p&&m===p.alternate){d=m;break e}m=d(m),p=d(p)}d=null}else d=null;null!==c&&od(i,s,c,d,!1),null!==u&&null!==b&&od(i,b,u,d,!0)}if("select"===(c=(s=r?et(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===c&&"file"===s.type)var y=Bn;else if(On(s))if(Wn)y=Zn;else{y=Xn;var v=Yn}else!(c=s.nodeName)||"input"!==c.toLowerCase()||"checkbox"!==s.type&&"radio"!==s.type?r&&Tt(r.elementType)&&(y=Bn):y=Jn;switch(y&&(y=y(e,r))?Rn(i,y,n,l):(v&&v(e,s,r),"focusout"===e&&r&&"number"===s.type&&null!=r.memoizedProps.value&&kt(s,"number",s.value)),v=r?et(r):window,e){case"focusin":(On(v)||"true"===v.contentEditable)&&(sr=v,cr=r,ur=null);break;case"focusout":ur=cr=sr=null;break;case"mousedown":dr=!0;break;case"contextmenu":case"mouseup":case"dragend":dr=!1,br(i,n,l);break;case"selectionchange":if(or)break;case"keydown":case"keyup":br(i,n,l)}var w;if($n)e:{switch(e){case"compositionstart":var x="onCompositionStart";break e;case"compositionend":x="onCompositionEnd";break e;case"compositionupdate":x="onCompositionUpdate";break e}x=void 0}else Ln?Mn(e,n)&&(x="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(x="onCompositionStart");x&&(Tn&&"ko"!==n.locale&&(Ln||"onCompositionStart"!==x?"onCompositionEnd"===x&&Ln&&(w=Qt()):(Kt="value"in(Ht=l)?Ht.value:Ht.textContent,Ln=!0)),0<(v=ad(r,x)).length&&(x=new hn(x,e,null,n,l),i.push({event:x,listeners:v}),w?x.data=w:null!==(w=In(n))&&(x.data=w))),(w=zn?function(e,t){switch(e){case"compositionend":return In(t);case"keypress":return 32!==t.which?null:(Pn=!0,An);case"textInput":return(e=t.data)===An&&Pn?null:e;default:return null}}(e,n):function(e,t){if(Ln)return"compositionend"===e||!$n&&Mn(e,t)?(e=Qt(),Gt=Kt=Ht=null,Ln=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Tn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(x=ad(r,"onBeforeInput")).length&&(v=new hn("onBeforeInput","beforeinput",null,n,l),i.push({event:v,listeners:x}),v.data=w)),function(e,t,n,r,l){if("submit"===t&&n&&n.stateNode===l){var a=Vu((l[We]||null).action),i=r.submitter;i&&null!==(t=(t=i[We]||null)?Vu(t.formAction):i.getAttribute("formAction"))&&(a=t,i=null);var o=new ln("action","action",null,r,l);e.push({event:o,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(0!==Du){var e=i?Hu(l,i):new FormData(l);no(n,{pending:!0,data:e,method:l.method,action:a},null,e)}}else"function"==typeof a&&(o.preventDefault(),e=i?Hu(l,i):new FormData(l),no(n,{pending:!0,data:e,method:l.method,action:a},a,e))},currentTarget:l}]})}}(i,e,r,n,l)}Xu(i,t)})}function ld(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ad(e,t){for(var n=t+"Capture",r=[];null!==e;){var l=e,a=l.stateNode;if(5!==(l=l.tag)&&26!==l&&27!==l||null===a||(null!=(l=qt(e,n))&&r.unshift(ld(e,l,a)),null!=(l=qt(e,t))&&r.push(ld(e,l,a))),3===e.tag)return r;e=e.return}return[]}function id(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag&&27!==e.tag);return e||null}function od(e,t,n,r,l){for(var a=t._reactName,i=[];null!==n&&n!==r;){var o=n,s=o.alternate,c=o.stateNode;if(o=o.tag,null!==s&&s===r)break;5!==o&&26!==o&&27!==o||null===c||(s=c,l?null!=(c=qt(n,a))&&i.unshift(ld(n,c,s)):l||null!=(c=qt(n,a))&&i.push(ld(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var sd=/\r\n?/g,cd=/\u0000|\uFFFD/g;function ud(e){return("string"==typeof e?e:""+e).replace(sd,"\n").replace(cd,"")}function dd(e,t){return t=ud(t),ud(e)===t}function bd(e,t,n,r,a,i){switch(n){case"children":"string"==typeof r?"body"===t||"textarea"===t&&""===r||Et(e,r):("number"==typeof r||"bigint"==typeof r)&&"body"!==t&&Et(e,""+r);break;case"className":dt(e,"class",r);break;case"tabIndex":dt(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":dt(e,n,r);break;case"style":zt(e,r,i);break;case"data":if("object"!==t){dt(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==t||"href"!==n)){e.removeAttribute(n);break}if(null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=Mt(""+r),e.setAttribute(n,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof i&&("formAction"===n?("input"!==t&&bd(e,t,"name",a.name,a,null),bd(e,t,"formEncType",a.formEncType,a,null),bd(e,t,"formMethod",a.formMethod,a,null),bd(e,t,"formTarget",a.formTarget,a,null)):(bd(e,t,"encType",a.encType,a,null),bd(e,t,"method",a.method,a,null),bd(e,t,"target",a.target,a,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(n);break}r=Mt(""+r),e.setAttribute(n,r);break;case"onClick":null!=r&&(e.onclick=It);break;case"onScroll":null!=r&&Ju("scroll",e);break;case"onScrollEnd":null!=r&&Ju("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));e.innerHTML=n}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}n=Mt(""+r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""+r):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===r?e.setAttribute(n,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case"popover":Ju("beforetoggle",e),Ju("toggle",e),ut(e,"popover",r);break;case"xlinkActuate":bt(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":bt(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":bt(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":bt(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":bt(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":bt(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":bt(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":bt(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":bt(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":ut(e,"is",r);break;case"innerText":case"textContent":break;default:(!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&ut(e,n=At.get(n)||n,r)}}function md(e,t,n,r,a,i){switch(n){case"style":zt(e,r,i);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=a.children)throw Error(l(60));e.innerHTML=n}}break;case"children":"string"==typeof r?Et(e,r):("number"==typeof r||"bigint"==typeof r)&&Et(e,""+r);break;case"onScroll":null!=r&&Ju("scroll",e);break;case"onScrollEnd":null!=r&&Ju("scrollend",e);break;case"onClick":null!=r&&(e.onclick=It);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:lt.hasOwnProperty(n)||("o"!==n[0]||"n"!==n[1]||(a=n.endsWith("Capture"),t=n.slice(2,a?n.length-7:void 0),"function"==typeof(i=null!=(i=e[We]||null)?i[n]:null)&&e.removeEventListener(t,i,a),"function"!=typeof r)?n in e?e[n]=r:!0===r?e.setAttribute(n,""):ut(e,n,r):("function"!=typeof i&&null!==i&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a)))}}function hd(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ju("error",e),Ju("load",e);var r,a=!1,i=!1;for(r in n)if(n.hasOwnProperty(r)){var o=n[r];if(null!=o)switch(r){case"src":a=!0;break;case"srcSet":i=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:bd(e,t,r,o,n,null)}}return i&&bd(e,t,"srcSet",n.srcSet,n,null),void(a&&bd(e,t,"src",n.src,n,null));case"input":Ju("invalid",e);var s=r=o=i=null,c=null,u=null;for(a in n)if(n.hasOwnProperty(a)){var d=n[a];if(null!=d)switch(a){case"name":i=d;break;case"type":o=d;break;case"checked":c=d;break;case"defaultChecked":u=d;break;case"value":r=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(l(137,t));break;default:bd(e,t,a,d,n,null)}}return void xt(e,r,s,c,u,o,i,!1);case"select":for(i in Ju("invalid",e),a=o=r=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case"value":r=s;break;case"defaultValue":o=s;break;case"multiple":a=s;default:bd(e,t,i,s,n,null)}return t=r,n=o,e.multiple=!!a,void(null!=t?Ct(e,!!a,t,!1):null!=n&&Ct(e,!!a,n,!0));case"textarea":for(o in Ju("invalid",e),r=i=a=null,n)if(n.hasOwnProperty(o)&&null!=(s=n[o]))switch(o){case"value":a=s;break;case"defaultValue":i=s;break;case"children":r=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(l(91));break;default:bd(e,t,o,s,n,null)}return void Nt(e,a,i,r);case"option":for(c in n)if(n.hasOwnProperty(c)&&null!=(a=n[c]))if("selected"===c)e.selected=a&&"function"!=typeof a&&"symbol"!=typeof a;else bd(e,t,c,a,n,null);return;case"dialog":Ju("beforetoggle",e),Ju("toggle",e),Ju("cancel",e),Ju("close",e);break;case"iframe":case"object":Ju("load",e);break;case"video":case"audio":for(a=0;a<Qu.length;a++)Ju(Qu[a],e);break;case"image":Ju("error",e),Ju("load",e);break;case"details":Ju("toggle",e);break;case"embed":case"source":case"link":Ju("error",e),Ju("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(u in n)if(n.hasOwnProperty(u)&&null!=(a=n[u]))switch(u){case"children":case"dangerouslySetInnerHTML":throw Error(l(137,t));default:bd(e,t,u,a,n,null)}return;default:if(Tt(t)){for(d in n)n.hasOwnProperty(d)&&(void 0!==(a=n[d])&&md(e,t,d,a,n,void 0));return}}for(s in n)n.hasOwnProperty(s)&&(null!=(a=n[s])&&bd(e,t,s,a,n,null))}function pd(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}var fd=null,gd=null;function yd(e){return 9===e.nodeType?e:e.ownerDocument}function vd(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function wd(e,t){if(0===e)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===t?0:e}function xd(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"bigint"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var kd=null;var Cd="function"==typeof setTimeout?setTimeout:void 0,Sd="function"==typeof clearTimeout?clearTimeout:void 0,Nd="function"==typeof Promise?Promise:void 0,Ed="function"==typeof queueMicrotask?queueMicrotask:void 0!==Nd?function(e){return Nd.resolve(null).then(e).catch($d)}:Cd;function $d(e){setTimeout(function(){throw e})}function _d(e){return"head"===e}function zd(e,t){var n=t,r=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&8===l.nodeType)if("/$"===(n=l.data)||"/&"===n){if(0===r)return e.removeChild(l),void Hb(t);r--}else if("$"===n||"$?"===n||"$~"===n||"$!"===n||"&"===n)r++;else if("html"===n)Fd(e.ownerDocument.documentElement);else if("head"===n){Fd(n=e.ownerDocument.head);for(var a=n.firstChild;a;){var i=a.nextSibling,o=a.nodeName;a[Ye]||"SCRIPT"===o||"STYLE"===o||"LINK"===o&&"stylesheet"===a.rel.toLowerCase()||n.removeChild(a),a=i}}else"body"===n&&Fd(e.ownerDocument.body);n=l}while(n);Hb(t)}function Td(e,t){var n=e;e=0;do{var r=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",""===n.getAttribute("style")&&n.removeAttribute("style")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),r&&8===r.nodeType)if("/$"===(n=r.data)){if(0===e)break;e--}else"$"!==n&&"$?"!==n&&"$~"!==n&&"$!"!==n||e++;n=r}while(n)}function Ad(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":Ad(n),Xe(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function Pd(e,t){for(;8!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t)return null;if(null===(e=Ld(e.nextSibling)))return null}return e}function Md(e){return"$?"===e.data||"$~"===e.data}function Id(e){return"$!"===e.data||"$?"===e.data&&"loading"!==e.ownerDocument.readyState}function Ld(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t||"$~"===t||"&"===t||"F!"===t||"F"===t)break;if("/$"===t||"/&"===t)return null}}return e}var Dd=null;function Od(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n||"/&"===n){if(0===t)return Ld(e.nextSibling);t--}else"$"!==n&&"$!"!==n&&"$?"!==n&&"$~"!==n&&"&"!==n||t++}e=e.nextSibling}return null}function Rd(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n||"$~"===n||"&"===n){if(0===t)return e;t--}else"/$"!==n&&"/&"!==n||t++}e=e.previousSibling}return null}function jd(e,t,n){switch(t=yd(n),e){case"html":if(!(e=t.documentElement))throw Error(l(452));return e;case"head":if(!(e=t.head))throw Error(l(453));return e;case"body":if(!(e=t.body))throw Error(l(454));return e;default:throw Error(l(451))}}function Fd(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Xe(e)}var Ud=/* @__PURE__ */new Map,qd=/* @__PURE__ */new Set;function Bd(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var Wd=O.d;O.d={f:function(){var e=Wd.f(),t=tu();return e||t},r:function(e){var t=Ze(e);null!==t&&5===t.tag&&"form"===t.type?lo(t):Wd.r(e)},D:function(e){Wd.D(e),Hd("dns-prefetch",e,null)},C:function(e,t){Wd.C(e,t),Hd("preconnect",e,t)},L:function(e,t,n){Wd.L(e,t,n);var r=Vd;if(r&&e&&t){var l='link[rel="preload"][as="'+vt(t)+'"]';"image"===t&&n&&n.imageSrcSet?(l+='[imagesrcset="'+vt(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(l+='[imagesizes="'+vt(n.imageSizes)+'"]')):l+='[href="'+vt(e)+'"]';var a=l;switch(t){case"style":a=Gd(e);break;case"script":a=Xd(e)}Ud.has(a)||(e=b({rel:"preload",href:"image"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),Ud.set(a,e),null!==r.querySelector(l)||"style"===t&&r.querySelector(Qd(a))||"script"===t&&r.querySelector(Jd(a))||(hd(t=r.createElement("link"),"link",e),nt(t),r.head.appendChild(t)))}},m:function(e,t){Wd.m(e,t);var n=Vd;if(n&&e){var r=t&&"string"==typeof t.as?t.as:"script",l='link[rel="modulepreload"][as="'+vt(r)+'"][href="'+vt(e)+'"]',a=l;switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=Xd(e)}if(!Ud.has(a)&&(e=b({rel:"modulepreload",href:e},t),Ud.set(a,e),null===n.querySelector(l))){switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Jd(a)))return}hd(r=n.createElement("link"),"link",e),nt(r),n.head.appendChild(r)}}},X:function(e,t){Wd.X(e,t);var n=Vd;if(n&&e){var r=tt(n).hoistableScripts,l=Xd(e),a=r.get(l);a||((a=n.querySelector(Jd(l)))||(e=b({src:e,async:!0},t),(t=Ud.get(l))&&nb(e,t),nt(a=n.createElement("script")),hd(a,"link",e),n.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},r.set(l,a))}},S:function(e,t,n){Wd.S(e,t,n);var r=Vd;if(r&&e){var l=tt(r).hoistableStyles,a=Gd(e);t=t||"default";var i=l.get(a);if(!i){var o={loading:0,preload:null};if(i=r.querySelector(Qd(a)))o.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Ud.get(a))&&tb(e,n);var s=i=r.createElement("link");nt(s),hd(s,"link",e),s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),s.addEventListener("load",function(){o.loading|=1}),s.addEventListener("error",function(){o.loading|=2}),o.loading|=4,eb(i,t,r)}i={type:"stylesheet",instance:i,count:1,state:o},l.set(a,i)}}},M:function(e,t){Wd.M(e,t);var n=Vd;if(n&&e){var r=tt(n).hoistableScripts,l=Xd(e),a=r.get(l);a||((a=n.querySelector(Jd(l)))||(e=b({src:e,async:!0,type:"module"},t),(t=Ud.get(l))&&nb(e,t),nt(a=n.createElement("script")),hd(a,"link",e),n.head.appendChild(a)),a={type:"script",instance:a,count:1,state:null},r.set(l,a))}}};var Vd="undefined"==typeof document?null:document;function Hd(e,t,n){var r=Vd;if(r&&"string"==typeof t&&t){var l=vt(t);l='link[rel="'+e+'"][href="'+l+'"]',"string"==typeof n&&(l+='[crossorigin="'+n+'"]'),qd.has(l)||(qd.add(l),e={rel:e,crossOrigin:n,href:t},null===r.querySelector(l)&&(hd(t=r.createElement("link"),"link",e),nt(t),r.head.appendChild(t)))}}function Kd(e,t,n,r){var a,i,o,s,c=(c=G.current)?Bd(c):null;if(!c)throw Error(l(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(t=Gd(n.href),(r=(n=tt(c).hoistableStyles).get(t))||(r={type:"style",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===n.rel&&"string"==typeof n.href&&"string"==typeof n.precedence){e=Gd(n.href);var u=tt(c).hoistableStyles,d=u.get(e);if(d||(c=c.ownerDocument||c,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=c.querySelector(Qd(e)))&&!u._p&&(d.instance=u,d.state.loading=5),Ud.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Ud.set(e,n),u||(a=c,i=e,o=n,s=d.state,a.querySelector('link[rel="preload"][as="style"]['+i+"]")?s.loading=1:(i=a.createElement("link"),s.preload=i,i.addEventListener("load",function(){return s.loading|=1}),i.addEventListener("error",function(){return s.loading|=2}),hd(i,"link",o),nt(i),a.head.appendChild(i))))),t&&null===r)throw Error(l(528,""));return d}if(t&&null!==r)throw Error(l(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(t=Xd(n),(r=(n=tt(c).hoistableScripts).get(t))||(r={type:"script",instance:null,count:0,state:null},n.set(t,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function Gd(e){return'href="'+vt(e)+'"'}function Qd(e){return'link[rel="stylesheet"]['+e+"]"}function Yd(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Xd(e){return'[src="'+vt(e)+'"]'}function Jd(e){return"script[async]"+e}function Zd(e,t,n){if(t.count++,null===t.instance)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+vt(n.href)+'"]');if(r)return t.instance=r,nt(r),r;var a=b({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return nt(r=(e.ownerDocument||e).createElement("style")),hd(r,"style",a),eb(r,n.precedence,e),t.instance=r;case"stylesheet":a=Gd(n.href);var i=e.querySelector(Qd(a));if(i)return t.state.loading|=4,t.instance=i,nt(i),i;r=Yd(n),(a=Ud.get(a))&&tb(r,a),nt(i=(e.ownerDocument||e).createElement("link"));var o=i;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),hd(i,"link",r),t.state.loading|=4,eb(i,n.precedence,e),t.instance=i;case"script":return i=Xd(n.src),(a=e.querySelector(Jd(i)))?(t.instance=a,nt(a),a):(r=n,(a=Ud.get(i))&&nb(r=b({},n),a),nt(a=(e=e.ownerDocument||e).createElement("script")),hd(a,"link",r),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(l(443,t.type))}else"stylesheet"===t.type&&!(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,eb(r,n.precedence,e));return t.instance}function eb(e,t,n){for(var r=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=r.length?r[r.length-1]:null,a=l,i=0;i<r.length;i++){var o=r[i];if(o.dataset.precedence===t)a=o;else if(a!==l)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function tb(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function nb(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var rb=null;function lb(e,t,n){if(null===rb){var r=/* @__PURE__ */new Map,l=rb=/* @__PURE__ */new Map;l.set(n,r)}else(r=(l=rb).get(n))||(r=/* @__PURE__ */new Map,l.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var a=n[l];if(!(a[Ye]||a[Be]||"link"===e&&"stylesheet"===a.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==a.namespaceURI){var i=a.getAttribute(t)||"";i=e+i;var o=r.get(i);o?o.push(a):r.set(i,[a])}}return r}function ab(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,"title"===t?e.querySelector("head > title"):null)}function ib(e){return!!("stylesheet"!==e.type||3&e.state.loading)}var ob=0;function sb(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)ub(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var cb=null;function ub(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,cb=/* @__PURE__ */new Map,t.forEach(db,e),cb=null,sb.call(e))}function db(e,t){if(!(4&t.state.loading)){var n=cb.get(e);if(n)var r=n.get(null);else{n=/* @__PURE__ */new Map,cb.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a<l.length;a++){var i=l[a];"LINK"!==i.nodeName&&"not all"===i.getAttribute("media")||(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(l=t.instance).getAttribute("data-precedence"),(a=n.get(i)||r)===r&&n.set(null,l),n.set(i,l),this.count++,r=sb.bind(this),l.addEventListener("load",r),l.addEventListener("error",r),a?a.parentNode.insertBefore(l,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(l,e.firstChild),t.state.loading|=4}}var bb={$$typeof:C,Provider:null,Consumer:null,_currentValue:R,_currentValue2:R,_threadCount:0};function mb(e,t,n,r,l,a,i,o,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Me(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Me(0),this.hiddenUpdates=Me(null),this.identifierPrefix=r,this.onUncaughtError=l,this.onCaughtError=a,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.incompleteTransitions=/* @__PURE__ */new Map}function hb(e,t,n,r,l,a,i,o,s,c,u,d){return e=new mb(e,t,n,i,s,c,u,d,o),t=1,!0===a&&(t|=24),a=Fr(3,null,null,t),e.current=a,a.stateNode=e,(t=Ul()).refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},ya(a),e}function pb(e){return e?e=Rr:Rr}function fb(e,t,n,r,l,a){l=pb(l),null===r.context?r.context=l:r.pendingContext=l,(r=wa(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(r.callback=a),null!==(n=xa(e,r,t))&&(Yc(n,0,t),ka(n,e,t))}function gb(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function yb(e,t){gb(e,t),(e=e.alternate)&&gb(e,t)}function vb(e){if(13===e.tag||31===e.tag){var t=Lr(e,67108864);null!==t&&Yc(t,0,67108864),yb(e,67108864)}}function wb(e){if(13===e.tag||31===e.tag){var t=Gc(),n=Lr(e,t=Re(t));null!==n&&Yc(n,0,t),yb(e,t)}}var xb=!0;function kb(e,t,n,r){var l=D.T;D.T=null;var a=O.p;try{O.p=2,Sb(e,t,n,r)}finally{O.p=a,D.T=l}}function Cb(e,t,n,r){var l=D.T;D.T=null;var a=O.p;try{O.p=8,Sb(e,t,n,r)}finally{O.p=a,D.T=l}}function Sb(e,t,n,r){if(xb){var l=Nb(r);if(null===l)rd(e,t,r,Eb,n),Ob(e,r);else if(function(e,t,n,r,l){switch(t){case"focusin":return Tb=Rb(Tb,e,t,n,r,l),!0;case"dragenter":return Ab=Rb(Ab,e,t,n,r,l),!0;case"mouseover":return Pb=Rb(Pb,e,t,n,r,l),!0;case"pointerover":var a=l.pointerId;return Mb.set(a,Rb(Mb.get(a)||null,e,t,n,r,l)),!0;case"gotpointercapture":return a=l.pointerId,Ib.set(a,Rb(Ib.get(a)||null,e,t,n,r,l)),!0}return!1}(l,e,t,n,r))r.stopPropagation();else if(Ob(e,r),4&t&&-1<Db.indexOf(e)){for(;null!==l;){var a=Ze(l);if(null!==a)switch(a.tag){case 3:if((a=a.stateNode).current.memoizedState.isDehydrated){var i=_e(a.pendingLanes);if(0!==i){var o=a;for(o.pendingLanes|=2,o.entangledLanes|=2;i;){var s=1<<31-ke(i);o.entanglements[1]|=s,i&=~s}Ou(a),!(6&pc)&&(Dc=ue()+500,Ru(0))}}break;case 31:case 13:null!==(o=Lr(a,2))&&Yc(o,0,2),tu(),yb(a,2)}if(null===(a=Nb(r))&&rd(e,t,r,Eb,n),a===l)break;l=a}null!==l&&r.stopPropagation()}else rd(e,t,r,null,n)}}function Nb(e){return $b(e=Dt(e))}var Eb=null;function $b(e){if(Eb=null,null!==(e=Je(e))){var t=o(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=s(t)))return e;e=null}else if(31===n){if(null!==(e=c(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Eb=e,null}function _b(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(de()){case be:return 2;case me:return 8;case he:case pe:return 32;case fe:return 268435456;default:return 32}default:return 32}}var zb=!1,Tb=null,Ab=null,Pb=null,Mb=/* @__PURE__ */new Map,Ib=/* @__PURE__ */new Map,Lb=[],Db="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Ob(e,t){switch(e){case"focusin":case"focusout":Tb=null;break;case"dragenter":case"dragleave":Ab=null;break;case"mouseover":case"mouseout":Pb=null;break;case"pointerover":case"pointerout":Mb.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ib.delete(t.pointerId)}}function Rb(e,t,n,r,l,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[l]},null!==t&&(null!==(t=Ze(t))&&vb(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==l&&-1===t.indexOf(l)&&t.push(l),e)}function jb(e){var t=Je(e.target);if(null!==t){var n=o(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=s(n)))return e.blockedOn=t,void Ue(e.priority,function(){wb(n)})}else if(31===t){if(null!==(t=c(n)))return e.blockedOn=t,void Ue(e.priority,function(){wb(n)})}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Fb(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Nb(e.nativeEvent);if(null!==n)return null!==(t=Ze(n))&&vb(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);Lt=r,n.target.dispatchEvent(r),Lt=null,t.shift()}return!0}function Ub(e,t,n){Fb(e)&&n.delete(t)}function qb(){zb=!1,null!==Tb&&Fb(Tb)&&(Tb=null),null!==Ab&&Fb(Ab)&&(Ab=null),null!==Pb&&Fb(Pb)&&(Pb=null),Mb.forEach(Ub),Ib.forEach(Ub)}function Bb(e,n){e.blockedOn===n&&(e.blockedOn=null,zb||(zb=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,qb)))}var Wb=null;function Vb(e){Wb!==e&&(Wb=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Wb===e&&(Wb=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],l=e[t+2];if("function"!=typeof r){if(null===$b(r||n))continue;break}var a=Ze(n);null!==a&&(e.splice(t,3),t-=3,no(a,{pending:!0,data:l,method:n.method,action:r},r,l))}}))}function Hb(e){function t(t){return Bb(t,e)}null!==Tb&&Bb(Tb,e),null!==Ab&&Bb(Ab,e),null!==Pb&&Bb(Pb,e),Mb.forEach(t),Ib.forEach(t);for(var n=0;n<Lb.length;n++){var r=Lb[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Lb.length&&null===(n=Lb[0]).blockedOn;)jb(n),null===n.blockedOn&&Lb.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var l=n[r],a=n[r+1],i=l[We]||null;if("function"==typeof a)i||Vb(n);else if(i){var o=null;if(a&&a.hasAttribute("formAction")){if(l=a,i=a[We]||null)o=i.formAction;else if(null!==$b(l))continue}else o=i.action;"function"==typeof o?n[r+1]=o:(n.splice(r,3),r-=3),Vb(n)}}}function Kb(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return l=e})},focusReset:"manual",scroll:"manual"})}function t(){null!==l&&(l(),l=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:"react-transition",history:"replace"})}}if("object"==typeof navigation){var r=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),null!==l&&(l(),l=null)}}}function Gb(e){this._internalRoot=e}function Qb(e){this._internalRoot=e}Qb.prototype.render=Gb.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(l(409));fb(t.current,Gc(),e,t,null,null)},Qb.prototype.unmount=Gb.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;fb(e.current,2,null,e,null,null),tu(),t[Ve]=null}},Qb.prototype.unstable_scheduleHydration=function(e){if(e){var t=Fe();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Lb.length&&0!==t&&t<Lb[n].priority;n++);Lb.splice(n,0,e),0===n&&jb(e)}};var Yb=n.version;if("19.2.3"!==Yb)throw Error(l(527,Yb,"19.2.3"));O.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(l(188));throw e=Object.keys(e).join(","),Error(l(268,e))}return e=function(e){var t=e.alternate;if(!t){if(null===(t=o(e)))throw Error(l(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return u(a),e;if(i===r)return u(a),t;i=i.sibling}throw Error(l(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,c=a.child;c;){if(c===n){s=!0,n=a,r=i;break}if(c===r){s=!0,r=a,n=i;break}c=c.sibling}if(!s){for(c=i.child;c;){if(c===n){s=!0,n=i,r=a;break}if(c===r){s=!0,r=i,n=a;break}c=c.sibling}if(!s)throw Error(l(189))}}if(n.alternate!==r)throw Error(l(190))}if(3!==n.tag)throw Error(l(188));return n.stateNode.current===n?e:t}(t),e=null===(e=null!==e?d(e):null)?null:e.stateNode};var Xb={bundleType:0,version:"19.2.3",rendererPackageName:"react-dom",currentDispatcherRef:D,reconcilerVersion:"19.2.3"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Jb=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jb.isDisabled&&Jb.supportsFiber)try{ve=Jb.inject(Xb),we=Jb}catch(em){}}return y.createRoot=function(e,t){if(!a(e))throw Error(l(299));var n=!1,r="",i=Eo,o=$o,s=_o;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(i=t.onUncaughtError),void 0!==t.onCaughtError&&(o=t.onCaughtError),void 0!==t.onRecoverableError&&(s=t.onRecoverableError)),t=hb(e,1,!1,null,0,n,r,null,i,o,s,Kb),e[Ve]=t.current,td(e),new Gb(t)},y.hydrateRoot=function(e,t,n){if(!a(e))throw Error(l(299));var r=!1,i="",o=Eo,s=$o,c=_o,u=null;return null!=n&&(!0===n.unstable_strictMode&&(r=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(s=n.onCaughtError),void 0!==n.onRecoverableError&&(c=n.onRecoverableError),void 0!==n.formState&&(u=n.formState)),(t=hb(e,1,!0,t,0,r,i,u,o,s,c,Kb)).context=pb(null),n=t.current,(i=wa(r=Re(r=Gc()))).callback=null,xa(n,i,r),n=r,t.current.lanes=n,Ie(t,n),Ou(t),e[Ve]=t.current,td(e),new Qb(t)},y.version="19.2.3",y}var C=(f||(f=1,function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),g.exports=k()),g.exports);const S=new class{constructor(){this.supportsContainerQueries=this.detectContainerQueries(),this.init()}detectContainerQueries(){if("undefined"==typeof window)return!1;try{if("CSS"in window&&"supports"in window.CSS)return window.CSS.supports("container-type","inline-size");const e=document.createElement("div");return e.style.containerType="inline-size","inline-size"===e.style.containerType}catch{return!1}}init(){"undefined"!=typeof window&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>this.applyClasses()):this.applyClasses())}applyClasses(){document.querySelectorAll(".limbo-component-container-wrapper").forEach(e=>{this.supportsContainerQueries?(e.classList.add("container-queries-supported"),e.classList.remove("container-queries-fallback")):(e.classList.add("container-queries-fallback"),e.classList.remove("container-queries-supported"))}),this.supportsContainerQueries?(document.body.classList.add("container-queries-supported"),document.body.classList.remove("container-queries-fallback")):(document.body.classList.add("container-queries-fallback"),document.body.classList.remove("container-queries-supported"))}getContainerWidth(e){if(!e)return window.innerWidth;let t=e.closest(".limbo-component-container-wrapper");return t||(t=e.closest(".limbo-modal-content")),t||(t=e.closest(".limbo-modal")),t||(t=document.body),t.offsetWidth||t.clientWidth}shouldUseMobileStyles(e,t=768){return this.getContainerWidth(e)<=t}applyResponsiveClasses(e){if(this.supportsContainerQueries)return;const t=this.shouldUseMobileStyles(e),n=this.shouldUseMobileStyles(e,1024)&&!t;e.classList.toggle("limbo-mobile-fallback",t),e.classList.toggle("limbo-tablet-fallback",n),e.classList.toggle("limbo-desktop-fallback",!t&&!n)}observeResize(){if(!this.supportsContainerQueries)if("ResizeObserver"in window){const e=new ResizeObserver(e=>{e.forEach(e=>{this.applyResponsiveClasses(e.target)})});document.querySelectorAll(".limbo-component-container-wrapper").forEach(t=>{e.observe(t)})}else window.addEventListener("resize",()=>{document.querySelectorAll(".limbo-component-container-wrapper").forEach(e=>{this.applyResponsiveClasses(e)})})}};function N(e={}){const{useContainerQuery:r=!1,containerElement:l=null}=e,[a,i]=t(()=>{const e=r&&l?S.getContainerWidth(l):"undefined"!=typeof window?window.innerWidth:0,t="undefined"!=typeof window&&(e<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)),n="undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0);return{isMobile:t,isTouch:n,isTablet:"undefined"!=typeof window&&(e>768&&e<=1024&&n),orientation:"undefined"!=typeof window?window.innerHeight>window.innerWidth?"portrait":"landscape":"portrait",viewport:{width:"undefined"!=typeof window?window.innerWidth:0,height:"undefined"!=typeof window?window.innerHeight:0},container:{width:e,supportsContainerQueries:S.supportsContainerQueries}}});n(()=>{if("undefined"==typeof window)return;const e=()=>{const e=window.innerWidth,t=window.innerHeight,n=r&&l?S.getContainerWidth(l):e,a=n<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),o="ontouchstart"in window||navigator.maxTouchPoints>0;i({isMobile:a,isTouch:o,isTablet:n>768&&n<=1024&&o,orientation:t>e?"portrait":"landscape",viewport:{width:e,height:t},container:{width:n,supportsContainerQueries:S.supportsContainerQueries}})};let t;const n=()=>{clearTimeout(t),t=setTimeout(e,150)};return window.addEventListener("resize",n),window.addEventListener("orientationchange",()=>{setTimeout(e,100)}),()=>{clearTimeout(t),window.removeEventListener("resize",n),window.removeEventListener("orientationchange",e)}},[r,l]);const o="portrait"===a.orientation,s="landscape"===a.orientation,c=a.isMobile||a.isTablet&&o;return{...a,isPortrait:o,isLandscape:s,isCompactMode:c,isMobileSize:a.viewport.width<=640,isTabletSize:a.viewport.width>640&&a.viewport.width<=1024,isDesktopSize:a.viewport.width>1024,deviceClass:a.isMobile?"mobile":a.isTablet?"tablet":"desktop"}}function E({tabs:e,active:t,onChange:n}){const{isMobile:r,isTouch:l}=N(),a=["limbo-tabs","lb:flex","lb:gap-4","lb:border-b-2","lb:border-brand-blue-200","lb:mb-6",r&&"lb:overflow-x-auto lb:scrollbar-none"].filter(Boolean).join(" "),i=e=>{const t=["limbo-tab","lb:relative","lb:px-6","lb:py-2","lb:font-medium","lb:text-brand-blue-1000","lb:bg-transparent","lb:border-0","lb:border-b-2","lb:cursor-pointer","lb:transition-all","lb:duration-200","lb:hover:text-pink-1000","lb:focus:outline-none","lb:focus-visible:ring-2","lb:focus-visible:ring-brand-blue-400","lb:focus-visible:ring-offset-2"];return e?t.push("lb:border-b-brand-blue-1000","lb:font-semibold","limbo-active"):t.push("lb:border-b-transparent"),r&&t.push("lb:min-w-[120px]","lb:min-h-[44px]","lb:text-base","lb:shrink-0"),l&&t.push("lb:touch-manipulation"),t.join(" ")};/* @__PURE__ */
|
|
2
|
-
return o("div",{className:a,role:"tablist","aria-label":"Opciones de navegación",style:r?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:e.map(r=>{const a=t===r.id;return!a&&r.hideNonActive?null:/* @__PURE__ */o("button",{"data-tab-id":r.id,onClick:()=>n(r.id),onKeyDown:t=>((t,r)=>{const l=e.findIndex(e=>e.id===r);let a=l;switch(t.key){case"ArrowLeft":case"ArrowUp":t.preventDefault(),a=l>0?l-1:e.length-1;break;case"ArrowRight":case"ArrowDown":t.preventDefault(),a=l<e.length-1?l+1:0;break;case"Home":t.preventDefault(),a=0;break;case"End":t.preventDefault(),a=e.length-1;break;case"Enter":case" ":return t.preventDefault(),void n(r);default:return}const i=e[a];i&&!i.hideNonActive&&(n(i.id),setTimeout(()=>{const e=document.querySelector(`[data-tab-id="${i.id}"]`);e&&e.focus()},0))})(t,r.id),className:i(a),role:"tab","aria-selected":a,"aria-controls":`tabpanel-${r.id}`,tabIndex:a?0:-1,id:`tab-${r.id}`,style:l?{WebkitTapHighlightColor:"transparent"}:void 0,children:r.label},r.id)})})}const $="https://led-dev-limbo-dev.eu.els.local",_="https://limbo.lefebvre.es";let z={publicKey:null,token:null,authMode:null,tokenEndpoint:null,tokenProvider:null,prod:!1};function T({prod:e=!1}={}){return e?_:$}async function A({endpoint:e,method:t="GET",body:n=null,prod:r=!1,basePath:l="",customHeaders:a={},isFormData:i=!1,useJWT:o=!0}){try{const s=r||z.prod,c=await async function({isFormData:e=!1,useJWT:t=!0,customHeaders:n={}}={}){const r={"Access-Control-Allow-Origin":`${window.location.hostname||"*"}`};e||(r["Content-Type"]="application/json");let l=z.token;if(t){if("jwt"===z.authMode&&z.tokenProvider&&!l)try{console.log("🔑 Calling tokenProvider..."),l=await z.tokenProvider(),console.log("✅ Token obtained from tokenProvider"),z.token=l}catch(a){throw console.error("❌ tokenProvider failed:",a),new Error("Failed to obtain token from tokenProvider: "+a.message)}else if("session"===z.authMode&&!l)try{const e=T(z),t=z.tokenEndpoint||"/auth/token",n=await fetch(`${e}${t}`,{method:"POST",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":`${window.location.hostname||"*"}`},body:JSON.stringify({public_key:z.publicKey}),credentials:"include"});if(!n.ok)throw new Error(`Session auth failed: ${n.status}`);l=(await n.json()).token,z.token=l}catch(a){throw console.error("❌ Session authentication failed:",a),new Error("Failed to authenticate with session. User must be logged in.")}l?r.Authorization=`Bearer ${l}`:console.warn("⚠️ No JWT token available:",{authMode:z.authMode,hasPublicKey:!!z.publicKey,hasTokenProvider:!!z.tokenProvider})}return e&&delete r["Content-Type"],{...r,...n}}({isFormData:i,useJWT:o,customHeaders:a});"GET"===t&&!n&&c["Content-Type"]&&delete c["Content-Type"];const u=await fetch(`${T({prod:s})}${l}${e}`,{method:t,headers:c,body:n?i?n:JSON.stringify(n):void 0,credentials:"include"});if(204===u.status)return{success:!0,data:null,message:"No content",httpCode:204,timestamp:/* @__PURE__ */(new Date).toISOString()};if(!u.ok){let e=`HTTP ${u.status}: ${u.statusText}`,t=null;try{const n=await u.json();t=n,n.error?e=`${n.error.code}: ${n.error.message}`:n.message&&(e=n.message)}catch{}throw 401===u.status&&t&&("token_expired"===t.error||t.message&&t.message.includes("expired")||t.message&&t.message.includes("caducado")||t.error&&t.error.includes("expired"))&&window.dispatchEvent(new CustomEvent("tokenExpiredError",{detail:{error:{response:{status:401,data:t}}}})),new Error(e)}return u.json()}catch(s){throw new Error(`API Error: ${s.message}`)}}function P(){const e={...z};return e?.prod||!1?"https://limbo.lefebvre.es":"http://localhost"}function M(e){if(!e?.id)return null;return`${P()}/api/assets/${e.id}/download`}function I(e){if(!e)return null;if(e.startsWith("http://")||e.startsWith("https://"))return e;if(e.startsWith("/")){return`${P()}${e}`}return e}function L(e){return Array.isArray(e)?e.map(e=>({id:e.id,name:e.name,width:e.width,height:e.height,format:e.output_format,file_size:e.file_size,crop_params:e.crop_params,url:I(e.url),expires_at:e.expires_at,created_at:e.created_at})):[]}function D(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;if("sync"===t.processing_mode&&t.variants&&t.variants.length>0){const e=t.variants[0];return{result:{id:e.id||null,name:e.name,width:parseInt(e.size?.split("x")[0])||e.width,height:parseInt(e.size?.split("x")[1])||e.height,format:e.format,file_size:e.file_size,url:e.url,status:e.status,asset_id:t.asset_id,created_at:e.created_at||/* @__PURE__ */(new Date).toISOString(),all_variants:t.variants}}}return{result:{job_id:t.job_id,asset_id:t.asset_id,variants_requested:t.variants_requested||[],processing_mode:t.processing_mode||"async",estimated_completion:t.estimated_completion,variant_statuses:(t.variant_statuses||t.variants||[]).map(e=>({name:e.name,status:e.status,size:e.expected_size||e.size,format:e.format}))}}}function O(e){if(e.message&&!e.message.includes("API Error:"))return e;let t=e.message||"Unknown API error";return t.startsWith("API Error: ")&&(t=t.substring(11)),new Error(t)}const R="/api";async function j(e={}){try{const t=new URLSearchParams(e).toString(),n=t?`/assets?${t}`:"/assets";return function(e){if(!e?.success||!Array.isArray(e?.data?.data))return{result:[]};const t={result:e.data.data.map(e=>({id:e.id,filename:e.filename||e.original_filename,mime_type:e.mime_type,file_size:e.file_size,width:e.width,height:e.height,upload_date:e.upload_date||e.created_at,processing_status:e.processing_status||e.status,variants:e.variants_count&&(L(e.variants)||L(e.image_variants))||[],url:I(e.master_url||e.master?.url_signed||e.urls?.original||e.url)||M(e),webp_available:e.webp_available||!!e.webp_url,metadata:e.metadata||{},variants_count:e.variants_count||0}))};return e.data.pagination&&(t.pagination={page:e.data.pagination.page,limit:e.data.pagination.limit,total:e.data.pagination.total,pages:e.data.pagination.pages}),t}(await A({endpoint:n,method:"GET",basePath:R,useJWT:!0}))}catch(t){throw O(t)}}async function F(e,t=null,n=!1){try{const r=new FormData;r.append("file",e),t&&r.append("uploaded_by",t),n&&r.append("store_original",n.toString());return function(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;return{result:{id:t.id,filename:t.original_filename,mime_type:t.mime_type,file_size:t.file_size,width:t.width,height:t.height,status:t.status,upload_date:t.created_at,url:I(t.master?.url_signed),master_format:t.master?.format,processing:t.processing||{master_webp:"processing"===t.status?"queued":"completed",variants:"processing"===t.status?"queued":"completed"},checksum:t.checksum,storage_path:t.storage_path_base,metadata:t.metadata||{}}}}(await A({endpoint:"/assets",method:"POST",body:r,basePath:R,isFormData:!0,useJWT:!0}))}catch(r){throw O(r)}}async function U(e){try{const n=await A({endpoint:`/assets/${e}/variants`,method:"GET",basePath:R,useJWT:!0});return t=n,t?.success&&Array.isArray(t?.data?.variants)?{result:t.data.variants.map(e=>({id:e.id,name:e.filename||e.name||`Variante ${e.id}`,filename:e.filename,mime_type:e.mime_type,format:e.output_format||e.format||(e.mime_type?e.mime_type.split("/")[1]:"jpg"),file_size:e.file_size,width:e.width,height:e.height,upload_date:e.upload_date||e.created_at,processing_status:e.processing_status||e.status,url:I(e.master_url||e.master?.url_signed||e.urls?.original||e.url)||M(e),webp_available:e.webp_available||!!e.webp_url,metadata:e.metadata||{},crop_data:e.crop_data||{},crop_params:e.crop_params||e.crop_data||{},parent_asset_id:e.parent_asset_id||t.data.asset_id,variant_type:e.variant_type||"crop"}))}:{result:[]}}catch(n){throw O(n)}var t}function q(){const[e,n]=t({}),[l,a]=t({}),[i,o]=t({}),s=r(async t=>{if(t&&!l[t]){if(e[t])return e[t];a(e=>({...e,[t]:!0})),o(e=>({...e,[t]:null}));try{const e=await U(t),r=e?.result||[];return n(e=>({...e,[t]:r})),r}catch(r){return console.error("Error loading variants:",r),o(e=>({...e,[t]:r.message})),[]}finally{a(e=>({...e,[t]:!1}))}}},[e,l]),c=r(t=>e[t]||[],[e]),u=r(e=>l[e]||!1,[l]),d=r(e=>i[e]||null,[i]),b=r(e=>{n(t=>{const n={...t};return delete n[e],n}),a(t=>{const n={...t};return delete n[e],n}),o(t=>{const n={...t};return delete n[e],n})},[]),m=r(async e=>(b(e),await s(e)),[b,s]),h=r(async(e,t)=>{try{return await async function(e,t){try{return await A({endpoint:`/assets/${e}/variants/${t}`,method:"DELETE",basePath:R,useJWT:!0})}catch(n){throw O(n)}}(e,t),n(n=>{const r=n[e]||[];return{...n,[e]:r.filter(e=>e.id!==t)}}),{success:!0}}catch(r){return console.error("Error deleting variant:",r),{success:!1,error:r.message}}},[]);return{loadVariants:s,getVariants:c,isLoading:u,getError:d,clearVariants:b,refreshVariants:m,removeVariant:h}}function B({src:e,alt:a="Imagen",title:i="",subtitle:c="",onClose:u,isOpen:d=!1}){const[b,m]=t(1),[h,p]=t({x:0,y:0}),[f,g]=t(!1),[y,v]=t(!1),[w,x]=t({x:0,y:0}),[k,C]=t(!1),[S,N]=t(!1),E=l(null),$=l(null);n(()=>{d&&(m(1),p({x:0,y:0}),C(!1),N(!1))},[d]);const _=r(()=>{m(e=>Math.min(e+.25,5)),p({x:0,y:0})},[]),z=r(()=>{m(e=>Math.max(e-.25,.25)),p({x:0,y:0})},[]),T=r(()=>{m(1),p({x:0,y:0})},[]),A=r(()=>{m(1),p({x:0,y:0})},[]),P=r(e=>{if("Escape"===e.key)return e.preventDefault(),void u?.();if((e.ctrlKey||e.metaKey)&&("+"===e.key||"="===e.key))return e.preventDefault(),void _();if((e.ctrlKey||e.metaKey)&&"-"===e.key)return e.preventDefault(),void z();if((e.ctrlKey||e.metaKey)&&"0"===e.key)return e.preventDefault(),void T();if(b>1){const t=50;switch(e.key){case"ArrowUp":e.preventDefault(),p(e=>({...e,y:e.y+t}));break;case"ArrowDown":e.preventDefault(),p(e=>({...e,y:e.y-t}));break;case"ArrowLeft":e.preventDefault(),p(e=>({...e,x:e.x+t}));break;case"ArrowRight":e.preventDefault(),p(e=>({...e,x:e.x-t}))}}},[u,_,z,T,b]),M=r(e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.deltaY<0?_():z())},[_,z]),I=r(e=>{b>1&&0===e.button&&(e.preventDefault(),g(!0),v(!1),x({x:e.clientX-h.x,y:e.clientY-h.y}))},[b,h]),L=r(e=>{f&&(v(!0),p({x:e.clientX-w.x,y:e.clientY-w.y}))},[f,w]),D=r(()=>{g(!1)},[]),O=r(e=>{e.stopPropagation(),1!==b||y||(m(2),p({x:0,y:0})),v(!1)},[b,y]),R=r(e=>{e.stopPropagation(),1===b?(m(2),p({x:0,y:0})):T()},[b,T]);if(n(()=>{if(!d)return;document.addEventListener("keydown",P),document.addEventListener("mouseup",D),document.addEventListener("mousemove",L);const e=e=>{!e.ctrlKey&&!e.metaKey||"+"!==e.key&&"-"!==e.key&&"="!==e.key&&"0"!==e.key||e.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",P),document.removeEventListener("mouseup",D),document.removeEventListener("mousemove",L),document.removeEventListener("keydown",e)}},[d,P,D,L]),n(()=>(document.body.style.overflow=d?"hidden":"",()=>{document.body.style.overflow=""}),[d]),!d)return null;const j=Math.round(100*b);/* @__PURE__ */
|
|
2
|
+
return o("div",{className:a,role:"tablist","aria-label":"Opciones de navegación",style:r?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:e.map(r=>{const a=t===r.id;return!a&&r.hideNonActive?null:/* @__PURE__ */o("button",{"data-tab-id":r.id,onClick:()=>n(r.id),onKeyDown:t=>((t,r)=>{const l=e.findIndex(e=>e.id===r);let a=l;switch(t.key){case"ArrowLeft":case"ArrowUp":t.preventDefault(),a=l>0?l-1:e.length-1;break;case"ArrowRight":case"ArrowDown":t.preventDefault(),a=l<e.length-1?l+1:0;break;case"Home":t.preventDefault(),a=0;break;case"End":t.preventDefault(),a=e.length-1;break;case"Enter":case" ":return t.preventDefault(),void n(r);default:return}const i=e[a];i&&!i.hideNonActive&&(n(i.id),setTimeout(()=>{const e=document.querySelector(`[data-tab-id="${i.id}"]`);e&&e.focus()},0))})(t,r.id),className:i(a),role:"tab","aria-selected":a,"aria-controls":`tabpanel-${r.id}`,tabIndex:a?0:-1,id:`tab-${r.id}`,style:l?{WebkitTapHighlightColor:"transparent"}:void 0,children:r.label},r.id)})})}const $=/* @__PURE__ */new Map,_=/* @__PURE__ */new Map,z=18e5,T=async e=>{if(!e)return Promise.reject(new Error("No URL provided"));const t=$.get(e);if(t&&Date.now()-t.timestamp<z)return t.blobUrl;if(_.has(e))return _.get(e);const n=(async()=>{try{const t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch image: ${t.status}`);const n=await t.blob(),r=URL.createObjectURL(n);return $.set(e,{blobUrl:r,timestamp:Date.now(),size:n.size}),r}finally{_.delete(e)}})();return _.set(e,n),n},A=e=>{const t=$.get(e);return t&&Date.now()-t.timestamp<z?t.blobUrl:e},P=e=>{const t=$.get(e);return t&&Date.now()-t.timestamp<z},M=async(e,t=4)=>{const n=/* @__PURE__ */new Map,r=e.filter(e=>!P(e));if(0===r.length)return e.forEach(e=>{n.set(e,A(e))}),n;const l=[];for(let a=0;a<r.length;a+=t)l.push(r.slice(a,a+t));for(const a of l){(await Promise.allSettled(a.map(async e=>({url:e,blobUrl:await T(e)})))).forEach(e=>{"fulfilled"===e.status&&n.set(e.value.url,e.value.blobUrl)})}return n},I="https://led-dev-limbo-dev.eu.els.local",L="https://limbo.lefebvre.es";let D={publicKey:null,token:null,authMode:null,tokenEndpoint:null,tokenProvider:null,prod:!1};function O({prod:e=!1}={}){return e?L:I}async function R({endpoint:e,method:t="GET",body:n=null,prod:r=!1,basePath:l="",customHeaders:a={},isFormData:i=!1,useJWT:o=!0}){try{const s=r||D.prod,c=await async function({isFormData:e=!1,useJWT:t=!0,customHeaders:n={}}={}){const r={"Access-Control-Allow-Origin":`${window.location.hostname||"*"}`};e||(r["Content-Type"]="application/json");let l=D.token;if(t){if("jwt"===D.authMode&&D.tokenProvider&&!l)try{console.log("🔑 Calling tokenProvider..."),l=await D.tokenProvider(),console.log("✅ Token obtained from tokenProvider"),D.token=l}catch(a){throw console.error("❌ tokenProvider failed:",a),new Error("Failed to obtain token from tokenProvider: "+a.message)}else if("session"===D.authMode&&!l)try{const e=O(D),t=D.tokenEndpoint||"/auth/token",n=await fetch(`${e}${t}`,{method:"POST",headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":`${window.location.hostname||"*"}`},body:JSON.stringify({public_key:D.publicKey}),credentials:"include"});if(!n.ok)throw new Error(`Session auth failed: ${n.status}`);l=(await n.json()).token,D.token=l}catch(a){throw console.error("❌ Session authentication failed:",a),new Error("Failed to authenticate with session. User must be logged in.")}l?r.Authorization=`Bearer ${l}`:console.warn("⚠️ No JWT token available:",{authMode:D.authMode,hasPublicKey:!!D.publicKey,hasTokenProvider:!!D.tokenProvider})}return e&&delete r["Content-Type"],{...r,...n}}({isFormData:i,useJWT:o,customHeaders:a});"GET"===t&&!n&&c["Content-Type"]&&delete c["Content-Type"];const u=await fetch(`${O({prod:s})}${l}${e}`,{method:t,headers:c,body:n?i?n:JSON.stringify(n):void 0,credentials:"include"});if(204===u.status)return{success:!0,data:null,message:"No content",httpCode:204,timestamp:/* @__PURE__ */(new Date).toISOString()};if(!u.ok){let e=`HTTP ${u.status}: ${u.statusText}`,t=null;try{const n=await u.json();t=n,n.error?e=`${n.error.code}: ${n.error.message}`:n.message&&(e=n.message)}catch{}throw 401===u.status&&t&&("token_expired"===t.error||t.message&&t.message.includes("expired")||t.message&&t.message.includes("caducado")||t.error&&t.error.includes("expired"))&&window.dispatchEvent(new CustomEvent("tokenExpiredError",{detail:{error:{response:{status:401,data:t}}}})),new Error(e)}return u.json()}catch(s){throw new Error(`API Error: ${s.message}`)}}function j(){const e={...D};return e?.prod||!1?"https://limbo.lefebvre.es":"http://localhost"}function F(e){if(!e?.id)return null;return`${j()}/api/assets/${e.id}/download`}function U(e){if(!e)return null;if(e.startsWith("http://")||e.startsWith("https://"))return e;if(e.startsWith("/")){return`${j()}${e}`}return e}function q(e){return Array.isArray(e)?e.map(e=>({id:e.id,name:e.name,width:e.width,height:e.height,format:e.output_format,file_size:e.file_size,crop_params:e.crop_params,url:U(e.url),expires_at:e.expires_at,created_at:e.created_at})):[]}function B(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;if("sync"===t.processing_mode&&t.variants&&t.variants.length>0){const e=t.variants[0];return{result:{id:e.id||null,name:e.name,width:parseInt(e.size?.split("x")[0])||e.width,height:parseInt(e.size?.split("x")[1])||e.height,format:e.format,file_size:e.file_size,url:e.url,status:e.status,asset_id:t.asset_id,created_at:e.created_at||/* @__PURE__ */(new Date).toISOString(),all_variants:t.variants}}}return{result:{job_id:t.job_id,asset_id:t.asset_id,variants_requested:t.variants_requested||[],processing_mode:t.processing_mode||"async",estimated_completion:t.estimated_completion,variant_statuses:(t.variant_statuses||t.variants||[]).map(e=>({name:e.name,status:e.status,size:e.expected_size||e.size,format:e.format}))}}}function W(e){if(e.message&&!e.message.includes("API Error:"))return e;let t=e.message||"Unknown API error";return t.startsWith("API Error: ")&&(t=t.substring(11)),new Error(t)}const V="/api";async function H(e={}){try{const t=new URLSearchParams(e).toString(),n=t?`/assets?${t}`:"/assets";return function(e){if(!e?.success||!Array.isArray(e?.data?.data))return{result:[]};const t={result:e.data.data.map(e=>({id:e.id,filename:e.filename||e.original_filename,mime_type:e.mime_type,file_size:e.file_size,width:e.width,height:e.height,upload_date:e.upload_date||e.created_at,processing_status:e.processing_status||e.status,variants:e.variants_count&&(q(e.variants)||q(e.image_variants))||[],url:U(e.master_url||e.master?.url_signed||e.urls?.original||e.url)||F(e),webp_available:e.webp_available||!!e.webp_url,metadata:e.metadata||{},variants_count:e.variants_count||0}))};return e.data.pagination&&(t.pagination={page:e.data.pagination.page,limit:e.data.pagination.limit,total:e.data.pagination.total,pages:e.data.pagination.pages}),t}(await R({endpoint:n,method:"GET",basePath:V,useJWT:!0}))}catch(t){throw W(t)}}async function K(e,t=null,n=!1){try{const r=new FormData;r.append("file",e),t&&r.append("uploaded_by",t),n&&r.append("store_original",n.toString());return function(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;return{result:{id:t.id,filename:t.original_filename,mime_type:t.mime_type,file_size:t.file_size,width:t.width,height:t.height,status:t.status,upload_date:t.created_at,url:U(t.master?.url_signed),master_format:t.master?.format,processing:t.processing||{master_webp:"processing"===t.status?"queued":"completed",variants:"processing"===t.status?"queued":"completed"},checksum:t.checksum,storage_path:t.storage_path_base,metadata:t.metadata||{}}}}(await R({endpoint:"/assets",method:"POST",body:r,basePath:V,isFormData:!0,useJWT:!0}))}catch(r){throw W(r)}}async function G(e){try{const n=await R({endpoint:`/assets/${e}/variants`,method:"GET",basePath:V,useJWT:!0});return t=n,t?.success&&Array.isArray(t?.data?.variants)?{result:t.data.variants.map(e=>({id:e.id,name:e.filename||e.name||`Variante ${e.id}`,filename:e.filename,mime_type:e.mime_type,format:e.output_format||e.format||(e.mime_type?e.mime_type.split("/")[1]:"jpg"),file_size:e.file_size,width:e.width,height:e.height,upload_date:e.upload_date||e.created_at,processing_status:e.processing_status||e.status,url:U(e.master_url||e.master?.url_signed||e.urls?.original||e.url)||F(e),webp_available:e.webp_available||!!e.webp_url,metadata:e.metadata||{},crop_data:e.crop_data||{},crop_params:e.crop_params||e.crop_data||{},parent_asset_id:e.parent_asset_id||t.data.asset_id,variant_type:e.variant_type||"crop"}))}:{result:[]}}catch(n){throw W(n)}var t}function Q(){const[e,n]=t({}),[l,a]=t({}),[i,o]=t({}),s=r(async t=>{if(t&&!l[t]){if(e[t])return e[t];a(e=>({...e,[t]:!0})),o(e=>({...e,[t]:null}));try{const e=await G(t),r=e?.result||[];return n(e=>({...e,[t]:r})),r}catch(r){return console.error("Error loading variants:",r),o(e=>({...e,[t]:r.message})),[]}finally{a(e=>({...e,[t]:!1}))}}},[e,l]),c=r(t=>e[t]||[],[e]),u=r(e=>l[e]||!1,[l]),d=r(e=>i[e]||null,[i]),b=r(e=>{n(t=>{const n={...t};return delete n[e],n}),a(t=>{const n={...t};return delete n[e],n}),o(t=>{const n={...t};return delete n[e],n})},[]),m=r(async e=>(b(e),await s(e)),[b,s]),h=r(async(e,t)=>{try{return await async function(e,t){try{return await R({endpoint:`/assets/${e}/variants/${t}`,method:"DELETE",basePath:V,useJWT:!0})}catch(n){throw W(n)}}(e,t),n(n=>{const r=n[e]||[];return{...n,[e]:r.filter(e=>e.id!==t)}}),{success:!0}}catch(r){return console.error("Error deleting variant:",r),{success:!1,error:r.message}}},[]);return{loadVariants:s,getVariants:c,isLoading:u,getError:d,clearVariants:b,refreshVariants:m,removeVariant:h}}function Y({src:e,alt:a="Imagen",title:i="",subtitle:c="",onClose:u,isOpen:d=!1}){const[b,m]=t(1),[h,p]=t({x:0,y:0}),[f,g]=t(!1),[y,v]=t(!1),[w,x]=t({x:0,y:0}),[k,C]=t(!1),[S,N]=t(!1),E=l(null),$=l(null);n(()=>{d&&(m(1),p({x:0,y:0}),C(!1),N(!1))},[d]);const _=r(()=>{m(e=>Math.min(e+.25,5)),p({x:0,y:0})},[]),z=r(()=>{m(e=>Math.max(e-.25,.25)),p({x:0,y:0})},[]),T=r(()=>{m(1),p({x:0,y:0})},[]),A=r(()=>{m(1),p({x:0,y:0})},[]),P=r(e=>{if("Escape"===e.key)return e.preventDefault(),void u?.();if((e.ctrlKey||e.metaKey)&&("+"===e.key||"="===e.key))return e.preventDefault(),void _();if((e.ctrlKey||e.metaKey)&&"-"===e.key)return e.preventDefault(),void z();if((e.ctrlKey||e.metaKey)&&"0"===e.key)return e.preventDefault(),void T();if(b>1){const t=50;switch(e.key){case"ArrowUp":e.preventDefault(),p(e=>({...e,y:e.y+t}));break;case"ArrowDown":e.preventDefault(),p(e=>({...e,y:e.y-t}));break;case"ArrowLeft":e.preventDefault(),p(e=>({...e,x:e.x+t}));break;case"ArrowRight":e.preventDefault(),p(e=>({...e,x:e.x-t}))}}},[u,_,z,T,b]),M=r(e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.deltaY<0?_():z())},[_,z]),I=r(e=>{b>1&&0===e.button&&(e.preventDefault(),g(!0),v(!1),x({x:e.clientX-h.x,y:e.clientY-h.y}))},[b,h]),L=r(e=>{f&&(v(!0),p({x:e.clientX-w.x,y:e.clientY-w.y}))},[f,w]),D=r(()=>{g(!1)},[]),O=r(e=>{e.stopPropagation(),1!==b||y||(m(2),p({x:0,y:0})),v(!1)},[b,y]),R=r(e=>{e.stopPropagation(),1===b?(m(2),p({x:0,y:0})):T()},[b,T]);if(n(()=>{if(!d)return;document.addEventListener("keydown",P),document.addEventListener("mouseup",D),document.addEventListener("mousemove",L);const e=e=>{!e.ctrlKey&&!e.metaKey||"+"!==e.key&&"-"!==e.key&&"="!==e.key&&"0"!==e.key||e.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",P),document.removeEventListener("mouseup",D),document.removeEventListener("mousemove",L),document.removeEventListener("keydown",e)}},[d,P,D,L]),n(()=>(document.body.style.overflow=d?"hidden":"",()=>{document.body.style.overflow=""}),[d]),!d)return null;const j=Math.round(100*b);/* @__PURE__ */
|
|
3
3
|
return s("div",{className:"lb:fixed lb:inset-0 lb:bg-black/95 lb:z-[10000] lb:flex lb:flex-col",role:"dialog","aria-modal":"true","aria-label":"Visor de imagen",children:[
|
|
4
4
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between lb:px-4 lb:py-3 lb:bg-black/50 lb:backdrop-blur-sm",children:[
|
|
5
5
|
/* @__PURE__ */s("div",{className:"lb:flex-1 lb:min-w-0",children:[i&&/* @__PURE__ */o("h2",{className:"lb:text-white lb:font-medium lb:text-sm lb:truncate",children:i.split(".")[0]}),c&&/* @__PURE__ */o("p",{className:"lb:text-gray-400 lb:text-xs lb:mt-0.5 lb:truncate",children:c})]}),
|
|
@@ -21,48 +21,48 @@ return s("div",{className:"lb:fixed lb:inset-0 lb:bg-black/95 lb:z-[10000] lb:fl
|
|
|
21
21
|
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"+"})," /"," ",
|
|
22
22
|
/* @__PURE__ */o("kbd",{className:"lb:px-1.5 lb:py-0.5 lb:bg-white/10 lb:rounded lb:text-white",children:"-"})," ","zoom •"," ","Doble click para ampliar/restablecer •"," ","Flechas para mover •"," ",
|
|
23
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
|
-
/* @__PURE__ */o("span",{className:"lb:sm:hidden",children:"Click para zoom • Doble click para restablecer • ESC para cerrar"})]})})]})}function
|
|
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
|
-
/* @__PURE__ */s("div",{ref:
|
|
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:[
|
|
27
27
|
/* @__PURE__ */s("div",{className:"lb:px-5 lb:py-4 lb:border-b lb:border-gray-200 lb:flex lb:justify-between lb:items-center lb:bg-gray-50",children:[
|
|
28
28
|
/* @__PURE__ */s("div",{className:"lb:flex-1 lb:min-w-0 lb:pr-4",children:[
|
|
29
29
|
/* @__PURE__ */o("h2",{id:"variants-modal-title",className:"lb:m-0 lb:text-lg lb:font-semibold lb:text-gray-900 lb:truncate",children:a?.filename}),
|
|
30
|
-
/* @__PURE__ */s("p",{id:"variants-modal-description",className:"lb:text-sm lb:text-gray-500 lb:mt-1",children:["Imagen original y ",
|
|
31
|
-
/* @__PURE__ */o("button",{ref:
|
|
32
|
-
/* @__PURE__ */o("div",{className:"lb:p-5 lb:overflow-y-auto lb:flex-1 lb:bg-gray-50/50",children:
|
|
30
|
+
/* @__PURE__ */s("p",{id:"variants-modal-description",className:"lb:text-sm lb:text-gray-500 lb:mt-1",children:["Imagen original y ",J.length," recorte",1!==J.length?"s":""," disponible",1!==J.length?"s":""]})]}),
|
|
31
|
+
/* @__PURE__ */o("button",{ref:H,className:"lb:w-10 lb:h-10 lb:flex lb:items-center lb:justify-center lb:rounded-lg lb:bg-gray-100 lb:hover:bg-red-200 lb:text-gray-500 lb:hover:text-red-1000 lb:transition-colors lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400",onClick:u,"aria-label":"Cerrar modal (ESC)",title:"Cerrar (ESC)",children:/* @__PURE__ */o("svg",{className:"lb:w-5 lb:h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),k&&/* @__PURE__ */o("div",{className:"lb:mx-2 lb:mt-2 lb:px-2 lb:py-1.5 lb:rounded lb:text-xs "+("success"===S?"lb:bg-green-50 lb:text-green-1000":"lb:bg-red-50 lb:text-red-1000"),role:"alert",children:k}),
|
|
32
|
+
/* @__PURE__ */o("div",{className:"lb:p-5 lb:overflow-y-auto lb:flex-1 lb:bg-gray-50/50",children:Z?/* @__PURE__ */s("div",{className:"lb:text-center lb:py-16 lb:text-gray-500",role:"status","aria-live":"polite",children:[
|
|
33
33
|
/* @__PURE__ */o("div",{className:"lb:w-12 lb:h-12 lb:border-4 lb:border-gray-200 lb:border-t-brand-blue-800 lb:rounded-full lb:animate-spin lb:mx-auto lb:mb-4"}),
|
|
34
|
-
/* @__PURE__ */o("p",{className:"lb:text-base",children:"Cargando variantes..."})]}):
|
|
34
|
+
/* @__PURE__ */o("p",{className:"lb:text-base",children:"Cargando variantes..."})]}):ee?/* @__PURE__ */s("div",{className:"lb:text-center lb:py-16 lb:text-red-1000",role:"alert",children:[
|
|
35
35
|
/* @__PURE__ */o("svg",{className:"lb:w-12 lb:h-12 lb:mx-auto lb:mb-4 lb:text-red-800",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})}),
|
|
36
|
-
/* @__PURE__ */s("p",{className:"lb:text-base lb:font-medium",children:["Error: ",
|
|
37
|
-
/* @__PURE__ */o("button",{onClick:()=>f(a.id),className:"lb:mt-4 lb:text-sm lb:px-5 lb:py-2.5 lb:rounded-lg lb:bg-brand-blue-800 lb:text-white lb:hover:bg-brand-blue-1000 lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400 lb:focus:ring-offset-2",children:"Reintentar"})]}):0===
|
|
36
|
+
/* @__PURE__ */s("p",{className:"lb:text-base lb:font-medium",children:["Error: ",ee]}),
|
|
37
|
+
/* @__PURE__ */o("button",{onClick:()=>f(a.id),className:"lb:mt-4 lb:text-sm lb:px-5 lb:py-2.5 lb:rounded-lg lb:bg-brand-blue-800 lb:text-white lb:hover:bg-brand-blue-1000 lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400 lb:focus:ring-offset-2",children:"Reintentar"})]}):0===J.length?/* @__PURE__ */s("div",{className:"lb:text-center lb:py-16 lb:text-gray-500",children:[
|
|
38
38
|
/* @__PURE__ */o("svg",{className:"lb:w-12 lb:h-12 lb:mx-auto lb:mb-4 lb:text-gray-300",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})}),
|
|
39
|
-
/* @__PURE__ */o("p",{className:"lb:text-base",children:"No hay recortes disponibles"})]}):/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-2 lb:lg:grid-cols-3 lb:gap-5",role:"list","aria-label":"Lista de imágenes",children:
|
|
39
|
+
/* @__PURE__ */o("p",{className:"lb:text-base",children:"No hay recortes disponibles"})]}):/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-2 lb:lg:grid-cols-3 lb:gap-5",role:"list","aria-label":"Lista de imágenes",children:ne.map((e,t)=>{const n=e.isOriginal,r=!n&&j.has(e.id);e.url;const l=n?B.original||A(e.url):B[e.id]||A(e.url),i=n?"Original":e.name||e.filename||`Recorte ${t}`,p=n?a.width:e.width,f=n?a.height:e.height,g=n?a.file_size:e.file_size||0;/* @__PURE__ */
|
|
40
40
|
return s("article",{role:"listitem","aria-label":`${i} - ${p}×${f} píxeles`,className:`lb:rounded-xl lb:overflow-hidden lb:transition-all lb:shadow-sm lb:hover:shadow-lg ${n?"lb:ring-2 lb:ring-brand-blue-800 lb:ring-offset-2 lb:bg-white":"lb:border lb:border-gray-200 lb:bg-white lb:hover:border-brand-blue-400"} lb:focus-within:ring-2 lb:focus-within:ring-brand-blue-400`,children:[
|
|
41
|
-
/* @__PURE__ */s("button",{type:"button",title:"Click para ampliar con zoom",className:"lb:relative lb:w-full lb:cursor-pointer lb:aspect-square lb:flex lb:items-center lb:justify-center lb:overflow-hidden lb:bg-gray-100 lb:focus:outline-none lb:group",onClick:r?void 0:()=>
|
|
41
|
+
/* @__PURE__ */s("button",{type:"button",title:"Click para ampliar con zoom",className:"lb:relative lb:w-full lb:cursor-pointer lb:aspect-square lb:flex lb:items-center lb:justify-center lb:overflow-hidden lb:bg-gray-100 lb:focus:outline-none lb:group",onClick:r?void 0:()=>n?(()=>{x?.announce(`Abriendo visor de imagen: ${a.filename}`);const e=B.original||A(a.url);$({src:e,title:a.filename||"Original",subtitle:`${a.width}×${a.height} · ${Math.round((a.file_size||0)/1024)}KB`})})():(e=>{x?.announce(`Abriendo visor de imagen: ${e.name}`);const t=B[e.id]||A(e.url);$({src:t,title:e.name||e.filename||"Recorte",subtitle:`${e.width}×${e.height} · ${Math.round((e.file_size||0)/1024)}KB`})})(e),"aria-label":`Ver ${i} en tamaño completo con zoom`,disabled:r,children:[r?/* @__PURE__ */s("div",{className:"lb:text-center lb:text-gray-400",children:[
|
|
42
42
|
/* @__PURE__ */o("svg",{className:"lb:w-10 lb:h-10 lb:mx-auto lb:mb-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),
|
|
43
43
|
/* @__PURE__ */o("span",{className:"lb:text-sm",children:"Error al cargar"})]}):/* @__PURE__ */s(c,{children:[
|
|
44
|
-
/* @__PURE__ */o("img",{src:l,alt:`${i} - ${p}×${f}px`,loading:n?"eager":"lazy",onError:n?void 0:()=>{return t=e.id,void
|
|
44
|
+
/* @__PURE__ */o("img",{src:l,alt:`${i} - ${p}×${f}px`,loading:n?"eager":"lazy",onError:n?void 0:()=>{return t=e.id,void F(e=>/* @__PURE__ */new Set([...e,t]));var t},className:"lb:w-full lb:h-full lb:object-contain lb:p-3 lb:transition-transform lb:group-hover:scale-105"}),
|
|
45
45
|
/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:bg-black/0 lb:group-hover:bg-black/10 lb:transition-colors lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */s("span",{className:"lb:opacity-0 lb:group-hover:opacity-100 lb:transition-opacity lb:bg-black/60 lb:text-white lb:px-3 lb:py-1.5 lb:rounded-full lb:text-xs lb:font-medium lb:flex lb:items-center lb:gap-1.5",children:[
|
|
46
46
|
/* @__PURE__ */o("svg",{className:"lb:w-4 lb:h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7"})}),"Ampliar"]})})]}),n&&/* @__PURE__ */o("span",{className:"lb:absolute lb:top-3 lb:left-3 lb:bg-brand-blue-800 lb:text-white lb:text-xs lb:font-bold lb:px-3 lb:py-1.5 lb:rounded-lg lb:shadow-lg",children:"ORIGINAL"})]}),
|
|
47
47
|
/* @__PURE__ */s("div",{className:"lb:px-4 lb:py-3 lb:border-t lb:border-gray-100 lb:bg-white",children:[
|
|
48
48
|
/* @__PURE__ */o("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-900 lb:truncate lb:mb-2",title:i,children:i}),
|
|
49
49
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between",children:[
|
|
50
50
|
/* @__PURE__ */s("span",{className:"lb:text-xs lb:text-gray-500 lb:font-medium",children:[p,"×",f," ·"," ",Math.round(g/1024),"KB"]}),
|
|
51
|
-
/* @__PURE__ */s("div",{className:"lb:flex lb:gap-2",role:"group","aria-label":`Acciones para ${i}`,children:[n&&
|
|
52
|
-
/* @__PURE__ */o(
|
|
51
|
+
/* @__PURE__ */s("div",{className:"lb:flex lb:gap-2",role:"group","aria-label":`Acciones para ${i}`,children:[n&&L&&/* @__PURE__ */o("button",{type:"button",className:"lb:w-8 lb:h-8 lb:rounded-lg lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:cursor-pointer lb:text-white lb:flex lb:items-center lb:justify-center lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400 lb:focus:ring-offset-1 lb:transition-colors lb:shadow-sm",onClick:e=>{e.stopPropagation(),m&&(x?.announce(`Abriendo herramienta de recorte para ${a.filename}`),m(a),u?.())},"aria-label":"Crear nuevo recorte",title:"Recortar",children:/* @__PURE__ */o("span",{className:"icon icon-scissors-white icon--sm"})}),O&&/* @__PURE__ */o("button",{type:"button",className:"lb:w-8 lb:h-8 lb:rounded-lg lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:cursor-pointer lb:text-white lb:flex lb:items-center lb:justify-center lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400 lb:focus:ring-offset-1 lb:transition-colors lb:shadow-sm",onClick:t=>{t.stopPropagation();(async(e,t,n)=>{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)}z(e),x?.announce(`URL de ${n} copiada al portapapeles`),setTimeout(()=>z(null),2e3)}catch(r){console.error("Error al copiar URL:",r),x?.announceError(`Error al copiar URL de ${n}. Inténtalo de nuevo.`)}})(n?"original":e.id,n?a.url||a.path:e.url,i)},"aria-label":_===(n?"original":e.id)?"¡Copiado!":`Copiar URL de ${i}`,title:_===(n?"original":e.id)?"¡Copiado!":"Copiar URL",children:/* @__PURE__ */o("span",{className:`icon ${_===(n?"original":e.id)?"icon-copied-white":"icon-copy-white"} icon--sm`})}),D&&/* @__PURE__ */o("button",{type:"button",className:"lb:w-8 lb:h-8 lb:rounded-lg lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:cursor-pointer lb:text-white lb:flex lb:items-center lb:justify-center lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400 lb:focus:ring-offset-1 lb:transition-colors lb:shadow-sm",onClick:t=>{t.stopPropagation(),n?(async()=>{const{downloadImage:e}=await Promise.resolve().then(()=>rn);await e(a.url||a.path,a.filename||"limbo-image",{originalFormat:a.format,accessibilityManager:x})})():(async e=>{const{downloadImage:t}=await Promise.resolve().then(()=>rn);await t(e.url,e.name||"limbo-variant",{originalFormat:e.format||e.output_format,accessibilityManager:x})})(e)},"aria-label":`Descargar ${i}`,title:"Descargar",children:/* @__PURE__ */o("span",{className:"icon icon-download-white icon--sm"})}),R&&(!n||b)&&/* @__PURE__ */o("button",{type:"button",className:"lb:w-8 lb:h-8 lb:rounded-lg lb:bg-red-1000 lb:hover:bg-red-800 lb:cursor-pointer lb:text-white lb:flex lb:items-center lb:justify-center lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-red-800 lb:focus:ring-offset-1 lb:transition-colors lb:shadow-sm",onClick:t=>{t.stopPropagation(),n?(async()=>{if(!b)return;window.confirm(`¿Estás seguro de que deseas eliminar "${a.filename}"? Esta acción también eliminará todos sus recortes.`)&&(x?.announce(`Eliminando imagen ${a.filename}`),await b(a.id),u?.())})():(async e=>{if(window.confirm(`¿Estás seguro de que deseas eliminar el recorte "${e.name||e.filename}"?`)){x?.announce(`Eliminando recorte ${e.name||e.filename}`);const t=await w(a.id,e.id);t.success?(q(t=>/* @__PURE__ */new Set([...t,e.id])),C("Recorte eliminado correctamente"),N("success"),x?.announce("Recorte eliminado correctamente"),h?.(),setTimeout(()=>{C(null),N(null)},3e3)):(C(`Error al eliminar recorte: ${t.error}`),N("error"),x?.announceError(`Error al eliminar recorte: ${t.error}`),setTimeout(()=>{C(null),N(null)},5e3))}})(e)},"aria-label":`Eliminar ${i}`,title:"Eliminar",children:/* @__PURE__ */o("span",{className:"icon icon-close-small-white icon--sm"})}),I&&/* @__PURE__ */o("button",{type:"button",className:"lb:w-8 lb:h-8 lb:cursor-pointer lb:rounded-lg lb:bg-brand-blue-1000 lb:text-white lb:hover:bg-brand-blue-800 lb:flex lb:items-center lb:justify-center lb:focus:outline-none lb:focus:ring-2 lb:focus:ring-brand-blue-400 lb:focus:ring-offset-1 lb:transition-colors lb:shadow-sm",onClick:t=>{t.stopPropagation(),n?(d?.(a),u?.()):(e=>{const t={id:e.id,filename:`${a.filename}_${e.name}`,url:e.url,width:e.width,height:e.height,mime_type:`image/${e.format}`,file_size:e.file_size,upload_date:e.created_at,processing_status:"completed",is_variant:!0,parent_asset_id:a.id,variant_info:e};x?.announce(`Recorte seleccionado: ${e.name}`),d?.(t),u?.()})(e)},"aria-label":`Seleccionar ${i}`,title:"Seleccionar",children:/* @__PURE__ */o("span",{className:"icon icon-tick-white icon--sm"})})]})]})]})]},n?"original":e.id)})})})]}),
|
|
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
|
-
/* @__PURE__ */s("div",{className:`limbo-image-card lb:flex lb:flex-col lb:items-center lb:cursor-pointer lb:relative lb:transition ${
|
|
55
|
-
/* @__PURE__ */s("div",{className:"limbo-image-actions "+(
|
|
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:[
|
|
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:
|
|
59
|
-
/* @__PURE__ */s("span",{className:"lb:text-xs lb:mt-1 lb:truncate lb:w-full lb:text-center limbo-image-card-name "+(
|
|
60
|
-
/* @__PURE__ */o(
|
|
61
|
-
/* @__PURE__ */o(
|
|
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})]})]}),
|
|
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
|
+
/* @__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
|
|
65
|
+
/* @__PURE__ */o("span",{className:"lb:sr-only",children:"Cargando imágen..."})]})}function ee({onSelect:e,onCrop:t,onDelete:r,deletingId:a,images:i,loading:u,error:d,filters:b={name:"",dateFrom:"",dateTo:"",uploadedBy:""},onFiltersChange:m,filterConfig:h={showNameFilter:!0,showUploadedByFilter:!1,showDateFilter:!0},loadingConfig:p={showPlaceholders:!0,placeholderCount:10,showSpinner:!0},allowedActions:f={select:!0,download:!0,copy:!0,delete:!0,crop:!0,variants:!0}}){const g=!1!==h.showNameFilter,y=!0===h.showUploadedByFilter,v=!1!==h.showDateFilter,w=l(null),x=window.limboCore?.accessibilityManager;n(()=>{if(w.current&&window.limboCore?.keyboardManager){const e="gallery-grid";w.current.setAttribute("data-grid-id",e),window.limboCore.keyboardManager.setupGridNavigation(w.current,{itemSelector:".limbo-image-card",gridId:e,columns:"auto"})}},[i]),n(()=>{if(!u&&i.length>0){const e=i.slice(0,12).map(e=>e.url||e.path).filter(Boolean);e.length>0&&M(e,4)}},[u,i]),n(()=>{u?x?.announceLoading(!0,"galería"):u||d?d&&x?.announceError(d,"galería"):(x?.announceLoading(!1,"galería"),i.length>0&&x?.announce(`Se encontraron ${i.length} imágenes en la galería`))},[u,d,i.length,x]);const k=e=>{const{name:t,value:n}=e.target;m&&m({...b,[t]:n})};/* @__PURE__ */
|
|
66
66
|
return s("div",{className:"lb:w-full lb:py-4",children:[
|
|
67
67
|
/* @__PURE__ */o("div",{className:"lb:p-2 lb:px-4 lb:mb-2",children:/* @__PURE__ */s("form",{className:"limbo-form-grid lb:flex lb:flex-col lb:sm:flex-row lb:flex-wrap lb:gap-4 lb:items-start lb:sm:items-end lb:justify-between",onSubmit:e=>e.preventDefault(),"aria-label":"Filtrar imágenes",children:[g&&/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:w-full lb:sm:min-w-45 lb:sm:flex-1",children:[
|
|
68
68
|
/* @__PURE__ */o("label",{htmlFor:"name",className:"limbo-form-label lb:mb-1",children:"Nombre"}),
|
|
@@ -78,7 +78,7 @@ return s("div",{className:"lb:w-full lb:py-4",children:[
|
|
|
78
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:[
|
|
79
79
|
/* @__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
80
|
/* @__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..."})]})}),p.showPlaceholders&&/* @__PURE__ */o("div",{ref:w,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:p.placeholderCount}).map((e,t)=>/* @__PURE__ */o("div",{role:"gridcell","aria-posinset":t+1,"aria-setsize":p.placeholderCount,children:/* @__PURE__ */o(
|
|
81
|
+
/* @__PURE__ */o("span",{className:"lb:text-sm lb:text-gray-600 lb:font-medium",children:"Cargando imágenes..."})]})}),p.showPlaceholders&&/* @__PURE__ */o("div",{ref:w,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:p.placeholderCount}).map((e,t)=>/* @__PURE__ */o("div",{role:"gridcell","aria-posinset":t+1,"aria-setsize":p.placeholderCount,children:/* @__PURE__ */o(Z,{})},`skeleton-${t}`))})]}):/* @__PURE__ */o("div",d?{className:"alert alert-danger lb:text-center",children:d}:{ref:w,className:"limbo-gallery lb:px-3","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",children:i.length>0?i.map((n,l)=>/* @__PURE__ */o("div",{role:"gridcell","aria-posinset":l+1,"aria-setsize":i.length,children:/* @__PURE__ */o(J,{image:n,onSelect:e,onCrop:t,onDelete:f.delete&&r?()=>r(n.id):null,thumbnailSize:32,isDeleting:a===n.id,allowedActions:f})},n.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
82
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-4 lb:px-1",children:[
|
|
83
83
|
/* @__PURE__ */o("h3",{className:"lb:text-sm lb:font-medium lb:text-gray-700",children:"Vista previa de imagen"}),
|
|
84
84
|
/* @__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"})})]}),
|
|
@@ -94,27 +94,28 @@ return s("div",{className:"lb:w-full lb:py-4",children:[
|
|
|
94
94
|
/* @__PURE__ */o("span",{children:"•"}),
|
|
95
95
|
/* @__PURE__ */o("span",{children:m.type.split("/")[1]?.toUpperCase()||"IMAGE"})]})})})]}),
|
|
96
96
|
/* @__PURE__ */s("div",{className:"lb:flex lb:flex-row lb:md:flex-col lb:gap-2 lb:justify-items-stretch lb:justify-center lb:md:justify-start lb:items-stretch lb:md:min-w-35",children:[
|
|
97
|
+
/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:gap-1",children:[
|
|
97
98
|
/* @__PURE__ */s("label",{htmlFor:"uploadImageId",className:"lb:flex lb:items-center lb:w-fit",children:[
|
|
98
99
|
/* @__PURE__ */o("span",{className:"lb:me-1 lb:text-sm",children:"Nombre:"}),
|
|
99
|
-
/* @__PURE__ */o("input",{id:"uploadImageId",onChange:e=>(e=>{const t=e.target.value,n=m.name,r=n.lastIndexOf("."),l=-1!==r?n.substring(r):".webp";h(e=>({...e,name:t+l}))})(e),className:"limbo-input-image-name lb:w-fit lb:px-1 lb:text-sm lb:font-medium lb:text-gray-800 lb:border lb:
|
|
100
|
+
/* @__PURE__ */o("input",{id:"uploadImageId",onChange:e=>(e=>{const t=e.target.value.trim();w(e.target.value),t.length>0&&y(!1);const n=m.name,r=n.lastIndexOf("."),l=-1!==r?n.substring(r):".webp";h(e=>({...e,name:t?t+l:l}))})(e),value:v,className:"limbo-input-image-name lb:w-fit lb:px-1 lb:text-sm lb:font-medium lb:text-gray-800 lb:border lb:rounded lb:truncate lb:focus:outline lb:focus:outline-neutral-gray-100 lb:focus:transform-none lb:focus:shadow-none lb:focus:opacity-100 "+(g?"lb:border-red-1000 lb:bg-red-50":"lb:border-gray-300"),placeholder:"Escribe un nombre...",title:"El nombre es obligatorio",required:!0})]}),g&&/* @__PURE__ */o("span",{className:"lb:text-xs lb:text-red-1000 lb:ml-1",children:"El nombre es obligatorio"})]}),c&&l&&/* @__PURE__ */s("button",{type:"button",onClick:l,disabled:u,className:"lb:flex-1 lb:md:flex-none lb:flex lb:items-center lb:justify-center lb:gap-2 lb:px-4 lb:py-2.5 lb:bg-white lb:border lb:border-gray-300 lb:text-gray-700 lb:rounded-lg lb:hover:bg-gray-50 lb:cursor-pointer lb:hover:border-gray-400 lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed lb:text-sm lb:font-medium","aria-label":"Intentarlo de nuevo",title:"Generar de nuevo con el mismo prompt",children:[
|
|
100
101
|
/* @__PURE__ */o("span",{className:"icon icon-refresh icon--sm"}),
|
|
101
102
|
/* @__PURE__ */o("span",{className:"lb:hidden lb:sm:inline",children:"Reintentar"}),
|
|
102
103
|
/* @__PURE__ */o("span",{className:"lb:sm:hidden",children:"Retry"})]}),
|
|
103
104
|
/* @__PURE__ */s("button",{type:"button",onClick:()=>{if(!d||u)return;const e=document.createElement("a");e.href=d,e.download=m.name,document.body.appendChild(e),e.click(),document.body.removeChild(e),a&&a()},disabled:u,className:"lb:flex-1 lb:cursor-pointer lb:md:flex-none lb:flex lb:items-center lb:justify-center lb:gap-2 lb:px-4 lb:py-2.5 lb:bg-white lb:border lb:border-gray-300 lb:text-gray-700 lb:rounded-lg lb:hover:bg-gray-50 lb:hover:border-gray-400 lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed lb:text-sm lb:font-medium","aria-label":"Descargar imagen",children:[
|
|
104
105
|
/* @__PURE__ */o("span",{className:"icon icon-download icon--sm"}),
|
|
105
106
|
/* @__PURE__ */o("span",{children:"Descargar"})]}),
|
|
106
|
-
/* @__PURE__ */s("button",{type:"button",onClick:()=>i&&i(m.name),disabled:u,className:"lb:flex-1 lb:md:flex-none lb:flex lb:items-center lb:justify-center lb:gap-2 lb:px-4 lb:py-2.5 lb:bg-brand-blue-800 lb:border lb:border-brand-blue-800 lb:text-white lb:rounded-lg lb:hover:bg-brand-blue-1000 lb:cursor-pointer lb:hover:border-brand-blue-1000 lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed lb:text-sm lb:font-medium lb:shadow-sm","aria-label":"Seleccionar imagen para recortar",children:[
|
|
107
|
+
/* @__PURE__ */s("button",{type:"button",onClick:()=>{v.trim()?(y(!1),i&&i(m.name)):y(!0)},disabled:u,className:"lb:flex-1 lb:md:flex-none lb:flex lb:items-center lb:justify-center lb:gap-2 lb:px-4 lb:py-2.5 lb:bg-brand-blue-800 lb:border lb:border-brand-blue-800 lb:text-white lb:rounded-lg lb:hover:bg-brand-blue-1000 lb:cursor-pointer lb:hover:border-brand-blue-1000 lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed lb:text-sm lb:font-medium lb:shadow-sm","aria-label":"Seleccionar imagen para recortar",children:[
|
|
107
108
|
/* @__PURE__ */o("span",{className:"icon icon-tick-white icon--sm"}),
|
|
108
109
|
/* @__PURE__ */o("span",{children:"Seleccionar"})]})]})]}),
|
|
109
|
-
/* @__PURE__ */o(
|
|
110
|
+
/* @__PURE__ */o(Y,{isOpen:p,src:d,alt:m.name,title:m.name,subtitle:`${m.size} • ${m.type.split("/")[1]?.toUpperCase()||"IMAGE"}`,onClose:()=>f(!1)})]}):null}function ne({file:e,setFile:n,previewUrl:r,setPreviewUrl:l,fileInputRef:a,onSelect:i,disabled:c}){const[u,d]=t(!1),b=e=>{if(n(e),e){const t=URL.createObjectURL(e);l(t)}else l(null)};/* @__PURE__ */
|
|
110
111
|
return s("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-6","aria-label":"Subir imagen desde dispositivo",children:[
|
|
111
112
|
/* @__PURE__ */s("label",{htmlFor:"file-input",className:"lb:w-fit lb:md:w-full lb:flex lb:flex-col lb:items-center lb:justify-center lb:border-2 lb:border-dashed lb:rounded-xl lb:p-8 lb:cursor-pointer lb:transition "+(u?"lb:border-brand-blue-1000 lb:bg-brand-blue-100 lb:scale-[1.02]":"lb:border-brand-blue-200 lb:hover:border-brand-blue-1000 lb:hover:to-bright-blue-200 lb:hover:from-brand-blue-50 lb:focus-within:border-brand-blue-800 lb:from-bright-blue-50 lb:to-brand-blue-50 lb:bg-linear-to-br"),tabIndex:0,style:{outline:"none"},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDragEnter:e=>{e.preventDefault(),e.stopPropagation(),c||d(!0)},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),e.currentTarget.contains(e.relatedTarget)||d(!1)},onDrop:e=>{if(e.preventDefault(),e.stopPropagation(),d(!1),c)return;const t=e.dataTransfer?.files;if(t&&t.length>0){const e=t[0];e.type.startsWith("image/")&&b(e)}},children:[
|
|
112
113
|
/* @__PURE__ */o("span",{className:"icon icon-upload icon--lg lb:mb-2","aria-hidden":"true"}),
|
|
113
114
|
/* @__PURE__ */o("span",{className:"lb:font-medium lb:text-brand-blue-1000 lb:mb-1",children:"Haz clic o arrastra una imagen aquí"}),
|
|
114
115
|
/* @__PURE__ */o("span",{className:"lb:text-sm lb:text-neutral-700",children:"Formatos permitidos: JPG, PNG, GIF, SVG, WebP"}),
|
|
115
|
-
/* @__PURE__ */o("input",{id:"file-input",ref:a,type:"file",accept:"image/jpeg,image/png,image/svg,image/webp,image/gif",onChange:e=>{const t=e.target.files[0];b(t)},disabled:c,className:"lb:sr-only","aria-label":"Seleccionar imagen"})]}),e&&/* @__PURE__ */o(
|
|
116
|
+
/* @__PURE__ */o("input",{id:"file-input",ref:a,type:"file",accept:"image/jpeg,image/png,image/svg,image/webp,image/gif",onChange:e=>{const t=e.target.files[0];b(t)},disabled:c,className:"lb:sr-only","aria-label":"Seleccionar imagen"})]}),e&&/* @__PURE__ */o(te,{image:e,onDiscard:()=>{n(null),l(null),a.current&&(a.current.value="")},onDownload:()=>{},onSelect:t=>{if(e&&!c&&i)if(t&&t!==e.name){const n=new File([e],t,{type:e.type});i(n)}else i(e)},showRetry:!1,disabled:c})]})}const re="/api";const le=/* @__PURE__ */new Map;function ae(e=!1){const[r,l]=t([]),[a,i]=t(!0),[o,s]=t(null);n(()=>{const t=`ai-services-${e}`,n=le.get(t),r=Date.now();if(n&&r-n.timestamp<864e5)return l(n.data),void i(!1);let a=!0;return(async()=>{try{const n=await function(e=!1){return R({endpoint:"/ai/services",prod:e,basePath:re})}(e);if(!a)return;const i=n?.data||n?.result||[],o=Array.isArray(i)?i.map(e=>({label:e.name||e.label,slug:e.slug,type:e.type,description:e.description,image:e.image,costInfo:e.cost_info||null})):Object.entries(i).map(([e,t])=>({label:e,slug:t,type:"image_generation",description:null,image:null,costInfo:null}));l(o),le.set(t,{data:o,timestamp:r})}catch(n){a&&s(n.message)}finally{a&&i(!1)}})(),()=>{a=!1}},[e]);return{services:r,loading:a,error:o,invalidateCache:()=>{le.delete(`ai-services-${e}`)}}}const ie=/* @__PURE__ */new Map;function oe(e=!1){const[n,r]=t(null),[l,a]=t(!1),[i,o]=t(null);return{params:n,loading:l,error:i,fetchParams:async t=>{a(!0),o(null);const n=`${e}-${t}`,l=Date.now(),i=ie.get(n);if(i&&l-i.timestamp<864e5)return r(i.data),a(!1),i.data;try{const a=await function({services:e=null,form:t=!1}={},n=!1){const r={};return e&&(r.services=e),!1!==t&&(r.form=t),R({endpoint:"/ai/params"+(Object.keys(r).length?"?"+new URLSearchParams(r).toString():""),method:"GET",prod:n,basePath:"/api/atenea"})}({services:t,form:!1},e),i=a?.result?.data||a?.data||a?.result||a;return r(i),ie.set(n,{data:i,timestamp:l}),i}catch(s){return o(s.message),r(null),null}finally{a(!1)}},reset:()=>{o(null),r(null)}}}function se({show:e=!1,message:t="Cargando...",className:n=""}){return e?/* @__PURE__ */o("div",{className:`lb:absolute lb:inset-0 lb:min-h-50 lb:bg-white/80 lb:backdrop-blur-sm lb:z-50 lb:flex lb:flex-col lb:items-center lb:justify-center ${n}`,"aria-live":"polite","aria-busy":"true",role:"status",children:/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-4",children:[
|
|
116
117
|
/* @__PURE__ */o("span",{className:"icon icon-spinner lb:p-4 lb:animate-spin"}),
|
|
117
|
-
/* @__PURE__ */o("p",{className:"lb:text-brand-blue-1000 lb:font-medium lb:text-lg",children:t})]})}):null}function
|
|
118
|
+
/* @__PURE__ */o("p",{className:"lb:text-brand-blue-1000 lb:font-medium lb:text-lg",children:t})]})}):null}function ce({prod:n,disabled:r,onSelect:l}){const a=ae(n),i=oe(n),[u,d]=t(""),[b,m]=t(""),[h,p]=t({}),[f,g]=t(!1),[y,v]=t(null),[w,x]=t(null),[k,C]=t(null),[S,N]=t(!0),[E,$]=t(!1);e.useEffect(()=>{if(!a.loading&&1===a.services.length){const e=a.services[0];m(e.slug),N(!1),i.fetchParams(e.slug,!0)}},[a.loading,a.services]),e.useEffect(()=>{if(!b)return;const e=i.params?.[b]?.parameters;if(e){const t=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default??""]));t.service=b,p(t)}},[b,i.params]);const _=e=>{const{name:t,value:n}=e.target;p(e=>({...e,[t]:n}))},z=async(e,t=!1)=>{e.preventDefault(),g(!0),v(null),x(null);try{t?h.prompt=u:d(h.prompt||"");const e=await function(e,t=!1){return R({endpoint:"/ai/generate",method:"POST",body:e,prod:t,basePath:re})}(h,n);let l=null;if(e?.data?.images&&Array.isArray(e.data.images)&&e.data.images.length>0?l=e.data.images[0]:e?.result?.images&&Array.isArray(e.result.images)&&e.result.images.length>0?l=e.result.images[0]:Array.isArray(e)&&e.length>0?l=e[0]:"string"==typeof e&&(l=e),!l)throw new Error("No se pudo extraer la imagen de la respuesta");if(l.startsWith("http"))try{const e=`${window.limboCore?.config?.getGlobal()?.prod?"https://limbo.lefebvre.es":"https://led-dev-limbo-dev.eu.els.local"}/api/atenea/proxy?url=${encodeURIComponent(l)}`,t=await fetch(e,{credentials:"include",headers:{Authorization:`Bearer ${window.limboCore?.apiClient?.token||""}`}});if(!t.ok)throw new Error(`Failed to download image: ${t.status}`);const n=await t.blob(),r=new File([n],"ai-image.webp",{type:n.type||"image/webp"});C(r)}catch(r){throw new Error(`Error downloading image via proxy: ${r.message}`)}else{const e=l.replace(/^data:image\/\w+;base64,/,""),t=atob(e),n=new Array(t.length);for(let l=0;l<t.length;l++)n[l]=t.charCodeAt(l);const r=new Uint8Array(n),a=new File([r],"ai-image.webp",{type:"image/webp"});C(a)}x(e?.data?.images||e?.result?.images||null)}catch(l){v(l.message||"Error al generar la imagen")}finally{g(!1)}};return a.loading?/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-center lb:py-8",children:[
|
|
118
119
|
/* @__PURE__ */o("span",{className:"limbo-loader lb:mr-2"})," Cargando servicios IA..."]}):a.services.length?/* @__PURE__ */o("div",{className:"lb:flex lb:flex-col lb:mx-4 lb:pb-2",children:/* @__PURE__ */s(c,S?{children:[
|
|
119
120
|
/* @__PURE__ */o("h3",{id:"aiSelectDescription",className:"lb:text-2xl lb:font-semibold lb:text-brand-blue-1000 lb:mb-3",children:"Selecciona el modelo IA"}),a.error&&/* @__PURE__ */o("div",{className:"alert alert-danger",children:a.error}),
|
|
120
121
|
/* @__PURE__ */o("div",{className:"lb:flex lb:flex-row lb:flex-wrap lb:justify-around lb:items-stretch lb:justify-items-stretch lb:content-stretch lb:gap-3 lb:w-full lb:max-w-7xl",children:a.services.map(e=>/* @__PURE__ */s("button",{type:"button",onClick:()=>{m(e.slug),N(!1),p({}),x(null),v(null),C(null),i.fetchParams(e.slug,!0)},disabled:a.loading||r,className:`lb:group lb:relative lb:p-4 lb:rounded-lg lb:border-2 lb:transition-all lb:duration-200 lb:overflow-hidden lb:flex lb:flex-col lb:items-center lb:justify-center lb:min-h-30 lb:grow lb:basis-sm lb:min-w-70 lb:border-gray-200 lb:hover:border-brand-blue-800 lb:hover:shadow-md lb:hover:text-black lb:lg:w-min ${a.loading||r?"lb:opacity-50 lb:cursor-not-allowed":"lb:cursor-pointer"} `,style:{position:"relative"},children:[e.image&&/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:bg-cover lb:bg-center lb:transition-opacity lb:duration-200 lb:group-hover:opacity-40",style:{backgroundImage:`url(${e.image})`,opacity:.2}}),
|
|
@@ -135,28 +136,28 @@ return s("div",{className:"lb:h-fit lb:w-full",children:[a.services.length>1&&/*
|
|
|
135
136
|
/* @__PURE__ */s("button",{type:"button",onClick:()=>$(!E),className:"lb:flex lb:items-center lb:gap-2 lb:text-sm lb:font-medium lb:text-brand-blue-800 lb:hover:text-brand-blue-1000 lb:mb-3 lb:transition-colors",children:[
|
|
136
137
|
/* @__PURE__ */o("svg",{className:"lb:w-4 lb:h-4 lb:transition-transform "+(E?"lb:rotate-90":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),"Opciones avanzadas",!E&&/* @__PURE__ */s("span",{className:"lb:text-xs lb:text-gray-500",children:["(",l.length," opciones)"]})]}),E&&/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-2 lb:lg:grid-cols-3 lb:xl:grid-cols-4 lb:gap-3 lb:animate-fadeIn",children:l.map(([e,t])=>c(e,t))})]}),
|
|
137
138
|
/* @__PURE__ */o("button",{type:"submit",disabled:f||r,title:f?"Generando imagen...":k?"Generar otra imagen":"Generar imagen",className:"limbo-btn lb:w-full lb:mt-2 "+(f?"lb:cursor-not-allowed limbo-btn-disabled":"limbo-btn-primary"),style:{minHeight:44},children:f?"Generando imagen...":k?"Generar otra imagen":"Generar imagen"})]}),
|
|
138
|
-
/* @__PURE__ */o(
|
|
139
|
+
/* @__PURE__ */o(se,{show:f,message:"Generando imagen con IA..."})]})]})})(),y&&/* @__PURE__ */o("div",{className:"alert alert-danger lb:mt-4",children:y}),k&&/* @__PURE__ */o("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */o(te,{image:k,onDiscard:()=>{C(null),x(null),v(null)},onRetry:e=>z(e,!0),onDownload:()=>{},onSelect:e=>{if(l){const t=k||w;if(e&&t&&e!==t.name){const n=new File([t],e,{type:t.type});l(n)}else l(t)}},showRetry:!0,disabled:f||r})})]})}):/* @__PURE__ */o("div",{className:"alert alert-warning",children:"No hay servicios IA disponibles."})}const ue="/api";const de=/* @__PURE__ */new Map;function be(e=!1){const[r,l]=t([]),[a,i]=t(!0),[o,s]=t(null);n(()=>{const t=`stock-services-${e}`,n=de.get(t),r=Date.now();if(n&&r-n.timestamp<864e5)return l(n.data),void i(!1);let a=!0;return(async()=>{try{const n=await function(e=!1){return R({endpoint:"/stock/services",prod:e,basePath:ue})}(e);if(!a)return;if(204===n?.httpCode||null===n?.data)return l([]),s("No hay servicios de stock disponibles en este momento"),void de.set(t,{data:[],timestamp:r});const i=n?.data||n?.result||[],o=Array.isArray(i)?i.map(e=>({label:e.name||e.label,slug:e.slug,type:e.type,description:e.description,image:e.image})):Object.entries(i).map(([e,t])=>({label:e,slug:t,type:"stock_image",description:null,image:null}));l(o),de.set(t,{data:o,timestamp:r})}catch(n){a&&s(n.message)}finally{a&&i(!1)}})(),()=>{a=!1}},[e]);return{services:r,loading:a,error:o,invalidateCache:()=>{de.delete(`stock-services-${e}`)}}}function me({prod:n,disabled:r,onSelect:l}){const a=e.useRef(null),i=be(n),u=(e,t)=>{try{const n=sessionStorage.getItem(`limbo_stock_${e}`);return n?JSON.parse(n):t}catch{return t}},[d,b]=t(()=>u("selectedService","")),[m,h]=t(()=>u("dynamicForm",{})),[p,f]=t(()=>u("stockImages",[])),[g,y]=t(()=>u("currentPage",1)),[v,w]=t(()=>u("paginationInfo",null)),[x,k]=t(null),C=oe(n),[S,N]=t(!1),[E,$]=t(null),[_,z]=t(null),[T,A]=t(!0),[P,M]=t(!1),[I,L]=t(null);e.useEffect(()=>{sessionStorage.setItem("limbo_stock_selectedService",JSON.stringify(d))},[d]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_dynamicForm",JSON.stringify(m))},[m]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_stockImages",JSON.stringify(p))},[p]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_currentPage",JSON.stringify(g))},[g]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_paginationInfo",JSON.stringify(v))},[v]),e.useEffect(()=>{if(!i.loading&&1===i.services.length){const e=i.services[0];b(e.slug),A(!1),C.fetchParams(e.slug,!0)}},[i.loading,i.services]),e.useEffect(()=>{if(!d)return;const e=C.params?.[d]?.parameters;if(e){const t=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default??""]));t.service=d,h(t)}},[d,C.params]);const D=e=>{const{name:t,value:n}=e.target;h(e=>({...e,[t]:n}))},O=async(e=1)=>{N(!0),$(null),1===e&&f([]);try{let t;if(1===e){const n=C.params?.[d]?.parameters,r={...m};Object.entries(n||{}).forEach(([e,t])=>{e in r||(r[e]=t.default??"")}),r.per_page=parseInt(r.per_page),r.service=d,r.page=e,t=r,a.current={...r}}else t={...a.current,page:e};const r=await function(e,t=!1){return R({endpoint:"/stock/search",method:"POST",body:e,prod:t,basePath:ue})}(t,n),l=r?.data?.images||[];let i=r?.data?.pagination||null,o=null;i&&(o={total:i.total_count??i.total??l.length,per_page:i.per_page??(Array.isArray(l)?l.length:0),current_page:i.page??i.current_page??e}),f(j(Array.isArray(l)?l:[])),w(o),y(o?.current_page||e)}catch(t){$(t.message||"Error al buscar imágenes")}finally{N(!1)}},j=e=>{const t=/* @__PURE__ */new Set,n=[];return(e||[]).forEach((e,r)=>{const l=e.url||e.preview_url||e.full||e.preview;l&&!t.has(l)&&(t.add(l),n.push({...e,preview:e.preview_url||e.preview||e.url||e.full,full:e.url||e.full||e.preview_url,id:e.id||r,title:e.title||e.filename||`Imagen ${r+1}`,source:e.service||d,sourceTitle:i.services.find(e=>e.slug===d)?.label||d}))}),n},F=async e=>{e.preventDefault();const t=m.query||m.search||m.term||"";t.trim().length<5?$("La búsqueda debe tener al menos 5 caracteres"):(k(t),await O(1))},U=e=>{e<1||O(e)},q=async e=>{z(e.id),$(null);try{const t={service:d,image_id:e.id},r=await function(e,t=!1){return R({endpoint:"/stock/download",method:"POST",body:e,prod:t,basePath:ue})}(t,n),l=r?.result?.url||r?.result?.download_url||r?.data?.images?.url||r?.data?.url||r?.images?.url||r?.url;if(!l)throw console.error("Download response structure:",r),new Error("No se pudo obtener la URL de descarga");{const t=await fetch(l),n=await t.blob(),a=r?.result?.filename||r?.data?.images?.filename||r?.data?.filename||`stock-${e.id}.jpg`,i=new File([n],a,{type:n.type||"image/jpeg"});L(i)}}catch(t){$(t.message||"No se pudo recuperar la imagen seleccionada")}finally{z(null)}};return i.loading?/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-center lb:py-8",children:[
|
|
139
140
|
/* @__PURE__ */o("span",{className:"limbo-loader lb:mr-2"})," Cargando servicios de Stock..."]}):i.services.length?/* @__PURE__ */o("div",{className:"lb:flex lb:flex-col lb:mx-4 lb:pb-2",children:/* @__PURE__ */s(c,T?{children:[
|
|
140
141
|
/* @__PURE__ */o("h3",{className:"lb:text-2xl lb:font-semibold lb:text-brand-blue-1000 lb:mb-3",children:"Selecciona el servicio de Stock"}),i.error&&/* @__PURE__ */o("div",{className:"alert alert-danger",children:i.error}),
|
|
141
|
-
/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:gap-3",children:i.services.map(e=>/* @__PURE__ */s("button",{type:"button",onClick:()=>{b(e.slug),
|
|
142
|
+
/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:gap-3",children:i.services.map(e=>/* @__PURE__ */s("button",{type:"button",onClick:()=>{b(e.slug),A(!1),h({}),f([]),y(1),w(null),$(null),C.fetchParams(e.slug,!0)},disabled:i.loading||r,className:`lb:group lb:relative lb:p-4 lb:rounded-lg lb:border-2 lb:transition-all lb:duration-200 lb:overflow-hidden lb:flex lb:flex-col lb:items-center lb:justify-center lb:min-h-30 lb:border-gray-200 lb:hover:border-brand-blue-300 lb:hover:shadow-md lb:lg:w-min ${i.loading||r?"lb:opacity-50 lb:cursor-not-allowed":"lb:cursor-pointer"} `,style:{position:"relative"},children:[e.image&&/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:bg-cover lb:bg-center lb:transition-opacity lb:duration-200 lb:group-hover:opacity-40",style:{backgroundImage:`url(${e.image})`,opacity:.2}}),
|
|
142
143
|
/* @__PURE__ */s("div",{className:"lb:relative lb:z-10 lb:flex lb:flex-col lb:items-center lb:justify-center lb:gap-2 lb:text-center",children:[
|
|
143
144
|
/* @__PURE__ */o("span",{className:"lb:text-base lb:font-semibold lb:text-gray-800",children:e.label}),e.description&&/* @__PURE__ */o("span",{className:"lb:text-xs lb:text-gray-600 limbo-line-clamp-2",children:e.description})]})]},e.slug))})]}:{children:[
|
|
144
145
|
/* @__PURE__ */o("h3",{className:"lb:text-2xl lb:font-semibold lb:text-brand-blue-1000",children:i.services.find(e=>e.slug===d)?.label||"Búsqueda Stock"}),C.loading&&/* @__PURE__ */o("div",{children:"Cargando parámetros..."}),C.error&&/* @__PURE__ */o("div",{className:"alert alert-danger",children:C.error}),d&&(()=>{const e=C.params?.[d]?.parameters;if(!e)return null;const t=Object.entries(e).filter(([,e])=>!e.hidden),n=t.filter(([e])=>e.toLowerCase().includes("query")||e.toLowerCase().includes("search")||e.toLowerCase().includes("term")),l=t.filter(([e])=>!e.toLowerCase().includes("query")&&!e.toLowerCase().includes("search")&&!e.toLowerCase().includes("term")),a=(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("query")||e.toLowerCase().includes("search")||e.toLowerCase().includes("term")?"Buscar imágenes...":`Introduce ${(t.label||e).toLowerCase()}`);const l=e.toLowerCase().includes("query")||e.toLowerCase().includes("search")||e.toLowerCase().includes("term");/* @__PURE__ */
|
|
145
146
|
return s("div",{className:"lb:flex lb:flex-col lb:gap-1",children:[
|
|
146
147
|
/* @__PURE__ */s("label",{htmlFor:`stock-${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&&t.multiple?/* @__PURE__ */o("div",{className:"lb:flex lb:flex-wrap lb:gap-2 lb:min-h-[50px] lb:px-2 lb:justify-between lb:border-2 lb:border-gray-transparent-500 lb:rounded-lg",children:t.options.map(t=>/* @__PURE__ */s("label",{className:"lb:flex lb:items-center lb:gap-1",children:[
|
|
147
148
|
/* @__PURE__ */o("input",{type:"checkbox",name:`stock-${e}`,value:t,checked:Array.isArray(m[e])&&m[e].includes(t),onChange:()=>((e,t)=>{h(n=>{const r=Array.isArray(n[e])?n[e]:[];return r.includes(t)?{...n,[e]:r.filter(e=>e!==t)}:{...n,[e]:[...r,t]}})})(e,t),disabled:r}),
|
|
148
|
-
/* @__PURE__ */o("span",{className:"lb:text-xs",children:t})]},t))}):t.options?/* @__PURE__ */o("select",{id:`stock-${e}`,name:e,value:m[e]??"",onChange:
|
|
149
|
-
return s("div",{children:[i.services.length>1&&/* @__PURE__ */s("button",{type:"button",onClick:()=>{
|
|
149
|
+
/* @__PURE__ */o("span",{className:"lb:text-xs",children:t})]},t))}):t.options?/* @__PURE__ */o("select",{id:`stock-${e}`,name:e,value:m[e]??"",onChange:D,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:`stock-${e}`,name:e,value:m[e]??"",onChange:D,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:`stock-${e}`,type:"integer"===t.type?"number":"text",name:e,value:m[e]??"",onChange:D,className:"limbo-input",disabled:r,required:t.required,min:t.minValue,max:t.maxValue,placeholder:n,title:t.label||e})]},e)};/* @__PURE__ */
|
|
150
|
+
return s("div",{children:[i.services.length>1&&/* @__PURE__ */s("button",{type:"button",onClick:()=>{A(!0),b(""),h({}),f([]),y(1),w(null),$(null)},className:"lb:flex lb:cursor-pointer lb:items-center lb:gap-2 lb:text-brand-blue-800 lb:hover:text-brand-blue-1000 lb:mb-4 lb:font-medium",children:[
|
|
150
151
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-left"}),"Volver al menú de servicios"]}),
|
|
151
152
|
/* @__PURE__ */s("div",{className:"lb:relative",children:[
|
|
152
153
|
/* @__PURE__ */s("form",{onSubmit:F,"data-type":"stock",className:"lb:flex lb:flex-col lb:gap-3 lb:mt-4 lb:border-t-1 lb:pt-4 lb:border-brand-blue-200","aria-label":"Formulario búsqueda de imágenes de Stock",children:[
|
|
153
154
|
/* @__PURE__ */o("div",{className:"lb:flex lb:flex-col lb:gap-3",children:n.map(([e,t])=>a(e,t))}),l.length>0&&/* @__PURE__ */s("div",{className:"lb:border-t lb:border-gray-200 lb:pt-3",children:[
|
|
154
|
-
/* @__PURE__ */s("button",{type:"button",onClick:()=>
|
|
155
|
-
/* @__PURE__ */o("svg",{className:"lb:w-4 lb:h-4 lb:transition-transform "+(
|
|
155
|
+
/* @__PURE__ */s("button",{type:"button",onClick:()=>M(!P),className:"lb:flex lb:items-center lb:gap-2 lb:text-sm lb:font-medium lb:text-brand-blue-800 lb:hover:text-brand-blue-1000 lb:mb-3 lb:transition-colors",children:[
|
|
156
|
+
/* @__PURE__ */o("svg",{className:"lb:w-4 lb:h-4 lb:transition-transform "+(P?"lb:rotate-90":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),"Opciones avanzadas",!P&&/* @__PURE__ */s("span",{className:"lb:text-xs lb:text-gray-500",children:["(",l.length," opciones)"]})]}),P&&/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-1 lb:md:grid-cols-2 lb:gap-3 lb:animate-fadeIn",children:l.map(([e,t])=>a(e,t))})]}),
|
|
156
157
|
/* @__PURE__ */o("button",{type:"submit",disabled:S||r,className:"limbo-btn lb:w-full lb:mt-2 "+(S?"lb:cursor-not-allowed limbo-btn-disabled":"limbo-btn-primary"),style:{minHeight:44},children:S?"Buscando...":"Buscar imágenes"})]}),
|
|
157
|
-
/* @__PURE__ */o(
|
|
158
|
+
/* @__PURE__ */o(se,{show:S&&!p.length,message:"Buscando imágenes..."})]})]})})(),E&&/* @__PURE__ */o("div",{className:"alert alert-danger lb:mt-4",children:E}),I&&/* @__PURE__ */o("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */o(te,{image:I,onDiscard:()=>{L(null),$(null)},onDownload:()=>{},onSelect:e=>{if(l)if(e&&I&&e!==I.name){const t=new File([I],e,{type:I.type});l(t)}else l(I)},showRetry:!1,disabled:r})}),!I&&p.length>0&&/* @__PURE__ */s(c,{children:[
|
|
158
159
|
/* @__PURE__ */s("div",{className:"lb:mt-6 lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:lg:grid-cols-4 lb:gap-1 lb:relative","aria-live":"polite",children:[
|
|
159
|
-
/* @__PURE__ */o(
|
|
160
|
+
/* @__PURE__ */o(se,{show:S,message:"Cargando imágenes..."}),p.map((e,t)=>/* @__PURE__ */o("div",{className:"lb:group lb:border lb:border-brand-blue-200 lb:rounded-sm lb:overflow-hidden lb:bg-white lb:shadow-sm lb:hover:shadow-md lb:transition-all lb:duration-200 lb:cursor-pointer",title:"Seleccionar imagen",onClick:()=>!_&&!S&&!r&&q(e),children:/* @__PURE__ */s("div",{className:"lb:relative lb:aspect-video lb:bg-neutral-100",children:[
|
|
160
161
|
/* @__PURE__ */o("img",{src:e.preview||e.thumbnail||e.url,alt:e.title||`Resultado ${t+1}`,className:"lb:object-cover lb:w-full lb:h-full",loading:"lazy"}),_===e.id?/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:bg-white/90 lb:flex lb:flex-col lb:items-center lb:justify-center lb:gap-2",children:[
|
|
161
162
|
/* @__PURE__ */s("div",{className:"lb:relative lb:w-10 lb:h-10",children:[
|
|
162
163
|
/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:border-4 lb:border-brand-blue-200 lb:rounded-full"}),
|
|
@@ -172,8 +173,8 @@ return s("div",{children:[i.services.length>1&&/* @__PURE__ */s("button",{type:"
|
|
|
172
173
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-right-white icon--sm"})]})]})]}),!S&&0===p.length&&d&&x&&/* @__PURE__ */s("div",{className:"lb:mt-6 lb:text-center lb:text-neutral-600 lb:py-8 lb:bg-neutral-50 lb:rounded-lg",children:[
|
|
173
174
|
/* @__PURE__ */o("span",{className:"icon icon-search icon--lg lb:mb-2"}),
|
|
174
175
|
/* @__PURE__ */s("p",{children:['No se encontraron imágenes para "',m.query,'"']}),
|
|
175
|
-
/* @__PURE__ */o("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos de búsqueda"})]})]})}):/* @__PURE__ */o("div",{className:"alert alert-warning",children:"No hay servicios de Stock disponibles."})}const
|
|
176
|
-
/* @__PURE__ */o("img",{src:u,alt:r,className:`${l} ${"loading"===i?"lb:opacity-0":"lb:opacity-100"} lb:transition-opacity lb:duration-300`,loading:"lazy",onLoad:()=>{c("loaded")},onError:()=>{n&&!b?(m(!0),d(n),c("loading")):(c("error"),a&&a())}})]})};function
|
|
176
|
+
/* @__PURE__ */o("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos de búsqueda"})]})]})}):/* @__PURE__ */o("div",{className:"alert alert-warning",children:"No hay servicios de Stock disponibles."})}const he="/api";const pe=/* @__PURE__ */new Map;function fe(e=!1){const[r,l]=t([]),[a,i]=t(!0),[o,s]=t(null);n(()=>{const t=`portal-sources-${e}`,n=pe.get(t),r=Date.now();if(n&&r-n.timestamp<864e5)return l(n.data),void i(!1);let a=!0;return(async()=>{try{const n=await function(e=!1,t=!0){const n=new URLSearchParams;return n.set("active",t?"true":"false"),R({endpoint:`/external/portals?${n.toString()}`,method:"GET",prod:e,basePath:he})}(e,!0);if(!a)return;let i=n?.data?.sources?.portals||n?.data?.portals||n?.data||[];Array.isArray(i)||(i=[]);const o=i.map(e=>({id:e.slug||e.id,numericId:e.id,name:e.name,title:e.name,slug:e.slug,url:e.website_url,image:e.logo_url,isActive:e.is_active}));l(o),pe.set(t,{data:o,timestamp:r})}catch(n){a&&s(n.message)}finally{a&&i(!1)}})(),()=>{a=!1}},[e]);return{sources:r,loading:a,error:o,invalidateCache:()=>{pe.delete(`portal-sources-${e}`)}}}const ge=({src:t,fallbackSrc:n,alt:r,className:l,onError:a})=>{const[i,c]=e.useState("loading"),[u,d]=e.useState(t),[b,m]=e.useState(!1);return"error"===i?null:/* @__PURE__ */s("div",{className:"lb:relative lb:w-full lb:h-full",children:["loading"===i&&/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:bg-linear-to-r lb:from-gray-200 lb:via-gray-100 lb:to-gray-200 lb:animate-pulse lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-2",children:/* @__PURE__ */o("span",{className:"icon icon-spinner lb:w-8 lb:h-8 lb:text-gray-400 lb:animate-spin"})})}),
|
|
177
|
+
/* @__PURE__ */o("img",{src:u,alt:r,className:`${l} ${"loading"===i?"lb:opacity-0":"lb:opacity-100"} lb:transition-opacity lb:duration-300`,loading:"lazy",onLoad:()=>{c("loaded")},onError:()=>{n&&!b?(m(!0),d(n),c("loading")):(c("error"),a&&a())}})]})};function ye({prod:n,disabled:r,onSelect:a}){const i=e.useRef(null),u=fe(n),d=(e,t)=>{try{const n=sessionStorage.getItem(`limbo_portals_${e}`);return n?JSON.parse(n):t}catch{return t}},[b,m]=t(()=>d("selectedPortals",[])),[h,p]=t(()=>d("searchName","")),[f,g]=t(()=>d("limit",20)),[y,v]=t(()=>d("currentPage",1)),[w,x]=t(!1),[k,C]=t(null),[S,N]=t(()=>d("images",[])),[E,$]=t(()=>d("portalResults",{})),[_,z]=t(()=>d("paginationInfo",null)),[T,A]=t(null),[P,M]=t(null),I=l({}),[L,D]=t(/* @__PURE__ */new Set);e.useEffect(()=>{sessionStorage.setItem("limbo_portals_selectedPortals",JSON.stringify(b))},[b]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_searchName",JSON.stringify(h))},[h]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_limit",JSON.stringify(f))},[f]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_currentPage",JSON.stringify(y))},[y]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_images",JSON.stringify(S))},[S]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_portalResults",JSON.stringify(E))},[E]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_paginationInfo",JSON.stringify(_))},[_]);const j=async(e=1)=>{if(0===b.length)return void C("Selecciona al menos un portal");const t=((e,t,n,r)=>`${e.sort().join(",")}_${t}_${n}_${r}`)(b,h.trim(),f,e),r=I.current[t];if(r)return N(r.images),$(r.portalResults),z(r.paginationInfo),v(e),void C(null);x(!0),C(null),1===e&&(N([]),$({}),z(null));try{let r;if(1===e){r={sources:b,totalPortals:u.sources.length,page:e,withImage:!0};const t=h.trim();t&&(r.name=t),f&&50!==f&&(r.limit=f),i.current={...r}}else r={...i.current,page:e};const l=await function(e,t=!1){const n=new URLSearchParams,r=e.sources||[];e.portal?n.set("portal",e.portal):r.length>0&&n.set("portals",r.join(","));const l=e.q||e.name||e.search;if(l&&n.set("q",l),!0===e.withImage&&n.set("withImage","1"),e.limit&&n.set("limit",String(e.limit)),void 0!==e.offset)n.set("offset",String(e.offset));else if(e.page&&e.limit){const t=(e.page-1)*e.limit;n.set("offset",String(t))}return R({endpoint:`/external/articles?${n.toString()}`,method:"GET",prod:t,basePath:he})}(r,n),a=l?.data||{},o=a?.articles||a||[],s=a?.total||o.length,c=a?.limit||f,d=a?.offset||0,m={total:s,pages:Math.ceil(s/c),current_page:Math.floor(d/c)+1,per_page:c},p=[],g={};o.forEach(e=>{const t=e.portal?.id||"unknown",r=u.sources.find(e=>e.id===t||e.slug===t),l=r?.title||r?.name||e.portal?.name||t;if(g[t]||(g[t]={title:l,status:200,response:"OK",count:0}),e.image_url){const r=e.image_url;g[t].count++;const a=`${O({prod:n})}/api/atenea/proxy?url=${encodeURIComponent(r)}`;p.push({id:e.id,title:e.title,excerpt:e.excerpt,url:r,full:r,preview:r,thumbnail:r,proxiedUrl:a,filename:`${e.title}.jpg`,source:t,sourceTitle:l,author:e.author,categories:e.categories,published_at:e.published_at,article_url:e.url})}}),I.current[t]={images:p,portalResults:g,paginationInfo:m},N(p),$(g),z(m),v(e),D(/* @__PURE__ */new Set),0!==p.length||l?.result?.success||C(l?.result?.message||"No se encontraron imágenes")}catch(l){C(l.message||"Error al buscar imágenes en portales")}finally{x(!1)}},F=e=>{e<1||j(e)};return u.loading?/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-center lb:py-8",children:[
|
|
177
178
|
/* @__PURE__ */o("span",{className:"limbo-loader lb:mr-2"})," Cargando portales disponibles..."]}):u.sources.length?/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:gap-2",children:[
|
|
178
179
|
/* @__PURE__ */o("h3",{className:"lb:text-lg lb:font-semibold lb:text-brand-blue-1000",children:"Buscar en Portales Externos"}),
|
|
179
180
|
/* @__PURE__ */s("form",{onSubmit:e=>{e.preventDefault(),j(1)},className:"lb:flex lb:flex-col lb:gap-4 lb:border-t lb:pt-4 lb:border-brand-blue-200",children:[
|
|
@@ -197,15 +198,15 @@ return s("button",{type:"button",onClick:()=>{return t=e.id,void m(e=>e.includes
|
|
|
197
198
|
/* @__PURE__ */o("button",{type:"submit",disabled:w||r||0===b.length,className:"limbo-btn lb:w-full "+(w||0===b.length?"lb:cursor-not-allowed limbo-btn-disabled":"limbo-btn-primary"),style:{minHeight:44},children:w?"Buscando...":"Buscar imágenes"})]}),u.error&&/* @__PURE__ */o("div",{className:"alert alert-danger",children:u.error}),k&&/* @__PURE__ */o("div",{className:"alert alert-danger",children:k}),Object.keys(E).length>0&&/* @__PURE__ */s("div",{className:"lb:bg-neutral-50 lb:rounded-lg lb:p-3",children:[
|
|
198
199
|
/* @__PURE__ */o("h4",{className:"lb:text-sm lb:font-semibold lb:mb-2",children:"Resultados por portal:"}),
|
|
199
200
|
/* @__PURE__ */o("div",{className:"lb:grid lb:grid-cols-1 lb:md:grid-cols-2 lb:gap-2 lb:text-sm",children:Object.entries(E).map(([e,t])=>/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between lb:p-2 lb:rounded "+(200===t.status?"lb:bg-green-50":"lb:bg-red-50"),children:[t.image?/* @__PURE__ */o("img",{src:t.image,alt:t.title,className:"lb:w-10 lb:h-10 lb:object-cover lb:rounded"}):/* @__PURE__ */o("span",{className:"lb:font-medium",children:t.title}),
|
|
200
|
-
/* @__PURE__ */o("span",{className:200===t.status?"text-green-1000":"text-red-1000",children:200===t.status?`${t.count} imágenes`:t.response})]},e))})]}),
|
|
201
|
+
/* @__PURE__ */o("span",{className:200===t.status?"text-green-1000":"text-red-1000",children:200===t.status?`${t.count} imágenes`:t.response})]},e))})]}),P&&/* @__PURE__ */o("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */o(te,{image:P,onDiscard:()=>{M(null),C(null)},onDownload:()=>{},onSelect:e=>{if(a)if(e&&P&&e!==P.name){const t=new File([P],e,{type:P.type});a(t)}else a(P)},showRetry:!1,disabled:r})}),!P&&(S.length>0||w)&&/* @__PURE__ */s(c,{children:[
|
|
201
202
|
/* @__PURE__ */s("div",{className:"lb:mt-6 lb:relative lb:min-h-50","aria-live":"polite",children:[w&&/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:bg-white/80 lb:z-10 lb:flex lb:items-center lb:justify-center lb:rounded-lg",children:/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-2",children:[
|
|
202
203
|
/* @__PURE__ */o("span",{className:"limbo-loader"}),
|
|
203
204
|
/* @__PURE__ */o("span",{className:"lb:text-sm lb:text-brand-blue-800",children:"Buscando imágenes..."})]})}),
|
|
204
205
|
/* @__PURE__ */s("div",{className:"lb:relative lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:lg:grid-cols-4 lb:gap-2",children:[
|
|
205
|
-
/* @__PURE__ */o(
|
|
206
|
+
/* @__PURE__ */o(se,{show:w,message:"Cargando imágenes..."}),S.map((e,t)=>{const l=`${e.source}-${e.id||t}`,a=e.preview||e.thumbnail||e.url||e.full;return L.has(l)?null:/* @__PURE__ */s("div",{className:"lb:group lb:border lb:border-brand-blue-200 lb:rounded-lg lb:overflow-hidden lb:bg-white lb:shadow-sm lb:hover:shadow-md lb:transition-all lb:duration-200 lb:cursor-pointer",onClick:()=>!T&&!w&&!r&&(async e=>{A(e.url||e.full),C(null);try{const t=e.full||e.url||e.preview;if(!t)throw new Error("No se encontró URL de la imagen");const r=`${O({prod:n})}/api/atenea/proxy?url=${encodeURIComponent(t)}`,l=await fetch(r);if(!l.ok)throw new Error(`Error al descargar: ${l.status}`);const a=await l.blob(),i=e.filename||e.title||`portal-${e.id||Date.now()}.jpg`,o=new File([a],i,{type:a.type||"image/jpeg"});M(o)}catch(t){C(t.message||"No se pudo recuperar la imagen del portal")}finally{A(null)}})(e),children:[
|
|
206
207
|
/* @__PURE__ */s("div",{className:"lb:relative lb:aspect-video lb:bg-neutral-100",children:[
|
|
207
|
-
/* @__PURE__ */o(
|
|
208
|
-
/* @__PURE__ */o("span",{className:"lb:absolute lb:top-1 lb:left-1 lb:bg-black/60 lb:text-white lb:text-xs lb:px-2 lb:py-1 lb:rounded",children:e.sourceTitle}),
|
|
208
|
+
/* @__PURE__ */o(ge,{src:a,fallbackSrc:e.proxiedUrl,alt:e.title||e.filename||`Imagen ${t+1}`,className:"lb:object-cover lb:w-full lb:h-full",onError:()=>{D(e=>{const t=new Set(e);return t.add(l),t})}}),
|
|
209
|
+
/* @__PURE__ */o("span",{className:"lb:absolute lb:top-1 lb:left-1 lb:bg-black/60 lb:text-white lb:text-xs lb:px-2 lb:py-1 lb:rounded",children:e.sourceTitle}),T===(e.url||e.full)?/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:bg-white/90 lb:flex lb:flex-col lb:items-center lb:justify-center lb:gap-2",children:[
|
|
209
210
|
/* @__PURE__ */s("div",{className:"lb:relative lb:w-10 lb:h-10",children:[
|
|
210
211
|
/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:border-4 lb:border-brand-blue-200 lb:rounded-full"}),
|
|
211
212
|
/* @__PURE__ */o("div",{className:"lb:absolute lb:inset-0 lb:border-4 lb:border-brand-blue-800 lb:rounded-full lb:border-t-transparent lb:animate-spin"})]}),
|
|
@@ -220,15 +221,15 @@ return s("button",{type:"button",onClick:()=>{return t=e.id,void m(e=>e.includes
|
|
|
220
221
|
/* @__PURE__ */s("button",{onClick:()=>F(y+1),disabled:w||_&&y>=_.pages,className:"limbo-btn limbo-btn-secondary px-4 py-2 disabled:opacity-25"+(w||_&&y>=_.pages?" pointer-events-none cursor-default":" limbo-btn-primary"),children:["Siguiente"," ",
|
|
221
222
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-right-white icon--sm"})]})]})]}),!w&&0===S.length&&Object.keys(E).length>0&&/* @__PURE__ */s("div",{className:"lb:mt-6 lb:text-center lb:text-neutral-600 lb:py-8 lb:bg-neutral-50 lb:rounded-lg",children:[
|
|
222
223
|
/* @__PURE__ */o("span",{className:"icon icon-search icon--lg lb:mb-2"}),
|
|
223
|
-
/* @__PURE__ */o("p",{children:"No se encontraron imágenes en los portales seleccionados"}),h&&/* @__PURE__ */o("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos o sin filtro de nombre"})]})]}):/* @__PURE__ */o("div",{className:"alert alert-warning",children:"No hay portales externos disponibles."})}const
|
|
224
|
+
/* @__PURE__ */o("p",{children:"No se encontraron imágenes en los portales seleccionados"}),h&&/* @__PURE__ */o("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos o sin filtro de nombre"})]})]}):/* @__PURE__ */o("div",{className:"alert alert-warning",children:"No hay portales externos disponibles."})}const ve=[{id:"upload",label:"Subir archivo"},{id:"ai",label:"Generar con IA"},{id:"stock",label:"Buscar en Stock"},{id:"portals",label:"Otros portales"}];function we({onSelect:e,disabled:n=!1,apiKey:r,prod:a=!1}){const{isMobile:i,isTouch:c}=N(),[u,d]=t("upload"),[b,m]=t(null),[h,p]=t(null),f=l(),g=["limbo-tabs","lb:flex","lb:gap-4","lb:border-b-2","lb:border-brand-blue-200","lb:mb-4",i&&"lb:overflow-x-auto lb:scrollbar-none"].filter(Boolean).join(" "),y=e=>{const t=["limbo-tab","lb:relative","lb:px-4","lb:py-2","lb:font-medium","lb:text-brand-blue-1000","lb:bg-transparent","lb:border-0","lb:border-b-2","lb:cursor-pointer","lb:transition-all","lb:duration-200","lb:hover:text-pink-1000","lb:focus:outline-none","lb:focus-visible:ring-2","lb:focus-visible:ring-brand-blue-400","lb:focus-visible:ring-offset-2","lb:text-nowrap"];return e?t.push("lb:border-b-brand-blue-1000","lb:font-semibold","limbo-active"):t.push("lb:border-b-transparent"),i&&t.push("lb:min-w-[100px]","lb:min-h-[44px]","lb:text-sm","lb:shrink-0"),c&&t.push("lb:touch-manipulation"),t.join(" ")};/* @__PURE__ */
|
|
224
225
|
return s("div",{className:"limbo-upload-form lb:py-4 lb:min-w-fit lb:max-w-7xl lb:mx-auto",children:[
|
|
225
|
-
/* @__PURE__ */o("div",{className:g,role:"tablist","aria-label":"Opciones de subida de imagen",style:i?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:
|
|
226
|
-
return o("button",{type:"button","data-upload-tab-id":e.id,className:y(t),"aria-current":t?"page":void 0,"aria-selected":t,role:"tab",tabIndex:t?0:-1,onClick:()=>d(e.id),onKeyDown:t=>((e,t)=>{const n=
|
|
227
|
-
/* @__PURE__ */s("div",{className:"limbo-tab-content lb:px-2 lb:py-2",role:"tabpanel",id:`upload-tabpanel-${u}`,"aria-labelledby":`upload-tab-${u}`,children:["upload"===u&&/* @__PURE__ */o(Q,{file:b,setFile:m,previewUrl:h,setPreviewUrl:p,fileInputRef:f,onSelect:e,disabled:n}),"ai"===u&&/* @__PURE__ */o(ne,{apiKey:r,prod:a,disabled:n,onSelect:e}),"stock"===u&&/* @__PURE__ */o(ie,{apiKey:r,prod:a,disabled:n,onSelect:e}),"portals"===u&&/* @__PURE__ */o(de,{apiKey:r,prod:a,disabled:n,onSelect:e})]})]})}const he="undefined"!=typeof window&&void 0!==window.document,pe=he?window:{},fe=!!he&&"ontouchstart"in pe.document.documentElement,ge=!!he&&"PointerEvent"in pe,ye="cropper",ve=`${ye}-canvas`,we=`${ye}-crosshair`,xe=`${ye}-grid`,ke=`${ye}-handle`,Ce=`${ye}-image`,Se=`${ye}-selection`,Ne=`${ye}-shade`,Ee=`${ye}-viewer`,$e="select",_e="move",ze="scale",Te="rotate",Ae="transform",Pe="none",Me="n-resize",Ie="e-resize",Le="s-resize",De="w-resize",Oe="ne-resize",Re="nw-resize",je="se-resize",Fe="sw-resize",Ue=ge?"pointerdown":fe?"touchstart":"mousedown",qe=ge?"pointermove":fe?"touchmove":"mousemove",Be=ge?"pointerup pointercancel":fe?"touchend touchcancel":"mouseup",We="error",Ve="keydown",He="load",Ke="wheel",Ge="action",Qe="actionend",Ye="actionstart",Xe="change",Je="transform";const Ze=Number.isNaN||pe.isNaN;function et(e){return"number"==typeof e&&!Ze(e)}function tt(e){return et(e)&&e>0&&e<1/0}function nt(e){return"object"==typeof e&&null!==e}const{hasOwnProperty:rt}=Object.prototype;function lt(e){if(!nt(e))return!1;try{const{constructor:t}=e,{prototype:n}=t;return t&&n&&rt.call(n,"isPrototypeOf")}catch(t){return!1}}function at(e){return"function"==typeof e}function it(e){return"object"==typeof e&&null!==e&&1===e.nodeType}const ot=/([a-z\d])([A-Z])/g;function st(e){return String(e).replace(ot,"$1-$2").toLowerCase()}const ct=/-[A-z\d]/g;function ut(e){return e.replace(ct,e=>e.slice(1).toUpperCase())}const dt=/\s\s*/;function bt(e,t,n,r){t.trim().split(dt).forEach(t=>{e.removeEventListener(t,n,r)})}function mt(e,t,n,r){t.trim().split(dt).forEach(t=>{e.addEventListener(t,n,r)})}function ht(e,t,n,r){mt(e,t,n,Object.assign(Object.assign({},r),{once:!0}))}const pt={bubbles:!0,cancelable:!0,composed:!0};const ft=Promise.resolve();function gt(e){const{documentElement:t}=e.ownerDocument,n=e.getBoundingClientRect();return{left:n.left+(pe.pageXOffset-t.clientLeft),top:n.top+(pe.pageYOffset-t.clientTop)}}const yt=/deg|g?rad|turn$/i;function vt(e){const t=parseFloat(e)||0;if(0!==t){const[n="rad"]=String(e).match(yt)||[];switch(n.toLowerCase()){case"deg":return t/360*(2*Math.PI);case"grad":return t/400*(2*Math.PI);case"turn":return t*(2*Math.PI)}}return t}const wt="contain";function xt(e,t=wt){const{aspectRatio:n}=e;let{width:r,height:l}=e;const a=tt(r),i=tt(l);if(a&&i){const e=l*n;t===wt&&e>r||"cover"===t&&e<r?l=r/n:r=l*n}else a?l=r/n:i&&(r=l*n);return{width:r,height:l}}function kt(e,...t){if(0===t.length)return e;const[n,r,l,a,i,o]=e,[s,c,u,d,b,m]=t[0];return kt(e=[n*s+l*c,r*s+a*c,n*u+l*d,r*u+a*d,n*b+l*m+i,r*b+a*m+o],...t.slice(1))}const Ct=/left|top|width|height/i,St="open",Nt=/* @__PURE__ */new WeakMap,Et=/* @__PURE__ */new WeakMap,$t=/* @__PURE__ */new Map,_t=pe.document&&Array.isArray(pe.document.adoptedStyleSheets)&&"replaceSync"in pe.CSSStyleSheet.prototype;class zt extends HTMLElement{get $sharedStyle(){return(this.themeColor?`:host{--theme-color: ${this.themeColor};}`:"")+":host([hidden]){display:none!important}"}constructor(){var e,t;super(),this.shadowRootMode=St,this.slottable=!0;const n=null===(t=null===(e=Object.getPrototypeOf(this))||void 0===e?void 0:e.constructor)||void 0===t?void 0:t.$name;n&&$t.set(n,this.tagName.toLowerCase())}static get observedAttributes(){return["shadow-root-mode","slottable","theme-color"]}attributeChangedCallback(e,t,n){if(Object.is(n,t))return;const r=ut(e);let l=n;switch(typeof this[r]){case"boolean":l=null!==n&&"false"!==n;break;case"number":l=Number(n)}switch(this[r]=l,e){case"theme-color":{const e=Et.get(this),t=this.$sharedStyle;e&&t&&(_t?e.replaceSync(t):e.textContent=t);break}}}$propertyChangedCallback(e,t,n){if(!Object.is(n,t))switch(e=st(e),typeof n){case"boolean":!0===n?this.hasAttribute(e)||this.setAttribute(e,""):this.removeAttribute(e);break;case"number":n=Ze(n)?"":String(n);default:n?this.getAttribute(e)!==n&&this.setAttribute(e,n):this.removeAttribute(e)}}connectedCallback(){Object.getPrototypeOf(this).constructor.observedAttributes.forEach(e=>{const t=ut(e);let n=this[t];(function(e){return void 0===e})(n)||this.$propertyChangedCallback(t,void 0,n),Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n,set(e){const r=n;n=e,this.$propertyChangedCallback(t,r,e)}})});const e=this.shadowRoot||this.attachShadow({mode:this.shadowRootMode||St});if(Nt.set(this,e),Et.set(this,this.$addStyles(this.$sharedStyle)),this.$style&&this.$addStyles(this.$style),this.$template){const t=document.createElement("template");t.innerHTML=this.$template,e.appendChild(t.content)}if(this.slottable){const t=document.createElement("slot");e.appendChild(t)}}disconnectedCallback(){Et.has(this)&&Et.delete(this),Nt.has(this)&&Nt.delete(this)}$getTagNameOf(e){var t;return null!==(t=$t.get(e))&&void 0!==t?t:e}$setStyles(e){return Object.keys(e).forEach(t=>{let n=e[t];et(n)&&(n=0!==n&&Ct.test(t)?`${n}px`:String(n)),this.style[t]=n}),this}$getShadowRoot(){return this.shadowRoot||Nt.get(this)}$addStyles(e){let t;const n=this.$getShadowRoot();return _t?(t=new CSSStyleSheet,t.replaceSync(e),n.adoptedStyleSheets=n.adoptedStyleSheets.concat(t)):(t=document.createElement("style"),t.textContent=e,n.appendChild(t)),t}$emit(e,t,n){return function(e,t,n,r){return e.dispatchEvent(new CustomEvent(t,Object.assign(Object.assign(Object.assign({},pt),{detail:n}),r)))}(this,e,t,n)}$nextTick(e){return function(e,t){return t?ft.then(e?t.bind(e):t):ft}(this,e)}static $define(e,t){nt(e)&&(t=e,e=""),e||(e=this.$name||this.name),e=st(e),he&&pe.customElements&&!pe.customElements.get(e)&&customElements.define(e,this,t)}}zt.$version="2.1.0";class Tt extends zt{constructor(){super(...arguments),this.$onPointerDown=null,this.$onPointerMove=null,this.$onPointerUp=null,this.$onWheel=null,this.$wheeling=!1,this.$pointers=/* @__PURE__ */new Map,this.$style=':host{display:block;min-height:100px;min-width:200px;overflow:hidden;position:relative;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([background]){background-color:#fff;background-image:repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc),repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc);background-image:repeating-conic-gradient(#ccc 0 25%,#fff 0 50%);background-position:0 0,.5rem .5rem;background-size:1rem 1rem}:host([disabled]){pointer-events:none}:host([disabled]):after{bottom:0;content:"";cursor:not-allowed;display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}',this.$action=Pe,this.background=!1,this.disabled=!1,this.scaleStep=.1,this.themeColor="#39f"}static get observedAttributes(){return super.observedAttributes.concat(["background","disabled","scale-step"])}connectedCallback(){super.connectedCallback(),this.disabled||this.$bind()}disconnectedCallback(){this.disabled||this.$unbind(),super.disconnectedCallback()}$propertyChangedCallback(e,t,n){if(!Object.is(n,t)&&(super.$propertyChangedCallback(e,t,n),"disabled"===e))n?this.$unbind():this.$bind()}$bind(){this.$onPointerDown||(this.$onPointerDown=this.$handlePointerDown.bind(this),mt(this,Ue,this.$onPointerDown)),this.$onPointerMove||(this.$onPointerMove=this.$handlePointerMove.bind(this),mt(this.ownerDocument,qe,this.$onPointerMove)),this.$onPointerUp||(this.$onPointerUp=this.$handlePointerUp.bind(this),mt(this.ownerDocument,Be,this.$onPointerUp)),this.$onWheel||(this.$onWheel=this.$handleWheel.bind(this),mt(this,Ke,this.$onWheel,{passive:!1,capture:!0}))}$unbind(){this.$onPointerDown&&(bt(this,Ue,this.$onPointerDown),this.$onPointerDown=null),this.$onPointerMove&&(bt(this.ownerDocument,qe,this.$onPointerMove),this.$onPointerMove=null),this.$onPointerUp&&(bt(this.ownerDocument,Be,this.$onPointerUp),this.$onPointerUp=null),this.$onWheel&&(bt(this,Ke,this.$onWheel,{capture:!0}),this.$onWheel=null)}$handlePointerDown(e){const{buttons:t,button:n,type:r}=e;if(this.disabled||("pointerdown"===r&&"mouse"===e.pointerType||"mousedown"===r)&&(et(t)&&1!==t||et(n)&&0!==n||e.ctrlKey))return;const{$pointers:l}=this;let a="";if(e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e,pageX:t,pageY:n})=>{l.set(e,{startX:t,startY:n,endX:t,endY:n})});else{const{pointerId:t=0,pageX:n,pageY:r}=e;l.set(t,{startX:n,startY:r,endX:n,endY:r})}l.size>1?a=Ae:it(e.target)&&(a=e.target.action||e.target.getAttribute("action")||""),!1!==this.$emit(Ye,{action:a,relatedEvent:e})&&(e.preventDefault(),this.$action=a,this.style.willChange="transform")}$handlePointerMove(e){const{$action:t,$pointers:n}=this;if(this.disabled||t===Pe||0===n.size)return;if(!1===this.$emit("actionmove",{action:t,relatedEvent:e}))return;if(e.preventDefault(),e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e,pageX:t,pageY:r})=>{const l=n.get(e);l&&Object.assign(l,{endX:t,endY:r})});else{const{pointerId:t=0,pageX:r,pageY:l}=e,a=n.get(t);a&&Object.assign(a,{endX:r,endY:l})}const r={action:t,relatedEvent:e};if(t===Ae){const t=new Map(n);let l=0,a=0,i=0,o=0,s=e.pageX,c=e.pageY;n.forEach((e,n)=>{t.delete(n),t.forEach(t=>{let n=t.startX-e.startX,r=t.startY-e.startY,u=t.endX-e.endX,d=t.endY-e.endY,b=0,m=0,h=0,p=0;if(0===n?r<0?h=2*Math.PI:r>0&&(h=Math.PI):n>0?h=Math.PI/2+Math.atan(r/n):n<0&&(h=1.5*Math.PI+Math.atan(r/n)),0===u?d<0?p=2*Math.PI:d>0&&(p=Math.PI):u>0?p=Math.PI/2+Math.atan(d/u):u<0&&(p=1.5*Math.PI+Math.atan(d/u)),p>0||h>0){const n=p-h,r=Math.abs(n);r>l&&(l=r,i=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}if(n=Math.abs(n),r=Math.abs(r),u=Math.abs(u),d=Math.abs(d),n>0&&r>0?b=Math.sqrt(n*n+r*r):n>0?b=n:r>0&&(b=r),u>0&&d>0?m=Math.sqrt(u*u+d*d):u>0?m=u:d>0&&(m=d),b>0&&m>0){const n=(m-b)/b,r=Math.abs(n);r>a&&(a=r,o=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}})});const u=l>0,d=a>0;u&&d?(r.rotate=i,r.scale=o,r.centerX=s,r.centerY=c):u?(r.action=Te,r.rotate=i,r.centerX=s,r.centerY=c):d?(r.action=ze,r.scale=o,r.centerX=s,r.centerY=c):r.action=Pe}else{const[e]=Array.from(n.values());Object.assign(r,e)}n.forEach(e=>{e.startX=e.endX,e.startY=e.endY}),r.action!==Pe&&this.$emit(Ge,r,{cancelable:!1})}$handlePointerUp(e){const{$action:t,$pointers:n}=this;if(!this.disabled&&t!==Pe&&!1!==this.$emit(Qe,{action:t,relatedEvent:e})){if(e.preventDefault(),e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e})=>{n.delete(e)});else{const{pointerId:t=0}=e;n.delete(t)}0===n.size&&(this.style.willChange="",this.$action=Pe)}}$handleWheel(e){if(this.disabled)return;if(e.preventDefault(),this.$wheeling)return;this.$wheeling=!0,setTimeout(()=>{this.$wheeling=!1},50);const t=(e.deltaY>0?-1:1)*this.scaleStep;this.$emit(Ge,{action:ze,scale:t,relatedEvent:e},{cancelable:!1})}$setAction(e){return"string"==typeof e&&(this.$action=e),this}$toCanvas(e){return new Promise((t,n)=>{if(!this.isConnected)return void n(new Error("The current element is not connected to the DOM."));const r=document.createElement("canvas");let l=this.offsetWidth,a=this.offsetHeight,i=1;lt(e)&&(tt(e.width)||tt(e.height))&&(({width:l,height:a}=xt({aspectRatio:l/a,width:e.width,height:e.height})),i=l/this.offsetWidth),r.width=l,r.height=a;const o=this.querySelector(this.$getTagNameOf(Ce));o?o.$ready().then(n=>{const s=r.getContext("2d");if(s){const[t,c,u,d,b,m]=o.$getTransform();let h=b,p=m,f=n.naturalWidth,g=n.naturalHeight;1!==i&&(h*=i,p*=i,f*=i,g*=i);const y=f/2,v=g/2;s.fillStyle="transparent",s.fillRect(0,0,l,a),lt(e)&&at(e.beforeDraw)&&e.beforeDraw.call(this,s,r),s.save(),s.translate(y,v),s.transform(t,c,u,d,h,p),s.translate(-y,-v),s.drawImage(n,0,0,f,g),s.restore()}t(r)}).catch(n):t(r)})}}Tt.$name=ve,Tt.$version="2.1.0";const At=/* @__PURE__ */new WeakMap,Pt=["alt","crossorigin","decoding","elementtiming","fetchpriority","loading","referrerpolicy","sizes","src","srcset"];class Mt extends zt{constructor(){super(...arguments),this.$matrix=[1,0,0,1,0,0],this.$onLoad=null,this.$onCanvasAction=null,this.$onCanvasActionEnd=null,this.$onCanvasActionStart=null,this.$actionStartTarget=null,this.$style=":host{display:inline-block}img{display:block;height:100%;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}",this.$image=new Image,this.initialCenterSize="contain",this.rotatable=!1,this.scalable=!1,this.skewable=!1,this.slottable=!1,this.translatable=!1,this.alt="",this.crossorigin="",this.decoding="",this.elementtiming="",this.fetchpriority="",this.loading="",this.referrerpolicy="",this.sizes="",this.src="",this.srcset=""}set $canvas(e){At.set(this,e)}get $canvas(){return At.get(this)}static get observedAttributes(){return super.observedAttributes.concat(Pt,["initial-center-size","rotatable","scalable","skewable","translatable"])}attributeChangedCallback(e,t,n){Object.is(n,t)||(super.attributeChangedCallback(e,t,n),Pt.includes(e)&&this.$image.setAttribute(e,n))}$propertyChangedCallback(e,t,n){if(!Object.is(n,t)&&(super.$propertyChangedCallback(e,t,n),"initialCenterSize"===e))this.$nextTick(()=>{this.$center(n)})}connectedCallback(){super.connectedCallback();const{$image:e}=this,t=this.closest(this.$getTagNameOf(ve));t&&(this.$canvas=t,this.$setStyles({display:"block",position:"absolute"}),this.$onCanvasActionStart=e=>{var t,n;this.$actionStartTarget=null===(n=null===(t=e.detail)||void 0===t?void 0:t.relatedEvent)||void 0===n?void 0:n.target},this.$onCanvasActionEnd=()=>{this.$actionStartTarget=null},this.$onCanvasAction=this.$handleAction.bind(this),mt(t,Ye,this.$onCanvasActionStart),mt(t,Qe,this.$onCanvasActionEnd),mt(t,Ge,this.$onCanvasAction)),this.$onLoad=this.$handleLoad.bind(this),mt(e,He,this.$onLoad),this.$getShadowRoot().appendChild(e)}disconnectedCallback(){const{$image:e,$canvas:t}=this;t&&(this.$onCanvasActionStart&&(bt(t,Ye,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(bt(t,Qe,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(bt(t,Ge,this.$onCanvasAction),this.$onCanvasAction=null)),e&&this.$onLoad&&(bt(e,He,this.$onLoad),this.$onLoad=null),this.$getShadowRoot().removeChild(e),super.disconnectedCallback()}$handleLoad(){const{$image:e}=this;this.$setStyles({width:e.naturalWidth,height:e.naturalHeight}),this.$canvas&&this.$center(this.initialCenterSize)}$handleAction(e){if(this.hidden||!(this.rotatable||this.scalable||this.translatable))return;const{$canvas:t}=this,{detail:n}=e;if(n){const{relatedEvent:e}=n;let{action:r}=n;switch(r!==Ae||this.rotatable&&this.scalable||(r=this.rotatable?Te:this.scalable?ze:Pe),r){case _e:if(this.translatable){let r=null;e&&(r=e.target.closest(this.$getTagNameOf(Se))),r||(r=t.querySelector(this.$getTagNameOf(Se))),r&&r.multiple&&!r.active&&(r=t.querySelector(`${this.$getTagNameOf(Se)}[active]`)),r&&!r.hidden&&r.movable&&!r.dynamic&&this.$actionStartTarget&&r.contains(this.$actionStartTarget)||this.$move(n.endX-n.startX,n.endY-n.startY)}break;case Te:if(this.rotatable)if(e){const{x:t,y:r}=this.getBoundingClientRect();this.$rotate(n.rotate,e.clientX-t,e.clientY-r)}else this.$rotate(n.rotate);break;case ze:if(this.scalable)if(e){const t=e.target.closest(this.$getTagNameOf(Se));if(!t||!t.zoomable||t.zoomable&&t.dynamic){const{x:t,y:r}=this.getBoundingClientRect();this.$zoom(n.scale,e.clientX-t,e.clientY-r)}}else this.$zoom(n.scale);break;case Ae:if(this.rotatable&&this.scalable){const{rotate:t}=n;let{scale:r}=n;r<0?r=1/(1-r):r+=1;const l=Math.cos(t),a=Math.sin(t),[i,o,s,c]=[l*r,a*r,-a*r,l*r];if(e){const t=this.getBoundingClientRect(),n=e.clientX-t.x,r=e.clientY-t.y,[l,a,u,d]=this.$matrix,b=n-t.width/2,m=r-t.height/2,h=(b*d-u*m)/(l*d-u*a),p=(m*l-a*b)/(l*d-u*a);this.$transform(i,o,s,c,h*(1-i)+p*s,p*(1-c)+h*o)}else this.$transform(i,o,s,c,0,0)}}}}$ready(e){const{$image:t}=this,n=new Promise((e,n)=>{const r=new Error("Failed to load the image source");if(t.complete)t.naturalWidth>0&&t.naturalHeight>0?e(t):n(r);else{const l=()=>{bt(t,We,a),setTimeout(()=>{e(t)})},a=()=>{bt(t,He,l),n(r)};ht(t,He,l),ht(t,We,a)}});return at(e)&&n.then(t=>(e(t),t)),n}$center(e){const{parentElement:t}=this;if(!t)return this;const n=t.getBoundingClientRect(),r=n.width,l=n.height,{x:a,y:i,width:o,height:s}=this.getBoundingClientRect(),c=a+o/2,u=i+s/2,d=n.x+r/2,b=n.y+l/2;if(this.$move(d-c,b-u),e&&(o!==r||s!==l)){const t=r/o,n=l/s;switch(e){case"cover":this.$scale(Math.max(t,n));break;case"contain":this.$scale(Math.min(t,n))}}return this}$move(e,t=e){if(this.translatable&&et(e)&&et(t)){const[n,r,l,a]=this.$matrix,i=(e*a-l*t)/(n*a-l*r),o=(t*n-r*e)/(n*a-l*r);this.$translate(i,o)}return this}$moveTo(e,t=e){if(this.translatable&&et(e)&&et(t)){const[n,r,l,a]=this.$matrix,i=(e*a-l*t)/(n*a-l*r),o=(t*n-r*e)/(n*a-l*r);this.$setTransform(n,r,l,a,i,o)}return this}$rotate(e,t,n){if(this.rotatable){const r=vt(e),l=Math.cos(r),a=Math.sin(r),[i,o,s,c]=[l,a,-a,l];if(et(t)&&et(n)){const[e,r,l,a]=this.$matrix,{width:u,height:d}=this.getBoundingClientRect(),b=t-u/2,m=n-d/2,h=(b*a-l*m)/(e*a-l*r),p=(m*e-r*b)/(e*a-l*r);this.$transform(i,o,s,c,h*(1-i)-p*s,p*(1-c)-h*o)}else this.$transform(i,o,s,c,0,0)}return this}$zoom(e,t,n){if(!this.scalable||0===e)return this;if(e<0?e=1/(1-e):e+=1,et(t)&&et(n)){const[r,l,a,i]=this.$matrix,{width:o,height:s}=this.getBoundingClientRect(),c=t-o/2,u=n-s/2,d=(c*i-a*u)/(r*i-a*l),b=(u*r-l*c)/(r*i-a*l);this.$transform(e,0,0,e,d*(1-e),b*(1-e))}else this.$scale(e);return this}$scale(e,t=e){return this.scalable&&this.$transform(e,0,0,t,0,0),this}$skew(e,t=0){if(this.skewable){const n=vt(e),r=vt(t);this.$transform(1,Math.tan(r),Math.tan(n),1,0,0)}return this}$translate(e,t=e){return this.translatable&&et(e)&&et(t)&&this.$transform(1,0,0,1,e,t),this}$transform(e,t,n,r,l,a){return et(e)&&et(t)&&et(n)&&et(r)&&et(l)&&et(a)?this.$setTransform(kt(this.$matrix,[e,t,n,r,l,a])):this}$setTransform(e,t,n,r,l,a){if((this.rotatable||this.scalable||this.skewable||this.translatable)&&(Array.isArray(e)&&([e,t,n,r,l,a]=e),et(e)&&et(t)&&et(n)&&et(r)&&et(l)&&et(a))){const i=[...this.$matrix],o=[e,t,n,r,l,a];if(!1===this.$emit(Je,{matrix:o,oldMatrix:i}))return this;this.$matrix=o,this.style.transform=`matrix(${o.join(", ")})`}return this}$getTransform(){return this.$matrix.slice()}$resetTransform(){return this.$setTransform([1,0,0,1,0,0])}}Mt.$name=Ce,Mt.$version="2.1.0";const It=/* @__PURE__ */new WeakMap;class Lt extends zt{constructor(){super(...arguments),this.$onCanvasActionEnd=null,this.$onCanvasActionStart=null,this.$onSelectionChange=null,this.$style=":host{display:block;height:0;left:0;outline:var(--theme-color) solid 1px;position:relative;top:0;width:0}:host([transparent]){outline-color:transparent}",this.x=0,this.y=0,this.width=0,this.height=0,this.slottable=!1,this.themeColor="rgba(0, 0, 0, 0.65)"}set $canvas(e){It.set(this,e)}get $canvas(){return It.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["height","width","x","y"])}connectedCallback(){super.connectedCallback();const e=this.closest(this.$getTagNameOf(ve));if(e){this.$canvas=e,this.style.position="absolute";const t=e.querySelector(this.$getTagNameOf(Se));t&&(this.$onCanvasActionStart=e=>{t.hidden&&e.detail.action===$e&&(this.hidden=!1)},this.$onCanvasActionEnd=e=>{t.hidden&&e.detail.action===$e&&(this.hidden=!0)},this.$onSelectionChange=e=>{const{x:n,y:r,width:l,height:a}=e.defaultPrevented?t:e.detail;this.$change(n,r,l,a),(t.hidden||0===n&&0===r&&0===l&&0===a)&&(this.hidden=!0)},mt(e,Ye,this.$onCanvasActionStart),mt(e,Qe,this.$onCanvasActionEnd),mt(e,Xe,this.$onSelectionChange))}this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(bt(e,Ye,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(bt(e,Qe,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onSelectionChange&&(bt(e,Xe,this.$onSelectionChange),this.$onSelectionChange=null)),super.disconnectedCallback()}$change(e,t,n=this.width,r=this.height){return et(e)&&et(t)&&et(n)&&et(r)&&(e!==this.x||t!==this.y||n!==this.width||r!==this.height)?(this.hidden&&(this.hidden=!1),this.x=e,this.y=t,this.width=n,this.height=r,this.$render()):this}$reset(){return this.$change(0,0,0,0)}$render(){return this.$setStyles({transform:`translate(${this.x}px, ${this.y}px)`,width:this.width,height:this.height,outlineWidth:pe.innerWidth})}}Lt.$name=Ne,Lt.$version="2.1.0";class Dt extends zt{constructor(){super(...arguments),this.$onCanvasCropEnd=null,this.$onCanvasCropStart=null,this.$style=':host{background-color:var(--theme-color);display:block}:host([action=move]),:host([action=select]){height:100%;left:0;position:absolute;top:0;width:100%}:host([action=move]){cursor:move}:host([action=select]){cursor:crosshair}:host([action$=-resize]){background-color:transparent;height:15px;position:absolute;width:15px}:host([action$=-resize]):after{background-color:var(--theme-color);content:"";display:block;height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:5px}:host([action=n-resize]),:host([action=s-resize]){cursor:ns-resize;left:50%;transform:translateX(-50%);width:100%}:host([action=n-resize]){top:-8px}:host([action=s-resize]){bottom:-8px}:host([action=e-resize]),:host([action=w-resize]){cursor:ew-resize;height:100%;top:50%;transform:translateY(-50%)}:host([action=e-resize]){right:-8px}:host([action=w-resize]){left:-8px}:host([action=ne-resize]){cursor:nesw-resize;right:-8px;top:-8px}:host([action=nw-resize]){cursor:nwse-resize;left:-8px;top:-8px}:host([action=se-resize]){bottom:-8px;cursor:nwse-resize;right:-8px}:host([action=se-resize]):after{height:15px;width:15px}@media (pointer:coarse){:host([action=se-resize]):after{height:10px;width:10px}}@media (pointer:fine){:host([action=se-resize]):after{height:5px;width:5px}}:host([action=sw-resize]){bottom:-8px;cursor:nesw-resize;left:-8px}:host([plain]){background-color:transparent}',this.action=Pe,this.plain=!1,this.slottable=!1,this.themeColor="rgba(51, 153, 255, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["action","plain"])}}Dt.$name=ke,Dt.$version="2.1.0";const Ot=/* @__PURE__ */new WeakMap;class Rt extends zt{constructor(){super(...arguments),this.$onCanvasAction=null,this.$onCanvasActionStart=null,this.$onCanvasActionEnd=null,this.$onDocumentKeyDown=null,this.$action="",this.$actionStartTarget=null,this.$changing=!1,this.$style=':host{display:block;left:0;position:relative;right:0}:host([outlined]){outline:1px solid var(--theme-color)}:host([multiple]){outline:1px dashed hsla(0,0%,100%,.5)}:host([multiple]):after{bottom:0;content:"";cursor:pointer;display:block;left:0;position:absolute;right:0;top:0}:host([multiple][active]){outline-color:var(--theme-color);z-index:1}:host([multiple])>*{visibility:hidden}:host([multiple][active])>*{visibility:visible}:host([multiple][active]):after{display:none}',this.$initialSelection={x:0,y:0,width:0,height:0},this.x=0,this.y=0,this.width=0,this.height=0,this.aspectRatio=NaN,this.initialAspectRatio=NaN,this.initialCoverage=NaN,this.active=!1,this.linked=!1,this.dynamic=!1,this.movable=!1,this.resizable=!1,this.zoomable=!1,this.multiple=!1,this.keyboard=!1,this.outlined=!1,this.precise=!1}set $canvas(e){Ot.set(this,e)}get $canvas(){return Ot.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["active","aspect-ratio","dynamic","height","initial-aspect-ratio","initial-coverage","keyboard","linked","movable","multiple","outlined","precise","resizable","width","x","y","zoomable"])}$propertyChangedCallback(e,t,n){if(!Object.is(n,t))switch(super.$propertyChangedCallback(e,t,n),e){case"x":case"y":case"width":case"height":this.$changing||this.$nextTick(()=>{this.$change(this.x,this.y,this.width,this.height,this.aspectRatio,!0)});break;case"aspectRatio":case"initialAspectRatio":this.$nextTick(()=>{this.$initSelection()});break;case"initialCoverage":this.$nextTick(()=>{tt(n)&&n<=1&&this.$initSelection(!0,!0)});break;case"keyboard":this.$nextTick(()=>{this.$canvas&&(n?this.$onDocumentKeyDown||(this.$onDocumentKeyDown=this.$handleKeyDown.bind(this),mt(this.ownerDocument,Ve,this.$onDocumentKeyDown)):this.$onDocumentKeyDown&&(bt(this.ownerDocument,Ve,this.$onDocumentKeyDown),this.$onDocumentKeyDown=null))});break;case"multiple":this.$nextTick(()=>{if(this.$canvas){const e=this.$getSelections();n?(e.forEach(e=>{e.active=!1}),this.active=!0,this.$emit(Xe,{x:this.x,y:this.y,width:this.width,height:this.height})):(this.active=!1,e.slice(1).forEach(e=>{this.$removeSelection(e)}))}});break;case"precise":this.$nextTick(()=>{this.$change(this.x,this.y)});break;case"linked":n&&(this.dynamic=!0)}}connectedCallback(){super.connectedCallback();const e=this.closest(this.$getTagNameOf(ve));e?(this.$canvas=e,this.$setStyles({position:"absolute",transform:`translate(${this.x}px, ${this.y}px)`}),this.hidden||this.$render(),this.$initSelection(!0),this.$onCanvasActionStart=this.$handleActionStart.bind(this),this.$onCanvasActionEnd=this.$handleActionEnd.bind(this),this.$onCanvasAction=this.$handleAction.bind(this),mt(e,Ye,this.$onCanvasActionStart),mt(e,Qe,this.$onCanvasActionEnd),mt(e,Ge,this.$onCanvasAction)):this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(bt(e,Ye,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(bt(e,Qe,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(bt(e,Ge,this.$onCanvasAction),this.$onCanvasAction=null)),super.disconnectedCallback()}$getSelections(){let e=[];return this.parentElement&&(e=Array.from(this.parentElement.querySelectorAll(this.$getTagNameOf(Se)))),e}$initSelection(e=!1,t=!1){const{initialCoverage:n,parentElement:r}=this;if(tt(n)&&r){const l=this.aspectRatio||this.initialAspectRatio;let a=(t?0:this.width)||r.offsetWidth*n,i=(t?0:this.height)||r.offsetHeight*n;tt(l)&&({width:a,height:i}=xt({aspectRatio:l,width:a,height:i})),this.$change(this.x,this.y,a,i),e&&this.$center(),this.$initialSelection={x:this.x,y:this.y,width:this.width,height:this.height}}}$createSelection(){const e=this.cloneNode(!0);return this.hasAttribute("id")&&e.removeAttribute("id"),e.initialCoverage=NaN,this.active=!1,this.parentElement&&this.parentElement.insertBefore(e,this.nextSibling),e}$removeSelection(e=this){if(this.parentElement){const t=this.$getSelections();if(t.length>1){const n=t.indexOf(e),r=t[n+1]||t[n-1];r&&(e.active=!1,this.parentElement.removeChild(e),r.active=!0,r.$emit(Xe,{x:r.x,y:r.y,width:r.width,height:r.height}))}else this.$clear()}}$handleActionStart(e){var t,n;const r=null===(n=null===(t=e.detail)||void 0===t?void 0:t.relatedEvent)||void 0===n?void 0:n.target;this.$action="",this.$actionStartTarget=r,!this.hidden&&this.multiple&&!this.active&&r===this&&this.parentElement&&(this.$getSelections().forEach(e=>{e.active=!1}),this.active=!0,this.$emit(Xe,{x:this.x,y:this.y,width:this.width,height:this.height}))}$handleAction(e){const{currentTarget:t,detail:n}=e;if(!t||!n)return;const{relatedEvent:r}=n;let{action:l}=n;const a=r?function(e){if("function"==typeof e.composedPath)return e.composedPath().find(it)||e.target;return e.target}(r):null;if(!l&&this.multiple&&(l=this.$action||(null==a?void 0:a.action),this.$action=l),!l||this.hidden&&l!==$e||this.multiple&&!this.active&&l!==ze)return;const{width:i,height:o}=this;let s=n.endX-n.startX,c=n.endY-n.startY,{aspectRatio:u}=this;switch(!tt(u)&&r.shiftKey&&(u=tt(i)&&tt(o)?i/o:1),l){case $e:if(0!==s||0!==c){0===s?s=c:0===c&&(c=s);const{$canvas:e}=this,r=gt(t);(this.multiple&&!this.hidden?this.$createSelection():this).$change(n.startX-r.left,n.startY-r.top,Math.abs(s),Math.abs(c),u),s<0?c<0?l=Re:c>0&&(l=Fe):s>0&&(c<0?l=Oe:c>0&&(l=je)),e&&(e.$action=l)}break;case _e:this.movable&&(this.dynamic||this.$actionStartTarget&&this.contains(this.$actionStartTarget))&&this.$move(s,c);break;case ze:if(r&&this.zoomable&&(this.dynamic||this.contains(r.target))){const e=gt(t);this.$zoom(n.scale,r.pageX-e.left,r.pageY-e.top)}break;default:this.$resize(l,s,c,u)}}$handleActionEnd(){this.$action="",this.$actionStartTarget=null}$handleKeyDown(e){if(this.hidden||!this.keyboard||this.multiple&&!this.active||e.defaultPrevented)return;const{activeElement:t}=document;if(!t||!["INPUT","TEXTAREA"].includes(t.tagName)&&!["true","plaintext-only"].includes(t.contentEditable))switch(e.key){case"Backspace":e.metaKey&&(e.preventDefault(),this.$removeSelection());break;case"Delete":e.preventDefault(),this.$removeSelection();break;case"ArrowLeft":e.preventDefault(),this.$move(-1,0);break;case"ArrowRight":e.preventDefault(),this.$move(1,0);break;case"ArrowUp":e.preventDefault(),this.$move(0,-1);break;case"ArrowDown":e.preventDefault(),this.$move(0,1);break;case"+":e.preventDefault(),this.$zoom(.1);break;case"-":e.preventDefault(),this.$zoom(-.1)}}$center(){const{parentElement:e}=this;if(!e)return this;const t=(e.offsetWidth-this.width)/2,n=(e.offsetHeight-this.height)/2;return this.$change(t,n)}$move(e,t=e){return this.$moveTo(this.x+e,this.y+t)}$moveTo(e,t=e){return this.movable?this.$change(e,t):this}$resize(e,t=0,n=0,r=this.aspectRatio){if(!this.resizable)return this;const l=tt(r),{$canvas:a}=this;let{x:i,y:o,width:s,height:c}=this;switch(e){case Me:o+=n,c-=n,c<0&&(e=Le,c=-c,o-=c),l&&(i+=(t=n*r)/2,s-=t,s<0&&(s=-s,i-=s));break;case Ie:s+=t,s<0&&(e=De,s=-s,i-=s),l&&(o-=(n=t/r)/2,c+=n,c<0&&(c=-c,o-=c));break;case Le:c+=n,c<0&&(e=Me,c=-c,o-=c),l&&(i-=(t=n*r)/2,s+=t,s<0&&(s=-s,i-=s));break;case De:i+=t,s-=t,s<0&&(e=Ie,s=-s,i-=s),l&&(o+=(n=t/r)/2,c-=n,c<0&&(c=-c,o-=c));break;case Oe:l&&(n=-t/r),o+=n,c-=n,s+=t,s<0&&c<0?(e=Fe,s=-s,c=-c,i-=s,o-=c):s<0?(e=Re,s=-s,i-=s):c<0&&(e=je,c=-c,o-=c);break;case Re:l&&(n=t/r),i+=t,o+=n,s-=t,c-=n,s<0&&c<0?(e=je,s=-s,c=-c,i-=s,o-=c):s<0?(e=Oe,s=-s,i-=s):c<0&&(e=Fe,c=-c,o-=c);break;case je:l&&(n=t/r),s+=t,c+=n,s<0&&c<0?(e=Re,s=-s,c=-c,i-=s,o-=c):s<0?(e=Fe,s=-s,i-=s):c<0&&(e=Oe,c=-c,o-=c);break;case Fe:l&&(n=-t/r),i+=t,s-=t,c+=n,s<0&&c<0?(e=Oe,s=-s,c=-c,i-=s,o-=c):s<0?(e=je,s=-s,i-=s):c<0&&(e=Re,c=-c,o-=c)}return a&&a.$setAction(e),this.$change(i,o,s,c)}$zoom(e,t,n){if(!this.zoomable||0===e)return this;e<0?e=1/(1-e):e+=1;const{width:r,height:l}=this,a=r*e,i=l*e;let o=this.x,s=this.y;return et(t)&&et(n)?(o-=(a-r)*((t-this.x)/r),s-=(i-l)*((n-this.y)/l)):(o-=(a-r)/2,s-=(i-l)/2),this.$change(o,s,a,i)}$change(e,t,n=this.width,r=this.height,l=this.aspectRatio,a=!1){return this.$changing||!et(e)||!et(t)||!et(n)||!et(r)||n<0||r<0?this:(tt(l)&&({width:n,height:r}=xt({aspectRatio:l,width:n,height:r},"cover")),this.precise||(e=Math.round(e),t=Math.round(t),n=Math.round(n),r=Math.round(r)),e===this.x&&t===this.y&&n===this.width&&r===this.height&&Object.is(l,this.aspectRatio)&&!a?this:(this.hidden&&(this.hidden=!1),!1===this.$emit(Xe,{x:e,y:t,width:n,height:r})?this:(this.$changing=!0,this.x=e,this.y=t,this.width=n,this.height=r,this.$changing=!1,this.$render())))}$reset(){const{x:e,y:t,width:n,height:r}=this.$initialSelection;return this.$change(e,t,n,r)}$clear(){return this.$change(0,0,0,0,NaN,!0),this.hidden=!0,this}$render(){return this.$setStyles({transform:`translate(${this.x}px, ${this.y}px)`,width:this.width,height:this.height})}$toCanvas(e){return new Promise((t,n)=>{if(!this.isConnected)return void n(new Error("The current element is not connected to the DOM."));const r=document.createElement("canvas");let{width:l,height:a}=this,i=1;if(lt(e)&&(tt(e.width)||tt(e.height))&&(({width:l,height:a}=xt({aspectRatio:l/a,width:e.width,height:e.height})),i=l/this.width),r.width=l,r.height=a,!this.$canvas)return void t(r);const o=this.$canvas.querySelector(this.$getTagNameOf(Ce));o?o.$ready().then(n=>{const s=r.getContext("2d");if(s){const[t,c,u,d,b,m]=o.$getTransform(),h=-this.x,p=-this.y,f=(h*d-u*p)/(t*d-u*c),g=(p*t-c*h)/(t*d-u*c);let y=t*f+u*g+b,v=c*f+d*g+m,w=n.naturalWidth,x=n.naturalHeight;1!==i&&(y*=i,v*=i,w*=i,x*=i);const k=w/2,C=x/2;s.fillStyle="transparent",s.fillRect(0,0,l,a),lt(e)&&at(e.beforeDraw)&&e.beforeDraw.call(this,s,r),s.save(),s.translate(k,C),s.transform(t,c,u,d,y,v),s.translate(-k,-C),s.drawImage(n,0,0,w,x),s.restore()}t(r)}).catch(n):t(r)})}}Rt.$name=Se,Rt.$version="2.1.0";class jt extends zt{constructor(){super(...arguments),this.$style=":host{display:flex;flex-direction:column;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([bordered]){border:1px dashed var(--theme-color)}:host([covered]){bottom:0;left:0;position:absolute;right:0;top:0}:host>span{display:flex;flex:1}:host>span+span{border-top:1px dashed var(--theme-color)}:host>span>span{flex:1}:host>span>span+span{border-left:1px dashed var(--theme-color)}",this.bordered=!1,this.columns=3,this.covered=!1,this.rows=3,this.slottable=!1,this.themeColor="rgba(238, 238, 238, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["bordered","columns","covered","rows"])}$propertyChangedCallback(e,t,n){Object.is(n,t)||(super.$propertyChangedCallback(e,t,n),"rows"!==e&&"columns"!==e||this.$nextTick(()=>{this.$render()}))}connectedCallback(){super.connectedCallback(),this.$render()}$render(){const e=this.$getShadowRoot(),t=document.createDocumentFragment();for(let n=0;n<this.rows;n+=1){const e=document.createElement("span");e.setAttribute("role","row");for(let t=0;t<this.columns;t+=1){const t=document.createElement("span");t.setAttribute("role","gridcell"),e.appendChild(t)}t.appendChild(e)}e&&(e.innerHTML="",e.appendChild(t))}}jt.$name=xe,jt.$version="2.1.0";class Ft extends zt{constructor(){super(...arguments),this.$style=':host{display:inline-block;height:1em;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1em}:host:after,:host:before{background-color:var(--theme-color);content:"";display:block;position:absolute}:host:before{height:1px;left:0;top:50%;transform:translateY(-50%);width:100%}:host:after{height:100%;left:50%;top:0;transform:translateX(-50%);width:1px}:host([centered]){left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}',this.centered=!1,this.slottable=!1,this.themeColor="rgba(238, 238, 238, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["centered"])}}Ft.$name=we,Ft.$version="2.1.0";const Ut=/* @__PURE__ */new WeakMap,qt=/* @__PURE__ */new WeakMap,Bt=/* @__PURE__ */new WeakMap,Wt=/* @__PURE__ */new WeakMap,Vt="vertical";class Ht extends zt{constructor(){super(...arguments),this.$onSelectionChange=null,this.$onSourceImageLoad=null,this.$onSourceImageTransform=null,this.$scale=1,this.$style=":host{display:block;height:100%;overflow:hidden;position:relative;width:100%}",this.resize=Vt,this.selection="",this.slottable=!1}set $image(e){qt.set(this,e)}get $image(){return qt.get(this)}set $sourceImage(e){Wt.set(this,e)}get $sourceImage(){return Wt.get(this)}set $canvas(e){Ut.set(this,e)}get $canvas(){return Ut.get(this)}set $selection(e){Bt.set(this,e)}get $selection(){return Bt.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["resize","selection"])}connectedCallback(){var e,t;super.connectedCallback();let n=null;if(n=this.selection?null!==(t=null===(e=function(e){const t=e.getRootNode();switch(t.nodeType){case 1:return t.ownerDocument;case 9:case 11:return t}return null}(this))||void 0===e?void 0:e.querySelector(this.selection))&&void 0!==t?t:null:this.closest(this.$getTagNameOf(Se)),it(n)){this.$selection=n,this.$onSelectionChange=this.$handleSelectionChange.bind(this),mt(n,Xe,this.$onSelectionChange);const e=n.closest(this.$getTagNameOf(ve));if(e){this.$canvas=e;const t=e.querySelector(this.$getTagNameOf(Ce));t&&(this.$sourceImage=t,this.$image=t.cloneNode(!0),this.$getShadowRoot().appendChild(this.$image),this.$onSourceImageLoad=this.$handleSourceImageLoad.bind(this),this.$onSourceImageTransform=this.$handleSourceImageTransform.bind(this),mt(t.$image,He,this.$onSourceImageLoad),mt(t,Je,this.$onSourceImageTransform))}this.$render()}}disconnectedCallback(){const{$selection:e,$sourceImage:t}=this;e&&this.$onSelectionChange&&(bt(e,Xe,this.$onSelectionChange),this.$onSelectionChange=null),t&&this.$onSourceImageLoad&&(bt(t.$image,He,this.$onSourceImageLoad),this.$onSourceImageLoad=null),t&&this.$onSourceImageTransform&&(bt(t,Je,this.$onSourceImageTransform),this.$onSourceImageTransform=null),super.disconnectedCallback()}$handleSelectionChange(e){this.$render(e.defaultPrevented?this.$selection:e.detail)}$handleSourceImageLoad(){const{$image:e,$sourceImage:t}=this,n=e.getAttribute("src"),r=t.getAttribute("src");r&&r!==n&&(e.setAttribute("src",r),e.$ready(()=>{this.$render()}))}$handleSourceImageTransform(e){this.$render(void 0,e.detail.matrix)}$render(e,t){const{$canvas:n,$selection:r}=this;e||r.hidden||(e=r),(!e||0===e.x&&0===e.y&&0===e.width&&0===e.height)&&(e={x:0,y:0,width:n.offsetWidth,height:n.offsetHeight});const{x:l,y:a,width:i,height:o}=e,s={},{clientWidth:c,clientHeight:u}=this;let d=c,b=u,m=NaN;switch(this.resize){case"both":m=1,d=i,b=o,s.width=i,s.height=o;break;case"horizontal":m=o>0?u/o:0,d=i*m,s.width=d;break;case Vt:m=i>0?c/i:0,b=o*m,s.height=b;break;default:c>0?m=i>0?c/i:0:u>0&&(m=o>0?u/o:0)}this.$scale=m,this.$setStyles(s),this.$sourceImage&&setTimeout(()=>{this.$transformImageByOffset(null!=t?t:this.$sourceImage.$getTransform(),-l,-a)})}$transformImageByOffset(e,t,n){const{$image:r,$scale:l,$sourceImage:a}=this;if(a&&r&&l>=0){const[a,i,o,s,c,u]=e,d=(t*s-o*n)/(a*s-o*i),b=(n*a-i*t)/(a*s-o*i),m=a*d+o*b+c,h=i*d+s*b+u;r.$ready(e=>{this.$setStyles.call(r,{width:e.naturalWidth*l,height:e.naturalHeight*l})}),r.$setTransform(a,i,o,s,m*l,h*l)}}}function Kt(){const[e,n]=t(!1),[r,l]=t(null),[a,i]=t(null),o=async(e,t)=>{if(!e||!t)return l("ID de asset y configuración de variante son requeridos"),null;n(!0),l(null),i(null);try{const n=await async function(e,{variant_name:t,width:n,height:l,crop_params:a,preset_aspect:i=null,preset_size:o=null,output_format:s="webp"}){try{const r=[{name:t,width:n,height:l,output_format:s,crop_params:a}];return i&&(r[0].preset_aspect=i),o&&(r[0].preset_size=o),D(await A({endpoint:`/assets/${e}/variants`,method:"POST",body:{variants:r,async:!1},basePath:R,useJWT:!0}))}catch(r){throw O(r)}}(e,{variant_name:t.name,width:t.width,height:t.height,crop_params:t.crop_params,preset_aspect:t.preset_aspect,preset_size:t.preset_size,output_format:t.output_format});if(n?.result)return i(n.result),n.result;throw new Error("No se pudo crear la variante")}catch(a){return console.error("Error creating variant:",a),l(a.message||"Error desconocido al crear variante"),null}finally{n(!1)}};return{createVariant:o,createCropVariant:async(e,t,n={})=>{const r={name:n.name||`crop_${Date.now()}`,width:n.width||800,height:n.height||600,output_format:n.format||"webp",crop_params:{x:t.x||0,y:t.y||0,width:t.width||1,height:t.height||1}};return await o(e,r)},createVariantFromBlob:async(e,t,a={})=>{if(!e||!t)return l("ID de asset y blob son requeridos"),null;n(!0),l(null),i(null);try{const n=await async function(e,t,n={}){try{const r=new FormData,l=n.format||"webp",a=`${n.name||"variant"}.${l}`;return r.append("file",t,a),r.append("variant_name",n.name||"variant"),r.append("width",String(n.width||0)),r.append("height",String(n.height||0)),r.append("output_format",n.format||"webp"),D(await A({endpoint:`/assets/${e}/variants/upload`,method:"POST",body:r,basePath:R,isFormData:!0,useJWT:!0}))}catch(r){throw O(r)}}(e,t,{name:a.name||`crop_${Date.now()}`,width:a.width||0,height:a.height||0,format:a.format||"webp"});if(n?.result)return i(n.result),n.result;throw new Error("No se pudo crear la variante")}catch(o){return console.error("Error creating variant from blob:",o),l(o.message||"Error desconocido al crear variante"),null}finally{n(!1)}},loading:e,error:r,createdVariant:a,reset:()=>{l(null),i(null)}}}Ht.$name=Ee,Ht.$version="2.1.0",Tt.$define(),Ft.$define(),jt.$define(),Dt.$define(),Mt.$define(),Rt.$define(),Lt.$define(),Ht.$define();class Gt{constructor(e,t,n){this.canvasRef=e,this.imageRef=t,this.selectionRef=n}get canvasElement(){return this.canvasRef?.current}get image(){return this.imageRef?.current}get selectionElement(){return this.selectionRef?.current}get isReady(){return!!(this.canvasElement&&this.image&&this.selectionElement)}transform={move:(e,t)=>{if(!this.image)return!1;try{return this.image.$move(e,t),!0}catch(n){return console.warn("Error moving image:",n),!1}},moveTo:(e,t)=>{if(!this.image)return!1;try{return this.image.$moveTo(e,t),!0}catch(n){return console.warn("Error moving image to position:",n),!1}},zoom:e=>{if(!this.image)return!1;try{return this.image.$zoom(e),!0}catch(t){return console.warn("Error zooming image:",t),!1}},rotate:e=>{if(!this.image)return!1;try{const t=e*Math.PI/180;return this.image.$rotate(t),!0}catch(t){return console.warn("Error rotating image:",t),!1}},scale:(e,t=e)=>{if(!this.image)return!1;try{return this.image.$scale(e,t),!0}catch(n){return console.warn("Error scaling image:",n),!1}},center:(e="contain")=>{if(!this.image)return!1;try{return this.image.$center(e),!0}catch(t){return console.warn("Error centering image:",t),!1}},reset:()=>{if(!this.image)return!1;try{return this.image.$resetTransform(),!0}catch(e){return console.warn("Error resetting transform:",e),!1}},getTransform:()=>{if(!this.image)return null;try{return this.image.$getTransform()}catch(e){return console.warn("Error getting transform:",e),null}},setTransform:(e,t,n,r,l,a)=>{if(!this.image)return!1;try{return this.image.$setTransform(e,t,n,r,l,a),!0}catch(i){return console.warn("Error setting transform:",i),!1}},resetZoom:()=>{if(!this.image)return!1;try{const e=this.image.$getTransform();if(!e)return!1;const[t,n,r,l,a,i]=e,o=Math.sqrt(t*t+n*n),s=Math.sqrt(r*r+l*l),c=t/o,u=n/o,d=r/s,b=l/s;return this.image.$setTransform(c,u,d,b,a,i),!0}catch(e){return console.warn("Error resetting zoom:",e),!1}},setZoom:e=>{if(!this.image||e<=0)return!1;try{const t=this.image.$getTransform();if(!t)return!1;const[n,r,l,a,i,o]=t,s=Math.sqrt(n*n+r*r),c=Math.sqrt(l*l+a*a),u=n/s*e,d=r/s*e,b=l/c*e,m=a/c*e;return this.image.$setTransform(u,d,b,m,i,o),!0}catch(t){return console.warn("Error setting zoom level:",t),!1}},getZoom:()=>{if(!this.image)return 1;try{const e=this.image.$getTransform();if(!e)return 1;const[t,n]=e;return Math.sqrt(t*t+n*n)}catch(e){return console.warn("Error getting zoom level:",e),1}},fitToCanvas:(e=.1)=>{if(!this.image||!this.canvasElement)return!1;try{const t=this.canvasElement.getBoundingClientRect();let n=this.image.querySelector("img")||this.image;if(!n?.naturalWidth||!n?.naturalHeight)return!1;const r=1-e,l=t.width*r/n.naturalWidth,a=t.height*r/n.naturalHeight,i=Math.min(l,a,1);return this.transform.setZoom(i)}catch(t){return console.warn("Error fitting to canvas:",t),!1}}};selection={center:()=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$center(),!0}catch(e){return console.warn("Error centering selection:",e),!1}},reset:()=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$reset(),!0}catch(e){return console.warn("Error resetting selection:",e),!1}},setCoverage:e=>{if(!this.selectionElement||e<0||e>1)return!1;try{return this.selectionElement.initialCoverage=e,this.selectionElement.$reset(),!0}catch(t){return console.warn("Error setting coverage:",t),!1}},setAspectRatio:e=>{if(!this.selectionElement)return!1;try{let t;if(""===e||null==e)t=NaN;else if("number"==typeof e)t=e;else{if("string"!=typeof e)return console.warn("Unsupported aspect ratio type:",typeof e,e),!1;if(e.includes("/")){const[n,r]=e.split("/").map(e=>parseFloat(e.trim()));if(isNaN(n)||isNaN(r)||0===r)return console.warn("Invalid aspect ratio format:",e),!1;t=n/r}else if(t=parseFloat(e),isNaN(t))return console.warn("Invalid aspect ratio format:",e),!1}return this.selectionElement.aspectRatio=t,this.selectionElement.$render(),!0}catch(t){return console.warn("Error setting aspect ratio:",t),!1}},move:(e,t)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$move(e,t),!0}catch(n){return console.warn("Error moving selection:",n),!1}},zoom:e=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$zoom(e),!0}catch(t){return console.warn("Error zooming selection:",t),!1}},change:(e,t,n,r,l)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$change(e,t,n,r,l),!0}catch(a){return console.warn("Error changing selection:",a),!1}},set:(e,t,n,r)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.x=e,this.selectionElement.y=t,this.selectionElement.width=n,this.selectionElement.height=r,this.selectionElement.$render(),!0}catch(l){return console.warn("Error setting selection:",l),!1}},toCanvas:async(e={})=>{if(!this.selectionElement)return null;try{const t={width:800,height:600,imageSmoothingEnabled:!0,imageSmoothingQuality:"high",...e};return await this.selectionElement.$toCanvas(t)}catch(t){return console.warn("Error exporting to canvas:",t),null}},getData:()=>{if(!this.selectionElement)return null;try{return{x:this.selectionElement.x,y:this.selectionElement.y,width:this.selectionElement.width,height:this.selectionElement.height,aspectRatio:this.selectionElement.aspectRatio}}catch(e){return console.warn("Error getting selection data:",e),null}}};canvas={setBackground:e=>{if(!this.canvasElement)return!1;try{return this.canvasElement.background=e,!0}catch(t){return console.warn("Error setting background:",t),!1}},setScaleStep:e=>{if(!this.canvasElement)return!1;try{return this.canvasElement.scaleStep=e,!0}catch(t){return console.warn("Error setting scale step:",t),!1}},setDisabled:e=>{if(!this.canvasElement)return!1;try{return this.canvasElement.disabled=e,!0}catch(t){return console.warn("Error setting disabled state:",t),!1}}};utils={flipHorizontal:()=>{const e=this.transform.getTransform();if(!e)return!1;const[t,n,r,l,a,i]=e;return this.transform.setTransform(-t,n,r,l,a,i)},flipVertical:()=>{const e=this.transform.getTransform();if(!e)return!1;const[t,n,r,l,a,i]=e;return this.transform.setTransform(t,n,r,-l,a,i)},setupInitialView:async(e={})=>{const{paspartuFactor:t=.85,retries:n=3,retryDelay:r=200}=e;return new Promise(e=>{const l=(a=0)=>{if(!this.isReady)return a<n?void setTimeout(()=>l(a+1),r):void e(!1);try{const i=this.canvasElement.getBoundingClientRect();let o=this.image.querySelector("img")||this.image;if(!o?.naturalWidth||!o?.naturalHeight)return a<n?void setTimeout(()=>l(a+1),r):(this.transform.center(),void e(!1));if(i.width>0&&i.height>0){const n=i.width*t/o.naturalWidth,r=i.height*t/o.naturalHeight,l=Math.min(n,r,1);this.transform.setTransform(l,0,0,l,0,0)?setTimeout(()=>{this.transform.center(),this.selection.center(),e(!0)},100):(this.transform.reset(),setTimeout(()=>{l<1&&this.transform.scale(l),setTimeout(()=>{this.transform.center(),this.selection.center(),e(!0)},100)},100))}else this.transform.center(),e(!1)}catch(i){console.warn("Error in setup:",i),this.transform.center(),e(!1)}};l()})},resetAll:()=>{const e={transform:this.transform.reset(),selection:this.selection.reset(),center:!1};return setTimeout(()=>{e.center=this.transform.center()&&this.selection.center()},100),e},checkExportability:async()=>{try{return!!(await this.selection.toCanvas({width:1,height:1}))}catch{return!1}},resetZoomOnly:()=>this.transform.resetZoom(),getZoomInfo:()=>{const e=this.transform.getZoom();return{current:e,isZoomedIn:e>1,isZoomedOut:e<1,percentage:Math.round(100*e)}},setBackground:e=>this.canvas.setBackground(e)};setupEventListeners(e={}){const{onSelectionChange:t,onImageTransform:n,onAction:r,onActionStart:l,onActionMove:a,onActionEnd:i}=e,o=[];if(t&&this.selectionElement){const e=e=>{t({x:e.detail.x,y:e.detail.y,width:e.detail.width,height:e.detail.height})};this.selectionElement.addEventListener("change",e),o.push(()=>{this.selectionElement&&this.selectionElement.removeEventListener("change",e)})}if(n&&this.image){const e=e=>{n({matrix:e.detail.matrix,oldMatrix:e.detail.oldMatrix})};this.image.addEventListener("transform",e),o.push(()=>{this.image&&this.image.removeEventListener("transform",e)})}if(this.canvasElement){if(r){const e=e=>r(e.detail);this.canvasElement.addEventListener("action",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("action",e)})}if(l){const e=e=>l(e.detail);this.canvasElement.addEventListener("actionstart",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("actionstart",e)})}if(a){const e=e=>a(e.detail);this.canvasElement.addEventListener("actionmove",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("actionmove",e)})}if(i){const e=e=>i(e.detail);this.canvasElement.addEventListener("actionend",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("actionend",e)})}}return()=>{o.forEach(e=>e())}}}async function Qt(e,t,n={}){const{format:r=null,originalFormat:l="webp",onSuccess:a=null,onError:i=null,accessibilityManager:o=null}=n;try{const n=window.limboCore?.config?.getGlobal(),i=r||n?.downloadFormat||l||"webp",s=`${t.split(".")[0]}.${i}`;if(o&&o.announce(`Descargando ${s}`),e.startsWith("data:image/"))return function(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),setTimeout(()=>{document.body.removeChild(n)},100)}(e,s),a&&a(s),o&&o.announce(`${s} descargado correctamente`),!0;const c=await fetch(e,{mode:"cors"});if(!c.ok)throw new Error(`HTTP error! status: ${c.status}`);const u=await c.blob();let d=u;const b=u.type;b!==`image/${"jpg"===i?"jpeg":i}`&&function(e){return["webp","jpeg","jpg","png"].includes(e.toLowerCase())}(i)&&(d=await async function(e,t){return new Promise((n,r)=>{const l=new Image,a=URL.createObjectURL(e);l.onload=()=>{try{const r=document.createElement("canvas");r.width=l.width,r.height=l.height;r.getContext("2d").drawImage(l,0,0);const i=`image/${"jpg"===t?"jpeg":t}`,o="png"===t?void 0:.92;r.toBlob(t=>{URL.revokeObjectURL(a),n(t||e)},i,o)}catch(r){URL.revokeObjectURL(a),n(e)}},l.onerror=()=>{URL.revokeObjectURL(a),n(e)},l.src=a})}(u,i));const m=window.URL.createObjectURL(d),h=document.createElement("a");return h.href=m,h.download=s,h.style.display="none",document.body.appendChild(h),h.click(),setTimeout(()=>{window.URL.revokeObjectURL(m),document.body.removeChild(h)},100),a&&a(s),o&&o.announce(`${s} descargado correctamente`),!0}catch(s){return console.error("Error downloading image:",s),i&&i(s),o&&o.announce(`Error al descargar la imagen: ${s.message}`),!1}}const Yt=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,default:Qt,downloadImage:Qt},Symbol.toStringTag,{value:"Module"}));function Xt({image:e,onSave:i,onCancel:u,onDelete:d,onError:b=null,deleting:m=!1,onVariantCreated:h=null,onUpload:p=null,uploading:f=!1,cropperConfig:g=null}){const[y,v]=t(!1),[w,x]=t(null),[k,C]=t(!1),[S,N]=t(!0),[E,$]=t(!0),[_,z]=t({x:20,y:100}),[T,A]=t(!1),[P,M]=t({x:0,y:0}),[I,L]=t(!1),[D,O]=t(!0),[R,j]=t(!1),[F,U]=t({horizontal:!1,vertical:!1}),[q,W]=t(!1),[V,H]=t(!1),[K,G]=t(!1),[Q,Y]=t(!1),[X]=t(()=>{if(!e||!e.filename)return"image";const[t]=e.filename.split(".");return t}),J=a(()=>{if(g)return{mandatoryCrops:g.mandatoryCrops||[],allowCustomCrops:!1!==g.allowAdditionalCrops,showDimensionInputs:!0===g.showDimensionInputs,maxCrops:g.maxCrops||null};const e=window.limboCore?.config?.getGlobal()||{};return{mandatoryCrops:e.cropper?.mandatoryCrops||[],allowCustomCrops:!1!==e.cropper?.allowCustomCrops,showDimensionInputs:!0===e.cropper?.showDimensionInputs,maxCrops:e.cropper?.maxCrops||null}},[g]),[Z,ee]=t(()=>J.mandatoryCrops.length>0?J.mandatoryCrops.map((e,t)=>({id:`crop-${t}`,label:e.label,width:e.width,height:e.height,required:!1!==e.required,isCustom:!1,confirmed:!1,lockDimensions:!(!e.width||!e.height),savedState:null})):[{id:"crop-default-0",label:X,width:e.width||1920,height:e.height||1080,required:!1,isCustom:!0,confirmed:!1,savedState:null}]),[ne,re]=t(0),le=Z[ne],ae=a(()=>le&&le.width&&le.height?le.width/le.height:"",[le]),ie=a(()=>{const e=50;if(!ae||""===ae)return{minWidth:e,minHeight:e};if(ae>=1){return{minWidth:e,minHeight:e/ae}}return{minWidth:e*ae,minHeight:e}},[ae]),[oe,se]=t(!1),[ce,ue]=t([]),[de,be]=t(null),me=window.limboCore?.accessibilityManager,{createVariantFromBlob:he,loading:pe,error:fe}=Kt(),ge=((e,a={})=>{const i=l(null),o=l(null),s=l(null),c=l(null),[u,d]=t(null),[b,m]=t(null),[h,p]=t(!1),[f,g]=t(!0),[y,v]=t(0),w={aspectRatio:"",shade:!0,paspartuFactor:.85,...a};n(()=>{i.current&&o.current&&s.current&&(c.current=new Gt(i,o,s),p(!0))},[]),n(()=>{if(c.current)return c.current.setupEventListeners({onSelectionChange:e=>{d(e)},onImageTransform:()=>{v(e=>e+1)}})},[h]),n(()=>{c.current&&e&&(async()=>{c.current.selection.setAspectRatio(w.aspectRatio),c.current.canvas.setBackground(w.shade),await c.current.utils.setupInitialView({paspartuFactor:w.paspartuFactor});const e=await c.current.utils.checkExportability();g(e);const t=o.current?.querySelector("img")||o.current;t?.naturalWidth&&t?.naturalHeight&&m({naturalWidth:t.naturalWidth,naturalHeight:t.naturalHeight,currentWidth:t.width,currentHeight:t.height})})()},[e]),n(()=>{c.current&&h&&c.current.selection.setAspectRatio(w.aspectRatio)},[w.aspectRatio,h]),n(()=>{c.current&&h&&c.current.canvas.setBackground(w.shade)},[w.shade,h]);const x=r(()=>({move:(e,t)=>c.current?.transform.move(e,t)||!1,zoom:e=>c.current?.transform.zoom(e)||!1,rotate:e=>c.current?.transform.rotate(e)||!1,center:()=>c.current?.transform.center()||!1,reset:()=>c.current?.transform.reset()||!1,resetZoom:()=>c.current?.transform.resetZoom()||!1,setZoom:e=>c.current?.transform.setZoom(e)||!1,getZoom:()=>c.current?.transform.getZoom()||1,fitToCanvas:e=>c.current?.transform.fitToCanvas(e)||!1,flipHorizontal:()=>c.current?.utils.flipHorizontal()||!1,flipVertical:()=>c.current?.utils.flipVertical()||!1}),[]),k=r(()=>({center:()=>c.current?.selection.center()||!1,reset:()=>c.current?.selection.reset()||!1,setCoverage:e=>c.current?.selection.setCoverage(e)||!1,setAspectRatio:e=>c.current?.selection.setAspectRatio(e)||!1,toCanvas:e=>c.current?.selection.toCanvas(e)||Promise.resolve(null)}),[]),C=r(()=>({resetAll:()=>{if(c.current){const e=c.current.utils.resetAll();return d(null),e}return!1},setBackground:e=>c.current?.canvas.setBackground(e)||!1,resetZoomOnly:()=>c.current?.utils.resetZoomOnly()||!1,getZoomInfo:()=>c.current?.utils.getZoomInfo()||{current:1,percentage:100,isZoomedIn:!1,isZoomedOut:!1}}),[]);return{refs:{canvasRef:i,imageRef:o,selectionRef:s},state:{cropData:u,imageInfo:b,isReady:h,canExport:f,transformVersion:y},transform:x(),selection:k(),utils:C(),manager:c.current}})(e,{aspectRatio:ae||null,showGrid:S,shade:E,initialCoverage:.5,paspartuFactor:.85}),{refs:ye,state:ve,transform:we,selection:xe,utils:ke}=ge,{canvasRef:Ce,imageRef:Se,selectionRef:Ne}=ye,{cropData:Ee,imageInfo:$e,canExport:_e,transformVersion:ze}=ve,Te=a(()=>$e||{naturalWidth:e.width||1920,naturalHeight:e.height||1080,currentWidth:e.width||1920,currentHeight:e.height||1080},[$e,e.width,e.height]),Ae=r(()=>N(e=>!e),[]),Pe=r(()=>$(e=>!e),[]),Me=r(()=>H(e=>!e),[]),Ie=r(()=>G(e=>!e),[]),Le=r(()=>Y(e=>!e),[]),De=r(()=>we.center(),[we]),Oe=r(()=>xe.center(),[xe]),Re=r(()=>xe.reset(),[xe]),je=r((e,t)=>we.move(e,t),[we]),Fe=r(e=>we.zoom(e),[we]),Ue=r(e=>we.rotate(e),[we]),qe=r(e=>{xe.setCoverage(e)},[xe]),Be=r(()=>{U(e=>{const t=!e.horizontal;return we.flipHorizontal(),{...e,horizontal:t}})},[we]),We=r(()=>{U(e=>{const t=!e.vertical;return we.flipVertical(),{...e,vertical:t}})},[we]),Ve=r(()=>{if(!ge.manager||!ve.isReady)return null;try{const e=Ee?{...Ee}:null;let t=null;if(Ne.current){const e=Ne.current;t={x:e.x??0,y:e.y??0,width:e.width??0,height:e.height??0}}let n=null;if(Se.current){const e=Se.current.$getTransform?.();e&&Array.isArray(e)&&(n=[...e])}const r={cropData:e,selectorState:t,imageTransform:n,flipState:{horizontal:F.horizontal,vertical:F.vertical}};return console.log(`[CropperView] 💾 Guardando estado del crop ${ne}:`,r),ee(e=>e.map((e,t)=>t===ne?{...e,savedState:r}:e)),r}catch(e){return console.warn("Error saving crop state:",e),null}},[ge.manager,ve.isReady,Ee,F,ne,Se,Ne]),He=r(e=>{const t=Z[e];if(!t||!t.savedState)return console.log(`[CropperView] ℹ️ No hay estado guardado para crop ${e}, centrando...`),void setTimeout(()=>{De(),setTimeout(()=>Oe(),100)},100);if(ge.manager&&ve.isReady)try{const{savedState:n}=t;if(console.log(`[CropperView] ♻️ Restaurando estado del crop ${e}:`,n),n.imageTransform&&Se.current&&Array.isArray(n.imageTransform)&&setTimeout(()=>{if(Se.current&&Se.current.$setTransform){const[e,t,r,l,a,i]=n.imageTransform;Se.current.$setTransform(e,t,r,l,a,i),console.log(`[CropperView] ✅ Imagen restaurada: transform(${e.toFixed(2)}, ${t.toFixed(2)}, ${r.toFixed(2)}, ${l.toFixed(2)}, ${a.toFixed(0)}, ${i.toFixed(0)})`)}},100),n.selectorState&&Ne.current){const{x:e,y:t,width:r,height:l}=n.selectorState;setTimeout(()=>{Ne.current&&(Ne.current.x=e,Ne.current.y=t,Ne.current.width=r,Ne.current.height=l,Ne.current.$render&&Ne.current.$render(),console.log(`[CropperView] ✅ Selector restaurado: ${r}×${l} en (${e}, ${t})`))},150)}n.flipState&&U({horizontal:n.flipState.horizontal??!1,vertical:n.flipState.vertical??!1}),console.log("[CropperView] ✨ Estado restaurado completamente")}catch(n){console.error("Error restoring crop state:",n),setTimeout(()=>{De(),setTimeout(()=>Oe(),100)},100)}else console.warn("Cropper not ready for state restoration")},[Z,ge.manager,ve.isReady,De,Oe,Ne,Se]),Ke=r(()=>{for(let e=0;e<Z.length;e++){const t=Z[e];if(!t.label||""===t.label.trim())return e}return-1},[Z]),Ge=r(async e=>{e!==ne&&(j(!0),Ve(),await new Promise(e=>setTimeout(e,100)),re(e),await new Promise(e=>setTimeout(e,250)),He(e),await new Promise(e=>setTimeout(e,200)),j(!1))},[ne,Ve,He]),Qe=r(()=>{if(!J.allowCustomCrops)return void alert("No se pueden añadir recortes personalizados en este modo.");const t={id:`crop-custom-${Date.now()}`,label:`Recorte ${Z.length+1}`,width:e.width||1920,height:e.height||1080,required:!1,isCustom:!0,confirmed:!1,savedState:null};ee(e=>[...e,t]),me?.announce(`Nuevo recorte personalizado añadido: ${t.label}. Selecciónalo para editarlo.`)},[J.allowCustomCrops,Z.length,e.width,e.height,me]),Ye=r((e,t)=>{const n=parseInt(t,10);""===t||isNaN(n)||ee(t=>t.map((t,r)=>r===ne?{...t,[e]:n}:t))},[ne]),Xe=r(e=>{const t=le[e];let n=100;if(Ce.current&&$e){const e=Ce.current.getBoundingClientRect(),t=Math.min(e.width,e.height);n=Math.max(100,Math.round(.05*t))}const r=Math.max(n,Math.min(5e3,t));r!==t&&ee(t=>t.map((t,n)=>n===ne?{...t,[e]:r}:t));const l={...le,[e]:r},a=l.width/l.height,i=xe.getData?.();xe.setAspectRatio(a),i&&void 0!==i.x&&setTimeout(()=>{xe.set?.(i.x,i.y,i.width,i.height)},50)},[ne,le,xe,Ce,$e]),Je=r(e=>{ee(t=>t.map((t,n)=>n===ne?{...t,label:e}:t))},[ne]),Ze=r((e,t=null)=>{t=t||Z[e].label;if(!window.confirm(`¿Estás seguro de que deseas eliminar "${t||"este recorte"}"? Esta acción también eliminará todos sus recortes.`))return;const n=Z[e];if(n.required)alert("No se puede eliminar un recorte obligatorio.");else if(1!==Z.length){if(ee(t=>t.filter((t,n)=>n!==e)),e===ne){const t=Math.max(0,e-1);re(t)}else e<ne&&re(e=>e-1);me?.announce(`Recorte ${n.label} eliminado`)}else alert("Debe haber al menos un recorte.")},[Z,ne,me]),et=r(async()=>{if(!_e)return null;try{const t=await xe.toCanvas({width:800,height:600,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});return t?t.toDataURL(`image/${globalThis.downloadFormat||e.mime_type.split("/")[1]||"webp"}`,.9):null}catch(t){return console.warn("Error generating preview:",t),null}},[_e,e.mime_type,xe]),tt=r(async()=>{if(y)return v(!1),x(null),void C(!1);if(_e){v(!0),C(!0);try{const e=await et();e?x(e):(v(!1),alert("No se puede exportar el recorte por restricciones de CORS en la imagen original."))}finally{C(!1)}}else alert("No se puede exportar el recorte por restricciones de CORS en la imagen original.")},[_e,et,y]),nt=r(e=>{e.target.closest(".limbo-preview-modal-header")&&(A(!0),M({x:e.clientX-_.x,y:e.clientY-_.y}))},[_]),rt=r(e=>{T&&(e.preventDefault(),z({x:e.clientX-P.x,y:e.clientY-P.y}))},[T,P]),lt=r(()=>{A(!1)},[]),at=r(e=>{if(!e.target.closest(".limbo-preview-modal-header"))return;const t=e.touches[0];A(!0),M({x:t.clientX-_.x,y:t.clientY-_.y})},[_]),it=r(e=>{if(!T)return;e.preventDefault();const t=e.touches[0];z({x:t.clientX-P.x,y:t.clientY-P.y})},[T,P]),ot=r(()=>{A(!1)},[]);n(()=>{if(T)return document.addEventListener("mousemove",rt),document.addEventListener("mouseup",lt),document.addEventListener("touchmove",it,{passive:!1}),document.addEventListener("touchend",ot),()=>{document.removeEventListener("mousemove",rt),document.removeEventListener("mouseup",lt),document.removeEventListener("touchmove",it),document.removeEventListener("touchend",ot)}},[T,rt,lt,it,ot]),n(()=>{if(!I)return;const e=e=>{"Escape"===e.key&&L(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[I]);const st=r(async(t,n=null)=>{const r=Z[t];if(!r)throw new Error(`Crop ${t} no encontrado`);if(!r.savedState&&t!==ne)throw new Error(`El recorte "${r.label}" aún no ha sido configurado`);const l={index:ne,imageTransform:Se.current?.$getTransform?.(),selectorState:Ne.current?{x:Ne.current.x,y:Ne.current.y,width:Ne.current.width,height:Ne.current.height}:null};try{if(t!==ne&&r.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para guardado...`),r.savedState.imageTransform&&Se.current?.$setTransform){const[e,t,n,l,a,i]=r.savedState.imageTransform;Se.current.$setTransform(e,t,n,l,a,i)}if(r.savedState.selectorState&&Ne.current){const{x:e,y:t,width:n,height:l}=r.savedState.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=n,Ne.current.height=l,Ne.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const l=Math.min(r.width,5e3),a=Math.min(r.height,5e3),i=await xe.toCanvas({width:l,height:a,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!i)throw new Error(`No se pudo generar el canvas para "${r.label}"`);const o=globalThis.downloadFormat||"webp",s="webp"===o?"image/webp":"png"===o?"image/png":"image/jpeg",c=.9,u=await new Promise((e,t)=>{i.toBlob(n=>{n?e(n):t(new Error("No se pudo convertir el canvas a blob"))},s,c)});console.log("[CropperView] Canvas convertido a blob:",{size:u.size,type:u.type,dimensions:`${l}x${a}`});const d=`${r.label||"crop"}_${l}_${a}`,b=n||e.id;if(!b||"string"==typeof b&&b.startsWith("external")){console.log("[CropperView] 🌐 Imagen externa detectada, generando resultado local");const e=URL.createObjectURL(u),t={id:`local-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:d,filename:`${d}.${o}`,url:e,urlSigned:e,width:l,height:a,format:o,size:u.size,mime_type:s,blob:u,isLocal:!0};return me?.announceSuccess(`Recorte creado localmente: ${d}`),t}const m=await he(b,u,{name:d,width:l,height:a,format:o});if(m)return me?.announceSuccess(`Recorte creado: ${d}`),h?.(b,m),m;throw new Error("No se pudo crear la variante")}finally{if(t!==ne&&l.imageTransform&&Se.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${l.index}...`);const[e,t,n,r,a,i]=l.imageTransform;if(Se.current.$setTransform(e,t,n,r,a,i),l.selectorState&&Ne.current){const{x:e,y:t,width:n,height:r}=l.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=n,Ne.current.height=r,Ne.current.$render?.()}}}},[Z,ne,xe,he,e.id,h,me,Se,Ne]),ct=r(async()=>{if(!_e){const e="No se puede exportar el recorte por restricciones de CORS en la imagen original.";return me?.announceError(e),void alert(e)}if(!ve.isReady){const e="El cropper aún no está inicializado. Espera un momento e inténtalo de nuevo.";return me?.announceError(e),void alert(e)}Ve(),me?.announce("Creando recorte de la imagen");try{let t=e.id,n=null;if(e.file&&p){me?.announce("Subiendo imagen...");const r=await p(e.file);if(!r||!r.id)throw new Error("No se pudo subir la imagen al servidor");t=r.id,n=r,me?.announceSuccess("Imagen subida correctamente")}const r=await st(ne,t);r&&i(n?{crops:[r],asset:n}:r)}catch(t){console.warn("Error creating crop variant:",t);const e=t.message||"No se pudo crear el recorte. Inténtalo de nuevo.";me?.announceError(e),alert(e),b?.(t)}},[_e,ve.isReady,me,Ve,st,ne,i,b,e.file,e.id,p]),ut=r(async t=>{Ve(),me?.announce(`Guardando ${t.length} recortes...`);try{let r=e.id,l=null;if(e.file&&p){me?.announce("Subiendo imagen...");const t=await p(e.file);if(!t||!t.id)throw new Error("No se pudo subir la imagen al servidor");r=t.id,l=t,me?.announceSuccess("Imagen subida correctamente")}const a=[],o=[];for(const e of t)try{const t=await st(e,r);t&&a.push(t)}catch(n){o.push({crop:Z[e]?.label||`Crop ${e}`,error:n.message})}if(a.length>0&&(me?.announceSuccess(`${a.length} recorte(s) guardado(s) correctamente`),i(l?{crops:a,asset:l}:a)),o.length>0){const e=`Errores al guardar algunos recortes:\n${o.map(e=>`- ${e.crop}: ${e.error}`).join("\n")}`;me?.announceError(e),alert(e)}}catch(n){const e=n.message||"Error al procesar los recortes";me?.announceError(e),alert(e),b?.(n)}},[Ve,st,Z,me,i,e.file,e.id,p,b]),dt=r(async()=>{const e=Ke();if(-1!==e){const t=Z[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void re(e)}if(Z.length>1){be("save");const e=Z.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.required||e.savedState||t===ne).map(({index:e})=>e);return ue(e),void se(!0)}await ct()},[Ke,Z,ct,ne]),bt=r(async t=>{const n=Z[t];if(!n)throw new Error(`Crop ${t} no encontrado`);if(!n.savedState&&t!==ne)throw new Error(`El recorte "${n.label}" aún no ha sido configurado`);const r={index:ne,imageTransform:Se.current?.$getTransform?.(),selectorState:Ne.current?{x:Ne.current.x,y:Ne.current.y,width:Ne.current.width,height:Ne.current.height}:null};try{if(t!==ne&&n.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para descarga...`),n.savedState.imageTransform&&Se.current?.$setTransform){const[e,t,r,l,a,i]=n.savedState.imageTransform;Se.current.$setTransform(e,t,r,l,a,i)}if(n.savedState.selectorState&&Ne.current){const{x:e,y:t,width:r,height:l}=n.savedState.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=r,Ne.current.height=l,Ne.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const r=await xe.toCanvas({width:n.width,height:n.height,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!r)throw new Error(`No se pudo generar el canvas para "${n.label}"`);const l=r.toDataURL(`image/${globalThis.downloadFormat||e.mime_type.split("/")[1]||"webp"}`,.9),a=`${(n.label||"crop").replace(/\.[^/.]+$/,"").replace(/\s+/g,"-").trim()}_${n.width}_${n.height}`;return await Qt(l,a,{accessibilityManager:me,onSuccess:e=>{console.log(`✅ Descargado: ${e}`)},onError:e=>{throw new Error(`Error al descargar "${n.label}": ${e.message}`)}}),{crop:n.label,filename:a}}finally{if(t!==ne&&r.imageTransform&&Se.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${r.index}...`);const[e,t,n,l,a,i]=r.imageTransform;if(Se.current.$setTransform(e,t,n,l,a,i),r.selectorState&&Ne.current){const{x:e,y:t,width:n,height:l}=r.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=n,Ne.current.height=l,Ne.current.$render?.()}}}},[Z,ne,xe,e.mime_type,me,Se,Ne]),mt=r(async e=>{Ve(),me?.announce(`Descargando ${e.length} recortes...`);const t=[],n=[];for(const l of e)try{const e=await bt(l);e&&t.push(e)}catch(r){n.push({crop:Z[l]?.label||`Crop ${l}`,error:r.message})}if(t.length>0&&me?.announceSuccess(`${t.length} recorte(s) descargado(s) correctamente`),n.length>0){const e=`Errores al descargar algunos recortes:\n${n.map(e=>`- ${e.crop}: ${e.error}`).join("\n")}`;me?.announceError(e),alert(e)}},[Ve,bt,Z,me]),ht=r(async()=>{if(!_e){const e="No se puede descargar el recorte por restricciones de CORS en la imagen original.";return me?.announceError(e),void alert(e)}Ve(),me?.announce("Preparando descarga del recorte");try{await bt(ne),me?.announceSuccess("Recorte descargado correctamente")}catch(e){console.error("Error downloading crop:",e);const t=e.message||"Error al descargar el recorte";me?.announceError(t),alert(t)}},[_e,me,Ve,bt,ne]),pt=r(async()=>{const e=Ke();if(-1!==e){const t=Z[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void re(e)}if(Z.length>1){be("download");const e=Z.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.savedState||t===ne).map(({index:e})=>e);return ue(e),void se(!0)}await ht()},[Ke,Z,ht,ne]),ft=a(()=>!!e.file||(!e.id||!("string"!=typeof e.id||!e.id.startsWith("external"))),[e.file,e.id]),gt=r(async()=>{try{if(e.file&&p){me?.announce("Subiendo imagen original...");const t=await p(e.file);if(!t||!t.id)throw new Error("No se pudo subir la imagen al servidor");return me?.announceSuccess("Imagen guardada correctamente"),void i({asset:t,crops:[]})}if(ft){me?.announce("Conservando imagen original...");const t={id:`local-original-${Date.now()}`,name:e.filename||"original",filename:e.filename||"image.jpg",url:e.url,urlSigned:e.url,width:e.width||$e?.naturalWidth||1920,height:e.height||$e?.naturalHeight||1080,mime_type:e.mime_type||"image/jpeg",isLocal:!0,isOriginal:!0};return me?.announceSuccess("Imagen original conservada"),void i({crops:[t]})}u()}catch(t){console.error("Error guardando imagen original:",t);const e=t.message||"No se pudo guardar la imagen. Inténtalo de nuevo.";me?.announceError(e),alert(e),b?.(t)}},[e,$e,p,u,i,b,me,ft]);return n(()=>{v(!1),x(null)},[e]),n(()=>{ge.manager&&ve.isReady&&D&&(console.log("[CropperView] Carga inicial completada, centrando imagen y selector..."),setTimeout(()=>{De(),setTimeout(()=>{Oe(),O(!1),console.log("[CropperView] Carga inicial finalizada")},100)},50))},[ge.manager,ve.isReady,D,De,Oe]),n(()=>{ge.manager&&ve.isReady&&(ae&&xe.setAspectRatio(ae),ke.setBackground(E))},[ae,E,ge.manager,ve.isReady,xe,ke]),n(()=>{if(!$e||!ve.isReady||J.mandatoryCrops.length>0)return;const e=Z[0];if(e&&"crop-default-0"===e.id&&(1920===e.width||1080===e.height)){const t=Math.min($e.naturalWidth,5e3),n=Math.min($e.naturalHeight,5e3);ee([{...e,width:t,height:n}]),console.log(`[CropperView] Crop por defecto actualizado a ${t}×${n}px`)}},[$e,ve.isReady,J.mandatoryCrops.length,Z]),n(()=>{if(!y||!_e)return;const e=setTimeout(async()=>{C(e=>!w&&!e||e);try{const e=await et();e&&x(e)}finally{C(!1)}},300);return()=>{clearTimeout(e),C(!1)}},[Ee,ze,y,_e,et,ae,F,w]),n(()=>{const e=Ce.current,t=t=>{if("Delete"===t.key||"Backspace"===t.key||"Backspace"===t.key&&t.metaKey||"Backspace"===t.key&&t.ctrlKey){const n=t.target;if(e&&(n===e||n===document.body||n===document.documentElement||"CROPPER-CANVAS"===n.tagName||"CROPPER-SELECTION"===n.tagName||"CROPPER-IMAGE"===n.tagName||"CROPPER-HANDLE"===n.tagName||"CROPPER-GRID"===n.tagName||n.closest("cropper-canvas")||e.contains(n)))return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1}};return document.addEventListener("keydown",t,!0),document.addEventListener("keyup",t,!0),window.addEventListener("keydown",t,!0),e&&e.addEventListener("keydown",t,!0),()=>{document.removeEventListener("keydown",t,!0),document.removeEventListener("keyup",t,!0),window.removeEventListener("keydown",t,!0),e&&e.removeEventListener("keydown",t,!0)}},[Ce]),e?/* @__PURE__ */s("div",{className:"limbo-cropper-view lb:px-2 lb:border-2 lb:border-gray-200/50 lb:rounded-lg lb:max-w-7xl lb:mx-auto lb:w-full lb:min-w-full lb:h-full lb:min-h-full lb:flex lb:flex-col",children:[
|
|
226
|
+
/* @__PURE__ */o("div",{className:g,role:"tablist","aria-label":"Opciones de subida de imagen",style:i?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:ve.map(e=>{const t=u===e.id;/* @__PURE__ */
|
|
227
|
+
return o("button",{type:"button","data-upload-tab-id":e.id,className:y(t),"aria-current":t?"page":void 0,"aria-selected":t,role:"tab",tabIndex:t?0:-1,onClick:()=>d(e.id),onKeyDown:t=>((e,t)=>{const n=ve.findIndex(e=>e.id===t);let r=n;switch(e.key){case"ArrowLeft":e.preventDefault(),r=n>0?n-1:ve.length-1;break;case"ArrowRight":e.preventDefault(),r=n<ve.length-1?n+1:0;break;case"Home":e.preventDefault(),r=0;break;case"End":e.preventDefault(),r=ve.length-1;break;case"Enter":case" ":return e.preventDefault(),void d(t);default:return}const l=ve[r];l&&(d(l.id),setTimeout(()=>{const e=document.querySelector(`[data-upload-tab-id="${l.id}"]`);e&&e.focus()},0))})(t,e.id),id:`upload-tab-${e.id}`,"aria-controls":`upload-tabpanel-${e.id}`,style:c?{WebkitTapHighlightColor:"transparent"}:void 0,children:e.label},e.id)})}),
|
|
228
|
+
/* @__PURE__ */s("div",{className:"limbo-tab-content lb:px-2 lb:py-2",role:"tabpanel",id:`upload-tabpanel-${u}`,"aria-labelledby":`upload-tab-${u}`,children:["upload"===u&&/* @__PURE__ */o(ne,{file:b,setFile:m,previewUrl:h,setPreviewUrl:p,fileInputRef:f,onSelect:e,disabled:n}),"ai"===u&&/* @__PURE__ */o(ce,{apiKey:r,prod:a,disabled:n,onSelect:e}),"stock"===u&&/* @__PURE__ */o(me,{apiKey:r,prod:a,disabled:n,onSelect:e}),"portals"===u&&/* @__PURE__ */o(ye,{apiKey:r,prod:a,disabled:n,onSelect:e})]})]})}const xe="undefined"!=typeof window&&void 0!==window.document,ke=xe?window:{},Ce=!!xe&&"ontouchstart"in ke.document.documentElement,Se=!!xe&&"PointerEvent"in ke,Ne="cropper",Ee=`${Ne}-canvas`,$e=`${Ne}-crosshair`,_e=`${Ne}-grid`,ze=`${Ne}-handle`,Te=`${Ne}-image`,Ae=`${Ne}-selection`,Pe=`${Ne}-shade`,Me=`${Ne}-viewer`,Ie="select",Le="move",De="scale",Oe="rotate",Re="transform",je="none",Fe="n-resize",Ue="e-resize",qe="s-resize",Be="w-resize",We="ne-resize",Ve="nw-resize",He="se-resize",Ke="sw-resize",Ge=Se?"pointerdown":Ce?"touchstart":"mousedown",Qe=Se?"pointermove":Ce?"touchmove":"mousemove",Ye=Se?"pointerup pointercancel":Ce?"touchend touchcancel":"mouseup",Xe="error",Je="keydown",Ze="load",et="wheel",tt="action",nt="actionend",rt="actionstart",lt="change",at="transform";const it=Number.isNaN||ke.isNaN;function ot(e){return"number"==typeof e&&!it(e)}function st(e){return ot(e)&&e>0&&e<1/0}function ct(e){return"object"==typeof e&&null!==e}const{hasOwnProperty:ut}=Object.prototype;function dt(e){if(!ct(e))return!1;try{const{constructor:t}=e,{prototype:n}=t;return t&&n&&ut.call(n,"isPrototypeOf")}catch(t){return!1}}function bt(e){return"function"==typeof e}function mt(e){return"object"==typeof e&&null!==e&&1===e.nodeType}const ht=/([a-z\d])([A-Z])/g;function pt(e){return String(e).replace(ht,"$1-$2").toLowerCase()}const ft=/-[A-z\d]/g;function gt(e){return e.replace(ft,e=>e.slice(1).toUpperCase())}const yt=/\s\s*/;function vt(e,t,n,r){t.trim().split(yt).forEach(t=>{e.removeEventListener(t,n,r)})}function wt(e,t,n,r){t.trim().split(yt).forEach(t=>{e.addEventListener(t,n,r)})}function xt(e,t,n,r){wt(e,t,n,Object.assign(Object.assign({},r),{once:!0}))}const kt={bubbles:!0,cancelable:!0,composed:!0};const Ct=Promise.resolve();function St(e){const{documentElement:t}=e.ownerDocument,n=e.getBoundingClientRect();return{left:n.left+(ke.pageXOffset-t.clientLeft),top:n.top+(ke.pageYOffset-t.clientTop)}}const Nt=/deg|g?rad|turn$/i;function Et(e){const t=parseFloat(e)||0;if(0!==t){const[n="rad"]=String(e).match(Nt)||[];switch(n.toLowerCase()){case"deg":return t/360*(2*Math.PI);case"grad":return t/400*(2*Math.PI);case"turn":return t*(2*Math.PI)}}return t}const $t="contain";function _t(e,t=$t){const{aspectRatio:n}=e;let{width:r,height:l}=e;const a=st(r),i=st(l);if(a&&i){const e=l*n;t===$t&&e>r||"cover"===t&&e<r?l=r/n:r=l*n}else a?l=r/n:i&&(r=l*n);return{width:r,height:l}}function zt(e,...t){if(0===t.length)return e;const[n,r,l,a,i,o]=e,[s,c,u,d,b,m]=t[0];return zt(e=[n*s+l*c,r*s+a*c,n*u+l*d,r*u+a*d,n*b+l*m+i,r*b+a*m+o],...t.slice(1))}const Tt=/left|top|width|height/i,At="open",Pt=/* @__PURE__ */new WeakMap,Mt=/* @__PURE__ */new WeakMap,It=/* @__PURE__ */new Map,Lt=ke.document&&Array.isArray(ke.document.adoptedStyleSheets)&&"replaceSync"in ke.CSSStyleSheet.prototype;class Dt extends HTMLElement{get $sharedStyle(){return(this.themeColor?`:host{--theme-color: ${this.themeColor};}`:"")+":host([hidden]){display:none!important}"}constructor(){var e,t;super(),this.shadowRootMode=At,this.slottable=!0;const n=null===(t=null===(e=Object.getPrototypeOf(this))||void 0===e?void 0:e.constructor)||void 0===t?void 0:t.$name;n&&It.set(n,this.tagName.toLowerCase())}static get observedAttributes(){return["shadow-root-mode","slottable","theme-color"]}attributeChangedCallback(e,t,n){if(Object.is(n,t))return;const r=gt(e);let l=n;switch(typeof this[r]){case"boolean":l=null!==n&&"false"!==n;break;case"number":l=Number(n)}switch(this[r]=l,e){case"theme-color":{const e=Mt.get(this),t=this.$sharedStyle;e&&t&&(Lt?e.replaceSync(t):e.textContent=t);break}}}$propertyChangedCallback(e,t,n){if(!Object.is(n,t))switch(e=pt(e),typeof n){case"boolean":!0===n?this.hasAttribute(e)||this.setAttribute(e,""):this.removeAttribute(e);break;case"number":n=it(n)?"":String(n);default:n?this.getAttribute(e)!==n&&this.setAttribute(e,n):this.removeAttribute(e)}}connectedCallback(){Object.getPrototypeOf(this).constructor.observedAttributes.forEach(e=>{const t=gt(e);let n=this[t];(function(e){return void 0===e})(n)||this.$propertyChangedCallback(t,void 0,n),Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n,set(e){const r=n;n=e,this.$propertyChangedCallback(t,r,e)}})});const e=this.shadowRoot||this.attachShadow({mode:this.shadowRootMode||At});if(Pt.set(this,e),Mt.set(this,this.$addStyles(this.$sharedStyle)),this.$style&&this.$addStyles(this.$style),this.$template){const t=document.createElement("template");t.innerHTML=this.$template,e.appendChild(t.content)}if(this.slottable){const t=document.createElement("slot");e.appendChild(t)}}disconnectedCallback(){Mt.has(this)&&Mt.delete(this),Pt.has(this)&&Pt.delete(this)}$getTagNameOf(e){var t;return null!==(t=It.get(e))&&void 0!==t?t:e}$setStyles(e){return Object.keys(e).forEach(t=>{let n=e[t];ot(n)&&(n=0!==n&&Tt.test(t)?`${n}px`:String(n)),this.style[t]=n}),this}$getShadowRoot(){return this.shadowRoot||Pt.get(this)}$addStyles(e){let t;const n=this.$getShadowRoot();return Lt?(t=new CSSStyleSheet,t.replaceSync(e),n.adoptedStyleSheets=n.adoptedStyleSheets.concat(t)):(t=document.createElement("style"),t.textContent=e,n.appendChild(t)),t}$emit(e,t,n){return function(e,t,n,r){return e.dispatchEvent(new CustomEvent(t,Object.assign(Object.assign(Object.assign({},kt),{detail:n}),r)))}(this,e,t,n)}$nextTick(e){return function(e,t){return t?Ct.then(e?t.bind(e):t):Ct}(this,e)}static $define(e,t){ct(e)&&(t=e,e=""),e||(e=this.$name||this.name),e=pt(e),xe&&ke.customElements&&!ke.customElements.get(e)&&customElements.define(e,this,t)}}Dt.$version="2.1.0";class Ot extends Dt{constructor(){super(...arguments),this.$onPointerDown=null,this.$onPointerMove=null,this.$onPointerUp=null,this.$onWheel=null,this.$wheeling=!1,this.$pointers=/* @__PURE__ */new Map,this.$style=':host{display:block;min-height:100px;min-width:200px;overflow:hidden;position:relative;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([background]){background-color:#fff;background-image:repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc),repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc);background-image:repeating-conic-gradient(#ccc 0 25%,#fff 0 50%);background-position:0 0,.5rem .5rem;background-size:1rem 1rem}:host([disabled]){pointer-events:none}:host([disabled]):after{bottom:0;content:"";cursor:not-allowed;display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}',this.$action=je,this.background=!1,this.disabled=!1,this.scaleStep=.1,this.themeColor="#39f"}static get observedAttributes(){return super.observedAttributes.concat(["background","disabled","scale-step"])}connectedCallback(){super.connectedCallback(),this.disabled||this.$bind()}disconnectedCallback(){this.disabled||this.$unbind(),super.disconnectedCallback()}$propertyChangedCallback(e,t,n){if(!Object.is(n,t)&&(super.$propertyChangedCallback(e,t,n),"disabled"===e))n?this.$unbind():this.$bind()}$bind(){this.$onPointerDown||(this.$onPointerDown=this.$handlePointerDown.bind(this),wt(this,Ge,this.$onPointerDown)),this.$onPointerMove||(this.$onPointerMove=this.$handlePointerMove.bind(this),wt(this.ownerDocument,Qe,this.$onPointerMove)),this.$onPointerUp||(this.$onPointerUp=this.$handlePointerUp.bind(this),wt(this.ownerDocument,Ye,this.$onPointerUp)),this.$onWheel||(this.$onWheel=this.$handleWheel.bind(this),wt(this,et,this.$onWheel,{passive:!1,capture:!0}))}$unbind(){this.$onPointerDown&&(vt(this,Ge,this.$onPointerDown),this.$onPointerDown=null),this.$onPointerMove&&(vt(this.ownerDocument,Qe,this.$onPointerMove),this.$onPointerMove=null),this.$onPointerUp&&(vt(this.ownerDocument,Ye,this.$onPointerUp),this.$onPointerUp=null),this.$onWheel&&(vt(this,et,this.$onWheel,{capture:!0}),this.$onWheel=null)}$handlePointerDown(e){const{buttons:t,button:n,type:r}=e;if(this.disabled||("pointerdown"===r&&"mouse"===e.pointerType||"mousedown"===r)&&(ot(t)&&1!==t||ot(n)&&0!==n||e.ctrlKey))return;const{$pointers:l}=this;let a="";if(e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e,pageX:t,pageY:n})=>{l.set(e,{startX:t,startY:n,endX:t,endY:n})});else{const{pointerId:t=0,pageX:n,pageY:r}=e;l.set(t,{startX:n,startY:r,endX:n,endY:r})}l.size>1?a=Re:mt(e.target)&&(a=e.target.action||e.target.getAttribute("action")||""),!1!==this.$emit(rt,{action:a,relatedEvent:e})&&(e.preventDefault(),this.$action=a,this.style.willChange="transform")}$handlePointerMove(e){const{$action:t,$pointers:n}=this;if(this.disabled||t===je||0===n.size)return;if(!1===this.$emit("actionmove",{action:t,relatedEvent:e}))return;if(e.preventDefault(),e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e,pageX:t,pageY:r})=>{const l=n.get(e);l&&Object.assign(l,{endX:t,endY:r})});else{const{pointerId:t=0,pageX:r,pageY:l}=e,a=n.get(t);a&&Object.assign(a,{endX:r,endY:l})}const r={action:t,relatedEvent:e};if(t===Re){const t=new Map(n);let l=0,a=0,i=0,o=0,s=e.pageX,c=e.pageY;n.forEach((e,n)=>{t.delete(n),t.forEach(t=>{let n=t.startX-e.startX,r=t.startY-e.startY,u=t.endX-e.endX,d=t.endY-e.endY,b=0,m=0,h=0,p=0;if(0===n?r<0?h=2*Math.PI:r>0&&(h=Math.PI):n>0?h=Math.PI/2+Math.atan(r/n):n<0&&(h=1.5*Math.PI+Math.atan(r/n)),0===u?d<0?p=2*Math.PI:d>0&&(p=Math.PI):u>0?p=Math.PI/2+Math.atan(d/u):u<0&&(p=1.5*Math.PI+Math.atan(d/u)),p>0||h>0){const n=p-h,r=Math.abs(n);r>l&&(l=r,i=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}if(n=Math.abs(n),r=Math.abs(r),u=Math.abs(u),d=Math.abs(d),n>0&&r>0?b=Math.sqrt(n*n+r*r):n>0?b=n:r>0&&(b=r),u>0&&d>0?m=Math.sqrt(u*u+d*d):u>0?m=u:d>0&&(m=d),b>0&&m>0){const n=(m-b)/b,r=Math.abs(n);r>a&&(a=r,o=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}})});const u=l>0,d=a>0;u&&d?(r.rotate=i,r.scale=o,r.centerX=s,r.centerY=c):u?(r.action=Oe,r.rotate=i,r.centerX=s,r.centerY=c):d?(r.action=De,r.scale=o,r.centerX=s,r.centerY=c):r.action=je}else{const[e]=Array.from(n.values());Object.assign(r,e)}n.forEach(e=>{e.startX=e.endX,e.startY=e.endY}),r.action!==je&&this.$emit(tt,r,{cancelable:!1})}$handlePointerUp(e){const{$action:t,$pointers:n}=this;if(!this.disabled&&t!==je&&!1!==this.$emit(nt,{action:t,relatedEvent:e})){if(e.preventDefault(),e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e})=>{n.delete(e)});else{const{pointerId:t=0}=e;n.delete(t)}0===n.size&&(this.style.willChange="",this.$action=je)}}$handleWheel(e){if(this.disabled)return;if(e.preventDefault(),this.$wheeling)return;this.$wheeling=!0,setTimeout(()=>{this.$wheeling=!1},50);const t=(e.deltaY>0?-1:1)*this.scaleStep;this.$emit(tt,{action:De,scale:t,relatedEvent:e},{cancelable:!1})}$setAction(e){return"string"==typeof e&&(this.$action=e),this}$toCanvas(e){return new Promise((t,n)=>{if(!this.isConnected)return void n(new Error("The current element is not connected to the DOM."));const r=document.createElement("canvas");let l=this.offsetWidth,a=this.offsetHeight,i=1;dt(e)&&(st(e.width)||st(e.height))&&(({width:l,height:a}=_t({aspectRatio:l/a,width:e.width,height:e.height})),i=l/this.offsetWidth),r.width=l,r.height=a;const o=this.querySelector(this.$getTagNameOf(Te));o?o.$ready().then(n=>{const s=r.getContext("2d");if(s){const[t,c,u,d,b,m]=o.$getTransform();let h=b,p=m,f=n.naturalWidth,g=n.naturalHeight;1!==i&&(h*=i,p*=i,f*=i,g*=i);const y=f/2,v=g/2;s.fillStyle="transparent",s.fillRect(0,0,l,a),dt(e)&&bt(e.beforeDraw)&&e.beforeDraw.call(this,s,r),s.save(),s.translate(y,v),s.transform(t,c,u,d,h,p),s.translate(-y,-v),s.drawImage(n,0,0,f,g),s.restore()}t(r)}).catch(n):t(r)})}}Ot.$name=Ee,Ot.$version="2.1.0";const Rt=/* @__PURE__ */new WeakMap,jt=["alt","crossorigin","decoding","elementtiming","fetchpriority","loading","referrerpolicy","sizes","src","srcset"];class Ft extends Dt{constructor(){super(...arguments),this.$matrix=[1,0,0,1,0,0],this.$onLoad=null,this.$onCanvasAction=null,this.$onCanvasActionEnd=null,this.$onCanvasActionStart=null,this.$actionStartTarget=null,this.$style=":host{display:inline-block}img{display:block;height:100%;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}",this.$image=new Image,this.initialCenterSize="contain",this.rotatable=!1,this.scalable=!1,this.skewable=!1,this.slottable=!1,this.translatable=!1,this.alt="",this.crossorigin="",this.decoding="",this.elementtiming="",this.fetchpriority="",this.loading="",this.referrerpolicy="",this.sizes="",this.src="",this.srcset=""}set $canvas(e){Rt.set(this,e)}get $canvas(){return Rt.get(this)}static get observedAttributes(){return super.observedAttributes.concat(jt,["initial-center-size","rotatable","scalable","skewable","translatable"])}attributeChangedCallback(e,t,n){Object.is(n,t)||(super.attributeChangedCallback(e,t,n),jt.includes(e)&&this.$image.setAttribute(e,n))}$propertyChangedCallback(e,t,n){if(!Object.is(n,t)&&(super.$propertyChangedCallback(e,t,n),"initialCenterSize"===e))this.$nextTick(()=>{this.$center(n)})}connectedCallback(){super.connectedCallback();const{$image:e}=this,t=this.closest(this.$getTagNameOf(Ee));t&&(this.$canvas=t,this.$setStyles({display:"block",position:"absolute"}),this.$onCanvasActionStart=e=>{var t,n;this.$actionStartTarget=null===(n=null===(t=e.detail)||void 0===t?void 0:t.relatedEvent)||void 0===n?void 0:n.target},this.$onCanvasActionEnd=()=>{this.$actionStartTarget=null},this.$onCanvasAction=this.$handleAction.bind(this),wt(t,rt,this.$onCanvasActionStart),wt(t,nt,this.$onCanvasActionEnd),wt(t,tt,this.$onCanvasAction)),this.$onLoad=this.$handleLoad.bind(this),wt(e,Ze,this.$onLoad),this.$getShadowRoot().appendChild(e)}disconnectedCallback(){const{$image:e,$canvas:t}=this;t&&(this.$onCanvasActionStart&&(vt(t,rt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(vt(t,nt,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(vt(t,tt,this.$onCanvasAction),this.$onCanvasAction=null)),e&&this.$onLoad&&(vt(e,Ze,this.$onLoad),this.$onLoad=null),this.$getShadowRoot().removeChild(e),super.disconnectedCallback()}$handleLoad(){const{$image:e}=this;this.$setStyles({width:e.naturalWidth,height:e.naturalHeight}),this.$canvas&&this.$center(this.initialCenterSize)}$handleAction(e){if(this.hidden||!(this.rotatable||this.scalable||this.translatable))return;const{$canvas:t}=this,{detail:n}=e;if(n){const{relatedEvent:e}=n;let{action:r}=n;switch(r!==Re||this.rotatable&&this.scalable||(r=this.rotatable?Oe:this.scalable?De:je),r){case Le:if(this.translatable){let r=null;e&&(r=e.target.closest(this.$getTagNameOf(Ae))),r||(r=t.querySelector(this.$getTagNameOf(Ae))),r&&r.multiple&&!r.active&&(r=t.querySelector(`${this.$getTagNameOf(Ae)}[active]`)),r&&!r.hidden&&r.movable&&!r.dynamic&&this.$actionStartTarget&&r.contains(this.$actionStartTarget)||this.$move(n.endX-n.startX,n.endY-n.startY)}break;case Oe:if(this.rotatable)if(e){const{x:t,y:r}=this.getBoundingClientRect();this.$rotate(n.rotate,e.clientX-t,e.clientY-r)}else this.$rotate(n.rotate);break;case De:if(this.scalable)if(e){const t=e.target.closest(this.$getTagNameOf(Ae));if(!t||!t.zoomable||t.zoomable&&t.dynamic){const{x:t,y:r}=this.getBoundingClientRect();this.$zoom(n.scale,e.clientX-t,e.clientY-r)}}else this.$zoom(n.scale);break;case Re:if(this.rotatable&&this.scalable){const{rotate:t}=n;let{scale:r}=n;r<0?r=1/(1-r):r+=1;const l=Math.cos(t),a=Math.sin(t),[i,o,s,c]=[l*r,a*r,-a*r,l*r];if(e){const t=this.getBoundingClientRect(),n=e.clientX-t.x,r=e.clientY-t.y,[l,a,u,d]=this.$matrix,b=n-t.width/2,m=r-t.height/2,h=(b*d-u*m)/(l*d-u*a),p=(m*l-a*b)/(l*d-u*a);this.$transform(i,o,s,c,h*(1-i)+p*s,p*(1-c)+h*o)}else this.$transform(i,o,s,c,0,0)}}}}$ready(e){const{$image:t}=this,n=new Promise((e,n)=>{const r=new Error("Failed to load the image source");if(t.complete)t.naturalWidth>0&&t.naturalHeight>0?e(t):n(r);else{const l=()=>{vt(t,Xe,a),setTimeout(()=>{e(t)})},a=()=>{vt(t,Ze,l),n(r)};xt(t,Ze,l),xt(t,Xe,a)}});return bt(e)&&n.then(t=>(e(t),t)),n}$center(e){const{parentElement:t}=this;if(!t)return this;const n=t.getBoundingClientRect(),r=n.width,l=n.height,{x:a,y:i,width:o,height:s}=this.getBoundingClientRect(),c=a+o/2,u=i+s/2,d=n.x+r/2,b=n.y+l/2;if(this.$move(d-c,b-u),e&&(o!==r||s!==l)){const t=r/o,n=l/s;switch(e){case"cover":this.$scale(Math.max(t,n));break;case"contain":this.$scale(Math.min(t,n))}}return this}$move(e,t=e){if(this.translatable&&ot(e)&&ot(t)){const[n,r,l,a]=this.$matrix,i=(e*a-l*t)/(n*a-l*r),o=(t*n-r*e)/(n*a-l*r);this.$translate(i,o)}return this}$moveTo(e,t=e){if(this.translatable&&ot(e)&&ot(t)){const[n,r,l,a]=this.$matrix,i=(e*a-l*t)/(n*a-l*r),o=(t*n-r*e)/(n*a-l*r);this.$setTransform(n,r,l,a,i,o)}return this}$rotate(e,t,n){if(this.rotatable){const r=Et(e),l=Math.cos(r),a=Math.sin(r),[i,o,s,c]=[l,a,-a,l];if(ot(t)&&ot(n)){const[e,r,l,a]=this.$matrix,{width:u,height:d}=this.getBoundingClientRect(),b=t-u/2,m=n-d/2,h=(b*a-l*m)/(e*a-l*r),p=(m*e-r*b)/(e*a-l*r);this.$transform(i,o,s,c,h*(1-i)-p*s,p*(1-c)-h*o)}else this.$transform(i,o,s,c,0,0)}return this}$zoom(e,t,n){if(!this.scalable||0===e)return this;if(e<0?e=1/(1-e):e+=1,ot(t)&&ot(n)){const[r,l,a,i]=this.$matrix,{width:o,height:s}=this.getBoundingClientRect(),c=t-o/2,u=n-s/2,d=(c*i-a*u)/(r*i-a*l),b=(u*r-l*c)/(r*i-a*l);this.$transform(e,0,0,e,d*(1-e),b*(1-e))}else this.$scale(e);return this}$scale(e,t=e){return this.scalable&&this.$transform(e,0,0,t,0,0),this}$skew(e,t=0){if(this.skewable){const n=Et(e),r=Et(t);this.$transform(1,Math.tan(r),Math.tan(n),1,0,0)}return this}$translate(e,t=e){return this.translatable&&ot(e)&&ot(t)&&this.$transform(1,0,0,1,e,t),this}$transform(e,t,n,r,l,a){return ot(e)&&ot(t)&&ot(n)&&ot(r)&&ot(l)&&ot(a)?this.$setTransform(zt(this.$matrix,[e,t,n,r,l,a])):this}$setTransform(e,t,n,r,l,a){if((this.rotatable||this.scalable||this.skewable||this.translatable)&&(Array.isArray(e)&&([e,t,n,r,l,a]=e),ot(e)&&ot(t)&&ot(n)&&ot(r)&&ot(l)&&ot(a))){const i=[...this.$matrix],o=[e,t,n,r,l,a];if(!1===this.$emit(at,{matrix:o,oldMatrix:i}))return this;this.$matrix=o,this.style.transform=`matrix(${o.join(", ")})`}return this}$getTransform(){return this.$matrix.slice()}$resetTransform(){return this.$setTransform([1,0,0,1,0,0])}}Ft.$name=Te,Ft.$version="2.1.0";const Ut=/* @__PURE__ */new WeakMap;class qt extends Dt{constructor(){super(...arguments),this.$onCanvasActionEnd=null,this.$onCanvasActionStart=null,this.$onSelectionChange=null,this.$style=":host{display:block;height:0;left:0;outline:var(--theme-color) solid 1px;position:relative;top:0;width:0}:host([transparent]){outline-color:transparent}",this.x=0,this.y=0,this.width=0,this.height=0,this.slottable=!1,this.themeColor="rgba(0, 0, 0, 0.65)"}set $canvas(e){Ut.set(this,e)}get $canvas(){return Ut.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["height","width","x","y"])}connectedCallback(){super.connectedCallback();const e=this.closest(this.$getTagNameOf(Ee));if(e){this.$canvas=e,this.style.position="absolute";const t=e.querySelector(this.$getTagNameOf(Ae));t&&(this.$onCanvasActionStart=e=>{t.hidden&&e.detail.action===Ie&&(this.hidden=!1)},this.$onCanvasActionEnd=e=>{t.hidden&&e.detail.action===Ie&&(this.hidden=!0)},this.$onSelectionChange=e=>{const{x:n,y:r,width:l,height:a}=e.defaultPrevented?t:e.detail;this.$change(n,r,l,a),(t.hidden||0===n&&0===r&&0===l&&0===a)&&(this.hidden=!0)},wt(e,rt,this.$onCanvasActionStart),wt(e,nt,this.$onCanvasActionEnd),wt(e,lt,this.$onSelectionChange))}this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(vt(e,rt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(vt(e,nt,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onSelectionChange&&(vt(e,lt,this.$onSelectionChange),this.$onSelectionChange=null)),super.disconnectedCallback()}$change(e,t,n=this.width,r=this.height){return ot(e)&&ot(t)&&ot(n)&&ot(r)&&(e!==this.x||t!==this.y||n!==this.width||r!==this.height)?(this.hidden&&(this.hidden=!1),this.x=e,this.y=t,this.width=n,this.height=r,this.$render()):this}$reset(){return this.$change(0,0,0,0)}$render(){return this.$setStyles({transform:`translate(${this.x}px, ${this.y}px)`,width:this.width,height:this.height,outlineWidth:ke.innerWidth})}}qt.$name=Pe,qt.$version="2.1.0";class Bt extends Dt{constructor(){super(...arguments),this.$onCanvasCropEnd=null,this.$onCanvasCropStart=null,this.$style=':host{background-color:var(--theme-color);display:block}:host([action=move]),:host([action=select]){height:100%;left:0;position:absolute;top:0;width:100%}:host([action=move]){cursor:move}:host([action=select]){cursor:crosshair}:host([action$=-resize]){background-color:transparent;height:15px;position:absolute;width:15px}:host([action$=-resize]):after{background-color:var(--theme-color);content:"";display:block;height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:5px}:host([action=n-resize]),:host([action=s-resize]){cursor:ns-resize;left:50%;transform:translateX(-50%);width:100%}:host([action=n-resize]){top:-8px}:host([action=s-resize]){bottom:-8px}:host([action=e-resize]),:host([action=w-resize]){cursor:ew-resize;height:100%;top:50%;transform:translateY(-50%)}:host([action=e-resize]){right:-8px}:host([action=w-resize]){left:-8px}:host([action=ne-resize]){cursor:nesw-resize;right:-8px;top:-8px}:host([action=nw-resize]){cursor:nwse-resize;left:-8px;top:-8px}:host([action=se-resize]){bottom:-8px;cursor:nwse-resize;right:-8px}:host([action=se-resize]):after{height:15px;width:15px}@media (pointer:coarse){:host([action=se-resize]):after{height:10px;width:10px}}@media (pointer:fine){:host([action=se-resize]):after{height:5px;width:5px}}:host([action=sw-resize]){bottom:-8px;cursor:nesw-resize;left:-8px}:host([plain]){background-color:transparent}',this.action=je,this.plain=!1,this.slottable=!1,this.themeColor="rgba(51, 153, 255, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["action","plain"])}}Bt.$name=ze,Bt.$version="2.1.0";const Wt=/* @__PURE__ */new WeakMap;class Vt extends Dt{constructor(){super(...arguments),this.$onCanvasAction=null,this.$onCanvasActionStart=null,this.$onCanvasActionEnd=null,this.$onDocumentKeyDown=null,this.$action="",this.$actionStartTarget=null,this.$changing=!1,this.$style=':host{display:block;left:0;position:relative;right:0}:host([outlined]){outline:1px solid var(--theme-color)}:host([multiple]){outline:1px dashed hsla(0,0%,100%,.5)}:host([multiple]):after{bottom:0;content:"";cursor:pointer;display:block;left:0;position:absolute;right:0;top:0}:host([multiple][active]){outline-color:var(--theme-color);z-index:1}:host([multiple])>*{visibility:hidden}:host([multiple][active])>*{visibility:visible}:host([multiple][active]):after{display:none}',this.$initialSelection={x:0,y:0,width:0,height:0},this.x=0,this.y=0,this.width=0,this.height=0,this.aspectRatio=NaN,this.initialAspectRatio=NaN,this.initialCoverage=NaN,this.active=!1,this.linked=!1,this.dynamic=!1,this.movable=!1,this.resizable=!1,this.zoomable=!1,this.multiple=!1,this.keyboard=!1,this.outlined=!1,this.precise=!1}set $canvas(e){Wt.set(this,e)}get $canvas(){return Wt.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["active","aspect-ratio","dynamic","height","initial-aspect-ratio","initial-coverage","keyboard","linked","movable","multiple","outlined","precise","resizable","width","x","y","zoomable"])}$propertyChangedCallback(e,t,n){if(!Object.is(n,t))switch(super.$propertyChangedCallback(e,t,n),e){case"x":case"y":case"width":case"height":this.$changing||this.$nextTick(()=>{this.$change(this.x,this.y,this.width,this.height,this.aspectRatio,!0)});break;case"aspectRatio":case"initialAspectRatio":this.$nextTick(()=>{this.$initSelection()});break;case"initialCoverage":this.$nextTick(()=>{st(n)&&n<=1&&this.$initSelection(!0,!0)});break;case"keyboard":this.$nextTick(()=>{this.$canvas&&(n?this.$onDocumentKeyDown||(this.$onDocumentKeyDown=this.$handleKeyDown.bind(this),wt(this.ownerDocument,Je,this.$onDocumentKeyDown)):this.$onDocumentKeyDown&&(vt(this.ownerDocument,Je,this.$onDocumentKeyDown),this.$onDocumentKeyDown=null))});break;case"multiple":this.$nextTick(()=>{if(this.$canvas){const e=this.$getSelections();n?(e.forEach(e=>{e.active=!1}),this.active=!0,this.$emit(lt,{x:this.x,y:this.y,width:this.width,height:this.height})):(this.active=!1,e.slice(1).forEach(e=>{this.$removeSelection(e)}))}});break;case"precise":this.$nextTick(()=>{this.$change(this.x,this.y)});break;case"linked":n&&(this.dynamic=!0)}}connectedCallback(){super.connectedCallback();const e=this.closest(this.$getTagNameOf(Ee));e?(this.$canvas=e,this.$setStyles({position:"absolute",transform:`translate(${this.x}px, ${this.y}px)`}),this.hidden||this.$render(),this.$initSelection(!0),this.$onCanvasActionStart=this.$handleActionStart.bind(this),this.$onCanvasActionEnd=this.$handleActionEnd.bind(this),this.$onCanvasAction=this.$handleAction.bind(this),wt(e,rt,this.$onCanvasActionStart),wt(e,nt,this.$onCanvasActionEnd),wt(e,tt,this.$onCanvasAction)):this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(vt(e,rt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(vt(e,nt,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(vt(e,tt,this.$onCanvasAction),this.$onCanvasAction=null)),super.disconnectedCallback()}$getSelections(){let e=[];return this.parentElement&&(e=Array.from(this.parentElement.querySelectorAll(this.$getTagNameOf(Ae)))),e}$initSelection(e=!1,t=!1){const{initialCoverage:n,parentElement:r}=this;if(st(n)&&r){const l=this.aspectRatio||this.initialAspectRatio;let a=(t?0:this.width)||r.offsetWidth*n,i=(t?0:this.height)||r.offsetHeight*n;st(l)&&({width:a,height:i}=_t({aspectRatio:l,width:a,height:i})),this.$change(this.x,this.y,a,i),e&&this.$center(),this.$initialSelection={x:this.x,y:this.y,width:this.width,height:this.height}}}$createSelection(){const e=this.cloneNode(!0);return this.hasAttribute("id")&&e.removeAttribute("id"),e.initialCoverage=NaN,this.active=!1,this.parentElement&&this.parentElement.insertBefore(e,this.nextSibling),e}$removeSelection(e=this){if(this.parentElement){const t=this.$getSelections();if(t.length>1){const n=t.indexOf(e),r=t[n+1]||t[n-1];r&&(e.active=!1,this.parentElement.removeChild(e),r.active=!0,r.$emit(lt,{x:r.x,y:r.y,width:r.width,height:r.height}))}else this.$clear()}}$handleActionStart(e){var t,n;const r=null===(n=null===(t=e.detail)||void 0===t?void 0:t.relatedEvent)||void 0===n?void 0:n.target;this.$action="",this.$actionStartTarget=r,!this.hidden&&this.multiple&&!this.active&&r===this&&this.parentElement&&(this.$getSelections().forEach(e=>{e.active=!1}),this.active=!0,this.$emit(lt,{x:this.x,y:this.y,width:this.width,height:this.height}))}$handleAction(e){const{currentTarget:t,detail:n}=e;if(!t||!n)return;const{relatedEvent:r}=n;let{action:l}=n;const a=r?function(e){if("function"==typeof e.composedPath)return e.composedPath().find(mt)||e.target;return e.target}(r):null;if(!l&&this.multiple&&(l=this.$action||(null==a?void 0:a.action),this.$action=l),!l||this.hidden&&l!==Ie||this.multiple&&!this.active&&l!==De)return;const{width:i,height:o}=this;let s=n.endX-n.startX,c=n.endY-n.startY,{aspectRatio:u}=this;switch(!st(u)&&r.shiftKey&&(u=st(i)&&st(o)?i/o:1),l){case Ie:if(0!==s||0!==c){0===s?s=c:0===c&&(c=s);const{$canvas:e}=this,r=St(t);(this.multiple&&!this.hidden?this.$createSelection():this).$change(n.startX-r.left,n.startY-r.top,Math.abs(s),Math.abs(c),u),s<0?c<0?l=Ve:c>0&&(l=Ke):s>0&&(c<0?l=We:c>0&&(l=He)),e&&(e.$action=l)}break;case Le:this.movable&&(this.dynamic||this.$actionStartTarget&&this.contains(this.$actionStartTarget))&&this.$move(s,c);break;case De:if(r&&this.zoomable&&(this.dynamic||this.contains(r.target))){const e=St(t);this.$zoom(n.scale,r.pageX-e.left,r.pageY-e.top)}break;default:this.$resize(l,s,c,u)}}$handleActionEnd(){this.$action="",this.$actionStartTarget=null}$handleKeyDown(e){if(this.hidden||!this.keyboard||this.multiple&&!this.active||e.defaultPrevented)return;const{activeElement:t}=document;if(!t||!["INPUT","TEXTAREA"].includes(t.tagName)&&!["true","plaintext-only"].includes(t.contentEditable))switch(e.key){case"Backspace":e.metaKey&&(e.preventDefault(),this.$removeSelection());break;case"Delete":e.preventDefault(),this.$removeSelection();break;case"ArrowLeft":e.preventDefault(),this.$move(-1,0);break;case"ArrowRight":e.preventDefault(),this.$move(1,0);break;case"ArrowUp":e.preventDefault(),this.$move(0,-1);break;case"ArrowDown":e.preventDefault(),this.$move(0,1);break;case"+":e.preventDefault(),this.$zoom(.1);break;case"-":e.preventDefault(),this.$zoom(-.1)}}$center(){const{parentElement:e}=this;if(!e)return this;const t=(e.offsetWidth-this.width)/2,n=(e.offsetHeight-this.height)/2;return this.$change(t,n)}$move(e,t=e){return this.$moveTo(this.x+e,this.y+t)}$moveTo(e,t=e){return this.movable?this.$change(e,t):this}$resize(e,t=0,n=0,r=this.aspectRatio){if(!this.resizable)return this;const l=st(r),{$canvas:a}=this;let{x:i,y:o,width:s,height:c}=this;switch(e){case Fe:o+=n,c-=n,c<0&&(e=qe,c=-c,o-=c),l&&(i+=(t=n*r)/2,s-=t,s<0&&(s=-s,i-=s));break;case Ue:s+=t,s<0&&(e=Be,s=-s,i-=s),l&&(o-=(n=t/r)/2,c+=n,c<0&&(c=-c,o-=c));break;case qe:c+=n,c<0&&(e=Fe,c=-c,o-=c),l&&(i-=(t=n*r)/2,s+=t,s<0&&(s=-s,i-=s));break;case Be:i+=t,s-=t,s<0&&(e=Ue,s=-s,i-=s),l&&(o+=(n=t/r)/2,c-=n,c<0&&(c=-c,o-=c));break;case We:l&&(n=-t/r),o+=n,c-=n,s+=t,s<0&&c<0?(e=Ke,s=-s,c=-c,i-=s,o-=c):s<0?(e=Ve,s=-s,i-=s):c<0&&(e=He,c=-c,o-=c);break;case Ve:l&&(n=t/r),i+=t,o+=n,s-=t,c-=n,s<0&&c<0?(e=He,s=-s,c=-c,i-=s,o-=c):s<0?(e=We,s=-s,i-=s):c<0&&(e=Ke,c=-c,o-=c);break;case He:l&&(n=t/r),s+=t,c+=n,s<0&&c<0?(e=Ve,s=-s,c=-c,i-=s,o-=c):s<0?(e=Ke,s=-s,i-=s):c<0&&(e=We,c=-c,o-=c);break;case Ke:l&&(n=-t/r),i+=t,s-=t,c+=n,s<0&&c<0?(e=We,s=-s,c=-c,i-=s,o-=c):s<0?(e=He,s=-s,i-=s):c<0&&(e=Ve,c=-c,o-=c)}return a&&a.$setAction(e),this.$change(i,o,s,c)}$zoom(e,t,n){if(!this.zoomable||0===e)return this;e<0?e=1/(1-e):e+=1;const{width:r,height:l}=this,a=r*e,i=l*e;let o=this.x,s=this.y;return ot(t)&&ot(n)?(o-=(a-r)*((t-this.x)/r),s-=(i-l)*((n-this.y)/l)):(o-=(a-r)/2,s-=(i-l)/2),this.$change(o,s,a,i)}$change(e,t,n=this.width,r=this.height,l=this.aspectRatio,a=!1){return this.$changing||!ot(e)||!ot(t)||!ot(n)||!ot(r)||n<0||r<0?this:(st(l)&&({width:n,height:r}=_t({aspectRatio:l,width:n,height:r},"cover")),this.precise||(e=Math.round(e),t=Math.round(t),n=Math.round(n),r=Math.round(r)),e===this.x&&t===this.y&&n===this.width&&r===this.height&&Object.is(l,this.aspectRatio)&&!a?this:(this.hidden&&(this.hidden=!1),!1===this.$emit(lt,{x:e,y:t,width:n,height:r})?this:(this.$changing=!0,this.x=e,this.y=t,this.width=n,this.height=r,this.$changing=!1,this.$render())))}$reset(){const{x:e,y:t,width:n,height:r}=this.$initialSelection;return this.$change(e,t,n,r)}$clear(){return this.$change(0,0,0,0,NaN,!0),this.hidden=!0,this}$render(){return this.$setStyles({transform:`translate(${this.x}px, ${this.y}px)`,width:this.width,height:this.height})}$toCanvas(e){return new Promise((t,n)=>{if(!this.isConnected)return void n(new Error("The current element is not connected to the DOM."));const r=document.createElement("canvas");let{width:l,height:a}=this,i=1;if(dt(e)&&(st(e.width)||st(e.height))&&(({width:l,height:a}=_t({aspectRatio:l/a,width:e.width,height:e.height})),i=l/this.width),r.width=l,r.height=a,!this.$canvas)return void t(r);const o=this.$canvas.querySelector(this.$getTagNameOf(Te));o?o.$ready().then(n=>{const s=r.getContext("2d");if(s){const[t,c,u,d,b,m]=o.$getTransform(),h=-this.x,p=-this.y,f=(h*d-u*p)/(t*d-u*c),g=(p*t-c*h)/(t*d-u*c);let y=t*f+u*g+b,v=c*f+d*g+m,w=n.naturalWidth,x=n.naturalHeight;1!==i&&(y*=i,v*=i,w*=i,x*=i);const k=w/2,C=x/2;s.fillStyle="transparent",s.fillRect(0,0,l,a),dt(e)&&bt(e.beforeDraw)&&e.beforeDraw.call(this,s,r),s.save(),s.translate(k,C),s.transform(t,c,u,d,y,v),s.translate(-k,-C),s.drawImage(n,0,0,w,x),s.restore()}t(r)}).catch(n):t(r)})}}Vt.$name=Ae,Vt.$version="2.1.0";class Ht extends Dt{constructor(){super(...arguments),this.$style=":host{display:flex;flex-direction:column;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([bordered]){border:1px dashed var(--theme-color)}:host([covered]){bottom:0;left:0;position:absolute;right:0;top:0}:host>span{display:flex;flex:1}:host>span+span{border-top:1px dashed var(--theme-color)}:host>span>span{flex:1}:host>span>span+span{border-left:1px dashed var(--theme-color)}",this.bordered=!1,this.columns=3,this.covered=!1,this.rows=3,this.slottable=!1,this.themeColor="rgba(238, 238, 238, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["bordered","columns","covered","rows"])}$propertyChangedCallback(e,t,n){Object.is(n,t)||(super.$propertyChangedCallback(e,t,n),"rows"!==e&&"columns"!==e||this.$nextTick(()=>{this.$render()}))}connectedCallback(){super.connectedCallback(),this.$render()}$render(){const e=this.$getShadowRoot(),t=document.createDocumentFragment();for(let n=0;n<this.rows;n+=1){const e=document.createElement("span");e.setAttribute("role","row");for(let t=0;t<this.columns;t+=1){const t=document.createElement("span");t.setAttribute("role","gridcell"),e.appendChild(t)}t.appendChild(e)}e&&(e.innerHTML="",e.appendChild(t))}}Ht.$name=_e,Ht.$version="2.1.0";class Kt extends Dt{constructor(){super(...arguments),this.$style=':host{display:inline-block;height:1em;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1em}:host:after,:host:before{background-color:var(--theme-color);content:"";display:block;position:absolute}:host:before{height:1px;left:0;top:50%;transform:translateY(-50%);width:100%}:host:after{height:100%;left:50%;top:0;transform:translateX(-50%);width:1px}:host([centered]){left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}',this.centered=!1,this.slottable=!1,this.themeColor="rgba(238, 238, 238, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["centered"])}}Kt.$name=$e,Kt.$version="2.1.0";const Gt=/* @__PURE__ */new WeakMap,Qt=/* @__PURE__ */new WeakMap,Yt=/* @__PURE__ */new WeakMap,Xt=/* @__PURE__ */new WeakMap,Jt="vertical";class Zt extends Dt{constructor(){super(...arguments),this.$onSelectionChange=null,this.$onSourceImageLoad=null,this.$onSourceImageTransform=null,this.$scale=1,this.$style=":host{display:block;height:100%;overflow:hidden;position:relative;width:100%}",this.resize=Jt,this.selection="",this.slottable=!1}set $image(e){Qt.set(this,e)}get $image(){return Qt.get(this)}set $sourceImage(e){Xt.set(this,e)}get $sourceImage(){return Xt.get(this)}set $canvas(e){Gt.set(this,e)}get $canvas(){return Gt.get(this)}set $selection(e){Yt.set(this,e)}get $selection(){return Yt.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["resize","selection"])}connectedCallback(){var e,t;super.connectedCallback();let n=null;if(n=this.selection?null!==(t=null===(e=function(e){const t=e.getRootNode();switch(t.nodeType){case 1:return t.ownerDocument;case 9:case 11:return t}return null}(this))||void 0===e?void 0:e.querySelector(this.selection))&&void 0!==t?t:null:this.closest(this.$getTagNameOf(Ae)),mt(n)){this.$selection=n,this.$onSelectionChange=this.$handleSelectionChange.bind(this),wt(n,lt,this.$onSelectionChange);const e=n.closest(this.$getTagNameOf(Ee));if(e){this.$canvas=e;const t=e.querySelector(this.$getTagNameOf(Te));t&&(this.$sourceImage=t,this.$image=t.cloneNode(!0),this.$getShadowRoot().appendChild(this.$image),this.$onSourceImageLoad=this.$handleSourceImageLoad.bind(this),this.$onSourceImageTransform=this.$handleSourceImageTransform.bind(this),wt(t.$image,Ze,this.$onSourceImageLoad),wt(t,at,this.$onSourceImageTransform))}this.$render()}}disconnectedCallback(){const{$selection:e,$sourceImage:t}=this;e&&this.$onSelectionChange&&(vt(e,lt,this.$onSelectionChange),this.$onSelectionChange=null),t&&this.$onSourceImageLoad&&(vt(t.$image,Ze,this.$onSourceImageLoad),this.$onSourceImageLoad=null),t&&this.$onSourceImageTransform&&(vt(t,at,this.$onSourceImageTransform),this.$onSourceImageTransform=null),super.disconnectedCallback()}$handleSelectionChange(e){this.$render(e.defaultPrevented?this.$selection:e.detail)}$handleSourceImageLoad(){const{$image:e,$sourceImage:t}=this,n=e.getAttribute("src"),r=t.getAttribute("src");r&&r!==n&&(e.setAttribute("src",r),e.$ready(()=>{this.$render()}))}$handleSourceImageTransform(e){this.$render(void 0,e.detail.matrix)}$render(e,t){const{$canvas:n,$selection:r}=this;e||r.hidden||(e=r),(!e||0===e.x&&0===e.y&&0===e.width&&0===e.height)&&(e={x:0,y:0,width:n.offsetWidth,height:n.offsetHeight});const{x:l,y:a,width:i,height:o}=e,s={},{clientWidth:c,clientHeight:u}=this;let d=c,b=u,m=NaN;switch(this.resize){case"both":m=1,d=i,b=o,s.width=i,s.height=o;break;case"horizontal":m=o>0?u/o:0,d=i*m,s.width=d;break;case Jt:m=i>0?c/i:0,b=o*m,s.height=b;break;default:c>0?m=i>0?c/i:0:u>0&&(m=o>0?u/o:0)}this.$scale=m,this.$setStyles(s),this.$sourceImage&&setTimeout(()=>{this.$transformImageByOffset(null!=t?t:this.$sourceImage.$getTransform(),-l,-a)})}$transformImageByOffset(e,t,n){const{$image:r,$scale:l,$sourceImage:a}=this;if(a&&r&&l>=0){const[a,i,o,s,c,u]=e,d=(t*s-o*n)/(a*s-o*i),b=(n*a-i*t)/(a*s-o*i),m=a*d+o*b+c,h=i*d+s*b+u;r.$ready(e=>{this.$setStyles.call(r,{width:e.naturalWidth*l,height:e.naturalHeight*l})}),r.$setTransform(a,i,o,s,m*l,h*l)}}}function en(){const[e,n]=t(!1),[r,l]=t(null),[a,i]=t(null),o=async(e,t)=>{if(!e||!t)return l("ID de asset y configuración de variante son requeridos"),null;n(!0),l(null),i(null);try{const n=await async function(e,{variant_name:t,width:n,height:l,crop_params:a,preset_aspect:i=null,preset_size:o=null,output_format:s="webp"}){try{const r=[{name:t,width:n,height:l,output_format:s,crop_params:a}];return i&&(r[0].preset_aspect=i),o&&(r[0].preset_size=o),B(await R({endpoint:`/assets/${e}/variants`,method:"POST",body:{variants:r,async:!1},basePath:V,useJWT:!0}))}catch(r){throw W(r)}}(e,{variant_name:t.name,width:t.width,height:t.height,crop_params:t.crop_params,preset_aspect:t.preset_aspect,preset_size:t.preset_size,output_format:t.output_format});if(n?.result)return i(n.result),n.result;throw new Error("No se pudo crear la variante")}catch(a){return console.error("Error creating variant:",a),l(a.message||"Error desconocido al crear variante"),null}finally{n(!1)}};return{createVariant:o,createCropVariant:async(e,t,n={})=>{const r={name:n.name||`crop_${Date.now()}`,width:n.width||800,height:n.height||600,output_format:n.format||"webp",crop_params:{x:t.x||0,y:t.y||0,width:t.width||1,height:t.height||1}};return await o(e,r)},createVariantFromBlob:async(e,t,a={})=>{if(!e||!t)return l("ID de asset y blob son requeridos"),null;n(!0),l(null),i(null);try{const n=await async function(e,t,n={}){try{const r=new FormData,l=n.format||"webp",a=`${n.name||"variant"}.${l}`;return r.append("file",t,a),r.append("variant_name",n.name||"variant"),r.append("width",String(n.width||0)),r.append("height",String(n.height||0)),r.append("output_format",n.format||"webp"),B(await R({endpoint:`/assets/${e}/variants/upload`,method:"POST",body:r,basePath:V,isFormData:!0,useJWT:!0}))}catch(r){throw W(r)}}(e,t,{name:a.name||`crop_${Date.now()}`,width:a.width||0,height:a.height||0,format:a.format||"webp"});if(n?.result)return i(n.result),n.result;throw new Error("No se pudo crear la variante")}catch(o){return console.error("Error creating variant from blob:",o),l(o.message||"Error desconocido al crear variante"),null}finally{n(!1)}},loading:e,error:r,createdVariant:a,reset:()=>{l(null),i(null)}}}Zt.$name=Me,Zt.$version="2.1.0",Ot.$define(),Kt.$define(),Ht.$define(),Bt.$define(),Ft.$define(),Vt.$define(),qt.$define(),Zt.$define();class tn{constructor(e,t,n){this.canvasRef=e,this.imageRef=t,this.selectionRef=n}get canvasElement(){return this.canvasRef?.current}get image(){return this.imageRef?.current}get selectionElement(){return this.selectionRef?.current}get isReady(){return!!(this.canvasElement&&this.image&&this.selectionElement)}transform={move:(e,t)=>{if(!this.image)return!1;try{return this.image.$move(e,t),!0}catch(n){return console.warn("Error moving image:",n),!1}},moveTo:(e,t)=>{if(!this.image)return!1;try{return this.image.$moveTo(e,t),!0}catch(n){return console.warn("Error moving image to position:",n),!1}},zoom:e=>{if(!this.image)return!1;try{return this.image.$zoom(e),!0}catch(t){return console.warn("Error zooming image:",t),!1}},rotate:e=>{if(!this.image)return!1;try{const t=e*Math.PI/180;return this.image.$rotate(t),!0}catch(t){return console.warn("Error rotating image:",t),!1}},scale:(e,t=e)=>{if(!this.image)return!1;try{return this.image.$scale(e,t),!0}catch(n){return console.warn("Error scaling image:",n),!1}},center:(e="contain")=>{if(!this.image)return!1;try{return this.image.$center(e),!0}catch(t){return console.warn("Error centering image:",t),!1}},reset:()=>{if(!this.image)return!1;try{return this.image.$resetTransform(),!0}catch(e){return console.warn("Error resetting transform:",e),!1}},getTransform:()=>{if(!this.image)return null;try{return this.image.$getTransform()}catch(e){return console.warn("Error getting transform:",e),null}},setTransform:(e,t,n,r,l,a)=>{if(!this.image)return!1;try{return this.image.$setTransform(e,t,n,r,l,a),!0}catch(i){return console.warn("Error setting transform:",i),!1}},resetZoom:()=>{if(!this.image)return!1;try{const e=this.image.$getTransform();if(!e)return!1;const[t,n,r,l,a,i]=e,o=Math.sqrt(t*t+n*n),s=Math.sqrt(r*r+l*l),c=t/o,u=n/o,d=r/s,b=l/s;return this.image.$setTransform(c,u,d,b,a,i),!0}catch(e){return console.warn("Error resetting zoom:",e),!1}},setZoom:e=>{if(!this.image||e<=0)return!1;try{const t=this.image.$getTransform();if(!t)return!1;const[n,r,l,a,i,o]=t,s=Math.sqrt(n*n+r*r),c=Math.sqrt(l*l+a*a),u=n/s*e,d=r/s*e,b=l/c*e,m=a/c*e;return this.image.$setTransform(u,d,b,m,i,o),!0}catch(t){return console.warn("Error setting zoom level:",t),!1}},getZoom:()=>{if(!this.image)return 1;try{const e=this.image.$getTransform();if(!e)return 1;const[t,n]=e;return Math.sqrt(t*t+n*n)}catch(e){return console.warn("Error getting zoom level:",e),1}},fitToCanvas:(e=.1)=>{if(!this.image||!this.canvasElement)return!1;try{const t=this.canvasElement.getBoundingClientRect();let n=this.image.querySelector("img")||this.image;if(!n?.naturalWidth||!n?.naturalHeight)return!1;const r=1-e,l=t.width*r/n.naturalWidth,a=t.height*r/n.naturalHeight,i=Math.min(l,a,1);return this.transform.setZoom(i)}catch(t){return console.warn("Error fitting to canvas:",t),!1}}};selection={center:()=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$center(),!0}catch(e){return console.warn("Error centering selection:",e),!1}},reset:()=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$reset(),!0}catch(e){return console.warn("Error resetting selection:",e),!1}},setCoverage:e=>{if(!this.selectionElement||e<0||e>1)return!1;try{return this.selectionElement.initialCoverage=e,this.selectionElement.$reset(),!0}catch(t){return console.warn("Error setting coverage:",t),!1}},setAspectRatio:e=>{if(!this.selectionElement)return!1;try{let t;if(""===e||null==e)t=NaN;else if("number"==typeof e)t=e;else{if("string"!=typeof e)return console.warn("Unsupported aspect ratio type:",typeof e,e),!1;if(e.includes("/")){const[n,r]=e.split("/").map(e=>parseFloat(e.trim()));if(isNaN(n)||isNaN(r)||0===r)return console.warn("Invalid aspect ratio format:",e),!1;t=n/r}else if(t=parseFloat(e),isNaN(t))return console.warn("Invalid aspect ratio format:",e),!1}return this.selectionElement.aspectRatio=t,this.selectionElement.$render(),!0}catch(t){return console.warn("Error setting aspect ratio:",t),!1}},move:(e,t)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$move(e,t),!0}catch(n){return console.warn("Error moving selection:",n),!1}},zoom:e=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$zoom(e),!0}catch(t){return console.warn("Error zooming selection:",t),!1}},change:(e,t,n,r,l)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$change(e,t,n,r,l),!0}catch(a){return console.warn("Error changing selection:",a),!1}},set:(e,t,n,r)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.x=e,this.selectionElement.y=t,this.selectionElement.width=n,this.selectionElement.height=r,this.selectionElement.$render(),!0}catch(l){return console.warn("Error setting selection:",l),!1}},toCanvas:async(e={})=>{if(!this.selectionElement)return null;try{const t={width:800,height:600,imageSmoothingEnabled:!0,imageSmoothingQuality:"high",...e};return await this.selectionElement.$toCanvas(t)}catch(t){return console.warn("Error exporting to canvas:",t),null}},getData:()=>{if(!this.selectionElement)return null;try{return{x:this.selectionElement.x,y:this.selectionElement.y,width:this.selectionElement.width,height:this.selectionElement.height,aspectRatio:this.selectionElement.aspectRatio}}catch(e){return console.warn("Error getting selection data:",e),null}}};canvas={setBackground:e=>{if(!this.canvasElement)return!1;try{return this.canvasElement.background=e,!0}catch(t){return console.warn("Error setting background:",t),!1}},setScaleStep:e=>{if(!this.canvasElement)return!1;try{return this.canvasElement.scaleStep=e,!0}catch(t){return console.warn("Error setting scale step:",t),!1}},setDisabled:e=>{if(!this.canvasElement)return!1;try{return this.canvasElement.disabled=e,!0}catch(t){return console.warn("Error setting disabled state:",t),!1}}};utils={flipHorizontal:()=>{const e=this.transform.getTransform();if(!e)return!1;const[t,n,r,l,a,i]=e;return this.transform.setTransform(-t,n,r,l,a,i)},flipVertical:()=>{const e=this.transform.getTransform();if(!e)return!1;const[t,n,r,l,a,i]=e;return this.transform.setTransform(t,n,r,-l,a,i)},setupInitialView:async(e={})=>{const{paspartuFactor:t=.85,retries:n=3,retryDelay:r=200}=e;return new Promise(e=>{const l=(a=0)=>{if(!this.isReady)return a<n?void setTimeout(()=>l(a+1),r):void e(!1);try{const i=this.canvasElement.getBoundingClientRect();let o=this.image.querySelector("img")||this.image;if(!o?.naturalWidth||!o?.naturalHeight)return a<n?void setTimeout(()=>l(a+1),r):(this.transform.center(),void e(!1));if(i.width>0&&i.height>0){const n=i.width*t/o.naturalWidth,r=i.height*t/o.naturalHeight,l=Math.min(n,r,1);this.transform.setTransform(l,0,0,l,0,0)?setTimeout(()=>{this.transform.center(),this.selection.center(),e(!0)},100):(this.transform.reset(),setTimeout(()=>{l<1&&this.transform.scale(l),setTimeout(()=>{this.transform.center(),this.selection.center(),e(!0)},100)},100))}else this.transform.center(),e(!1)}catch(i){console.warn("Error in setup:",i),this.transform.center(),e(!1)}};l()})},resetAll:()=>{const e={transform:this.transform.reset(),selection:this.selection.reset(),center:!1};return setTimeout(()=>{e.center=this.transform.center()&&this.selection.center()},100),e},checkExportability:async()=>{try{return!!(await this.selection.toCanvas({width:1,height:1}))}catch{return!1}},resetZoomOnly:()=>this.transform.resetZoom(),getZoomInfo:()=>{const e=this.transform.getZoom();return{current:e,isZoomedIn:e>1,isZoomedOut:e<1,percentage:Math.round(100*e)}},setBackground:e=>this.canvas.setBackground(e)};setupEventListeners(e={}){const{onSelectionChange:t,onImageTransform:n,onAction:r,onActionStart:l,onActionMove:a,onActionEnd:i}=e,o=[];if(t&&this.selectionElement){const e=e=>{t({x:e.detail.x,y:e.detail.y,width:e.detail.width,height:e.detail.height})};this.selectionElement.addEventListener("change",e),o.push(()=>{this.selectionElement&&this.selectionElement.removeEventListener("change",e)})}if(n&&this.image){const e=e=>{n({matrix:e.detail.matrix,oldMatrix:e.detail.oldMatrix})};this.image.addEventListener("transform",e),o.push(()=>{this.image&&this.image.removeEventListener("transform",e)})}if(this.canvasElement){if(r){const e=e=>r(e.detail);this.canvasElement.addEventListener("action",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("action",e)})}if(l){const e=e=>l(e.detail);this.canvasElement.addEventListener("actionstart",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("actionstart",e)})}if(a){const e=e=>a(e.detail);this.canvasElement.addEventListener("actionmove",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("actionmove",e)})}if(i){const e=e=>i(e.detail);this.canvasElement.addEventListener("actionend",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("actionend",e)})}}return()=>{o.forEach(e=>e())}}}async function nn(e,t,n={}){const{format:r=null,originalFormat:l="webp",onSuccess:a=null,onError:i=null,accessibilityManager:o=null}=n;try{const n=window.limboCore?.config?.getGlobal(),i=r||n?.downloadFormat||l||"webp",s=`${t.split(".")[0]}.${i}`;if(o&&o.announce(`Descargando ${s}`),e.startsWith("data:image/"))return function(e,t){const n=document.createElement("a");n.href=e,n.download=t,n.style.display="none",document.body.appendChild(n),n.click(),setTimeout(()=>{document.body.removeChild(n)},100)}(e,s),a&&a(s),o&&o.announce(`${s} descargado correctamente`),!0;const c=await fetch(e,{mode:"cors"});if(!c.ok)throw new Error(`HTTP error! status: ${c.status}`);const u=await c.blob();let d=u;const b=u.type;b!==`image/${"jpg"===i?"jpeg":i}`&&function(e){return["webp","jpeg","jpg","png"].includes(e.toLowerCase())}(i)&&(d=await async function(e,t){return new Promise((n,r)=>{const l=new Image,a=URL.createObjectURL(e);l.onload=()=>{try{const r=document.createElement("canvas");r.width=l.width,r.height=l.height;r.getContext("2d").drawImage(l,0,0);const i=`image/${"jpg"===t?"jpeg":t}`,o="png"===t?void 0:.92;r.toBlob(t=>{URL.revokeObjectURL(a),n(t||e)},i,o)}catch(r){URL.revokeObjectURL(a),n(e)}},l.onerror=()=>{URL.revokeObjectURL(a),n(e)},l.src=a})}(u,i));const m=window.URL.createObjectURL(d),h=document.createElement("a");return h.href=m,h.download=s,h.style.display="none",document.body.appendChild(h),h.click(),setTimeout(()=>{window.URL.revokeObjectURL(m),document.body.removeChild(h)},100),a&&a(s),o&&o.announce(`${s} descargado correctamente`),!0}catch(s){return console.error("Error downloading image:",s),i&&i(s),o&&o.announce(`Error al descargar la imagen: ${s.message}`),!1}}const rn=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,default:nn,downloadImage:nn},Symbol.toStringTag,{value:"Module"}));function ln({image:e,onSave:i,onCancel:u,onDelete:d,onError:b=null,deleting:m=!1,onVariantCreated:h=null,onUpload:p=null,uploading:f=!1,cropperConfig:g=null}){const[y,v]=t(!1),[w,x]=t(null),[k,C]=t(!1),[S,N]=t(!0),[E,$]=t(!0),[_,z]=t({x:20,y:100}),[T,A]=t(!1),[P,M]=t({x:0,y:0}),[I,L]=t(!1),[D,O]=t(!0),[R,j]=t(!1),[F,U]=t({horizontal:!1,vertical:!1}),[q,B]=t(!1),[W,V]=t(!1),[H,K]=t(!1),[G,Q]=t(!1),[X]=t(()=>{if(!e||!e.filename)return"image";const[t]=e.filename.split(".");return t}),J=a(()=>{if(g)return{mandatoryCrops:g.mandatoryCrops||[],allowCustomCrops:!1!==g.allowAdditionalCrops,showDimensionInputs:!0===g.showDimensionInputs,maxCrops:g.maxCrops||null};const e=window.limboCore?.config?.getGlobal()||{};return{mandatoryCrops:e.cropper?.mandatoryCrops||[],allowCustomCrops:!1!==e.cropper?.allowCustomCrops,showDimensionInputs:!0===e.cropper?.showDimensionInputs,maxCrops:e.cropper?.maxCrops||null}},[g]),[Z,ee]=t(()=>J.mandatoryCrops.length>0?J.mandatoryCrops.map((e,t)=>({id:`crop-${t}`,label:e.label,width:e.width,height:e.height,required:!1!==e.required,isCustom:!1,confirmed:!1,lockDimensions:!(!e.width||!e.height),savedState:null})):[{id:"crop-default-0",label:X,width:e.width||1920,height:e.height||1080,required:!1,isCustom:!0,confirmed:!1,savedState:null}]),[te,ne]=t(0),re=Z[te],le=a(()=>re&&re.width&&re.height?re.width/re.height:"",[re]),ae=a(()=>{const e=50;if(!le||""===le)return{minWidth:e,minHeight:e};if(le>=1){return{minWidth:e,minHeight:e/le}}return{minWidth:e*le,minHeight:e}},[le]),[ie,oe]=t(!1),[ce,ue]=t([]),[de,be]=t(null),me=window.limboCore?.accessibilityManager,{createVariantFromBlob:he,loading:pe,error:fe}=en(),ge=((e,a={})=>{const i=l(null),o=l(null),s=l(null),c=l(null),[u,d]=t(null),[b,m]=t(null),[h,p]=t(!1),[f,g]=t(!0),[y,v]=t(0),w={aspectRatio:"",shade:!0,paspartuFactor:.85,...a};n(()=>{i.current&&o.current&&s.current&&(c.current=new tn(i,o,s),p(!0))},[]),n(()=>{if(c.current)return c.current.setupEventListeners({onSelectionChange:e=>{d(e)},onImageTransform:()=>{v(e=>e+1)}})},[h]),n(()=>{c.current&&e&&(async()=>{c.current.selection.setAspectRatio(w.aspectRatio),c.current.canvas.setBackground(w.shade),await c.current.utils.setupInitialView({paspartuFactor:w.paspartuFactor});const e=await c.current.utils.checkExportability();g(e);const t=o.current?.querySelector("img")||o.current;t?.naturalWidth&&t?.naturalHeight&&m({naturalWidth:t.naturalWidth,naturalHeight:t.naturalHeight,currentWidth:t.width,currentHeight:t.height})})()},[e]),n(()=>{c.current&&h&&c.current.selection.setAspectRatio(w.aspectRatio)},[w.aspectRatio,h]),n(()=>{c.current&&h&&c.current.canvas.setBackground(w.shade)},[w.shade,h]);const x=r(()=>({move:(e,t)=>c.current?.transform.move(e,t)||!1,zoom:e=>c.current?.transform.zoom(e)||!1,rotate:e=>c.current?.transform.rotate(e)||!1,center:()=>c.current?.transform.center()||!1,reset:()=>c.current?.transform.reset()||!1,resetZoom:()=>c.current?.transform.resetZoom()||!1,setZoom:e=>c.current?.transform.setZoom(e)||!1,getZoom:()=>c.current?.transform.getZoom()||1,fitToCanvas:e=>c.current?.transform.fitToCanvas(e)||!1,flipHorizontal:()=>c.current?.utils.flipHorizontal()||!1,flipVertical:()=>c.current?.utils.flipVertical()||!1}),[]),k=r(()=>({center:()=>c.current?.selection.center()||!1,reset:()=>c.current?.selection.reset()||!1,setCoverage:e=>c.current?.selection.setCoverage(e)||!1,setAspectRatio:e=>c.current?.selection.setAspectRatio(e)||!1,toCanvas:e=>c.current?.selection.toCanvas(e)||Promise.resolve(null)}),[]),C=r(()=>({resetAll:()=>{if(c.current){const e=c.current.utils.resetAll();return d(null),e}return!1},setBackground:e=>c.current?.canvas.setBackground(e)||!1,resetZoomOnly:()=>c.current?.utils.resetZoomOnly()||!1,getZoomInfo:()=>c.current?.utils.getZoomInfo()||{current:1,percentage:100,isZoomedIn:!1,isZoomedOut:!1}}),[]);return{refs:{canvasRef:i,imageRef:o,selectionRef:s},state:{cropData:u,imageInfo:b,isReady:h,canExport:f,transformVersion:y},transform:x(),selection:k(),utils:C(),manager:c.current}})(e,{aspectRatio:le||null,showGrid:S,shade:E,initialCoverage:.5,paspartuFactor:.85}),{refs:ye,state:ve,transform:we,selection:xe,utils:ke}=ge,{canvasRef:Ce,imageRef:Se,selectionRef:Ne}=ye,{cropData:Ee,imageInfo:$e,canExport:_e,transformVersion:ze}=ve,Te=a(()=>$e||{naturalWidth:e.width||1920,naturalHeight:e.height||1080,currentWidth:e.width||1920,currentHeight:e.height||1080},[$e,e.width,e.height]),Ae=r(()=>N(e=>!e),[]),Pe=r(()=>$(e=>!e),[]),Me=r(()=>V(e=>!e),[]),Ie=r(()=>K(e=>!e),[]),Le=r(()=>Q(e=>!e),[]),De=r(()=>we.center(),[we]),Oe=r(()=>xe.center(),[xe]),Re=r(()=>xe.reset(),[xe]),je=r((e,t)=>we.move(e,t),[we]),Fe=r(e=>we.zoom(e),[we]),Ue=r(e=>we.rotate(e),[we]),qe=r(e=>{xe.setCoverage(e)},[xe]),Be=r(()=>{U(e=>{const t=!e.horizontal;return we.flipHorizontal(),{...e,horizontal:t}})},[we]),We=r(()=>{U(e=>{const t=!e.vertical;return we.flipVertical(),{...e,vertical:t}})},[we]),Ve=r(()=>{if(!ge.manager||!ve.isReady)return null;try{const e=Ee?{...Ee}:null;let t=null;if(Ne.current){const e=Ne.current;t={x:e.x??0,y:e.y??0,width:e.width??0,height:e.height??0}}let n=null;if(Se.current){const e=Se.current.$getTransform?.();e&&Array.isArray(e)&&(n=[...e])}const r={cropData:e,selectorState:t,imageTransform:n,flipState:{horizontal:F.horizontal,vertical:F.vertical}};return console.log(`[CropperView] 💾 Guardando estado del crop ${te}:`,r),ee(e=>e.map((e,t)=>t===te?{...e,savedState:r}:e)),r}catch(e){return console.warn("Error saving crop state:",e),null}},[ge.manager,ve.isReady,Ee,F,te,Se,Ne]),He=r(e=>{const t=Z[e];if(!t||!t.savedState)return console.log(`[CropperView] ℹ️ No hay estado guardado para crop ${e}, centrando...`),void setTimeout(()=>{De(),setTimeout(()=>Oe(),100)},100);if(ge.manager&&ve.isReady)try{const{savedState:n}=t;if(console.log(`[CropperView] ♻️ Restaurando estado del crop ${e}:`,n),n.imageTransform&&Se.current&&Array.isArray(n.imageTransform)&&setTimeout(()=>{if(Se.current&&Se.current.$setTransform){const[e,t,r,l,a,i]=n.imageTransform;Se.current.$setTransform(e,t,r,l,a,i),console.log(`[CropperView] ✅ Imagen restaurada: transform(${e.toFixed(2)}, ${t.toFixed(2)}, ${r.toFixed(2)}, ${l.toFixed(2)}, ${a.toFixed(0)}, ${i.toFixed(0)})`)}},100),n.selectorState&&Ne.current){const{x:e,y:t,width:r,height:l}=n.selectorState;setTimeout(()=>{Ne.current&&(Ne.current.x=e,Ne.current.y=t,Ne.current.width=r,Ne.current.height=l,Ne.current.$render&&Ne.current.$render(),console.log(`[CropperView] ✅ Selector restaurado: ${r}×${l} en (${e}, ${t})`))},150)}n.flipState&&U({horizontal:n.flipState.horizontal??!1,vertical:n.flipState.vertical??!1}),console.log("[CropperView] ✨ Estado restaurado completamente")}catch(n){console.error("Error restoring crop state:",n),setTimeout(()=>{De(),setTimeout(()=>Oe(),100)},100)}else console.warn("Cropper not ready for state restoration")},[Z,ge.manager,ve.isReady,De,Oe,Ne,Se]),Ke=r(()=>{for(let e=0;e<Z.length;e++){const t=Z[e];if(!t.label||""===t.label.trim())return e}return-1},[Z]),Ge=r(async e=>{e!==te&&(j(!0),Ve(),await new Promise(e=>setTimeout(e,100)),ne(e),await new Promise(e=>setTimeout(e,250)),He(e),await new Promise(e=>setTimeout(e,200)),j(!1))},[te,Ve,He]),Qe=r(()=>{if(!J.allowCustomCrops)return void alert("No se pueden añadir recortes personalizados en este modo.");const t={id:`crop-custom-${Date.now()}`,label:`Recorte ${Z.length+1}`,width:e.width||1920,height:e.height||1080,required:!1,isCustom:!0,confirmed:!1,savedState:null};ee(e=>[...e,t]),me?.announce(`Nuevo recorte personalizado añadido: ${t.label}. Selecciónalo para editarlo.`)},[J.allowCustomCrops,Z.length,e.width,e.height,me]),Ye=r((e,t)=>{const n=parseInt(t,10);""===t||isNaN(n)||ee(t=>t.map((t,r)=>r===te?{...t,[e]:n}:t))},[te]),Xe=r(e=>{const t=re[e];let n=100;if(Ce.current&&$e){const e=Ce.current.getBoundingClientRect(),t=Math.min(e.width,e.height);n=Math.max(100,Math.round(.05*t))}const r=Math.max(n,Math.min(5e3,t));r!==t&&ee(t=>t.map((t,n)=>n===te?{...t,[e]:r}:t));const l={...re,[e]:r},a=l.width/l.height,i=xe.getData?.();xe.setAspectRatio(a),i&&void 0!==i.x&&setTimeout(()=>{xe.set?.(i.x,i.y,i.width,i.height)},50)},[te,re,xe,Ce,$e]),Je=r(e=>{ee(t=>t.map((t,n)=>n===te?{...t,label:e}:t))},[te]),Ze=r((e,t=null)=>{t=t||Z[e].label;if(!window.confirm(`¿Estás seguro de que deseas eliminar "${t||"este recorte"}"? Esta acción también eliminará todos sus recortes.`))return;const n=Z[e];if(n.required)alert("No se puede eliminar un recorte obligatorio.");else if(1!==Z.length){if(ee(t=>t.filter((t,n)=>n!==e)),e===te){const t=Math.max(0,e-1);ne(t)}else e<te&&ne(e=>e-1);me?.announce(`Recorte ${n.label} eliminado`)}else alert("Debe haber al menos un recorte.")},[Z,te,me]),et=r(async()=>{if(!_e)return null;try{const t=await xe.toCanvas({width:800,height:600,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});return t?t.toDataURL(`image/${globalThis.downloadFormat||e.mime_type.split("/")[1]||"webp"}`,.9):null}catch(t){return console.warn("Error generating preview:",t),null}},[_e,e.mime_type,xe]),tt=r(async()=>{if(y)return v(!1),x(null),void C(!1);if(_e){v(!0),C(!0);try{const e=await et();e?x(e):(v(!1),alert("No se puede exportar el recorte por restricciones de CORS en la imagen original."))}finally{C(!1)}}else alert("No se puede exportar el recorte por restricciones de CORS en la imagen original.")},[_e,et,y]),nt=r(e=>{e.target.closest(".limbo-preview-modal-header")&&(A(!0),M({x:e.clientX-_.x,y:e.clientY-_.y}))},[_]),rt=r(e=>{T&&(e.preventDefault(),z({x:e.clientX-P.x,y:e.clientY-P.y}))},[T,P]),lt=r(()=>{A(!1)},[]),at=r(e=>{if(!e.target.closest(".limbo-preview-modal-header"))return;const t=e.touches[0];A(!0),M({x:t.clientX-_.x,y:t.clientY-_.y})},[_]),it=r(e=>{if(!T)return;e.preventDefault();const t=e.touches[0];z({x:t.clientX-P.x,y:t.clientY-P.y})},[T,P]),ot=r(()=>{A(!1)},[]);n(()=>{if(T)return document.addEventListener("mousemove",rt),document.addEventListener("mouseup",lt),document.addEventListener("touchmove",it,{passive:!1}),document.addEventListener("touchend",ot),()=>{document.removeEventListener("mousemove",rt),document.removeEventListener("mouseup",lt),document.removeEventListener("touchmove",it),document.removeEventListener("touchend",ot)}},[T,rt,lt,it,ot]),n(()=>{if(!I)return;const e=e=>{"Escape"===e.key&&L(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[I]);const st=r(async(t,n=null)=>{const r=Z[t];if(!r)throw new Error(`Crop ${t} no encontrado`);if(!r.savedState&&t!==te)throw new Error(`El recorte "${r.label}" aún no ha sido configurado`);const l={index:te,imageTransform:Se.current?.$getTransform?.(),selectorState:Ne.current?{x:Ne.current.x,y:Ne.current.y,width:Ne.current.width,height:Ne.current.height}:null};try{if(t!==te&&r.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para guardado...`),r.savedState.imageTransform&&Se.current?.$setTransform){const[e,t,n,l,a,i]=r.savedState.imageTransform;Se.current.$setTransform(e,t,n,l,a,i)}if(r.savedState.selectorState&&Ne.current){const{x:e,y:t,width:n,height:l}=r.savedState.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=n,Ne.current.height=l,Ne.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const l=Math.min(r.width,5e3),a=Math.min(r.height,5e3),i=await xe.toCanvas({width:l,height:a,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!i)throw new Error(`No se pudo generar el canvas para "${r.label}"`);const o=globalThis.downloadFormat||"webp",s="webp"===o?"image/webp":"png"===o?"image/png":"image/jpeg",c=.9,u=await new Promise((e,t)=>{i.toBlob(n=>{n?e(n):t(new Error("No se pudo convertir el canvas a blob"))},s,c)});console.log("[CropperView] Canvas convertido a blob:",{size:u.size,type:u.type,dimensions:`${l}x${a}`});const d=`${r.label||"crop"}_${l}_${a}`,b=n||e.id;if(!b||"string"==typeof b&&b.startsWith("external")){console.log("[CropperView] 🌐 Imagen externa detectada, generando resultado local");const e=URL.createObjectURL(u),t={id:`local-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:d,filename:`${d}.${o}`,url:e,urlSigned:e,width:l,height:a,format:o,size:u.size,mime_type:s,blob:u,isLocal:!0};return me?.announceSuccess(`Recorte creado localmente: ${d}`),t}const m=await he(b,u,{name:d,width:l,height:a,format:o});if(m)return me?.announceSuccess(`Recorte creado: ${d}`),h?.(b,m),m;throw new Error("No se pudo crear la variante")}finally{if(t!==te&&l.imageTransform&&Se.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${l.index}...`);const[e,t,n,r,a,i]=l.imageTransform;if(Se.current.$setTransform(e,t,n,r,a,i),l.selectorState&&Ne.current){const{x:e,y:t,width:n,height:r}=l.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=n,Ne.current.height=r,Ne.current.$render?.()}}}},[Z,te,xe,he,e.id,h,me,Se,Ne]),ct=r(async()=>{if(!_e){const e="No se puede exportar el recorte por restricciones de CORS en la imagen original.";return me?.announceError(e),void alert(e)}if(!ve.isReady){const e="El cropper aún no está inicializado. Espera un momento e inténtalo de nuevo.";return me?.announceError(e),void alert(e)}Ve(),me?.announce("Creando recorte de la imagen");try{let t=e.id,n=null;if(e.file&&p){me?.announce("Subiendo imagen...");const r=await p(e.file);if(!r||!r.id)throw new Error("No se pudo subir la imagen al servidor");t=r.id,n=r,me?.announceSuccess("Imagen subida correctamente")}const r=await st(te,t);r&&i(n?{crops:[r],asset:n}:r)}catch(t){console.warn("Error creating crop variant:",t);const e=t.message||"No se pudo crear el recorte. Inténtalo de nuevo.";me?.announceError(e),alert(e),b?.(t)}},[_e,ve.isReady,me,Ve,st,te,i,b,e.file,e.id,p]),ut=r(async t=>{Ve(),me?.announce(`Guardando ${t.length} recortes...`);try{let r=e.id,l=null;if(e.file&&p){me?.announce("Subiendo imagen...");const t=await p(e.file);if(!t||!t.id)throw new Error("No se pudo subir la imagen al servidor");r=t.id,l=t,me?.announceSuccess("Imagen subida correctamente")}const a=[],o=[];for(const e of t)try{const t=await st(e,r);t&&a.push(t)}catch(n){o.push({crop:Z[e]?.label||`Crop ${e}`,error:n.message})}if(a.length>0&&(me?.announceSuccess(`${a.length} recorte(s) guardado(s) correctamente`),i(l?{crops:a,asset:l}:a)),o.length>0){const e=`Errores al guardar algunos recortes:\n${o.map(e=>`- ${e.crop}: ${e.error}`).join("\n")}`;me?.announceError(e),alert(e)}}catch(n){const e=n.message||"Error al procesar los recortes";me?.announceError(e),alert(e),b?.(n)}},[Ve,st,Z,me,i,e.file,e.id,p,b]),dt=r(async()=>{const e=Ke();if(-1!==e){const t=Z[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void ne(e)}if(Z.length>1){be("save");const e=Z.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.required||e.savedState||t===te).map(({index:e})=>e);return ue(e),void oe(!0)}await ct()},[Ke,Z,ct,te]),bt=r(async t=>{const n=Z[t];if(!n)throw new Error(`Crop ${t} no encontrado`);if(!n.savedState&&t!==te)throw new Error(`El recorte "${n.label}" aún no ha sido configurado`);const r={index:te,imageTransform:Se.current?.$getTransform?.(),selectorState:Ne.current?{x:Ne.current.x,y:Ne.current.y,width:Ne.current.width,height:Ne.current.height}:null};try{if(t!==te&&n.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para descarga...`),n.savedState.imageTransform&&Se.current?.$setTransform){const[e,t,r,l,a,i]=n.savedState.imageTransform;Se.current.$setTransform(e,t,r,l,a,i)}if(n.savedState.selectorState&&Ne.current){const{x:e,y:t,width:r,height:l}=n.savedState.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=r,Ne.current.height=l,Ne.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const r=await xe.toCanvas({width:n.width,height:n.height,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!r)throw new Error(`No se pudo generar el canvas para "${n.label}"`);const l=r.toDataURL(`image/${globalThis.downloadFormat||e.mime_type.split("/")[1]||"webp"}`,.9),a=`${(n.label||"crop").replace(/\.[^/.]+$/,"").replace(/\s+/g,"-").trim()}_${n.width}_${n.height}`;return await nn(l,a,{accessibilityManager:me,onSuccess:e=>{console.log(`✅ Descargado: ${e}`)},onError:e=>{throw new Error(`Error al descargar "${n.label}": ${e.message}`)}}),{crop:n.label,filename:a}}finally{if(t!==te&&r.imageTransform&&Se.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${r.index}...`);const[e,t,n,l,a,i]=r.imageTransform;if(Se.current.$setTransform(e,t,n,l,a,i),r.selectorState&&Ne.current){const{x:e,y:t,width:n,height:l}=r.selectorState;Ne.current.x=e,Ne.current.y=t,Ne.current.width=n,Ne.current.height=l,Ne.current.$render?.()}}}},[Z,te,xe,e.mime_type,me,Se,Ne]),mt=r(async e=>{Ve(),me?.announce(`Descargando ${e.length} recortes...`);const t=[],n=[];for(const l of e)try{const e=await bt(l);e&&t.push(e)}catch(r){n.push({crop:Z[l]?.label||`Crop ${l}`,error:r.message})}if(t.length>0&&me?.announceSuccess(`${t.length} recorte(s) descargado(s) correctamente`),n.length>0){const e=`Errores al descargar algunos recortes:\n${n.map(e=>`- ${e.crop}: ${e.error}`).join("\n")}`;me?.announceError(e),alert(e)}},[Ve,bt,Z,me]),ht=r(async()=>{if(!_e){const e="No se puede descargar el recorte por restricciones de CORS en la imagen original.";return me?.announceError(e),void alert(e)}Ve(),me?.announce("Preparando descarga del recorte");try{await bt(te),me?.announceSuccess("Recorte descargado correctamente")}catch(e){console.error("Error downloading crop:",e);const t=e.message||"Error al descargar el recorte";me?.announceError(t),alert(t)}},[_e,me,Ve,bt,te]),pt=r(async()=>{const e=Ke();if(-1!==e){const t=Z[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void ne(e)}if(Z.length>1){be("download");const e=Z.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.savedState||t===te).map(({index:e})=>e);return ue(e),void oe(!0)}await ht()},[Ke,Z,ht,te]),ft=a(()=>!!e.file||(!e.id||!("string"!=typeof e.id||!e.id.startsWith("external"))),[e.file,e.id]),gt=r(async()=>{try{if(e.file&&p){me?.announce("Subiendo imagen original...");const t=await p(e.file);if(!t||!t.id)throw new Error("No se pudo subir la imagen al servidor");return me?.announceSuccess("Imagen guardada correctamente"),void i({asset:t,crops:[]})}if(ft){me?.announce("Conservando imagen original...");const t={id:`local-original-${Date.now()}`,name:e.filename||"original",filename:e.filename||"image.jpg",url:e.url,urlSigned:e.url,width:e.width||$e?.naturalWidth||1920,height:e.height||$e?.naturalHeight||1080,mime_type:e.mime_type||"image/jpeg",isLocal:!0,isOriginal:!0};return me?.announceSuccess("Imagen original conservada"),void i({crops:[t]})}u()}catch(t){console.error("Error guardando imagen original:",t);const e=t.message||"No se pudo guardar la imagen. Inténtalo de nuevo.";me?.announceError(e),alert(e),b?.(t)}},[e,$e,p,u,i,b,me,ft]);return n(()=>{v(!1),x(null)},[e]),n(()=>{ge.manager&&ve.isReady&&D&&(console.log("[CropperView] Carga inicial completada, centrando imagen y selector..."),setTimeout(()=>{De(),setTimeout(()=>{Oe(),O(!1),console.log("[CropperView] Carga inicial finalizada")},100)},50))},[ge.manager,ve.isReady,D,De,Oe]),n(()=>{ge.manager&&ve.isReady&&(le&&xe.setAspectRatio(le),ke.setBackground(E))},[le,E,ge.manager,ve.isReady,xe,ke]),n(()=>{if(!$e||!ve.isReady||J.mandatoryCrops.length>0)return;const e=Z[0];if(e&&"crop-default-0"===e.id&&(1920===e.width||1080===e.height)){const t=Math.min($e.naturalWidth,5e3),n=Math.min($e.naturalHeight,5e3);ee([{...e,width:t,height:n}]),console.log(`[CropperView] Crop por defecto actualizado a ${t}×${n}px`)}},[$e,ve.isReady,J.mandatoryCrops.length,Z]),n(()=>{if(!y||!_e)return;const e=setTimeout(async()=>{C(e=>!w&&!e||e);try{const e=await et();e&&x(e)}finally{C(!1)}},300);return()=>{clearTimeout(e),C(!1)}},[Ee,ze,y,_e,et,le,F,w]),n(()=>{const e=Ce.current,t=t=>{if("Delete"===t.key||"Backspace"===t.key||"Backspace"===t.key&&t.metaKey||"Backspace"===t.key&&t.ctrlKey){const n=t.target;if(e&&(n===e||n===document.body||n===document.documentElement||"CROPPER-CANVAS"===n.tagName||"CROPPER-SELECTION"===n.tagName||"CROPPER-IMAGE"===n.tagName||"CROPPER-HANDLE"===n.tagName||"CROPPER-GRID"===n.tagName||n.closest("cropper-canvas")||e.contains(n)))return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1}};return document.addEventListener("keydown",t,!0),document.addEventListener("keyup",t,!0),window.addEventListener("keydown",t,!0),e&&e.addEventListener("keydown",t,!0),()=>{document.removeEventListener("keydown",t,!0),document.removeEventListener("keyup",t,!0),window.removeEventListener("keydown",t,!0),e&&e.removeEventListener("keydown",t,!0)}},[Ce]),e?/* @__PURE__ */s("div",{className:"limbo-cropper-view lb:px-2 lb:border-2 lb:border-gray-200/50 lb:rounded-lg lb:max-w-7xl lb:mx-auto lb:w-full lb:min-w-full lb:h-full lb:min-h-full lb:flex lb:flex-col",children:[
|
|
228
229
|
/* @__PURE__ */s("div",{className:"limbo-cropper-header lb:flex lb:flex-row lb:justify-between lb:items-start lb:flex-wrap lb:mx-2 lb:py-2 lb:border-b lb:border-gray-200 lb:bg-white lb:z-10 lb:shrink-0 lb:lg:gap-2",children:[
|
|
229
230
|
/* @__PURE__ */s("div",{className:"lb:flex-1 lb:min-w-fit lb:space-y-2 lb:max-w-fit",children:[
|
|
230
231
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:gap-2",children:[
|
|
231
|
-
/* @__PURE__ */o("h2",{className:"lb:text-lg lb:sm:text-xl lb:font-extrabold lb:text-gray-800",children:"Generar recortes"}),Z.length>1&&/* @__PURE__ */o("span",{className:"lb:px-2 lb:py-0.5 lb:bg-blue-100 lb:text-blue-800 lb:text-xs lb:font-semibold lb:rounded",children:
|
|
232
|
+
/* @__PURE__ */o("h2",{className:"lb:text-lg lb:sm:text-xl lb:font-extrabold lb:text-gray-800",children:"Generar recortes"}),Z.length>1&&/* @__PURE__ */o("span",{className:"lb:px-2 lb:py-0.5 lb:bg-blue-100 lb:text-blue-800 lb:text-xs lb:font-semibold lb:rounded",children:re.label})]}),
|
|
232
233
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:gap-2",children:[
|
|
233
234
|
/* @__PURE__ */o("label",{className:"lb:text-xs lb:text-gray-500 lb:whitespace-nowrap lb:w-fit",children:"Nombre:"}),
|
|
234
235
|
/* @__PURE__ */o("div",{className:"",children:X+"."+(globalThis.downloadFormat||e.mime_type.split("/")[1]||"webp")})]})]}),
|
|
@@ -236,29 +237,29 @@ return o("button",{type:"button","data-upload-tab-id":e.id,className:y(t),"aria-
|
|
|
236
237
|
/* @__PURE__ */s("button",{onClick:u,disabled:pe,className:"lb:flex lb:flex-row lb:items-center lb:gap-1 lb:self-end lb:w-full lb:max-w-fit lb:sm:w-auto lb:px-3 lb:cursor-pointer lb:py-1.5 lb:text-sm lb:rounded lb:bg-neutral-gray-500 lb:hover:bg-neutral-gray-700 lb:transition-colors lb:text-white lb:disabled:opacity-50 lb:disabled:cursor-not-allowed","aria-label":"Cancelar y volver",title:"Cancelar y volver",children:[
|
|
237
238
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-left-white icon--sm lb:m-0 lb:p-0"})," ","Cancelar"]}),d&&/* @__PURE__ */s("button",{onClick:()=>d(e),disabled:m|pe,className:"lb:flex lb:flex-row lb:items-center lb:gap-1 lb:self-end lb:w-full lb:max-w-fit lb:sm:w-auto lb:px-3 lb:cursor-pointer lb:py-1.5 lb:text-sm lb:rounded lb:bg-red-800 lb:hover:bg-red-1000 lb:transition-colors lb:text-white lb:disabled:opacity-50 lb:disabled:cursor-not-allowed","aria-label":`Eliminar imagen ${e.filename}`,title:`Eliminar imagen ${e.filename}`,children:[
|
|
238
239
|
/* @__PURE__ */o("span",{className:"icon icon-close-small-white icon--sm lb:m-0 lb:p-0"}),m?"Eliminando...":"Eliminar"]})]})]}),
|
|
239
|
-
/* @__PURE__ */s("div",{className:"limbo-cropper-status lb:bg-white lb:border-gray-100 lb:py-0 lb:pb-0 lb:flex-shrink-0",children:[fe&&/* @__PURE__ */s("div",{className:"alert alert-danger lb:mb-2 lb:text-sm",role:"alert",children:[
|
|
240
|
-
/* @__PURE__ */o("strong",{children:"Error:"})," ",fe]}),$e&&/* @__PURE__ */s("div",{className:"alert alert-
|
|
241
|
-
/* @__PURE__ */o("strong",{children:"Original:"})," ",$e.naturalWidth," ×"," ",$e.naturalHeight," px",$e.currentWidth!==$e.naturalWidth&&/* @__PURE__ */s("span",{className:"lb:ml-2 lb:sm:ml-3 lb:text-xs lb:block lb:sm:inline",children:["(Mostrada: ",Math.round($e.currentWidth)," ×"," ",Math.round($e.currentHeight)," px)"]})]}),!_e&&/* @__PURE__ */o("div",{className:"alert alert-warning lb:mb-2 lb:text-sm",role:"alert",children:"⚠️ No se puede exportar por restricciones CORS"}),
|
|
240
|
+
/* @__PURE__ */s("div",{className:"limbo-cropper-status lb:bg-white lb:border-gray-100 lb:py-0 lb:pb-0 lb:flex-shrink-0",children:[fe&&/* @__PURE__ */s("div",{className:"limbo-alert limbo-alert-danger lb:mb-2 lb:text-sm",role:"alert",children:[
|
|
241
|
+
/* @__PURE__ */o("strong",{children:"Error:"})," ",fe]}),$e&&/* @__PURE__ */s("div",{className:"limbo-alert limbo-alert-info lb:mb-2 lb:text-sm",role:"status",children:[
|
|
242
|
+
/* @__PURE__ */o("strong",{children:"Original:"})," ",$e.naturalWidth," ×"," ",$e.naturalHeight," px",$e.currentWidth!==$e.naturalWidth&&/* @__PURE__ */s("span",{className:"lb:ml-2 lb:sm:ml-3 lb:text-xs lb:block lb:sm:inline",children:["(Mostrada: ",Math.round($e.currentWidth)," ×"," ",Math.round($e.currentHeight)," px)"]})]}),!_e&&/* @__PURE__ */o("div",{className:"limbo-alert limbo-alert-warning lb:mb-2 lb:text-sm",role:"alert",children:"⚠️ No se puede exportar por restricciones CORS"}),
|
|
242
243
|
/* @__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:[
|
|
243
244
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-2",children:[
|
|
244
245
|
/* @__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:[
|
|
245
246
|
/* @__PURE__ */o("span",{className:"icon icon-add icon--sm",style:{filter:"var(--icon-blue)"}}),"Añadir recorte"]})]}),
|
|
246
|
-
/* @__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===
|
|
247
|
-
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 "+(
|
|
248
|
-
/* @__PURE__ */o("input",{type:"radio",name:"active-crop",checked:
|
|
247
|
+
/* @__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
|
+
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
|
+
/* @__PURE__ */o("input",{type:"radio",name:"active-crop",checked:te===t,onChange:()=>Ge(t),disabled:pe,className:"lb:hidden"}),
|
|
249
250
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:gap-1 lb:mb-1",children:[
|
|
250
|
-
/* @__PURE__ */o("div",{className:"lb:flex-1 lb:min-w-0",children:/* @__PURE__ */s("div",{className:"lb:flex lb:flex-wrap lb:items-center lb:gap-1 lb:min-h-",children:[
|
|
251
|
-
/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:gap-1 lb:mt-auto",children:
|
|
251
|
+
/* @__PURE__ */o("div",{className:"lb:flex-1 lb:min-w-0",children:/* @__PURE__ */s("div",{className:"lb:flex lb:flex-wrap lb:items-center lb:gap-1 lb:min-h-",children:[te!==t||e.required?/* @__PURE__ */o("span",{className:"lb:text-xs lb:font-medium lb:text-gray-800 lb:truncate",children:e.label}):/* @__PURE__ */o("input",{type:"text",value:e.label,onChange:e=>Je(e.target.value),disabled:pe,className:"lb:w-full lb:text-xs lb:px-1 lb:py-0.5 lb:border lb:border-gray-300 lb:rounded lb:focus:outline-none lb:focus:ring-1 lb:focus:ring-blue-500 lb:min-h-5",placeholder:"Nombre",maxLength:25,onClick:e=>e.stopPropagation()}),e.required&&/* @__PURE__ */o("span",{className:"lb:text-[10px] lb:px-1 lb:py-0.5 lb:bg-red-200 lb:text-red-1000 lb:rounded lb:whitespace-nowrap lb:truncate",children:"Obligatorio"})]})}),!e.required&&Z.length>1&&/* @__PURE__ */o("button",{onClick:n=>{n.preventDefault(),n.stopPropagation(),Ze(t,e.label)},className:"lb:shrink-0 lb:hover:bg-red-500/70 lb:text-red-1000 lb:p-1 lb:rounded lb:max-h-fit lb:aspect-square lb:cursor-pointer lb:flex",title:"Eliminar",children:/* @__PURE__ */o("span",{className:"icon icon-close-small icon--xs"})})]}),
|
|
252
|
+
/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:gap-1 lb:mt-auto",children:te===t?/* @__PURE__ */s(c,{children:[
|
|
252
253
|
/* @__PURE__ */o("input",{type:"number",min:"100",max:"5000",value:e.width,onChange:e=>Ye("width",e.target.value),onBlur:()=>Xe("width"),disabled:pe||e.lockDimensions,className:"lb:max-h-fit lb:flex-1 lb:text-xs lb:px-1 lb:py-0.5 lb:border lb:rounded lb:focus:outline-none lb:focus:ring-1 lb:focus:ring-blue-500 "+(e.lockDimensions?"lb:border-gray-200 lb:bg-gray-100 lb:text-gray-500 lb:cursor-not-allowed":"lb:border-gray-300"),placeholder:"W",onClick:e=>e.stopPropagation(),title:e.lockDimensions?"Dimensiones bloqueadas (recorte obligatorio)":"Ancho en píxeles"}),
|
|
253
254
|
/* @__PURE__ */o("span",{className:"lb:text-gray-400 lb:text-xs",children:"×"}),
|
|
254
255
|
/* @__PURE__ */o("input",{type:"number",min:"100",max:"5000",value:e.height,onChange:e=>Ye("height",e.target.value),onBlur:()=>Xe("height"),disabled:pe||e.lockDimensions,className:"lb:max-h-fit lb:flex-1 lb:text-xs lb:px-1 lb:py-0.5 lb:border lb:rounded lb:focus:outline-none lb:focus:ring-1 lb:focus:ring-blue-500 "+(e.lockDimensions?"lb:border-gray-200 lb:bg-gray-100 lb:text-gray-500 lb:cursor-not-allowed":"lb:border-gray-300"),placeholder:"H",onClick:e=>e.stopPropagation(),title:e.lockDimensions?"Dimensiones bloqueadas (recorte obligatorio)":"Alto en píxeles"})]}):/* @__PURE__ */s("span",{className:"lb:text-xs lb:text-gray-500",children:[e.width," × ",e.height," px"]})}),!n&&/* @__PURE__ */o("div",{className:"lb:text-xs lb:px-1 lb:py-0.5 lb:bg-orange-300 lb:text-neutral-gray-25 lb:text-shadow-xs lb:font-semibold lb:rounded lb:text-center lb:mt-1",children:"Sin configurar"})]},e.id)})})]})]}),
|
|
255
256
|
/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:lg:flex-row lb:flex-1 lb:w-full lb:overflow-hidden lb:lg:max-h-130 lb:mx-2 lb:py-1",children:[
|
|
256
257
|
/* @__PURE__ */o("div",{className:"lb:relative lb:flex-1 lg:lb:flex-2 lb:h-full lb:shrink-0 lb:grow-1 lb:order-0 lb:min-h-100 lb:lg:min-h-130",children:/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:bg-white lb:rounded-lg lb:border-2 lb:border-gray-200 lb:overflow-hidden",children:[
|
|
257
|
-
/* @__PURE__ */o(
|
|
258
|
-
/* @__PURE__ */o(
|
|
258
|
+
/* @__PURE__ */o(se,{show:D,message:"Cargando recortador..."}),
|
|
259
|
+
/* @__PURE__ */o(se,{show:R,message:`Cambiando a: ${Z[te]?.label||"recorte"}...`}),
|
|
259
260
|
/* @__PURE__ */s("cropper-canvas",{ref:Ce,style:{width:"100%",height:"100%",display:"block"},background:!!E||void 0,id:"limbo-cropperjs-canvas",tabindex:"-1",onKeyDown:e=>{"Delete"!==e.key&&"Backspace"!==e.key||(e.preventDefault(),e.stopPropagation())},children:[
|
|
260
261
|
/* @__PURE__ */o("cropper-image",{ref:Se,src:e.url||e.path,alt:e.filename,id:"limbo-cropperjs-image",action:"move",crossOrigin:"anonymous",rotatable:!0,scalable:!0,skewable:!0,translatable:!0}),
|
|
261
|
-
/* @__PURE__ */s("cropper-selection",{ref:Ne,"initial-coverage":"0.5",movable:!0,resizable:!0,keyboard:"true",action:"move",style:{cursor:"move",minWidth:`${
|
|
262
|
+
/* @__PURE__ */s("cropper-selection",{ref:Ne,"initial-coverage":"0.5",movable:!0,resizable:!0,keyboard:"true",action:"move",style:{cursor:"move",minWidth:`${ae.minWidth}px`,minHeight:`${ae.minHeight}px`},"data-prevent-delete":"true",tabindex:"-1",children:[S&&/* @__PURE__ */o("cropper-grid",{role:"grid",action:"move",covered:!0,bordered:!0}),
|
|
262
263
|
/* @__PURE__ */o("cropper-handle",{action:"move",style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"32px",height:"32px",zIndex:"10"}}),
|
|
263
264
|
/* @__PURE__ */o("cropper-handle",{action:"n-resize"}),
|
|
264
265
|
/* @__PURE__ */o("cropper-handle",{action:"e-resize"}),
|
|
@@ -270,10 +271,10 @@ return s("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
270
271
|
/* @__PURE__ */o("cropper-handle",{action:"sw-resize"})]})]})]})}),
|
|
271
272
|
/* @__PURE__ */o("div",{className:"lb:w-full lb:lg:max-w-80 lb:mt-2 lb:lg:my-0 lb:overflow-y-auto lb:bg-white lb:border-t lb:lg:border-t-0 lb:lg:border-l lb:border-gray-200 lb:shrink-0",children:/* @__PURE__ */s("div",{className:"lb:h-full lb:mt-2 lb:lg:my-0 lb:me-2 lb:lg:mx-2 lb:space-y-2 lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:flex-wrap lb:md:flex-nowrap lb:items-start lb:flex-row lb:gap-2 lb:lg:gap-0 lb:lg:block",children:[
|
|
272
273
|
/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded lb:border lb:w-full lb:border-gray-200 lb:mb-2",children:[
|
|
273
|
-
/* @__PURE__ */o("button",{onClick:Le,className:"lb:hidden lb:sm:block lb:w-full lb:p-2 lb:mb-05 lb:cursor-pointer lb:hover:bg-neutral-gray-050/50 lb:transition-colors lb:rounded-t-sm","aria-expanded":
|
|
274
|
+
/* @__PURE__ */o("button",{onClick:Le,className:"lb:hidden lb:sm:block lb:w-full lb:p-2 lb:mb-05 lb:cursor-pointer lb:hover:bg-neutral-gray-050/50 lb:transition-colors lb:rounded-t-sm","aria-expanded":G,"aria-label":"Mostrar/ocultar opciones de visualización",children:/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between",children:[
|
|
274
275
|
/* @__PURE__ */o("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-700",children:"Transformar imagen"}),
|
|
275
|
-
/* @__PURE__ */o("div",{className:"lb:text-center",children:/* @__PURE__ */o("span",{className:`icon ${
|
|
276
|
-
/* @__PURE__ */s("div",{className:"lb:p-2 lb:space-y-2 lb:justify-items-stretch lb:static "+(
|
|
276
|
+
/* @__PURE__ */o("div",{className:"lb:text-center",children:/* @__PURE__ */o("span",{className:`icon ${G?"icon-chevron-up":"icon-chevron-down"} lb:text-center icon--xs`})})]})}),
|
|
277
|
+
/* @__PURE__ */s("div",{className:"lb:p-2 lb:space-y-2 lb:justify-items-stretch lb:static "+(G?"lb:block":"lb:sm:hidden"),children:[
|
|
277
278
|
/* @__PURE__ */o("div",{className:"lb:mb-3 lb:block",children:/* @__PURE__ */s("div",{className:"lb:grid lb:grid-cols-5 lb:gap-1 lb:content-center lb:h-fit lb:mx-auto",children:[
|
|
278
279
|
/* @__PURE__ */o("button",{onClick:()=>Fe(-.2),className:"lb:px-0 lb:rounded lb:cursor-pointer lb:transition-colors lb:text-sm lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200 lb:aspect-square",title:"Alejar",disabled:pe,"aria-label":"Alejar imagen",children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("span",{className:"icon icon-zoom-out-blue"})})}),
|
|
279
280
|
/* @__PURE__ */o("button",{onClick:()=>je(-10,-10),className:"lb:px-0 lb:rounded lb:cursor-pointer lb:transition-colors lb:text-sm lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200 lb:aspect-square",title:"Mover arriba-izquierda",disabled:pe,"aria-label":"Mover imagen hacia arriba-izquierda",children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("span",{className:"icon icon-arrow-up-blue icon--md lb:-rotate-45"})})}),
|
|
@@ -292,11 +293,11 @@ return s("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
292
293
|
/* @__PURE__ */o("button",{onClick:We,className:"lb:px-0 lb:rounded lb:cursor-pointer lb:transition-colors lb:aspect-square lb:text-sm "+(F.vertical?"lb:bg-blue-100 lb:border lb:border-blue-300 lb:text-blue-800":"lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200"),title:"Voltear verticalmente "+(F.vertical?"(activo)":""),disabled:pe,"aria-label":"Voltear imagen verticalmente","aria-pressed":F.vertical,children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("span",{className:"icon icon-arrow-up-down-blue lb:border lb:border-brand-blue-1000 lb:rounded"})})})]})}),
|
|
293
294
|
/* @__PURE__ */o("div",{className:"lb:flex lb:flex-col lb:gap-2",children:/* @__PURE__ */o("button",{onClick:()=>{we.reset(),U({horizontal:!1,vertical:!1})},className:"lb:w-full lb:p-2 lb:rounded lb:cursor-pointer lb:transition-colors lb:text-sm lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200",title:"Reiniciar transformaciones",disabled:pe,"aria-label":"Reiniciar todas las transformaciones de la imagen",children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */s("span",{children:[
|
|
294
295
|
/* @__PURE__ */o("span",{className:"icon icon-refresh-blue icon--sm lb:align-[middle!important] "})," ","Reiniciar ajustes"]})})})})]})]}),
|
|
295
|
-
/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded lb:border lb:border-gray-200 lb:w-full"+(
|
|
296
|
-
/* @__PURE__ */o("button",{onClick:Ie,className:"lb:hidden lb:sm:block lb:w-full lb:cursor-pointer lb:hover:bg-neutral-gray-050/50 lb:p-2 lb:mb-05 lb:transition-colors lb:rounded-t-sm","aria-expanded":
|
|
296
|
+
/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded lb:border lb:border-gray-200 lb:w-full"+(H?"":" lb:bg-neutral-gray-50/50"),children:[
|
|
297
|
+
/* @__PURE__ */o("button",{onClick:Ie,className:"lb:hidden lb:sm:block lb:w-full lb:cursor-pointer lb:hover:bg-neutral-gray-050/50 lb:p-2 lb:mb-05 lb:transition-colors lb:rounded-t-sm","aria-expanded":H,"aria-label":"Mostrar/ocultar opciones de visualizción",children:/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between",children:[
|
|
297
298
|
/* @__PURE__ */o("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-700",children:"Ajustes del selector"}),
|
|
298
|
-
/* @__PURE__ */o("div",{className:"lb:text-center",children:/* @__PURE__ */o("span",{className:`icon ${
|
|
299
|
-
/* @__PURE__ */s("div",{className:"lb:p-2 lb:space-y-2 lb:justify-items-stretch lb:static "+(
|
|
299
|
+
/* @__PURE__ */o("div",{className:"lb:text-center",children:/* @__PURE__ */o("span",{className:`icon ${H?"icon-chevron-up":"icon-chevron-down"} lb:text-center icon--xs`})})]})}),
|
|
300
|
+
/* @__PURE__ */s("div",{className:"lb:p-2 lb:space-y-2 lb:justify-items-stretch lb:static "+(H?"lb:block":"lb:sm:hidden"),children:[
|
|
300
301
|
/* @__PURE__ */o("div",{children:/* @__PURE__ */s("div",{className:"lb:grid lb:grid-cols-2 lb:gap-2",children:[
|
|
301
302
|
/* @__PURE__ */o("button",{onClick:()=>qe(.5),className:"lb:p-1 lb:rounded lb:cursor-pointer lb:transition-colors lb:text-xs lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200",disabled:pe,"aria-label":"Selección 50%",title:"Tamaño de selector 50%",children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("span",{children:"50%"})})}),
|
|
302
303
|
/* @__PURE__ */o("button",{onClick:()=>qe(.7),className:"lb:p-1 lb:rounded lb:cursor-pointer lb:transition-colors lb:text-xs lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200",disabled:pe,"aria-label":"Selección 70%",children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */o("span",{children:"70%"})})}),
|
|
@@ -308,10 +309,10 @@ return s("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
308
309
|
/* @__PURE__ */o("button",{onClick:Re,className:"lb:w-full lb:p-1 lb:rounded lb:cursor-pointer lb:transition-colors lb:text-sm lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200",title:"Reiniciar selección",disabled:pe,"aria-label":"Reiniciar área de selección",children:/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center",children:/* @__PURE__ */s("span",{children:[
|
|
309
310
|
/* @__PURE__ */o("span",{className:"icon icon-refresh icon--sm lb:align-[middle!important]"})," ","Reset selección"]})})})]})]})]}),
|
|
310
311
|
/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded lb:border lb:border-gray-200 lb:w-full",children:[
|
|
311
|
-
/* @__PURE__ */o("button",{onClick:Me,className:"lb:hidden lb:sm:block lb:w-full lb:cursor-pointer lb:hover:bg-neutral-gray-050/50 lb:transition-colors lb:rounded-t-sm lb:mb-05 lb:p-2","aria-expanded":
|
|
312
|
+
/* @__PURE__ */o("button",{onClick:Me,className:"lb:hidden lb:sm:block lb:w-full lb:cursor-pointer lb:hover:bg-neutral-gray-050/50 lb:transition-colors lb:rounded-t-sm lb:mb-05 lb:p-2","aria-expanded":W,"aria-label":"Mostrar/ocultar opciones de visualización",children:/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between",children:[
|
|
312
313
|
/* @__PURE__ */o("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-700",children:"Visualización"}),
|
|
313
|
-
/* @__PURE__ */o("div",{className:"lb:text-center",children:/* @__PURE__ */o("span",{className:`icon ${
|
|
314
|
-
/* @__PURE__ */s("div",{className:"lb:py-2 lb:space-y-2 lb:justify-items-stretch lb:static "+(
|
|
314
|
+
/* @__PURE__ */o("div",{className:"lb:text-center",children:/* @__PURE__ */o("span",{className:`icon ${W?"icon-chevron-up":"icon-chevron-down"} lb:text-center icon--xs`})})]})}),
|
|
315
|
+
/* @__PURE__ */s("div",{className:"lb:py-2 lb:space-y-2 lb:justify-items-stretch lb:static "+(W?"lb:block":"lb:sm:hidden"),children:[
|
|
315
316
|
/* @__PURE__ */s("button",{onClick:Ae,className:"lb:w-auto lb:flex lb:cursor-pointer lb:items-center lb:justify-between lb:mx-2 lb:p-1 lb:rounded lb:transition-colors "+(S?"lb:bg-blue-100 lb:border lb:border-blue-300 lb:text-blue-800":"lb:bg-gray-100 lb:border lb:border-gray-300 lb:text-gray-700 lb:hover:bg-gray-200"),disabled:pe,"aria-pressed":S,title:"Mostrar/ocultar cuadrícula de la regla de los tercios en el selector","aria-label":"Activar/desactivar grid",children:[
|
|
316
317
|
/* @__PURE__ */s("span",{className:"lb:text-sm lb:flex lb:items-center",children:[
|
|
317
318
|
/* @__PURE__ */o("span",{className:"icon icon-area-blue lb:me-1"})," ","Cuadrícula"]}),
|
|
@@ -323,7 +324,7 @@ return s("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
323
324
|
/* @__PURE__ */o("span",{className:"lb:text-xs",children:E?/* @__PURE__ */s(c,{children:[
|
|
324
325
|
/* @__PURE__ */o("span",{className:"icon icon-tick icon--xs lb:align-[middle!important] lb:-mt-0.5"})," ","Activo"]}):"Inactivo"})]})]})]})]})})]}),
|
|
325
326
|
/* @__PURE__ */s("div",{className:"lb:flex lb:justify-between lb:shrink-0 lb:border-t lb:border-gray-200 lb:bg-white lb:mx-2 lb:mt-1 lb:py-2 lb:lg:gap-0",children:[
|
|
326
|
-
/* @__PURE__ */s("button",{onClick:()=>
|
|
327
|
+
/* @__PURE__ */s("button",{onClick:()=>B(!0),className:"lb:text-nowrap lb:block lb:cursor-pointer lb:lg:flex lb:items-center lb:gap-2 lb:px-2 lb:py-1 lb:bg-gradient-to-br lb:from-brand-blue-50 lb:to-green-50 lb:hover:from-brand-blue-100 lb:hover:to-green-100 lb:border lb:border-blue-200 lb:rounded-lg lb:shadow-sm lb:transition-colors","aria-label":"Abrir guía de uso",children:[
|
|
327
328
|
/* @__PURE__ */o("span",{className:"icon icon-lightbulb lb:text-yellow-500"}),
|
|
328
329
|
/* @__PURE__ */o("span",{className:"lb:text-sm lb:font-semibold lb:text-blue-800",children:"Guía de uso"}),
|
|
329
330
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-down lb:scale-75 lb:-rotate-145"})]}),
|
|
@@ -340,11 +341,11 @@ return s("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
340
341
|
/* @__PURE__ */o("span",{className:"icon icon-save-white icon--sm"}),
|
|
341
342
|
/* @__PURE__ */o("span",{children:"Guardando..."})]}:{children:[
|
|
342
343
|
/* @__PURE__ */o("span",{className:"icon icon-save-white icon--sm"}),
|
|
343
|
-
/* @__PURE__ */o("span",{className:"lb:hidden lb:md:inline lb:whitespace-nowrap",children:"Guardar recorte"})]})})})]})]}),
|
|
344
|
+
/* @__PURE__ */o("span",{className:"lb:hidden lb:md:inline lb:whitespace-nowrap",children:"Guardar recorte"})]})})})]})]}),ie&&/* @__PURE__ */o("div",{className:"lb:fixed lb:inset-0 lb:bg-black lb:bg-opacity-50 lb:flex lb:items-center lb:justify-center lb:z-[9999] lb:p-4",children:/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded-lg lb:shadow-xl lb:max-w-lg lb:w-full lb:max-h-[80vh] lb:overflow-hidden lb:flex lb:flex-col",children:[
|
|
344
345
|
/* @__PURE__ */s("div",{className:"lb:px-6 lb:py-4 lb:border-b lb:border-gray-200",children:[
|
|
345
346
|
/* @__PURE__ */o("h3",{className:"lb:text-lg lb:font-semibold lb:text-gray-800",children:"save"===de?"Seleccionar recortes a guardar":"Seleccionar recortes a descargar"}),
|
|
346
347
|
/* @__PURE__ */s("p",{className:"lb:text-sm lb:text-gray-600 lb:mt-1",children:["Marca los recortes que deseas"," ","save"===de?"guardar":"descargar"]})]}),
|
|
347
|
-
/* @__PURE__ */o("div",{className:"lb:px-6 lb:py-4 lb:overflow-y-auto lb:flex-1",children:/* @__PURE__ */o("div",{className:"lb:space-y-2",children:Z.map((e,t)=>{const n=e.savedState||t===
|
|
348
|
+
/* @__PURE__ */o("div",{className:"lb:px-6 lb:py-4 lb:overflow-y-auto lb:flex-1",children:/* @__PURE__ */o("div",{className:"lb:space-y-2",children:Z.map((e,t)=>{const n=e.savedState||t===te,r=!e.required&&!n;/* @__PURE__ */
|
|
348
349
|
return s("label",{className:`lb:flex lb:items-center lb:gap-3 lb:p-3 lb:rounded lb:border lb:transition-colors ${ce.includes(t)?"lb:bg-blue-50 lb:border-blue-300":r?"lb:bg-gray-100 lb:border-gray-300 lb:opacity-60":"lb:bg-gray-50 lb:border-gray-200 lb:hover:bg-gray-100"} ${r?"lb:cursor-not-allowed":"lb:cursor-pointer"}`,children:[
|
|
349
350
|
/* @__PURE__ */o("input",{type:"checkbox",checked:ce.includes(t),disabled:r,onChange:e=>{e.target.checked?ue(e=>[...e,t]):ue(e=>e.filter(e=>e!==t))},className:"lb:w-4 lb:h-4 lb:text-blue-600"}),
|
|
350
351
|
/* @__PURE__ */s("div",{className:"lb:flex-1 lb:min-w-0",children:[
|
|
@@ -352,12 +353,12 @@ return s("label",{className:`lb:flex lb:items-center lb:gap-3 lb:p-3 lb:rounded
|
|
|
352
353
|
/* @__PURE__ */s("span",{title:"Nombre del archivo a descargar",className:"lb:text-sm lb:font-medium lb:text-gray-800 lb:truncate",children:[e.label,"_",e.width,"_",e.height]}),e.required&&/* @__PURE__ */o("span",{className:"lb:text-xs lb:px-1.5 lb:py-0.5 lb:bg-red-200 lb:text-red-1000 lb:rounded lb:whitespace-nowrap",children:"Obligatorio"}),!n&&!e.required&&/* @__PURE__ */o("span",{className:"lb:text-xs lb:px-1.5 lb:py-0.5 lb:bg-orange-100 lb:text-orange-700 lb:rounded lb:whitespace-nowrap",children:"Sin configurar"})]}),
|
|
353
354
|
/* @__PURE__ */s("span",{title:"Dimensiones del recorte",className:"lb:text-xs lb:text-gray-500",children:[e.width," × ",e.height," px"]})]})]},e.id)})})}),
|
|
354
355
|
/* @__PURE__ */s("div",{className:"lb:px-6 lb:py-4 lb:border-t lb:border-gray-200 lb:flex lb:gap-3 lb:justify-end",children:[
|
|
355
|
-
/* @__PURE__ */o("button",{onClick:()=>{
|
|
356
|
-
/* @__PURE__ */s("button",{onClick:async()=>{if(
|
|
356
|
+
/* @__PURE__ */o("button",{onClick:()=>{oe(!1),be(null),ue([])},className:"limbo-btn limbo-btn-secondary lb:px-4 lb:py-2",children:"Cancelar"}),
|
|
357
|
+
/* @__PURE__ */s("button",{onClick:async()=>{if(oe(!1),"save"===de)if(1===ce.length){const e=te;ne(ce[0]),await new Promise(e=>setTimeout(e,100)),await ct(),ne(e)}else await ut(ce);else if(1===ce.length){const e=te;ne(ce[0]),await new Promise(e=>setTimeout(e,100)),await ht(),ne(e)}else await mt(ce);be(null),ue([])},disabled:0===ce.length,className:"limbo-btn limbo-btn-primary lb:px-4 lb:py-2 lb:disabled:opacity-50 lb:disabled:cursor-not-allowed",children:["save"===de?"Guardar":"Descargar"," (",ce.length,")"]})]})]})}),q&&/* @__PURE__ */o("div",{className:"lb:fixed lb:inset-0 lb:bg-black/50 lb:flex lb:items-center lb:justify-center lb:z-[9999] lb:p-4",children:/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded-lg lb:shadow-xl lb:max-w-5xl lb:w-full lb:max-h-[90vh] lb:overflow-hidden lb:flex lb:flex-col",children:[
|
|
357
358
|
/* @__PURE__ */o("div",{className:"lb:px-6 lb:py-4 lb:border-b lb:border-gray-200 lb:bg-brand-blue-50",children:/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-between",children:[
|
|
358
359
|
/* @__PURE__ */s("h3",{className:"lb:text-xl lb:font-semibold lb:text-brand-blue-1000 lb:flex lb:items-center lb:gap-2",children:[
|
|
359
360
|
/* @__PURE__ */o("span",{className:"icon icon-lightbulb lb:text-yellow-500"}),"Guía de uso del Cropper"]}),
|
|
360
|
-
/* @__PURE__ */o("button",{onClick:()=>
|
|
361
|
+
/* @__PURE__ */o("button",{onClick:()=>B(!1),className:"lb:text-gray-400 lb:hover:text-gray-600 lb:p-1 lb:rounded-full lb:hover:bg-gray-100 lb:transition-colors","aria-label":"Cerrar modal",children:/* @__PURE__ */o("span",{className:"icon icon-close-small icon--lg"})})]})}),
|
|
361
362
|
/* @__PURE__ */s("div",{className:"lb:px-6 lb:py-4 lb:overflow-y-auto lb:flex-1 lb:space-y-4",children:[
|
|
362
363
|
/* @__PURE__ */s("div",{className:"lb:bg-brand-blue-50 lb:rounded-lg lb:p-4 lb:border-l-4 lb:border-brand-blue-400",children:[
|
|
363
364
|
/* @__PURE__ */o("h4",{className:"lb:font-semibold lb:text-brand-blue-1000 lb:mb-3 lb:text-base lb:flex lb:items-center lb:gap-2",children:"🖱️ Navegación básica"}),
|
|
@@ -459,7 +460,7 @@ return s("label",{className:`lb:flex lb:items-center lb:gap-3 lb:p-3 lb:rounded
|
|
|
459
460
|
/* @__PURE__ */o("span",{className:"lb:font-bold lb:min-w-fit",children:"•"}),
|
|
460
461
|
/* @__PURE__ */s("div",{children:[
|
|
461
462
|
/* @__PURE__ */o("strong",{children:"Cambios pendientes:"})," Recuerda guardar tus cambios antes de cerrar o cambiar de imagen"]})]})]})]})]}),
|
|
462
|
-
/* @__PURE__ */o("div",{className:"lb:px-6 lb:py-4 lb:border-t lb:border-gray-200 lb:bg-gray-50",children:/* @__PURE__ */o("button",{onClick:()=>
|
|
463
|
+
/* @__PURE__ */o("div",{className:"lb:px-6 lb:py-4 lb:border-t lb:border-gray-200 lb:bg-gray-50",children:/* @__PURE__ */o("button",{onClick:()=>B(!1),className:"limbo-btn limbo-btn-primary lb:w-full",children:"Entendido"})})]})}),y&&/* @__PURE__ */o("div",{className:"lb:min-w-[90%] lb:fixed lb:md:absolute lb:inset-0 lb:md:inset-auto lb:bg-black/50 lb:md:bg-transparent lb:flex lb:items-center lb:justify-center lb:md:block lb:z-9999 lb:md:z-50 lb:pointer-events-none",onClick:e=>{e.target===e.currentTarget&&window.innerWidth<768&&(v(!1),x(null))},children:/* @__PURE__ */s("div",{className:"lb:pointer-events-auto lb:bg-white lb:rounded-lg lb:shadow-2xl lb:border-2 lb:border-brand-blue-800 lb:overflow-hidden lb:flex lb:flex-col lb:max-w-md lb:w-full lb:mx-4 lb:md:mx-0 lb:max-h-[80vh] lb:md:max-h-[600px]",style:{...window.innerWidth>=768?{position:"absolute",left:`${_.x}px`,top:`${_.y}px`,width:"420px",cursor:T?"grabbing":"default"}:{}},onMouseDown:nt,onTouchStart:at,children:[
|
|
463
464
|
/* @__PURE__ */s("div",{className:"limbo-preview-modal-header lb:px-4 lb:py-3 lb:bg-linear-to-r lb:from-brand-blue-800 lb:to-brand-blue-1000 lb:text-white lb:flex lb:items-center lb:justify-between lb:cursor-grab lb:active:cursor-grabbing lb:select-none",style:{cursor:T?"grabbing":"grab"},children:[
|
|
464
465
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:gap-2",children:[
|
|
465
466
|
/* @__PURE__ */o("span",{className:"icon icon-search-white icon--sm"}),
|
|
@@ -474,36 +475,36 @@ return s("label",{className:`lb:flex lb:items-center lb:gap-3 lb:p-3 lb:rounded
|
|
|
474
475
|
/* @__PURE__ */o("span",{className:"icon icon-search-white icon--xs"}),
|
|
475
476
|
/* @__PURE__ */o("span",{children:"Ampliar"})]})]}),
|
|
476
477
|
/* @__PURE__ */s("div",{className:"lb:text-center lb:text-xs lb:text-gray-500",children:[
|
|
477
|
-
/* @__PURE__ */o("p",{className:"lb:font-medium lb:text-gray-700 lb:mb-1",children:
|
|
478
|
-
/* @__PURE__ */s("p",{children:[
|
|
478
|
+
/* @__PURE__ */o("p",{className:"lb:font-medium lb:text-gray-700 lb:mb-1",children:re?.label||"Recorte"}),
|
|
479
|
+
/* @__PURE__ */s("p",{children:[re?.width," × ",re?.height," px"]})]})]}):/* @__PURE__ */o("div",{className:"lb:flex lb:items-center lb:justify-center lb:h-full lb:min-h-[200px]",children:/* @__PURE__ */o("p",{className:"lb:text-sm lb:text-gray-500",children:"No se pudo generar la vista previa"})})}),
|
|
479
480
|
/* @__PURE__ */o("div",{className:"lb:px-4 lb:py-2 lb:bg-gray-100 lb:border-t lb:border-gray-200",children:/* @__PURE__ */s("p",{className:"lb:text-xs lb:text-gray-600 lb:text-center",children:[
|
|
480
481
|
/* @__PURE__ */s("span",{className:"lb:hidden lb:md:inline",children:["Arrastra desde el título para mover •"," "]}),"Actualización automática al editar"]})})]})}),
|
|
481
|
-
/* @__PURE__ */o(
|
|
482
|
+
/* @__PURE__ */o(Y,{src:w,alt:"Vista previa del recorte",title:re?.label||"Recorte",subtitle:`${re?.width||0} × ${re?.height||0} px`,isOpen:I&&!!w,onClose:()=>L(!1)})]}):null}function an({currentPage:t,totalPages:n,onPageChange:r,disabled:l=!1}){if(!n||n<=1)return null;const a=(()=>{const e=[],r=[],l=Math.max(1,t-2),a=Math.min(n,t+2);for(let t=l;t<=a;t++)e.push(t);return l>1&&(r.push(1),l>2&&r.push("...")),r.push(...e),a<n&&(a<n-1&&r.push("..."),r.push(n)),r})();/* @__PURE__ */
|
|
482
483
|
return s("div",{className:"lb:flex lb:items-center lb:justify-center lb:space-x-2 lb:py-4",children:[
|
|
483
484
|
/* @__PURE__ */s("button",{onClick:()=>{t>1&&r(t-1)},disabled:l||t<=1,className:` lb:px-3 lb:py-2 lb:text-sm lb:font-medium lb:rounded-md lb:transition-colors lb:disabled:cursor-default lb:cursor-pointer ${l||t<=1?"lb:text-gray-400 lb:bg-gray-100 lb:cursor-not-allowed":"lb:text-gray-700 lb:bg-white lb:border lb:border-gray-300 lb:hover:bg-gray-50 lb:focus:ring-2 lb:focus:ring-blue-500"} `,children:[
|
|
484
485
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-left-white icon--sm"})," Anterior"]}),
|
|
485
486
|
/* @__PURE__ */o("div",{className:"lb:flex lb:space-x-1",children:a.map((n,a)=>/* @__PURE__ */o(e.Fragment,{children:"..."===n?/* @__PURE__ */o("span",{className:"lb:px-3 lb:py-2 lb:text-sm lb:text-gray-500",children:"..."}):/* @__PURE__ */o("button",{onClick:()=>(e=>{e!==t&&r(e)})(n),disabled:l,className:` lb:px-3 lb:py-2 lb:text-sm lb:font-medium lb:rounded-md lb:transition-colors lb:disabled:cursor-default lb:cursor-pointer ${n===t?"lb:bg-blue-600 lb:text-white lb:border lb:border-blue-600":l?"lb:text-gray-400 lb:bg-gray-100 lb:cursor-not-allowed":"lb:text-gray-700 lb:bg-white lb:border lb:border-gray-300 lb:hover:bg-gray-50 lb:focus:ring-2 lb:focus:ring-blue-500"} `,children:n})},`page-${n}-${a}`))}),
|
|
486
487
|
/* @__PURE__ */s("button",{onClick:()=>{t<n&&r(t+1)},disabled:l||t>=n,className:` lb:px-3 lb:py-2 lb:text-sm lb:font-medium lb:rounded-md lb:transition-colors lb:disabled:cursor-default lb:cursor-pointer ${l||t>=n?"lb:text-gray-400 lb:bg-gray-100 lb:cursor-not-allowed":"lb:text-gray-700 lb:bg-white lb:border lb:border-gray-300 lb:hover:bg-gray-50 lb:focus:ring-2 lb:focus:ring-blue-500"} `,children:["Siguiente ",
|
|
487
488
|
/* @__PURE__ */o("span",{className:"icon icon-arrow-right-white icon--sm"})]}),
|
|
488
|
-
/* @__PURE__ */s("div",{className:"lb:text-sm lb:text-gray-500 lb:ml-4",children:["Página ",t," de ",n]})]})}function
|
|
489
|
+
/* @__PURE__ */s("div",{className:"lb:text-sm lb:text-gray-500 lb:ml-4",children:["Página ",t," de ",n]})]})}function on({text:e="Cargando..."}){/* @__PURE__ */
|
|
489
490
|
return s("div",{className:"lb:flex lb:flex-col lb:items-center lb:justify-center lb:py-8 lb:text-gray-600",role:"status","aria-live":"polite","aria-label":e,children:[
|
|
490
491
|
/* @__PURE__ */s("svg",{className:"lb:animate-spin lb:h-6 lb:w-6 lb:mb-2 lb:text-blue-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",children:[
|
|
491
492
|
/* @__PURE__ */o("circle",{className:"lb:opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),
|
|
492
493
|
/* @__PURE__ */o("path",{className:"lb:opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})]}),
|
|
493
|
-
/* @__PURE__ */o("p",{className:"lb:text-sm",id:"loader-text",children:e})]})}function
|
|
494
|
+
/* @__PURE__ */o("p",{className:"lb:text-sm",id:"loader-text",children:e})]})}function sn({isOpen:e,onClose:t}){return e?/* @__PURE__ */o("div",{className:"lb:fixed lb:inset-0 lb:bg-black lb:bg-opacity-50 lb:flex lb:items-center lb:justify-center lb:z-50",style:{zIndex:9999},children:/* @__PURE__ */s("div",{className:"lb:bg-white lb:rounded-lg lb:p-6 lb:max-w-md lb:mx-4 lb:shadow-xl",children:[
|
|
494
495
|
/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:mb-4",children:[
|
|
495
496
|
/* @__PURE__ */o("svg",{className:"lb:w-6 lb:h-6 lb:text-red-1000 lb:mr-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})}),
|
|
496
497
|
/* @__PURE__ */o("h3",{className:"lb:text-lg lb:font-semibold lb:text-gray-900",children:"Sesión Expirada"})]}),
|
|
497
498
|
/* @__PURE__ */s("div",{className:"lb:mb-6",children:[
|
|
498
499
|
/* @__PURE__ */o("p",{className:"lb:text-gray-600 lb:mb-2",children:"Su sesión ha expirado por seguridad."}),
|
|
499
500
|
/* @__PURE__ */o("p",{className:"lb:text-gray-600",children:"Es necesario recargar la página para obtener un nuevo token de acceso."})]}),
|
|
500
|
-
/* @__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
|
|
501
|
-
return s(c,{children:[
|
|
502
|
-
/* @__PURE__ */o(
|
|
503
|
-
/* @__PURE__ */o(
|
|
504
|
-
/* @__PURE__ */s("div","crop-only"===
|
|
505
|
-
/* @__PURE__ */o(
|
|
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,500),w=hn(g.uploadedBy,500),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
|
+
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]}),
|
|
504
|
+
/* @__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
|
+
/* @__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
|
+
/* @__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:[
|
|
506
507
|
/* @__PURE__ */o("div",{className:"lb:text-gray-400 lb:mb-4",children:/* @__PURE__ */o("svg",{className:"lb:w-16 lb:h-16 lb:mx-auto",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */o("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})})}),
|
|
507
508
|
/* @__PURE__ */o("p",{className:"lb:text-gray-600 lb:mb-4",children:"Selecciona una imagen de la galería para comenzar a recortar."})]}),
|
|
508
|
-
/* @__PURE__ */o(en,{isOpen:T,onClose:A})]})}class an{constructor(e,t,n,r){this.id=e,this.config=t,this.eventManager=n,this.modalManager=r,this.root=null,this.container=null,this.modal=null,this.mounted=!1,this.destroyed=!1,this.button=null,this._validateConfig(),this._initialize()}_initialize(){"embed"===this.config.mode?this.mount():"button"===this.config.mode&&this._createButton(),this._emitDOMEvent("ready",{instance:this,config:this.config,timestamp:Date.now()})}mount(){if(this.mounted||this.destroyed)return this;if(this.container=this._resolveContainer(),!this.container)return this.eventManager.emit("error",{instanceId:this.id,error:"Container not found"}),this;try{this.root=C.createRoot(this.container),this.root.render(this._renderApp()),this.mounted=!0,this.eventManager.emit("ready",{instance:this})}catch(e){this.eventManager.emit("error",{instanceId:this.id,error:e.message})}return this}unmount(){return this.mounted?(this.root&&(this.root.unmount(),this.root=null),"button"===this.config.mode&&this.button,this.mounted=!1,this):this}open(){return"modal"!==this.config.mode&&"button"!==this.config.mode||(this.modal||this._createModal(),this.modal&&!this.modal.isOpened()&&(this.modal.open(),this.eventManager.emit("modal:open",{instance:this}))),this}close(){return this.modal&&this.modal.isOpened()&&(this.eventManager?.emit("modal:close",{instance:this}),this.modal.close()),this}updateConfig(e){return this.config={...this.config,...e},this.mounted&&this.root.render(this._renderApp()),this.eventManager.emit("config:updated",{instance:this,newConfig:e}),this}destroy(){this.destroyed||(this.unmount(),this.modal&&(this.modal.destroy(),this.modal=null),this.button&&this.button.parentNode&&(this.button.parentNode.removeChild(this.button),this.button=null),this.eventManager.emit("destroy",{instance:this}),this.container=null,this.config=null,this.eventManager=null,this.modalManager=null,this.destroyed=!0)}getId(){return this.id}getMode(){return this.config.mode}isMounted(){return this.mounted}isDestroyed(){return this.destroyed}getContainer(){return this.container}getConfig(){return{...this.config}}isContainerInDOM(){return this.container&&document.contains(this.container)}_createModal(){if(this.modalManager&&"modal"===this.config.mode&&(this.modal=this.modalManager.createModal({title:this.config.title||"Limbo Image Manager",size:this.config.modalSize||"large",onOpen:()=>{const e={instance:this,mode:"modal",timestamp:Date.now()};this._emitDOMEvent("modal:open",e),this.config.callbacks?.onOpen&&this.config.callbacks.onOpen(e)},onClose:()=>{const e={instance:this,mode:"modal",timestamp:Date.now()};this._emitDOMEvent("modal:close",e),this.config.callbacks?.onClose&&this.config.callbacks.onClose(e),this.config.autoDestroy&&this.destroy()},onDestroy:()=>{this.modal=null}}),this.modal)){const e=this.modal.getBodyContainer();this.root=C.createRoot(e),this.root.render(this._renderApp()),this.mounted=!0}}_createButton(){if(this.container||(this.container=this._resolveContainer()),!this.container)return void this.eventManager.emit("error",{instanceId:this.id,error:"Container not found for button mode"});const e=document.createElement("button");e.type="button",e.className="limbo-trigger-button",e.textContent=this.config.buttonText||"Abrir Limbo",e.style.cssText="\n background: #001978;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 6px;\n cursor: pointer;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s ease;\n ",e.addEventListener("mouseenter",()=>{e.style.backgroundColor="#334793",e.style.transform="translateY(-1px)"}),e.addEventListener("mouseleave",()=>{e.style.backgroundColor="#001978",e.style.transform="translateY(0)"}),e.addEventListener("click",()=>{this.open()}),this.container.appendChild(e),this.button=e,this.mounted=!0}_resolveContainer(){const{container:e}=this.config;return e?"string"==typeof e?document.querySelector(e):e instanceof Element?e:null:null}_renderApp(){return e.createElement("div",{id:`limbo-component-container-${this.id}`,className:"limbo-scope limbo-instance limbo-component-container-wrapper lb:h-full lb:w-full lb:py-2 lb:bg-white lb:rounded-md","data-limbo-id":this.id,"data-limbo-mode":this.config.mode,"data-limbo-version":"2.0","data-limbo-isolated":"true","aria-label":"Limbo Image Manager",role:"region"},e.createElement(ln,{apiKey:this.config.apiKey||null,publicKey:this.config.publicKey||null,token:this.config.token||null,prod:this.config.prod||!1,url:this.config.url,features:this.config.features,modeUI:this.config.modeUI||"full",ui:this.config.ui,callbacks:this._createCallbacks(),instanceId:this.id,authMode:this.config.authMode||this.config.publicKey?"session":"manual",_externalImage:this.config._externalImage||null,cropperConfig:this.config.cropper||null}))}_createCallbacks(){return{onSelect:e=>{const t=this.config?.callbacks?.onSelect,n=this._createStandardPayload(e,"select");t&&t(n),this.destroyed||this._emitDOMEvent("select",n)},onUpload:e=>{const t=this.config?.callbacks?.onUpload,n=this._createStandardPayload(e,"upload");t&&t(n),this.destroyed||this._emitDOMEvent("upload",n)},onError:e=>{const t=this.config?.callbacks?.onError,n={instance:this,error:{message:e.message||"Unknown error",code:e.code||"UNKNOWN",timestamp:Date.now()}};t&&t(n.error),this.destroyed||this._emitDOMEvent("error",n)},onClose:()=>{const e=this.config?.callbacks?.onClose,t={instance:this,timestamp:Date.now()};e&&e(),this.destroyed||this._emitDOMEvent("close",t)}}}_createStandardPayload(e,t){const n={instance:this,eventType:t,timestamp:Date.now(),instanceId:this.id,mode:this.config?.mode,features:this.config?.features};return e&&(e.assetId||e.id?(n.assetId=e.assetId||e.id,n.variants=e.variants||[],n.master=e.master||{urlSigned:e.url||e.urlSigned,width:e.width,height:e.height,mime:e.mime||e.mimeType},n.fileName=e.fileName||e.name,n.mime=e.mime||e.mimeType,n.width=e.width,n.height=e.height,n.fileBlob=e.fileBlob||e.file,n.metadata={uploadedBy:e.uploadedBy,uploadedAt:e.uploadedAt||e.timestamp,size:e.size,...e.metadata}):Object.assign(n,e)),n}_emitDOMEvent(e,t){if(this.destroyed)return;const n=new CustomEvent(`limbo:${e}`,{detail:t,bubbles:!0,cancelable:!0});(this.getContainer()||document).dispatchEvent(n),this.eventManager?.emit(e,t)}_validateConfig(){if(!(this.config.auth?.apiKey||this.config.auth?.publicKey||this.config.auth?.token||this.config.apiKey||this.config.publicKey||this.config.token))throw new Error(`LimboInstance ${this.id}: Authentication is required. Provide either auth.publicKey (recommended) or auth.apiKey (for server-side only)`);if((this.config.auth?.apiKey||this.config.apiKey)&&"undefined"!=typeof window&&console.warn("⚠️ SECURITY WARNING: API Key detected in client-side code.\nThis is a security risk! Use publicKey instead for client applications.\nAPI Keys should only be used in server-side environments."),!["embed","modal","button"].includes(this.config.mode))throw new Error(`LimboInstance ${this.id}: invalid mode ${this.config.mode}`);if("embed"===this.config.mode&&!this.config.container)throw new Error(`LimboInstance ${this.id}: container is required for embed mode`);if("button"===this.config.mode&&!this.config.container)throw new Error(`LimboInstance ${this.id}: container is required for button mode`)}}class on{constructor(){this.instances=/* @__PURE__ */new Map,this.counter=0}create(e,t,n){const r="limbo-"+ ++this.counter,l=new an(r,e,t,n);return this.instances.set(r,l),l}get(e){return this.instances.get(e)}getAll(){return Array.from(this.instances.values())}getActive(){return this.getAll().filter(e=>e.isMounted())}destroy(e){const t=this.instances.get(e);return!!t&&(t.destroy(),this.instances.delete(e),!0)}destroyAll(){this.instances.forEach(e=>e.destroy()),this.instances.clear()}cleanupOrphans(){const e=[];return this.instances.forEach((t,n)=>{t.isContainerInDOM()||e.push(n)}),e.forEach(e=>this.destroy(e)),e.length}getStats(){const e=this.getAll();return{total:e.length,active:e.filter(e=>e.isMounted()).length,embed:e.filter(e=>"embed"===e.getMode()).length,modal:e.filter(e=>"modal"===e.getMode()).length,button:e.filter(e=>"button"===e.getMode()).length}}}class sn{constructor(){this.config=null,this.instances=/* @__PURE__ */new Map,this.observer=null,this.initialized=!1}configure(e,t,n){return this.config={selector:e.selector||null,dataset:e.dataset||"data-limbo-input-file",return:e.return||e.returnType||"json",mode:e.mode||"modal",features:e.features||["gallery","upload","cropper"],crop:e.crop||"free",quality:e.quality||.9,format:e.format||"webp",modeUI:e.modeUI||"full",modalSize:e.modalSize||"fullscreen",theme:e.theme||"light",compact:e.compact||!1,maxSize:e.maxSize||"10MB",formats:e.formats||["jpg","jpeg","png","webp"],minWidth:e.minWidth||null,minHeight:e.minHeight||null,maxWidth:e.maxWidth||null,maxHeight:e.maxHeight||null,buttonText:e.buttonText||"Seleccionar Imagen",buttonClass:e.buttonClass||"limbo-auto-button",buttonStyle:e.buttonStyle||"primary",showPreview:!1!==e.showPreview,allowMultiple:e.allowMultiple||!1,autoAssign:!1!==e.autoAssign,...e},this.configManager=t,this.eventManager=n,this._initialize(),this}cleanup(){this.observer&&(this.observer.disconnect(),this.observer=null),this.instances.forEach(({input:e,button:t})=>{this._restoreInput(e,t)}),this.instances.clear(),this.config=null,this.initialized=!1}getStats(){return{configured:null!==this.config,totalInputs:this.instances.size,dataset:this.config?.dataset,returnType:this.config?.return}}_initialize(){this.initialized||(this._scanExistingInputs(),this._setupObserver(),this.initialized=!0,this.eventManager.emit("autoInputs:initialized",{config:this.config,inputsFound:this.instances.size}))}_scanExistingInputs(){const e=this.config.selector||`input[${this.config.dataset}]`;document.querySelectorAll(e).forEach(e=>this._processInput(e))}_processInput(e){const t=this._getInputId(e);if(this.instances.has(t))return;if(!this._validateInput(e))return;const n=this._createButton(e);this._hideInput(e),this._insertButton(e,n),this.instances.set(t,{input:e,button:n,config:this._getInputConfig(e)}),this.eventManager.emit("autoInputs:processed",{inputId:t,input:e,button:n})}_createButton(e){const t=document.createElement("button"),n=this._getInputConfig(e);t.type="button",t.textContent=n.buttonText||this.config.buttonText;const r=[this.config.buttonClass];return n.buttonClass&&n.buttonClass!==this.config.buttonClass&&r.push(n.buttonClass),t.className=r.join(" "),this._styleButton(t,n),this._attachButtonEvents(t,e),t.setAttribute("aria-label",n.buttonText||this.config.buttonText),t.setAttribute("data-limbo-trigger","true"),t.setAttribute("data-limbo-input-id",n.inputId),n.disabled&&(t.disabled=!0),t}_styleButton(e,t){const n=t.buttonStyle||this.config.buttonStyle,r=t.theme||this.config.theme,l=t.compact||this.config.compact,a={border:"none",borderRadius:"8px",cursor:"pointer",fontFamily:"inherit",fontSize:l?"12px":"14px",fontWeight:"500",transition:"all 0.2s ease",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",padding:l?"6px 12px":"8px 16px",textDecoration:"none",userSelect:"none"},i={primary:{backgroundColor:"dark"===r?"#3b82f6":"#001978",color:"white",hoverBg:"dark"===r?"#2563eb":"#334793"},secondary:{backgroundColor:"dark"===r?"#374151":"#f3f4f6",color:"dark"===r?"#f9fafb":"#374151",border:"1px solid "+("dark"===r?"#4b5563":"#d1d5db"),hoverBg:"dark"===r?"#4b5563":"#e5e7eb"},outline:{backgroundColor:"transparent",color:"dark"===r?"#3b82f6":"#001978",border:"2px solid "+("dark"===r?"#3b82f6":"#001978"),hoverBg:"dark"===r?"#3b82f6":"#001978",hoverColor:"white"},ghost:{backgroundColor:"transparent",color:"dark"===r?"#f9fafb":"#374151",hoverBg:"dark"===r?"#374151":"#f3f4f6"}},o=i[n]||i.primary;Object.assign(e.style,{...a,...o});const s=o.backgroundColor,c=o.color;e.addEventListener("mouseenter",()=>{e.style.backgroundColor=o.hoverBg||o.backgroundColor,o.hoverColor&&(e.style.color=o.hoverColor),e.style.transform="translateY(-1px)",e.style.boxShadow="0 4px 12px rgba(0, 0, 0, 0.15)"}),e.addEventListener("mouseleave",()=>{e.style.backgroundColor=s,e.style.color=c,e.style.transform="translateY(0)",e.style.boxShadow="none"}),t.disabled&&(e.style.opacity="0.5",e.style.cursor="not-allowed")}_attachButtonEvents(e,t){e.addEventListener("click",e=>{e.preventDefault(),this._handleButtonClick(t)})}_handleButtonClick(e){const t=this._getInputConfig(e),n=this._createModalConfig(t);this.eventManager.emit("autoInputs:modalRequest",{input:e,config:n,callback:async t=>await this._handleImageSelection(e,t)})}async _handleImageSelection(e,t){const n=this._getInputConfig(e);try{const r=await this._formatImageData(t,n);!1!==n.autoAssign&&(e.value=r),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:resultReady",{detail:{imageData:t,input:e,value:r,config:n,assignment:{format:n.return,smartAssign:!1!==n.smartAssign,autoAssign:!1!==n.autoAssign},legacy:{imageData:t,formatted:this._createFormattedResult(t,n)}},bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:t,input:e,value:r,config:n,formatted:this._createFormattedResult(t,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:t,value:r,config:n})}catch(r){console.error("Error handling image selection:",r),e.dispatchEvent(new CustomEvent("limbo:error",{detail:{error:r.message,input:e,imageData:t,config:n},bubbles:!0})),this._handleImageSelectionLegacy(e,t)}}_handleImageSelectionLegacy(e,t){const n=this._getInputConfig(e),r=this._formatImageData(t,n);!1!==n.autoAssign&&(e.value=r),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:t,input:e,value:r,config:n,formatted:this._createFormattedResult(t,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:t,value:r,config:n})}_createFormattedResult(e,t){return{url:e.url||e.path||"",base64:e.base64||e.dataUrl||"",assetId:e.assetId||e.id||"",fileName:e.fileName||e.filename||"",object:{url:e.url||e.path,assetId:e.assetId||e.id,fileName:e.fileName||e.filename,mime:e.mime||e.mime_type,width:e.width,height:e.height,size:e.size||e.file_size,created:e.created_at||e.created,metadata:e.metadata||{}},json:JSON.stringify({url:e.url||e.path,assetId:e.assetId||e.id,fileName:e.fileName||e.filename,mime:e.mime||e.mime_type,width:e.width,height:e.height,size:e.size||e.file_size}),metadata:{width:e.width,height:e.height,size:e.size||e.file_size,format:e.format||e.mime_type,quality:t.quality||this.config.quality,aspectRatio:e.width&&e.height?e.width/e.height:null}}}async _formatImageData(e,t=null){const n=(t||{}).return||this.config.return||"json",r=void 0!==e.original;switch(n){case"url":return r?e.images?.[0]?.url||e.original?.url||"":e.url||e.path||"";case"base64":return e.base64||e.dataUrl||"";case"assetId":return r?e.original?.assetId||"":e.assetId||e.id||"";case"fileName":return e.fileName||e.filename||"";default:return r?JSON.stringify(e):JSON.stringify({original:{url:e.url||e.path,width:e.width,height:e.height,assetId:e.assetId||e.id}})}}_createModalConfig(e){return{mode:e.mode||this.config.mode||"modal",modeUI:e.modeUI||this.config.modeUI||"full",features:e.features||this.config.features,modalSize:e.modalSize||this.config.modalSize||"fullscreen",title:e.description||this.config.title||"Seleccionar imagen",cropper:this._getCropperConfig(e),ui:{showActions:this._getUIActions(e),hideActions:[],showTabs:this._shouldShowTabs(e),theme:e.theme||this.config.theme,compact:e.compact||this.config.compact,showPreview:void 0!==e.showPreview?e.showPreview:this.config.showPreview},validation:{maxSize:e.maxSize||this.config.maxSize,formats:e.formats||this.config.formats,minWidth:e.minWidth||this.config.minWidth,minHeight:e.minHeight||this.config.minHeight,maxWidth:e.maxWidth||this.config.maxWidth,maxHeight:e.maxHeight||this.config.maxHeight,required:e.required||!1},behavior:{allowMultiple:e.allowMultiple||this.config.allowMultiple,closeOnSelect:!0,autoAssign:void 0!==e.autoAssign?e.autoAssign:this.config.autoAssign,allowSelectNew:!1!==e.allowSelectNew},initialImageUrl:e.initialImageUrl||null,returnConfig:{format:e.return||this.config.return,quality:e.quality||this.config.quality,outputFormat:e.format||this.config.format},inputMeta:{inputId:e.inputId,inputName:e.inputName,inputType:e.inputType,placeholder:e.placeholder}}}_getCropperConfig(e){const t=e.crop||this.config.crop,n={quality:e.quality||this.config.quality,format:e.format||this.config.format,mandatoryCrops:e.mandatoryCrops||[],allowAdditionalCrops:!1!==e.allowAdditionalCrops,maxCrops:e.maxCrops||null};if(e.mandatoryCrops&&e.mandatoryCrops.length>0)return{...n,aspectRatio:null};if(!t||"none"===t||"false"===t)return null;if("free"===t)return{...n,aspectRatio:null};const r={"1:1":1,"16:9":16/9,"4:3":4/3,"3:2":1.5,"2:1":2,square:1,landscape:16/9,portrait:3/4};if(r[t])return{...n,aspectRatio:r[t],minCropBoxWidth:e.minWidth||this.config.minWidth,minCropBoxHeight:e.minHeight||this.config.minHeight};if("string"==typeof t&&t.includes(":")){const[e,r]=t.split(":").map(Number);if(!isNaN(e)&&!isNaN(r)&&0!==r)return{...n,aspectRatio:e/r}}const l=parseFloat(t);return!isNaN(l)&&l>0?{...n,aspectRatio:l}:"object"==typeof t?{...n,...t}:null}_shouldShowTabs(e){const t=e.modeUI||this.config.modeUI||"full",n=e.features||this.config.features;return!["gallery-only","upload-only","crop-only","ia-only"].includes(t)&&(n&&n.length>1)}_getUIActions(e){const t=e.modeUI||this.config.modeUI||"full",n=e.features||this.config.features;let r=[];switch(t){case"gallery-only":case"upload-only":r=["select"];break;case"crop-only":r=["select","crop"];break;default:r=["select"],n.includes("cropper")&&r.push("crop"),n.includes("gallery")&&(r.push("download","copy"),this.config.allowDelete&&r.push("delete"))}return r}_getInputId(e){return e.id||e.name||`limbo-auto-${Date.now()}-${Math.random()}`}_validateInput(e){return e instanceof HTMLInputElement}_getInputConfig(e){const t=e=>e?e.split(",").map(e=>e.trim()):null,n=e=>{if(!e)return null;const t=e.match(/^(\d+(?:\.\d+)?)(MB|KB|B)?$/i);if(!t)return null;const n=parseFloat(t[1]);switch((t[2]||"B").toUpperCase()){case"MB":return 1024*n*1024;case"KB":return 1024*n;default:return n}},r=(e,t=!1)=>null===e?t:"true"===e||"1"===e||""===e,l=e=>e?parseFloat(e):null,a=e=>{if(!e)return null;try{return JSON.parse(e)}catch(t){return console.warn("[Limbo AutoInputManager] Error parsing JSON attribute:",t),null}},i=a(e.dataset.mandatorycrops)||a(e.dataset.mandatoryCrops)||a(e.getAttribute("data-mandatory-crops"))||a(e.getAttribute("data-limbo-mandatory-crops"))||null;return{return:e.dataset.returntype||e.getAttribute("data-limbo-return")||this.config.return,mode:e.dataset.mode||e.getAttribute("data-limbo-mode")||this.config.mode,features:t(e.dataset.features)||t(e.getAttribute("data-limbo-features"))||this.config.features,crop:e.dataset.crop||e.getAttribute("data-limbo-crop")||this.config.crop,quality:l(e.dataset.quality)||l(e.getAttribute("data-limbo-quality"))||this.config.quality,format:e.dataset.format||e.getAttribute("data-limbo-format")||this.config.format,modeUI:e.dataset.modeui||e.dataset.modeUI||e.getAttribute("data-limbo-mode-ui")||this.config.modeUI,modalSize:e.dataset.modalsize||e.getAttribute("data-limbo-modal-size")||this.config.modalSize,theme:e.dataset.theme||e.getAttribute("data-limbo-theme")||this.config.theme,compact:r(e.dataset.compact,null)??r(e.getAttribute("data-limbo-compact"),this.config.compact),maxSize:n(e.getAttribute("data-limbo-max-size"))||n(this.config.maxSize),formats:t(e.getAttribute("data-limbo-formats"))||this.config.formats,minWidth:l(e.getAttribute("data-limbo-min-width"))||this.config.minWidth,minHeight:l(e.getAttribute("data-limbo-min-height"))||this.config.minHeight,maxWidth:l(e.getAttribute("data-limbo-max-width"))||this.config.maxWidth,maxHeight:l(e.getAttribute("data-limbo-max-height"))||this.config.maxHeight,buttonText:e.dataset.buttontext||e.getAttribute("data-limbo-button-text")||this.config.buttonText,buttonStyle:e.dataset.buttonstyle||e.getAttribute("data-limbo-button-style")||this.config.buttonStyle,buttonClass:e.dataset.buttonclass||e.getAttribute("data-limbo-button-class")||this.config.buttonClass,showPreview:r(e.getAttribute("data-limbo-show-preview"),this.config.showPreview),allowMultiple:r(e.getAttribute("data-limbo-allow-multiple"),this.config.allowMultiple),autoAssign:r(e.getAttribute("data-limbo-auto-assign"),this.config.autoAssign),placeholder:e.getAttribute("data-limbo-placeholder"),description:e.getAttribute("data-limbo-description"),required:r(e.getAttribute("data-limbo-required"),!1),disabled:r(e.getAttribute("data-limbo-disabled"),!1),inputId:e.id||e.name||this._generateInputId(e),inputName:e.name,inputType:e.type,mandatoryCrops:i,allowAdditionalCrops:r(e.dataset.allowadditionalcrops,null)??r(e.getAttribute("data-limbo-allow-additional-crops"),!0),maxCrops:l(e.dataset.maxcrops)||l(e.getAttribute("data-limbo-max-crops"))||null,allowSelectNew:r(e.dataset.allowselectnew,null)??r(e.getAttribute("data-limbo-allow-select-new"),!0),initialImageUrl:e.value||null}}_generateInputId(){return`limbo-auto-input-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}_hideInput(e){e.style.display="none"}_insertButton(e,t){e.parentNode.insertBefore(t,e.nextSibling)}_restoreInput(e,t){e.style.display="",t&&t.parentNode&&t.parentNode.removeChild(t)}_setupObserver(){this.observer=new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&this._scanNodeForInputs(e)})})}),this.observer.observe(document.body,{childList:!0,subtree:!0})}_scanNodeForInputs(e){const t=this.config.selector||`input[${this.config.dataset}]`;e.matches&&e.matches(t)&&this._processInput(e);const n=e.querySelectorAll&&e.querySelectorAll(t);n&&n.forEach(e=>this._processInput(e))}}class cn{constructor(){this.listeners=/* @__PURE__ */new Map}emit(e,t={}){this._emitDOMEvent(e,t),this._executeListeners(e,t)}on(e,t){return this.listeners.has(e)||this.listeners.set(e,[]),this.listeners.get(e).push(t),()=>this.off(e,t)}off(e,t){const n=this.listeners.get(e);if(n){const e=n.indexOf(t);e>-1&&n.splice(e,1)}}cleanup(){this.listeners.clear()}_emitDOMEvent(e,t){const n=new CustomEvent(`limbo:${e}`,{detail:{...t,timestamp:Date.now()},bubbles:!0,cancelable:!0});(t.instance?.getContainer()||document).dispatchEvent(n)}_executeListeners(e,t){const n=this.listeners.get(e);n&&n.forEach(n=>{try{n(t)}catch(r){console.error(`Error executing listener for ${e}:`,r)}})}getStats(){const e={};return this.listeners.forEach((t,n)=>{e[n]=t.length}),e}}class un{constructor(){this.activeModals=/* @__PURE__ */new Set,this.zIndexBase=1e4,this.focusableSelectors=["button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"]):not([disabled])',"a[href]"].join(", "),this.initialized=!1,this._initGlobalListeners()}createModal(e){const t=new dn(this._generateModalId(),e,this);return this.activeModals.add(t),t}closeModal(e){const t=this._findModal(e);return!!t&&(t.close(),!0)}closeAllModals(){this.activeModals.forEach(e=>e.close()),this.activeModals.clear()}getActiveModal(){return Array.from(this.activeModals).pop()||null}getStats(){return{active:this.activeModals.size,nextZIndex:this._getNextZIndex()}}_generateModalId(){return`limbo-modal-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}_findModal(e){return Array.from(this.activeModals).find(t=>t.getId()===e)}_getNextZIndex(){return this.zIndexBase+10*this.activeModals.size}_removeModal(e){this.activeModals.delete(e)}_handleGlobalKeydown(e){const t=this.getActiveModal();t&&("Escape"===e.key&&(e.preventDefault(),t.close()),"Tab"===e.key&&this._handleTabTrap(e,t))}_handleTabTrap(e,t){const n=t.getFocusableElements();if(0===n.length)return;const r=n[0],l=n[n.length-1];e.shiftKey?document.activeElement===r&&(e.preventDefault(),l.focus()):document.activeElement===l&&(e.preventDefault(),r.focus())}_initGlobalListeners(){this.initialized||(this.globalKeydownHandler=e=>this._handleGlobalKeydown(e),document.addEventListener("keydown",this.globalKeydownHandler),this.initialized=!0)}destroy(){this.closeAllModals(),this.initialized&&this.globalKeydownHandler&&(document.removeEventListener("keydown",this.globalKeydownHandler),this.initialized=!1,this.globalKeydownHandler=null)}}class dn{constructor(e,t,n){this.id=e,this.config={title:t.title||"Limbo",content:t.content||null,showCloseButton:!1!==t.showCloseButton,backdrop:!1!==t.backdrop,keyboard:!1!==t.keyboard,focus:!1!==t.focus,animation:!1!==t.animation,size:t.size||"large",onOpen:t.onOpen||null,onClose:t.onClose||null,onDestroy:t.onDestroy||null,...t},this.manager=n,this.element=null,this.backdrop=null,this.isOpen=!1,this.previousFocus=null,this._create()}_create(){this._createBackdrop(),this._createModal(),this._attachEvents()}_createBackdrop(){this.config.backdrop&&(this.backdrop=document.createElement("div"),this.backdrop.className="limbo-modal-backdrop",this.backdrop.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: ${this.manager._getNextZIndex()};\n opacity: 0;\n transition: opacity 0.3s ease;\n `,this.backdrop.addEventListener("click",e=>{e.target===this.backdrop&&this.close()}))}_createModal(){this.element=document.createElement("div"),this.element.className=`limbo-scope limbo-modal limbo-modal--${this.config.size}`,this.element.id=this.id,this.element.role="dialog",this.element.setAttribute("aria-modal","true"),this.element.setAttribute("aria-labelledby",`${this.id}-title`),this.element.tabIndex=-1;const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t={small:e?"width: 100%; height: 100%;":"max-width: 500px; min-height: 400px;",medium:e?"width: 100%; height: 100%;":"max-width: 800px; min-height: 500px;",large:e?"width: 100%; height: 100%;":"max-width: 1400px; min-height: 700px;",xlarge:e?"width: 100%; height: 100%;":"max-width: 95dvw; min-height: 85vh;",fullscreen:"width: 100%; height: 100%; max-width: 100%; max-height: 100%; border-radius: 0;"},n="fullscreen"===this.config.size,r=e||n?`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n transform: ${e?"translateY(100%)":"scale(0.95)"};\n width: 100%;\n height: 100%;\n max-width: none;\n max-height: none;\n border-radius: 0;\n background: white;\n z-index: ${this.manager._getNextZIndex()+1};\n opacity: ${e?"1":"0"};\n transition: ${e?"transform":"all"} 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding-top: env(safe-area-inset-top);\n padding-left: env(safe-area-inset-left);\n padding-right: env(safe-area-inset-right);\n padding-bottom: env(safe-area-inset-bottom);\n `:`\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.8);\n ${t[this.config.size]}\n width: 90%;\n max-height: 90vh;\n background: white;\n border-radius: 16px;\n box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);\n z-index: ${this.manager._getNextZIndex()+1};\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n `;this.element.style.cssText=r,this._createHeader(),this._createBody(),document.body.appendChild(this.backdrop),document.body.appendChild(this.element)}_createHeader(){const e=document.createElement("div");e.className="limbo-modal-header";const t=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);e.style.cssText=`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${t?"16px 20px":"20px 24px"};\n border-bottom: 1px solid #e9ecef;\n background: #f8f9fa;\n ${t?"position: sticky; top: 0; z-index: 10;":""}\n min-height: ${t?"60px":"auto"};\n `;const n=document.createElement("h2");if(n.id=`${this.id}-title`,n.className="limbo-modal-title",n.textContent=this.config.title,n.style.cssText="\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #001978;\n flex: 1;\n margin-right: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ",e.appendChild(n),this.config.showCloseButton){const n=document.createElement("button");n.type="button",n.className="limbo-modal-close",n.innerHTML="✕",n.setAttribute("aria-label","Cerrar modal"),n.style.cssText=`\n background: none;\n border: none;\n font-size: ${t?"28px":"24px"};\n color: #6c757d;\n cursor: pointer;\n padding: ${t?"8px":"4px"};\n border-radius: 4px;\n transition: all 0.2s ease;\n min-width: ${t?"44px":"auto"};\n min-height: ${t?"44px":"auto"};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n `,n.addEventListener("mouseenter",()=>{n.style.backgroundColor="#f8f9fa",n.style.color="#001978"}),n.addEventListener("mouseleave",()=>{n.style.backgroundColor="transparent",n.style.color="#6c757d"}),n.addEventListener("click",()=>this.close()),e.appendChild(n)}this.element.appendChild(e)}_createBody(){const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t=document.createElement("div");t.className="limbo-modal-body",t.id=`${this.id}-body`,t.style.cssText=`\n flex: 1;\n overflow-y: auto;\n padding: 0;\n -webkit-overflow-scrolling: touch;\n ${e?"height: 100%; overscroll-behavior: contain;":""}\n `,this.config.content&&("string"==typeof this.config.content?t.innerHTML=this.config.content:this.config.content instanceof Element&&t.appendChild(this.config.content)),this.element.appendChild(t)}_attachEvents(){this._originalBodyOverflow=document.body.style.overflow}open(){if(this.isOpen)return this;window.limbo&&window.limbo.core&&window.limbo.core.keyboard?(window.limbo.core.keyboard.pushFocus(document.activeElement),window.limbo.core.keyboard.setActiveModal(this.element)):this.previousFocus=document.activeElement,document.body.style.overflow="hidden";const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t="fullscreen"===this.config.size;return requestAnimationFrame(()=>{this.backdrop&&(this.backdrop.style.opacity="1"),this.element.style.opacity="1",this.element.style.transform=e?"translateY(0%)":t?"scale(1)":"translate(-50%, -50%) scale(1)"}),this.isOpen=!0,this.config.focus&&setTimeout(()=>{if(window.limbo&&window.limbo.core&&window.limbo.core.keyboard)window.limbo.core.keyboard.focusFirst(this.element);else{const e=this.getFocusableElements()[0];e&&e.focus()}},300),this.config.onOpen&&this.config.onOpen(this),this}close(){if(!this.isOpen)return this;const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t="fullscreen"===this.config.size;return this.backdrop&&(this.backdrop.style.opacity="0"),this.element.style.opacity="0",this.element.style.transform=e?"translateY(100%)":t?"scale(0.95)":"translate(-50%, -50%) scale(0.8)",setTimeout(()=>{this._cleanup()},300),this.isOpen=!1,window.limbo&&window.limbo.core&&window.limbo.core.keyboard&&(window.limbo.core.keyboard.setActiveModal(null),window.limbo.core.keyboard.releaseFocus()),this.config.onClose&&this.config.onClose(this),this}destroy(){this.close(),this.manager._removeModal(this),this.config.onDestroy&&this.config.onDestroy(this)}getBodyContainer(){return this.element.querySelector(".limbo-modal-body")}getFocusableElements(){return Array.from(this.element.querySelectorAll(this.manager.focusableSelectors))}getId(){return this.id}isOpened(){return this.isOpen}getConfig(){return{...this.config}}_cleanup(){document.body.style.overflow=this._originalBodyOverflow||"",this.previousFocus&&"function"==typeof this.previousFocus.focus&&this.previousFocus.focus(),this.backdrop&&this.backdrop.parentNode&&this.backdrop.parentNode.removeChild(this.backdrop),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}}class bn{constructor(){this.currentTheme=null,this.customThemes=/* @__PURE__ */new Map,this.config=this._getDefaultConfig(),this.isInitialized=!1,this.isCompactMode=!1,this.compactBreakpoint=null,this.compactObserver=null,this.mediaQueryObserver=null,this.mutationObserver=null,this.storageListener=null,this.themeCache=/* @__PURE__ */new Map,this.appliedStyles=/* @__PURE__ */new Set,this.changeCallbacks=/* @__PURE__ */new Set}_getDefaultConfig(){return{theme:{auto:!0,storage:!0,inherit:!0,smooth:!0,detectSystem:!0},compact:{enabled:!1,auto:!0,breakpoint:768,forceOnMobile:!0,persistPreference:!0},presets:{light:{name:"light",displayName:"Claro",variables:{"--limbo-primary":"#3b82f6","--limbo-primary-hover":"#2563eb","--limbo-primary-light":"#dbeafe","--limbo-primary-dark":"#1e40af","--limbo-bg-primary":"#ffffff","--limbo-bg-secondary":"#f8fafc","--limbo-bg-tertiary":"#f1f5f9","--limbo-bg-overlay":"rgba(0, 0, 0, 0.5)","--limbo-bg-card":"#ffffff","--limbo-bg-input":"#ffffff","--limbo-text-primary":"#0f172a","--limbo-text-secondary":"#475569","--limbo-text-tertiary":"#64748b","--limbo-text-inverse":"#ffffff","--limbo-text-muted":"#94a3b8","--limbo-border-light":"#e2e8f0","--limbo-border-medium":"#cbd5e1","--limbo-border-strong":"#94a3b8","--limbo-border-focus":"#3b82f6","--limbo-success":"#10b981","--limbo-success-light":"#d1fae5","--limbo-error":"#ef4444","--limbo-error-light":"#fee2e2","--limbo-warning":"#f59e0b","--limbo-warning-light":"#fef3c7","--limbo-info":"#3b82f6","--limbo-info-light":"#dbeafe","--limbo-shadow-sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","--limbo-shadow-md":"0 4px 6px -1px rgba(0, 0, 0, 0.1)","--limbo-shadow-lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1)","--limbo-shadow-xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1)","--limbo-radius-sm":"4px","--limbo-radius-md":"6px","--limbo-radius-lg":"8px","--limbo-radius-xl":"12px","--limbo-font-family":"system-ui, -apple-system, sans-serif","--limbo-font-size-xs":"12px","--limbo-font-size-sm":"14px","--limbo-font-size-md":"16px","--limbo-font-size-lg":"18px","--limbo-font-size-xl":"20px","--limbo-z-dropdown":"1000","--limbo-z-sticky":"1020","--limbo-z-fixed":"1030","--limbo-z-modal":"1050","--limbo-z-tooltip":"1070","--limbo-transition-fast":"150ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-normal":"300ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-slow":"500ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-spacing-compact":"0.5rem","--limbo-spacing-compact-sm":"0.25rem","--limbo-spacing-compact-lg":"0.75rem","--limbo-font-size-compact-xs":"11px","--limbo-font-size-compact-sm":"12px","--limbo-font-size-compact-md":"14px","--limbo-font-size-compact-lg":"16px","--limbo-radius-compact":"4px","--limbo-radius-compact-sm":"3px","--limbo-radius-compact-lg":"6px","--limbo-button-height-compact":"32px","--limbo-input-height-compact":"36px","--limbo-modal-padding-compact":"12px","--limbo-card-padding-compact":"12px","--limbo-gap-compact":"8px","--limbo-gap-compact-sm":"4px","--limbo-gap-compact-lg":"12px"}},dark:{name:"dark",displayName:"Oscuro",variables:{"--limbo-primary":"#60a5fa","--limbo-primary-hover":"#3b82f6","--limbo-primary-light":"#1e293b","--limbo-primary-dark":"#93c5fd","--limbo-bg-primary":"#0f172a","--limbo-bg-secondary":"#1e293b","--limbo-bg-tertiary":"#334155","--limbo-bg-overlay":"rgba(0, 0, 0, 0.8)","--limbo-bg-card":"#1e293b","--limbo-bg-input":"#334155","--limbo-text-primary":"#f8fafc","--limbo-text-secondary":"#cbd5e1","--limbo-text-tertiary":"#94a3b8","--limbo-text-inverse":"#0f172a","--limbo-text-muted":"#64748b","--limbo-border-light":"#334155","--limbo-border-medium":"#475569","--limbo-border-strong":"#64748b","--limbo-border-focus":"#60a5fa","--limbo-success":"#34d399","--limbo-success-light":"#064e3b","--limbo-error":"#f87171","--limbo-error-light":"#7f1d1d","--limbo-warning":"#fbbf24","--limbo-warning-light":"#78350f","--limbo-info":"#60a5fa","--limbo-info-light":"#1e3a8a","--limbo-shadow-sm":"0 1px 2px 0 rgba(0, 0, 0, 0.2)","--limbo-shadow-md":"0 4px 6px -1px rgba(0, 0, 0, 0.3)","--limbo-shadow-lg":"0 10px 15px -3px rgba(0, 0, 0, 0.4)","--limbo-shadow-xl":"0 20px 25px -5px rgba(0, 0, 0, 0.5)","--limbo-radius-sm":"4px","--limbo-radius-md":"6px","--limbo-radius-lg":"8px","--limbo-radius-xl":"12px","--limbo-font-family":"system-ui, -apple-system, sans-serif","--limbo-font-size-xs":"12px","--limbo-font-size-sm":"14px","--limbo-font-size-md":"16px","--limbo-font-size-lg":"18px","--limbo-font-size-xl":"20px","--limbo-z-dropdown":"1000","--limbo-z-sticky":"1020","--limbo-z-fixed":"1030","--limbo-z-modal":"1050","--limbo-z-tooltip":"1070","--limbo-transition-fast":"150ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-normal":"300ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-slow":"500ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-spacing-compact":"0.5rem","--limbo-spacing-compact-sm":"0.25rem","--limbo-spacing-compact-lg":"0.75rem","--limbo-font-size-compact-xs":"11px","--limbo-font-size-compact-sm":"12px","--limbo-font-size-compact-md":"14px","--limbo-font-size-compact-lg":"16px","--limbo-radius-compact":"4px","--limbo-radius-compact-sm":"3px","--limbo-radius-compact-lg":"6px","--limbo-button-height-compact":"32px","--limbo-input-height-compact":"36px","--limbo-modal-padding-compact":"12px","--limbo-card-padding-compact":"12px","--limbo-gap-compact":"8px","--limbo-gap-compact-sm":"4px","--limbo-gap-compact-lg":"12px"}},auto:{name:"auto",displayName:"Automático",variables:{}}},inheritance:{portalSelectors:["body","[data-theme]",".theme-light",".theme-dark",".light-theme",".dark-theme"],variablePrefix:"--",fallbackTheme:"light"},transitions:{duration:"300ms",easing:"cubic-bezier(0.4, 0, 0.2, 1)",properties:["background-color","border-color","color","fill","stroke","box-shadow"]}}}initialize(e={}){this.isInitialized?console.warn("ThemeManager already initialized"):(this.config=this._deepMerge(this.config,e),this._loadCustomThemes(),this.config.theme.inherit&&this._inheritPortalTheme(),this._applyInitialTheme(),this._applyInitialCompactMode(),this._setupObservers(),this._injectBaseStyles(),this.isInitialized=!0)}_injectBaseStyles(){if(document.getElementById("limbo-theme-styles"))return;const e=`\n :root {\n /* Variables de transición para cambios de tema */\n color-scheme: light dark;\n }\n \n [data-limbo-theme] {\n transition: ${this.config.transitions.properties.map(e=>`${e} ${this.config.transitions.duration} ${this.config.transitions.easing}`).join(", ")};\n }\n \n /* Clases de utilidad para temas */\n .limbo-theme-light {\n color-scheme: light;\n }\n \n .limbo-theme-dark {\n color-scheme: dark;\n }\n \n .limbo-theme-auto {\n color-scheme: light dark;\n }\n \n /* Estilos para elementos del componente con variables CSS */\n .limbo-component {\n background-color: var(--limbo-bg-primary);\n color: var(--limbo-text-primary);\n border-color: var(--limbo-border-light);\n border-radius: var(--limbo-radius-md);\n font-family: var(--limbo-font-family);\n font-size: var(--limbo-font-size-md);\n transition: var(--limbo-transition-normal);\n }\n \n .limbo-card {\n background-color: var(--limbo-bg-card);\n border: 1px solid var(--limbo-border-light);\n border-radius: var(--limbo-radius-lg);\n box-shadow: var(--limbo-shadow-md);\n color: var(--limbo-text-primary);\n }\n \n .limbo-input {\n background-color: var(--limbo-bg-input);\n border: 1px solid var(--limbo-border-medium);\n border-radius: var(--limbo-radius-md);\n color: var(--limbo-text-primary);\n font-family: var(--limbo-font-family);\n font-size: var(--limbo-font-size-md);\n transition: var(--limbo-transition-fast);\n }\n \n .limbo-input:focus {\n border-color: var(--limbo-border-focus);\n box-shadow: 0 0 0 3px var(--limbo-primary-light);\n outline: none;\n }\n \n .limbo-button {\n background-color: var(--limbo-primary);\n border: 1px solid var(--limbo-primary);\n border-radius: var(--limbo-radius-md);\n color: var(--limbo-text-inverse);\n font-family: var(--limbo-font-family);\n font-size: var(--limbo-font-size-md);\n transition: var(--limbo-transition-fast);\n cursor: pointer;\n }\n \n .limbo-button:hover {\n background-color: var(--limbo-primary-hover);\n border-color: var(--limbo-primary-hover);\n }\n \n .limbo-button.secondary {\n background-color: var(--limbo-bg-secondary);\n border-color: var(--limbo-border-medium);\n color: var(--limbo-text-primary);\n }\n \n .limbo-button.secondary:hover {\n background-color: var(--limbo-bg-tertiary);\n }\n \n /* Estados de feedback con variables */\n .limbo-state-success {\n background-color: var(--limbo-success-light);\n border-color: var(--limbo-success);\n color: var(--limbo-success);\n }\n \n .limbo-state-error {\n background-color: var(--limbo-error-light);\n border-color: var(--limbo-error);\n color: var(--limbo-error);\n }\n \n .limbo-state-warning {\n background-color: var(--limbo-warning-light);\n border-color: var(--limbo-warning);\n color: var(--limbo-warning);\n }\n \n .limbo-state-info {\n background-color: var(--limbo-info-light);\n border-color: var(--limbo-info);\n color: var(--limbo-info);\n }\n \n /* Overlay y modal con variables */\n .limbo-overlay {\n background-color: var(--limbo-bg-overlay);\n backdrop-filter: blur(4px);\n }\n \n .limbo-modal {\n background-color: var(--limbo-bg-card);\n border-radius: var(--limbo-radius-xl);\n box-shadow: var(--limbo-shadow-xl);\n color: var(--limbo-text-primary);\n }\n \n /* Responsive design con variables */\n @media (max-width: 640px) {\n .limbo-component {\n font-size: var(--limbo-font-size-sm);\n }\n }\n \n /* Modo reducido de movimiento */\n @media (prefers-reduced-motion: reduce) {\n [data-limbo-theme] {\n transition: none;\n }\n \n .limbo-component,\n .limbo-input,\n .limbo-button {\n transition: none;\n }\n }\n \n /* Esquemas de color automático */\n @media (prefers-color-scheme: dark) {\n :root:not([data-limbo-theme]) {\n color-scheme: dark;\n }\n }\n \n @media (prefers-color-scheme: light) {\n :root:not([data-limbo-theme]) {\n color-scheme: light;\n }\n }\n \n /* ===================================\n MODO COMPACTO - ESTILOS ESPECÍFICOS \n =================================== */\n \n /* Activación del modo compacto por atributo o clase */\n [data-limbo-compact="true"],\n .limbo-compact-mode {\n /* Componentes base más pequeños */\n --limbo-font-size-md: var(--limbo-font-size-compact-md);\n --limbo-font-size-sm: var(--limbo-font-size-compact-sm);\n --limbo-font-size-lg: var(--limbo-font-size-compact-lg);\n --limbo-spacing: var(--limbo-spacing-compact);\n --limbo-radius-md: var(--limbo-radius-compact);\n --limbo-gap: var(--limbo-gap-compact);\n }\n \n /* Botones compactos */\n [data-limbo-compact="true"] .limbo-button,\n .limbo-compact-mode .limbo-button {\n height: var(--limbo-button-height-compact);\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-sm);\n border-radius: var(--limbo-radius-compact);\n min-width: auto;\n }\n \n /* Inputs compactos */\n [data-limbo-compact="true"] .limbo-input,\n .limbo-compact-mode .limbo-input {\n height: var(--limbo-input-height-compact);\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-md);\n border-radius: var(--limbo-radius-compact);\n }\n \n /* Cards compactas */\n [data-limbo-compact="true"] .limbo-card,\n .limbo-compact-mode .limbo-card {\n padding: var(--limbo-card-padding-compact);\n border-radius: var(--limbo-radius-compact-lg);\n }\n \n /* Modales compactos */\n [data-limbo-compact="true"] .limbo-modal,\n .limbo-compact-mode .limbo-modal {\n padding: var(--limbo-modal-padding-compact);\n border-radius: var(--limbo-radius-compact-lg);\n max-width: 90vw;\n max-height: 90vh;\n }\n \n /* Tabs compactas */\n [data-limbo-compact="true"] .limbo-tabs,\n .limbo-compact-mode .limbo-tabs {\n gap: var(--limbo-gap-compact-sm);\n }\n \n [data-limbo-compact="true"] .limbo-tab,\n .limbo-compact-mode .limbo-tab {\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-sm);\n border-radius: var(--limbo-radius-compact-sm);\n }\n \n /* Gallery compacta */\n [data-limbo-compact="true"] .limbo-gallery,\n .limbo-compact-mode .limbo-gallery {\n gap: var(--limbo-gap-compact-sm);\n }\n \n [data-limbo-compact="true"] .limbo-gallery-item,\n .limbo-compact-mode .limbo-gallery-item {\n border-radius: var(--limbo-radius-compact);\n min-height: 120px; /* Más pequeño para móviles */\n }\n \n /* Notificaciones compactas */\n [data-limbo-compact="true"] .limbo-notification,\n .limbo-compact-mode .limbo-notification {\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-sm);\n border-radius: var(--limbo-radius-compact);\n }\n \n /* Progress indicators compactos */\n [data-limbo-compact="true"] .limbo-progress,\n .limbo-compact-mode .limbo-progress {\n height: 3px; /* Más delgado */\n }\n \n [data-limbo-compact="true"] .limbo-progress-circular,\n .limbo-compact-mode .limbo-progress-circular {\n width: 20px;\n height: 20px;\n }\n \n /* Auto-activación en pantallas pequeñas */\n @media (max-width: 768px) {\n :root[data-limbo-compact="auto"],\n .limbo-component[data-limbo-compact="auto"] {\n /* Aplicar automáticamente estilos compactos */\n --limbo-font-size-md: var(--limbo-font-size-compact-md);\n --limbo-font-size-sm: var(--limbo-font-size-compact-sm);\n --limbo-spacing: var(--limbo-spacing-compact);\n --limbo-radius-md: var(--limbo-radius-compact);\n --limbo-gap: var(--limbo-gap-compact);\n }\n \n /* Modal full-screen en móvil cuando es compacto */\n [data-limbo-compact="auto"] .limbo-modal,\n [data-limbo-compact="true"] .limbo-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n max-width: 100vw;\n max-height: 100vh;\n border-radius: 0;\n margin: 0;\n }\n \n /* Tabs en accordion en móvil */\n [data-limbo-compact="auto"] .limbo-tabs,\n [data-limbo-compact="true"] .limbo-tabs {\n flex-direction: column;\n width: 100%;\n }\n \n /* Gallery de 2 columnas en móvil */\n [data-limbo-compact="auto"] .limbo-gallery,\n [data-limbo-compact="true"] .limbo-gallery {\n grid-template-columns: 1fr 1fr;\n gap: var(--limbo-gap-compact);\n }\n }\n \n /* Touch targets más grandes en móviles */\n @media (max-width: 768px) and (pointer: coarse) {\n [data-limbo-compact="auto"] .limbo-button,\n [data-limbo-compact="true"] .limbo-button {\n min-height: 44px; /* Tamaño mínimo de toque recomendado */\n padding: var(--limbo-spacing-compact) var(--limbo-spacing-compact-lg);\n }\n \n [data-limbo-compact="auto"] .limbo-tab,\n [data-limbo-compact="true"] .limbo-tab {\n min-height: 44px;\n }\n }\n `,t=document.createElement("style");t.id="limbo-theme-styles",t.textContent=e,document.head.appendChild(t)}applyTheme(e,t={}){const n=this._getTheme(e);if(!n)return console.warn(`Theme '${e}' not found`),!1;const r=this.currentTheme;return this._applyThemeVariables(n,t.scope),this._updateThemeAttributes(n.name),this.config.theme.storage&&!t.temporary&&this._saveThemePreference(n.name),this.currentTheme=n.name,this._triggerChangeCallbacks(n.name,r),!0}toggleTheme(e="light",t="dark"){const n=this.currentTheme===e?t:e;return this.applyTheme(n)}applyAutoTheme(){const e=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";return this.applyTheme(e)}registerTheme(e,t){const n={name:e,displayName:t.displayName||e,variables:t.variables||{},extends:t.extends||null,...t};if(n.extends){const e=this._getTheme(n.extends);e&&(n.variables={...e.variables,...n.variables})}return this.customThemes.set(e,n),this}removeTheme(e){if(this.config.presets[e])return console.warn(`Cannot remove predefined theme: ${e}`),!1;const t=this.customThemes.delete(e);return t&&this.currentTheme===e&&this.applyTheme(this.config.inheritance.fallbackTheme),t}getAvailableThemes(){const e=Object.keys(this.config.presets),t=Array.from(this.customThemes.keys());return{presets:e,custom:t,all:[...e,...t]}}getCurrentTheme(){return{name:this.currentTheme,theme:this._getTheme(this.currentTheme),isCustom:this.customThemes.has(this.currentTheme),variables:this._getCurrentVariables()}}enableCompactMode(e={}){const t={element:document.documentElement,persist:!0,...e};return t.element.setAttribute("data-limbo-compact","true"),t.element.classList.add("limbo-compact-mode"),this.isCompactMode=!0,t.persist&&this.config.compact.persistPreference&&this._saveCompactPreference(!0),this._triggerCompactChange(!0),this}disableCompactMode(e={}){const t={element:document.documentElement,persist:!0,...e};return t.element.setAttribute("data-limbo-compact","false"),t.element.classList.remove("limbo-compact-mode"),this.isCompactMode=!1,t.persist&&this.config.compact.persistPreference&&this._saveCompactPreference(!1),this._triggerCompactChange(!1),this}toggleCompactMode(e={}){return this.isCompactMode?this.disableCompactMode(e):this.enableCompactMode(e)}applyAutoCompactMode(){const e=this._shouldUseCompactMode();return e&&!this.isCompactMode?this.enableCompactMode({persist:!1}):!e&&this.isCompactMode&&this.disableCompactMode({persist:!1}),this}getCompactState(){return{isEnabled:this.isCompactMode,isAuto:this.config.compact.auto,breakpoint:this.config.compact.breakpoint,currentViewport:window.innerWidth,shouldBeCompact:this._shouldUseCompactMode()}}_shouldUseCompactMode(){if(!this.config.compact.auto)return this.config.compact.enabled;const e=window.innerWidth<=this.config.compact.breakpoint,t=/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),n="ontouchstart"in window||navigator.maxTouchPoints>0;return!(!this.config.compact.forceOnMobile||!t&&!n)||e}_saveCompactPreference(e){try{localStorage.setItem("limbo-compact-preference",e.toString())}catch(t){console.warn("Could not save compact preference:",t)}}_loadCompactPreference(){try{return"true"===localStorage.getItem("limbo-compact-preference")}catch(e){return console.warn("Could not load compact preference:",e),null}}_triggerCompactChange(e){this.changeCallbacks.forEach(t=>{try{t({type:"compact",isCompact:e,viewport:window.innerWidth,timestamp:Date.now()})}catch(n){console.error("Error in compact mode change callback:",n)}})}_inheritPortalTheme(){const e=this._detectPortalTheme();return e?(this.registerTheme("portal-inherited",e),"portal-inherited"):null}_detectPortalTheme(){const e={name:"portal-detected",displayName:"Tema del Portal",variables:{}};for(const t of this.config.inheritance.portalSelectors){const n=document.querySelector(t);if(n){const t=this._extractCSSVariables(n);Object.keys(t).length>0&&(e.variables={...e.variables,...t});const r=n.getAttribute("data-theme")||n.getAttribute("class")?.match(/theme-(\w+)/)||n.getAttribute("class")?.match(/(\w+)-theme/);r&&(e.detectedName=Array.isArray(r)?r[1]:r)}}return Object.keys(e.variables).length>0?e:null}_extractCSSVariables(e){const t={},n=getComputedStyle(e);["primary","primary-hover","primary-light","primary-dark","bg-primary","bg-secondary","bg-tertiary","bg-card","bg-input","text-primary","text-secondary","text-tertiary","text-inverse","border-light","border-medium","border-strong","border-focus","success","error","warning","info","shadow-sm","shadow-md","shadow-lg","shadow-xl","radius-sm","radius-md","radius-lg","radius-xl"].forEach(e=>{const r=`--limbo-${e}`,l=n.getPropertyValue(r).trim();l&&(t[r]=l)});return["--primary-color","--background-color","--text-color","--border-color","--accent-color","--surface-color"].forEach(e=>{const r=n.getPropertyValue(e).trim();if(r){const n=this._mapGenericToLimbo(e,r);n&&Object.assign(t,n)}}),t}_mapGenericToLimbo(e,t){return{"--primary-color":{"--limbo-primary":t},"--background-color":{"--limbo-bg-primary":t},"--text-color":{"--limbo-text-primary":t},"--border-color":{"--limbo-border-light":t},"--accent-color":{"--limbo-primary":t},"--surface-color":{"--limbo-bg-card":t}}[e]||null}_applyInitialTheme(){let e=this.config.inheritance.fallbackTheme;if(this.config.theme.storage){const t=this._loadThemePreference();t&&this._getTheme(t)&&(e=t)}const t=document.documentElement.getAttribute("data-limbo-theme");t&&this._getTheme(t)&&(e=t);const n=this._inheritPortalTheme();n&&(e=n),this.config.theme.auto&&"auto"===e&&(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),this.applyTheme(e,{temporary:!1})}_applyInitialCompactMode(){let e=!1;if(this.config.compact.persistPreference){const t=this._loadCompactPreference();null!==t&&(e=t)}const t=document.documentElement.getAttribute("data-limbo-compact");"true"===t?e=!0:"false"===t&&(e=!1),("auto"===t||this.config.compact.auto)&&(e=this._shouldUseCompactMode()),e?this.enableCompactMode({persist:!1}):this.disableCompactMode({persist:!1})}_applyThemeVariables(e,t=document.documentElement){const n="string"==typeof t?document.querySelector(t):t;n?(Object.entries(e.variables).forEach(([e,t])=>{n.style.setProperty(e,t),this.appliedStyles.add(`${n.tagName}:${e}`)}),this.themeCache.set(e.name,{theme:e,appliedAt:Date.now(),scope:n})):console.warn("Theme scope element not found")}_updateThemeAttributes(e){document.documentElement.setAttribute("data-limbo-theme",e),document.documentElement.classList.remove("limbo-theme-light","limbo-theme-dark","limbo-theme-auto"),document.documentElement.classList.add(`limbo-theme-${e}`),this._updateMetaThemeColor(e)}_updateMetaThemeColor(e){const t=this._getTheme(e);if(!t)return;const n=t.variables["--limbo-primary"]||"#3b82f6";let r=document.querySelector('meta[name="theme-color"]');r||(r=document.createElement("meta"),r.name="theme-color",document.head.appendChild(r)),r.content=n}_getTheme(e){return this.config.presets[e]?this.config.presets[e]:this.customThemes.has(e)?this.customThemes.get(e):null}_getCurrentVariables(){const e=this._getTheme(this.currentTheme);if(!e)return{};const t=getComputedStyle(document.documentElement),n={};return Object.keys(e.variables).forEach(e=>{n[e]=t.getPropertyValue(e).trim()}),n}_saveThemePreference(e){try{localStorage.setItem("limbo-theme-preference",e)}catch(t){console.warn("Could not save theme preference:",t)}}_loadThemePreference(){try{return localStorage.getItem("limbo-theme-preference")}catch(e){return console.warn("Could not load theme preference:",e),null}}_loadCustomThemes(){try{const e=localStorage.getItem("limbo-custom-themes");if(e){const t=JSON.parse(e);Object.entries(t).forEach(([e,t])=>{this.customThemes.set(e,t)})}}catch(e){console.warn("Could not load custom themes:",e)}}_saveCustomThemes(){try{const e=Object.fromEntries(this.customThemes);localStorage.setItem("limbo-custom-themes",JSON.stringify(e))}catch(e){console.warn("Could not save custom themes:",e)}}_setupObservers(){this.config.theme.detectSystem&&this._setupSystemObserver(),this.config.theme.storage&&this._setupStorageObserver(),this._setupMutationObserver(),this.config.compact.auto&&this._setupViewportObserver()}_setupSystemObserver(){const e=window.matchMedia("(prefers-color-scheme: dark)");e.addEventListener("change",e=>{if("auto"===this.currentTheme||this.config.theme.auto){const t=e.matches?"dark":"light";this.applyTheme(t,{temporary:!0})}}),this.mediaQueryObserver=e}_setupStorageObserver(){const e=e=>{"limbo-theme-preference"===e.key&&e.newValue!==this.currentTheme&&this._getTheme(e.newValue)&&this.applyTheme(e.newValue)};window.addEventListener("storage",e),this.storageListener=e}_setupMutationObserver(){const e=new MutationObserver(e=>{e.forEach(e=>{if("attributes"===e.type&&"data-limbo-theme"===e.attributeName){const t=e.target.getAttribute("data-limbo-theme");t&&t!==this.currentTheme&&this._getTheme(t)&&this.applyTheme(t)}})});e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-limbo-theme"]}),this.mutationObserver=e}_setupViewportObserver(){const e=`(max-width: ${this.config.compact.breakpoint}px)`,t=window.matchMedia(e);t.addEventListener("change",()=>{("auto"===document.documentElement.getAttribute("data-limbo-compact")||this.config.compact.auto)&&this.applyAutoCompactMode()}),this.compactObserver=t,window.addEventListener("orientationchange",()=>{setTimeout(()=>{("auto"===document.documentElement.getAttribute("data-limbo-compact")||this.config.compact.auto)&&this.applyAutoCompactMode()},100)})}onThemeChange(e){return this.changeCallbacks.add(e),()=>this.changeCallbacks.delete(e)}_triggerChangeCallbacks(e,t){this.changeCallbacks.forEach(n=>{try{n({theme:e,previousTheme:t,themeData:this._getTheme(e),variables:this._getCurrentVariables()})}catch(r){console.error("Error in theme change callback:",r)}})}generateThemeFromColors(e,t){const n={name:e,displayName:e,variables:{}};t.primary&&(n.variables["--limbo-primary"]=t.primary,n.variables["--limbo-primary-hover"]=this._darkenColor(t.primary,10),n.variables["--limbo-primary-light"]=this._lightenColor(t.primary,40),n.variables["--limbo-primary-dark"]=this._darkenColor(t.primary,20)),t.background&&(n.variables["--limbo-bg-primary"]=t.background,n.variables["--limbo-bg-secondary"]=this._lightenColor(t.background,5),n.variables["--limbo-bg-tertiary"]=this._lightenColor(t.background,10),n.variables["--limbo-bg-card"]=t.background),t.text&&(n.variables["--limbo-text-primary"]=t.text,n.variables["--limbo-text-secondary"]=this._lightenColor(t.text,20),n.variables["--limbo-text-tertiary"]=this._lightenColor(t.text,40));const r=this._getTheme(this.config.inheritance.fallbackTheme);return r&&(n.variables={...r.variables,...n.variables}),this.registerTheme(e,n),n}_darkenColor(e,t){const n=parseInt(e.replace("#",""),16),r=Math.round(2.55*t),l=(n>>16)-r,a=(n>>8&255)-r,i=(255&n)-r;return"#"+(16777216+65536*(l<255?l<1?0:l:255)+256*(a<255?a<1?0:a:255)+(i<255?i<1?0:i:255)).toString(16).slice(1)}_lightenColor(e,t){const n=parseInt(e.replace("#",""),16),r=Math.round(2.55*t),l=(n>>16)+r,a=(n>>8&255)+r,i=(255&n)+r;return"#"+(16777216+65536*(l<255?l<1?0:l:255)+256*(a<255?a<1?0:a:255)+(i<255?i<1?0:i:255)).toString(16).slice(1)}_deepMerge(e,t){const n={...e};return Object.keys(t).forEach(r=>{t[r]&&"object"==typeof t[r]&&!Array.isArray(t[r])?n[r]=this._deepMerge(e[r]||{},t[r]):n[r]=t[r]}),n}getThemeInfo(){return{current:this.getCurrentTheme(),available:this.getAvailableThemes(),compact:this.getCompactState(),config:this.config,isInitialized:this.isInitialized,cache:{themes:this.themeCache.size,applied:this.appliedStyles.size},observers:{system:!!this.mediaQueryObserver,storage:!!this.storageListener,mutation:!!this.mutationObserver,viewport:!!this.compactObserver}}}debug(){return console.table(this.getThemeInfo()),this.getThemeInfo()}destroy(){this.mediaQueryObserver&&this.mediaQueryObserver.removeEventListener("change",this._setupSystemObserver),this.storageListener&&window.removeEventListener("storage",this.storageListener),this.mutationObserver&&this.mutationObserver.disconnect(),this.compactObserver&&this.compactObserver.removeEventListener("change",this._setupViewportObserver),this.changeCallbacks.clear(),this.themeCache.clear(),this.appliedStyles.clear(),this._saveCustomThemes();const e=document.getElementById("limbo-theme-styles");e&&e.remove(),this.isInitialized=!1}}const mn=new class{constructor(){this.config=new b,this.instances=new on,this.autoInputs=new sn,this.events=new cn,this.modals=new un,this.theme=new bn,this.containerQueryDetector=S,this._setupInternalListeners(),this._initializeContainerQueries()}configure(e){var t;return this.config.setGlobal(e),t={publicKey:e.publicKey,apiKey:e.apiKey,token:e.token,authMode:e.authMode||"manual",tokenProvider:e.tokenProvider,prod:e.prod||!1,mode:e.mode||"embed",callbacks:e.callbacks||null},z={...z,...t},z.authMode||(z.token?z.authMode="manual":z.authMode="session"),this.config}setToken(e){return function(e){z.token=e}(e),this}create(e){const t=this.config.merge(e);return this.instances.create(t,this.events,this.modals)}configureAutoInputs(e){return this.autoInputs.configure(e,this.config,this.events)}setTheme(e){return e&&(this.config.set("theme",e),this.theme.setTheme(e),this.events.emit("theme:changed",{theme:e})),this}getTheme(){return this.theme.getCurrentTheme()}scanAndActivate(e=null){const t=this.autoInputs.config?.dataset||"data-limbo-input-file",n=e||`[${t}]`,r=document.querySelectorAll(n);if(0===r.length)return{found:0,processed:0,skipped:0};let l=0,a=0;return r.forEach(e=>{try{this.autoInputs._processInput(e),l++}catch(t){console.warn(`⚠️ Limbo: Error procesando input ${e.id||e.name}:`,t),a++}}),this.events.emit("limbo:scanCompleted",{found:r.length,processed:l,skipped:a,inputs:Array.from(r)}),{found:r.length,processed:l,skipped:a}}_initializeContainerQueries(){this.containerQueryDetector.observeResize(),setTimeout(()=>{document.querySelectorAll(".limbo-component-container-wrapper").forEach(e=>{this.containerQueryDetector.applyResponsiveClasses(e)})},100)}rescan(e=document){const t=this.autoInputs.config?.dataset||"data-limbo-input-file",n=e.querySelectorAll(`[${t}]`);let r=0;return n.forEach(e=>{if(!this.autoInputs.instances.has(this.autoInputs._getInputId(e)))try{this.autoInputs._processInput(e),r++}catch(t){console.warn("⚠️ Limbo: Error procesando nuevo input:",t)}}),r}init(e){const t=this._mapLegacyOptions(e);return this.create(t)}getInstances(){return this.instances.getAll()}destroy(){this.instances.destroyAll(),this.autoInputs.cleanup(),this.events.cleanup(),this.theme.removeTheme()}_mapLegacyOptions(e){return{container:e.container||"#image-manager",mode:"embed",features:["gallery","upload","cropper"],apiKey:e.apiKey,prod:e.prod||!1,url:void 0===e.url||e.url}}_setupInternalListeners(){this.events.on("autoInputs:modalRequest",({config:e,callback:t})=>{this._handleAutoInputModalRequest({config:e,callback:t})})}_handleAutoInputModalRequest({config:e,callback:t}){const n=e=>{let n={};if(e.crops&&e.crops.length>0){const t=e.asset||e.original;n.original={url:t?.url||t?.urlSigned||e.originalUrl,width:t?.width||e.originalWidth,height:t?.height||e.originalHeight,assetId:t?.id||e.assetId},n.images=e.crops.map(e=>({url:e.url||e.urlSigned,width:e.width,height:e.height,name:e.name||e.filename}))}else e.asset?n.original={url:e.asset.url||e.asset.urlSigned,width:e.asset.width,height:e.asset.height,assetId:e.asset.id}:e.master?.urlSigned||e.master?.url?n.original={url:e.master.urlSigned||e.master.url,width:e.master.width||e.width,height:e.master.height||e.height,assetId:e.assetId}:e.url||e.urlSigned?n.original={url:e.url||e.urlSigned,width:e.width,height:e.height,assetId:e.assetId||e.id}:(console.warn("[Limbo] handleResult: formato de datos no reconocido",e),n=e);t(n),l.close()},r={...e,mode:"modal",autoDestroy:!0,interaction:{allowSelection:!0,allowCropping:!0,...e.interaction},callbacks:{onSelect:e=>{n(e)},onCropsSaved:e=>{n(e)},onCropperComplete:e=>{n(e)},onUpload:t=>{"upload-only"!==e.modeUI||e.features?.includes("cropper")||n(t)},onClose:()=>{}}};if(e.initialImageUrl){const t=this._extractAssetIdFromUrl(e.initialImageUrl);r._externalImage={url:e.initialImageUrl,filename:e.initialImageUrl.split("/").pop()?.split("?")[0]||"image.jpg",width:1920,height:1080,mime_type:"image/jpeg",id:t}}e.cropper&&(r.cropper=e.cropper),this.config.setGlobal({interaction:{allowSelection:!0,allowCropping:!0,...e.interaction}});const l=this.create(r);l.open()}_extractAssetIdFromUrl(e){if(!e)return null;try{const t=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,n=e.match(t);return n&&n.length>=2?n[1]:n&&1===n.length?n[0]:null}catch(t){return console.warn("Error extracting asset ID from URL:",t),null}}openGallery(e={}){const t=this.create({mode:"modal",modeUI:"gallery-only",features:["gallery"],autoDestroy:!0,modal:{title:e.title||"Seleccionar Imagen",size:e.size||"large"},callbacks:{onSelect:n=>{e.onSelect?.(n),!1!==e.autoClose&&t.close()}},...e});return t.open(),t}openUploader(e={}){const t=!1!==e.redirectToGallery?["upload","gallery"]:["upload"],n=this.create({mode:"modal",modeUI:!1!==e.redirectToGallery?"full":"upload-only",features:t,autoDestroy:!0,modal:{title:e.title||"Subir Imagen",size:e.size||"medium"},callbacks:{onUpload:t=>{e.onUpload?.(t),!1===e.autoClose||e.redirectToGallery||n.close()}},...e});return n.open(),n}openCropper(e,t={}){if(!e)throw new Error("Limbo.openCropper: imageUrl es requerido");const n={url:e,filename:t.filename||"image.jpg",width:t.width||1920,height:t.height||1080,mime_type:t.mimeType||"image/jpeg",id:t.assetId||`external-${Date.now()}`},r=this.create({mode:"modal",modeUI:"crop-only",features:["cropper"],autoDestroy:!0,modal:{title:t.title||"Recortar Imagen",size:"xlarge"},cropper:{mandatoryCrops:t.mandatoryCrops||[],allowCustomCrops:!1!==t.allowCustomCrops,enforceRequiredCrops:!1!==t.enforceRequiredCrops},callbacks:{onCropperComplete:e=>{t.onComplete?.(e),!1!==t.autoClose&&r.close()},onCropperCancelled:e=>{t.onCancelled?.(e),!1!==t.autoClose&&r.close()},onCropperError:e=>{t.onError?.(e)}},_externalImage:n,...t});return r.open(),r}createInlineGallery(e,t={}){return this.create({container:e,mode:"embed",modeUI:"gallery-only",features:["gallery"],callbacks:{onSelect:t.onSelect,onDelete:t.onDelete},...t})}createInlineUploader(e,t={}){return this.create({container:e,mode:"embed",modeUI:"upload-only",features:["upload"],callbacks:{onUpload:t.onUpload},...t})}createStandaloneCropper(e,t,n={}){if(!e)throw new Error("Limbo.createStandaloneCropper: container es requerido");if(!t)throw new Error("Limbo.createStandaloneCropper: imageUrl es requerido");const r={url:t,filename:n.filename||"image.jpg",width:n.width||1920,height:n.height||1080,mime_type:n.mimeType||"image/jpeg",id:n.assetId||`external-${Date.now()}`};return this.create({container:e,mode:"embed",modeUI:"crop-only",features:["cropper"],autoHideOnComplete:!1!==n.autoHideOnComplete,cropper:{mandatoryCrops:n.mandatoryCrops||[],allowCustomCrops:!1!==n.allowCustomCrops,enforceRequiredCrops:!1!==n.enforceRequiredCrops},callbacks:{onCropperComplete:n.onComplete,onCropperCancelled:n.onCancelled,onCropperError:n.onError},_externalImage:r,...n})}createFullSelector(e,t={}){return this.create({container:e,mode:t.mode||"embed",modeUI:"full",features:["gallery","upload","cropper"],callbacks:{onSelect:t.onSelect,onUpload:t.onUpload,onDelete:t.onDelete,onCropsSaved:t.onCropsSaved},...t})}};"undefined"!=typeof window&&(window.Limbo=mn,window.limboCore=mn);"undefined"!=typeof window&&document.querySelector("#root")&&(mn.configure({prod:!1,publicKey:"pk_e464fd744106b7a8d63d453c4bd02582",authMode:"session"}),mn.create({container:"#root",mode:"embed",modeUI:"full",features:["gallery","upload","cropper"],title:"Limbo Image Manager - Development",url:!0}),mn.configureAutoInputs({dataset:"data-limbo-input-file",return:"json",features:["gallery","upload","cropper"],modeUI:"full",modalSize:"large",title:"Seleccionar imagen",crops:"free",allowDelete:!1}));export{mn as default};
|
|
509
|
+
/* @__PURE__ */o(sn,{isOpen:z,onClose:T})]})}(()=>{try{const e=sessionStorage.getItem(bn);if(e){const t=JSON.parse(e),n=Date.now();Object.entries(t).forEach(([e,t])=>{t.timestamp&&n-t.timestamp<dn&&un.set(e,t)})}}catch{}})();class fn{constructor(e,t,n,r){this.id=e,this.config=t,this.eventManager=n,this.modalManager=r,this.root=null,this.container=null,this.modal=null,this.mounted=!1,this.destroyed=!1,this.button=null,this._validateConfig(),this._initialize()}_initialize(){"embed"===this.config.mode?this.mount():"button"===this.config.mode&&this._createButton(),this._emitDOMEvent("ready",{instance:this,config:this.config,timestamp:Date.now()})}mount(){if(this.mounted||this.destroyed)return this;if(this.container=this._resolveContainer(),!this.container)return this.eventManager.emit("error",{instanceId:this.id,error:"Container not found"}),this;try{this.root=C.createRoot(this.container),this.root.render(this._renderApp()),this.mounted=!0,this.eventManager.emit("ready",{instance:this})}catch(e){this.eventManager.emit("error",{instanceId:this.id,error:e.message})}return this}unmount(){return this.mounted?(this.root&&(this.root.unmount(),this.root=null),"button"===this.config.mode&&this.button,this.mounted=!1,this):this}open(){return"modal"!==this.config.mode&&"button"!==this.config.mode||(this.modal||this._createModal(),this.modal&&!this.modal.isOpened()&&(this.modal.open(),this.eventManager.emit("modal:open",{instance:this}))),this}close(){return this.modal&&this.modal.isOpened()&&(this.eventManager?.emit("modal:close",{instance:this}),this.modal.close()),this}updateConfig(e){return this.config={...this.config,...e},this.mounted&&this.root.render(this._renderApp()),this.eventManager.emit("config:updated",{instance:this,newConfig:e}),this}destroy(){this.destroyed||(this.unmount(),this.modal&&(this.modal.destroy(),this.modal=null),this.button&&this.button.parentNode&&(this.button.parentNode.removeChild(this.button),this.button=null),this.eventManager.emit("destroy",{instance:this}),this.container=null,this.config=null,this.eventManager=null,this.modalManager=null,this.destroyed=!0)}getId(){return this.id}getMode(){return this.config.mode}isMounted(){return this.mounted}isDestroyed(){return this.destroyed}getContainer(){return this.container}getConfig(){return{...this.config}}isContainerInDOM(){return this.container&&document.contains(this.container)}_createModal(){if(this.modalManager&&"modal"===this.config.mode&&(this.modal=this.modalManager.createModal({title:this.config.title||"Limbo Image Manager",size:this.config.modalSize||"large",onOpen:()=>{const e={instance:this,mode:"modal",timestamp:Date.now()};this._emitDOMEvent("modal:open",e),this.config.callbacks?.onOpen&&this.config.callbacks.onOpen(e)},onClose:()=>{const e={instance:this,mode:"modal",timestamp:Date.now()};this._emitDOMEvent("modal:close",e),this.config.callbacks?.onClose&&this.config.callbacks.onClose(e),this.config.autoDestroy&&this.destroy()},onDestroy:()=>{this.modal=null}}),this.modal)){const e=this.modal.getBodyContainer();this.root=C.createRoot(e),this.root.render(this._renderApp()),this.mounted=!0}}_createButton(){if(this.container||(this.container=this._resolveContainer()),!this.container)return void this.eventManager.emit("error",{instanceId:this.id,error:"Container not found for button mode"});const e=document.createElement("button");e.type="button",e.className="limbo-trigger-button",e.textContent=this.config.buttonText||"Abrir Limbo",e.style.cssText="\n background: #001978;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 6px;\n cursor: pointer;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s ease;\n ",e.addEventListener("mouseenter",()=>{e.style.backgroundColor="#334793",e.style.transform="translateY(-1px)"}),e.addEventListener("mouseleave",()=>{e.style.backgroundColor="#001978",e.style.transform="translateY(0)"}),e.addEventListener("click",()=>{this.open()}),this.container.appendChild(e),this.button=e,this.mounted=!0}_resolveContainer(){const{container:e}=this.config;return e?"string"==typeof e?document.querySelector(e):e instanceof Element?e:null:null}_renderApp(){return e.createElement("div",{id:`limbo-component-container-${this.id}`,className:"limbo-scope limbo-instance limbo-component-container-wrapper lb:h-full lb:w-full lb:py-2 lb:bg-white lb:rounded-md","data-limbo-id":this.id,"data-limbo-mode":this.config.mode,"data-limbo-version":"2.5","data-limbo-isolated":"true","aria-label":"Limbo Image Manager",role:"region"},e.createElement(pn,{apiKey:this.config.apiKey||null,publicKey:this.config.publicKey||null,token:this.config.token||null,prod:this.config.prod||!1,url:this.config.url,features:this.config.features,modeUI:this.config.modeUI||"full",ui:this.config.ui,callbacks:this._createCallbacks(),instanceId:this.id,authMode:this.config.authMode||this.config.publicKey?"session":"manual",_externalImage:this.config._externalImage||null,cropperConfig:this.config.cropper||null}))}_createCallbacks(){return{onSelect:e=>{const t=this.config?.callbacks?.onSelect,n=this._createStandardPayload(e,"select");t&&t(n),this.destroyed||this._emitDOMEvent("select",n)},onUpload:e=>{const t=this.config?.callbacks?.onUpload,n=this._createStandardPayload(e,"upload");t&&t(n),this.destroyed||this._emitDOMEvent("upload",n)},onError:e=>{const t=this.config?.callbacks?.onError,n={instance:this,error:{message:e.message||"Unknown error",code:e.code||"UNKNOWN",timestamp:Date.now()}};t&&t(n.error),this.destroyed||this._emitDOMEvent("error",n)},onClose:()=>{const e=this.config?.callbacks?.onClose,t={instance:this,timestamp:Date.now()};e&&e(),this.destroyed||this._emitDOMEvent("close",t)}}}_createStandardPayload(e,t){const n={instance:this,eventType:t,timestamp:Date.now(),instanceId:this.id,mode:this.config?.mode,features:this.config?.features};return e&&(e.assetId||e.id?(n.assetId=e.assetId||e.id,n.variants=e.variants||[],n.master=e.master||{urlSigned:e.url||e.urlSigned,width:e.width,height:e.height,mime:e.mime||e.mimeType},n.fileName=e.fileName||e.name,n.mime=e.mime||e.mimeType,n.width=e.width,n.height=e.height,n.fileBlob=e.fileBlob||e.file,n.metadata={uploadedBy:e.uploadedBy,uploadedAt:e.uploadedAt||e.timestamp,size:e.size,...e.metadata}):Object.assign(n,e)),n}_emitDOMEvent(e,t){if(this.destroyed)return;const n=new CustomEvent(`limbo:${e}`,{detail:t,bubbles:!0,cancelable:!0});(this.getContainer()||document).dispatchEvent(n),this.eventManager?.emit(e,t)}_validateConfig(){if(!(this.config.auth?.apiKey||this.config.auth?.publicKey||this.config.auth?.token||this.config.apiKey||this.config.publicKey||this.config.token))throw new Error(`LimboInstance ${this.id}: Authentication is required. Provide either auth.publicKey (recommended) or auth.apiKey (for server-side only)`);if((this.config.auth?.apiKey||this.config.apiKey)&&"undefined"!=typeof window&&console.warn("⚠️ SECURITY WARNING: API Key detected in client-side code.\nThis is a security risk! Use publicKey instead for client applications.\nAPI Keys should only be used in server-side environments."),!["embed","modal","button"].includes(this.config.mode))throw new Error(`LimboInstance ${this.id}: invalid mode ${this.config.mode}`);if("embed"===this.config.mode&&!this.config.container)throw new Error(`LimboInstance ${this.id}: container is required for embed mode`);if("button"===this.config.mode&&!this.config.container)throw new Error(`LimboInstance ${this.id}: container is required for button mode`)}}class gn{constructor(){this.instances=/* @__PURE__ */new Map,this.counter=0}create(e,t,n){const r="limbo-"+ ++this.counter,l=new fn(r,e,t,n);return this.instances.set(r,l),l}get(e){return this.instances.get(e)}getAll(){return Array.from(this.instances.values())}getActive(){return this.getAll().filter(e=>e.isMounted())}destroy(e){const t=this.instances.get(e);return!!t&&(t.destroy(),this.instances.delete(e),!0)}destroyAll(){this.instances.forEach(e=>e.destroy()),this.instances.clear()}cleanupOrphans(){const e=[];return this.instances.forEach((t,n)=>{t.isContainerInDOM()||e.push(n)}),e.forEach(e=>this.destroy(e)),e.length}getStats(){const e=this.getAll();return{total:e.length,active:e.filter(e=>e.isMounted()).length,embed:e.filter(e=>"embed"===e.getMode()).length,modal:e.filter(e=>"modal"===e.getMode()).length,button:e.filter(e=>"button"===e.getMode()).length}}}class yn{constructor(){this.config=null,this.instances=/* @__PURE__ */new Map,this.observer=null,this.initialized=!1}configure(e,t,n){return this.config={selector:e.selector||null,dataset:e.dataset||"data-limbo-input-file",return:e.return||e.returnType||"json",mode:e.mode||"modal",features:e.features||["gallery","upload","cropper"],crop:e.crop||"free",quality:e.quality||.9,format:e.format||"webp",modeUI:e.modeUI||"full",modalSize:e.modalSize||"fullscreen",theme:e.theme||"light",compact:e.compact||!1,maxSize:e.maxSize||"10MB",formats:e.formats||["jpg","jpeg","png","webp"],minWidth:e.minWidth||null,minHeight:e.minHeight||null,maxWidth:e.maxWidth||null,maxHeight:e.maxHeight||null,buttonText:e.buttonText||"Seleccionar Imagen",buttonClass:e.buttonClass||"limbo-auto-button",buttonStyle:e.buttonStyle||"primary",showPreview:!1!==e.showPreview,allowMultiple:e.allowMultiple||!1,autoAssign:!1!==e.autoAssign,...e},this.configManager=t,this.eventManager=n,this._initialize(),this}cleanup(){this.observer&&(this.observer.disconnect(),this.observer=null),this.instances.forEach(({input:e,button:t})=>{this._restoreInput(e,t)}),this.instances.clear(),this.config=null,this.initialized=!1}getStats(){return{configured:null!==this.config,totalInputs:this.instances.size,dataset:this.config?.dataset,returnType:this.config?.return}}_initialize(){this.initialized||(this._scanExistingInputs(),this._setupObserver(),this.initialized=!0,this.eventManager.emit("autoInputs:initialized",{config:this.config,inputsFound:this.instances.size}))}_scanExistingInputs(){const e=this.config.selector||`input[${this.config.dataset}]`;document.querySelectorAll(e).forEach(e=>this._processInput(e))}_processInput(e){const t=this._getInputId(e);if(this.instances.has(t))return;if(!this._validateInput(e))return;const n=this._createButton(e);this._hideInput(e),this._insertButton(e,n),this.instances.set(t,{input:e,button:n,config:this._getInputConfig(e)}),this.eventManager.emit("autoInputs:processed",{inputId:t,input:e,button:n})}_createButton(e){const t=document.createElement("button"),n=this._getInputConfig(e);t.type="button",t.textContent=n.buttonText||this.config.buttonText;const r=[this.config.buttonClass];return n.buttonClass&&n.buttonClass!==this.config.buttonClass&&r.push(n.buttonClass),t.className=r.join(" "),this._styleButton(t,n),this._attachButtonEvents(t,e),t.setAttribute("aria-label",n.buttonText||this.config.buttonText),t.setAttribute("data-limbo-trigger","true"),t.setAttribute("data-limbo-input-id",n.inputId),n.disabled&&(t.disabled=!0),t}_styleButton(e,t){const n=t.buttonStyle||this.config.buttonStyle,r=t.theme||this.config.theme,l=t.compact||this.config.compact,a={border:"none",borderRadius:"8px",cursor:"pointer",fontFamily:"inherit",fontSize:l?"12px":"14px",fontWeight:"500",transition:"all 0.2s ease",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",padding:l?"6px 12px":"8px 16px",textDecoration:"none",userSelect:"none"},i={primary:{backgroundColor:"dark"===r?"#3b82f6":"#001978",color:"white",hoverBg:"dark"===r?"#2563eb":"#334793"},secondary:{backgroundColor:"dark"===r?"#374151":"#f3f4f6",color:"dark"===r?"#f9fafb":"#374151",border:"1px solid "+("dark"===r?"#4b5563":"#d1d5db"),hoverBg:"dark"===r?"#4b5563":"#e5e7eb"},outline:{backgroundColor:"transparent",color:"dark"===r?"#3b82f6":"#001978",border:"2px solid "+("dark"===r?"#3b82f6":"#001978"),hoverBg:"dark"===r?"#3b82f6":"#001978",hoverColor:"white"},ghost:{backgroundColor:"transparent",color:"dark"===r?"#f9fafb":"#374151",hoverBg:"dark"===r?"#374151":"#f3f4f6"}},o=i[n]||i.primary;Object.assign(e.style,{...a,...o});const s=o.backgroundColor,c=o.color;e.addEventListener("mouseenter",()=>{e.style.backgroundColor=o.hoverBg||o.backgroundColor,o.hoverColor&&(e.style.color=o.hoverColor),e.style.transform="translateY(-1px)",e.style.boxShadow="0 4px 12px rgba(0, 0, 0, 0.15)"}),e.addEventListener("mouseleave",()=>{e.style.backgroundColor=s,e.style.color=c,e.style.transform="translateY(0)",e.style.boxShadow="none"}),t.disabled&&(e.style.opacity="0.5",e.style.cursor="not-allowed")}_attachButtonEvents(e,t){e.addEventListener("click",e=>{e.preventDefault(),this._handleButtonClick(t)})}_handleButtonClick(e){const t=this._getInputConfig(e),n=this._createModalConfig(t);this.eventManager.emit("autoInputs:modalRequest",{input:e,config:n,callback:async t=>await this._handleImageSelection(e,t)})}async _handleImageSelection(e,t){const n=this._getInputConfig(e);try{const r=await this._formatImageData(t,n);!1!==n.autoAssign&&(e.value=r),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:resultReady",{detail:{imageData:t,input:e,value:r,config:n,assignment:{format:n.return,smartAssign:!1!==n.smartAssign,autoAssign:!1!==n.autoAssign},legacy:{imageData:t,formatted:this._createFormattedResult(t,n)}},bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:t,input:e,value:r,config:n,formatted:this._createFormattedResult(t,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:t,value:r,config:n})}catch(r){console.error("Error handling image selection:",r),e.dispatchEvent(new CustomEvent("limbo:error",{detail:{error:r.message,input:e,imageData:t,config:n},bubbles:!0})),this._handleImageSelectionLegacy(e,t)}}_handleImageSelectionLegacy(e,t){const n=this._getInputConfig(e),r=this._formatImageData(t,n);!1!==n.autoAssign&&(e.value=r),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:t,input:e,value:r,config:n,formatted:this._createFormattedResult(t,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:t,value:r,config:n})}_createFormattedResult(e,t){return{url:e.url||e.path||"",base64:e.base64||e.dataUrl||"",assetId:e.assetId||e.id||"",fileName:e.fileName||e.filename||"",object:{url:e.url||e.path,assetId:e.assetId||e.id,fileName:e.fileName||e.filename,mime:e.mime||e.mime_type,width:e.width,height:e.height,size:e.size||e.file_size,created:e.created_at||e.created,metadata:e.metadata||{}},json:JSON.stringify({url:e.url||e.path,assetId:e.assetId||e.id,fileName:e.fileName||e.filename,mime:e.mime||e.mime_type,width:e.width,height:e.height,size:e.size||e.file_size}),metadata:{width:e.width,height:e.height,size:e.size||e.file_size,format:e.format||e.mime_type,quality:t.quality||this.config.quality,aspectRatio:e.width&&e.height?e.width/e.height:null}}}async _formatImageData(e,t=null){const n=(t||{}).return||this.config.return||"json",r=void 0!==e.original;switch(n){case"url":return r?e.images?.[0]?.url||e.original?.url||"":e.url||e.path||"";case"base64":return e.base64||e.dataUrl||"";case"assetId":return r?e.original?.assetId||"":e.assetId||e.id||"";case"fileName":return e.fileName||e.filename||"";default:return r?JSON.stringify(e):JSON.stringify({original:{url:e.url||e.path,width:e.width,height:e.height,assetId:e.assetId||e.id}})}}_createModalConfig(e){return{mode:e.mode||this.config.mode||"modal",modeUI:e.modeUI||this.config.modeUI||"full",features:e.features||this.config.features,modalSize:e.modalSize||this.config.modalSize||"fullscreen",title:e.description||this.config.title||"Seleccionar imagen",cropper:this._getCropperConfig(e),ui:{showActions:this._getUIActions(e),hideActions:[],showTabs:this._shouldShowTabs(e),theme:e.theme||this.config.theme,compact:e.compact||this.config.compact,showPreview:void 0!==e.showPreview?e.showPreview:this.config.showPreview},validation:{maxSize:e.maxSize||this.config.maxSize,formats:e.formats||this.config.formats,minWidth:e.minWidth||this.config.minWidth,minHeight:e.minHeight||this.config.minHeight,maxWidth:e.maxWidth||this.config.maxWidth,maxHeight:e.maxHeight||this.config.maxHeight,required:e.required||!1},behavior:{allowMultiple:e.allowMultiple||this.config.allowMultiple,closeOnSelect:!0,autoAssign:void 0!==e.autoAssign?e.autoAssign:this.config.autoAssign,allowSelectNew:!1!==e.allowSelectNew},initialImageUrl:e.initialImageUrl||null,returnConfig:{format:e.return||this.config.return,quality:e.quality||this.config.quality,outputFormat:e.format||this.config.format},inputMeta:{inputId:e.inputId,inputName:e.inputName,inputType:e.inputType,placeholder:e.placeholder}}}_getCropperConfig(e){const t=e.crop||this.config.crop,n={quality:e.quality||this.config.quality,format:e.format||this.config.format,mandatoryCrops:e.mandatoryCrops||[],allowAdditionalCrops:!1!==e.allowAdditionalCrops,maxCrops:e.maxCrops||null};if(e.mandatoryCrops&&e.mandatoryCrops.length>0)return{...n,aspectRatio:null};if(!t||"none"===t||"false"===t)return null;if("free"===t)return{...n,aspectRatio:null};const r={"1:1":1,"16:9":16/9,"4:3":4/3,"3:2":1.5,"2:1":2,square:1,landscape:16/9,portrait:3/4};if(r[t])return{...n,aspectRatio:r[t],minCropBoxWidth:e.minWidth||this.config.minWidth,minCropBoxHeight:e.minHeight||this.config.minHeight};if("string"==typeof t&&t.includes(":")){const[e,r]=t.split(":").map(Number);if(!isNaN(e)&&!isNaN(r)&&0!==r)return{...n,aspectRatio:e/r}}const l=parseFloat(t);return!isNaN(l)&&l>0?{...n,aspectRatio:l}:"object"==typeof t?{...n,...t}:null}_shouldShowTabs(e){const t=e.modeUI||this.config.modeUI||"full",n=e.features||this.config.features;return!["gallery-only","upload-only","crop-only","ia-only"].includes(t)&&(n&&n.length>1)}_getUIActions(e){const t=e.modeUI||this.config.modeUI||"full",n=e.features||this.config.features;let r=[];switch(t){case"gallery-only":case"upload-only":r=["select"];break;case"crop-only":r=["select","crop"];break;default:r=["select"],n.includes("cropper")&&r.push("crop"),n.includes("gallery")&&(r.push("download","copy"),this.config.allowDelete&&r.push("delete"))}return r}_getInputId(e){return e.id||e.name||`limbo-auto-${Date.now()}-${Math.random()}`}_validateInput(e){return e instanceof HTMLInputElement}_getInputConfig(e){const t=e=>e?e.split(",").map(e=>e.trim()):null,n=e=>{if(!e)return null;const t=e.match(/^(\d+(?:\.\d+)?)(MB|KB|B)?$/i);if(!t)return null;const n=parseFloat(t[1]);switch((t[2]||"B").toUpperCase()){case"MB":return 1024*n*1024;case"KB":return 1024*n;default:return n}},r=(e,t=!1)=>null===e?t:"true"===e||"1"===e||""===e,l=e=>e?parseFloat(e):null,a=e=>{if(!e)return null;try{return JSON.parse(e)}catch(t){return console.warn("[Limbo AutoInputManager] Error parsing JSON attribute:",t),null}},i=a(e.dataset.mandatorycrops)||a(e.dataset.mandatoryCrops)||a(e.getAttribute("data-mandatory-crops"))||a(e.getAttribute("data-limbo-mandatory-crops"))||null;return{return:e.dataset.returntype||e.getAttribute("data-limbo-return")||this.config.return,mode:e.dataset.mode||e.getAttribute("data-limbo-mode")||this.config.mode,features:t(e.dataset.features)||t(e.getAttribute("data-limbo-features"))||this.config.features,crop:e.dataset.crop||e.getAttribute("data-limbo-crop")||this.config.crop,quality:l(e.dataset.quality)||l(e.getAttribute("data-limbo-quality"))||this.config.quality,format:e.dataset.format||e.getAttribute("data-limbo-format")||this.config.format,modeUI:e.dataset.modeui||e.dataset.modeUI||e.getAttribute("data-limbo-mode-ui")||this.config.modeUI,modalSize:e.dataset.modalsize||e.getAttribute("data-limbo-modal-size")||this.config.modalSize,theme:e.dataset.theme||e.getAttribute("data-limbo-theme")||this.config.theme,compact:r(e.dataset.compact,null)??r(e.getAttribute("data-limbo-compact"),this.config.compact),maxSize:n(e.getAttribute("data-limbo-max-size"))||n(this.config.maxSize),formats:t(e.getAttribute("data-limbo-formats"))||this.config.formats,minWidth:l(e.getAttribute("data-limbo-min-width"))||this.config.minWidth,minHeight:l(e.getAttribute("data-limbo-min-height"))||this.config.minHeight,maxWidth:l(e.getAttribute("data-limbo-max-width"))||this.config.maxWidth,maxHeight:l(e.getAttribute("data-limbo-max-height"))||this.config.maxHeight,buttonText:e.dataset.buttontext||e.getAttribute("data-limbo-button-text")||this.config.buttonText,buttonStyle:e.dataset.buttonstyle||e.getAttribute("data-limbo-button-style")||this.config.buttonStyle,buttonClass:e.dataset.buttonclass||e.getAttribute("data-limbo-button-class")||this.config.buttonClass,showPreview:r(e.getAttribute("data-limbo-show-preview"),this.config.showPreview),allowMultiple:r(e.getAttribute("data-limbo-allow-multiple"),this.config.allowMultiple),autoAssign:r(e.getAttribute("data-limbo-auto-assign"),this.config.autoAssign),placeholder:e.getAttribute("data-limbo-placeholder"),description:e.getAttribute("data-limbo-description"),required:r(e.getAttribute("data-limbo-required"),!1),disabled:r(e.getAttribute("data-limbo-disabled"),!1),inputId:e.id||e.name||this._generateInputId(e),inputName:e.name,inputType:e.type,mandatoryCrops:i,allowAdditionalCrops:r(e.dataset.allowadditionalcrops,null)??r(e.getAttribute("data-limbo-allow-additional-crops"),!0),maxCrops:l(e.dataset.maxcrops)||l(e.getAttribute("data-limbo-max-crops"))||null,allowSelectNew:r(e.dataset.allowselectnew,null)??r(e.getAttribute("data-limbo-allow-select-new"),!0),initialImageUrl:e.value||null}}_generateInputId(){return`limbo-auto-input-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}_hideInput(e){e.style.display="none"}_insertButton(e,t){e.parentNode.insertBefore(t,e.nextSibling)}_restoreInput(e,t){e.style.display="",t&&t.parentNode&&t.parentNode.removeChild(t)}_setupObserver(){this.observer=new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&this._scanNodeForInputs(e)})})}),this.observer.observe(document.body,{childList:!0,subtree:!0})}_scanNodeForInputs(e){const t=this.config.selector||`input[${this.config.dataset}]`;e.matches&&e.matches(t)&&this._processInput(e);const n=e.querySelectorAll&&e.querySelectorAll(t);n&&n.forEach(e=>this._processInput(e))}}class vn{constructor(){this.listeners=/* @__PURE__ */new Map}emit(e,t={}){this._emitDOMEvent(e,t),this._executeListeners(e,t)}on(e,t){return this.listeners.has(e)||this.listeners.set(e,[]),this.listeners.get(e).push(t),()=>this.off(e,t)}off(e,t){const n=this.listeners.get(e);if(n){const e=n.indexOf(t);e>-1&&n.splice(e,1)}}cleanup(){this.listeners.clear()}_emitDOMEvent(e,t){const n=new CustomEvent(`limbo:${e}`,{detail:{...t,timestamp:Date.now()},bubbles:!0,cancelable:!0});(t.instance?.getContainer()||document).dispatchEvent(n)}_executeListeners(e,t){const n=this.listeners.get(e);n&&n.forEach(n=>{try{n(t)}catch(r){console.error(`Error executing listener for ${e}:`,r)}})}getStats(){const e={};return this.listeners.forEach((t,n)=>{e[n]=t.length}),e}}class wn{constructor(){this.activeModals=/* @__PURE__ */new Set,this.zIndexBase=1e4,this.focusableSelectors=["button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"]):not([disabled])',"a[href]"].join(", "),this.initialized=!1,this._initGlobalListeners()}createModal(e){const t=new xn(this._generateModalId(),e,this);return this.activeModals.add(t),t}closeModal(e){const t=this._findModal(e);return!!t&&(t.close(),!0)}closeAllModals(){this.activeModals.forEach(e=>e.close()),this.activeModals.clear()}getActiveModal(){return Array.from(this.activeModals).pop()||null}getStats(){return{active:this.activeModals.size,nextZIndex:this._getNextZIndex()}}_generateModalId(){return`limbo-modal-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}_findModal(e){return Array.from(this.activeModals).find(t=>t.getId()===e)}_getNextZIndex(){return this.zIndexBase+10*this.activeModals.size}_removeModal(e){this.activeModals.delete(e)}_handleGlobalKeydown(e){const t=this.getActiveModal();t&&("Escape"===e.key&&(e.preventDefault(),t.close()),"Tab"===e.key&&this._handleTabTrap(e,t))}_handleTabTrap(e,t){const n=t.getFocusableElements();if(0===n.length)return;const r=n[0],l=n[n.length-1];e.shiftKey?document.activeElement===r&&(e.preventDefault(),l.focus()):document.activeElement===l&&(e.preventDefault(),r.focus())}_initGlobalListeners(){this.initialized||(this.globalKeydownHandler=e=>this._handleGlobalKeydown(e),document.addEventListener("keydown",this.globalKeydownHandler),this.initialized=!0)}destroy(){this.closeAllModals(),this.initialized&&this.globalKeydownHandler&&(document.removeEventListener("keydown",this.globalKeydownHandler),this.initialized=!1,this.globalKeydownHandler=null)}}class xn{constructor(e,t,n){this.id=e,this.config={title:t.title||"Limbo",content:t.content||null,showCloseButton:!1!==t.showCloseButton,backdrop:!1!==t.backdrop,keyboard:!1!==t.keyboard,focus:!1!==t.focus,animation:!1!==t.animation,size:t.size||"large",onOpen:t.onOpen||null,onClose:t.onClose||null,onDestroy:t.onDestroy||null,...t},this.manager=n,this.element=null,this.backdrop=null,this.isOpen=!1,this.previousFocus=null,this._create()}_create(){this._createBackdrop(),this._createModal(),this._attachEvents()}_createBackdrop(){this.config.backdrop&&(this.backdrop=document.createElement("div"),this.backdrop.className="limbo-modal-backdrop",this.backdrop.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: ${this.manager._getNextZIndex()};\n opacity: 0;\n transition: opacity 0.3s ease;\n `,this.backdrop.addEventListener("click",e=>{e.target===this.backdrop&&this.close()}))}_createModal(){this.element=document.createElement("div"),this.element.className=`limbo-scope limbo-modal limbo-modal--${this.config.size}`,this.element.id=this.id,this.element.role="dialog",this.element.setAttribute("aria-modal","true"),this.element.setAttribute("aria-labelledby",`${this.id}-title`),this.element.tabIndex=-1;const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t={small:e?"width: 100%; height: 100%;":"max-width: 500px; min-height: 400px;",medium:e?"width: 100%; height: 100%;":"max-width: 800px; min-height: 500px;",large:e?"width: 100%; height: 100%;":"max-width: 1400px; min-height: 700px;",xlarge:e?"width: 100%; height: 100%;":"max-width: 95dvw; min-height: 85vh;",fullscreen:"width: 100%; height: 100%; max-width: 100%; max-height: 100%; border-radius: 0;"},n="fullscreen"===this.config.size,r=e||n?`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n transform: ${e?"translateY(100%)":"scale(0.95)"};\n width: 100%;\n height: 100%;\n max-width: none;\n max-height: none;\n border-radius: 0;\n background: white;\n z-index: ${this.manager._getNextZIndex()+1};\n opacity: ${e?"1":"0"};\n transition: ${e?"transform":"all"} 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding-top: env(safe-area-inset-top);\n padding-left: env(safe-area-inset-left);\n padding-right: env(safe-area-inset-right);\n padding-bottom: env(safe-area-inset-bottom);\n `:`\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.8);\n ${t[this.config.size]}\n width: 90%;\n max-height: 90vh;\n background: white;\n border-radius: 16px;\n box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);\n z-index: ${this.manager._getNextZIndex()+1};\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n `;this.element.style.cssText=r,this._createHeader(),this._createBody(),document.body.appendChild(this.backdrop),document.body.appendChild(this.element)}_createHeader(){const e=document.createElement("div");e.className="limbo-modal-header";const t=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);e.style.cssText=`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${t?"16px 20px":"20px 24px"};\n border-bottom: 1px solid #e9ecef;\n background: #f8f9fa;\n ${t?"position: sticky; top: 0; z-index: 10;":""}\n min-height: ${t?"60px":"auto"};\n `;const n=document.createElement("h2");if(n.id=`${this.id}-title`,n.className="limbo-modal-title",n.textContent=this.config.title,n.style.cssText="\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #001978;\n flex: 1;\n margin-right: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ",e.appendChild(n),this.config.showCloseButton){const n=document.createElement("button");n.type="button",n.className="limbo-modal-close",n.innerHTML="✕",n.setAttribute("aria-label","Cerrar modal"),n.style.cssText=`\n background: none;\n border: none;\n font-size: ${t?"28px":"24px"};\n color: #6c757d;\n cursor: pointer;\n padding: ${t?"8px":"4px"};\n border-radius: 4px;\n transition: all 0.2s ease;\n min-width: ${t?"44px":"auto"};\n min-height: ${t?"44px":"auto"};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n `,n.addEventListener("mouseenter",()=>{n.style.backgroundColor="#f8f9fa",n.style.color="#001978"}),n.addEventListener("mouseleave",()=>{n.style.backgroundColor="transparent",n.style.color="#6c757d"}),n.addEventListener("click",()=>this.close()),e.appendChild(n)}this.element.appendChild(e)}_createBody(){const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t=document.createElement("div");t.className="limbo-modal-body",t.id=`${this.id}-body`,t.style.cssText=`\n flex: 1;\n overflow-y: auto;\n padding: 0;\n -webkit-overflow-scrolling: touch;\n ${e?"height: 100%; overscroll-behavior: contain;":""}\n `,this.config.content&&("string"==typeof this.config.content?t.innerHTML=this.config.content:this.config.content instanceof Element&&t.appendChild(this.config.content)),this.element.appendChild(t)}_attachEvents(){this._originalBodyOverflow=document.body.style.overflow}open(){if(this.isOpen)return this;window.limbo&&window.limbo.core&&window.limbo.core.keyboard?(window.limbo.core.keyboard.pushFocus(document.activeElement),window.limbo.core.keyboard.setActiveModal(this.element)):this.previousFocus=document.activeElement,document.body.style.overflow="hidden";const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t="fullscreen"===this.config.size;return requestAnimationFrame(()=>{this.backdrop&&(this.backdrop.style.opacity="1"),this.element.style.opacity="1",this.element.style.transform=e?"translateY(0%)":t?"scale(1)":"translate(-50%, -50%) scale(1)"}),this.isOpen=!0,this.config.focus&&setTimeout(()=>{if(window.limbo&&window.limbo.core&&window.limbo.core.keyboard)window.limbo.core.keyboard.focusFirst(this.element);else{const e=this.getFocusableElements()[0];e&&e.focus()}},300),this.config.onOpen&&this.config.onOpen(this),this}close(){if(!this.isOpen)return this;const e=window.innerWidth<=768||/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),t="fullscreen"===this.config.size;return this.backdrop&&(this.backdrop.style.opacity="0"),this.element.style.opacity="0",this.element.style.transform=e?"translateY(100%)":t?"scale(0.95)":"translate(-50%, -50%) scale(0.8)",setTimeout(()=>{this._cleanup()},300),this.isOpen=!1,window.limbo&&window.limbo.core&&window.limbo.core.keyboard&&(window.limbo.core.keyboard.setActiveModal(null),window.limbo.core.keyboard.releaseFocus()),this.config.onClose&&this.config.onClose(this),this}destroy(){this.close(),this.manager._removeModal(this),this.config.onDestroy&&this.config.onDestroy(this)}getBodyContainer(){return this.element.querySelector(".limbo-modal-body")}getFocusableElements(){return Array.from(this.element.querySelectorAll(this.manager.focusableSelectors))}getId(){return this.id}isOpened(){return this.isOpen}getConfig(){return{...this.config}}_cleanup(){document.body.style.overflow=this._originalBodyOverflow||"",this.previousFocus&&"function"==typeof this.previousFocus.focus&&this.previousFocus.focus(),this.backdrop&&this.backdrop.parentNode&&this.backdrop.parentNode.removeChild(this.backdrop),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}}class kn{constructor(){this.currentTheme=null,this.customThemes=/* @__PURE__ */new Map,this.config=this._getDefaultConfig(),this.isInitialized=!1,this.isCompactMode=!1,this.compactBreakpoint=null,this.compactObserver=null,this.mediaQueryObserver=null,this.mutationObserver=null,this.storageListener=null,this.themeCache=/* @__PURE__ */new Map,this.appliedStyles=/* @__PURE__ */new Set,this.changeCallbacks=/* @__PURE__ */new Set}_getDefaultConfig(){return{theme:{auto:!0,storage:!0,inherit:!0,smooth:!0,detectSystem:!0},compact:{enabled:!1,auto:!0,breakpoint:768,forceOnMobile:!0,persistPreference:!0},presets:{light:{name:"light",displayName:"Claro",variables:{"--limbo-primary":"#3b82f6","--limbo-primary-hover":"#2563eb","--limbo-primary-light":"#dbeafe","--limbo-primary-dark":"#1e40af","--limbo-bg-primary":"#ffffff","--limbo-bg-secondary":"#f8fafc","--limbo-bg-tertiary":"#f1f5f9","--limbo-bg-overlay":"rgba(0, 0, 0, 0.5)","--limbo-bg-card":"#ffffff","--limbo-bg-input":"#ffffff","--limbo-text-primary":"#0f172a","--limbo-text-secondary":"#475569","--limbo-text-tertiary":"#64748b","--limbo-text-inverse":"#ffffff","--limbo-text-muted":"#94a3b8","--limbo-border-light":"#e2e8f0","--limbo-border-medium":"#cbd5e1","--limbo-border-strong":"#94a3b8","--limbo-border-focus":"#3b82f6","--limbo-success":"#10b981","--limbo-success-light":"#d1fae5","--limbo-error":"#ef4444","--limbo-error-light":"#fee2e2","--limbo-warning":"#f59e0b","--limbo-warning-light":"#fef3c7","--limbo-info":"#3b82f6","--limbo-info-light":"#dbeafe","--limbo-shadow-sm":"0 1px 2px 0 rgba(0, 0, 0, 0.05)","--limbo-shadow-md":"0 4px 6px -1px rgba(0, 0, 0, 0.1)","--limbo-shadow-lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1)","--limbo-shadow-xl":"0 20px 25px -5px rgba(0, 0, 0, 0.1)","--limbo-radius-sm":"4px","--limbo-radius-md":"6px","--limbo-radius-lg":"8px","--limbo-radius-xl":"12px","--limbo-font-family":"system-ui, -apple-system, sans-serif","--limbo-font-size-xs":"12px","--limbo-font-size-sm":"14px","--limbo-font-size-md":"16px","--limbo-font-size-lg":"18px","--limbo-font-size-xl":"20px","--limbo-z-dropdown":"1000","--limbo-z-sticky":"1020","--limbo-z-fixed":"1030","--limbo-z-modal":"1050","--limbo-z-tooltip":"1070","--limbo-transition-fast":"150ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-normal":"300ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-slow":"500ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-spacing-compact":"0.5rem","--limbo-spacing-compact-sm":"0.25rem","--limbo-spacing-compact-lg":"0.75rem","--limbo-font-size-compact-xs":"11px","--limbo-font-size-compact-sm":"12px","--limbo-font-size-compact-md":"14px","--limbo-font-size-compact-lg":"16px","--limbo-radius-compact":"4px","--limbo-radius-compact-sm":"3px","--limbo-radius-compact-lg":"6px","--limbo-button-height-compact":"32px","--limbo-input-height-compact":"36px","--limbo-modal-padding-compact":"12px","--limbo-card-padding-compact":"12px","--limbo-gap-compact":"8px","--limbo-gap-compact-sm":"4px","--limbo-gap-compact-lg":"12px"}},dark:{name:"dark",displayName:"Oscuro",variables:{"--limbo-primary":"#60a5fa","--limbo-primary-hover":"#3b82f6","--limbo-primary-light":"#1e293b","--limbo-primary-dark":"#93c5fd","--limbo-bg-primary":"#0f172a","--limbo-bg-secondary":"#1e293b","--limbo-bg-tertiary":"#334155","--limbo-bg-overlay":"rgba(0, 0, 0, 0.8)","--limbo-bg-card":"#1e293b","--limbo-bg-input":"#334155","--limbo-text-primary":"#f8fafc","--limbo-text-secondary":"#cbd5e1","--limbo-text-tertiary":"#94a3b8","--limbo-text-inverse":"#0f172a","--limbo-text-muted":"#64748b","--limbo-border-light":"#334155","--limbo-border-medium":"#475569","--limbo-border-strong":"#64748b","--limbo-border-focus":"#60a5fa","--limbo-success":"#34d399","--limbo-success-light":"#064e3b","--limbo-error":"#f87171","--limbo-error-light":"#7f1d1d","--limbo-warning":"#fbbf24","--limbo-warning-light":"#78350f","--limbo-info":"#60a5fa","--limbo-info-light":"#1e3a8a","--limbo-shadow-sm":"0 1px 2px 0 rgba(0, 0, 0, 0.2)","--limbo-shadow-md":"0 4px 6px -1px rgba(0, 0, 0, 0.3)","--limbo-shadow-lg":"0 10px 15px -3px rgba(0, 0, 0, 0.4)","--limbo-shadow-xl":"0 20px 25px -5px rgba(0, 0, 0, 0.5)","--limbo-radius-sm":"4px","--limbo-radius-md":"6px","--limbo-radius-lg":"8px","--limbo-radius-xl":"12px","--limbo-font-family":"system-ui, -apple-system, sans-serif","--limbo-font-size-xs":"12px","--limbo-font-size-sm":"14px","--limbo-font-size-md":"16px","--limbo-font-size-lg":"18px","--limbo-font-size-xl":"20px","--limbo-z-dropdown":"1000","--limbo-z-sticky":"1020","--limbo-z-fixed":"1030","--limbo-z-modal":"1050","--limbo-z-tooltip":"1070","--limbo-transition-fast":"150ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-normal":"300ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-transition-slow":"500ms cubic-bezier(0.4, 0, 0.2, 1)","--limbo-spacing-compact":"0.5rem","--limbo-spacing-compact-sm":"0.25rem","--limbo-spacing-compact-lg":"0.75rem","--limbo-font-size-compact-xs":"11px","--limbo-font-size-compact-sm":"12px","--limbo-font-size-compact-md":"14px","--limbo-font-size-compact-lg":"16px","--limbo-radius-compact":"4px","--limbo-radius-compact-sm":"3px","--limbo-radius-compact-lg":"6px","--limbo-button-height-compact":"32px","--limbo-input-height-compact":"36px","--limbo-modal-padding-compact":"12px","--limbo-card-padding-compact":"12px","--limbo-gap-compact":"8px","--limbo-gap-compact-sm":"4px","--limbo-gap-compact-lg":"12px"}},auto:{name:"auto",displayName:"Automático",variables:{}}},inheritance:{portalSelectors:["body","[data-theme]",".theme-light",".theme-dark",".light-theme",".dark-theme"],variablePrefix:"--",fallbackTheme:"light"},transitions:{duration:"300ms",easing:"cubic-bezier(0.4, 0, 0.2, 1)",properties:["background-color","border-color","color","fill","stroke","box-shadow"]}}}initialize(e={}){this.isInitialized?console.warn("ThemeManager already initialized"):(this.config=this._deepMerge(this.config,e),this._loadCustomThemes(),this.config.theme.inherit&&this._inheritPortalTheme(),this._applyInitialTheme(),this._applyInitialCompactMode(),this._setupObservers(),this._injectBaseStyles(),this.isInitialized=!0)}_injectBaseStyles(){if(document.getElementById("limbo-theme-styles"))return;const e=`\n :root {\n /* Variables de transición para cambios de tema */\n color-scheme: light dark;\n }\n \n [data-limbo-theme] {\n transition: ${this.config.transitions.properties.map(e=>`${e} ${this.config.transitions.duration} ${this.config.transitions.easing}`).join(", ")};\n }\n \n /* Clases de utilidad para temas */\n .limbo-theme-light {\n color-scheme: light;\n }\n \n .limbo-theme-dark {\n color-scheme: dark;\n }\n \n .limbo-theme-auto {\n color-scheme: light dark;\n }\n \n /* Estilos para elementos del componente con variables CSS */\n .limbo-component {\n background-color: var(--limbo-bg-primary);\n color: var(--limbo-text-primary);\n border-color: var(--limbo-border-light);\n border-radius: var(--limbo-radius-md);\n font-family: var(--limbo-font-family);\n font-size: var(--limbo-font-size-md);\n transition: var(--limbo-transition-normal);\n }\n \n .limbo-card {\n background-color: var(--limbo-bg-card);\n border: 1px solid var(--limbo-border-light);\n border-radius: var(--limbo-radius-lg);\n box-shadow: var(--limbo-shadow-md);\n color: var(--limbo-text-primary);\n }\n \n .limbo-input {\n background-color: var(--limbo-bg-input);\n border: 1px solid var(--limbo-border-medium);\n border-radius: var(--limbo-radius-md);\n color: var(--limbo-text-primary);\n font-family: var(--limbo-font-family);\n font-size: var(--limbo-font-size-md);\n transition: var(--limbo-transition-fast);\n }\n \n .limbo-input:focus {\n border-color: var(--limbo-border-focus);\n box-shadow: 0 0 0 3px var(--limbo-primary-light);\n outline: none;\n }\n \n .limbo-button {\n background-color: var(--limbo-primary);\n border: 1px solid var(--limbo-primary);\n border-radius: var(--limbo-radius-md);\n color: var(--limbo-text-inverse);\n font-family: var(--limbo-font-family);\n font-size: var(--limbo-font-size-md);\n transition: var(--limbo-transition-fast);\n cursor: pointer;\n }\n \n .limbo-button:hover {\n background-color: var(--limbo-primary-hover);\n border-color: var(--limbo-primary-hover);\n }\n \n .limbo-button.secondary {\n background-color: var(--limbo-bg-secondary);\n border-color: var(--limbo-border-medium);\n color: var(--limbo-text-primary);\n }\n \n .limbo-button.secondary:hover {\n background-color: var(--limbo-bg-tertiary);\n }\n \n /* Estados de feedback con variables */\n .limbo-state-success {\n background-color: var(--limbo-success-light);\n border-color: var(--limbo-success);\n color: var(--limbo-success);\n }\n \n .limbo-state-error {\n background-color: var(--limbo-error-light);\n border-color: var(--limbo-error);\n color: var(--limbo-error);\n }\n \n .limbo-state-warning {\n background-color: var(--limbo-warning-light);\n border-color: var(--limbo-warning);\n color: var(--limbo-warning);\n }\n \n .limbo-state-info {\n background-color: var(--limbo-info-light);\n border-color: var(--limbo-info);\n color: var(--limbo-info);\n }\n \n /* Overlay y modal con variables */\n .limbo-overlay {\n background-color: var(--limbo-bg-overlay);\n backdrop-filter: blur(4px);\n }\n \n .limbo-modal {\n background-color: var(--limbo-bg-card);\n border-radius: var(--limbo-radius-xl);\n box-shadow: var(--limbo-shadow-xl);\n color: var(--limbo-text-primary);\n }\n \n /* Responsive design con variables */\n @media (max-width: 640px) {\n .limbo-component {\n font-size: var(--limbo-font-size-sm);\n }\n }\n \n /* Modo reducido de movimiento */\n @media (prefers-reduced-motion: reduce) {\n [data-limbo-theme] {\n transition: none;\n }\n \n .limbo-component,\n .limbo-input,\n .limbo-button {\n transition: none;\n }\n }\n \n /* Esquemas de color automático */\n @media (prefers-color-scheme: dark) {\n :root:not([data-limbo-theme]) {\n color-scheme: dark;\n }\n }\n \n @media (prefers-color-scheme: light) {\n :root:not([data-limbo-theme]) {\n color-scheme: light;\n }\n }\n \n /* ===================================\n MODO COMPACTO - ESTILOS ESPECÍFICOS \n =================================== */\n \n /* Activación del modo compacto por atributo o clase */\n [data-limbo-compact="true"],\n .limbo-compact-mode {\n /* Componentes base más pequeños */\n --limbo-font-size-md: var(--limbo-font-size-compact-md);\n --limbo-font-size-sm: var(--limbo-font-size-compact-sm);\n --limbo-font-size-lg: var(--limbo-font-size-compact-lg);\n --limbo-spacing: var(--limbo-spacing-compact);\n --limbo-radius-md: var(--limbo-radius-compact);\n --limbo-gap: var(--limbo-gap-compact);\n }\n \n /* Botones compactos */\n [data-limbo-compact="true"] .limbo-button,\n .limbo-compact-mode .limbo-button {\n height: var(--limbo-button-height-compact);\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-sm);\n border-radius: var(--limbo-radius-compact);\n min-width: auto;\n }\n \n /* Inputs compactos */\n [data-limbo-compact="true"] .limbo-input,\n .limbo-compact-mode .limbo-input {\n height: var(--limbo-input-height-compact);\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-md);\n border-radius: var(--limbo-radius-compact);\n }\n \n /* Cards compactas */\n [data-limbo-compact="true"] .limbo-card,\n .limbo-compact-mode .limbo-card {\n padding: var(--limbo-card-padding-compact);\n border-radius: var(--limbo-radius-compact-lg);\n }\n \n /* Modales compactos */\n [data-limbo-compact="true"] .limbo-modal,\n .limbo-compact-mode .limbo-modal {\n padding: var(--limbo-modal-padding-compact);\n border-radius: var(--limbo-radius-compact-lg);\n max-width: 90vw;\n max-height: 90vh;\n }\n \n /* Tabs compactas */\n [data-limbo-compact="true"] .limbo-tabs,\n .limbo-compact-mode .limbo-tabs {\n gap: var(--limbo-gap-compact-sm);\n }\n \n [data-limbo-compact="true"] .limbo-tab,\n .limbo-compact-mode .limbo-tab {\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-sm);\n border-radius: var(--limbo-radius-compact-sm);\n }\n \n /* Gallery compacta */\n [data-limbo-compact="true"] .limbo-gallery,\n .limbo-compact-mode .limbo-gallery {\n gap: var(--limbo-gap-compact-sm);\n }\n \n [data-limbo-compact="true"] .limbo-gallery-item,\n .limbo-compact-mode .limbo-gallery-item {\n border-radius: var(--limbo-radius-compact);\n min-height: 120px; /* Más pequeño para móviles */\n }\n \n /* Notificaciones compactas */\n [data-limbo-compact="true"] .limbo-notification,\n .limbo-compact-mode .limbo-notification {\n padding: var(--limbo-spacing-compact-sm) var(--limbo-spacing-compact);\n font-size: var(--limbo-font-size-compact-sm);\n border-radius: var(--limbo-radius-compact);\n }\n \n /* Progress indicators compactos */\n [data-limbo-compact="true"] .limbo-progress,\n .limbo-compact-mode .limbo-progress {\n height: 3px; /* Más delgado */\n }\n \n [data-limbo-compact="true"] .limbo-progress-circular,\n .limbo-compact-mode .limbo-progress-circular {\n width: 20px;\n height: 20px;\n }\n \n /* Auto-activación en pantallas pequeñas */\n @media (max-width: 768px) {\n :root[data-limbo-compact="auto"],\n .limbo-component[data-limbo-compact="auto"] {\n /* Aplicar automáticamente estilos compactos */\n --limbo-font-size-md: var(--limbo-font-size-compact-md);\n --limbo-font-size-sm: var(--limbo-font-size-compact-sm);\n --limbo-spacing: var(--limbo-spacing-compact);\n --limbo-radius-md: var(--limbo-radius-compact);\n --limbo-gap: var(--limbo-gap-compact);\n }\n \n /* Modal full-screen en móvil cuando es compacto */\n [data-limbo-compact="auto"] .limbo-modal,\n [data-limbo-compact="true"] .limbo-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n max-width: 100vw;\n max-height: 100vh;\n border-radius: 0;\n margin: 0;\n }\n \n /* Tabs en accordion en móvil */\n [data-limbo-compact="auto"] .limbo-tabs,\n [data-limbo-compact="true"] .limbo-tabs {\n flex-direction: column;\n width: 100%;\n }\n \n /* Gallery de 2 columnas en móvil */\n [data-limbo-compact="auto"] .limbo-gallery,\n [data-limbo-compact="true"] .limbo-gallery {\n grid-template-columns: 1fr 1fr;\n gap: var(--limbo-gap-compact);\n }\n }\n \n /* Touch targets más grandes en móviles */\n @media (max-width: 768px) and (pointer: coarse) {\n [data-limbo-compact="auto"] .limbo-button,\n [data-limbo-compact="true"] .limbo-button {\n min-height: 44px; /* Tamaño mínimo de toque recomendado */\n padding: var(--limbo-spacing-compact) var(--limbo-spacing-compact-lg);\n }\n \n [data-limbo-compact="auto"] .limbo-tab,\n [data-limbo-compact="true"] .limbo-tab {\n min-height: 44px;\n }\n }\n `,t=document.createElement("style");t.id="limbo-theme-styles",t.textContent=e,document.head.appendChild(t)}applyTheme(e,t={}){const n=this._getTheme(e);if(!n)return console.warn(`Theme '${e}' not found`),!1;const r=this.currentTheme;return this._applyThemeVariables(n,t.scope),this._updateThemeAttributes(n.name),this.config.theme.storage&&!t.temporary&&this._saveThemePreference(n.name),this.currentTheme=n.name,this._triggerChangeCallbacks(n.name,r),!0}toggleTheme(e="light",t="dark"){const n=this.currentTheme===e?t:e;return this.applyTheme(n)}applyAutoTheme(){const e=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";return this.applyTheme(e)}registerTheme(e,t){const n={name:e,displayName:t.displayName||e,variables:t.variables||{},extends:t.extends||null,...t};if(n.extends){const e=this._getTheme(n.extends);e&&(n.variables={...e.variables,...n.variables})}return this.customThemes.set(e,n),this}removeTheme(e){if(this.config.presets[e])return console.warn(`Cannot remove predefined theme: ${e}`),!1;const t=this.customThemes.delete(e);return t&&this.currentTheme===e&&this.applyTheme(this.config.inheritance.fallbackTheme),t}getAvailableThemes(){const e=Object.keys(this.config.presets),t=Array.from(this.customThemes.keys());return{presets:e,custom:t,all:[...e,...t]}}getCurrentTheme(){return{name:this.currentTheme,theme:this._getTheme(this.currentTheme),isCustom:this.customThemes.has(this.currentTheme),variables:this._getCurrentVariables()}}enableCompactMode(e={}){const t={element:document.documentElement,persist:!0,...e};return t.element.setAttribute("data-limbo-compact","true"),t.element.classList.add("limbo-compact-mode"),this.isCompactMode=!0,t.persist&&this.config.compact.persistPreference&&this._saveCompactPreference(!0),this._triggerCompactChange(!0),this}disableCompactMode(e={}){const t={element:document.documentElement,persist:!0,...e};return t.element.setAttribute("data-limbo-compact","false"),t.element.classList.remove("limbo-compact-mode"),this.isCompactMode=!1,t.persist&&this.config.compact.persistPreference&&this._saveCompactPreference(!1),this._triggerCompactChange(!1),this}toggleCompactMode(e={}){return this.isCompactMode?this.disableCompactMode(e):this.enableCompactMode(e)}applyAutoCompactMode(){const e=this._shouldUseCompactMode();return e&&!this.isCompactMode?this.enableCompactMode({persist:!1}):!e&&this.isCompactMode&&this.disableCompactMode({persist:!1}),this}getCompactState(){return{isEnabled:this.isCompactMode,isAuto:this.config.compact.auto,breakpoint:this.config.compact.breakpoint,currentViewport:window.innerWidth,shouldBeCompact:this._shouldUseCompactMode()}}_shouldUseCompactMode(){if(!this.config.compact.auto)return this.config.compact.enabled;const e=window.innerWidth<=this.config.compact.breakpoint,t=/Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),n="ontouchstart"in window||navigator.maxTouchPoints>0;return!(!this.config.compact.forceOnMobile||!t&&!n)||e}_saveCompactPreference(e){try{localStorage.setItem("limbo-compact-preference",e.toString())}catch(t){console.warn("Could not save compact preference:",t)}}_loadCompactPreference(){try{return"true"===localStorage.getItem("limbo-compact-preference")}catch(e){return console.warn("Could not load compact preference:",e),null}}_triggerCompactChange(e){this.changeCallbacks.forEach(t=>{try{t({type:"compact",isCompact:e,viewport:window.innerWidth,timestamp:Date.now()})}catch(n){console.error("Error in compact mode change callback:",n)}})}_inheritPortalTheme(){const e=this._detectPortalTheme();return e?(this.registerTheme("portal-inherited",e),"portal-inherited"):null}_detectPortalTheme(){const e={name:"portal-detected",displayName:"Tema del Portal",variables:{}};for(const t of this.config.inheritance.portalSelectors){const n=document.querySelector(t);if(n){const t=this._extractCSSVariables(n);Object.keys(t).length>0&&(e.variables={...e.variables,...t});const r=n.getAttribute("data-theme")||n.getAttribute("class")?.match(/theme-(\w+)/)||n.getAttribute("class")?.match(/(\w+)-theme/);r&&(e.detectedName=Array.isArray(r)?r[1]:r)}}return Object.keys(e.variables).length>0?e:null}_extractCSSVariables(e){const t={},n=getComputedStyle(e);["primary","primary-hover","primary-light","primary-dark","bg-primary","bg-secondary","bg-tertiary","bg-card","bg-input","text-primary","text-secondary","text-tertiary","text-inverse","border-light","border-medium","border-strong","border-focus","success","error","warning","info","shadow-sm","shadow-md","shadow-lg","shadow-xl","radius-sm","radius-md","radius-lg","radius-xl"].forEach(e=>{const r=`--limbo-${e}`,l=n.getPropertyValue(r).trim();l&&(t[r]=l)});return["--primary-color","--background-color","--text-color","--border-color","--accent-color","--surface-color"].forEach(e=>{const r=n.getPropertyValue(e).trim();if(r){const n=this._mapGenericToLimbo(e,r);n&&Object.assign(t,n)}}),t}_mapGenericToLimbo(e,t){return{"--primary-color":{"--limbo-primary":t},"--background-color":{"--limbo-bg-primary":t},"--text-color":{"--limbo-text-primary":t},"--border-color":{"--limbo-border-light":t},"--accent-color":{"--limbo-primary":t},"--surface-color":{"--limbo-bg-card":t}}[e]||null}_applyInitialTheme(){let e=this.config.inheritance.fallbackTheme;if(this.config.theme.storage){const t=this._loadThemePreference();t&&this._getTheme(t)&&(e=t)}const t=document.documentElement.getAttribute("data-limbo-theme");t&&this._getTheme(t)&&(e=t);const n=this._inheritPortalTheme();n&&(e=n),this.config.theme.auto&&"auto"===e&&(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),this.applyTheme(e,{temporary:!1})}_applyInitialCompactMode(){let e=!1;if(this.config.compact.persistPreference){const t=this._loadCompactPreference();null!==t&&(e=t)}const t=document.documentElement.getAttribute("data-limbo-compact");"true"===t?e=!0:"false"===t&&(e=!1),("auto"===t||this.config.compact.auto)&&(e=this._shouldUseCompactMode()),e?this.enableCompactMode({persist:!1}):this.disableCompactMode({persist:!1})}_applyThemeVariables(e,t=document.documentElement){const n="string"==typeof t?document.querySelector(t):t;n?(Object.entries(e.variables).forEach(([e,t])=>{n.style.setProperty(e,t),this.appliedStyles.add(`${n.tagName}:${e}`)}),this.themeCache.set(e.name,{theme:e,appliedAt:Date.now(),scope:n})):console.warn("Theme scope element not found")}_updateThemeAttributes(e){document.documentElement.setAttribute("data-limbo-theme",e),document.documentElement.classList.remove("limbo-theme-light","limbo-theme-dark","limbo-theme-auto"),document.documentElement.classList.add(`limbo-theme-${e}`),this._updateMetaThemeColor(e)}_updateMetaThemeColor(e){const t=this._getTheme(e);if(!t)return;const n=t.variables["--limbo-primary"]||"#3b82f6";let r=document.querySelector('meta[name="theme-color"]');r||(r=document.createElement("meta"),r.name="theme-color",document.head.appendChild(r)),r.content=n}_getTheme(e){return this.config.presets[e]?this.config.presets[e]:this.customThemes.has(e)?this.customThemes.get(e):null}_getCurrentVariables(){const e=this._getTheme(this.currentTheme);if(!e)return{};const t=getComputedStyle(document.documentElement),n={};return Object.keys(e.variables).forEach(e=>{n[e]=t.getPropertyValue(e).trim()}),n}_saveThemePreference(e){try{localStorage.setItem("limbo-theme-preference",e)}catch(t){console.warn("Could not save theme preference:",t)}}_loadThemePreference(){try{return localStorage.getItem("limbo-theme-preference")}catch(e){return console.warn("Could not load theme preference:",e),null}}_loadCustomThemes(){try{const e=localStorage.getItem("limbo-custom-themes");if(e){const t=JSON.parse(e);Object.entries(t).forEach(([e,t])=>{this.customThemes.set(e,t)})}}catch(e){console.warn("Could not load custom themes:",e)}}_saveCustomThemes(){try{const e=Object.fromEntries(this.customThemes);localStorage.setItem("limbo-custom-themes",JSON.stringify(e))}catch(e){console.warn("Could not save custom themes:",e)}}_setupObservers(){this.config.theme.detectSystem&&this._setupSystemObserver(),this.config.theme.storage&&this._setupStorageObserver(),this._setupMutationObserver(),this.config.compact.auto&&this._setupViewportObserver()}_setupSystemObserver(){const e=window.matchMedia("(prefers-color-scheme: dark)");e.addEventListener("change",e=>{if("auto"===this.currentTheme||this.config.theme.auto){const t=e.matches?"dark":"light";this.applyTheme(t,{temporary:!0})}}),this.mediaQueryObserver=e}_setupStorageObserver(){const e=e=>{"limbo-theme-preference"===e.key&&e.newValue!==this.currentTheme&&this._getTheme(e.newValue)&&this.applyTheme(e.newValue)};window.addEventListener("storage",e),this.storageListener=e}_setupMutationObserver(){const e=new MutationObserver(e=>{e.forEach(e=>{if("attributes"===e.type&&"data-limbo-theme"===e.attributeName){const t=e.target.getAttribute("data-limbo-theme");t&&t!==this.currentTheme&&this._getTheme(t)&&this.applyTheme(t)}})});e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-limbo-theme"]}),this.mutationObserver=e}_setupViewportObserver(){const e=`(max-width: ${this.config.compact.breakpoint}px)`,t=window.matchMedia(e);t.addEventListener("change",()=>{("auto"===document.documentElement.getAttribute("data-limbo-compact")||this.config.compact.auto)&&this.applyAutoCompactMode()}),this.compactObserver=t,window.addEventListener("orientationchange",()=>{setTimeout(()=>{("auto"===document.documentElement.getAttribute("data-limbo-compact")||this.config.compact.auto)&&this.applyAutoCompactMode()},100)})}onThemeChange(e){return this.changeCallbacks.add(e),()=>this.changeCallbacks.delete(e)}_triggerChangeCallbacks(e,t){this.changeCallbacks.forEach(n=>{try{n({theme:e,previousTheme:t,themeData:this._getTheme(e),variables:this._getCurrentVariables()})}catch(r){console.error("Error in theme change callback:",r)}})}generateThemeFromColors(e,t){const n={name:e,displayName:e,variables:{}};t.primary&&(n.variables["--limbo-primary"]=t.primary,n.variables["--limbo-primary-hover"]=this._darkenColor(t.primary,10),n.variables["--limbo-primary-light"]=this._lightenColor(t.primary,40),n.variables["--limbo-primary-dark"]=this._darkenColor(t.primary,20)),t.background&&(n.variables["--limbo-bg-primary"]=t.background,n.variables["--limbo-bg-secondary"]=this._lightenColor(t.background,5),n.variables["--limbo-bg-tertiary"]=this._lightenColor(t.background,10),n.variables["--limbo-bg-card"]=t.background),t.text&&(n.variables["--limbo-text-primary"]=t.text,n.variables["--limbo-text-secondary"]=this._lightenColor(t.text,20),n.variables["--limbo-text-tertiary"]=this._lightenColor(t.text,40));const r=this._getTheme(this.config.inheritance.fallbackTheme);return r&&(n.variables={...r.variables,...n.variables}),this.registerTheme(e,n),n}_darkenColor(e,t){const n=parseInt(e.replace("#",""),16),r=Math.round(2.55*t),l=(n>>16)-r,a=(n>>8&255)-r,i=(255&n)-r;return"#"+(16777216+65536*(l<255?l<1?0:l:255)+256*(a<255?a<1?0:a:255)+(i<255?i<1?0:i:255)).toString(16).slice(1)}_lightenColor(e,t){const n=parseInt(e.replace("#",""),16),r=Math.round(2.55*t),l=(n>>16)+r,a=(n>>8&255)+r,i=(255&n)+r;return"#"+(16777216+65536*(l<255?l<1?0:l:255)+256*(a<255?a<1?0:a:255)+(i<255?i<1?0:i:255)).toString(16).slice(1)}_deepMerge(e,t){const n={...e};return Object.keys(t).forEach(r=>{t[r]&&"object"==typeof t[r]&&!Array.isArray(t[r])?n[r]=this._deepMerge(e[r]||{},t[r]):n[r]=t[r]}),n}getThemeInfo(){return{current:this.getCurrentTheme(),available:this.getAvailableThemes(),compact:this.getCompactState(),config:this.config,isInitialized:this.isInitialized,cache:{themes:this.themeCache.size,applied:this.appliedStyles.size},observers:{system:!!this.mediaQueryObserver,storage:!!this.storageListener,mutation:!!this.mutationObserver,viewport:!!this.compactObserver}}}debug(){return console.table(this.getThemeInfo()),this.getThemeInfo()}destroy(){this.mediaQueryObserver&&this.mediaQueryObserver.removeEventListener("change",this._setupSystemObserver),this.storageListener&&window.removeEventListener("storage",this.storageListener),this.mutationObserver&&this.mutationObserver.disconnect(),this.compactObserver&&this.compactObserver.removeEventListener("change",this._setupViewportObserver),this.changeCallbacks.clear(),this.themeCache.clear(),this.appliedStyles.clear(),this._saveCustomThemes();const e=document.getElementById("limbo-theme-styles");e&&e.remove(),this.isInitialized=!1}}const Cn=new class{constructor(){this.config=new b,this.instances=new gn,this.autoInputs=new yn,this.events=new vn,this.modals=new wn,this.theme=new kn,this.containerQueryDetector=S,this._setupInternalListeners(),this._initializeContainerQueries()}configure(e){var t;return this.config.setGlobal(e),t={publicKey:e.publicKey,apiKey:e.apiKey,token:e.token,authMode:e.authMode||"manual",tokenProvider:e.tokenProvider,prod:e.prod||!1,mode:e.mode||"embed",callbacks:e.callbacks||null},D={...D,...t},D.authMode||(D.token?D.authMode="manual":D.authMode="session"),this.config}setToken(e){return function(e){D.token=e}(e),this}create(e){const t=this.config.merge(e);return this.instances.create(t,this.events,this.modals)}configureAutoInputs(e){return this.autoInputs.configure(e,this.config,this.events)}setTheme(e){return e&&(this.config.set("theme",e),this.theme.setTheme(e),this.events.emit("theme:changed",{theme:e})),this}getTheme(){return this.theme.getCurrentTheme()}scanAndActivate(e=null){const t=this.autoInputs.config?.dataset||"data-limbo-input-file",n=e||`[${t}]`,r=document.querySelectorAll(n);if(0===r.length)return{found:0,processed:0,skipped:0};let l=0,a=0;return r.forEach(e=>{try{this.autoInputs._processInput(e),l++}catch(t){console.warn(`⚠️ Limbo: Error procesando input ${e.id||e.name}:`,t),a++}}),this.events.emit("limbo:scanCompleted",{found:r.length,processed:l,skipped:a,inputs:Array.from(r)}),{found:r.length,processed:l,skipped:a}}_initializeContainerQueries(){this.containerQueryDetector.observeResize(),setTimeout(()=>{document.querySelectorAll(".limbo-component-container-wrapper").forEach(e=>{this.containerQueryDetector.applyResponsiveClasses(e)})},100)}rescan(e=document){const t=this.autoInputs.config?.dataset||"data-limbo-input-file",n=e.querySelectorAll(`[${t}]`);let r=0;return n.forEach(e=>{if(!this.autoInputs.instances.has(this.autoInputs._getInputId(e)))try{this.autoInputs._processInput(e),r++}catch(t){console.warn("⚠️ Limbo: Error procesando nuevo input:",t)}}),r}init(e){const t=this._mapLegacyOptions(e);return this.create(t)}getInstances(){return this.instances.getAll()}destroy(){this.instances.destroyAll(),this.autoInputs.cleanup(),this.events.cleanup(),this.theme.removeTheme()}_mapLegacyOptions(e){return{container:e.container||"#image-manager",mode:"embed",features:["gallery","upload","cropper"],apiKey:e.apiKey,prod:e.prod||!1,url:void 0===e.url||e.url}}_setupInternalListeners(){this.events.on("autoInputs:modalRequest",({config:e,callback:t})=>{this._handleAutoInputModalRequest({config:e,callback:t})})}_handleAutoInputModalRequest({config:e,callback:t}){const n=e=>{let n={};if(e.crops&&e.crops.length>0){const t=e.asset||e.original;n.original={url:t?.url||t?.urlSigned||e.originalUrl,width:t?.width||e.originalWidth,height:t?.height||e.originalHeight,assetId:t?.id||e.assetId},n.images=e.crops.map(e=>({url:e.url||e.urlSigned,width:e.width,height:e.height,name:e.name||e.filename}))}else e.asset?n.original={url:e.asset.url||e.asset.urlSigned,width:e.asset.width,height:e.asset.height,assetId:e.asset.id}:e.master?.urlSigned||e.master?.url?n.original={url:e.master.urlSigned||e.master.url,width:e.master.width||e.width,height:e.master.height||e.height,assetId:e.assetId}:e.url||e.urlSigned?n.original={url:e.url||e.urlSigned,width:e.width,height:e.height,assetId:e.assetId||e.id}:(console.warn("[Limbo] handleResult: formato de datos no reconocido",e),n=e);t(n),l.close()},r={...e,mode:"modal",autoDestroy:!0,interaction:{allowSelection:!0,allowCropping:!0,...e.interaction},callbacks:{onSelect:e=>{n(e)},onCropsSaved:e=>{n(e)},onCropperComplete:e=>{n(e)},onUpload:t=>{"upload-only"!==e.modeUI||e.features?.includes("cropper")||n(t)},onClose:()=>{}}};if(e.initialImageUrl){const t=this._extractAssetIdFromUrl(e.initialImageUrl);r._externalImage={url:e.initialImageUrl,filename:e.initialImageUrl.split("/").pop()?.split("?")[0]||"image.jpg",width:1920,height:1080,mime_type:"image/jpeg",id:t}}e.cropper&&(r.cropper=e.cropper),this.config.setGlobal({interaction:{allowSelection:!0,allowCropping:!0,...e.interaction}});const l=this.create(r);l.open()}_extractAssetIdFromUrl(e){if(!e)return null;try{const t=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi,n=e.match(t);return n&&n.length>=2?n[1]:n&&1===n.length?n[0]:null}catch(t){return console.warn("Error extracting asset ID from URL:",t),null}}openGallery(e={}){const t=this.create({mode:"modal",modeUI:"gallery-only",features:["gallery"],autoDestroy:!0,modal:{title:e.title||"Seleccionar Imagen",size:e.size||"large"},callbacks:{onSelect:n=>{e.onSelect?.(n),!1!==e.autoClose&&t.close()}},...e});return t.open(),t}openUploader(e={}){const t=!1!==e.redirectToGallery?["upload","gallery"]:["upload"],n=this.create({mode:"modal",modeUI:!1!==e.redirectToGallery?"full":"upload-only",features:t,autoDestroy:!0,modal:{title:e.title||"Subir Imagen",size:e.size||"medium"},callbacks:{onUpload:t=>{e.onUpload?.(t),!1===e.autoClose||e.redirectToGallery||n.close()}},...e});return n.open(),n}openCropper(e,t={}){if(!e)throw new Error("Limbo.openCropper: imageUrl es requerido");const n={url:e,filename:t.filename||"image.jpg",width:t.width||1920,height:t.height||1080,mime_type:t.mimeType||"image/jpeg",id:t.assetId||`external-${Date.now()}`},r=this.create({mode:"modal",modeUI:"crop-only",features:["cropper"],autoDestroy:!0,modal:{title:t.title||"Recortar Imagen",size:"xlarge"},cropper:{mandatoryCrops:t.mandatoryCrops||[],allowCustomCrops:!1!==t.allowCustomCrops,enforceRequiredCrops:!1!==t.enforceRequiredCrops},callbacks:{onCropperComplete:e=>{t.onComplete?.(e),!1!==t.autoClose&&r.close()},onCropperCancelled:e=>{t.onCancelled?.(e),!1!==t.autoClose&&r.close()},onCropperError:e=>{t.onError?.(e)}},_externalImage:n,...t});return r.open(),r}createInlineGallery(e,t={}){return this.create({container:e,mode:"embed",modeUI:"gallery-only",features:["gallery"],callbacks:{onSelect:t.onSelect,onDelete:t.onDelete},...t})}createInlineUploader(e,t={}){return this.create({container:e,mode:"embed",modeUI:"upload-only",features:["upload"],callbacks:{onUpload:t.onUpload},...t})}createStandaloneCropper(e,t,n={}){if(!e)throw new Error("Limbo.createStandaloneCropper: container es requerido");if(!t)throw new Error("Limbo.createStandaloneCropper: imageUrl es requerido");const r={url:t,filename:n.filename||"image.jpg",width:n.width||1920,height:n.height||1080,mime_type:n.mimeType||"image/jpeg",id:n.assetId||`external-${Date.now()}`};return this.create({container:e,mode:"embed",modeUI:"crop-only",features:["cropper"],autoHideOnComplete:!1!==n.autoHideOnComplete,cropper:{mandatoryCrops:n.mandatoryCrops||[],allowCustomCrops:!1!==n.allowCustomCrops,enforceRequiredCrops:!1!==n.enforceRequiredCrops},callbacks:{onCropperComplete:n.onComplete,onCropperCancelled:n.onCancelled,onCropperError:n.onError},_externalImage:r,...n})}createFullSelector(e,t={}){return this.create({container:e,mode:t.mode||"embed",modeUI:"full",features:["gallery","upload","cropper"],callbacks:{onSelect:t.onSelect,onUpload:t.onUpload,onDelete:t.onDelete,onCropsSaved:t.onCropsSaved},...t})}};"undefined"!=typeof window&&(window.Limbo=Cn,window.limboCore=Cn);"undefined"!=typeof window&&document.querySelector("#root")&&(Cn.configure({prod:!1,publicKey:"pk_e464fd744106b7a8d63d453c4bd02582",authMode:"session"}),Cn.create({container:"#root",mode:"embed",modeUI:"full",features:["gallery","upload","cropper"],title:"Limbo Image Manager - Development",url:!0}),Cn.configureAutoInputs({dataset:"data-limbo-input-file",return:"json",features:["gallery","upload","cropper"],modeUI:"full",modalSize:"large",title:"Seleccionar imagen",crops:"free",allowDelete:!1}));export{Cn as default};
|
|
509
510
|
//# sourceMappingURL=limbo.es.map
|