limbo-component 3.1.0 → 3.2.0
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 +78 -73
- package/dist/limbo.es.map +1 -1
- package/dist/limbo.min.js +1 -1
- package/dist/limbo.min.js.map +1 -1
- package/dist/limbo.umd.js +1 -1
- package/dist/limbo.umd.js.map +1 -1
- package/dist/types/App.d.ts.map +1 -1
- package/dist/types/components/FolderSelector.d.ts.map +1 -1
- package/dist/types/components/Gallery.d.ts.map +1 -1
- package/dist/types/components/ImageCard.d.ts +2 -1
- package/dist/types/components/ImageCard.d.ts.map +1 -1
- package/dist/types/components/previews/GenericFilePreview.d.ts.map +1 -1
- package/dist/types/hooks/useFolders.d.ts +8 -0
- package/dist/types/hooks/useFolders.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 l,useRef as r,useId as a,useMemo as i}from"react";import o from"react-dom";import{jsx as s,jsxs as c,Fragment as u}from"react/jsx-runtime";const d={es:{"button.select":"Seleccionar","button.upload":"Subir archivo","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 archivo...","message.processing":"Procesando...","message.no_images":"No hay archivos disponibles","message.upload_success":"Archivo subido correctamente","message.upload_error":"Error al subir el archivo","message.delete_confirm":"¿Estás seguro de que deseas eliminar este archivo? 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 archivos...","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 file","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 file...","message.processing":"Processing...","message.no_images":"No files available","message.upload_success":"File uploaded successfully","message.upload_error":"Error uploading file","message.delete_confirm":"Are you sure you want to delete this file?","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 files...","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 b{constructor(e="es",t={}){this.locale=e,this.messages=this._mergeMessages(t)}_mergeMessages(e){const t={...d};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 b;class m{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,showTypeFilter:!1,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,allowedCategories:null},folders:{include:[],exclude:[],includeNoFolder:!0,showFolderSelector:!0,showFolderFilter:!0,showFolderInfo:!0,allowMoveFolder:!0,allowCreateFolder:!0,defaultFolder:null},downloadFormat:"webp",return:{format:"url",autoAssign:!0,includeMetadata:!1},autoInputs:{dataset:"data-limbo-input-file",buttonText:"Seleccionar archivo",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 l=t.split("."),r=l.pop();l.reduce((e,t)=>(e[t]&&"object"==typeof e[t]||(e[t]={}),e[t]),e)[r]=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,showTypeFilter:!1,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,allowedCategories:null},folders:{include:[],exclude:[],includeNoFolder:!0,showFolderSelector:!1,showFolderFilter:!1,showFolderInfo:!0,allowMoveFolder:!0,allowCreateFolder:!0,defaultFolder:null},return:{format:"url",autoAssign:!0,includeMetadata:!1},autoInputs:{dataset:"data-limbo-input-file",buttonText:"Seleccionar archivo",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 l=e.presets||this.defaults.presets;return"aspect"===n?l.aspects?.find(e=>e.name===t):"size"===n?l.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 b(n,t.messages)}validate(e){const t=[],n=this._deepMerge(this.globalConfig.auth||{},e.auth||{}),l=e.apiKey||this.globalConfig.apiKey;if("jwt"!==n.authMode&&l||n.apiKey||t.push("auth.apiKey es requerido para autenticación JWT"),"legacy"!==n.authMode||l||t.push("apiKey es requerido para modo legacy"),n.apiKey||l||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 l={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",l),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}getFolderConfig(e=null){return(e||this.merge()).folders||this.defaults.folders}hasFolderFilters(e=null){const t=this.getFolderConfig(e);return t.include?.length>0||t.exclude?.length>0}getFolderApiParams(e=null){const t=this.getFolderConfig(e),n={};return t.include?.length>0?n.folders_include=t.include.join(","):t.exclude?.length>0&&(n.folders_exclude=t.exclude.join(",")),this.hasFolderFilters(e)&&void 0!==t.includeNoFolder&&(n.include_no_folder=t.includeNoFolder?"1":"0"),n}showFolderSelectorInUpload(e=null){const t=e||this.merge();return!0===t.folders?.showFolderSelector}showFolderFilterInGallery(e=null){const t=e||this.merge();return!0===t.folders?.showFolderFilter}canCreateFolder(e=null){const t=e||this.merge();return!1!==t.folders?.allowCreateFolder}getDefaultUploadFolder(e=null){const t=e||this.merge();return t.folders?.defaultFolder||null}getAllowedFolderSlugs(e=null){const t=e||this.merge(),n=t.folders?.include;return n&&n.length>0?n:null}getAllowedCategories(e=null){const t=e||this.merge();return t.validation?.allowedCategories||null}isCategoryAllowed(e,t=null){const n=this.getAllowedCategories(t);return null===n||n.includes(e)}isMultiTypeEnabled(e=null){const t=this.getAllowedCategories(e);return null===t||(t.length>1||1===t.length&&"image"!==t[0])}showTypeFilter(e=null){const t=e||this.merge();return!0===t.gallery?.filters?.showTypeFilter}getTypeFilterOptions(e=null){const t=this.getAllowedCategories(e),n=[{value:"",label:"Todos los tipos"},{value:"image",label:"Imágenes"},{value:"video",label:"Videos"},{value:"document",label:"Documentos"},{value:"audio",label:"Audio"}];return null===t?n:n.filter(e=>""===e.value||t.includes(e.value))}}var h,p,f,g,y={exports:{}},v={},w={exports:{}},x={};function k(){return p||(p=1,w.exports=(h||(h=1,function(e){function t(e,t){var n=e.length;e.push(t);e:for(;0<n;){var l=n-1>>>1,a=e[l];if(!(0<r(a,t)))break e;e[l]=t,e[n]=a,n=l}}function n(e){return 0===e.length?null:e[0]}function l(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var l=0,a=e.length,i=a>>>1;l<i;){var o=2*(l+1)-1,s=e[o],c=o+1,u=e[c];if(0>r(s,n))c<a&&0>r(u,s)?(e[l]=u,e[c]=n,l=c):(e[l]=s,e[o]=n,l=o);else{if(!(c<a&&0>r(u,n)))break e;e[l]=u,e[c]=n,l=c}}}return t}function r(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 r=n(c);null!==r;){if(null===r.callback)l(c);else{if(!(r.startTime<=e))break;l(c),r.sortIndex=r.expirationTime,t(s,r)}r=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&&I(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 r=!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),r=!0;break t}d===n(s)&&l(s),w(t)}else l(s);d=n(s)}if(null!==d)r=!0;else{var u=n(c);null!==u&&I(x,u.startTime-t),r=!1}}break e}finally{d=null,b=a,m=!1}r=void 0}}finally{r?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 I(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(l,r,a){var i=e.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?i+a:i,l){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 l={id:u++,callback:r,priorityLevel:l,startTime:a,expirationTime:o=a+o,sortIndex:-1},a>i?(l.sortIndex=a,t(c,l),null===n(s)&&l===n(c)&&(p?(y(S),S=-1):p=!0,I(x,a-i))):(l.sortIndex=o,t(s,l),h||m||(h=!0,C||(C=!0,k()))),l},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}}}}(x)),x)),w.exports}function C(){if(f)return v;f=1;var t=k(),n=e,l=o;function r(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 i(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(i(e)!==e)throw Error(r(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"),p=/* @__PURE__ */Symbol.for("react.portal"),g=/* @__PURE__ */Symbol.for("react.fragment"),y=/* @__PURE__ */Symbol.for("react.strict_mode"),w=/* @__PURE__ */Symbol.for("react.profiler"),x=/* @__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"),I=Symbol.iterator;function A(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=I&&e[I]||e["@@iterator"])?e:null}var M=/* @__PURE__ */Symbol.for("react.client.reference");function P(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 y:return"StrictMode";case N:return"Suspense";case E:return"SuspenseList";case z:return"Activity"}if("object"==typeof e)switch(e.$$typeof){case p:return"Portal";case C:return e.displayName||"Context";case x: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:P(e.type)||"Memo";case _:t=e._payload,e=e._init;try{return P(e(t))}catch(n){}}return null}var L=Array.isArray,D=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O=l.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R={pending:!1,data:null,method:null,action:null},F=[],j=-1;function U(e){return{current:e}}function B(e){0>j||(e.current=F[j],F[j]=null,j--)}function q(e,t){j++,F[j]=e.current,e.current=t}var W,V,H=U(null),K=U(null),G=U(null),Q=U(null);function X(e,t){switch(q(G,t),q(K,e),q(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}}B(H),q(H,e)}function Y(){B(H),B(K),B(G)}function J(e){null!==e.memoizedState&&q(Q,e);var t=H.current,n=wd(t,e.type);t!==n&&(q(K,e),q(H,n))}function Z(e){K.current===e&&(B(H),B(K)),Q.current===e&&(B(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 l={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(r){var l=r}Reflect.construct(e,[],n)}else{try{n.call()}catch(a){l=a}e.call(n.prototype)}}else{try{throw Error()}catch(i){l=i}(n=e())&&"function"==typeof n.catch&&n.catch(function(){})}}catch(o){if(o&&l&&"string"==typeof o.stack)return[o.stack,l.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var r=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");r&&r.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=l.DetermineComponentFrameRoot(),i=a[0],o=a[1];if(i&&o){var s=i.split("\n"),c=o.split("\n");for(r=l=0;l<s.length&&!s[l].includes("DetermineComponentFrameRoot");)l++;for(;r<c.length&&!c[r].includes("DetermineComponentFrameRoot");)r++;if(l===s.length||r===c.length)for(l=s.length-1,r=c.length-1;1<=l&&0<=r&&s[l]!==c[r];)r--;for(;1<=l&&0<=r;l--,r--)if(s[l]!==c[r]){if(1!==l||1!==r)do{if(l--,0>--r||s[l]!==c[r]){var u="\n"+s[l].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}}while(1<=l&&0<=r);break}}}finally{te=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?ee(n):""}function le(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 re(e){try{var t="",n=null;do{t+=le(e,n),n=e,e=e.return}while(e);return t}catch(l){return"\nError generating stack: "+l.message+"\n"+l.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 l=e.pendingLanes;if(0===l)return 0;var r=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var o=134217727&l;return 0!==o?0!==(l=o&~a)?r=_e(l):0!==(i&=o)?r=_e(i):n||0!==(n=o&~e)&&(r=_e(n)):0!==(o=l&~a)?r=_e(o):0!==i?r=_e(i):n||0!==(n=l&~e)&&(r=_e(n)),0===r?0:0!==t&&t!==r&&0===(t&a)&&((a=r&-r)>=(n=t&-t)||32===a&&4194048&n)?t:r}function Te(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Ie(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 Ae(){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 Pe(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 l=31-ke(t);e.entangledLanes|=t,e.entanglements[l]=1073741824|e.entanglements[l]|261930&n}function De(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var l=31-ke(n),r=1<<l;r&t|e[l]&t&&(e[l]|=t),n&=~r}}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 Fe(e){return 2<(e&=-e)?8<e?134217727&e?32:268435456:8:2}function je(){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 Be=Math.random().toString(36).slice(2),qe="__reactFiber$"+Be,We="__reactProps$"+Be,Ve="__reactContainer$"+Be,He="__reactEvents$"+Be,Ke="__reactListeners$"+Be,Ge="__reactHandles$"+Be,Qe="__reactResources$"+Be,Xe="__reactMarker$"+Be;function Ye(e){delete e[qe],delete e[We],delete e[He],delete e[Ke],delete e[Ge]}function Je(e){var t=e[qe];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ve]||n[qe]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Rd(e);null!==e;){if(n=e[qe])return n;e=Rd(e)}return t}n=(e=n).parentNode}return null}function Ze(e){if(e=e[qe]||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(r(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[Xe]=!0}var lt=/* @__PURE__ */new Set,rt={};function at(e,t){it(e,t),it(e+"Capture",t)}function it(e,t){for(rt[e]=t,e=0;e<t.length;e++)lt.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(r=t,ae.call(ct,r)||!ae.call(st,r)&&(ot.test(r)?ct[r]=!0:(st[r]=!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 l=t.toLowerCase().slice(0,5);if("data-"!==l&&"aria-"!==l)return void e.removeAttribute(t)}e.setAttribute(t,""+n)}var r}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,l){if(null===l)e.removeAttribute(n);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":return void e.removeAttribute(n)}e.setAttributeNS(t,n,""+l)}}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 l=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==l&&"function"==typeof l.get&&"function"==typeof l.set){var r=l.get,a=l.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(e){n=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:l.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(),l="";return e&&(l=ht(e)?e.checked?"true":"false":e.value),(e=l)!==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,l,r,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!=l&&e.removeAttribute("value"),null==r&&null!=a&&(e.defaultChecked=!!a),null!=r&&(e.checked=r&&"function"!=typeof r&&"symbol"!=typeof r),null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o?e.name=""+mt(o):e.removeAttribute("name")}function xt(e,t,n,l,r,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}l="function"!=typeof(l=null!=l?l:r)&&"symbol"!=typeof l&&!!l,e.checked=o?e.checked:!!l,e.defaultChecked=!!l,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,l){if(e=e.options,t){t={};for(var r=0;r<n.length;r++)t["$"+n[r]]=!0;for(n=0;n<e.length;n++)r=t.hasOwnProperty("$"+e[n].value),e[n].selected!==r&&(e[n].selected=r),r&&l&&(e[n].defaultSelected=!0)}else{for(n=""+mt(n),t=null,r=0;r<e.length;r++){if(e[r].value===n)return e[r].selected=!0,void(l&&(e[r].defaultSelected=!0));null!==t||e[r].disabled||(t=e[r])}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,l){if(null==t){if(null!=l){if(null!=n)throw Error(r(92));if(L(l)){if(1<l.length)throw Error(r(93));l=l[0]}n=l}null==n&&(n=""),t=n}n=mt(t),e.defaultValue=n,(l=e.textContent)===n&&""!==l&&null!==l&&(e.value=l),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 l=0===t.indexOf("--");null==n||"boolean"==typeof n||""===n?l?e.setProperty(t,""):"float"===t?e.cssFloat="":e[t]="":l?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(r(62));if(e=e.style,null!=n){for(var l in n)!n.hasOwnProperty(l)||null!=t&&t.hasOwnProperty(l)||(0===l.indexOf("--")?e.setProperty(l,""):"float"===l?e.cssFloat="":e[l]="");for(var a in t)l=t[a],t.hasOwnProperty(a)&&n[a]!==l&&_t(e,a,l)}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 It=/* @__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"]]),At=/^[\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 At.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Pt(){}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 Ft(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 l=n[t];if(l!==e&&l.form===e.form){var a=l[We]||null;if(!a)throw Error(r(90));wt(l,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)(l=n[t]).form===e.form&&ft(l)}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 jt=!1;function Ut(e,t,n){if(jt)return e(t,n);jt=!0;try{return e(t)}finally{if(jt=!1,(null!==Ot||null!==Rt)&&(tu(),Ot&&(t=Ot,e=Rt,Rt=Ot=null,Ft(t),e)))for(t=0;t<e.length;t++)Ft(e[t])}}function Bt(e,t){var n=e.stateNode;if(null===n)return null;var l=n[We]||null;if(null===l)return null;n=l[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":(l=!l.disabled)||(l=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!l;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(r(231,t,typeof n));return n}var qt=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),Wt=!1;if(qt)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,l=n.length,r="value"in Ht?Ht.value:Ht.textContent,a=r.length;for(e=0;e<l&&n[e]===r[e];e++);var i=l-e;for(t=1;t<=i&&n[l-t]===r[a-t];t++);return Gt=r.slice(e,1<t?1-t:void 0)}function Xt(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 Yt(){return!0}function Jt(){return!1}function Zt(e){function t(t,n,l,r,a){for(var i in this._reactName=t,this._targetInst=l,this.type=n,this.nativeEvent=r,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(r):r[i]);return this.isDefaultPrevented=(null!=r.defaultPrevented?r.defaultPrevented:!1===r.returnValue)?Yt: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=Yt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Yt)},persist:function(){},isPersistent:Yt}),t}var en,tn,nn,ln={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},rn=Zt(ln),an=b({},ln,{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({},ln,{animationName:0,elapsedTime:0,pseudoElement:0})),mn=Zt(b({},ln,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),hn=Zt(b({},ln,{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=Xt(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?Xt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?Xt(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({},ln,{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({},ln,{newState:0,oldState:0})),En=[9,13,27,32],$n=qt&&"CompositionEvent"in window,_n=null;qt&&"documentMode"in document&&(_n=document.documentMode);var zn=qt&&"TextEvent"in window&&!_n,Tn=qt&&(!$n||_n&&8<_n&&11>=_n),In=String.fromCharCode(32),An=!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 Pn(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,l){Ot?Rt?Rt.push(l):Rt=[l]:Ot=l,0<(t=ad(t,"onChange")).length&&(n=new rn("onChange","change",null,n,l),e.push({event:n,listeners:t}))}var Fn=null,jn=null;function Un(e){Yu(e,0)}function Bn(e){if(ft(et(e)))return e}function qn(e,t){if("change"===e)return t}var Wn=!1;if(qt){var Vn;if(qt){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(){Fn&&(Fn.detachEvent("onpropertychange",Qn),jn=Fn=null)}function Qn(e){if("value"===e.propertyName&&Bn(jn)){var t=[];Rn(t,jn,e,Dt(e)),Ut(Un,t)}}function Xn(e,t,n){"focusin"===e?(Gn(),jn=n,(Fn=t).attachEvent("onpropertychange",Qn)):"focusout"===e&&Gn()}function Yn(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Bn(jn)}function Jn(e,t){if("click"===e)return Bn(t)}function Zn(e,t){if("input"===e||"change"===e)return Bn(t)}var el="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function tl(e,t){if(el(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),l=Object.keys(t);if(n.length!==l.length)return!1;for(l=0;l<n.length;l++){var r=n[l];if(!ae.call(t,r)||!el(e[r],t[r]))return!1}return!0}function nl(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ll(e,t){var n,l=nl(e);for(e=0;l;){if(3===l.nodeType){if(n=e+l.textContent.length,e<=t&&n>=t)return{node:l,offset:t-e};e=n}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=nl(l)}}function rl(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?rl(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function al(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(l){n=!1}if(!n)break;t=gt((e=t.contentWindow).document)}return t}function il(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 ol=qt&&"documentMode"in document&&11>=document.documentMode,sl=null,cl=null,ul=null,dl=!1;function bl(e,t,n){var l=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;dl||null==sl||sl!==gt(l)||("selectionStart"in(l=sl)&&il(l)?l={start:l.selectionStart,end:l.selectionEnd}:l={anchorNode:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset},ul&&tl(ul,l)||(ul=l,0<(l=ad(cl,"onSelect")).length&&(t=new rn("onSelect","select",null,t,n),e.push({event:t,listeners:l}),t.target=sl)))}function ml(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var hl={animationend:ml("Animation","AnimationEnd"),animationiteration:ml("Animation","AnimationIteration"),animationstart:ml("Animation","AnimationStart"),transitionrun:ml("Transition","TransitionRun"),transitionstart:ml("Transition","TransitionStart"),transitioncancel:ml("Transition","TransitionCancel"),transitionend:ml("Transition","TransitionEnd")},pl={},fl={};function gl(e){if(pl[e])return pl[e];if(!hl[e])return e;var t,n=hl[e];for(t in n)if(n.hasOwnProperty(t)&&t in fl)return pl[e]=n[t];return e}qt&&(fl=document.createElement("div").style,"AnimationEvent"in window||(delete hl.animationend.animation,delete hl.animationiteration.animation,delete hl.animationstart.animation),"TransitionEvent"in window||delete hl.transitionend.transition);var yl=gl("animationend"),vl=gl("animationiteration"),wl=gl("animationstart"),xl=gl("transitionrun"),kl=gl("transitionstart"),Cl=gl("transitioncancel"),Sl=gl("transitionend"),Nl=/* @__PURE__ */new Map,El="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 $l(e,t){Nl.set(e,t),at(t,[e])}El.push("scrollEnd");var _l="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)},zl=[],Tl=0,Il=0;function Al(){for(var e=Tl,t=Il=Tl=0;t<e;){var n=zl[t];zl[t++]=null;var l=zl[t];zl[t++]=null;var r=zl[t];zl[t++]=null;var a=zl[t];if(zl[t++]=null,null!==l&&null!==r){var i=l.pending;null===i?r.next=r:(r.next=i.next,i.next=r),l.pending=r}0!==a&&Dl(n,r,a)}}function Ml(e,t,n,l){zl[Tl++]=e,zl[Tl++]=t,zl[Tl++]=n,zl[Tl++]=l,Il|=l,e.lanes|=l,null!==(e=e.alternate)&&(e.lanes|=l)}function Pl(e,t,n,l){return Ml(e,t,n,l),Ol(e)}function Ll(e,t){return Ml(e,null,null,t),Ol(e)}function Dl(e,t,n){e.lanes|=n;var l=e.alternate;null!==l&&(l.lanes|=n);for(var r=!1,a=e.return;null!==a;)a.childLanes|=n,null!==(l=a.alternate)&&(l.childLanes|=n),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(r=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,r&&null!==t&&(r=31-ke(n),null===(l=(e=a.hiddenUpdates)[r])?e[r]=[t]:l.push(t),t.lane=536870912|n),a):null}function Ol(e){if(50<Hc)throw Hc=0,Kc=null,Error(r(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var Rl={};function Fl(e,t,n,l){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=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function jl(e,t,n,l){return new Fl(e,t,n,l)}function Ul(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Bl(e,t){var n=e.alternate;return null===n?((n=jl(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 ql(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 Wl(e,t,n,l,a,i){var o=0;if(l=e,"function"==typeof e)Ul(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=jl(31,n,t,a)).elementType=z,e.lanes=i,e;case g:return Vl(n.children,a,i,t);case y:o=8,a|=24;break;case w:return(e=jl(12,n,t,2|a)).elementType=w,e.lanes=i,e;case N:return(e=jl(13,n,t,a)).elementType=N,e.lanes=i,e;case E:return(e=jl(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 x:o=9;break e;case S:o=11;break e;case $:o=14;break e;case _:o=16,l=null;break e}o=29,n=Error(r(130,null===e?"null":typeof e,"")),l=null}return(t=jl(o,n,t,a)).elementType=e,t.type=l,t.lanes=i,t}function Vl(e,t,n,l){return(e=jl(7,e,l,t)).lanes=n,e}function Hl(e,t,n){return(e=jl(6,e,null,t)).lanes=n,e}function Kl(e){var t=jl(18,null,null,0);return t.stateNode=e,t}function Gl(e,t,n){return(t=jl(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Ql=/* @__PURE__ */new WeakMap;function Xl(e,t){if("object"==typeof e&&null!==e){var n=Ql.get(e);return void 0!==n?n:(t={value:e,source:t,stack:re(t)},Ql.set(e,t),t)}return{value:e,source:t,stack:re(t)}}var Yl=[],Jl=0,Zl=null,er=0,tr=[],nr=0,lr=null,rr=1,ar="";function ir(e,t){Yl[Jl++]=er,Yl[Jl++]=Zl,Zl=e,er=t}function or(e,t,n){tr[nr++]=rr,tr[nr++]=ar,tr[nr++]=lr,lr=e;var l=rr;e=ar;var r=32-ke(l)-1;l&=~(1<<r),n+=1;var a=32-ke(t)+r;if(30<a){var i=r-r%5;a=(l&(1<<i)-1).toString(32),l>>=i,r-=i,rr=1<<32-ke(t)+r|n<<r|l,ar=a+e}else rr=1<<a|n<<r|l,ar=e}function sr(e){null!==e.return&&(ir(e,1),or(e,1,0))}function cr(e){for(;e===Zl;)Zl=Yl[--Jl],Yl[Jl]=null,er=Yl[--Jl],Yl[Jl]=null;for(;e===lr;)lr=tr[--nr],tr[nr]=null,ar=tr[--nr],tr[nr]=null,rr=tr[--nr],tr[nr]=null}function ur(e,t){tr[nr++]=rr,tr[nr++]=ar,tr[nr++]=lr,rr=t.id,ar=t.overflow,lr=e}var dr=null,br=null,mr=!1,hr=null,pr=!1,fr=Error(r(519));function gr(e){throw Cr(Xl(Error(r(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML","")),e)),fr}function yr(e){var t=e.stateNode,n=e.type,l=e.memoizedProps;switch(t[qe]=e,t[We]=l,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,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":Ju("invalid",t);break;case"textarea":Ju("invalid",t),Nt(t,l.value,l.defaultValue,l.children)}"string"!=typeof(n=l.children)&&"number"!=typeof n&&"bigint"!=typeof n||t.textContent===""+n||!0===l.suppressHydrationWarning||dd(t.textContent,n)?(null!=l.popover&&(Ju("beforetoggle",t),Ju("toggle",t)),null!=l.onScroll&&Ju("scroll",t),null!=l.onScrollEnd&&Ju("scrollend",t),null!=l.onClick&&(t.onclick=Pt),t=!0):t=!1,t||gr(e,!0)}function vr(e){for(dr=e.return;dr;)switch(dr.tag){case 5:case 31:case 13:return void(pr=!1);case 27:case 3:return void(pr=!0);default:dr=dr.return}}function wr(e){if(e!==dr)return!1;if(!mr)return vr(e),mr=!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&&br&&gr(e),vr(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(r(317));br=Od(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(r(317));br=Od(e)}else 27===n?(n=br,_d(e.type)?(e=Dd,Dd=null,br=e):br=n):br=dr?Ld(e.stateNode.nextSibling):null;return!0}function xr(){br=dr=null,mr=!1}function kr(){var e=hr;return null!==e&&(null===Ac?Ac=e:Ac.push.apply(Ac,e),hr=null),e}function Cr(e){null===hr?hr=[e]:hr.push(e)}var Sr=U(null),Nr=null,Er=null;function $r(e,t,n){q(Sr,t._currentValue),t._currentValue=n}function _r(e){e._currentValue=Sr.current,B(Sr)}function zr(e,t,n){for(;null!==e;){var l=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==l&&(l.childLanes|=t)):null!==l&&(l.childLanes&t)!==t&&(l.childLanes|=t),e===n)break;e=e.return}}function Tr(e,t,n,l){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),zr(i.return,n,e),l||(o=null);break e}i=s.next}}else if(18===a.tag){if(null===(o=a.return))throw Error(r(341));o.lanes|=n,null!==(i=o.alternate)&&(i.lanes|=n),zr(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 Ir(e,t,n,l){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(r(387));if(null!==(o=o.memoizedProps)){var s=a.type;el(a.pendingProps.value,o.value)||(null!==e?e.push(s):e=[s])}}else if(a===Q.current){if(null===(o=a.alternate))throw Error(r(387));o.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(null!==e?e.push(bb):e=[bb])}a=a.return}null!==e&&Tr(t,e,n,l),t.flags|=262144}function Ar(e){for(e=e.firstContext;null!==e;){if(!el(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Mr(e){Nr=e,Er=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function Pr(e){return Dr(Nr,e)}function Lr(e,t){return null===Nr&&Mr(e),Dr(e,t)}function Dr(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===Er){if(null===e)throw Error(r(308));Er=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Er=Er.next=t;return n}var Or="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()})}},Rr=t.unstable_scheduleCallback,Fr=t.unstable_NormalPriority,jr={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ur(){return{controller:new Or,data:/* @__PURE__ */new Map,refCount:0}}function Br(e){e.refCount--,0===e.refCount&&Rr(Fr,function(){e.controller.abort()})}var qr=null,Wr=0,Vr=0,Hr=null;function Kr(){if(0===--Wr&&null!==qr){null!==Hr&&(Hr.status="fulfilled");var e=qr;qr=null,Vr=0,Hr=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var Gr=D.S;D.S=function(e,t){Lc=ue(),"object"==typeof t&&null!==t&&"function"==typeof t.then&&function(e,t){if(null===qr){var n=qr=[];Wr=0,Vr=Wu(),Hr={status:"pending",value:void 0,then:function(e){n.push(e)}}}Wr++,t.then(Kr,Kr)}(0,t),null!==Gr&&Gr(e,t)};var Qr=U(null);function Xr(){var e=Qr.current;return null!==e?e:fc.pooledCache}function Yr(e,t){q(Qr,null===t?Qr.current:t.pool)}function Jr(){var e=Xr();return null===e?null:{parent:jr._currentValue,pool:e}}var Zr=Error(r(460)),ea=Error(r(474)),ta=Error(r(542)),na={then:function(){}};function la(e){return"fulfilled"===(e=e.status)||"rejected"===e}function ra(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(Pt,Pt),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(Pt,Pt);else{if(null!==(e=fc)&&100<e.shellSuspendCounter)throw Error(r(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,Zr}}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,Zr;throw t}}var ia=null;function oa(){if(null===ia)throw Error(r(459));var e=ia;return ia=null,e}function sa(e){if(e===Zr||e===ta)throw Error(r(483))}var ca=null,ua=0;function da(e){var t=ua;return ua+=1,null===ca&&(ca=[]),ra(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(r(525));throw e=Object.prototype.toString.call(t),Error(r(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function ha(e){function t(t,n){if(e){var l=t.deletions;null===l?(t.deletions=[n],t.flags|=16):l.push(n)}}function n(n,l){if(!e)return null;for(;null!==l;)t(n,l),l=l.sibling;return null}function l(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=Bl(e,t)).index=0,e.sibling=null,e}function i(t,n,l){return t.index=l,e?null!==(l=t.alternate)?(l=l.index)<n?(t.flags|=67108866,n):l:(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,l){return null===t||6!==t.tag?((t=Hl(n,e.mode,l)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,l){var r=n.type;return r===g?d(e,t,n.props.children,l,n.key):null!==t&&(t.elementType===r||"object"==typeof r&&null!==r&&r.$$typeof===_&&aa(r)===t.type)?(ba(t=a(t,n.props),n),t.return=e,t):(ba(t=Wl(n.type,n.key,n.props,null,e.mode,l),n),t.return=e,t)}function u(e,t,n,l){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Gl(n,e.mode,l)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,l,r){return null===t||7!==t.tag?((t=Vl(n,e.mode,l,r)).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=Hl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case h:return ba(n=Wl(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case p:return(t=Gl(t,e.mode,n)).return=e,t;case _:return b(e,t=aa(t),n)}if(L(t)||A(t))return(t=Vl(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,Lr(e,t),n);ma(e,t)}return null}function m(e,t,n,l){var r=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return null!==r?null:s(e,t,""+n,l);if("object"==typeof n&&null!==n){switch(n.$$typeof){case h:return n.key===r?c(e,t,n,l):null;case p:return n.key===r?u(e,t,n,l):null;case _:return m(e,t,n=aa(n),l)}if(L(n)||A(n))return null!==r?null:d(e,t,n,l,null);if("function"==typeof n.then)return m(e,t,da(n),l);if(n.$$typeof===C)return m(e,t,Lr(e,n),l);ma(e,n)}return null}function f(e,t,n,l,r){if("string"==typeof l&&""!==l||"number"==typeof l||"bigint"==typeof l)return s(t,e=e.get(n)||null,""+l,r);if("object"==typeof l&&null!==l){switch(l.$$typeof){case h:return c(t,e=e.get(null===l.key?n:l.key)||null,l,r);case p:return u(t,e=e.get(null===l.key?n:l.key)||null,l,r);case _:return f(e,t,n,l=aa(l),r)}if(L(l)||A(l))return d(t,e=e.get(n)||null,l,r,null);if("function"==typeof l.then)return f(e,t,n,da(l),r);if(l.$$typeof===C)return f(e,t,n,Lr(t,l),r);ma(t,l)}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=Vl(u.props.children,s.mode,d,u.key)).return=s,s=d):(ba(d=Wl(u.type,u.key,u.props,null,s.mode,d),u),d.return=s,s=d)}return o(s);case p: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=Gl(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(r,a,o,s){for(var c=null,u=null,d=a,h=a=0,p=null;null!==d&&h<o.length;h++){d.index>h?(p=d,d=null):p=d.sibling;var g=m(r,d,o[h],s);if(null===g){null===d&&(d=p);break}e&&d&&null===g.alternate&&t(r,d),a=i(g,a,h),null===u?c=g:u.sibling=g,u=g,d=p}if(h===o.length)return n(r,d),mr&&ir(r,h),c;if(null===d){for(;h<o.length;h++)null!==(d=b(r,o[h],s))&&(a=i(d,a,h),null===u?c=d:u.sibling=d,u=d);return mr&&ir(r,h),c}for(d=l(d);h<o.length;h++)null!==(p=f(d,r,h,o[h],s))&&(e&&null!==p.alternate&&d.delete(null===p.key?h:p.key),a=i(p,a,h),null===u?c=p:u.sibling=p,u=p);return e&&d.forEach(function(e){return t(r,e)}),mr&&ir(r,h),c}(s,c,u,d);if(A(u)){if("function"!=typeof(v=A(u)))throw Error(r(150));return function(a,o,s,c){if(null==s)throw Error(r(151));for(var u=null,d=null,h=o,p=o=0,g=null,y=s.next();null!==h&&!y.done;p++,y=s.next()){h.index>p?(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,p),null===d?u=v:d.sibling=v,d=v,h=g}if(y.done)return n(a,h),mr&&ir(a,p),u;if(null===h){for(;!y.done;p++,y=s.next())null!==(y=b(a,y.value,c))&&(o=i(y,o,p),null===d?u=y:d.sibling=y,d=y);return mr&&ir(a,p),u}for(h=l(h);!y.done;p++,y=s.next())null!==(y=f(h,a,p,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?p:y.key),o=i(y,o,p),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach(function(e){return t(a,e)}),mr&&ir(a,p),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,Lr(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=Hl(u,s.mode,d)).return=s,s=d),o(s)):n(s,c)}return function(e,t,n,l){try{ua=0;var r=y(e,t,n,l);return ca=null,r}catch(i){if(i===Zr||i===ta)throw i;var a=jl(29,i,null,e.mode);return a.lanes=l,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 l=e.updateQueue;if(null===l)return null;if(l=l.shared,2&pc){var r=l.pending;return null===r?t.next=t:(t.next=r.next,r.next=t),l.pending=t,t=Ol(e),Dl(e,null,n),t}return Ml(e,l,t,n),Ol(e)}function ka(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194048&n)){var l=t.lanes;n|=l&=e.pendingLanes,t.lanes=n,De(e,n)}}function Ca(e,t){var n=e.updateQueue,l=e.alternate;if(null!==l&&n===(l=l.updateQueue)){var r=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?r=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?r=a=t:a=a.next=t}else r=a=t;return n={baseState:l.baseState,firstBaseUpdate:r,lastBaseUpdate:a,shared:l.shared,callbacks:l.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!==Hr)throw Hr}}function Ea(e,t,n,l){Sa=!1;var r=e.updateQueue;ga=!1;var a=r.firstBaseUpdate,i=r.lastBaseUpdate,o=r.shared.pending;if(null!==o){r.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=r.baseState;for(i=0,u=c=s=null,o=a;;){var m=-536870913&o.lane,h=m!==o.lane;if(h?(yc&m)===m:(l&m)===m){0!==m&&m===Vr&&(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=r.callbacks)?r.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=r.shared.pending))break;o=(h=o).next,h.next=null,r.lastBaseUpdate=h,r.shared.pending=null}}null===u&&(s=d),r.baseState=s,r.firstBaseUpdate=c,r.lastBaseUpdate=u,null===a&&(r.shared.lanes=0),Ec|=i,e.lanes=i,e.memoizedState=d}}function $a(e,t){if("function"!=typeof e)throw Error(r(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 Ia(e,t){q(Ta,e=Sc),q(za,t),Sc=e|t.baseLanes}function Aa(){q(Ta,Sc),q(za,za.current)}function Ma(){Sc=Ta.current,B(za),B(Ta)}var Pa=U(null),La=null;function Da(e){var t=e.alternate;q(Ua,1&Ua.current),q(Pa,e),null===La&&(null===t||null!==za.current||null!==t.memoizedState)&&(La=e)}function Oa(e){q(Ua,Ua.current),q(Pa,e),null===La&&(La=e)}function Ra(e){22===e.tag?(q(Ua,Ua.current),q(Pa,e),null===La&&(La=e)):Fa()}function Fa(){q(Ua,Ua.current),q(Pa,Pa.current)}function ja(e){B(Pa),La===e&&(La=null),B(Ua)}var Ua=U(0);function Ba(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||Md(n)||Pd(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 qa=0,Wa=null,Va=null,Ha=null,Ka=!1,Ga=!1,Qa=!1,Xa=0,Ya=0,Ja=null,Za=0;function ei(){throw Error(r(321))}function ti(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!el(e[n],t[n]))return!1;return!0}function ni(e,t,n,l,r,a){return qa=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(l,r),Qa=!1,Ga&&(a=ri(t,n,l,r)),li(e),a}function li(e){D.H=go;var t=null!==Va&&null!==Va.next;if(qa=0,Ha=Va=Wa=null,Ka=!1,Ya=0,Ja=null,t)throw Error(r(300));null===e||Lo||null!==(e=e.dependencies)&&Ar(e)&&(Lo=!0)}function ri(e,t,n,l){Wa=e;var a=0;do{if(Ga&&(Ja=null),Ya=0,Ga=!1,25<=a)throw Error(r(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,l)}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!==Xa;return Xa=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}qa=0,Ha=Va=Wa=null,Ga=!1,Ya=Xa=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(r(467));throw Error(r(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=Ya;return Ya+=1,null===Ja&&(Ja=[]),e=ra(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 Pr(e)}throw Error(r(438,String(e)))}function mi(e){var t=null,n=Wa.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var l=Wa.alternate;null!==l&&(null!==(l=l.updateQueue)&&(null!=(l=l.memoCache)&&(t={data:l.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),l=0;l<e;l++)n[l]=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 l=e.queue;if(null===l)throw Error(r(311));l.lastRenderedReducer=n;var a=e.baseQueue,i=l.pending;if(null!==i){if(null!==a){var o=a.next;a.next=i.next,i.next=o}t.baseQueue=a=i,l.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:(qa&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===Vr&&(d=!0);else{if((qa&m)===m){u=u.next,m===Vr&&(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,!el(i,e.memoizedState)&&(Lo=!0,d&&null!==(n=Hr)))throw n;e.memoizedState=i,e.baseState=o,e.baseQueue=c,l.lastRenderedState=i}return null===a&&(l.lanes=0),[e.memoizedState,l.dispatch]}function gi(e){var t=ui(),n=t.queue;if(null===n)throw Error(r(311));n.lastRenderedReducer=e;var l=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);el(i,t.memoizedState)||(Lo=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,l]}function yi(e,t,n){var l=Wa,a=ui(),i=mr;if(i){if(void 0===n)throw Error(r(407));n=n()}else n=t();var o=!el((Va||a).memoizedState,n);if(o&&(a.memoizedState=n,Lo=!0),a=a.queue,qi(xi.bind(null,l,a,e),[e]),a.getSnapshot!==t||o||null!==Ha&&1&Ha.memoizedState.tag){if(l.flags|=2048,Ri(9,{destroy:void 0},wi.bind(null,l,a,n,t),null),null===fc)throw Error(r(349));i||127&qa||vi(l,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,l){t.value=n,t.getSnapshot=l,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!el(e,n)}catch(l){return!0}}function Ci(e){var t=Ll(e,2);null!==t&&Xc(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,l){return e.baseState=n,fi(e,Va,"function"==typeof l?l:hi)}function Ei(e,t,n,l,a){if(ho(e))throw Error(r(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,l(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,l=t.payload,r=e.state;if(t.isTransition){var a=D.T,i={};D.T=i;try{var o=n(r,l),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(r,l))}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,Ii(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 l=e.pending;if(e.pending=null,null!==l){l=l.next;do{t.status="rejected",t.reason=n,Ii(t),t=t.next}while(t!==l)}e.action=null}function Ii(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Ai(e,t){return t}function Mi(e,t){if(mr){var n=fc.formState;if(null!==n){e:{var l=Wa;if(mr){if(br){t:{for(var r=br,a=pr;8!==r.nodeType;){if(!a){r=null;break t}if(null===(r=Ld(r.nextSibling))){r=null;break t}}r="F!"===(a=r.data)||"F"===a?r:null}if(r){br=Ld(r.nextSibling),l="F!"===r.data;break e}}gr(l)}l=!1}l&&(t=n[0])}}return(n=ci()).memoizedState=n.baseState=t,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ai,lastRenderedState:t},n.queue=l,n=uo.bind(null,Wa,l),l.dispatch=n,l=Si(!1),a=mo.bind(null,Wa,!1,l.queue),r={state:t,dispatch:null,action:e,pending:null},(l=ci()).queue=r,n=Ei.bind(null,Wa,r,a,n),r.dispatch=n,l.memoizedState=e,[t,n,!1]}function Pi(e){return Li(ui(),Va,e)}function Li(e,t,n){if(t=fi(e,t,Ai)[0],e=pi(hi)[0],"object"==typeof t&&null!==t&&"function"==typeof t.then)try{var l=di(t)}catch(i){if(i===Zr)throw ta;throw i}else l=t;var r=(t=ui()).queue,a=r.dispatch;return n!==t.memoizedState&&(Wa.flags|=2048,Ri(9,{destroy:void 0},Di.bind(null,r,n),null)),[l,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 l=(n=ui()).queue.dispatch;return n.memoizedState=e,[t,l,!1]}function Ri(e,t,n,l){return e={tag:e,create:n,deps:l,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:(l=n.next,n.next=e,e.next=l,t.lastEffect=e),e}function Fi(){return ui().memoizedState}function ji(e,t,n,l){var r=ci();Wa.flags|=e,r.memoizedState=Ri(1|t,{destroy:void 0},n,void 0===l?null:l)}function Ui(e,t,n,l){var r=ui();l=void 0===l?null:l;var a=r.memoizedState.inst;null!==Va&&null!==l&&ti(l,Va.memoizedState.deps)?r.memoizedState=Ri(t,a,n,l):(Wa.flags|=e,r.memoizedState=Ri(1|t,a,n,l))}function Bi(e,t){ji(8390656,8,e,t)}function qi(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(r(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 Xi(e,t){var n=ui();t=void 0===t?null:t;var l=n.memoizedState;return null!==t&&ti(t,l[1])?l[0]:(n.memoizedState=[e,t],e)}function Yi(e,t){var n=ui();t=void 0===t?null:t;var l=n.memoizedState;if(null!==t&&ti(t,l[1]))return l[0];if(l=e(),Qa){xe(!0);try{e()}finally{xe(!1)}}return n.memoizedState=[l,t],l}function Ji(e,t,n){return void 0===n||1073741824&qa&&!(261930&yc)?e.memoizedState=t:(e.memoizedState=n,e=Qc(),Wa.lanes|=e,Ec|=e,n)}function Zi(e,t,n,l){return el(n,t)?n:null!==za.current?(e=Ji(e,n,l),el(e,t)||(Lo=!0),e):42&qa&&(!(1073741824&qa)||261930&yc)?(e=Qc(),Wa.lanes|=e,Ec|=e,t):(Lo=!0,e.memoizedState=n)}function eo(e,t,n,l,r){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=r(),b=D.S;if(null!==b&&b(u,d),null!==d&&"object"==typeof d&&"function"==typeof d.then)bo(e,t,(i=l,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,l,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,l){if(5!==e.tag)throw Error(r(476));var a=lo(e).queue;eo(e,a,t,R,null===n?to:function(){return ro(e),n(l)})}function lo(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 ro(e){var t=lo(e);null===t.next&&(t=e.alternate.memoizedState),bo(e,t.next.queue,{},Gc())}function ao(){return Pr(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(),l=xa(t,e=wa(n),n);return null!==l&&(Xc(l,t,n),ka(l,t,n)),t={cache:Ur()},void(e.payload=t)}t=t.return}}function co(e,t,n){var l=Gc();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ho(e)?po(t,n):null!==(n=Pl(e,t,n,l))&&(Xc(n,e,l),fo(n,t,l))}function uo(e,t,n){bo(e,t,n,Gc())}function bo(e,t,n,l){var r={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ho(e))po(t,r);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(r.hasEagerState=!0,r.eagerState=o,el(o,i))return Ml(e,t,r,0),null===fc&&Al(),!1}catch(s){}if(null!==(n=Pl(e,t,r,l)))return Xc(n,e,l),fo(n,t,l),!0}return!1}function mo(e,t,n,l){if(l={lane:2,revertLane:Wu(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ho(e)){if(t)throw Error(r(479))}else null!==(t=Pl(e,n,l,2))&&Xc(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 l=t.lanes;n|=l&=e.pendingLanes,t.lanes=n,De(e,n)}}var go={readContext:Pr,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:Pr,use:bi,useCallback:function(e,t){return ci().memoizedState=[e,void 0===t?null:t],e},useContext:Pr,useEffect:Bi,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,ji(4194308,4,Ki.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ji(4194308,4,e,t)},useInsertionEffect:function(e,t){ji(4,2,e,t)},useMemo:function(e,t){var n=ci();t=void 0===t?null:t;var l=e();if(Qa){xe(!0);try{e()}finally{xe(!1)}}return n.memoizedState=[l,t],l},useReducer:function(e,t,n){var l=ci();if(void 0!==n){var r=n(t);if(Qa){xe(!0);try{n(t)}finally{xe(!1)}}}else r=t;return l.memoizedState=l.baseState=r,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:r},l.queue=e,e=e.dispatch=co.bind(null,Wa,e),[l.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 l=Wa,a=ci();if(mr){if(void 0===n)throw Error(r(407));n=n()}else{if(n=t(),null===fc)throw Error(r(349));127&yc||vi(l,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Bi(xi.bind(null,l,i,e),[e]),l.flags|=2048,Ri(9,{destroy:void 0},wi.bind(null,l,i,n,t),null),n},useId:function(){var e=ci(),t=fc.identifierPrefix;if(mr){var n=ar;t="_"+t+"R_"+(n=(rr&~(1<<32-ke(rr)-1)).toString(32)+n),0<(n=Xa++)&&(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(r(440));return n.impl.apply(void 0,arguments)}}},vo={readContext:Pr,use:bi,useCallback:Xi,useContext:Pr,useEffect:qi,useImperativeHandle:Gi,useInsertionEffect:Vi,useLayoutEffect:Hi,useMemo:Yi,useReducer:pi,useRef:Fi,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:Pi,useActionState:Pi,useOptimistic:function(e,t){return Ni(ui(),0,e,t)},useMemoCache:mi,useCacheRefresh:oo};vo.useEffectEvent=Wi;var wo={readContext:Pr,use:bi,useCallback:Xi,useContext:Pr,useEffect:qi,useImperativeHandle:Gi,useInsertionEffect:Vi,useLayoutEffect:Hi,useMemo:Yi,useReducer:gi,useRef:Fi,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,l){n=null==(n=n(l,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 l=Gc(),r=wa(l);r.payload=t,null!=n&&(r.callback=n),null!==(t=xa(e,r,l))&&(Xc(t,e,l),ka(t,e,l))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var l=Gc(),r=wa(l);r.tag=1,r.payload=t,null!=n&&(r.callback=n),null!==(t=xa(e,r,l))&&(Xc(t,e,l),ka(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Gc(),l=wa(n);l.tag=2,null!=t&&(l.callback=t),null!==(t=xa(e,l,n))&&(Xc(t,e,n),ka(t,e,n))}};function Co(e,t,n,l,r,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(l,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!tl(n,l)||!tl(r,a))}function So(e,t,n,l){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,l),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,l),t.state!==e&&ko.enqueueReplaceState(t,t.state,null)}function No(e,t){var n=t;if("ref"in t)for(var l in n={},t)"ref"!==l&&(n[l]=t[l]);if(e=e.defaultProps)for(var r in n===t&&(n=b({},n)),e)void 0===n[r]&&(n[r]=e[r]);return n}function Eo(e){_l(e)}function $o(e){console.error(e)}function _o(e){_l(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(l){setTimeout(function(){throw l})}}function Io(e,t,n){return(n=wa(n)).tag=3,n.payload={element:null},n.callback=function(){zo(e,t)},n}function Ao(e){return(e=wa(e)).tag=3,e}function Mo(e,t,n,l){var r=n.type.getDerivedStateFromError;if("function"==typeof r){var a=l.value;e.payload=function(){return r(a)},e.callback=function(){To(t,n,l)}}var i=n.stateNode;null!==i&&"function"==typeof i.componentDidCatch&&(e.callback=function(){To(t,n,l),"function"!=typeof r&&(null===Rc?Rc=/* @__PURE__ */new Set([this]):Rc.add(this));var e=l.stack;this.componentDidCatch(l.value,{componentStack:null!==e?e:""})})}var Po=Error(r(461)),Lo=!1;function Do(e,t,n,l){t.child=null===e?fa(t,null,n,l):pa(t,e.child,n,l)}function Oo(e,t,n,l,r){n=n.render;var a=t.ref;if("ref"in l){var i={};for(var o in l)"ref"!==o&&(i[o]=l[o])}else i=l;return Mr(t),l=ni(e,t,n,i,a,r),o=ii(),null===e||Lo?(mr&&o&&sr(t),t.flags|=1,Do(e,t,l,r),t.child):(oi(e,t,r),is(e,t,r))}function Ro(e,t,n,l,r){if(null===e){var a=n.type;return"function"!=typeof a||Ul(a)||void 0!==a.defaultProps||null!==n.compare?((e=Wl(n.type,null,l,t,t.mode,r)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Fo(e,t,a,l,r))}if(a=e.child,!os(e,r)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:tl)(i,l)&&e.ref===t.ref)return is(e,t,r)}return t.flags|=1,(e=Bl(a,l)).ref=t.ref,e.return=t,t.child=e}function Fo(e,t,n,l,r){if(null!==e){var a=e.memoizedProps;if(tl(a,l)&&e.ref===t.ref){if(Lo=!1,t.pendingProps=l=a,!os(e,r))return t.lanes=e.lanes,is(e,t,r);131072&e.flags&&(Lo=!0)}}return Ho(e,t,n,l,r)}function jo(e,t,n,l){var r=l.children,a=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),"hidden"===l.mode){if(128&t.flags){if(a=null!==a?a.baseLanes|n:n,null!==e){for(l=t.child=e.child,r=0;null!==l;)r=r|l.lanes|l.childLanes,l=l.sibling;l=r&~a}else l=0,t.child=null;return Bo(e,t,a,n,l)}if(!(536870912&n))return l=t.lanes=536870912,Bo(e,t,null!==a?a.baseLanes|n:n,n,l);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&Yr(0,null!==a?a.cachePool:null),null!==a?Ia(t,a):Aa(),Ra(t)}else null!==a?(Yr(0,a.cachePool),Ia(t,a),Fa(),t.memoizedState=null):(null!==e&&Yr(0,null),Aa(),Fa());return Do(e,t,r,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 Bo(e,t,n,l,r){var a=Xr();return a=null===a?null:{parent:jr._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},null!==e&&Yr(0,null),Aa(),Ra(t),null!==e&&Ir(e,t,l,!0),t.childLanes=r,null}function qo(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=qo(t,t.pendingProps)).flags|=2,ja(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(r(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function Ho(e,t,n,l,r){return Mr(t),n=ni(e,t,n,l,void 0,r),l=ii(),null===e||Lo?(mr&&l&&sr(t),t.flags|=1,Do(e,t,n,r),t.child):(oi(e,t,r),is(e,t,r))}function Ko(e,t,n,l,r,a){return Mr(t),t.updateQueue=null,n=ri(t,l,n,r),li(e),l=ii(),null===e||Lo?(mr&&l&&sr(t),t.flags|=1,Do(e,t,n,a),t.child):(oi(e,t,a),is(e,t,a))}function Go(e,t,n,l,r){if(Mr(t),null===t.stateNode){var a=Rl,i=n.contextType;"object"==typeof i&&null!==i&&(a=Pr(i)),a=new n(l,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=l,a.state=t.memoizedState,a.refs={},ya(t),i=n.contextType,a.context="object"==typeof i&&null!==i?Pr(i):Rl,a.state=t.memoizedState,"function"==typeof(i=n.getDerivedStateFromProps)&&(xo(t,n,i,l),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,l,a,r),Na(),a.state=t.memoizedState),"function"==typeof a.componentDidMount&&(t.flags|=4194308),l=!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=Rl,"object"==typeof u&&null!==u&&(i=Pr(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,l,i),ga=!1;var b=t.memoizedState;a.state=b,Ea(t,l,a,r),Na(),c=t.memoizedState,o||b!==c||ga?("function"==typeof d&&(xo(t,n,d,l),c=t.memoizedState),(s=ga||Co(t,n,s,l,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=l,t.memoizedState=c),a.props=l,a.state=c,a.context=i,l=s):("function"==typeof a.componentDidMount&&(t.flags|=4194308),l=!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=Rl,"object"==typeof c&&null!==c&&(s=Pr(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,l,s),ga=!1,b=t.memoizedState,a.state=b,Ea(t,l,a,r),Na();var m=t.memoizedState;i!==d||b!==m||ga||null!==e&&null!==e.dependencies&&Ar(e.dependencies)?("function"==typeof o&&(xo(t,n,o,l),m=t.memoizedState),(u=ga||Co(t,n,u,l,b,m,s)||null!==e&&null!==e.dependencies&&Ar(e.dependencies))?(c||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(l,m,s),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(l,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=l,t.memoizedState=m),a.props=l,a.state=m,a.context=s,l=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),l=!1)}return a=l,Vo(e,t),l=!!(128&t.flags),a||l?(a=t.stateNode,n=l&&"function"!=typeof n.getDerivedStateFromError?null:a.render(),t.flags|=1,null!==e&&l?(t.child=pa(t,e.child,null,r),t.child=pa(t,null,n,r)):Do(e,t,n,r),t.memoizedState=a.state,e=t.child):e=is(e,t,r),e}function Qo(e,t,n,l){return xr(),t.flags|=256,Do(e,t,n,l),t.child}var Xo={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Yo(e){return{baseLanes:e,cachePool:Jr()}}function Jo(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=zc),e}function Zo(e,t,n){var l,a=t.pendingProps,i=!1,o=!!(128&t.flags);if((l=o)||(l=(null===e||null!==e.memoizedState)&&!!(2&Ua.current)),l&&(i=!0,t.flags&=-129),l=!!(32&t.flags),t.flags&=-33,null===e){if(mr){if(i?Da(t):Fa(),(e=br)?null!==(e=null!==(e=Ad(e,pr))&&"&"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==lr?{id:rr,overflow:ar}:null,retryLane:536870912,hydrationErrors:null},(n=Kl(e)).return=t,t.child=n,dr=t,br=null):e=null,null===e)throw gr(t);return Pd(e)?t.lanes=32:t.lanes=536870912,null}var s=a.children;return a=a.fallback,i?(Fa(),s=ts({mode:"hidden",children:s},i=t.mode),a=Vl(a,i,n,null),s.return=t,a.return=t,s.sibling=a,t.child=s,(a=t.child).memoizedState=Yo(n),a.childLanes=Jo(e,l,n),t.memoizedState=Xo,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?(Fa(),t.child=e.child,t.flags|=128,t=null):(Fa(),s=a.fallback,i=t.mode,a=ts({mode:"visible",children:a.children},i),(s=Vl(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=Yo(n),a.childLanes=Jo(e,l,n),t.memoizedState=Xo,t=Uo(null,a));else if(Da(t),Pd(s)){if(l=s.nextSibling&&s.nextSibling.dataset)var u=l.dgst;l=u,(a=Error(r(419))).stack="",a.digest=l,Cr({value:a,source:null,stack:null}),t=ns(e,t,n)}else if(Lo||Ir(e,t,n,!1),l=0!==(n&e.childLanes),Lo||l){if(null!==(l=fc)&&(0!==(a=Oe(l,n))&&a!==c.retryLane))throw c.retryLane=a,Ll(e,a),Xc(l,e,a),Po;Md(s)||su(),t=ns(e,t,n)}else Md(s)?(t.flags|=192,t.child=e.child,t=null):(e=c.treeContext,br=Ld(s.nextSibling),dr=t,mr=!0,hr=null,pr=!1,null!==e&&ur(t,e),(t=es(t,a.children)).flags|=4096);return t}return i?(Fa(),s=a.fallback,i=t.mode,u=(c=e.child).sibling,(a=Bl(c,{mode:"hidden",children:a.children})).subtreeFlags=65011712&c.subtreeFlags,null!==u?s=Bl(u,s):(s=Vl(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=Yo(n):(null!==(i=s.cachePool)?(c=jr._currentValue,i=i.parent!==c?{parent:c,pool:c}:i):i=Jr(),s={baseLanes:s.baseLanes|n,cachePool:i}),a.memoizedState=s,a.childLanes=Jo(e,l,n),t.memoizedState=Xo,Uo(e.child,a)):(Da(t),e=(n=e.child).sibling,(n=Bl(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(l=t.deletions)?(t.deletions=[e],t.flags|=16):l.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=jl(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 ls(e,t,n){e.lanes|=t;var l=e.alternate;null!==l&&(l.lanes|=t),zr(e.return,t,n)}function rs(e,t,n,l,r,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:l,tail:n,tailMode:r,treeForkCount:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=l,i.tail=n,i.tailMode=r,i.treeForkCount=a)}function as(e,t,n){var l=t.pendingProps,r=l.revealOrder,a=l.tail;l=l.children;var i=Ua.current,o=!!(2&i);if(o?(i=1&i|2,t.flags|=128):i&=1,q(Ua,i),Do(e,t,l,n),l=mr?er:0,!o&&null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ls(e,n,t);else if(19===e.tag)ls(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(r){case"forwards":for(n=t.child,r=null;null!==n;)null!==(e=n.alternate)&&null===Ba(e)&&(r=n),n=n.sibling;null===(n=r)?(r=t.child,t.child=null):(r=n.sibling,n.sibling=null),rs(t,!1,r,n,a,l);break;case"backwards":case"unstable_legacy-backwards":for(n=null,r=t.child,t.child=null;null!==r;){if(null!==(e=r.alternate)&&null===Ba(e)){t.child=r;break}e=r.sibling,r.sibling=n,n=r,r=e}rs(t,!0,n,null,a,l);break;case"together":rs(t,!1,null,null,void 0,l);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(Ir(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(r(153));if(null!==t.child){for(n=Bl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Bl(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function os(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!Ar(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:X(t,t.stateNode.containerInfo),$r(0,jr,e.memoizedState.cache),xr();break;case 27:case 5:J(t);break;case 4:X(t,t.stateNode.containerInfo);break;case 10:$r(0,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,Oa(t),null;break;case 13:var l=t.memoizedState;if(null!==l)return null!==l.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 r=!!(128&e.flags);if((l=0!==(n&t.childLanes))||(Ir(e,t,n,!1),l=0!==(n&t.childLanes)),r){if(l)return as(e,t,n);t.flags|=128}if(null!==(r=t.memoizedState)&&(r.rendering=null,r.tail=null,r.lastEffect=null),q(Ua,Ua.current),l)break;return null;case 22:return t.lanes=0,jo(e,t,n,t.pendingProps);case 24:$r(0,jr,e.memoizedState.cache)}return is(e,t,n)}(e,t,n);Lo=!!(131072&e.flags)}else Lo=!1,mr&&1048576&t.flags&&or(t,er,t.index);switch(t.lanes=0,t.tag){case 16:e:{var l=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,l,n);break e}if(a===$){t.tag=14,t=Ro(null,t,e,l,n);break e}}throw t=P(e)||e,Error(r(306,t,""))}Ul(e)?(l=No(e,l),t.tag=1,t=Go(null,t,e,l,n)):(t.tag=0,t=Ho(null,t,e,l,n))}return t;case 0:return Ho(e,t,t.type,t.pendingProps,n);case 1:return Go(e,t,l=t.type,a=No(l,t.pendingProps),n);case 3:e:{if(X(t,t.stateNode.containerInfo),null===e)throw Error(r(387));l=t.pendingProps;var i=t.memoizedState;a=i.element,va(e,t),Ea(t,l,null,n);var o=t.memoizedState;if(l=o.cache,$r(0,jr,l),l!==i.cache&&Tr(t,[jr],n,!0),Na(),l=o.element,i.isDehydrated){if(i={element:l,isDehydrated:!1,cache:o.cache},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Qo(e,t,l,n);break e}if(l!==a){Cr(a=Xl(Error(r(424)),t)),t=Qo(e,t,l,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(br=Ld(e.firstChild),dr=t,mr=!0,hr=null,pr=!0,n=fa(t,null,l,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(xr(),l===a){t=is(e,t,n);break e}Do(e,t,l,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:mr||(n=t.type,e=t.pendingProps,(l=yd(G.current).createElement(n))[qe]=t,l[We]=e,hd(l,n,e),nt(l),t.stateNode=l):t.memoizedState=Kd(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return J(t),null===e&&mr&&(l=t.stateNode=Fd(t.type,t.pendingProps,G.current),dr=t,pr=!0,a=br,_d(t.type)?(Dd=a,br=Ld(l.firstChild)):br=a),Do(e,t,t.pendingProps.children,n),Vo(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&mr&&((a=l=br)&&(null!==(l=function(e,t,n,l){for(;1===e.nodeType;){var r=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!l&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(l){if(!e[Xe])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!==r.rel||e.getAttribute("href")!==(null==r.href||""===r.href?null:r.href)||e.getAttribute("crossorigin")!==(null==r.crossOrigin?null:r.crossOrigin)||e.getAttribute("title")!==(null==r.title?null:r.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((a=e.getAttribute("src"))!==(null==r.src?null:r.src)||e.getAttribute("type")!==(null==r.type?null:r.type)||e.getAttribute("crossorigin")!==(null==r.crossOrigin?null:r.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==r.name?null:""+r.name;if("hidden"===r.type&&e.getAttribute("name")===a)return e}if(null===(e=Ld(e.nextSibling)))break}return null}(l,t.type,t.pendingProps,pr))?(t.stateNode=l,dr=t,br=Ld(l.firstChild),pr=!1,a=!0):a=!1),a||gr(t)),J(t),a=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,l=i.children,xd(a,i)?l=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,l,n),t.child;case 6:return null===e&&mr&&((e=n=br)&&(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,pr))?(t.stateNode=n,dr=t,br=null,e=!0):e=!1),e||gr(t)),null;case 13:return Zo(e,t,n);case 4:return X(t,t.stateNode.containerInfo),l=t.pendingProps,null===e?t.child=pa(t,null,l,n):Do(e,t,l,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 l=t.pendingProps,$r(0,t.type,l.value),Do(e,t,l.children,n),t.child;case 9:return a=t.type._context,l=t.pendingProps.children,Mr(t),l=l(a=Pr(a)),t.flags|=1,Do(e,t,l,n),t.child;case 14:return Ro(e,t,t.type,t.pendingProps,n);case 15:return Fo(e,t,t.type,t.pendingProps,n);case 19:return as(e,t,n);case 31:return function(e,t,n){var l=t.pendingProps,a=!!(128&t.flags);if(t.flags&=-129,null===e){if(mr){if("hidden"===l.mode)return e=qo(t,l),t.lanes=536870912,Uo(null,e);if(Oa(t),(e=br)?null!==(e=null!==(e=Ad(e,pr))&&"&"===e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==lr?{id:rr,overflow:ar}:null,retryLane:536870912,hydrationErrors:null},(n=Kl(e)).return=t,t.child=n,dr=t,br=null):e=null,null===e)throw gr(t);return t.lanes=536870912,null}return qo(t,l)}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(r(558));t.child=e.child,t.flags|=128,t=null}else if(Lo||Ir(e,t,n,!1),a=0!==(n&e.childLanes),Lo||a){if(null!==(l=fc)&&0!==(o=Oe(l,n))&&o!==i.retryLane)throw i.retryLane=o,Ll(e,o),Xc(l,e,o),Po;su(),t=Wo(e,t,n)}else e=i.treeContext,br=Ld(o.nextSibling),dr=t,mr=!0,hr=null,pr=!1,null!==e&&ur(t,e),(t=qo(t,l)).flags|=4096;return t}return(e=Bl(e.child,{mode:l.mode,children:l.children})).ref=t.ref,t.child=e,e.return=t,e}(e,t,n);case 22:return jo(e,t,n,t.pendingProps);case 24:return Mr(t),l=Pr(jr),null===e?(null===(a=Xr())&&(a=fc,i=Ur(),a.pooledCache=i,i.refCount++,null!==i&&(a.pooledCacheLanes|=n),a=i),t.memoizedState={parent:l,cache:a},ya(t),$r(0,jr,a)):(0!==(e.lanes&n)&&(va(e,t),Ea(t,null,null,n),Na()),a=e.memoizedState,i=t.memoizedState,a.parent!==l?(a={parent:l,cache:l},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),$r(0,jr,l)):(l=i.cache,$r(0,jr,l),l!==a.cache&&Tr(t,[jr],n,!0))),Do(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(r(156,t.tag))}function cs(e){e.flags|=4}function us(e,t,n,l,r){if((t=!!(32&e.mode))&&(t=!1),t){if(e.flags|=16777216,(335544128&r)===r)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?Ae():536870912,e.lanes|=t,Tc|=t)}function ms(e,t){if(!mr)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 l=null;null!==n;)null!==n.alternate&&(l=n),n=n.sibling;null===l?t||null===e.tail?e.tail=null:e.tail.sibling=null:l.sibling=null}}function hs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,l=0;if(t)for(var r=e.child;null!==r;)n|=r.lanes|r.childLanes,l|=65011712&r.subtreeFlags,l|=65011712&r.flags,r.return=e,r=r.sibling;else for(r=e.child;null!==r;)n|=r.lanes|r.childLanes,l|=r.subtreeFlags,l|=r.flags,r.return=e,r=r.sibling;return e.subtreeFlags|=l,e.childLanes=n,t}function ps(e,t,n){var l=t.pendingProps;switch(cr(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,l=null,null!==e&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),_r(jr),Y(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(wr(t)?cs(t):null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,kr())),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)!==l&&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!==l&&cs(t);else{if(!l){if(null===t.stateNode)throw Error(r(166));return hs(t),null}e=H.current,wr(t)?yr(t):(e=Fd(a,l,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!==l&&cs(t);else{if(!l){if(null===t.stateNode)throw Error(r(166));return hs(t),null}if(i=H.current,wr(t))yr(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 l.is?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?i.multiple=!0:l.size&&(i.size=l.size);break;default:i="string"==typeof l.is?o.createElement(a,{is:l.is}):o.createElement(a)}}i[qe]=t,i[We]=l;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,l),a){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&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!==l&&cs(t);else{if("string"!=typeof l&&null===t.stateNode)throw Error(r(166));if(e=G.current,wr(t)){if(e=t.stateNode,n=t.memoizedProps,l=null,null!==(a=dr))switch(a.tag){case 27:case 5:l=a.memoizedProps}e[qe]=t,(e=!!(e.nodeValue===n||null!==l&&!0===l.suppressHydrationWarning||dd(e.nodeValue,n)))||gr(t,!0)}else(e=yd(e).createTextNode(l))[qe]=t,t.stateNode=e}return hs(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(l=wr(t),null!==n){if(null===e){if(!l)throw Error(r(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(r(557));e[qe]=t}else xr(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;hs(t),e=!1}else n=kr(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(ja(t),t):(ja(t),null);if(128&t.flags)throw Error(r(558))}return hs(t),null;case 13:if(l=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=wr(t),null!==l&&null!==l.dehydrated){if(null===e){if(!a)throw Error(r(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(r(317));a[qe]=t}else xr(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;hs(t),a=!1}else a=kr(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(ja(t),t):(ja(t),null)}return ja(t),128&t.flags?(t.lanes=n,t):(n=null!==l,e=null!==e&&null!==e.memoizedState,n&&(a=null,null!==(l=t.child).alternate&&null!==l.alternate.memoizedState&&null!==l.alternate.memoizedState.cachePool&&(a=l.alternate.memoizedState.cachePool.pool),i=null,null!==l.memoizedState&&null!==l.memoizedState.cachePool&&(i=l.memoizedState.cachePool.pool),i!==a&&(l.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),bs(t,t.updateQueue),hs(t),null);case 4:return Y(),null===e&&td(t.stateNode.containerInfo),hs(t),null;case 10:return _r(t.type),hs(t),null;case 19:if(B(Ua),null===(l=t.memoizedState))return hs(t),null;if(a=!!(128&t.flags),null===(i=l.rendering))if(a)ms(l,!1);else{if(0!==Nc||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(i=Ba(e))){for(t.flags|=128,ms(l,!1),e=i.updateQueue,t.updateQueue=e,bs(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)ql(n,e),n=n.sibling;return q(Ua,1&Ua.current|2),mr&&ir(t,l.treeForkCount),t.child}e=e.sibling}null!==l.tail&&ue()>Dc&&(t.flags|=128,a=!0,ms(l,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=Ba(i))){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,bs(t,e),ms(l,!0),null===l.tail&&"hidden"===l.tailMode&&!i.alternate&&!mr)return hs(t),null}else 2*ue()-l.renderingStartTime>Dc&&536870912!==n&&(t.flags|=128,a=!0,ms(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(null!==(e=l.last)?e.sibling=i:t.child=i,l.last=i)}return null!==l.tail?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=ue(),e.sibling=null,n=Ua.current,q(Ua,a?1&n|2:1&n),mr&&ir(t,l.treeForkCount),e):(hs(t),null);case 22:case 23:return ja(t),Ma(),l=null!==t.memoizedState,null!==e?null!==e.memoizedState!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?!!(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),l=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(l=t.memoizedState.cachePool.pool),l!==n&&(t.flags|=2048),null!==e&&B(Qr),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),_r(jr),hs(t),null;case 25:case 30:return null}throw Error(r(156,t.tag))}function fs(e,t){switch(cr(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return _r(jr),Y(),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(ja(t),null===t.alternate)throw Error(r(340));xr()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ja(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(r(340));xr()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return B(Ua),null;case 4:return Y(),null;case 10:return _r(t.type),null;case 22:case 23:return ja(t),Ma(),null!==e&&B(Qr),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return _r(jr),null;default:return null}}function gs(e,t){switch(cr(t),t.tag){case 3:_r(jr),Y();break;case 26:case 27:case 5:Z(t);break;case 4:Y();break;case 31:null!==t.memoizedState&&ja(t);break;case 13:ja(t);break;case 19:B(Ua);break;case 10:_r(t.type);break;case 22:case 23:ja(t),Ma(),null!==e&&B(Qr);break;case 24:_r(jr)}}function ys(e,t){try{var n=t.updateQueue,l=null!==n?n.lastEffect:null;if(null!==l){var r=l.next;n=r;do{if((n.tag&e)===e){l=void 0;var a=n.create,i=n.inst;l=a(),i.destroy=l}n=n.next}while(n!==r)}}catch(o){Nu(t,t.return,o)}}function vs(e,t,n){try{var l=t.updateQueue,r=null!==l?l.lastEffect:null;if(null!==r){var a=r.next;l=a;do{if((l.tag&e)===e){var i=l.inst,o=i.destroy;if(void 0!==o){i.destroy=void 0,r=t;var s=n,c=o;try{c()}catch(u){Nu(r,s,u)}}}l=l.next}while(l!==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(l){Nu(e,e.return,l)}}}function xs(e,t,n){n.props=No(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(l){Nu(e,t,l)}}function ks(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;default:l=e.stateNode}"function"==typeof n?e.refCleanup=n(l):n.current=l}}catch(r){Nu(e,t,r)}}function Cs(e,t){var n=e.ref,l=e.refCleanup;if(null!==n)if("function"==typeof l)try{l()}catch(r){Nu(e,t,r)}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,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(r){Nu(e,e.return,r)}}function Ns(e,t,n){try{var l=e.stateNode;!function(e,t,n,l){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:l.hasOwnProperty(h)||bd(e,t,h,null,l,b)}}for(var m in l){var h=l[m];if(b=n[m],l.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(r(137,t));break;default:h!==b&&bd(e,t,m,h,l,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:l.hasOwnProperty(i)||bd(e,t,i,null,l,c)}for(a in l)if(i=l[a],c=n[a],l.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,l,c)}return t=s,n=o,l=h,void(null!=m?Ct(e,!!n,m,!1):!!l!=!!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&&!l.hasOwnProperty(s))switch(s){case"value":case"children":break;default:bd(e,t,s,null,l,a)}for(o in l)if(a=l[o],i=n[o],l.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(r(91));break;default:a!==i&&bd(e,t,o,a,l,i)}return void St(e,m,h);case"option":for(var p in n)if(m=n[p],n.hasOwnProperty(p)&&null!=m&&!l.hasOwnProperty(p))if("selected"===p)e.selected=!1;else bd(e,t,p,null,l,m);for(c in l)if(m=l[c],h=n[c],l.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,l,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&&!l.hasOwnProperty(f)&&bd(e,t,f,null,l,m);for(u in l)if(m=l[u],h=n[u],l.hasOwnProperty(u)&&m!==h&&(null!=m||null!=h))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(r(137,t));break;default:bd(e,t,u,m,l,h)}return;default:if(Tt(t)){for(var g in n)m=n[g],n.hasOwnProperty(g)&&void 0!==m&&!l.hasOwnProperty(g)&&md(e,t,g,void 0,l,m);for(d in l)m=l[d],h=n[d],!l.hasOwnProperty(d)||m===h||void 0===m&&void 0===h||md(e,t,d,m,l,h);return}}for(var y in n)m=n[y],n.hasOwnProperty(y)&&null!=m&&!l.hasOwnProperty(y)&&bd(e,t,y,null,l,m);for(b in l)m=l[b],h=n[b],!l.hasOwnProperty(b)||m===h||null==m&&null==h||bd(e,t,b,m,l,h)}(l,e.type,n,t),l[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 l=e.tag;if(5===l||6===l)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=Pt));else if(4!==l&&(27===l&&_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 l=e.tag;if(5===l||6===l)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==l&&(27===l&&_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 l=e.type,r=t.attributes;r.length;)t.removeAttributeNode(r[0]);hd(t,l,n),t[qe]=e,t[We]=n}catch(a){Nu(e,e.return,a)}}var Is=!1,As=!1,Ms=!1,Ps="function"==typeof WeakSet?WeakSet:Set,Ls=null;function Ds(e,t,n){var l=n.flags;switch(n.tag){case 0:case 11:case 15:Xs(e,n),4&l&&ys(5,n);break;case 1:if(Xs(e,n),4&l)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(i){Nu(n,n.return,i)}else{var r=No(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(r,t,e.__reactInternalSnapshotBeforeUpdate)}catch(o){Nu(n,n.return,o)}}64&l&&ws(n),512&l&&ks(n,n.return);break;case 3:if(Xs(e,n),64&l&&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&l&&Ts(n);case 26:case 5:Xs(e,n),null===t&&4&l&&Ss(n),512&l&&ks(n,n.return);break;case 12:Xs(e,n);break;case 31:Xs(e,n),4&l&&Bs(e,n);break;case 13:Xs(e,n),4&l&&qs(e,n),64&l&&(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 l=function(){t(),n.removeEventListener("DOMContentLoaded",l)};n.addEventListener("DOMContentLoaded",l),e._reactRetry=l}}(e,n=zu.bind(null,n))));break;case 22:if(!(l=null!==n.memoizedState||Is)){t=null!==t&&null!==t.memoizedState||As,r=Is;var a=As;Is=l,(As=t)&&!a?Js(e,n,!!(8772&n.subtreeFlags)):Xs(e,n),Is=r,As=a}break;case 30:break;default:Xs(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)&&Ye(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,Fs=!1;function js(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:As||Cs(n,t),js(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:As||Cs(n,t);var l=Rs,r=Fs;_d(n.type)&&(Rs=n.stateNode,Fs=!1),js(e,t,n),jd(n.stateNode),Rs=l,Fs=r;break;case 5:As||Cs(n,t);case 6:if(l=Rs,r=Fs,Rs=null,js(e,t,n),Fs=r,null!==(Rs=l))if(Fs)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&&(Fs?(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:l=Rs,r=Fs,Rs=n.stateNode.containerInfo,Fs=!0,js(e,t,n),Rs=l,Fs=r;break;case 0:case 11:case 14:case 15:vs(2,n,t),As||vs(4,n,t),js(e,t,n);break;case 1:As||(Cs(n,t),"function"==typeof(l=n.stateNode).componentWillUnmount&&xs(n,t,l)),js(e,t,n);break;case 21:js(e,t,n);break;case 22:As=(l=As)||null!==n.memoizedState,js(e,t,n),As=l;break;default:js(e,t,n)}}function Bs(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 qs(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 Ps),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ps),t;default:throw Error(r(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var l=Tu.bind(null,e,t);t.then(l,l)}})}function Vs(e,t){var n=t.deletions;if(null!==n)for(var l=0;l<n.length;l++){var a=n[l],i=e,o=t,s=o;e:for(;null!==s;){switch(s.tag){case 27:if(_d(s.type)){Rs=s.stateNode,Fs=!1;break e}break;case 5:Rs=s.stateNode,Fs=!1;break e;case 3:case 4:Rs=s.stateNode.containerInfo,Fs=!0;break e}s=s.return}if(null===Rs)throw Error(r(160));Us(i,o,a),Rs=null,Fs=!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,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Vs(t,e),Gs(e),4&l&&(vs(3,e,e.return),ys(3,e),vs(5,e,e.return));break;case 1:Vs(t,e),Gs(e),512&l&&(As||null===n||Cs(n,n.return)),64&l&&Is&&(null!==(e=e.updateQueue)&&(null!==(l=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?l:n.concat(l))));break;case 26:var a=Hs;if(Vs(t,e),Gs(e),512&l&&(As||null===n||Cs(n,n.return)),4&l){var i=null!==n?n.memoizedState:null;if(l=e.memoizedState,null===n)if(null===l)if(null===e.stateNode){e:{l=e.type,n=e.memoizedProps,a=a.ownerDocument||a;t:switch(l){case"title":(!(i=a.getElementsByTagName("title")[0])||i[Xe]||i[qe]||"http://www.w3.org/2000/svg"===i.namespaceURI||i.hasAttribute("itemprop"))&&(i=a.createElement(l),a.head.insertBefore(i,a.querySelector("head > title"))),hd(i,l,n),i[qe]=e,nt(i),l=i;break e;case"link":var o=rb("link","href",a).get(l+(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(l),l,n),a.head.appendChild(i);break;case"meta":if(o=rb("meta","content",a).get(l+(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(l),l,n),a.head.appendChild(i);break;default:throw Error(r(468,l))}i[qe]=e,nt(i),l=i}e.stateNode=l}else ab(a,e.type,e.stateNode);else e.stateNode=Zd(a,l,e.memoizedProps);else i!==l?(null===i?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):i.count--,null===l?ab(a,e.type,e.stateNode):Zd(a,l,e.memoizedProps)):null===l&&null!==e.stateNode&&Ns(e,e.memoizedProps,n.memoizedProps)}break;case 27:Vs(t,e),Gs(e),512&l&&(As||null===n||Cs(n,n.return)),null!==n&&4&l&&Ns(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Vs(t,e),Gs(e),512&l&&(As||null===n||Cs(n,n.return)),32&e.flags){a=e.stateNode;try{Et(a,"")}catch(p){Nu(e,e.return,p)}}4&l&&null!=e.stateNode&&Ns(e,a=e.memoizedProps,null!==n?n.memoizedProps:a),1024&l&&(Ms=!0);break;case 6:if(Vs(t,e),Gs(e),4&l){if(null===e.stateNode)throw Error(r(162));l=e.memoizedProps,n=e.stateNode;try{n.nodeValue=l}catch(p){Nu(e,e.return,p)}}break;case 3:if(lb=null,a=Hs,Hs=qd(t.containerInfo),Vs(t,e),Hs=a,Gs(e),4&l&&null!==n&&n.memoizedState.isDehydrated)try{Hb(t.containerInfo)}catch(p){Nu(e,e.return,p)}Ms&&(Ms=!1,Qs(e));break;case 4:l=Hs,Hs=qd(e.stateNode.containerInfo),Vs(t,e),Gs(e),Hs=l;break;case 12:default:Vs(t,e),Gs(e);break;case 31:case 19:Vs(t,e),Gs(e),4&l&&(null!==(l=e.updateQueue)&&(e.updateQueue=null,Ws(e,l)));break;case 13:Vs(t,e),Gs(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(Pc=ue()),4&l&&(null!==(l=e.updateQueue)&&(e.updateQueue=null,Ws(e,l)));break;case 22:a=null!==e.memoizedState;var c=null!==n&&null!==n.memoizedState,u=Is,d=As;if(Is=u||a,As=d||c,Vs(t,e),As=d,Is=u,Gs(e),8192&l)e:for(t=e.stateNode,t._visibility=a?-2&t._visibility:1|t._visibility,a&&(null===n||c||Is||As||Ys(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&l&&(null!==(l=e.updateQueue)&&(null!==(n=l.retryQueue)&&(l.retryQueue=null,Ws(e,n))));case 30:case 21:}}function Gs(e){var t=e.flags;if(2&t){try{for(var n,l=e.return;null!==l;){if(Es(l)){n=l;break}l=l.return}if(null==n)throw Error(r(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(r(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 Xs(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)Ds(e,t.alternate,t),t=t.sibling}function Ys(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),Ys(t);break;case 1:Cs(t,t.return);var n=t.stateNode;"function"==typeof n.componentWillUnmount&&xs(t,t.return,n),Ys(t);break;case 27:jd(t.stateNode);case 26:case 5:Cs(t,t.return),Ys(t);break;case 22:null===t.memoizedState&&Ys(t);break;default:Ys(t)}e=e.sibling}}function Js(e,t,n){for(n=n&&!!(8772&t.subtreeFlags),t=t.child;null!==t;){var l=t.alternate,r=e,a=t,i=a.flags;switch(a.tag){case 0:case 11:case 15:Js(r,a,n),ys(4,a);break;case 1:if(Js(r,a,n),"function"==typeof(r=(l=a).stateNode).componentDidMount)try{r.componentDidMount()}catch(c){Nu(l,l.return,c)}if(null!==(r=(l=a).updateQueue)){var o=l.stateNode;try{var s=r.shared.hiddenCallbacks;if(null!==s)for(r.shared.hiddenCallbacks=null,r=0;r<s.length;r++)$a(s[r],o)}catch(c){Nu(l,l.return,c)}}n&&64&i&&ws(a),ks(a,a.return);break;case 27:Ts(a);case 26:case 5:Js(r,a,n),n&&null===l&&4&i&&Ss(a),ks(a,a.return);break;case 12:Js(r,a,n);break;case 31:Js(r,a,n),n&&4&i&&Bs(r,a);break;case 13:Js(r,a,n),n&&4&i&&qs(r,a);break;case 22:null===a.memoizedState&&Js(r,a,n),ks(a,a.return);break;case 30:break;default:Js(r,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&&Br(n))}function ec(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Br(e))}function tc(e,t,n,l){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)nc(e,t,n,l),t=t.sibling}function nc(e,t,n,l){var r=t.flags;switch(t.tag){case 0:case 11:case 15:tc(e,t,n,l),2048&r&&ys(9,t);break;case 1:case 31:case 13:default:tc(e,t,n,l);break;case 3:tc(e,t,n,l),2048&r&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&Br(e)));break;case 12:if(2048&r){tc(e,t,n,l),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,l);break;case 23:break;case 22:a=t.stateNode,i=t.alternate,null!==t.memoizedState?2&a._visibility?tc(e,t,n,l):rc(e,t):2&a._visibility?tc(e,t,n,l):(a._visibility|=2,lc(e,t,n,l,!!(10256&t.subtreeFlags)||!1)),2048&r&&Zs(i,t);break;case 24:tc(e,t,n,l),2048&r&&ec(t.alternate,t)}}function lc(e,t,n,l,r){for(r=r&&(!!(10256&t.subtreeFlags)||!1),t=t.child;null!==t;){var a=e,i=t,o=n,s=l,c=i.flags;switch(i.tag){case 0:case 11:case 15:lc(a,i,o,s,r),ys(8,i);break;case 23:break;case 22:var u=i.stateNode;null!==i.memoizedState?2&u._visibility?lc(a,i,o,s,r):rc(a,i):(u._visibility|=2,lc(a,i,o,s,r)),r&&2048&c&&Zs(i.alternate,i);break;case 24:lc(a,i,o,s,r),r&&2048&c&&ec(i.alternate,i);break;default:lc(a,i,o,s,r)}t=t.sibling}}function rc(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=e,l=t,r=l.flags;switch(l.tag){case 22:rc(n,l),2048&r&&Zs(l.alternate,l);break;case 24:rc(n,l),2048&r&&ec(l.alternate,l);break;default:rc(n,l)}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,l){if(!("stylesheet"!==n.type||"string"==typeof l.media&&!1===matchMedia(l.media).matches||4&n.state.loading)){if(null===n.instance){var r=Gd(l.href),a=t.querySelector(Qd(r));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,l=Xd(l),(r=Ud.get(r))&&tb(l,r),nt(a=a.createElement("link"));var i=a;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),hd(a,"link",l),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 l=Hs;Hs=qd(e.stateNode.containerInfo),ic(e,t,n),Hs=l;break;case 22:null===e.memoizedState&&(null!==(l=e.alternate)&&null!==l.memoizedState?(l=ac,ac=16777216,ic(e,t,n),ac=l):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 l=t[n];Ls=l,bc(l,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 l=t[n];Ls=l,bc(l,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 l=n.memoizedState.cachePool.pool;null!=l&&l.refCount++}break;case 24:Br(n.memoizedState.cache)}if(null!==(l=n.child))l.return=n,Ls=l;else e:for(n=e;null!==Ls;){var r=(l=Ls).sibling,a=l.return;if(Os(l),l===n){Ls=null;break e}if(null!==r){r.return=a,Ls=r;break e}Ls=a}}}var mc={getCacheForType:function(e){var t=Pr(jr),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Pr(jr).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,Ic=null,Ac=null,Mc=!1,Pc=0,Lc=0,Dc=1/0,Oc=null,Rc=null,Fc=0,jc=null,Uc=null,Bc=0,qc=0,Wc=null,Vc=null,Hc=0,Kc=null;function Gc(){return 2&pc&&0!==yc?yc&-yc:null!==D.T?Wu():je()}function Qc(){if(0===zc)if(536870912&yc&&!mr)zc=536870912;else{var e=Ee;!(3932160&(Ee<<=1))&&(Ee=262144),zc=e}return null!==(e=Pa.current)&&(e.flags|=32),zc}function Xc(e,t,n){(e!==fc||2!==vc&&9!==vc)&&null===e.cancelPendingCommit||(lu(e,0),eu(e,yc,zc,!1)),Pe(e,n),2&pc&&e===fc||(e===fc&&(!(2&pc)&&($c|=n),4===Nc&&eu(e,yc,zc,!1)),Ou(e))}function Yc(e,t,n){if(6&pc)throw Error(r(327));for(var l=!n&&!(127&t)&&0===(t&e.expiredLanes)||Te(e,t),a=l?function(e,t){var n=pc;pc|=2;var l=iu(),a=ou();fc!==e||yc!==t?(Oc=null,Dc=ue()+500,lu(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(la(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:la(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(r(462))}}du();break}catch(d){ru(e,d)}return Er=Nr=null,D.H=l,D.A=a,pc=n,null!==gc?0:(fc=null,yc=0,Al(),Nc)}(e,t):cu(e,t,!0),i=l;;){if(0===a){kc&&!l&&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=Ic;var c=s.current.memoizedState.isDehydrated;if(c&&(lu(s,o).flags|=256),2!==(o=cu(s,o,!1))){if(Cc&&!c){s.errorRecoveryDisabledLanes|=i,$c|=i,a=4;break e}i=Ac,Ac=a,null!==i&&(null===Ac?Ac=i:Ac.push.apply(Ac,i))}a=o}if(i=!1,2!==a)continue}}if(1===a){lu(e,0),eu(e,t,0,!0);break}e:{switch(l=e,i=a){case 0:case 1:throw Error(r(345));case 4:if((4194048&t)!==t)break;case 6:eu(l,t,zc,!xc);break e;case 2:Ac=null;break;case 3:case 5:break;default:throw Error(r(329))}if((62914560&t)===t&&10<(a=Pc+300-ue())){if(eu(l,t,zc,!xc),0!==ze(l,0,!0))break e;Bc=t,l.timeoutHandle=Cd(Jc.bind(null,l,n,Ac,Oc,Mc,t,zc,$c,Tc,xc,i,"Throttled",-0,0),a)}else Jc(l,n,Ac,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,l,r,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:Pt});var h=(62914560&a)===a?Pc-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 l=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"),l=0;l<n.length;l++){var r=n[l],a=r.transferSize,i=r.initiatorType,o=r.duration;if(a&&o&&pd(i)){for(i=0,o=r.responseEnd,l+=1;l<n.length;l++){var s=n[l],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(--l,t+=8*(a+i)/(r.duration/1e3),10<++e)break}}if(0<e)return t/e/1e6}return navigator.connection&&"number"==typeof(e=navigator.connection.downlink)?e:5}());var r=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(l),clearTimeout(r)}}:null}(d,h)))return Bc=a,e.cancelPendingCommit=h(gu.bind(null,e,t,a,n,l,r,i,o,s,u,d,null,b,m)),void eu(e,a,i,!c)}gu(e,t,a,n,l,r,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 l=0;l<n.length;l++){var r=n[l],a=r.getSnapshot;r=r.value;try{if(!el(a(),r))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,l){t&=~_c,t&=~$c,e.suspendedLanes|=t,e.pingedLanes&=~t,l&&(e.warmLanes|=t),l=e.expirationTimes;for(var r=t;0<r;){var a=31-ke(r),i=1<<a;l[a]=-1,r&=~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 Er=Nr=null,si(e=gc),ca=null,ua=0,e=gc;for(;null!==e;)gs(e.alternate,e),e=e.return;gc=null}}function lu(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,Sd(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),Bc=0,nu(),fc=e,gc=n=Bl(e.current,null),yc=t,vc=0,wc=null,xc=!1,kc=Te(e,t),Cc=!1,Tc=zc=_c=$c=Ec=Nc=0,Ac=Ic=null,Mc=!1,8&t&&(t|=32&t);var l=e.entangledLanes;if(0!==l)for(e=e.entanglements,l&=t;0<l;){var r=31-ke(l),a=1<<r;t|=e[r],l&=~a}return Sc=t,Al(),n}function ru(e,t){Wa=null,D.H=go,t===Zr||t===ta?(t=oa(),vc=3):t===ea?(t=oa(),vc=4):vc=t===Po?8:null!==t&&"object"==typeof t&&"function"==typeof t.then?6:1,wc=t,null===gc&&(Nc=1,zo(e,Xl(t,e.current)))}function au(){var e=Pa.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!==Pa.current||(kc=!0),!(134217727&Ec)&&!(134217727&$c)||null===fc||eu(fc,yc,zc,!1)}function cu(e,t,n){var l=pc;pc|=2;var r=iu(),a=ou();fc===e&&yc===t||(Oc=null,lu(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===Pa.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){ru(e,u)}return t&&e.shellSuspendCounter++,Er=Nr=null,pc=l,D.H=r,D.A=a,null===gc&&(fc=null,yc=0,Al()),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=ql(t,Sc),Sc)}e.memoizedProps=e.pendingProps,null===t?pu(e):gc=t}function hu(e,t,n,l){Er=Nr=null,si(t),ca=null,ua=0;var a=t.return;try{if(function(e,t,n,l,a){if(n.flags|=32768,null!==l&&"object"==typeof l&&"function"==typeof l.then){if(null!==(t=n.alternate)&&Ir(t,n,a,!0),null!==(n=Pa.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,l===na?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=/* @__PURE__ */new Set([l]):t.add(l),Eu(e,l,a)),!1;case 22:return n.flags|=65536,l===na?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:/* @__PURE__ */new Set([l])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=/* @__PURE__ */new Set([l]):n.add(l),Eu(e,l,a)),!1}throw Error(r(435,n.tag))}return Eu(e,l,a),su(),!1}if(mr)return null!==(t=Pa.current)?(!(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=a,l!==fr&&Cr(Xl(e=Error(r(422),{cause:l}),n))):(l!==fr&&Cr(Xl(t=Error(r(423),{cause:l}),n)),(e=e.current.alternate).flags|=65536,a&=-a,e.lanes|=a,l=Xl(l,n),Ca(e,a=Io(e.stateNode,l,a)),4!==Nc&&(Nc=2)),!1;var i=Error(r(520),{cause:l});if(i=Xl(i,n),null===Ic?Ic=[i]:Ic.push(i),4!==Nc&&(Nc=2),null===t)return!0;l=Xl(l,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,Ca(n,e=Io(n.stateNode,l,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=Ao(a),e,n,l),Ca(n,a),!1}n=n.return}while(null!==n);return!1}(e,a,t,n,yc))return Nc=1,zo(e,Xl(n,e.current)),void(gc=null)}catch(i){if(null!==a)throw gc=a,i;return Nc=1,zo(e,Xl(n,e.current)),void(gc=null)}32768&t.flags?(mr||1===l?e=!0:kc||536870912&yc?e=!1:(xc=e=!0,(2===l||9===l||3===l||6===l)&&(null!==(l=Pa.current)&&13===l.tag&&(l.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,l,a,i,o,s,c){e.cancelPendingCommit=null;do{ku()}while(0!==Fc);if(6&pc)throw Error(r(327));if(null!==t){if(t===e.current)throw Error(r(177));if(i=t.lanes|t.childLanes,function(e,t,n,l,r,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!==l&&Le(e,l,0),0!==a&&0===r&&0!==e.tag&&(e.suspendedLanes|=a&~(i&~t))}(e,n,i|=Il,o,s,c),e===fc&&(gc=fc=null,yc=0),Uc=t,jc=e,Bc=n,qc=i,Wc=a,Vc=l,10256&t.subtreeFlags||10256&t.flags?(e.callbackNode=null,e.callbackPriority=0,ie(he,function(){return Cu(),null})):(e.callbackNode=null,e.callbackPriority=0),l=!!(13878&t.flags),13878&t.subtreeFlags||l){l=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,il(e=al(e))){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var l=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(l&&0!==l.rangeCount){n=l.anchorNode;var a=l.anchorOffset,i=l.focusNode;l=l.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!==l&&3!==b.nodeType||(c=o+l),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===l&&(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,l=n.stateNode;try{var p=No(n.type,a);e=l.getSnapshotBeforeUpdate(p,i),l.__reactInternalSnapshotBeforeUpdate=e}catch(g){Nu(n,n.return,g)}}break;case 3:if(1024&e)if(9===(n=(e=t.stateNode.containerInfo).nodeType))Id(e);else if(1===n)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Id(e);break;default:e.textContent=""}break;default:if(1024&e)throw Error(r(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=l}}Fc=1,yu(),vu(),wu()}}function yu(){if(1===Fc){Fc=0;var e=jc,t=Uc,n=!!(13878&t.flags);if(13878&t.subtreeFlags||n){n=D.T,D.T=null;var l=O.p;O.p=2;var r=pc;pc|=4;try{Ks(t,e);var a=gd,i=al(e.containerInfo),o=a.focusedElem,s=a.selectionRange;if(i!==o&&o&&o.ownerDocument&&rl(o.ownerDocument.documentElement,o)){if(null!==s&&il(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=ll(o,p),y=ll(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=r,O.p=l,D.T=n}}e.current=t,Fc=2}}function vu(){if(2===Fc){Fc=0;var e=jc,t=Uc,n=!!(8772&t.flags);if(8772&t.subtreeFlags||n){n=D.T,D.T=null;var l=O.p;O.p=2;var r=pc;pc|=4;try{Ds(e,t.alternate,t)}finally{pc=r,O.p=l,D.T=n}}Fc=3}}function wu(){if(4===Fc||3===Fc){Fc=0,ce();var e=jc,t=Uc,n=Bc,l=Vc;10256&t.subtreeFlags||10256&t.flags?Fc=5:(Fc=0,Uc=jc=null,xu(e,e.pendingLanes));var r=e.pendingLanes;if(0===r&&(Rc=null),Fe(n),t=t.stateNode,we&&"function"==typeof we.onCommitFiberRoot)try{we.onCommitFiberRoot(ve,t,void 0,!(128&~t.current.flags))}catch(s){}if(null!==l){t=D.T,r=O.p,O.p=2,D.T=null;try{for(var a=e.onRecoverableError,i=0;i<l.length;i++){var o=l[i];a(o.value,{componentStack:o.stack})}}finally{D.T=t,O.p=r}}3&Bc&&ku(),Ou(e),r=e.pendingLanes,261930&n&&42&r?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,Br(t)))}function ku(){return yu(),vu(),wu(),Cu()}function Cu(){if(5!==Fc)return!1;var e=jc,t=qc;qc=0;var n=Fe(Bc),l=D.T,a=O.p;try{O.p=32>n?32:n,D.T=null,n=Wc,Wc=null;var i=jc,o=Bc;if(Fc=0,Uc=jc=null,Bc=0,6&pc)throw Error(r(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=l,xu(e,t)}}function Su(e,t,n){t=Xl(n,t),null!==(e=xa(e,t=Io(e.stateNode,t,2),2))&&(Pe(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 l=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof l.componentDidCatch&&(null===Rc||!Rc.has(l))){e=Xl(n,e),null!==(l=xa(t,n=Ao(2),2))&&(Mo(n,l,t,e),Pe(l,2),Ou(l));break}}t=t.return}}function Eu(e,t,n){var l=e.pingCache;if(null===l){l=e.pingCache=new hc;var r=/* @__PURE__ */new Set;l.set(t,r)}else void 0===(r=l.get(t))&&(r=/* @__PURE__ */new Set,l.set(t,r));r.has(n)||(Cc=!0,r.add(n),e=$u.bind(null,e,t,n),t.then(e,e))}function $u(e,t,n){var l=e.pingCache;null!==l&&l.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,fc===e&&(yc&n)===n&&(4===Nc||3===Nc&&(62914560&yc)===yc&&300>ue()-Pc?!(2&pc)&&lu(e,0):_c|=n,Tc===yc&&(Tc=0)),Ou(e)}function _u(e,t){0===t&&(t=Ae()),null!==(e=Ll(e,t))&&(Pe(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 l=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(r(314))}null!==l&&l.delete(t),_u(e,n)}var Iu=null,Au=null,Mu=!1,Pu=!1,Lu=!1,Du=0;function Ou(e){e!==Au&&null===e.next&&(null===Au?Iu=Au=e:Au=Au.next=e),Pu=!0,Mu||(Mu=!0,Ed(function(){6&pc?ie(be,Fu):ju()}))}function Ru(e,t){if(!Lu&&Pu){Lu=!0;do{for(var n=!1,l=Iu;null!==l;){if(0!==e){var r=l.pendingLanes;if(0===r)var a=0;else{var i=l.suspendedLanes,o=l.pingedLanes;a=(1<<31-ke(42|e)+1)-1,a=201326741&(a&=r&~(i&~o))?201326741&a|1:a?2|a:0}0!==a&&(n=!0,qu(l,a))}else a=yc,!(3&(a=ze(l,l===fc?a:0,null!==l.cancelPendingCommit||-1!==l.timeoutHandle)))||Te(l,a)||(n=!0,qu(l,a));l=l.next}}while(n);Lu=!1}}function Fu(){ju()}function ju(){Pu=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,l=Iu;null!==l;){var r=l.next,a=Uu(l,t);0===a?(l.next=null,null===n?Iu=r:n.next=r,null===r&&(Au=n)):(n=l,(0!==e||3&a)&&(Pu=!0)),l=r}0!==Fc&&5!==Fc||Ru(e),0!==Du&&(Du=0)}function Uu(e,t){for(var n=e.suspendedLanes,l=e.pingedLanes,r=e.expirationTimes,a=-62914561&e.pendingLanes;0<a;){var i=31-ke(a),o=1<<i,s=r[i];-1===s?0!==(o&n)&&0===(o&l)||(r[i]=Ie(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),l=e.callbackNode,0===n||e===t&&(2===vc||9===vc)||null!==e.cancelPendingCommit)return null!==l&&null!==l&&oe(l),e.callbackNode=null,e.callbackPriority=0;if(!(3&n)||Te(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==l&&oe(l),Fe(n)){case 2:case 8:n=me;break;case 32:default:n=he;break;case 268435456:n=fe}return l=Bu.bind(null,e),n=ie(n,l),e.callbackPriority=t,e.callbackNode=n,t}return null!==l&&null!==l&&oe(l),e.callbackPriority=2,e.callbackNode=null,2}function Bu(e,t){if(0!==Fc&&5!==Fc)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ku()&&e.callbackNode!==n)return null;var l=yc;return 0===(l=ze(e,e===fc?l:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(Yc(e,l,t),Uu(e,ue()),null!=e.callbackNode&&e.callbackNode===n?Bu.bind(null,e):null)}function qu(e,t){if(ku())return null;Yc(e,t,!0)}function Wu(){if(0===Du){var e=Vr;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<El.length;Ku++){var Gu=El[Ku];$l(Gu.toLowerCase(),"on"+(Gu[0].toUpperCase()+Gu.slice(1)))}$l(yl,"onAnimationEnd"),$l(vl,"onAnimationIteration"),$l(wl,"onAnimationStart"),$l("dblclick","onDoubleClick"),$l("focusin","onFocus"),$l("focusout","onBlur"),$l(xl,"onTransitionRun"),$l(kl,"onTransitionStart"),$l(Cl,"onTransitionCancel"),$l(Sl,"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(" "),Xu=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Qu));function Yu(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var l=e[n],r=l.event;l=l.listeners;e:{var a=void 0;if(t)for(var i=l.length-1;0<=i;i--){var o=l[i],s=o.instance,c=o.currentTarget;if(o=o.listener,s!==a&&r.isPropagationStopped())break e;a=o,r.currentTarget=c;try{a(r)}catch(u){_l(u)}r.currentTarget=null,a=s}else for(i=0;i<l.length;i++){if(s=(o=l[i]).instance,c=o.currentTarget,o=o.listener,s!==a&&r.isPropagationStopped())break e;a=o,r.currentTarget=c;try{a(r)}catch(u){_l(u)}r.currentTarget=null,a=s}}}}function Ju(e,t){var n=t[He];void 0===n&&(n=t[He]=/* @__PURE__ */new Set);var l=e+"__bubble";n.has(l)||(nd(t,e,2,!1),n.add(l))}function Zu(e,t,n){var l=0;t&&(l|=4),nd(n,e,l,t)}var ed="_reactListening"+Math.random().toString(36).slice(2);function td(e){if(!e[ed]){e[ed]=!0,lt.forEach(function(t){"selectionchange"!==t&&(Xu.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,l){switch(_b(t)){case 2:var r=kb;break;case 8:r=Cb;break;default:r=Sb}n=r.bind(null,t,n,e),r=void 0,!Wt||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(r=!0),l?void 0!==r?e.addEventListener(t,n,{capture:!0,passive:r}):e.addEventListener(t,n,!0):void 0!==r?e.addEventListener(t,n,{passive:r}):e.addEventListener(t,n,!1)}function ld(e,t,n,l,r){var a=l;if(!(1&t||2&t||null===l))e:for(;;){if(null===l)return;var o=l.tag;if(3===o||4===o){var s=l.stateNode.containerInfo;if(s===r)break;if(4===o)for(o=l.return;null!==o;){var c=o.tag;if((3===c||4===c)&&o.stateNode.containerInfo===r)return;o=o.return}for(;null!==s;){if(null===(o=Je(s)))return;if(5===(c=o.tag)||6===c||26===c||27===c){l=a=o;continue e}s=s.parentNode}}l=l.return}Ut(function(){var l=a,r=Dt(n),o=[];e:{var s=Nl.get(e);if(void 0!==s){var c=rn,u=e;switch(e){case"keypress":if(0===Xt(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 yl:case vl:case wl:c=bn;break;case Sl: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=l;null!==p;){var f=p;if(h=f.stateNode,5!==(f=f.tag)&&26!==f&&27!==f||null===h||null===m||null!=(f=Bt(p,m))&&d.push(rd(p,f,h)),b)break;p=p.return}0<d.length&&(s=new c(s,u,null,n,r),o.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=r.window===r?r:(s=r.ownerDocument)?s.defaultView||s.parentWindow:window,c?(c=l,null!==(u=(u=n.relatedTarget||n.toElement)?Je(u):null)&&(b=i(u),d=u.tag,u!==b||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=l),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,r)).target=b,s.relatedTarget=h,f=null,Je(r)===l&&((d=new d(m,p+"enter",u,n,r)).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(o,s,c,d,!1),null!==u&&null!==b&&od(o,b,u,d,!0)}if("select"===(c=(s=l?et(l):window).nodeName&&s.nodeName.toLowerCase())||"input"===c&&"file"===s.type)var y=qn;else if(On(s))if(Wn)y=Zn;else{y=Yn;var v=Xn}else!(c=s.nodeName)||"input"!==c.toLowerCase()||"checkbox"!==s.type&&"radio"!==s.type?l&&Tt(l.elementType)&&(y=qn):y=Jn;switch(y&&(y=y(e,l))?Rn(o,y,n,r):(v&&v(e,s,l),"focusout"===e&&l&&"number"===s.type&&null!=l.memoizedProps.value&&kt(s,"number",s.value)),v=l?et(l):window,e){case"focusin":(On(v)||"true"===v.contentEditable)&&(sl=v,cl=l,ul=null);break;case"focusout":ul=cl=sl=null;break;case"mousedown":dl=!0;break;case"contextmenu":case"mouseup":case"dragend":dl=!1,bl(o,n,r);break;case"selectionchange":if(ol)break;case"keydown":case"keyup":bl(o,n,r)}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=r)?Ht.value:Ht.textContent,Ln=!0)),0<(v=ad(l,x)).length&&(x=new hn(x,e,null,n,r),o.push({event:x,listeners:v}),w?x.data=w:null!==(w=Pn(n))&&(x.data=w))),(w=zn?function(e,t){switch(e){case"compositionend":return Pn(t);case"keypress":return 32!==t.which?null:(An=!0,In);case"textInput":return(e=t.data)===In&&An?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(l,"onBeforeInput")).length&&(v=new hn("onBeforeInput","beforeinput",null,n,r),o.push({event:v,listeners:x}),v.data=w)),function(e,t,n,l,r){if("submit"===t&&n&&n.stateNode===r){var a=Vu((r[We]||null).action),i=l.submitter;i&&null!==(t=(t=i[We]||null)?Vu(t.formAction):i.getAttribute("formAction"))&&(a=t,i=null);var o=new rn("action","action",null,l,r);e.push({event:o,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(0!==Du){var e=i?Hu(r,i):new FormData(r);no(n,{pending:!0,data:e,method:r.method,action:a},null,e)}}else"function"==typeof a&&(o.preventDefault(),e=i?Hu(r,i):new FormData(r),no(n,{pending:!0,data:e,method:r.method,action:a},a,e))},currentTarget:r}]})}}(o,e,l,n,r)}Yu(o,t)})}function rd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ad(e,t){for(var n=t+"Capture",l=[];null!==e;){var r=e,a=r.stateNode;if(5!==(r=r.tag)&&26!==r&&27!==r||null===a||(null!=(r=Bt(e,n))&&l.unshift(rd(e,r,a)),null!=(r=Bt(e,t))&&l.push(rd(e,r,a))),3===e.tag)return l;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,l,r){for(var a=t._reactName,i=[];null!==n&&n!==l;){var o=n,s=o.alternate,c=o.stateNode;if(o=o.tag,null!==s&&s===l)break;5!==o&&26!==o&&27!==o||null===c||(s=c,r?null!=(c=Bt(n,a))&&i.unshift(rd(n,c,s)):r||null!=(c=Bt(n,a))&&i.push(rd(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,l,a,i){switch(n){case"children":"string"==typeof l?"body"===t||"textarea"===t&&""===l||Et(e,l):("number"==typeof l||"bigint"==typeof l)&&"body"!==t&&Et(e,""+l);break;case"className":dt(e,"class",l);break;case"tabIndex":dt(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":dt(e,n,l);break;case"style":zt(e,l,i);break;case"data":if("object"!==t){dt(e,"data",l);break}case"src":case"href":if(""===l&&("a"!==t||"href"!==n)){e.removeAttribute(n);break}if(null==l||"function"==typeof l||"symbol"==typeof l||"boolean"==typeof l){e.removeAttribute(n);break}l=Mt(""+l),e.setAttribute(n,l);break;case"action":case"formAction":if("function"==typeof l){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==l||"symbol"==typeof l||"boolean"==typeof l){e.removeAttribute(n);break}l=Mt(""+l),e.setAttribute(n,l);break;case"onClick":null!=l&&(e.onclick=Pt);break;case"onScroll":null!=l&&Ju("scroll",e);break;case"onScrollEnd":null!=l&&Ju("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=l){if("object"!=typeof l||!("__html"in l))throw Error(r(61));if(null!=(n=l.__html)){if(null!=a.children)throw Error(r(60));e.innerHTML=n}}break;case"multiple":e.multiple=l&&"function"!=typeof l&&"symbol"!=typeof l;break;case"muted":e.muted=l&&"function"!=typeof l&&"symbol"!=typeof l;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":break;case"xlinkHref":if(null==l||"function"==typeof l||"boolean"==typeof l||"symbol"==typeof l){e.removeAttribute("xlink:href");break}n=Mt(""+l),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!=l&&"function"!=typeof l&&"symbol"!=typeof l?e.setAttribute(n,""+l):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":l&&"function"!=typeof l&&"symbol"!=typeof l?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":!0===l?e.setAttribute(n,""):!1!==l&&null!=l&&"function"!=typeof l&&"symbol"!=typeof l?e.setAttribute(n,l):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":null!=l&&"function"!=typeof l&&"symbol"!=typeof l&&!isNaN(l)&&1<=l?e.setAttribute(n,l):e.removeAttribute(n);break;case"rowSpan":case"start":null==l||"function"==typeof l||"symbol"==typeof l||isNaN(l)?e.removeAttribute(n):e.setAttribute(n,l);break;case"popover":Ju("beforetoggle",e),Ju("toggle",e),ut(e,"popover",l);break;case"xlinkActuate":bt(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":bt(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":bt(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":bt(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":bt(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":bt(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":bt(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":bt(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":bt(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":ut(e,"is",l);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=It.get(n)||n,l)}}function md(e,t,n,l,a,i){switch(n){case"style":zt(e,l,i);break;case"dangerouslySetInnerHTML":if(null!=l){if("object"!=typeof l||!("__html"in l))throw Error(r(61));if(null!=(n=l.__html)){if(null!=a.children)throw Error(r(60));e.innerHTML=n}}break;case"children":"string"==typeof l?Et(e,l):("number"==typeof l||"bigint"==typeof l)&&Et(e,""+l);break;case"onScroll":null!=l&&Ju("scroll",e);break;case"onScrollEnd":null!=l&&Ju("scrollend",e);break;case"onClick":null!=l&&(e.onclick=Pt);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:rt.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 l)?n in e?e[n]=l:!0===l?e.setAttribute(n,""):ut(e,n,l):("function"!=typeof i&&null!==i&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,l,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 l,a=!1,i=!1;for(l in n)if(n.hasOwnProperty(l)){var o=n[l];if(null!=o)switch(l){case"src":a=!0;break;case"srcSet":i=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(r(137,t));default:bd(e,t,l,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=l=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":l=d;break;case"defaultValue":s=d;break;case"children":case"dangerouslySetInnerHTML":if(null!=d)throw Error(r(137,t));break;default:bd(e,t,a,d,n,null)}}return void xt(e,l,s,c,u,o,i,!1);case"select":for(i in Ju("invalid",e),a=o=l=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case"value":l=s;break;case"defaultValue":o=s;break;case"multiple":a=s;default:bd(e,t,i,s,n,null)}return t=l,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),l=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":l=s;break;case"dangerouslySetInnerHTML":if(null!=s)throw Error(r(91));break;default:bd(e,t,o,s,n,null)}return void Nt(e,a,i,l);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(r(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,l=0;do{var r=n.nextSibling;if(e.removeChild(n),r&&8===r.nodeType)if("/$"===(n=r.data)||"/&"===n){if(0===l)return e.removeChild(r),void Hb(t);l--}else if("$"===n||"$?"===n||"$~"===n||"$!"===n||"&"===n)l++;else if("html"===n)jd(e.ownerDocument.documentElement);else if("head"===n){jd(n=e.ownerDocument.head);for(var a=n.firstChild;a;){var i=a.nextSibling,o=a.nodeName;a[Xe]||"SCRIPT"===o||"STYLE"===o||"LINK"===o&&"stylesheet"===a.rel.toLowerCase()||n.removeChild(a),a=i}}else"body"===n&&jd(e.ownerDocument.body);n=r}while(n);Hb(t)}function Td(e,t){var n=e;e=0;do{var l=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||""),l&&8===l.nodeType)if("/$"===(n=l.data)){if(0===e)break;e--}else"$"!==n&&"$?"!==n&&"$~"!==n&&"$!"!==n||e++;n=l}while(n)}function Id(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":Id(n),Ye(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===n.rel.toLowerCase())continue}e.removeChild(n)}}function Ad(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 Pd(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 Fd(e,t,n){switch(t=yd(n),e){case"html":if(!(e=t.documentElement))throw Error(r(452));return e;case"head":if(!(e=t.head))throw Error(r(453));return e;case"body":if(!(e=t.body))throw Error(r(454));return e;default:throw Error(r(451))}}function jd(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ye(e)}var Ud=/* @__PURE__ */new Map,Bd=/* @__PURE__ */new Set;function qd(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?ro(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 l=Vd;if(l&&e&&t){var r='link[rel="preload"][as="'+vt(t)+'"]';"image"===t&&n&&n.imageSrcSet?(r+='[imagesrcset="'+vt(n.imageSrcSet)+'"]',"string"==typeof n.imageSizes&&(r+='[imagesizes="'+vt(n.imageSizes)+'"]')):r+='[href="'+vt(e)+'"]';var a=r;switch(t){case"style":a=Gd(e);break;case"script":a=Yd(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!==l.querySelector(r)||"style"===t&&l.querySelector(Qd(a))||"script"===t&&l.querySelector(Jd(a))||(hd(t=l.createElement("link"),"link",e),nt(t),l.head.appendChild(t)))}},m:function(e,t){Wd.m(e,t);var n=Vd;if(n&&e){var l=t&&"string"==typeof t.as?t.as:"script",r='link[rel="modulepreload"][as="'+vt(l)+'"][href="'+vt(e)+'"]',a=r;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":a=Yd(e)}if(!Ud.has(a)&&(e=b({rel:"modulepreload",href:e},t),Ud.set(a,e),null===n.querySelector(r))){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Jd(a)))return}hd(l=n.createElement("link"),"link",e),nt(l),n.head.appendChild(l)}}},X:function(e,t){Wd.X(e,t);var n=Vd;if(n&&e){var l=tt(n).hoistableScripts,r=Yd(e),a=l.get(r);a||((a=n.querySelector(Jd(r)))||(e=b({src:e,async:!0},t),(t=Ud.get(r))&&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},l.set(r,a))}},S:function(e,t,n){Wd.S(e,t,n);var l=Vd;if(l&&e){var r=tt(l).hoistableStyles,a=Gd(e);t=t||"default";var i=r.get(a);if(!i){var o={loading:0,preload:null};if(i=l.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=l.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,l)}i={type:"stylesheet",instance:i,count:1,state:o},r.set(a,i)}}},M:function(e,t){Wd.M(e,t);var n=Vd;if(n&&e){var l=tt(n).hoistableScripts,r=Yd(e),a=l.get(r);a||((a=n.querySelector(Jd(r)))||(e=b({src:e,async:!0,type:"module"},t),(t=Ud.get(r))&&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},l.set(r,a))}}};var Vd="undefined"==typeof document?null:document;function Hd(e,t,n){var l=Vd;if(l&&"string"==typeof t&&t){var r=vt(t);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof n&&(r+='[crossorigin="'+n+'"]'),Bd.has(r)||(Bd.add(r),e={rel:e,crossOrigin:n,href:t},null===l.querySelector(r)&&(hd(t=l.createElement("link"),"link",e),nt(t),l.head.appendChild(t)))}}function Kd(e,t,n,l){var a,i,o,s,c=(c=G.current)?qd(c):null;if(!c)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof n.precedence&&"string"==typeof n.href?(t=Gd(n.href),(l=(n=tt(c).hoistableStyles).get(t))||(l={type:"style",instance:null,count:0,state:null},n.set(t,l)),l):{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===l)throw Error(r(528,""));return d}if(t&&null!==l)throw Error(r(529,""));return null;case"script":return t=n.async,"string"==typeof(n=n.src)&&t&&"function"!=typeof t&&"symbol"!=typeof t?(t=Yd(n),(l=(n=tt(c).hoistableScripts).get(t))||(l={type:"script",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function Gd(e){return'href="'+vt(e)+'"'}function Qd(e){return'link[rel="stylesheet"]['+e+"]"}function Xd(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Yd(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 l=e.querySelector('style[data-href~="'+vt(n.href)+'"]');if(l)return t.instance=l,nt(l),l;var a=b({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return nt(l=(e.ownerDocument||e).createElement("style")),hd(l,"style",a),eb(l,n.precedence,e),t.instance=l;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;l=Xd(n),(a=Ud.get(a))&&tb(l,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",l),t.state.loading|=4,eb(i,n.precedence,e),t.instance=i;case"script":return i=Yd(n.src),(a=e.querySelector(Jd(i)))?(t.instance=a,nt(a),a):(l=n,(a=Ud.get(i))&&nb(l=b({},n),a),nt(a=(e=e.ownerDocument||e).createElement("script")),hd(a,"link",l),e.head.appendChild(a),t.instance=a);case"void":return null;default:throw Error(r(443,t.type))}else"stylesheet"===t.type&&!(4&t.state.loading)&&(l=t.instance,t.state.loading|=4,eb(l,n.precedence,e));return t.instance}function eb(e,t,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=l.length?l[l.length-1]:null,a=r,i=0;i<l.length;i++){var o=l[i];if(o.dataset.precedence===t)a=o;else if(a!==r)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 lb=null;function rb(e,t,n){if(null===lb){var l=/* @__PURE__ */new Map,r=lb=/* @__PURE__ */new Map;r.set(n,l)}else(l=(r=lb).get(n))||(l=/* @__PURE__ */new Map,r.set(n,l));if(l.has(e))return l;for(l.set(e,null),n=n.getElementsByTagName(e),r=0;r<n.length;r++){var a=n[r];if(!(a[Xe]||a[qe]||"link"===e&&"stylesheet"===a.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==a.namespaceURI){var i=a.getAttribute(t)||"";i=e+i;var o=l.get(i);o?o.push(a):l.set(i,[a])}}return l}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 l=n.get(null);else{n=/* @__PURE__ */new Map,cb.set(e,n);for(var r=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a<r.length;a++){var i=r[a];"LINK"!==i.nodeName&&"not all"===i.getAttribute("media")||(n.set(i.dataset.precedence,i),l=i)}l&&n.set(null,l)}i=(r=t.instance).getAttribute("data-precedence"),(a=n.get(i)||l)===l&&n.set(null,r),n.set(i,r),this.count++,l=sb.bind(this),r.addEventListener("load",l),r.addEventListener("error",l),a?a.parentNode.insertBefore(r,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(r,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,l,r,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=l,this.onUncaughtError=r,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,l,r,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=jl(3,null,null,t),e.current=a,a.stateNode=e,(t=Ur()).refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:l,isDehydrated:n,cache:t},ya(a),e}function pb(e){return e?e=Rl:Rl}function fb(e,t,n,l,r,a){r=pb(r),null===l.context?l.context=r:l.pendingContext=r,(l=wa(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(l.callback=a),null!==(n=xa(e,l,t))&&(Xc(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=Ll(e,67108864);null!==t&&Xc(t,0,67108864),yb(e,67108864)}}function wb(e){if(13===e.tag||31===e.tag){var t=Gc(),n=Ll(e,t=Re(t));null!==n&&Xc(n,0,t),yb(e,t)}}var xb=!0;function kb(e,t,n,l){var r=D.T;D.T=null;var a=O.p;try{O.p=2,Sb(e,t,n,l)}finally{O.p=a,D.T=r}}function Cb(e,t,n,l){var r=D.T;D.T=null;var a=O.p;try{O.p=8,Sb(e,t,n,l)}finally{O.p=a,D.T=r}}function Sb(e,t,n,l){if(xb){var r=Nb(l);if(null===r)ld(e,t,l,Eb,n),Ob(e,l);else if(function(e,t,n,l,r){switch(t){case"focusin":return Tb=Rb(Tb,e,t,n,l,r),!0;case"dragenter":return Ib=Rb(Ib,e,t,n,l,r),!0;case"mouseover":return Ab=Rb(Ab,e,t,n,l,r),!0;case"pointerover":var a=r.pointerId;return Mb.set(a,Rb(Mb.get(a)||null,e,t,n,l,r)),!0;case"gotpointercapture":return a=r.pointerId,Pb.set(a,Rb(Pb.get(a)||null,e,t,n,l,r)),!0}return!1}(r,e,t,n,l))l.stopPropagation();else if(Ob(e,l),4&t&&-1<Db.indexOf(e)){for(;null!==r;){var a=Ze(r);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=Ll(a,2))&&Xc(o,0,2),tu(),yb(a,2)}if(null===(a=Nb(l))&&ld(e,t,l,Eb,n),a===r)break;r=a}null!==r&&l.stopPropagation()}else ld(e,t,l,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=i(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,Ib=null,Ab=null,Mb=/* @__PURE__ */new Map,Pb=/* @__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":Ib=null;break;case"mouseover":case"mouseout":Ab=null;break;case"pointerover":case"pointerout":Mb.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pb.delete(t.pointerId)}}function Rb(e,t,n,l,r,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:l,nativeEvent:a,targetContainers:[r]},null!==t&&(null!==(t=Ze(t))&&vb(t)),e):(e.eventSystemFlags|=l,t=e.targetContainers,null!==r&&-1===t.indexOf(r)&&t.push(r),e)}function Fb(e){var t=Je(e.target);if(null!==t){var n=i(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 jb(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 l=new(n=e.nativeEvent).constructor(n.type,n);Lt=l,n.target.dispatchEvent(l),Lt=null,t.shift()}return!0}function Ub(e,t,n){jb(e)&&n.delete(t)}function Bb(){zb=!1,null!==Tb&&jb(Tb)&&(Tb=null),null!==Ib&&jb(Ib)&&(Ib=null),null!==Ab&&jb(Ab)&&(Ab=null),Mb.forEach(Ub),Pb.forEach(Ub)}function qb(e,n){e.blockedOn===n&&(e.blockedOn=null,zb||(zb=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Bb)))}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],l=e[t+1],r=e[t+2];if("function"!=typeof l){if(null===$b(l||n))continue;break}var a=Ze(n);null!==a&&(e.splice(t,3),t-=3,no(a,{pending:!0,data:r,method:n.method,action:l},l,r))}}))}function Hb(e){function t(t){return qb(t,e)}null!==Tb&&qb(Tb,e),null!==Ib&&qb(Ib,e),null!==Ab&&qb(Ab,e),Mb.forEach(t),Pb.forEach(t);for(var n=0;n<Lb.length;n++){var l=Lb[n];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Lb.length&&null===(n=Lb[0]).blockedOn;)Fb(n),null===n.blockedOn&&Lb.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(l=0;l<n.length;l+=3){var r=n[l],a=n[l+1],i=r[We]||null;if("function"==typeof a)i||Vb(n);else if(i){var o=null;if(a&&a.hasAttribute("formAction")){if(r=a,i=a[We]||null)o=i.formAction;else if(null!==$b(r))continue}else o=i.action;"function"==typeof o?n[l+1]=o:(n.splice(l,3),l-=3),Vb(n)}}}function Kb(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return r=e})},focusReset:"manual",scroll:"manual"})}function t(){null!==r&&(r(),r=null),l||setTimeout(n,20)}function n(){if(!l&&!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 l=!1,r=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){l=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),null!==r&&(r(),r=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(r(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=je();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&&Fb(e)}};var Xb=n.version;if("19.2.4"!==Xb)throw Error(r(527,Xb,"19.2.4"));O.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(r(188));throw e=Object.keys(e).join(","),Error(r(268,e))}return e=function(e){var t=e.alternate;if(!t){if(null===(t=i(e)))throw Error(r(188));return t!==e?null:e}for(var n=e,l=t;;){var a=n.return;if(null===a)break;var o=a.alternate;if(null===o){if(null!==(l=a.return)){n=l;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return u(a),e;if(o===l)return u(a),t;o=o.sibling}throw Error(r(188))}if(n.return!==l.return)n=a,l=o;else{for(var s=!1,c=a.child;c;){if(c===n){s=!0,n=a,l=o;break}if(c===l){s=!0,l=a,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,l=a;break}if(c===l){s=!0,l=o,n=a;break}c=c.sibling}if(!s)throw Error(r(189))}}if(n.alternate!==l)throw Error(r(190))}if(3!==n.tag)throw Error(r(188));return n.stateNode.current===n?e:t}(t),e=null===(e=null!==e?d(e):null)?null:e.stateNode};var Yb={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:D,reconcilerVersion:"19.2.4"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Jb=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jb.isDisabled&&Jb.supportsFiber)try{ve=Jb.inject(Yb),we=Jb}catch(em){}}return v.createRoot=function(e,t){if(!a(e))throw Error(r(299));var n=!1,l="",i=Eo,o=$o,s=_o;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(l=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,l,null,i,o,s,Kb),e[Ve]=t.current,td(e),new Gb(t)},v.hydrateRoot=function(e,t,n){if(!a(e))throw Error(r(299));var l=!1,i="",o=Eo,s=$o,c=_o,u=null;return null!=n&&(!0===n.unstable_strictMode&&(l=!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,l,i,u,o,s,c,Kb)).context=pb(null),n=t.current,(i=wa(l=Re(l=Gc()))).callback=null,xa(n,i,l),n=l,t.current.lanes=n,Pe(t,n),Ou(t),e[Ve]=t.current,td(e),new Qb(t)},v.version="19.2.4",v}var S=(g||(g=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)}}(),y.exports=C()),y.exports);const N=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 E(e={}){const{useContainerQuery:l=!1,containerElement:r=null}=e,[a,i]=t(()=>{const e=l&&r?N.getContainerWidth(r):"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:N.supportsContainerQueries}}});n(()=>{if("undefined"==typeof window)return;const e=()=>{const e=window.innerWidth,t=window.innerHeight,n=l&&r?N.getContainerWidth(r):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:N.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)}},[l,r]);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 $({tabs:e,active:t,onChange:n}){const{isMobile:l,isTouch:r}=E(),a=["limbo-tabs","lb:flex","lb:gap-4","lb:border-b-2","lb:border-brand-blue-200","lb:mb-6",l&&"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"),l&&t.push("lb:min-w-[120px]","lb:min-h-[44px]","lb:text-base","lb:shrink-0"),r&&t.push("lb:touch-manipulation"),t.join(" ")};/* @__PURE__ */
|
|
2
|
-
return s("div",{className:a,role:"tablist","aria-label":"Opciones de navegación",style:l?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:e.map(l=>{const a=t===l.id;return!a&&l.hideNonActive?null:/* @__PURE__ */s("button",{"data-tab-id":l.id,onClick:()=>n(l.id),onKeyDown:t=>((t,l)=>{const r=e.findIndex(e=>e.id===l);let a=r;switch(t.key){case"ArrowLeft":case"ArrowUp":t.preventDefault(),a=r>0?r-1:e.length-1;break;case"ArrowRight":case"ArrowDown":t.preventDefault(),a=r<e.length-1?r+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(l);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,l.id),className:i(a),role:"tab","aria-selected":a,"aria-controls":`tabpanel-${l.id}`,tabIndex:a?0:-1,id:`tab-${l.id}`,style:r?{WebkitTapHighlightColor:"transparent"}:void 0,children:l.label},l.id)})})}const _=/* @__PURE__ */new Map,z=/* @__PURE__ */new Map,T=18e5,I=async e=>{if(!e)return Promise.reject(new Error("No URL provided"));const t=_.get(e);if(t&&Date.now()-t.timestamp<T)return t.blobUrl;if(z.has(e))return z.get(e);const n=(async()=>{try{let n,l,r=0;for(;r<2;)try{if(n=await fetch(e),!n.ok)throw new Error(`Failed to fetch image: ${n.status}`);break}catch(t){if(l=t,r+=1,r>=2)throw l}const a=await n.blob(),i=URL.createObjectURL(a);return _.set(e,{blobUrl:i,timestamp:Date.now(),size:a.size}),i}finally{z.delete(e)}})();return z.set(e,n),n},A=e=>{const t=_.get(e);return t&&Date.now()-t.timestamp<T?t.blobUrl:e},M=e=>{const t=_.get(e);return t&&Date.now()-t.timestamp<T},P=async(e,t=4)=>{const n=/* @__PURE__ */new Map,l=e.filter(e=>!M(e));if(0===l.length)return e.forEach(e=>{n.set(e,A(e))}),n;const r=[];for(let a=0;a<l.length;a+=t)r.push(l.slice(a,a+t));for(const a of r){(await Promise.allSettled(a.map(async e=>({url:e,blobUrl:await I(e)})))).forEach(e=>{"fulfilled"===e.status&&n.set(e.value.url,e.value.blobUrl)})}return n},L="http://localhost",D="https://limbo.lefebvre.es";let O={publicKey:null,token:null,authMode:null,tokenEndpoint:null,tokenProvider:null,prod:!1};function R({prod:e=!1}={}){return e?D:L}function F(){return{...O}}async function j({endpoint:e,method:t="GET",body:n=null,prod:l=!1,basePath:r="",customHeaders:a={},isFormData:i=!1,useJWT:o=!0}){try{const s=l||O.prod,c=await async function({isFormData:e=!1,useJWT:t=!0,customHeaders:n={}}={}){const l={"Access-Control-Allow-Origin":`${window.location.hostname||"*"}`};e||(l["Content-Type"]="application/json");let r=O.token;if(t){if("jwt"===O.authMode&&O.tokenProvider&&!r)try{console.log("🔑 Calling tokenProvider..."),r=await O.tokenProvider(),console.log("✅ Token obtained from tokenProvider"),O.token=r}catch(a){throw console.error("❌ tokenProvider failed:",a),new Error("Failed to obtain token from tokenProvider: "+a.message)}else if("session"===O.authMode&&!r)try{const e=R(O),t=O.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:O.publicKey}),credentials:"include"});if(!n.ok)throw new Error(`Session auth failed: ${n.status}`);r=(await n.json()).token,O.token=r}catch(a){throw console.error("❌ Session authentication failed:",a),new Error("Failed to authenticate with session. User must be logged in.")}r?l.Authorization=`Bearer ${r}`:console.warn("⚠️ No JWT token available:",{authMode:O.authMode,hasPublicKey:!!O.publicKey,hasTokenProvider:!!O.tokenProvider})}return e&&delete l["Content-Type"],{...l,...n}}({isFormData:i,useJWT:o,customHeaders:a});"GET"===t&&!n&&c["Content-Type"]&&delete c["Content-Type"];const u=await fetch(`${R({prod:s})}${r}${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 U(){const e=F();return e?.prod||!1?"https://limbo.lefebvre.es":"https://led-dev-limbo-dev.eu.els.local"}function B(e){if(!e?.id)return null;return`${U()}/api/assets/${e.id}/download`}function q(e){if(!e)return null;if(e.startsWith("http://")||e.startsWith("https://"))return e;if(e.startsWith("/")){return`${U()}${e}`}return e}function W(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;return{result:{id:t.id,filename:t.filename||t.original_filename,mime_type:t.mime_type,file_size:t.file_size,width:t.width,height:t.height,upload_date:t.upload_date||t.created_at,processed_date:t.processed_date,processing_status:t.processing_status||t.status,url:q(t.url)||B(t),url_webp:q(t.url_webp),url_original:q(t.url_original),format:t.format,format_original:t.format_original,permanent:t.permanent??!0,expires_at:t.expires_at,metadata:t.metadata||{},variants:V(t.variants||[]),variants_count:t.variants_count||t.variants?.length||0}}}function V(e){return Array.isArray(e)?e.map(e=>({id:e.id,name:e.name,width:e.width,height:e.height,format:e.format||e.output_format,file_size:e.file_size,crop_params:e.crop_params,url:q(e.url),permanent:e.permanent??!0,expires_at:e.expires_at,created_at:e.created_at})):[]}function H(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;if(t.id&&t.url&&t.name&&!t.processing_mode&&!t.variants)return console.log("[adaptVariantGenerationFromV2] Detectado formato de /variants/upload"),{result:{id:t.id,name:t.name,width:t.width,height:t.height,format:t.format,file_size:t.file_size,url:t.url,urlSigned:t.url,status:"completed",created_at:t.created_at||/* @__PURE__ */(new Date).toISOString()}};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,urlSigned: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 K(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 G="/api";async function Q(e={}){try{const t={url_expires:"0",...e},n=`/assets?${new URLSearchParams(t).toString()}`;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&&(V(e.variants)||V(e.image_variants))||[],url:q(e.url)||B(e),url_webp:q(e.url_webp),format:e.format,permanent:e.permanent??!0,expires_at:e.expires_at,folder:e.folder||null,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 j({endpoint:n,method:"GET",basePath:G,useJWT:!0}))}catch(t){throw K(t)}}async function X(e,t=null,n=!1,l=null){try{const r=new FormData;r.append("file",e),t&&r.append("uploaded_by",t),n&&r.append("store_original",n.toString()),l&&r.append("folder",l);return function(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;return{result:{id:t.id,filename:t.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:q(t.url),url_webp:q(t.url_webp),url_original:q(t.url_original),format:t.format,format_original:t.format_original,permanent:t.permanent??!0,folder:t.folder||null,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 j({endpoint:"/assets",method:"POST",body:r,basePath:G,isFormData:!0,useJWT:!0}))}catch(r){throw K(r)}}async function Y(e,t=0){try{const l=new URLSearchParams({url_expires:t.toString()}),r=await j({endpoint:`/assets/${e}/variants?${l}`,method:"GET",basePath:G,useJWT:!0});return n=r,n?.success&&Array.isArray(n?.data?.variants)?{result:n.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.format||e.output_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:q(e.url)||B(e),permanent:e.permanent??!0,expires_at:e.expires_at,metadata:e.metadata||{},crop_data:e.crop_data||{},crop_params:e.crop_params||e.crop_data||{},parent_asset_id:e.parent_asset_id||n.data.asset_id,variant_type:e.variant_type||"crop"}))}:{result:[]}}catch(l){throw K(l)}var n}function J(){const[e,n]=t({}),[r,a]=t({}),[i,o]=t({}),s=l(async t=>{if(t&&!r[t]){if(e[t])return e[t];a(e=>({...e,[t]:!0})),o(e=>({...e,[t]:null}));try{const e=await Y(t),l=e?.result||[];return n(e=>({...e,[t]:l})),l}catch(l){return console.error("Error loading variants:",l),o(e=>({...e,[t]:l.message})),[]}finally{a(e=>({...e,[t]:!1}))}}},[e,r]),c=l(t=>e[t]||[],[e]),u=l(e=>r[e]||!1,[r]),d=l(e=>i[e]||null,[i]),b=l(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=l(async e=>(b(e),await s(e)),[b,s]),h=l(async(e,t)=>{try{return await async function(e,t){try{return await j({endpoint:`/assets/${e}/variants/${t}`,method:"DELETE",basePath:G,useJWT:!0})}catch(n){throw K(n)}}(e,t),n(n=>{const l=n[e]||[];return{...n,[e]:l.filter(e=>e.id!==t)}}),{success:!0}}catch(l){return console.error("Error deleting variant:",l),{success:!1,error:l.message}}},[]);return{loadVariants:s,getVariants:c,isLoading:u,getError:d,clearVariants:b,refreshVariants:m,removeVariant:h}}function Z({src:e,alt:a="Imagen",title:i="",subtitle:o="",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=r(null),$=r(null);n(()=>{d&&(m(1),p({x:0,y:0}),C(!1),N(!1))},[d]);const _=l(()=>{m(e=>Math.min(e+.25,5)),p({x:0,y:0})},[]),z=l(()=>{m(e=>Math.max(e-.25,.25)),p({x:0,y:0})},[]),T=l(()=>{m(1),p({x:0,y:0})},[]),I=l(()=>{m(1),p({x:0,y:0})},[]),A=l(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=l(e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.deltaY<0?_():z())},[_,z]),P=l(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=l(e=>{f&&(v(!0),p({x:e.clientX-w.x,y:e.clientY-w.y}))},[f,w]),D=l(()=>{g(!1)},[]),O=l(e=>{e.stopPropagation(),1!==b||y||(m(2),p({x:0,y:0})),v(!1)},[b,y]),R=l(e=>{e.stopPropagation(),1===b?(m(2),p({x:0,y:0})):T()},[b,T]);if(n(()=>{if(!d)return;document.addEventListener("keydown",A),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",A),document.removeEventListener("mouseup",D),document.removeEventListener("mousemove",L),document.removeEventListener("keydown",e)}},[d,A,D,L]),n(()=>(document.body.style.overflow=d?"hidden":"",()=>{document.body.style.overflow=""}),[d]),!d)return null;const F=Math.round(100*b);/* @__PURE__ */
|
|
2
|
+
return s("div",{className:a,role:"tablist","aria-label":"Opciones de navegación",style:l?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:e.map(l=>{const a=t===l.id;return!a&&l.hideNonActive?null:/* @__PURE__ */s("button",{"data-tab-id":l.id,onClick:()=>n(l.id),onKeyDown:t=>((t,l)=>{const r=e.findIndex(e=>e.id===l);let a=r;switch(t.key){case"ArrowLeft":case"ArrowUp":t.preventDefault(),a=r>0?r-1:e.length-1;break;case"ArrowRight":case"ArrowDown":t.preventDefault(),a=r<e.length-1?r+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(l);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,l.id),className:i(a),role:"tab","aria-selected":a,"aria-controls":`tabpanel-${l.id}`,tabIndex:a?0:-1,id:`tab-${l.id}`,style:r?{WebkitTapHighlightColor:"transparent"}:void 0,children:l.label},l.id)})})}const _=/* @__PURE__ */new Map,z=/* @__PURE__ */new Map,T=18e5,I=async e=>{if(!e)return Promise.reject(new Error("No URL provided"));const t=_.get(e);if(t&&Date.now()-t.timestamp<T)return t.blobUrl;if(z.has(e))return z.get(e);const n=(async()=>{try{let n,l,r=0;for(;r<2;)try{if(n=await fetch(e),!n.ok)throw new Error(`Failed to fetch image: ${n.status}`);break}catch(t){if(l=t,r+=1,r>=2)throw l}const a=await n.blob(),i=URL.createObjectURL(a);return _.set(e,{blobUrl:i,timestamp:Date.now(),size:a.size}),i}finally{z.delete(e)}})();return z.set(e,n),n},A=e=>{const t=_.get(e);return t&&Date.now()-t.timestamp<T?t.blobUrl:e},M=e=>{const t=_.get(e);return t&&Date.now()-t.timestamp<T},P=async(e,t=4)=>{const n=/* @__PURE__ */new Map,l=e.filter(e=>!M(e));if(0===l.length)return e.forEach(e=>{n.set(e,A(e))}),n;const r=[];for(let a=0;a<l.length;a+=t)r.push(l.slice(a,a+t));for(const a of r){(await Promise.allSettled(a.map(async e=>({url:e,blobUrl:await I(e)})))).forEach(e=>{"fulfilled"===e.status&&n.set(e.value.url,e.value.blobUrl)})}return n},L="https://led-dev-limbo-dev.eu.els.local",D="https://limbo.lefebvre.es";let O={publicKey:null,token:null,authMode:null,tokenEndpoint:null,tokenProvider:null,prod:!1};function R({prod:e=!1}={}){return e?D:L}function F(){return{...O}}async function j({endpoint:e,method:t="GET",body:n=null,prod:l=!1,basePath:r="",customHeaders:a={},isFormData:i=!1,useJWT:o=!0}){try{const s=l||O.prod,c=await async function({isFormData:e=!1,useJWT:t=!0,customHeaders:n={}}={}){const l={"Access-Control-Allow-Origin":`${window.location.hostname||"*"}`};e||(l["Content-Type"]="application/json");let r=O.token;if(t){if("jwt"===O.authMode&&O.tokenProvider&&!r)try{console.log("🔑 Calling tokenProvider..."),r=await O.tokenProvider(),console.log("✅ Token obtained from tokenProvider"),O.token=r}catch(a){throw console.error("❌ tokenProvider failed:",a),new Error("Failed to obtain token from tokenProvider: "+a.message)}else if("session"===O.authMode&&!r)try{const e=R(O),t=O.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:O.publicKey}),credentials:"include"});if(!n.ok)throw new Error(`Session auth failed: ${n.status}`);r=(await n.json()).token,O.token=r}catch(a){throw console.error("❌ Session authentication failed:",a),new Error("Failed to authenticate with session. User must be logged in.")}r?l.Authorization=`Bearer ${r}`:console.warn("⚠️ No JWT token available:",{authMode:O.authMode,hasPublicKey:!!O.publicKey,hasTokenProvider:!!O.tokenProvider})}return e&&delete l["Content-Type"],{...l,...n}}({isFormData:i,useJWT:o,customHeaders:a});"GET"===t&&!n&&c["Content-Type"]&&delete c["Content-Type"];const u=await fetch(`${R({prod:s})}${r}${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 U(){const e=F();return e?.prod||!1?"https://limbo.lefebvre.es":"https://led-dev-limbo-dev.eu.els.local"}function B(e){if(!e?.id)return null;return`${U()}/api/assets/${e.id}/download`}function q(e){if(!e)return null;if(e.startsWith("http://")||e.startsWith("https://"))return e;if(e.startsWith("/")){return`${U()}${e}`}return e}function W(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;return{result:{id:t.id,filename:t.filename||t.original_filename,mime_type:t.mime_type,file_size:t.file_size,width:t.width,height:t.height,upload_date:t.upload_date||t.created_at,processed_date:t.processed_date,processing_status:t.processing_status||t.status,url:q(t.url)||B(t),url_webp:q(t.url_webp),url_original:q(t.url_original),format:t.format,format_original:t.format_original,permanent:t.permanent??!0,expires_at:t.expires_at,metadata:t.metadata||{},variants:V(t.variants||[]),variants_count:t.variants_count||t.variants?.length||0}}}function V(e){return Array.isArray(e)?e.map(e=>({id:e.id,name:e.name,width:e.width,height:e.height,format:e.format||e.output_format,file_size:e.file_size,crop_params:e.crop_params,url:q(e.url),permanent:e.permanent??!0,expires_at:e.expires_at,created_at:e.created_at})):[]}function H(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;if(t.id&&t.url&&t.name&&!t.processing_mode&&!t.variants)return console.log("[adaptVariantGenerationFromV2] Detectado formato de /variants/upload"),{result:{id:t.id,name:t.name,width:t.width,height:t.height,format:t.format,file_size:t.file_size,url:t.url,urlSigned:t.url,status:"completed",created_at:t.created_at||/* @__PURE__ */(new Date).toISOString()}};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,urlSigned: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 K(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 G="/api";async function Q(e={}){try{const t={url_expires:"0",...e},n=`/assets?${new URLSearchParams(t).toString()}`;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&&(V(e.variants)||V(e.image_variants))||[],url:q(e.url)||B(e),url_webp:q(e.url_webp),format:e.format,permanent:e.permanent??!0,expires_at:e.expires_at,folder:e.folder||null,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 j({endpoint:n,method:"GET",basePath:G,useJWT:!0}))}catch(t){throw K(t)}}async function X(e,t=null,n=!1,l=null){try{const r=new FormData;r.append("file",e),t&&r.append("uploaded_by",t),n&&r.append("store_original",n.toString()),l&&r.append("folder",l);return function(e){if(!e?.success||!e?.data)return{result:null};const t=e.data;return{result:{id:t.id,filename:t.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:q(t.url),url_webp:q(t.url_webp),url_original:q(t.url_original),format:t.format,format_original:t.format_original,permanent:t.permanent??!0,folder:t.folder||null,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 j({endpoint:"/assets",method:"POST",body:r,basePath:G,isFormData:!0,useJWT:!0}))}catch(r){throw K(r)}}async function Y(e,t=0){try{const l=new URLSearchParams({url_expires:t.toString()}),r=await j({endpoint:`/assets/${e}/variants?${l}`,method:"GET",basePath:G,useJWT:!0});return n=r,n?.success&&Array.isArray(n?.data?.variants)?{result:n.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.format||e.output_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:q(e.url)||B(e),permanent:e.permanent??!0,expires_at:e.expires_at,metadata:e.metadata||{},crop_data:e.crop_data||{},crop_params:e.crop_params||e.crop_data||{},parent_asset_id:e.parent_asset_id||n.data.asset_id,variant_type:e.variant_type||"crop"}))}:{result:[]}}catch(l){throw K(l)}var n}function J(){const[e,n]=t({}),[r,a]=t({}),[i,o]=t({}),s=l(async t=>{if(t&&!r[t]){if(e[t])return e[t];a(e=>({...e,[t]:!0})),o(e=>({...e,[t]:null}));try{const e=await Y(t),l=e?.result||[];return n(e=>({...e,[t]:l})),l}catch(l){return console.error("Error loading variants:",l),o(e=>({...e,[t]:l.message})),[]}finally{a(e=>({...e,[t]:!1}))}}},[e,r]),c=l(t=>e[t]||[],[e]),u=l(e=>r[e]||!1,[r]),d=l(e=>i[e]||null,[i]),b=l(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=l(async e=>(b(e),await s(e)),[b,s]),h=l(async(e,t)=>{try{return await async function(e,t){try{return await j({endpoint:`/assets/${e}/variants/${t}`,method:"DELETE",basePath:G,useJWT:!0})}catch(n){throw K(n)}}(e,t),n(n=>{const l=n[e]||[];return{...n,[e]:l.filter(e=>e.id!==t)}}),{success:!0}}catch(l){return console.error("Error deleting variant:",l),{success:!1,error:l.message}}},[]);return{loadVariants:s,getVariants:c,isLoading:u,getError:d,clearVariants:b,refreshVariants:m,removeVariant:h}}function Z({src:e,alt:a="Imagen",title:i="",subtitle:o="",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=r(null),$=r(null);n(()=>{d&&(m(1),p({x:0,y:0}),C(!1),N(!1))},[d]);const _=l(()=>{m(e=>Math.min(e+.25,5)),p({x:0,y:0})},[]),z=l(()=>{m(e=>Math.max(e-.25,.25)),p({x:0,y:0})},[]),T=l(()=>{m(1),p({x:0,y:0})},[]),I=l(()=>{m(1),p({x:0,y:0})},[]),A=l(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=l(e=>{(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.deltaY<0?_():z())},[_,z]),P=l(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=l(e=>{f&&(v(!0),p({x:e.clientX-w.x,y:e.clientY-w.y}))},[f,w]),D=l(()=>{g(!1)},[]),O=l(e=>{e.stopPropagation(),1!==b||y||(m(2),p({x:0,y:0})),v(!1)},[b,y]),R=l(e=>{e.stopPropagation(),1===b?(m(2),p({x:0,y:0})):T()},[b,T]);if(n(()=>{if(!d)return;document.addEventListener("keydown",A),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",A),document.removeEventListener("mouseup",D),document.removeEventListener("mousemove",L),document.removeEventListener("keydown",e)}},[d,A,D,L]),n(()=>(document.body.style.overflow=d?"hidden":"",()=>{document.body.style.overflow=""}),[d]),!d)return null;const F=Math.round(100*b);/* @__PURE__ */
|
|
3
3
|
return c("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__ */c("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__ */c("div",{className:"lb:flex-1 lb:min-w-0",children:[i&&/* @__PURE__ */s("h2",{className:"lb:text-white lb:font-medium lb:text-sm lb:truncate",children:i.split(".")[0]}),o&&/* @__PURE__ */s("p",{className:"lb:text-gray-400 lb:text-xs lb:mt-0.5 lb:truncate",children:o})]}),
|
|
@@ -51,68 +51,71 @@ return c("article",{role:"listitem","aria-label":`${i} - ${h}×${p} píxeles`,cl
|
|
|
51
51
|
/* @__PURE__ */s("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-900 lb:truncate lb:mb-2",title:i,children:i}),
|
|
52
52
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-between",children:[
|
|
53
53
|
/* @__PURE__ */c("span",{className:"lb:text-xs lb:text-gray-500 lb:font-medium",children:[h,"×",p," ·"," ",Math.round(f/1024),"KB"]}),
|
|
54
|
-
/* @__PURE__ */c("div",{className:"lb:flex lb:gap-2",role:"group","aria-label":`Acciones para ${i}`,children:[n&&B&&/* @__PURE__ */s("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),o?.())},"aria-label":"Crear nuevo recorte",title:"Recortar",children:/* @__PURE__ */s("span",{className:"icon icon-scissors-white icon--sm"})}),W&&/* @__PURE__ */s("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)}L(e),x?.announce(`URL de ${n} copiada al portapapeles`),setTimeout(()=>L(null),2e3)}catch(l){console.error("Error al copiar URL:",l),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":T===(n?"original":e.id)?"¡Copiado!":`Copiar URL de ${i}`,title:T===(n?"original":e.id)?"¡Copiado!":"Copiar URL",children:/* @__PURE__ */s("span",{className:`icon ${T===(n?"original":e.id)?"icon-copied-white":"icon-copy-white"} icon--sm`})}),q&&/* @__PURE__ */s("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(()=>
|
|
55
|
-
/* @__PURE__ */s(Z,{isOpen:!!E,src:E?.src||"",alt:E?.title||"Imagen",title:E?.title,subtitle:E?.subtitle,onClose:()=>$(null)})]})}const te="/api";
|
|
56
|
-
return c("div",{className:`limbo-folder-selector limbo-folder-selector--creating ${d}`,children:[i&&/* @__PURE__ */
|
|
54
|
+
/* @__PURE__ */c("div",{className:"lb:flex lb:gap-2",role:"group","aria-label":`Acciones para ${i}`,children:[n&&B&&/* @__PURE__ */s("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),o?.())},"aria-label":"Crear nuevo recorte",title:"Recortar",children:/* @__PURE__ */s("span",{className:"icon icon-scissors-white icon--sm"})}),W&&/* @__PURE__ */s("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)}L(e),x?.announce(`URL de ${n} copiada al portapapeles`),setTimeout(()=>L(null),2e3)}catch(l){console.error("Error al copiar URL:",l),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":T===(n?"original":e.id)?"¡Copiado!":`Copiar URL de ${i}`,title:T===(n?"original":e.id)?"¡Copiado!":"Copiar URL",children:/* @__PURE__ */s("span",{className:`icon ${T===(n?"original":e.id)?"icon-copied-white":"icon-copy-white"} icon--sm`})}),q&&/* @__PURE__ */s("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(()=>En);await e(a.url||a.path,a.filename||"limbo-image",{originalFormat:a.format,accessibilityManager:x})})():(async e=>{const{downloadImage:t}=await Promise.resolve().then(()=>En);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__ */s("span",{className:"icon icon-download-white icon--sm"})}),V&&(!n||b)&&/* @__PURE__ */s("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),o?.())})():me(e)},"aria-label":`Eliminar ${i}`,title:"Eliminar",children:/* @__PURE__ */s("span",{className:"icon icon-close-small-white icon--sm"})}),U&&/* @__PURE__ */s("button",{type:"button",className:"lb:w-8 lb:h-8 lb:cursor-pointer lb:rounded-lg lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 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?be():de(e)},"aria-label":`Ampliar ${i}`,title:"Ampliar",children:/* @__PURE__ */s("svg",{className:"lb:w-4 lb:h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:/* @__PURE__ */s("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"})})})]})]})]})]},n?"original":e.id)})})})]}),
|
|
55
|
+
/* @__PURE__ */s(Z,{isOpen:!!E,src:E?.src||"",alt:E?.title||"Imagen",title:E?.title,subtitle:E?.subtitle,onClose:()=>$(null)})]})}const te="/api";let ne={data:null,timestamp:0,pending:null};const le=/* @__PURE__ */new Set;function re(){ne.data=null,ne.timestamp=0,ne.pending=null,le.forEach(e=>e())}async function ae(e={}){return ne.data&&Date.now()-ne.timestamp<3e5?ne.data:(ne.pending||(ne.pending=async function(e={}){try{const t={include_counts:"true",...e},n=`/folders?${new URLSearchParams(t).toString()}`;return function(e){if(!e?.success||!e?.data)return{folders:[],total:0};const t=(e.data.folders||[]).map(e=>({id:e.id,name:e.name,slug:e.slug,description:e.description,visibility:e.visibility||"public",sort_order:e.sort_order||0,assets_count:e.assets_count||0,created_at:e.created_at,updated_at:e.updated_at}));return{folders:t,total:e.data.total||t.length}}(await j({endpoint:n,method:"GET",basePath:te,useJWT:!0}))}catch(t){throw K(t)}}(e).then(e=>(ne.data=e,ne.timestamp=Date.now(),ne.pending=null,e)).catch(e=>{throw ne.pending=null,e})),ne.pending)}function ie(e={}){const{autoFetch:a=!0,visibility:i=null,allowedSlugs:o=null,excludeSlugs:s=null}=e,[c,u]=t([]),[d,b]=t(!1),[m,h]=t(null),[p,f]=t(!1),g=r(null),y=l(e=>{let t=[...e];return o&&o.length>0&&(t=t.filter(e=>o.includes(e.slug))),s&&s.length>0&&(t=t.filter(e=>!s.includes(e.slug))),t.sort((e,t)=>e.sort_order!==t.sort_order?e.sort_order-t.sort_order:e.name.localeCompare(t.name)),t},[o,s]),v=l(async(e={})=>{b(!0),h(null);try{const t={...i&&{visibility:i},...e},n=await ae(t),l=y(n.folders||[]);return u(l),l}catch(t){return h(t.message),[]}finally{b(!1)}},[i,y]),w=l(()=>(re(),v()),[v]),x=l(async e=>{f(!0),h(null);try{const t=await async function(e){try{return function(e){if(!e?.success||!e?.data)return{folder:null};const t=e.data;return{folder:{id:t.id,name:t.name,slug:t.slug,description:t.description,visibility:t.visibility||"public",sort_order:t.sort_order||0,assets_count:t.assets_count||0,created_at:t.created_at,updated_at:t.updated_at}}}(await j({endpoint:"/folders",method:"POST",body:{name:e.name,...e.slug&&{slug:e.slug},...e.description&&{description:e.description},...e.visibility&&{visibility:e.visibility}},basePath:te,useJWT:!0}))}catch(m){throw K(m)}}(e),n=t.folder;return n&&(re(),u(e=>{const t=[...e,n];return t.sort((e,t)=>e.sort_order!==t.sort_order?e.sort_order-t.sort_order:e.name.localeCompare(t.name)),t})),n}catch(t){return h(t.message),null}finally{f(!1)}},[]),k=l(e=>c.find(t=>t.slug===e)||null,[c]),C=l(e=>c.find(t=>t.id===e)||null,[c]);return g.current=v,n(()=>{const e=()=>g.current?.();return le.add(e),()=>le.delete(e)},[]),n(()=>{a&&v()},[a,v]),{folders:c,loading:d,error:m,creating:p,fetchFolders:v,create:x,refresh:w,findBySlug:k,findById:C,hasLoaded:!d&&c.length>=0}}function oe({value:e=null,onChange:n,allowCreate:l=!0,placeholder:r="Sin carpeta",label:i=null,disabled:o=!1,className:d="",showAssetCount:b=!1,includeNoFolder:m=!0,allowedSlugs:h=null,excludeSlugs:p=null,mode:f="upload"}){const g=a(),[y,v]=t(!1),[w,x]=t(""),[k,C]=t(null),{folders:S,loading:N,error:E,creating:$,create:_,refresh:z}=ie({autoFetch:!0,allowedSlugs:h,excludeSlugs:p}),T=async e=>{if(e.preventDefault(),C(null),!w.trim())return void C("El nombre es requerido");const t=await _({name:w.trim()});t?(n?.(t),v(!1),x("")):C("Error al crear la carpeta")},I=()=>{v(!1),x(""),C(null)};if(y)/* @__PURE__ */
|
|
56
|
+
return c("div",{className:`limbo-folder-selector limbo-folder-selector--creating ${d}`,children:[i&&/* @__PURE__ */c("label",{className:"limbo-filter-label lb:block lb:mb-1",children:[i," ",$&&/* @__PURE__ */s("span",{className:"limbo-filter-searching","aria-hidden":"true",children:/* @__PURE__ */s("span",{className:"icon icon-spinner lb:animate-spin lb:w-3 lb:h-3"})})]}),
|
|
57
57
|
/* @__PURE__ */c("form",{onSubmit:T,className:"lb:flex lb:gap-2 lb:items-center",children:[
|
|
58
58
|
/* @__PURE__ */s("input",{type:"text",value:w,onChange:e=>x(e.target.value),placeholder:"Nombre de la carpeta...",className:"limbo-filter-input lb:flex-1",autoFocus:!0,disabled:$}),
|
|
59
59
|
/* @__PURE__ */s("button",{type:"submit",disabled:$||!w.trim(),className:"limbo-btn limbo-btn--primary lb:px-3 lb:py-1.5 lb:text-sm lb:rounded lb:bg-brand-blue-1000 lb:text-white lb:border-0 lb:cursor-pointer disabled:lb:opacity-50 disabled:lb:cursor-not-allowed",children:$?"...":"Crear"}),
|
|
60
60
|
/* @__PURE__ */s("button",{type:"button",onClick:I,disabled:$,className:"limbo-btn limbo-btn--ghost lb:px-2 lb:py-1.5 lb:text-sm lb:rounded lb:bg-transparent lb:border lb:border-gray-300 lb:cursor-pointer",children:"Cancelar"})]}),k&&/* @__PURE__ */s("p",{className:"lb:text-red-600 lb:text-xs lb:mt-1",children:k})]});const A="filter"===f?"Todas las carpetas":r;/* @__PURE__ */
|
|
61
|
-
return c("div",{className:`limbo-folder-selector ${d}`,children:[i&&/* @__PURE__ */
|
|
62
|
-
/* @__PURE__ */
|
|
63
|
-
/* @__PURE__ */c("select",{id:g,value:e||"",onChange:e=>{const t=e.target.value;if("__create__"===t)return void v(!0);if(""===t||"__none__"===t)return void n?.(null);const l=S.find(e=>e.slug===t);n?.(l||null)},disabled:o||N,className:"limbo-filter-input limbo-filter-select lb:w-full",children:[m&&/* @__PURE__ */s("option",{value:"",children:A}),N&&/* @__PURE__ */s("option",{value:"",disabled:!0,children:"Cargando carpetas..."}),E&&!N&&/* @__PURE__ */s("option",{value:"",disabled:!0,children:"Error al cargar carpetas"}),!N&&!E&&S.map(e=>/* @__PURE__ */c("option",{value:e.slug,children:[e.name,b&&` (${e.assets_count})`]},e.id)),l&&!N&&!E&&/* @__PURE__ */c(u,{children:[
|
|
61
|
+
return c("div",{className:`limbo-folder-selector ${d}`,children:[i&&/* @__PURE__ */c("label",{htmlFor:g,className:"limbo-filter-label lb:block lb:mb-1",children:[i,N&&/* @__PURE__ */s("span",{className:"limbo-filter-searching","aria-hidden":"true",children:/* @__PURE__ */s("span",{className:"icon icon-spinner lb:animate-spin lb:w-3 lb:h-3"})})]}),
|
|
62
|
+
/* @__PURE__ */s("div",{className:"lb:relative",children:/* @__PURE__ */c("select",{id:g,value:e||"",onChange:e=>{const t=e.target.value;if("__create__"===t)return void v(!0);if(""===t||"__none__"===t)return void n?.(null);const l=S.find(e=>e.slug===t);n?.(l||null)},disabled:o||N,className:"limbo-filter-input limbo-filter-select lb:w-full",children:[m&&/* @__PURE__ */s("option",{value:"",children:A}),N&&/* @__PURE__ */s("option",{value:"",disabled:!0,children:"Cargando carpetas..."}),E&&!N&&/* @__PURE__ */s("option",{value:"",disabled:!0,children:"Error al cargar carpetas"}),!N&&!E&&S.map(e=>/* @__PURE__ */c("option",{value:e.slug,children:[e.name,b&&` (${e.assets_count})`]},e.id)),l&&!N&&!E&&/* @__PURE__ */c(u,{children:[
|
|
64
63
|
/* @__PURE__ */s("option",{disabled:!0,children:"──────────────"}),
|
|
65
|
-
/* @__PURE__ */s("option",{value:"__create__",children:"+ Crear nueva carpeta..."})]})]})
|
|
64
|
+
/* @__PURE__ */s("option",{value:"__create__",children:"+ Crear nueva carpeta..."})]})]})}),E&&/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:gap-2 lb:mt-1",children:[
|
|
66
65
|
/* @__PURE__ */s("p",{className:"lb:text-red-600 lb:text-xs",children:E}),
|
|
67
|
-
/* @__PURE__ */s("button",{type:"button",onClick:z,className:"lb:text-xs lb:text-brand-blue-1000 lb:underline lb:cursor-pointer",children:"Reintentar"})]})]})}const
|
|
66
|
+
/* @__PURE__ */s("button",{type:"button",onClick:z,className:"lb:text-xs lb:text-brand-blue-1000 lb:underline lb:cursor-pointer",children:"Reintentar"})]})]})}const se={pdf:{symbol:"icon-doc-pdf",color:"#dc2626"},doc:{symbol:"icon-doc-word",color:"#2563eb"},docx:{symbol:"icon-doc-word",color:"#2563eb"},xls:{symbol:"icon-doc-xls",color:"#16a34a"},xlsx:{symbol:"icon-doc-xls",color:"#16a34a"},ppt:{symbol:"icon-doc-ppt",color:"#ea580c"},pptx:{symbol:"icon-doc-ppt",color:"#ea580c"},txt:{symbol:"icon-doc-text",color:"#6b7280"},csv:{symbol:"icon-doc-report",color:"#16a34a"},mp4:{symbol:"icon-video",color:"#7c3aed"},webm:{symbol:"icon-video",color:"#7c3aed"},mov:{symbol:"icon-video",color:"#7c3aed"},avi:{symbol:"icon-video",color:"#7c3aed"},mkv:{symbol:"icon-video",color:"#7c3aed"},mp3:{symbol:"icon-support-person",color:"#0891b2"},wav:{symbol:"icon-support-person",color:"#0891b2"},ogg:{symbol:"icon-support-person",color:"#0891b2"},aac:{symbol:"icon-support-person",color:"#0891b2"},flac:{symbol:"icon-support-person",color:"#0891b2"},default:{symbol:"icon-clip",color:"#6b7280"}};function ce({image:l,onDelete:r,onCrop:a,onSelect:o,onFolderChange:d,thumbnailSize:b=32,isDeleting:m=!1,showFolderInfo:h=!0,allowMoveFolder:p=!0,allowedFolderSlugs:f=null,excludedFolderSlugs:g=null,allowCreateFolder:y=!1,allowedActions:v={select:!0,download:!0,copy:!0,delete:!0,crop:!0,variants:!0}}){const[w,x]=t(!1),[k,C]=t(!1),[S,N]=t(!1),[$,_]=t(l.variants_count||0),[z,T]=t(!1),[P,L]=t(!1);n(()=>{if(!z)return;const e=e=>{e.target.closest(".limbo-image-card-wrapper")||T(!1)};return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[z]);const D=i(()=>(e=>{if(e.asset_type)return e.asset_type;const t=e.mime_type||e.original_mime||"";return t.startsWith("image/")?"image":t.startsWith("video/")?"video":t.startsWith("audio/")?"audio":t.includes("pdf")||t.includes("document")||t.includes("spreadsheet")||t.includes("presentation")||t.includes("text/")?"document":"unknown"})(l),[l]),O="image"===D,R=i(()=>(e=>{if(!e)return"";const t=e.split(".");return t.length>1?t.pop().toLowerCase():""})(l.filename),[l.filename]),F=se[R]||se.default,j=l.url||l.path,[U,B]=t(()=>A(j)),[q,W]=t(()=>!M(j)),[V,H]=t(!1),[K,G]=t(()=>M(j)),{isMobile:Q,isTouch:X}=E(),Y=window.limboCore?.accessibilityManager,J=(window.limboCore?.config?.getGlobal()||{}).interaction||{allowSelection:!1,allowCropping:!0},te=e=>{e.stopPropagation(),Y?.announce(`Eliminando imagen ${l.filename}`,"assertive"),r?.(l)},ne=async e=>{e.stopPropagation();let t=l.url||l.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)}x(!0),Y?.announce(`URL de ${l.filename} copiada al portapapeles. Nota: La URL puede tener un tiempo de validez limitado.`),setTimeout(()=>x(!1),2e3)}catch(n){console.error("Error al copiar URL:",n),Y?.announce(`Error al copiar URL de ${l.filename}. Inténtalo de nuevo.`),alert(`Error al copiar URL de ${l.filename}. Por favor, inténtalo de nuevo.`)}},le=async e=>{e.preventDefault(),e.stopPropagation();const t=l.url||l.path,n=l.filename||"limbo-file";if(!O){try{Y?.announce(`Descargando ${n}`);const e=await fetch(t,{mode:"cors"});if(!e.ok)throw new Error(`HTTP error: ${e.status}`);const l=await e.blob(),r=window.URL.createObjectURL(l),a=document.createElement("a");a.href=r,a.download=n,a.style.display="none",document.body.appendChild(a),a.click(),setTimeout(()=>{window.URL.revokeObjectURL(r),document.body.removeChild(a)},100),Y?.announce(`${n} descargado correctamente`)}catch(a){console.error("Error downloading file:",a),Y?.announce(`Error al descargar ${n}`)}return}const{downloadImage:r}=await Promise.resolve().then(()=>En);await r(t,n,{originalFormat:l.format,accessibilityManager:Y})},ae=e=>{e.stopPropagation(),Y?.announce(`Editando imagen ${l.filename}`),a?.(l)},ie=O&&(l.variants&&l.variants.length>0||$>0),ce=$,ue=e.useCallback(()=>{_(e=>Math.max(0,e-1))},[]);e.useEffect(()=>{_(l.variants_count||0)},[l.variants_count]),n(()=>{if(!O)return W(!1),void G(!0);const e=l.url||l.path;if(M(e))return B(A(e)),W(!1),H(!1),void G(!0);W(!0),H(!1),G(!1),I(e).then(e=>{B(e),W(!1),G(!0)}).catch(()=>{B(e),W(!1),H(!0)})},[l.url,l.path,O]);const de=J.allowSelection&&v.select&&o,be=O&&J.allowCropping&&v.crop&&a,me=()=>{de?(Y?.announce(`Seleccionando ${l.filename} para el portal`),o?.(l)):ie?(Y?.announce(`Mostrando recortes de ${l.filename}`),C(!0)):O&&(Y?.announce(`Abriendo visor de ${l.filename}`),N(!0))};/* @__PURE__ */
|
|
68
67
|
return c(u,{children:[
|
|
69
|
-
/* @__PURE__ */c("div",{className:`limbo-image-card
|
|
70
|
-
/* @__PURE__ */
|
|
71
|
-
/* @__PURE__ */s("span",{className:"lb:
|
|
72
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */c("div",{className:`limbo-image-card-wrapper lb:relative lb:cursor-pointer ${m?"lb:opacity-50":""} ${Q?"limbo-image-card-wrapper--mobile":""}`,onClick:me,onKeyDown:e=>{switch(e.key){case"Enter":case" ":e.preventDefault(),me();break;case"d":case"D":v.download&&(e.preventDefault(),le(e));break;case"c":case"C":v.copy&&(e.preventDefault(),ne(e));break;case"Delete":case"Backspace":v.delete&&r&&(e.preventDefault(),te(e));break;case"x":case"X":v.crop&&a&&(e.preventDefault(),ae(e));break;case"v":case"V":v.variants&&(e.preventDefault(),(e=>{e.stopPropagation(),Y?.announce(`Mostrando recortes de ${l.filename}`),C(!0)})(e))}},title:ie?`Ver ${ce} recorte${1!==ce?"s":""} de ${l.filename}`:O?Q?"Toque para ampliar imagen":"Click para ampliar imagen con zoom":`${l.filename} (${R.toUpperCase()})`,role:"button",tabIndex:0,"aria-label":O?`Imagen ${l.filename}. ${l.width}x${l.height} px`:`Archivo ${l.filename}. Tipo: ${D}`,style:{...X&&{touchAction:"manipulation",WebkitTapHighlightColor:"transparent"}},children:[P&&/* @__PURE__ */c("div",{className:"limbo-moving-overlay",children:[
|
|
69
|
+
/* @__PURE__ */s("span",{className:"icon icon-spinner lb:animate-spin lb:w-6 lb:h-6"}),
|
|
70
|
+
/* @__PURE__ */s("span",{className:"lb:text-xs lb:text-gray-600 lb:font-medium",children:"Moviendo..."})]}),
|
|
71
|
+
/* @__PURE__ */c("div",{className:`limbo-image-actions ${z?"limbo-image-actions--expanded":""} ${Q?"limbo-image-actions--mobile":""}`,children:[
|
|
72
|
+
/* @__PURE__ */c("div",{className:"limbo-image-actions__buttons",children:[de&&O&&/* @__PURE__ */s("button",{type:"button",title:ie?`Ver ${ce} recortes`:"Ampliar imagen",className:"limbo-action-btn lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(Q?"lb:btn--touch":""),onClick:e=>{e?.stopPropagation(),O&&(ie?(Y?.announce(`Mostrando recortes de ${l.filename}`),C(!0)):(Y?.announce(`Abriendo visor de ${l.filename}`),N(!0)))},tabIndex:-1,style:{...Q&&{width:"40px",height:"40px"}},children:/* @__PURE__ */s("span",{className:`icon ${ie?"icon-variants-white":"icon-zoom-white"} icon--sm`,"aria-hidden":"true"})}),be&&/* @__PURE__ */s("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 "+(Q?"lb:btn--touch":""),onClick:ae,tabIndex:-1,style:{...Q&&{width:"40px",height:"40px"}},children:/* @__PURE__ */s("span",{className:"icon icon-scissors-white icon--sm","aria-hidden":"true"})}),v.copy&&/* @__PURE__ */s("button",{type:"button",title:w?"¡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 "+(Q?"lb:btn--touch":""),onClick:ne,tabIndex:-1,style:{...Q&&{width:"40px",height:"40px"}},children:/* @__PURE__ */s("span",{className:`icon ${w?"icon-copied-white":"icon-copy-white"} icon--sm`,"aria-hidden":"true"})}),v.download&&/* @__PURE__ */s("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 "+(Q?"lb:btn--touch":""),onClick:le,tabIndex:-1,style:{...Q&&{width:"40px",height:"40px"}},children:/* @__PURE__ */s("span",{className:"icon icon-download-white icon--sm","aria-hidden":"true"})}),p&&d&&/* @__PURE__ */s("button",{type:"button",title:l.folder?`Mover de carpeta (${l.folder?.name||l.folder?.slug||""})`:"Asignar a carpeta",className:"limbo-action-btn limbo-btn-folder lb:bg-brand-blue-400 lb:hover:bg-brand-blue-800 lb:border lb:border-brand-blue-1000 "+(Q?"lb:btn--touch":""),onClick:e=>{e.stopPropagation(),T(!z)},tabIndex:-1,style:{...Q&&{width:"40px",height:"40px"}},children:/* @__PURE__ */s("span",{className:"icon icon-move-white icon--sm","aria-hidden":"true"})}),v.delete&&r&&/* @__PURE__ */s("button",{onClick:te,disabled:m,className:"limbo-action-btn limbo-btn-delete lb:bg-red-800 lb:hover:bg-red-700 lb:border lb:border-red-700 "+(Q?"lb:btn--touch lb:active:lb:bg-red-800":""),title:"Eliminar archivo",tabIndex:-1,style:{...Q&&{width:"40px",height:"40px"}},children:m?"…":/* @__PURE__ */s("span",{className:"icon icon-close-small-white icon--sm","aria-hidden":"true"})})]}),z&&p&&d&&/* @__PURE__ */s("div",{className:"limbo-image-actions__folder",onClick:e=>e.stopPropagation(),children:/* @__PURE__ */s(oe,{value:l.folder?.slug||null,onChange:async e=>{if(!P){L(!0);try{const t=e?.slug||null;await(d?.(l,t)),re(),Y?.announce(e?`${l.filename} movido a carpeta ${e.name}`:`${l.filename} movido a Sin carpeta`)}catch(t){console.error("Error moving to folder:",t),Y?.announce(`Error al mover ${l.filename}`)}finally{L(!1),T(!1)}}},allowCreate:y,placeholder:"Sin carpeta",label:"Mover a carpeta",includeNoFolder:!0,allowedSlugs:f,excludeSlugs:g,disabled:P,mode:"upload"})})]}),
|
|
73
|
+
/* @__PURE__ */c("div",{className:"limbo-image-card "+(Q?"limbo-image-card--mobile":""),children:[!O&&/* @__PURE__ */c("div",{className:"lb:w-full lb:h-full lb:rounded lb:bg-linear-to-br lb:from-neutral-100 lb:to-neutral-200 lb:flex lb:flex-col lb:items-center lb:justify-center lb:border lb:border-neutral-300",style:{...Q&&{minHeight:`${Math.max(3*b,80)}px`}},children:[
|
|
74
|
+
/* @__PURE__ */s("span",{className:"lb:mb-2 lb:h-[25%] lb:w-[25%]","aria-hidden":"true",children:/* @__PURE__ */s("span",{className:`icon ${F.symbol} lb:min-w-full lb:min-h-full`})}),
|
|
75
|
+
/* @__PURE__ */s("span",{className:"lb:text-xs lb:uppercase lb:font-bold lb:tracking-wide lb:px-2 lb:py-0.5 lb:rounded",style:{backgroundColor:F.color,color:"white"},children:R||D})]}),O&&/* @__PURE__ */c(u,{children:[q&&!V&&/* @__PURE__ */s("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 "+(ie?"lb:ring-2 lb:ring-brand-blue-400 lb:ring-offset-2":""),style:{...Q&&{minHeight:`${Math.max(3*b,80)}px`}},children:/* @__PURE__ */s("span",{className:"icon icon-spinner lb:w-8 lb:h-8 lb:animate-spin"})}),V&&/* @__PURE__ */c("div",{className:"lb:z-0 lb:absolute lb:top-0 lb:left-0 lb:w-full lb:aspect-square lb:rounded lb:bg-neutral-100 lb:flex lb:flex-col lb:items-center lb:justify-center lb:text-neutral-400",style:{...Q&&{minHeight:`${Math.max(3*b,80)}px`}},children:[
|
|
73
76
|
/* @__PURE__ */s("span",{className:"icon icon-close icon--lg lb:mb-1","aria-hidden":"true"}),
|
|
74
77
|
/* @__PURE__ */s("span",{className:"lb:text-xs",children:"Error al cargar"})]}),
|
|
75
|
-
/* @__PURE__ */s("img",{src:
|
|
76
|
-
/* @__PURE__ */c("
|
|
77
|
-
/* @__PURE__ */c("
|
|
78
|
-
/* @__PURE__ */s("span",{"
|
|
79
|
-
/* @__PURE__ */s("span",{className:"lb:truncate lb:max-w-
|
|
80
|
-
/* @__PURE__ */s(ee,{image:l,isOpen:
|
|
81
|
-
/* @__PURE__ */s(Z,{isOpen:
|
|
78
|
+
/* @__PURE__ */s("img",{src:U,loading:"lazy",decoding:"async",alt:l.filename.split(".")[0]??l.filename,className:`lb:z-1 lb:w-full lb:object-cover lb:rounded lb:aspect-square lb:transition-opacity lb:duration-300 ${ie?"lb:ring-2 lb:ring-brand-blue-400 lb:ring-offset-2":""} ${K?"lb:opacity-100":"lb:opacity-0"}`,sizes:`height: ${6*b}px,width: ${6*b}px`,draggable:!1,onLoad:()=>{W(!1),G(!0)},onError:()=>{W(!1),H(!0)},style:{...Q&&{minHeight:`${Math.max(3*b,80)}px`,height:"auto",aspectRatio:"1 / 1",objectFit:"cover"}}})]}),
|
|
79
|
+
/* @__PURE__ */c("div",{className:"limbo-card-info-overlay "+(Q?"limbo-card-info-overlay--mobile":""),children:[
|
|
80
|
+
/* @__PURE__ */c("span",{className:"limbo-card-info-name lb:truncate lb:max-w-full",children:[l.filename.split(".")[0]??l.filename,ie&&/* @__PURE__ */s("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:`${ce} recorte${1!==ce?"s":""}`,children:ce})]}),h&&l.folder&&/* @__PURE__ */c("span",{className:"limbo-card-info-folder lb:flex lb:items-center lb:gap-1 lb:bg-brand-blue-50 lb:rounded-md lb:px-1",title:`Carpeta: ${l.folder?.name||l.folder?.slug||l.folder}`,children:[
|
|
81
|
+
/* @__PURE__ */s("span",{className:"icon icon-folder icon--sm"}),
|
|
82
|
+
/* @__PURE__ */s("span",{className:"lb:truncate lb:max-w-20",children:l.folder?.name||l.folder?.slug||("string"==typeof l.folder?l.folder:"Sin carpeta")})]})]})]})]}),
|
|
83
|
+
/* @__PURE__ */s(ee,{image:l,isOpen:k,onClose:()=>C(!1),onSelect:o,onDelete:r,onCrop:a,onVariantDeleted:ue,allowedActions:{select:v.select,download:v.download,copy:v.copy,delete:v.delete,crop:v.crop}}),
|
|
84
|
+
/* @__PURE__ */s(Z,{isOpen:S,src:U,alt:l.filename,title:l.filename,subtitle:`${l.width}×${l.height} · ${Math.round((l.file_size||0)/1024)}KB`,onClose:()=>N(!1)})]})}function ue(){/* @__PURE__ */
|
|
82
85
|
return c("div",{className:"limbo-image-card lb:animate-pulse",role:"status","aria-label":"Cargando imágen...",children:[
|
|
83
86
|
/* @__PURE__ */s("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__ */s("span",{className:"icon icon-spinner"})}),
|
|
84
87
|
/* @__PURE__ */s("div",{className:"limbo-image-card-name lb:opacity-100 lb:position-relative lb:bottom-0 lb:p-2",children:/* @__PURE__ */s("div",{className:"lb:h-4 lb:bg-neutral-gray-200 lb:rounded lb:w-3/4"})}),
|
|
85
|
-
/* @__PURE__ */s("span",{className:"lb:sr-only",children:"Cargando imágen..."})]})}const
|
|
88
|
+
/* @__PURE__ */s("span",{className:"lb:sr-only",children:"Cargando imágen..."})]})}const de=[{value:"",label:"Todos los tipos"},{value:"image",label:"Imágenes"},{value:"video",label:"Videos"},{value:"document",label:"Documentos"},{value:"audio",label:"Audio"}];function be({onSelect:e,onCrop:l,onDelete:a,deletingId:o,images:u,loading:d,error:b,filters:m={name:"",dateFrom:"",dateTo:"",uploadedBy:"",assetType:"",folder:""},debouncedFilters:h=null,onFiltersChange:p,filterConfig:f={showNameFilter:!0,showUploadedByFilter:!1,showDateFilter:!0,showTypeFilter:!1},loadingConfig:g={showPlaceholders:!0,placeholderCount:10,showSpinner:!0},allowedActions:y={select:!0,download:!0,copy:!0,delete:!0,crop:!0,variants:!0},allowedCategories:v=null,folderConfig:w=null,onFolderChange:x=null}){const{isSearching:k,searchPending:C}=function(e,l,a){const[i,o]=t(!1),s=r(null);return n(()=>(Object.keys(e).some(t=>e[t]!==l[t])?s.current=setTimeout(()=>{o(!0)},150):(s.current&&clearTimeout(s.current),o(!1)),()=>{s.current&&clearTimeout(s.current)}),[e,l]),{isSearching:i||a,searchPending:i}}(m,h||m,d),S=!1!==f.showNameFilter,N=!0===f.showUploadedByFilter,E=!1!==f.showDateFilter,$=!0===f.showTypeFilter,_=!0===w?.showFolderFilter,z=w?.include?.length>0?w.include:null,T=w?.exclude?.length>0?w.exclude:null,I=!1!==w?.showFolderInfo,A=!1!==w?.allowMoveFolder&&!!x,M=!0===w?.allowCreateFolder,L=v?de.filter(e=>""===e.value||v.includes(e.value)):de,D=r(null),O=window.limboCore?.accessibilityManager;n(()=>{if(D.current&&window.limboCore?.keyboardManager){const e="gallery-grid";D.current.setAttribute("data-grid-id",e),window.limboCore.keyboardManager.setupGridNavigation(D.current,{itemSelector:".limbo-image-card",gridId:e,columns:"auto"})}},[u]),n(()=>{if(!d&&u.length>0){const e=u.slice(0,12).map(e=>e.url||e.path).filter(Boolean);e.length>0&&P(e,4)}},[d,u]);const R=i(()=>{if(!m.assetType)return"archivos";return{image:"imágenes",video:"videos",document:"documentos",audio:"archivos de audio"}[m.assetType]||"archivos"},[m.assetType]);n(()=>{d?O?.announceLoading(!0,"galería"):d||b?b&&O?.announceError(b,"galería"):(O?.announceLoading(!1,"galería"),u.length>0&&O?.announce(`Se encontraron ${u.length} ${R} en la galería`))},[d,b,u.length,O,R]),n(()=>{C&&O?.announce("Buscando...","polite")},[C,O]);const F=e=>{const{name:t,value:n}=e.target;p&&p({...m,[t]:n})},j=m.name||m.dateFrom||m.dateTo||m.uploadedBy||m.assetType||m.folder,U=k&&u.length>0&&!d;/* @__PURE__ */
|
|
86
89
|
return c("div",{className:"lb:w-full lb:py-2",children:[
|
|
87
90
|
/* @__PURE__ */s("div",{className:"lb:px-2 lb:mb-3 lb:mx-2 lb:w-max lb:max-w-full",children:/* @__PURE__ */c("form",{className:"limbo-filters lb:flex lb:items-stretch lb:content-stretch lb:flex-row",onSubmit:e=>e.preventDefault(),role:"search","aria-label":"Filtrar archivos",children:[S&&/* @__PURE__ */c("div",{className:"limbo-filter-group limbo-filter-group--name",children:[
|
|
88
91
|
/* @__PURE__ */c("label",{htmlFor:"name",className:"limbo-filter-label",children:["Nombre",C&&/* @__PURE__ */s("span",{className:"limbo-filter-searching","aria-hidden":"true",children:/* @__PURE__ */s("span",{className:"icon icon-spinner lb:animate-spin lb:w-3 lb:h-3"})})]}),
|
|
89
|
-
/* @__PURE__ */s("input",{type:"text",name:"name",id:"name",placeholder:"Buscar...",value:m.name,onChange:
|
|
92
|
+
/* @__PURE__ */s("input",{type:"text",name:"name",id:"name",placeholder:"Buscar...",value:m.name,onChange:F,className:"limbo-filter-input",autoComplete:"off"})]}),E&&/* @__PURE__ */c("div",{className:"limbo-filter-dates",children:[
|
|
90
93
|
/* @__PURE__ */c("div",{className:"limbo-filter-group limbo-filter-group--date",children:[
|
|
91
94
|
/* @__PURE__ */s("label",{htmlFor:"dateFrom",className:"limbo-filter-label",children:"Desde"}),
|
|
92
|
-
/* @__PURE__ */s("input",{type:"date",name:"dateFrom",id:"dateFrom",value:m.dateFrom,onChange:
|
|
95
|
+
/* @__PURE__ */s("input",{type:"date",name:"dateFrom",id:"dateFrom",value:m.dateFrom,onChange:F,className:"limbo-filter-input"})]}),
|
|
93
96
|
/* @__PURE__ */c("div",{className:"limbo-filter-group limbo-filter-group--date",children:[
|
|
94
97
|
/* @__PURE__ */s("label",{htmlFor:"dateTo",className:"limbo-filter-label",children:"Hasta"}),
|
|
95
|
-
/* @__PURE__ */s("input",{type:"date",name:"dateTo",id:"dateTo",value:m.dateTo,onChange:
|
|
98
|
+
/* @__PURE__ */s("input",{type:"date",name:"dateTo",id:"dateTo",value:m.dateTo,onChange:F,className:"limbo-filter-input"})]})]}),$&&L.length>1&&/* @__PURE__ */c("div",{className:"limbo-filter-group limbo-filter-group--type",children:[
|
|
96
99
|
/* @__PURE__ */s("label",{htmlFor:"assetType",className:"limbo-filter-label",children:"Tipo"}),
|
|
97
|
-
/* @__PURE__ */s("select",{name:"assetType",id:"assetType",value:m.assetType||"",onChange:
|
|
100
|
+
/* @__PURE__ */s("select",{name:"assetType",id:"assetType",value:m.assetType||"",onChange:F,className:"limbo-filter-input limbo-filter-select",children:L.map(e=>/* @__PURE__ */s("option",{value:e.value,children:e.label},e.value))})]}),_&&/* @__PURE__ */s("div",{className:"limbo-filter-group limbo-filter-group--folder",children:/* @__PURE__ */s(oe,{value:m.folder||"",onChange:e=>F({target:{name:"folder",value:e?.slug||""}}),allowCreate:!1,label:"Carpeta",showAssetCount:!0,includeNoFolder:!0,allowedSlugs:z,excludeSlugs:T,mode:"filter"})}),N&&/* @__PURE__ */c("div",{className:"limbo-filter-group",children:[
|
|
98
101
|
/* @__PURE__ */s("label",{htmlFor:"uploadedBy",className:"limbo-filter-label",children:"Subido por"}),
|
|
99
|
-
/* @__PURE__ */s("input",{type:"text",name:"uploadedBy",id:"uploadedBy",placeholder:"Usuario...",value:m.uploadedBy,onChange:
|
|
102
|
+
/* @__PURE__ */s("input",{type:"text",name:"uploadedBy",id:"uploadedBy",placeholder:"Usuario...",value:m.uploadedBy,onChange:F,className:"limbo-filter-input",style:{minWidth:"100px",maxWidth:"140px"}})]}),
|
|
100
103
|
/* @__PURE__ */c("div",{children:[
|
|
101
104
|
/* @__PURE__ */s("span",{className:"lb:h-[37%] lb:block"}),
|
|
102
|
-
/* @__PURE__ */c("button",{type:"button",onClick:()=>{p&&p({name:"",uploadedBy:"",dateFrom:"",dateTo:"",assetType:"",folder:""})},disabled:!
|
|
105
|
+
/* @__PURE__ */c("button",{type:"button",onClick:()=>{p&&p({name:"",uploadedBy:"",dateFrom:"",dateTo:"",assetType:"",folder:""})},disabled:!j,className:"limbo-filter-clear-btn","aria-label":"Limpiar todos los filtros",title:"Limpiar filtros",children:[
|
|
103
106
|
/* @__PURE__ */s("span",{className:"icon icon-close-small"}),"Limpiar"]})]})]})}),d?/* @__PURE__ */c("div",{className:"lb:relative",children:[
|
|
104
|
-
/* @__PURE__ */s("div",{className:"lb:
|
|
107
|
+
/* @__PURE__ */s("div",{className:"lb:relative lb:inset-0 lb:flex lb:items-center lb:justify-center lb:bg-white/80 lb:z-10 lb:min-h-75",children:/* @__PURE__ */c("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-3",children:[
|
|
105
108
|
/* @__PURE__ */s("span",{className:"icon icon-spinner lb:p-4 lb:animate-spin"}),
|
|
106
|
-
/* @__PURE__ */c("span",{className:"lb:text-sm lb:text-gray-600 lb:font-medium",children:["Cargando ",
|
|
109
|
+
/* @__PURE__ */c("span",{className:"lb:text-sm lb:text-gray-600 lb:font-medium",children:["Cargando ",R,"..."]})]})}),g.showPlaceholders&&/* @__PURE__ */s("div",{ref:D,className:"limbo-gallery lb:opacity-30","data-limbo-responsive":!0,role:"grid","aria-label":`Cargando ${R} de la galería`,"aria-busy":"true",children:Array.from({length:g.placeholderCount}).map((e,t)=>/* @__PURE__ */s("div",{role:"gridcell","aria-posinset":t+1,"aria-setsize":g.placeholderCount,className:"lb:min-w-0",children:/* @__PURE__ */s(ue,{})},`skeleton-${t}`))})]}):b?/* @__PURE__ */s("div",{className:"alert alert-danger lb:text-center",children:b}):/* @__PURE__ */c("div",{className:"lb:relative",children:[U&&/* @__PURE__ */s("div",{className:"limbo-search-overlay",role:"status","aria-live":"polite","aria-label":"Buscando archivos",children:/* @__PURE__ */c("div",{className:"limbo-search-overlay__content",children:[
|
|
107
110
|
/* @__PURE__ */s("span",{className:"icon icon-spinner lb:animate-spin"}),
|
|
108
111
|
/* @__PURE__ */s("span",{children:"Buscando..."})]})}),
|
|
109
|
-
/* @__PURE__ */s("div",{ref:
|
|
112
|
+
/* @__PURE__ */s("div",{ref:D,className:"limbo-gallery lb:px-3 "+(U?"lb:opacity-50 lb:pointer-events-none":""),"data-limbo-responsive":!0,"data-grid-id":"gallery-grid",role:"grid","aria-label":`Galería de ${R}. Use las flechas para navegar`,"aria-busy":U,children:u.length>0?u.map((t,n)=>/* @__PURE__ */s("div",{role:"gridcell","aria-posinset":n+1,"aria-setsize":u.length,className:"lb:min-w-0",children:/* @__PURE__ */s(ce,{image:t,onSelect:e,onCrop:l,onDelete:y.delete&&a?()=>a(t.id):null,onFolderChange:x,thumbnailSize:32,isDeleting:o===t.id,showFolderInfo:I,allowMoveFolder:A,allowedFolderSlugs:z,excludedFolderSlugs:T,allowCreateFolder:M,allowedActions:y})},t.id)):/* @__PURE__ */s("div",{className:"lb:col-span-full lb:text-center lb:text-gray-500 lb:py-8",role:"status","aria-live":"polite",children:/* @__PURE__ */c("p",{children:["No se han encontrado ",R]})})})]})]})}const me={"application/pdf":{symbol:"icon-doc-pdf",label:"PDF",color:"#dc2626"},"application/msword":{symbol:"icon-doc-word",label:"DOC",color:"#2563eb"},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{symbol:"icon-doc-word",label:"DOCX",color:"#2563eb"},"application/vnd.ms-excel":{symbol:"icon-doc-xls",label:"XLS",color:"#16a34a"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{symbol:"icon-doc-xls",label:"XLSX",color:"#16a34a"},"application/vnd.ms-powerpoint":{symbol:"icon-doc-ppt",label:"PPT",color:"#ea580c"},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{symbol:"icon-doc-ppt",label:"PPTX",color:"#ea580c"},"text/plain":{symbol:"icon-doc-text",label:"TXT",color:"#6b7280"},"text/csv":{symbol:"icon-doc-report",label:"CSV",color:"#16a34a"},default:{symbol:"icon-clip",label:"FILE",color:"#6b7280"}},he={video:{symbol:"🎬",label:"VIDEO",color:"#7c3aed"},audio:{symbol:"🎵",label:"AUDIO",color:"#0891b2"},document:{symbol:"📄",label:"DOC",color:"#6b7280"},image:{symbol:"🖼️",label:"IMG",color:"#0ea5e9"}};function pe(e){if(!e||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]}function fe({file:e,mimeType:t,category:n}){const l=function(e,t){return me[e]?me[e]:t&&he[t]?he[t]:e?.startsWith("video/")?he.video:e?.startsWith("audio/")?he.audio:e?.startsWith("image/")?he.image:me.default}(t,n),r=e?.name||"archivo",a=pe(e?.size);/* @__PURE__ */
|
|
110
113
|
return c("div",{className:"lb:flex lb:flex-col lb:items-center lb:justify-center lb:min-h-50",children:[
|
|
111
|
-
/* @__PURE__ */s("div",{className:"lb:w-24 lb:h-24 lb:flex lb:items-center lb:justify-center lb:bg-gray-100 lb:rounded-xl lb:mb-4",children:/* @__PURE__ */s("span",{className
|
|
114
|
+
/* @__PURE__ */s("div",{className:"lb:w-24 lb:h-24 lb:flex lb:items-center lb:justify-center lb:bg-gray-100 lb:rounded-xl lb:mb-4",children:/* @__PURE__ */s("span",{className:`icon ${l.symbol} lb:h-[55%] lb:w-[55%] lb:max-h-50 lb:max-w-50`,"aria-hidden":"true"})}),
|
|
112
115
|
/* @__PURE__ */s("p",{className:"lb:text-sm lb:font-medium lb:text-gray-800 lb:text-center lb:max-w-full lb:truncate lb:px-4",children:r}),
|
|
113
116
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:gap-2 lb:mt-3",children:[
|
|
114
117
|
/* @__PURE__ */s("span",{className:"lb:text-xs lb:text-gray-500",children:a}),
|
|
115
|
-
/* @__PURE__ */s("span",{className:"lb:text-xs lb:font-bold lb:uppercase lb:px-2 lb:py-0.5 lb:rounded",style:{backgroundColor:l.color,color:"white"},children:l.label})]})]})}function
|
|
118
|
+
/* @__PURE__ */s("span",{className:"lb:text-xs lb:font-bold lb:uppercase lb:px-2 lb:py-0.5 lb:rounded",style:{backgroundColor:l.color,color:"white"},children:l.label})]})]})}function ge({previewUrl:e,fileName:n}){const[l,a]=t(!1),[i,o]=t(!1),u=r(null);/* @__PURE__ */
|
|
116
119
|
return c("div",i?{className:"lb:flex lb:flex-col lb:items-center lb:justify-center lb:p-8 lb:min-h-[200px] lb:bg-gray-100 lb:rounded-lg",children:[
|
|
117
120
|
/* @__PURE__ */s("span",{className:"icon icon-video icon--xl lb:text-gray-400 lb:mb-4"}),
|
|
118
121
|
/* @__PURE__ */s("p",{className:"lb:text-sm lb:text-gray-600",children:"No se puede reproducir el video"}),
|
|
@@ -120,7 +123,7 @@ return c("div",i?{className:"lb:flex lb:flex-col lb:items-center lb:justify-cent
|
|
|
120
123
|
/* @__PURE__ */s("video",{ref:u,src:e,className:"lb:absolute lb:inset-0 lb:w-full lb:h-full lb:object-contain",onEnded:()=>{a(!1)},onError:()=>{o(!0)},onPlay:()=>a(!0),onPause:()=>a(!1),controls:!0,preload:"metadata",children:"Tu navegador no soporta la reproduccion de video."}),!l&&/* @__PURE__ */s("button",{type:"button",onClick:()=>{u.current&&(l?u.current.pause():u.current.play(),a(!l))},className:"lb:absolute lb:inset-0 lb:flex lb:items-center lb:justify-center lb:bg-black/30 lb:hover:bg-black/40 lb:transition-colors lb:cursor-pointer","aria-label":"Reproducir video",children:/* @__PURE__ */s("div",{className:"lb:w-16 lb:h-16 lb:rounded-full lb:bg-white/90 lb:flex lb:items-center lb:justify-center lb:shadow-lg",children:/* @__PURE__ */s("span",{className:"icon icon-play icon--lg lb:text-gray-800 lb:ml-1"})})}),
|
|
121
124
|
/* @__PURE__ */c("div",{className:"lb:absolute lb:top-2 lb:right-2 lb:bg-black/60 lb:text-white lb:px-2 lb:py-1 lb:rounded lb:text-xs lb:flex lb:items-center lb:gap-1",children:[
|
|
122
125
|
/* @__PURE__ */s("span",{className:"icon icon-video icon--xs"}),
|
|
123
|
-
/* @__PURE__ */s("span",{children:"VIDEO"})]})]})}function
|
|
126
|
+
/* @__PURE__ */s("span",{children:"VIDEO"})]})]})}function ye({previewUrl:e,fileName:n,fileSize:l}){const[a,i]=t(!1),[o,d]=t(!1),[b,m]=t(0),[h,p]=t(0),f=r(null),g=e=>{if(!e||isNaN(e))return"0:00";return`${Math.floor(e/60)}:${Math.floor(e%60).toString().padStart(2,"0")}`};/* @__PURE__ */
|
|
124
127
|
return c("div",o?{className:"lb:flex lb:flex-col lb:items-center lb:justify-center lb:p-8 lb:min-h-50 lb:bg-gray-100 lb:rounded-lg",children:[
|
|
125
128
|
/* @__PURE__ */s("span",{className:"icon icon-audio icon--xl lb:text-gray-400 lb:mb-4"}),
|
|
126
129
|
/* @__PURE__ */s("p",{className:"lb:text-sm lb:text-gray-600",children:"No se puede reproducir el audio"}),
|
|
@@ -134,20 +137,20 @@ return c("div",o?{className:"lb:flex lb:flex-col lb:items-center lb:justify-cent
|
|
|
134
137
|
/* @__PURE__ */s("span",{children:"/"}),
|
|
135
138
|
/* @__PURE__ */s("span",{children:g(b)}),l&&/* @__PURE__ */c(u,{children:[
|
|
136
139
|
/* @__PURE__ */s("span",{children:"•"}),
|
|
137
|
-
/* @__PURE__ */s("span",{children:
|
|
140
|
+
/* @__PURE__ */s("span",{children:pe(l)})]})]}),
|
|
138
141
|
/* @__PURE__ */s("div",{className:"lb:w-full lb:max-w-xs lb:mt-3",children:/* @__PURE__ */s("div",{className:"lb:h-1.5 lb:bg-gray-200 lb:rounded-full lb:overflow-hidden",children:/* @__PURE__ */s("div",{className:"lb:h-full lb:bg-purple-500 lb:rounded-full lb:transition-all lb:duration-100",style:{width:b>0?h/b*100+"%":"0%"}})})}),
|
|
139
|
-
/* @__PURE__ */s("audio",{ref:f,src:e,onPlay:()=>i(!0),onPause:()=>i(!1),onTimeUpdate:()=>{f.current&&p(f.current.currentTime)},onLoadedMetadata:()=>{f.current&&m(f.current.duration)},onEnded:()=>{i(!1),p(0)},onError:()=>{d(!0)},preload:"metadata"})]})}function
|
|
142
|
+
/* @__PURE__ */s("audio",{ref:f,src:e,onPlay:()=>i(!0),onPause:()=>i(!1),onTimeUpdate:()=>{f.current&&p(f.current.currentTime)},onLoadedMetadata:()=>{f.current&&m(f.current.duration)},onEnded:()=>{i(!1),p(0)},onError:()=>{d(!0)},preload:"metadata"})]})}function ve({file:e,image:l,onDiscard:r,onRetry:a,onDownload:i,onSelect:o,showRetry:u=!1,disabled:d=!1,showCropButton:b,selectedFolder:m=null,onFolderChange:h=null,folderConfig:p=null}){const f=e||l,[g,y]=t(null),[v,w]=t({name:"",size:"",type:"",category:"unknown"}),[x,k]=t(!1),[C,S]=t(!1),[N,E]=t(""),$="image"===v.category,_="video"===v.category,z="audio"===v.category,T=void 0!==b?b:$;n(()=>{if(!f)return void y(null);const e=URL.createObjectURL(f);y(e);const t=f.name||"archivo",n=f.type||"",l=(e=>e?e.startsWith("image/")?"image":e.startsWith("video/")?"video":e.startsWith("audio/")?"audio":"application/pdf"===e||e.includes("document")||e.includes("msword")||e.includes("spreadsheet")||e.includes("presentation")||e.startsWith("text/")?"document":"unknown":"unknown")(n),r=(e=>{const t=e?.split(".")[0]?.toLowerCase()||"";return["ai-image","ai_image","generated","imagen-ia","imagen_ia"].some(e=>t.startsWith(e))})(t);if(w({name:t,size:pe(f.size||0),type:n,category:l}),r)E(""),S(!1);else{const e=t.split(".")[0];E(e)}return()=>{URL.revokeObjectURL(e)}},[f]);if(!f||!g)return null;/* @__PURE__ */
|
|
140
143
|
return c("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:[
|
|
141
144
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-4 lb:px-1",children:[
|
|
142
145
|
/* @__PURE__ */s("h3",{className:"lb:text-sm lb:font-medium lb:text-gray-700",children:(()=>{switch(v.category){case"image":return"Vista previa de imagen";case"video":return"Vista previa de video";case"audio":return"Vista previa de audio";case"document":return"Vista previa de documento";default:return"Vista previa de archivo"}})()}),
|
|
143
146
|
/* @__PURE__ */s("button",{type:"button",onClick:r,disabled:d,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 archivo",title:"Descartar archivo",children:/* @__PURE__ */s("span",{className:"icon icon-close-small icon--md"})})]}),
|
|
144
|
-
/* @__PURE__ */s("div",{className:"lb:flex lb:justify-center lb:content-stretch lb:items-stretch",children:/* @__PURE__ */c("div",{className:"lb:flex lb:flex-col lb:justify-stretch lb:content-stretch",children:[p?.showFolderSelector&&h&&/* @__PURE__ */s("div",{className:"lb:mb-4 lb:px-1 lb:flex lb:items-stretch lb:justify-stretch",children:/* @__PURE__ */s(
|
|
147
|
+
/* @__PURE__ */s("div",{className:"lb:flex lb:justify-center lb:content-stretch lb:items-stretch",children:/* @__PURE__ */c("div",{className:"lb:flex lb:flex-col lb:justify-stretch lb:content-stretch",children:[p?.showFolderSelector&&h&&/* @__PURE__ */s("div",{className:"lb:mb-4 lb:px-1 lb:flex lb:items-stretch lb:justify-stretch",children:/* @__PURE__ */s(oe,{value:m?.slug||m,onChange:h,allowCreate:!1!==p?.allowCreateFolder,label:"Guardar en carpeta",showAssetCount:!0,className:"lb:w-full",allowedSlugs:p?.include?.length>0?p.include:null,mode:"upload",disabled:d})}),
|
|
145
148
|
/* @__PURE__ */c("div",{className:"lb:flex lb:flex-col lb:justify-center lb:md:flex-row lb:gap-2 lb:md:gap-6",children:[
|
|
146
149
|
/* @__PURE__ */c("div",{className:"lb:flex-1 lb:flex lb:flex-col lb:items-center lb:justify-center"+($?" lb:min-w-100":""),children:[$?/* @__PURE__ */c("div",{className:"lb:relative lb:w-full lb:max-w-md lb:aspect-video lb:bg-gray-100 lb:rounded-lg lb:overflow-hidden lb:cursor-zoom-in lb:hover:ring-2 lb:hover:ring-brand-blue-800 lb:transition-all",onClick:()=>k(!0),role:"button",tabIndex:0,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),k(!0))},"aria-label":"Click para ver imagen en tamano completo",title:"Click para ver en tamano completo",children:[
|
|
147
150
|
/* @__PURE__ */s("img",{src:g,alt:"Vista previa",className:"lb:absolute lb:inset-0 lb:w-full lb:h-full lb:object-contain"}),
|
|
148
151
|
/* @__PURE__ */c("div",{className:"lb:absolute lb:top-2 lb:right-2 lb:bg-black/50 lb:text-white lb:px-2 lb:py-1 lb:rounded lb:text-xs lb:flex lb:items-center lb:gap-1",children:[
|
|
149
152
|
/* @__PURE__ */s("span",{className:"icon icon-search-white icon--xs"}),
|
|
150
|
-
/* @__PURE__ */s("span",{className:"lb:hidden lb:sm:inline",children:"Ampliar"})]})]}):_?/* @__PURE__ */s(
|
|
153
|
+
/* @__PURE__ */s("span",{className:"lb:hidden lb:sm:inline",children:"Ampliar"})]})]}):_?/* @__PURE__ */s(ge,{previewUrl:g,fileName:v.name}):z?/* @__PURE__ */s(ye,{previewUrl:g,fileName:v.name,fileSize:f?.size}):/* @__PURE__ */s(fe,{file:f,mimeType:v.type,category:v.category}),$&&/* @__PURE__ */s("div",{className:"lb:mt-3 lb:text-center lb:space-y-1 lb:w-full",children:/* @__PURE__ */s("div",{className:"lb:rounded-sm lb:w-fit lb:gap-0.5 lb:p-0.5 lb:min-w-fit lb:mx-auto",children:/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-center lb:gap-3 lb:text-xs lb:text-gray-500",children:[
|
|
151
154
|
/* @__PURE__ */s("span",{children:v.size}),
|
|
152
155
|
/* @__PURE__ */s("span",{children:"•"}),
|
|
153
156
|
/* @__PURE__ */s("span",{children:v.type.split("/")[1]?.toUpperCase()||"FILE"})]})})})]}),
|
|
@@ -164,19 +167,19 @@ return c("div",{className:"lb:w-fit lb:md:w-full lb:bg-white lb:border lb:border
|
|
|
164
167
|
/* @__PURE__ */s("span",{children:"Descargar"})]}),
|
|
165
168
|
/* @__PURE__ */c("button",{type:"button",onClick:()=>{N.trim()?(S(!1),o&&o(v.name)):S(!0)},disabled:d,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":T?"Seleccionar para recortar":"Seleccionar archivo",children:[
|
|
166
169
|
/* @__PURE__ */s("span",{className:"icon icon-tick-white icon--sm"}),
|
|
167
|
-
/* @__PURE__ */s("span",{children:"Seleccionar"})]})]})]})]})}),$&&/* @__PURE__ */s(Z,{isOpen:x,src:g,alt:v.name,title:v.name,subtitle:`${v.size} • ${v.type.split("/")[1]?.toUpperCase()||"IMAGE"}`,onClose:()=>k(!1)})]})}const
|
|
170
|
+
/* @__PURE__ */s("span",{children:"Seleccionar"})]})]})]})]})}),$&&/* @__PURE__ */s(Z,{isOpen:x,src:g,alt:v.name,title:v.name,subtitle:`${v.size} • ${v.type.split("/")[1]?.toUpperCase()||"IMAGE"}`,onClose:()=>k(!1)})]})}const we={image:["image/jpeg","image/png","image/gif","image/webp","image/svg+xml"],video:["video/mp4","video/webm","video/quicktime","video/x-msvideo"],document:["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/plain","text/csv"],audio:["audio/mpeg","audio/wav","audio/ogg","audio/webm"]},xe={image:"JPG, PNG, GIF, SVG, WebP",video:"MP4, WebM, MOV, AVI",document:"PDF, DOC, DOCX, XLS, XLSX, TXT",audio:"MP3, WAV, OGG"},ke=["image","video","document","audio"];function Ce({file:e,setFile:n,previewUrl:l,setPreviewUrl:r,fileInputRef:a,onSelect:o,disabled:u,allowedCategories:d=null,selectedFolder:b=null,onFolderChange:m=null,folderConfig:h=null}){const[p,f]=t(!1),{acceptAttribute:g,allowedMimeTypes:y,formatLabels:v,categories:w}=i(()=>{const e=null===d?ke:d,t=[],n=[];return e.forEach(e=>{we[e]&&(t.push(...we[e]),xe[e]&&n.push(xe[e]))}),{acceptAttribute:t.join(","),allowedMimeTypes:new Set(t),formatLabels:n.join(", "),categories:e}},[d]),x=1===w.length&&"image"===w[0],k=e=>{if(n(e),e){const t=URL.createObjectURL(e);r(t)}else r(null)};/* @__PURE__ */
|
|
168
171
|
return c("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-6","aria-label":x?"Subir imagen desde dispositivo":"Subir archivo desde dispositivo",children:[
|
|
169
172
|
/* @__PURE__ */c("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 "+(p?"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(),u||f(!0)},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),e.currentTarget.contains(e.relatedTarget)||f(!1)},onDrop:e=>{if(e.preventDefault(),e.stopPropagation(),f(!1),u)return;const t=e.dataTransfer?.files;if(t&&t.length>0){const e=t[0];(e=>{if(!e||!e.type)return!1;if(y.has(e.type))return!0;for(const t of w)if("image"===t&&e.type.startsWith("image/")||"video"===t&&e.type.startsWith("video/")||"audio"===t&&e.type.startsWith("audio/"))return!0;return!1})(e)&&k(e)}},children:[
|
|
170
173
|
/* @__PURE__ */s("span",{className:"icon icon-upload icon--lg lb:mb-2","aria-hidden":"true"}),
|
|
171
174
|
/* @__PURE__ */s("span",{className:"lb:font-medium lb:text-brand-blue-1000 lb:mb-1",children:x?"Haz clic o arrastra una imagen aqui":"Haz clic o arrastra un archivo aqui"}),
|
|
172
175
|
/* @__PURE__ */c("span",{className:"lb:text-sm lb:text-neutral-700",children:["Formatos permitidos: ",
|
|
173
176
|
/* @__PURE__ */s("span",{className:"lb:truncate lb:wrap-",children:v})]}),
|
|
174
|
-
/* @__PURE__ */s("input",{id:"file-input",ref:a,type:"file",accept:g,onChange:e=>{const t=e.target.files[0];k(t)},disabled:u,className:"lb:sr-only","aria-label":x?"Seleccionar imagen":"Seleccionar archivo"})]}),e&&/* @__PURE__ */s(
|
|
177
|
+
/* @__PURE__ */s("input",{id:"file-input",ref:a,type:"file",accept:g,onChange:e=>{const t=e.target.files[0];k(t)},disabled:u,className:"lb:sr-only","aria-label":x?"Seleccionar imagen":"Seleccionar archivo"})]}),e&&/* @__PURE__ */s(ve,{file:e,onDiscard:()=>{n(null),r(null),a.current&&(a.current.value="")},onDownload:()=>{},onSelect:t=>{if(e&&!u&&o)if(t&&t!==e.name){const n=new File([e],t,{type:e.type});o(n)}else o(e)},showRetry:!1,disabled:u,selectedFolder:b,onFolderChange:m,folderConfig:h})]})}const Se="/api";const Ne=/* @__PURE__ */new Map;function Ee(e=!1){const[l,r]=t([]),[a,i]=t(!0),[o,s]=t(null);n(()=>{const t=`ai-services-${e}`,n=Ne.get(t),l=Date.now();if(n&&l-n.timestamp<864e5)return r(n.data),void i(!1);let a=!0;return(async()=>{try{const n=await function(e=!1){return j({endpoint:"/ai/services",prod:e,basePath:Se})}(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}));r(o),Ne.set(t,{data:o,timestamp:l})}catch(n){a&&s(n.message)}finally{a&&i(!1)}})(),()=>{a=!1}},[e]);return{services:l,loading:a,error:o,invalidateCache:()=>{Ne.delete(`ai-services-${e}`)}}}const $e=/* @__PURE__ */new Map;function _e(e=!1){const[n,l]=t(null),[r,a]=t(!1),[i,o]=t(null);return{params:n,loading:r,error:i,fetchParams:async t=>{a(!0),o(null);const n=`${e}-${t}`,r=Date.now(),i=$e.get(n);if(i&&r-i.timestamp<864e5)return l(i.data),a(!1),i.data;try{const a=await function({services:e=null,form:t=!1}={},n=!1){const l={};return e&&(l.services=e),!1!==t&&(l.form=t),j({endpoint:"/ai/params"+(Object.keys(l).length?"?"+new URLSearchParams(l).toString():""),method:"GET",prod:n,basePath:"/api/atenea"})}({services:t,form:!1},e),i=a?.result?.data||a?.data||a?.result||a;return l(i),$e.set(n,{data:i,timestamp:r}),i}catch(s){return o(s.message),l(null),null}finally{a(!1)}},reset:()=>{o(null),l(null)}}}function ze({show:e=!1,message:t="Cargando...",className:n=""}){return e?/* @__PURE__ */s("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__ */c("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-4",children:[
|
|
175
178
|
/* @__PURE__ */s("span",{className:"icon icon-spinner lb:p-4 lb:animate-spin"}),
|
|
176
|
-
/* @__PURE__ */s("p",{className:"lb:text-brand-blue-1000 lb:font-medium lb:text-lg",children:t})]})}):null}function
|
|
179
|
+
/* @__PURE__ */s("p",{className:"lb:text-brand-blue-1000 lb:font-medium lb:text-lg",children:t})]})}):null}function Te({image:e,onDiscard:l,onRetry:r,onDownload:a,onSelect:i,showRetry:o=!1,disabled:u=!1,selectedFolder:d=null,onFolderChange:b=null,folderConfig:m=null}){const[h,p]=t(null),[f,g]=t({name:"",size:"",type:""}),[y,v]=t(!1),[w,x]=t(!1),[k,C]=t("");n(()=>{if(!e)return void p(null);const t=URL.createObjectURL(e);p(t);const n=e.name||"imagen.webp",l=(e=>{const t=e?.split(".")[0]?.toLowerCase()||"";return["ai-image","ai_image","generated","imagen-ia","imagen_ia"].some(e=>t.startsWith(e))})(n);return g({name:n,size:S(e.size||0),type:e.type||"image/webp"}),l?(C(""),x(!1)):C(n.split(".")[0]),()=>{URL.revokeObjectURL(t)}},[e]);const S=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&&h?/* @__PURE__ */c("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:[
|
|
177
180
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-4 lb:px-1",children:[
|
|
178
181
|
/* @__PURE__ */s("h3",{className:"lb:text-sm lb:font-medium lb:text-gray-700",children:"Vista previa de imagen"}),
|
|
179
|
-
/* @__PURE__ */s("button",{type:"button",onClick:l,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__ */s("span",{className:"icon icon-close-small icon--md"})})]}),m?.showFolderSelector&&b&&/* @__PURE__ */s("div",{className:"lb:mb-4 lb:px-1",children:/* @__PURE__ */s(
|
|
182
|
+
/* @__PURE__ */s("button",{type:"button",onClick:l,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__ */s("span",{className:"icon icon-close-small icon--md"})})]}),m?.showFolderSelector&&b&&/* @__PURE__ */s("div",{className:"lb:mb-4 lb:px-1",children:/* @__PURE__ */s(oe,{value:d?.slug||d,onChange:b,allowCreate:!1!==m?.allowCreateFolder,label:"Guardar en carpeta",showAssetCount:!0,allowedSlugs:m?.include?.length>0?m.include:null,mode:"upload",disabled:u})}),
|
|
180
183
|
/* @__PURE__ */c("div",{className:"lb:flex lb:flex-col lb:justify-center lb:md:flex-row lb:gap-2 lb:md:gap-6",children:[
|
|
181
184
|
/* @__PURE__ */c("div",{className:"lb:flex-1 lb:md:flex-[0.4] lb:flex lb:flex-col lb:items-center lb:justify-center",children:[
|
|
182
185
|
/* @__PURE__ */c("div",{className:"lb:relative lb:w-full lb:max-w-md lb:aspect-video lb:bg-gray-100 lb:rounded-lg lb:overflow-hidden lb:cursor-zoom-in lb:hover:ring-2 lb:hover:ring-brand-blue-800 lb:transition-all",onClick:()=>v(!0),role:"button",tabIndex:0,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),v(!0))},"aria-label":"Click para ver imagen en tamaño completo",title:"Click para ver en tamaño completo",children:[
|
|
@@ -202,7 +205,7 @@ return c("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-6","aria-l
|
|
|
202
205
|
/* @__PURE__ */c("button",{type:"button",onClick:()=>{k.trim()?(x(!1),i&&i(f.name)):x(!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:[
|
|
203
206
|
/* @__PURE__ */s("span",{className:"icon icon-tick-white icon--sm"}),
|
|
204
207
|
/* @__PURE__ */s("span",{children:"Seleccionar"})]})]})]}),
|
|
205
|
-
/* @__PURE__ */s(Z,{isOpen:y,src:h,alt:f.name,title:f.name,subtitle:`${f.size} • ${f.type.split("/")[1]?.toUpperCase()||"IMAGE"}`,onClose:()=>v(!1)})]}):null}function
|
|
208
|
+
/* @__PURE__ */s(Z,{isOpen:y,src:h,alt:f.name,title:f.name,subtitle:`${f.size} • ${f.type.split("/")[1]?.toUpperCase()||"IMAGE"}`,onClose:()=>v(!1)})]}):null}function Ie({prod:n,disabled:l,onSelect:r,selectedFolder:a,onFolderChange:i,folderConfig:o}){const d=Ee(n),b=_e(n),[m,h]=t(""),[p,f]=t(""),[g,y]=t({}),[v,w]=t(!1),[x,k]=t(null),[C,S]=t(null),[N,E]=t(null),[$,_]=t(!0),[z,T]=t(!1);e.useEffect(()=>{if(!d.loading&&1===d.services.length){const e=d.services[0];f(e.slug),_(!1),b.fetchParams(e.slug,!0)}},[d.loading,d.services]),e.useEffect(()=>{if(!p)return;const e=b.params?.[p]?.parameters;if(e){const t=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default??""]));t.service=p,y(t)}},[p,b.params]);const I=e=>{const{name:t,value:n}=e.target;y(e=>({...e,[t]:n}))},A=async(e,t=!1)=>{e.preventDefault(),w(!0),k(null),S(null);try{t?g.prompt=m:h(g.prompt||"");const e=await function(e,t=!1){return j({endpoint:"/ai/generate",method:"POST",body:e,prod:t,basePath:Se})}(g,n);let r=null;if(e?.data?.images&&Array.isArray(e.data.images)&&e.data.images.length>0?r=e.data.images[0]:e?.result?.images&&Array.isArray(e.result.images)&&e.result.images.length>0?r=e.result.images[0]:Array.isArray(e)&&e.length>0?r=e[0]:"string"==typeof e&&(r=e),!r)throw new Error("No se pudo extraer la imagen de la respuesta");if(r.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(r)}`,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(),l=new File([n],"ai-image.webp",{type:n.type||"image/webp"});E(l)}catch(l){throw new Error(`Error downloading image via proxy: ${l.message}`)}else{const e=r.replace(/^data:image\/\w+;base64,/,""),t=atob(e),n=new Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);const l=new Uint8Array(n),a=new File([l],"ai-image.webp",{type:"image/webp"});E(a)}S(e?.data?.images||e?.result?.images||null)}catch(r){k(r.message||"Error al generar la imagen")}finally{w(!1)}};return d.loading?/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-center lb:py-8",children:[
|
|
206
209
|
/* @__PURE__ */s("span",{className:"limbo-loader lb:mr-2"})," Cargando servicios IA..."]}):d.services.length?/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:mx-4 lb:pb-2",children:/* @__PURE__ */c(u,$?{children:[
|
|
207
210
|
/* @__PURE__ */s("h3",{id:"aiSelectDescription",className:"lb:text-2xl lb:font-semibold lb:text-brand-blue-1000 lb:mb-3",children:"Selecciona el modelo IA"}),d.error&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:d.error}),
|
|
208
211
|
/* @__PURE__ */s("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:d.services.map(e=>/* @__PURE__ */c("button",{type:"button",onClick:()=>{f(e.slug),_(!1),y({}),S(null),k(null),E(null),b.fetchParams(e.slug,!0)},disabled:d.loading||l,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 ${d.loading||l?"lb:opacity-50 lb:cursor-not-allowed":"lb:cursor-pointer"} `,style:{position:"relative"},children:[e.image&&/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:bg-cover lb:bg-center lb:transition-opacity lb:duration-200 lb:group-hover:opacity-35",style:{backgroundImage:`url(${e.image})`,opacity:.2}}),
|
|
@@ -223,7 +226,7 @@ return c("div",{className:"lb:h-fit lb:w-full",children:[d.services.length>1&&/*
|
|
|
223
226
|
/* @__PURE__ */c("button",{type:"button",onClick:()=>T(!z),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:[
|
|
224
227
|
/* @__PURE__ */s("svg",{className:"lb:w-4 lb:h-4 lb:transition-transform "+(z?"lb:rotate-90":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */s("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),"Opciones avanzadas",!z&&/* @__PURE__ */c("span",{className:"lb:text-xs lb:text-gray-500",children:["(",r.length," opciones)"]})]}),z&&/* @__PURE__ */s("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:r.map(([e,t])=>a(e,t))})]}),
|
|
225
228
|
/* @__PURE__ */s("button",{type:"submit",disabled:v||l,title:v?"Generando imagen...":N?"Generar otra imagen":"Generar imagen",className:"limbo-btn lb:w-full lb:mt-2 "+(v?"lb:cursor-not-allowed limbo-btn-disabled":"limbo-btn-primary"),style:{minHeight:44},children:v?"Generando imagen...":N?"Generar otra imagen":"Generar imagen"})]}),
|
|
226
|
-
/* @__PURE__ */s(
|
|
229
|
+
/* @__PURE__ */s(ze,{show:v,message:"Generando imagen con IA..."})]})]})})(),x&&/* @__PURE__ */s("div",{className:"alert alert-danger lb:mt-4",children:x}),N&&/* @__PURE__ */s("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */s(Te,{image:N,onDiscard:()=>{E(null),S(null),k(null)},onRetry:e=>A(e,!0),onDownload:()=>{},onSelect:e=>{if(r){const t=N||C;if(e&&t&&e!==t.name){const n=new File([t],e,{type:t.type});r(n)}else r(t)}},showRetry:!0,disabled:v||l,selectedFolder:a,onFolderChange:i,folderConfig:o})})]})}):/* @__PURE__ */s("div",{className:"alert alert-warning",children:"No hay servicios IA disponibles."})}const Ae="/api";const Me=/* @__PURE__ */new Map;function Pe(e=!1){const[l,r]=t([]),[a,i]=t(!0),[o,s]=t(null);n(()=>{const t=`stock-services-${e}`,n=Me.get(t),l=Date.now();if(n&&l-n.timestamp<864e5)return r(n.data),void i(!1);let a=!0;return(async()=>{try{const n=await function(e=!1){return j({endpoint:"/stock/services",prod:e,basePath:Ae})}(e);if(!a)return;if(204===n?.httpCode||null===n?.data)return r([]),s("No hay servicios de stock disponibles en este momento"),void Me.set(t,{data:[],timestamp:l});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}));r(o),Me.set(t,{data:o,timestamp:l})}catch(n){a&&s(n.message)}finally{a&&i(!1)}})(),()=>{a=!1}},[e]);return{services:l,loading:a,error:o,invalidateCache:()=>{Me.delete(`stock-services-${e}`)}}}function Le({prod:n,disabled:l,onSelect:r,selectedFolder:a,onFolderChange:i,folderConfig:o}){const d=e.useRef(null),b=Pe(n),m=(e,t)=>{try{const n=sessionStorage.getItem(`limbo_stock_${e}`);return n?JSON.parse(n):t}catch{return t}},[h,p]=t(()=>m("selectedService","")),[f,g]=t(()=>m("dynamicForm",{})),[y,v]=t(()=>m("stockImages",[])),[w,x]=t(()=>m("currentPage",1)),[k,C]=t(()=>m("paginationInfo",null)),[S,N]=t(null),E=_e(n),[$,_]=t(!1),[z,T]=t(null),[I,A]=t(null),[M,P]=t(!0),[L,D]=t(!1),[O,U]=t(null);e.useEffect(()=>{sessionStorage.setItem("limbo_stock_selectedService",JSON.stringify(h))},[h]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_dynamicForm",JSON.stringify(f))},[f]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_stockImages",JSON.stringify(y))},[y]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_currentPage",JSON.stringify(w))},[w]),e.useEffect(()=>{sessionStorage.setItem("limbo_stock_paginationInfo",JSON.stringify(k))},[k]),e.useEffect(()=>{if(!b.loading&&1===b.services.length){const e=b.services[0];p(e.slug),P(!1),E.fetchParams(e.slug,!0)}},[b.loading,b.services]),e.useEffect(()=>{if(!h)return;const e=E.params?.[h]?.parameters;if(e){const t=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.default??""]));t.service=h,g(t)}},[h,E.params]);const B=e=>{const{name:t,value:n}=e.target;g(e=>({...e,[t]:n}))},q=async(e=1)=>{_(!0),T(null),1===e&&v([]);try{let t;if(1===e){const n=E.params?.[h]?.parameters,l={...f};Object.entries(n||{}).forEach(([e,t])=>{e in l||(l[e]=t.default??"")}),l.per_page=parseInt(l.per_page),l.service=h,l.page=e,t=l,d.current={...l}}else t={...d.current,page:e};const l=await function(e,t=!1){return j({endpoint:"/stock/search",method:"POST",body:e,prod:t,basePath:Ae})}(t,n),r=l?.data?.images||[];let a=l?.data?.pagination||null,i=null;a&&(i={total:a.total_count??a.total??r.length,per_page:a.per_page??(Array.isArray(r)?r.length:0),current_page:a.page??a.current_page??e}),v(W(Array.isArray(r)?r:[])),C(i),x(i?.current_page||e)}catch(t){T(t.message||"Error al buscar imágenes")}finally{_(!1)}},W=e=>{const t=/* @__PURE__ */new Set,n=[];return(e||[]).forEach((e,l)=>{const r=e.url||e.preview_url||e.full||e.preview;r&&!t.has(r)&&(t.add(r),n.push({...e,preview:e.preview_url||e.preview||e.url||e.full,full:e.url||e.full||e.preview_url,id:e.id||l,title:e.title||e.filename||`Imagen ${l+1}`,source:e.service||h,sourceTitle:b.services.find(e=>e.slug===h)?.label||h}))}),n},V=async e=>{e.preventDefault();const t=f.query||f.search||f.term||"";t.trim().length<5?T("La búsqueda debe tener al menos 5 caracteres"):(N(t),await q(1))},H=e=>{e<1||q(e)},K=async e=>{A(e.id),T(null);try{const t={service:h,image_id:e.id},l=await function(e,t=!1){return j({endpoint:"/stock/download",method:"POST",body:e,prod:t,basePath:Ae})}(t,n),r=l?.result?.url||l?.result?.download_url||l?.data?.images?.url||l?.data?.url||l?.images?.url||l?.url;if(!r)throw console.error("Download response structure:",l),new Error("No se pudo obtener la URL de descarga");{const t=`${R({prod:n})}/api/atenea/proxy?url=${encodeURIComponent(r)}`,a=await fetch(t,{credentials:"include",headers:{Authorization:`Bearer ${F().token||""}`}});if(!a.ok)throw new Error(`Error al descargar imagen: ${a.status}`);const i=await a.blob(),o=l?.result?.filename||l?.data?.images?.filename||l?.data?.filename||`stock-${e.id}.jpg`,s=new File([i],o,{type:i.type||"image/jpeg"});U(s)}}catch(t){T(t.message||"No se pudo recuperar la imagen seleccionada")}finally{A(null)}};return b.loading?/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-center lb:py-8",children:[
|
|
227
230
|
/* @__PURE__ */s("span",{className:"limbo-loader lb:mr-2"})," Cargando servicios de Stock..."]}):b.services.length?/* @__PURE__ */s("div",{className:"lb:flex lb:flex-col lb:mx-4 lb:pb-2",children:/* @__PURE__ */c(u,M?{children:[
|
|
228
231
|
/* @__PURE__ */s("h3",{className:"lb:text-2xl lb:font-semibold lb:text-brand-blue-1000 lb:mb-3",children:"Selecciona el servicio de Stock"}),b.error&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:b.error}),
|
|
229
232
|
/* @__PURE__ */s("div",{className:"lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:gap-3",children:b.services.map(e=>/* @__PURE__ */c("button",{type:"button",onClick:()=>{p(e.slug),P(!1),g({}),v([]),x(1),C(null),T(null),E.fetchParams(e.slug,!0)},disabled:b.loading||l,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 ${b.loading||l?"lb:opacity-50 lb:cursor-not-allowed":"lb:cursor-pointer"} `,style:{position:"relative"},children:[e.image&&/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:bg-cover lb:bg-center lb:transition-opacity lb:duration-200 lb:group-hover:opacity-35",style:{backgroundImage:`url(${e.image})`,opacity:.2}}),
|
|
@@ -242,9 +245,9 @@ return c("div",{children:[b.services.length>1&&/* @__PURE__ */c("button",{type:"
|
|
|
242
245
|
/* @__PURE__ */c("button",{type:"button",onClick:()=>D(!L),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:[
|
|
243
246
|
/* @__PURE__ */s("svg",{className:"lb:w-4 lb:h-4 lb:transition-transform "+(L?"lb:rotate-90":""),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */s("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),"Opciones avanzadas",!L&&/* @__PURE__ */c("span",{className:"lb:text-xs lb:text-gray-500",children:["(",r.length," opciones)"]})]}),L&&/* @__PURE__ */s("div",{className:"lb:grid lb:grid-cols-1 lb:md:grid-cols-2 lb:gap-3 lb:animate-fadeIn",children:r.map(([e,t])=>a(e,t))})]}),
|
|
244
247
|
/* @__PURE__ */s("button",{type:"submit",disabled:$||l,className:"limbo-btn lb:w-full lb:mt-2 "+($?"lb:cursor-not-allowed limbo-btn-disabled":"limbo-btn-primary"),style:{minHeight:44},children:$?"Buscando...":"Buscar imágenes"})]}),
|
|
245
|
-
/* @__PURE__ */s(
|
|
248
|
+
/* @__PURE__ */s(ze,{show:$&&!y.length,message:"Buscando imágenes..."})]})]})})(),z&&/* @__PURE__ */s("div",{className:"alert alert-danger lb:mt-4",children:z}),O&&/* @__PURE__ */s("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */s(Te,{image:O,onDiscard:()=>{U(null),T(null)},onDownload:()=>{},onSelect:e=>{if(r)if(e&&O&&e!==O.name){const t=new File([O],e,{type:O.type});r(t)}else r(O)},showRetry:!1,disabled:l,selectedFolder:a,onFolderChange:i,folderConfig:o})}),!O&&y.length>0&&/* @__PURE__ */c(u,{children:[
|
|
246
249
|
/* @__PURE__ */c("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:[
|
|
247
|
-
/* @__PURE__ */s(
|
|
250
|
+
/* @__PURE__ */s(ze,{show:$,message:"Cargando imágenes..."}),y.map((e,t)=>/* @__PURE__ */s("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:()=>!I&&!$&&!l&&K(e),children:/* @__PURE__ */c("div",{className:"lb:relative lb:aspect-video lb:bg-neutral-100",children:[
|
|
248
251
|
/* @__PURE__ */s("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"}),I===e.id?/* @__PURE__ */c("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:[
|
|
249
252
|
/* @__PURE__ */c("div",{className:"lb:relative lb:w-10 lb:h-10",children:[
|
|
250
253
|
/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:border-4 lb:border-brand-blue-200 lb:rounded-full"}),
|
|
@@ -260,8 +263,8 @@ return c("div",{children:[b.services.length>1&&/* @__PURE__ */c("button",{type:"
|
|
|
260
263
|
/* @__PURE__ */s("span",{className:"icon icon-arrow-right-white icon--sm"})]})]})]}),!$&&0===y.length&&h&&S&&/* @__PURE__ */c("div",{className:"lb:mt-6 lb:text-center lb:text-neutral-600 lb:py-8 lb:bg-neutral-50 lb:rounded-lg",children:[
|
|
261
264
|
/* @__PURE__ */s("span",{className:"icon icon-search icon--lg lb:mb-2"}),
|
|
262
265
|
/* @__PURE__ */c("p",{children:['No se encontraron imágenes para "',f.query,'"']}),
|
|
263
|
-
/* @__PURE__ */s("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos de búsqueda"})]})]})}):/* @__PURE__ */s("div",{className:"alert alert-warning",children:"No hay servicios de Stock disponibles."})}const
|
|
264
|
-
/* @__PURE__ */s("img",{src:u,alt:l,className:`${r} ${"loading"===i?"lb:opacity-0":"lb:opacity-100"} lb:transition-opacity lb:duration-300`,loading:"lazy",onLoad:()=>{o("loaded")},onError:()=>{n&&!b?(m(!0),d(n),o("loading")):(o("error"),a&&a())}})]})};function
|
|
266
|
+
/* @__PURE__ */s("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos de búsqueda"})]})]})}):/* @__PURE__ */s("div",{className:"alert alert-warning",children:"No hay servicios de Stock disponibles."})}const De="/api";const Oe=/* @__PURE__ */new Map;function Re(e=!1){const[l,r]=t([]),[a,i]=t(!0),[o,s]=t(null);n(()=>{const t=`portal-sources-${e}`,n=Oe.get(t),l=Date.now();if(n&&l-n.timestamp<864e5)return r(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"),j({endpoint:`/external/portals?${n.toString()}`,method:"GET",prod:e,basePath:De})}(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}));r(o),Oe.set(t,{data:o,timestamp:l})}catch(n){a&&s(n.message)}finally{a&&i(!1)}})(),()=>{a=!1}},[e]);return{sources:l,loading:a,error:o,invalidateCache:()=>{Oe.delete(`portal-sources-${e}`)}}}const Fe=({src:t,fallbackSrc:n,alt:l,className:r,onError:a})=>{const[i,o]=e.useState("loading"),[u,d]=e.useState(t),[b,m]=e.useState(!1);return"error"===i?null:/* @__PURE__ */c("div",{className:"lb:relative lb:w-full lb:h-full",children:["loading"===i&&/* @__PURE__ */s("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__ */s("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-2",children:/* @__PURE__ */s("span",{className:"icon icon-spinner lb:w-8 lb:h-8 lb:text-gray-400 lb:animate-spin"})})}),
|
|
267
|
+
/* @__PURE__ */s("img",{src:u,alt:l,className:`${r} ${"loading"===i?"lb:opacity-0":"lb:opacity-100"} lb:transition-opacity lb:duration-300`,loading:"lazy",onLoad:()=>{o("loaded")},onError:()=>{n&&!b?(m(!0),d(n),o("loading")):(o("error"),a&&a())}})]})};function je({prod:n,disabled:l,onSelect:a,selectedFolder:i,onFolderChange:o,folderConfig:d}){const b=e.useRef(null),m=Re(n),h=(e,t)=>{try{const n=sessionStorage.getItem(`limbo_portals_${e}`);return n?JSON.parse(n):t}catch{return t}},[p,f]=t(()=>h("selectedPortals",[])),[g,y]=t(()=>h("searchName","")),[v,w]=t(()=>h("limit",20)),[x,k]=t(()=>h("currentPage",1)),[C,S]=t(!1),[N,E]=t(null),[$,_]=t(()=>h("images",[])),[z,T]=t(()=>h("portalResults",{})),[I,A]=t(()=>h("paginationInfo",null)),[M,P]=t(null),[L,D]=t(null),O=r({}),[F,U]=t(/* @__PURE__ */new Set);e.useEffect(()=>{sessionStorage.setItem("limbo_portals_selectedPortals",JSON.stringify(p))},[p]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_searchName",JSON.stringify(g))},[g]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_limit",JSON.stringify(v))},[v]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_currentPage",JSON.stringify(x))},[x]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_images",JSON.stringify($))},[$]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_portalResults",JSON.stringify(z))},[z]),e.useEffect(()=>{sessionStorage.setItem("limbo_portals_paginationInfo",JSON.stringify(I))},[I]);const B=async(e=1)=>{if(0===p.length)return void E("Selecciona al menos un portal");const t=((e,t,n,l)=>`${e.sort().join(",")}_${t}_${n}_${l}`)(p,g.trim(),v,e),l=O.current[t];if(l)return _(l.images),T(l.portalResults),A(l.paginationInfo),k(e),void E(null);S(!0),E(null),1===e&&(_([]),T({}),A(null));try{let l;if(1===e){l={sources:p,totalPortals:m.sources.length,page:e,withImage:!0};const t=g.trim();t&&(l.name=t),v&&50!==v&&(l.limit=v),b.current={...l}}else l={...b.current,page:e};const r=await function(e,t=!1){const n=new URLSearchParams,l=e.sources||[];e.portal?n.set("portal",e.portal):l.length>0&&n.set("portals",l.join(","));const r=e.q||e.name||e.search;if(r&&n.set("q",r),!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 j({endpoint:`/external/articles?${n.toString()}`,method:"GET",prod:t,basePath:De})}(l,n),a=r?.data||{},i=a?.articles||a||[],o=a?.total||i.length,s=a?.limit||v,c=a?.offset||0,u={total:o,pages:Math.ceil(o/s),current_page:Math.floor(c/s)+1,per_page:s},d=[],h={};i.forEach(e=>{const t=e.portal?.id||"unknown",l=m.sources.find(e=>e.id===t||e.slug===t),r=l?.title||l?.name||e.portal?.name||t;if(h[t]||(h[t]={title:r,status:200,response:"OK",count:0}),e.image_url){const l=e.image_url;h[t].count++;const a=`${R({prod:n})}/api/atenea/proxy?url=${encodeURIComponent(l)}`;d.push({id:e.id,title:e.title,excerpt:e.excerpt,url:l,full:l,preview:l,thumbnail:l,proxiedUrl:a,filename:`${e.title}.jpg`,source:t,sourceTitle:r,author:e.author,categories:e.categories,published_at:e.published_at,article_url:e.url})}}),O.current[t]={images:d,portalResults:h,paginationInfo:u},_(d),T(h),A(u),k(e),U(/* @__PURE__ */new Set),0!==d.length||r?.result?.success||E(r?.result?.message||"No se encontraron imágenes")}catch(r){E(r.message||"Error al buscar imágenes en portales")}finally{S(!1)}},q=e=>{e<1||B(e)};return m.loading?/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-center lb:py-8",children:[
|
|
265
268
|
/* @__PURE__ */s("span",{className:"limbo-loader lb:mr-2"})," Cargando portales disponibles..."]}):m.sources.length?/* @__PURE__ */c("div",{className:"lb:flex lb:flex-col lb:gap-2",children:[
|
|
266
269
|
/* @__PURE__ */s("h3",{className:"lb:text-lg lb:font-semibold lb:text-brand-blue-1000",children:"Buscar en Portales Externos"}),
|
|
267
270
|
/* @__PURE__ */c("form",{onSubmit:e=>{e.preventDefault(),B(1)},className:"lb:flex lb:flex-col lb:gap-4 lb:border-t lb:pt-4 lb:border-brand-blue-200",children:[
|
|
@@ -285,14 +288,14 @@ return c("button",{type:"button",onClick:()=>{return t=e.id,void f(e=>e.includes
|
|
|
285
288
|
/* @__PURE__ */s("button",{type:"submit",disabled:C||l||0===p.length,className:"limbo-btn lb:w-full "+(C||0===p.length?"lb:cursor-not-allowed limbo-btn-disabled":"limbo-btn-primary"),style:{minHeight:44},children:C?"Buscando...":"Buscar imágenes"})]}),m.error&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:m.error}),N&&/* @__PURE__ */s("div",{className:"alert alert-danger",children:N}),Object.keys(z).length>0&&/* @__PURE__ */c("div",{className:"lb:bg-neutral-50 lb:rounded-lg lb:p-3",children:[
|
|
286
289
|
/* @__PURE__ */s("h4",{className:"lb:text-sm lb:font-semibold lb:mb-2",children:"Resultados por portal:"}),
|
|
287
290
|
/* @__PURE__ */s("div",{className:"lb:grid lb:grid-cols-1 lb:md:grid-cols-2 lb:gap-2 lb:text-sm",children:Object.entries(z).map(([e,t])=>/* @__PURE__ */c("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__ */s("img",{src:t.image,alt:t.title,className:"lb:w-10 lb:h-10 lb:object-cover lb:rounded"}):/* @__PURE__ */s("span",{className:"lb:font-medium",children:t.title}),
|
|
288
|
-
/* @__PURE__ */s("span",{className:200===t.status?"text-green-1000":"text-red-1000",children:200===t.status?`${t.count} imágenes`:t.response})]},e))})]}),L&&/* @__PURE__ */s("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */s(
|
|
291
|
+
/* @__PURE__ */s("span",{className:200===t.status?"text-green-1000":"text-red-1000",children:200===t.status?`${t.count} imágenes`:t.response})]},e))})]}),L&&/* @__PURE__ */s("div",{className:"lb:mt-6 lb:md:w-full lb:mx-auto",children:/* @__PURE__ */s(Te,{image:L,onDiscard:()=>{D(null),E(null)},onDownload:()=>{},onSelect:e=>{if(a)if(e&&L&&e!==L.name){const t=new File([L],e,{type:L.type});a(t)}else a(L)},showRetry:!1,disabled:l,selectedFolder:i,onFolderChange:o,folderConfig:d})}),!L&&($.length>0||C)&&/* @__PURE__ */c(u,{children:[
|
|
289
292
|
/* @__PURE__ */c("div",{className:"lb:mt-6 lb:relative lb:min-h-50","aria-live":"polite",children:[C&&/* @__PURE__ */s("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__ */c("div",{className:"lb:flex lb:flex-col lb:items-center lb:gap-2",children:[
|
|
290
293
|
/* @__PURE__ */s("span",{className:"limbo-loader"}),
|
|
291
294
|
/* @__PURE__ */s("span",{className:"lb:text-sm lb:text-brand-blue-800",children:"Buscando imágenes..."})]})}),
|
|
292
295
|
/* @__PURE__ */c("div",{className:"lb:relative lb:grid lb:grid-cols-2 lb:md:grid-cols-3 lb:lg:grid-cols-4 lb:gap-2",children:[
|
|
293
|
-
/* @__PURE__ */s(
|
|
296
|
+
/* @__PURE__ */s(ze,{show:C,message:"Cargando imágenes..."}),$.map((e,t)=>{const r=`${e.source}-${e.id||t}`,a=e.preview||e.thumbnail||e.url||e.full;return F.has(r)?null:/* @__PURE__ */c("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:()=>!M&&!C&&!l&&(async e=>{P(e.url||e.full),E(null);try{const t=e.full||e.url||e.preview;if(!t)throw new Error("No se encontró URL de la imagen");const l=`${R({prod:n})}/api/atenea/proxy?url=${encodeURIComponent(t)}`,r=await fetch(l);if(!r.ok)throw new Error(`Error al descargar: ${r.status}`);const a=await r.blob(),i=e.filename||e.title||`portal-${e.id||Date.now()}.jpg`,o=new File([a],i,{type:a.type||"image/jpeg"});D(o)}catch(t){E(t.message||"No se pudo recuperar la imagen del portal")}finally{P(null)}})(e),children:[
|
|
294
297
|
/* @__PURE__ */c("div",{className:"lb:relative lb:aspect-video lb:bg-neutral-100",children:[
|
|
295
|
-
/* @__PURE__ */s(
|
|
298
|
+
/* @__PURE__ */s(Fe,{src:a,fallbackSrc:e.proxiedUrl,alt:e.title||e.filename||`Imagen ${t+1}`,className:"lb:object-cover lb:w-full lb:h-full",onError:()=>{U(e=>{const t=new Set(e);return t.add(r),t})}}),
|
|
296
299
|
/* @__PURE__ */s("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}),M===(e.url||e.full)?/* @__PURE__ */c("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:[
|
|
297
300
|
/* @__PURE__ */c("div",{className:"lb:relative lb:w-10 lb:h-10",children:[
|
|
298
301
|
/* @__PURE__ */s("div",{className:"lb:absolute lb:inset-0 lb:border-4 lb:border-brand-blue-200 lb:rounded-full"}),
|
|
@@ -308,11 +311,11 @@ return c("button",{type:"button",onClick:()=>{return t=e.id,void f(e=>e.includes
|
|
|
308
311
|
/* @__PURE__ */c("button",{onClick:()=>q(x+1),disabled:C||I&&x>=I.pages,className:"limbo-btn limbo-btn-secondary px-4 py-2 disabled:opacity-25"+(C||I&&x>=I.pages?" pointer-events-none cursor-default":" limbo-btn-primary"),children:["Siguiente"," ",
|
|
309
312
|
/* @__PURE__ */s("span",{className:"icon icon-arrow-right-white icon--sm"})]})]})]}),!C&&0===$.length&&Object.keys(z).length>0&&/* @__PURE__ */c("div",{className:"lb:mt-6 lb:text-center lb:text-neutral-600 lb:py-8 lb:bg-neutral-50 lb:rounded-lg",children:[
|
|
310
313
|
/* @__PURE__ */s("span",{className:"icon icon-search icon--lg lb:mb-2"}),
|
|
311
|
-
/* @__PURE__ */s("p",{children:"No se encontraron imágenes en los portales seleccionados"}),g&&/* @__PURE__ */s("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos o sin filtro de nombre"})]})]}):/* @__PURE__ */s("div",{className:"alert alert-warning",children:"No hay portales externos disponibles."})}const
|
|
314
|
+
/* @__PURE__ */s("p",{children:"No se encontraron imágenes en los portales seleccionados"}),g&&/* @__PURE__ */s("p",{className:"lb:text-sm lb:mt-1",children:"Intenta con otros términos o sin filtro de nombre"})]})]}):/* @__PURE__ */s("div",{className:"alert alert-warning",children:"No hay portales externos disponibles."})}const Ue=[{id:"upload",label:"Subir archivo"},{id:"ai",label:"Generar"},{id:"stock",label:"Buscar en Stock"},{id:"portals",label:"Otros portales"}];function Be({onSelect:e,disabled:n=!1,apiKey:l,prod:a=!1,allowedCategories:i=null,folderConfig:o=null,selectedFolder:u=null,onFolderChange:d=null}){const{isMobile:b,isTouch:m}=E(),[h,p]=t("upload"),[f,g]=t(null),[y,v]=t(null),w=r(),x=["limbo-tabs","lb:flex","lb:gap-4","lb:border-b-2","lb:border-brand-blue-200","lb:mb-4",b&&"lb:overflow-x-auto lb:scrollbar-none"].filter(Boolean).join(" "),k=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"),b&&t.push("lb:min-w-[100px]","lb:min-h-[44px]","lb:text-sm","lb:shrink-0"),m&&t.push("lb:touch-manipulation"),t.join(" ")};/* @__PURE__ */
|
|
312
315
|
return c("div",{className:"limbo-upload-form lb:py-4 lb:min-w-fit lb:max-w-7xl lb:mx-auto",children:[
|
|
313
|
-
/* @__PURE__ */s("div",{className:x,role:"tablist","aria-label":"Opciones de subida",style:b?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:
|
|
314
|
-
return c("button",{type:"button","data-upload-tab-id":e.id,className:k(t),"aria-current":t?"page":void 0,"aria-selected":t,role:"tab",tabIndex:t?0:-1,onClick:()=>p(e.id),onKeyDown:t=>((e,t)=>{const n=
|
|
315
|
-
/* @__PURE__ */c("div",{className:"limbo-tab-content lb:px-2 lb:py-2",role:"tabpanel",id:`upload-tabpanel-${h}`,"aria-labelledby":`upload-tab-${h}`,children:["upload"===h&&/* @__PURE__ */s(ve,{file:f,setFile:g,previewUrl:y,setPreviewUrl:v,fileInputRef:w,onSelect:e,disabled:n,allowedCategories:i,selectedFolder:u,onFolderChange:d,folderConfig:o}),"ai"===h&&/* @__PURE__ */s($e,{apiKey:l,prod:a,disabled:n,onSelect:e,selectedFolder:u,onFolderChange:d,folderConfig:o}),"stock"===h&&/* @__PURE__ */s(Ie,{apiKey:l,prod:a,disabled:n,onSelect:e,selectedFolder:u,onFolderChange:d,folderConfig:o}),"portals"===h&&/* @__PURE__ */s(De,{apiKey:l,prod:a,disabled:n,onSelect:e,selectedFolder:u,onFolderChange:d,folderConfig:o})]})]})}const Fe="undefined"!=typeof window&&void 0!==window.document,je=Fe?window:{},Ue=!!Fe&&"ontouchstart"in je.document.documentElement,Be=!!Fe&&"PointerEvent"in je,qe="cropper",We=`${qe}-canvas`,Ve=`${qe}-crosshair`,He=`${qe}-grid`,Ke=`${qe}-handle`,Ge=`${qe}-image`,Qe=`${qe}-selection`,Xe=`${qe}-shade`,Ye=`${qe}-viewer`,Je="select",Ze="move",et="scale",tt="rotate",nt="transform",lt="none",rt="n-resize",at="e-resize",it="s-resize",ot="w-resize",st="ne-resize",ct="nw-resize",ut="se-resize",dt="sw-resize",bt=Be?"pointerdown":Ue?"touchstart":"mousedown",mt=Be?"pointermove":Ue?"touchmove":"mousemove",ht=Be?"pointerup pointercancel":Ue?"touchend touchcancel":"mouseup",pt="error",ft="keydown",gt="load",yt="wheel",vt="action",wt="actionend",xt="actionstart",kt="change",Ct="transform";const St=Number.isNaN||je.isNaN;function Nt(e){return"number"==typeof e&&!St(e)}function Et(e){return Nt(e)&&e>0&&e<1/0}function $t(e){return"object"==typeof e&&null!==e}const{hasOwnProperty:_t}=Object.prototype;function zt(e){if(!$t(e))return!1;try{const{constructor:t}=e,{prototype:n}=t;return t&&n&&_t.call(n,"isPrototypeOf")}catch(t){return!1}}function Tt(e){return"function"==typeof e}function It(e){return"object"==typeof e&&null!==e&&1===e.nodeType}const At=/([a-z\d])([A-Z])/g;function Mt(e){return String(e).replace(At,"$1-$2").toLowerCase()}const Pt=/-[A-z\d]/g;function Lt(e){return e.replace(Pt,e=>e.slice(1).toUpperCase())}const Dt=/\s\s*/;function Ot(e,t,n,l){t.trim().split(Dt).forEach(t=>{e.removeEventListener(t,n,l)})}function Rt(e,t,n,l){t.trim().split(Dt).forEach(t=>{e.addEventListener(t,n,l)})}function Ft(e,t,n,l){Rt(e,t,n,Object.assign(Object.assign({},l),{once:!0}))}const jt={bubbles:!0,cancelable:!0,composed:!0};const Ut=Promise.resolve();function Bt(e){const{documentElement:t}=e.ownerDocument,n=e.getBoundingClientRect();return{left:n.left+(je.pageXOffset-t.clientLeft),top:n.top+(je.pageYOffset-t.clientTop)}}const qt=/deg|g?rad|turn$/i;function Wt(e){const t=parseFloat(e)||0;if(0!==t){const[n="rad"]=String(e).match(qt)||[];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 Vt="contain";function Ht(e,t=Vt){const{aspectRatio:n}=e;let{width:l,height:r}=e;const a=Et(l),i=Et(r);if(a&&i){const e=r*n;t===Vt&&e>l||"cover"===t&&e<l?r=l/n:l=r*n}else a?r=l/n:i&&(l=r*n);return{width:l,height:r}}function Kt(e,...t){if(0===t.length)return e;const[n,l,r,a,i,o]=e,[s,c,u,d,b,m]=t[0];return Kt(e=[n*s+r*c,l*s+a*c,n*u+r*d,l*u+a*d,n*b+r*m+i,l*b+a*m+o],...t.slice(1))}const Gt=/left|top|width|height/i,Qt="open",Xt=/* @__PURE__ */new WeakMap,Yt=/* @__PURE__ */new WeakMap,Jt=/* @__PURE__ */new Map,Zt=je.document&&Array.isArray(je.document.adoptedStyleSheets)&&"replaceSync"in je.CSSStyleSheet.prototype;class en extends HTMLElement{get $sharedStyle(){return(this.themeColor?`:host{--theme-color: ${this.themeColor};}`:"")+":host([hidden]){display:none!important}"}constructor(){var e,t;super(),this.shadowRootMode=Qt,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&&Jt.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 l=Lt(e);let r=n;switch(typeof this[l]){case"boolean":r=null!==n&&"false"!==n;break;case"number":r=Number(n)}switch(this[l]=r,e){case"theme-color":{const e=Yt.get(this),t=this.$sharedStyle;e&&t&&(Zt?e.replaceSync(t):e.textContent=t);break}}}$propertyChangedCallback(e,t,n){if(!Object.is(n,t))switch(e=Mt(e),typeof n){case"boolean":!0===n?this.hasAttribute(e)||this.setAttribute(e,""):this.removeAttribute(e);break;case"number":n=St(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=Lt(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 l=n;n=e,this.$propertyChangedCallback(t,l,e)}})});const e=this.shadowRoot||this.attachShadow({mode:this.shadowRootMode||Qt});if(Xt.set(this,e),Yt.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(){Yt.has(this)&&Yt.delete(this),Xt.has(this)&&Xt.delete(this)}$getTagNameOf(e){var t;return null!==(t=Jt.get(e))&&void 0!==t?t:e}$setStyles(e){return Object.keys(e).forEach(t=>{let n=e[t];Nt(n)&&(n=0!==n&&Gt.test(t)?`${n}px`:String(n)),this.style[t]=n}),this}$getShadowRoot(){return this.shadowRoot||Xt.get(this)}$addStyles(e){let t;const n=this.$getShadowRoot();return Zt?(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,l){return e.dispatchEvent(new CustomEvent(t,Object.assign(Object.assign(Object.assign({},jt),{detail:n}),l)))}(this,e,t,n)}$nextTick(e){return function(e,t){return t?Ut.then(e?t.bind(e):t):Ut}(this,e)}static $define(e,t){$t(e)&&(t=e,e=""),e||(e=this.$name||this.name),e=Mt(e),Fe&&je.customElements&&!je.customElements.get(e)&&customElements.define(e,this,t)}}en.$version="2.1.0";class tn extends en{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=lt,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),Rt(this,bt,this.$onPointerDown)),this.$onPointerMove||(this.$onPointerMove=this.$handlePointerMove.bind(this),Rt(this.ownerDocument,mt,this.$onPointerMove)),this.$onPointerUp||(this.$onPointerUp=this.$handlePointerUp.bind(this),Rt(this.ownerDocument,ht,this.$onPointerUp)),this.$onWheel||(this.$onWheel=this.$handleWheel.bind(this),Rt(this,yt,this.$onWheel,{passive:!1,capture:!0}))}$unbind(){this.$onPointerDown&&(Ot(this,bt,this.$onPointerDown),this.$onPointerDown=null),this.$onPointerMove&&(Ot(this.ownerDocument,mt,this.$onPointerMove),this.$onPointerMove=null),this.$onPointerUp&&(Ot(this.ownerDocument,ht,this.$onPointerUp),this.$onPointerUp=null),this.$onWheel&&(Ot(this,yt,this.$onWheel,{capture:!0}),this.$onWheel=null)}$handlePointerDown(e){const{buttons:t,button:n,type:l}=e;if(this.disabled||("pointerdown"===l&&"mouse"===e.pointerType||"mousedown"===l)&&(Nt(t)&&1!==t||Nt(n)&&0!==n||e.ctrlKey))return;const{$pointers:r}=this;let a="";if(e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e,pageX:t,pageY:n})=>{r.set(e,{startX:t,startY:n,endX:t,endY:n})});else{const{pointerId:t=0,pageX:n,pageY:l}=e;r.set(t,{startX:n,startY:l,endX:n,endY:l})}r.size>1?a=nt:It(e.target)&&(a=e.target.action||e.target.getAttribute("action")||""),!1!==this.$emit(xt,{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===lt||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:l})=>{const r=n.get(e);r&&Object.assign(r,{endX:t,endY:l})});else{const{pointerId:t=0,pageX:l,pageY:r}=e,a=n.get(t);a&&Object.assign(a,{endX:l,endY:r})}const l={action:t,relatedEvent:e};if(t===nt){const t=new Map(n);let r=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,l=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?l<0?h=2*Math.PI:l>0&&(h=Math.PI):n>0?h=Math.PI/2+Math.atan(l/n):n<0&&(h=1.5*Math.PI+Math.atan(l/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,l=Math.abs(n);l>r&&(r=l,i=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}if(n=Math.abs(n),l=Math.abs(l),u=Math.abs(u),d=Math.abs(d),n>0&&l>0?b=Math.sqrt(n*n+l*l):n>0?b=n:l>0&&(b=l),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,l=Math.abs(n);l>a&&(a=l,o=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}})});const u=r>0,d=a>0;u&&d?(l.rotate=i,l.scale=o,l.centerX=s,l.centerY=c):u?(l.action=tt,l.rotate=i,l.centerX=s,l.centerY=c):d?(l.action=et,l.scale=o,l.centerX=s,l.centerY=c):l.action=lt}else{const[e]=Array.from(n.values());Object.assign(l,e)}n.forEach(e=>{e.startX=e.endX,e.startY=e.endY}),l.action!==lt&&this.$emit(vt,l,{cancelable:!1})}$handlePointerUp(e){const{$action:t,$pointers:n}=this;if(!this.disabled&&t!==lt&&!1!==this.$emit(wt,{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=lt)}}$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(vt,{action:et,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 l=document.createElement("canvas");let r=this.offsetWidth,a=this.offsetHeight,i=1;zt(e)&&(Et(e.width)||Et(e.height))&&(({width:r,height:a}=Ht({aspectRatio:r/a,width:e.width,height:e.height})),i=r/this.offsetWidth),l.width=r,l.height=a;const o=this.querySelector(this.$getTagNameOf(Ge));o?o.$ready().then(n=>{const s=l.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,r,a),zt(e)&&Tt(e.beforeDraw)&&e.beforeDraw.call(this,s,l),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(l)}).catch(n):t(l)})}}tn.$name=We,tn.$version="2.1.0";const nn=/* @__PURE__ */new WeakMap,ln=["alt","crossorigin","decoding","elementtiming","fetchpriority","loading","referrerpolicy","sizes","src","srcset"];class rn extends en{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){nn.set(this,e)}get $canvas(){return nn.get(this)}static get observedAttributes(){return super.observedAttributes.concat(ln,["initial-center-size","rotatable","scalable","skewable","translatable"])}attributeChangedCallback(e,t,n){Object.is(n,t)||(super.attributeChangedCallback(e,t,n),ln.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(We));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),Rt(t,xt,this.$onCanvasActionStart),Rt(t,wt,this.$onCanvasActionEnd),Rt(t,vt,this.$onCanvasAction)),this.$onLoad=this.$handleLoad.bind(this),Rt(e,gt,this.$onLoad),this.$getShadowRoot().appendChild(e)}disconnectedCallback(){const{$image:e,$canvas:t}=this;t&&(this.$onCanvasActionStart&&(Ot(t,xt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(Ot(t,wt,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(Ot(t,vt,this.$onCanvasAction),this.$onCanvasAction=null)),e&&this.$onLoad&&(Ot(e,gt,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:l}=n;switch(l!==nt||this.rotatable&&this.scalable||(l=this.rotatable?tt:this.scalable?et:lt),l){case Ze:if(this.translatable){let l=null;e&&(l=e.target.closest(this.$getTagNameOf(Qe))),l||(l=t.querySelector(this.$getTagNameOf(Qe))),l&&l.multiple&&!l.active&&(l=t.querySelector(`${this.$getTagNameOf(Qe)}[active]`)),l&&!l.hidden&&l.movable&&!l.dynamic&&this.$actionStartTarget&&l.contains(this.$actionStartTarget)||this.$move(n.endX-n.startX,n.endY-n.startY)}break;case tt:if(this.rotatable)if(e){const{x:t,y:l}=this.getBoundingClientRect();this.$rotate(n.rotate,e.clientX-t,e.clientY-l)}else this.$rotate(n.rotate);break;case et:if(this.scalable)if(e){const t=e.target.closest(this.$getTagNameOf(Qe));if(!t||!t.zoomable||t.zoomable&&t.dynamic){const{x:t,y:l}=this.getBoundingClientRect();this.$zoom(n.scale,e.clientX-t,e.clientY-l)}}else this.$zoom(n.scale);break;case nt:if(this.rotatable&&this.scalable){const{rotate:t}=n;let{scale:l}=n;l<0?l=1/(1-l):l+=1;const r=Math.cos(t),a=Math.sin(t),[i,o,s,c]=[r*l,a*l,-a*l,r*l];if(e){const t=this.getBoundingClientRect(),n=e.clientX-t.x,l=e.clientY-t.y,[r,a,u,d]=this.$matrix,b=n-t.width/2,m=l-t.height/2,h=(b*d-u*m)/(r*d-u*a),p=(m*r-a*b)/(r*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 l=new Error("Failed to load the image source");if(t.complete)t.naturalWidth>0&&t.naturalHeight>0?e(t):n(l);else{const r=()=>{Ot(t,pt,a),setTimeout(()=>{e(t)})},a=()=>{Ot(t,gt,r),n(l)};Ft(t,gt,r),Ft(t,pt,a)}});return Tt(e)&&n.then(t=>(e(t),t)),n}$center(e){const{parentElement:t}=this;if(!t)return this;const n=t.getBoundingClientRect(),l=n.width,r=n.height,{x:a,y:i,width:o,height:s}=this.getBoundingClientRect(),c=a+o/2,u=i+s/2,d=n.x+l/2,b=n.y+r/2;if(this.$move(d-c,b-u),e&&(o!==l||s!==r)){const t=l/o,n=r/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&&Nt(e)&&Nt(t)){const[n,l,r,a]=this.$matrix,i=(e*a-r*t)/(n*a-r*l),o=(t*n-l*e)/(n*a-r*l);this.$translate(i,o)}return this}$moveTo(e,t=e){if(this.translatable&&Nt(e)&&Nt(t)){const[n,l,r,a]=this.$matrix,i=(e*a-r*t)/(n*a-r*l),o=(t*n-l*e)/(n*a-r*l);this.$setTransform(n,l,r,a,i,o)}return this}$rotate(e,t,n){if(this.rotatable){const l=Wt(e),r=Math.cos(l),a=Math.sin(l),[i,o,s,c]=[r,a,-a,r];if(Nt(t)&&Nt(n)){const[e,l,r,a]=this.$matrix,{width:u,height:d}=this.getBoundingClientRect(),b=t-u/2,m=n-d/2,h=(b*a-r*m)/(e*a-r*l),p=(m*e-l*b)/(e*a-r*l);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,Nt(t)&&Nt(n)){const[l,r,a,i]=this.$matrix,{width:o,height:s}=this.getBoundingClientRect(),c=t-o/2,u=n-s/2,d=(c*i-a*u)/(l*i-a*r),b=(u*l-r*c)/(l*i-a*r);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=Wt(e),l=Wt(t);this.$transform(1,Math.tan(l),Math.tan(n),1,0,0)}return this}$translate(e,t=e){return this.translatable&&Nt(e)&&Nt(t)&&this.$transform(1,0,0,1,e,t),this}$transform(e,t,n,l,r,a){return Nt(e)&&Nt(t)&&Nt(n)&&Nt(l)&&Nt(r)&&Nt(a)?this.$setTransform(Kt(this.$matrix,[e,t,n,l,r,a])):this}$setTransform(e,t,n,l,r,a){if((this.rotatable||this.scalable||this.skewable||this.translatable)&&(Array.isArray(e)&&([e,t,n,l,r,a]=e),Nt(e)&&Nt(t)&&Nt(n)&&Nt(l)&&Nt(r)&&Nt(a))){const i=[...this.$matrix],o=[e,t,n,l,r,a];if(!1===this.$emit(Ct,{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])}}rn.$name=Ge,rn.$version="2.1.0";const an=/* @__PURE__ */new WeakMap;class on extends en{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){an.set(this,e)}get $canvas(){return an.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["height","width","x","y"])}connectedCallback(){super.connectedCallback();const e=this.closest(this.$getTagNameOf(We));if(e){this.$canvas=e,this.style.position="absolute";const t=e.querySelector(this.$getTagNameOf(Qe));t&&(this.$onCanvasActionStart=e=>{t.hidden&&e.detail.action===Je&&(this.hidden=!1)},this.$onCanvasActionEnd=e=>{t.hidden&&e.detail.action===Je&&(this.hidden=!0)},this.$onSelectionChange=e=>{const{x:n,y:l,width:r,height:a}=e.defaultPrevented?t:e.detail;this.$change(n,l,r,a),(t.hidden||0===n&&0===l&&0===r&&0===a)&&(this.hidden=!0)},Rt(e,xt,this.$onCanvasActionStart),Rt(e,wt,this.$onCanvasActionEnd),Rt(e,kt,this.$onSelectionChange))}this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(Ot(e,xt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(Ot(e,wt,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onSelectionChange&&(Ot(e,kt,this.$onSelectionChange),this.$onSelectionChange=null)),super.disconnectedCallback()}$change(e,t,n=this.width,l=this.height){return Nt(e)&&Nt(t)&&Nt(n)&&Nt(l)&&(e!==this.x||t!==this.y||n!==this.width||l!==this.height)?(this.hidden&&(this.hidden=!1),this.x=e,this.y=t,this.width=n,this.height=l,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:je.innerWidth})}}on.$name=Xe,on.$version="2.1.0";class sn extends en{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=lt,this.plain=!1,this.slottable=!1,this.themeColor="rgba(51, 153, 255, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["action","plain"])}}sn.$name=Ke,sn.$version="2.1.0";const cn=/* @__PURE__ */new WeakMap;class un extends en{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){cn.set(this,e)}get $canvas(){return cn.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(()=>{Et(n)&&n<=1&&this.$initSelection(!0,!0)});break;case"keyboard":this.$nextTick(()=>{this.$canvas&&(n?this.$onDocumentKeyDown||(this.$onDocumentKeyDown=this.$handleKeyDown.bind(this),Rt(this.ownerDocument,ft,this.$onDocumentKeyDown)):this.$onDocumentKeyDown&&(Ot(this.ownerDocument,ft,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(kt,{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(We));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),Rt(e,xt,this.$onCanvasActionStart),Rt(e,wt,this.$onCanvasActionEnd),Rt(e,vt,this.$onCanvasAction)):this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(Ot(e,xt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(Ot(e,wt,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(Ot(e,vt,this.$onCanvasAction),this.$onCanvasAction=null)),super.disconnectedCallback()}$getSelections(){let e=[];return this.parentElement&&(e=Array.from(this.parentElement.querySelectorAll(this.$getTagNameOf(Qe)))),e}$initSelection(e=!1,t=!1){const{initialCoverage:n,parentElement:l}=this;if(Et(n)&&l){const r=this.aspectRatio||this.initialAspectRatio;let a=(t?0:this.width)||l.offsetWidth*n,i=(t?0:this.height)||l.offsetHeight*n;Et(r)&&({width:a,height:i}=Ht({aspectRatio:r,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),l=t[n+1]||t[n-1];l&&(e.active=!1,this.parentElement.removeChild(e),l.active=!0,l.$emit(kt,{x:l.x,y:l.y,width:l.width,height:l.height}))}else this.$clear()}}$handleActionStart(e){var t,n;const l=null===(n=null===(t=e.detail)||void 0===t?void 0:t.relatedEvent)||void 0===n?void 0:n.target;this.$action="",this.$actionStartTarget=l,!this.hidden&&this.multiple&&!this.active&&l===this&&this.parentElement&&(this.$getSelections().forEach(e=>{e.active=!1}),this.active=!0,this.$emit(kt,{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:l}=n;let{action:r}=n;const a=l?function(e){if("function"==typeof e.composedPath)return e.composedPath().find(It)||e.target;return e.target}(l):null;if(!r&&this.multiple&&(r=this.$action||(null==a?void 0:a.action),this.$action=r),!r||this.hidden&&r!==Je||this.multiple&&!this.active&&r!==et)return;const{width:i,height:o}=this;let s=n.endX-n.startX,c=n.endY-n.startY,{aspectRatio:u}=this;switch(!Et(u)&&l.shiftKey&&(u=Et(i)&&Et(o)?i/o:1),r){case Je:if(0!==s||0!==c){0===s?s=c:0===c&&(c=s);const{$canvas:e}=this,l=Bt(t);(this.multiple&&!this.hidden?this.$createSelection():this).$change(n.startX-l.left,n.startY-l.top,Math.abs(s),Math.abs(c),u),s<0?c<0?r=ct:c>0&&(r=dt):s>0&&(c<0?r=st:c>0&&(r=ut)),e&&(e.$action=r)}break;case Ze:this.movable&&(this.dynamic||this.$actionStartTarget&&this.contains(this.$actionStartTarget))&&this.$move(s,c);break;case et:if(l&&this.zoomable&&(this.dynamic||this.contains(l.target))){const e=Bt(t);this.$zoom(n.scale,l.pageX-e.left,l.pageY-e.top)}break;default:this.$resize(r,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,l=this.aspectRatio){if(!this.resizable)return this;const r=Et(l),{$canvas:a}=this;let{x:i,y:o,width:s,height:c}=this;switch(e){case rt:o+=n,c-=n,c<0&&(e=it,c=-c,o-=c),r&&(i+=(t=n*l)/2,s-=t,s<0&&(s=-s,i-=s));break;case at:s+=t,s<0&&(e=ot,s=-s,i-=s),r&&(o-=(n=t/l)/2,c+=n,c<0&&(c=-c,o-=c));break;case it:c+=n,c<0&&(e=rt,c=-c,o-=c),r&&(i-=(t=n*l)/2,s+=t,s<0&&(s=-s,i-=s));break;case ot:i+=t,s-=t,s<0&&(e=at,s=-s,i-=s),r&&(o+=(n=t/l)/2,c-=n,c<0&&(c=-c,o-=c));break;case st:r&&(n=-t/l),o+=n,c-=n,s+=t,s<0&&c<0?(e=dt,s=-s,c=-c,i-=s,o-=c):s<0?(e=ct,s=-s,i-=s):c<0&&(e=ut,c=-c,o-=c);break;case ct:r&&(n=t/l),i+=t,o+=n,s-=t,c-=n,s<0&&c<0?(e=ut,s=-s,c=-c,i-=s,o-=c):s<0?(e=st,s=-s,i-=s):c<0&&(e=dt,c=-c,o-=c);break;case ut:r&&(n=t/l),s+=t,c+=n,s<0&&c<0?(e=ct,s=-s,c=-c,i-=s,o-=c):s<0?(e=dt,s=-s,i-=s):c<0&&(e=st,c=-c,o-=c);break;case dt:r&&(n=-t/l),i+=t,s-=t,c+=n,s<0&&c<0?(e=st,s=-s,c=-c,i-=s,o-=c):s<0?(e=ut,s=-s,i-=s):c<0&&(e=ct,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:l,height:r}=this,a=l*e,i=r*e;let o=this.x,s=this.y;return Nt(t)&&Nt(n)?(o-=(a-l)*((t-this.x)/l),s-=(i-r)*((n-this.y)/r)):(o-=(a-l)/2,s-=(i-r)/2),this.$change(o,s,a,i)}$change(e,t,n=this.width,l=this.height,r=this.aspectRatio,a=!1){return this.$changing||!Nt(e)||!Nt(t)||!Nt(n)||!Nt(l)||n<0||l<0?this:(Et(r)&&({width:n,height:l}=Ht({aspectRatio:r,width:n,height:l},"cover")),this.precise||(e=Math.round(e),t=Math.round(t),n=Math.round(n),l=Math.round(l)),e===this.x&&t===this.y&&n===this.width&&l===this.height&&Object.is(r,this.aspectRatio)&&!a?this:(this.hidden&&(this.hidden=!1),!1===this.$emit(kt,{x:e,y:t,width:n,height:l})?this:(this.$changing=!0,this.x=e,this.y=t,this.width=n,this.height=l,this.$changing=!1,this.$render())))}$reset(){const{x:e,y:t,width:n,height:l}=this.$initialSelection;return this.$change(e,t,n,l)}$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 l=document.createElement("canvas");let{width:r,height:a}=this,i=1;if(zt(e)&&(Et(e.width)||Et(e.height))&&(({width:r,height:a}=Ht({aspectRatio:r/a,width:e.width,height:e.height})),i=r/this.width),l.width=r,l.height=a,!this.$canvas)return void t(l);const o=this.$canvas.querySelector(this.$getTagNameOf(Ge));o?o.$ready().then(n=>{const s=l.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,r,a),zt(e)&&Tt(e.beforeDraw)&&e.beforeDraw.call(this,s,l),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(l)}).catch(n):t(l)})}}un.$name=Qe,un.$version="2.1.0";class dn extends en{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))}}dn.$name=He,dn.$version="2.1.0";class bn extends en{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"])}}bn.$name=Ve,bn.$version="2.1.0";const mn=/* @__PURE__ */new WeakMap,hn=/* @__PURE__ */new WeakMap,pn=/* @__PURE__ */new WeakMap,fn=/* @__PURE__ */new WeakMap,gn="vertical";class yn extends en{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=gn,this.selection="",this.slottable=!1}set $image(e){hn.set(this,e)}get $image(){return hn.get(this)}set $sourceImage(e){fn.set(this,e)}get $sourceImage(){return fn.get(this)}set $canvas(e){mn.set(this,e)}get $canvas(){return mn.get(this)}set $selection(e){pn.set(this,e)}get $selection(){return pn.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(Qe)),It(n)){this.$selection=n,this.$onSelectionChange=this.$handleSelectionChange.bind(this),Rt(n,kt,this.$onSelectionChange);const e=n.closest(this.$getTagNameOf(We));if(e){this.$canvas=e;const t=e.querySelector(this.$getTagNameOf(Ge));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),Rt(t.$image,gt,this.$onSourceImageLoad),Rt(t,Ct,this.$onSourceImageTransform))}this.$render()}}disconnectedCallback(){const{$selection:e,$sourceImage:t}=this;e&&this.$onSelectionChange&&(Ot(e,kt,this.$onSelectionChange),this.$onSelectionChange=null),t&&this.$onSourceImageLoad&&(Ot(t.$image,gt,this.$onSourceImageLoad),this.$onSourceImageLoad=null),t&&this.$onSourceImageTransform&&(Ot(t,Ct,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"),l=t.getAttribute("src");l&&l!==n&&(e.setAttribute("src",l),e.$ready(()=>{this.$render()}))}$handleSourceImageTransform(e){this.$render(void 0,e.detail.matrix)}$render(e,t){const{$canvas:n,$selection:l}=this;e||l.hidden||(e=l),(!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:r,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 gn: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(),-r,-a)})}$transformImageByOffset(e,t,n){const{$image:l,$scale:r,$sourceImage:a}=this;if(a&&l&&r>=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;l.$ready(e=>{this.$setStyles.call(l,{width:e.naturalWidth*r,height:e.naturalHeight*r})}),l.$setTransform(a,i,o,s,m*r,h*r)}}}function vn(){const[e,n]=t(!1),[l,r]=t(null),[a,i]=t(null),o=async(e,t)=>{if(!e||!t)return r("ID de asset y configuración de variante son requeridos"),null;n(!0),r(null),i(null);try{const n=await async function(e,{variant_name:t,width:n,height:r,crop_params:a,preset_aspect:i=null,preset_size:o=null,output_format:s="webp"}){try{const l=[{name:t,width:n,height:r,output_format:s,crop_params:a}];return i&&(l[0].preset_aspect=i),o&&(l[0].preset_size=o),H(await j({endpoint:`/assets/${e}/variants`,method:"POST",body:{variants:l,async:!1},basePath:G,useJWT:!0}))}catch(l){throw K(l)}}(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),r(a.message||"Error desconocido al crear variante"),null}finally{n(!1)}};return{createVariant:o,createCropVariant:async(e,t,n={})=>{const l={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,l)},createVariantFromBlob:async(e,t,a={})=>{if(!e||!t)return r("ID de asset y blob son requeridos"),null;n(!0),r(null),i(null);try{const n=await async function(e,t,n={}){try{const l=new FormData,r=n.format||"webp",a=`${n.name||"variant"}.${r}`;return l.append("file",t,a),l.append("variant_name",n.name||"variant"),l.append("width",String(n.width||0)),l.append("height",String(n.height||0)),l.append("output_format",n.format||"webp"),l.append("permanent_url",!1!==n.permanentUrl?"true":"false"),H(await j({endpoint:`/assets/${e}/variants/upload`,method:"POST",body:l,basePath:G,isFormData:!0,useJWT:!0}))}catch(l){throw K(l)}}(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),r(o.message||"Error desconocido al crear variante"),null}finally{n(!1)}},loading:e,error:l,createdVariant:a,reset:()=>{r(null),i(null)}}}yn.$name=Ye,yn.$version="2.1.0",tn.$define(),bn.$define(),dn.$define(),sn.$define(),rn.$define(),un.$define(),on.$define(),yn.$define();class wn{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,l,r,a)=>{if(!this.image)return!1;try{return this.image.$setTransform(e,t,n,l,r,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,l,r,a,i]=e,o=Math.sqrt(t*t+n*n),s=Math.sqrt(l*l+r*r),c=t/o,u=n/o,d=l/s,b=r/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,l,r,a,i,o]=t,s=Math.sqrt(n*n+l*l),c=Math.sqrt(r*r+a*a),u=n/s*e,d=l/s*e,b=r/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 l=1-e,r=t.width*l/n.naturalWidth,a=t.height*l/n.naturalHeight,i=Math.min(r,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,l]=e.split("/").map(e=>parseFloat(e.trim()));if(isNaN(n)||isNaN(l)||0===l)return console.warn("Invalid aspect ratio format:",e),!1;t=n/l}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,l,r)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$change(e,t,n,l,r),!0}catch(a){return console.warn("Error changing selection:",a),!1}},set:(e,t,n,l)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.x=e,this.selectionElement.y=t,this.selectionElement.width=n,this.selectionElement.height=l,this.selectionElement.$render(),!0}catch(r){return console.warn("Error setting selection:",r),!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,l,r,a,i]=e;return this.transform.setTransform(-t,n,l,r,a,i)},flipVertical:()=>{const e=this.transform.getTransform();if(!e)return!1;const[t,n,l,r,a,i]=e;return this.transform.setTransform(t,n,l,-r,a,i)},setupInitialView:async(e={})=>{const{paspartuFactor:t=.85,retries:n=3,retryDelay:l=200}=e;return new Promise(e=>{const r=(a=0)=>{if(!this.isReady)return a<n?void setTimeout(()=>r(a+1),l):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(()=>r(a+1),l):(this.transform.center(),void e(!1));if(i.width>0&&i.height>0){const n=i.width*t/o.naturalWidth,l=i.height*t/o.naturalHeight,r=Math.min(n,l,1);this.transform.setTransform(r,0,0,r,0,0)?setTimeout(()=>{this.transform.center(),this.selection.center(),e(!0)},100):(this.transform.reset(),setTimeout(()=>{r<1&&this.transform.scale(r),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)}};r()})},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:l,onActionStart:r,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(l){const e=e=>l(e.detail);this.canvasElement.addEventListener("action",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("action",e)})}if(r){const e=e=>r(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 xn(e,t,n={}){const{format:l=null,originalFormat:r="webp",onSuccess:a=null,onError:i=null,accessibilityManager:o=null}=n;try{const n=window.limboCore?.config?.getGlobal(),i=l||n?.downloadFormat||r||"webp",c=`${t.split(".")[0]}.${i}`;if(o&&o.announce(`Descargando ${c}`),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,c),a&&a(c),o&&o.announce(`${c} descargado correctamente`),!0;let u;try{if(u=await fetch(e,{mode:"cors"}),!u.ok)throw new Error(`HTTP error! status: ${u.status}`)}catch(s){if(!e.startsWith("http"))throw s;{const t=(window.limboCore?.config?.getGlobal()||{}).prod?"https://limbo.lefebvre.es":"https://led-dev-limbo-dev.eu.els.local",n=window.limboCore?.apiClient?.token||"",l=`${t}/api/atenea/proxy?url=${encodeURIComponent(e)}`;if(u=await fetch(l,{credentials:"include",headers:{Authorization:`Bearer ${n}`}}),!u.ok)throw new Error(`Proxy error: ${u.status}`)}}const d=await u.blob();let b=d;const m=d.type;m!==`image/${"jpg"===i?"jpeg":i}`&&function(e){return["webp","jpeg","jpg","png"].includes(e.toLowerCase())}(i)&&(b=await async function(e,t){return new Promise((n,l)=>{const r=new Image,a=URL.createObjectURL(e);r.onload=()=>{try{const l=document.createElement("canvas");l.width=r.width,l.height=r.height;l.getContext("2d").drawImage(r,0,0);const i=`image/${"jpg"===t?"jpeg":t}`,o="png"===t?void 0:.92;l.toBlob(t=>{URL.revokeObjectURL(a),n(t||e)},i,o)}catch(l){URL.revokeObjectURL(a),n(e)}},r.onerror=()=>{URL.revokeObjectURL(a),n(e)},r.src=a})}(d,i));const h=window.URL.createObjectURL(b),p=document.createElement("a");return p.href=h,p.download=c,p.style.display="none",document.body.appendChild(p),p.click(),setTimeout(()=>{window.URL.revokeObjectURL(h),document.body.removeChild(p)},100),a&&a(c),o&&o.announce(`${c} descargado correctamente`),!0}catch(c){return console.error("Error downloading image:",c),i&&i(c),o&&o.announce(`Error al descargar la imagen: ${c.message}`),!1}}const kn=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,default:xn,downloadImage:xn},Symbol.toStringTag,{value:"Module"}));function Cn({image:e,onSave:a,onCancel:o,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,I]=t(!1),[A,M]=t({x:0,y:0}),[P,L]=t(!1),[D,O]=t(!0),[R,F]=t(!1),[j,U]=t({horizontal:!1,vertical:!1}),[B,q]=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}),Y=i(()=>{if(g)return{mandatoryCrops:g.mandatoryCrops||[],allowCustomCrops:!1!==g.allowAdditionalCrops,showDimensionInputs:!0===g.showDimensionInputs,maxCrops:g.maxCrops||null,localCropsOnly:!0===g.localCropsOnly,existingCrops:g.existingCrops||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,localCropsOnly:!0===e.cropper?.localCropsOnly,existingCrops:e.cropper?.existingCrops||null}},[g]),[J,ee]=t(()=>Y.mandatoryCrops.length>0?Y.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),le=J[te],re=i(()=>le&&le.width&&le.height?le.width/le.height:"",[le]),ae=i(()=>{const e=50;if(!re||""===re)return{minWidth:e,minHeight:e};if(re>=1){return{minWidth:e,minHeight:e/re}}return{minWidth:e*re,minHeight:e}},[re]),[ie,oe]=t(!1),[se,ce]=t([]),[ue,de]=t(null),be=window.limboCore?.accessibilityManager,{createVariantFromBlob:me,loading:he,error:pe}=vn(),fe=((e,a={})=>{const i=r(null),o=r(null),s=r(null),c=r(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 wn(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=l(()=>({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=l(()=>({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=l(()=>({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:re||null,showGrid:S,shade:E,initialCoverage:.5,paspartuFactor:.85}),{refs:ge,state:ye,transform:ve,selection:we,utils:xe}=fe,{canvasRef:ke,imageRef:Ce,selectionRef:Se}=ge,{cropData:Ee,imageInfo:$e,canExport:_e,transformVersion:ze}=ye,Te=i(()=>$e||{naturalWidth:e.width||1920,naturalHeight:e.height||1080,currentWidth:e.width||1920,currentHeight:e.height||1080},[$e,e.width,e.height]),Ie=l(()=>N(e=>!e),[]),Ae=l(()=>$(e=>!e),[]),Me=l(()=>V(e=>!e),[]),Pe=l(()=>K(e=>!e),[]),Le=l(()=>Q(e=>!e),[]),De=l(()=>ve.center(),[ve]),Oe=l(()=>we.center(),[we]),Re=l(()=>we.reset(),[we]),Fe=l((e,t)=>ve.move(e,t),[ve]),je=l(e=>ve.zoom(e),[ve]),Ue=l(e=>ve.rotate(e),[ve]),Be=l(e=>{we.setCoverage(e)},[we]),qe=l(()=>{U(e=>{const t=!e.horizontal;return ve.flipHorizontal(),{...e,horizontal:t}})},[ve]),We=l(()=>{U(e=>{const t=!e.vertical;return ve.flipVertical(),{...e,vertical:t}})},[ve]),Ve=l(()=>{if(!fe.manager||!ye.isReady)return null;try{const e=Ee?{...Ee}:null;let t=null;if(Se.current){const e=Se.current;t={x:e.x??0,y:e.y??0,width:e.width??0,height:e.height??0}}let n=null;if(Ce.current){const e=Ce.current.$getTransform?.();e&&Array.isArray(e)&&(n=[...e])}const l={cropData:e,selectorState:t,imageTransform:n,flipState:{horizontal:j.horizontal,vertical:j.vertical}};return console.log(`[CropperView] 💾 Guardando estado del crop ${te}:`,l),ee(e=>e.map((e,t)=>t===te?{...e,savedState:l}:e)),l}catch(e){return console.warn("Error saving crop state:",e),null}},[fe.manager,ye.isReady,Ee,j,te,Ce,Se]),He=l(e=>{const t=J[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(fe.manager&&ye.isReady)try{const{savedState:n}=t;if(console.log(`[CropperView] ♻️ Restaurando estado del crop ${e}:`,n),n.imageTransform&&Ce.current&&Array.isArray(n.imageTransform)&&setTimeout(()=>{if(Ce.current&&Ce.current.$setTransform){const[e,t,l,r,a,i]=n.imageTransform;Ce.current.$setTransform(e,t,l,r,a,i),console.log(`[CropperView] ✅ Imagen restaurada: transform(${e.toFixed(2)}, ${t.toFixed(2)}, ${l.toFixed(2)}, ${r.toFixed(2)}, ${a.toFixed(0)}, ${i.toFixed(0)})`)}},100),n.selectorState&&Se.current){const{x:e,y:t,width:l,height:r}=n.selectorState;setTimeout(()=>{Se.current&&(Se.current.x=e,Se.current.y=t,Se.current.width=l,Se.current.height=r,Se.current.$render&&Se.current.$render(),console.log(`[CropperView] ✅ Selector restaurado: ${l}×${r} 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")},[J,fe.manager,ye.isReady,De,Oe,Se,Ce]),Ke=l(()=>{for(let e=0;e<J.length;e++){const t=J[e];if(!t.label||""===t.label.trim())return e}return-1},[J]),Ge=l(async e=>{e!==te&&(F(!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)),F(!1))},[te,Ve,He]),Qe=l(()=>{if(!Y.allowCustomCrops)return void alert("No se pueden añadir recortes personalizados en este modo.");const t={id:`crop-custom-${Date.now()}`,label:`Recorte ${J.length+1}`,width:e.width||1920,height:e.height||1080,required:!1,isCustom:!0,confirmed:!1,savedState:null};ee(e=>[...e,t]),be?.announce(`Nuevo recorte personalizado añadido: ${t.label}. Selecciónalo para editarlo.`)},[Y.allowCustomCrops,J.length,e.width,e.height,be]),Xe=l((e,t)=>{const n=parseInt(t,10);""===t||isNaN(n)||ee(t=>t.map((t,l)=>l===te?{...t,[e]:n}:t))},[te]),Ye=l(e=>{const t=le[e];let n=100;if(ke.current&&$e){const e=ke.current.getBoundingClientRect(),t=Math.min(e.width,e.height);n=Math.max(100,Math.round(.05*t))}const l=Math.max(n,Math.min(5e3,t));l!==t&&ee(t=>t.map((t,n)=>n===te?{...t,[e]:l}:t));const r={...le,[e]:l},a=r.width/r.height,i=we.getData?.();we.setAspectRatio(a),i&&void 0!==i.x&&setTimeout(()=>{we.set?.(i.x,i.y,i.width,i.height)},50)},[te,le,we,ke,$e]),Je=l(e=>{ee(t=>t.map((t,n)=>n===te?{...t,label:e}:t))},[te]),Ze=l((e,t=null)=>{t=t||J[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=J[e];if(n.required)alert("No se puede eliminar un recorte obligatorio.");else if(1!==J.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);be?.announce(`Recorte ${n.label} eliminado`)}else alert("Debe haber al menos un recorte.")},[J,te,be]),et=l(async()=>{if(!_e)return null;try{const t=await we.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,we]),tt=l(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=l(e=>{e.target.closest(".limbo-preview-modal-header")&&(I(!0),M({x:e.clientX-_.x,y:e.clientY-_.y}))},[_]),lt=l(e=>{T&&(e.preventDefault(),z({x:e.clientX-A.x,y:e.clientY-A.y}))},[T,A]),rt=l(()=>{I(!1)},[]),at=l(e=>{if(!e.target.closest(".limbo-preview-modal-header"))return;const t=e.touches[0];I(!0),M({x:t.clientX-_.x,y:t.clientY-_.y})},[_]),it=l(e=>{if(!T)return;e.preventDefault();const t=e.touches[0];z({x:t.clientX-A.x,y:t.clientY-A.y})},[T,A]),ot=l(()=>{I(!1)},[]);n(()=>{if(T)return document.addEventListener("mousemove",lt),document.addEventListener("mouseup",rt),document.addEventListener("touchmove",it,{passive:!1}),document.addEventListener("touchend",ot),()=>{document.removeEventListener("mousemove",lt),document.removeEventListener("mouseup",rt),document.removeEventListener("touchmove",it),document.removeEventListener("touchend",ot)}},[T,lt,rt,it,ot]),n(()=>{if(!P)return;const e=e=>{"Escape"===e.key&&L(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[P]);const st=l(async(t,n=null)=>{const l=J[t];if(!l)throw new Error(`Crop ${t} no encontrado`);if(!l.savedState&&t!==te)throw new Error(`El recorte "${l.label}" aún no ha sido configurado`);const r={index:te,imageTransform:Ce.current?.$getTransform?.(),selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null};try{if(t!==te&&l.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para guardado...`),l.savedState.imageTransform&&Ce.current?.$setTransform){const[e,t,n,r,a,i]=l.savedState.imageTransform;Ce.current.$setTransform(e,t,n,r,a,i)}if(l.savedState.selectorState&&Se.current){const{x:e,y:t,width:n,height:r}=l.savedState.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=n,Se.current.height=r,Se.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const r=Math.min(l.width,5e3),i=Math.min(l.height,5e3),o=await we.toCanvas({width:r,height:i,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!o)throw new Error(`No se pudo generar el canvas para "${l.label}"`);const s=globalThis.downloadFormat||"webp",c="webp"===s?"image/webp":"png"===s?"image/png":"image/jpeg",u=.9,d=await new Promise((e,t)=>{o.toBlob(n=>{n?e(n):t(new Error("No se pudo convertir el canvas a blob"))},c,u)});console.log("[CropperView] Canvas convertido a blob:",{size:d.size,type:d.type,dimensions:`${r}x${i}`});const b=`${l.label||"crop"}_${r}_${i}`,m=n||e.id,f=!m||"string"==typeof m&&m.startsWith("external"),g=(f||Y.localCropsOnly)&&!p;if(f&&p&&!Y.localCropsOnly){console.log("[CropperView] 📤 Imagen externa con onUpload disponible, subiendo crop como nuevo asset...");try{const e=new File([d],`${b}.${s}`,{type:c}),t=await p(e);if(t&&(t.id||t.url)){console.log("[CropperView] ✅ Crop subido exitosamente:",t);const e=l.savedState||{selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null,imageTransform:Ce.current?.$getTransform?.()||null,flipState:{horizontal:j.horizontal,vertical:j.vertical}},n={id:t.id||`uploaded-${Date.now()}`,name:b,filename:`${b}.${s}`,url:t.urlSigned||t.url,urlSigned:t.urlSigned||t.url,width:r,height:i,format:s,size:d.size,mime_type:c,isLocal:!1,originalAssetId:null,uploadedAssetId:t.id,cropState:e};return be?.announceSuccess(`Recorte guardado: ${b}`),n}}catch(a){console.error("[CropperView] ❌ Error subiendo crop, fallback a local:",a)}}if(g){console.log(`[CropperView] 🌐 Generando resultado local (isExternal: ${f}, localCropsOnly: ${Y.localCropsOnly})`);const e=URL.createObjectURL(d),t=l.savedState||{selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null,imageTransform:Ce.current?.$getTransform?.()||null,flipState:{horizontal:j.horizontal,vertical:j.vertical}},n={id:`local-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:b,filename:`${b}.${s}`,url:e,urlSigned:e,width:r,height:i,format:s,size:d.size,mime_type:c,blob:d,isLocal:!0,originalAssetId:m||null,cropState:t};return be?.announceSuccess(`Recorte creado localmente: ${b}`),n}const y=l.savedState||{selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null,imageTransform:Ce.current?.$getTransform?.()||null,flipState:{horizontal:j.horizontal,vertical:j.vertical}},v=await me(m,d,{name:b,width:r,height:i,format:s});if(v)return v.cropState=y,be?.announceSuccess(`Recorte creado: ${b}`),h?.(m,v),v;throw new Error("No se pudo crear la variante")}finally{if(t!==te&&r.imageTransform&&Ce.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${r.index}...`);const[e,t,n,l,a,i]=r.imageTransform;if(Ce.current.$setTransform(e,t,n,l,a,i),r.selectorState&&Se.current){const{x:e,y:t,width:n,height:l}=r.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=n,Se.current.height=l,Se.current.$render?.()}}}},[J,te,we,me,e.id,h,be,Ce,Se]),ct=l(async()=>{if(!_e){const e="No se puede exportar el recorte por restricciones de CORS en la imagen original.";return be?.announceError(e),void alert(e)}if(!ye.isReady){const e="El cropper aún no está inicializado. Espera un momento e inténtalo de nuevo.";return be?.announceError(e),void alert(e)}Ve(),be?.announce("Creando recorte de la imagen");try{let t=e.id,n=null;if(e.file&&p){be?.announce("Subiendo imagen...");const l=await p(e.file);if(!l||!l.id)throw new Error("No se pudo subir la imagen al servidor");t=l.id,n=l,be?.announceSuccess("Imagen subida correctamente")}const l=await st(te,t);l&&a(n?{crops:[l],asset:n}:l)}catch(t){console.warn("Error creating crop variant:",t);const e=t.message||"No se pudo crear el recorte. Inténtalo de nuevo.";be?.announceError(e),alert(e),b?.(t)}},[_e,ye.isReady,be,Ve,st,te,a,b,e.file,e.id,p]),ut=l(async t=>{Ve(),be?.announce(`Guardando ${t.length} recortes...`);try{let l=e.id,r=null;if(e.file&&p){be?.announce("Subiendo imagen...");const t=await p(e.file);if(!t||!t.id)throw new Error("No se pudo subir la imagen al servidor");l=t.id,r=t,be?.announceSuccess("Imagen subida correctamente")}const i=[],o=[];for(const e of t)try{const t=await st(e,l);t&&i.push(t)}catch(n){o.push({crop:J[e]?.label||`Crop ${e}`,error:n.message})}if(i.length>0&&(be?.announceSuccess(`${i.length} recorte(s) guardado(s) correctamente`),a(r?{crops:i,asset:r}:i)),o.length>0){const e=`Errores al guardar algunos recortes:\n${o.map(e=>`- ${e.crop}: ${e.error}`).join("\n")}`;be?.announceError(e),alert(e)}}catch(n){const e=n.message||"Error al procesar los recortes";be?.announceError(e),alert(e),b?.(n)}},[Ve,st,J,be,a,e.file,e.id,p,b]),dt=l(async()=>{const e=Ke();if(-1!==e){const t=J[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void ne(e)}const t=J.findIndex((e,t)=>e.required&&!e.savedState&&t!==te);if(-1!==t){const e=J[t];return alert(`El recorte obligatorio "${e.label}" aún no ha sido configurado.\n\nPor favor, configura todos los recortes obligatorios antes de guardar.`),ne(t),void be?.announce(`Recorte obligatorio "${e.label}" sin configurar. Por favor, configúralo.`,"assertive")}if(J.length>1){de("save");const e=J.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.required||e.savedState||t===te).map(({index:e})=>e);return ce(e),void oe(!0)}await ct()},[Ke,J,ct,te,be]),bt=l(async t=>{const n=J[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 l={index:te,imageTransform:Ce.current?.$getTransform?.(),selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null};try{if(t!==te&&n.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para descarga...`),n.savedState.imageTransform&&Ce.current?.$setTransform){const[e,t,l,r,a,i]=n.savedState.imageTransform;Ce.current.$setTransform(e,t,l,r,a,i)}if(n.savedState.selectorState&&Se.current){const{x:e,y:t,width:l,height:r}=n.savedState.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=l,Se.current.height=r,Se.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const l=await we.toCanvas({width:n.width,height:n.height,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!l)throw new Error(`No se pudo generar el canvas para "${n.label}"`);const r=l.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 xn(r,a,{accessibilityManager:be,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&&l.imageTransform&&Ce.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${l.index}...`);const[e,t,n,r,a,i]=l.imageTransform;if(Ce.current.$setTransform(e,t,n,r,a,i),l.selectorState&&Se.current){const{x:e,y:t,width:n,height:r}=l.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=n,Se.current.height=r,Se.current.$render?.()}}}},[J,te,we,e.mime_type,be,Ce,Se]),mt=l(async e=>{Ve(),be?.announce(`Descargando ${e.length} recortes...`);const t=[],n=[];for(const r of e)try{const e=await bt(r);e&&t.push(e)}catch(l){n.push({crop:J[r]?.label||`Crop ${r}`,error:l.message})}if(t.length>0&&be?.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")}`;be?.announceError(e),alert(e)}},[Ve,bt,J,be]),ht=l(async()=>{if(!_e){const e="No se puede descargar el recorte por restricciones de CORS en la imagen original.";return be?.announceError(e),void alert(e)}Ve(),be?.announce("Preparando descarga del recorte");try{await bt(te),be?.announceSuccess("Recorte descargado correctamente")}catch(e){console.error("Error downloading crop:",e);const t=e.message||"Error al descargar el recorte";be?.announceError(t),alert(t)}},[_e,be,Ve,bt,te]),pt=l(async()=>{const e=Ke();if(-1!==e){const t=J[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void ne(e)}if(J.length>1){de("download");const e=J.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.savedState||t===te).map(({index:e})=>e);return ce(e),void oe(!0)}await ht()},[Ke,J,ht,te]),ft=i(()=>!!e.file||(!e.id||!("string"!=typeof e.id||!e.id.startsWith("external"))),[e.file,e.id]),gt=l(async()=>{try{if(e.file&&p){be?.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 be?.announceSuccess("Imagen guardada correctamente"),void a({asset:t,crops:[]})}if(ft){be?.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 be?.announceSuccess("Imagen original conservada"),void a({crops:[t]})}if(e.id&&!e.id.startsWith("external")){be?.announce("Seleccionando imagen original...");const t={id:e.id,name:e.filename||"original",filename:e.filename||"image.jpg",url:e.url,urlSigned:e.urlSigned||e.url,width:e.width||$e?.naturalWidth||1920,height:e.height||$e?.naturalHeight||1080,mime_type:e.mime_type||"image/jpeg",isOriginal:!0};return be?.announceSuccess("Imagen original seleccionada"),void a({crops:[t],assetId:e.id})}o()}catch(t){console.error("Error guardando imagen original:",t);const e=t.message||"No se pudo guardar la imagen. Inténtalo de nuevo.";be?.announceError(e),alert(e),b?.(t)}},[e,$e,p,o,a,b,be,ft]);return n(()=>{v(!1),x(null)},[e]),n(()=>{if(!fe.manager||!ye.isReady||!D)return;console.log("[CropperView] Carga inicial completada, centrando imagen y selector...");const e=Y.existingCrops?.[0],t=e?.cropState;setTimeout(()=>{De(),setTimeout(()=>{if(t){if(console.log("[CropperView] 🔄 Restaurando estado del crop existente:",t),t.imageTransform&&Ce.current?.$setTransform){const[e,n,l,r,a,i]=t.imageTransform;Ce.current.$setTransform(e,n,l,r,a,i),console.log("[CropperView] ✅ Transformación de imagen restaurada")}if(t.selectorState&&Se.current){const{x:e,y:n,width:l,height:r}=t.selectorState;Se.current.x=e,Se.current.y=n,Se.current.width=l,Se.current.height=r,Se.current.$render?.(),console.log("[CropperView] ✅ Posición del selector restaurada:",t.selectorState)}t.flipState&&(U(t.flipState),console.log("[CropperView] ✅ Estado de flip restaurado:",t.flipState))}else Oe();O(!1),console.log("[CropperView] Carga inicial finalizada")},100)},50)},[fe.manager,ye.isReady,D,De,Oe,Y.existingCrops]),n(()=>{fe.manager&&ye.isReady&&(re&&we.setAspectRatio(re),xe.setBackground(E))},[re,E,fe.manager,ye.isReady,we,xe]),n(()=>{if(!$e||!ye.isReady||Y.mandatoryCrops.length>0)return;const e=J[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,ye.isReady,Y.mandatoryCrops.length,J]),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,re,j,w]),n(()=>{const e=ke.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)}},[ke]),e?/* @__PURE__ */c("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:[
|
|
316
|
+
/* @__PURE__ */s("div",{className:x,role:"tablist","aria-label":"Opciones de subida",style:b?{WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"}:void 0,children:Ue.map(e=>{const t=h===e.id;/* @__PURE__ */
|
|
317
|
+
return c("button",{type:"button","data-upload-tab-id":e.id,className:k(t),"aria-current":t?"page":void 0,"aria-selected":t,role:"tab",tabIndex:t?0:-1,onClick:()=>p(e.id),onKeyDown:t=>((e,t)=>{const n=Ue.findIndex(e=>e.id===t);let l=n;switch(e.key){case"ArrowLeft":e.preventDefault(),l=n>0?n-1:Ue.length-1;break;case"ArrowRight":e.preventDefault(),l=n<Ue.length-1?n+1:0;break;case"Home":e.preventDefault(),l=0;break;case"End":e.preventDefault(),l=Ue.length-1;break;case"Enter":case" ":return e.preventDefault(),void p(t);default:return}const r=Ue[l];r&&(p(r.id),setTimeout(()=>{const e=document.querySelector(`[data-upload-tab-id="${r.id}"]`);e&&e.focus()},0))})(t,e.id),id:`upload-tab-${e.id}`,"aria-controls":`upload-tabpanel-${e.id}`,style:m?{WebkitTapHighlightColor:"transparent"}:void 0,children:["ai"===e.id?/* @__PURE__ */s("span",{className:"icon icon-ia lb:me-1"}):null,e.label]},e.id)})}),
|
|
318
|
+
/* @__PURE__ */c("div",{className:"limbo-tab-content lb:px-2 lb:py-2",role:"tabpanel",id:`upload-tabpanel-${h}`,"aria-labelledby":`upload-tab-${h}`,children:["upload"===h&&/* @__PURE__ */s(Ce,{file:f,setFile:g,previewUrl:y,setPreviewUrl:v,fileInputRef:w,onSelect:e,disabled:n,allowedCategories:i,selectedFolder:u,onFolderChange:d,folderConfig:o}),"ai"===h&&/* @__PURE__ */s(Ie,{apiKey:l,prod:a,disabled:n,onSelect:e,selectedFolder:u,onFolderChange:d,folderConfig:o}),"stock"===h&&/* @__PURE__ */s(Le,{apiKey:l,prod:a,disabled:n,onSelect:e,selectedFolder:u,onFolderChange:d,folderConfig:o}),"portals"===h&&/* @__PURE__ */s(je,{apiKey:l,prod:a,disabled:n,onSelect:e,selectedFolder:u,onFolderChange:d,folderConfig:o})]})]})}const qe="undefined"!=typeof window&&void 0!==window.document,We=qe?window:{},Ve=!!qe&&"ontouchstart"in We.document.documentElement,He=!!qe&&"PointerEvent"in We,Ke="cropper",Ge=`${Ke}-canvas`,Qe=`${Ke}-crosshair`,Xe=`${Ke}-grid`,Ye=`${Ke}-handle`,Je=`${Ke}-image`,Ze=`${Ke}-selection`,et=`${Ke}-shade`,tt=`${Ke}-viewer`,nt="select",lt="move",rt="scale",at="rotate",it="transform",ot="none",st="n-resize",ct="e-resize",ut="s-resize",dt="w-resize",bt="ne-resize",mt="nw-resize",ht="se-resize",pt="sw-resize",ft=He?"pointerdown":Ve?"touchstart":"mousedown",gt=He?"pointermove":Ve?"touchmove":"mousemove",yt=He?"pointerup pointercancel":Ve?"touchend touchcancel":"mouseup",vt="error",wt="keydown",xt="load",kt="wheel",Ct="action",St="actionend",Nt="actionstart",Et="change",$t="transform";const _t=Number.isNaN||We.isNaN;function zt(e){return"number"==typeof e&&!_t(e)}function Tt(e){return zt(e)&&e>0&&e<1/0}function It(e){return"object"==typeof e&&null!==e}const{hasOwnProperty:At}=Object.prototype;function Mt(e){if(!It(e))return!1;try{const{constructor:t}=e,{prototype:n}=t;return t&&n&&At.call(n,"isPrototypeOf")}catch(t){return!1}}function Pt(e){return"function"==typeof e}function Lt(e){return"object"==typeof e&&null!==e&&1===e.nodeType}const Dt=/([a-z\d])([A-Z])/g;function Ot(e){return String(e).replace(Dt,"$1-$2").toLowerCase()}const Rt=/-[A-z\d]/g;function Ft(e){return e.replace(Rt,e=>e.slice(1).toUpperCase())}const jt=/\s\s*/;function Ut(e,t,n,l){t.trim().split(jt).forEach(t=>{e.removeEventListener(t,n,l)})}function Bt(e,t,n,l){t.trim().split(jt).forEach(t=>{e.addEventListener(t,n,l)})}function qt(e,t,n,l){Bt(e,t,n,Object.assign(Object.assign({},l),{once:!0}))}const Wt={bubbles:!0,cancelable:!0,composed:!0};const Vt=Promise.resolve();function Ht(e){const{documentElement:t}=e.ownerDocument,n=e.getBoundingClientRect();return{left:n.left+(We.pageXOffset-t.clientLeft),top:n.top+(We.pageYOffset-t.clientTop)}}const Kt=/deg|g?rad|turn$/i;function Gt(e){const t=parseFloat(e)||0;if(0!==t){const[n="rad"]=String(e).match(Kt)||[];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 Qt="contain";function Xt(e,t=Qt){const{aspectRatio:n}=e;let{width:l,height:r}=e;const a=Tt(l),i=Tt(r);if(a&&i){const e=r*n;t===Qt&&e>l||"cover"===t&&e<l?r=l/n:l=r*n}else a?r=l/n:i&&(l=r*n);return{width:l,height:r}}function Yt(e,...t){if(0===t.length)return e;const[n,l,r,a,i,o]=e,[s,c,u,d,b,m]=t[0];return Yt(e=[n*s+r*c,l*s+a*c,n*u+r*d,l*u+a*d,n*b+r*m+i,l*b+a*m+o],...t.slice(1))}const Jt=/left|top|width|height/i,Zt="open",en=/* @__PURE__ */new WeakMap,tn=/* @__PURE__ */new WeakMap,nn=/* @__PURE__ */new Map,ln=We.document&&Array.isArray(We.document.adoptedStyleSheets)&&"replaceSync"in We.CSSStyleSheet.prototype;class rn extends HTMLElement{get $sharedStyle(){return(this.themeColor?`:host{--theme-color: ${this.themeColor};}`:"")+":host([hidden]){display:none!important}"}constructor(){var e,t;super(),this.shadowRootMode=Zt,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&&nn.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 l=Ft(e);let r=n;switch(typeof this[l]){case"boolean":r=null!==n&&"false"!==n;break;case"number":r=Number(n)}switch(this[l]=r,e){case"theme-color":{const e=tn.get(this),t=this.$sharedStyle;e&&t&&(ln?e.replaceSync(t):e.textContent=t);break}}}$propertyChangedCallback(e,t,n){if(!Object.is(n,t))switch(e=Ot(e),typeof n){case"boolean":!0===n?this.hasAttribute(e)||this.setAttribute(e,""):this.removeAttribute(e);break;case"number":n=_t(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=Ft(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 l=n;n=e,this.$propertyChangedCallback(t,l,e)}})});const e=this.shadowRoot||this.attachShadow({mode:this.shadowRootMode||Zt});if(en.set(this,e),tn.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(){tn.has(this)&&tn.delete(this),en.has(this)&&en.delete(this)}$getTagNameOf(e){var t;return null!==(t=nn.get(e))&&void 0!==t?t:e}$setStyles(e){return Object.keys(e).forEach(t=>{let n=e[t];zt(n)&&(n=0!==n&&Jt.test(t)?`${n}px`:String(n)),this.style[t]=n}),this}$getShadowRoot(){return this.shadowRoot||en.get(this)}$addStyles(e){let t;const n=this.$getShadowRoot();return ln?(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,l){return e.dispatchEvent(new CustomEvent(t,Object.assign(Object.assign(Object.assign({},Wt),{detail:n}),l)))}(this,e,t,n)}$nextTick(e){return function(e,t){return t?Vt.then(e?t.bind(e):t):Vt}(this,e)}static $define(e,t){It(e)&&(t=e,e=""),e||(e=this.$name||this.name),e=Ot(e),qe&&We.customElements&&!We.customElements.get(e)&&customElements.define(e,this,t)}}rn.$version="2.1.0";class an extends rn{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=ot,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),Bt(this,ft,this.$onPointerDown)),this.$onPointerMove||(this.$onPointerMove=this.$handlePointerMove.bind(this),Bt(this.ownerDocument,gt,this.$onPointerMove)),this.$onPointerUp||(this.$onPointerUp=this.$handlePointerUp.bind(this),Bt(this.ownerDocument,yt,this.$onPointerUp)),this.$onWheel||(this.$onWheel=this.$handleWheel.bind(this),Bt(this,kt,this.$onWheel,{passive:!1,capture:!0}))}$unbind(){this.$onPointerDown&&(Ut(this,ft,this.$onPointerDown),this.$onPointerDown=null),this.$onPointerMove&&(Ut(this.ownerDocument,gt,this.$onPointerMove),this.$onPointerMove=null),this.$onPointerUp&&(Ut(this.ownerDocument,yt,this.$onPointerUp),this.$onPointerUp=null),this.$onWheel&&(Ut(this,kt,this.$onWheel,{capture:!0}),this.$onWheel=null)}$handlePointerDown(e){const{buttons:t,button:n,type:l}=e;if(this.disabled||("pointerdown"===l&&"mouse"===e.pointerType||"mousedown"===l)&&(zt(t)&&1!==t||zt(n)&&0!==n||e.ctrlKey))return;const{$pointers:r}=this;let a="";if(e.changedTouches)Array.from(e.changedTouches).forEach(({identifier:e,pageX:t,pageY:n})=>{r.set(e,{startX:t,startY:n,endX:t,endY:n})});else{const{pointerId:t=0,pageX:n,pageY:l}=e;r.set(t,{startX:n,startY:l,endX:n,endY:l})}r.size>1?a=it:Lt(e.target)&&(a=e.target.action||e.target.getAttribute("action")||""),!1!==this.$emit(Nt,{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===ot||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:l})=>{const r=n.get(e);r&&Object.assign(r,{endX:t,endY:l})});else{const{pointerId:t=0,pageX:l,pageY:r}=e,a=n.get(t);a&&Object.assign(a,{endX:l,endY:r})}const l={action:t,relatedEvent:e};if(t===it){const t=new Map(n);let r=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,l=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?l<0?h=2*Math.PI:l>0&&(h=Math.PI):n>0?h=Math.PI/2+Math.atan(l/n):n<0&&(h=1.5*Math.PI+Math.atan(l/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,l=Math.abs(n);l>r&&(r=l,i=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}if(n=Math.abs(n),l=Math.abs(l),u=Math.abs(u),d=Math.abs(d),n>0&&l>0?b=Math.sqrt(n*n+l*l):n>0?b=n:l>0&&(b=l),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,l=Math.abs(n);l>a&&(a=l,o=n,s=(e.startX+t.startX)/2,c=(e.startY+t.startY)/2)}})});const u=r>0,d=a>0;u&&d?(l.rotate=i,l.scale=o,l.centerX=s,l.centerY=c):u?(l.action=at,l.rotate=i,l.centerX=s,l.centerY=c):d?(l.action=rt,l.scale=o,l.centerX=s,l.centerY=c):l.action=ot}else{const[e]=Array.from(n.values());Object.assign(l,e)}n.forEach(e=>{e.startX=e.endX,e.startY=e.endY}),l.action!==ot&&this.$emit(Ct,l,{cancelable:!1})}$handlePointerUp(e){const{$action:t,$pointers:n}=this;if(!this.disabled&&t!==ot&&!1!==this.$emit(St,{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=ot)}}$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(Ct,{action:rt,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 l=document.createElement("canvas");let r=this.offsetWidth,a=this.offsetHeight,i=1;Mt(e)&&(Tt(e.width)||Tt(e.height))&&(({width:r,height:a}=Xt({aspectRatio:r/a,width:e.width,height:e.height})),i=r/this.offsetWidth),l.width=r,l.height=a;const o=this.querySelector(this.$getTagNameOf(Je));o?o.$ready().then(n=>{const s=l.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,r,a),Mt(e)&&Pt(e.beforeDraw)&&e.beforeDraw.call(this,s,l),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(l)}).catch(n):t(l)})}}an.$name=Ge,an.$version="2.1.0";const on=/* @__PURE__ */new WeakMap,sn=["alt","crossorigin","decoding","elementtiming","fetchpriority","loading","referrerpolicy","sizes","src","srcset"];class cn extends rn{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){on.set(this,e)}get $canvas(){return on.get(this)}static get observedAttributes(){return super.observedAttributes.concat(sn,["initial-center-size","rotatable","scalable","skewable","translatable"])}attributeChangedCallback(e,t,n){Object.is(n,t)||(super.attributeChangedCallback(e,t,n),sn.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(Ge));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),Bt(t,Nt,this.$onCanvasActionStart),Bt(t,St,this.$onCanvasActionEnd),Bt(t,Ct,this.$onCanvasAction)),this.$onLoad=this.$handleLoad.bind(this),Bt(e,xt,this.$onLoad),this.$getShadowRoot().appendChild(e)}disconnectedCallback(){const{$image:e,$canvas:t}=this;t&&(this.$onCanvasActionStart&&(Ut(t,Nt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(Ut(t,St,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(Ut(t,Ct,this.$onCanvasAction),this.$onCanvasAction=null)),e&&this.$onLoad&&(Ut(e,xt,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:l}=n;switch(l!==it||this.rotatable&&this.scalable||(l=this.rotatable?at:this.scalable?rt:ot),l){case lt:if(this.translatable){let l=null;e&&(l=e.target.closest(this.$getTagNameOf(Ze))),l||(l=t.querySelector(this.$getTagNameOf(Ze))),l&&l.multiple&&!l.active&&(l=t.querySelector(`${this.$getTagNameOf(Ze)}[active]`)),l&&!l.hidden&&l.movable&&!l.dynamic&&this.$actionStartTarget&&l.contains(this.$actionStartTarget)||this.$move(n.endX-n.startX,n.endY-n.startY)}break;case at:if(this.rotatable)if(e){const{x:t,y:l}=this.getBoundingClientRect();this.$rotate(n.rotate,e.clientX-t,e.clientY-l)}else this.$rotate(n.rotate);break;case rt:if(this.scalable)if(e){const t=e.target.closest(this.$getTagNameOf(Ze));if(!t||!t.zoomable||t.zoomable&&t.dynamic){const{x:t,y:l}=this.getBoundingClientRect();this.$zoom(n.scale,e.clientX-t,e.clientY-l)}}else this.$zoom(n.scale);break;case it:if(this.rotatable&&this.scalable){const{rotate:t}=n;let{scale:l}=n;l<0?l=1/(1-l):l+=1;const r=Math.cos(t),a=Math.sin(t),[i,o,s,c]=[r*l,a*l,-a*l,r*l];if(e){const t=this.getBoundingClientRect(),n=e.clientX-t.x,l=e.clientY-t.y,[r,a,u,d]=this.$matrix,b=n-t.width/2,m=l-t.height/2,h=(b*d-u*m)/(r*d-u*a),p=(m*r-a*b)/(r*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 l=new Error("Failed to load the image source");if(t.complete)t.naturalWidth>0&&t.naturalHeight>0?e(t):n(l);else{const r=()=>{Ut(t,vt,a),setTimeout(()=>{e(t)})},a=()=>{Ut(t,xt,r),n(l)};qt(t,xt,r),qt(t,vt,a)}});return Pt(e)&&n.then(t=>(e(t),t)),n}$center(e){const{parentElement:t}=this;if(!t)return this;const n=t.getBoundingClientRect(),l=n.width,r=n.height,{x:a,y:i,width:o,height:s}=this.getBoundingClientRect(),c=a+o/2,u=i+s/2,d=n.x+l/2,b=n.y+r/2;if(this.$move(d-c,b-u),e&&(o!==l||s!==r)){const t=l/o,n=r/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&&zt(e)&&zt(t)){const[n,l,r,a]=this.$matrix,i=(e*a-r*t)/(n*a-r*l),o=(t*n-l*e)/(n*a-r*l);this.$translate(i,o)}return this}$moveTo(e,t=e){if(this.translatable&&zt(e)&&zt(t)){const[n,l,r,a]=this.$matrix,i=(e*a-r*t)/(n*a-r*l),o=(t*n-l*e)/(n*a-r*l);this.$setTransform(n,l,r,a,i,o)}return this}$rotate(e,t,n){if(this.rotatable){const l=Gt(e),r=Math.cos(l),a=Math.sin(l),[i,o,s,c]=[r,a,-a,r];if(zt(t)&&zt(n)){const[e,l,r,a]=this.$matrix,{width:u,height:d}=this.getBoundingClientRect(),b=t-u/2,m=n-d/2,h=(b*a-r*m)/(e*a-r*l),p=(m*e-l*b)/(e*a-r*l);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,zt(t)&&zt(n)){const[l,r,a,i]=this.$matrix,{width:o,height:s}=this.getBoundingClientRect(),c=t-o/2,u=n-s/2,d=(c*i-a*u)/(l*i-a*r),b=(u*l-r*c)/(l*i-a*r);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=Gt(e),l=Gt(t);this.$transform(1,Math.tan(l),Math.tan(n),1,0,0)}return this}$translate(e,t=e){return this.translatable&&zt(e)&&zt(t)&&this.$transform(1,0,0,1,e,t),this}$transform(e,t,n,l,r,a){return zt(e)&&zt(t)&&zt(n)&&zt(l)&&zt(r)&&zt(a)?this.$setTransform(Yt(this.$matrix,[e,t,n,l,r,a])):this}$setTransform(e,t,n,l,r,a){if((this.rotatable||this.scalable||this.skewable||this.translatable)&&(Array.isArray(e)&&([e,t,n,l,r,a]=e),zt(e)&&zt(t)&&zt(n)&&zt(l)&&zt(r)&&zt(a))){const i=[...this.$matrix],o=[e,t,n,l,r,a];if(!1===this.$emit($t,{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])}}cn.$name=Je,cn.$version="2.1.0";const un=/* @__PURE__ */new WeakMap;class dn extends rn{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){un.set(this,e)}get $canvas(){return un.get(this)}static get observedAttributes(){return super.observedAttributes.concat(["height","width","x","y"])}connectedCallback(){super.connectedCallback();const e=this.closest(this.$getTagNameOf(Ge));if(e){this.$canvas=e,this.style.position="absolute";const t=e.querySelector(this.$getTagNameOf(Ze));t&&(this.$onCanvasActionStart=e=>{t.hidden&&e.detail.action===nt&&(this.hidden=!1)},this.$onCanvasActionEnd=e=>{t.hidden&&e.detail.action===nt&&(this.hidden=!0)},this.$onSelectionChange=e=>{const{x:n,y:l,width:r,height:a}=e.defaultPrevented?t:e.detail;this.$change(n,l,r,a),(t.hidden||0===n&&0===l&&0===r&&0===a)&&(this.hidden=!0)},Bt(e,Nt,this.$onCanvasActionStart),Bt(e,St,this.$onCanvasActionEnd),Bt(e,Et,this.$onSelectionChange))}this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(Ut(e,Nt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(Ut(e,St,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onSelectionChange&&(Ut(e,Et,this.$onSelectionChange),this.$onSelectionChange=null)),super.disconnectedCallback()}$change(e,t,n=this.width,l=this.height){return zt(e)&&zt(t)&&zt(n)&&zt(l)&&(e!==this.x||t!==this.y||n!==this.width||l!==this.height)?(this.hidden&&(this.hidden=!1),this.x=e,this.y=t,this.width=n,this.height=l,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:We.innerWidth})}}dn.$name=et,dn.$version="2.1.0";class bn extends rn{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=ot,this.plain=!1,this.slottable=!1,this.themeColor="rgba(51, 153, 255, 0.5)"}static get observedAttributes(){return super.observedAttributes.concat(["action","plain"])}}bn.$name=Ye,bn.$version="2.1.0";const mn=/* @__PURE__ */new WeakMap;class hn extends rn{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){mn.set(this,e)}get $canvas(){return mn.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),Bt(this.ownerDocument,wt,this.$onDocumentKeyDown)):this.$onDocumentKeyDown&&(Ut(this.ownerDocument,wt,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(Et,{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(Ge));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),Bt(e,Nt,this.$onCanvasActionStart),Bt(e,St,this.$onCanvasActionEnd),Bt(e,Ct,this.$onCanvasAction)):this.$render()}disconnectedCallback(){const{$canvas:e}=this;e&&(this.$onCanvasActionStart&&(Ut(e,Nt,this.$onCanvasActionStart),this.$onCanvasActionStart=null),this.$onCanvasActionEnd&&(Ut(e,St,this.$onCanvasActionEnd),this.$onCanvasActionEnd=null),this.$onCanvasAction&&(Ut(e,Ct,this.$onCanvasAction),this.$onCanvasAction=null)),super.disconnectedCallback()}$getSelections(){let e=[];return this.parentElement&&(e=Array.from(this.parentElement.querySelectorAll(this.$getTagNameOf(Ze)))),e}$initSelection(e=!1,t=!1){const{initialCoverage:n,parentElement:l}=this;if(Tt(n)&&l){const r=this.aspectRatio||this.initialAspectRatio;let a=(t?0:this.width)||l.offsetWidth*n,i=(t?0:this.height)||l.offsetHeight*n;Tt(r)&&({width:a,height:i}=Xt({aspectRatio:r,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),l=t[n+1]||t[n-1];l&&(e.active=!1,this.parentElement.removeChild(e),l.active=!0,l.$emit(Et,{x:l.x,y:l.y,width:l.width,height:l.height}))}else this.$clear()}}$handleActionStart(e){var t,n;const l=null===(n=null===(t=e.detail)||void 0===t?void 0:t.relatedEvent)||void 0===n?void 0:n.target;this.$action="",this.$actionStartTarget=l,!this.hidden&&this.multiple&&!this.active&&l===this&&this.parentElement&&(this.$getSelections().forEach(e=>{e.active=!1}),this.active=!0,this.$emit(Et,{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:l}=n;let{action:r}=n;const a=l?function(e){if("function"==typeof e.composedPath)return e.composedPath().find(Lt)||e.target;return e.target}(l):null;if(!r&&this.multiple&&(r=this.$action||(null==a?void 0:a.action),this.$action=r),!r||this.hidden&&r!==nt||this.multiple&&!this.active&&r!==rt)return;const{width:i,height:o}=this;let s=n.endX-n.startX,c=n.endY-n.startY,{aspectRatio:u}=this;switch(!Tt(u)&&l.shiftKey&&(u=Tt(i)&&Tt(o)?i/o:1),r){case nt:if(0!==s||0!==c){0===s?s=c:0===c&&(c=s);const{$canvas:e}=this,l=Ht(t);(this.multiple&&!this.hidden?this.$createSelection():this).$change(n.startX-l.left,n.startY-l.top,Math.abs(s),Math.abs(c),u),s<0?c<0?r=mt:c>0&&(r=pt):s>0&&(c<0?r=bt:c>0&&(r=ht)),e&&(e.$action=r)}break;case lt:this.movable&&(this.dynamic||this.$actionStartTarget&&this.contains(this.$actionStartTarget))&&this.$move(s,c);break;case rt:if(l&&this.zoomable&&(this.dynamic||this.contains(l.target))){const e=Ht(t);this.$zoom(n.scale,l.pageX-e.left,l.pageY-e.top)}break;default:this.$resize(r,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,l=this.aspectRatio){if(!this.resizable)return this;const r=Tt(l),{$canvas:a}=this;let{x:i,y:o,width:s,height:c}=this;switch(e){case st:o+=n,c-=n,c<0&&(e=ut,c=-c,o-=c),r&&(i+=(t=n*l)/2,s-=t,s<0&&(s=-s,i-=s));break;case ct:s+=t,s<0&&(e=dt,s=-s,i-=s),r&&(o-=(n=t/l)/2,c+=n,c<0&&(c=-c,o-=c));break;case ut:c+=n,c<0&&(e=st,c=-c,o-=c),r&&(i-=(t=n*l)/2,s+=t,s<0&&(s=-s,i-=s));break;case dt:i+=t,s-=t,s<0&&(e=ct,s=-s,i-=s),r&&(o+=(n=t/l)/2,c-=n,c<0&&(c=-c,o-=c));break;case bt:r&&(n=-t/l),o+=n,c-=n,s+=t,s<0&&c<0?(e=pt,s=-s,c=-c,i-=s,o-=c):s<0?(e=mt,s=-s,i-=s):c<0&&(e=ht,c=-c,o-=c);break;case mt:r&&(n=t/l),i+=t,o+=n,s-=t,c-=n,s<0&&c<0?(e=ht,s=-s,c=-c,i-=s,o-=c):s<0?(e=bt,s=-s,i-=s):c<0&&(e=pt,c=-c,o-=c);break;case ht:r&&(n=t/l),s+=t,c+=n,s<0&&c<0?(e=mt,s=-s,c=-c,i-=s,o-=c):s<0?(e=pt,s=-s,i-=s):c<0&&(e=bt,c=-c,o-=c);break;case pt:r&&(n=-t/l),i+=t,s-=t,c+=n,s<0&&c<0?(e=bt,s=-s,c=-c,i-=s,o-=c):s<0?(e=ht,s=-s,i-=s):c<0&&(e=mt,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:l,height:r}=this,a=l*e,i=r*e;let o=this.x,s=this.y;return zt(t)&&zt(n)?(o-=(a-l)*((t-this.x)/l),s-=(i-r)*((n-this.y)/r)):(o-=(a-l)/2,s-=(i-r)/2),this.$change(o,s,a,i)}$change(e,t,n=this.width,l=this.height,r=this.aspectRatio,a=!1){return this.$changing||!zt(e)||!zt(t)||!zt(n)||!zt(l)||n<0||l<0?this:(Tt(r)&&({width:n,height:l}=Xt({aspectRatio:r,width:n,height:l},"cover")),this.precise||(e=Math.round(e),t=Math.round(t),n=Math.round(n),l=Math.round(l)),e===this.x&&t===this.y&&n===this.width&&l===this.height&&Object.is(r,this.aspectRatio)&&!a?this:(this.hidden&&(this.hidden=!1),!1===this.$emit(Et,{x:e,y:t,width:n,height:l})?this:(this.$changing=!0,this.x=e,this.y=t,this.width=n,this.height=l,this.$changing=!1,this.$render())))}$reset(){const{x:e,y:t,width:n,height:l}=this.$initialSelection;return this.$change(e,t,n,l)}$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 l=document.createElement("canvas");let{width:r,height:a}=this,i=1;if(Mt(e)&&(Tt(e.width)||Tt(e.height))&&(({width:r,height:a}=Xt({aspectRatio:r/a,width:e.width,height:e.height})),i=r/this.width),l.width=r,l.height=a,!this.$canvas)return void t(l);const o=this.$canvas.querySelector(this.$getTagNameOf(Je));o?o.$ready().then(n=>{const s=l.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,r,a),Mt(e)&&Pt(e.beforeDraw)&&e.beforeDraw.call(this,s,l),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(l)}).catch(n):t(l)})}}hn.$name=Ze,hn.$version="2.1.0";class pn extends rn{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))}}pn.$name=Xe,pn.$version="2.1.0";class fn extends rn{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"])}}fn.$name=Qe,fn.$version="2.1.0";const gn=/* @__PURE__ */new WeakMap,yn=/* @__PURE__ */new WeakMap,vn=/* @__PURE__ */new WeakMap,wn=/* @__PURE__ */new WeakMap,xn="vertical";class kn extends rn{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=xn,this.selection="",this.slottable=!1}set $image(e){yn.set(this,e)}get $image(){return yn.get(this)}set $sourceImage(e){wn.set(this,e)}get $sourceImage(){return wn.get(this)}set $canvas(e){gn.set(this,e)}get $canvas(){return gn.get(this)}set $selection(e){vn.set(this,e)}get $selection(){return vn.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(Ze)),Lt(n)){this.$selection=n,this.$onSelectionChange=this.$handleSelectionChange.bind(this),Bt(n,Et,this.$onSelectionChange);const e=n.closest(this.$getTagNameOf(Ge));if(e){this.$canvas=e;const t=e.querySelector(this.$getTagNameOf(Je));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),Bt(t.$image,xt,this.$onSourceImageLoad),Bt(t,$t,this.$onSourceImageTransform))}this.$render()}}disconnectedCallback(){const{$selection:e,$sourceImage:t}=this;e&&this.$onSelectionChange&&(Ut(e,Et,this.$onSelectionChange),this.$onSelectionChange=null),t&&this.$onSourceImageLoad&&(Ut(t.$image,xt,this.$onSourceImageLoad),this.$onSourceImageLoad=null),t&&this.$onSourceImageTransform&&(Ut(t,$t,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"),l=t.getAttribute("src");l&&l!==n&&(e.setAttribute("src",l),e.$ready(()=>{this.$render()}))}$handleSourceImageTransform(e){this.$render(void 0,e.detail.matrix)}$render(e,t){const{$canvas:n,$selection:l}=this;e||l.hidden||(e=l),(!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:r,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 xn: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(),-r,-a)})}$transformImageByOffset(e,t,n){const{$image:l,$scale:r,$sourceImage:a}=this;if(a&&l&&r>=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;l.$ready(e=>{this.$setStyles.call(l,{width:e.naturalWidth*r,height:e.naturalHeight*r})}),l.$setTransform(a,i,o,s,m*r,h*r)}}}function Cn(){const[e,n]=t(!1),[l,r]=t(null),[a,i]=t(null),o=async(e,t)=>{if(!e||!t)return r("ID de asset y configuración de variante son requeridos"),null;n(!0),r(null),i(null);try{const n=await async function(e,{variant_name:t,width:n,height:r,crop_params:a,preset_aspect:i=null,preset_size:o=null,output_format:s="webp"}){try{const l=[{name:t,width:n,height:r,output_format:s,crop_params:a}];return i&&(l[0].preset_aspect=i),o&&(l[0].preset_size=o),H(await j({endpoint:`/assets/${e}/variants`,method:"POST",body:{variants:l,async:!1},basePath:G,useJWT:!0}))}catch(l){throw K(l)}}(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),r(a.message||"Error desconocido al crear variante"),null}finally{n(!1)}};return{createVariant:o,createCropVariant:async(e,t,n={})=>{const l={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,l)},createVariantFromBlob:async(e,t,a={})=>{if(!e||!t)return r("ID de asset y blob son requeridos"),null;n(!0),r(null),i(null);try{const n=await async function(e,t,n={}){try{const l=new FormData,r=n.format||"webp",a=`${n.name||"variant"}.${r}`;return l.append("file",t,a),l.append("variant_name",n.name||"variant"),l.append("width",String(n.width||0)),l.append("height",String(n.height||0)),l.append("output_format",n.format||"webp"),l.append("permanent_url",!1!==n.permanentUrl?"true":"false"),H(await j({endpoint:`/assets/${e}/variants/upload`,method:"POST",body:l,basePath:G,isFormData:!0,useJWT:!0}))}catch(l){throw K(l)}}(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),r(o.message||"Error desconocido al crear variante"),null}finally{n(!1)}},loading:e,error:l,createdVariant:a,reset:()=>{r(null),i(null)}}}kn.$name=tt,kn.$version="2.1.0",an.$define(),fn.$define(),pn.$define(),bn.$define(),cn.$define(),hn.$define(),dn.$define(),kn.$define();class Sn{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,l,r,a)=>{if(!this.image)return!1;try{return this.image.$setTransform(e,t,n,l,r,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,l,r,a,i]=e,o=Math.sqrt(t*t+n*n),s=Math.sqrt(l*l+r*r),c=t/o,u=n/o,d=l/s,b=r/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,l,r,a,i,o]=t,s=Math.sqrt(n*n+l*l),c=Math.sqrt(r*r+a*a),u=n/s*e,d=l/s*e,b=r/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 l=1-e,r=t.width*l/n.naturalWidth,a=t.height*l/n.naturalHeight,i=Math.min(r,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,l]=e.split("/").map(e=>parseFloat(e.trim()));if(isNaN(n)||isNaN(l)||0===l)return console.warn("Invalid aspect ratio format:",e),!1;t=n/l}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,l,r)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.$change(e,t,n,l,r),!0}catch(a){return console.warn("Error changing selection:",a),!1}},set:(e,t,n,l)=>{if(!this.selectionElement)return!1;try{return this.selectionElement.x=e,this.selectionElement.y=t,this.selectionElement.width=n,this.selectionElement.height=l,this.selectionElement.$render(),!0}catch(r){return console.warn("Error setting selection:",r),!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,l,r,a,i]=e;return this.transform.setTransform(-t,n,l,r,a,i)},flipVertical:()=>{const e=this.transform.getTransform();if(!e)return!1;const[t,n,l,r,a,i]=e;return this.transform.setTransform(t,n,l,-r,a,i)},setupInitialView:async(e={})=>{const{paspartuFactor:t=.85,retries:n=3,retryDelay:l=200}=e;return new Promise(e=>{const r=(a=0)=>{if(!this.isReady)return a<n?void setTimeout(()=>r(a+1),l):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(()=>r(a+1),l):(this.transform.center(),void e(!1));if(i.width>0&&i.height>0){const n=i.width*t/o.naturalWidth,l=i.height*t/o.naturalHeight,r=Math.min(n,l,1);this.transform.setTransform(r,0,0,r,0,0)?setTimeout(()=>{this.transform.center(),this.selection.center(),e(!0)},100):(this.transform.reset(),setTimeout(()=>{r<1&&this.transform.scale(r),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)}};r()})},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:l,onActionStart:r,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(l){const e=e=>l(e.detail);this.canvasElement.addEventListener("action",e),o.push(()=>{this.canvasElement&&this.canvasElement.removeEventListener("action",e)})}if(r){const e=e=>r(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:l=null,originalFormat:r="webp",onSuccess:a=null,onError:i=null,accessibilityManager:o=null}=n;try{const n=window.limboCore?.config?.getGlobal(),i=l||n?.downloadFormat||r||"webp",c=`${t.split(".")[0]}.${i}`;if(o&&o.announce(`Descargando ${c}`),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,c),a&&a(c),o&&o.announce(`${c} descargado correctamente`),!0;let u;try{if(u=await fetch(e,{mode:"cors"}),!u.ok)throw new Error(`HTTP error! status: ${u.status}`)}catch(s){if(!e.startsWith("http"))throw s;{const t=(window.limboCore?.config?.getGlobal()||{}).prod?"https://limbo.lefebvre.es":"https://led-dev-limbo-dev.eu.els.local",n=window.limboCore?.apiClient?.token||"",l=`${t}/api/atenea/proxy?url=${encodeURIComponent(e)}`;if(u=await fetch(l,{credentials:"include",headers:{Authorization:`Bearer ${n}`}}),!u.ok)throw new Error(`Proxy error: ${u.status}`)}}const d=await u.blob();let b=d;const m=d.type;m!==`image/${"jpg"===i?"jpeg":i}`&&function(e){return["webp","jpeg","jpg","png"].includes(e.toLowerCase())}(i)&&(b=await async function(e,t){return new Promise((n,l)=>{const r=new Image,a=URL.createObjectURL(e);r.onload=()=>{try{const l=document.createElement("canvas");l.width=r.width,l.height=r.height;l.getContext("2d").drawImage(r,0,0);const i=`image/${"jpg"===t?"jpeg":t}`,o="png"===t?void 0:.92;l.toBlob(t=>{URL.revokeObjectURL(a),n(t||e)},i,o)}catch(l){URL.revokeObjectURL(a),n(e)}},r.onerror=()=>{URL.revokeObjectURL(a),n(e)},r.src=a})}(d,i));const h=window.URL.createObjectURL(b),p=document.createElement("a");return p.href=h,p.download=c,p.style.display="none",document.body.appendChild(p),p.click(),setTimeout(()=>{window.URL.revokeObjectURL(h),document.body.removeChild(p)},100),a&&a(c),o&&o.announce(`${c} descargado correctamente`),!0}catch(c){return console.error("Error downloading image:",c),i&&i(c),o&&o.announce(`Error al descargar la imagen: ${c.message}`),!1}}const En=/* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({__proto__:null,default:Nn,downloadImage:Nn},Symbol.toStringTag,{value:"Module"}));function $n({image:e,onSave:a,onCancel:o,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,I]=t(!1),[A,M]=t({x:0,y:0}),[P,L]=t(!1),[D,O]=t(!0),[R,F]=t(!1),[j,U]=t({horizontal:!1,vertical:!1}),[B,q]=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}),Y=i(()=>{if(g)return{mandatoryCrops:g.mandatoryCrops||[],allowCustomCrops:!1!==g.allowAdditionalCrops,showDimensionInputs:!0===g.showDimensionInputs,maxCrops:g.maxCrops||null,localCropsOnly:!0===g.localCropsOnly,existingCrops:g.existingCrops||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,localCropsOnly:!0===e.cropper?.localCropsOnly,existingCrops:e.cropper?.existingCrops||null}},[g]),[J,ee]=t(()=>Y.mandatoryCrops.length>0?Y.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),le=J[te],re=i(()=>le&&le.width&&le.height?le.width/le.height:"",[le]),ae=i(()=>{const e=50;if(!re||""===re)return{minWidth:e,minHeight:e};if(re>=1){return{minWidth:e,minHeight:e/re}}return{minWidth:e*re,minHeight:e}},[re]),[ie,oe]=t(!1),[se,ce]=t([]),[ue,de]=t(null),be=window.limboCore?.accessibilityManager,{createVariantFromBlob:me,loading:he,error:pe}=Cn(),fe=((e,a={})=>{const i=r(null),o=r(null),s=r(null),c=r(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 Sn(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=l(()=>({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=l(()=>({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=l(()=>({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:re||null,showGrid:S,shade:E,initialCoverage:.5,paspartuFactor:.85}),{refs:ge,state:ye,transform:ve,selection:we,utils:xe}=fe,{canvasRef:ke,imageRef:Ce,selectionRef:Se}=ge,{cropData:Ne,imageInfo:Ee,canExport:$e,transformVersion:_e}=ye,Te=i(()=>Ee||{naturalWidth:e.width||1920,naturalHeight:e.height||1080,currentWidth:e.width||1920,currentHeight:e.height||1080},[Ee,e.width,e.height]),Ie=l(()=>N(e=>!e),[]),Ae=l(()=>$(e=>!e),[]),Me=l(()=>V(e=>!e),[]),Pe=l(()=>K(e=>!e),[]),Le=l(()=>Q(e=>!e),[]),De=l(()=>ve.center(),[ve]),Oe=l(()=>we.center(),[we]),Re=l(()=>we.reset(),[we]),Fe=l((e,t)=>ve.move(e,t),[ve]),je=l(e=>ve.zoom(e),[ve]),Ue=l(e=>ve.rotate(e),[ve]),Be=l(e=>{we.setCoverage(e)},[we]),qe=l(()=>{U(e=>{const t=!e.horizontal;return ve.flipHorizontal(),{...e,horizontal:t}})},[ve]),We=l(()=>{U(e=>{const t=!e.vertical;return ve.flipVertical(),{...e,vertical:t}})},[ve]),Ve=l(()=>{if(!fe.manager||!ye.isReady)return null;try{const e=Ne?{...Ne}:null;let t=null;if(Se.current){const e=Se.current;t={x:e.x??0,y:e.y??0,width:e.width??0,height:e.height??0}}let n=null;if(Ce.current){const e=Ce.current.$getTransform?.();e&&Array.isArray(e)&&(n=[...e])}const l={cropData:e,selectorState:t,imageTransform:n,flipState:{horizontal:j.horizontal,vertical:j.vertical}};return console.log(`[CropperView] 💾 Guardando estado del crop ${te}:`,l),ee(e=>e.map((e,t)=>t===te?{...e,savedState:l}:e)),l}catch(e){return console.warn("Error saving crop state:",e),null}},[fe.manager,ye.isReady,Ne,j,te,Ce,Se]),He=l(e=>{const t=J[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(fe.manager&&ye.isReady)try{const{savedState:n}=t;if(console.log(`[CropperView] ♻️ Restaurando estado del crop ${e}:`,n),n.imageTransform&&Ce.current&&Array.isArray(n.imageTransform)&&setTimeout(()=>{if(Ce.current&&Ce.current.$setTransform){const[e,t,l,r,a,i]=n.imageTransform;Ce.current.$setTransform(e,t,l,r,a,i),console.log(`[CropperView] ✅ Imagen restaurada: transform(${e.toFixed(2)}, ${t.toFixed(2)}, ${l.toFixed(2)}, ${r.toFixed(2)}, ${a.toFixed(0)}, ${i.toFixed(0)})`)}},100),n.selectorState&&Se.current){const{x:e,y:t,width:l,height:r}=n.selectorState;setTimeout(()=>{Se.current&&(Se.current.x=e,Se.current.y=t,Se.current.width=l,Se.current.height=r,Se.current.$render&&Se.current.$render(),console.log(`[CropperView] ✅ Selector restaurado: ${l}×${r} 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")},[J,fe.manager,ye.isReady,De,Oe,Se,Ce]),Ke=l(()=>{for(let e=0;e<J.length;e++){const t=J[e];if(!t.label||""===t.label.trim())return e}return-1},[J]),Ge=l(async e=>{e!==te&&(F(!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)),F(!1))},[te,Ve,He]),Qe=l(()=>{if(!Y.allowCustomCrops)return void alert("No se pueden añadir recortes personalizados en este modo.");const t={id:`crop-custom-${Date.now()}`,label:`Recorte ${J.length+1}`,width:e.width||1920,height:e.height||1080,required:!1,isCustom:!0,confirmed:!1,savedState:null};ee(e=>[...e,t]),be?.announce(`Nuevo recorte personalizado añadido: ${t.label}. Selecciónalo para editarlo.`)},[Y.allowCustomCrops,J.length,e.width,e.height,be]),Xe=l((e,t)=>{const n=parseInt(t,10);""===t||isNaN(n)||ee(t=>t.map((t,l)=>l===te?{...t,[e]:n}:t))},[te]),Ye=l(e=>{const t=le[e];let n=100;if(ke.current&&Ee){const e=ke.current.getBoundingClientRect(),t=Math.min(e.width,e.height);n=Math.max(100,Math.round(.05*t))}const l=Math.max(n,Math.min(5e3,t));l!==t&&ee(t=>t.map((t,n)=>n===te?{...t,[e]:l}:t));const r={...le,[e]:l},a=r.width/r.height,i=we.getData?.();we.setAspectRatio(a),i&&void 0!==i.x&&setTimeout(()=>{we.set?.(i.x,i.y,i.width,i.height)},50)},[te,le,we,ke,Ee]),Je=l(e=>{ee(t=>t.map((t,n)=>n===te?{...t,label:e}:t))},[te]),Ze=l((e,t=null)=>{t=t||J[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=J[e];if(n.required)alert("No se puede eliminar un recorte obligatorio.");else if(1!==J.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);be?.announce(`Recorte ${n.label} eliminado`)}else alert("Debe haber al menos un recorte.")},[J,te,be]),et=l(async()=>{if(!$e)return null;try{const t=await we.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,we]),tt=l(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=l(e=>{e.target.closest(".limbo-preview-modal-header")&&(I(!0),M({x:e.clientX-_.x,y:e.clientY-_.y}))},[_]),lt=l(e=>{T&&(e.preventDefault(),z({x:e.clientX-A.x,y:e.clientY-A.y}))},[T,A]),rt=l(()=>{I(!1)},[]),at=l(e=>{if(!e.target.closest(".limbo-preview-modal-header"))return;const t=e.touches[0];I(!0),M({x:t.clientX-_.x,y:t.clientY-_.y})},[_]),it=l(e=>{if(!T)return;e.preventDefault();const t=e.touches[0];z({x:t.clientX-A.x,y:t.clientY-A.y})},[T,A]),ot=l(()=>{I(!1)},[]);n(()=>{if(T)return document.addEventListener("mousemove",lt),document.addEventListener("mouseup",rt),document.addEventListener("touchmove",it,{passive:!1}),document.addEventListener("touchend",ot),()=>{document.removeEventListener("mousemove",lt),document.removeEventListener("mouseup",rt),document.removeEventListener("touchmove",it),document.removeEventListener("touchend",ot)}},[T,lt,rt,it,ot]),n(()=>{if(!P)return;const e=e=>{"Escape"===e.key&&L(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[P]);const st=l(async(t,n=null)=>{const l=J[t];if(!l)throw new Error(`Crop ${t} no encontrado`);if(!l.savedState&&t!==te)throw new Error(`El recorte "${l.label}" aún no ha sido configurado`);const r={index:te,imageTransform:Ce.current?.$getTransform?.(),selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null};try{if(t!==te&&l.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para guardado...`),l.savedState.imageTransform&&Ce.current?.$setTransform){const[e,t,n,r,a,i]=l.savedState.imageTransform;Ce.current.$setTransform(e,t,n,r,a,i)}if(l.savedState.selectorState&&Se.current){const{x:e,y:t,width:n,height:r}=l.savedState.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=n,Se.current.height=r,Se.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const r=Math.min(l.width,5e3),i=Math.min(l.height,5e3),o=await we.toCanvas({width:r,height:i,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!o)throw new Error(`No se pudo generar el canvas para "${l.label}"`);const s=globalThis.downloadFormat||"webp",c="webp"===s?"image/webp":"png"===s?"image/png":"image/jpeg",u=.9,d=await new Promise((e,t)=>{o.toBlob(n=>{n?e(n):t(new Error("No se pudo convertir el canvas a blob"))},c,u)});console.log("[CropperView] Canvas convertido a blob:",{size:d.size,type:d.type,dimensions:`${r}x${i}`});const b=`${l.label||"crop"}_${r}_${i}`,m=n||e.id,f=!m||"string"==typeof m&&m.startsWith("external"),g=(f||Y.localCropsOnly)&&!p;if(f&&p&&!Y.localCropsOnly){console.log("[CropperView] 📤 Imagen externa con onUpload disponible, subiendo crop como nuevo asset...");try{const e=new File([d],`${b}.${s}`,{type:c}),t=await p(e);if(t&&(t.id||t.url)){console.log("[CropperView] ✅ Crop subido exitosamente:",t);const e=l.savedState||{selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null,imageTransform:Ce.current?.$getTransform?.()||null,flipState:{horizontal:j.horizontal,vertical:j.vertical}},n={id:t.id||`uploaded-${Date.now()}`,name:b,filename:`${b}.${s}`,url:t.urlSigned||t.url,urlSigned:t.urlSigned||t.url,width:r,height:i,format:s,size:d.size,mime_type:c,isLocal:!1,originalAssetId:null,uploadedAssetId:t.id,cropState:e};return be?.announceSuccess(`Recorte guardado: ${b}`),n}}catch(a){console.error("[CropperView] ❌ Error subiendo crop, fallback a local:",a)}}if(g){console.log(`[CropperView] 🌐 Generando resultado local (isExternal: ${f}, localCropsOnly: ${Y.localCropsOnly})`);const e=URL.createObjectURL(d),t=l.savedState||{selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null,imageTransform:Ce.current?.$getTransform?.()||null,flipState:{horizontal:j.horizontal,vertical:j.vertical}},n={id:`local-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:b,filename:`${b}.${s}`,url:e,urlSigned:e,width:r,height:i,format:s,size:d.size,mime_type:c,blob:d,isLocal:!0,originalAssetId:m||null,cropState:t};return be?.announceSuccess(`Recorte creado localmente: ${b}`),n}const y=l.savedState||{selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null,imageTransform:Ce.current?.$getTransform?.()||null,flipState:{horizontal:j.horizontal,vertical:j.vertical}},v=await me(m,d,{name:b,width:r,height:i,format:s});if(v)return v.cropState=y,be?.announceSuccess(`Recorte creado: ${b}`),h?.(m,v),v;throw new Error("No se pudo crear la variante")}finally{if(t!==te&&r.imageTransform&&Ce.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${r.index}...`);const[e,t,n,l,a,i]=r.imageTransform;if(Ce.current.$setTransform(e,t,n,l,a,i),r.selectorState&&Se.current){const{x:e,y:t,width:n,height:l}=r.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=n,Se.current.height=l,Se.current.$render?.()}}}},[J,te,we,me,e.id,h,be,Ce,Se]),ct=l(async()=>{if(!$e){const e="No se puede exportar el recorte por restricciones de CORS en la imagen original.";return be?.announceError(e),void alert(e)}if(!ye.isReady){const e="El cropper aún no está inicializado. Espera un momento e inténtalo de nuevo.";return be?.announceError(e),void alert(e)}Ve(),be?.announce("Creando recorte de la imagen");try{let t=e.id,n=null;if(e.file&&p){be?.announce("Subiendo imagen...");const l=await p(e.file);if(!l||!l.id)throw new Error("No se pudo subir la imagen al servidor");t=l.id,n=l,be?.announceSuccess("Imagen subida correctamente")}const l=await st(te,t);l&&a(n?{crops:[l],asset:n}:l)}catch(t){console.warn("Error creating crop variant:",t);const e=t.message||"No se pudo crear el recorte. Inténtalo de nuevo.";be?.announceError(e),alert(e),b?.(t)}},[$e,ye.isReady,be,Ve,st,te,a,b,e.file,e.id,p]),ut=l(async t=>{Ve(),be?.announce(`Guardando ${t.length} recortes...`);try{let l=e.id,r=null;if(e.file&&p){be?.announce("Subiendo imagen...");const t=await p(e.file);if(!t||!t.id)throw new Error("No se pudo subir la imagen al servidor");l=t.id,r=t,be?.announceSuccess("Imagen subida correctamente")}const i=[],o=[];for(const e of t)try{const t=await st(e,l);t&&i.push(t)}catch(n){o.push({crop:J[e]?.label||`Crop ${e}`,error:n.message})}if(i.length>0&&(be?.announceSuccess(`${i.length} recorte(s) guardado(s) correctamente`),a(r?{crops:i,asset:r}:i)),o.length>0){const e=`Errores al guardar algunos recortes:\n${o.map(e=>`- ${e.crop}: ${e.error}`).join("\n")}`;be?.announceError(e),alert(e)}}catch(n){const e=n.message||"Error al procesar los recortes";be?.announceError(e),alert(e),b?.(n)}},[Ve,st,J,be,a,e.file,e.id,p,b]),dt=l(async()=>{const e=Ke();if(-1!==e){const t=J[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void ne(e)}const t=J.findIndex((e,t)=>e.required&&!e.savedState&&t!==te);if(-1!==t){const e=J[t];return alert(`El recorte obligatorio "${e.label}" aún no ha sido configurado.\n\nPor favor, configura todos los recortes obligatorios antes de guardar.`),ne(t),void be?.announce(`Recorte obligatorio "${e.label}" sin configurar. Por favor, configúralo.`,"assertive")}if(J.length>1){de("save");const e=J.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.required||e.savedState||t===te).map(({index:e})=>e);return ce(e),void oe(!0)}await ct()},[Ke,J,ct,te,be]),bt=l(async t=>{const n=J[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 l={index:te,imageTransform:Ce.current?.$getTransform?.(),selectorState:Se.current?{x:Se.current.x,y:Se.current.y,width:Se.current.width,height:Se.current.height}:null};try{if(t!==te&&n.savedState){if(console.log(`[CropperView] 🔄 Restaurando temporalmente crop ${t} para descarga...`),n.savedState.imageTransform&&Ce.current?.$setTransform){const[e,t,l,r,a,i]=n.savedState.imageTransform;Ce.current.$setTransform(e,t,l,r,a,i)}if(n.savedState.selectorState&&Se.current){const{x:e,y:t,width:l,height:r}=n.savedState.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=l,Se.current.height=r,Se.current.$render?.()}await new Promise(e=>setTimeout(e,100))}const l=await we.toCanvas({width:n.width,height:n.height,imageSmoothingEnabled:!0,imageSmoothingQuality:"high"});if(!l)throw new Error(`No se pudo generar el canvas para "${n.label}"`);const r=l.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(r,a,{accessibilityManager:be,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&&l.imageTransform&&Ce.current?.$setTransform){console.log(`[CropperView] ↩️ Restaurando estado original del crop ${l.index}...`);const[e,t,n,r,a,i]=l.imageTransform;if(Ce.current.$setTransform(e,t,n,r,a,i),l.selectorState&&Se.current){const{x:e,y:t,width:n,height:r}=l.selectorState;Se.current.x=e,Se.current.y=t,Se.current.width=n,Se.current.height=r,Se.current.$render?.()}}}},[J,te,we,e.mime_type,be,Ce,Se]),mt=l(async e=>{Ve(),be?.announce(`Descargando ${e.length} recortes...`);const t=[],n=[];for(const r of e)try{const e=await bt(r);e&&t.push(e)}catch(l){n.push({crop:J[r]?.label||`Crop ${r}`,error:l.message})}if(t.length>0&&be?.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")}`;be?.announceError(e),alert(e)}},[Ve,bt,J,be]),ht=l(async()=>{if(!$e){const e="No se puede descargar el recorte por restricciones de CORS en la imagen original.";return be?.announceError(e),void alert(e)}Ve(),be?.announce("Preparando descarga del recorte");try{await bt(te),be?.announceSuccess("Recorte descargado correctamente")}catch(e){console.error("Error downloading crop:",e);const t=e.message||"Error al descargar el recorte";be?.announceError(t),alert(t)}},[$e,be,Ve,bt,te]),pt=l(async()=>{const e=Ke();if(-1!==e){const t=J[e];return alert(`El recorte "${t.label||t||"(sin nombre)"}" debe tener un nombre válido.`),void ne(e)}if(J.length>1){de("download");const e=J.map((e,t)=>({crop:e,index:t})).filter(({crop:e,index:t})=>e.savedState||t===te).map(({index:e})=>e);return ce(e),void oe(!0)}await ht()},[Ke,J,ht,te]),ft=i(()=>!!e.file||(!e.id||!("string"!=typeof e.id||!e.id.startsWith("external"))),[e.file,e.id]),gt=l(async()=>{try{if(e.file&&p){be?.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 be?.announceSuccess("Imagen guardada correctamente"),void a({asset:t,crops:[]})}if(ft){be?.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||Ee?.naturalWidth||1920,height:e.height||Ee?.naturalHeight||1080,mime_type:e.mime_type||"image/jpeg",isLocal:!0,isOriginal:!0};return be?.announceSuccess("Imagen original conservada"),void a({crops:[t]})}if(e.id&&!e.id.startsWith("external")){be?.announce("Seleccionando imagen original...");const t={id:e.id,name:e.filename||"original",filename:e.filename||"image.jpg",url:e.url,urlSigned:e.urlSigned||e.url,width:e.width||Ee?.naturalWidth||1920,height:e.height||Ee?.naturalHeight||1080,mime_type:e.mime_type||"image/jpeg",isOriginal:!0};return be?.announceSuccess("Imagen original seleccionada"),void a({crops:[t],assetId:e.id})}o()}catch(t){console.error("Error guardando imagen original:",t);const e=t.message||"No se pudo guardar la imagen. Inténtalo de nuevo.";be?.announceError(e),alert(e),b?.(t)}},[e,Ee,p,o,a,b,be,ft]);return n(()=>{v(!1),x(null)},[e]),n(()=>{if(!fe.manager||!ye.isReady||!D)return;console.log("[CropperView] Carga inicial completada, centrando imagen y selector...");const e=Y.existingCrops?.[0],t=e?.cropState;setTimeout(()=>{De(),setTimeout(()=>{if(t){if(console.log("[CropperView] 🔄 Restaurando estado del crop existente:",t),t.imageTransform&&Ce.current?.$setTransform){const[e,n,l,r,a,i]=t.imageTransform;Ce.current.$setTransform(e,n,l,r,a,i),console.log("[CropperView] ✅ Transformación de imagen restaurada")}if(t.selectorState&&Se.current){const{x:e,y:n,width:l,height:r}=t.selectorState;Se.current.x=e,Se.current.y=n,Se.current.width=l,Se.current.height=r,Se.current.$render?.(),console.log("[CropperView] ✅ Posición del selector restaurada:",t.selectorState)}t.flipState&&(U(t.flipState),console.log("[CropperView] ✅ Estado de flip restaurado:",t.flipState))}else Oe();O(!1),console.log("[CropperView] Carga inicial finalizada")},100)},50)},[fe.manager,ye.isReady,D,De,Oe,Y.existingCrops]),n(()=>{fe.manager&&ye.isReady&&(re&&we.setAspectRatio(re),xe.setBackground(E))},[re,E,fe.manager,ye.isReady,we,xe]),n(()=>{if(!Ee||!ye.isReady||Y.mandatoryCrops.length>0)return;const e=J[0];if(e&&"crop-default-0"===e.id&&(1920===e.width||1080===e.height)){const t=Math.min(Ee.naturalWidth,5e3),n=Math.min(Ee.naturalHeight,5e3);ee([{...e,width:t,height:n}]),console.log(`[CropperView] Crop por defecto actualizado a ${t}×${n}px`)}},[Ee,ye.isReady,Y.mandatoryCrops.length,J]),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)}},[Ne,_e,y,$e,et,re,j,w]),n(()=>{const e=ke.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)}},[ke]),e?/* @__PURE__ */c("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:[
|
|
316
319
|
/* @__PURE__ */c("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:[
|
|
317
320
|
/* @__PURE__ */c("div",{className:"lb:flex-1 lb:min-w-fit lb:space-y-2 lb:max-w-fit",children:[
|
|
318
321
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:gap-2",children:[
|
|
@@ -325,8 +328,8 @@ return c("button",{type:"button","data-upload-tab-id":e.id,className:k(t),"aria-
|
|
|
325
328
|
/* @__PURE__ */s("span",{className:"icon icon-arrow-left-white icon--sm lb:m-0 lb:p-0"})," ","Cancelar"]}),d&&/* @__PURE__ */c("button",{onClick:()=>d(e),disabled:m|he,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:[
|
|
326
329
|
/* @__PURE__ */s("span",{className:"icon icon-close-small-white icon--sm lb:m-0 lb:p-0"}),m?"Eliminando...":"Eliminar"]})]})]}),
|
|
327
330
|
/* @__PURE__ */c("div",{className:"limbo-cropper-status lb:bg-white lb:border-gray-100 lb:py-0 lb:pb-0 lb:flex-shrink-0",children:[pe&&/* @__PURE__ */c("div",{className:"limbo-alert limbo-alert-danger lb:mb-2 lb:text-sm",role:"alert",children:[
|
|
328
|
-
/* @__PURE__ */s("strong",{children:"Error:"})," ",pe]})
|
|
329
|
-
/* @__PURE__ */s("strong",{children:"Original:"})," "
|
|
331
|
+
/* @__PURE__ */s("strong",{children:"Error:"})," ",pe]}),Ee&&/* @__PURE__ */c("div",{className:"limbo-alert limbo-alert-info lb:mb-2 lb:text-sm",role:"status",children:[
|
|
332
|
+
/* @__PURE__ */s("strong",{children:"Original:"})," ",Ee.naturalWidth," ×"," ",Ee.naturalHeight," px",Ee.currentWidth!==Ee.naturalWidth&&/* @__PURE__ */c("span",{className:"lb:ml-2 lb:sm:ml-3 lb:text-xs lb:block lb:sm:inline",children:["(Mostrada: ",Math.round(Ee.currentWidth)," ×"," ",Math.round(Ee.currentHeight)," px)"]})]}),!$e&&/* @__PURE__ */s("div",{className:"limbo-alert limbo-alert-warning lb:mb-2 lb:text-sm",role:"alert",children:"⚠️ No se puede exportar por restricciones CORS"}),
|
|
330
333
|
/* @__PURE__ */c("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:[
|
|
331
334
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:justify-between lb:mb-2",children:[
|
|
332
335
|
/* @__PURE__ */c("h3",{className:"lb:text-sm lb:font-semibold lb:text-gray-700",children:["Recortes ",J.length>1&&`(${J.length})`]}),Y.allowCustomCrops&&/* @__PURE__ */c("button",{onClick:Qe,disabled:he,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:[
|
|
@@ -342,8 +345,8 @@ return c("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
342
345
|
/* @__PURE__ */s("input",{type:"number",min:"100",max:"5000",value:e.height,onChange:e=>Xe("height",e.target.value),onBlur:()=>Ye("height"),disabled:he||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__ */c("span",{className:"lb:text-xs lb:text-gray-500",children:[e.width," × ",e.height," px"]})}),!n&&/* @__PURE__ */s("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)})})]})]}),
|
|
343
346
|
/* @__PURE__ */c("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:[
|
|
344
347
|
/* @__PURE__ */s("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__ */c("div",{className:"lb:absolute lb:inset-0 lb:bg-white lb:rounded-lg lb:border-2 lb:border-gray-200 lb:overflow-hidden",children:[
|
|
345
|
-
/* @__PURE__ */s(
|
|
346
|
-
/* @__PURE__ */s(
|
|
348
|
+
/* @__PURE__ */s(ze,{show:D,message:"Cargando recortador..."}),
|
|
349
|
+
/* @__PURE__ */s(ze,{show:R,message:`Cambiando a: ${J[te]?.label||"recorte"}...`}),
|
|
347
350
|
/* @__PURE__ */c("cropper-canvas",{ref:ke,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:[
|
|
348
351
|
/* @__PURE__ */s("cropper-image",{ref:Ce,src:e.url||e.path,alt:e.filename,id:"limbo-cropperjs-image",action:"move",crossOrigin:"anonymous",rotatable:!0,scalable:!0,skewable:!0,translatable:!0}),
|
|
349
352
|
/* @__PURE__ */c("cropper-selection",{ref:Se,"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__ */s("cropper-grid",{role:"grid",action:"move",covered:!0,bordered:!0}),
|
|
@@ -415,17 +418,17 @@ return c("label",{className:"lb:h-fit lb:flex lb:flex-col lb:p-1.5 lb:rounded lb
|
|
|
415
418
|
/* @__PURE__ */s("span",{className:"icon icon-lightbulb lb:text-yellow-500"}),
|
|
416
419
|
/* @__PURE__ */s("span",{className:"lb:text-sm lb:font-semibold lb:text-blue-800",children:"Guía de uso"}),
|
|
417
420
|
/* @__PURE__ */s("span",{className:"icon icon-arrow-down lb:scale-75 lb:-rotate-145"})]}),
|
|
418
|
-
/* @__PURE__ */s("button",{onClick:tt,disabled:he
|
|
421
|
+
/* @__PURE__ */s("button",{onClick:tt,disabled:he||!$e,className:`lb:px-3 lb:cursor-pointer lb:py-1.5 lb:text-sm lb:rounded lb:transition-colors ${y?"lb:bg-red-1000 lb:hover:bg-red-800 lb:text-white":"lb:bg-brand-blue-800 lb:hover:bg-brand-blue-1000 lb:text-white"} lb:disabled:opacity-50 lb:disabled:cursor-not-allowed`,"aria-label":"Vista previa",title:"Mostrar/Ocultar vista previa",children:/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:gap-1",children:[
|
|
419
422
|
/* @__PURE__ */s("span",{className:"icon icon-search-white icon--sm"}),
|
|
420
423
|
/* @__PURE__ */s("span",{className:"lb:hidden lb:sm:inline lb:whitespace-nowrap",children:y?"Cerrar previa":"Vista previa"})]})}),
|
|
421
424
|
/* @__PURE__ */c("div",{className:"lb:flex lb:flex-row lb:gap-1 lb:lg:gap-2 lb:items-center lb:justify-end",children:[
|
|
422
|
-
/* @__PURE__ */s("button",{onClick:pt,disabled:he
|
|
425
|
+
/* @__PURE__ */s("button",{onClick:pt,disabled:he||!$e,className:"lb:cursor-pointer lb:px-3 lb:py-1.5 lb:text-sm lb:rounded lb:bg-brand-blue-800 lb:hover:bg-brand-blue-1000 lb:text-white lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed","aria-label":"Descargar",title:"Descargar recorte sin guardar",children:/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:gap-1",children:[
|
|
423
426
|
/* @__PURE__ */s("span",{className:"icon icon-download-white icon--sm"}),
|
|
424
427
|
/* @__PURE__ */s("span",{className:"lb:hidden lb:md:inline lb:whitespace-nowrap",children:"Descargar"})]})}),
|
|
425
428
|
/* @__PURE__ */s("button",{onClick:gt,disabled:he||f,className:"lb:px-3 lb:cursor-pointer lb:py-1.5 lb:text-sm lb:rounded lb:bg-teal-600 lb:hover:bg-teal-700 lb:text-white lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed","aria-label":"Conservar solo imagen original sin crear recortes",title:e.file?"Subir y guardar la imagen original sin crear recortes":"Seleccionar la imagen original sin crear recortes",children:/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:gap-1",children:[
|
|
426
429
|
/* @__PURE__ */s("span",{className:"icon icon-tick-white icon--sm"}),
|
|
427
430
|
/* @__PURE__ */s("span",{className:"lb:hidden lb:md:inline lb:whitespace-nowrap",children:"Guardar sin recortar"})]})}),
|
|
428
|
-
/* @__PURE__ */s("button",{onClick:dt,disabled:he||!
|
|
431
|
+
/* @__PURE__ */s("button",{onClick:dt,disabled:he||!Ne||!Te||!$e||!ye.isReady,className:"lb:px-3 lb:cursor-pointer lb:py-1.5 lb:text-sm lb:rounded lb:bg-green-600 lb:hover:bg-green-700 lb:text-white lb:transition-colors lb:disabled:opacity-50 lb:disabled:cursor-not-allowed",title:"Guardar imagen recortada",children:/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:gap-1",children:/* @__PURE__ */c(u,he?{children:[
|
|
429
432
|
/* @__PURE__ */s("span",{className:"icon icon-save-white icon--sm"}),
|
|
430
433
|
/* @__PURE__ */s("span",{children:"Guardando..."})]}:{children:[
|
|
431
434
|
/* @__PURE__ */s("span",{className:"icon icon-save-white icon--sm"}),
|
|
@@ -567,39 +570,41 @@ return c("label",{className:`lb:flex lb:items-center lb:gap-3 lb:p-3 lb:rounded
|
|
|
567
570
|
/* @__PURE__ */c("p",{children:[le?.width," × ",le?.height," px"]})]})]}):/* @__PURE__ */s("div",{className:"lb:flex lb:items-center lb:justify-center lb:h-full lb:min-h-[200px]",children:/* @__PURE__ */s("p",{className:"lb:text-sm lb:text-gray-500",children:"No se pudo generar la vista previa"})})}),
|
|
568
571
|
/* @__PURE__ */s("div",{className:"lb:px-4 lb:py-2 lb:bg-gray-100 lb:border-t lb:border-gray-200",children:/* @__PURE__ */c("p",{className:"lb:text-xs lb:text-gray-600 lb:text-center",children:[
|
|
569
572
|
/* @__PURE__ */c("span",{className:"lb:hidden lb:md:inline",children:["Arrastra desde el título para mover •"," "]}),"Actualización automática al editar"]})})]})}),
|
|
570
|
-
/* @__PURE__ */s(Z,{src:w,alt:"Vista previa del recorte",title:le?.label||"Recorte",subtitle:`${le?.width||0} × ${le?.height||0} px`,isOpen:P&&!!w,onClose:()=>L(!1)})]}):null}function
|
|
573
|
+
/* @__PURE__ */s(Z,{src:w,alt:"Vista previa del recorte",title:le?.label||"Recorte",subtitle:`${le?.width||0} × ${le?.height||0} px`,isOpen:P&&!!w,onClose:()=>L(!1)})]}):null}function _n({currentPage:t,totalPages:n,onPageChange:l,disabled:r=!1}){if(!n||n<=1)return null;const a=(()=>{const e=[],l=[],r=Math.max(1,t-2),a=Math.min(n,t+2);for(let t=r;t<=a;t++)e.push(t);return r>1&&(l.push(1),r>2&&l.push("...")),l.push(...e),a<n&&(a<n-1&&l.push("..."),l.push(n)),l})();/* @__PURE__ */
|
|
571
574
|
return s("div",{className:"lb:flex lb:flex-col lb:items-center lb:justify-center lb:space-x-2 lb:py-4",children:/* @__PURE__ */c("div",{className:"lb:flex lb:space-x-2 lb:mt-2",children:[
|
|
572
575
|
/* @__PURE__ */c("button",{onClick:()=>{t>1&&l(t-1)},disabled:r||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 ${r||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:[
|
|
573
576
|
/* @__PURE__ */s("span",{className:"icon icon-arrow-left icon--sm"})," Anterior"]}),
|
|
574
577
|
/* @__PURE__ */s("div",{className:"lb:flex lb:space-x-1",children:a.map((n,a)=>/* @__PURE__ */s(e.Fragment,{children:"..."===n?/* @__PURE__ */s("span",{className:"lb:px-3 lb:py-2 lb:text-sm lb:text-gray-500",children:"..."}):/* @__PURE__ */s("button",{onClick:()=>(e=>{e!==t&&l(e)})(n),disabled:r,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-brand-blue-800 lb:text-white lb:border lb:border-brand-blue-1000":r?"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}`))}),
|
|
575
578
|
/* @__PURE__ */c("button",{onClick:()=>{t<n&&l(t+1)},disabled:r||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 ${r||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 ",
|
|
576
|
-
/* @__PURE__ */s("span",{className:"icon icon-arrow-right icon--sm"})]})]})})}function
|
|
579
|
+
/* @__PURE__ */s("span",{className:"icon icon-arrow-right icon--sm"})]})]})})}function zn({text:e="Cargando..."}){/* @__PURE__ */
|
|
577
580
|
return c("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:[
|
|
578
581
|
/* @__PURE__ */c("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:[
|
|
579
582
|
/* @__PURE__ */s("circle",{className:"lb:opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),
|
|
580
583
|
/* @__PURE__ */s("path",{className:"lb:opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})]}),
|
|
581
|
-
/* @__PURE__ */s("p",{className:"lb:text-sm",id:"loader-text",children:e})]})}function
|
|
584
|
+
/* @__PURE__ */s("p",{className:"lb:text-sm",id:"loader-text",children:e})]})}function Tn({isOpen:e,onClose:t}){return e?/* @__PURE__ */s("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__ */c("div",{className:"lb:bg-white lb:rounded-lg lb:p-6 lb:max-w-md lb:mx-4 lb:shadow-xl",children:[
|
|
582
585
|
/* @__PURE__ */c("div",{className:"lb:flex lb:items-center lb:mb-4",children:[
|
|
583
586
|
/* @__PURE__ */s("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__ */s("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"})}),
|
|
584
587
|
/* @__PURE__ */s("h3",{className:"lb:text-lg lb:font-semibold lb:text-gray-900",children:"Sesión Expirada"})]}),
|
|
585
588
|
/* @__PURE__ */c("div",{className:"lb:mb-6",children:[
|
|
586
589
|
/* @__PURE__ */s("p",{className:"lb:text-gray-600 lb:mb-2",children:"Su sesión ha expirado por seguridad."}),
|
|
587
590
|
/* @__PURE__ */s("p",{className:"lb:text-gray-600",children:"Es necesario recargar la página para obtener un nuevo token de acceso."})]}),
|
|
588
|
-
/* @__PURE__ */s("div",{className:"lb:flex lb:justify-end lb:space-x-3",children:/* @__PURE__ */s("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
|
|
591
|
+
/* @__PURE__ */s("div",{className:"lb:flex lb:justify-end lb:space-x-3",children:/* @__PURE__ */s("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 In(){const[e,n]=t(!1),[l,r]=t(null);return{deleteImg:async e=>{if(!e)return r("ID de imagen no proporcionado"),!1;n(!0),r(null);try{const t=await async function(e){try{return await j({endpoint:`/assets/${e}`,method:"DELETE",basePath:G,useJWT:!0})}catch(l){throw K(l)}}(e);return!1!==t.success}catch(t){return r(t.message),!1}finally{n(!1)}},loading:e,error:l,reset:()=>{r(null)}}}const An=/* @__PURE__ */new Map,Mn=6e5,Pn="limbo_gallery_cache";function Ln(e,l=!1,a={},o=!0){const s=i(()=>JSON.stringify(a),[a]),c=r((()=>{const e=s,t=An.get(e),n=Date.now();return t&&n-t.timestamp<Mn?{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),[w,x]=t(0);n(()=>{if(!o)return void m(!1);const e=`${s}`,t=An.get(e),n=Date.now();if(t&&n-t.timestamp<Mn)return d(t.data),g(t.pagination||null),void m(!1);let l=!0;return(async()=>{if(y>=3)l&&(p("Error de autenticación: Verifica tus credenciales API"),m(!1));else try{const t=await Q(a);if(!l)return;const r=t.result||t.data||[],i=t.pagination||null;d(r),g(i),p(null),v(0),An.set(e,{data:r,pagination:i,timestamp:n}),(()=>{try{const e={};An.forEach((t,n)=>{e[n]=t}),sessionStorage.setItem(Pn,JSON.stringify(e))}catch{}})()}catch(t){l&&(p(t.message),v(e=>e+1))}finally{l&&m(!1)}})(),()=>{l=!1}},[e,l,s,y,a,o,w]);return{images:u,loading:b,error:h,pagination:f,setImages:d,invalidateCache:()=>{An.delete(`${s}`)},refetch:()=>{An.delete(`${s}`),m(!0),x(e=>e+1)}}}function Dn(e,l=500){const[r,a]=t(e);return n(()=>{const t=setTimeout(()=>{a(e)},l);return()=>{clearTimeout(t)}},[e,l]),r}function On(){/* @__PURE__ */
|
|
589
592
|
return c("div",{className:"lb:flex lb:items-center lb:justify-center lb:gap-2 lb:py-2 lb:px-4 lb:border-t lb:border-brand-purple-200 lb:bg-brand-purple-50 lb:rounded-b-md",children:[
|
|
590
593
|
/* @__PURE__ */c("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 52",fill:"currentColor",className:"lb:w-4 lb:h-4 lb:text-brand-purple-800","aria-hidden":"true",children:[
|
|
591
594
|
/* @__PURE__ */s("path",{d:"M29.0863 15.2704H24.9419V36.7321H37.5259V33.1048H29.0863V15.2704Z"}),
|
|
592
595
|
/* @__PURE__ */s("path",{d:"M18.1601 33.1048H9.72056V36.7321H22.3045V15.2704H18.1601V33.1048Z"}),
|
|
593
596
|
/* @__PURE__ */s("path",{d:"M44.0063 51.846L3.16483 50.1834C1.35636 50.1834 0 48.5965 0 46.8584V4.99294C0 3.33041 1.65777 1.8946 3.31554 1.81903L44.157 0.1565C46.2669 0.0809304 48 1.74346 48 3.8594V47.8408C48 50.0323 46.1915 51.846 43.9309 51.7704H44.0063V51.846ZM4.89796 46.405L42.9513 47.4629C43.4788 47.4629 44.0063 47.0095 44.0063 46.4805V5.21965C44.0063 4.69066 43.6295 4.31282 43.102 4.31282L4.82261 5.67307C4.14443 5.67307 3.61695 6.27762 3.61695 6.95775V45.1203C3.61695 45.8004 4.14443 46.3294 4.82261 46.405H4.89796Z"})]}),
|
|
594
597
|
/* @__PURE__ */c("span",{className:"lb:text-xs lb:text-brand-purple-400",children:["Powered by ",
|
|
595
|
-
/* @__PURE__ */s("span",{className:"lb:font-semibold lb:text-brand-purple-800",children:"Limbo"})]})]})}function
|
|
596
|
-
return c(u,{children:[d.showTabs&&"cropper"!=_&&/* @__PURE__ */s($,{tabs:
|
|
597
|
-
/* @__PURE__ */s(
|
|
598
|
-
/* @__PURE__ */s(
|
|
599
|
-
/* @__PURE__ */
|
|
600
|
-
/* @__PURE__ */s(
|
|
598
|
+
/* @__PURE__ */s("span",{className:"lb:font-semibold lb:text-brand-purple-800",children:"Limbo"})]})]})}function Rn({apiKey:e,prod:r=!1,url:a=!0,features:i=["gallery","upload","cropper"],modeUI:o="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=30,_externalImage:p=null,cropperConfig:f=null,folderConfig:g={include:[],exclude:[],includeNoFolder:!0,showFolderSelector:!0,showFolderFilter:!0,showFolderInfo:!0,allowMoveFolder:!0,allowCreateFolder:!0,defaultFolder:null},allowedCategories:y=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[v,w]=t({name:"",uploadedBy:"",dateFrom:"",dateTo:"",assetType:"",folder:""}),[x,k]=t(g?.defaultFolder||null),C=Dn(v.name,400),S=Dn(v.uploadedBy,400),N=(()=>{switch(o){case"gallery-only":return["gallery"];case"upload-only":return["upload","cropper"];case"crop-only":return["cropper"];case"ia-only":return["ia"];default:return i}})(),E=()=>N.includes("gallery")?"gallery":N.includes("upload")?"upload":N.includes("cropper")?"cropper":N.includes("ia")?"ia":N[0]||"gallery",[_,z]=t(E()),[T,I]=t(null),[A,M]=t(null);n(()=>{p&&(console.log("📸 Imagen externa detectada:",p),I(p),z("cropper"))},[p]),n(()=>{const e=()=>{console.log("[App] Modal cerrado, reseteando estado..."),I(null),z(E())};return window.limboCore?.events&&window.limboCore.events.on("modal:closed",e),()=>{window.limboCore?.events&&window.limboCore.events.off("modal:closed",e)}},[]);const[P,L]=t(1),{isTokenExpired:D,handleTokenExpiredClose:O}=function(){const[e,r]=t(!1),a=l(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 r(!0),!0}return!1},[]),i=l(()=>{r(!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:R,loading:F,error:U,uploadedImage:B,reset:q}=function(){const[e,n]=t(!1),[l,r]=t(null),[a,i]=t(null);return{upload:async(e,t=null,l=null)=>{if(!e)return r("No se ha proporcionado ningún archivo"),null;n(!0),r(null),i(null);try{const n="object"==typeof l?l?.slug:l,r=await X(e,t,!1,n),a=r.result||r;return i(a),a}catch(a){return r(a.message),null}finally{n(!1)}},loading:e,error:l,uploadedImage:a,reset:()=>{r(null),i(null)}}}(),{deleteImg:V,loading:H,error:Q,reset:Y}=In(),Z={limit:h,page:P,...C&&{name:C},...S&&{uploadedBy:S},...v.dateFrom&&{dateFrom:v.dateFrom},...v.dateTo&&{dateTo:v.dateTo},...v.assetType&&{asset_type:v.assetType},...v.folder&&{folder:v.folder},...g.include?.length>0&&{folders_include:g.include.join(",")},...0===g.include?.length&&g.exclude?.length>0&&{folders_exclude:g.exclude.join(",")},...(g.include?.length>0||g.exclude?.length>0)&&void 0!==g.includeNoFolder&&{include_no_folder:g.includeNoFolder?"1":"0"}},ee=N.includes("gallery"),{images:te,loading:ne,error:le,pagination:re,invalidateCache:ae,setImages:ie,refetch:oe}=Ln(e,r,Z,ee);n(()=>{const e=()=>{oe()};return document.addEventListener("limbo:variantsCleared",e),document.addEventListener("limbo:variantDeleted",e),()=>{document.removeEventListener("limbo:variantsCleared",e),document.removeEventListener("limbo:variantDeleted",e)}},[oe]);const{refreshVariants:se}=J(),ce=l((e,t=null)=>R(e,t,x?.slug||x),[R,x]),ue=e=>!d.hideActions?.includes(e)&&(!!d.showActions?.includes(e)||!(d.showActions?.length>0)),de=[{id:"gallery",label:"Galería",feature:"gallery"},{id:"upload",label:"Subir",feature:"upload"},{id:"cropper",label:"Recortador",hideNonActive:!0,feature:"cropper"}].filter(e=>N.includes(e.feature)),me=async e=>{const t=e.type?.startsWith("image/");if(!t){const t=x?.slug||x,n=await R(e,null,t);return void(n&&(ae(),L(1),ie(e=>[n,...e]),N.includes("gallery")&&z("gallery"),b.onUpload&&b.onUpload({assetId:n.id,url:n.url,fileName:n.filename,mime:n.mime_type,width:n.width,height:n.height,instanceId:m})))}const n=URL.createObjectURL(e),l=await new Promise(e=>{const t=new Image;t.onload=()=>{e({width:t.naturalWidth,height:t.naturalHeight}),URL.revokeObjectURL(n)},t.onerror=()=>{e({width:1920,height:1080}),URL.revokeObjectURL(n)},t.src=n}),r={file:e,filename:e.name,mime_type:e.type,url:URL.createObjectURL(e),width:l.width,height:l.height};if(I(r),N.includes("cropper"))z("cropper");else{const t=x?.slug||x,n=await R(e,null,t);n&&(ae(),L(1),ie(e=>[n,...e]),z("gallery"),b.onUpload&&b.onUpload({assetId:n.id,url:n.url,fileName:n.filename,mime:n.mime_type,width:n.width,height:n.height,instanceId:m}))}},he=async e=>{if(!confirm("¿Estás seguro de que deseas eliminar este archivo? Esta acción también eliminará todos sus recortes."))return;await V(e)&&(ae(),L(1),ie(t=>t.filter(t=>t.id!==e)),T&&T.id===e&&(I(null),z("gallery")))},pe=e=>{I(e),N.includes("cropper")&&z("cropper")},fe=()=>"crop-only"===o||1===N.length&&"cropper"===N[0]?"crop-only":N.includes("gallery")?"with-gallery":N.includes("upload")&&!N.includes("gallery")?"upload-only":"with-gallery";/* @__PURE__ */
|
|
599
|
+
return c(u,{children:[d.showTabs&&"cropper"!=_&&/* @__PURE__ */s($,{tabs:de,active:_,onChange:e=>{z(e),"upload"!==e&&q(),"gallery"!==e&&Y()}}),le&&/* @__PURE__ */c("div",{className:"alert alert-danger",children:["Error al cargar archivos: ",le]}),Q&&/* @__PURE__ */c("div",{className:"alert alert-danger",children:["Error al eliminar archivo: ",Q]}),A&&/* @__PURE__ */s("div",{className:"lb:fixed lb:top-4 lb:right-4 lb:z-10000 lb:bg-green-600 lb:text-white lb:px-6 lb:py-3 lb:rounded-lg lb:shadow-lg lb:animate-fade-in",children:A}),"gallery"===_&&/* @__PURE__ */c(u,{children:[H&&/* @__PURE__ */s(zn,{text:"Eliminando archivo..."}),B&&/* @__PURE__ */c("div",{className:"alert limbo-alert-success lb:bg-green-500 lb:absolute lb:top-0 lb:right-12.5 lb:m-4 lb:text-white lb:transition-all lb:duration-300 lb:animate-fade-in",children:[
|
|
600
|
+
/* @__PURE__ */s("span",{className:"icon icon-tick-white icon--2sm"})," Archivo subido correctamente: ",B.filename]}),
|
|
601
|
+
/* @__PURE__ */s(be,{onSelect:e=>{if(f?.mandatoryCrops?.length>0&&N.includes("cropper"))return console.log("[App] 📐 MandatoryCrops detectados, navegando al cropper primero"),void pe(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:pe,onDelete:ue("delete")?he:null,deletingId:H,images:te,loading:ne,error:le,filters:v,debouncedFilters:{name:C,uploadedBy:S,dateFrom:v.dateFrom,dateTo:v.dateTo,assetType:v.assetType,folder:v.folder},onFiltersChange:e=>{w(e),L(1)},filterConfig:d.galleryFilters||{},loadingConfig:d.galleryLoading||{},allowedActions:{select:ue("select"),download:ue("download"),copy:ue("copy"),delete:ue("delete"),crop:ue("crop")},allowedCategories:y,folderConfig:g,onFolderChange:async(e,t)=>{try{const n=await async function(e,t){try{return W(await j({endpoint:`/assets/${e}`,method:"PATCH",body:t,basePath:G,useJWT:!0}))}catch(n){throw K(n)}}(e.id,{folder:t});return ie(t=>t.map(t=>t.id===e.id?{...t,folder:n.folder||null}:t)),n}catch(n){throw console.error("Error al cambiar carpeta:",n),n}}}),re&&!ne&&/* @__PURE__ */s(_n,{currentPage:re.page||P,totalPages:re.pages||1,onPageChange:e=>{L(e)},disabled:ne||H})]}),"upload"===_&&/* @__PURE__ */c("div",{children:[F&&/* @__PURE__ */s(zn,{text:"Subiendo archivo..."}),U&&/* @__PURE__ */c("div",{className:"alert limbo-alert-danger lb:bg-red-500 lb:absolute lb:top-0 lb:right-12.5 lb:m-4 lb:text-white lb:transition-all lb:duration-300 lb:animate-fade-in",children:["Error al subir archivo: ",U]}),B&&/* @__PURE__ */c("div",{className:"alert limbo-alert-success lb:bg-green-500 lb:absolute lb:top-0 lb:right-12.5 lb:m-4 lb:text-white lb:transition-all lb:duration-300 lb:animate-fade-in",children:[
|
|
602
|
+
/* @__PURE__ */s("span",{className:"icon icon-tick-white icon--2sm"})," Archivo subido correctamente: ",B.filename]}),
|
|
603
|
+
/* @__PURE__ */s(Be,{onSelect:me,disabled:F,apiKey:e,prod:r,allowedCategories:y,folderConfig:g,selectedFolder:x,onFolderChange:k})]}),"cropper"===_&&T&&/* @__PURE__ */s($n,{image:T,onSave:e=>{const t=fe(),n=window.limboCore?.config?.getGlobal()||{},l=n.mode||"embed",r=n.autoHideOnComplete||!1;let a=[],i=null;e.crops&&e.asset?(a=e.crops,i=e.asset):a=e.crops&&Array.isArray(e.crops)?e.crops:Array.isArray(e)?e:[e],i&&"with-gallery"===t&&(ie(e=>[i,...e]),L(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&&ae();const o=i||T,s=a.some(e=>!0===e.isLocal),c={crops:a,assetId:o?.id,instanceId:m,localCrops:s,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};console.log("[App] handleCropSave - callbackPayload:",c),console.log("[App] handleCropSave - crops:",a),console.log("[App] handleCropSave - crops[0]?.url:",a[0]?.url),console.log("[App] handleCropSave - asset:",c.asset),console.log("[App] handleCropSave - callbacks.onCropsSaved existe:",!!b.onCropsSaved),b.onCropsSaved?(console.log("[App] Llamando callbacks.onCropsSaved..."),b.onCropsSaved(c),console.log("[App] callbacks.onCropsSaved ejecutado")):console.warn("[App] ⚠️ callbacks.onCropsSaved NO existe"),window.limboCore?.events&&window.limboCore.events.emit("cropsSaved",c);const u=a.length;switch(M(`✅ ${u} recorte${1!==u?"s":""} guardado${1!==u?"s":""} correctamente`),setTimeout(()=>M(null),3e3),t){case"with-gallery":"modal"===l?b.onCropsSaved||(window.limboCore?.modals?.closeAllModals(),I(null),z("gallery")):(I(null),z("gallery"));break;case"upload-only":"modal"===l?b.onCropsSaved||(window.limboCore?.modals?.closeAllModals(),I(null),z("upload")):(I(null),z("upload"));break;case"crop-only":if("modal"===l)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}),r){const e=document.querySelector(`#limbo-instance-${m}`);e&&(e.style.display="none")}}},onCancel:()=>{const e=fe(),t=(window.limboCore?.config?.getGlobal()||{}).mode||"embed";switch(b.onCropperCancelled&&b.onCropperCancelled({assetId:T?.id,instanceId:m}),window.limboCore?.events&&window.limboCore.events.emit("cropperCancelled",{assetId:T?.id,instanceId:m}),e){case"with-gallery":I(null),z("gallery");break;case"upload-only":"modal"===t?window.limboCore?.modals?.closeAllModals():(I(null),z("upload"));break;case"crop-only":"modal"===t?window.limboCore?.modals?.closeAllModals():window.limboCore?.events&&window.limboCore.events.emit("cropperClosed",{instanceId:m,reason:"cancelled"})}},onDelete:T?.id&&ue("delete")?()=>he(T.id):null,onError:e=>{b.onCropperError&&b.onCropperError(e,m),window.limboCore?.events&&window.limboCore.events.emit("cropperError",{error:e,assetId:T?.id,instanceId:m}),console.error("Cropper error:",e)},deleting:H,onVariantCreated:(e,t)=>{se(e)},onUpload:ce,uploading:F,cropperConfig:f}),"cropper"===_&&!T&&
|
|
604
|
+
/* @__PURE__ */c("div","crop-only"===o?{children:[F&&/* @__PURE__ */s(zn,{text:"Subiendo archivo..."}),U&&/* @__PURE__ */c("div",{className:"alert limbo-alert-danger lb:bg-red-500 lb:absolute lb:top-0 lb:right-12.5 lb:m-4 lb:text-white lb:transition-all lb:duration-300 lb:animate-fade-in",children:["Error al subir archivo: ",U]}),
|
|
605
|
+
/* @__PURE__ */s(Be,{onSelect:me,disabled:F,apiKey:e,prod:r,allowedCategories:y,folderConfig:g,selectedFolder:x,onFolderChange:k})]}:{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:[
|
|
601
606
|
/* @__PURE__ */s("div",{className:"lb:text-gray-400 lb:mb-4",children:/* @__PURE__ */s("svg",{className:"lb:w-16 lb:h-16 lb:mx-auto",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:/* @__PURE__ */s("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"})})}),
|
|
602
607
|
/* @__PURE__ */s("p",{className:"lb:text-gray-600 lb:mb-4",children:"Selecciona una imagen de la galería para comenzar a recortar."})]}),
|
|
603
|
-
/* @__PURE__ */s(
|
|
604
|
-
/* @__PURE__ */s(En,{isOpen:D,onClose:O})]})}(()=>{try{const e=sessionStorage.getItem(Tn);if(e){const t=JSON.parse(e),n=Date.now();Object.entries(t).forEach(([e,t])=>{t.timestamp&&n-t.timestamp<zn&&_n.set(e,t)})}}catch{}})();class Ln{constructor(e,t,n,l){this.id=e,this.config=t,this.eventManager=n,this.modalManager=l,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=S.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=S.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:pb-0 lb:bg-white","data-limbo-id":this.id,"data-limbo-mode":this.config.mode,"data-limbo-version":"3.0.0","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,allowedCategories:this.config.validation?.allowedCategories||null,folderConfig:this.config.folders||{include:[],exclude:[],includeNoFolder:!0}}))}_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)},onCropsSaved:e=>{console.log("[LimboInstance] onCropsSaved recibido:",e),console.log("[LimboInstance] this.config?.callbacks:",this.config?.callbacks);const t=this.config?.callbacks?.onCropsSaved;console.log("[LimboInstance] userCallback existe:",!!t);const n={instance:this,eventType:"cropsSaved",timestamp:Date.now(),instanceId:this.id,...e};if(console.log("[LimboInstance] payload.crops:",n.crops),t){console.log("[LimboInstance] Llamando userCallback onCropsSaved");try{t(n),console.log("[LimboInstance] userCallback ejecutado correctamente")}catch(l){console.error("[LimboInstance] Error en userCallback:",l)}}else console.warn("[LimboInstance] ⚠️ userCallback onCropsSaved NO existe");this.destroyed||this._emitDOMEvent("cropsSaved",n)},onCropperComplete:e=>{console.log("[LimboInstance] onCropperComplete recibido:",e);const t=this.config?.callbacks?.onCropperComplete,n={instance:this,eventType:"cropperComplete",timestamp:Date.now(),instanceId:this.id,...e};t&&(console.log("[LimboInstance] Llamando userCallback onCropperComplete"),t(n)),this.destroyed||this._emitDOMEvent("cropperComplete",n)}}}_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||this.config.tokenProvider||this.config.auth?.tokenProvider))throw new Error(`LimboInstance ${this.id}: Authentication is required. Provide either auth.publicKey (recommended), auth.apiKey (for server-side only), token, or tokenProvider`);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 Dn{constructor(){this.instances=/* @__PURE__ */new Map,this.counter=0}create(e,t,n){const l="limbo-"+ ++this.counter,r=new Ln(l,e,t,n);return this.instances.set(l,r),r}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 On{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 archivo",buttonClass:e.buttonClass||"limbo-auto-button",buttonStyle:e.buttonStyle||"primary",showPreview:!1!==e.showPreview,allowMultiple:e.allowMultiple||!1,autoAssign:!1!==e.autoAssign,localCropsOnly:e.localCropsOnly||!1,...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 l=[this.config.buttonClass];return n.buttonClass&&n.buttonClass!==this.config.buttonClass&&l.push(n.buttonClass),t.className=l.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,l=t.theme||this.config.theme,r=t.compact||this.config.compact,a={border:"none",borderRadius:"8px",cursor:"pointer",fontFamily:"inherit",fontSize:r?"12px":"14px",fontWeight:"500",transition:"all 0.2s ease",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",padding:r?"6px 12px":"8px 16px",textDecoration:"none",userSelect:"none"},i={primary:{backgroundColor:"dark"===l?"#3b82f6":"#001978",color:"white",hoverBg:"dark"===l?"#2563eb":"#334793"},secondary:{backgroundColor:"dark"===l?"#374151":"#f3f4f6",color:"dark"===l?"#f9fafb":"#374151",border:"1px solid "+("dark"===l?"#4b5563":"#d1d5db"),hoverBg:"dark"===l?"#4b5563":"#e5e7eb"},outline:{backgroundColor:"transparent",color:"dark"===l?"#3b82f6":"#001978",border:"2px solid "+("dark"===l?"#3b82f6":"#001978"),hoverBg:"dark"===l?"#3b82f6":"#001978",hoverColor:"white"},ghost:{backgroundColor:"transparent",color:"dark"===l?"#f9fafb":"#374151",hoverBg:"dark"===l?"#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);console.log("[AutoInputManager] ====== INICIO _handleImageSelection ======"),console.log("[AutoInputManager] Recibiendo imageData:",t),console.log("[AutoInputManager] imageData.original:",t?.original),console.log("[AutoInputManager] imageData.images:",t?.images),console.log("[AutoInputManager] Configuración del input:",n);try{let r=t;if(!t.original&&!t.images&&(t.id||t.assetId)){console.log("[AutoInputManager] 🔗 Selección directa detectada, obteniendo URL permanente...");const e=t.id||t.assetId;try{const n=await async function(e,t=!0,n=!0,l=0){try{const r=new URLSearchParams({include_variants:t.toString(),include_metadata:n.toString(),url_expires:l.toString()});return W(await j({endpoint:`/assets/${e}?${r}`,method:"GET",basePath:G,useJWT:!0}))}catch(r){throw K(r)}}(e,!1,!1,!0);n?.result?.url?(console.log("[AutoInputManager] ✅ URL permanente obtenida:",n.result.url),r={original:{url:n.result.url,width:n.result.width||t.width,height:n.result.height||t.height,assetId:e},images:[]}):(console.warn("[AutoInputManager] ⚠️ No se pudo obtener URL permanente, usando URL temporal"),r={original:{url:t.url||t.path,width:t.width,height:t.height,assetId:e},images:[]})}catch(l){console.error("[AutoInputManager] Error obteniendo URL permanente:",l),r={original:{url:t.url||t.path,width:t.width,height:t.height,assetId:e},images:[]}}}const a=await this._formatImageData(r,n);console.log("[AutoInputManager] Valor formateado:",a),console.log("[AutoInputManager] Tipo de valor:",typeof a),!1!==n.autoAssign&&(e.value=a,console.log("[AutoInputManager] Valor asignado al input:",e.value)),this._updateButtonFeedback(e,r),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:resultReady",{detail:{imageData:r,input:e,value:a,config:n,assignment:{format:n.return,smartAssign:!1!==n.smartAssign,autoAssign:!1!==n.autoAssign},legacy:{imageData:r,formatted:this._createFormattedResult(r,n)}},bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:r,input:e,value:a,config:n,formatted:this._createFormattedResult(r,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:r,value:a,config:n})}catch(r){console.error("Error handling image selection:",r),e.dispatchEvent(new CustomEvent("limbo:error",{detail:{error:r.message,input:e,imageData:processedImageData,config:n},bubbles:!0})),this._handleImageSelectionLegacy(e,t)}}_updateButtonFeedback(e,t){const n=this._getInputId(e),l=this.instances.get(n);if(!l||!l.button)return;const r=l.button,a=r.nextElementSibling;a&&a.classList.contains("limbo-button-feedback")&&a.remove();const i=document.createElement("span");i.className="limbo-button-feedback",i.style.cssText="\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-left: 8px;\n padding: 4px 8px;\n background: #10b981;\n color: white;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n animation: limbo-fade-in 0.3s ease-out;\n ";const o=t.images&&t.images.length>0,s=o?t.images.length:0;i.innerHTML=o?`\n <svg width="14" height="14" viewBox="0 0 20 20" fill="currentColor">\n <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/>\n </svg>\n <span>${s} recorte${1!==s?"s":""} configurado${1!==s?"s":""}</span>\n `:'\n <svg width="14" height="14" viewBox="0 0 20 20" fill="currentColor">\n <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/>\n </svg>\n <span>Archivo seleccionado</span>\n ',r.parentNode.insertBefore(i,r.nextSibling);let c=r.parentNode.querySelector(".limbo-powered-by");c||(c=document.createElement("div"),c.className="limbo-powered-by",c.innerHTML='<span style="display:block;margin-top:2px;font-size:10px;color:#aaa;text-align:left;font-family:inherit;opacity:0.7;">Powered by <b>Limbo</b></span>',r.parentNode.insertBefore(c,i.nextSibling)),r.style.backgroundColor="#10b981",r.textContent="Cambiar archivo"}_handleImageSelectionLegacy(e,t){const n=this._getInputConfig(e),l=this._formatImageData(t,n);!1!==n.autoAssign&&(e.value=l),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:t,input:e,value:l,config:n,formatted:this._createFormattedResult(t,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:t,value:l,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",l=void 0!==e.original;switch(n){case"url":return l?e.images?.[0]?.url||e.original?.url||"":e.url||e.path||"";case"base64":return e.base64||e.dataUrl||"";case"assetId":return l?e.original?.assetId||"":e.assetId||e.id||"";case"fileName":return e.fileName||e.filename||"";default:try{if(l){const t={original:e.original?{url:e.original.url||e.original.urlSigned,width:e.original.width,height:e.original.height,assetId:e.original.assetId||e.original.id}:null,images:Array.isArray(e.images)?e.images.map(e=>{const t={url:e.url||e.urlSigned,width:e.width,height:e.height,name:e.name||e.filename||e.label};return e.cropState&&(t.cropState={selectorState:e.cropState.selectorState||null,imageTransform:e.cropState.imageTransform||null,flipState:e.cropState.flipState||null}),t}):[]};console.log("[AutoInputManager] Datos limpios para JSON:",t);const n=JSON.stringify(t);return console.log("[AutoInputManager] JSON generado:",n),n}const t={original:{url:e.url||e.path,width:e.width,height:e.height,assetId:e.assetId||e.id}};return console.log("[AutoInputManager] Datos legacy para JSON:",t),JSON.stringify(t)}catch(r){return console.error("[AutoInputManager] Error al serializar JSON:",r),console.error("[AutoInputManager] imageData problemático:",e),"{}"}}}_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 archivo",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,existingCrops:e.existingCrops||null,existingData:e.existingData||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,localCropsOnly:e.localCropsOnly??this.config.localCropsOnly??!1,existingCrops:e.existingCrops||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 l={"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(l[t])return{...n,aspectRatio:l[t],minCropBoxWidth:e.minWidth||this.config.minWidth,minCropBoxHeight:e.minHeight||this.config.minHeight};if("string"==typeof t&&t.includes(":")){const[e,l]=t.split(":").map(Number);if(!isNaN(e)&&!isNaN(l)&&0!==l)return{...n,aspectRatio:e/l}}const r=parseFloat(t);return!isNaN(r)&&r>0?{...n,aspectRatio:r}:"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 l=[];switch(t){case"gallery-only":case"upload-only":l=["select"];break;case"crop-only":l=["select","crop"];break;default:l=["select"],n.includes("cropper")&&l.push("crop"),n.includes("gallery")&&(l.push("download","copy"),this.config.allowDelete&&l.push("delete"))}return l}_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}},l=(e,t=!1)=>null===e?t:"true"===e||"1"===e||""===e,r=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:r(e.dataset.quality)||r(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:l(e.dataset.compact,null)??l(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:r(e.getAttribute("data-limbo-min-width"))||this.config.minWidth,minHeight:r(e.getAttribute("data-limbo-min-height"))||this.config.minHeight,maxWidth:r(e.getAttribute("data-limbo-max-width"))||this.config.maxWidth,maxHeight:r(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:l(e.getAttribute("data-limbo-show-preview"),this.config.showPreview),allowMultiple:l(e.getAttribute("data-limbo-allow-multiple"),this.config.allowMultiple),autoAssign:l(e.getAttribute("data-limbo-auto-assign"),this.config.autoAssign),placeholder:e.getAttribute("data-limbo-placeholder"),description:e.getAttribute("data-limbo-description"),required:l(e.getAttribute("data-limbo-required"),!1),disabled:l(e.getAttribute("data-limbo-disabled"),!1),inputId:e.id||e.name||this._generateInputId(e),inputName:e.name,inputType:e.type,mandatoryCrops:i,allowAdditionalCrops:l(e.dataset.allowadditionalcrops,null)??l(e.getAttribute("data-limbo-allow-additional-crops"),!0),maxCrops:r(e.dataset.maxcrops)||r(e.getAttribute("data-limbo-max-crops"))||null,allowSelectNew:l(e.dataset.allowselectnew,null)??l(e.getAttribute("data-limbo-allow-select-new"),!0),...this._parseExistingInputValue(e.value)}}_parseExistingInputValue(e){if(!e||""===e.trim())return{initialImageUrl:null,existingCrops:null,existingData:null};try{const t=JSON.parse(e);return t.original&&t.original.url?(console.log("[AutoInputManager] Valor existente parseado:",t),{initialImageUrl:t.original.url,existingCrops:t.images||null,existingData:t}):t.url?{initialImageUrl:t.url,existingCrops:null,existingData:t}:{initialImageUrl:null,existingCrops:null,existingData:t}}catch(t){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?{initialImageUrl:e,existingCrops:null,existingData:null}:{initialImageUrl:null,existingCrops:null,existingData: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 Rn{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(l){console.error(`Error executing listener for ${e}:`,l)}})}getStats(){const e={};return this.listeners.forEach((t,n)=>{e[n]=t.length}),e}}class Fn{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 jn(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),window.limboCore?.events&&window.limboCore.events.emit("modal:closed",{modalId:e.getId(),remainingModals:this.activeModals.size})}_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 l=n[0],r=n[n.length-1];e.shiftKey?document.activeElement===l&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),l.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 jn{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,l=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=l,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 Un{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 l=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,l),!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 l=n.getAttribute("data-theme")||n.getAttribute("class")?.match(/theme-(\w+)/)||n.getAttribute("class")?.match(/(\w+)-theme/);l&&(e.detectedName=Array.isArray(l)?l[1]:l)}}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 l=`--limbo-${e}`,r=n.getPropertyValue(l).trim();r&&(t[l]=r)});return["--primary-color","--background-color","--text-color","--border-color","--accent-color","--surface-color"].forEach(e=>{const l=n.getPropertyValue(e).trim();if(l){const n=this._mapGenericToLimbo(e,l);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 l=document.querySelector('meta[name="theme-color"]');l||(l=document.createElement("meta"),l.name="theme-color",document.head.appendChild(l)),l.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(l){console.error("Error in theme change callback:",l)}})}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 l=this._getTheme(this.config.inheritance.fallbackTheme);return l&&(n.variables={...l.variables,...n.variables}),this.registerTheme(e,n),n}_darkenColor(e,t){const n=parseInt(e.replace("#",""),16),l=Math.round(2.55*t),r=(n>>16)-l,a=(n>>8&255)-l,i=(255&n)-l;return"#"+(16777216+65536*(r<255?r<1?0:r: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),l=Math.round(2.55*t),r=(n>>16)+l,a=(n>>8&255)+l,i=(255&n)+l;return"#"+(16777216+65536*(r<255?r<1?0:r: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(l=>{t[l]&&"object"==typeof t[l]&&!Array.isArray(t[l])?n[l]=this._deepMerge(e[l]||{},t[l]):n[l]=t[l]}),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 Bn={DEV:"https://led-dev-limbo-dev.eu.els.local",PROD:"https://limbo.lefebvre.es"};function qn(e,t=!1){if(!e)return"";if(e.startsWith("/files/")){return(t?Bn.PROD:Bn.DEV)+e}return e}function Wn(e){return"string"!=typeof e?e:e.replace(/"/g,'"').replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/'/g,"'")}function Vn(e){return!(!e||"string"!=typeof e)&&!e.startsWith("blob:")}function Hn(e,t={}){if(!e)return"";const{prefer:n="crop",isProd:l=!1}=t,r=Wn(e);try{const e=JSON.parse(r),t=()=>{if(e.images&&Array.isArray(e.images))for(const t of e.images)if(t&&Vn(t.url))return t.url;return null},a=e.original?.url,i=t();if("crop"===n){if(i)return qn(i,l);if(Vn(a))return qn(a,l)}else{if(Vn(a))return qn(a,l);if(i)return qn(i,l)}return Vn(e.url)?qn(e.url,l):""}catch{if("string"==typeof r){if(r.startsWith("blob:"))return"";if(r.startsWith("/files/"))return qn(r,l);if(r.startsWith("http")||r.startsWith("/"))return r}}return"string"==typeof e&&(e.startsWith("{")||e.startsWith("["))?"":e}function Kn(e,t={}){const{isProd:n=!1}=t;if(!e)return{original:null,images:[],url:""};try{const t=JSON.parse(Wn(e)),l=t.original?{...t.original,url:qn(t.original.url,n)}:null,r=(t.images||[]).map(e=>({...e,url:qn(e.url,n)}));return{original:l,images:r,url:r[0]?.url||l?.url||qn(t.url,n)||""}}catch{return{original:null,images:[],url:qn(e,n)}}}function Gn(e,t={}){const{isProd:n=!1}=t;if(!e?.fields)return e;const l=e.fields.map(e=>{if("image"===e.type&&"string"==typeof e.example_value){const t=Hn(e.example_value,{isProd:n});return{...e,example_value:t||e.example_value}}return e});return{...e,fields:l}}const Qn=new class{constructor(){this.config=new m,this.instances=new Dn,this.autoInputs=new On,this.events=new Rn,this.modals=new Fn,this.theme=new Un,this.containerQueryDetector=N,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},O={...O,...t},O.authMode||(O.token?O.authMode="manual":O.authMode="session"),this.config}setToken(e){return function(e){O.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}]`,l=document.querySelectorAll(n);if(0===l.length)return{found:0,processed:0,skipped:0};let r=0,a=0;return l.forEach(e=>{try{this.autoInputs._processInput(e),r++}catch(t){console.warn(`⚠️ Limbo: Error procesando input ${e.id||e.name}:`,t),a++}}),this.events.emit("limbo:scanCompleted",{found:l.length,processed:r,skipped:a,inputs:Array.from(l)}),{found:l.length,processed:r,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 l=0;return n.forEach(e=>{if(!this.autoInputs.instances.has(this.autoInputs._getInputId(e)))try{this.autoInputs._processInput(e),l++}catch(t){console.warn("⚠️ Limbo: Error procesando nuevo input:",t)}}),l}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=>{console.log("[LimboCore] handleResult recibió:",e),console.log("[LimboCore] data.crops:",e.crops),console.log("[LimboCore] data.asset:",e.asset);let n={};if(e.crops&&e.crops.length>0){console.log("[LimboCore] Procesando crops:",e.crops.length),console.log("[LimboCore] Primer crop:",e.crops[0]);const t=e.asset||e.original;console.log("[LimboCore] originalAsset:",t),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})),console.log("[LimboCore] Resultado con crops:",n)}else e.asset?(console.log("[LimboCore] Caso 2: asset directo"),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);console.log("[LimboCore] Llamando callback con:",n),t(n),console.log("[LimboCore] Cerrando modal..."),r.close()},l={...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);l._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&&(l.cropper=e.cropper),this.config.setGlobal({interaction:{allowSelection:!0,allowCropping:!0,...e.interaction}});const r=this.create(l);r.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()}`},l=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&&l.close()},onCropperCancelled:e=>{t.onCancelled?.(e),!1!==t.autoClose&&l.close()},onCropperError:e=>{t.onError?.(e)}},_externalImage:n,...t});return l.open(),l}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 l={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:l,...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=Qn,window.limboCore=Qn);"undefined"!=typeof window&&document.querySelector("#root")&&(Qn.configure({prod:!1,publicKey:"pk_d2edad56de145fee22c8b80f6ce3448f",authMode:"session"}),Qn.create({container:"#root",mode:"embed",modeUI:"full",features:["gallery","upload","cropper"],title:"Limbo Image Manager - Development",url:!0}),Qn.configureAutoInputs({dataset:"data-limbo-input-file",return:"json",features:["gallery","upload","cropper"],modeUI:"full",modalSize:"large",title:"Seleccionar archivo",crops:"free",allowDelete:!1}));export{Bn as LIMBO_BASE_URL,Wn as decodeHtmlEntities,Qn as default,Hn as extractImageUrl,Vn as isValidImageUrl,Kn as parseImageData,Gn as prepareImageFieldsForPreview,qn as resolveUrl};
|
|
608
|
+
/* @__PURE__ */s(On,{}),
|
|
609
|
+
/* @__PURE__ */s(Tn,{isOpen:D,onClose:O})]})}(()=>{try{const e=sessionStorage.getItem(Pn);if(e){const t=JSON.parse(e),n=Date.now();Object.entries(t).forEach(([e,t])=>{t.timestamp&&n-t.timestamp<Mn&&An.set(e,t)})}}catch{}})();class Fn{constructor(e,t,n,l){this.id=e,this.config=t,this.eventManager=n,this.modalManager=l,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=S.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=S.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:pb-0 lb:bg-white","data-limbo-id":this.id,"data-limbo-mode":this.config.mode,"data-limbo-version":"3.2.0","data-limbo-isolated":"true","aria-label":"Limbo Image Manager",role:"region"},e.createElement(Rn,{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,allowedCategories:this.config.validation?.allowedCategories||null,folderConfig:this.config.folders||{include:[],exclude:[],includeNoFolder:!0}}))}_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)},onCropsSaved:e=>{console.log("[LimboInstance] onCropsSaved recibido:",e),console.log("[LimboInstance] this.config?.callbacks:",this.config?.callbacks);const t=this.config?.callbacks?.onCropsSaved;console.log("[LimboInstance] userCallback existe:",!!t);const n={instance:this,eventType:"cropsSaved",timestamp:Date.now(),instanceId:this.id,...e};if(console.log("[LimboInstance] payload.crops:",n.crops),t){console.log("[LimboInstance] Llamando userCallback onCropsSaved");try{t(n),console.log("[LimboInstance] userCallback ejecutado correctamente")}catch(l){console.error("[LimboInstance] Error en userCallback:",l)}}else console.warn("[LimboInstance] ⚠️ userCallback onCropsSaved NO existe");this.destroyed||this._emitDOMEvent("cropsSaved",n)},onCropperComplete:e=>{console.log("[LimboInstance] onCropperComplete recibido:",e);const t=this.config?.callbacks?.onCropperComplete,n={instance:this,eventType:"cropperComplete",timestamp:Date.now(),instanceId:this.id,...e};t&&(console.log("[LimboInstance] Llamando userCallback onCropperComplete"),t(n)),this.destroyed||this._emitDOMEvent("cropperComplete",n)}}}_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||this.config.tokenProvider||this.config.auth?.tokenProvider))throw new Error(`LimboInstance ${this.id}: Authentication is required. Provide either auth.publicKey (recommended), auth.apiKey (for server-side only), token, or tokenProvider`);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 jn{constructor(){this.instances=/* @__PURE__ */new Map,this.counter=0}create(e,t,n){const l="limbo-"+ ++this.counter,r=new Fn(l,e,t,n);return this.instances.set(l,r),r}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 Un{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 archivo",buttonClass:e.buttonClass||"limbo-auto-button",buttonStyle:e.buttonStyle||"primary",showPreview:!1!==e.showPreview,allowMultiple:e.allowMultiple||!1,autoAssign:!1!==e.autoAssign,localCropsOnly:e.localCropsOnly||!1,...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 l=[this.config.buttonClass];return n.buttonClass&&n.buttonClass!==this.config.buttonClass&&l.push(n.buttonClass),t.className=l.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,l=t.theme||this.config.theme,r=t.compact||this.config.compact,a={border:"none",borderRadius:"8px",cursor:"pointer",fontFamily:"inherit",fontSize:r?"12px":"14px",fontWeight:"500",transition:"all 0.2s ease",display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"8px",padding:r?"6px 12px":"8px 16px",textDecoration:"none",userSelect:"none"},i={primary:{backgroundColor:"dark"===l?"#3b82f6":"#001978",color:"white",hoverBg:"dark"===l?"#2563eb":"#334793"},secondary:{backgroundColor:"dark"===l?"#374151":"#f3f4f6",color:"dark"===l?"#f9fafb":"#374151",border:"1px solid "+("dark"===l?"#4b5563":"#d1d5db"),hoverBg:"dark"===l?"#4b5563":"#e5e7eb"},outline:{backgroundColor:"transparent",color:"dark"===l?"#3b82f6":"#001978",border:"2px solid "+("dark"===l?"#3b82f6":"#001978"),hoverBg:"dark"===l?"#3b82f6":"#001978",hoverColor:"white"},ghost:{backgroundColor:"transparent",color:"dark"===l?"#f9fafb":"#374151",hoverBg:"dark"===l?"#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);console.log("[AutoInputManager] ====== INICIO _handleImageSelection ======"),console.log("[AutoInputManager] Recibiendo imageData:",t),console.log("[AutoInputManager] imageData.original:",t?.original),console.log("[AutoInputManager] imageData.images:",t?.images),console.log("[AutoInputManager] Configuración del input:",n);try{let r=t;if(!t.original&&!t.images&&(t.id||t.assetId)){console.log("[AutoInputManager] 🔗 Selección directa detectada, obteniendo URL permanente...");const e=t.id||t.assetId;try{const n=await async function(e,t=!0,n=!0,l=0){try{const r=new URLSearchParams({include_variants:t.toString(),include_metadata:n.toString(),url_expires:l.toString()});return W(await j({endpoint:`/assets/${e}?${r}`,method:"GET",basePath:G,useJWT:!0}))}catch(r){throw K(r)}}(e,!1,!1,!0);n?.result?.url?(console.log("[AutoInputManager] ✅ URL permanente obtenida:",n.result.url),r={original:{url:n.result.url,width:n.result.width||t.width,height:n.result.height||t.height,assetId:e},images:[]}):(console.warn("[AutoInputManager] ⚠️ No se pudo obtener URL permanente, usando URL temporal"),r={original:{url:t.url||t.path,width:t.width,height:t.height,assetId:e},images:[]})}catch(l){console.error("[AutoInputManager] Error obteniendo URL permanente:",l),r={original:{url:t.url||t.path,width:t.width,height:t.height,assetId:e},images:[]}}}const a=await this._formatImageData(r,n);console.log("[AutoInputManager] Valor formateado:",a),console.log("[AutoInputManager] Tipo de valor:",typeof a),!1!==n.autoAssign&&(e.value=a,console.log("[AutoInputManager] Valor asignado al input:",e.value)),this._updateButtonFeedback(e,r),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:resultReady",{detail:{imageData:r,input:e,value:a,config:n,assignment:{format:n.return,smartAssign:!1!==n.smartAssign,autoAssign:!1!==n.autoAssign},legacy:{imageData:r,formatted:this._createFormattedResult(r,n)}},bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:r,input:e,value:a,config:n,formatted:this._createFormattedResult(r,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:r,value:a,config:n})}catch(r){console.error("Error handling image selection:",r),e.dispatchEvent(new CustomEvent("limbo:error",{detail:{error:r.message,input:e,imageData:processedImageData,config:n},bubbles:!0})),this._handleImageSelectionLegacy(e,t)}}_updateButtonFeedback(e,t){const n=this._getInputId(e),l=this.instances.get(n);if(!l||!l.button)return;const r=l.button,a=r.nextElementSibling;a&&a.classList.contains("limbo-button-feedback")&&a.remove();const i=document.createElement("span");i.className="limbo-button-feedback",i.style.cssText="\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-left: 8px;\n padding: 4px 8px;\n background: #10b981;\n color: white;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n animation: limbo-fade-in 0.3s ease-out;\n ";const o=t.images&&t.images.length>0,s=o?t.images.length:0;i.innerHTML=o?`\n <svg width="14" height="14" viewBox="0 0 20 20" fill="currentColor">\n <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/>\n </svg>\n <span>${s} recorte${1!==s?"s":""} configurado${1!==s?"s":""}</span>\n `:'\n <svg width="14" height="14" viewBox="0 0 20 20" fill="currentColor">\n <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/>\n </svg>\n <span>Archivo seleccionado</span>\n ',r.parentNode.insertBefore(i,r.nextSibling);let c=r.parentNode.querySelector(".limbo-powered-by");c||(c=document.createElement("div"),c.className="limbo-powered-by",c.innerHTML='<span style="display:block;margin-top:2px;font-size:10px;color:#aaa;text-align:left;font-family:inherit;opacity:0.7;">Powered by <b>Limbo</b></span>',r.parentNode.insertBefore(c,i.nextSibling)),r.style.backgroundColor="#10b981",r.textContent="Cambiar archivo"}_handleImageSelectionLegacy(e,t){const n=this._getInputConfig(e),l=this._formatImageData(t,n);!1!==n.autoAssign&&(e.value=l),e.dispatchEvent(new Event("change",{bubbles:!0})),e.dispatchEvent(new CustomEvent("limbo:imageSelected",{detail:{imageData:t,input:e,value:l,config:n,formatted:this._createFormattedResult(t,n)},bubbles:!0})),this.eventManager.emit("autoInputs:imageSelected",{input:e,imageData:t,value:l,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",l=void 0!==e.original;switch(n){case"url":return l?e.images?.[0]?.url||e.original?.url||"":e.url||e.path||"";case"base64":return e.base64||e.dataUrl||"";case"assetId":return l?e.original?.assetId||"":e.assetId||e.id||"";case"fileName":return e.fileName||e.filename||"";default:try{if(l){const t={original:e.original?{url:e.original.url||e.original.urlSigned,width:e.original.width,height:e.original.height,assetId:e.original.assetId||e.original.id}:null,images:Array.isArray(e.images)?e.images.map(e=>{const t={url:e.url||e.urlSigned,width:e.width,height:e.height,name:e.name||e.filename||e.label};return e.cropState&&(t.cropState={selectorState:e.cropState.selectorState||null,imageTransform:e.cropState.imageTransform||null,flipState:e.cropState.flipState||null}),t}):[]};console.log("[AutoInputManager] Datos limpios para JSON:",t);const n=JSON.stringify(t);return console.log("[AutoInputManager] JSON generado:",n),n}const t={original:{url:e.url||e.path,width:e.width,height:e.height,assetId:e.assetId||e.id}};return console.log("[AutoInputManager] Datos legacy para JSON:",t),JSON.stringify(t)}catch(r){return console.error("[AutoInputManager] Error al serializar JSON:",r),console.error("[AutoInputManager] imageData problemático:",e),"{}"}}}_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 archivo",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,existingCrops:e.existingCrops||null,existingData:e.existingData||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,localCropsOnly:e.localCropsOnly??this.config.localCropsOnly??!1,existingCrops:e.existingCrops||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 l={"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(l[t])return{...n,aspectRatio:l[t],minCropBoxWidth:e.minWidth||this.config.minWidth,minCropBoxHeight:e.minHeight||this.config.minHeight};if("string"==typeof t&&t.includes(":")){const[e,l]=t.split(":").map(Number);if(!isNaN(e)&&!isNaN(l)&&0!==l)return{...n,aspectRatio:e/l}}const r=parseFloat(t);return!isNaN(r)&&r>0?{...n,aspectRatio:r}:"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 l=[];switch(t){case"gallery-only":case"upload-only":l=["select"];break;case"crop-only":l=["select","crop"];break;default:l=["select"],n.includes("cropper")&&l.push("crop"),n.includes("gallery")&&(l.push("download","copy"),this.config.allowDelete&&l.push("delete"))}return l}_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}},l=(e,t=!1)=>null===e?t:"true"===e||"1"===e||""===e,r=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:r(e.dataset.quality)||r(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:l(e.dataset.compact,null)??l(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:r(e.getAttribute("data-limbo-min-width"))||this.config.minWidth,minHeight:r(e.getAttribute("data-limbo-min-height"))||this.config.minHeight,maxWidth:r(e.getAttribute("data-limbo-max-width"))||this.config.maxWidth,maxHeight:r(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:l(e.getAttribute("data-limbo-show-preview"),this.config.showPreview),allowMultiple:l(e.getAttribute("data-limbo-allow-multiple"),this.config.allowMultiple),autoAssign:l(e.getAttribute("data-limbo-auto-assign"),this.config.autoAssign),placeholder:e.getAttribute("data-limbo-placeholder"),description:e.getAttribute("data-limbo-description"),required:l(e.getAttribute("data-limbo-required"),!1),disabled:l(e.getAttribute("data-limbo-disabled"),!1),inputId:e.id||e.name||this._generateInputId(e),inputName:e.name,inputType:e.type,mandatoryCrops:i,allowAdditionalCrops:l(e.dataset.allowadditionalcrops,null)??l(e.getAttribute("data-limbo-allow-additional-crops"),!0),maxCrops:r(e.dataset.maxcrops)||r(e.getAttribute("data-limbo-max-crops"))||null,allowSelectNew:l(e.dataset.allowselectnew,null)??l(e.getAttribute("data-limbo-allow-select-new"),!0),...this._parseExistingInputValue(e.value)}}_parseExistingInputValue(e){if(!e||""===e.trim())return{initialImageUrl:null,existingCrops:null,existingData:null};try{const t=JSON.parse(e);return t.original&&t.original.url?(console.log("[AutoInputManager] Valor existente parseado:",t),{initialImageUrl:t.original.url,existingCrops:t.images||null,existingData:t}):t.url?{initialImageUrl:t.url,existingCrops:null,existingData:t}:{initialImageUrl:null,existingCrops:null,existingData:t}}catch(t){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?{initialImageUrl:e,existingCrops:null,existingData:null}:{initialImageUrl:null,existingCrops:null,existingData: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 Bn{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(l){console.error(`Error executing listener for ${e}:`,l)}})}getStats(){const e={};return this.listeners.forEach((t,n)=>{e[n]=t.length}),e}}class qn{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 Wn(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),window.limboCore?.events&&window.limboCore.events.emit("modal:closed",{modalId:e.getId(),remainingModals:this.activeModals.size})}_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 l=n[0],r=n[n.length-1];e.shiftKey?document.activeElement===l&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),l.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 Wn{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,l=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=l,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 Vn{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 l=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,l),!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 l=n.getAttribute("data-theme")||n.getAttribute("class")?.match(/theme-(\w+)/)||n.getAttribute("class")?.match(/(\w+)-theme/);l&&(e.detectedName=Array.isArray(l)?l[1]:l)}}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 l=`--limbo-${e}`,r=n.getPropertyValue(l).trim();r&&(t[l]=r)});return["--primary-color","--background-color","--text-color","--border-color","--accent-color","--surface-color"].forEach(e=>{const l=n.getPropertyValue(e).trim();if(l){const n=this._mapGenericToLimbo(e,l);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 l=document.querySelector('meta[name="theme-color"]');l||(l=document.createElement("meta"),l.name="theme-color",document.head.appendChild(l)),l.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(l){console.error("Error in theme change callback:",l)}})}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 l=this._getTheme(this.config.inheritance.fallbackTheme);return l&&(n.variables={...l.variables,...n.variables}),this.registerTheme(e,n),n}_darkenColor(e,t){const n=parseInt(e.replace("#",""),16),l=Math.round(2.55*t),r=(n>>16)-l,a=(n>>8&255)-l,i=(255&n)-l;return"#"+(16777216+65536*(r<255?r<1?0:r: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),l=Math.round(2.55*t),r=(n>>16)+l,a=(n>>8&255)+l,i=(255&n)+l;return"#"+(16777216+65536*(r<255?r<1?0:r: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(l=>{t[l]&&"object"==typeof t[l]&&!Array.isArray(t[l])?n[l]=this._deepMerge(e[l]||{},t[l]):n[l]=t[l]}),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 Hn={DEV:"https://led-dev-limbo-dev.eu.els.local",PROD:"https://limbo.lefebvre.es"};function Kn(e,t=!1){if(!e)return"";if(e.startsWith("/files/")){return(t?Hn.PROD:Hn.DEV)+e}return e}function Gn(e){return"string"!=typeof e?e:e.replace(/"/g,'"').replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/'/g,"'").replace(/'/g,"'")}function Qn(e){return!(!e||"string"!=typeof e)&&!e.startsWith("blob:")}function Xn(e,t={}){if(!e)return"";const{prefer:n="crop",isProd:l=!1}=t,r=Gn(e);try{const e=JSON.parse(r),t=()=>{if(e.images&&Array.isArray(e.images))for(const t of e.images)if(t&&Qn(t.url))return t.url;return null},a=e.original?.url,i=t();if("crop"===n){if(i)return Kn(i,l);if(Qn(a))return Kn(a,l)}else{if(Qn(a))return Kn(a,l);if(i)return Kn(i,l)}return Qn(e.url)?Kn(e.url,l):""}catch{if("string"==typeof r){if(r.startsWith("blob:"))return"";if(r.startsWith("/files/"))return Kn(r,l);if(r.startsWith("http")||r.startsWith("/"))return r}}return"string"==typeof e&&(e.startsWith("{")||e.startsWith("["))?"":e}function Yn(e,t={}){const{isProd:n=!1}=t;if(!e)return{original:null,images:[],url:""};try{const t=JSON.parse(Gn(e)),l=t.original?{...t.original,url:Kn(t.original.url,n)}:null,r=(t.images||[]).map(e=>({...e,url:Kn(e.url,n)}));return{original:l,images:r,url:r[0]?.url||l?.url||Kn(t.url,n)||""}}catch{return{original:null,images:[],url:Kn(e,n)}}}function Jn(e,t={}){const{isProd:n=!1}=t;if(!e?.fields)return e;const l=e.fields.map(e=>{if("image"===e.type&&"string"==typeof e.example_value){const t=Xn(e.example_value,{isProd:n});return{...e,example_value:t||e.example_value}}return e});return{...e,fields:l}}const Zn=new class{constructor(){this.config=new m,this.instances=new jn,this.autoInputs=new Un,this.events=new Bn,this.modals=new qn,this.theme=new Vn,this.containerQueryDetector=N,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},O={...O,...t},O.authMode||(O.token?O.authMode="manual":O.authMode="session"),this.config}setToken(e){return function(e){O.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}]`,l=document.querySelectorAll(n);if(0===l.length)return{found:0,processed:0,skipped:0};let r=0,a=0;return l.forEach(e=>{try{this.autoInputs._processInput(e),r++}catch(t){console.warn(`⚠️ Limbo: Error procesando input ${e.id||e.name}:`,t),a++}}),this.events.emit("limbo:scanCompleted",{found:l.length,processed:r,skipped:a,inputs:Array.from(l)}),{found:l.length,processed:r,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 l=0;return n.forEach(e=>{if(!this.autoInputs.instances.has(this.autoInputs._getInputId(e)))try{this.autoInputs._processInput(e),l++}catch(t){console.warn("⚠️ Limbo: Error procesando nuevo input:",t)}}),l}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=>{console.log("[LimboCore] handleResult recibió:",e),console.log("[LimboCore] data.crops:",e.crops),console.log("[LimboCore] data.asset:",e.asset);let n={};if(e.crops&&e.crops.length>0){console.log("[LimboCore] Procesando crops:",e.crops.length),console.log("[LimboCore] Primer crop:",e.crops[0]);const t=e.asset||e.original;console.log("[LimboCore] originalAsset:",t),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})),console.log("[LimboCore] Resultado con crops:",n)}else e.asset?(console.log("[LimboCore] Caso 2: asset directo"),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);console.log("[LimboCore] Llamando callback con:",n),t(n),console.log("[LimboCore] Cerrando modal..."),r.close()},l={...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);l._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&&(l.cropper=e.cropper),this.config.setGlobal({interaction:{allowSelection:!0,allowCropping:!0,...e.interaction}});const r=this.create(l);r.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()}`},l=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&&l.close()},onCropperCancelled:e=>{t.onCancelled?.(e),!1!==t.autoClose&&l.close()},onCropperError:e=>{t.onError?.(e)}},_externalImage:n,...t});return l.open(),l}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 l={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:l,...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=Zn,window.limboCore=Zn);"undefined"!=typeof window&&document.querySelector("#root")&&(Zn.configure({prod:!1,publicKey:"pk_e464fd744106b7a8d63d453c4bd02582",authMode:"session"}),Zn.create({container:"#root",mode:"embed",modeUI:"full",features:["gallery","upload","cropper"],title:"Limbo Image Manager - Development",url:!0}),Zn.configureAutoInputs({dataset:"data-limbo-input-file",return:"json",features:["gallery","upload","cropper"],modeUI:"full",modalSize:"large",title:"Seleccionar archivo",crops:"free",allowDelete:!1}));export{Hn as LIMBO_BASE_URL,Gn as decodeHtmlEntities,Zn as default,Xn as extractImageUrl,Qn as isValidImageUrl,Yn as parseImageData,Jn as prepareImageFieldsForPreview,Kn as resolveUrl};
|
|
605
610
|
//# sourceMappingURL=limbo.es.map
|