limbo-component 2.7.3 → 3.1.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 (53) hide show
  1. package/dist/limbo.cjs.js +1 -1
  2. package/dist/limbo.cjs.map +1 -1
  3. package/dist/limbo.css +1 -1
  4. package/dist/limbo.es.js +604 -526
  5. package/dist/limbo.es.map +1 -1
  6. package/dist/limbo.min.js +1 -1
  7. package/dist/limbo.min.js.map +1 -1
  8. package/dist/limbo.umd.js +1 -1
  9. package/dist/limbo.umd.js.map +1 -1
  10. package/dist/types/App.d.ts +13 -1
  11. package/dist/types/App.d.ts.map +1 -1
  12. package/dist/types/components/AssetPreview.d.ts +28 -0
  13. package/dist/types/components/AssetPreview.d.ts.map +1 -0
  14. package/dist/types/components/CropperView.d.ts.map +1 -1
  15. package/dist/types/components/FolderSelector.d.ts +35 -0
  16. package/dist/types/components/FolderSelector.d.ts.map +1 -0
  17. package/dist/types/components/Gallery.d.ts +7 -1
  18. package/dist/types/components/Gallery.d.ts.map +1 -1
  19. package/dist/types/components/ImageCard.d.ts +6 -1
  20. package/dist/types/components/ImageCard.d.ts.map +1 -1
  21. package/dist/types/components/ImagePreview.d.ts +1 -1
  22. package/dist/types/components/ImagePreview.d.ts.map +1 -1
  23. package/dist/types/components/TabAI.d.ts +4 -1
  24. package/dist/types/components/TabAI.d.ts.map +1 -1
  25. package/dist/types/components/TabPortals.d.ts +4 -1
  26. package/dist/types/components/TabPortals.d.ts.map +1 -1
  27. package/dist/types/components/TabStock.d.ts +4 -1
  28. package/dist/types/components/TabStock.d.ts.map +1 -1
  29. package/dist/types/components/TabUpload.d.ts +5 -1
  30. package/dist/types/components/TabUpload.d.ts.map +1 -1
  31. package/dist/types/components/UploadForm.d.ts +5 -1
  32. package/dist/types/components/UploadForm.d.ts.map +1 -1
  33. package/dist/types/components/previews/AudioPreviewContent.d.ts +11 -0
  34. package/dist/types/components/previews/AudioPreviewContent.d.ts.map +1 -0
  35. package/dist/types/components/previews/GenericFilePreview.d.ts +8 -0
  36. package/dist/types/components/previews/GenericFilePreview.d.ts.map +1 -0
  37. package/dist/types/components/previews/VideoPreviewContent.d.ts +10 -0
  38. package/dist/types/components/previews/VideoPreviewContent.d.ts.map +1 -0
  39. package/dist/types/components/previews/index.d.ts +4 -0
  40. package/dist/types/components/previews/index.d.ts.map +1 -0
  41. package/dist/types/core/ConfigManager.d.ts +99 -0
  42. package/dist/types/core/ConfigManager.d.ts.map +1 -1
  43. package/dist/types/hooks/useFolders.d.ts +17 -0
  44. package/dist/types/hooks/useFolders.d.ts.map +1 -0
  45. package/dist/types/hooks/useUploadImage.d.ts +1 -1
  46. package/dist/types/hooks/useUploadImage.d.ts.map +1 -1
  47. package/dist/types/services/assetsApi.d.ts +31 -5
  48. package/dist/types/services/assetsApi.d.ts.map +1 -1
  49. package/dist/types/services/foldersApi.d.ts +60 -0
  50. package/dist/types/services/foldersApi.d.ts.map +1 -0
  51. package/dist/types/services/responseAdapters.d.ts +12 -0
  52. package/dist/types/services/responseAdapters.d.ts.map +1 -1
  53. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- export default function App({ apiKey, prod, url, features, modeUI, ui, callbacks, instanceId, itemsPerPage, _externalImage, cropperConfig, }: {
1
+ export default function App({ apiKey, prod, url, features, modeUI, ui, callbacks, instanceId, itemsPerPage, _externalImage, cropperConfig, folderConfig, allowedCategories, }: {
2
2
  apiKey: any;
3
3
  prod?: boolean;
4
4
  url?: boolean;
@@ -17,5 +17,17 @@ export default function App({ apiKey, prod, url, features, modeUI, ui, callbacks
17
17
  itemsPerPage?: number;
18
18
  _externalImage?: any;
19
19
  cropperConfig?: any;
20
+ folderConfig?: {
21
+ include: any[];
22
+ exclude: any[];
23
+ includeNoFolder: boolean;
24
+ showFolderSelector: boolean;
25
+ showFolderFilter: boolean;
26
+ showFolderInfo: boolean;
27
+ allowMoveFolder: boolean;
28
+ allowCreateFolder: boolean;
29
+ defaultFolder: any;
30
+ };
31
+ allowedCategories?: any;
20
32
  }): import("react/jsx-runtime").JSX.Element;
21
33
  //# sourceMappingURL=App.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/App.jsx"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;4CA0zBC"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/App.jsx"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA07BC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * AssetPreview Component
3
+ *
4
+ * Unified preview component for files of any type: images, videos, audio, documents.
5
+ * Replaces ImagePreview with multi-type support.
6
+ *
7
+ * @param {Object} props
8
+ * @param {File} props.file - File to preview
9
+ * @param {Function} props.onDiscard - Called when user discards the file
10
+ * @param {Function} props.onRetry - Called when user wants to retry (AI only)
11
+ * @param {Function} props.onDownload - Called when user downloads the file
12
+ * @param {Function} props.onSelect - Called when user selects file
13
+ * @param {boolean} props.showRetry - Whether to show Retry button (default: false)
14
+ * @param {boolean} props.disabled - Disable action buttons (default: false)
15
+ * @param {boolean} props.showCropButton - Whether to show crop-related text (default: auto-detect)
16
+ */
17
+ export default function AssetPreview({ file, image, onDiscard, onRetry, onDownload, onSelect, showRetry, disabled, showCropButton, selectedFolder, onFolderChange, folderConfig, }: {
18
+ file: File;
19
+ onDiscard: Function;
20
+ onRetry: Function;
21
+ onDownload: Function;
22
+ onSelect: Function;
23
+ showRetry: boolean;
24
+ disabled: boolean;
25
+ showCropButton: boolean;
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ export { AssetPreview as ImagePreview };
28
+ //# sourceMappingURL=AssetPreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetPreview.d.ts","sourceRoot":"","sources":["../../../src/components/AssetPreview.jsx"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;GAeG;AACH,oLATG;IAAoB,IAAI,EAAhB,IAAI;IACY,SAAS;IACT,OAAO;IACP,UAAU;IACV,QAAQ;IACT,SAAS,EAAxB,OAAO;IACQ,QAAQ,EAAvB,OAAO;IACQ,cAAc,EAA7B,OAAO;CACjB,2CAmYA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CropperView.d.ts","sourceRoot":"","sources":["../../../src/components/CropperView.jsx"],"names":[],"mappings":"AASA;;;;;;;;;;;4CAiyGC"}
1
+ {"version":3,"file":"CropperView.d.ts","sourceRoot":"","sources":["../../../src/components/CropperView.jsx"],"names":[],"mappings":"AASA;;;;;;;;;;;4CAk1GC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Componente selector de carpetas
3
+ *
4
+ * Permite seleccionar una carpeta existente o crear una nueva.
5
+ * Se usa tanto en el formulario de upload como en el filtro de galería.
6
+ *
7
+ * @param {Object} props
8
+ * @param {string|null} props.value - Slug de la carpeta seleccionada
9
+ * @param {Function} props.onChange - Callback cuando cambia la selección (recibe folder o null)
10
+ * @param {boolean} props.allowCreate - Mostrar opción de crear carpeta (default: true)
11
+ * @param {string} props.placeholder - Texto placeholder (default: "Sin carpeta")
12
+ * @param {string} props.label - Etiqueta del campo (opcional)
13
+ * @param {boolean} props.disabled - Deshabilitar selector
14
+ * @param {string} props.className - Clases CSS adicionales
15
+ * @param {boolean} props.showAssetCount - Mostrar contador de assets (default: false)
16
+ * @param {boolean} props.includeNoFolder - Incluir opción "Sin carpeta" (default: true)
17
+ * @param {string[]} props.allowedSlugs - Whitelist de slugs permitidos (opcional)
18
+ * @param {string[]} props.excludeSlugs - Blacklist de slugs a ocultar (opcional)
19
+ * @param {string} props.mode - Modo: "filter" | "upload" (default: "upload")
20
+ */
21
+ export default function FolderSelector({ value, onChange, allowCreate, placeholder, label, disabled, className, showAssetCount, includeNoFolder, allowedSlugs, excludeSlugs, mode, }: {
22
+ value: string | null;
23
+ onChange: Function;
24
+ allowCreate: boolean;
25
+ placeholder: string;
26
+ label: string;
27
+ disabled: boolean;
28
+ className: string;
29
+ showAssetCount: boolean;
30
+ includeNoFolder: boolean;
31
+ allowedSlugs: string[];
32
+ excludeSlugs: string[];
33
+ mode: string;
34
+ }): import("react/jsx-runtime").JSX.Element;
35
+ //# sourceMappingURL=FolderSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FolderSelector.d.ts","sourceRoot":"","sources":["../../../src/components/FolderSelector.jsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,sLAbG;IAA2B,KAAK,EAAxB,MAAM,GAAC,IAAI;IACK,QAAQ;IACT,WAAW,EAA1B,OAAO;IACO,WAAW,EAAzB,MAAM;IACQ,KAAK,EAAnB,MAAM;IACS,QAAQ,EAAvB,OAAO;IACO,SAAS,EAAvB,MAAM;IACS,cAAc,EAA7B,OAAO;IACQ,eAAe,EAA9B,OAAO;IACS,YAAY,EAA5B,MAAM,EAAE;IACQ,YAAY,EAA5B,MAAM,EAAE;IACM,IAAI,EAAlB,MAAM;CAChB,2CAsMA"}
@@ -1,4 +1,4 @@
1
- export default function Gallery({ onSelect, onCrop, onDelete, deletingId, images, loading, error, filters, debouncedFilters, onFiltersChange, filterConfig, loadingConfig, allowedActions, }: {
1
+ export default function Gallery({ onSelect, onCrop, onDelete, deletingId, images, loading, error, filters, debouncedFilters, onFiltersChange, filterConfig, loadingConfig, allowedActions, allowedCategories, folderConfig, onFolderChange, }: {
2
2
  onSelect: any;
3
3
  onCrop: any;
4
4
  onDelete: any;
@@ -11,6 +11,8 @@ export default function Gallery({ onSelect, onCrop, onDelete, deletingId, images
11
11
  dateFrom: string;
12
12
  dateTo: string;
13
13
  uploadedBy: string;
14
+ assetType: string;
15
+ folder: string;
14
16
  };
15
17
  debouncedFilters?: any;
16
18
  onFiltersChange: any;
@@ -18,6 +20,7 @@ export default function Gallery({ onSelect, onCrop, onDelete, deletingId, images
18
20
  showNameFilter: boolean;
19
21
  showUploadedByFilter: boolean;
20
22
  showDateFilter: boolean;
23
+ showTypeFilter: boolean;
21
24
  };
22
25
  loadingConfig?: {
23
26
  showPlaceholders: boolean;
@@ -32,5 +35,8 @@ export default function Gallery({ onSelect, onCrop, onDelete, deletingId, images
32
35
  crop: boolean;
33
36
  variants: boolean;
34
37
  };
38
+ allowedCategories?: any;
39
+ folderConfig?: any;
40
+ onFolderChange?: any;
35
41
  }): import("react/jsx-runtime").JSX.Element;
36
42
  //# sourceMappingURL=Gallery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../../src/components/Gallery.jsx"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA6UC"}
1
+ {"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../../src/components/Gallery.jsx"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAoaC"}
@@ -1,10 +1,15 @@
1
- export default function ImageCard({ image, onDelete, onCrop, onSelect, thumbnailSize, isDeleting, allowedActions, }: {
1
+ export default function ImageCard({ image, onDelete, onCrop, onSelect, onFolderChange, thumbnailSize, isDeleting, showFolderInfo, allowMoveFolder, allowedFolderSlugs, excludedFolderSlugs, allowedActions, }: {
2
2
  image: any;
3
3
  onDelete: any;
4
4
  onCrop: any;
5
5
  onSelect: any;
6
+ onFolderChange: any;
6
7
  thumbnailSize?: number;
7
8
  isDeleting?: boolean;
9
+ showFolderInfo?: boolean;
10
+ allowMoveFolder?: boolean;
11
+ allowedFolderSlugs?: any;
12
+ excludedFolderSlugs?: any;
8
13
  allowedActions?: {
9
14
  select: boolean;
10
15
  download: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageCard.d.ts","sourceRoot":"","sources":["../../../src/components/ImageCard.jsx"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;4CAkjBC"}
1
+ {"version":3,"file":"ImageCard.d.ts","sourceRoot":"","sources":["../../../src/components/ImageCard.jsx"],"names":[],"mappings":"AAsEA;;;;;;;;;;;;;;;;;;;;4CA0wBC"}
@@ -13,7 +13,7 @@
13
13
  * @param {boolean} props.showRetry - Whether to show Retry button (default: false)
14
14
  * @param {boolean} props.disabled - Disable action buttons (default: false)
15
15
  */
16
- export default function ImagePreview({ image, onDiscard, onRetry, onDownload, onSelect, showRetry, disabled, }: {
16
+ export default function ImagePreview({ image, onDiscard, onRetry, onDownload, onSelect, showRetry, disabled, selectedFolder, onFolderChange, folderConfig, }: {
17
17
  image: File;
18
18
  onDiscard: Function;
19
19
  onRetry: Function;
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePreview.d.ts","sourceRoot":"","sources":["../../../src/components/ImagePreview.jsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AACH,gHARG;IAAoB,KAAK,EAAjB,IAAI;IACY,SAAS;IACT,OAAO;IACP,UAAU;IACV,QAAQ;IACT,SAAS,EAAxB,OAAO;IACQ,QAAQ,EAAvB,OAAO;CACjB,2CAqQA"}
1
+ {"version":3,"file":"ImagePreview.d.ts","sourceRoot":"","sources":["../../../src/components/ImagePreview.jsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,8JARG;IAAoB,KAAK,EAAjB,IAAI;IACY,SAAS;IACT,OAAO;IACP,UAAU;IACV,QAAQ;IACT,SAAS,EAAxB,OAAO;IACQ,QAAQ,EAAvB,OAAO;CACjB,2CAyRA"}
@@ -1,6 +1,9 @@
1
- export default function TabAI({ prod, disabled, onSelect }: {
1
+ export default function TabAI({ prod, disabled, onSelect, selectedFolder, onFolderChange, folderConfig }: {
2
2
  prod: any;
3
3
  disabled: any;
4
4
  onSelect: any;
5
+ selectedFolder: any;
6
+ onFolderChange: any;
7
+ folderConfig: any;
5
8
  }): import("react/jsx-runtime").JSX.Element;
6
9
  //# sourceMappingURL=TabAI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabAI.d.ts","sourceRoot":"","sources":["../../../src/components/TabAI.jsx"],"names":[],"mappings":"AAOA;;;;4CA6hBC"}
1
+ {"version":3,"file":"TabAI.d.ts","sourceRoot":"","sources":["../../../src/components/TabAI.jsx"],"names":[],"mappings":"AAOA;;;;;;;4CAgiBC"}
@@ -1,6 +1,9 @@
1
- export default function TabPortals({ prod, disabled, onSelect }: {
1
+ export default function TabPortals({ prod, disabled, onSelect, selectedFolder, onFolderChange, folderConfig }: {
2
2
  prod: any;
3
3
  disabled: any;
4
4
  onSelect: any;
5
+ selectedFolder: any;
6
+ onFolderChange: any;
7
+ folderConfig: any;
5
8
  }): import("react/jsx-runtime").JSX.Element;
6
9
  //# sourceMappingURL=TabPortals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabPortals.d.ts","sourceRoot":"","sources":["../../../src/components/TabPortals.jsx"],"names":[],"mappings":"AA2DA;;;;4CAisBC"}
1
+ {"version":3,"file":"TabPortals.d.ts","sourceRoot":"","sources":["../../../src/components/TabPortals.jsx"],"names":[],"mappings":"AA2DA;;;;;;;4CAosBC"}
@@ -1,6 +1,9 @@
1
- export default function TabStock({ prod, disabled, onSelect }: {
1
+ export default function TabStock({ prod, disabled, onSelect, selectedFolder, onFolderChange, folderConfig }: {
2
2
  prod: any;
3
3
  disabled: any;
4
4
  onSelect: any;
5
+ selectedFolder: any;
6
+ onFolderChange: any;
7
+ folderConfig: any;
5
8
  }): import("react/jsx-runtime").JSX.Element;
6
9
  //# sourceMappingURL=TabStock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabStock.d.ts","sourceRoot":"","sources":["../../../src/components/TabStock.jsx"],"names":[],"mappings":"AAQA;;;;4CA4wBC"}
1
+ {"version":3,"file":"TabStock.d.ts","sourceRoot":"","sources":["../../../src/components/TabStock.jsx"],"names":[],"mappings":"AAQA;;;;;;;4CA+wBC"}
@@ -1,4 +1,4 @@
1
- export default function TabUpload({ file, setFile, previewUrl, setPreviewUrl, fileInputRef, onSelect, disabled, }: {
1
+ export default function TabUpload({ file, setFile, previewUrl, setPreviewUrl, fileInputRef, onSelect, disabled, allowedCategories, selectedFolder, onFolderChange, folderConfig, }: {
2
2
  file: any;
3
3
  setFile: any;
4
4
  previewUrl: any;
@@ -6,5 +6,9 @@ export default function TabUpload({ file, setFile, previewUrl, setPreviewUrl, fi
6
6
  fileInputRef: any;
7
7
  onSelect: any;
8
8
  disabled: any;
9
+ allowedCategories?: any;
10
+ selectedFolder?: any;
11
+ onFolderChange?: any;
12
+ folderConfig?: any;
9
13
  }): import("react/jsx-runtime").JSX.Element;
10
14
  //# sourceMappingURL=TabUpload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabUpload.d.ts","sourceRoot":"","sources":["../../../src/components/TabUpload.jsx"],"names":[],"mappings":"AAGA;;;;;;;;4CAuIC"}
1
+ {"version":3,"file":"TabUpload.d.ts","sourceRoot":"","sources":["../../../src/components/TabUpload.jsx"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;4CA0MC"}
@@ -1,7 +1,11 @@
1
- export default function UploadForm({ onSelect, disabled, apiKey, prod, }: {
1
+ export default function UploadForm({ onSelect, disabled, apiKey, prod, allowedCategories, folderConfig, selectedFolder, onFolderChange, }: {
2
2
  onSelect: any;
3
3
  disabled?: boolean;
4
4
  apiKey: any;
5
5
  prod?: boolean;
6
+ allowedCategories?: any;
7
+ folderConfig?: any;
8
+ selectedFolder?: any;
9
+ onFolderChange?: any;
6
10
  }): import("react/jsx-runtime").JSX.Element;
7
11
  //# sourceMappingURL=UploadForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadForm.d.ts","sourceRoot":"","sources":["../../../src/components/UploadForm.jsx"],"names":[],"mappings":"AAcA;;;;;4CAgNC"}
1
+ {"version":3,"file":"UploadForm.d.ts","sourceRoot":"","sources":["../../../src/components/UploadForm.jsx"],"names":[],"mappings":"AAcA;;;;;;;;;4CAkOC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * AudioPreviewContent Component
3
+ *
4
+ * Displays an audio player for audio file previews.
5
+ */
6
+ export default function AudioPreviewContent({ previewUrl, fileName, fileSize }: {
7
+ previewUrl: any;
8
+ fileName: any;
9
+ fileSize: any;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=AudioPreviewContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioPreviewContent.d.ts","sourceRoot":"","sources":["../../../../src/components/previews/AudioPreviewContent.jsx"],"names":[],"mappings":"AAGA;;;;GAIG;AACH;;;;4CA4HC"}
@@ -0,0 +1,8 @@
1
+ export function getFileIconInfo(mimeType: any, category: any): any;
2
+ export function formatFileSize(bytes: any): string;
3
+ export default function GenericFilePreview({ file, mimeType, category }: {
4
+ file: any;
5
+ mimeType: any;
6
+ category: any;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=GenericFilePreview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericFilePreview.d.ts","sourceRoot":"","sources":["../../../../src/components/previews/GenericFilePreview.jsx"],"names":[],"mappings":"AAuDA,mEAuBC;AAGD,mDAMC;AAED;;;;4CA+BC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * VideoPreviewContent Component
3
+ *
4
+ * Displays a video player with controls for video file previews.
5
+ */
6
+ export default function VideoPreviewContent({ previewUrl, fileName }: {
7
+ previewUrl: any;
8
+ fileName: any;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=VideoPreviewContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPreviewContent.d.ts","sourceRoot":"","sources":["../../../../src/components/previews/VideoPreviewContent.jsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH;;;4CAyEC"}
@@ -0,0 +1,4 @@
1
+ export { default as VideoPreviewContent } from "./VideoPreviewContent";
2
+ export { default as AudioPreviewContent } from "./AudioPreviewContent";
3
+ export { default as GenericFilePreview, getFileIconInfo, formatFileSize } from "./GenericFilePreview";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/previews/index.js"],"names":[],"mappings":""}
@@ -32,6 +32,7 @@ export class ConfigManager {
32
32
  showNameFilter: boolean;
33
33
  showUploadedByFilter: boolean;
34
34
  showDateFilter: boolean;
35
+ showTypeFilter: boolean;
35
36
  enabledFilters: string[];
36
37
  customFilters: any[];
37
38
  };
@@ -52,6 +53,18 @@ export class ConfigManager {
52
53
  minHeight: any;
53
54
  maxWidth: any;
54
55
  maxHeight: any;
56
+ allowedCategories: any;
57
+ };
58
+ folders: {
59
+ include: any[];
60
+ exclude: any[];
61
+ includeNoFolder: boolean;
62
+ showFolderSelector: boolean;
63
+ showFolderFilter: boolean;
64
+ showFolderInfo: boolean;
65
+ allowMoveFolder: boolean;
66
+ allowCreateFolder: boolean;
67
+ defaultFolder: any;
55
68
  };
56
69
  downloadFormat: string;
57
70
  return: {
@@ -204,6 +217,7 @@ export class ConfigManager {
204
217
  showNameFilter: boolean;
205
218
  showUploadedByFilter: boolean;
206
219
  showDateFilter: boolean;
220
+ showTypeFilter: boolean;
207
221
  enabledFilters: string[];
208
222
  customFilters: any[];
209
223
  };
@@ -224,6 +238,18 @@ export class ConfigManager {
224
238
  minHeight: any;
225
239
  maxWidth: any;
226
240
  maxHeight: any;
241
+ allowedCategories: any;
242
+ };
243
+ folders: {
244
+ include: any[];
245
+ exclude: any[];
246
+ includeNoFolder: boolean;
247
+ showFolderSelector: boolean;
248
+ showFolderFilter: boolean;
249
+ showFolderInfo: boolean;
250
+ allowMoveFolder: boolean;
251
+ allowCreateFolder: boolean;
252
+ defaultFolder: any;
227
253
  };
228
254
  return: {
229
255
  format: string;
@@ -420,6 +446,79 @@ export class ConfigManager {
420
446
  * Obtener items por página
421
447
  */
422
448
  getItemsPerPage(config?: any): any;
449
+ /**
450
+ * ========================================
451
+ * 🆕 HELPERS PARA CONFIGURACIÓN DE CARPETAS
452
+ * ========================================
453
+ */
454
+ /**
455
+ * Obtener configuración de filtrado de carpetas
456
+ */
457
+ getFolderConfig(config?: any): any;
458
+ /**
459
+ * Verificar si hay filtros de carpetas activos
460
+ */
461
+ hasFolderFilters(config?: any): boolean;
462
+ /**
463
+ * Obtener parámetros de carpetas para la API
464
+ * Retorna un objeto listo para fusionar con apiParams
465
+ */
466
+ getFolderApiParams(config?: any): {
467
+ folders_include: any;
468
+ folders_exclude: any;
469
+ include_no_folder: string;
470
+ };
471
+ /**
472
+ * Verificar si se debe mostrar el selector de carpeta en upload
473
+ */
474
+ showFolderSelectorInUpload(config?: any): boolean;
475
+ /**
476
+ * Verificar si se debe mostrar el filtro de carpeta en galería
477
+ */
478
+ showFolderFilterInGallery(config?: any): boolean;
479
+ /**
480
+ * Verificar si el usuario puede crear carpetas
481
+ */
482
+ canCreateFolder(config?: any): boolean;
483
+ /**
484
+ * Obtener carpeta por defecto para uploads
485
+ */
486
+ getDefaultUploadFolder(config?: any): any;
487
+ /**
488
+ * Obtener slugs de carpetas permitidas (whitelist)
489
+ * Retorna null si no hay whitelist definida
490
+ */
491
+ getAllowedFolderSlugs(config?: any): any;
492
+ /**
493
+ * ========================================
494
+ * 🆕 HELPERS PARA CATEGORÍAS DE ARCHIVOS
495
+ * ========================================
496
+ */
497
+ /**
498
+ * Obtener categorías de archivos permitidas
499
+ * @returns {Array|null} Array de categorías o null para todos los tipos
500
+ */
501
+ getAllowedCategories(config?: any): any[] | null;
502
+ /**
503
+ * Verificar si una categoría específica está permitida
504
+ */
505
+ isCategoryAllowed(category: any, config?: any): boolean;
506
+ /**
507
+ * Verificar si el componente soporta múltiples tipos de archivo
508
+ */
509
+ isMultiTypeEnabled(config?: any): boolean;
510
+ /**
511
+ * Verificar si se debe mostrar el filtro de tipo en la galería
512
+ */
513
+ showTypeFilter(config?: any): boolean;
514
+ /**
515
+ * Obtener las opciones de tipo de archivo para el filtro de galería
516
+ * Filtra según las categorías permitidas
517
+ */
518
+ getTypeFilterOptions(config?: any): {
519
+ value: string;
520
+ label: string;
521
+ }[];
423
522
  }
424
523
  import { I18n } from '../utils/i18n.js';
425
524
  //# sourceMappingURL=ConfigManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../../src/core/ConfigManager.js"],"names":[],"mappings":"AAOA;IAEI,iBAAsB;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoLC;IAGH;;OAEG;IACH,6BAGC;IAED;;OAEG;IACH,gBAEC;IAED;;;OAGG;IACH,+BASC;IAED;;OAEG;IACH,kCAkBC;IAED;;OAEG;IACH,oCAGC;IAED;;OAEG;IACH,mBAEC;IAED;;OAEG;IACH,sBAGC;IAED;;OAEG;IACH,kCAGC;IAED;;OAEG;IACH,iCAGC;IAED;;OAEG;IACH,0CAIC;IAED;;OAEG;IACH,uDAWC;IAED;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmKC;IAED;;OAEG;IACH,sCAyCC;IAED;;OAEG;IACH,sDAQC;IAED;;OAEG;IACH,oDAGC;IAED;;OAEG;IACH,sCAGC;IAED;;OAEG;IACH,oCAGC;IAED;;OAEG;IACH,8BAcC;IAED;;OAEG;IACH;;;MA0CC;IAED;;;;;OAKG;IACH,mBAJW,MAAM,cACN,MAAM,uBAiBhB;IAED;;OAEG;IACH;;;;;;;;MAWC;IAED;;OAEG;IACH,uCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;;OAGG;IACH,uCAYC;IAED;;;;OAIG;IAEH;;OAEG;IACH,qCAGC;IAED;;OAEG;IACH,yCAGC;IAED;;OAEG;IACH,yCAGC;IAED;;OAEG;IACH,2CAGC;IAED;;OAEG;IACH,6CAGC;IAED;;OAEG;IACH,oCAGC;IAED;;OAEG;IACH,wCAGC;IAED;;;;OAIG;IAEH;;OAEG;IACH,qCAGC;IAED;;OAEG;IACH,2DAGC;IAED;;OAEG;IACH,2CAGC;IAED;;OAEG;IACH,2CAGC;IAED;;OAEG;IACH,+CAGC;IAED;;OAEG;IACH,uCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;OAEG;IACH,wCAGC;IAED;;OAEG;IACH,mCAGC;CACF;qBAj0BoB,kBAAkB"}
1
+ {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../../src/core/ConfigManager.js"],"names":[],"mappings":"AAOA;IAEI,iBAAsB;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0MC;IAGH;;OAEG;IACH,6BAGC;IAED;;OAEG;IACH,gBAEC;IAED;;;OAGG;IACH,+BASC;IAED;;OAEG;IACH,kCAkBC;IAED;;OAEG;IACH,oCAGC;IAED;;OAEG;IACH,mBAEC;IAED;;OAEG;IACH,sBAGC;IAED;;OAEG;IACH,kCAGC;IAED;;OAEG;IACH,iCAGC;IAED;;OAEG;IACH,0CAIC;IAED;;OAEG;IACH,uDAWC;IAED;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkLC;IAED;;OAEG;IACH,sCAyCC;IAED;;OAEG;IACH,sDAQC;IAED;;OAEG;IACH,oDAGC;IAED;;OAEG;IACH,sCAGC;IAED;;OAEG;IACH,oCAGC;IAED;;OAEG;IACH,8BAcC;IAED;;OAEG;IACH;;;MA0CC;IAED;;;;;OAKG;IACH,mBAJW,MAAM,cACN,MAAM,uBAiBhB;IAED;;OAEG;IACH;;;;;;;;MAWC;IAED;;OAEG;IACH,uCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;;OAGG;IACH,uCAYC;IAED;;;;OAIG;IAEH;;OAEG;IACH,qCAGC;IAED;;OAEG;IACH,yCAGC;IAED;;OAEG;IACH,yCAGC;IAED;;OAEG;IACH,2CAGC;IAED;;OAEG;IACH,6CAGC;IAED;;OAEG;IACH,oCAGC;IAED;;OAEG;IACH,wCAGC;IAED;;;;OAIG;IAEH;;OAEG;IACH,qCAGC;IAED;;OAEG;IACH,2DAGC;IAED;;OAEG;IACH,2CAGC;IAED;;OAEG;IACH,2CAGC;IAED;;OAEG;IACH,+CAGC;IAED;;OAEG;IACH,uCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;OAEG;IACH,wCAGC;IAED;;OAEG;IACH,mCAGC;IAED;;;;OAIG;IAEH;;OAEG;IACH,mCAGC;IAED;;OAEG;IACH,wCAGC;IAED;;;OAGG;IACH;;;;MAiBC;IAED;;OAEG;IACH,kDAGC;IAED;;OAEG;IACH,iDAGC;IAED;;OAEG;IACH,uCAGC;IAED;;OAEG;IACH,0CAGC;IAED;;;OAGG;IACH,yCAIC;IAED;;;;OAIG;IAEH;;;OAGG;IACH,oCAFa,QAAM,IAAI,CAKtB;IAED;;OAEG;IACH,wDAOC;IAED;;OAEG;IACH,0CAKC;IAED;;OAEG;IACH,sCAGC;IAED;;;OAGG;IACH;;;QAmBC;CACF;qBAngCoB,kBAAkB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Hook para gestionar carpetas del portal
3
+ *
4
+ * @param {Object} options - Opciones de configuración
5
+ * @param {boolean} options.autoFetch - Cargar carpetas automáticamente al montar (default: true)
6
+ * @param {string} options.visibility - Filtrar por visibilidad (public, internal, private)
7
+ * @param {string[]} options.allowedSlugs - Si se proporciona, solo muestra estas carpetas (whitelist)
8
+ * @param {string[]} options.excludeSlugs - Si se proporciona, oculta estas carpetas (blacklist)
9
+ * @returns {Object} Estado y funciones para gestionar carpetas
10
+ */
11
+ export default function useFolders(options?: {
12
+ autoFetch: boolean;
13
+ visibility: string;
14
+ allowedSlugs: string[];
15
+ excludeSlugs: string[];
16
+ }): any;
17
+ //# sourceMappingURL=useFolders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolders.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFolders.js"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,6CANG;IAAyB,SAAS,EAA1B,OAAO;IACS,UAAU,EAA1B,MAAM;IACY,YAAY,EAA9B,MAAM,EAAE;IACU,YAAY,EAA9B,MAAM,EAAE;CAChB,OA0IF"}
@@ -1,5 +1,5 @@
1
1
  export default function useUploadImage(): {
2
- upload: (file: any, uploadedBy?: any) => Promise<any>;
2
+ upload: (file: any, uploadedBy?: any, folder?: any) => Promise<any>;
3
3
  loading: boolean;
4
4
  error: any;
5
5
  uploadedImage: any;
@@ -1 +1 @@
1
- {"version":3,"file":"useUploadImage.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUploadImage.js"],"names":[],"mappings":"AAGA;;;;;;EA2CC"}
1
+ {"version":3,"file":"useUploadImage.d.ts","sourceRoot":"","sources":["../../../src/hooks/useUploadImage.js"],"names":[],"mappings":"AAGA;;;;;;EA6CC"}
@@ -1,14 +1,19 @@
1
1
  /**
2
2
  * Lista assets del portal
3
- * @param {Object} params - Parámetros de filtrado (page, limit, etc.)
3
+ * @param {Object} params - Parámetros de filtrado (page, limit, url_expires, etc.)
4
4
  * @returns {Promise<Object>} Lista de assets en formato legacy
5
5
  */
6
6
  export function listAssets(params?: any): Promise<any>;
7
7
  /**
8
8
  * Upload new asset
9
9
  * Maps to: POST /api/assets
10
+ *
11
+ * @param {File} file - File to upload
12
+ * @param {string|null} uploaded_by - User identifier
13
+ * @param {boolean} store_original - Store original file
14
+ * @param {string|null} folder - Folder slug or ID to organize the asset
10
15
  */
11
- export function uploadAsset(file: any, uploaded_by?: any, store_original?: boolean): Promise<any>;
16
+ export function uploadAsset(file: File, uploaded_by?: string | null, store_original?: boolean, folder?: string | null): Promise<any>;
12
17
  /**
13
18
  * Get specific asset
14
19
  * Maps to: GET /api/assets/{id}
@@ -16,9 +21,27 @@ export function uploadAsset(file: any, uploaded_by?: any, store_original?: boole
16
21
  * @param {string} assetId - Asset ID
17
22
  * @param {boolean} includeVariants - Include variants in response
18
23
  * @param {boolean} includeMetadata - Include metadata in response
19
- * @param {boolean} permanentUrl - Request permanent URLs that never expire
24
+ * @param {number} urlExpires - URL expiration in seconds (0 = permanent, default)
25
+ */
26
+ export function getAsset(assetId: string, includeVariants?: boolean, includeMetadata?: boolean, urlExpires?: number): Promise<any>;
27
+ /**
28
+ * Update asset metadata
29
+ * Maps to: PATCH /api/assets/{id}
30
+ *
31
+ * @param {string} assetId - Asset ID
32
+ * @param {Object} data - Data to update
33
+ * @param {string} data.filename - New filename (optional)
34
+ * @param {string} data.folder - Folder slug or ID (optional, use null to remove from folder)
35
+ * @param {string} data.alt_text - Alt text (optional)
36
+ * @param {Object} data.custom_metadata - Custom metadata (optional)
37
+ * @returns {Promise<Object>} Updated asset
20
38
  */
21
- export function getAsset(assetId: string, includeVariants?: boolean, includeMetadata?: boolean, permanentUrl?: boolean): Promise<any>;
39
+ export function updateAsset(assetId: string, data: {
40
+ filename: string;
41
+ folder: string;
42
+ alt_text: string;
43
+ custom_metadata: any;
44
+ }): Promise<any>;
22
45
  /**
23
46
  * Delete asset (soft delete)
24
47
  * Maps to: DELETE /api/assets/{id}
@@ -40,8 +63,11 @@ export function generateVariant(assetId: any, { variant_name, width, height, cro
40
63
  /**
41
64
  * List variants for asset
42
65
  * Maps to: GET /api/assets/{id}/variants
66
+ *
67
+ * @param {string} assetId - Asset ID
68
+ * @param {number} urlExpires - URL expiration in seconds (0 = permanent, default)
43
69
  */
44
- export function listVariants(assetId: any): Promise<any>;
70
+ export function listVariants(assetId: string, urlExpires?: number): Promise<any>;
45
71
  /**
46
72
  * Delete variant
47
73
  * Maps to: DELETE /api/assets/{assetId}/variants/{variantId}
@@ -1 +1 @@
1
- {"version":3,"file":"assetsApi.d.ts","sourceRoot":"","sources":["../../../src/services/assetsApi.js"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,0CAFa,OAAO,KAAQ,CAkB3B;AAED;;;GAGG;AACH,kGAoBC;AAED;;;;;;;;GAQG;AACH,kCALW,MAAM,oBACN,OAAO,oBACP,OAAO,iBACP,OAAO,gBAqBjB;AAED;;;GAGG;AACH,wDAaC;AAED;;;GAGG;AACH;;;;;;;;iBAuCC;AAED;;;GAGG;AACH,yDAeC;AAED;;;GAGG;AACH,0EAaC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,2CAVW,MAAM,QACN,IAAI,YAEZ;IAAwB,IAAI,EAApB,MAAM;IACU,KAAK,EAArB,MAAM;IACU,MAAM,EAAtB,MAAM;IACU,MAAM,EAAtB,MAAM;IACW,YAAY,EAA7B,OAAO;CACf,GAAU,OAAO,KAAQ,CAiC3B;AAKD;;;GAGG;AACH,6DAGC;AAED;;;GAGG;AACH,+EAGC"}
1
+ {"version":3,"file":"assetsApi.d.ts","sourceRoot":"","sources":["../../../src/services/assetsApi.js"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,0CAFa,OAAO,KAAQ,CAuB3B;AAED;;;;;;;;GAQG;AACH,kCALW,IAAI,gBACJ,MAAM,GAAC,IAAI,mBACX,OAAO,WACP,MAAM,GAAC,IAAI,gBAuBrB;AAED;;;;;;;;GAQG;AACH,kCALW,MAAM,oBACN,OAAO,oBACP,OAAO,eACP,MAAM,gBAqBhB;AAED;;;;;;;;;;;GAWG;AACH,qCARW,MAAM,QAEd;IAAqB,QAAQ,EAArB,MAAM;IACO,MAAM,EAAnB,MAAM;IACO,QAAQ,EAArB,MAAM;IACO,eAAe;CACpC,GAAU,OAAO,KAAQ,CAgB3B;AAED;;;GAGG;AACH,wDAaC;AAED;;;GAGG;AACH;;;;;;;;iBAuCC;AAED;;;;;;GAMG;AACH,sCAHW,MAAM,eACN,MAAM,gBAqBhB;AAED;;;GAGG;AACH,0EAaC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,2CAVW,MAAM,QACN,IAAI,YAEZ;IAAwB,IAAI,EAApB,MAAM;IACU,KAAK,EAArB,MAAM;IACU,MAAM,EAAtB,MAAM;IACU,MAAM,EAAtB,MAAM;IACW,YAAY,EAA7B,OAAO;CACf,GAAU,OAAO,KAAQ,CAiC3B;AAKD;;;GAGG;AACH,6DAGC;AAED;;;GAGG;AACH,+EAGC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Lista carpetas del portal
3
+ * Maps to: GET /api/folders
4
+ *
5
+ * @param {Object} params - Parámetros de filtrado
6
+ * @param {string} params.visibility - Filtrar por visibilidad (public, internal, private)
7
+ * @param {boolean} params.include_counts - Incluir contador de assets (default: true)
8
+ * @returns {Promise<{folders: Array, total: number}>}
9
+ */
10
+ export function listFolders(params?: {
11
+ visibility: string;
12
+ include_counts: boolean;
13
+ }): Promise<{
14
+ folders: any[];
15
+ total: number;
16
+ }>;
17
+ /**
18
+ * Crear nueva carpeta
19
+ * Maps to: POST /api/folders
20
+ *
21
+ * @param {Object} data - Datos de la carpeta
22
+ * @param {string} data.name - Nombre de la carpeta (requerido)
23
+ * @param {string} data.slug - URL slug (opcional, se auto-genera si se omite)
24
+ * @param {string} data.description - Descripción (opcional)
25
+ * @param {string} data.visibility - public|internal|private (default: public)
26
+ * @returns {Promise<Object>} Carpeta creada
27
+ */
28
+ export function createFolder(data: {
29
+ name: string;
30
+ slug: string;
31
+ description: string;
32
+ visibility: string;
33
+ }): Promise<any>;
34
+ /**
35
+ * Obtener detalles de una carpeta
36
+ * Maps to: GET /api/folders/{id}
37
+ *
38
+ * @param {string} idOrSlug - ID o slug de la carpeta
39
+ * @returns {Promise<Object>} Carpeta con assets_count
40
+ */
41
+ export function getFolder(idOrSlug: string): Promise<any>;
42
+ /**
43
+ * Actualizar carpeta
44
+ * Maps to: PATCH /api/folders/{id}
45
+ *
46
+ * @param {string} idOrSlug - ID o slug de la carpeta
47
+ * @param {Object} data - Datos a actualizar
48
+ * @returns {Promise<Object>} Carpeta actualizada
49
+ */
50
+ export function updateFolder(idOrSlug: string, data: any): Promise<any>;
51
+ /**
52
+ * Eliminar carpeta
53
+ * Maps to: DELETE /api/folders/{id}
54
+ *
55
+ * @param {string} idOrSlug - ID o slug de la carpeta
56
+ * @param {boolean} force - Si true, mueve assets a "sin carpeta". Si false, falla si hay assets.
57
+ * @returns {Promise<Object>} Resultado de eliminación
58
+ */
59
+ export function deleteFolder(idOrSlug: string, force?: boolean): Promise<any>;
60
+ //# sourceMappingURL=foldersApi.d.ts.map