@strapi/upload 5.59.0 → 5.61.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 (295) hide show
  1. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.js +434 -0
  2. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.js.map +1 -0
  3. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.mjs +432 -0
  4. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.mjs.map +1 -0
  5. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.js +91 -0
  6. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.js.map +1 -0
  7. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.mjs +89 -0
  8. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.mjs.map +1 -0
  9. package/dist/admin/components/AssetPickerDialog/MediaLibraryPickerDialog.js +29 -0
  10. package/dist/admin/components/AssetPickerDialog/MediaLibraryPickerDialog.js.map +1 -0
  11. package/dist/admin/components/AssetPickerDialog/MediaLibraryPickerDialog.mjs +27 -0
  12. package/dist/admin/components/AssetPickerDialog/MediaLibraryPickerDialog.mjs.map +1 -0
  13. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.js +178 -0
  14. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.js.map +1 -0
  15. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.mjs +175 -0
  16. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.mjs.map +1 -0
  17. package/dist/admin/components/AssetPickerDialog/SortableSelection.js +143 -0
  18. package/dist/admin/components/AssetPickerDialog/SortableSelection.js.map +1 -0
  19. package/dist/admin/components/AssetPickerDialog/SortableSelection.mjs +141 -0
  20. package/dist/admin/components/AssetPickerDialog/SortableSelection.mjs.map +1 -0
  21. package/dist/admin/components/AssetPickerDialog/pickerSelection.js +49 -0
  22. package/dist/admin/components/AssetPickerDialog/pickerSelection.js.map +1 -0
  23. package/dist/admin/components/AssetPickerDialog/pickerSelection.mjs +41 -0
  24. package/dist/admin/components/AssetPickerDialog/pickerSelection.mjs.map +1 -0
  25. package/dist/admin/components/Drawer.js +12 -7
  26. package/dist/admin/components/Drawer.js.map +1 -1
  27. package/dist/admin/components/Drawer.mjs +12 -7
  28. package/dist/admin/components/Drawer.mjs.map +1 -1
  29. package/dist/admin/components/EditorFileDropZone/EditorFileDropZone.js +188 -0
  30. package/dist/admin/components/EditorFileDropZone/EditorFileDropZone.js.map +1 -0
  31. package/dist/admin/components/EditorFileDropZone/EditorFileDropZone.mjs +186 -0
  32. package/dist/admin/components/EditorFileDropZone/EditorFileDropZone.mjs.map +1 -0
  33. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.js +9 -4
  34. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.js.map +1 -1
  35. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.mjs +9 -4
  36. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.mjs.map +1 -1
  37. package/dist/admin/components/MediaLibraryInput/AssetCard.js +240 -0
  38. package/dist/admin/components/MediaLibraryInput/AssetCard.js.map +1 -0
  39. package/dist/admin/components/MediaLibraryInput/AssetCard.mjs +237 -0
  40. package/dist/admin/components/MediaLibraryInput/AssetCard.mjs.map +1 -0
  41. package/dist/admin/components/MediaLibraryInput/AssetCarousel.js +161 -0
  42. package/dist/admin/components/MediaLibraryInput/AssetCarousel.js.map +1 -0
  43. package/dist/admin/components/MediaLibraryInput/AssetCarousel.mjs +159 -0
  44. package/dist/admin/components/MediaLibraryInput/AssetCarousel.mjs.map +1 -0
  45. package/dist/admin/components/MediaLibraryInput/AssetDropZone.js +76 -49
  46. package/dist/admin/components/MediaLibraryInput/AssetDropZone.js.map +1 -1
  47. package/dist/admin/components/MediaLibraryInput/AssetDropZone.mjs +77 -50
  48. package/dist/admin/components/MediaLibraryInput/AssetDropZone.mjs.map +1 -1
  49. package/dist/admin/components/MediaLibraryInput/AssetPreview.js +109 -0
  50. package/dist/admin/components/MediaLibraryInput/AssetPreview.js.map +1 -0
  51. package/dist/admin/components/MediaLibraryInput/AssetPreview.mjs +106 -0
  52. package/dist/admin/components/MediaLibraryInput/AssetPreview.mjs.map +1 -0
  53. package/dist/admin/components/MediaLibraryInput/AssetRow.js +146 -79
  54. package/dist/admin/components/MediaLibraryInput/AssetRow.js.map +1 -1
  55. package/dist/admin/components/MediaLibraryInput/AssetRow.mjs +148 -82
  56. package/dist/admin/components/MediaLibraryInput/AssetRow.mjs.map +1 -1
  57. package/dist/admin/components/MediaLibraryInput/FieldControls.js +32 -0
  58. package/dist/admin/components/MediaLibraryInput/FieldControls.js.map +1 -0
  59. package/dist/admin/components/MediaLibraryInput/FieldControls.mjs +29 -0
  60. package/dist/admin/components/MediaLibraryInput/FieldControls.mjs.map +1 -0
  61. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +163 -111
  62. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  63. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +162 -114
  64. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  65. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.js +42 -0
  66. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.js.map +1 -0
  67. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.mjs +40 -0
  68. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.mjs.map +1 -0
  69. package/dist/admin/components/MediaLibraryInput/openAssetDetails.js +46 -0
  70. package/dist/admin/components/MediaLibraryInput/openAssetDetails.js.map +1 -0
  71. package/dist/admin/components/MediaLibraryInput/openAssetDetails.mjs +43 -0
  72. package/dist/admin/components/MediaLibraryInput/openAssetDetails.mjs.map +1 -0
  73. package/dist/admin/components/MediaLibraryInput/useFieldUploads.js +122 -0
  74. package/dist/admin/components/MediaLibraryInput/useFieldUploads.js.map +1 -0
  75. package/dist/admin/components/MediaLibraryInput/useFieldUploads.mjs +120 -0
  76. package/dist/admin/components/MediaLibraryInput/useFieldUploads.mjs.map +1 -0
  77. package/dist/admin/components/UploadProgressDialog.js +2 -1
  78. package/dist/admin/components/UploadProgressDialog.js.map +1 -1
  79. package/dist/admin/components/UploadProgressDialog.mjs +2 -1
  80. package/dist/admin/components/UploadProgressDialog.mjs.map +1 -1
  81. package/dist/admin/hooks/useMediaLibraryPermissions.js +12 -2
  82. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  83. package/dist/admin/hooks/useMediaLibraryPermissions.mjs +12 -2
  84. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  85. package/dist/admin/index.js +10 -1
  86. package/dist/admin/index.js.map +1 -1
  87. package/dist/admin/index.mjs +10 -1
  88. package/dist/admin/index.mjs.map +1 -1
  89. package/dist/admin/pages/Assets/AssetsPage.js +14 -303
  90. package/dist/admin/pages/Assets/AssetsPage.js.map +1 -1
  91. package/dist/admin/pages/Assets/AssetsPage.mjs +13 -282
  92. package/dist/admin/pages/Assets/AssetsPage.mjs.map +1 -1
  93. package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.mjs +2 -2
  94. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +181 -65
  95. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
  96. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +184 -69
  97. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
  98. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs +1 -1
  99. package/dist/admin/pages/Assets/components/AssetsGrid.js +142 -31
  100. package/dist/admin/pages/Assets/components/AssetsGrid.js.map +1 -1
  101. package/dist/admin/pages/Assets/components/AssetsGrid.mjs +145 -34
  102. package/dist/admin/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  103. package/dist/admin/pages/Assets/components/AssetsSearchInput.js +43 -2
  104. package/dist/admin/pages/Assets/components/AssetsSearchInput.js.map +1 -1
  105. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs +45 -4
  106. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs.map +1 -1
  107. package/dist/admin/pages/Assets/components/AssetsTable.js +58 -34
  108. package/dist/admin/pages/Assets/components/AssetsTable.js.map +1 -1
  109. package/dist/admin/pages/Assets/components/AssetsTable.mjs +60 -36
  110. package/dist/admin/pages/Assets/components/AssetsTable.mjs.map +1 -1
  111. package/dist/admin/pages/Assets/components/AssetsView.js +145 -0
  112. package/dist/admin/pages/Assets/components/AssetsView.js.map +1 -0
  113. package/dist/admin/pages/Assets/components/AssetsView.mjs +143 -0
  114. package/dist/admin/pages/Assets/components/AssetsView.mjs.map +1 -0
  115. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs +1 -1
  116. package/dist/admin/pages/Assets/components/BusyOverlay.mjs +1 -1
  117. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs +1 -1
  118. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.js +40 -0
  119. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.js.map +1 -0
  120. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.mjs +38 -0
  121. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.mjs.map +1 -0
  122. package/dist/admin/pages/Assets/components/Dnd/assetSortable.js +29 -0
  123. package/dist/admin/pages/Assets/components/Dnd/assetSortable.js.map +1 -0
  124. package/dist/admin/pages/Assets/components/Dnd/assetSortable.mjs +24 -0
  125. package/dist/admin/pages/Assets/components/Dnd/assetSortable.mjs.map +1 -0
  126. package/dist/admin/pages/Assets/components/Dnd/dndIds.js +5 -0
  127. package/dist/admin/pages/Assets/components/Dnd/dndIds.js.map +1 -1
  128. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs +5 -1
  129. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs.map +1 -1
  130. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js +41 -13
  131. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -1
  132. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs +41 -13
  133. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -1
  134. package/dist/admin/pages/Assets/components/FilterBadges.mjs +2 -2
  135. package/dist/admin/pages/Assets/components/FilterMenu.mjs +2 -2
  136. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js +274 -55
  137. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js.map +1 -1
  138. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs +277 -59
  139. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -1
  140. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.js +32 -0
  141. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.js.map +1 -0
  142. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.mjs +29 -0
  143. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.mjs.map +1 -0
  144. package/dist/admin/pages/Assets/components/ViewToggle.js +126 -0
  145. package/dist/admin/pages/Assets/components/ViewToggle.js.map +1 -0
  146. package/dist/admin/pages/Assets/components/ViewToggle.mjs +104 -0
  147. package/dist/admin/pages/Assets/components/ViewToggle.mjs.map +1 -0
  148. package/dist/admin/pages/Assets/hooks/useAssetSearch.js +2 -2
  149. package/dist/admin/pages/Assets/hooks/useAssetSearch.js.map +1 -1
  150. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs +2 -2
  151. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs.map +1 -1
  152. package/dist/admin/pages/Assets/hooks/useAssetSelection.js +19 -1
  153. package/dist/admin/pages/Assets/hooks/useAssetSelection.js.map +1 -1
  154. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs +20 -3
  155. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs.map +1 -1
  156. package/dist/admin/pages/Assets/hooks/useAssetsList.js +87 -0
  157. package/dist/admin/pages/Assets/hooks/useAssetsList.js.map +1 -0
  158. package/dist/admin/pages/Assets/hooks/useAssetsList.mjs +85 -0
  159. package/dist/admin/pages/Assets/hooks/useAssetsList.mjs.map +1 -0
  160. package/dist/admin/pages/Assets/hooks/useBusyAssets.mjs +1 -1
  161. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js +2 -1
  162. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  163. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs +3 -2
  164. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  165. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.js +2 -6
  166. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +1 -1
  167. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.mjs +2 -6
  168. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +1 -1
  169. package/dist/admin/pages/Assets/hooks/useListFilters.js +2 -1
  170. package/dist/admin/pages/Assets/hooks/useListFilters.js.map +1 -1
  171. package/dist/admin/pages/Assets/hooks/useListFilters.mjs +3 -2
  172. package/dist/admin/pages/Assets/hooks/useListFilters.mjs.map +1 -1
  173. package/dist/admin/pages/Assets/hooks/useListQueryParams.js +80 -0
  174. package/dist/admin/pages/Assets/hooks/useListQueryParams.js.map +1 -0
  175. package/dist/admin/pages/Assets/hooks/useListQueryParams.mjs +77 -0
  176. package/dist/admin/pages/Assets/hooks/useListQueryParams.mjs.map +1 -0
  177. package/dist/admin/pages/Assets/hooks/useListSettings.js +32 -0
  178. package/dist/admin/pages/Assets/hooks/useListSettings.js.map +1 -0
  179. package/dist/admin/pages/Assets/hooks/useListSettings.mjs +29 -0
  180. package/dist/admin/pages/Assets/hooks/useListSettings.mjs.map +1 -0
  181. package/dist/admin/pages/Assets/hooks/useListSort.js +2 -1
  182. package/dist/admin/pages/Assets/hooks/useListSort.js.map +1 -1
  183. package/dist/admin/pages/Assets/hooks/useListSort.mjs +3 -2
  184. package/dist/admin/pages/Assets/hooks/useListSort.mjs.map +1 -1
  185. package/dist/admin/services/api.js +92 -7
  186. package/dist/admin/services/api.js.map +1 -1
  187. package/dist/admin/services/api.mjs +91 -9
  188. package/dist/admin/services/api.mjs.map +1 -1
  189. package/dist/admin/src/components/AssetPickerDialog/AssetPickerDialog.d.ts +19 -0
  190. package/dist/admin/src/components/AssetPickerDialog/FolderBreadcrumbs.d.ts +10 -0
  191. package/dist/admin/src/components/AssetPickerDialog/MediaLibraryPickerDialog.d.ts +19 -0
  192. package/dist/admin/src/components/AssetPickerDialog/PickerSelectionProvider.d.ts +28 -0
  193. package/dist/admin/src/components/AssetPickerDialog/SortableSelection.d.ts +12 -0
  194. package/dist/admin/src/components/AssetPickerDialog/pickerSelection.d.ts +26 -0
  195. package/dist/admin/src/components/Drawer.d.ts +8 -0
  196. package/dist/admin/src/components/EditorFileDropZone/EditorFileDropZone.d.ts +21 -0
  197. package/dist/admin/src/components/MediaLibraryInput/AddAssetMenu.d.ts +7 -1
  198. package/dist/admin/src/components/MediaLibraryInput/AssetCard.d.ts +25 -0
  199. package/dist/admin/src/components/MediaLibraryInput/AssetCarousel.d.ts +16 -0
  200. package/dist/admin/src/components/MediaLibraryInput/AssetDropZone.d.ts +11 -3
  201. package/dist/admin/src/components/MediaLibraryInput/AssetPreview.d.ts +17 -0
  202. package/dist/admin/src/components/MediaLibraryInput/AssetRow.d.ts +13 -3
  203. package/dist/admin/src/components/MediaLibraryInput/FieldControls.d.ts +19 -0
  204. package/dist/admin/src/components/MediaLibraryInput/MediaLibraryInput.d.ts +3 -1
  205. package/dist/admin/src/components/MediaLibraryInput/UploadProgressBar.d.ts +7 -0
  206. package/dist/admin/src/components/MediaLibraryInput/openAssetDetails.d.ts +10 -0
  207. package/dist/admin/src/components/MediaLibraryInput/useFieldUploads.d.ts +31 -0
  208. package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +2 -0
  209. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +41 -5
  210. package/dist/admin/src/pages/Assets/components/AssetsGrid.d.ts +3 -1
  211. package/dist/admin/src/pages/Assets/components/AssetsSearchInput.d.ts +11 -1
  212. package/dist/admin/src/pages/Assets/components/AssetsView.d.ts +29 -0
  213. package/dist/admin/src/pages/Assets/components/Dnd/ReorderHandle.d.ts +12 -0
  214. package/dist/admin/src/pages/Assets/components/Dnd/assetSortable.d.ts +37 -0
  215. package/dist/admin/src/pages/Assets/components/Dnd/dndIds.d.ts +5 -0
  216. package/dist/admin/src/pages/Assets/components/Dnd/useAssetDnd.d.ts +23 -2
  217. package/dist/admin/src/pages/Assets/components/FolderTree/FolderTree.d.ts +1 -0
  218. package/dist/admin/src/pages/Assets/components/FolderTree/collapsedBranch.d.ts +21 -0
  219. package/dist/admin/src/pages/Assets/components/ViewToggle.d.ts +8 -0
  220. package/dist/admin/src/pages/Assets/hooks/useAssetSelection.d.ts +26 -0
  221. package/dist/admin/src/pages/Assets/hooks/useAssetsList.d.ts +30 -0
  222. package/dist/admin/src/pages/Assets/hooks/useIsAssetDetailsOpen.d.ts +2 -6
  223. package/dist/admin/src/pages/Assets/hooks/useListQueryParams.d.ts +27 -0
  224. package/dist/admin/src/pages/Assets/hooks/useListSettings.d.ts +29 -0
  225. package/dist/admin/src/services/api.d.ts +24 -1
  226. package/dist/admin/src/store/uploadProgress.d.ts +14 -1
  227. package/dist/admin/src/utils/findFolderPath.d.ts +6 -0
  228. package/dist/admin/src/utils/isAllowedAssetType.d.ts +14 -0
  229. package/dist/admin/store/uploadProgress.js +30 -3
  230. package/dist/admin/store/uploadProgress.js.map +1 -1
  231. package/dist/admin/store/uploadProgress.mjs +29 -4
  232. package/dist/admin/store/uploadProgress.mjs.map +1 -1
  233. package/dist/admin/translations/en.json.js +24 -0
  234. package/dist/admin/translations/en.json.js.map +1 -1
  235. package/dist/admin/translations/en.json.mjs +24 -0
  236. package/dist/admin/translations/en.json.mjs.map +1 -1
  237. package/dist/admin/utils/findFolderPath.js +26 -0
  238. package/dist/admin/utils/findFolderPath.js.map +1 -0
  239. package/dist/admin/utils/findFolderPath.mjs +24 -0
  240. package/dist/admin/utils/findFolderPath.mjs.map +1 -0
  241. package/dist/admin/utils/isAllowedAssetType.js +33 -0
  242. package/dist/admin/utils/isAllowedAssetType.js.map +1 -0
  243. package/dist/admin/utils/isAllowedAssetType.mjs +31 -0
  244. package/dist/admin/utils/isAllowedAssetType.mjs.map +1 -0
  245. package/dist/server/audit-logs.js +264 -0
  246. package/dist/server/audit-logs.js.map +1 -0
  247. package/dist/server/audit-logs.mjs +255 -0
  248. package/dist/server/audit-logs.mjs.map +1 -0
  249. package/dist/server/bootstrap.js +4 -0
  250. package/dist/server/bootstrap.js.map +1 -1
  251. package/dist/server/bootstrap.mjs +4 -0
  252. package/dist/server/bootstrap.mjs.map +1 -1
  253. package/dist/server/controllers/admin-folder-file.js +23 -1
  254. package/dist/server/controllers/admin-folder-file.js.map +1 -1
  255. package/dist/server/controllers/admin-folder-file.mjs +23 -1
  256. package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
  257. package/dist/server/controllers/admin-settings.js +5 -1
  258. package/dist/server/controllers/admin-settings.js.map +1 -1
  259. package/dist/server/controllers/admin-settings.mjs +5 -1
  260. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  261. package/dist/server/services/folder.js +48 -1
  262. package/dist/server/services/folder.js.map +1 -1
  263. package/dist/server/services/folder.mjs +48 -1
  264. package/dist/server/services/folder.mjs.map +1 -1
  265. package/dist/server/services/image-manipulation.js +14 -7
  266. package/dist/server/services/image-manipulation.js.map +1 -1
  267. package/dist/server/services/image-manipulation.mjs +14 -7
  268. package/dist/server/services/image-manipulation.mjs.map +1 -1
  269. package/dist/server/services/upload.js +100 -16
  270. package/dist/server/services/upload.js.map +1 -1
  271. package/dist/server/services/upload.mjs +102 -18
  272. package/dist/server/services/upload.mjs.map +1 -1
  273. package/dist/server/src/audit-logs.d.ts +142 -0
  274. package/dist/server/src/audit-logs.d.ts.map +1 -0
  275. package/dist/server/src/bootstrap.d.ts.map +1 -1
  276. package/dist/server/src/controllers/admin-folder-file.d.ts.map +1 -1
  277. package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
  278. package/dist/server/src/index.d.ts +4 -4
  279. package/dist/server/src/index.d.ts.map +1 -1
  280. package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -1
  281. package/dist/server/src/services/extensions/utils.d.ts +11 -11
  282. package/dist/server/src/services/folder.d.ts.map +1 -1
  283. package/dist/server/src/services/image-manipulation.d.ts +4 -4
  284. package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
  285. package/dist/server/src/services/index.d.ts +4 -4
  286. package/dist/server/src/services/index.d.ts.map +1 -1
  287. package/dist/server/src/services/upload.d.ts.map +1 -1
  288. package/dist/server/src/types.d.ts +63 -12
  289. package/dist/server/src/types.d.ts.map +1 -1
  290. package/package.json +11 -16
  291. package/dist/admin/components/MediaLibraryInput/NoLibraryAccessDialog.js +0 -45
  292. package/dist/admin/components/MediaLibraryInput/NoLibraryAccessDialog.js.map +0 -1
  293. package/dist/admin/components/MediaLibraryInput/NoLibraryAccessDialog.mjs +0 -43
  294. package/dist/admin/components/MediaLibraryInput/NoLibraryAccessDialog.mjs.map +0 -1
  295. package/dist/admin/src/components/MediaLibraryInput/NoLibraryAccessDialog.d.ts +0 -10
@@ -2,17 +2,20 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
+ var core = require('@dnd-kit/core');
5
6
  var strapiAdmin = require('@strapi/admin/strapi-admin');
6
7
  var designSystem = require('@strapi/design-system');
7
8
  var icons = require('@strapi/icons');
8
9
  var reactIntl = require('react-intl');
9
10
  var styledComponents = require('styled-components');
10
- var TruncatedText = require('../../../../components/TruncatedText.js');
11
11
  var folders = require('../../../../services/folders.js');
12
+ var findFolderPath = require('../../../../utils/findFolderPath.js');
12
13
  var isEventFromWithin = require('../../../../utils/isEventFromWithin.js');
13
14
  var translations = require('../../../../utils/translations.js');
14
15
  var AssetsDndProvider = require('../Dnd/AssetsDndProvider.js');
16
+ var dndIds = require('../Dnd/dndIds.js');
15
17
  var useFolderTreeDroppable = require('../Dnd/useFolderTreeDroppable.js');
18
+ var collapsedBranch = require('./collapsedBranch.js');
16
19
  var FolderTreeRowMenu = require('./FolderTreeRowMenu.js');
17
20
  var useSpringLoadedExpand = require('./useSpringLoadedExpand.js');
18
21
 
@@ -56,6 +59,13 @@ var useSpringLoadedExpand = require('./useSpringLoadedExpand.js');
56
59
  outline-offset: -2px;
57
60
  }
58
61
  `;
62
+ // Squared where path rows meet, so the path reads as one block rather than a
63
+ // stack of separately highlighted rows.
64
+ const getOpenPathRadius = (segment, radius)=>({
65
+ start: `${radius} ${radius} 0 0`,
66
+ middle: '0',
67
+ end: `0 0 ${radius} ${radius}`
68
+ })[segment];
59
69
  const TreeRow = styledComponents.styled(designSystem.Flex)`
60
70
  cursor: ${({ $isMovePending, $isInvalidDropCursor })=>{
61
71
  if ($isMovePending) {
@@ -64,13 +74,28 @@ const TreeRow = styledComponents.styled(designSystem.Flex)`
64
74
  return $isInvalidDropCursor ? 'not-allowed' : 'default';
65
75
  }};
66
76
  pointer-events: ${({ $isMovePending })=>$isMovePending ? 'none' : 'auto'};
67
- border-radius: ${({ theme })=>theme.borderRadius};
68
- background: ${({ $isActive, theme })=>$isActive ? theme.colors.primary100 : 'transparent'};
77
+ border-radius: ${({ $openPathSegment, theme })=>$openPathSegment ? getOpenPathRadius($openPathSegment, theme.borderRadius) : theme.borderRadius};
78
+ background: ${({ $isActive, $openPathSegment, theme })=>{
79
+ if ($isActive) {
80
+ return theme.colors.primary100;
81
+ }
82
+ // While a summary row is open, the path down to the open folder is tinted —
83
+ // the folders it reveals plus the parent — so the tint reads as "on the way
84
+ // here" and the open folder's own highlight as "here".
85
+ return $openPathSegment ? theme.colors.neutral100 : 'transparent';
86
+ }};
69
87
 
70
88
  // The whole row lights up, so pointing anywhere along it — chevron, label or
71
- // the actions trigger — reads as one target.
89
+ // the actions trigger — reads as one target. A path row steps past its tint
90
+ // rather than to primary100, which would make it look like a second open
91
+ // folder (and, in dark mode, is the same colour as the tint).
72
92
  &:hover {
73
- background: ${({ $isActive, theme })=>$isActive ? theme.colors.primary100 : theme.colors.neutral100};
93
+ background: ${({ $isActive, $openPathSegment, theme })=>{
94
+ if ($isActive) {
95
+ return theme.colors.primary100;
96
+ }
97
+ return $openPathSegment ? theme.colors.neutral150 : theme.colors.neutral100;
98
+ }};
74
99
  }
75
100
 
76
101
  ${({ $isValidDropTarget, theme })=>$isValidDropTarget && styledComponents.css`
@@ -85,31 +110,14 @@ const TreeRow = styledComponents.styled(designSystem.Flex)`
85
110
  `;
86
111
  /* -------------------------------------------------------------------------------------------------
87
112
  * useExpandedFolders — local expand/collapse state
88
- * -----------------------------------------------------------------------------------------------*/ const findAncestorIds = (nodes, targetId, trail = [])=>{
89
- for (const node of nodes){
90
- if (node.id === targetId) {
91
- return trail;
92
- }
93
- if (node.children?.length) {
94
- const nextTrail = node.id != null ? [
95
- ...trail,
96
- node.id
97
- ] : trail;
98
- const found = findAncestorIds(node.children, targetId, nextTrail);
99
- if (found !== null) {
100
- return found;
101
- }
102
- }
103
- }
104
- return null;
105
- };
106
- const useExpandedFolders = (folderStructure, currentFolderId)=>{
113
+ * -----------------------------------------------------------------------------------------------*/ const useExpandedFolders = (folderStructure, currentFolderId)=>{
107
114
  const [expandedIds, setExpandedIds] = React.useState(()=>new Set());
108
115
  React.useEffect(()=>{
109
116
  if (currentFolderId == null) {
110
117
  return;
111
118
  }
112
- const ancestors = findAncestorIds(folderStructure, currentFolderId);
119
+ // The path ends with the current folder itself, which needs no expanding.
120
+ const ancestors = findFolderPath.findFolderPath(folderStructure, currentFolderId)?.slice(0, -1).map((folder)=>folder.id).filter((id)=>id != null);
113
121
  if (!ancestors || ancestors.length === 0) {
114
122
  return;
115
123
  }
@@ -184,6 +192,11 @@ const useExpandedFolders = (folderStructure, currentFolderId)=>{
184
192
  /* -------------------------------------------------------------------------------------------------
185
193
  * FolderTreeItem — single tree row (internal)
186
194
  * -----------------------------------------------------------------------------------------------*/ const INDENT_PER_LEVEL_REM = 1.6;
195
+ /**
196
+ * Deeper rows keep this level's indent, so a name never runs out of room however
197
+ * deep the tree goes. Rows past it stay readable through their path tooltip.
198
+ */ const MAX_VISUAL_LEVEL = 4;
199
+ const getIndentRem = (level)=>Math.min(level, MAX_VISUAL_LEVEL) * INDENT_PER_LEVEL_REM;
187
200
  /**
188
201
  * Breathing room between the row's highlight and the controls at either end.
189
202
  * Asymmetric on purpose: the chevron reads as part of the indent, while the
@@ -234,7 +247,7 @@ const RotatingChevron = styledComponents.styled(icons.ChevronDown)`
234
247
  transform: rotate(${({ $expanded })=>$expanded ? '0deg' : '-90deg'});
235
248
  transition: transform 0.2s ease;
236
249
  `;
237
- const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, currentFolderId, showActiveFolder, isExpanded, onToggle, onExpand, onSelect, isMovePending })=>{
250
+ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, currentFolderId, showActiveFolder, isExpanded, onToggle, onExpand, onSelect, isMovePending, ancestorNames, isHiddenAncestor = false, openPathSegment, subtree })=>{
238
251
  const { formatMessage } = reactIntl.useIntl();
239
252
  const hasChildren = folderChildren.length > 0;
240
253
  // A folder keeps its entry in the expanded set after its last subfolder is
@@ -242,6 +255,14 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
242
255
  // show" — otherwise the chevron stays rotated on what is now a leaf.
243
256
  const isFolderExpanded = isExpanded(id) && hasChildren;
244
257
  const isActive = showActiveFolder && currentFolderId === id;
258
+ const pathLabel = [
259
+ formatMessage({
260
+ id: translations.getTranslationKey('plugin.name'),
261
+ defaultMessage: 'Media Library'
262
+ }),
263
+ ...ancestorNames,
264
+ name
265
+ ].join(' / ');
245
266
  const { droppable: { setNodeRef }, isOver, showValidDropHighlight, showInvalidDropCursor } = useFolderTreeDroppable.useFolderTreeDroppable({
246
267
  id,
247
268
  name
@@ -256,7 +277,7 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
256
277
  const rowButtonRef = React.useRef(null);
257
278
  useSpringLoadedExpand.useSpringLoadedExpand({
258
279
  isOver,
259
- canExpand: hasChildren && !isFolderExpanded,
280
+ canExpand: !isHiddenAncestor && hasChildren && !isFolderExpanded,
260
281
  onExpand: handleExpand
261
282
  });
262
283
  // TODO: full `role="tree"` + arrow-key treeview navigation before revamp GA
@@ -269,10 +290,11 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
269
290
  alignItems: "center",
270
291
  // Indent plus the row's own inset, so the chevron never sits flush
271
292
  // against the edge of the highlight at any depth.
272
- paddingLeft: `${level * INDENT_PER_LEVEL_REM + ROW_INSET_LEFT_REM}rem`,
293
+ paddingLeft: `${getIndentRem(level) + ROW_INSET_LEFT_REM}rem`,
273
294
  paddingRight: `${ROW_INSET_RIGHT_REM}rem`,
274
295
  gap: 1,
275
296
  $isActive: isActive,
297
+ $openPathSegment: openPathSegment,
276
298
  $isValidDropTarget: showValidDropHighlight,
277
299
  $isInvalidDropCursor: showInvalidDropCursor,
278
300
  $isMovePending: isMovePending,
@@ -287,7 +309,9 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
287
309
  });
288
310
  },
289
311
  children: [
290
- /*#__PURE__*/ jsxRuntime.jsx(ChevronButton, {
312
+ isHiddenAncestor ? /*#__PURE__*/ jsxRuntime.jsx(IconSlot, {
313
+ "aria-hidden": true
314
+ }) : /*#__PURE__*/ jsxRuntime.jsx(ChevronButton, {
291
315
  label: hasChildren ? formatMessage({
292
316
  id: translations.getTranslationKey(isFolderExpanded ? 'sidebar.tree.collapse' : 'sidebar.tree.expand'),
293
317
  defaultMessage: isFolderExpanded ? 'Collapse {name}' : 'Expand {name}'
@@ -315,21 +339,25 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
315
339
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
316
340
  flex: "1",
317
341
  minWidth: 0,
318
- children: /*#__PURE__*/ jsxRuntime.jsx(RowButton, {
319
- ref: rowButtonRef,
320
- type: "button",
321
- $isActive: isActive,
322
- $isValidDropTarget: showValidDropHighlight,
323
- $isInvalidDropCursor: showInvalidDropCursor,
324
- $isMovePending: isMovePending,
325
- "aria-current": isActive ? 'page' : undefined,
326
- onClick: ()=>onSelect(id),
327
- "data-testid": `folder-tree-node-${id}`,
328
- "data-folder-id": id,
329
- children: /*#__PURE__*/ jsxRuntime.jsx(TruncatedText.TruncatedText, {
330
- variant: "omega",
331
- fontWeight: isActive ? 'semiBold' : 'regular',
332
- children: name
342
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tooltip, {
343
+ label: pathLabel,
344
+ children: /*#__PURE__*/ jsxRuntime.jsx(RowButton, {
345
+ ref: rowButtonRef,
346
+ type: "button",
347
+ $isActive: isActive,
348
+ $isValidDropTarget: showValidDropHighlight,
349
+ $isInvalidDropCursor: showInvalidDropCursor,
350
+ $isMovePending: isMovePending,
351
+ "aria-current": isActive ? 'page' : undefined,
352
+ onClick: ()=>onSelect(id),
353
+ "data-testid": `folder-tree-node-${id}`,
354
+ "data-folder-id": id,
355
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
356
+ ellipsis: true,
357
+ variant: "omega",
358
+ fontWeight: isActive ? 'semiBold' : 'regular',
359
+ children: name
360
+ })
333
361
  })
334
362
  })
335
363
  }),
@@ -345,7 +373,7 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
345
373
  })
346
374
  ]
347
375
  }),
348
- hasChildren && isFolderExpanded && /*#__PURE__*/ jsxRuntime.jsx(NavList, {
376
+ hasChildren && isFolderExpanded && !isHiddenAncestor && (subtree ?? /*#__PURE__*/ jsxRuntime.jsx(NavList, {
349
377
  children: folderChildren.map((child)=>/*#__PURE__*/ jsxRuntime.jsx(FolderTreeItem, {
350
378
  node: child,
351
379
  parentId: id,
@@ -356,9 +384,13 @@ const FolderTreeItemInner = ({ id, name, parentId, folderChildren, level, curren
356
384
  onToggle: onToggle,
357
385
  onExpand: onExpand,
358
386
  onSelect: onSelect,
359
- isMovePending: isMovePending
387
+ isMovePending: isMovePending,
388
+ ancestorNames: [
389
+ ...ancestorNames,
390
+ name
391
+ ]
360
392
  }, child.id ?? child.name))
361
- })
393
+ }))
362
394
  ]
363
395
  });
364
396
  };
@@ -373,6 +405,155 @@ const FolderTreeItem = ({ node, ...props })=>{
373
405
  folderChildren: node.children ?? []
374
406
  });
375
407
  };
408
+ /* -------------------------------------------------------------------------------------------------
409
+ * CollapsedAncestors — the "N parent folders" row of a deep branch (internal)
410
+ * -----------------------------------------------------------------------------------------------*/ const SummaryLabel = styledComponents.styled(designSystem.Typography)`
411
+ font-style: italic;
412
+ `;
413
+ const SummaryChevron = styledComponents.styled(icons.ChevronRight)`
414
+ transform: rotate(${({ $expanded })=>$expanded ? '90deg' : '0deg'});
415
+ transition: transform 0.2s ease;
416
+ `;
417
+ /**
418
+ * Stands in for the folders between a deep branch's root and the selected
419
+ * folder's parent, and lists them in place when opened.
420
+ */ const CollapsedAncestors = ({ branch, isOpen, onOpenChange, ...itemProps })=>{
421
+ const { formatMessage } = reactIntl.useIntl();
422
+ const listId = React.useId();
423
+ const open = React.useCallback(()=>onOpenChange(true), [
424
+ onOpenChange
425
+ ]);
426
+ const rootName = branch.root.name ?? '';
427
+ const hiddenNames = branch.hidden.map((node)=>node.name ?? '');
428
+ // Without this the hidden folders would be unreachable mid-drag, since the row
429
+ // can't be clicked while dragging. It never resolves to a destination.
430
+ const { setNodeRef, isOver } = core.useDroppable({
431
+ id: dndIds.toFolderTreeSummaryId(branch.root.id),
432
+ disabled: itemProps.isMovePending
433
+ });
434
+ useSpringLoadedExpand.useSpringLoadedExpand({
435
+ isOver,
436
+ canExpand: !isOpen,
437
+ onExpand: open
438
+ });
439
+ return /*#__PURE__*/ jsxRuntime.jsxs("li", {
440
+ children: [
441
+ /*#__PURE__*/ jsxRuntime.jsx(TreeRow, {
442
+ ref: setNodeRef,
443
+ "data-native-context-menu": true,
444
+ alignItems: "center",
445
+ paddingLeft: `${getIndentRem(1) + ROW_INSET_LEFT_REM}rem`,
446
+ paddingRight: `${ROW_INSET_RIGHT_REM}rem`,
447
+ $isInvalidDropCursor: isOver,
448
+ $isMovePending: itemProps.isMovePending,
449
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tooltip, {
450
+ label: hiddenNames.join(' / '),
451
+ children: /*#__PURE__*/ jsxRuntime.jsxs(RowButton, {
452
+ type: "button",
453
+ $isActive: false,
454
+ $isInvalidDropCursor: isOver,
455
+ $isMovePending: itemProps.isMovePending,
456
+ "aria-expanded": isOpen,
457
+ "aria-controls": isOpen ? listId : undefined,
458
+ onClick: ()=>onOpenChange(!isOpen),
459
+ "data-testid": "folder-tree-hidden-ancestors",
460
+ children: [
461
+ /*#__PURE__*/ jsxRuntime.jsx(IconSlot, {
462
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.More, {
463
+ "aria-hidden": true,
464
+ fill: "neutral500"
465
+ })
466
+ }),
467
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
468
+ flex: "1",
469
+ minWidth: 0,
470
+ children: /*#__PURE__*/ jsxRuntime.jsx(SummaryLabel, {
471
+ ellipsis: true,
472
+ variant: "omega",
473
+ textColor: "neutral600",
474
+ children: formatMessage({
475
+ id: translations.getTranslationKey('sidebar.tree.hidden-ancestors'),
476
+ defaultMessage: '{count, plural, one {# parent folder} other {# parent folders}}'
477
+ }, {
478
+ count: branch.hidden.length
479
+ })
480
+ })
481
+ }),
482
+ /*#__PURE__*/ jsxRuntime.jsx(IconSlot, {
483
+ children: /*#__PURE__*/ jsxRuntime.jsx(SummaryChevron, {
484
+ "aria-hidden": true,
485
+ $expanded: isOpen,
486
+ fill: "neutral500"
487
+ })
488
+ })
489
+ ]
490
+ })
491
+ })
492
+ }),
493
+ isOpen && /*#__PURE__*/ jsxRuntime.jsx(NavList, {
494
+ id: listId,
495
+ children: branch.hidden.map((node, index)=>/*#__PURE__*/ React.createElement(FolderTreeItem, {
496
+ ...itemProps,
497
+ key: node.id ?? node.name,
498
+ node: node,
499
+ parentId: (index === 0 ? branch.root.id : branch.hidden[index - 1].id) ?? null,
500
+ // All at one level: they are a list of the path, not a nested tree.
501
+ level: 2,
502
+ ancestorNames: [
503
+ rootName,
504
+ ...hiddenNames.slice(0, index)
505
+ ],
506
+ isHiddenAncestor: true,
507
+ openPathSegment: index === 0 ? 'start' : 'middle'
508
+ }))
509
+ })
510
+ ]
511
+ });
512
+ };
513
+ /**
514
+ * The root folder of a deep branch, with everything between it and the selected
515
+ * folder's parent folded into one row. See `getCollapsedBranch`.
516
+ */ const CollapsedBranchItem = ({ branch, ...itemProps })=>{
517
+ const { currentFolderId } = itemProps;
518
+ const [isOpen, setIsOpen] = React.useState(false);
519
+ // Closed again on every new selection, clicking a hidden folder included.
520
+ // Reset during render rather than in an effect, so the list never paints open
521
+ // for a folder it wasn't opened on.
522
+ const [openedOn, setOpenedOn] = React.useState(currentFolderId);
523
+ if (openedOn !== currentFolderId) {
524
+ setOpenedOn(currentFolderId);
525
+ setIsOpen(false);
526
+ }
527
+ const ancestorNamesOfParent = [
528
+ branch.root,
529
+ ...branch.hidden
530
+ ].map((node)=>node.name ?? '');
531
+ return /*#__PURE__*/ jsxRuntime.jsx(FolderTreeItem, {
532
+ ...itemProps,
533
+ node: branch.root,
534
+ parentId: null,
535
+ level: 0,
536
+ ancestorNames: [],
537
+ subtree: /*#__PURE__*/ jsxRuntime.jsxs(NavList, {
538
+ children: [
539
+ /*#__PURE__*/ jsxRuntime.jsx(CollapsedAncestors, {
540
+ ...itemProps,
541
+ branch: branch,
542
+ isOpen: isOpen,
543
+ onOpenChange: setIsOpen
544
+ }),
545
+ /*#__PURE__*/ jsxRuntime.jsx(FolderTreeItem, {
546
+ ...itemProps,
547
+ node: branch.parent,
548
+ parentId: branch.hidden[branch.hidden.length - 1]?.id ?? branch.root.id ?? null,
549
+ level: 2,
550
+ ancestorNames: ancestorNamesOfParent,
551
+ openPathSegment: isOpen ? 'end' : undefined
552
+ })
553
+ ]
554
+ })
555
+ });
556
+ };
376
557
  const FOLDER_TREE_ROOT_SELECTOR = '[data-folder-tree-root]';
377
558
  /**
378
559
  * Left-rail navigation for the Media Library. Fetches folder structure internally
@@ -397,6 +578,45 @@ const FOLDER_TREE_ROOT_SELECTOR = '[data-folder-tree-root]';
397
578
  const { isMovePending } = AssetsDndProvider.useAssetsDndOptional() ?? {
398
579
  isMovePending: false
399
580
  };
581
+ const collapsedBranch$1 = React.useMemo(()=>collapsedBranch.getCollapsedBranch(folderStructure, currentFolderId), [
582
+ folderStructure,
583
+ currentFolderId
584
+ ]);
585
+ // A selection that folds or unfolds a branch remounts the selected row, which
586
+ // drops focus to <body>. Whether focus was in the tree has to be read before
587
+ // the selection, since by the time the new row renders the old one is gone.
588
+ const restoreFocusRef = React.useRef(false);
589
+ const handleSelectFolder = React.useCallback((folderId)=>{
590
+ // Re-selecting the open folder renders nothing new, so a flag set here
591
+ // would linger and pull focus back on a later, unrelated navigation.
592
+ restoreFocusRef.current = folderId !== currentFolderId && document.activeElement?.closest(FOLDER_TREE_ROOT_SELECTOR) != null;
593
+ onSelectFolder(folderId);
594
+ }, [
595
+ currentFolderId,
596
+ onSelectFolder
597
+ ]);
598
+ React.useEffect(()=>{
599
+ if (!restoreFocusRef.current || currentFolderId == null) {
600
+ return;
601
+ }
602
+ restoreFocusRef.current = false;
603
+ // Only take back the focus the remount dropped, never steal it from elsewhere.
604
+ if (document.activeElement !== document.body) {
605
+ return;
606
+ }
607
+ document.querySelector(`${FOLDER_TREE_ROOT_SELECTOR} [data-folder-id="${currentFolderId}"]`)?.focus();
608
+ }, [
609
+ currentFolderId
610
+ ]);
611
+ const sharedItemProps = {
612
+ currentFolderId,
613
+ showActiveFolder,
614
+ isExpanded,
615
+ onToggle: toggleExpanded,
616
+ onExpand: expandFolder,
617
+ onSelect: handleSelectFolder,
618
+ isMovePending
619
+ };
400
620
  const isHomeActive = showActiveFolder && currentFolderId == null;
401
621
  const homeLabel = formatMessage({
402
622
  id: translations.getTranslationKey('sidebar.home'),
@@ -531,18 +751,16 @@ const FOLDER_TREE_ROOT_SELECTOR = '[data-folder-tree-root]';
531
751
  })
532
752
  })
533
753
  }) : /*#__PURE__*/ jsxRuntime.jsx(NavList, {
534
- children: folderStructure.map((node)=>/*#__PURE__*/ jsxRuntime.jsx(FolderTreeItem, {
754
+ children: folderStructure.map((node)=>collapsedBranch$1 && node.id === collapsedBranch$1.root.id ? /*#__PURE__*/ jsxRuntime.jsx(CollapsedBranchItem, {
755
+ branch: collapsedBranch$1,
756
+ ...sharedItemProps
757
+ }, node.id) : /*#__PURE__*/ jsxRuntime.jsx(FolderTreeItem, {
535
758
  node: node,
536
759
  // Top of the tree — these sit at the library root.
537
760
  parentId: null,
538
761
  level: 0,
539
- currentFolderId: currentFolderId,
540
- showActiveFolder: showActiveFolder,
541
- isExpanded: isExpanded,
542
- onToggle: toggleExpanded,
543
- onExpand: expandFolder,
544
- onSelect: onSelectFolder,
545
- isMovePending: isMovePending
762
+ ancestorNames: [],
763
+ ...sharedItemProps
546
764
  }, node.id ?? node.name))
547
765
  })
548
766
  ]
@@ -556,4 +774,5 @@ const FOLDER_TREE_ROOT_SELECTOR = '[data-folder-tree-root]';
556
774
 
557
775
  exports.FOLDER_TREE_ROOT_SELECTOR = FOLDER_TREE_ROOT_SELECTOR;
558
776
  exports.FolderTree = FolderTree;
777
+ exports.getIndentRem = getIndentRem;
559
778
  //# sourceMappingURL=FolderTree.js.map