@strapi/upload 5.51.2 → 5.52.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 (253) hide show
  1. package/dist/admin/future/App.js +3 -3
  2. package/dist/admin/future/App.js.map +1 -1
  3. package/dist/admin/future/App.mjs +4 -4
  4. package/dist/admin/future/App.mjs.map +1 -1
  5. package/dist/admin/future/components/BetaNotice.js +72 -0
  6. package/dist/admin/future/components/BetaNotice.js.map +1 -0
  7. package/dist/admin/future/components/BetaNotice.mjs +70 -0
  8. package/dist/admin/future/components/BetaNotice.mjs.map +1 -0
  9. package/dist/admin/future/components/Drawer.js +16 -3
  10. package/dist/admin/future/components/Drawer.js.map +1 -1
  11. package/dist/admin/future/components/Drawer.mjs +16 -3
  12. package/dist/admin/future/components/Drawer.mjs.map +1 -1
  13. package/dist/admin/future/components/TruncatedText.js +76 -0
  14. package/dist/admin/future/components/TruncatedText.js.map +1 -0
  15. package/dist/admin/future/components/TruncatedText.mjs +74 -0
  16. package/dist/admin/future/components/TruncatedText.mjs.map +1 -0
  17. package/dist/admin/future/hooks/useAIMetadataEnabled.js +39 -0
  18. package/dist/admin/future/hooks/useAIMetadataEnabled.js.map +1 -0
  19. package/dist/admin/future/hooks/useAIMetadataEnabled.mjs +37 -0
  20. package/dist/admin/future/hooks/useAIMetadataEnabled.mjs.map +1 -0
  21. package/dist/admin/future/hooks/useTracking.js +57 -0
  22. package/dist/admin/future/hooks/useTracking.js.map +1 -0
  23. package/dist/admin/future/hooks/useTracking.mjs +53 -0
  24. package/dist/admin/future/hooks/useTracking.mjs.map +1 -0
  25. package/dist/admin/future/pages/Assets/AssetsPage.js +328 -139
  26. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
  27. package/dist/admin/future/pages/Assets/AssetsPage.mjs +332 -143
  28. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
  29. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.js +46 -0
  30. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.js.map +1 -0
  31. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.mjs +44 -0
  32. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.mjs.map +1 -0
  33. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js +328 -0
  34. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js.map +1 -0
  35. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs +326 -0
  36. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs.map +1 -0
  37. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js +35 -14
  38. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -1
  39. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs +35 -14
  40. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -1
  41. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +74 -53
  42. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
  43. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +74 -54
  44. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
  45. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +92 -28
  46. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
  47. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +94 -30
  48. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  49. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.js +26 -4
  50. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.js.map +1 -1
  51. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.mjs +27 -5
  52. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.mjs.map +1 -1
  53. package/dist/admin/future/pages/Assets/components/AssetsTable.js +172 -60
  54. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
  55. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +175 -63
  56. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
  57. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js +64 -132
  58. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js.map +1 -1
  59. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs +64 -132
  60. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs.map +1 -1
  61. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.js +123 -76
  62. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.js.map +1 -1
  63. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.mjs +126 -79
  64. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.mjs.map +1 -1
  65. package/dist/admin/future/pages/Assets/components/BusyOverlay.js +36 -0
  66. package/dist/admin/future/pages/Assets/components/BusyOverlay.js.map +1 -0
  67. package/dist/admin/future/pages/Assets/components/BusyOverlay.mjs +34 -0
  68. package/dist/admin/future/pages/Assets/components/BusyOverlay.mjs.map +1 -0
  69. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.js +131 -0
  70. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.js.map +1 -0
  71. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.mjs +129 -0
  72. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.mjs.map +1 -0
  73. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js +27 -17
  74. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js.map +1 -1
  75. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs +28 -18
  76. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +1 -1
  77. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.js +28 -31
  78. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.js.map +1 -1
  79. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.mjs +28 -31
  80. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.mjs.map +1 -1
  81. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js +10 -15
  82. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -1
  83. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs +10 -15
  84. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -1
  85. package/dist/admin/future/pages/Assets/components/FilterBadges.js +13 -4
  86. package/dist/admin/future/pages/Assets/components/FilterBadges.js.map +1 -1
  87. package/dist/admin/future/pages/Assets/components/FilterBadges.mjs +13 -4
  88. package/dist/admin/future/pages/Assets/components/FilterBadges.mjs.map +1 -1
  89. package/dist/admin/future/pages/Assets/components/FilterMenu.js +259 -63
  90. package/dist/admin/future/pages/Assets/components/FilterMenu.js.map +1 -1
  91. package/dist/admin/future/pages/Assets/components/FilterMenu.mjs +262 -66
  92. package/dist/admin/future/pages/Assets/components/FilterMenu.mjs.map +1 -1
  93. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.js +146 -0
  94. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.js.map +1 -0
  95. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.mjs +144 -0
  96. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.mjs.map +1 -0
  97. package/dist/admin/future/pages/Assets/components/{CreateFolderDialog.js → FolderFormDialog.js} +62 -16
  98. package/dist/admin/future/pages/Assets/components/FolderFormDialog.js.map +1 -0
  99. package/dist/admin/future/pages/Assets/components/{CreateFolderDialog.mjs → FolderFormDialog.mjs} +64 -18
  100. package/dist/admin/future/pages/Assets/components/FolderFormDialog.mjs.map +1 -0
  101. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js +132 -229
  102. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js.map +1 -1
  103. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs +135 -232
  104. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -1
  105. package/dist/admin/future/pages/Assets/components/SortMenu.js +14 -0
  106. package/dist/admin/future/pages/Assets/components/SortMenu.js.map +1 -1
  107. package/dist/admin/future/pages/Assets/components/SortMenu.mjs +14 -0
  108. package/dist/admin/future/pages/Assets/components/SortMenu.mjs.map +1 -1
  109. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.js +5 -0
  110. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.js.map +1 -1
  111. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.mjs +6 -1
  112. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.mjs.map +1 -1
  113. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.js +47 -0
  114. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.js.map +1 -0
  115. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.mjs +44 -0
  116. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.mjs.map +1 -0
  117. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js +203 -62
  118. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -1
  119. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs +204 -63
  120. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -1
  121. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.js +75 -0
  122. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +1 -0
  123. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.mjs +73 -0
  124. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +1 -0
  125. package/dist/admin/future/pages/Assets/utils/selection.js +17 -0
  126. package/dist/admin/future/pages/Assets/utils/selection.js.map +1 -1
  127. package/dist/admin/future/pages/Assets/utils/selection.mjs +17 -1
  128. package/dist/admin/future/pages/Assets/utils/selection.mjs.map +1 -1
  129. package/dist/admin/future/services/api.js +31 -8
  130. package/dist/admin/future/services/api.js.map +1 -1
  131. package/dist/admin/future/services/api.mjs +31 -8
  132. package/dist/admin/future/services/api.mjs.map +1 -1
  133. package/dist/admin/future/services/assets.js +22 -23
  134. package/dist/admin/future/services/assets.js.map +1 -1
  135. package/dist/admin/future/services/assets.mjs +22 -23
  136. package/dist/admin/future/services/assets.mjs.map +1 -1
  137. package/dist/admin/future/services/folders.js +37 -2
  138. package/dist/admin/future/services/folders.js.map +1 -1
  139. package/dist/admin/future/services/folders.mjs +37 -3
  140. package/dist/admin/future/services/folders.mjs.map +1 -1
  141. package/dist/admin/future/utils/buildDragSetFromSelection.js +7 -5
  142. package/dist/admin/future/utils/buildDragSetFromSelection.js.map +1 -1
  143. package/dist/admin/future/utils/buildDragSetFromSelection.mjs +7 -5
  144. package/dist/admin/future/utils/buildDragSetFromSelection.mjs.map +1 -1
  145. package/dist/admin/future/utils/formatMoveSuccessMessage.js +12 -1
  146. package/dist/admin/future/utils/formatMoveSuccessMessage.js.map +1 -1
  147. package/dist/admin/future/utils/formatMoveSuccessMessage.mjs +12 -1
  148. package/dist/admin/future/utils/formatMoveSuccessMessage.mjs.map +1 -1
  149. package/dist/admin/future/utils/getRelationId.js +24 -0
  150. package/dist/admin/future/utils/getRelationId.js.map +1 -0
  151. package/dist/admin/future/utils/getRelationId.mjs +22 -0
  152. package/dist/admin/future/utils/getRelationId.mjs.map +1 -0
  153. package/dist/admin/future/utils/isEventFromWithin.js +14 -0
  154. package/dist/admin/future/utils/isEventFromWithin.js.map +1 -0
  155. package/dist/admin/future/utils/isEventFromWithin.mjs +12 -0
  156. package/dist/admin/future/utils/isEventFromWithin.mjs.map +1 -0
  157. package/dist/admin/future/utils/itemLocations.js +40 -0
  158. package/dist/admin/future/utils/itemLocations.js.map +1 -0
  159. package/dist/admin/future/utils/itemLocations.mjs +36 -0
  160. package/dist/admin/future/utils/itemLocations.mjs.map +1 -0
  161. package/dist/admin/future/utils/itemSource.js +36 -0
  162. package/dist/admin/future/utils/itemSource.js.map +1 -0
  163. package/dist/admin/future/utils/itemSource.mjs +32 -0
  164. package/dist/admin/future/utils/itemSource.mjs.map +1 -0
  165. package/dist/admin/hooks/useAIMetadataJob.js +1 -1
  166. package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
  167. package/dist/admin/hooks/useAIMetadataJob.mjs +1 -1
  168. package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
  169. package/dist/admin/index.js +11 -17
  170. package/dist/admin/index.js.map +1 -1
  171. package/dist/admin/index.mjs +12 -18
  172. package/dist/admin/index.mjs.map +1 -1
  173. package/dist/admin/pages/SettingsPage/SettingsPage.js +2 -2
  174. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  175. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +2 -2
  176. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  177. package/dist/admin/src/future/App.d.ts +1 -1
  178. package/dist/admin/src/future/components/BetaNotice.d.ts +11 -0
  179. package/dist/admin/src/future/components/Drawer.d.ts +5 -1
  180. package/dist/admin/src/future/components/TruncatedText.d.ts +32 -0
  181. package/dist/admin/src/future/hooks/useAIMetadataEnabled.d.ts +26 -0
  182. package/dist/admin/src/future/hooks/useTracking.d.ts +29 -0
  183. package/dist/admin/src/future/pages/Assets/components/ActionsMenuContent.d.ts +33 -0
  184. package/dist/admin/src/future/pages/Assets/components/AssetActionsMenu.d.ts +26 -0
  185. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +16 -0
  186. package/dist/admin/src/future/pages/Assets/components/BulkActionsBar.d.ts +8 -1
  187. package/dist/admin/src/future/pages/Assets/components/BulkMoveDialog.d.ts +17 -6
  188. package/dist/admin/src/future/pages/Assets/components/BusyOverlay.d.ts +9 -0
  189. package/dist/admin/src/future/pages/Assets/components/DeleteItemsDialog.d.ts +27 -0
  190. package/dist/admin/src/future/pages/Assets/components/Dnd/AssetsDndProvider.d.ts +8 -1
  191. package/dist/admin/src/future/pages/Assets/components/Dnd/buildDragSet.d.ts +18 -3
  192. package/dist/admin/src/future/pages/Assets/components/Dnd/useAssetDnd.d.ts +2 -1
  193. package/dist/admin/src/future/pages/Assets/components/FilterBadges.d.ts +3 -1
  194. package/dist/admin/src/future/pages/Assets/components/FilterMenu.d.ts +4 -0
  195. package/dist/admin/src/future/pages/Assets/components/FolderActionsMenu.d.ts +21 -0
  196. package/dist/admin/src/future/pages/Assets/components/FolderFormDialog.d.ts +16 -0
  197. package/dist/admin/src/future/pages/Assets/hooks/useAssetSelection.d.ts +2 -0
  198. package/dist/admin/src/future/pages/Assets/hooks/useBusyAssets.d.ts +38 -0
  199. package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +20 -6
  200. package/dist/admin/src/future/pages/Assets/hooks/useInfiniteScrollSentinel.d.ts +41 -0
  201. package/dist/admin/src/future/pages/Assets/utils/selection.d.ts +10 -0
  202. package/dist/admin/src/future/services/api.d.ts +6 -7
  203. package/dist/admin/src/future/services/folders.d.ts +6 -1
  204. package/dist/admin/src/future/utils/buildDragSetFromSelection.d.ts +4 -3
  205. package/dist/admin/src/future/utils/formatMoveSuccessMessage.d.ts +7 -1
  206. package/dist/admin/src/future/utils/getRelationId.d.ts +11 -0
  207. package/dist/admin/src/future/utils/isEventFromWithin.d.ts +11 -0
  208. package/dist/admin/src/future/utils/itemLocations.d.ts +31 -0
  209. package/dist/admin/src/future/utils/itemSource.d.ts +22 -0
  210. package/dist/admin/translations/en.json.js +25 -4
  211. package/dist/admin/translations/en.json.js.map +1 -1
  212. package/dist/admin/translations/en.json.mjs +25 -4
  213. package/dist/admin/translations/en.json.mjs.map +1 -1
  214. package/dist/server/controllers/admin-file.js +27 -9
  215. package/dist/server/controllers/admin-file.js.map +1 -1
  216. package/dist/server/controllers/admin-file.mjs +27 -9
  217. package/dist/server/controllers/admin-file.mjs.map +1 -1
  218. package/dist/server/controllers/admin-upload.js +24 -8
  219. package/dist/server/controllers/admin-upload.js.map +1 -1
  220. package/dist/server/controllers/admin-upload.mjs +24 -8
  221. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  222. package/dist/server/routes/admin.js +41 -21
  223. package/dist/server/routes/admin.js.map +1 -1
  224. package/dist/server/routes/admin.mjs +41 -21
  225. package/dist/server/routes/admin.mjs.map +1 -1
  226. package/dist/server/services/ai-metadata.js.map +1 -1
  227. package/dist/server/services/ai-metadata.mjs.map +1 -1
  228. package/dist/server/services/image-manipulation.js.map +1 -1
  229. package/dist/server/services/image-manipulation.mjs.map +1 -1
  230. package/dist/server/src/controllers/admin-file.d.ts +29 -8
  231. package/dist/server/src/controllers/admin-file.d.ts.map +1 -1
  232. package/dist/server/src/controllers/admin-upload.d.ts +20 -4
  233. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  234. package/dist/server/src/controllers/index.d.ts +4 -4
  235. package/dist/server/src/index.d.ts +4 -4
  236. package/dist/server/src/routes/admin.d.ts.map +1 -1
  237. package/dist/server/src/services/ai-metadata.d.ts +2 -2
  238. package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
  239. package/dist/server/src/services/image-manipulation.d.ts +0 -5
  240. package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
  241. package/dist/shared/contracts/ai-metadata-jobs.d.ts +10 -32
  242. package/dist/shared/contracts/ai-metadata-jobs.d.ts.map +1 -1
  243. package/dist/shared/contracts/files.d.ts +10 -10
  244. package/dist/shared/contracts/files.d.ts.map +1 -1
  245. package/package.json +9 -9
  246. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js.map +0 -1
  247. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs.map +0 -1
  248. package/dist/admin/future/pages/Assets/components/FolderTree/filterFolderTree.js +0 -33
  249. package/dist/admin/future/pages/Assets/components/FolderTree/filterFolderTree.js.map +0 -1
  250. package/dist/admin/future/pages/Assets/components/FolderTree/filterFolderTree.mjs +0 -31
  251. package/dist/admin/future/pages/Assets/components/FolderTree/filterFolderTree.mjs.map +0 -1
  252. package/dist/admin/src/future/pages/Assets/components/CreateFolderDialog.d.ts +0 -8
  253. package/dist/admin/src/future/pages/Assets/components/FolderTree/filterFolderTree.d.ts +0 -16
@@ -9,16 +9,18 @@ var reactIntl = require('react-intl');
9
9
  var styledComponents = require('styled-components');
10
10
  var enums = require('../../../../../enums.js');
11
11
  var Drawer = require('../../../../components/Drawer.js');
12
+ var useAIMetadataEnabled = require('../../../../hooks/useAIMetadataEnabled.js');
12
13
  var useMediaLibraryPermissions = require('../../../../hooks/useMediaLibraryPermissions.js');
14
+ var useTracking = require('../../../../hooks/useTracking.js');
13
15
  var api = require('../../../../services/api.js');
14
16
  var assets = require('../../../../services/assets.js');
15
17
  var folders = require('../../../../services/folders.js');
16
- var settings = require('../../../../services/settings.js');
17
18
  var downloadFile = require('../../../../utils/downloadFile.js');
18
19
  var files = require('../../../../utils/files.js');
19
20
  var getAssetIcon = require('../../../../utils/getAssetIcon.js');
20
21
  var translations = require('../../../../utils/translations.js');
21
22
  var useFolderInfo = require('../../hooks/useFolderInfo.js');
23
+ var BusyOverlay = require('../BusyOverlay.js');
22
24
  var AssetCropEditor = require('./AssetCropEditor.js');
23
25
  var AssetPreview = require('./AssetPreview.js');
24
26
 
@@ -169,22 +171,13 @@ const DetailItem = ({ label, value })=>/*#__PURE__*/ jsxRuntime.jsxs(DetailItemC
169
171
  z-index: 10;
170
172
  width: calc(100% - ${({ theme })=>theme.spaces[2]});
171
173
  `;
172
- /**
173
- * Full-form overlay rendered during long-running drawer-scoped mutations
174
- * (e.g. replacing the binary). Sits above the toast slot (z-index 10) and
175
- * the in-drawer Alert so the user can't interact with the form mid-flight.
176
- */ const DrawerBusyOverlay = styledComponents.styled(designSystem.Flex)`
177
- position: absolute;
178
- inset: 0;
179
- z-index: 20;
180
- align-items: center;
181
- justify-content: center;
182
- background: ${({ theme })=>theme.colors.neutral0};
183
- opacity: 0.7;
184
- `;
185
174
  /**
186
175
  * Map the drawer-scoped mutation flags to a single i18n message for the busy
187
176
  * overlay loader. Returns `null` when nothing is in flight.
177
+ *
178
+ * Exported for the unit test: the branch order only matters when two flags are
179
+ * true at once, which the UI makes hard to stage through the rendered drawer
180
+ * (each trigger disables itself while its own mutation runs).
188
181
  */ const getBusyMessage = (state)=>{
189
182
  if (state.isDeleting) {
190
183
  return {
@@ -437,15 +430,14 @@ const DownloadAssetButton = ({ asset })=>{
437
430
  children: /*#__PURE__*/ jsxRuntime.jsx(icons.Download, {})
438
431
  });
439
432
  };
440
- /* -------------------------------------------------------------------------------------------------
441
- * ReplaceAssetButton
442
- * -----------------------------------------------------------------------------------------------*/ const ReplaceAssetButton = ()=>{
433
+ const ReplaceAssetButton = ({ mime })=>{
443
434
  const { formatMessage } = reactIntl.useIntl();
444
435
  const { replaceAsset, isReplacing } = useAssetOperation();
445
436
  const fileInputRef = React__namespace.useRef(null);
446
437
  const [isDialogOpen, setIsDialogOpen] = React__namespace.useState(false);
447
- const { data: settings$1 } = settings.useGetUploadSettingsQuery();
448
- const aiEnabled = settings$1?.data?.aiMetadata ?? false;
438
+ const aiEnabled = useAIMetadataEnabled.useAIMetadataEnabled({
439
+ mime
440
+ });
449
441
  const handleTriggerClick = ()=>{
450
442
  setIsDialogOpen(true);
451
443
  };
@@ -553,7 +545,7 @@ const DownloadAssetButton = ({ asset })=>{
553
545
  ]
554
546
  });
555
547
  };
556
- const AssetImageActions = ({ onCrop })=>{
548
+ const AssetImageActions = ({ onCrop, mime })=>{
557
549
  const { formatMessage } = reactIntl.useIntl();
558
550
  const isSubmitting = strapiAdmin.useForm('AssetImageActions', (state)=>state.isSubmitting);
559
551
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
@@ -571,7 +563,9 @@ const AssetImageActions = ({ onCrop })=>{
571
563
  disabled: isSubmitting || !onCrop,
572
564
  children: /*#__PURE__*/ jsxRuntime.jsx(icons.Crop, {})
573
565
  }),
574
- /*#__PURE__*/ jsxRuntime.jsx(ReplaceAssetButton, {})
566
+ /*#__PURE__*/ jsxRuntime.jsx(ReplaceAssetButton, {
567
+ mime: mime
568
+ })
575
569
  ]
576
570
  });
577
571
  };
@@ -581,6 +575,7 @@ const AssetDetails = ({ asset, closeDetails })=>{
581
575
  const { data: folders$1 = [] } = folders.useGetAllFoldersQuery();
582
576
  const { toggleNotification } = strapiAdmin.useNotification();
583
577
  const [updateAsset] = assets.useUpdateAssetMutation();
578
+ const { trackUsage } = useTracking.useTracking();
584
579
  const [replaceMutation, { isLoading: isReplacing }] = assets.useReplaceAssetMutation();
585
580
  const [deleteMutation, { isLoading: isDeleting }] = assets.useDeleteAssetMutation();
586
581
  const [uploadCroppedCopy, { isLoading: isCropCopying }] = api.useUploadFileSilentlyMutation();
@@ -625,6 +620,12 @@ const AssetDetails = ({ asset, closeDetails })=>{
625
620
  });
626
621
  return;
627
622
  }
623
+ trackUsage('didEditMediaLibraryElements', {
624
+ location: useTracking.MEDIA_LIBRARY_LOCATION,
625
+ // Legacy sends the mime top-level type (image/video/audio/application…).
626
+ type: asset.mime?.split('/')[0],
627
+ changeLocation: values.folder !== initialValues.folder
628
+ });
628
629
  notify({
629
630
  type: 'success',
630
631
  message: formatMessage({
@@ -635,7 +636,7 @@ const AssetDetails = ({ asset, closeDetails })=>{
635
636
  };
636
637
  const { title: folderName } = useFolderInfo.useFolderInfo(typeof asset.folder === 'object' && asset.folder !== null ? asset.folder.id ?? null : asset.folder ?? null);
637
638
  // Owns the replace upload so isReplacing can drive the busy overlay.
638
- const handleReplace = async (file)=>{
639
+ const handleReplace = React__namespace.useCallback(async (file)=>{
639
640
  const res = await replaceMutation({
640
641
  id: asset.id,
641
642
  file
@@ -652,6 +653,9 @@ const AssetDetails = ({ asset, closeDetails })=>{
652
653
  });
653
654
  return;
654
655
  }
656
+ trackUsage('didReplaceMedia', {
657
+ location: useTracking.MEDIA_LIBRARY_LOCATION
658
+ });
655
659
  notify({
656
660
  type: 'success',
657
661
  message: formatMessage({
@@ -659,10 +663,16 @@ const AssetDetails = ({ asset, closeDetails })=>{
659
663
  defaultMessage: 'File replaced.'
660
664
  })
661
665
  });
662
- };
666
+ }, [
667
+ asset.id,
668
+ formatMessage,
669
+ notify,
670
+ replaceMutation,
671
+ trackUsage
672
+ ]);
663
673
  // Owns the delete: on error notify in-drawer (drawer stays), on success fire
664
674
  // a persistent global notification then close the drawer.
665
- const handleDelete = async ()=>{
675
+ const handleDelete = React__namespace.useCallback(async ()=>{
666
676
  const res = await deleteMutation(asset.id);
667
677
  if ('error' in res) {
668
678
  const error = res.error;
@@ -686,7 +696,15 @@ const AssetDetails = ({ asset, closeDetails })=>{
686
696
  })
687
697
  });
688
698
  closeDetails();
689
- };
699
+ }, [
700
+ asset.id,
701
+ closeDetails,
702
+ deleteMutation,
703
+ folderName,
704
+ formatMessage,
705
+ notify,
706
+ toggleNotification
707
+ ]);
690
708
  const notifyCropError = ()=>{
691
709
  notify({
692
710
  type: 'danger',
@@ -712,6 +730,10 @@ const AssetDetails = ({ asset, closeDetails })=>{
712
730
  notifyCropError();
713
731
  return;
714
732
  }
733
+ trackUsage('didCropFile', {
734
+ location: useTracking.MEDIA_LIBRARY_LOCATION,
735
+ duplicatedFile: false
736
+ });
715
737
  notify({
716
738
  type: 'success',
717
739
  message: formatMessage({
@@ -739,6 +761,10 @@ const AssetDetails = ({ asset, closeDetails })=>{
739
761
  notifyCropError();
740
762
  return;
741
763
  }
764
+ trackUsage('didCropFile', {
765
+ location: useTracking.MEDIA_LIBRARY_LOCATION,
766
+ duplicatedFile: true
767
+ });
742
768
  notify({
743
769
  type: 'success',
744
770
  message: formatMessage({
@@ -752,10 +778,9 @@ const AssetDetails = ({ asset, closeDetails })=>{
752
778
  deleteAsset: handleDelete,
753
779
  isReplacing,
754
780
  isDeleting
755
- }), // handleReplace / handleDelete close over asset+mutations and don't need a
756
- // stable identity here; the consumers re-render with the new context value.
757
- // eslint-disable-next-line react-hooks/exhaustive-deps
758
- [
781
+ }), [
782
+ handleReplace,
783
+ handleDelete,
759
784
  isReplacing,
760
785
  isDeleting
761
786
  ]);
@@ -789,10 +814,8 @@ const AssetDetails = ({ asset, closeDetails })=>{
789
814
  onSaveAsCopy: handleCropSaveAsCopy,
790
815
  canSaveAsCopy: canCreate
791
816
  }) : null,
792
- busyMessage ? /*#__PURE__*/ jsxRuntime.jsx(DrawerBusyOverlay, {
793
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
794
- children: formatMessage(busyMessage)
795
- })
817
+ busyMessage ? /*#__PURE__*/ jsxRuntime.jsx(BusyOverlay.BusyOverlay, {
818
+ children: formatMessage(busyMessage)
796
819
  }) : null,
797
820
  drawerToast ? /*#__PURE__*/ jsxRuntime.jsx(DrawerToastSlot, {
798
821
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Alert, {
@@ -810,7 +833,8 @@ const AssetDetails = ({ asset, closeDetails })=>{
810
833
  /*#__PURE__*/ jsxRuntime.jsx(AssetPreview.AssetPreview, {
811
834
  asset: asset,
812
835
  actions: isImage && canUpdate ? /*#__PURE__*/ jsxRuntime.jsx(AssetImageActions, {
813
- onCrop: ()=>setIsCropOpen(true)
836
+ onCrop: ()=>setIsCropOpen(true),
837
+ mime: asset.mime
814
838
  }) : null
815
839
  }),
816
840
  /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
@@ -924,25 +948,21 @@ const AssetDetails = ({ asset, closeDetails })=>{
924
948
  folders: folders$1,
925
949
  disabled: !canUpdate
926
950
  }),
927
- isImage && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
928
- children: [
929
- /*#__PURE__*/ jsxRuntime.jsx(DetailField, {
930
- name: "caption",
931
- label: formatMessage({
932
- id: translations.getTranslationKey('asset-details.caption'),
933
- defaultMessage: 'Caption'
934
- }),
935
- disabled: !canUpdate
936
- }),
937
- /*#__PURE__*/ jsxRuntime.jsx(DetailField, {
938
- name: "alternativeText",
939
- label: formatMessage({
940
- id: translations.getTranslationKey('asset-details.alternativeText'),
941
- defaultMessage: 'Alternative text'
942
- }),
943
- disabled: !canUpdate
944
- })
945
- ]
951
+ /*#__PURE__*/ jsxRuntime.jsx(DetailField, {
952
+ name: "caption",
953
+ label: formatMessage({
954
+ id: translations.getTranslationKey('asset-details.caption'),
955
+ defaultMessage: 'Caption'
956
+ }),
957
+ disabled: !canUpdate
958
+ }),
959
+ /*#__PURE__*/ jsxRuntime.jsx(DetailField, {
960
+ name: "alternativeText",
961
+ label: formatMessage({
962
+ id: translations.getTranslationKey('asset-details.alternativeText'),
963
+ defaultMessage: 'Alternative text'
964
+ }),
965
+ disabled: !canUpdate
946
966
  })
947
967
  ]
948
968
  })
@@ -1132,5 +1152,6 @@ exports.AssetDetails = AssetDetails;
1132
1152
  exports.AssetDetailsDrawer = AssetDetailsDrawer;
1133
1153
  exports.AssetOperationsContext = AssetOperationsContext;
1134
1154
  exports.DrawerNotifyContext = DrawerNotifyContext;
1155
+ exports.getBusyMessage = getBusyMessage;
1135
1156
  exports.useAssetDetailsParam = useAssetDetailsParam;
1136
1157
  //# sourceMappingURL=AssetDetailsDrawer.js.map