@templatical/media-library 0.35.0 → 0.37.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 (34) hide show
  1. package/README.md +38 -24
  2. package/dist/{ca-DnghH5Xn.js → ca-CGf3MuE2.js} +1 -5
  3. package/dist/cdn/chunks/{ca-DnghH5Xn.js → ca-CGf3MuE2.js} +2 -6
  4. package/dist/cdn/chunks/ca-CGf3MuE2.js.map +1 -0
  5. package/dist/{de-ByQyu2jv.js → cdn/chunks/de-D5ebAV5i.js} +3 -5
  6. package/dist/cdn/chunks/de-D5ebAV5i.js.map +1 -0
  7. package/dist/{es-Bcp-DbmC.js → cdn/chunks/es-BG--QNW0.js} +3 -5
  8. package/dist/cdn/chunks/es-BG--QNW0.js.map +1 -0
  9. package/dist/{fr-DXb0cCZG.js → cdn/chunks/fr-Mdi4AlCR.js} +3 -5
  10. package/dist/cdn/chunks/fr-Mdi4AlCR.js.map +1 -0
  11. package/dist/cdn/chunks/{icons-Ds4F8sQq.js → icons-DMM4tyQd.js} +1149 -1104
  12. package/dist/cdn/chunks/{icons-Ds4F8sQq.js.map → icons-DMM4tyQd.js.map} +1 -1
  13. package/dist/{nl-DGT1t3Be.js → cdn/chunks/nl-D-6hT8te.js} +3 -5
  14. package/dist/cdn/chunks/nl-D-6hT8te.js.map +1 -0
  15. package/dist/{pt-BR-C0Hzc26R.js → cdn/chunks/pt-BR-DMfAgDWi.js} +3 -5
  16. package/dist/cdn/chunks/pt-BR-DMfAgDWi.js.map +1 -0
  17. package/dist/cdn/media-library.css +1 -1
  18. package/dist/cdn/media-library.js +1456 -1844
  19. package/dist/cdn/media-library.js.map +1 -1
  20. package/dist/{cdn/chunks/de-ByQyu2jv.js → de-D5ebAV5i.js} +1 -7
  21. package/dist/{cdn/chunks/es-Bcp-DbmC.js → es-BG--QNW0.js} +1 -7
  22. package/dist/{cdn/chunks/fr-DXb0cCZG.js → fr-Mdi4AlCR.js} +1 -7
  23. package/dist/index.d.ts +103 -160
  24. package/dist/{cdn/chunks/nl-DGT1t3Be.js → nl-D-6hT8te.js} +1 -7
  25. package/dist/{cdn/chunks/pt-BR-C0Hzc26R.js → pt-BR-DMfAgDWi.js} +1 -7
  26. package/dist/templatical-media-library.css +1 -1
  27. package/dist/templatical-media-library.js +1513 -1475
  28. package/package.json +4 -5
  29. package/dist/cdn/chunks/ca-DnghH5Xn.js.map +0 -1
  30. package/dist/cdn/chunks/de-ByQyu2jv.js.map +0 -1
  31. package/dist/cdn/chunks/es-Bcp-DbmC.js.map +0 -1
  32. package/dist/cdn/chunks/fr-DXb0cCZG.js.map +0 -1
  33. package/dist/cdn/chunks/nl-DGT1t3Be.js.map +0 -1
  34. package/dist/cdn/chunks/pt-BR-C0Hzc26R.js.map +0 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![npm version](https://img.shields.io/npm/v/@templatical/media-library?label=npm&color=cb3837)](https://www.npmjs.com/package/@templatical/media-library)
6
6
  [![License](https://img.shields.io/badge/license-FSL--1.1--MIT-blue)](https://github.com/templatical/sdk/blob/main/LICENSE)
7
7
 
8
- Browse, upload, organize, crop, and replace media assets. Used by [`@templatical/editor`](https://www.npmjs.com/package/@templatical/editor)'s Cloud build, and available as a standalone SDK for any app that needs a media manager.
8
+ Browse, upload, organize, crop, and replace media assets. Used by [`@templatical/editor`](https://www.npmjs.com/package/@templatical/editor) behind a `MediaProvider` (the editor bundles the Browse UI — you do not install this package for `init({ media })`), and available as a standalone SDK for any app that needs a media manager.
9
9
 
10
10
  ## Install
11
11
 
@@ -13,9 +13,9 @@ Browse, upload, organize, crop, and replace media assets. Used by [`@templatical
13
13
  npm install @templatical/media-library
14
14
  ```
15
15
 
16
- Peer deps: `vue@^3.5`, `tailwindcss@^4`.
16
+ Peer dep: `vue@^3.5`. Not needed next to `@templatical/editor` — that package already contains the modal.
17
17
 
18
- > **Authentication.** The media library connects to Templatical Cloud and authenticates against your backend. Your server exposes a token endpoint (returning a short-lived JWT for the current user/project), and you pass that endpoint URL as `auth.url`. See the [authentication guide](https://docs.templatical.com/cloud/authentication) for the full setup.
18
+ > **Storage.** The library is storage-agnostic. Pass a `MediaProvider` — Cloud's adapter is `createCloudMediaProvider` from `@templatical/core/cloud`. See the [media contract](https://docs.templatical.com/backend/media) and the [Cloud adapter](https://docs.templatical.com/cloud/media-library).
19
19
 
20
20
  ## Usage
21
21
 
@@ -23,15 +23,14 @@ Peer deps: `vue@^3.5`, `tailwindcss@^4`.
23
23
 
24
24
  ```ts
25
25
  import { init } from '@templatical/media-library';
26
+ import { createCloudMediaProvider } from '@templatical/core/cloud';
26
27
  import '@templatical/media-library/style.css';
27
28
 
28
29
  const media = await init({
29
30
  container: '#media',
30
- auth: {
31
- url: 'https://your-app.com/api/templatical/token',
32
- },
33
- onSelect(item) {
34
- console.log('Picked:', item.url);
31
+ provider: createCloudMediaProvider(authManager),
32
+ onSelect(asset) {
33
+ console.log('Picked:', asset.url);
35
34
  },
36
35
  });
37
36
 
@@ -39,6 +38,8 @@ const media = await init({
39
38
  media.unmount();
40
39
  ```
41
40
 
41
+ `onSelect` is optional. `accept` narrows categories; omit it for every category. Any object implementing `MediaProvider` works — Cloud is one adapter.
42
+
42
43
  ### Vue component
43
44
 
44
45
  Use `MediaLibraryModal` inside a Vue 3 app. See [docs](https://docs.templatical.com/cloud/media-library) for the full prop reference.
@@ -48,31 +49,42 @@ import { MediaLibraryModal } from '@templatical/media-library';
48
49
  import '@templatical/media-library/style.css';
49
50
  ```
50
51
 
52
+ ```vue
53
+ <MediaLibraryModal
54
+ :visible="open"
55
+ :provider="provider"
56
+ :on-error="onError"
57
+ @select="onSelect"
58
+ @close="open = false"
59
+ />
60
+ ```
61
+
51
62
  ### Composable (build your own UI)
52
63
 
53
64
  ```ts
54
- import { AuthManager } from '@templatical/core/cloud';
55
65
  import { useMediaLibrary } from '@templatical/media-library';
56
-
57
- const authManager = new AuthManager({
58
- url: 'https://your-app.com/api/templatical/token',
59
- });
60
- await authManager.initialize();
66
+ import { createCloudMediaProvider } from '@templatical/core/cloud';
61
67
 
62
68
  const lib = useMediaLibrary({
63
- projectId: authManager.projectId,
64
- authManager,
69
+ provider: createCloudMediaProvider(authManager),
70
+ onError(error) {
71
+ console.error(error);
72
+ },
65
73
  });
66
74
  ```
67
75
 
68
76
  ### API client (low-level)
69
77
 
78
+ For server-side or programmatic media operations, `MediaApiClient` is exported from `@templatical/core/cloud`. `createCloudMediaProvider` maps the response onto `MediaProvider`.
79
+
70
80
  ```ts
71
- import { AuthManager } from '@templatical/core/cloud';
72
- import { MediaApiClient } from '@templatical/media-library';
81
+ import { MediaApiClient, createCloudMediaProvider } from '@templatical/core/cloud';
73
82
 
74
- const api = new MediaApiClient(authManager);
75
- const response = await api.browseMedia({ folder_id: null });
83
+ const client = new MediaApiClient(authManager);
84
+ const response = await client.browseMedia({ folderId: null });
85
+
86
+ const provider = createCloudMediaProvider(authManager);
87
+ const page = await provider.list();
76
88
  ```
77
89
 
78
90
  ## Exports
@@ -80,18 +92,20 @@ const response = await api.browseMedia({ folder_id: null });
80
92
  - **Standalone SDK** — `init()`, `unmount()`
81
93
  - **Vue components** — `MediaLibraryModal` + 12 sub-components (grid, upload zone, folder tree, preview panel, edit/replace/import modals)
82
94
  - **Composables** — `useMediaLibrary`, `useMediaCategories`, `useMediaPicker`, `useI18n`
83
- - **API client** — `MediaApiClient`
84
- - **Types** — `MediaItem`, `MediaFolder`, `MediaCategory`, `MediaConversion`, `MediaBrowseParams/Response`, `MediaUsageInfo/Response`, `MediaConfig`, etc.
95
+ - **Types** — `MediaAsset`, `MediaFolder`, `MediaCategory`, `MediaRequestContext`, `MediaUsageInfo`, `MediaResult` (re-exported from `@templatical/types`)
96
+
97
+ The `MediaProvider` / `MediaAsset` contract lives in [`@templatical/types`](https://www.npmjs.com/package/@templatical/types).
85
98
 
86
99
  ## Inside the editor's Shadow DOM
87
100
 
88
- When the editor mounts in its default shadow-DOM mode (`shadowDom: true`), the media library invocation teleports into the editor's shadow-aware popover root rather than `document.body`. The `MediaLibraryModal` accepts an optional `popoverTarget?: HTMLElement | null` prop and provides it to its three nested sub-modals (replace, edit, import-url) so the entire media UI lives inside the editor's shadow root. Standalone-SDK consumers (`init({ container })`) keep the previous body-level mount.
101
+ When the editor mounts in its default shadow-DOM mode (`shadowDom: true`), the media library invocation teleports into the editor's shadow-aware popover root rather than `document.body`. The `MediaLibraryModal` accepts an optional `popoverTarget?: HTMLElement | null` prop and provides it to its three nested sub-modals (replace, edit, import-url) so the entire media UI lives inside the editor's shadow root. Standalone-SDK consumers (`init({ container })`) mount at `document.body`.
89
102
 
90
103
  If you embed `MediaLibraryModal` manually inside another shadow-DOM-mounted UI, pass `popoverTarget` to keep its sub-modals scoped to your shadow root.
91
104
 
92
105
  ## Documentation
93
106
 
94
- - [Media library guide](https://docs.templatical.com/cloud/media-library)
107
+ - [Media contract](https://docs.templatical.com/backend/media)
108
+ - [Cloud media library](https://docs.templatical.com/cloud/media-library)
95
109
  - [Shadow DOM (editor)](https://docs.templatical.com/guide/shadow-dom)
96
110
 
97
111
  Full reference at **[docs.templatical.com](https://docs.templatical.com)**.
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Carpeta nova",
12
12
  folderName: "Nom de la carpeta",
13
13
  noFiles: "No s'ha trobat cap fitxer",
14
+ noSearchResults: "Cap fitxer no coincideix amb la cerca",
14
15
  dropOrClick: "Deixa anar els fitxers aquí o fes clic per pujar-los",
15
16
  acceptedFormats: "Imatges, PDF, vídeo, àudio i documents (màx. 10 MB)",
16
17
  uploading: "S'està pujant...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importa",
57
58
  importing: "S'està important...",
58
59
  importError: "No s'ha pogut importar des de l'URL",
59
- conversionLabel: "Mida",
60
- conversionOriginal: "Original",
61
- conversionSmall: "Petita (150 px)",
62
- conversionMedium: "Mitjana (600 px)",
63
- conversionLarge: "Gran (1200 px)",
64
60
  replaceFile: "Substitueix el fitxer",
65
61
  replaceWarningTitle: "Substitueix el fitxer",
66
62
  replaceWarningMessage: "Estàs a punt de substituir aquest fitxer. El fitxer de substitució ha de tenir la mateixa extensió ({extension}).",
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Carpeta nova",
12
12
  folderName: "Nom de la carpeta",
13
13
  noFiles: "No s'ha trobat cap fitxer",
14
+ noSearchResults: "Cap fitxer no coincideix amb la cerca",
14
15
  dropOrClick: "Deixa anar els fitxers aquí o fes clic per pujar-los",
15
16
  acceptedFormats: "Imatges, PDF, vídeo, àudio i documents (màx. 10 MB)",
16
17
  uploading: "S'està pujant...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importa",
57
58
  importing: "S'està important...",
58
59
  importError: "No s'ha pogut importar des de l'URL",
59
- conversionLabel: "Mida",
60
- conversionOriginal: "Original",
61
- conversionSmall: "Petita (150 px)",
62
- conversionMedium: "Mitjana (600 px)",
63
- conversionLarge: "Gran (1200 px)",
64
60
  replaceFile: "Substitueix el fitxer",
65
61
  replaceWarningTitle: "Substitueix el fitxer",
66
62
  replaceWarningMessage: "Estàs a punt de substituir aquest fitxer. El fitxer de substitució ha de tenir la mateixa extensió ({extension}).",
@@ -86,4 +82,4 @@ var e = { mediaLibrary: {
86
82
  //#endregion
87
83
  export { e as default };
88
84
 
89
- //# sourceMappingURL=ca-DnghH5Xn.js.map
85
+ //# sourceMappingURL=ca-CGf3MuE2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-CGf3MuE2.js","names":[],"sources":["../../../src/i18n/locales/ca.ts"],"sourcesContent":["const ca = {\n mediaLibrary: {\n title: \"Biblioteca multimèdia\",\n searchPlaceholder: \"Cerca fitxers...\",\n allFiles: \"Tots els fitxers\",\n filterAll: \"Tots els tipus\",\n filterImages: \"Imatges\",\n filterDocuments: \"Documents\",\n filterVideos: \"Vídeos\",\n filterAudio: \"Àudio\",\n newFolder: \"Carpeta nova\",\n folderName: \"Nom de la carpeta\",\n noFiles: \"No s'ha trobat cap fitxer\",\n noSearchResults: \"Cap fitxer no coincideix amb la cerca\",\n dropOrClick: \"Deixa anar els fitxers aquí o fes clic per pujar-los\",\n acceptedFormats: \"Imatges, PDF, vídeo, àudio i documents (màx. 10 MB)\",\n uploading: \"S'està pujant...\",\n uploadingProgress: \"S'està pujant {current} de {total}...\",\n selectImage: \"Selecciona una imatge\",\n selectFile: \"Selecciona un fitxer\",\n deleteSelected: \"Suprimeix\",\n copyUrl: \"Copia l'URL\",\n copied: \"S'ha copiat!\",\n browseMedia: \"Explora la biblioteca multimèdia\",\n renameFolder: \"Canvia el nom de la carpeta\",\n addSubfolder: \"Afegeix una subcarpeta\",\n subfolderName: \"Nom de la subcarpeta\",\n sortNewest: \"Més recents primer\",\n sortOldest: \"Més antics primer\",\n sortNameAsc: \"Nom de l'A a la Z\",\n sortNameDesc: \"Nom de la Z a l'A\",\n sortSizeAsc: \"Més petits primer\",\n sortSizeDesc: \"Més grans primer\",\n moveSelected: \"Mou\",\n moveToRoot: \"Tots els fitxers\",\n currentFolder: \"(actual)\",\n confirmDelete: \"Ho confirmes?\",\n renameFile: \"Canvia el nom\",\n editFile: \"Edita el fitxer\",\n fileName: \"Nom del fitxer\",\n altText: \"Text alternatiu\",\n altTextPlaceholder: \"Descriu aquesta imatge per millorar l'accessibilitat\",\n saveChanges: \"Desa\",\n cancel: \"Cancel·la\",\n frequentlyUsed: \"Utilitzats freqüentment\",\n deleteWarningTitle: \"Suprimeix el fitxer\",\n deleteWarningMessage: \"N'estàs segur? Aquesta acció és irreversible.\",\n deleteWarningUsageNote:\n \"Els fitxers següents s'utilitzen en plantilles. Si els suprimeixes, és possible que aquestes plantilles deixin de funcionar correctament.\",\n deleteAnyway: \"Suprimeix\",\n usedInTemplates: \"Utilitzat en {count} plantilla(es)\",\n viewGrid: \"Visualització de quadrícula\",\n viewList: \"Visualització de llista\",\n showFolders: \"Mostra les carpetes\",\n hideFolders: \"Amaga les carpetes\",\n importFromUrl: \"Importa des d'un URL\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Importa\",\n importing: \"S'està important...\",\n importError: \"No s'ha pogut importar des de l'URL\",\n replaceFile: \"Substitueix el fitxer\",\n replaceWarningTitle: \"Substitueix el fitxer\",\n replaceWarningMessage:\n \"Estàs a punt de substituir aquest fitxer. El fitxer de substitució ha de tenir la mateixa extensió ({extension}).\",\n replaceWarningUsageNote:\n \"Aquest fitxer s'utilitza en {count} plantilla(es). En substituir-lo, s'actualitzaran totes les referències.\",\n replaceSelectFile: \"Selecciona el fitxer de substitució\",\n replace: \"Substitueix\",\n replacing: \"S'està substituint...\",\n replaceError: \"No s'ha pogut substituir el fitxer\",\n saving: \"S'està desant...\",\n cropAspectRatio: \"Relació d'aspecte\",\n cropFree: \"Lliure\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Original\",\n cropMaxWidth: \"Amplada màxima\",\n cropMaxHeight: \"Alçada màxima\",\n cropOutputSize: \"Mida de sortida\",\n cropPixels: \"px\",\n cropOptional: \"(opcional)\",\n storageTooltip: \"{used} de {total} utilitzats ({remaining} restants)\",\n },\n};\nexport default ca;\n"],"mappings":";AAAA,IAAM,IAAK,EACT,cAAc;CACZ,OAAO;CACP,mBAAmB;CACnB,UAAU;CACV,WAAW;CACX,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,SAAS;CACT,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,QAAQ;CACR,aAAa;CACb,cAAc;CACd,cAAc;CACd,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,cAAc;CACd,cAAc;CACd,YAAY;CACZ,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,SAAS;CACT,oBAAoB;CACpB,aAAa;CACb,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,sBAAsB;CACtB,wBACE;CACF,cAAc;CACd,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,aAAa;CACb,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,QAAQ;CACR,WAAW;CACX,aAAa;CACb,aAAa;CACb,qBAAqB;CACrB,uBACE;CACF,yBACE;CACF,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,cAAc;CACd,QAAQ;CACR,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,cAAc;CACd,gBAAgB;AAClB,EACF"}
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Neuer Ordner",
12
12
  folderName: "Ordnername",
13
13
  noFiles: "Keine Dateien gefunden",
14
+ noSearchResults: "Keine Dateien entsprechen Ihrer Suche",
14
15
  dropOrClick: "Dateien hierher ziehen oder klicken zum Hochladen",
15
16
  acceptedFormats: "Bilder, PDF, Video, Audio, Dokumente (max. 10 MB)",
16
17
  uploading: "Wird hochgeladen...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importieren",
57
58
  importing: "Wird importiert...",
58
59
  importError: "Import von URL fehlgeschlagen",
59
- conversionLabel: "Groesse",
60
- conversionOriginal: "Original",
61
- conversionSmall: "Klein (150px)",
62
- conversionMedium: "Mittel (600px)",
63
- conversionLarge: "Gross (1200px)",
64
60
  replaceFile: "Datei ersetzen",
65
61
  replaceWarningTitle: "Datei ersetzen",
66
62
  replaceWarningMessage: "Sie sind dabei, diese Datei zu ersetzen. Die Ersatzdatei muss dieselbe Dateierweiterung haben ({extension}).",
@@ -85,3 +81,5 @@ var e = { mediaLibrary: {
85
81
  } };
86
82
  //#endregion
87
83
  export { e as default };
84
+
85
+ //# sourceMappingURL=de-D5ebAV5i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de-D5ebAV5i.js","names":[],"sources":["../../../src/i18n/locales/de.ts"],"sourcesContent":["import type en from \"./en\";\n\nconst de: typeof en = {\n mediaLibrary: {\n title: \"Medienbibliothek\",\n searchPlaceholder: \"Dateien suchen...\",\n allFiles: \"Alle Dateien\",\n filterAll: \"Alle Typen\",\n filterImages: \"Bilder\",\n filterDocuments: \"Dokumente\",\n filterVideos: \"Videos\",\n filterAudio: \"Audio\",\n newFolder: \"Neuer Ordner\",\n folderName: \"Ordnername\",\n noFiles: \"Keine Dateien gefunden\",\n noSearchResults: \"Keine Dateien entsprechen Ihrer Suche\",\n dropOrClick: \"Dateien hierher ziehen oder klicken zum Hochladen\",\n acceptedFormats: \"Bilder, PDF, Video, Audio, Dokumente (max. 10 MB)\",\n uploading: \"Wird hochgeladen...\",\n uploadingProgress: \"{current} von {total} wird hochgeladen...\",\n selectImage: \"Bild auswählen\",\n selectFile: \"Datei auswählen\",\n deleteSelected: \"Löschen\",\n copyUrl: \"URL kopieren\",\n copied: \"Kopiert!\",\n browseMedia: \"Medienbibliothek durchsuchen\",\n renameFolder: \"Ordner umbenennen\",\n addSubfolder: \"Unterordner hinzufügen\",\n subfolderName: \"Unterordnername\",\n sortNewest: \"Neueste zuerst\",\n sortOldest: \"Älteste zuerst\",\n sortNameAsc: \"Name A-Z\",\n sortNameDesc: \"Name Z-A\",\n sortSizeAsc: \"Kleinste zuerst\",\n sortSizeDesc: \"Größte zuerst\",\n moveSelected: \"Verschieben\",\n moveToRoot: \"Alle Dateien\",\n currentFolder: \"(aktuell)\",\n confirmDelete: \"Bestätigen?\",\n renameFile: \"Umbenennen\",\n editFile: \"Datei bearbeiten\",\n fileName: \"Dateiname\",\n altText: \"Alternativtext\",\n altTextPlaceholder: \"Bildbeschreibung für Barrierefreiheit\",\n saveChanges: \"Speichern\",\n cancel: \"Abbrechen\",\n frequentlyUsed: \"Häufig verwendet\",\n deleteWarningTitle: \"Datei löschen\",\n deleteWarningMessage:\n \"Sind Sie sicher? Diese Aktion kann nicht rückgängig gemacht werden.\",\n deleteWarningUsageNote:\n \"Die folgenden Dateien werden in Vorlagen verwendet. Das Löschen kann diese Vorlagen beschädigen.\",\n deleteAnyway: \"Löschen\",\n usedInTemplates: \"In {count} Vorlage(n) verwendet\",\n viewGrid: \"Rasteransicht\",\n viewList: \"Listenansicht\",\n showFolders: \"Ordner anzeigen\",\n hideFolders: \"Ordner ausblenden\",\n importFromUrl: \"Von URL importieren\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Importieren\",\n importing: \"Wird importiert...\",\n importError: \"Import von URL fehlgeschlagen\",\n replaceFile: \"Datei ersetzen\",\n replaceWarningTitle: \"Datei ersetzen\",\n replaceWarningMessage:\n \"Sie sind dabei, diese Datei zu ersetzen. Die Ersatzdatei muss dieselbe Dateierweiterung haben ({extension}).\",\n replaceWarningUsageNote:\n \"Diese Datei wird in {count} Vorlage(n) verwendet. Das Ersetzen aktualisiert alle Verweise.\",\n replaceSelectFile: \"Ersatzdatei auswählen\",\n replace: \"Ersetzen\",\n replacing: \"Wird ersetzt...\",\n replaceError: \"Ersetzen der Datei fehlgeschlagen\",\n saving: \"Wird gespeichert...\",\n cropAspectRatio: \"Seitenverhältnis\",\n cropFree: \"Frei\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Original\",\n cropMaxWidth: \"Max. Breite\",\n cropMaxHeight: \"Max. Höhe\",\n cropOutputSize: \"Ausgabegröße\",\n cropPixels: \"px\",\n cropOptional: \"(optional)\",\n storageTooltip: \"{used} von {total} verwendet ({remaining} verfügbar)\",\n },\n};\n\nexport default de;\n"],"mappings":";AAEA,IAAM,IAAgB,EACpB,cAAc;CACZ,OAAO;CACP,mBAAmB;CACnB,UAAU;CACV,WAAW;CACX,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,SAAS;CACT,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,QAAQ;CACR,aAAa;CACb,cAAc;CACd,cAAc;CACd,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,cAAc;CACd,cAAc;CACd,YAAY;CACZ,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,SAAS;CACT,oBAAoB;CACpB,aAAa;CACb,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,sBACE;CACF,wBACE;CACF,cAAc;CACd,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,aAAa;CACb,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,QAAQ;CACR,WAAW;CACX,aAAa;CACb,aAAa;CACb,qBAAqB;CACrB,uBACE;CACF,yBACE;CACF,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,cAAc;CACd,QAAQ;CACR,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,cAAc;CACd,gBAAgB;AAClB,EACF"}
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Nueva carpeta",
12
12
  folderName: "Nombre de la carpeta",
13
13
  noFiles: "No se han encontrado archivos",
14
+ noSearchResults: "Ningún archivo coincide con tu búsqueda",
14
15
  dropOrClick: "Suelta los archivos aquí o haz clic para subirlos",
15
16
  acceptedFormats: "Imágenes, PDF, vídeo, audio y documentos (máx. 10 MB)",
16
17
  uploading: "Subiendo...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importar",
57
58
  importing: "Importando...",
58
59
  importError: "No se ha podido importar desde la URL",
59
- conversionLabel: "Tamaño",
60
- conversionOriginal: "Original",
61
- conversionSmall: "Pequeño (150 px)",
62
- conversionMedium: "Mediano (600 px)",
63
- conversionLarge: "Grande (1200 px)",
64
60
  replaceFile: "Reemplazar archivo",
65
61
  replaceWarningTitle: "Reemplazar archivo",
66
62
  replaceWarningMessage: "Estás a punto de reemplazar este archivo. El archivo de reemplazo debe tener la misma extensión ({extension}).",
@@ -85,3 +81,5 @@ var e = { mediaLibrary: {
85
81
  } };
86
82
  //#endregion
87
83
  export { e as default };
84
+
85
+ //# sourceMappingURL=es-BG--QNW0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es-BG--QNW0.js","names":[],"sources":["../../../src/i18n/locales/es.ts"],"sourcesContent":["const es = {\n mediaLibrary: {\n title: \"Biblioteca multimedia\",\n searchPlaceholder: \"Buscar archivos...\",\n allFiles: \"Todos los archivos\",\n filterAll: \"Todos los tipos\",\n filterImages: \"Imágenes\",\n filterDocuments: \"Documentos\",\n filterVideos: \"Vídeos\",\n filterAudio: \"Audio\",\n newFolder: \"Nueva carpeta\",\n folderName: \"Nombre de la carpeta\",\n noFiles: \"No se han encontrado archivos\",\n noSearchResults: \"Ningún archivo coincide con tu búsqueda\",\n dropOrClick: \"Suelta los archivos aquí o haz clic para subirlos\",\n acceptedFormats: \"Imágenes, PDF, vídeo, audio y documentos (máx. 10 MB)\",\n uploading: \"Subiendo...\",\n uploadingProgress: \"Subiendo {current} de {total}...\",\n selectImage: \"Seleccionar imagen\",\n selectFile: \"Seleccionar archivo\",\n deleteSelected: \"Eliminar\",\n copyUrl: \"Copiar URL\",\n copied: \"¡Copiada!\",\n browseMedia: \"Explorar la biblioteca multimedia\",\n renameFolder: \"Cambiar nombre de la carpeta\",\n addSubfolder: \"Añadir subcarpeta\",\n subfolderName: \"Nombre de la subcarpeta\",\n sortNewest: \"Más recientes primero\",\n sortOldest: \"Más antiguos primero\",\n sortNameAsc: \"Nombre de A a Z\",\n sortNameDesc: \"Nombre de Z a A\",\n sortSizeAsc: \"Más pequeños primero\",\n sortSizeDesc: \"Más grandes primero\",\n moveSelected: \"Mover\",\n moveToRoot: \"Todos los archivos\",\n currentFolder: \"(actual)\",\n confirmDelete: \"¿Confirmar?\",\n renameFile: \"Cambiar nombre\",\n editFile: \"Editar archivo\",\n fileName: \"Nombre del archivo\",\n altText: \"Texto alternativo\",\n altTextPlaceholder: \"Describe esta imagen para mejorar la accesibilidad\",\n saveChanges: \"Guardar\",\n cancel: \"Cancelar\",\n frequentlyUsed: \"Usados frecuentemente\",\n deleteWarningTitle: \"Eliminar archivo\",\n deleteWarningMessage: \"¿Estás seguro? Esta acción es irreversible.\",\n deleteWarningUsageNote:\n \"Los siguientes archivos se utilizan en plantillas. Si los eliminas, es posible que esas plantillas dejen de funcionar correctamente.\",\n deleteAnyway: \"Eliminar\",\n usedInTemplates: \"Usado en {count} plantilla(s)\",\n viewGrid: \"Vista de cuadrícula\",\n viewList: \"Vista de lista\",\n showFolders: \"Mostrar carpetas\",\n hideFolders: \"Ocultar carpetas\",\n importFromUrl: \"Importar desde URL\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Importar\",\n importing: \"Importando...\",\n importError: \"No se ha podido importar desde la URL\",\n replaceFile: \"Reemplazar archivo\",\n replaceWarningTitle: \"Reemplazar archivo\",\n replaceWarningMessage:\n \"Estás a punto de reemplazar este archivo. El archivo de reemplazo debe tener la misma extensión ({extension}).\",\n replaceWarningUsageNote:\n \"Este archivo se utiliza en {count} plantilla(s). Al reemplazarlo, se actualizarán todas las referencias.\",\n replaceSelectFile: \"Seleccionar archivo de reemplazo\",\n replace: \"Reemplazar\",\n replacing: \"Reemplazando...\",\n replaceError: \"No se ha podido reemplazar el archivo\",\n saving: \"Guardando...\",\n cropAspectRatio: \"Relación de aspecto\",\n cropFree: \"Libre\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Original\",\n cropMaxWidth: \"Anchura máxima\",\n cropMaxHeight: \"Altura máxima\",\n cropOutputSize: \"Tamaño de salida\",\n cropPixels: \"px\",\n cropOptional: \"(opcional)\",\n storageTooltip: \"{used} de {total} usados ({remaining} restantes)\",\n },\n};\n\nexport default es;\n"],"mappings":";AAAA,IAAM,IAAK,EACT,cAAc;CACZ,OAAO;CACP,mBAAmB;CACnB,UAAU;CACV,WAAW;CACX,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,SAAS;CACT,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,QAAQ;CACR,aAAa;CACb,cAAc;CACd,cAAc;CACd,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,cAAc;CACd,cAAc;CACd,YAAY;CACZ,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,SAAS;CACT,oBAAoB;CACpB,aAAa;CACb,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,sBAAsB;CACtB,wBACE;CACF,cAAc;CACd,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,aAAa;CACb,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,QAAQ;CACR,WAAW;CACX,aAAa;CACb,aAAa;CACb,qBAAqB;CACrB,uBACE;CACF,yBACE;CACF,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,cAAc;CACd,QAAQ;CACR,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,cAAc;CACd,gBAAgB;AAClB,EACF"}
@@ -11,6 +11,7 @@ var e = { mediaLibrary: {
11
11
  newFolder: "Nouveau dossier",
12
12
  folderName: "Nom du dossier",
13
13
  noFiles: "Aucun fichier trouvé",
14
+ noSearchResults: "Aucun fichier ne correspond à votre recherche",
14
15
  dropOrClick: "Déposez des fichiers ici ou cliquez pour téléverser",
15
16
  acceptedFormats: "Images, PDF, vidéo, audio, documents (max 10 Mo)",
16
17
  uploading: "Téléversement...",
@@ -56,11 +57,6 @@ var e = { mediaLibrary: {
56
57
  import: "Importer",
57
58
  importing: "Importation...",
58
59
  importError: "Échec de l'importation depuis l'URL",
59
- conversionLabel: "Taille",
60
- conversionOriginal: "Originale",
61
- conversionSmall: "Petite (150px)",
62
- conversionMedium: "Moyenne (600px)",
63
- conversionLarge: "Grande (1200px)",
64
60
  replaceFile: "Remplacer le fichier",
65
61
  replaceWarningTitle: "Remplacer le fichier",
66
62
  replaceWarningMessage: "Vous êtes sur le point de remplacer ce fichier. Le remplacement doit avoir la même extension ({extension}).",
@@ -85,3 +81,5 @@ var e = { mediaLibrary: {
85
81
  } };
86
82
  //#endregion
87
83
  export { e as default };
84
+
85
+ //# sourceMappingURL=fr-Mdi4AlCR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr-Mdi4AlCR.js","names":[],"sources":["../../../src/i18n/locales/fr.ts"],"sourcesContent":["const fr = {\n mediaLibrary: {\n title: \"Médiathèque\",\n searchPlaceholder: \"Rechercher des fichiers...\",\n allFiles: \"Tous les fichiers\",\n filterAll: \"Tous les types\",\n filterImages: \"Images\",\n filterDocuments: \"Documents\",\n filterVideos: \"Vidéos\",\n filterAudio: \"Audio\",\n newFolder: \"Nouveau dossier\",\n folderName: \"Nom du dossier\",\n noFiles: \"Aucun fichier trouvé\",\n noSearchResults: \"Aucun fichier ne correspond à votre recherche\",\n dropOrClick: \"Déposez des fichiers ici ou cliquez pour téléverser\",\n acceptedFormats: \"Images, PDF, vidéo, audio, documents (max 10 Mo)\",\n uploading: \"Téléversement...\",\n uploadingProgress: \"Téléversement de {current} sur {total}...\",\n selectImage: \"Sélectionner l'image\",\n selectFile: \"Sélectionner le fichier\",\n deleteSelected: \"Supprimer\",\n copyUrl: \"Copier l'URL\",\n copied: \"Copié !\",\n browseMedia: \"Parcourir la médiathèque\",\n renameFolder: \"Renommer le dossier\",\n addSubfolder: \"Ajouter un sous-dossier\",\n subfolderName: \"Nom du sous-dossier\",\n sortNewest: \"Plus récents d'abord\",\n sortOldest: \"Plus anciens d'abord\",\n sortNameAsc: \"Nom A-Z\",\n sortNameDesc: \"Nom Z-A\",\n sortSizeAsc: \"Plus petits d'abord\",\n sortSizeDesc: \"Plus grands d'abord\",\n moveSelected: \"Déplacer\",\n moveToRoot: \"Tous les fichiers\",\n currentFolder: \"(actuel)\",\n confirmDelete: \"Confirmer ?\",\n renameFile: \"Renommer\",\n editFile: \"Modifier le fichier\",\n fileName: \"Nom de fichier\",\n altText: \"Texte alternatif\",\n altTextPlaceholder: \"Décrivez cette image pour l'accessibilité\",\n saveChanges: \"Enregistrer\",\n cancel: \"Annuler\",\n frequentlyUsed: \"Fréquemment utilisés\",\n deleteWarningTitle: \"Supprimer le fichier\",\n deleteWarningMessage: \"Êtes-vous sûr ? Cette action est irréversible.\",\n deleteWarningUsageNote:\n \"Les fichiers suivants sont utilisés dans des modèles. Les supprimer peut casser ces modèles.\",\n deleteAnyway: \"Supprimer\",\n usedInTemplates: \"Utilisé dans {count} modèle(s)\",\n viewGrid: \"Vue en grille\",\n viewList: \"Vue en liste\",\n showFolders: \"Afficher les dossiers\",\n hideFolders: \"Masquer les dossiers\",\n importFromUrl: \"Importer depuis une URL\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Importer\",\n importing: \"Importation...\",\n importError: \"Échec de l'importation depuis l'URL\",\n replaceFile: \"Remplacer le fichier\",\n replaceWarningTitle: \"Remplacer le fichier\",\n replaceWarningMessage:\n \"Vous êtes sur le point de remplacer ce fichier. Le remplacement doit avoir la même extension ({extension}).\",\n replaceWarningUsageNote:\n \"Ce fichier est utilisé dans {count} modèle(s). Le remplacer mettra à jour toutes les références.\",\n replaceSelectFile: \"Sélectionner le fichier de remplacement\",\n replace: \"Remplacer\",\n replacing: \"Remplacement...\",\n replaceError: \"Échec du remplacement du fichier\",\n saving: \"Enregistrement...\",\n cropAspectRatio: \"Proportions\",\n cropFree: \"Libre\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Originales\",\n cropMaxWidth: \"Largeur max\",\n cropMaxHeight: \"Hauteur max\",\n cropOutputSize: \"Taille de sortie\",\n cropPixels: \"px\",\n cropOptional: \"(facultatif)\",\n storageTooltip: \"{used} sur {total} utilisés ({remaining} restants)\",\n },\n};\n\nexport default fr;\n"],"mappings":";AAAA,IAAM,IAAK,EACT,cAAc;CACZ,OAAO;CACP,mBAAmB;CACnB,UAAU;CACV,WAAW;CACX,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb,WAAW;CACX,YAAY;CACZ,SAAS;CACT,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,QAAQ;CACR,aAAa;CACb,cAAc;CACd,cAAc;CACd,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,aAAa;CACb,cAAc;CACd,cAAc;CACd,YAAY;CACZ,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,UAAU;CACV,SAAS;CACT,oBAAoB;CACpB,aAAa;CACb,QAAQ;CACR,gBAAgB;CAChB,oBAAoB;CACpB,sBAAsB;CACtB,wBACE;CACF,cAAc;CACd,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,aAAa;CACb,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,QAAQ;CACR,WAAW;CACX,aAAa;CACb,aAAa;CACb,qBAAqB;CACrB,uBACE;CACF,yBACE;CACF,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,cAAc;CACd,QAAQ;CACR,iBAAiB;CACjB,UAAU;CACV,YAAY;CACZ,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,YAAY;CACZ,cAAc;CACd,gBAAgB;AAClB,EACF"}