limbo-component 3.5.1 → 3.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +276 -93
- package/README.md +730 -137
- package/dist/limbo.cjs.js +1 -1
- package/dist/limbo.cjs.map +1 -1
- package/dist/limbo.es.js +144 -145
- 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 +2 -1
- package/dist/types/App.d.ts.map +1 -1
- package/dist/types/components/Gallery.d.ts +2 -1
- package/dist/types/components/Gallery.d.ts.map +1 -1
- package/dist/types/components/TabUpload.d.ts +2 -1
- package/dist/types/components/TabUpload.d.ts.map +1 -1
- package/dist/types/components/UploadForm.d.ts +2 -1
- package/dist/types/components/UploadForm.d.ts.map +1 -1
- package/dist/types/core/AutoInputManager.d.ts +1 -0
- package/dist/types/core/AutoInputManager.d.ts.map +1 -1
- package/dist/types/core/ConfigManager.d.ts +7 -0
- package/dist/types/core/ConfigManager.d.ts.map +1 -1
- package/dist/types/core/LimboCore.d.ts.map +1 -1
- package/dist/types/utils/acceptUtils.d.ts +69 -0
- package/dist/types/utils/acceptUtils.d.ts.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,175 +5,358 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.5.2] - 2026-02-17
|
|
9
|
+
|
|
10
|
+
Updated README.md & CHANGELOG.md
|
|
11
|
+
|
|
12
|
+
## [3.5.1] - 2026-02-17
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Filtro `accept`** — Nuevo parámetro para controlar tipos de archivo permitidos por instancia
|
|
17
|
+
- Sintaxis HTML `<input accept>`: `"image/*"`, `".pdf"`, `"image/*,.pdf"`, etc.
|
|
18
|
+
- Adaptación automática de UI: oculta tabs de IA/Stock/Portales y Cropper cuando las imágenes están excluidas
|
|
19
|
+
- Soporte en todos los métodos de integración: `Limbo.create()`, prefabs, AutoInputs (`data-accept`), API
|
|
20
|
+
- Nueva utilidad `acceptUtils.js` con `resolveAccept()`, `isMimeAllowed()`, `getAcceptLabel()`
|
|
21
|
+
- Backend: nuevo query param `accept` en `GET /api/assets` para filtrado por MIME type
|
|
22
|
+
- `FileValidationService`: nuevos métodos `getMimeTypesForExtension()` y `resolveAcceptFilter()`
|
|
23
|
+
- Filtro de tipo en galería se adapta automáticamente a los tipos permitidos por `accept`
|
|
24
|
+
- Compatible con `allowedCategories` (legacy) — se convierte internamente a formato `accept`
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **Cache de galería** — `invalidateCache()` ahora limpia todas las entradas de cache + sessionStorage
|
|
29
|
+
- Corregido: mover asset de carpeta no actualizaba la galería por cache stale
|
|
30
|
+
- Corregido: crear variantes no invalidaba cache (llamada estaba comentada)
|
|
31
|
+
- `refetch()` también limpia toda la cache antes de recargar
|
|
32
|
+
|
|
33
|
+
## [3.5.0] - 2026-02-16
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **GIF inteligente** — Tratamiento especial para archivos GIF animados
|
|
38
|
+
- Backend: GIFs se almacenan sin conversión a WebP (preserva animación original)
|
|
39
|
+
- Nuevo `asset_subtype: "gif"` y `hasMasterWebp: false` para GIFs
|
|
40
|
+
- Galería: hover-to-animate — thumbnail estático por defecto, animación al pasar el ratón
|
|
41
|
+
- Visualizador: reproduce animación completa en ImageViewer
|
|
42
|
+
- Cropper deshabilitado automáticamente para GIFs
|
|
43
|
+
- Botón de recorte oculto en tarjetas de GIF
|
|
44
|
+
|
|
45
|
+
## [3.4.0] - 2026-02-15
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
|
|
49
|
+
- **TextViewer** — Visualizador inline para archivos de texto (TXT, CSV)
|
|
50
|
+
- Renderizado del contenido con scroll
|
|
51
|
+
- Botón de descarga
|
|
52
|
+
- Integrado en ViewerShell
|
|
53
|
+
- **Mejoras en AudioViewer** — Barra de progreso visual mejorada
|
|
54
|
+
- Timeline clickable para saltar a posición
|
|
55
|
+
- Indicador de tiempo transcurrido / duración total
|
|
56
|
+
- Animación de forma de onda
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- Botón de descarga corregido en todos los visualizadores (VideoViewer, AudioViewer, PdfViewer)
|
|
61
|
+
- DocumentViewer muestra tamaño de archivo formateado correctamente
|
|
62
|
+
|
|
63
|
+
## [3.3.0] - 2026-02-13
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- **Thumbnails multi-tipo** — Generación automática de miniaturas para todos los tipos de archivo
|
|
68
|
+
- Imágenes: thumbnail desde master WebP o GD resize
|
|
69
|
+
- Vídeos: frame extraído con FFmpeg
|
|
70
|
+
- Audio: forma de onda generada con FFmpeg
|
|
71
|
+
- PDFs: primera página renderizada con Ghostscript (fondo blanco)
|
|
72
|
+
- Documentos Office: conversión con LibreOffice + captura
|
|
73
|
+
- Texto: preview tipográfico generado con GD
|
|
74
|
+
- Formato WebP para todas las miniaturas
|
|
75
|
+
- Procesamiento asíncrono via `GenerateThumbnailMessage`
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
|
|
79
|
+
- `ImageProcessingService`: pipeline de procesamiento ampliado para soportar todos los tipos de archivo
|
|
80
|
+
- Thumbnail fallback a icono genérico si la generación falla
|
|
81
|
+
|
|
82
|
+
## [3.2.0] - 2026-02-11
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
|
|
86
|
+
- **DocumentViewer** — Visualizador para archivos Office y genéricos
|
|
87
|
+
- Muestra información del archivo: nombre, tipo, tamaño
|
|
88
|
+
- Icono específico por tipo (Word, Excel, PowerPoint, texto)
|
|
89
|
+
- Botón de descarga directa
|
|
90
|
+
- **PdfViewer** — Visualizador de PDFs en iframe
|
|
91
|
+
- Carga PDF como blob para bypass de X-Frame-Options
|
|
92
|
+
- Controles nativos del navegador (zoom, páginas, búsqueda)
|
|
93
|
+
- Botón de descarga
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
|
|
97
|
+
- ImageCard detecta tipo de archivo y enruta al visualizador correcto
|
|
98
|
+
- Iconos específicos por tipo en tarjetas de galería (PDF rojo, Word azul, Excel verde, etc.)
|
|
99
|
+
|
|
100
|
+
## [3.1.0] - 2026-02-09
|
|
101
|
+
|
|
102
|
+
### Added
|
|
103
|
+
|
|
104
|
+
- **VideoViewer** — Reproductor de vídeo a pantalla completa
|
|
105
|
+
- Reproductor HTML5 nativo con controles
|
|
106
|
+
- Play/pause con barra espaciadora
|
|
107
|
+
- Descarga directa
|
|
108
|
+
- **AudioViewer** — Reproductor de audio a pantalla completa
|
|
109
|
+
- Elemento audio HTML5 con controles
|
|
110
|
+
- Play/pause con barra espaciadora
|
|
111
|
+
- **ViewerShell** — Componente base compartido para todos los visualizadores
|
|
112
|
+
- Overlay oscuro (z-10000)
|
|
113
|
+
- Cierre con ESC y clic en backdrop
|
|
114
|
+
- Bloqueo de scroll del body
|
|
115
|
+
- Cabecera con título/subtítulo y acciones
|
|
116
|
+
- Footer con atajos de teclado
|
|
117
|
+
|
|
118
|
+
### Changed
|
|
119
|
+
|
|
120
|
+
- ImageViewer refactorizado para usar ViewerShell (mantiene zoom/pan/drag)
|
|
121
|
+
- Barrel export en `components/viewers/index.js`
|
|
122
|
+
|
|
123
|
+
## [3.0.0] - 2026-02-05
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
|
|
127
|
+
- **Soporte multi-tipo de archivo** — El componente ya no es solo para imágenes
|
|
128
|
+
- Categorías: `image`, `video`, `audio`, `document`
|
|
129
|
+
- Detección automática de tipo por MIME type
|
|
130
|
+
- Subida, galería y gestión de cualquier tipo de archivo
|
|
131
|
+
- API backend ampliada con campos `assetType`, `assetSubtype`, `originalMime`
|
|
132
|
+
- **Sistema de carpetas completo**
|
|
133
|
+
- `FolderSelector` — Dropdown unificado para selección de carpetas
|
|
134
|
+
- Filtro por carpeta en galería
|
|
135
|
+
- Badge de carpeta en tarjetas de la galería
|
|
136
|
+
- Mover archivos entre carpetas desde la galería
|
|
137
|
+
- Crear carpetas nuevas al subir o mover
|
|
138
|
+
- Configuración: `include`/`exclude` para whitelist/blacklist de carpetas
|
|
139
|
+
- API: `GET /api/folders`, `POST /api/folders`, `PATCH /api/assets/{id}` (move)
|
|
140
|
+
- **AssetPreview** — Componente de preview unificado para todos los tipos de archivo
|
|
141
|
+
- Preview visual para imágenes/vídeos
|
|
142
|
+
- Info card para documentos/audio
|
|
143
|
+
- Edición de nombre de archivo
|
|
144
|
+
- Selector de carpeta en preview de subida
|
|
145
|
+
- Botones: descartar, descargar, seleccionar
|
|
146
|
+
- **Filtro por tipo de archivo** en galería
|
|
147
|
+
- Dropdown "Tipo" con opciones: Todos, Imágenes, Vídeos, Documentos, Audio
|
|
148
|
+
- Configurable via `gallery.filters.showTypeFilter`
|
|
149
|
+
- **Acciones por tipo** en tarjetas de galería
|
|
150
|
+
- Recortar solo disponible para imágenes
|
|
151
|
+
- Descarga disponible para todos los tipos
|
|
152
|
+
- Variantes solo para imágenes
|
|
153
|
+
|
|
154
|
+
### Changed
|
|
155
|
+
|
|
156
|
+
- `ImageCard` renombrado internamente pero mantiene nombre por compatibilidad — ahora soporta todos los tipos
|
|
157
|
+
- `TabUpload` acepta cualquier tipo de archivo (no solo imágenes)
|
|
158
|
+
- API `GET /api/assets` soporta filtro `asset_type`
|
|
159
|
+
- `FileValidationService` ampliado con validación por categoría y MIME types multi-tipo
|
|
160
|
+
|
|
161
|
+
### Breaking Changes
|
|
162
|
+
|
|
163
|
+
- El objeto de asset ahora incluye `assetType` y `assetSubtype` (antes se asumía siempre imagen)
|
|
164
|
+
- Las URLs de thumbnail pueden ser `null` para tipos sin thumbnail generado
|
|
165
|
+
|
|
166
|
+
## [2.1.0] - 2026-01-15
|
|
167
|
+
|
|
168
|
+
### Added
|
|
169
|
+
|
|
170
|
+
- **Acciones de galería mejoradas**
|
|
171
|
+
- Botón de copiar URL al portapapeles
|
|
172
|
+
- Modal de variantes con lista de recortes existentes y descarga individual
|
|
173
|
+
- Contador de variantes visible en tarjeta
|
|
174
|
+
|
|
175
|
+
### Fixed
|
|
176
|
+
|
|
177
|
+
- Firma de variantes corregida — usa UUID en vez de filename
|
|
178
|
+
- Coordenadas de recorte normalizadas (0-1) aplicadas correctamente al master
|
|
179
|
+
- Transparencia GD cuando el selector excede los límites de la imagen
|
|
180
|
+
|
|
181
|
+
## [2.0.0] - 2025-11-24
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
|
|
185
|
+
- **Arquitectura de subida diferida** — Las imágenes permanecen en memoria hasta confirmación en cropper
|
|
186
|
+
- No se suben al backend hasta que el usuario guarda los recortes o confirma
|
|
187
|
+
- Cancelar descarta sin tocar el servidor
|
|
188
|
+
- Detección: `image.file` indica imagen nueva sin subir
|
|
189
|
+
- **ImagePreview unificado** — Componente de preview consistente en todas las tabs
|
|
190
|
+
- Edición de nombre de archivo con manejo de extensiones
|
|
191
|
+
- Lightbox para vista ampliada (clic para zoom, ESC para cerrar)
|
|
192
|
+
- Botones contextuales: Descartar, Descargar, Seleccionar, Reintentar (solo IA)
|
|
193
|
+
- Integrado en TabUpload, TabAI, TabStock, TabPortals
|
|
194
|
+
- **Breadcrumbs inteligentes** — Navegación jerárquica de 3 niveles
|
|
195
|
+
- Nivel 1: Tab principal (Galería, Subir, Recortar)
|
|
196
|
+
- Nivel 2: Sub-tab (Subir archivo, Generar con IA, Stock, Portales)
|
|
197
|
+
- Nivel 3: Servicio/Modelo (DALL-E 3, Shutterstock, etc.)
|
|
198
|
+
- Eliminación automática de duplicados
|
|
199
|
+
- Clic para navegar hacia atrás
|
|
200
|
+
- **Aislamiento CSS** — Prefijo `lb:` en todas las clases Tailwind para evitar colisiones
|
|
201
|
+
- **Lógica de visibilidad de botones**
|
|
202
|
+
- "Eliminar" solo para imágenes existentes (con `image.id`)
|
|
203
|
+
- "Conservar original" solo para imágenes nuevas (con `image.file`)
|
|
204
|
+
- **Precisión de dimensiones** — Recortes usan `naturalWidth`/`naturalHeight` reales
|
|
205
|
+
- **Métodos prefab** en LimboCore
|
|
206
|
+
- `openGallery()`, `openUploader()`, `openCropper()` — modales
|
|
207
|
+
- `createInlineGallery()`, `createInlineUploader()`, `createStandaloneCropper()`, `createFullSelector()` — embebidos
|
|
208
|
+
- **Arquitectura de managers** — Separación de responsabilidades
|
|
209
|
+
- ConfigManager, InstanceManager, EventManager, ModalManager, AutoInputManager
|
|
210
|
+
- Cada manager con responsabilidad única (SOLID)
|
|
211
|
+
|
|
212
|
+
### Changed
|
|
213
|
+
|
|
214
|
+
- Flujo de subida completamente rediseñado (deferred upload)
|
|
215
|
+
- Token JWT expiración aumentada a 60 minutos (antes 10 min)
|
|
216
|
+
- Auto-refresh de token mejorado
|
|
217
|
+
|
|
218
|
+
### Breaking Changes
|
|
219
|
+
|
|
220
|
+
- Las imágenes ya no se suben inmediatamente al seleccionarlas
|
|
221
|
+
- ImagePreview reemplaza los previews específicos por tab
|
|
222
|
+
- Breadcrumbs reemplazan la navegación de 2 niveles
|
|
223
|
+
- Expiración de JWT cambiada de 600s a 3600s
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
8
227
|
## [1.6.0] - LTS - 2025-10-21
|
|
9
228
|
|
|
10
229
|
### Fixed
|
|
11
|
-
|
|
12
|
-
-
|
|
230
|
+
|
|
231
|
+
- Correcciones en servicios de stock y generación de formularios
|
|
232
|
+
- Versión estable LTS
|
|
13
233
|
|
|
14
234
|
## [1.5.1] - 2025-10-20
|
|
15
235
|
|
|
16
236
|
### Fixed
|
|
17
|
-
|
|
237
|
+
|
|
238
|
+
- Nueva licencia **Proprietary**
|
|
18
239
|
|
|
19
240
|
## [1.5.0] - 2025-10-20
|
|
20
241
|
|
|
21
242
|
### Fixed
|
|
22
|
-
|
|
243
|
+
|
|
244
|
+
- Corrección de proxy de imágenes externas para recuperar URLs
|
|
23
245
|
|
|
24
246
|
## [1.4.0] - 2025-10-19
|
|
25
247
|
|
|
26
248
|
### Added
|
|
27
|
-
|
|
249
|
+
|
|
250
|
+
- Nuevo menú de variantes para imágenes (gestión avanzada de variantes desde la galería)
|
|
28
251
|
|
|
29
252
|
## [1.3.1] - 2025-10-18
|
|
30
253
|
|
|
31
254
|
### Changed
|
|
32
|
-
|
|
255
|
+
|
|
256
|
+
- Token lifetime aumentado a 3600s
|
|
33
257
|
|
|
34
258
|
## [1.3.0] - 2025-10-17
|
|
35
259
|
|
|
36
260
|
### Changed
|
|
37
|
-
|
|
261
|
+
|
|
262
|
+
- Varias correcciones y mejoras de paginación
|
|
38
263
|
|
|
39
264
|
## [1.2.0] - 2025-10-16
|
|
40
265
|
|
|
41
266
|
### Fixed
|
|
42
|
-
- 🔧 Fix services calls (mejoras en llamadas a servicios internos)
|
|
43
267
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
### Fixed
|
|
47
|
-
- 🔧 Fix new cors for localdev and calls to API (mejoras CORS para desarrollo local y llamadas a la API)
|
|
268
|
+
- Correcciones en llamadas a servicios internos
|
|
48
269
|
|
|
49
270
|
## [1.1.0] - 2025-10-14
|
|
50
271
|
|
|
51
272
|
### Added
|
|
52
273
|
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
- 🏷️ Ejemplos de integración avanzada en README
|
|
274
|
+
- Integración completa con portales externos (proxy seguro, filtrado de duplicados)
|
|
275
|
+
- Persistencia de estado en pestaña "Portales" (sessionStorage)
|
|
276
|
+
- Compatibilidad total con modos "solo selección" y "cropper-only"
|
|
277
|
+
- Mejoras en AutoInputs: configuración granular por dataset, botón personalizable
|
|
278
|
+
- Mejoras de seguridad y CORS en descargas externas
|
|
59
279
|
|
|
60
280
|
### Changed
|
|
61
281
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
282
|
+
- UX mejorada en UploadForm y Tabs (más compacto, accesible, placeholders inteligentes)
|
|
283
|
+
- Accesibilidad mejorada en navegación por teclado y ARIA
|
|
284
|
+
- Refactor de lógica de selección para soportar todos los modos y callbacks
|
|
65
285
|
|
|
66
286
|
### Fixed
|
|
67
287
|
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
---
|
|
288
|
+
- Corrección de duplicados en resultados de portales externos
|
|
289
|
+
- Corrección de pérdida de estado al cambiar de pestaña
|
|
72
290
|
|
|
73
291
|
## [1.0.0] - 2025-10-13
|
|
74
292
|
|
|
75
293
|
### Added
|
|
76
294
|
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
295
|
+
- **Primera versión estable** lista para producción
|
|
296
|
+
- Arquitectura SOLID con sistema de instancias múltiples
|
|
297
|
+
- Autenticación JWT v2 con auto-renovación
|
|
298
|
+
- Build multi-formato: ESM, CJS, UMD
|
|
299
|
+
- Sistema completo de gestión de imágenes:
|
|
82
300
|
- Galería de imágenes del portal
|
|
83
301
|
- Subida de imágenes con preview
|
|
84
302
|
- Recortador avanzado (Cropper.js 2.0)
|
|
85
303
|
- Integración con IA, Stock y servicios externos
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
- 🤖 Sistema AutoInputs:
|
|
97
|
-
- Detección automática de inputs con `data-limbo-input-file`
|
|
98
|
-
- Configuración vía datasets
|
|
99
|
-
- Múltiples formatos de retorno (url, base64, assetId, object, json)
|
|
100
|
-
- 🎨 Sistema de presets:
|
|
101
|
-
- Aspect ratios configurables
|
|
102
|
-
- Tamaños predefinidos
|
|
103
|
-
- Presets obligatorios
|
|
104
|
-
- Bloqueo de recorte manual
|
|
105
|
-
- 🌍 Sistema i18n completo (ES/EN)
|
|
106
|
-
- 🎨 Sistema de theming extensible
|
|
107
|
-
- 📡 Sistema de eventos robusto:
|
|
108
|
-
- Eventos DOM personalizados
|
|
109
|
-
- Callbacks programáticos
|
|
110
|
-
- Event Manager centralizado
|
|
111
|
-
- ♿ Accesibilidad:
|
|
112
|
-
- Focus trap en modales
|
|
113
|
-
- ARIA labels
|
|
114
|
-
- Navegación por teclado
|
|
115
|
-
- Soporte ESC para cerrar modales
|
|
116
|
-
- 📱 Responsive y mobile-friendly
|
|
117
|
-
- 🔍 Container queries para adaptación automática
|
|
118
|
-
- 🎯 APIs completas:
|
|
119
|
-
- `Limbo.configure()` - Configuración global
|
|
120
|
-
- `Limbo.create()` - Crear instancias
|
|
121
|
-
- `Limbo.mount()` / `unmount()` - Gestión de montaje
|
|
122
|
-
- `Limbo.open()` / `close()` - Control de modales
|
|
123
|
-
- `Limbo.configureAutoInputs()` - Configurar inputs automáticos
|
|
304
|
+
- Múltiples modos UI: `embed`, `modal`, `button`
|
|
305
|
+
- Modos funcionales: `full`, `gallery-only`, `upload-only`, `crop-only`, `ia-only`
|
|
306
|
+
- Sistema AutoInputs con detección automática y configuración vía datasets
|
|
307
|
+
- Sistema de presets (aspect ratios, tamaños, obligatorios)
|
|
308
|
+
- Sistema i18n completo (ES/EN)
|
|
309
|
+
- Sistema de theming extensible
|
|
310
|
+
- Sistema de eventos (DOM + callbacks + EventManager)
|
|
311
|
+
- Accesibilidad: focus trap, ARIA, teclado, ESC
|
|
312
|
+
- Responsive y mobile-friendly con container queries
|
|
313
|
+
- APIs: `configure()`, `create()`, `mount()`/`unmount()`, `open()`/`close()`, `configureAutoInputs()`
|
|
124
314
|
|
|
125
315
|
### Changed
|
|
126
316
|
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
- ⚡ Optimización de bundle sizes
|
|
130
|
-
- 🔒 Mejoras de seguridad con JWT
|
|
317
|
+
- Migración completa de API v1 a v2
|
|
318
|
+
- Refactorización SOLID de toda la arquitectura
|
|
131
319
|
|
|
132
320
|
### Security
|
|
133
321
|
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
322
|
+
- Autenticación JWT segura
|
|
323
|
+
- Eliminación de API keys en cliente
|
|
324
|
+
- Validación de CORS por portal
|
|
137
325
|
|
|
138
326
|
## [0.5.0] - 2025-10-10
|
|
139
327
|
|
|
140
328
|
### Added
|
|
141
329
|
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
|
|
146
|
-
### Changed
|
|
147
|
-
|
|
148
|
-
- 🔄 Adaptadores de respuesta v2
|
|
149
|
-
- 🔄 Migración de hooks a APIs v2
|
|
330
|
+
- Versión beta con migración API v2
|
|
331
|
+
- Sistema de build básico
|
|
332
|
+
- Integración inicial de Tailwind 4
|
|
150
333
|
|
|
151
334
|
## [0.4.0] - 2025-10-05
|
|
152
335
|
|
|
153
336
|
### Added
|
|
154
337
|
|
|
155
|
-
-
|
|
156
|
-
-
|
|
338
|
+
- Sistema de managers (Config, Event, Modal, AutoInputs)
|
|
339
|
+
- Soporte para múltiples instancias
|
|
157
340
|
|
|
158
341
|
## [0.3.0] - 2025-09-28
|
|
159
342
|
|
|
160
343
|
### Added
|
|
161
344
|
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
345
|
+
- Componente Gallery básico
|
|
346
|
+
- Sistema de subida de imágenes
|
|
347
|
+
- Integración de Cropper.js
|
|
165
348
|
|
|
166
349
|
## [0.2.0] - 2025-09-20
|
|
167
350
|
|
|
168
351
|
### Added
|
|
169
352
|
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
353
|
+
- Configuración inicial React 19
|
|
354
|
+
- Setup Vite 7
|
|
355
|
+
- Configuración Tailwind 4
|
|
173
356
|
|
|
174
357
|
## [0.1.0] - 2025-09-15
|
|
175
358
|
|
|
176
359
|
### Added
|
|
177
360
|
|
|
178
|
-
-
|
|
179
|
-
-
|
|
361
|
+
- Proyecto inicial
|
|
362
|
+
- Estructura base del componente
|