@strapi/upload 5.36.0 → 5.36.1

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 (89) hide show
  1. package/dist/admin/future/App.js +5 -12
  2. package/dist/admin/future/App.js.map +1 -1
  3. package/dist/admin/future/App.mjs +5 -12
  4. package/dist/admin/future/App.mjs.map +1 -1
  5. package/dist/admin/future/components/UploadProgressDialog.js +494 -0
  6. package/dist/admin/future/components/UploadProgressDialog.js.map +1 -0
  7. package/dist/admin/future/components/UploadProgressDialog.mjs +473 -0
  8. package/dist/admin/future/components/UploadProgressDialog.mjs.map +1 -0
  9. package/dist/admin/future/pages/Assets/AssetsPage.js +149 -180
  10. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
  11. package/dist/admin/future/pages/Assets/AssetsPage.mjs +156 -187
  12. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
  13. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js +127 -0
  14. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -0
  15. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs +105 -0
  16. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -0
  17. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js +77 -0
  18. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -0
  19. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs +74 -0
  20. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -0
  21. package/dist/admin/future/services/api.js +419 -9
  22. package/dist/admin/future/services/api.js.map +1 -1
  23. package/dist/admin/future/services/api.mjs +417 -9
  24. package/dist/admin/future/services/api.mjs.map +1 -1
  25. package/dist/admin/future/store/hooks.js +10 -0
  26. package/dist/admin/future/store/hooks.js.map +1 -0
  27. package/dist/admin/future/store/hooks.mjs +7 -0
  28. package/dist/admin/future/store/hooks.mjs.map +1 -0
  29. package/dist/admin/future/store/uploadProgress.js +156 -0
  30. package/dist/admin/future/store/uploadProgress.js.map +1 -0
  31. package/dist/admin/future/store/uploadProgress.mjs +143 -0
  32. package/dist/admin/future/store/uploadProgress.mjs.map +1 -0
  33. package/dist/admin/index.js +11 -0
  34. package/dist/admin/index.js.map +1 -1
  35. package/dist/admin/index.mjs +11 -0
  36. package/dist/admin/index.mjs.map +1 -1
  37. package/dist/admin/package.json.js +10 -9
  38. package/dist/admin/package.json.js.map +1 -1
  39. package/dist/admin/package.json.mjs +10 -9
  40. package/dist/admin/package.json.mjs.map +1 -1
  41. package/dist/admin/src/future/components/UploadProgressDialog.d.ts +1 -0
  42. package/dist/admin/src/future/pages/Assets/components/DropZone/UploadDropZone.d.ts +9 -0
  43. package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +17 -0
  44. package/dist/admin/src/future/services/api.d.ts +21 -3
  45. package/dist/admin/src/future/store/hooks.d.ts +6 -0
  46. package/dist/admin/src/future/store/uploadProgress.d.ts +46 -0
  47. package/dist/admin/translations/en.json.js +22 -0
  48. package/dist/admin/translations/en.json.js.map +1 -1
  49. package/dist/admin/translations/en.json.mjs +22 -0
  50. package/dist/admin/translations/en.json.mjs.map +1 -1
  51. package/dist/server/controllers/admin-upload.js +151 -2
  52. package/dist/server/controllers/admin-upload.js.map +1 -1
  53. package/dist/server/controllers/admin-upload.mjs +151 -2
  54. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  55. package/dist/server/controllers/content-api.js +8 -2
  56. package/dist/server/controllers/content-api.js.map +1 -1
  57. package/dist/server/controllers/content-api.mjs +9 -3
  58. package/dist/server/controllers/content-api.mjs.map +1 -1
  59. package/dist/server/routes/admin.js +10 -0
  60. package/dist/server/routes/admin.js.map +1 -1
  61. package/dist/server/routes/admin.mjs +10 -0
  62. package/dist/server/routes/admin.mjs.map +1 -1
  63. package/dist/server/src/controllers/admin-upload.d.ts +12 -0
  64. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  65. package/dist/server/src/controllers/content-api.d.ts.map +1 -1
  66. package/dist/server/src/controllers/index.d.ts +1 -0
  67. package/dist/server/src/controllers/index.d.ts.map +1 -1
  68. package/dist/server/src/index.d.ts +1 -0
  69. package/dist/server/src/index.d.ts.map +1 -1
  70. package/dist/server/src/routes/admin.d.ts.map +1 -1
  71. package/dist/server/src/utils/mime-validation.d.ts +5 -0
  72. package/dist/server/src/utils/mime-validation.d.ts.map +1 -1
  73. package/dist/server/utils/mime-validation.js +7 -4
  74. package/dist/server/utils/mime-validation.js.map +1 -1
  75. package/dist/server/utils/mime-validation.mjs +7 -4
  76. package/dist/server/utils/mime-validation.mjs.map +1 -1
  77. package/dist/shared/contracts/files.d.ts +52 -0
  78. package/dist/shared/contracts/files.d.ts.map +1 -0
  79. package/package.json +10 -9
  80. package/dist/admin/future/pages/AIGenerationPage.js +0 -24
  81. package/dist/admin/future/pages/AIGenerationPage.js.map +0 -1
  82. package/dist/admin/future/pages/AIGenerationPage.mjs +0 -22
  83. package/dist/admin/future/pages/AIGenerationPage.mjs.map +0 -1
  84. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.js +0 -33
  85. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.js.map +0 -1
  86. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.mjs +0 -31
  87. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.mjs.map +0 -1
  88. package/dist/admin/src/future/pages/AIGenerationPage.d.ts +0 -1
  89. package/dist/admin/src/future/pages/Assets/components/DropZone/DropZoneWithOverlay.d.ts +0 -4
@@ -0,0 +1,156 @@
1
+ 'use strict';
2
+
3
+ var toolkit = require('@reduxjs/toolkit');
4
+
5
+ const initialState = {
6
+ isVisible: false,
7
+ isMinimized: false,
8
+ progress: 0,
9
+ totalFiles: 0,
10
+ files: [],
11
+ errors: [],
12
+ uploadId: 0
13
+ };
14
+ const computeProgress = (files)=>{
15
+ if (files.length === 0) return 0;
16
+ const totalSize = files.reduce((sum, f)=>sum + f.size, 0);
17
+ if (totalSize === 0) {
18
+ // Fallback to count-based if sizes are unknown
19
+ const completed = files.filter((f)=>f.status === 'complete' || f.status === 'error' || f.status === 'cancelled').length;
20
+ return Math.round(completed / files.length * 100);
21
+ }
22
+ const completedSize = files.filter((f)=>f.status === 'complete' || f.status === 'error' || f.status === 'cancelled').reduce((sum, f)=>sum + f.size, 0);
23
+ return Math.round(completedSize / totalSize * 100);
24
+ };
25
+ const uploadProgressSlice = toolkit.createSlice({
26
+ name: 'uploadProgress',
27
+ initialState,
28
+ reducers: {
29
+ openUploadProgress (state, action) {
30
+ state.isVisible = true;
31
+ state.isMinimized = false;
32
+ state.progress = 0;
33
+ state.totalFiles = action.payload.totalFiles;
34
+ state.files = action.payload.fileNames.map((name, index)=>({
35
+ name,
36
+ index,
37
+ status: 'pending',
38
+ size: action.payload.fileSizes[index] || 0
39
+ }));
40
+ state.errors = [];
41
+ state.uploadId += 1;
42
+ },
43
+ setFileUploading (state, action) {
44
+ const { index } = action.payload;
45
+ if (state.files[index]) {
46
+ state.files[index].status = 'uploading';
47
+ }
48
+ },
49
+ setFileComplete (state, action) {
50
+ const { index, file } = action.payload;
51
+ if (state.files[index]) {
52
+ state.files[index].status = 'complete';
53
+ state.files[index].file = file;
54
+ }
55
+ state.progress = computeProgress(state.files);
56
+ },
57
+ setFileError (state, action) {
58
+ const { index, name, message } = action.payload;
59
+ if (state.files[index]) {
60
+ state.files[index].status = 'error';
61
+ state.files[index].error = message;
62
+ }
63
+ state.errors = [
64
+ ...state.errors,
65
+ {
66
+ name,
67
+ message
68
+ }
69
+ ];
70
+ state.progress = computeProgress(state.files);
71
+ },
72
+ updateProgress (state, action) {
73
+ state.progress = action.payload;
74
+ },
75
+ addUploadErrors (state, action) {
76
+ state.errors = [
77
+ ...state.errors,
78
+ ...action.payload
79
+ ];
80
+ },
81
+ closeUploadProgress (state) {
82
+ state.isVisible = false;
83
+ state.isMinimized = false;
84
+ state.progress = 0;
85
+ state.totalFiles = 0;
86
+ state.files = [];
87
+ state.errors = [];
88
+ },
89
+ toggleMinimize (state) {
90
+ state.isMinimized = !state.isMinimized;
91
+ },
92
+ cancelUpload (state) {
93
+ // Mark all pending and uploading files as cancelled
94
+ state.files = state.files.map((file)=>{
95
+ if (file.status === 'pending' || file.status === 'uploading') {
96
+ return {
97
+ ...file,
98
+ status: 'cancelled'
99
+ };
100
+ }
101
+ return file;
102
+ });
103
+ state.progress = computeProgress(state.files);
104
+ },
105
+ setUploadFailed (state, action) {
106
+ // Mark all pending and uploading files as errored when a catastrophic failure occurs
107
+ state.files = state.files.map((file)=>{
108
+ if (file.status === 'pending' || file.status === 'uploading') {
109
+ return {
110
+ ...file,
111
+ status: 'error',
112
+ error: action.payload.message
113
+ };
114
+ }
115
+ return file;
116
+ });
117
+ state.progress = 100;
118
+ state.errors = [
119
+ ...state.errors,
120
+ {
121
+ name: 'Upload Error',
122
+ message: action.payload.message
123
+ }
124
+ ];
125
+ },
126
+ retryCancelledFiles (state) {
127
+ // Reset all cancelled files back to pending for retry
128
+ state.files = state.files.map((file)=>{
129
+ if (file.status === 'cancelled') {
130
+ return {
131
+ ...file,
132
+ status: 'pending'
133
+ };
134
+ }
135
+ return file;
136
+ });
137
+ state.progress = computeProgress(state.files);
138
+ }
139
+ }
140
+ });
141
+ const { openUploadProgress, setFileUploading, setFileComplete, setFileError, updateProgress, addUploadErrors, closeUploadProgress, toggleMinimize, cancelUpload, setUploadFailed, retryCancelledFiles } = uploadProgressSlice.actions;
142
+ const uploadProgressReducer = uploadProgressSlice.reducer;
143
+
144
+ exports.addUploadErrors = addUploadErrors;
145
+ exports.cancelUpload = cancelUpload;
146
+ exports.closeUploadProgress = closeUploadProgress;
147
+ exports.openUploadProgress = openUploadProgress;
148
+ exports.retryCancelledFiles = retryCancelledFiles;
149
+ exports.setFileComplete = setFileComplete;
150
+ exports.setFileError = setFileError;
151
+ exports.setFileUploading = setFileUploading;
152
+ exports.setUploadFailed = setUploadFailed;
153
+ exports.toggleMinimize = toggleMinimize;
154
+ exports.updateProgress = updateProgress;
155
+ exports.uploadProgressReducer = uploadProgressReducer;
156
+ //# sourceMappingURL=uploadProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadProgress.js","sources":["../../../../admin/src/future/store/uploadProgress.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface FileUploadError {\n name: string;\n message: string;\n}\n\nexport type FileProgressStatus = 'pending' | 'uploading' | 'complete' | 'error' | 'cancelled';\n\nexport interface FileProgress {\n name: string;\n index: number;\n status: FileProgressStatus;\n size: number;\n file?: File;\n error?: string;\n}\n\nexport interface UploadProgressState {\n isVisible: boolean;\n isMinimized: boolean;\n progress: number;\n totalFiles: number;\n files: FileProgress[];\n errors: FileUploadError[];\n uploadId: number;\n}\n\nexport interface RootState {\n uploadProgress: UploadProgressState;\n}\n\nconst initialState: UploadProgressState = {\n isVisible: false,\n isMinimized: false,\n progress: 0,\n totalFiles: 0,\n files: [],\n errors: [],\n uploadId: 0,\n};\n\nconst computeProgress = (files: FileProgress[]): number => {\n if (files.length === 0) return 0;\n const totalSize = files.reduce((sum, f) => sum + f.size, 0);\n if (totalSize === 0) {\n // Fallback to count-based if sizes are unknown\n const completed = files.filter(\n (f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled'\n ).length;\n return Math.round((completed / files.length) * 100);\n }\n const completedSize = files\n .filter((f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled')\n .reduce((sum, f) => sum + f.size, 0);\n return Math.round((completedSize / totalSize) * 100);\n};\n\nconst uploadProgressSlice = createSlice({\n name: 'uploadProgress',\n initialState,\n reducers: {\n openUploadProgress(\n state,\n action: PayloadAction<{ totalFiles: number; fileNames: string[]; fileSizes: number[] }>\n ) {\n state.isVisible = true;\n state.isMinimized = false;\n state.progress = 0;\n state.totalFiles = action.payload.totalFiles;\n state.files = action.payload.fileNames.map((name, index) => ({\n name,\n index,\n status: 'pending' as FileProgressStatus,\n size: action.payload.fileSizes[index] || 0,\n }));\n state.errors = [];\n state.uploadId += 1;\n },\n setFileUploading(\n state,\n action: PayloadAction<{ name: string; index: number; total: number; size: number }>\n ) {\n const { index } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'uploading';\n }\n },\n setFileComplete(state, action: PayloadAction<{ index: number; file: File }>) {\n const { index, file } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'complete';\n state.files[index].file = file;\n }\n state.progress = computeProgress(state.files);\n },\n setFileError(state, action: PayloadAction<{ index: number; name: string; message: string }>) {\n const { index, name, message } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'error';\n state.files[index].error = message;\n }\n state.errors = [...state.errors, { name, message }];\n state.progress = computeProgress(state.files);\n },\n updateProgress(state, action: PayloadAction<number>) {\n state.progress = action.payload;\n },\n addUploadErrors(state, action: PayloadAction<FileUploadError[]>) {\n state.errors = [...state.errors, ...action.payload];\n },\n closeUploadProgress(state) {\n state.isVisible = false;\n state.isMinimized = false;\n state.progress = 0;\n state.totalFiles = 0;\n state.files = [];\n state.errors = [];\n },\n toggleMinimize(state) {\n state.isMinimized = !state.isMinimized;\n },\n cancelUpload(state) {\n // Mark all pending and uploading files as cancelled\n state.files = state.files.map((file) => {\n if (file.status === 'pending' || file.status === 'uploading') {\n return { ...file, status: 'cancelled' as FileProgressStatus };\n }\n return file;\n });\n state.progress = computeProgress(state.files);\n },\n setUploadFailed(state, action: PayloadAction<{ message: string }>) {\n // Mark all pending and uploading files as errored when a catastrophic failure occurs\n state.files = state.files.map((file) => {\n if (file.status === 'pending' || file.status === 'uploading') {\n return {\n ...file,\n status: 'error' as FileProgressStatus,\n error: action.payload.message,\n };\n }\n return file;\n });\n state.progress = 100;\n state.errors = [...state.errors, { name: 'Upload Error', message: action.payload.message }];\n },\n retryCancelledFiles(state) {\n // Reset all cancelled files back to pending for retry\n state.files = state.files.map((file) => {\n if (file.status === 'cancelled') {\n return {\n ...file,\n status: 'pending' as FileProgressStatus,\n };\n }\n return file;\n });\n state.progress = computeProgress(state.files);\n },\n },\n});\n\nexport const {\n openUploadProgress,\n setFileUploading,\n setFileComplete,\n setFileError,\n updateProgress,\n addUploadErrors,\n closeUploadProgress,\n toggleMinimize,\n cancelUpload,\n setUploadFailed,\n retryCancelledFiles,\n} = uploadProgressSlice.actions;\n\nexport const uploadProgressReducer = uploadProgressSlice.reducer;\n"],"names":["initialState","isVisible","isMinimized","progress","totalFiles","files","errors","uploadId","computeProgress","length","totalSize","reduce","sum","f","size","completed","filter","status","Math","round","completedSize","uploadProgressSlice","createSlice","name","reducers","openUploadProgress","state","action","payload","fileNames","map","index","fileSizes","setFileUploading","setFileComplete","file","setFileError","message","error","updateProgress","addUploadErrors","closeUploadProgress","toggleMinimize","cancelUpload","setUploadFailed","retryCancelledFiles","actions","uploadProgressReducer","reducer"],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+
3
+ const initialState = {
4
+ isVisible: false,
5
+ isMinimized: false,
6
+ progress: 0,
7
+ totalFiles: 0,
8
+ files: [],
9
+ errors: [],
10
+ uploadId: 0
11
+ };
12
+ const computeProgress = (files)=>{
13
+ if (files.length === 0) return 0;
14
+ const totalSize = files.reduce((sum, f)=>sum + f.size, 0);
15
+ if (totalSize === 0) {
16
+ // Fallback to count-based if sizes are unknown
17
+ const completed = files.filter((f)=>f.status === 'complete' || f.status === 'error' || f.status === 'cancelled').length;
18
+ return Math.round(completed / files.length * 100);
19
+ }
20
+ const completedSize = files.filter((f)=>f.status === 'complete' || f.status === 'error' || f.status === 'cancelled').reduce((sum, f)=>sum + f.size, 0);
21
+ return Math.round(completedSize / totalSize * 100);
22
+ };
23
+ const uploadProgressSlice = createSlice({
24
+ name: 'uploadProgress',
25
+ initialState,
26
+ reducers: {
27
+ openUploadProgress (state, action) {
28
+ state.isVisible = true;
29
+ state.isMinimized = false;
30
+ state.progress = 0;
31
+ state.totalFiles = action.payload.totalFiles;
32
+ state.files = action.payload.fileNames.map((name, index)=>({
33
+ name,
34
+ index,
35
+ status: 'pending',
36
+ size: action.payload.fileSizes[index] || 0
37
+ }));
38
+ state.errors = [];
39
+ state.uploadId += 1;
40
+ },
41
+ setFileUploading (state, action) {
42
+ const { index } = action.payload;
43
+ if (state.files[index]) {
44
+ state.files[index].status = 'uploading';
45
+ }
46
+ },
47
+ setFileComplete (state, action) {
48
+ const { index, file } = action.payload;
49
+ if (state.files[index]) {
50
+ state.files[index].status = 'complete';
51
+ state.files[index].file = file;
52
+ }
53
+ state.progress = computeProgress(state.files);
54
+ },
55
+ setFileError (state, action) {
56
+ const { index, name, message } = action.payload;
57
+ if (state.files[index]) {
58
+ state.files[index].status = 'error';
59
+ state.files[index].error = message;
60
+ }
61
+ state.errors = [
62
+ ...state.errors,
63
+ {
64
+ name,
65
+ message
66
+ }
67
+ ];
68
+ state.progress = computeProgress(state.files);
69
+ },
70
+ updateProgress (state, action) {
71
+ state.progress = action.payload;
72
+ },
73
+ addUploadErrors (state, action) {
74
+ state.errors = [
75
+ ...state.errors,
76
+ ...action.payload
77
+ ];
78
+ },
79
+ closeUploadProgress (state) {
80
+ state.isVisible = false;
81
+ state.isMinimized = false;
82
+ state.progress = 0;
83
+ state.totalFiles = 0;
84
+ state.files = [];
85
+ state.errors = [];
86
+ },
87
+ toggleMinimize (state) {
88
+ state.isMinimized = !state.isMinimized;
89
+ },
90
+ cancelUpload (state) {
91
+ // Mark all pending and uploading files as cancelled
92
+ state.files = state.files.map((file)=>{
93
+ if (file.status === 'pending' || file.status === 'uploading') {
94
+ return {
95
+ ...file,
96
+ status: 'cancelled'
97
+ };
98
+ }
99
+ return file;
100
+ });
101
+ state.progress = computeProgress(state.files);
102
+ },
103
+ setUploadFailed (state, action) {
104
+ // Mark all pending and uploading files as errored when a catastrophic failure occurs
105
+ state.files = state.files.map((file)=>{
106
+ if (file.status === 'pending' || file.status === 'uploading') {
107
+ return {
108
+ ...file,
109
+ status: 'error',
110
+ error: action.payload.message
111
+ };
112
+ }
113
+ return file;
114
+ });
115
+ state.progress = 100;
116
+ state.errors = [
117
+ ...state.errors,
118
+ {
119
+ name: 'Upload Error',
120
+ message: action.payload.message
121
+ }
122
+ ];
123
+ },
124
+ retryCancelledFiles (state) {
125
+ // Reset all cancelled files back to pending for retry
126
+ state.files = state.files.map((file)=>{
127
+ if (file.status === 'cancelled') {
128
+ return {
129
+ ...file,
130
+ status: 'pending'
131
+ };
132
+ }
133
+ return file;
134
+ });
135
+ state.progress = computeProgress(state.files);
136
+ }
137
+ }
138
+ });
139
+ const { openUploadProgress, setFileUploading, setFileComplete, setFileError, updateProgress, addUploadErrors, closeUploadProgress, toggleMinimize, cancelUpload, setUploadFailed, retryCancelledFiles } = uploadProgressSlice.actions;
140
+ const uploadProgressReducer = uploadProgressSlice.reducer;
141
+
142
+ export { addUploadErrors, cancelUpload, closeUploadProgress, openUploadProgress, retryCancelledFiles, setFileComplete, setFileError, setFileUploading, setUploadFailed, toggleMinimize, updateProgress, uploadProgressReducer };
143
+ //# sourceMappingURL=uploadProgress.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadProgress.mjs","sources":["../../../../admin/src/future/store/uploadProgress.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\n\nimport type { File } from '../../../../shared/contracts/files';\n\nexport interface FileUploadError {\n name: string;\n message: string;\n}\n\nexport type FileProgressStatus = 'pending' | 'uploading' | 'complete' | 'error' | 'cancelled';\n\nexport interface FileProgress {\n name: string;\n index: number;\n status: FileProgressStatus;\n size: number;\n file?: File;\n error?: string;\n}\n\nexport interface UploadProgressState {\n isVisible: boolean;\n isMinimized: boolean;\n progress: number;\n totalFiles: number;\n files: FileProgress[];\n errors: FileUploadError[];\n uploadId: number;\n}\n\nexport interface RootState {\n uploadProgress: UploadProgressState;\n}\n\nconst initialState: UploadProgressState = {\n isVisible: false,\n isMinimized: false,\n progress: 0,\n totalFiles: 0,\n files: [],\n errors: [],\n uploadId: 0,\n};\n\nconst computeProgress = (files: FileProgress[]): number => {\n if (files.length === 0) return 0;\n const totalSize = files.reduce((sum, f) => sum + f.size, 0);\n if (totalSize === 0) {\n // Fallback to count-based if sizes are unknown\n const completed = files.filter(\n (f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled'\n ).length;\n return Math.round((completed / files.length) * 100);\n }\n const completedSize = files\n .filter((f) => f.status === 'complete' || f.status === 'error' || f.status === 'cancelled')\n .reduce((sum, f) => sum + f.size, 0);\n return Math.round((completedSize / totalSize) * 100);\n};\n\nconst uploadProgressSlice = createSlice({\n name: 'uploadProgress',\n initialState,\n reducers: {\n openUploadProgress(\n state,\n action: PayloadAction<{ totalFiles: number; fileNames: string[]; fileSizes: number[] }>\n ) {\n state.isVisible = true;\n state.isMinimized = false;\n state.progress = 0;\n state.totalFiles = action.payload.totalFiles;\n state.files = action.payload.fileNames.map((name, index) => ({\n name,\n index,\n status: 'pending' as FileProgressStatus,\n size: action.payload.fileSizes[index] || 0,\n }));\n state.errors = [];\n state.uploadId += 1;\n },\n setFileUploading(\n state,\n action: PayloadAction<{ name: string; index: number; total: number; size: number }>\n ) {\n const { index } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'uploading';\n }\n },\n setFileComplete(state, action: PayloadAction<{ index: number; file: File }>) {\n const { index, file } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'complete';\n state.files[index].file = file;\n }\n state.progress = computeProgress(state.files);\n },\n setFileError(state, action: PayloadAction<{ index: number; name: string; message: string }>) {\n const { index, name, message } = action.payload;\n if (state.files[index]) {\n state.files[index].status = 'error';\n state.files[index].error = message;\n }\n state.errors = [...state.errors, { name, message }];\n state.progress = computeProgress(state.files);\n },\n updateProgress(state, action: PayloadAction<number>) {\n state.progress = action.payload;\n },\n addUploadErrors(state, action: PayloadAction<FileUploadError[]>) {\n state.errors = [...state.errors, ...action.payload];\n },\n closeUploadProgress(state) {\n state.isVisible = false;\n state.isMinimized = false;\n state.progress = 0;\n state.totalFiles = 0;\n state.files = [];\n state.errors = [];\n },\n toggleMinimize(state) {\n state.isMinimized = !state.isMinimized;\n },\n cancelUpload(state) {\n // Mark all pending and uploading files as cancelled\n state.files = state.files.map((file) => {\n if (file.status === 'pending' || file.status === 'uploading') {\n return { ...file, status: 'cancelled' as FileProgressStatus };\n }\n return file;\n });\n state.progress = computeProgress(state.files);\n },\n setUploadFailed(state, action: PayloadAction<{ message: string }>) {\n // Mark all pending and uploading files as errored when a catastrophic failure occurs\n state.files = state.files.map((file) => {\n if (file.status === 'pending' || file.status === 'uploading') {\n return {\n ...file,\n status: 'error' as FileProgressStatus,\n error: action.payload.message,\n };\n }\n return file;\n });\n state.progress = 100;\n state.errors = [...state.errors, { name: 'Upload Error', message: action.payload.message }];\n },\n retryCancelledFiles(state) {\n // Reset all cancelled files back to pending for retry\n state.files = state.files.map((file) => {\n if (file.status === 'cancelled') {\n return {\n ...file,\n status: 'pending' as FileProgressStatus,\n };\n }\n return file;\n });\n state.progress = computeProgress(state.files);\n },\n },\n});\n\nexport const {\n openUploadProgress,\n setFileUploading,\n setFileComplete,\n setFileError,\n updateProgress,\n addUploadErrors,\n closeUploadProgress,\n toggleMinimize,\n cancelUpload,\n setUploadFailed,\n retryCancelledFiles,\n} = uploadProgressSlice.actions;\n\nexport const uploadProgressReducer = uploadProgressSlice.reducer;\n"],"names":["initialState","isVisible","isMinimized","progress","totalFiles","files","errors","uploadId","computeProgress","length","totalSize","reduce","sum","f","size","completed","filter","status","Math","round","completedSize","uploadProgressSlice","createSlice","name","reducers","openUploadProgress","state","action","payload","fileNames","map","index","fileSizes","setFileUploading","setFileComplete","file","setFileError","message","error","updateProgress","addUploadErrors","closeUploadProgress","toggleMinimize","cancelUpload","setUploadFailed","retryCancelledFiles","actions","uploadProgressReducer","reducer"],"mappings":"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"}
@@ -5,6 +5,8 @@ var _package = require('./package.json.js');
5
5
  var MediaLibraryDialog = require('./components/MediaLibraryDialog/MediaLibraryDialog.js');
6
6
  var MediaLibraryInput = require('./components/MediaLibraryInput/MediaLibraryInput.js');
7
7
  var constants = require('./constants.js');
8
+ var UploadProgressDialog = require('./future/components/UploadProgressDialog.js');
9
+ var uploadProgress = require('./future/store/uploadProgress.js');
8
10
  var pluginId = require('./pluginId.js');
9
11
  require('byte-size');
10
12
  require('date-fns');
@@ -65,6 +67,15 @@ const admin = {
65
67
  position: 4
66
68
  });
67
69
  if (window.strapi.future.isEnabled('unstableMediaLibrary')) {
70
+ app.addReducers({
71
+ uploadProgress: uploadProgress.uploadProgressReducer
72
+ });
73
+ app.addComponents([
74
+ {
75
+ name: 'future-global::upload-progress',
76
+ Component: UploadProgressDialog.UploadProgressDialog
77
+ }
78
+ ]);
68
79
  app.addMenuLink({
69
80
  to: `plugins/unstable-${pluginId.pluginId}`,
70
81
  icon: icons.WarningCircle,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","addComponents","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { UploadProgressDialog } from './future/components/UploadProgressDialog';\nimport { uploadProgressReducer } from './future/store/uploadProgress';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -3,6 +3,8 @@ import pluginPkg from './package.json.mjs';
3
3
  import { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog.mjs';
4
4
  import { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput.mjs';
5
5
  import { PERMISSIONS } from './constants.mjs';
6
+ import { UploadProgressDialog } from './future/components/UploadProgressDialog.mjs';
7
+ import { uploadProgressReducer } from './future/store/uploadProgress.mjs';
6
8
  import { pluginId } from './pluginId.mjs';
7
9
  import 'byte-size';
8
10
  import 'date-fns';
@@ -61,6 +63,15 @@ const admin = {
61
63
  position: 4
62
64
  });
63
65
  if (window.strapi.future.isEnabled('unstableMediaLibrary')) {
66
+ app.addReducers({
67
+ uploadProgress: uploadProgressReducer
68
+ });
69
+ app.addComponents([
70
+ {
71
+ name: 'future-global::upload-progress',
72
+ Component: UploadProgressDialog
73
+ }
74
+ ]);
64
75
  app.addMenuLink({
65
76
  to: `plugins/unstable-${pluginId}`,
66
77
  icon: WarningCircle,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","addComponents","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images, WarningCircle } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryDialog } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { PERMISSIONS } from './constants';\nimport { UploadProgressDialog } from './future/components/UploadProgressDialog';\nimport { uploadProgressReducer } from './future/store/uploadProgress';\nimport { pluginId } from './pluginId';\nimport { getTrad, prefixPluginTranslations } from './utils';\n\nimport type { MediaLibraryDialogProps } from './components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./pages/App/App').then((mod) => ({ default: mod.Upload }));\n },\n position: 4,\n });\n\n if (window.strapi.future.isEnabled('unstableMediaLibrary')) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n\n app.addMenuLink({\n to: `plugins/unstable-${pluginId}`,\n icon: WarningCircle,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: () => {\n return import('./future/App').then((mod) => ({\n default: mod.UnstableMediaLibrary,\n }));\n },\n position: 5,\n });\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTrad('plugin.name'),\n defaultMessage: 'Media Library',\n },\n async Component() {\n const { ProtectedSettingsPage } = await import('./pages/SettingsPage/SettingsPage');\n return { default: ProtectedSettingsPage };\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","position","window","future","isEnabled","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","WarningCircle","UnstableMediaLibrary","addSettingsLink","getTrad","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/upload";
6
- var version = "5.36.0";
6
+ var version = "5.36.1";
7
7
  var description = "Makes it easy to upload images and files to your Strapi Application.";
8
8
  var license = "SEE LICENSE IN LICENSE";
9
9
  var author = {
@@ -64,13 +64,14 @@ var scripts = {
64
64
  };
65
65
  var dependencies = {
66
66
  "@mux/mux-player-react": "3.1.0",
67
+ "@radix-ui/react-dialog": "1.1.15",
67
68
  "@radix-ui/react-toggle-group": "1.1.11",
68
69
  "@reduxjs/toolkit": "1.9.7",
69
- "@strapi/database": "5.36.0",
70
+ "@strapi/database": "5.36.1",
70
71
  "@strapi/design-system": "2.1.2",
71
72
  "@strapi/icons": "2.1.2",
72
- "@strapi/provider-upload-local": "5.36.0",
73
- "@strapi/utils": "5.36.0",
73
+ "@strapi/provider-upload-local": "5.36.1",
74
+ "@strapi/utils": "5.36.1",
74
75
  "byte-size": "8.1.1",
75
76
  cropperjs: "1.6.1",
76
77
  "date-fns": "2.30.0",
@@ -83,7 +84,7 @@ var dependencies = {
83
84
  lodash: "4.17.21",
84
85
  "mime-types": "2.1.35",
85
86
  "prop-types": "^15.8.1",
86
- qs: "6.14.1",
87
+ qs: "6.14.2",
87
88
  "react-dnd": "16.0.1",
88
89
  "react-intl": "6.6.2",
89
90
  "react-query": "3.39.3",
@@ -94,8 +95,8 @@ var dependencies = {
94
95
  zod: "3.25.67"
95
96
  };
96
97
  var devDependencies = {
97
- "@strapi/admin": "5.36.0",
98
- "@strapi/types": "5.36.0",
98
+ "@strapi/admin": "5.36.1",
99
+ "@strapi/types": "5.36.1",
99
100
  "@testing-library/dom": "10.4.1",
100
101
  "@testing-library/react": "16.3.0",
101
102
  "@testing-library/user-event": "14.6.1",
@@ -110,14 +111,14 @@ var devDependencies = {
110
111
  msw: "1.3.0",
111
112
  react: "18.3.1",
112
113
  "react-dom": "18.3.1",
113
- "react-router-dom": "6.22.3",
114
+ "react-router-dom": "6.30.3",
114
115
  "styled-components": "6.1.8"
115
116
  };
116
117
  var peerDependencies = {
117
118
  "@strapi/admin": "^5.0.0",
118
119
  react: "^17.0.0 || ^18.0.0",
119
120
  "react-dom": "^17.0.0 || ^18.0.0",
120
- "react-router-dom": "^6.0.0",
121
+ "react-router-dom": "^6.30.3",
121
122
  "styled-components": "^6.0.0"
122
123
  };
123
124
  var engines = {
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/upload";
2
- var version = "5.36.0";
2
+ var version = "5.36.1";
3
3
  var description = "Makes it easy to upload images and files to your Strapi Application.";
4
4
  var license = "SEE LICENSE IN LICENSE";
5
5
  var author = {
@@ -60,13 +60,14 @@ var scripts = {
60
60
  };
61
61
  var dependencies = {
62
62
  "@mux/mux-player-react": "3.1.0",
63
+ "@radix-ui/react-dialog": "1.1.15",
63
64
  "@radix-ui/react-toggle-group": "1.1.11",
64
65
  "@reduxjs/toolkit": "1.9.7",
65
- "@strapi/database": "5.36.0",
66
+ "@strapi/database": "5.36.1",
66
67
  "@strapi/design-system": "2.1.2",
67
68
  "@strapi/icons": "2.1.2",
68
- "@strapi/provider-upload-local": "5.36.0",
69
- "@strapi/utils": "5.36.0",
69
+ "@strapi/provider-upload-local": "5.36.1",
70
+ "@strapi/utils": "5.36.1",
70
71
  "byte-size": "8.1.1",
71
72
  cropperjs: "1.6.1",
72
73
  "date-fns": "2.30.0",
@@ -79,7 +80,7 @@ var dependencies = {
79
80
  lodash: "4.17.21",
80
81
  "mime-types": "2.1.35",
81
82
  "prop-types": "^15.8.1",
82
- qs: "6.14.1",
83
+ qs: "6.14.2",
83
84
  "react-dnd": "16.0.1",
84
85
  "react-intl": "6.6.2",
85
86
  "react-query": "3.39.3",
@@ -90,8 +91,8 @@ var dependencies = {
90
91
  zod: "3.25.67"
91
92
  };
92
93
  var devDependencies = {
93
- "@strapi/admin": "5.36.0",
94
- "@strapi/types": "5.36.0",
94
+ "@strapi/admin": "5.36.1",
95
+ "@strapi/types": "5.36.1",
95
96
  "@testing-library/dom": "10.4.1",
96
97
  "@testing-library/react": "16.3.0",
97
98
  "@testing-library/user-event": "14.6.1",
@@ -106,14 +107,14 @@ var devDependencies = {
106
107
  msw: "1.3.0",
107
108
  react: "18.3.1",
108
109
  "react-dom": "18.3.1",
109
- "react-router-dom": "6.22.3",
110
+ "react-router-dom": "6.30.3",
110
111
  "styled-components": "6.1.8"
111
112
  };
112
113
  var peerDependencies = {
113
114
  "@strapi/admin": "^5.0.0",
114
115
  react: "^17.0.0 || ^18.0.0",
115
116
  "react-dom": "^17.0.0 || ^18.0.0",
116
- "react-router-dom": "^6.0.0",
117
+ "react-router-dom": "^6.30.3",
117
118
  "styled-components": "^6.0.0"
118
119
  };
119
120
  var engines = {
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ export declare const UploadProgressDialog: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ declare const DropZoneWithOverlay: ({ children }: {
3
+ children: React.ReactNode;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ interface DropFilesMessageProps {
6
+ uploadDropZoneRef?: React.RefObject<HTMLDivElement>;
7
+ }
8
+ declare const DropFilesMessage: ({ uploadDropZoneRef }: DropFilesMessageProps) => import("react/jsx-runtime").JSX.Element | null;
9
+ export { DropZoneWithOverlay, DropFilesMessage };