limbo-component 1.0.2 → 1.5.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +45 -10
  2. package/LICENSE +13 -32
  3. package/README.md +63 -33
  4. package/dist/limbo.cjs.js +5 -5
  5. package/dist/limbo.cjs.map +1 -1
  6. package/dist/limbo.css +1 -1
  7. package/dist/limbo.es.js +2501 -788
  8. package/dist/limbo.es.map +1 -1
  9. package/dist/limbo.min.js +6 -6
  10. package/dist/limbo.min.js.map +1 -1
  11. package/dist/limbo.umd.js +8 -8
  12. package/dist/limbo.umd.js.map +1 -1
  13. package/dist/types/App.d.ts +2 -1
  14. package/dist/types/App.d.ts.map +1 -1
  15. package/dist/types/components/CropperView.d.ts +2 -3
  16. package/dist/types/components/CropperView.d.ts.map +1 -1
  17. package/dist/types/components/Gallery.d.ts +1 -0
  18. package/dist/types/components/Gallery.d.ts.map +1 -1
  19. package/dist/types/components/ImageCard.d.ts +1 -0
  20. package/dist/types/components/ImageCard.d.ts.map +1 -1
  21. package/dist/types/components/ImageVariantsModal.d.ts +17 -0
  22. package/dist/types/components/ImageVariantsModal.d.ts.map +1 -0
  23. package/dist/types/components/Pagination.d.ts +7 -0
  24. package/dist/types/components/Pagination.d.ts.map +1 -0
  25. package/dist/types/components/TabAI.d.ts +2 -2
  26. package/dist/types/components/TabAI.d.ts.map +1 -1
  27. package/dist/types/components/TabPortals.d.ts +2 -2
  28. package/dist/types/components/TabPortals.d.ts.map +1 -1
  29. package/dist/types/components/TabStock.d.ts +1 -2
  30. package/dist/types/components/TabStock.d.ts.map +1 -1
  31. package/dist/types/components/TokenExpiredModal.d.ts +9 -0
  32. package/dist/types/components/TokenExpiredModal.d.ts.map +1 -0
  33. package/dist/types/components/UploadForm.d.ts.map +1 -1
  34. package/dist/types/core/LimboCore.d.ts +4 -0
  35. package/dist/types/core/LimboCore.d.ts.map +1 -1
  36. package/dist/types/hooks/useAiServices.d.ts +1 -1
  37. package/dist/types/hooks/useAiServices.d.ts.map +1 -1
  38. package/dist/types/hooks/useCreateVariant.d.ts +13 -0
  39. package/dist/types/hooks/useCreateVariant.d.ts.map +1 -0
  40. package/dist/types/hooks/useExternalImages.d.ts +9 -1
  41. package/dist/types/hooks/useExternalImages.d.ts.map +1 -1
  42. package/dist/types/hooks/useImageParams.d.ts +1 -1
  43. package/dist/types/hooks/useImageParams.d.ts.map +1 -1
  44. package/dist/types/hooks/useImageVariants.d.ts +20 -0
  45. package/dist/types/hooks/useImageVariants.d.ts.map +1 -0
  46. package/dist/types/hooks/useImages.d.ts +1 -0
  47. package/dist/types/hooks/useImages.d.ts.map +1 -1
  48. package/dist/types/hooks/useIsAllowedAll.d.ts.map +1 -1
  49. package/dist/types/hooks/usePortalSources.d.ts +1 -1
  50. package/dist/types/hooks/usePortalSources.d.ts.map +1 -1
  51. package/dist/types/hooks/useStockServices.d.ts +1 -1
  52. package/dist/types/hooks/useStockServices.d.ts.map +1 -1
  53. package/dist/types/hooks/useTokenExpiration.d.ts +10 -0
  54. package/dist/types/hooks/useTokenExpiration.d.ts.map +1 -0
  55. package/dist/types/services/aiApi.d.ts +4 -2
  56. package/dist/types/services/aiApi.d.ts.map +1 -1
  57. package/dist/types/services/apiClient.d.ts +22 -12
  58. package/dist/types/services/apiClient.d.ts.map +1 -1
  59. package/dist/types/services/assetsApi.d.ts +13 -6
  60. package/dist/types/services/assetsApi.d.ts.map +1 -1
  61. package/dist/types/services/imageParamsApi.d.ts +1 -1
  62. package/dist/types/services/imageParamsApi.d.ts.map +1 -1
  63. package/dist/types/services/portalsApi.d.ts +2 -2
  64. package/dist/types/services/portalsApi.d.ts.map +1 -1
  65. package/dist/types/services/responseAdapters.d.ts +6 -6
  66. package/dist/types/services/responseAdapters.d.ts.map +1 -1
  67. package/dist/types/services/stockApi.d.ts +3 -3
  68. package/dist/types/services/stockApi.d.ts.map +1 -1
  69. package/package.json +11 -3
  70. package/dist/types/services/authService.d.ts +0 -65
  71. package/dist/types/services/authService.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,26 +5,61 @@ 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
- ## [1.0.2] - 2025-10-13
8
+
9
+
10
+ ## [1.5.0] - 2025-10-20
11
+
12
+ ### Fixed
13
+ - 🛡️ fix external images proxy to retrieve urls
14
+
15
+ ## [1.4.0] - 2025-10-19
16
+
17
+ ### Added
18
+ - 🆕 New variants menu for images (gestión avanzada de variantes desde la galería)
19
+
20
+ ## [1.3.1] - 2025-10-18
21
+
22
+ ### Changed
23
+ - ⏳ Token life time up to 3600s (mejora de experiencia de usuario y menos expiraciones)
24
+
25
+ ## [1.3.0] - 2025-10-17
9
26
 
10
27
  ### Changed
28
+ - 🛠️ Various fixes and pagination (mejoras en paginación y correcciones menores)
11
29
 
12
- - 📜 **Licencia cambiada a PROPRIETARY** - Software exclusivo de Lefebvre El Derecho, S.A.
13
- - 🧹 Eliminadas URLs de GitHub del package.json (repositorio privado)
14
- - 📝 Simplificado `useIsAllowedAll` hook con documentación mejorada sobre JWT v2
15
- - 🗂️ .npmignore limpiado y reorganizado (eliminados duplicados)
30
+ ## [1.2.0] - 2025-10-16
16
31
 
17
32
  ### Fixed
33
+ - 🔧 Fix services calls (mejoras en llamadas a servicios internos)
34
+
35
+ ## [1.2.0] - 2025-10-15
36
+
37
+ ### Fixed
38
+ - 🔧 Fix new cors for localdev and calls to API (mejoras CORS para desarrollo local y llamadas a la API)
39
+
40
+ ## [1.1.0] - 2025-10-14
18
41
 
19
- - ✅ Resuelto TODO en useIsAllowedAll.js - documentada estrategia de autenticación JWT v2
42
+ ### Added
20
43
 
21
- ## [1.0.1] - 2025-10-13
44
+ - 🌐 Integración completa con portales externos (proxy seguro, filtrado de duplicados)
45
+ - 💾 Persistencia de estado en pestaña "Portales" (sessionStorage)
46
+ - 🧩 Compatibilidad total con modos "solo selección" y "cropper-only"
47
+ - 🪄 Mejoras en AutoInputs: configuración granular por dataset, botón de selección personalizable
48
+ - 🛡️ Mejoras de seguridad y CORS en descargas externas
49
+ - 🏷️ Ejemplos de integración avanzada en README
22
50
 
23
51
  ### Changed
24
52
 
25
- - 📝 Actualizada documentación (README, CHANGELOG)
26
- - 🔗 URLs corregidas a limbo.lefebvre.es
27
- - 🚫 Eliminados links a repositorio privado de GitHub
53
+ - 🖼️ UX mejorada en UploadForm y Tabs (más compacto, accesible, placeholders inteligentes)
54
+ - Accesibilidad mejorada en navegación por teclado y ARIA
55
+ - 🔄 Refactor de lógica de selección para soportar todos los modos y callbacks
56
+
57
+ ### Fixed
58
+
59
+ - 🐞 Corrección de duplicados en resultados de portales externos
60
+ - 🐞 Corrección de pérdida de estado al cambiar de pestaña
61
+
62
+ ---
28
63
 
29
64
  ## [1.0.0] - 2025-10-13
30
65
 
package/LICENSE CHANGED
@@ -1,34 +1,15 @@
1
- Copyright (c) 2025 Lefebvre El Derecho, S.A.
2
- Todos los derechos reservados.
3
-
4
- LICENCIA DE SOFTWARE PROPIETARIO
5
-
6
- Este software y la documentación asociada (el "Software") son propiedad
7
- exclusiva de Lefebvre El Derecho, S.A. y están protegidos por las leyes
8
- de derechos de autor y tratados internacionales.
9
-
10
- RESTRICCIONES:
1
+ ISC License
11
2
 
12
- 1. USO AUTORIZADO: El uso de este Software está autorizado únicamente para
13
- proyectos internos y productos de Lefebvre El Derecho, S.A. y sus
14
- empresas filiales.
15
-
16
- 2. PROHIBICIONES: Queda expresamente prohibido:
17
- - Redistribuir, sublicenciar o vender copias del Software
18
- - Modificar, adaptar o crear obras derivadas sin autorización escrita
19
- - Realizar ingeniería inversa, descompilar o desensamblar el Software
20
- - Usar el Software en productos o servicios de terceros
21
- - Eliminar o modificar cualquier aviso de derechos de autor
22
-
23
- 3. SIN GARANTÍA: EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE
24
- NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A
25
- GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR
26
- Y NO INFRACCIÓN.
27
-
28
- 4. LIMITACIÓN DE RESPONSABILIDAD: EN NINGÚN CASO LEFEBVRE EL DERECHO, S.A.
29
- SERÁ RESPONSABLE POR CUALQUIER DAÑO DIRECTO, INDIRECTO, INCIDENTAL,
30
- ESPECIAL, EJEMPLAR O CONSECUENTE.
3
+ Copyright (c) 2025 Lefebvre El Derecho, S.A.
31
4
 
32
- Para consultas sobre licenciamiento o uso autorizado, contactar:
33
- Lefebvre El Derecho, S.A.
34
- https://lefebvre.es
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
package/README.md CHANGED
@@ -3,21 +3,21 @@
3
3
  > Componente React altamente configurable para gestión de imágenes en portales web. Incluye galería, subida, recortador, y servicios de IA/Stock.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/limbo-component.svg)](https://www.npmjs.com/package/limbo-component)
6
- [![License: PROPRIETARY](https://img.shields.io/badge/License-PROPRIETARY-red.svg)](./LICENSE)
6
+ [![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)
7
7
 
8
8
  ## 🌟 Características
9
9
 
10
- - 🖼️ **Galería completa** - Navega y selecciona imágenes del portal
11
- - 📤 **Subida de imágenes** - Con preview y validación
12
- - ✂️ **Recortador avanzado** - Basado en Cropper.js 2.0 con presets
13
- - 🤖 **Integración IA/Stock** - Generación y búsqueda de imágenes
14
- - 🎭 **Múltiples modos** - Embed, modal o botón trigger
15
- - 🎯 **Altamente configurable** - Por portal y por instancia
16
- - 🔐 **Seguro** - Autenticación JWT v2
17
- - 📦 **Multi-formato** - ESM, CJS, UMD (con React incluido)
18
- - 🌍 **Internacionalización** - ES/EN incluidos
19
- - ♿ **Accesible** - ARIA, teclado, focus trap
20
- - 📱 **Responsive** - Mobile-friendly con container queries
10
+ - 🖼️ **Galería completa**: Navega y selecciona imágenes del portal o portales externos (con proxy y filtrado de duplicados)
11
+ - 📤 **Subida de imágenes**: Con preview, validación y persistencia de estado
12
+ - ✂️ **Recortador avanzado**: Basado en Cropper.js 2.0 con presets y modos independientes
13
+ - 🤖 **Integración IA/Stock**: Generación y búsqueda de imágenes con tabs especializadas
14
+ - 🎭 **Múltiples modos**: Embed, modal, botón trigger, solo selección, cropper-only, gallery-only, etc.
15
+ - 🎯 **Altamente configurable**: Por portal, instancia, dataset HTML o JS
16
+ - 🔐 **Seguro**: Autenticación JWT v2, CORS dinámico
17
+ - 📦 **Multi-formato**: ESM, CJS, UMD (con React incluido)
18
+ - 🌍 **Internacionalización**: ES/EN incluidos
19
+ - ♿ **Accesible**: ARIA, teclado, focus trap
20
+ - 📱 **Responsive**: Mobile-friendly con container queries
21
21
 
22
22
  ## 📦 Instalación
23
23
 
@@ -93,59 +93,89 @@ Limbo.create({
93
93
  </html>
94
94
  ```
95
95
 
96
- ### AutoInputs (Integración automática)
96
+ ### AutoInputs (Integración automática y selección directa)
97
97
 
98
98
  ```html
99
- <!-- Configurar una vez -->
99
+ <!-- Configuración global -->
100
100
  <script>
101
101
  Limbo.configure({ apiKey: 'your-api-key' });
102
102
  Limbo.configureAutoInputs({
103
103
  dataset: 'data-limbo-input-file',
104
- returnType: 'url'
104
+ returnType: 'url', // o 'object', 'base64', etc.
105
+ allowDelete: false, // Ejemplo: solo selección
106
+ features: ['gallery'], // Solo galería y selección
107
+ modeUI: 'gallery-only',
108
+ buttonText: 'Seleccionar imagen',
105
109
  });
106
110
  </script>
107
111
 
108
- <!-- Usar en múltiples inputs -->
112
+ <!-- Usar en múltiples inputs, sin JS adicional -->
109
113
  <input
110
114
  type="hidden"
111
115
  name="avatar"
112
116
  data-limbo-input-file
113
117
  data-limbo-mode="modal"
114
- data-limbo-features="gallery,upload"
118
+ data-limbo-features="gallery"
119
+ data-limbo-button-text="Seleccionar avatar"
120
+ />
121
+ <input
122
+ type="hidden"
123
+ name="banner"
124
+ data-limbo-input-file
125
+ data-limbo-mode="modal"
126
+ data-limbo-features="gallery,cropper"
127
+ data-limbo-button-text="Seleccionar banner"
115
128
  />
116
129
  ```
117
130
 
118
- ## ⚙️ Configuración
131
+ ## ⚙️ Configuración avanzada y granular
119
132
 
120
133
  ```javascript
134
+ // Ejemplo: solo selección, sin subida ni recorte
121
135
  Limbo.create({
122
- container: '#app',
123
- mode: 'embed', // 'embed' | 'modal' | 'button'
124
- modeUI: 'full', // 'full' | 'gallery-only' | 'upload-only' | 'crop-only'
125
-
126
- // Callbacks
136
+ container: '#solo-seleccion',
137
+ mode: 'embed',
138
+ modeUI: 'gallery-only',
139
+ features: ['gallery'],
140
+ ui: {
141
+ showActions: ['select'],
142
+ hideActions: ['delete', 'download', 'copy', 'crop'],
143
+ compactMode: true,
144
+ showTabs: false,
145
+ },
127
146
  callbacks: {
128
- onSelect: (payload) => console.log('Selected:', payload),
129
- onUpload: (payload) => console.log('Uploaded:', payload),
130
- onError: (error) => console.error('Error:', error)
131
- }
147
+ onSelect: (payload) => {
148
+ // payload: { assetId, url, fileName, ... }
149
+ console.log('Imagen seleccionada:', payload);
150
+ },
151
+ },
152
+ });
153
+
154
+ // Ejemplo: modo cropper-only
155
+ Limbo.create({
156
+ container: '#cropper',
157
+ mode: 'modal',
158
+ modeUI: 'crop-only',
159
+ features: ['cropper'],
160
+ // ...
132
161
  });
133
162
  ```
134
163
 
135
- ## 📡 Eventos
164
+ ## 📡 Eventos y persistencia de estado
136
165
 
137
166
  ```javascript
138
167
  document.addEventListener('limbo:select', (e) => {
139
- console.log('Image selected:', e.detail);
140
- // e.detail contiene: assetId, variants, master, fileBlob, etc.
168
+ console.log('Imagen seleccionada:', e.detail);
169
+ // e.detail: { assetId, url, fileName, ... }
141
170
  });
171
+
172
+ // El componente persiste el estado de búsqueda, selección y resultados
173
+ // en sessionStorage para evitar perder datos al cambiar de pestaña.
142
174
  ```
143
175
 
144
176
  ## 📄 Licencia
145
177
 
146
- Copyright © 2025 Lefebvre El Derecho, S.A. - Todos los derechos reservados.
147
-
148
- Este software es propiedad de Lefebvre El Derecho, S.A. y su uso está restringido exclusivamente a proyectos autorizados de la empresa. Ver [LICENSE](./LICENSE) para más detalles.
178
+ ISC © LefebvreWEB
149
179
 
150
180
  ## 🔗 Links
151
181