@strapi/upload 5.53.0 → 5.55.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 (1929) hide show
  1. package/dist/admin/App.js +33 -0
  2. package/dist/admin/App.js.map +1 -0
  3. package/dist/admin/App.mjs +31 -0
  4. package/dist/admin/App.mjs.map +1 -0
  5. package/dist/admin/components/Drawer.js.map +1 -0
  6. package/dist/admin/components/Drawer.mjs.map +1 -0
  7. package/dist/admin/components/TruncatedText.js.map +1 -0
  8. package/dist/admin/components/TruncatedText.mjs.map +1 -0
  9. package/dist/admin/components/UploadProgressDialog.js +700 -0
  10. package/dist/admin/components/UploadProgressDialog.js.map +1 -0
  11. package/dist/admin/components/UploadProgressDialog.mjs +698 -0
  12. package/dist/admin/components/UploadProgressDialog.mjs.map +1 -0
  13. package/dist/admin/constants.js +7 -12
  14. package/dist/admin/constants.js.map +1 -1
  15. package/dist/admin/constants.mjs +7 -12
  16. package/dist/admin/constants.mjs.map +1 -1
  17. package/dist/admin/hooks/useAIMetadataEnabled.js +39 -0
  18. package/dist/admin/hooks/useAIMetadataEnabled.js.map +1 -0
  19. package/dist/admin/hooks/useAIMetadataEnabled.mjs +37 -0
  20. package/dist/admin/hooks/useAIMetadataEnabled.mjs.map +1 -0
  21. package/dist/admin/hooks/useApiErrorMessage.js.map +1 -0
  22. package/dist/admin/hooks/useApiErrorMessage.mjs.map +1 -0
  23. package/dist/admin/hooks/useMediaLibraryPermissions.js +24 -5
  24. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  25. package/dist/admin/hooks/useMediaLibraryPermissions.mjs +24 -5
  26. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  27. package/dist/admin/hooks/useTracking.js +39 -7
  28. package/dist/admin/hooks/useTracking.js.map +1 -1
  29. package/dist/admin/hooks/useTracking.mjs +38 -8
  30. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  31. package/dist/admin/index.js +18 -22
  32. package/dist/admin/index.js.map +1 -1
  33. package/dist/admin/index.mjs +18 -22
  34. package/dist/admin/index.mjs.map +1 -1
  35. package/dist/admin/legacy/ai/components/AIAssetCard.js +621 -0
  36. package/dist/admin/legacy/ai/components/AIAssetCard.js.map +1 -0
  37. package/dist/admin/legacy/ai/components/AIAssetCard.mjs +598 -0
  38. package/dist/admin/legacy/ai/components/AIAssetCard.mjs.map +1 -0
  39. package/dist/admin/legacy/ai/components/AIUploadModal.js.map +1 -0
  40. package/dist/admin/legacy/ai/components/AIUploadModal.mjs.map +1 -0
  41. package/dist/admin/legacy/components/AssetCard/AssetCard.js +67 -0
  42. package/dist/admin/legacy/components/AssetCard/AssetCard.js.map +1 -0
  43. package/dist/admin/legacy/components/AssetCard/AssetCard.mjs +65 -0
  44. package/dist/admin/legacy/components/AssetCard/AssetCard.mjs.map +1 -0
  45. package/dist/admin/legacy/components/AssetCard/AssetCardBase.js.map +1 -0
  46. package/dist/admin/legacy/components/AssetCard/AssetCardBase.mjs.map +1 -0
  47. package/dist/admin/legacy/components/AssetCard/AudioAssetCard.js.map +1 -0
  48. package/dist/admin/legacy/components/AssetCard/AudioAssetCard.mjs.map +1 -0
  49. package/dist/admin/legacy/components/AssetCard/AudioPreview.js.map +1 -0
  50. package/dist/admin/legacy/components/AssetCard/AudioPreview.mjs.map +1 -0
  51. package/dist/admin/legacy/components/AssetCard/DocAssetCard.js.map +1 -0
  52. package/dist/admin/legacy/components/AssetCard/DocAssetCard.mjs.map +1 -0
  53. package/dist/admin/legacy/components/AssetCard/ImageAssetCard.js.map +1 -0
  54. package/dist/admin/legacy/components/AssetCard/ImageAssetCard.mjs.map +1 -0
  55. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.js +154 -0
  56. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.js.map +1 -0
  57. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.mjs +132 -0
  58. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.mjs.map +1 -0
  59. package/dist/admin/legacy/components/AssetCard/VideoAssetCard.js.map +1 -0
  60. package/dist/admin/legacy/components/AssetCard/VideoAssetCard.mjs.map +1 -0
  61. package/dist/admin/legacy/components/AssetCard/VideoPreview.js.map +1 -0
  62. package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs.map +1 -0
  63. package/dist/admin/legacy/components/AssetDialog/AssetDialog.js.map +1 -0
  64. package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs.map +1 -0
  65. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js +320 -0
  66. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -0
  67. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs +318 -0
  68. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -0
  69. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.js.map +1 -0
  70. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -0
  71. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PageSize.js.map +1 -0
  72. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -0
  73. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -0
  74. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -0
  75. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -0
  76. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -0
  77. package/dist/admin/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -0
  78. package/dist/admin/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -0
  79. package/dist/admin/legacy/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -0
  80. package/dist/admin/legacy/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -0
  81. package/dist/admin/legacy/components/AssetDialog/DialogFooter.js.map +1 -0
  82. package/dist/admin/legacy/components/AssetDialog/DialogFooter.mjs.map +1 -0
  83. package/dist/admin/legacy/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -0
  84. package/dist/admin/legacy/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -0
  85. package/dist/admin/legacy/components/AssetGridList/AssetGridList.js.map +1 -0
  86. package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs.map +1 -0
  87. package/dist/admin/legacy/components/AssetGridList/Draggable.js.map +1 -0
  88. package/dist/admin/legacy/components/AssetGridList/Draggable.mjs.map +1 -0
  89. package/dist/admin/legacy/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
  90. package/dist/admin/legacy/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -0
  91. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -0
  92. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -0
  93. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -0
  94. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -0
  95. package/dist/admin/legacy/components/ContextInfo/ContextInfo.js.map +1 -0
  96. package/dist/admin/legacy/components/ContextInfo/ContextInfo.mjs.map +1 -0
  97. package/dist/admin/legacy/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
  98. package/dist/admin/legacy/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -0
  99. package/dist/admin/legacy/components/EditAssetDialog/DialogHeader.js.map +1 -0
  100. package/dist/admin/legacy/components/EditAssetDialog/DialogHeader.mjs.map +1 -0
  101. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js.map +1 -0
  102. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs.map +1 -0
  103. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.js +114 -0
  104. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -0
  105. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +89 -0
  106. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -0
  107. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -0
  108. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -0
  109. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -0
  110. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -0
  111. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.js +362 -0
  112. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -0
  113. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +337 -0
  114. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -0
  115. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -0
  116. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -0
  117. package/dist/admin/legacy/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -0
  118. package/dist/admin/legacy/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -0
  119. package/dist/admin/legacy/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -0
  120. package/dist/admin/legacy/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -0
  121. package/dist/admin/legacy/components/EditFolderDialog/EditFolderDialog.js.map +1 -0
  122. package/dist/admin/legacy/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -0
  123. package/dist/admin/legacy/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -0
  124. package/dist/admin/legacy/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -0
  125. package/dist/admin/legacy/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -0
  126. package/dist/admin/legacy/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -0
  127. package/dist/admin/legacy/components/EmptyAssets/EmptyAssetGrid.js.map +1 -0
  128. package/dist/admin/legacy/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -0
  129. package/dist/admin/legacy/components/EmptyAssets/EmptyAssets.js.map +1 -0
  130. package/dist/admin/legacy/components/EmptyAssets/EmptyAssets.mjs.map +1 -0
  131. package/dist/admin/legacy/components/FilterList/FilterList.js.map +1 -0
  132. package/dist/admin/legacy/components/FilterList/FilterList.mjs.map +1 -0
  133. package/dist/admin/legacy/components/FilterList/FilterTag.js.map +1 -0
  134. package/dist/admin/legacy/components/FilterList/FilterTag.mjs.map +1 -0
  135. package/dist/admin/legacy/components/FilterPopover/FilterPopover.js.map +1 -0
  136. package/dist/admin/legacy/components/FilterPopover/FilterPopover.mjs.map +1 -0
  137. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js.map +1 -0
  138. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs.map +1 -0
  139. package/dist/admin/legacy/components/FilterPopover/utils/getFilterList.js.map +1 -0
  140. package/dist/admin/legacy/components/FilterPopover/utils/getFilterList.mjs.map +1 -0
  141. package/dist/admin/legacy/components/FolderCard/FolderCard/FolderCard.js.map +1 -0
  142. package/dist/admin/legacy/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -0
  143. package/dist/admin/legacy/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -0
  144. package/dist/admin/legacy/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -0
  145. package/dist/admin/legacy/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -0
  146. package/dist/admin/legacy/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -0
  147. package/dist/admin/legacy/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -0
  148. package/dist/admin/legacy/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -0
  149. package/dist/admin/legacy/components/FolderCard/contexts/FolderCard.js.map +1 -0
  150. package/dist/admin/legacy/components/FolderCard/contexts/FolderCard.mjs.map +1 -0
  151. package/dist/admin/legacy/components/FolderGridList/FolderGridList.js.map +1 -0
  152. package/dist/admin/legacy/components/FolderGridList/FolderGridList.mjs.map +1 -0
  153. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -0
  154. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -0
  155. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.js +89 -0
  156. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -0
  157. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +87 -0
  158. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -0
  159. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -0
  160. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -0
  161. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -0
  162. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -0
  163. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +111 -0
  164. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -0
  165. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +89 -0
  166. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -0
  167. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -0
  168. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -0
  169. package/dist/admin/legacy/components/SelectTree/Option.js.map +1 -0
  170. package/dist/admin/legacy/components/SelectTree/Option.mjs.map +1 -0
  171. package/dist/admin/legacy/components/SelectTree/SelectTree.js.map +1 -0
  172. package/dist/admin/legacy/components/SelectTree/SelectTree.mjs.map +1 -0
  173. package/dist/admin/legacy/components/SelectTree/utils/flattenTree.js.map +1 -0
  174. package/dist/admin/legacy/components/SelectTree/utils/flattenTree.mjs.map +1 -0
  175. package/dist/admin/legacy/components/SelectTree/utils/getOpenValues.js.map +1 -0
  176. package/dist/admin/legacy/components/SelectTree/utils/getOpenValues.mjs.map +1 -0
  177. package/dist/admin/legacy/components/SelectTree/utils/getValuesToClose.js.map +1 -0
  178. package/dist/admin/legacy/components/SelectTree/utils/getValuesToClose.mjs.map +1 -0
  179. package/dist/admin/legacy/components/SortPicker/SortPicker.js +40 -0
  180. package/dist/admin/legacy/components/SortPicker/SortPicker.js.map +1 -0
  181. package/dist/admin/legacy/components/SortPicker/SortPicker.mjs +38 -0
  182. package/dist/admin/legacy/components/SortPicker/SortPicker.mjs.map +1 -0
  183. package/dist/admin/legacy/components/TableList/CellContent.js.map +1 -0
  184. package/dist/admin/legacy/components/TableList/CellContent.mjs.map +1 -0
  185. package/dist/admin/legacy/components/TableList/PreviewCell.js +116 -0
  186. package/dist/admin/legacy/components/TableList/PreviewCell.js.map +1 -0
  187. package/dist/admin/legacy/components/TableList/PreviewCell.mjs +114 -0
  188. package/dist/admin/legacy/components/TableList/PreviewCell.mjs.map +1 -0
  189. package/dist/admin/legacy/components/TableList/TableList.js +100 -0
  190. package/dist/admin/legacy/components/TableList/TableList.js.map +1 -0
  191. package/dist/admin/legacy/components/TableList/TableList.mjs +98 -0
  192. package/dist/admin/legacy/components/TableList/TableList.mjs.map +1 -0
  193. package/dist/admin/legacy/components/TableList/TableRows.js +105 -0
  194. package/dist/admin/legacy/components/TableList/TableRows.js.map +1 -0
  195. package/dist/admin/legacy/components/TableList/TableRows.mjs +103 -0
  196. package/dist/admin/legacy/components/TableList/TableRows.mjs.map +1 -0
  197. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -0
  198. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -0
  199. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +177 -0
  200. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -0
  201. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +155 -0
  202. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -0
  203. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -0
  204. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -0
  205. package/dist/admin/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -0
  206. package/dist/admin/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -0
  207. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -0
  208. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -0
  209. package/dist/admin/legacy/components/UploadProgress/UploadProgress.js.map +1 -0
  210. package/dist/admin/legacy/components/UploadProgress/UploadProgress.mjs.map +1 -0
  211. package/dist/admin/legacy/hooks/useAiAvailability.js.map +1 -0
  212. package/dist/admin/legacy/hooks/useAiAvailability.mjs.map +1 -0
  213. package/dist/admin/legacy/hooks/useAssets.js +127 -0
  214. package/dist/admin/legacy/hooks/useAssets.js.map +1 -0
  215. package/dist/admin/legacy/hooks/useAssets.mjs +105 -0
  216. package/dist/admin/legacy/hooks/useAssets.mjs.map +1 -0
  217. package/dist/admin/legacy/hooks/useBulkEdit.js +65 -0
  218. package/dist/admin/legacy/hooks/useBulkEdit.js.map +1 -0
  219. package/dist/admin/legacy/hooks/useBulkEdit.mjs +63 -0
  220. package/dist/admin/legacy/hooks/useBulkEdit.mjs.map +1 -0
  221. package/dist/admin/legacy/hooks/useBulkMove.js +78 -0
  222. package/dist/admin/legacy/hooks/useBulkMove.js.map +1 -0
  223. package/dist/admin/legacy/hooks/useBulkMove.mjs +76 -0
  224. package/dist/admin/legacy/hooks/useBulkMove.mjs.map +1 -0
  225. package/dist/admin/legacy/hooks/useBulkRemove.js +83 -0
  226. package/dist/admin/legacy/hooks/useBulkRemove.js.map +1 -0
  227. package/dist/admin/legacy/hooks/useBulkRemove.mjs +81 -0
  228. package/dist/admin/legacy/hooks/useBulkRemove.mjs.map +1 -0
  229. package/dist/admin/legacy/hooks/useConfig.js +58 -0
  230. package/dist/admin/legacy/hooks/useConfig.js.map +1 -0
  231. package/dist/admin/legacy/hooks/useConfig.mjs +56 -0
  232. package/dist/admin/legacy/hooks/useConfig.mjs.map +1 -0
  233. package/dist/admin/legacy/hooks/useCropImg.js.map +1 -0
  234. package/dist/admin/legacy/hooks/useCropImg.mjs.map +1 -0
  235. package/dist/admin/legacy/hooks/useEditAsset.js +115 -0
  236. package/dist/admin/legacy/hooks/useEditAsset.js.map +1 -0
  237. package/dist/admin/legacy/hooks/useEditAsset.mjs +93 -0
  238. package/dist/admin/legacy/hooks/useEditAsset.mjs.map +1 -0
  239. package/dist/admin/legacy/hooks/useEditFolder.js +45 -0
  240. package/dist/admin/legacy/hooks/useEditFolder.js.map +1 -0
  241. package/dist/admin/legacy/hooks/useEditFolder.mjs +43 -0
  242. package/dist/admin/legacy/hooks/useEditFolder.mjs.map +1 -0
  243. package/dist/admin/legacy/hooks/useFolder.js +57 -0
  244. package/dist/admin/legacy/hooks/useFolder.js.map +1 -0
  245. package/dist/admin/legacy/hooks/useFolder.mjs +55 -0
  246. package/dist/admin/legacy/hooks/useFolder.mjs.map +1 -0
  247. package/dist/admin/legacy/hooks/useFolderStructure.js +52 -0
  248. package/dist/admin/legacy/hooks/useFolderStructure.js.map +1 -0
  249. package/dist/admin/legacy/hooks/useFolderStructure.mjs +50 -0
  250. package/dist/admin/legacy/hooks/useFolderStructure.mjs.map +1 -0
  251. package/dist/admin/legacy/hooks/useFolders.js +108 -0
  252. package/dist/admin/legacy/hooks/useFolders.js.map +1 -0
  253. package/dist/admin/legacy/hooks/useFolders.mjs +86 -0
  254. package/dist/admin/legacy/hooks/useFolders.mjs.map +1 -0
  255. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.js +16 -0
  256. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.js.map +1 -0
  257. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.mjs +14 -0
  258. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.mjs.map +1 -0
  259. package/dist/admin/legacy/hooks/useModalQueryParams.js.map +1 -0
  260. package/dist/admin/legacy/hooks/useModalQueryParams.mjs.map +1 -0
  261. package/dist/admin/legacy/hooks/usePersistentState.js.map +1 -0
  262. package/dist/admin/legacy/hooks/usePersistentState.mjs.map +1 -0
  263. package/dist/admin/legacy/hooks/useRemoveAsset.js +58 -0
  264. package/dist/admin/legacy/hooks/useRemoveAsset.js.map +1 -0
  265. package/dist/admin/legacy/hooks/useRemoveAsset.mjs +56 -0
  266. package/dist/admin/legacy/hooks/useRemoveAsset.mjs.map +1 -0
  267. package/dist/admin/legacy/hooks/useSelectionState.js.map +1 -0
  268. package/dist/admin/legacy/hooks/useSelectionState.mjs.map +1 -0
  269. package/dist/admin/legacy/hooks/useSettings.js.map +1 -0
  270. package/dist/admin/legacy/hooks/useSettings.mjs.map +1 -0
  271. package/dist/admin/legacy/hooks/useTracking.js +25 -0
  272. package/dist/admin/legacy/hooks/useTracking.js.map +1 -0
  273. package/dist/admin/legacy/hooks/useTracking.mjs +23 -0
  274. package/dist/admin/legacy/hooks/useTracking.mjs.map +1 -0
  275. package/dist/admin/legacy/hooks/useUpload.js +109 -0
  276. package/dist/admin/legacy/hooks/useUpload.js.map +1 -0
  277. package/dist/admin/legacy/hooks/useUpload.mjs +87 -0
  278. package/dist/admin/legacy/hooks/useUpload.mjs.map +1 -0
  279. package/dist/admin/legacy/hooks/utils/renameKeys.js.map +1 -0
  280. package/dist/admin/legacy/hooks/utils/renameKeys.mjs.map +1 -0
  281. package/dist/admin/legacy/pages/App/App.js.map +1 -0
  282. package/dist/admin/legacy/pages/App/App.mjs.map +1 -0
  283. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js +145 -0
  284. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -0
  285. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs +120 -0
  286. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -0
  287. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.js +109 -0
  288. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.js.map +1 -0
  289. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.mjs +107 -0
  290. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -0
  291. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.js +10 -0
  292. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -0
  293. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.mjs +7 -0
  294. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -0
  295. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actions.js.map +1 -0
  296. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actions.mjs.map +1 -0
  297. package/dist/admin/legacy/pages/App/ConfigureTheView/state/init.js.map +1 -0
  298. package/dist/admin/legacy/pages/App/ConfigureTheView/state/init.mjs.map +1 -0
  299. package/dist/admin/legacy/pages/App/ConfigureTheView/state/reducer.js.map +1 -0
  300. package/dist/admin/legacy/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -0
  301. package/dist/admin/legacy/pages/App/MediaLibrary.js +469 -0
  302. package/dist/admin/legacy/pages/App/MediaLibrary.js.map +1 -0
  303. package/dist/admin/legacy/pages/App/MediaLibrary.mjs +447 -0
  304. package/dist/admin/legacy/pages/App/MediaLibrary.mjs.map +1 -0
  305. package/dist/admin/legacy/pages/App/components/BulkActions.js.map +1 -0
  306. package/dist/admin/legacy/pages/App/components/BulkActions.mjs.map +1 -0
  307. package/dist/admin/legacy/pages/App/components/BulkDeleteButton.js.map +1 -0
  308. package/dist/admin/legacy/pages/App/components/BulkDeleteButton.mjs.map +1 -0
  309. package/dist/admin/legacy/pages/App/components/BulkMoveButton.js.map +1 -0
  310. package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs.map +1 -0
  311. package/dist/admin/legacy/pages/App/components/EmptyOrNoPermissions.js.map +1 -0
  312. package/dist/admin/legacy/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -0
  313. package/dist/admin/legacy/pages/App/components/Filters.js.map +1 -0
  314. package/dist/admin/legacy/pages/App/components/Filters.mjs.map +1 -0
  315. package/dist/admin/legacy/pages/App/components/Header.js.map +1 -0
  316. package/dist/admin/legacy/pages/App/components/Header.mjs.map +1 -0
  317. package/dist/admin/legacy/utils/appendSearchParamsToUrl.js.map +1 -0
  318. package/dist/admin/legacy/utils/appendSearchParamsToUrl.mjs.map +1 -0
  319. package/dist/admin/legacy/utils/containsAssetFilter.js.map +1 -0
  320. package/dist/admin/legacy/utils/containsAssetFilter.mjs.map +1 -0
  321. package/dist/admin/legacy/utils/createAssetUrl.js.map +1 -0
  322. package/dist/admin/legacy/utils/createAssetUrl.mjs.map +1 -0
  323. package/dist/admin/legacy/utils/displayedFilters.js.map +1 -0
  324. package/dist/admin/legacy/utils/displayedFilters.mjs.map +1 -0
  325. package/dist/admin/legacy/utils/downloadFile.js +13 -0
  326. package/dist/admin/legacy/utils/downloadFile.js.map +1 -0
  327. package/dist/admin/legacy/utils/downloadFile.mjs +11 -0
  328. package/dist/admin/legacy/utils/downloadFile.mjs.map +1 -0
  329. package/dist/admin/legacy/utils/findRecursiveFolderByValue.js.map +1 -0
  330. package/dist/admin/legacy/utils/findRecursiveFolderByValue.mjs.map +1 -0
  331. package/dist/admin/legacy/utils/formatBytes.js.map +1 -0
  332. package/dist/admin/legacy/utils/formatBytes.mjs.map +1 -0
  333. package/dist/admin/legacy/utils/formatDuration.js.map +1 -0
  334. package/dist/admin/legacy/utils/formatDuration.mjs.map +1 -0
  335. package/dist/admin/legacy/utils/getAPIInnerErrors.js.map +1 -0
  336. package/dist/admin/legacy/utils/getAPIInnerErrors.mjs.map +1 -0
  337. package/dist/admin/legacy/utils/getAllowedFiles.js.map +1 -0
  338. package/dist/admin/legacy/utils/getAllowedFiles.mjs.map +1 -0
  339. package/dist/admin/legacy/utils/getBreadcrumbDataCM.js.map +1 -0
  340. package/dist/admin/legacy/utils/getBreadcrumbDataCM.mjs.map +1 -0
  341. package/dist/admin/legacy/utils/getBreadcrumbDataML.js.map +1 -0
  342. package/dist/admin/legacy/utils/getBreadcrumbDataML.mjs.map +1 -0
  343. package/dist/admin/legacy/utils/getFileExtension.js.map +1 -0
  344. package/dist/admin/legacy/utils/getFileExtension.mjs.map +1 -0
  345. package/dist/admin/legacy/utils/getFolderParents.js.map +1 -0
  346. package/dist/admin/legacy/utils/getFolderParents.mjs.map +1 -0
  347. package/dist/admin/legacy/utils/getFolderURL.js.map +1 -0
  348. package/dist/admin/legacy/utils/getFolderURL.mjs.map +1 -0
  349. package/dist/admin/legacy/utils/getTrad.js +8 -0
  350. package/dist/admin/legacy/utils/getTrad.js.map +1 -0
  351. package/dist/admin/legacy/utils/getTrad.mjs +6 -0
  352. package/dist/admin/legacy/utils/getTrad.mjs.map +1 -0
  353. package/dist/admin/legacy/utils/icons.js +23 -0
  354. package/dist/admin/legacy/utils/icons.js.map +1 -0
  355. package/dist/admin/legacy/utils/icons.mjs +19 -0
  356. package/dist/admin/legacy/utils/icons.mjs.map +1 -0
  357. package/dist/admin/legacy/utils/moveElement.js.map +1 -0
  358. package/dist/admin/legacy/utils/moveElement.mjs.map +1 -0
  359. package/dist/admin/legacy/utils/normalizeAPIError.js.map +1 -0
  360. package/dist/admin/legacy/utils/normalizeAPIError.mjs.map +1 -0
  361. package/dist/admin/legacy/utils/prefixFileUrlWithBackendUrl.js.map +1 -0
  362. package/dist/admin/legacy/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -0
  363. package/dist/admin/legacy/utils/prefixPluginTranslations.js.map +1 -0
  364. package/dist/admin/legacy/utils/prefixPluginTranslations.mjs.map +1 -0
  365. package/dist/admin/legacy/utils/rawFileToAsset.js +23 -0
  366. package/dist/admin/legacy/utils/rawFileToAsset.js.map +1 -0
  367. package/dist/admin/legacy/utils/rawFileToAsset.mjs +21 -0
  368. package/dist/admin/legacy/utils/rawFileToAsset.mjs.map +1 -0
  369. package/dist/admin/legacy/utils/resolveFileMime.js.map +1 -0
  370. package/dist/admin/legacy/utils/resolveFileMime.mjs.map +1 -0
  371. package/dist/admin/legacy/utils/toSingularTypes.js.map +1 -0
  372. package/dist/admin/legacy/utils/toSingularTypes.mjs.map +1 -0
  373. package/dist/admin/legacy/utils/urlYupSchema.js.map +1 -0
  374. package/dist/admin/legacy/utils/urlYupSchema.mjs.map +1 -0
  375. package/dist/admin/legacy/utils/urlsToAssets.js +42 -0
  376. package/dist/admin/legacy/utils/urlsToAssets.js.map +1 -0
  377. package/dist/admin/legacy/utils/urlsToAssets.mjs +40 -0
  378. package/dist/admin/legacy/utils/urlsToAssets.mjs.map +1 -0
  379. package/dist/admin/pages/Assets/AssetsPage.js +828 -0
  380. package/dist/admin/pages/Assets/AssetsPage.js.map +1 -0
  381. package/dist/admin/pages/Assets/AssetsPage.mjs +806 -0
  382. package/dist/admin/pages/Assets/AssetsPage.mjs.map +1 -0
  383. package/dist/admin/pages/Assets/components/ActionsMenuContent.js.map +1 -0
  384. package/dist/admin/pages/Assets/components/ActionsMenuContent.mjs.map +1 -0
  385. package/dist/admin/pages/Assets/components/AssetActionsMenu.js.map +1 -0
  386. package/dist/admin/pages/Assets/components/AssetActionsMenu.mjs.map +1 -0
  387. package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -0
  388. package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -0
  389. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +1202 -0
  390. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -0
  391. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +1175 -0
  392. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -0
  393. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.js +261 -0
  394. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -0
  395. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs +239 -0
  396. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -0
  397. package/dist/admin/pages/Assets/components/AssetDetails/useCropImg.js.map +1 -0
  398. package/dist/admin/pages/Assets/components/AssetDetails/useCropImg.mjs.map +1 -0
  399. package/dist/admin/pages/Assets/components/AssetsGrid.js +528 -0
  400. package/dist/admin/pages/Assets/components/AssetsGrid.js.map +1 -0
  401. package/dist/admin/pages/Assets/components/AssetsGrid.mjs +526 -0
  402. package/dist/admin/pages/Assets/components/AssetsGrid.mjs.map +1 -0
  403. package/dist/admin/pages/Assets/components/AssetsSearchInput.js.map +1 -0
  404. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs.map +1 -0
  405. package/dist/admin/pages/Assets/components/AssetsTable.js.map +1 -0
  406. package/dist/admin/pages/Assets/components/AssetsTable.mjs.map +1 -0
  407. package/dist/admin/pages/Assets/components/BulkActionsBar.js +431 -0
  408. package/dist/admin/pages/Assets/components/BulkActionsBar.js.map +1 -0
  409. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs +429 -0
  410. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs.map +1 -0
  411. package/dist/admin/pages/Assets/components/BulkMoveDialog.js.map +1 -0
  412. package/dist/admin/pages/Assets/components/BulkMoveDialog.mjs.map +1 -0
  413. package/dist/admin/pages/Assets/components/BusyOverlay.js.map +1 -0
  414. package/dist/admin/pages/Assets/components/BusyOverlay.mjs.map +1 -0
  415. package/dist/admin/pages/Assets/components/DateRangeCalendar.js.map +1 -0
  416. package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs.map +1 -0
  417. package/dist/admin/pages/Assets/components/DeleteItemsDialog.js.map +1 -0
  418. package/dist/admin/pages/Assets/components/DeleteItemsDialog.mjs.map +1 -0
  419. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.js +306 -0
  420. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.js.map +1 -0
  421. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.mjs +303 -0
  422. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +1 -0
  423. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.js +147 -0
  424. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.js.map +1 -0
  425. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs +145 -0
  426. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +1 -0
  427. package/dist/admin/pages/Assets/components/Dnd/buildDragSet.js.map +1 -0
  428. package/dist/admin/pages/Assets/components/Dnd/buildDragSet.mjs.map +1 -0
  429. package/dist/admin/pages/Assets/components/Dnd/computeValidDropTargets.js.map +1 -0
  430. package/dist/admin/pages/Assets/components/Dnd/computeValidDropTargets.mjs.map +1 -0
  431. package/dist/admin/pages/Assets/components/Dnd/dndIds.js.map +1 -0
  432. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs.map +1 -0
  433. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -0
  434. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -0
  435. package/dist/admin/pages/Assets/components/Dnd/useFolderTreeDroppable.js.map +1 -0
  436. package/dist/admin/pages/Assets/components/Dnd/useFolderTreeDroppable.mjs.map +1 -0
  437. package/dist/admin/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -0
  438. package/dist/admin/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -0
  439. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -0
  440. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -0
  441. package/dist/admin/pages/Assets/components/EmptyState.js.map +1 -0
  442. package/dist/admin/pages/Assets/components/EmptyState.mjs.map +1 -0
  443. package/dist/admin/pages/Assets/components/FilterBadges.js.map +1 -0
  444. package/dist/admin/pages/Assets/components/FilterBadges.mjs.map +1 -0
  445. package/dist/admin/pages/Assets/components/FilterMenu.js.map +1 -0
  446. package/dist/admin/pages/Assets/components/FilterMenu.mjs.map +1 -0
  447. package/dist/admin/pages/Assets/components/FolderActionsMenu.js.map +1 -0
  448. package/dist/admin/pages/Assets/components/FolderActionsMenu.mjs.map +1 -0
  449. package/dist/admin/pages/Assets/components/FolderFormDialog.js.map +1 -0
  450. package/dist/admin/pages/Assets/components/FolderFormDialog.mjs.map +1 -0
  451. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js.map +1 -0
  452. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -0
  453. package/dist/admin/pages/Assets/components/FolderTree/useSpringLoadedExpand.js.map +1 -0
  454. package/dist/admin/pages/Assets/components/FolderTree/useSpringLoadedExpand.mjs.map +1 -0
  455. package/dist/admin/pages/Assets/components/ImportFromUrlDialog.js.map +1 -0
  456. package/dist/admin/pages/Assets/components/ImportFromUrlDialog.mjs.map +1 -0
  457. package/dist/admin/pages/Assets/components/MainAreaContextMenu.js.map +1 -0
  458. package/dist/admin/pages/Assets/components/MainAreaContextMenu.mjs.map +1 -0
  459. package/dist/admin/pages/Assets/components/SortMenu.js.map +1 -0
  460. package/dist/admin/pages/Assets/components/SortMenu.mjs.map +1 -0
  461. package/dist/admin/pages/Assets/constants.js.map +1 -0
  462. package/dist/admin/pages/Assets/constants.mjs.map +1 -0
  463. package/dist/admin/pages/Assets/hooks/useAssetSearch.js.map +1 -0
  464. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs.map +1 -0
  465. package/dist/admin/pages/Assets/hooks/useAssetSelection.js.map +1 -0
  466. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs.map +1 -0
  467. package/dist/admin/pages/Assets/hooks/useBusyAssets.js.map +1 -0
  468. package/dist/admin/pages/Assets/hooks/useBusyAssets.mjs.map +1 -0
  469. package/dist/admin/pages/Assets/hooks/useFolderInfo.js.map +1 -0
  470. package/dist/admin/pages/Assets/hooks/useFolderInfo.mjs.map +1 -0
  471. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js.map +1 -0
  472. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -0
  473. package/dist/admin/pages/Assets/hooks/useInfiniteAssets.js.map +1 -0
  474. package/dist/admin/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -0
  475. package/dist/admin/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +1 -0
  476. package/dist/admin/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +1 -0
  477. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +1 -0
  478. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +1 -0
  479. package/dist/admin/pages/Assets/hooks/useListFilters.js.map +1 -0
  480. package/dist/admin/pages/Assets/hooks/useListFilters.mjs.map +1 -0
  481. package/dist/admin/pages/Assets/hooks/useListScrollRestoration.js.map +1 -0
  482. package/dist/admin/pages/Assets/hooks/useListScrollRestoration.mjs.map +1 -0
  483. package/dist/admin/pages/Assets/hooks/useListSort.js.map +1 -0
  484. package/dist/admin/pages/Assets/hooks/useListSort.mjs.map +1 -0
  485. package/dist/admin/pages/Assets/utils/buildAssetFilters.js.map +1 -0
  486. package/dist/admin/pages/Assets/utils/buildAssetFilters.mjs.map +1 -0
  487. package/dist/admin/pages/Assets/utils/listQueryKey.js.map +1 -0
  488. package/dist/admin/pages/Assets/utils/listQueryKey.mjs.map +1 -0
  489. package/dist/admin/pages/Assets/utils/mergeMixedList.js.map +1 -0
  490. package/dist/admin/pages/Assets/utils/mergeMixedList.mjs.map +1 -0
  491. package/dist/admin/pages/Assets/utils/mergeUploadedAssets.js.map +1 -0
  492. package/dist/admin/pages/Assets/utils/mergeUploadedAssets.mjs.map +1 -0
  493. package/dist/admin/pages/Assets/utils/renderedKeys.js.map +1 -0
  494. package/dist/admin/pages/Assets/utils/renderedKeys.mjs.map +1 -0
  495. package/dist/admin/pages/Assets/utils/selection.js.map +1 -0
  496. package/dist/admin/pages/Assets/utils/selection.mjs.map +1 -0
  497. package/dist/admin/pages/SettingsPage/SettingsPage.js +23 -28
  498. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  499. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +23 -28
  500. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  501. package/dist/admin/pages/SettingsPage/useAIMetadataJob.js +110 -0
  502. package/dist/admin/pages/SettingsPage/useAIMetadataJob.js.map +1 -0
  503. package/dist/admin/pages/SettingsPage/useAIMetadataJob.mjs +88 -0
  504. package/dist/admin/pages/SettingsPage/useAIMetadataJob.mjs.map +1 -0
  505. package/dist/admin/services/api.js +775 -0
  506. package/dist/admin/services/api.js.map +1 -0
  507. package/dist/admin/services/api.mjs +766 -0
  508. package/dist/admin/services/api.mjs.map +1 -0
  509. package/dist/admin/services/assets.js.map +1 -0
  510. package/dist/admin/services/assets.mjs.map +1 -0
  511. package/dist/admin/services/folders.js.map +1 -0
  512. package/dist/admin/services/folders.mjs.map +1 -0
  513. package/dist/admin/services/settings.js.map +1 -0
  514. package/dist/admin/services/settings.mjs.map +1 -0
  515. package/dist/admin/services/uploadFileViaXHR.js.map +1 -0
  516. package/dist/admin/services/uploadFileViaXHR.mjs.map +1 -0
  517. package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +19 -2
  518. package/dist/admin/src/hooks/useTracking.d.ts +26 -1
  519. package/dist/admin/src/legacy/ai/components/AIAssetCard.d.ts +13 -0
  520. package/dist/admin/src/legacy/ai/components/AIUploadModal.d.ts +55 -0
  521. package/dist/admin/src/legacy/components/AssetCard/AssetCard.d.ts +19 -0
  522. package/dist/admin/src/legacy/components/AssetCard/UploadingAssetCard.d.ts +17 -0
  523. package/dist/admin/src/legacy/components/AssetDialog/AssetDialog.d.ts +39 -0
  524. package/dist/admin/src/legacy/components/AssetDialog/BrowseStep/BrowseStep.d.ts +63 -0
  525. package/dist/admin/src/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +7 -0
  526. package/dist/admin/src/legacy/components/AssetDialog/SelectedStep/SelectedStep.d.ts +8 -0
  527. package/dist/admin/src/legacy/components/AssetGridList/AssetGridList.d.ts +13 -0
  528. package/dist/admin/src/legacy/components/BulkMoveDialog/BulkMoveDialog.d.ts +15 -0
  529. package/dist/admin/src/legacy/components/EditAssetDialog/EditAssetContent.d.ts +31 -0
  530. package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +8 -0
  531. package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +26 -0
  532. package/dist/admin/src/legacy/components/EditAssetDialog/RemoveAssetDialog.d.ts +8 -0
  533. package/dist/admin/src/legacy/components/EditFolderDialog/EditFolderDialog.d.ts +12 -0
  534. package/dist/admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +10 -0
  535. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +4 -0
  536. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +9 -0
  537. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +23 -0
  538. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +10 -0
  539. package/dist/admin/src/legacy/components/SelectTree/Option.d.ts +16 -0
  540. package/dist/admin/src/legacy/components/SortPicker/SortPicker.d.ts +7 -0
  541. package/dist/admin/src/legacy/components/TableList/CellContent.d.ts +8 -0
  542. package/dist/admin/src/legacy/components/TableList/PreviewCell.d.ts +7 -0
  543. package/dist/admin/src/legacy/components/TableList/TableList.d.ts +31 -0
  544. package/dist/admin/src/legacy/components/TableList/TableRows.d.ts +22 -0
  545. package/dist/admin/src/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +13 -0
  546. package/dist/admin/src/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +22 -0
  547. package/dist/admin/src/legacy/components/UploadAssetDialog/UploadAssetDialog.d.ts +21 -0
  548. package/dist/admin/src/legacy/components/UploadProgress/UploadProgress.d.ts +7 -0
  549. package/dist/admin/src/legacy/hooks/useAssets.d.ts +14 -0
  550. package/dist/admin/src/legacy/hooks/useBulkEdit.d.ts +91 -0
  551. package/dist/admin/src/legacy/hooks/useBulkMove.d.ts +209 -0
  552. package/dist/admin/src/legacy/hooks/useBulkRemove.d.ts +241 -0
  553. package/dist/admin/src/legacy/hooks/useConfig.d.ts +5 -0
  554. package/dist/admin/src/legacy/hooks/useEditAsset.d.ts +119 -0
  555. package/dist/admin/src/legacy/hooks/useEditFolder.d.ts +72 -0
  556. package/dist/admin/src/legacy/hooks/useFolder.d.ts +7 -0
  557. package/dist/admin/src/legacy/hooks/useFolderStructure.d.ts +18 -0
  558. package/dist/admin/src/legacy/hooks/useFolders.d.ts +11 -0
  559. package/dist/admin/src/legacy/hooks/useMediaLibraryPermissions.d.ts +4 -0
  560. package/dist/admin/src/legacy/hooks/useModalQueryParams.d.ts +20 -0
  561. package/dist/admin/src/legacy/hooks/useRemoveAsset.d.ts +8 -0
  562. package/dist/admin/src/legacy/hooks/useTracking.d.ts +4 -0
  563. package/dist/admin/src/legacy/hooks/useUpload.d.ts +15 -0
  564. package/dist/admin/src/legacy/pages/App/ConfigureTheView/ConfigureTheView.d.ts +6 -0
  565. package/dist/admin/src/legacy/pages/App/ConfigureTheView/components/Settings.d.ts +13 -0
  566. package/dist/admin/src/legacy/pages/App/ConfigureTheView/state/actions.d.ts +12 -0
  567. package/dist/admin/src/legacy/pages/App/ConfigureTheView/state/init.d.ts +8 -0
  568. package/dist/admin/src/legacy/pages/App/MediaLibrary.d.ts +1 -0
  569. package/dist/admin/src/legacy/pages/App/components/BulkActions.d.ts +15 -0
  570. package/dist/admin/src/legacy/pages/App/components/BulkDeleteButton.d.ts +7 -0
  571. package/dist/admin/src/legacy/pages/App/components/BulkMoveButton.d.ts +15 -0
  572. package/dist/admin/src/legacy/pages/App/components/Header.d.ts +22 -0
  573. package/dist/admin/src/legacy/utils/containsAssetFilter.d.ts +2 -0
  574. package/dist/admin/src/legacy/utils/createAssetUrl.d.ts +2 -0
  575. package/dist/admin/src/legacy/utils/downloadFile.d.ts +1 -0
  576. package/dist/admin/src/legacy/utils/findRecursiveFolderByValue.d.ts +11 -0
  577. package/dist/admin/src/legacy/utils/getAllowedFiles.d.ts +14 -0
  578. package/dist/admin/src/legacy/utils/getBreadcrumbDataCM.d.ts +19 -0
  579. package/dist/admin/src/legacy/utils/getBreadcrumbDataML.d.ts +18 -0
  580. package/dist/admin/src/legacy/utils/getFolderParents.d.ts +11 -0
  581. package/dist/admin/src/legacy/utils/getFolderURL.d.ts +5 -0
  582. package/dist/admin/src/legacy/utils/icons.d.ts +15 -0
  583. package/dist/admin/src/legacy/utils/index.d.ts +26 -0
  584. package/dist/admin/src/legacy/utils/rawFileToAsset.d.ts +14 -0
  585. package/dist/admin/src/pages/Assets/components/ActionsMenuContent.d.ts +33 -0
  586. package/dist/admin/src/pages/Assets/components/AssetActionsMenu.d.ts +26 -0
  587. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +16 -0
  588. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +46 -0
  589. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetPreview.d.ts +9 -0
  590. package/dist/admin/src/pages/Assets/components/AssetsGrid.d.ts +12 -0
  591. package/dist/admin/src/pages/Assets/components/AssetsTable.d.ts +18 -0
  592. package/dist/admin/src/pages/Assets/components/BulkActionsBar.d.ts +28 -0
  593. package/dist/admin/src/pages/Assets/components/Dnd/computeValidDropTargets.d.ts +7 -0
  594. package/dist/admin/src/pages/Assets/components/FolderActionsMenu.d.ts +21 -0
  595. package/dist/admin/src/pages/Assets/hooks/useFolderNavigation.d.ts +7 -0
  596. package/dist/admin/src/pages/Assets/hooks/useInfiniteAssets.d.ts +45 -0
  597. package/dist/admin/src/pages/Assets/utils/mergeMixedList.d.ts +40 -0
  598. package/dist/admin/src/pages/Assets/utils/mergeUploadedAssets.d.ts +35 -0
  599. package/dist/admin/src/pages/Assets/utils/renderedKeys.d.ts +19 -0
  600. package/dist/admin/src/pages/SettingsPage/useAIMetadataJob.d.ts +9 -0
  601. package/dist/admin/src/services/api.d.ts +99 -0
  602. package/dist/admin/src/services/assets.d.ts +33 -0
  603. package/dist/admin/src/services/folders.d.ts +37 -0
  604. package/dist/admin/src/services/settings.d.ts +2 -0
  605. package/dist/admin/src/services/uploadFileViaXHR.d.ts +23 -0
  606. package/dist/admin/src/store/uploadProgress.d.ts +201 -0
  607. package/dist/admin/src/utils/canDropItemOnFolder.d.ts +9 -0
  608. package/dist/admin/src/utils/downloadFile.d.ts +5 -0
  609. package/dist/admin/src/utils/flattenFolderStructure.d.ts +18 -0
  610. package/dist/admin/src/utils/getFolderLabel.d.ts +11 -0
  611. package/dist/admin/src/utils/itemLocations.d.ts +31 -0
  612. package/dist/admin/store/hooks.js.map +1 -0
  613. package/dist/admin/store/hooks.mjs.map +1 -0
  614. package/dist/admin/store/uploadProgress.js +373 -0
  615. package/dist/admin/store/uploadProgress.js.map +1 -0
  616. package/dist/admin/store/uploadProgress.mjs +349 -0
  617. package/dist/admin/store/uploadProgress.mjs.map +1 -0
  618. package/dist/admin/translations/en.json.js +0 -3
  619. package/dist/admin/translations/en.json.js.map +1 -1
  620. package/dist/admin/translations/en.json.mjs +0 -3
  621. package/dist/admin/translations/en.json.mjs.map +1 -1
  622. package/dist/admin/utils/buildBulkMovePayload.js.map +1 -0
  623. package/dist/admin/utils/buildBulkMovePayload.mjs.map +1 -0
  624. package/dist/admin/utils/buildDragSetFromSelection.js.map +1 -0
  625. package/dist/admin/utils/buildDragSetFromSelection.mjs.map +1 -0
  626. package/dist/admin/utils/canDropItemOnFolder.js.map +1 -0
  627. package/dist/admin/utils/canDropItemOnFolder.mjs.map +1 -0
  628. package/dist/admin/utils/createRafBatcher.js.map +1 -0
  629. package/dist/admin/utils/createRafBatcher.mjs.map +1 -0
  630. package/dist/admin/utils/downloadFile.js +13 -7
  631. package/dist/admin/utils/downloadFile.js.map +1 -1
  632. package/dist/admin/utils/downloadFile.mjs +13 -7
  633. package/dist/admin/utils/downloadFile.mjs.map +1 -1
  634. package/dist/admin/utils/files.js.map +1 -0
  635. package/dist/admin/utils/files.mjs.map +1 -0
  636. package/dist/admin/utils/flattenFolderStructure.js.map +1 -0
  637. package/dist/admin/utils/flattenFolderStructure.mjs.map +1 -0
  638. package/dist/admin/utils/formatMoveSuccessMessage.js.map +1 -0
  639. package/dist/admin/utils/formatMoveSuccessMessage.mjs.map +1 -0
  640. package/dist/admin/utils/getApiErrorMessage.js.map +1 -0
  641. package/dist/admin/utils/getApiErrorMessage.mjs.map +1 -0
  642. package/dist/admin/utils/getAssetIcon.js +28 -0
  643. package/dist/admin/utils/getAssetIcon.js.map +1 -0
  644. package/dist/admin/utils/getAssetIcon.mjs +26 -0
  645. package/dist/admin/utils/getAssetIcon.mjs.map +1 -0
  646. package/dist/admin/utils/getFolderLabel.js.map +1 -0
  647. package/dist/admin/utils/getFolderLabel.mjs.map +1 -0
  648. package/dist/admin/utils/getRelationId.js.map +1 -0
  649. package/dist/admin/utils/getRelationId.mjs.map +1 -0
  650. package/dist/admin/utils/isEventFromWithin.js.map +1 -0
  651. package/dist/admin/utils/isEventFromWithin.mjs.map +1 -0
  652. package/dist/admin/utils/itemLocations.js.map +1 -0
  653. package/dist/admin/utils/itemLocations.mjs.map +1 -0
  654. package/dist/admin/utils/itemSource.js.map +1 -0
  655. package/dist/admin/utils/itemSource.mjs.map +1 -0
  656. package/dist/admin/utils/searchQueryParam.js.map +1 -0
  657. package/dist/admin/utils/searchQueryParam.mjs.map +1 -0
  658. package/dist/admin/utils/translations.js +8 -0
  659. package/dist/admin/utils/translations.js.map +1 -0
  660. package/dist/admin/utils/translations.mjs +6 -0
  661. package/dist/admin/utils/translations.mjs.map +1 -0
  662. package/dist/server/bootstrap.js +11 -0
  663. package/dist/server/bootstrap.js.map +1 -1
  664. package/dist/server/bootstrap.mjs +11 -0
  665. package/dist/server/bootstrap.mjs.map +1 -1
  666. package/dist/server/controllers/admin-settings.js +1 -4
  667. package/dist/server/controllers/admin-settings.js.map +1 -1
  668. package/dist/server/controllers/admin-settings.mjs +1 -4
  669. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  670. package/dist/server/controllers/admin-upload.js +31 -1
  671. package/dist/server/controllers/admin-upload.js.map +1 -1
  672. package/dist/server/controllers/admin-upload.mjs +31 -1
  673. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  674. package/dist/server/controllers/utils/find-entity-and-check-permissions.js +15 -4
  675. package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
  676. package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs +15 -4
  677. package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -1
  678. package/dist/server/controllers/utils/folders.js +1 -1
  679. package/dist/server/controllers/utils/folders.js.map +1 -1
  680. package/dist/server/controllers/utils/folders.mjs +1 -1
  681. package/dist/server/controllers/utils/folders.mjs.map +1 -1
  682. package/dist/server/mcp/ambient-instance.js +46 -0
  683. package/dist/server/mcp/ambient-instance.js.map +1 -0
  684. package/dist/server/mcp/ambient-instance.mjs +43 -0
  685. package/dist/server/mcp/ambient-instance.mjs.map +1 -0
  686. package/dist/server/mcp/handlers/constants.js +60 -0
  687. package/dist/server/mcp/handlers/constants.js.map +1 -0
  688. package/dist/server/mcp/handlers/constants.mjs +45 -0
  689. package/dist/server/mcp/handlers/constants.mjs.map +1 -0
  690. package/dist/server/mcp/handlers/folder-handlers.js +308 -0
  691. package/dist/server/mcp/handlers/folder-handlers.js.map +1 -0
  692. package/dist/server/mcp/handlers/folder-handlers.mjs +303 -0
  693. package/dist/server/mcp/handlers/folder-handlers.mjs.map +1 -0
  694. package/dist/server/mcp/handlers/read-handlers.js +134 -0
  695. package/dist/server/mcp/handlers/read-handlers.js.map +1 -0
  696. package/dist/server/mcp/handlers/read-handlers.mjs +130 -0
  697. package/dist/server/mcp/handlers/read-handlers.mjs.map +1 -0
  698. package/dist/server/mcp/handlers/write-handlers.js +315 -0
  699. package/dist/server/mcp/handlers/write-handlers.js.map +1 -0
  700. package/dist/server/mcp/handlers/write-handlers.mjs +311 -0
  701. package/dist/server/mcp/handlers/write-handlers.mjs.map +1 -0
  702. package/dist/server/mcp/permissions.js +36 -0
  703. package/dist/server/mcp/permissions.js.map +1 -0
  704. package/dist/server/mcp/permissions.mjs +33 -0
  705. package/dist/server/mcp/permissions.mjs.map +1 -0
  706. package/dist/server/mcp/register-upload-mcp-tools.js +235 -0
  707. package/dist/server/mcp/register-upload-mcp-tools.js.map +1 -0
  708. package/dist/server/mcp/register-upload-mcp-tools.mjs +232 -0
  709. package/dist/server/mcp/register-upload-mcp-tools.mjs.map +1 -0
  710. package/dist/server/mcp/sanitizers/sanitize-media.js +97 -0
  711. package/dist/server/mcp/sanitizers/sanitize-media.js.map +1 -0
  712. package/dist/server/mcp/sanitizers/sanitize-media.mjs +93 -0
  713. package/dist/server/mcp/sanitizers/sanitize-media.mjs.map +1 -0
  714. package/dist/server/mcp/schemas/input-schemas.js +206 -0
  715. package/dist/server/mcp/schemas/input-schemas.js.map +1 -0
  716. package/dist/server/mcp/schemas/input-schemas.mjs +190 -0
  717. package/dist/server/mcp/schemas/input-schemas.mjs.map +1 -0
  718. package/dist/server/mcp/schemas/output-schemas.js +158 -0
  719. package/dist/server/mcp/schemas/output-schemas.js.map +1 -0
  720. package/dist/server/mcp/schemas/output-schemas.mjs +142 -0
  721. package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -0
  722. package/dist/server/mcp/utils.js +14 -0
  723. package/dist/server/mcp/utils.js.map +1 -0
  724. package/dist/server/mcp/utils.mjs +12 -0
  725. package/dist/server/mcp/utils.mjs.map +1 -0
  726. package/dist/server/media-library-default-notice.js +42 -0
  727. package/dist/server/media-library-default-notice.js.map +1 -0
  728. package/dist/server/media-library-default-notice.mjs +40 -0
  729. package/dist/server/media-library-default-notice.mjs.map +1 -0
  730. package/dist/server/migrations/unsign-richtext-and-blocks-urls.js +147 -0
  731. package/dist/server/migrations/unsign-richtext-and-blocks-urls.js.map +1 -0
  732. package/dist/server/migrations/unsign-richtext-and-blocks-urls.mjs +145 -0
  733. package/dist/server/migrations/unsign-richtext-and-blocks-urls.mjs.map +1 -0
  734. package/dist/server/register.js +8 -0
  735. package/dist/server/register.js.map +1 -1
  736. package/dist/server/register.mjs +8 -0
  737. package/dist/server/register.mjs.map +1 -1
  738. package/dist/server/routes/admin.js +4 -1
  739. package/dist/server/routes/admin.js.map +1 -1
  740. package/dist/server/routes/admin.mjs +4 -1
  741. package/dist/server/routes/admin.mjs.map +1 -1
  742. package/dist/server/services/ai-metadata.js +1 -1
  743. package/dist/server/services/ai-metadata.js.map +1 -1
  744. package/dist/server/services/ai-metadata.mjs +1 -1
  745. package/dist/server/services/ai-metadata.mjs.map +1 -1
  746. package/dist/server/services/extensions/index.js +17 -5
  747. package/dist/server/services/extensions/index.js.map +1 -1
  748. package/dist/server/services/extensions/index.mjs +16 -4
  749. package/dist/server/services/extensions/index.mjs.map +1 -1
  750. package/dist/server/services/extensions/utils.js +318 -19
  751. package/dist/server/services/extensions/utils.js.map +1 -1
  752. package/dist/server/services/extensions/utils.mjs +309 -20
  753. package/dist/server/services/extensions/utils.mjs.map +1 -1
  754. package/dist/server/services/folder.js.map +1 -1
  755. package/dist/server/services/folder.mjs.map +1 -1
  756. package/dist/server/services/metrics.js +4 -3
  757. package/dist/server/services/metrics.js.map +1 -1
  758. package/dist/server/services/metrics.mjs +4 -3
  759. package/dist/server/services/metrics.mjs.map +1 -1
  760. package/dist/server/services/upload.js +14 -2
  761. package/dist/server/services/upload.js.map +1 -1
  762. package/dist/server/services/upload.mjs +14 -2
  763. package/dist/server/services/upload.mjs.map +1 -1
  764. package/dist/server/src/bootstrap.d.ts.map +1 -1
  765. package/dist/server/src/controllers/admin-settings.d.ts +1 -1
  766. package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
  767. package/dist/server/src/controllers/admin-upload.d.ts +1 -0
  768. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  769. package/dist/server/src/controllers/index.d.ts +1 -1
  770. package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts +14 -1
  771. package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
  772. package/dist/server/src/controllers/utils/folders.d.ts +2 -1
  773. package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
  774. package/dist/server/src/index.d.ts +9 -3
  775. package/dist/server/src/index.d.ts.map +1 -1
  776. package/dist/server/src/mcp/ambient-instance.d.ts +65 -0
  777. package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -0
  778. package/dist/server/src/mcp/handlers/constants.d.ts +48 -0
  779. package/dist/server/src/mcp/handlers/constants.d.ts.map +1 -0
  780. package/dist/server/src/mcp/handlers/folder-handlers.d.ts +49 -0
  781. package/dist/server/src/mcp/handlers/folder-handlers.d.ts.map +1 -0
  782. package/dist/server/src/mcp/handlers/index.d.ts +5 -0
  783. package/dist/server/src/mcp/handlers/index.d.ts.map +1 -0
  784. package/dist/server/src/mcp/handlers/read-handlers.d.ts +35 -0
  785. package/dist/server/src/mcp/handlers/read-handlers.d.ts.map +1 -0
  786. package/dist/server/src/mcp/handlers/write-handlers.d.ts +66 -0
  787. package/dist/server/src/mcp/handlers/write-handlers.d.ts.map +1 -0
  788. package/dist/server/src/mcp/index.d.ts +3 -0
  789. package/dist/server/src/mcp/index.d.ts.map +1 -0
  790. package/dist/server/src/mcp/permissions.d.ts +22 -0
  791. package/dist/server/src/mcp/permissions.d.ts.map +1 -0
  792. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts +29 -0
  793. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts.map +1 -0
  794. package/dist/server/src/mcp/sanitizers/sanitize-media.d.ts +63 -0
  795. package/dist/server/src/mcp/sanitizers/sanitize-media.d.ts.map +1 -0
  796. package/dist/server/src/mcp/schemas/index.d.ts +3 -0
  797. package/dist/server/src/mcp/schemas/index.d.ts.map +1 -0
  798. package/dist/server/src/mcp/schemas/input-schemas.d.ts +148 -0
  799. package/dist/server/src/mcp/schemas/input-schemas.d.ts.map +1 -0
  800. package/dist/server/src/mcp/schemas/output-schemas.d.ts +276 -0
  801. package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -0
  802. package/dist/server/src/mcp/types.d.ts +19 -0
  803. package/dist/server/src/mcp/types.d.ts.map +1 -0
  804. package/dist/server/src/mcp/utils.d.ts +4 -0
  805. package/dist/server/src/mcp/utils.d.ts.map +1 -0
  806. package/dist/server/src/media-library-default-notice.d.ts +19 -0
  807. package/dist/server/src/media-library-default-notice.d.ts.map +1 -0
  808. package/dist/server/src/migrations/unsign-richtext-and-blocks-urls.d.ts +18 -0
  809. package/dist/server/src/migrations/unsign-richtext-and-blocks-urls.d.ts.map +1 -0
  810. package/dist/server/src/register.d.ts.map +1 -1
  811. package/dist/server/src/routes/admin.d.ts.map +1 -1
  812. package/dist/server/src/services/extensions/index.d.ts.map +1 -1
  813. package/dist/server/src/services/extensions/utils.d.ts +52 -2
  814. package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
  815. package/dist/server/src/services/folder.d.ts +6 -2
  816. package/dist/server/src/services/folder.d.ts.map +1 -1
  817. package/dist/server/src/services/index.d.ts +8 -2
  818. package/dist/server/src/services/index.d.ts.map +1 -1
  819. package/dist/server/src/services/metrics.d.ts.map +1 -1
  820. package/dist/server/src/services/upload.d.ts +8 -1
  821. package/dist/server/src/services/upload.d.ts.map +1 -1
  822. package/dist/server/src/types.d.ts +2 -2
  823. package/dist/server/src/types.d.ts.map +1 -1
  824. package/dist/server/src/utils/index.d.ts +2 -1
  825. package/dist/server/src/utils/index.d.ts.map +1 -1
  826. package/dist/server/utils/index.js +2 -2
  827. package/dist/server/utils/index.js.map +1 -1
  828. package/dist/server/utils/index.mjs +2 -2
  829. package/dist/server/utils/index.mjs.map +1 -1
  830. package/dist/shared/contracts/files.d.ts +22 -0
  831. package/dist/shared/contracts/files.d.ts.map +1 -1
  832. package/package.json +7 -6
  833. package/dist/admin/ai/components/AIAssetCard.js +0 -621
  834. package/dist/admin/ai/components/AIAssetCard.js.map +0 -1
  835. package/dist/admin/ai/components/AIAssetCard.mjs +0 -598
  836. package/dist/admin/ai/components/AIAssetCard.mjs.map +0 -1
  837. package/dist/admin/ai/components/AIUploadModal.js.map +0 -1
  838. package/dist/admin/ai/components/AIUploadModal.mjs.map +0 -1
  839. package/dist/admin/components/AssetCard/AssetCard.js +0 -67
  840. package/dist/admin/components/AssetCard/AssetCard.js.map +0 -1
  841. package/dist/admin/components/AssetCard/AssetCard.mjs +0 -65
  842. package/dist/admin/components/AssetCard/AssetCard.mjs.map +0 -1
  843. package/dist/admin/components/AssetCard/AssetCardBase.js.map +0 -1
  844. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +0 -1
  845. package/dist/admin/components/AssetCard/AudioAssetCard.js.map +0 -1
  846. package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +0 -1
  847. package/dist/admin/components/AssetCard/AudioPreview.js.map +0 -1
  848. package/dist/admin/components/AssetCard/AudioPreview.mjs.map +0 -1
  849. package/dist/admin/components/AssetCard/DocAssetCard.js.map +0 -1
  850. package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +0 -1
  851. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +0 -1
  852. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +0 -1
  853. package/dist/admin/components/AssetCard/UploadingAssetCard.js +0 -154
  854. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +0 -1
  855. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +0 -132
  856. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +0 -1
  857. package/dist/admin/components/AssetCard/VideoAssetCard.js.map +0 -1
  858. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +0 -1
  859. package/dist/admin/components/AssetCard/VideoPreview.js.map +0 -1
  860. package/dist/admin/components/AssetCard/VideoPreview.mjs.map +0 -1
  861. package/dist/admin/components/AssetDialog/AssetDialog.js.map +0 -1
  862. package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +0 -1
  863. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -320
  864. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +0 -1
  865. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -318
  866. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +0 -1
  867. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +0 -1
  868. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +0 -1
  869. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +0 -1
  870. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +0 -1
  871. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +0 -1
  872. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +0 -1
  873. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +0 -1
  874. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +0 -1
  875. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +0 -1
  876. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +0 -1
  877. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +0 -1
  878. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +0 -1
  879. package/dist/admin/components/AssetDialog/DialogFooter.js.map +0 -1
  880. package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +0 -1
  881. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +0 -1
  882. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +0 -1
  883. package/dist/admin/components/AssetGridList/AssetGridList.js.map +0 -1
  884. package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +0 -1
  885. package/dist/admin/components/AssetGridList/Draggable.js.map +0 -1
  886. package/dist/admin/components/AssetGridList/Draggable.mjs.map +0 -1
  887. package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +0 -1
  888. package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +0 -1
  889. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +0 -1
  890. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +0 -1
  891. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +0 -1
  892. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +0 -1
  893. package/dist/admin/components/ContextInfo/ContextInfo.js.map +0 -1
  894. package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +0 -1
  895. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +0 -1
  896. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +0 -1
  897. package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +0 -1
  898. package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +0 -1
  899. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +0 -1
  900. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +0 -1
  901. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +0 -114
  902. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +0 -1
  903. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +0 -89
  904. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +0 -1
  905. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +0 -1
  906. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +0 -1
  907. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +0 -1
  908. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +0 -1
  909. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +0 -362
  910. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +0 -1
  911. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +0 -337
  912. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +0 -1
  913. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +0 -1
  914. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +0 -1
  915. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +0 -1
  916. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +0 -1
  917. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +0 -1
  918. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +0 -1
  919. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +0 -1
  920. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +0 -1
  921. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +0 -1
  922. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +0 -1
  923. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +0 -1
  924. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +0 -1
  925. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +0 -1
  926. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +0 -1
  927. package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +0 -1
  928. package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +0 -1
  929. package/dist/admin/components/FilterList/FilterList.js.map +0 -1
  930. package/dist/admin/components/FilterList/FilterList.mjs.map +0 -1
  931. package/dist/admin/components/FilterList/FilterTag.js.map +0 -1
  932. package/dist/admin/components/FilterList/FilterTag.mjs.map +0 -1
  933. package/dist/admin/components/FilterPopover/FilterPopover.js.map +0 -1
  934. package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +0 -1
  935. package/dist/admin/components/FilterPopover/FilterValueInput.js.map +0 -1
  936. package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +0 -1
  937. package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +0 -1
  938. package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +0 -1
  939. package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +0 -1
  940. package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +0 -1
  941. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +0 -1
  942. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +0 -1
  943. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +0 -1
  944. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +0 -1
  945. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +0 -1
  946. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +0 -1
  947. package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +0 -1
  948. package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +0 -1
  949. package/dist/admin/components/FolderGridList/FolderGridList.js.map +0 -1
  950. package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +0 -1
  951. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +0 -1
  952. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +0 -1
  953. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +0 -89
  954. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +0 -1
  955. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +0 -87
  956. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +0 -1
  957. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +0 -1
  958. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +0 -1
  959. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +0 -1
  960. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +0 -1
  961. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +0 -111
  962. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +0 -1
  963. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +0 -89
  964. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +0 -1
  965. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +0 -1
  966. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +0 -1
  967. package/dist/admin/components/SelectTree/Option.js.map +0 -1
  968. package/dist/admin/components/SelectTree/Option.mjs.map +0 -1
  969. package/dist/admin/components/SelectTree/SelectTree.js.map +0 -1
  970. package/dist/admin/components/SelectTree/SelectTree.mjs.map +0 -1
  971. package/dist/admin/components/SelectTree/utils/flattenTree.js.map +0 -1
  972. package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +0 -1
  973. package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +0 -1
  974. package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +0 -1
  975. package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +0 -1
  976. package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +0 -1
  977. package/dist/admin/components/SortPicker/SortPicker.js +0 -40
  978. package/dist/admin/components/SortPicker/SortPicker.js.map +0 -1
  979. package/dist/admin/components/SortPicker/SortPicker.mjs +0 -38
  980. package/dist/admin/components/SortPicker/SortPicker.mjs.map +0 -1
  981. package/dist/admin/components/TableList/CellContent.js.map +0 -1
  982. package/dist/admin/components/TableList/CellContent.mjs.map +0 -1
  983. package/dist/admin/components/TableList/PreviewCell.js +0 -116
  984. package/dist/admin/components/TableList/PreviewCell.js.map +0 -1
  985. package/dist/admin/components/TableList/PreviewCell.mjs +0 -114
  986. package/dist/admin/components/TableList/PreviewCell.mjs.map +0 -1
  987. package/dist/admin/components/TableList/TableList.js +0 -100
  988. package/dist/admin/components/TableList/TableList.js.map +0 -1
  989. package/dist/admin/components/TableList/TableList.mjs +0 -98
  990. package/dist/admin/components/TableList/TableList.mjs.map +0 -1
  991. package/dist/admin/components/TableList/TableRows.js +0 -105
  992. package/dist/admin/components/TableList/TableRows.js.map +0 -1
  993. package/dist/admin/components/TableList/TableRows.mjs +0 -103
  994. package/dist/admin/components/TableList/TableRows.mjs.map +0 -1
  995. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +0 -1
  996. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +0 -1
  997. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +0 -177
  998. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +0 -1
  999. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +0 -155
  1000. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +0 -1
  1001. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +0 -1
  1002. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +0 -1
  1003. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +0 -1
  1004. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +0 -1
  1005. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +0 -1
  1006. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +0 -1
  1007. package/dist/admin/components/UploadProgress/UploadProgress.js.map +0 -1
  1008. package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +0 -1
  1009. package/dist/admin/future/App.js +0 -33
  1010. package/dist/admin/future/App.js.map +0 -1
  1011. package/dist/admin/future/App.mjs +0 -31
  1012. package/dist/admin/future/App.mjs.map +0 -1
  1013. package/dist/admin/future/components/BetaNotice.js +0 -72
  1014. package/dist/admin/future/components/BetaNotice.js.map +0 -1
  1015. package/dist/admin/future/components/BetaNotice.mjs +0 -70
  1016. package/dist/admin/future/components/BetaNotice.mjs.map +0 -1
  1017. package/dist/admin/future/components/Drawer.js.map +0 -1
  1018. package/dist/admin/future/components/Drawer.mjs.map +0 -1
  1019. package/dist/admin/future/components/TruncatedText.js.map +0 -1
  1020. package/dist/admin/future/components/TruncatedText.mjs.map +0 -1
  1021. package/dist/admin/future/components/UploadProgressDialog.js +0 -699
  1022. package/dist/admin/future/components/UploadProgressDialog.js.map +0 -1
  1023. package/dist/admin/future/components/UploadProgressDialog.mjs +0 -697
  1024. package/dist/admin/future/components/UploadProgressDialog.mjs.map +0 -1
  1025. package/dist/admin/future/hooks/useAIMetadataEnabled.js +0 -39
  1026. package/dist/admin/future/hooks/useAIMetadataEnabled.js.map +0 -1
  1027. package/dist/admin/future/hooks/useAIMetadataEnabled.mjs +0 -37
  1028. package/dist/admin/future/hooks/useAIMetadataEnabled.mjs.map +0 -1
  1029. package/dist/admin/future/hooks/useApiErrorMessage.js.map +0 -1
  1030. package/dist/admin/future/hooks/useApiErrorMessage.mjs.map +0 -1
  1031. package/dist/admin/future/hooks/useMediaLibraryPermissions.js +0 -35
  1032. package/dist/admin/future/hooks/useMediaLibraryPermissions.js.map +0 -1
  1033. package/dist/admin/future/hooks/useMediaLibraryPermissions.mjs +0 -33
  1034. package/dist/admin/future/hooks/useMediaLibraryPermissions.mjs.map +0 -1
  1035. package/dist/admin/future/hooks/useTracking.js +0 -57
  1036. package/dist/admin/future/hooks/useTracking.js.map +0 -1
  1037. package/dist/admin/future/hooks/useTracking.mjs +0 -53
  1038. package/dist/admin/future/hooks/useTracking.mjs.map +0 -1
  1039. package/dist/admin/future/pages/Assets/AssetsPage.js +0 -830
  1040. package/dist/admin/future/pages/Assets/AssetsPage.js.map +0 -1
  1041. package/dist/admin/future/pages/Assets/AssetsPage.mjs +0 -808
  1042. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +0 -1
  1043. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.js.map +0 -1
  1044. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.mjs.map +0 -1
  1045. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js.map +0 -1
  1046. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs.map +0 -1
  1047. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +0 -1
  1048. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +0 -1
  1049. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +0 -1202
  1050. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +0 -1
  1051. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +0 -1175
  1052. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +0 -1
  1053. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +0 -261
  1054. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +0 -1
  1055. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +0 -239
  1056. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +0 -1
  1057. package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js.map +0 -1
  1058. package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs.map +0 -1
  1059. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +0 -534
  1060. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +0 -1
  1061. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +0 -532
  1062. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +0 -1
  1063. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.js.map +0 -1
  1064. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.mjs.map +0 -1
  1065. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +0 -1
  1066. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +0 -1
  1067. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js +0 -431
  1068. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js.map +0 -1
  1069. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs +0 -429
  1070. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs.map +0 -1
  1071. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.js.map +0 -1
  1072. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.mjs.map +0 -1
  1073. package/dist/admin/future/pages/Assets/components/BusyOverlay.js.map +0 -1
  1074. package/dist/admin/future/pages/Assets/components/BusyOverlay.mjs.map +0 -1
  1075. package/dist/admin/future/pages/Assets/components/DateRangeCalendar.js.map +0 -1
  1076. package/dist/admin/future/pages/Assets/components/DateRangeCalendar.mjs.map +0 -1
  1077. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.js.map +0 -1
  1078. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.mjs.map +0 -1
  1079. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js +0 -299
  1080. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js.map +0 -1
  1081. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs +0 -296
  1082. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +0 -1
  1083. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js +0 -144
  1084. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js.map +0 -1
  1085. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs +0 -142
  1086. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +0 -1
  1087. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.js.map +0 -1
  1088. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.mjs.map +0 -1
  1089. package/dist/admin/future/pages/Assets/components/Dnd/computeValidDropTargets.js.map +0 -1
  1090. package/dist/admin/future/pages/Assets/components/Dnd/computeValidDropTargets.mjs.map +0 -1
  1091. package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js.map +0 -1
  1092. package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs.map +0 -1
  1093. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js.map +0 -1
  1094. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs.map +0 -1
  1095. package/dist/admin/future/pages/Assets/components/Dnd/useFolderTreeDroppable.js.map +0 -1
  1096. package/dist/admin/future/pages/Assets/components/Dnd/useFolderTreeDroppable.mjs.map +0 -1
  1097. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +0 -1
  1098. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +0 -1
  1099. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +0 -1
  1100. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +0 -1
  1101. package/dist/admin/future/pages/Assets/components/EmptyState.js.map +0 -1
  1102. package/dist/admin/future/pages/Assets/components/EmptyState.mjs.map +0 -1
  1103. package/dist/admin/future/pages/Assets/components/FilterBadges.js.map +0 -1
  1104. package/dist/admin/future/pages/Assets/components/FilterBadges.mjs.map +0 -1
  1105. package/dist/admin/future/pages/Assets/components/FilterMenu.js.map +0 -1
  1106. package/dist/admin/future/pages/Assets/components/FilterMenu.mjs.map +0 -1
  1107. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.js.map +0 -1
  1108. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.mjs.map +0 -1
  1109. package/dist/admin/future/pages/Assets/components/FolderFormDialog.js.map +0 -1
  1110. package/dist/admin/future/pages/Assets/components/FolderFormDialog.mjs.map +0 -1
  1111. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js.map +0 -1
  1112. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs.map +0 -1
  1113. package/dist/admin/future/pages/Assets/components/FolderTree/useSpringLoadedExpand.js.map +0 -1
  1114. package/dist/admin/future/pages/Assets/components/FolderTree/useSpringLoadedExpand.mjs.map +0 -1
  1115. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +0 -1
  1116. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs.map +0 -1
  1117. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.js.map +0 -1
  1118. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.mjs.map +0 -1
  1119. package/dist/admin/future/pages/Assets/components/SortMenu.js.map +0 -1
  1120. package/dist/admin/future/pages/Assets/components/SortMenu.mjs.map +0 -1
  1121. package/dist/admin/future/pages/Assets/constants.js.map +0 -1
  1122. package/dist/admin/future/pages/Assets/constants.mjs.map +0 -1
  1123. package/dist/admin/future/pages/Assets/hooks/useAssetSearch.js.map +0 -1
  1124. package/dist/admin/future/pages/Assets/hooks/useAssetSearch.mjs.map +0 -1
  1125. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.js.map +0 -1
  1126. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.mjs.map +0 -1
  1127. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.js.map +0 -1
  1128. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.mjs.map +0 -1
  1129. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +0 -1
  1130. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +0 -1
  1131. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +0 -1
  1132. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +0 -1
  1133. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +0 -1
  1134. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +0 -1
  1135. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +0 -1
  1136. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +0 -1
  1137. package/dist/admin/future/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +0 -1
  1138. package/dist/admin/future/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +0 -1
  1139. package/dist/admin/future/pages/Assets/hooks/useListFilters.js.map +0 -1
  1140. package/dist/admin/future/pages/Assets/hooks/useListFilters.mjs.map +0 -1
  1141. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.js.map +0 -1
  1142. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.mjs.map +0 -1
  1143. package/dist/admin/future/pages/Assets/hooks/useListSort.js.map +0 -1
  1144. package/dist/admin/future/pages/Assets/hooks/useListSort.mjs.map +0 -1
  1145. package/dist/admin/future/pages/Assets/utils/buildAssetFilters.js.map +0 -1
  1146. package/dist/admin/future/pages/Assets/utils/buildAssetFilters.mjs.map +0 -1
  1147. package/dist/admin/future/pages/Assets/utils/listQueryKey.js.map +0 -1
  1148. package/dist/admin/future/pages/Assets/utils/listQueryKey.mjs.map +0 -1
  1149. package/dist/admin/future/pages/Assets/utils/mergeMixedList.js.map +0 -1
  1150. package/dist/admin/future/pages/Assets/utils/mergeMixedList.mjs.map +0 -1
  1151. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.js.map +0 -1
  1152. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.mjs.map +0 -1
  1153. package/dist/admin/future/pages/Assets/utils/renderedKeys.js.map +0 -1
  1154. package/dist/admin/future/pages/Assets/utils/renderedKeys.mjs.map +0 -1
  1155. package/dist/admin/future/pages/Assets/utils/selection.js.map +0 -1
  1156. package/dist/admin/future/pages/Assets/utils/selection.mjs.map +0 -1
  1157. package/dist/admin/future/services/api.js +0 -758
  1158. package/dist/admin/future/services/api.js.map +0 -1
  1159. package/dist/admin/future/services/api.mjs +0 -749
  1160. package/dist/admin/future/services/api.mjs.map +0 -1
  1161. package/dist/admin/future/services/assets.js.map +0 -1
  1162. package/dist/admin/future/services/assets.mjs.map +0 -1
  1163. package/dist/admin/future/services/folders.js.map +0 -1
  1164. package/dist/admin/future/services/folders.mjs.map +0 -1
  1165. package/dist/admin/future/services/settings.js.map +0 -1
  1166. package/dist/admin/future/services/settings.mjs.map +0 -1
  1167. package/dist/admin/future/services/uploadFileViaXHR.js.map +0 -1
  1168. package/dist/admin/future/services/uploadFileViaXHR.mjs.map +0 -1
  1169. package/dist/admin/future/store/hooks.js.map +0 -1
  1170. package/dist/admin/future/store/hooks.mjs.map +0 -1
  1171. package/dist/admin/future/store/uploadProgress.js +0 -364
  1172. package/dist/admin/future/store/uploadProgress.js.map +0 -1
  1173. package/dist/admin/future/store/uploadProgress.mjs +0 -340
  1174. package/dist/admin/future/store/uploadProgress.mjs.map +0 -1
  1175. package/dist/admin/future/utils/buildBulkMovePayload.js.map +0 -1
  1176. package/dist/admin/future/utils/buildBulkMovePayload.mjs.map +0 -1
  1177. package/dist/admin/future/utils/buildDragSetFromSelection.js.map +0 -1
  1178. package/dist/admin/future/utils/buildDragSetFromSelection.mjs.map +0 -1
  1179. package/dist/admin/future/utils/canDropItemOnFolder.js.map +0 -1
  1180. package/dist/admin/future/utils/canDropItemOnFolder.mjs.map +0 -1
  1181. package/dist/admin/future/utils/createRafBatcher.js.map +0 -1
  1182. package/dist/admin/future/utils/createRafBatcher.mjs.map +0 -1
  1183. package/dist/admin/future/utils/downloadFile.js +0 -19
  1184. package/dist/admin/future/utils/downloadFile.js.map +0 -1
  1185. package/dist/admin/future/utils/downloadFile.mjs +0 -17
  1186. package/dist/admin/future/utils/downloadFile.mjs.map +0 -1
  1187. package/dist/admin/future/utils/files.js.map +0 -1
  1188. package/dist/admin/future/utils/files.mjs.map +0 -1
  1189. package/dist/admin/future/utils/flattenFolderStructure.js.map +0 -1
  1190. package/dist/admin/future/utils/flattenFolderStructure.mjs.map +0 -1
  1191. package/dist/admin/future/utils/formatMoveSuccessMessage.js.map +0 -1
  1192. package/dist/admin/future/utils/formatMoveSuccessMessage.mjs.map +0 -1
  1193. package/dist/admin/future/utils/getApiErrorMessage.js.map +0 -1
  1194. package/dist/admin/future/utils/getApiErrorMessage.mjs.map +0 -1
  1195. package/dist/admin/future/utils/getAssetIcon.js +0 -28
  1196. package/dist/admin/future/utils/getAssetIcon.js.map +0 -1
  1197. package/dist/admin/future/utils/getAssetIcon.mjs +0 -26
  1198. package/dist/admin/future/utils/getAssetIcon.mjs.map +0 -1
  1199. package/dist/admin/future/utils/getFolderLabel.js.map +0 -1
  1200. package/dist/admin/future/utils/getFolderLabel.mjs.map +0 -1
  1201. package/dist/admin/future/utils/getRelationId.js.map +0 -1
  1202. package/dist/admin/future/utils/getRelationId.mjs.map +0 -1
  1203. package/dist/admin/future/utils/isEventFromWithin.js.map +0 -1
  1204. package/dist/admin/future/utils/isEventFromWithin.mjs.map +0 -1
  1205. package/dist/admin/future/utils/itemLocations.js.map +0 -1
  1206. package/dist/admin/future/utils/itemLocations.mjs.map +0 -1
  1207. package/dist/admin/future/utils/itemSource.js.map +0 -1
  1208. package/dist/admin/future/utils/itemSource.mjs.map +0 -1
  1209. package/dist/admin/future/utils/searchQueryParam.js.map +0 -1
  1210. package/dist/admin/future/utils/searchQueryParam.mjs.map +0 -1
  1211. package/dist/admin/future/utils/translations.js +0 -8
  1212. package/dist/admin/future/utils/translations.js.map +0 -1
  1213. package/dist/admin/future/utils/translations.mjs +0 -6
  1214. package/dist/admin/future/utils/translations.mjs.map +0 -1
  1215. package/dist/admin/hooks/useAIMetadataJob.js +0 -114
  1216. package/dist/admin/hooks/useAIMetadataJob.js.map +0 -1
  1217. package/dist/admin/hooks/useAIMetadataJob.mjs +0 -92
  1218. package/dist/admin/hooks/useAIMetadataJob.mjs.map +0 -1
  1219. package/dist/admin/hooks/useAiAvailability.js.map +0 -1
  1220. package/dist/admin/hooks/useAiAvailability.mjs.map +0 -1
  1221. package/dist/admin/hooks/useAssets.js +0 -127
  1222. package/dist/admin/hooks/useAssets.js.map +0 -1
  1223. package/dist/admin/hooks/useAssets.mjs +0 -105
  1224. package/dist/admin/hooks/useAssets.mjs.map +0 -1
  1225. package/dist/admin/hooks/useBulkEdit.js +0 -65
  1226. package/dist/admin/hooks/useBulkEdit.js.map +0 -1
  1227. package/dist/admin/hooks/useBulkEdit.mjs +0 -63
  1228. package/dist/admin/hooks/useBulkEdit.mjs.map +0 -1
  1229. package/dist/admin/hooks/useBulkMove.js +0 -78
  1230. package/dist/admin/hooks/useBulkMove.js.map +0 -1
  1231. package/dist/admin/hooks/useBulkMove.mjs +0 -76
  1232. package/dist/admin/hooks/useBulkMove.mjs.map +0 -1
  1233. package/dist/admin/hooks/useBulkRemove.js +0 -83
  1234. package/dist/admin/hooks/useBulkRemove.js.map +0 -1
  1235. package/dist/admin/hooks/useBulkRemove.mjs +0 -81
  1236. package/dist/admin/hooks/useBulkRemove.mjs.map +0 -1
  1237. package/dist/admin/hooks/useConfig.js +0 -58
  1238. package/dist/admin/hooks/useConfig.js.map +0 -1
  1239. package/dist/admin/hooks/useConfig.mjs +0 -56
  1240. package/dist/admin/hooks/useConfig.mjs.map +0 -1
  1241. package/dist/admin/hooks/useCropImg.js.map +0 -1
  1242. package/dist/admin/hooks/useCropImg.mjs.map +0 -1
  1243. package/dist/admin/hooks/useEditAsset.js +0 -115
  1244. package/dist/admin/hooks/useEditAsset.js.map +0 -1
  1245. package/dist/admin/hooks/useEditAsset.mjs +0 -93
  1246. package/dist/admin/hooks/useEditAsset.mjs.map +0 -1
  1247. package/dist/admin/hooks/useEditFolder.js +0 -45
  1248. package/dist/admin/hooks/useEditFolder.js.map +0 -1
  1249. package/dist/admin/hooks/useEditFolder.mjs +0 -43
  1250. package/dist/admin/hooks/useEditFolder.mjs.map +0 -1
  1251. package/dist/admin/hooks/useFolder.js +0 -57
  1252. package/dist/admin/hooks/useFolder.js.map +0 -1
  1253. package/dist/admin/hooks/useFolder.mjs +0 -55
  1254. package/dist/admin/hooks/useFolder.mjs.map +0 -1
  1255. package/dist/admin/hooks/useFolderStructure.js +0 -52
  1256. package/dist/admin/hooks/useFolderStructure.js.map +0 -1
  1257. package/dist/admin/hooks/useFolderStructure.mjs +0 -50
  1258. package/dist/admin/hooks/useFolderStructure.mjs.map +0 -1
  1259. package/dist/admin/hooks/useFolders.js +0 -108
  1260. package/dist/admin/hooks/useFolders.js.map +0 -1
  1261. package/dist/admin/hooks/useFolders.mjs +0 -86
  1262. package/dist/admin/hooks/useFolders.mjs.map +0 -1
  1263. package/dist/admin/hooks/useModalQueryParams.js.map +0 -1
  1264. package/dist/admin/hooks/useModalQueryParams.mjs.map +0 -1
  1265. package/dist/admin/hooks/usePersistentState.js.map +0 -1
  1266. package/dist/admin/hooks/usePersistentState.mjs.map +0 -1
  1267. package/dist/admin/hooks/useRemoveAsset.js +0 -58
  1268. package/dist/admin/hooks/useRemoveAsset.js.map +0 -1
  1269. package/dist/admin/hooks/useRemoveAsset.mjs +0 -56
  1270. package/dist/admin/hooks/useRemoveAsset.mjs.map +0 -1
  1271. package/dist/admin/hooks/useSelectionState.js.map +0 -1
  1272. package/dist/admin/hooks/useSelectionState.mjs.map +0 -1
  1273. package/dist/admin/hooks/useSettings.js.map +0 -1
  1274. package/dist/admin/hooks/useSettings.mjs.map +0 -1
  1275. package/dist/admin/hooks/useUpload.js +0 -109
  1276. package/dist/admin/hooks/useUpload.js.map +0 -1
  1277. package/dist/admin/hooks/useUpload.mjs +0 -87
  1278. package/dist/admin/hooks/useUpload.mjs.map +0 -1
  1279. package/dist/admin/hooks/utils/renameKeys.js.map +0 -1
  1280. package/dist/admin/hooks/utils/renameKeys.mjs.map +0 -1
  1281. package/dist/admin/pages/App/App.js.map +0 -1
  1282. package/dist/admin/pages/App/App.mjs.map +0 -1
  1283. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +0 -145
  1284. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +0 -1
  1285. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -120
  1286. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +0 -1
  1287. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -109
  1288. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +0 -1
  1289. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -107
  1290. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +0 -1
  1291. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js +0 -10
  1292. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +0 -1
  1293. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs +0 -7
  1294. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +0 -1
  1295. package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +0 -1
  1296. package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +0 -1
  1297. package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +0 -1
  1298. package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +0 -1
  1299. package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +0 -1
  1300. package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +0 -1
  1301. package/dist/admin/pages/App/MediaLibrary.js +0 -469
  1302. package/dist/admin/pages/App/MediaLibrary.js.map +0 -1
  1303. package/dist/admin/pages/App/MediaLibrary.mjs +0 -447
  1304. package/dist/admin/pages/App/MediaLibrary.mjs.map +0 -1
  1305. package/dist/admin/pages/App/components/BulkActions.js.map +0 -1
  1306. package/dist/admin/pages/App/components/BulkActions.mjs.map +0 -1
  1307. package/dist/admin/pages/App/components/BulkDeleteButton.js.map +0 -1
  1308. package/dist/admin/pages/App/components/BulkDeleteButton.mjs.map +0 -1
  1309. package/dist/admin/pages/App/components/BulkMoveButton.js.map +0 -1
  1310. package/dist/admin/pages/App/components/BulkMoveButton.mjs.map +0 -1
  1311. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +0 -1
  1312. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +0 -1
  1313. package/dist/admin/pages/App/components/Filters.js.map +0 -1
  1314. package/dist/admin/pages/App/components/Filters.mjs.map +0 -1
  1315. package/dist/admin/pages/App/components/Header.js.map +0 -1
  1316. package/dist/admin/pages/App/components/Header.mjs.map +0 -1
  1317. package/dist/admin/src/ai/components/AIAssetCard.d.ts +0 -13
  1318. package/dist/admin/src/ai/components/AIUploadModal.d.ts +0 -55
  1319. package/dist/admin/src/components/AssetCard/AssetCard.d.ts +0 -19
  1320. package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +0 -17
  1321. package/dist/admin/src/components/AssetDialog/AssetDialog.d.ts +0 -39
  1322. package/dist/admin/src/components/AssetDialog/BrowseStep/BrowseStep.d.ts +0 -63
  1323. package/dist/admin/src/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +0 -7
  1324. package/dist/admin/src/components/AssetDialog/SelectedStep/SelectedStep.d.ts +0 -8
  1325. package/dist/admin/src/components/AssetGridList/AssetGridList.d.ts +0 -13
  1326. package/dist/admin/src/components/BulkMoveDialog/BulkMoveDialog.d.ts +0 -15
  1327. package/dist/admin/src/components/EditAssetDialog/EditAssetContent.d.ts +0 -31
  1328. package/dist/admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +0 -8
  1329. package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +0 -26
  1330. package/dist/admin/src/components/EditAssetDialog/RemoveAssetDialog.d.ts +0 -8
  1331. package/dist/admin/src/components/EditFolderDialog/EditFolderDialog.d.ts +0 -12
  1332. package/dist/admin/src/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +0 -10
  1333. package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +0 -4
  1334. package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +0 -9
  1335. package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +0 -23
  1336. package/dist/admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +0 -10
  1337. package/dist/admin/src/components/SelectTree/Option.d.ts +0 -16
  1338. package/dist/admin/src/components/SortPicker/SortPicker.d.ts +0 -7
  1339. package/dist/admin/src/components/TableList/CellContent.d.ts +0 -8
  1340. package/dist/admin/src/components/TableList/PreviewCell.d.ts +0 -7
  1341. package/dist/admin/src/components/TableList/TableList.d.ts +0 -31
  1342. package/dist/admin/src/components/TableList/TableRows.d.ts +0 -22
  1343. package/dist/admin/src/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +0 -13
  1344. package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +0 -22
  1345. package/dist/admin/src/components/UploadAssetDialog/UploadAssetDialog.d.ts +0 -21
  1346. package/dist/admin/src/components/UploadProgress/UploadProgress.d.ts +0 -7
  1347. package/dist/admin/src/future/App.d.ts +0 -1
  1348. package/dist/admin/src/future/components/BetaNotice.d.ts +0 -11
  1349. package/dist/admin/src/future/hooks/useMediaLibraryPermissions.d.ts +0 -21
  1350. package/dist/admin/src/future/hooks/useTracking.d.ts +0 -29
  1351. package/dist/admin/src/future/pages/Assets/components/ActionsMenuContent.d.ts +0 -33
  1352. package/dist/admin/src/future/pages/Assets/components/AssetActionsMenu.d.ts +0 -26
  1353. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +0 -16
  1354. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +0 -46
  1355. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetPreview.d.ts +0 -9
  1356. package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +0 -12
  1357. package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +0 -18
  1358. package/dist/admin/src/future/pages/Assets/components/BulkActionsBar.d.ts +0 -28
  1359. package/dist/admin/src/future/pages/Assets/components/Dnd/computeValidDropTargets.d.ts +0 -7
  1360. package/dist/admin/src/future/pages/Assets/components/FolderActionsMenu.d.ts +0 -21
  1361. package/dist/admin/src/future/pages/Assets/hooks/useFolderNavigation.d.ts +0 -7
  1362. package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +0 -45
  1363. package/dist/admin/src/future/pages/Assets/utils/mergeMixedList.d.ts +0 -40
  1364. package/dist/admin/src/future/pages/Assets/utils/mergeUploadedAssets.d.ts +0 -35
  1365. package/dist/admin/src/future/pages/Assets/utils/renderedKeys.d.ts +0 -19
  1366. package/dist/admin/src/future/services/api.d.ts +0 -99
  1367. package/dist/admin/src/future/services/assets.d.ts +0 -33
  1368. package/dist/admin/src/future/services/folders.d.ts +0 -37
  1369. package/dist/admin/src/future/services/settings.d.ts +0 -2
  1370. package/dist/admin/src/future/services/uploadFileViaXHR.d.ts +0 -23
  1371. package/dist/admin/src/future/store/uploadProgress.d.ts +0 -207
  1372. package/dist/admin/src/future/utils/canDropItemOnFolder.d.ts +0 -9
  1373. package/dist/admin/src/future/utils/downloadFile.d.ts +0 -6
  1374. package/dist/admin/src/future/utils/flattenFolderStructure.d.ts +0 -18
  1375. package/dist/admin/src/future/utils/getFolderLabel.d.ts +0 -11
  1376. package/dist/admin/src/future/utils/itemLocations.d.ts +0 -31
  1377. package/dist/admin/src/hooks/useAIMetadataJob.d.ts +0 -9
  1378. package/dist/admin/src/hooks/useAssets.d.ts +0 -14
  1379. package/dist/admin/src/hooks/useBulkEdit.d.ts +0 -91
  1380. package/dist/admin/src/hooks/useBulkMove.d.ts +0 -209
  1381. package/dist/admin/src/hooks/useBulkRemove.d.ts +0 -241
  1382. package/dist/admin/src/hooks/useConfig.d.ts +0 -5
  1383. package/dist/admin/src/hooks/useEditAsset.d.ts +0 -119
  1384. package/dist/admin/src/hooks/useEditFolder.d.ts +0 -72
  1385. package/dist/admin/src/hooks/useFolder.d.ts +0 -7
  1386. package/dist/admin/src/hooks/useFolderStructure.d.ts +0 -18
  1387. package/dist/admin/src/hooks/useFolders.d.ts +0 -11
  1388. package/dist/admin/src/hooks/useModalQueryParams.d.ts +0 -20
  1389. package/dist/admin/src/hooks/useRemoveAsset.d.ts +0 -8
  1390. package/dist/admin/src/hooks/useUpload.d.ts +0 -15
  1391. package/dist/admin/src/pages/App/ConfigureTheView/ConfigureTheView.d.ts +0 -6
  1392. package/dist/admin/src/pages/App/ConfigureTheView/components/Settings.d.ts +0 -13
  1393. package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +0 -12
  1394. package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +0 -8
  1395. package/dist/admin/src/pages/App/components/BulkActions.d.ts +0 -15
  1396. package/dist/admin/src/pages/App/components/BulkDeleteButton.d.ts +0 -7
  1397. package/dist/admin/src/pages/App/components/BulkMoveButton.d.ts +0 -15
  1398. package/dist/admin/src/pages/App/components/Header.d.ts +0 -22
  1399. package/dist/admin/src/utils/containsAssetFilter.d.ts +0 -2
  1400. package/dist/admin/src/utils/createAssetUrl.d.ts +0 -2
  1401. package/dist/admin/src/utils/findRecursiveFolderByValue.d.ts +0 -11
  1402. package/dist/admin/src/utils/getAllowedFiles.d.ts +0 -14
  1403. package/dist/admin/src/utils/getBreadcrumbDataCM.d.ts +0 -19
  1404. package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +0 -18
  1405. package/dist/admin/src/utils/getFolderParents.d.ts +0 -11
  1406. package/dist/admin/src/utils/getFolderURL.d.ts +0 -5
  1407. package/dist/admin/src/utils/icons.d.ts +0 -15
  1408. package/dist/admin/src/utils/index.d.ts +0 -26
  1409. package/dist/admin/src/utils/rawFileToAsset.d.ts +0 -14
  1410. package/dist/admin/utils/appendSearchParamsToUrl.js.map +0 -1
  1411. package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +0 -1
  1412. package/dist/admin/utils/containsAssetFilter.js.map +0 -1
  1413. package/dist/admin/utils/containsAssetFilter.mjs.map +0 -1
  1414. package/dist/admin/utils/createAssetUrl.js.map +0 -1
  1415. package/dist/admin/utils/createAssetUrl.mjs.map +0 -1
  1416. package/dist/admin/utils/displayedFilters.js.map +0 -1
  1417. package/dist/admin/utils/displayedFilters.mjs.map +0 -1
  1418. package/dist/admin/utils/findRecursiveFolderByValue.js.map +0 -1
  1419. package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +0 -1
  1420. package/dist/admin/utils/formatBytes.js.map +0 -1
  1421. package/dist/admin/utils/formatBytes.mjs.map +0 -1
  1422. package/dist/admin/utils/formatDuration.js.map +0 -1
  1423. package/dist/admin/utils/formatDuration.mjs.map +0 -1
  1424. package/dist/admin/utils/getAPIInnerErrors.js.map +0 -1
  1425. package/dist/admin/utils/getAPIInnerErrors.mjs.map +0 -1
  1426. package/dist/admin/utils/getAllowedFiles.js.map +0 -1
  1427. package/dist/admin/utils/getAllowedFiles.mjs.map +0 -1
  1428. package/dist/admin/utils/getBreadcrumbDataCM.js.map +0 -1
  1429. package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +0 -1
  1430. package/dist/admin/utils/getBreadcrumbDataML.js.map +0 -1
  1431. package/dist/admin/utils/getBreadcrumbDataML.mjs.map +0 -1
  1432. package/dist/admin/utils/getFileExtension.js.map +0 -1
  1433. package/dist/admin/utils/getFileExtension.mjs.map +0 -1
  1434. package/dist/admin/utils/getFolderParents.js.map +0 -1
  1435. package/dist/admin/utils/getFolderParents.mjs.map +0 -1
  1436. package/dist/admin/utils/getFolderURL.js.map +0 -1
  1437. package/dist/admin/utils/getFolderURL.mjs.map +0 -1
  1438. package/dist/admin/utils/getTrad.js +0 -8
  1439. package/dist/admin/utils/getTrad.js.map +0 -1
  1440. package/dist/admin/utils/getTrad.mjs +0 -6
  1441. package/dist/admin/utils/getTrad.mjs.map +0 -1
  1442. package/dist/admin/utils/icons.js +0 -23
  1443. package/dist/admin/utils/icons.js.map +0 -1
  1444. package/dist/admin/utils/icons.mjs +0 -19
  1445. package/dist/admin/utils/icons.mjs.map +0 -1
  1446. package/dist/admin/utils/moveElement.js.map +0 -1
  1447. package/dist/admin/utils/moveElement.mjs.map +0 -1
  1448. package/dist/admin/utils/normalizeAPIError.js.map +0 -1
  1449. package/dist/admin/utils/normalizeAPIError.mjs.map +0 -1
  1450. package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +0 -1
  1451. package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +0 -1
  1452. package/dist/admin/utils/prefixPluginTranslations.js.map +0 -1
  1453. package/dist/admin/utils/prefixPluginTranslations.mjs.map +0 -1
  1454. package/dist/admin/utils/rawFileToAsset.js +0 -23
  1455. package/dist/admin/utils/rawFileToAsset.js.map +0 -1
  1456. package/dist/admin/utils/rawFileToAsset.mjs +0 -21
  1457. package/dist/admin/utils/rawFileToAsset.mjs.map +0 -1
  1458. package/dist/admin/utils/resolveFileMime.js.map +0 -1
  1459. package/dist/admin/utils/resolveFileMime.mjs.map +0 -1
  1460. package/dist/admin/utils/toSingularTypes.js.map +0 -1
  1461. package/dist/admin/utils/toSingularTypes.mjs.map +0 -1
  1462. package/dist/admin/utils/urlYupSchema.js.map +0 -1
  1463. package/dist/admin/utils/urlYupSchema.mjs.map +0 -1
  1464. package/dist/admin/utils/urlsToAssets.js +0 -42
  1465. package/dist/admin/utils/urlsToAssets.js.map +0 -1
  1466. package/dist/admin/utils/urlsToAssets.mjs +0 -40
  1467. package/dist/admin/utils/urlsToAssets.mjs.map +0 -1
  1468. /package/dist/admin/{future/components → components}/Drawer.js +0 -0
  1469. /package/dist/admin/{future/components → components}/Drawer.mjs +0 -0
  1470. /package/dist/admin/{future/components → components}/TruncatedText.js +0 -0
  1471. /package/dist/admin/{future/components → components}/TruncatedText.mjs +0 -0
  1472. /package/dist/admin/{future/hooks → hooks}/useApiErrorMessage.js +0 -0
  1473. /package/dist/admin/{future/hooks → hooks}/useApiErrorMessage.mjs +0 -0
  1474. /package/dist/admin/{ai → legacy/ai}/components/AIUploadModal.js +0 -0
  1475. /package/dist/admin/{ai → legacy/ai}/components/AIUploadModal.mjs +0 -0
  1476. /package/dist/admin/{components → legacy/components}/AssetCard/AssetCardBase.js +0 -0
  1477. /package/dist/admin/{components → legacy/components}/AssetCard/AssetCardBase.mjs +0 -0
  1478. /package/dist/admin/{components → legacy/components}/AssetCard/AudioAssetCard.js +0 -0
  1479. /package/dist/admin/{components → legacy/components}/AssetCard/AudioAssetCard.mjs +0 -0
  1480. /package/dist/admin/{components → legacy/components}/AssetCard/AudioPreview.js +0 -0
  1481. /package/dist/admin/{components → legacy/components}/AssetCard/AudioPreview.mjs +0 -0
  1482. /package/dist/admin/{components → legacy/components}/AssetCard/DocAssetCard.js +0 -0
  1483. /package/dist/admin/{components → legacy/components}/AssetCard/DocAssetCard.mjs +0 -0
  1484. /package/dist/admin/{components → legacy/components}/AssetCard/ImageAssetCard.js +0 -0
  1485. /package/dist/admin/{components → legacy/components}/AssetCard/ImageAssetCard.mjs +0 -0
  1486. /package/dist/admin/{components → legacy/components}/AssetCard/VideoAssetCard.js +0 -0
  1487. /package/dist/admin/{components → legacy/components}/AssetCard/VideoAssetCard.mjs +0 -0
  1488. /package/dist/admin/{components → legacy/components}/AssetCard/VideoPreview.js +0 -0
  1489. /package/dist/admin/{components → legacy/components}/AssetCard/VideoPreview.mjs +0 -0
  1490. /package/dist/admin/{components → legacy/components}/AssetDialog/AssetDialog.js +0 -0
  1491. /package/dist/admin/{components → legacy/components}/AssetDialog/AssetDialog.mjs +0 -0
  1492. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/Filters.js +0 -0
  1493. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/Filters.mjs +0 -0
  1494. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.js +0 -0
  1495. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.mjs +0 -0
  1496. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.js +0 -0
  1497. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs +0 -0
  1498. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js +0 -0
  1499. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs +0 -0
  1500. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +0 -0
  1501. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -0
  1502. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.js +0 -0
  1503. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.mjs +0 -0
  1504. /package/dist/admin/{components → legacy/components}/AssetDialog/DialogFooter.js +0 -0
  1505. /package/dist/admin/{components → legacy/components}/AssetDialog/DialogFooter.mjs +0 -0
  1506. /package/dist/admin/{components → legacy/components}/AssetDialog/SelectedStep/SelectedStep.js +0 -0
  1507. /package/dist/admin/{components → legacy/components}/AssetDialog/SelectedStep/SelectedStep.mjs +0 -0
  1508. /package/dist/admin/{components → legacy/components}/AssetGridList/AssetGridList.js +0 -0
  1509. /package/dist/admin/{components → legacy/components}/AssetGridList/AssetGridList.mjs +0 -0
  1510. /package/dist/admin/{components → legacy/components}/AssetGridList/Draggable.js +0 -0
  1511. /package/dist/admin/{components → legacy/components}/AssetGridList/Draggable.mjs +0 -0
  1512. /package/dist/admin/{components → legacy/components}/Breadcrumbs/Breadcrumbs.js +0 -0
  1513. /package/dist/admin/{components → legacy/components}/Breadcrumbs/Breadcrumbs.mjs +0 -0
  1514. /package/dist/admin/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.js +0 -0
  1515. /package/dist/admin/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -0
  1516. /package/dist/admin/{components → legacy/components}/BulkMoveDialog/BulkMoveDialog.js +0 -0
  1517. /package/dist/admin/{components → legacy/components}/BulkMoveDialog/BulkMoveDialog.mjs +0 -0
  1518. /package/dist/admin/{components → legacy/components}/ContextInfo/ContextInfo.js +0 -0
  1519. /package/dist/admin/{components → legacy/components}/ContextInfo/ContextInfo.mjs +0 -0
  1520. /package/dist/admin/{components → legacy/components}/CopyLinkButton/CopyLinkButton.js +0 -0
  1521. /package/dist/admin/{components → legacy/components}/CopyLinkButton/CopyLinkButton.mjs +0 -0
  1522. /package/dist/admin/{components → legacy/components}/EditAssetDialog/DialogHeader.js +0 -0
  1523. /package/dist/admin/{components → legacy/components}/EditAssetDialog/DialogHeader.mjs +0 -0
  1524. /package/dist/admin/{components → legacy/components}/EditAssetDialog/EditAssetContent.js +0 -0
  1525. /package/dist/admin/{components → legacy/components}/EditAssetDialog/EditAssetContent.mjs +0 -0
  1526. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.js +0 -0
  1527. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -0
  1528. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -0
  1529. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -0
  1530. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.js +0 -0
  1531. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.mjs +0 -0
  1532. /package/dist/admin/{components → legacy/components}/EditAssetDialog/RemoveAssetDialog.js +0 -0
  1533. /package/dist/admin/{components → legacy/components}/EditAssetDialog/RemoveAssetDialog.mjs +0 -0
  1534. /package/dist/admin/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.js +0 -0
  1535. /package/dist/admin/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.mjs +0 -0
  1536. /package/dist/admin/{components → legacy/components}/EditFolderDialog/EditFolderDialog.js +0 -0
  1537. /package/dist/admin/{components → legacy/components}/EditFolderDialog/EditFolderDialog.mjs +0 -0
  1538. /package/dist/admin/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.js +0 -0
  1539. /package/dist/admin/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -0
  1540. /package/dist/admin/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.js +0 -0
  1541. /package/dist/admin/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.mjs +0 -0
  1542. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.js +0 -0
  1543. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.mjs +0 -0
  1544. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssets.js +0 -0
  1545. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssets.mjs +0 -0
  1546. /package/dist/admin/{components → legacy/components}/FilterList/FilterList.js +0 -0
  1547. /package/dist/admin/{components → legacy/components}/FilterList/FilterList.mjs +0 -0
  1548. /package/dist/admin/{components → legacy/components}/FilterList/FilterTag.js +0 -0
  1549. /package/dist/admin/{components → legacy/components}/FilterList/FilterTag.mjs +0 -0
  1550. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterPopover.js +0 -0
  1551. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterPopover.mjs +0 -0
  1552. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterValueInput.js +0 -0
  1553. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterValueInput.mjs +0 -0
  1554. /package/dist/admin/{components → legacy/components}/FilterPopover/utils/getFilterList.js +0 -0
  1555. /package/dist/admin/{components → legacy/components}/FilterPopover/utils/getFilterList.mjs +0 -0
  1556. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCard/FolderCard.js +0 -0
  1557. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCard/FolderCard.mjs +0 -0
  1558. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.js +0 -0
  1559. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.mjs +0 -0
  1560. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js +0 -0
  1561. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs +0 -0
  1562. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js +0 -0
  1563. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs +0 -0
  1564. /package/dist/admin/{components → legacy/components}/FolderCard/contexts/FolderCard.js +0 -0
  1565. /package/dist/admin/{components → legacy/components}/FolderCard/contexts/FolderCard.mjs +0 -0
  1566. /package/dist/admin/{components → legacy/components}/FolderGridList/FolderGridList.js +0 -0
  1567. /package/dist/admin/{components → legacy/components}/FolderGridList/FolderGridList.mjs +0 -0
  1568. /package/dist/admin/{components → legacy/components}/MediaLibraryDialog/MediaLibraryDialog.js +0 -0
  1569. /package/dist/admin/{components → legacy/components}/MediaLibraryDialog/MediaLibraryDialog.mjs +0 -0
  1570. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -0
  1571. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -0
  1572. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssets.js +0 -0
  1573. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssets.mjs +0 -0
  1574. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.js +0 -0
  1575. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.mjs +0 -0
  1576. /package/dist/admin/{components → legacy/components}/SelectTree/Option.js +0 -0
  1577. /package/dist/admin/{components → legacy/components}/SelectTree/Option.mjs +0 -0
  1578. /package/dist/admin/{components → legacy/components}/SelectTree/SelectTree.js +0 -0
  1579. /package/dist/admin/{components → legacy/components}/SelectTree/SelectTree.mjs +0 -0
  1580. /package/dist/admin/{components → legacy/components}/SelectTree/utils/flattenTree.js +0 -0
  1581. /package/dist/admin/{components → legacy/components}/SelectTree/utils/flattenTree.mjs +0 -0
  1582. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getOpenValues.js +0 -0
  1583. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getOpenValues.mjs +0 -0
  1584. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getValuesToClose.js +0 -0
  1585. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getValuesToClose.mjs +0 -0
  1586. /package/dist/admin/{components → legacy/components}/TableList/CellContent.js +0 -0
  1587. /package/dist/admin/{components → legacy/components}/TableList/CellContent.mjs +0 -0
  1588. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -0
  1589. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -0
  1590. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.js +0 -0
  1591. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -0
  1592. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +0 -0
  1593. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -0
  1594. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/UploadAssetDialog.js +0 -0
  1595. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/UploadAssetDialog.mjs +0 -0
  1596. /package/dist/admin/{components → legacy/components}/UploadProgress/UploadProgress.js +0 -0
  1597. /package/dist/admin/{components → legacy/components}/UploadProgress/UploadProgress.mjs +0 -0
  1598. /package/dist/admin/{hooks → legacy/hooks}/useAiAvailability.js +0 -0
  1599. /package/dist/admin/{hooks → legacy/hooks}/useAiAvailability.mjs +0 -0
  1600. /package/dist/admin/{hooks → legacy/hooks}/useCropImg.js +0 -0
  1601. /package/dist/admin/{hooks → legacy/hooks}/useCropImg.mjs +0 -0
  1602. /package/dist/admin/{hooks → legacy/hooks}/useModalQueryParams.js +0 -0
  1603. /package/dist/admin/{hooks → legacy/hooks}/useModalQueryParams.mjs +0 -0
  1604. /package/dist/admin/{hooks → legacy/hooks}/usePersistentState.js +0 -0
  1605. /package/dist/admin/{hooks → legacy/hooks}/usePersistentState.mjs +0 -0
  1606. /package/dist/admin/{hooks → legacy/hooks}/useSelectionState.js +0 -0
  1607. /package/dist/admin/{hooks → legacy/hooks}/useSelectionState.mjs +0 -0
  1608. /package/dist/admin/{hooks → legacy/hooks}/useSettings.js +0 -0
  1609. /package/dist/admin/{hooks → legacy/hooks}/useSettings.mjs +0 -0
  1610. /package/dist/admin/{hooks → legacy/hooks}/utils/renameKeys.js +0 -0
  1611. /package/dist/admin/{hooks → legacy/hooks}/utils/renameKeys.mjs +0 -0
  1612. /package/dist/admin/{pages → legacy/pages}/App/App.js +0 -0
  1613. /package/dist/admin/{pages → legacy/pages}/App/App.mjs +0 -0
  1614. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/actions.js +0 -0
  1615. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/actions.mjs +0 -0
  1616. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/init.js +0 -0
  1617. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/init.mjs +0 -0
  1618. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.js +0 -0
  1619. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.mjs +0 -0
  1620. /package/dist/admin/{pages → legacy/pages}/App/components/BulkActions.js +0 -0
  1621. /package/dist/admin/{pages → legacy/pages}/App/components/BulkActions.mjs +0 -0
  1622. /package/dist/admin/{pages → legacy/pages}/App/components/BulkDeleteButton.js +0 -0
  1623. /package/dist/admin/{pages → legacy/pages}/App/components/BulkDeleteButton.mjs +0 -0
  1624. /package/dist/admin/{pages → legacy/pages}/App/components/BulkMoveButton.js +0 -0
  1625. /package/dist/admin/{pages → legacy/pages}/App/components/BulkMoveButton.mjs +0 -0
  1626. /package/dist/admin/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.js +0 -0
  1627. /package/dist/admin/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.mjs +0 -0
  1628. /package/dist/admin/{pages → legacy/pages}/App/components/Filters.js +0 -0
  1629. /package/dist/admin/{pages → legacy/pages}/App/components/Filters.mjs +0 -0
  1630. /package/dist/admin/{pages → legacy/pages}/App/components/Header.js +0 -0
  1631. /package/dist/admin/{pages → legacy/pages}/App/components/Header.mjs +0 -0
  1632. /package/dist/admin/{utils → legacy/utils}/appendSearchParamsToUrl.js +0 -0
  1633. /package/dist/admin/{utils → legacy/utils}/appendSearchParamsToUrl.mjs +0 -0
  1634. /package/dist/admin/{utils → legacy/utils}/containsAssetFilter.js +0 -0
  1635. /package/dist/admin/{utils → legacy/utils}/containsAssetFilter.mjs +0 -0
  1636. /package/dist/admin/{utils → legacy/utils}/createAssetUrl.js +0 -0
  1637. /package/dist/admin/{utils → legacy/utils}/createAssetUrl.mjs +0 -0
  1638. /package/dist/admin/{utils → legacy/utils}/displayedFilters.js +0 -0
  1639. /package/dist/admin/{utils → legacy/utils}/displayedFilters.mjs +0 -0
  1640. /package/dist/admin/{utils → legacy/utils}/findRecursiveFolderByValue.js +0 -0
  1641. /package/dist/admin/{utils → legacy/utils}/findRecursiveFolderByValue.mjs +0 -0
  1642. /package/dist/admin/{utils → legacy/utils}/formatBytes.js +0 -0
  1643. /package/dist/admin/{utils → legacy/utils}/formatBytes.mjs +0 -0
  1644. /package/dist/admin/{utils → legacy/utils}/formatDuration.js +0 -0
  1645. /package/dist/admin/{utils → legacy/utils}/formatDuration.mjs +0 -0
  1646. /package/dist/admin/{utils → legacy/utils}/getAPIInnerErrors.js +0 -0
  1647. /package/dist/admin/{utils → legacy/utils}/getAPIInnerErrors.mjs +0 -0
  1648. /package/dist/admin/{utils → legacy/utils}/getAllowedFiles.js +0 -0
  1649. /package/dist/admin/{utils → legacy/utils}/getAllowedFiles.mjs +0 -0
  1650. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataCM.js +0 -0
  1651. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataCM.mjs +0 -0
  1652. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataML.js +0 -0
  1653. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataML.mjs +0 -0
  1654. /package/dist/admin/{utils → legacy/utils}/getFileExtension.js +0 -0
  1655. /package/dist/admin/{utils → legacy/utils}/getFileExtension.mjs +0 -0
  1656. /package/dist/admin/{utils → legacy/utils}/getFolderParents.js +0 -0
  1657. /package/dist/admin/{utils → legacy/utils}/getFolderParents.mjs +0 -0
  1658. /package/dist/admin/{utils → legacy/utils}/getFolderURL.js +0 -0
  1659. /package/dist/admin/{utils → legacy/utils}/getFolderURL.mjs +0 -0
  1660. /package/dist/admin/{utils → legacy/utils}/moveElement.js +0 -0
  1661. /package/dist/admin/{utils → legacy/utils}/moveElement.mjs +0 -0
  1662. /package/dist/admin/{utils → legacy/utils}/normalizeAPIError.js +0 -0
  1663. /package/dist/admin/{utils → legacy/utils}/normalizeAPIError.mjs +0 -0
  1664. /package/dist/admin/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.js +0 -0
  1665. /package/dist/admin/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.mjs +0 -0
  1666. /package/dist/admin/{utils → legacy/utils}/prefixPluginTranslations.js +0 -0
  1667. /package/dist/admin/{utils → legacy/utils}/prefixPluginTranslations.mjs +0 -0
  1668. /package/dist/admin/{utils → legacy/utils}/resolveFileMime.js +0 -0
  1669. /package/dist/admin/{utils → legacy/utils}/resolveFileMime.mjs +0 -0
  1670. /package/dist/admin/{utils → legacy/utils}/toSingularTypes.js +0 -0
  1671. /package/dist/admin/{utils → legacy/utils}/toSingularTypes.mjs +0 -0
  1672. /package/dist/admin/{utils → legacy/utils}/urlYupSchema.js +0 -0
  1673. /package/dist/admin/{utils → legacy/utils}/urlYupSchema.mjs +0 -0
  1674. /package/dist/admin/{future/pages → pages}/Assets/components/ActionsMenuContent.js +0 -0
  1675. /package/dist/admin/{future/pages → pages}/Assets/components/ActionsMenuContent.mjs +0 -0
  1676. /package/dist/admin/{future/pages → pages}/Assets/components/AssetActionsMenu.js +0 -0
  1677. /package/dist/admin/{future/pages → pages}/Assets/components/AssetActionsMenu.mjs +0 -0
  1678. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/AssetCropEditor.js +0 -0
  1679. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/AssetCropEditor.mjs +0 -0
  1680. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.js +0 -0
  1681. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.mjs +0 -0
  1682. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsSearchInput.js +0 -0
  1683. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsSearchInput.mjs +0 -0
  1684. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsTable.js +0 -0
  1685. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsTable.mjs +0 -0
  1686. /package/dist/admin/{future/pages → pages}/Assets/components/BulkMoveDialog.js +0 -0
  1687. /package/dist/admin/{future/pages → pages}/Assets/components/BulkMoveDialog.mjs +0 -0
  1688. /package/dist/admin/{future/pages → pages}/Assets/components/BusyOverlay.js +0 -0
  1689. /package/dist/admin/{future/pages → pages}/Assets/components/BusyOverlay.mjs +0 -0
  1690. /package/dist/admin/{future/pages → pages}/Assets/components/DateRangeCalendar.js +0 -0
  1691. /package/dist/admin/{future/pages → pages}/Assets/components/DateRangeCalendar.mjs +0 -0
  1692. /package/dist/admin/{future/pages → pages}/Assets/components/DeleteItemsDialog.js +0 -0
  1693. /package/dist/admin/{future/pages → pages}/Assets/components/DeleteItemsDialog.mjs +0 -0
  1694. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/buildDragSet.js +0 -0
  1695. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/buildDragSet.mjs +0 -0
  1696. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/computeValidDropTargets.js +0 -0
  1697. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/computeValidDropTargets.mjs +0 -0
  1698. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/dndIds.js +0 -0
  1699. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/dndIds.mjs +0 -0
  1700. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.js +0 -0
  1701. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.mjs +0 -0
  1702. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.js +0 -0
  1703. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.mjs +0 -0
  1704. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.js +0 -0
  1705. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.mjs +0 -0
  1706. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.js +0 -0
  1707. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.mjs +0 -0
  1708. /package/dist/admin/{future/pages → pages}/Assets/components/EmptyState.js +0 -0
  1709. /package/dist/admin/{future/pages → pages}/Assets/components/EmptyState.mjs +0 -0
  1710. /package/dist/admin/{future/pages → pages}/Assets/components/FilterBadges.js +0 -0
  1711. /package/dist/admin/{future/pages → pages}/Assets/components/FilterBadges.mjs +0 -0
  1712. /package/dist/admin/{future/pages → pages}/Assets/components/FilterMenu.js +0 -0
  1713. /package/dist/admin/{future/pages → pages}/Assets/components/FilterMenu.mjs +0 -0
  1714. /package/dist/admin/{future/pages → pages}/Assets/components/FolderActionsMenu.js +0 -0
  1715. /package/dist/admin/{future/pages → pages}/Assets/components/FolderActionsMenu.mjs +0 -0
  1716. /package/dist/admin/{future/pages → pages}/Assets/components/FolderFormDialog.js +0 -0
  1717. /package/dist/admin/{future/pages → pages}/Assets/components/FolderFormDialog.mjs +0 -0
  1718. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/FolderTree.js +0 -0
  1719. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/FolderTree.mjs +0 -0
  1720. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.js +0 -0
  1721. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.mjs +0 -0
  1722. /package/dist/admin/{future/pages → pages}/Assets/components/ImportFromUrlDialog.js +0 -0
  1723. /package/dist/admin/{future/pages → pages}/Assets/components/ImportFromUrlDialog.mjs +0 -0
  1724. /package/dist/admin/{future/pages → pages}/Assets/components/MainAreaContextMenu.js +0 -0
  1725. /package/dist/admin/{future/pages → pages}/Assets/components/MainAreaContextMenu.mjs +0 -0
  1726. /package/dist/admin/{future/pages → pages}/Assets/components/SortMenu.js +0 -0
  1727. /package/dist/admin/{future/pages → pages}/Assets/components/SortMenu.mjs +0 -0
  1728. /package/dist/admin/{future/pages → pages}/Assets/constants.js +0 -0
  1729. /package/dist/admin/{future/pages → pages}/Assets/constants.mjs +0 -0
  1730. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSearch.js +0 -0
  1731. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSearch.mjs +0 -0
  1732. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSelection.js +0 -0
  1733. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSelection.mjs +0 -0
  1734. /package/dist/admin/{future/pages → pages}/Assets/hooks/useBusyAssets.js +0 -0
  1735. /package/dist/admin/{future/pages → pages}/Assets/hooks/useBusyAssets.mjs +0 -0
  1736. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderInfo.js +0 -0
  1737. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderInfo.mjs +0 -0
  1738. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderNavigation.js +0 -0
  1739. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderNavigation.mjs +0 -0
  1740. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteAssets.js +0 -0
  1741. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteAssets.mjs +0 -0
  1742. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.js +0 -0
  1743. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.mjs +0 -0
  1744. /package/dist/admin/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.js +0 -0
  1745. /package/dist/admin/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.mjs +0 -0
  1746. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListFilters.js +0 -0
  1747. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListFilters.mjs +0 -0
  1748. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListScrollRestoration.js +0 -0
  1749. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListScrollRestoration.mjs +0 -0
  1750. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListSort.js +0 -0
  1751. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListSort.mjs +0 -0
  1752. /package/dist/admin/{future/pages → pages}/Assets/utils/buildAssetFilters.js +0 -0
  1753. /package/dist/admin/{future/pages → pages}/Assets/utils/buildAssetFilters.mjs +0 -0
  1754. /package/dist/admin/{future/pages → pages}/Assets/utils/listQueryKey.js +0 -0
  1755. /package/dist/admin/{future/pages → pages}/Assets/utils/listQueryKey.mjs +0 -0
  1756. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeMixedList.js +0 -0
  1757. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeMixedList.mjs +0 -0
  1758. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeUploadedAssets.js +0 -0
  1759. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeUploadedAssets.mjs +0 -0
  1760. /package/dist/admin/{future/pages → pages}/Assets/utils/renderedKeys.js +0 -0
  1761. /package/dist/admin/{future/pages → pages}/Assets/utils/renderedKeys.mjs +0 -0
  1762. /package/dist/admin/{future/pages → pages}/Assets/utils/selection.js +0 -0
  1763. /package/dist/admin/{future/pages → pages}/Assets/utils/selection.mjs +0 -0
  1764. /package/dist/admin/{future/services → services}/assets.js +0 -0
  1765. /package/dist/admin/{future/services → services}/assets.mjs +0 -0
  1766. /package/dist/admin/{future/services → services}/folders.js +0 -0
  1767. /package/dist/admin/{future/services → services}/folders.mjs +0 -0
  1768. /package/dist/admin/{future/services → services}/settings.js +0 -0
  1769. /package/dist/admin/{future/services → services}/settings.mjs +0 -0
  1770. /package/dist/admin/{future/services → services}/uploadFileViaXHR.js +0 -0
  1771. /package/dist/admin/{future/services → services}/uploadFileViaXHR.mjs +0 -0
  1772. /package/dist/admin/src/{pages/App/MediaLibrary.d.ts → App.d.ts} +0 -0
  1773. /package/dist/admin/src/{future/components → components}/Drawer.d.ts +0 -0
  1774. /package/dist/admin/src/{future/components → components}/TruncatedText.d.ts +0 -0
  1775. /package/dist/admin/src/{future/components → components}/UploadProgressDialog.d.ts +0 -0
  1776. /package/dist/admin/src/{future/hooks → hooks}/useAIMetadataEnabled.d.ts +0 -0
  1777. /package/dist/admin/src/{future/hooks → hooks}/useApiErrorMessage.d.ts +0 -0
  1778. /package/dist/admin/src/{components → legacy/components}/AssetCard/AssetCardBase.d.ts +0 -0
  1779. /package/dist/admin/src/{components → legacy/components}/AssetCard/AudioAssetCard.d.ts +0 -0
  1780. /package/dist/admin/src/{components → legacy/components}/AssetCard/AudioPreview.d.ts +0 -0
  1781. /package/dist/admin/src/{components → legacy/components}/AssetCard/DocAssetCard.d.ts +0 -0
  1782. /package/dist/admin/src/{components → legacy/components}/AssetCard/ImageAssetCard.d.ts +0 -0
  1783. /package/dist/admin/src/{components → legacy/components}/AssetCard/VideoAssetCard.d.ts +0 -0
  1784. /package/dist/admin/src/{components → legacy/components}/AssetCard/VideoPreview.d.ts +0 -0
  1785. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/Filters.d.ts +0 -0
  1786. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.d.ts +0 -0
  1787. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.d.ts +0 -0
  1788. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.d.ts +0 -0
  1789. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.d.ts +0 -0
  1790. /package/dist/admin/src/{components → legacy/components}/AssetDialog/DialogFooter.d.ts +0 -0
  1791. /package/dist/admin/src/{components → legacy/components}/AssetGridList/Draggable.d.ts +0 -0
  1792. /package/dist/admin/src/{components → legacy/components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
  1793. /package/dist/admin/src/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.d.ts +0 -0
  1794. /package/dist/admin/src/{components → legacy/components}/ContextInfo/ContextInfo.d.ts +0 -0
  1795. /package/dist/admin/src/{components → legacy/components}/CopyLinkButton/CopyLinkButton.d.ts +0 -0
  1796. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/DialogHeader.d.ts +0 -0
  1797. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.d.ts +0 -0
  1798. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.d.ts +0 -0
  1799. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +0 -0
  1800. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.d.ts +0 -0
  1801. /package/dist/admin/src/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.d.ts +0 -0
  1802. /package/dist/admin/src/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.d.ts +0 -0
  1803. /package/dist/admin/src/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.d.ts +0 -0
  1804. /package/dist/admin/src/{components → legacy/components}/EmptyAssets/EmptyAssets.d.ts +0 -0
  1805. /package/dist/admin/src/{components → legacy/components}/FilterList/FilterList.d.ts +0 -0
  1806. /package/dist/admin/src/{components → legacy/components}/FilterList/FilterTag.d.ts +0 -0
  1807. /package/dist/admin/src/{components → legacy/components}/FilterPopover/FilterPopover.d.ts +0 -0
  1808. /package/dist/admin/src/{components → legacy/components}/FilterPopover/FilterValueInput.d.ts +0 -0
  1809. /package/dist/admin/src/{components → legacy/components}/FilterPopover/utils/getFilterList.d.ts +0 -0
  1810. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCard/FolderCard.d.ts +0 -0
  1811. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.d.ts +0 -0
  1812. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.d.ts +0 -0
  1813. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.d.ts +0 -0
  1814. /package/dist/admin/src/{components → legacy/components}/FolderCard/contexts/FolderCard.d.ts +0 -0
  1815. /package/dist/admin/src/{components → legacy/components}/FolderGridList/FolderGridList.d.ts +0 -0
  1816. /package/dist/admin/src/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.d.ts +0 -0
  1817. /package/dist/admin/src/{components → legacy/components}/SelectTree/SelectTree.d.ts +0 -0
  1818. /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/flattenTree.d.ts +0 -0
  1819. /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/getOpenValues.d.ts +0 -0
  1820. /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/getValuesToClose.d.ts +0 -0
  1821. /package/dist/admin/src/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromComputerForm.d.ts +0 -0
  1822. /package/dist/admin/src/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.d.ts +0 -0
  1823. /package/dist/admin/src/{hooks → legacy/hooks}/useAiAvailability.d.ts +0 -0
  1824. /package/dist/admin/src/{hooks → legacy/hooks}/useCropImg.d.ts +0 -0
  1825. /package/dist/admin/src/{hooks → legacy/hooks}/usePersistentState.d.ts +0 -0
  1826. /package/dist/admin/src/{hooks → legacy/hooks}/useSelectionState.d.ts +0 -0
  1827. /package/dist/admin/src/{hooks → legacy/hooks}/useSettings.d.ts +0 -0
  1828. /package/dist/admin/src/{hooks → legacy/hooks}/utils/renameKeys.d.ts +0 -0
  1829. /package/dist/admin/src/{pages → legacy/pages}/App/App.d.ts +0 -0
  1830. /package/dist/admin/src/{pages → legacy/pages}/App/ConfigureTheView/state/actionTypes.d.ts +0 -0
  1831. /package/dist/admin/src/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.d.ts +0 -0
  1832. /package/dist/admin/src/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.d.ts +0 -0
  1833. /package/dist/admin/src/{pages → legacy/pages}/App/components/Filters.d.ts +0 -0
  1834. /package/dist/admin/src/{utils → legacy/utils}/appendSearchParamsToUrl.d.ts +0 -0
  1835. /package/dist/admin/src/{utils → legacy/utils}/displayedFilters.d.ts +0 -0
  1836. /package/dist/admin/src/{utils → legacy/utils}/formatBytes.d.ts +0 -0
  1837. /package/dist/admin/src/{utils → legacy/utils}/formatDuration.d.ts +0 -0
  1838. /package/dist/admin/src/{utils → legacy/utils}/getAPIInnerErrors.d.ts +0 -0
  1839. /package/dist/admin/src/{utils → legacy/utils}/getFileExtension.d.ts +0 -0
  1840. /package/dist/admin/src/{utils → legacy/utils}/getTrad.d.ts +0 -0
  1841. /package/dist/admin/src/{utils → legacy/utils}/moveElement.d.ts +0 -0
  1842. /package/dist/admin/src/{utils → legacy/utils}/normalizeAPIError.d.ts +0 -0
  1843. /package/dist/admin/src/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.d.ts +0 -0
  1844. /package/dist/admin/src/{utils → legacy/utils}/prefixPluginTranslations.d.ts +0 -0
  1845. /package/dist/admin/src/{utils → legacy/utils}/resolveFileMime.d.ts +0 -0
  1846. /package/dist/admin/src/{utils → legacy/utils}/toSingularTypes.d.ts +0 -0
  1847. /package/dist/admin/src/{utils → legacy/utils}/urlYupSchema.d.ts +0 -0
  1848. /package/dist/admin/src/{utils → legacy/utils}/urlsToAssets.d.ts +0 -0
  1849. /package/dist/admin/src/{future/pages → pages}/Assets/AssetsPage.d.ts +0 -0
  1850. /package/dist/admin/src/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.d.ts +0 -0
  1851. /package/dist/admin/src/{future/pages → pages}/Assets/components/AssetsSearchInput.d.ts +0 -0
  1852. /package/dist/admin/src/{future/pages → pages}/Assets/components/BulkMoveDialog.d.ts +0 -0
  1853. /package/dist/admin/src/{future/pages → pages}/Assets/components/BusyOverlay.d.ts +0 -0
  1854. /package/dist/admin/src/{future/pages → pages}/Assets/components/DateRangeCalendar.d.ts +0 -0
  1855. /package/dist/admin/src/{future/pages → pages}/Assets/components/DeleteItemsDialog.d.ts +0 -0
  1856. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/AssetsDndProvider.d.ts +0 -0
  1857. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/DragOverlayChip.d.ts +0 -0
  1858. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/buildDragSet.d.ts +0 -0
  1859. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/dndIds.d.ts +0 -0
  1860. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.d.ts +0 -0
  1861. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.d.ts +0 -0
  1862. /package/dist/admin/src/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.d.ts +0 -0
  1863. /package/dist/admin/src/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.d.ts +0 -0
  1864. /package/dist/admin/src/{future/pages → pages}/Assets/components/EmptyState.d.ts +0 -0
  1865. /package/dist/admin/src/{future/pages → pages}/Assets/components/FilterBadges.d.ts +0 -0
  1866. /package/dist/admin/src/{future/pages → pages}/Assets/components/FilterMenu.d.ts +0 -0
  1867. /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderFormDialog.d.ts +0 -0
  1868. /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderTree/FolderTree.d.ts +0 -0
  1869. /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.d.ts +0 -0
  1870. /package/dist/admin/src/{future/pages → pages}/Assets/components/ImportFromUrlDialog.d.ts +0 -0
  1871. /package/dist/admin/src/{future/pages → pages}/Assets/components/MainAreaContextMenu.d.ts +0 -0
  1872. /package/dist/admin/src/{future/pages → pages}/Assets/components/SortMenu.d.ts +0 -0
  1873. /package/dist/admin/src/{future/pages → pages}/Assets/constants.d.ts +0 -0
  1874. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useAssetSearch.d.ts +0 -0
  1875. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useAssetSelection.d.ts +0 -0
  1876. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useBusyAssets.d.ts +0 -0
  1877. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useFolderInfo.d.ts +0 -0
  1878. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.d.ts +0 -0
  1879. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.d.ts +0 -0
  1880. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListFilters.d.ts +0 -0
  1881. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListScrollRestoration.d.ts +0 -0
  1882. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListSort.d.ts +0 -0
  1883. /package/dist/admin/src/{future/pages → pages}/Assets/utils/buildAssetFilters.d.ts +0 -0
  1884. /package/dist/admin/src/{future/pages → pages}/Assets/utils/listQueryKey.d.ts +0 -0
  1885. /package/dist/admin/src/{future/pages → pages}/Assets/utils/selection.d.ts +0 -0
  1886. /package/dist/admin/src/{future/store → store}/hooks.d.ts +0 -0
  1887. /package/dist/admin/src/{future/types → types}/dnd.d.ts +0 -0
  1888. /package/dist/admin/src/{future/utils → utils}/buildBulkMovePayload.d.ts +0 -0
  1889. /package/dist/admin/src/{future/utils → utils}/buildDragSetFromSelection.d.ts +0 -0
  1890. /package/dist/admin/src/{future/utils → utils}/createRafBatcher.d.ts +0 -0
  1891. /package/dist/admin/src/{future/utils → utils}/files.d.ts +0 -0
  1892. /package/dist/admin/src/{future/utils → utils}/formatMoveSuccessMessage.d.ts +0 -0
  1893. /package/dist/admin/src/{future/utils → utils}/getApiErrorMessage.d.ts +0 -0
  1894. /package/dist/admin/src/{future/utils → utils}/getAssetIcon.d.ts +0 -0
  1895. /package/dist/admin/src/{future/utils → utils}/getRelationId.d.ts +0 -0
  1896. /package/dist/admin/src/{future/utils → utils}/isEventFromWithin.d.ts +0 -0
  1897. /package/dist/admin/src/{future/utils → utils}/itemSource.d.ts +0 -0
  1898. /package/dist/admin/src/{future/utils → utils}/searchQueryParam.d.ts +0 -0
  1899. /package/dist/admin/src/{future/utils → utils}/translations.d.ts +0 -0
  1900. /package/dist/admin/{future/store → store}/hooks.js +0 -0
  1901. /package/dist/admin/{future/store → store}/hooks.mjs +0 -0
  1902. /package/dist/admin/{future/utils → utils}/buildBulkMovePayload.js +0 -0
  1903. /package/dist/admin/{future/utils → utils}/buildBulkMovePayload.mjs +0 -0
  1904. /package/dist/admin/{future/utils → utils}/buildDragSetFromSelection.js +0 -0
  1905. /package/dist/admin/{future/utils → utils}/buildDragSetFromSelection.mjs +0 -0
  1906. /package/dist/admin/{future/utils → utils}/canDropItemOnFolder.js +0 -0
  1907. /package/dist/admin/{future/utils → utils}/canDropItemOnFolder.mjs +0 -0
  1908. /package/dist/admin/{future/utils → utils}/createRafBatcher.js +0 -0
  1909. /package/dist/admin/{future/utils → utils}/createRafBatcher.mjs +0 -0
  1910. /package/dist/admin/{future/utils → utils}/files.js +0 -0
  1911. /package/dist/admin/{future/utils → utils}/files.mjs +0 -0
  1912. /package/dist/admin/{future/utils → utils}/flattenFolderStructure.js +0 -0
  1913. /package/dist/admin/{future/utils → utils}/flattenFolderStructure.mjs +0 -0
  1914. /package/dist/admin/{future/utils → utils}/formatMoveSuccessMessage.js +0 -0
  1915. /package/dist/admin/{future/utils → utils}/formatMoveSuccessMessage.mjs +0 -0
  1916. /package/dist/admin/{future/utils → utils}/getApiErrorMessage.js +0 -0
  1917. /package/dist/admin/{future/utils → utils}/getApiErrorMessage.mjs +0 -0
  1918. /package/dist/admin/{future/utils → utils}/getFolderLabel.js +0 -0
  1919. /package/dist/admin/{future/utils → utils}/getFolderLabel.mjs +0 -0
  1920. /package/dist/admin/{future/utils → utils}/getRelationId.js +0 -0
  1921. /package/dist/admin/{future/utils → utils}/getRelationId.mjs +0 -0
  1922. /package/dist/admin/{future/utils → utils}/isEventFromWithin.js +0 -0
  1923. /package/dist/admin/{future/utils → utils}/isEventFromWithin.mjs +0 -0
  1924. /package/dist/admin/{future/utils → utils}/itemLocations.js +0 -0
  1925. /package/dist/admin/{future/utils → utils}/itemLocations.mjs +0 -0
  1926. /package/dist/admin/{future/utils → utils}/itemSource.js +0 -0
  1927. /package/dist/admin/{future/utils → utils}/itemSource.mjs +0 -0
  1928. /package/dist/admin/{future/utils → utils}/searchQueryParam.js +0 -0
  1929. /package/dist/admin/{future/utils → utils}/searchQueryParam.mjs +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../admin/src/future/pages/Assets/constants.ts"],"sourcesContent":["import { getTranslationKey } from '../../utils/translations';\n\nexport const localStorageKeys = {\n view: `STRAPI_UPLOAD_LIBRARY_VIEW`,\n};\n\nexport const viewOptions = {\n GRID: 0,\n TABLE: 1,\n};\n\nconst ASSET_DETAILS_TRIGGER_ATTRIBUTE = 'data-asset-details-trigger';\n\n/**\n * Spread onto grid cards and table rows, whose click opens or switches the\n * asset details drawer. The drawer's outside-click dismissal skips presses\n * landing on one of these, so switching assets doesn't close-then-reopen it.\n */\nexport const ASSET_DETAILS_TRIGGER_PROPS = { [ASSET_DETAILS_TRIGGER_ATTRIBUTE]: '' };\n\nconst ASSET_ITEM_CONTROL_ATTRIBUTE = 'data-asset-item-control';\n\n/**\n * Spread onto the controls inside an asset card or row that act on the item\n * rather than opening it — its selection checkbox and its actions menu. They\n * stop the card's own click, so no details switch follows them.\n */\nexport const ASSET_ITEM_CONTROL_PROPS = { [ASSET_ITEM_CONTROL_ATTRIBUTE]: '' };\n\n/** Matches an element carrying {@link ASSET_ITEM_CONTROL_PROPS}. */\nexport const ASSET_ITEM_CONTROL_SELECTOR = `[${ASSET_ITEM_CONTROL_ATTRIBUTE}]`;\n\n/** Matches an element carrying {@link ASSET_DETAILS_TRIGGER_PROPS}. */\nexport const ASSET_DETAILS_TRIGGER_SELECTOR = `[${ASSET_DETAILS_TRIGGER_ATTRIBUTE}]`;\n\ninterface TableHeader {\n name: string;\n label: { id: string; defaultMessage: string };\n isVisuallyHidden?: boolean;\n}\n\nexport const TABLE_HEADERS: TableHeader[] = [\n {\n name: 'name',\n label: { id: getTranslationKey('list.table.header.name'), defaultMessage: 'name' },\n },\n {\n name: 'createdAt',\n label: {\n id: getTranslationKey('list.table.header.creationDate'),\n defaultMessage: 'creation date',\n },\n },\n {\n name: 'updatedAt',\n label: {\n id: getTranslationKey('list.table.header.lastModified'),\n defaultMessage: 'last modified',\n },\n },\n {\n name: 'size',\n label: { id: getTranslationKey('list.table.header.size'), defaultMessage: 'size' },\n },\n {\n name: 'actions',\n label: { id: getTranslationKey('list.table.header.actions'), defaultMessage: 'actions' },\n isVisuallyHidden: true,\n },\n];\n"],"names":["localStorageKeys","view","viewOptions","GRID","TABLE","ASSET_DETAILS_TRIGGER_ATTRIBUTE","ASSET_DETAILS_TRIGGER_PROPS","ASSET_ITEM_CONTROL_ATTRIBUTE","ASSET_ITEM_CONTROL_PROPS","ASSET_ITEM_CONTROL_SELECTOR","ASSET_DETAILS_TRIGGER_SELECTOR","TABLE_HEADERS","name","label","id","getTranslationKey","defaultMessage","isVisuallyHidden"],"mappings":";;;;MAEaA,gBAAAA,GAAmB;IAC9BC,IAAAA,EAAM,CAAC,0BAA0B;AACnC;MAEaC,WAAAA,GAAc;IACzBC,IAAAA,EAAM,CAAA;IACNC,KAAAA,EAAO;AACT;AAEA,MAAMC,+BAAAA,GAAkC,4BAAA;AAExC;;;;UAKaC,2BAAAA,GAA8B;AAAE,IAAA,CAACD,kCAAkC;AAAG;AAEnF,MAAME,4BAAAA,GAA+B,yBAAA;AAErC;;;;UAKaC,wBAAAA,GAA2B;AAAE,IAAA,CAACD,+BAA+B;AAAG;AAE7E,qEACO,MAAME,2BAAAA,GAA8B,CAAC,CAAC,EAAEF,4BAAAA,CAA6B,CAAC;AAE7E,wEACO,MAAMG,8BAAAA,GAAiC,CAAC,CAAC,EAAEL,+BAAAA,CAAgC,CAAC;MAQtEM,aAAAA,GAA+B;AAC1C,IAAA;QACEC,IAAAA,EAAM,MAAA;QACNC,KAAAA,EAAO;AAAEC,YAAAA,EAAAA,EAAIC,8BAAAA,CAAkB,wBAAA,CAAA;YAA2BC,cAAAA,EAAgB;AAAO;AACnF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,WAAA;QACNC,KAAAA,EAAO;AACLC,YAAAA,EAAAA,EAAIC,8BAAAA,CAAkB,gCAAA,CAAA;YACtBC,cAAAA,EAAgB;AAClB;AACF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,WAAA;QACNC,KAAAA,EAAO;AACLC,YAAAA,EAAAA,EAAIC,8BAAAA,CAAkB,gCAAA,CAAA;YACtBC,cAAAA,EAAgB;AAClB;AACF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,MAAA;QACNC,KAAAA,EAAO;AAAEC,YAAAA,EAAAA,EAAIC,8BAAAA,CAAkB,wBAAA,CAAA;YAA2BC,cAAAA,EAAgB;AAAO;AACnF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,SAAA;QACNC,KAAAA,EAAO;AAAEC,YAAAA,EAAAA,EAAIC,8BAAAA,CAAkB,2BAAA,CAAA;YAA8BC,cAAAA,EAAgB;AAAU,SAAA;QACvFC,gBAAAA,EAAkB;AACpB;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../../../admin/src/future/pages/Assets/constants.ts"],"sourcesContent":["import { getTranslationKey } from '../../utils/translations';\n\nexport const localStorageKeys = {\n view: `STRAPI_UPLOAD_LIBRARY_VIEW`,\n};\n\nexport const viewOptions = {\n GRID: 0,\n TABLE: 1,\n};\n\nconst ASSET_DETAILS_TRIGGER_ATTRIBUTE = 'data-asset-details-trigger';\n\n/**\n * Spread onto grid cards and table rows, whose click opens or switches the\n * asset details drawer. The drawer's outside-click dismissal skips presses\n * landing on one of these, so switching assets doesn't close-then-reopen it.\n */\nexport const ASSET_DETAILS_TRIGGER_PROPS = { [ASSET_DETAILS_TRIGGER_ATTRIBUTE]: '' };\n\nconst ASSET_ITEM_CONTROL_ATTRIBUTE = 'data-asset-item-control';\n\n/**\n * Spread onto the controls inside an asset card or row that act on the item\n * rather than opening it — its selection checkbox and its actions menu. They\n * stop the card's own click, so no details switch follows them.\n */\nexport const ASSET_ITEM_CONTROL_PROPS = { [ASSET_ITEM_CONTROL_ATTRIBUTE]: '' };\n\n/** Matches an element carrying {@link ASSET_ITEM_CONTROL_PROPS}. */\nexport const ASSET_ITEM_CONTROL_SELECTOR = `[${ASSET_ITEM_CONTROL_ATTRIBUTE}]`;\n\n/** Matches an element carrying {@link ASSET_DETAILS_TRIGGER_PROPS}. */\nexport const ASSET_DETAILS_TRIGGER_SELECTOR = `[${ASSET_DETAILS_TRIGGER_ATTRIBUTE}]`;\n\ninterface TableHeader {\n name: string;\n label: { id: string; defaultMessage: string };\n isVisuallyHidden?: boolean;\n}\n\nexport const TABLE_HEADERS: TableHeader[] = [\n {\n name: 'name',\n label: { id: getTranslationKey('list.table.header.name'), defaultMessage: 'name' },\n },\n {\n name: 'createdAt',\n label: {\n id: getTranslationKey('list.table.header.creationDate'),\n defaultMessage: 'creation date',\n },\n },\n {\n name: 'updatedAt',\n label: {\n id: getTranslationKey('list.table.header.lastModified'),\n defaultMessage: 'last modified',\n },\n },\n {\n name: 'size',\n label: { id: getTranslationKey('list.table.header.size'), defaultMessage: 'size' },\n },\n {\n name: 'actions',\n label: { id: getTranslationKey('list.table.header.actions'), defaultMessage: 'actions' },\n isVisuallyHidden: true,\n },\n];\n"],"names":["localStorageKeys","view","viewOptions","GRID","TABLE","ASSET_DETAILS_TRIGGER_ATTRIBUTE","ASSET_DETAILS_TRIGGER_PROPS","ASSET_ITEM_CONTROL_ATTRIBUTE","ASSET_ITEM_CONTROL_PROPS","ASSET_ITEM_CONTROL_SELECTOR","ASSET_DETAILS_TRIGGER_SELECTOR","TABLE_HEADERS","name","label","id","getTranslationKey","defaultMessage","isVisuallyHidden"],"mappings":";;MAEaA,gBAAAA,GAAmB;IAC9BC,IAAAA,EAAM,CAAC,0BAA0B;AACnC;MAEaC,WAAAA,GAAc;IACzBC,IAAAA,EAAM,CAAA;IACNC,KAAAA,EAAO;AACT;AAEA,MAAMC,+BAAAA,GAAkC,4BAAA;AAExC;;;;UAKaC,2BAAAA,GAA8B;AAAE,IAAA,CAACD,kCAAkC;AAAG;AAEnF,MAAME,4BAAAA,GAA+B,yBAAA;AAErC;;;;UAKaC,wBAAAA,GAA2B;AAAE,IAAA,CAACD,+BAA+B;AAAG;AAE7E,qEACO,MAAME,2BAAAA,GAA8B,CAAC,CAAC,EAAEF,4BAAAA,CAA6B,CAAC;AAE7E,wEACO,MAAMG,8BAAAA,GAAiC,CAAC,CAAC,EAAEL,+BAAAA,CAAgC,CAAC;MAQtEM,aAAAA,GAA+B;AAC1C,IAAA;QACEC,IAAAA,EAAM,MAAA;QACNC,KAAAA,EAAO;AAAEC,YAAAA,EAAAA,EAAIC,iBAAAA,CAAkB,wBAAA,CAAA;YAA2BC,cAAAA,EAAgB;AAAO;AACnF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,WAAA;QACNC,KAAAA,EAAO;AACLC,YAAAA,EAAAA,EAAIC,iBAAAA,CAAkB,gCAAA,CAAA;YACtBC,cAAAA,EAAgB;AAClB;AACF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,WAAA;QACNC,KAAAA,EAAO;AACLC,YAAAA,EAAAA,EAAIC,iBAAAA,CAAkB,gCAAA,CAAA;YACtBC,cAAAA,EAAgB;AAClB;AACF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,MAAA;QACNC,KAAAA,EAAO;AAAEC,YAAAA,EAAAA,EAAIC,iBAAAA,CAAkB,wBAAA,CAAA;YAA2BC,cAAAA,EAAgB;AAAO;AACnF,KAAA;AACA,IAAA;QACEJ,IAAAA,EAAM,SAAA;QACNC,KAAAA,EAAO;AAAEC,YAAAA,EAAAA,EAAIC,iBAAAA,CAAkB,2BAAA,CAAA;YAA8BC,cAAAA,EAAgB;AAAU,SAAA;QACvFC,gBAAAA,EAAkB;AACpB;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAssetSearch.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useAssetSearch.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\n\nimport { encodeSearchQuery } from '../../../utils/searchQueryParam';\n\n/**\n * Reads and writes the global asset search term held in `?_q=`.\n *\n * Debouncing is the input component's job (see `AssetsSearchInput`) — this hook\n * is a thin URL accessor so every consumer reads the same source of truth.\n */\nexport const useAssetSearch = () => {\n const [{ query }, setQuery] = useQueryParams<{ _q?: string }>();\n\n const searchQuery = query?._q ?? '';\n\n const setSearchQuery = useCallback(\n (value: string) => {\n if (value) {\n setQuery({ _q: encodeSearchQuery(value) }, 'push', true);\n } else {\n setQuery({ _q: '' }, 'remove', true);\n }\n },\n [setQuery]\n );\n\n const clearSearch = useCallback(() => setSearchQuery(''), [setSearchQuery]);\n\n return {\n searchQuery,\n isSearching: searchQuery !== '',\n setSearchQuery,\n clearSearch,\n };\n};\n"],"names":["useAssetSearch","query","setQuery","useQueryParams","searchQuery","_q","setSearchQuery","useCallback","value","encodeSearchQuery","clearSearch","isSearching"],"mappings":";;;;;;AAMA;;;;;UAMaA,cAAAA,GAAiB,IAAA;AAC5B,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,0BAAAA,EAAAA;IAE9B,MAAMC,WAAAA,GAAcH,OAAOI,EAAAA,IAAM,EAAA;IAEjC,MAAMC,cAAAA,GAAiBC,kBACrB,CAACC,KAAAA,GAAAA;AACC,QAAA,IAAIA,KAAAA,EAAO;YACTN,QAAAA,CAAS;AAAEG,gBAAAA,EAAAA,EAAII,kCAAAA,CAAkBD,KAAAA;AAAO,aAAA,EAAG,MAAA,EAAQ,IAAA,CAAA;QACrD,CAAA,MAAO;YACLN,QAAAA,CAAS;gBAAEG,EAAAA,EAAI;AAAG,aAAA,EAAG,QAAA,EAAU,IAAA,CAAA;AACjC,QAAA;IACF,CAAA,EACA;AAACH,QAAAA;AAAS,KAAA,CAAA;AAGZ,IAAA,MAAMQ,WAAAA,GAAcH,iBAAAA,CAAY,IAAMD,cAAAA,CAAe,EAAA,CAAA,EAAK;AAACA,QAAAA;AAAe,KAAA,CAAA;IAE1E,OAAO;AACLF,QAAAA,WAAAA;AACAO,QAAAA,WAAAA,EAAaP,WAAAA,KAAgB,EAAA;AAC7BE,QAAAA,cAAAA;AACAI,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAssetSearch.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useAssetSearch.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\n\nimport { encodeSearchQuery } from '../../../utils/searchQueryParam';\n\n/**\n * Reads and writes the global asset search term held in `?_q=`.\n *\n * Debouncing is the input component's job (see `AssetsSearchInput`) — this hook\n * is a thin URL accessor so every consumer reads the same source of truth.\n */\nexport const useAssetSearch = () => {\n const [{ query }, setQuery] = useQueryParams<{ _q?: string }>();\n\n const searchQuery = query?._q ?? '';\n\n const setSearchQuery = useCallback(\n (value: string) => {\n if (value) {\n setQuery({ _q: encodeSearchQuery(value) }, 'push', true);\n } else {\n setQuery({ _q: '' }, 'remove', true);\n }\n },\n [setQuery]\n );\n\n const clearSearch = useCallback(() => setSearchQuery(''), [setSearchQuery]);\n\n return {\n searchQuery,\n isSearching: searchQuery !== '',\n setSearchQuery,\n clearSearch,\n };\n};\n"],"names":["useAssetSearch","query","setQuery","useQueryParams","searchQuery","_q","setSearchQuery","useCallback","value","encodeSearchQuery","clearSearch","isSearching"],"mappings":";;;;AAMA;;;;;UAMaA,cAAAA,GAAiB,IAAA;AAC5B,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,cAAAA,EAAAA;IAE9B,MAAMC,WAAAA,GAAcH,OAAOI,EAAAA,IAAM,EAAA;IAEjC,MAAMC,cAAAA,GAAiBC,YACrB,CAACC,KAAAA,GAAAA;AACC,QAAA,IAAIA,KAAAA,EAAO;YACTN,QAAAA,CAAS;AAAEG,gBAAAA,EAAAA,EAAII,iBAAAA,CAAkBD,KAAAA;AAAO,aAAA,EAAG,MAAA,EAAQ,IAAA,CAAA;QACrD,CAAA,MAAO;YACLN,QAAAA,CAAS;gBAAEG,EAAAA,EAAI;AAAG,aAAA,EAAG,QAAA,EAAU,IAAA,CAAA;AACjC,QAAA;IACF,CAAA,EACA;AAACH,QAAAA;AAAS,KAAA,CAAA;AAGZ,IAAA,MAAMQ,WAAAA,GAAcH,WAAAA,CAAY,IAAMD,cAAAA,CAAe,EAAA,CAAA,EAAK;AAACA,QAAAA;AAAe,KAAA,CAAA;IAE1E,OAAO;AACLF,QAAAA,WAAAA;AACAO,QAAAA,WAAAA,EAAaP,WAAAA,KAAgB,EAAA;AAC7BE,QAAAA,cAAAA;AACAI,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAssetSelection.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useAssetSelection.ts"],"sourcesContent":["import {\n createContext,\n createElement,\n useCallback,\n useContext,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\n\nimport {\n clearSelection,\n createEmptySelection,\n deselect as deselectState,\n getIdsOfKind,\n selectAll as selectAllState,\n selectRange as selectRangeState,\n toggleSelection,\n type ItemKey,\n type SelectionState,\n} from '../utils/selection';\n\n/**\n * Ephemeral, view-state-only multi-select for the future Media Library. Selection\n * is page-scoped and reset on folder navigation or sort/filter changes (the\n * table/grid toggle keeps it — same list, different presentation).\n *\n * The actual computation lives in `../utils/selection.ts` (pure + unit-tested);\n * this hook is a thin React wrapper. Assets and folders share one mechanism —\n * items are tracked as namespaced keys (`asset:1` / `folder:1`) so toggle, range\n * and select-all behave the same for both. Range / select-all receive the\n * ordered key array from the caller (the view owns the rendered order), keeping\n * the context data-source-agnostic.\n */\nexport interface AssetSelection {\n /** Every selected item key (assets and folders), render-order agnostic. */\n selectedKeys: Set<ItemKey>;\n /** Selected asset ids, derived from {@link selectedKeys}. */\n selectedIds: Set<number>;\n /** Selected folder ids, derived from {@link selectedKeys}. */\n selectedFolderIds: Set<number>;\n anchorKey: ItemKey | null;\n isSelected: (key: ItemKey) => boolean;\n /** Additive toggle (Cmd/Ctrl+click, item checkbox). */\n toggle: (key: ItemKey) => void;\n /** Shift+click — selects the contiguous range from the anchor to the target. */\n selectRange: (orderedKeys: ItemKey[], targetKey: ItemKey) => void;\n /** Header checkbox — selects every rendered item (folders and assets). */\n selectAll: (orderedKeys: ItemKey[]) => void;\n /** Row-level \"...\" menu — drops one key when its item leaves the list (move, delete). */\n deselect: (key: ItemKey) => void;\n /** Close button / folder navigation / list-identity changes. */\n clear: () => void;\n}\n\nconst AssetSelectionContext = createContext<AssetSelection | null>(null);\n\ninterface AssetSelectionProviderProps {\n children: ReactNode;\n /**\n * When true, selection is inert: every mutator is a no-op and nothing ever\n * reads as selected. Every bulk action is gated on `assets.update`, so a user\n * without it has nothing to select for — the views also hide the checkboxes,\n * and this makes the remaining paths (click-to-select, Space key) do nothing.\n */\n disabled?: boolean;\n}\n\nexport const AssetSelectionProvider = ({\n children,\n disabled = false,\n}: AssetSelectionProviderProps) => {\n const [state, setState] = useState<SelectionState>(createEmptySelection);\n\n const isSelected = useCallback(\n (key: ItemKey) => !disabled && state.selectedKeys.has(key),\n [disabled, state.selectedKeys]\n );\n\n const toggle = useCallback(\n (key: ItemKey) => {\n if (disabled) return;\n setState((prev) => toggleSelection(prev, key));\n },\n [disabled]\n );\n\n const selectRange = useCallback(\n (orderedKeys: ItemKey[], targetKey: ItemKey) => {\n if (disabled) return;\n setState((prev) => selectRangeState(prev, orderedKeys, targetKey));\n },\n [disabled]\n );\n\n const selectAll = useCallback(\n (orderedKeys: ItemKey[]) => {\n if (disabled) return;\n setState(selectAllState(orderedKeys));\n },\n [disabled]\n );\n\n // No `disabled` guard, like `clear`: this only ever shrinks the selection, and a\n // disabled provider has nothing in it (every additive path is guarded).\n const deselect = useCallback((key: ItemKey) => setState((prev) => deselectState(prev, key)), []);\n\n const clear = useCallback(() => setState(clearSelection()), []);\n\n const selectedIds = useMemo(\n () => getIdsOfKind(state.selectedKeys, 'asset'),\n [state.selectedKeys]\n );\n const selectedFolderIds = useMemo(\n () => getIdsOfKind(state.selectedKeys, 'folder'),\n [state.selectedKeys]\n );\n\n const value = useMemo<AssetSelection>(\n () => ({\n selectedKeys: state.selectedKeys,\n selectedIds,\n selectedFolderIds,\n anchorKey: state.anchorKey,\n isSelected,\n toggle,\n selectRange,\n selectAll,\n deselect,\n clear,\n }),\n [\n state.selectedKeys,\n selectedIds,\n selectedFolderIds,\n state.anchorKey,\n isSelected,\n toggle,\n selectRange,\n selectAll,\n deselect,\n clear,\n ]\n );\n\n return createElement(AssetSelectionContext.Provider, { value }, children);\n};\n\nexport const useAssetSelection = () => {\n const context = useContext(AssetSelectionContext);\n\n if (!context) {\n throw new Error('useAssetSelection must be used within an AssetSelectionProvider');\n }\n\n return context;\n};\n\nexport const useAssetSelectionOptional = () => useContext(AssetSelectionContext);\n"],"names":["AssetSelectionContext","createContext","AssetSelectionProvider","children","disabled","state","setState","useState","createEmptySelection","isSelected","useCallback","key","selectedKeys","has","toggle","prev","toggleSelection","selectRange","orderedKeys","targetKey","selectRangeState","selectAll","selectAllState","deselect","deselectState","clear","clearSelection","selectedIds","useMemo","getIdsOfKind","selectedFolderIds","value","anchorKey","createElement","Provider","useAssetSelection","context","useContext","Error","useAssetSelectionOptional"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAssetSelection.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useAssetSelection.ts"],"sourcesContent":["import {\n createContext,\n createElement,\n useCallback,\n useContext,\n useMemo,\n useState,\n type ReactNode,\n} from 'react';\n\nimport {\n clearSelection,\n createEmptySelection,\n deselect as deselectState,\n getIdsOfKind,\n selectAll as selectAllState,\n selectRange as selectRangeState,\n toggleSelection,\n type ItemKey,\n type SelectionState,\n} from '../utils/selection';\n\n/**\n * Ephemeral, view-state-only multi-select for the future Media Library. Selection\n * is page-scoped and reset on folder navigation or sort/filter changes (the\n * table/grid toggle keeps it — same list, different presentation).\n *\n * The actual computation lives in `../utils/selection.ts` (pure + unit-tested);\n * this hook is a thin React wrapper. Assets and folders share one mechanism —\n * items are tracked as namespaced keys (`asset:1` / `folder:1`) so toggle, range\n * and select-all behave the same for both. Range / select-all receive the\n * ordered key array from the caller (the view owns the rendered order), keeping\n * the context data-source-agnostic.\n */\nexport interface AssetSelection {\n /** Every selected item key (assets and folders), render-order agnostic. */\n selectedKeys: Set<ItemKey>;\n /** Selected asset ids, derived from {@link selectedKeys}. */\n selectedIds: Set<number>;\n /** Selected folder ids, derived from {@link selectedKeys}. */\n selectedFolderIds: Set<number>;\n anchorKey: ItemKey | null;\n isSelected: (key: ItemKey) => boolean;\n /** Additive toggle (Cmd/Ctrl+click, item checkbox). */\n toggle: (key: ItemKey) => void;\n /** Shift+click — selects the contiguous range from the anchor to the target. */\n selectRange: (orderedKeys: ItemKey[], targetKey: ItemKey) => void;\n /** Header checkbox — selects every rendered item (folders and assets). */\n selectAll: (orderedKeys: ItemKey[]) => void;\n /** Row-level \"...\" menu — drops one key when its item leaves the list (move, delete). */\n deselect: (key: ItemKey) => void;\n /** Close button / folder navigation / list-identity changes. */\n clear: () => void;\n}\n\nconst AssetSelectionContext = createContext<AssetSelection | null>(null);\n\ninterface AssetSelectionProviderProps {\n children: ReactNode;\n /**\n * When true, selection is inert: every mutator is a no-op and nothing ever\n * reads as selected. Every bulk action is gated on `assets.update`, so a user\n * without it has nothing to select for — the views also hide the checkboxes,\n * and this makes the remaining paths (click-to-select, Space key) do nothing.\n */\n disabled?: boolean;\n}\n\nexport const AssetSelectionProvider = ({\n children,\n disabled = false,\n}: AssetSelectionProviderProps) => {\n const [state, setState] = useState<SelectionState>(createEmptySelection);\n\n const isSelected = useCallback(\n (key: ItemKey) => !disabled && state.selectedKeys.has(key),\n [disabled, state.selectedKeys]\n );\n\n const toggle = useCallback(\n (key: ItemKey) => {\n if (disabled) return;\n setState((prev) => toggleSelection(prev, key));\n },\n [disabled]\n );\n\n const selectRange = useCallback(\n (orderedKeys: ItemKey[], targetKey: ItemKey) => {\n if (disabled) return;\n setState((prev) => selectRangeState(prev, orderedKeys, targetKey));\n },\n [disabled]\n );\n\n const selectAll = useCallback(\n (orderedKeys: ItemKey[]) => {\n if (disabled) return;\n setState(selectAllState(orderedKeys));\n },\n [disabled]\n );\n\n // No `disabled` guard, like `clear`: this only ever shrinks the selection, and a\n // disabled provider has nothing in it (every additive path is guarded).\n const deselect = useCallback((key: ItemKey) => setState((prev) => deselectState(prev, key)), []);\n\n const clear = useCallback(() => setState(clearSelection()), []);\n\n const selectedIds = useMemo(\n () => getIdsOfKind(state.selectedKeys, 'asset'),\n [state.selectedKeys]\n );\n const selectedFolderIds = useMemo(\n () => getIdsOfKind(state.selectedKeys, 'folder'),\n [state.selectedKeys]\n );\n\n const value = useMemo<AssetSelection>(\n () => ({\n selectedKeys: state.selectedKeys,\n selectedIds,\n selectedFolderIds,\n anchorKey: state.anchorKey,\n isSelected,\n toggle,\n selectRange,\n selectAll,\n deselect,\n clear,\n }),\n [\n state.selectedKeys,\n selectedIds,\n selectedFolderIds,\n state.anchorKey,\n isSelected,\n toggle,\n selectRange,\n selectAll,\n deselect,\n clear,\n ]\n );\n\n return createElement(AssetSelectionContext.Provider, { value }, children);\n};\n\nexport const useAssetSelection = () => {\n const context = useContext(AssetSelectionContext);\n\n if (!context) {\n throw new Error('useAssetSelection must be used within an AssetSelectionProvider');\n }\n\n return context;\n};\n\nexport const useAssetSelectionOptional = () => useContext(AssetSelectionContext);\n"],"names":["AssetSelectionContext","createContext","AssetSelectionProvider","children","disabled","state","setState","useState","createEmptySelection","isSelected","useCallback","key","selectedKeys","has","toggle","prev","toggleSelection","selectRange","orderedKeys","targetKey","selectRangeState","selectAll","selectAllState","deselect","deselectState","clear","clearSelection","selectedIds","useMemo","getIdsOfKind","selectedFolderIds","value","anchorKey","createElement","Provider","useAssetSelection","context","useContext","Error","useAssetSelectionOptional"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBusyAssets.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useBusyAssets.ts"],"sourcesContent":["import { createContext, createElement, useCallback, useContext, useMemo, useState } from 'react';\nimport type { ReactNode } from 'react';\n\n/**\n * Which assets have a long-running mutation in flight, so the list can show it\n * on the item itself.\n *\n * The mutation stays where it is triggered — the row's \"...\" menu — but the\n * feedback has to render on the row or card, which is an ancestor of it. The\n * menu sits in a leaf `<td>` (table) / footer `Flex` (grid), so an overlay\n * mounted there would cover the button and nothing else. Rather than hoist the\n * mutation up into both `AssetRow` and `AssetCard` (duplicating it, and moving\n * it away from the control that owns it), the busy flag travels up through\n * context and the ancestor renders the overlay.\n *\n * Scoped per asset id rather than a single boolean: a replace on one row must\n * not blank out every other row. Modelled on `isMovePending` in\n * `AssetsDndProvider`, which does the same thing for drag-moves — that one is\n * list-wide because a move genuinely blocks the whole list.\n */\nexport interface BusyAssets {\n /** Whether this asset has a mutation in flight. */\n isBusy: (id: number) => boolean;\n /** The message to show while it is, or `null`. */\n getBusyMessage: (id: number) => string | null;\n /**\n * Marks the asset busy and returns the release function. Pair it with\n * `try`/`finally` so the flag clears on failure too.\n */\n markBusy: (id: number, message: string) => () => void;\n}\n\nconst BusyAssetsContext = createContext<BusyAssets | null>(null);\n\nexport const BusyAssetsProvider = ({ children }: { children: ReactNode }) => {\n const [busyById, setBusyById] = useState<Record<number, string>>({});\n\n const markBusy = useCallback((id: number, message: string) => {\n setBusyById((prev) => ({ ...prev, [id]: message }));\n\n return () =>\n setBusyById((prev) => {\n // Rebuild without the key rather than mutating — the value is compared\n // by identity downstream.\n const { [id]: _released, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const isBusy = useCallback((id: number) => busyById[id] !== undefined, [busyById]);\n\n const getBusyMessage = useCallback((id: number) => busyById[id] ?? null, [busyById]);\n\n const value = useMemo<BusyAssets>(\n () => ({ isBusy, getBusyMessage, markBusy }),\n [isBusy, getBusyMessage, markBusy]\n );\n\n return createElement(BusyAssetsContext.Provider, { value }, children);\n};\n\n/**\n * Optional by design: `AssetActionsMenu`, `AssetRow` and `AssetCard` are also\n * rendered in tests and in the asset picker, outside this provider. Without it\n * the mutation still runs, it just shows no row-level feedback.\n */\nexport const useBusyAssetsOptional = () => useContext(BusyAssetsContext);\n"],"names":["BusyAssetsContext","createContext","BusyAssetsProvider","children","busyById","setBusyById","useState","markBusy","useCallback","id","message","prev","_released","rest","isBusy","undefined","getBusyMessage","value","useMemo","createElement","Provider","useBusyAssetsOptional","useContext"],"mappings":";;;;AAgCA,MAAMA,oBAAoBC,mBAAAA,CAAiC,IAAA,CAAA;AAEpD,MAAMC,kBAAAA,GAAqB,CAAC,EAAEC,QAAQ,EAA2B,GAAA;AACtE,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,eAAiC,EAAC,CAAA;IAElE,MAAMC,QAAAA,GAAWC,iBAAAA,CAAY,CAACC,EAAAA,EAAYC,OAAAA,GAAAA;QACxCL,WAAAA,CAAY,CAACM,QAAU;AAAE,gBAAA,GAAGA,IAAI;AAAE,gBAAA,CAACF,KAAKC;aAAQ,CAAA,CAAA;QAEhD,OAAO,IACLL,YAAY,CAACM,IAAAA,GAAAA;;;gBAGX,MAAM,EAAE,CAACF,EAAAA,GAAKG,SAAS,EAAE,GAAGC,MAAM,GAAGF,IAAAA;gBACrC,OAAOE,IAAAA;AACT,YAAA,CAAA,CAAA;AACJ,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,MAAMC,MAAAA,GAASN,kBAAY,CAACC,EAAAA,GAAeL,QAAQ,CAACK,EAAAA,CAAG,KAAKM,SAAAA,EAAW;AAACX,QAAAA;AAAS,KAAA,CAAA;IAEjF,MAAMY,cAAAA,GAAiBR,kBAAY,CAACC,EAAAA,GAAeL,QAAQ,CAACK,EAAAA,CAAG,IAAI,IAAA,EAAM;AAACL,QAAAA;AAAS,KAAA,CAAA;IAEnF,MAAMa,KAAAA,GAAQC,aAAAA,CACZ,KAAO;AAAEJ,YAAAA,MAAAA;AAAQE,YAAAA,cAAAA;AAAgBT,YAAAA;AAAS,SAAA,CAAA,EAC1C;AAACO,QAAAA,MAAAA;AAAQE,QAAAA,cAAAA;AAAgBT,QAAAA;AAAS,KAAA,CAAA;IAGpC,OAAOY,mBAAAA,CAAcnB,iBAAAA,CAAkBoB,QAAQ,EAAE;AAAEH,QAAAA;KAAM,EAAGd,QAAAA,CAAAA;AAC9D;AAEA;;;;AAIC,IACM,MAAMkB,qBAAAA,GAAwB,IAAMC,iBAAWtB,iBAAAA;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBusyAssets.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useBusyAssets.ts"],"sourcesContent":["import { createContext, createElement, useCallback, useContext, useMemo, useState } from 'react';\nimport type { ReactNode } from 'react';\n\n/**\n * Which assets have a long-running mutation in flight, so the list can show it\n * on the item itself.\n *\n * The mutation stays where it is triggered — the row's \"...\" menu — but the\n * feedback has to render on the row or card, which is an ancestor of it. The\n * menu sits in a leaf `<td>` (table) / footer `Flex` (grid), so an overlay\n * mounted there would cover the button and nothing else. Rather than hoist the\n * mutation up into both `AssetRow` and `AssetCard` (duplicating it, and moving\n * it away from the control that owns it), the busy flag travels up through\n * context and the ancestor renders the overlay.\n *\n * Scoped per asset id rather than a single boolean: a replace on one row must\n * not blank out every other row. Modelled on `isMovePending` in\n * `AssetsDndProvider`, which does the same thing for drag-moves — that one is\n * list-wide because a move genuinely blocks the whole list.\n */\nexport interface BusyAssets {\n /** Whether this asset has a mutation in flight. */\n isBusy: (id: number) => boolean;\n /** The message to show while it is, or `null`. */\n getBusyMessage: (id: number) => string | null;\n /**\n * Marks the asset busy and returns the release function. Pair it with\n * `try`/`finally` so the flag clears on failure too.\n */\n markBusy: (id: number, message: string) => () => void;\n}\n\nconst BusyAssetsContext = createContext<BusyAssets | null>(null);\n\nexport const BusyAssetsProvider = ({ children }: { children: ReactNode }) => {\n const [busyById, setBusyById] = useState<Record<number, string>>({});\n\n const markBusy = useCallback((id: number, message: string) => {\n setBusyById((prev) => ({ ...prev, [id]: message }));\n\n return () =>\n setBusyById((prev) => {\n // Rebuild without the key rather than mutating — the value is compared\n // by identity downstream.\n const { [id]: _released, ...rest } = prev;\n return rest;\n });\n }, []);\n\n const isBusy = useCallback((id: number) => busyById[id] !== undefined, [busyById]);\n\n const getBusyMessage = useCallback((id: number) => busyById[id] ?? null, [busyById]);\n\n const value = useMemo<BusyAssets>(\n () => ({ isBusy, getBusyMessage, markBusy }),\n [isBusy, getBusyMessage, markBusy]\n );\n\n return createElement(BusyAssetsContext.Provider, { value }, children);\n};\n\n/**\n * Optional by design: `AssetActionsMenu`, `AssetRow` and `AssetCard` are also\n * rendered in tests and in the asset picker, outside this provider. Without it\n * the mutation still runs, it just shows no row-level feedback.\n */\nexport const useBusyAssetsOptional = () => useContext(BusyAssetsContext);\n"],"names":["BusyAssetsContext","createContext","BusyAssetsProvider","children","busyById","setBusyById","useState","markBusy","useCallback","id","message","prev","_released","rest","isBusy","undefined","getBusyMessage","value","useMemo","createElement","Provider","useBusyAssetsOptional","useContext"],"mappings":";;AAgCA,MAAMA,oBAAoBC,aAAAA,CAAiC,IAAA,CAAA;AAEpD,MAAMC,kBAAAA,GAAqB,CAAC,EAAEC,QAAQ,EAA2B,GAAA;AACtE,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,SAAiC,EAAC,CAAA;IAElE,MAAMC,QAAAA,GAAWC,WAAAA,CAAY,CAACC,EAAAA,EAAYC,OAAAA,GAAAA;QACxCL,WAAAA,CAAY,CAACM,QAAU;AAAE,gBAAA,GAAGA,IAAI;AAAE,gBAAA,CAACF,KAAKC;aAAQ,CAAA,CAAA;QAEhD,OAAO,IACLL,YAAY,CAACM,IAAAA,GAAAA;;;gBAGX,MAAM,EAAE,CAACF,EAAAA,GAAKG,SAAS,EAAE,GAAGC,MAAM,GAAGF,IAAAA;gBACrC,OAAOE,IAAAA;AACT,YAAA,CAAA,CAAA;AACJ,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,MAAMC,MAAAA,GAASN,YAAY,CAACC,EAAAA,GAAeL,QAAQ,CAACK,EAAAA,CAAG,KAAKM,SAAAA,EAAW;AAACX,QAAAA;AAAS,KAAA,CAAA;IAEjF,MAAMY,cAAAA,GAAiBR,YAAY,CAACC,EAAAA,GAAeL,QAAQ,CAACK,EAAAA,CAAG,IAAI,IAAA,EAAM;AAACL,QAAAA;AAAS,KAAA,CAAA;IAEnF,MAAMa,KAAAA,GAAQC,OAAAA,CACZ,KAAO;AAAEJ,YAAAA,MAAAA;AAAQE,YAAAA,cAAAA;AAAgBT,YAAAA;AAAS,SAAA,CAAA,EAC1C;AAACO,QAAAA,MAAAA;AAAQE,QAAAA,cAAAA;AAAgBT,QAAAA;AAAS,KAAA,CAAA;IAGpC,OAAOY,aAAAA,CAAcnB,iBAAAA,CAAkBoB,QAAQ,EAAE;AAAEH,QAAAA;KAAM,EAAGd,QAAAA,CAAAA;AAC9D;AAEA;;;;AAIC,IACM,MAAMkB,qBAAAA,GAAwB,IAAMC,WAAWtB,iBAAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderInfo.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useFolderInfo.ts"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { useGetAssetsQuery } from '../../../services/assets';\nimport { useGetFolderQuery } from '../../../services/folders';\nimport { getTranslationKey } from '../../../utils/translations';\n\nexport interface FolderInfo {\n title: string;\n itemCount: number;\n}\n\nexport const useFolderInfo = (currentFolderId: number | null): FolderInfo => {\n const { formatMessage } = useIntl();\n const { data: currentFolder, isLoading } = useGetFolderQuery(\n { id: currentFolderId! },\n { skip: currentFolderId === null }\n );\n const { data: rootAssetsData, isLoading: isRootAssetsLoading } = useGetAssetsQuery(\n { folder: null, pageSize: 1 },\n { skip: currentFolderId !== null }\n );\n\n const homeLabel = formatMessage({\n id: getTranslationKey('plugin.home'),\n defaultMessage: 'Home',\n });\n\n if (currentFolderId === null) {\n if (isRootAssetsLoading) {\n return { title: homeLabel, itemCount: 0 };\n }\n\n return { title: homeLabel, itemCount: rootAssetsData?.pagination?.total ?? 0 };\n }\n\n if (isLoading || !currentFolder) {\n return { title: '', itemCount: 0 };\n }\n\n return {\n title: currentFolder.name,\n itemCount: currentFolder.files?.count ?? 0,\n };\n};\n"],"names":["useFolderInfo","currentFolderId","formatMessage","useIntl","data","currentFolder","isLoading","useGetFolderQuery","id","skip","rootAssetsData","isRootAssetsLoading","useGetAssetsQuery","folder","pageSize","homeLabel","getTranslationKey","defaultMessage","title","itemCount","pagination","total","name","files","count"],"mappings":";;;;;;;AAWO,MAAMA,gBAAgB,CAACC,eAAAA,GAAAA;IAC5B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,IAAAA,EAAMC,aAAa,EAAEC,SAAS,EAAE,GAAGC,yBAAAA,CACzC;QAAEC,EAAAA,EAAIP;KAAiB,EACvB;AAAEQ,QAAAA,IAAAA,EAAMR,eAAAA,KAAoB;AAAK,KAAA,CAAA;IAEnC,MAAM,EAAEG,MAAMM,cAAc,EAAEJ,WAAWK,mBAAmB,EAAE,GAAGC,wBAAAA,CAC/D;QAAEC,MAAAA,EAAQ,IAAA;QAAMC,QAAAA,EAAU;KAAE,EAC5B;AAAEL,QAAAA,IAAAA,EAAMR,eAAAA,KAAoB;AAAK,KAAA,CAAA;AAGnC,IAAA,MAAMc,YAAYb,aAAAA,CAAc;AAC9BM,QAAAA,EAAAA,EAAIQ,8BAAAA,CAAkB,aAAA,CAAA;QACtBC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,IAAIhB,oBAAoB,IAAA,EAAM;AAC5B,QAAA,IAAIU,mBAAAA,EAAqB;YACvB,OAAO;gBAAEO,KAAAA,EAAOH,SAAAA;gBAAWI,SAAAA,EAAW;AAAE,aAAA;AAC1C,QAAA;QAEA,OAAO;YAAED,KAAAA,EAAOH,SAAAA;YAAWI,SAAAA,EAAWT,cAAAA,EAAgBU,YAAYC,KAAAA,IAAS;AAAE,SAAA;AAC/E,IAAA;IAEA,IAAIf,SAAAA,IAAa,CAACD,aAAAA,EAAe;QAC/B,OAAO;YAAEa,KAAAA,EAAO,EAAA;YAAIC,SAAAA,EAAW;AAAE,SAAA;AACnC,IAAA;IAEA,OAAO;AACLD,QAAAA,KAAAA,EAAOb,cAAciB,IAAI;QACzBH,SAAAA,EAAWd,aAAAA,CAAckB,KAAK,EAAEC,KAAAA,IAAS;AAC3C,KAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderInfo.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useFolderInfo.ts"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { useGetAssetsQuery } from '../../../services/assets';\nimport { useGetFolderQuery } from '../../../services/folders';\nimport { getTranslationKey } from '../../../utils/translations';\n\nexport interface FolderInfo {\n title: string;\n itemCount: number;\n}\n\nexport const useFolderInfo = (currentFolderId: number | null): FolderInfo => {\n const { formatMessage } = useIntl();\n const { data: currentFolder, isLoading } = useGetFolderQuery(\n { id: currentFolderId! },\n { skip: currentFolderId === null }\n );\n const { data: rootAssetsData, isLoading: isRootAssetsLoading } = useGetAssetsQuery(\n { folder: null, pageSize: 1 },\n { skip: currentFolderId !== null }\n );\n\n const homeLabel = formatMessage({\n id: getTranslationKey('plugin.home'),\n defaultMessage: 'Home',\n });\n\n if (currentFolderId === null) {\n if (isRootAssetsLoading) {\n return { title: homeLabel, itemCount: 0 };\n }\n\n return { title: homeLabel, itemCount: rootAssetsData?.pagination?.total ?? 0 };\n }\n\n if (isLoading || !currentFolder) {\n return { title: '', itemCount: 0 };\n }\n\n return {\n title: currentFolder.name,\n itemCount: currentFolder.files?.count ?? 0,\n };\n};\n"],"names":["useFolderInfo","currentFolderId","formatMessage","useIntl","data","currentFolder","isLoading","useGetFolderQuery","id","skip","rootAssetsData","isRootAssetsLoading","useGetAssetsQuery","folder","pageSize","homeLabel","getTranslationKey","defaultMessage","title","itemCount","pagination","total","name","files","count"],"mappings":";;;;;AAWO,MAAMA,gBAAgB,CAACC,eAAAA,GAAAA;IAC5B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,IAAAA,EAAMC,aAAa,EAAEC,SAAS,EAAE,GAAGC,iBAAAA,CACzC;QAAEC,EAAAA,EAAIP;KAAiB,EACvB;AAAEQ,QAAAA,IAAAA,EAAMR,eAAAA,KAAoB;AAAK,KAAA,CAAA;IAEnC,MAAM,EAAEG,MAAMM,cAAc,EAAEJ,WAAWK,mBAAmB,EAAE,GAAGC,iBAAAA,CAC/D;QAAEC,MAAAA,EAAQ,IAAA;QAAMC,QAAAA,EAAU;KAAE,EAC5B;AAAEL,QAAAA,IAAAA,EAAMR,eAAAA,KAAoB;AAAK,KAAA,CAAA;AAGnC,IAAA,MAAMc,YAAYb,aAAAA,CAAc;AAC9BM,QAAAA,EAAAA,EAAIQ,iBAAAA,CAAkB,aAAA,CAAA;QACtBC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,IAAIhB,oBAAoB,IAAA,EAAM;AAC5B,QAAA,IAAIU,mBAAAA,EAAqB;YACvB,OAAO;gBAAEO,KAAAA,EAAOH,SAAAA;gBAAWI,SAAAA,EAAW;AAAE,aAAA;AAC1C,QAAA;QAEA,OAAO;YAAED,KAAAA,EAAOH,SAAAA;YAAWI,SAAAA,EAAWT,cAAAA,EAAgBU,YAAYC,KAAAA,IAAS;AAAE,SAAA;AAC/E,IAAA;IAEA,IAAIf,SAAAA,IAAa,CAACD,aAAAA,EAAe;QAC/B,OAAO;YAAEa,KAAAA,EAAO,EAAA;YAAIC,SAAAA,EAAW;AAAE,SAAA;AACnC,IAAA;IAEA,OAAO;AACLD,QAAAA,KAAAA,EAAOb,cAAciB,IAAI;QACzBH,SAAAA,EAAWd,aAAAA,CAAckB,KAAK,EAAEC,KAAAA,IAAS;AAC3C,KAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderNavigation.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useFolderNavigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\n\nimport { useQueryParams, withEncodedUserParams } from '@strapi/admin/strapi-admin';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst parseFolderIdFromQuery = (folder: string | undefined): number | null => {\n if (!folder) {\n return null;\n }\n\n const id = Number(folder);\n\n return Number.isFinite(id) ? id : null;\n};\n\ninterface FolderNavigationQuery {\n folder?: string;\n _q?: string;\n}\n\nexport const useFolderNavigation = () => {\n const [{ query }, setQuery] = useQueryParams<FolderNavigationQuery>();\n\n const currentFolderId = parseFolderIdFromQuery(query?.folder);\n\n /**\n * Asset search is global, so keeping `_q` after a folder navigation would show\n * byte-identical results and make the navigation look broken. Clearing it here\n * — rather than at each call site — means no caller can forget.\n */\n const navigateToFolder = useCallback(\n (folder: Folder) => {\n setQuery({ folder: String(folder.id), _q: undefined });\n },\n [setQuery]\n );\n\n /**\n * Move to the Media Library root by removing the `folder` query param, and the\n * search term with it. `setQuery(_, 'remove')` deletes the keys present on the\n * first argument (values are ignored) in one navigation, so any other query\n * state (pagination, the details drawer, etc.) is preserved.\n */\n const navigateToRoot = useCallback(() => {\n setQuery({ folder: '', _q: '' }, 'remove');\n }, [setQuery]);\n\n /**\n * Strips a `?folder=` value we can't parse.\n */\n const stripFolderParam = useCallback(() => {\n setQuery(withEncodedUserParams(query, { folder: undefined }));\n }, [query, setQuery]);\n\n // Malformed ?folder= values (e.g. abc) parse as null; strip the param from the URL.\n // Deleted/missing folders (404) are handled in AssetsPage — that needs a fetch.\n useEffect(() => {\n if (query?.folder && currentFolderId === null) {\n stripFolderParam();\n }\n }, [query?.folder, currentFolderId, stripFolderParam]);\n\n /**\n * Convenience for the FolderTree sidebar: a single entry point that handles\n * both \"go home\" and \"go to folder X\" without forcing the caller to know\n * whether to call navigateToFolder or navigateToRoot.\n */\n const navigateToFolderId = useCallback(\n (folderId: number | null) => {\n if (folderId == null) {\n navigateToRoot();\n } else {\n setQuery({ folder: String(folderId), _q: undefined });\n }\n },\n [navigateToRoot, setQuery]\n );\n\n return {\n currentFolderId,\n navigateToFolder,\n navigateToRoot,\n navigateToFolderId,\n };\n};\n"],"names":["parseFolderIdFromQuery","folder","id","Number","isFinite","useFolderNavigation","query","setQuery","useQueryParams","currentFolderId","navigateToFolder","useCallback","String","_q","undefined","navigateToRoot","stripFolderParam","withEncodedUserParams","useEffect","navigateToFolderId","folderId"],"mappings":";;;;;AAMA,MAAMA,yBAAyB,CAACC,MAAAA,GAAAA;AAC9B,IAAA,IAAI,CAACA,MAAAA,EAAQ;QACX,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAMC,KAAKC,MAAAA,CAAOF,MAAAA,CAAAA;AAElB,IAAA,OAAOE,MAAAA,CAAOC,QAAQ,CAACF,EAAAA,CAAAA,GAAMA,EAAAA,GAAK,IAAA;AACpC,CAAA;MAOaG,mBAAAA,GAAsB,IAAA;AACjC,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,0BAAAA,EAAAA;IAE9B,MAAMC,eAAAA,GAAkBT,uBAAuBM,KAAAA,EAAOL,MAAAA,CAAAA;AAEtD;;;;MAKA,MAAMS,gBAAAA,GAAmBC,iBAAAA,CACvB,CAACV,MAAAA,GAAAA;QACCM,QAAAA,CAAS;YAAEN,MAAAA,EAAQW,MAAAA,CAAOX,OAAOC,EAAE,CAAA;YAAGW,EAAAA,EAAIC;AAAU,SAAA,CAAA;IACtD,CAAA,EACA;AAACP,QAAAA;AAAS,KAAA,CAAA;AAGZ;;;;;MAMA,MAAMQ,iBAAiBJ,iBAAAA,CAAY,IAAA;QACjCJ,QAAAA,CAAS;YAAEN,MAAAA,EAAQ,EAAA;YAAIY,EAAAA,EAAI;SAAG,EAAG,QAAA,CAAA;IACnC,CAAA,EAAG;AAACN,QAAAA;AAAS,KAAA,CAAA;AAEb;;MAGA,MAAMS,mBAAmBL,iBAAAA,CAAY,IAAA;AACnCJ,QAAAA,QAAAA,CAASU,kCAAsBX,KAAAA,EAAO;YAAEL,MAAAA,EAAQa;AAAU,SAAA,CAAA,CAAA;IAC5D,CAAA,EAAG;AAACR,QAAAA,KAAAA;AAAOC,QAAAA;AAAS,KAAA,CAAA;;;IAIpBW,eAAAA,CAAU,IAAA;QACR,IAAIZ,KAAAA,EAAOL,MAAAA,IAAUQ,eAAAA,KAAoB,IAAA,EAAM;AAC7CO,YAAAA,gBAAAA,EAAAA;AACF,QAAA;IACF,CAAA,EAAG;QAACV,KAAAA,EAAOL,MAAAA;AAAQQ,QAAAA,eAAAA;AAAiBO,QAAAA;AAAiB,KAAA,CAAA;AAErD;;;;MAKA,MAAMG,kBAAAA,GAAqBR,iBAAAA,CACzB,CAACS,QAAAA,GAAAA;AACC,QAAA,IAAIA,YAAY,IAAA,EAAM;AACpBL,YAAAA,cAAAA,EAAAA;QACF,CAAA,MAAO;YACLR,QAAAA,CAAS;AAAEN,gBAAAA,MAAAA,EAAQW,MAAAA,CAAOQ,QAAAA,CAAAA;gBAAWP,EAAAA,EAAIC;AAAU,aAAA,CAAA;AACrD,QAAA;IACF,CAAA,EACA;AAACC,QAAAA,cAAAA;AAAgBR,QAAAA;AAAS,KAAA,CAAA;IAG5B,OAAO;AACLE,QAAAA,eAAAA;AACAC,QAAAA,gBAAAA;AACAK,QAAAA,cAAAA;AACAI,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderNavigation.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useFolderNavigation.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\n\nimport { useQueryParams, withEncodedUserParams } from '@strapi/admin/strapi-admin';\n\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst parseFolderIdFromQuery = (folder: string | undefined): number | null => {\n if (!folder) {\n return null;\n }\n\n const id = Number(folder);\n\n return Number.isFinite(id) ? id : null;\n};\n\ninterface FolderNavigationQuery {\n folder?: string;\n _q?: string;\n}\n\nexport const useFolderNavigation = () => {\n const [{ query }, setQuery] = useQueryParams<FolderNavigationQuery>();\n\n const currentFolderId = parseFolderIdFromQuery(query?.folder);\n\n /**\n * Asset search is global, so keeping `_q` after a folder navigation would show\n * byte-identical results and make the navigation look broken. Clearing it here\n * — rather than at each call site — means no caller can forget.\n */\n const navigateToFolder = useCallback(\n (folder: Folder) => {\n setQuery({ folder: String(folder.id), _q: undefined });\n },\n [setQuery]\n );\n\n /**\n * Move to the Media Library root by removing the `folder` query param, and the\n * search term with it. `setQuery(_, 'remove')` deletes the keys present on the\n * first argument (values are ignored) in one navigation, so any other query\n * state (pagination, the details drawer, etc.) is preserved.\n */\n const navigateToRoot = useCallback(() => {\n setQuery({ folder: '', _q: '' }, 'remove');\n }, [setQuery]);\n\n /**\n * Strips a `?folder=` value we can't parse.\n */\n const stripFolderParam = useCallback(() => {\n setQuery(withEncodedUserParams(query, { folder: undefined }));\n }, [query, setQuery]);\n\n // Malformed ?folder= values (e.g. abc) parse as null; strip the param from the URL.\n // Deleted/missing folders (404) are handled in AssetsPage — that needs a fetch.\n useEffect(() => {\n if (query?.folder && currentFolderId === null) {\n stripFolderParam();\n }\n }, [query?.folder, currentFolderId, stripFolderParam]);\n\n /**\n * Convenience for the FolderTree sidebar: a single entry point that handles\n * both \"go home\" and \"go to folder X\" without forcing the caller to know\n * whether to call navigateToFolder or navigateToRoot.\n */\n const navigateToFolderId = useCallback(\n (folderId: number | null) => {\n if (folderId == null) {\n navigateToRoot();\n } else {\n setQuery({ folder: String(folderId), _q: undefined });\n }\n },\n [navigateToRoot, setQuery]\n );\n\n return {\n currentFolderId,\n navigateToFolder,\n navigateToRoot,\n navigateToFolderId,\n };\n};\n"],"names":["parseFolderIdFromQuery","folder","id","Number","isFinite","useFolderNavigation","query","setQuery","useQueryParams","currentFolderId","navigateToFolder","useCallback","String","_q","undefined","navigateToRoot","stripFolderParam","withEncodedUserParams","useEffect","navigateToFolderId","folderId"],"mappings":";;;AAMA,MAAMA,yBAAyB,CAACC,MAAAA,GAAAA;AAC9B,IAAA,IAAI,CAACA,MAAAA,EAAQ;QACX,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAMC,KAAKC,MAAAA,CAAOF,MAAAA,CAAAA;AAElB,IAAA,OAAOE,MAAAA,CAAOC,QAAQ,CAACF,EAAAA,CAAAA,GAAMA,EAAAA,GAAK,IAAA;AACpC,CAAA;MAOaG,mBAAAA,GAAsB,IAAA;AACjC,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,cAAAA,EAAAA;IAE9B,MAAMC,eAAAA,GAAkBT,uBAAuBM,KAAAA,EAAOL,MAAAA,CAAAA;AAEtD;;;;MAKA,MAAMS,gBAAAA,GAAmBC,WAAAA,CACvB,CAACV,MAAAA,GAAAA;QACCM,QAAAA,CAAS;YAAEN,MAAAA,EAAQW,MAAAA,CAAOX,OAAOC,EAAE,CAAA;YAAGW,EAAAA,EAAIC;AAAU,SAAA,CAAA;IACtD,CAAA,EACA;AAACP,QAAAA;AAAS,KAAA,CAAA;AAGZ;;;;;MAMA,MAAMQ,iBAAiBJ,WAAAA,CAAY,IAAA;QACjCJ,QAAAA,CAAS;YAAEN,MAAAA,EAAQ,EAAA;YAAIY,EAAAA,EAAI;SAAG,EAAG,QAAA,CAAA;IACnC,CAAA,EAAG;AAACN,QAAAA;AAAS,KAAA,CAAA;AAEb;;MAGA,MAAMS,mBAAmBL,WAAAA,CAAY,IAAA;AACnCJ,QAAAA,QAAAA,CAASU,sBAAsBX,KAAAA,EAAO;YAAEL,MAAAA,EAAQa;AAAU,SAAA,CAAA,CAAA;IAC5D,CAAA,EAAG;AAACR,QAAAA,KAAAA;AAAOC,QAAAA;AAAS,KAAA,CAAA;;;IAIpBW,SAAAA,CAAU,IAAA;QACR,IAAIZ,KAAAA,EAAOL,MAAAA,IAAUQ,eAAAA,KAAoB,IAAA,EAAM;AAC7CO,YAAAA,gBAAAA,EAAAA;AACF,QAAA;IACF,CAAA,EAAG;QAACV,KAAAA,EAAOL,MAAAA;AAAQQ,QAAAA,eAAAA;AAAiBO,QAAAA;AAAiB,KAAA,CAAA;AAErD;;;;MAKA,MAAMG,kBAAAA,GAAqBR,WAAAA,CACzB,CAACS,QAAAA,GAAAA;AACC,QAAA,IAAIA,YAAY,IAAA,EAAM;AACpBL,YAAAA,cAAAA,EAAAA;QACF,CAAA,MAAO;YACLR,QAAAA,CAAS;AAAEN,gBAAAA,MAAAA,EAAQW,MAAAA,CAAOQ,QAAAA,CAAAA;gBAAWP,EAAAA,EAAIC;AAAU,aAAA,CAAA;AACrD,QAAA;IACF,CAAA,EACA;AAACC,QAAAA,cAAAA;AAAgBR,QAAAA;AAAS,KAAA,CAAA;IAG5B,OAAO;AACLE,QAAAA,eAAAA;AACAC,QAAAA,gBAAAA;AACAK,QAAAA,cAAAA;AACAI,QAAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInfiniteAssets.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useInfiniteAssets.ts"],"sourcesContent":["import { createElement, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useDispatch, useStore } from 'react-redux';\n\nimport { uploadApi } from '../../../services/api';\nimport { useGetAssetsQuery } from '../../../services/assets';\nimport { useTypedSelector } from '../../../store/hooks';\nimport { selectCompletedUploads } from '../../../store/uploadProgress';\nimport { getRelationId } from '../../../utils/getRelationId';\nimport { mergeUploadedAssets } from '../utils/mergeUploadedAssets';\n\nimport type { File, Pagination } from '../../../../../../shared/contracts/files';\n\nconst PAGE_SIZE = 20;\n\n/**\n * How many list views keep their loaded pages in memory.\n */\nconst MAX_REMEMBERED_LISTS = 10;\n\ninterface UseInfiniteAssetsOptions {\n folder?: number | null;\n sort?: string;\n search?: string;\n /** Extra `filters[$and]` entries for the files query. */\n filters?: Record<string, unknown>[];\n /** Structural switch: an `is [folder]`-only type badge means no file can match. */\n enabled?: boolean;\n}\n\ninterface QueryArgs {\n folder: number | null;\n sort?: string;\n search?: string;\n filters?: Record<string, unknown>[];\n}\n\n/**\n * Everything loaded for one query identity.\n *\n * `queryKey` lags the live key while a new query is in flight — that lag is\n * what keeps the previous results on screen across a search change.\n */\ninterface Accumulated {\n queryKey: string;\n listKey: string;\n pages: Record<number, File[]>;\n pagination?: Pagination;\n}\n\ninterface PageState {\n queryKey: string;\n page: number;\n}\n\ntype PageRefreshedHandler = (page: number, results: File[]) => void;\n\n/**\n * Concatenates the pages in ascending order, one entry per asset id.\n *\n * `Map.set` keeps the first insertion position but takes the latest value, so\n * an asset that moved between pages after a mutation holds its place and shows\n * fresh data instead of rendering twice under a duplicate key.\n */\nconst flattenPages = (pages: Record<number, File[]>): File[] => {\n const byId = new Map<number, File>();\n\n for (const page of Object.keys(pages)\n .map(Number)\n .sort((a, b) => a - b)) {\n for (const asset of pages[page]) {\n byId.set(asset.id, asset);\n }\n }\n\n return [...byId.values()];\n};\n\n/**\n * The highest page an accumulator holds — where the list was last read to, and\n * so where to resume from on the way back.\n */\nconst deepestPage = (pages: Record<number, File[]>): number =>\n Object.keys(pages).reduce((deepest, key) => Math.max(deepest, Number(key)), 1);\n\n/**\n * Keeps one earlier page's `getAssets` query subscribed and reports its results\n * back up whenever they change.\n *\n * The hook itself only subscribes the current (latest) page. Without these, a\n * mutation invalidating `{Asset, LIST}` refetches that page alone and earlier\n * pages stay frozen — a rename or delete on an earlier page never reaches the\n * list until a folder/sort/search change. One subscriber per earlier\n * page keeps them all subscribed so the invalidation refetches the whole list.\n * Renders nothing; it exists only for the subscription + `onRefreshed` report.\n */\nconst PageSubscriber = ({\n queryArgs,\n page,\n onRefreshed,\n}: {\n queryArgs: QueryArgs;\n page: number;\n onRefreshed: PageRefreshedHandler;\n}) => {\n const { currentData } = useGetAssetsQuery({ ...queryArgs, page, pageSize: PAGE_SIZE });\n const results = currentData?.results;\n\n useEffect(() => {\n if (results) {\n onRefreshed(page, results);\n }\n // `results` is a stable reference per cache entry, so this only re-reports\n // when a refetch actually replaces the page's data. Reporting the same\n // reference the accumulator already holds is a no-op (see `onRefreshed`).\n }, [results, page, onRefreshed]);\n\n return null;\n};\n\n/**\n * Infinite scroll over `/upload/files`, keeping one accumulated slot per page.\n *\n * The caller MUST render the returned `subscribers` node — that is what keeps\n * every loaded page subscribed, so `{Asset, LIST}` invalidations keep the whole\n * list consistent rather than only the current page.\n *\n * Loaded pages survive navigating away and back: each list's accumulator is\n * remembered (LRU, `MAX_REMEMBERED_LISTS`) and restored when its key returns, so\n * stepping into a subfolder and back out keeps the rows the user scrolled for.\n */\nconst useInfiniteAssets = ({\n folder = null,\n sort,\n search,\n filters,\n enabled = true,\n}: UseInfiniteAssetsOptions = {}) => {\n // Derived from the request args themselves, so a new filter can't reach the\n // API without also invalidating what was accumulated under the old one.\n const queryArgs: QueryArgs = { folder, sort, search, filters };\n const queryKey = JSON.stringify(queryArgs);\n // Identifies the list being viewed, ignoring the search term. Folder, sort\n // and filter changes are single committed actions, so one clean reset per\n // change is honest. Search is committed per keystroke on a 300ms debounce,\n // and blanking the list on each one would strobe as the user types.\n // The cost: through the search window the previous rows stay rendered and\n // `hasNextPage` is false, so the list reads as complete until page 1 lands.\n const listKey = JSON.stringify({ folder, sort, filters });\n\n const [pageState, setPageState] = useState<PageState>({ queryKey, page: 1 });\n const [accumulated, setAccumulated] = useState<Accumulated>({ queryKey, listKey, pages: {} });\n\n // Each list's loaded pages, kept across navigation away from it.\n const memoryRef = useRef(new Map<string, Accumulated>());\n\n const isNewList = pageState.queryKey !== queryKey;\n\n const remembered = isNewList ? memoryRef.current.get(queryKey) : undefined;\n\n // Derived rather than read from state: the render that discovers the key\n // change still reaches the query below, and a list with no page 1 must never\n // be requested at page 2. A remembered list always holds page 1, so resuming\n // at its deepest page can't skip one.\n let page: number;\n if (!isNewList) {\n page = pageState.page;\n } else if (remembered) {\n page = deepestPage(remembered.pages);\n } else {\n page = 1;\n }\n\n if (isNewList) {\n setPageState({ queryKey, page });\n\n if (remembered) {\n setAccumulated(remembered);\n }\n }\n\n const { currentData, isLoading, isFetching, error, startedTimeStamp, fulfilledTimeStamp } =\n useGetAssetsQuery(\n {\n ...queryArgs,\n page,\n pageSize: PAGE_SIZE,\n },\n { skip: !enabled }\n );\n\n const isSameQuery = accumulated.queryKey === queryKey;\n\n // `currentData` is only ever the payload for the args just passed, so it\n // belongs to this key at this page — nothing to infer. Its reference is\n // stable per cache entry, so this settles after one extra render.\n if (\n // A restore already set the accumulator from memory; don't overwrite it.\n !remembered &&\n currentData &&\n (!isSameQuery || accumulated.pages[page] !== currentData.results)\n ) {\n setAccumulated(\n isSameQuery\n ? {\n ...accumulated,\n pages: { ...accumulated.pages, [page]: currentData.results },\n pagination: currentData.pagination,\n }\n : {\n queryKey,\n listKey,\n pages: { [page]: currentData.results },\n pagination: currentData.pagination,\n }\n );\n }\n\n // Merges a refetched earlier page back into the accumulator. Ignores reports\n // for a superseded query, and no-ops when the reference is unchanged so a\n // subscriber re-reporting its already-stored page can't loop.\n const handlePageRefreshed = useCallback<PageRefreshedHandler>(\n (refreshedPage, results) => {\n setAccumulated((prev) => {\n if (prev.queryKey !== queryKey || prev.pages[refreshedPage] === results) {\n return prev;\n }\n\n return { ...prev, pages: { ...prev.pages, [refreshedPage]: results } };\n });\n },\n [queryKey]\n );\n\n // One subscriber per earlier page (the current page is already subscribed by\n // the query above). Keyed by queryKey so a folder/sort/search change remounts\n // them against the new args instead of reusing a stale cache entry.\n // `createElement` rather than JSX so this stays a plain `.ts` hook file.\n const subscribers = createElement(\n Fragment,\n null,\n Array.from({ length: Math.max(0, page - 1) }, (_, index) => index + 1).map((earlierPage) =>\n createElement(PageSubscriber, {\n key: `${queryKey}:${earlierPage}`,\n queryArgs,\n page: earlierPage,\n onRefreshed: handlePageRefreshed,\n })\n )\n );\n\n // Remember what this list has read, so leaving it isn't forgetting it. Filed\n // under `accumulated.queryKey`, not the live `queryKey`: the accumulator names\n // the list it belongs to, so an entry still describing the list being left\n // can't be misfiled under the one being entered.\n useEffect(() => {\n if (Object.keys(accumulated.pages).length === 0) {\n return;\n }\n\n const memory = memoryRef.current;\n // Delete before set so the entry moves to the end. Map iterates in\n // insertion order, so the first key is the least recently used.\n memory.delete(accumulated.queryKey);\n memory.set(accumulated.queryKey, accumulated);\n\n while (memory.size > MAX_REMEMBERED_LISTS) {\n const oldest = memory.keys().next();\n\n if (oldest.done) {\n break;\n }\n\n memory.delete(oldest.value);\n }\n }, [accumulated]);\n\n // Drop the left folder's cached `getAssets` pages when the folder changes.\n //\n // RTK Query 1.9.7 leaves a query's store subscription in place when its last\n // subscriber unmounts while a refetch is still in flight — e.g. a delete\n // invalidates `{Asset, LIST}`, every loaded page starts refetching, and the\n // user navigates away before those settle. Those stale subscriptions make the\n // next `{Asset, LIST}` invalidation (an upload in the new folder) refetch the\n // *previous* folder's pages: one bogus `/upload/files` request per loaded\n // page. There is no public per-entry unsubscribe, so evict the left folder's\n // entries outright. Returning then re-reads every page it had loaded, but the\n // rows come straight back from the accumulator memory above — so those\n // requests refresh a list already on screen rather than being waited on.\n const dispatch = useDispatch();\n const store = useStore();\n const prevFolderRef = useRef(folder);\n useEffect(() => {\n const prevFolder = prevFolderRef.current;\n prevFolderRef.current = folder;\n if (prevFolder === folder) {\n return;\n }\n\n const apiState = (store.getState() as Record<string, { queries?: Record<string, unknown> }>)[\n uploadApi.reducerPath\n ];\n const removeQueryResult = (\n uploadApi as unknown as {\n internalActions: {\n removeQueryResult: (payload: { queryCacheKey: string }) => { type: string };\n };\n }\n ).internalActions.removeQueryResult;\n\n Object.keys(apiState?.queries ?? {}).forEach((cacheKey) => {\n if (!cacheKey.startsWith('getAssets(')) {\n return;\n }\n let args: { folder?: number | null };\n try {\n args = JSON.parse(cacheKey.slice('getAssets('.length, -1));\n } catch {\n return;\n }\n if (args.folder === prevFolder) {\n dispatch(removeQueryResult({ queryCacheKey: cacheKey }));\n }\n });\n }, [folder, dispatch, store]);\n\n // Until the new list's first page lands the accumulator still holds the\n // previous folder. Reported as loading so the page shows a spinner instead\n // of the outgoing folder's assets under the incoming folder's header.\n const isChangingList = accumulated.listKey !== listKey;\n\n const loadedAssets = useMemo(\n () => (isChangingList ? [] : flattenPages(accumulated.pages)),\n [isChangingList, accumulated.pages]\n );\n\n // Deliberately the live value, not the stale-tolerant one below: paging must\n // never be driven by a total that belongs to the previous query.\n const hasNextPage = currentData ? page < currentData.pagination.pageCount : false;\n\n const completedUploads = useTypedSelector(selectCompletedUploads);\n\n // Only an unfiltered, unsearched list can place an upload locally: deciding\n // whether an asset satisfies a filter means reimplementing the server's\n // filter semantics client-side. Filtered views still refresh on the\n // end-of-batch invalidation, as they did before.\n const canPlaceUploads = !search && (filters?.length ?? 0) === 0;\n\n // When the loaded data came back from a request that started after a given\n // upload — i.e. the server had already stored it when asked. Past that point\n // the list is the authority on whether the asset is there at all, so bridging\n // must stop: otherwise a later delete or move, which refetches without it,\n // would have it re-inserted.\n const listAnsweredAfter =\n fulfilledTimeStamp !== undefined &&\n startedTimeStamp !== undefined &&\n // A refetch in flight leaves `fulfilledTimeStamp` on the previous response,\n // which predates this request — so only settled data counts.\n fulfilledTimeStamp > startedTimeStamp\n ? startedTimeStamp\n : undefined;\n\n const assets = useMemo(() => {\n if (!canPlaceUploads || completedUploads.length === 0) {\n return loadedAssets;\n }\n\n const bridging = completedUploads.filter(\n ({ asset, completedAt }) =>\n getRelationId(asset.folder) === folder &&\n (listAnsweredAfter === undefined || completedAt > listAnsweredAfter)\n );\n\n return mergeUploadedAssets({\n assets: loadedAssets,\n uploaded: bridging.map(({ asset }) => asset),\n sort,\n hasNextPage,\n });\n }, [\n canPlaceUploads,\n completedUploads,\n loadedAssets,\n folder,\n sort,\n hasNextPage,\n listAnsweredAfter,\n ]);\n const isFetchingMore = isFetching && page > 1;\n\n // A restored list already has rows on screen, so re-reading its current page\n // is a background refresh — reporting it as loading would swap those rows for\n // a spinner. Only an empty list has nothing better to show.\n const isLoadingList = isChangingList || (isLoading && assets.length === 0);\n\n const fetchNextPage = useCallback(() => {\n setPageState((prev) => ({\n queryKey,\n page: (prev.queryKey === queryKey ? prev.page : 1) + 1,\n }));\n }, [queryKey]);\n\n if (!enabled) {\n return {\n assets: [] as File[],\n // No list to keep fresh while disabled, so nothing to subscribe.\n subscribers: null,\n pagination: undefined,\n isLoading: false,\n isFetchingMore: false,\n hasNextPage: false,\n fetchNextPage,\n error: undefined,\n };\n }\n\n return {\n assets,\n subscribers,\n // Falls back to the accumulated total so a consumer showing the count\n // doesn't flash zero mid-transition, matching the possibly stale `assets`.\n pagination: currentData?.pagination ?? accumulated.pagination,\n isLoading: isLoadingList,\n isFetchingMore,\n hasNextPage,\n fetchNextPage,\n error,\n };\n};\n\nexport { useInfiniteAssets };\nexport { PAGE_SIZE };\n"],"names":["PAGE_SIZE","MAX_REMEMBERED_LISTS","flattenPages","pages","byId","Map","page","Object","keys","map","Number","sort","a","b","asset","set","id","values","deepestPage","reduce","deepest","key","Math","max","PageSubscriber","queryArgs","onRefreshed","currentData","useGetAssetsQuery","pageSize","results","useEffect","useInfiniteAssets","folder","search","filters","enabled","queryKey","JSON","stringify","listKey","pageState","setPageState","useState","accumulated","setAccumulated","memoryRef","useRef","isNewList","remembered","current","get","undefined","isLoading","isFetching","error","startedTimeStamp","fulfilledTimeStamp","skip","isSameQuery","pagination","handlePageRefreshed","useCallback","refreshedPage","prev","subscribers","createElement","Fragment","Array","from","length","_","index","earlierPage","memory","delete","size","oldest","next","done","value","dispatch","useDispatch","store","useStore","prevFolderRef","prevFolder","apiState","getState","uploadApi","reducerPath","removeQueryResult","internalActions","queries","forEach","cacheKey","startsWith","args","parse","slice","queryCacheKey","isChangingList","loadedAssets","useMemo","hasNextPage","pageCount","completedUploads","useTypedSelector","selectCompletedUploads","canPlaceUploads","listAnsweredAfter","assets","bridging","filter","completedAt","getRelationId","mergeUploadedAssets","uploaded","isFetchingMore","isLoadingList","fetchNextPage"],"mappings":";;;;;;;;;;;AAaA,MAAMA,SAAAA,GAAY;AAElB;;AAEC,IACD,MAAMC,oBAAAA,GAAuB,EAAA;AAuC7B;;;;;;IAOA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpB,IAAA,MAAMC,OAAO,IAAIC,GAAAA,EAAAA;AAEjB,IAAA,KAAK,MAAMC,IAAAA,IAAQC,MAAAA,CAAOC,IAAI,CAACL,KAAAA,CAAAA,CAC5BM,GAAG,CAACC,MAAAA,CAAAA,CACJC,IAAI,CAAC,CAACC,CAAAA,EAAGC,CAAAA,GAAMD,IAAIC,CAAAA,CAAAA,CAAI;AACxB,QAAA,KAAK,MAAMC,KAAAA,IAASX,KAAK,CAACG,KAAK,CAAE;AAC/BF,YAAAA,IAAAA,CAAKW,GAAG,CAACD,KAAAA,CAAME,EAAE,EAAEF,KAAAA,CAAAA;AACrB,QAAA;AACF,IAAA;IAEA,OAAO;AAAIV,QAAAA,GAAAA,IAAAA,CAAKa,MAAM;AAAG,KAAA;AAC3B,CAAA;AAEA;;;AAGC,IACD,MAAMC,WAAAA,GAAc,CAACf,QACnBI,MAAAA,CAAOC,IAAI,CAACL,KAAAA,CAAAA,CAAOgB,MAAM,CAAC,CAACC,SAASC,GAAAA,GAAQC,IAAAA,CAAKC,GAAG,CAACH,OAAAA,EAASV,OAAOW,GAAAA,CAAAA,CAAAA,EAAO,CAAA,CAAA;AAE9E;;;;;;;;;;IAWA,MAAMG,iBAAiB,CAAC,EACtBC,SAAS,EACTnB,IAAI,EACJoB,WAAW,EAKZ,GAAA;AACC,IAAA,MAAM,EAAEC,WAAW,EAAE,GAAGC,wBAAAA,CAAkB;AAAE,QAAA,GAAGH,SAAS;AAAEnB,QAAAA,IAAAA;QAAMuB,QAAAA,EAAU7B;AAAU,KAAA,CAAA;AACpF,IAAA,MAAM8B,UAAUH,WAAAA,EAAaG,OAAAA;IAE7BC,eAAAA,CAAU,IAAA;AACR,QAAA,IAAID,OAAAA,EAAS;AACXJ,YAAAA,WAAAA,CAAYpB,IAAAA,EAAMwB,OAAAA,CAAAA;AACpB,QAAA;;;;IAIF,CAAA,EAAG;AAACA,QAAAA,OAAAA;AAASxB,QAAAA,IAAAA;AAAMoB,QAAAA;AAAY,KAAA,CAAA;IAE/B,OAAO,IAAA;AACT,CAAA;AAEA;;;;;;;;;;AAUC,UACKM,iBAAAA,GAAoB,CAAC,EACzBC,MAAAA,GAAS,IAAI,EACbtB,IAAI,EACJuB,MAAM,EACNC,OAAO,EACPC,OAAAA,GAAU,IAAI,EACW,GAAG,EAAE,GAAA;;;AAG9B,IAAA,MAAMX,SAAAA,GAAuB;AAAEQ,QAAAA,MAAAA;AAAQtB,QAAAA,IAAAA;AAAMuB,QAAAA,MAAAA;AAAQC,QAAAA;AAAQ,KAAA;IAC7D,MAAME,QAAAA,GAAWC,IAAAA,CAAKC,SAAS,CAACd,SAAAA,CAAAA;;;;;;;IAOhC,MAAMe,OAAAA,GAAUF,IAAAA,CAAKC,SAAS,CAAC;AAAEN,QAAAA,MAAAA;AAAQtB,QAAAA,IAAAA;AAAMwB,QAAAA;AAAQ,KAAA,CAAA;AAEvD,IAAA,MAAM,CAACM,SAAAA,EAAWC,YAAAA,CAAa,GAAGC,cAAAA,CAAoB;AAAEN,QAAAA,QAAAA;QAAU/B,IAAAA,EAAM;AAAE,KAAA,CAAA;AAC1E,IAAA,MAAM,CAACsC,WAAAA,EAAaC,cAAAA,CAAe,GAAGF,cAAAA,CAAsB;AAAEN,QAAAA,QAAAA;AAAUG,QAAAA,OAAAA;AAASrC,QAAAA,KAAAA,EAAO;AAAG,KAAA,CAAA;;IAG3F,MAAM2C,SAAAA,GAAYC,aAAO,IAAI1C,GAAAA,EAAAA,CAAAA;IAE7B,MAAM2C,SAAAA,GAAYP,SAAAA,CAAUJ,QAAQ,KAAKA,QAAAA;AAEzC,IAAA,MAAMY,aAAaD,SAAAA,GAAYF,SAAAA,CAAUI,OAAO,CAACC,GAAG,CAACd,QAAAA,CAAAA,GAAYe,SAAAA;;;;;IAMjE,IAAI9C,IAAAA;AACJ,IAAA,IAAI,CAAC0C,SAAAA,EAAW;AACd1C,QAAAA,IAAAA,GAAOmC,UAAUnC,IAAI;AACvB,IAAA,CAAA,MAAO,IAAI2C,UAAAA,EAAY;QACrB3C,IAAAA,GAAOY,WAAAA,CAAY+B,WAAW9C,KAAK,CAAA;IACrC,CAAA,MAAO;QACLG,IAAAA,GAAO,CAAA;AACT,IAAA;AAEA,IAAA,IAAI0C,SAAAA,EAAW;QACbN,YAAAA,CAAa;AAAEL,YAAAA,QAAAA;AAAU/B,YAAAA;AAAK,SAAA,CAAA;AAE9B,QAAA,IAAI2C,UAAAA,EAAY;YACdJ,cAAAA,CAAeI,UAAAA,CAAAA;AACjB,QAAA;AACF,IAAA;AAEA,IAAA,MAAM,EAAEtB,WAAW,EAAE0B,SAAS,EAAEC,UAAU,EAAEC,KAAK,EAAEC,gBAAgB,EAAEC,kBAAkB,EAAE,GACvF7B,wBAAAA,CACE;AACE,QAAA,GAAGH,SAAS;AACZnB,QAAAA,IAAAA;QACAuB,QAAAA,EAAU7B;KACZ,EACA;AAAE0D,QAAAA,IAAAA,EAAM,CAACtB;AAAQ,KAAA,CAAA;IAGrB,MAAMuB,WAAAA,GAAcf,WAAAA,CAAYP,QAAQ,KAAKA,QAAAA;;;;AAK7C,IAAA;AAEE,IAAA,CAACY,UAAAA,IACDtB,WAAAA,KACC,CAACgC,WAAAA,IAAef,WAAAA,CAAYzC,KAAK,CAACG,IAAAA,CAAK,KAAKqB,WAAAA,CAAYG,OAAO,CAAD,EAC/D;AACAe,QAAAA,cAAAA,CACEc,WAAAA,GACI;AACE,YAAA,GAAGf,WAAW;YACdzC,KAAAA,EAAO;AAAE,gBAAA,GAAGyC,YAAYzC,KAAK;gBAAE,CAACG,IAAAA,GAAOqB,WAAAA,CAAYG;AAAQ,aAAA;AAC3D8B,YAAAA,UAAAA,EAAYjC,YAAYiC;SAC1B,GACA;AACEvB,YAAAA,QAAAA;AACAG,YAAAA,OAAAA;YACArC,KAAAA,EAAO;gBAAE,CAACG,IAAAA,GAAOqB,WAAAA,CAAYG;AAAQ,aAAA;AACrC8B,YAAAA,UAAAA,EAAYjC,YAAYiC;AAC1B,SAAA,CAAA;AAER,IAAA;;;;IAKA,MAAMC,mBAAAA,GAAsBC,iBAAAA,CAC1B,CAACC,aAAAA,EAAejC,OAAAA,GAAAA;AACde,QAAAA,cAAAA,CAAe,CAACmB,IAAAA,GAAAA;YACd,IAAIA,IAAAA,CAAK3B,QAAQ,KAAKA,QAAAA,IAAY2B,KAAK7D,KAAK,CAAC4D,aAAAA,CAAc,KAAKjC,OAAAA,EAAS;gBACvE,OAAOkC,IAAAA;AACT,YAAA;YAEA,OAAO;AAAE,gBAAA,GAAGA,IAAI;gBAAE7D,KAAAA,EAAO;AAAE,oBAAA,GAAG6D,KAAK7D,KAAK;AAAE,oBAAA,CAAC4D,gBAAgBjC;AAAQ;AAAE,aAAA;AACvE,QAAA,CAAA,CAAA;IACF,CAAA,EACA;AAACO,QAAAA;AAAS,KAAA,CAAA;;;;;AAOZ,IAAA,MAAM4B,cAAcC,mBAAAA,CAClBC,cAAAA,EACA,IAAA,EACAC,KAAAA,CAAMC,IAAI,CAAC;AAAEC,QAAAA,MAAAA,EAAQhD,IAAAA,CAAKC,GAAG,CAAC,CAAA,EAAGjB,IAAAA,GAAO,CAAA;KAAG,EAAG,CAACiE,CAAAA,EAAGC,KAAAA,GAAUA,KAAAA,GAAQ,CAAA,CAAA,CAAG/D,GAAG,CAAC,CAACgE,WAAAA,GAC1EP,mBAAAA,CAAc1C,cAAAA,EAAgB;AAC5BH,YAAAA,GAAAA,EAAK,CAAA,EAAGgB,QAAAA,CAAS,CAAC,EAAEoC,WAAAA,CAAAA,CAAa;AACjChD,YAAAA,SAAAA;YACAnB,IAAAA,EAAMmE,WAAAA;YACN/C,WAAAA,EAAamC;AACf,SAAA,CAAA,CAAA,CAAA;;;;;IAQJ9B,eAAAA,CAAU,IAAA;QACR,IAAIxB,MAAAA,CAAOC,IAAI,CAACoC,WAAAA,CAAYzC,KAAK,CAAA,CAAEmE,MAAM,KAAK,CAAA,EAAG;AAC/C,YAAA;AACF,QAAA;QAEA,MAAMI,MAAAA,GAAS5B,UAAUI,OAAO;;;QAGhCwB,MAAAA,CAAOC,MAAM,CAAC/B,WAAAA,CAAYP,QAAQ,CAAA;AAClCqC,QAAAA,MAAAA,CAAO3D,GAAG,CAAC6B,WAAAA,CAAYP,QAAQ,EAAEO,WAAAA,CAAAA;QAEjC,MAAO8B,MAAAA,CAAOE,IAAI,GAAG3E,oBAAAA,CAAsB;AACzC,YAAA,MAAM4E,MAAAA,GAASH,MAAAA,CAAOlE,IAAI,EAAA,CAAGsE,IAAI,EAAA;YAEjC,IAAID,MAAAA,CAAOE,IAAI,EAAE;AACf,gBAAA;AACF,YAAA;YAEAL,MAAAA,CAAOC,MAAM,CAACE,MAAAA,CAAOG,KAAK,CAAA;AAC5B,QAAA;IACF,CAAA,EAAG;AAACpC,QAAAA;AAAY,KAAA,CAAA;;;;;;;;;;;;;AAchB,IAAA,MAAMqC,QAAAA,GAAWC,sBAAAA,EAAAA;AACjB,IAAA,MAAMC,KAAAA,GAAQC,mBAAAA,EAAAA;AACd,IAAA,MAAMC,gBAAgBtC,YAAAA,CAAOd,MAAAA,CAAAA;IAC7BF,eAAAA,CAAU,IAAA;QACR,MAAMuD,UAAAA,GAAaD,cAAcnC,OAAO;AACxCmC,QAAAA,aAAAA,CAAcnC,OAAO,GAAGjB,MAAAA;AACxB,QAAA,IAAIqD,eAAerD,MAAAA,EAAQ;AACzB,YAAA;AACF,QAAA;QAEA,MAAMsD,QAAAA,GAAW,KAACJ,CAAMK,QAAQ,EAA4D,CAC1FC,aAAAA,CAAUC,WAAW,CACtB;AACD,QAAA,MAAMC,iBAAAA,GACJF,aAAAA,CAKAG,eAAe,CAACD,iBAAiB;QAEnCpF,MAAAA,CAAOC,IAAI,CAAC+E,QAAAA,EAAUM,OAAAA,IAAW,EAAC,CAAA,CAAGC,OAAO,CAAC,CAACC,QAAAA,GAAAA;AAC5C,YAAA,IAAI,CAACA,QAAAA,CAASC,UAAU,CAAC,YAAA,CAAA,EAAe;AACtC,gBAAA;AACF,YAAA;YACA,IAAIC,IAAAA;YACJ,IAAI;gBACFA,IAAAA,GAAO3D,IAAAA,CAAK4D,KAAK,CAACH,QAAAA,CAASI,KAAK,CAAC,YAAA,CAAa7B,MAAM,EAAE,CAAC,CAAA,CAAA,CAAA;AACzD,YAAA,CAAA,CAAE,OAAM;AACN,gBAAA;AACF,YAAA;YACA,IAAI2B,IAAAA,CAAKhE,MAAM,KAAKqD,UAAAA,EAAY;AAC9BL,gBAAAA,QAAAA,CAASU,iBAAAA,CAAkB;oBAAES,aAAAA,EAAeL;AAAS,iBAAA,CAAA,CAAA;AACvD,YAAA;AACF,QAAA,CAAA,CAAA;IACF,CAAA,EAAG;AAAC9D,QAAAA,MAAAA;AAAQgD,QAAAA,QAAAA;AAAUE,QAAAA;AAAM,KAAA,CAAA;;;;IAK5B,MAAMkB,cAAAA,GAAiBzD,WAAAA,CAAYJ,OAAO,KAAKA,OAAAA;IAE/C,MAAM8D,YAAAA,GAAeC,cACnB,IAAOF,cAAAA,GAAiB,EAAE,GAAGnG,YAAAA,CAAa0C,WAAAA,CAAYzC,KAAK,CAAA,EAC3D;AAACkG,QAAAA,cAAAA;AAAgBzD,QAAAA,WAAAA,CAAYzC;AAAM,KAAA,CAAA;;;AAKrC,IAAA,MAAMqG,cAAc7E,WAAAA,GAAcrB,IAAAA,GAAOqB,YAAYiC,UAAU,CAAC6C,SAAS,GAAG,KAAA;AAE5E,IAAA,MAAMC,mBAAmBC,sBAAAA,CAAiBC,qCAAAA,CAAAA;;;;;IAM1C,MAAMC,eAAAA,GAAkB,CAAC3E,MAAAA,IAAWC,CAAAA,OAAAA,EAASmC,MAAAA,IAAU,CAAA,MAAO,CAAA;;;;;;AAO9D,IAAA,MAAMwC,iBAAAA,GACJrD,kBAAAA,KAAuBL,SAAAA,IACvBI,gBAAAA,KAAqBJ;;AAGrBK,IAAAA,kBAAAA,GAAqBD,mBACjBA,gBAAAA,GACAJ,SAAAA;AAEN,IAAA,MAAM2D,WAASR,aAAAA,CAAQ,IAAA;AACrB,QAAA,IAAI,CAACM,eAAAA,IAAmBH,gBAAAA,CAAiBpC,MAAM,KAAK,CAAA,EAAG;YACrD,OAAOgC,YAAAA;AACT,QAAA;QAEA,MAAMU,QAAAA,GAAWN,iBAAiBO,MAAM,CACtC,CAAC,EAAEnG,KAAK,EAAEoG,WAAW,EAAE,GACrBC,2BAAAA,CAAcrG,KAAAA,CAAMmB,MAAM,CAAA,KAAMA,MAAAA,KAC/B6E,iBAAAA,KAAsB1D,SAAAA,IAAa8D,cAAcJ,iBAAgB,CAAA,CAAA;AAGtE,QAAA,OAAOM,uCAAAA,CAAoB;YACzBL,MAAAA,EAAQT,YAAAA;AACRe,YAAAA,QAAAA,EAAUL,SAASvG,GAAG,CAAC,CAAC,EAAEK,KAAK,EAAE,GAAKA,KAAAA,CAAAA;AACtCH,YAAAA,IAAAA;AACA6F,YAAAA;AACF,SAAA,CAAA;IACF,CAAA,EAAG;AACDK,QAAAA,eAAAA;AACAH,QAAAA,gBAAAA;AACAJ,QAAAA,YAAAA;AACArE,QAAAA,MAAAA;AACAtB,QAAAA,IAAAA;AACA6F,QAAAA,WAAAA;AACAM,QAAAA;AACD,KAAA,CAAA;IACD,MAAMQ,cAAAA,GAAiBhE,cAAchD,IAAAA,GAAO,CAAA;;;;AAK5C,IAAA,MAAMiH,aAAAA,GAAgBlB,cAAAA,IAAmBhD,SAAAA,IAAa0D,QAAAA,CAAOzC,MAAM,KAAK,CAAA;AAExE,IAAA,MAAMkD,gBAAgB1D,iBAAAA,CAAY,IAAA;QAChCpB,YAAAA,CAAa,CAACsB,QAAU;AACtB3B,gBAAAA,QAAAA;gBACA/B,IAAAA,EAAO0D,CAAAA,IAAAA,CAAK3B,QAAQ,KAAKA,WAAW2B,IAAAA,CAAK1D,IAAI,GAAG,CAAA,IAAK;aACvD,CAAA,CAAA;IACF,CAAA,EAAG;AAAC+B,QAAAA;AAAS,KAAA,CAAA;AAEb,IAAA,IAAI,CAACD,OAAAA,EAAS;QACZ,OAAO;AACL2E,YAAAA,MAAAA,EAAQ,EAAE;;YAEV9C,WAAAA,EAAa,IAAA;YACbL,UAAAA,EAAYR,SAAAA;YACZC,SAAAA,EAAW,KAAA;YACXiE,cAAAA,EAAgB,KAAA;YAChBd,WAAAA,EAAa,KAAA;AACbgB,YAAAA,aAAAA;YACAjE,KAAAA,EAAOH;AACT,SAAA;AACF,IAAA;IAEA,OAAO;AACL2D,gBAAAA,QAAAA;AACA9C,QAAAA,WAAAA;;;QAGAL,UAAAA,EAAYjC,WAAAA,EAAaiC,UAAAA,IAAchB,WAAAA,CAAYgB,UAAU;QAC7DP,SAAAA,EAAWkE,aAAAA;AACXD,QAAAA,cAAAA;AACAd,QAAAA,WAAAA;AACAgB,QAAAA,aAAAA;AACAjE,QAAAA;AACF,KAAA;AACF;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInfiniteAssets.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useInfiniteAssets.ts"],"sourcesContent":["import { createElement, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useDispatch, useStore } from 'react-redux';\n\nimport { uploadApi } from '../../../services/api';\nimport { useGetAssetsQuery } from '../../../services/assets';\nimport { useTypedSelector } from '../../../store/hooks';\nimport { selectCompletedUploads } from '../../../store/uploadProgress';\nimport { getRelationId } from '../../../utils/getRelationId';\nimport { mergeUploadedAssets } from '../utils/mergeUploadedAssets';\n\nimport type { File, Pagination } from '../../../../../../shared/contracts/files';\n\nconst PAGE_SIZE = 20;\n\n/**\n * How many list views keep their loaded pages in memory.\n */\nconst MAX_REMEMBERED_LISTS = 10;\n\ninterface UseInfiniteAssetsOptions {\n folder?: number | null;\n sort?: string;\n search?: string;\n /** Extra `filters[$and]` entries for the files query. */\n filters?: Record<string, unknown>[];\n /** Structural switch: an `is [folder]`-only type badge means no file can match. */\n enabled?: boolean;\n}\n\ninterface QueryArgs {\n folder: number | null;\n sort?: string;\n search?: string;\n filters?: Record<string, unknown>[];\n}\n\n/**\n * Everything loaded for one query identity.\n *\n * `queryKey` lags the live key while a new query is in flight — that lag is\n * what keeps the previous results on screen across a search change.\n */\ninterface Accumulated {\n queryKey: string;\n listKey: string;\n pages: Record<number, File[]>;\n pagination?: Pagination;\n}\n\ninterface PageState {\n queryKey: string;\n page: number;\n}\n\ntype PageRefreshedHandler = (page: number, results: File[]) => void;\n\n/**\n * Concatenates the pages in ascending order, one entry per asset id.\n *\n * `Map.set` keeps the first insertion position but takes the latest value, so\n * an asset that moved between pages after a mutation holds its place and shows\n * fresh data instead of rendering twice under a duplicate key.\n */\nconst flattenPages = (pages: Record<number, File[]>): File[] => {\n const byId = new Map<number, File>();\n\n for (const page of Object.keys(pages)\n .map(Number)\n .sort((a, b) => a - b)) {\n for (const asset of pages[page]) {\n byId.set(asset.id, asset);\n }\n }\n\n return [...byId.values()];\n};\n\n/**\n * The highest page an accumulator holds — where the list was last read to, and\n * so where to resume from on the way back.\n */\nconst deepestPage = (pages: Record<number, File[]>): number =>\n Object.keys(pages).reduce((deepest, key) => Math.max(deepest, Number(key)), 1);\n\n/**\n * Keeps one earlier page's `getAssets` query subscribed and reports its results\n * back up whenever they change.\n *\n * The hook itself only subscribes the current (latest) page. Without these, a\n * mutation invalidating `{Asset, LIST}` refetches that page alone and earlier\n * pages stay frozen — a rename or delete on an earlier page never reaches the\n * list until a folder/sort/search change. One subscriber per earlier\n * page keeps them all subscribed so the invalidation refetches the whole list.\n * Renders nothing; it exists only for the subscription + `onRefreshed` report.\n */\nconst PageSubscriber = ({\n queryArgs,\n page,\n onRefreshed,\n}: {\n queryArgs: QueryArgs;\n page: number;\n onRefreshed: PageRefreshedHandler;\n}) => {\n const { currentData } = useGetAssetsQuery({ ...queryArgs, page, pageSize: PAGE_SIZE });\n const results = currentData?.results;\n\n useEffect(() => {\n if (results) {\n onRefreshed(page, results);\n }\n // `results` is a stable reference per cache entry, so this only re-reports\n // when a refetch actually replaces the page's data. Reporting the same\n // reference the accumulator already holds is a no-op (see `onRefreshed`).\n }, [results, page, onRefreshed]);\n\n return null;\n};\n\n/**\n * Infinite scroll over `/upload/files`, keeping one accumulated slot per page.\n *\n * The caller MUST render the returned `subscribers` node — that is what keeps\n * every loaded page subscribed, so `{Asset, LIST}` invalidations keep the whole\n * list consistent rather than only the current page.\n *\n * Loaded pages survive navigating away and back: each list's accumulator is\n * remembered (LRU, `MAX_REMEMBERED_LISTS`) and restored when its key returns, so\n * stepping into a subfolder and back out keeps the rows the user scrolled for.\n */\nconst useInfiniteAssets = ({\n folder = null,\n sort,\n search,\n filters,\n enabled = true,\n}: UseInfiniteAssetsOptions = {}) => {\n // Derived from the request args themselves, so a new filter can't reach the\n // API without also invalidating what was accumulated under the old one.\n const queryArgs: QueryArgs = { folder, sort, search, filters };\n const queryKey = JSON.stringify(queryArgs);\n // Identifies the list being viewed, ignoring the search term. Folder, sort\n // and filter changes are single committed actions, so one clean reset per\n // change is honest. Search is committed per keystroke on a 300ms debounce,\n // and blanking the list on each one would strobe as the user types.\n // The cost: through the search window the previous rows stay rendered and\n // `hasNextPage` is false, so the list reads as complete until page 1 lands.\n const listKey = JSON.stringify({ folder, sort, filters });\n\n const [pageState, setPageState] = useState<PageState>({ queryKey, page: 1 });\n const [accumulated, setAccumulated] = useState<Accumulated>({ queryKey, listKey, pages: {} });\n\n // Each list's loaded pages, kept across navigation away from it.\n const memoryRef = useRef(new Map<string, Accumulated>());\n\n const isNewList = pageState.queryKey !== queryKey;\n\n const remembered = isNewList ? memoryRef.current.get(queryKey) : undefined;\n\n // Derived rather than read from state: the render that discovers the key\n // change still reaches the query below, and a list with no page 1 must never\n // be requested at page 2. A remembered list always holds page 1, so resuming\n // at its deepest page can't skip one.\n let page: number;\n if (!isNewList) {\n page = pageState.page;\n } else if (remembered) {\n page = deepestPage(remembered.pages);\n } else {\n page = 1;\n }\n\n if (isNewList) {\n setPageState({ queryKey, page });\n\n if (remembered) {\n setAccumulated(remembered);\n }\n }\n\n const { currentData, isLoading, isFetching, error, startedTimeStamp, fulfilledTimeStamp } =\n useGetAssetsQuery(\n {\n ...queryArgs,\n page,\n pageSize: PAGE_SIZE,\n },\n { skip: !enabled }\n );\n\n const isSameQuery = accumulated.queryKey === queryKey;\n\n // `currentData` is only ever the payload for the args just passed, so it\n // belongs to this key at this page — nothing to infer. Its reference is\n // stable per cache entry, so this settles after one extra render.\n if (\n // A restore already set the accumulator from memory; don't overwrite it.\n !remembered &&\n currentData &&\n (!isSameQuery || accumulated.pages[page] !== currentData.results)\n ) {\n setAccumulated(\n isSameQuery\n ? {\n ...accumulated,\n pages: { ...accumulated.pages, [page]: currentData.results },\n pagination: currentData.pagination,\n }\n : {\n queryKey,\n listKey,\n pages: { [page]: currentData.results },\n pagination: currentData.pagination,\n }\n );\n }\n\n // Merges a refetched earlier page back into the accumulator. Ignores reports\n // for a superseded query, and no-ops when the reference is unchanged so a\n // subscriber re-reporting its already-stored page can't loop.\n const handlePageRefreshed = useCallback<PageRefreshedHandler>(\n (refreshedPage, results) => {\n setAccumulated((prev) => {\n if (prev.queryKey !== queryKey || prev.pages[refreshedPage] === results) {\n return prev;\n }\n\n return { ...prev, pages: { ...prev.pages, [refreshedPage]: results } };\n });\n },\n [queryKey]\n );\n\n // One subscriber per earlier page (the current page is already subscribed by\n // the query above). Keyed by queryKey so a folder/sort/search change remounts\n // them against the new args instead of reusing a stale cache entry.\n // `createElement` rather than JSX so this stays a plain `.ts` hook file.\n const subscribers = createElement(\n Fragment,\n null,\n Array.from({ length: Math.max(0, page - 1) }, (_, index) => index + 1).map((earlierPage) =>\n createElement(PageSubscriber, {\n key: `${queryKey}:${earlierPage}`,\n queryArgs,\n page: earlierPage,\n onRefreshed: handlePageRefreshed,\n })\n )\n );\n\n // Remember what this list has read, so leaving it isn't forgetting it. Filed\n // under `accumulated.queryKey`, not the live `queryKey`: the accumulator names\n // the list it belongs to, so an entry still describing the list being left\n // can't be misfiled under the one being entered.\n useEffect(() => {\n if (Object.keys(accumulated.pages).length === 0) {\n return;\n }\n\n const memory = memoryRef.current;\n // Delete before set so the entry moves to the end. Map iterates in\n // insertion order, so the first key is the least recently used.\n memory.delete(accumulated.queryKey);\n memory.set(accumulated.queryKey, accumulated);\n\n while (memory.size > MAX_REMEMBERED_LISTS) {\n const oldest = memory.keys().next();\n\n if (oldest.done) {\n break;\n }\n\n memory.delete(oldest.value);\n }\n }, [accumulated]);\n\n // Drop the left folder's cached `getAssets` pages when the folder changes.\n //\n // RTK Query 1.9.7 leaves a query's store subscription in place when its last\n // subscriber unmounts while a refetch is still in flight — e.g. a delete\n // invalidates `{Asset, LIST}`, every loaded page starts refetching, and the\n // user navigates away before those settle. Those stale subscriptions make the\n // next `{Asset, LIST}` invalidation (an upload in the new folder) refetch the\n // *previous* folder's pages: one bogus `/upload/files` request per loaded\n // page. There is no public per-entry unsubscribe, so evict the left folder's\n // entries outright. Returning then re-reads every page it had loaded, but the\n // rows come straight back from the accumulator memory above — so those\n // requests refresh a list already on screen rather than being waited on.\n const dispatch = useDispatch();\n const store = useStore();\n const prevFolderRef = useRef(folder);\n useEffect(() => {\n const prevFolder = prevFolderRef.current;\n prevFolderRef.current = folder;\n if (prevFolder === folder) {\n return;\n }\n\n const apiState = (store.getState() as Record<string, { queries?: Record<string, unknown> }>)[\n uploadApi.reducerPath\n ];\n const removeQueryResult = (\n uploadApi as unknown as {\n internalActions: {\n removeQueryResult: (payload: { queryCacheKey: string }) => { type: string };\n };\n }\n ).internalActions.removeQueryResult;\n\n Object.keys(apiState?.queries ?? {}).forEach((cacheKey) => {\n if (!cacheKey.startsWith('getAssets(')) {\n return;\n }\n let args: { folder?: number | null };\n try {\n args = JSON.parse(cacheKey.slice('getAssets('.length, -1));\n } catch {\n return;\n }\n if (args.folder === prevFolder) {\n dispatch(removeQueryResult({ queryCacheKey: cacheKey }));\n }\n });\n }, [folder, dispatch, store]);\n\n // Until the new list's first page lands the accumulator still holds the\n // previous folder. Reported as loading so the page shows a spinner instead\n // of the outgoing folder's assets under the incoming folder's header.\n const isChangingList = accumulated.listKey !== listKey;\n\n const loadedAssets = useMemo(\n () => (isChangingList ? [] : flattenPages(accumulated.pages)),\n [isChangingList, accumulated.pages]\n );\n\n // Deliberately the live value, not the stale-tolerant one below: paging must\n // never be driven by a total that belongs to the previous query.\n const hasNextPage = currentData ? page < currentData.pagination.pageCount : false;\n\n const completedUploads = useTypedSelector(selectCompletedUploads);\n\n // Only an unfiltered, unsearched list can place an upload locally: deciding\n // whether an asset satisfies a filter means reimplementing the server's\n // filter semantics client-side. Filtered views still refresh on the\n // end-of-batch invalidation, as they did before.\n const canPlaceUploads = !search && (filters?.length ?? 0) === 0;\n\n // When the loaded data came back from a request that started after a given\n // upload — i.e. the server had already stored it when asked. Past that point\n // the list is the authority on whether the asset is there at all, so bridging\n // must stop: otherwise a later delete or move, which refetches without it,\n // would have it re-inserted.\n const listAnsweredAfter =\n fulfilledTimeStamp !== undefined &&\n startedTimeStamp !== undefined &&\n // A refetch in flight leaves `fulfilledTimeStamp` on the previous response,\n // which predates this request — so only settled data counts.\n fulfilledTimeStamp > startedTimeStamp\n ? startedTimeStamp\n : undefined;\n\n const assets = useMemo(() => {\n if (!canPlaceUploads || completedUploads.length === 0) {\n return loadedAssets;\n }\n\n const bridging = completedUploads.filter(\n ({ asset, completedAt }) =>\n getRelationId(asset.folder) === folder &&\n (listAnsweredAfter === undefined || completedAt > listAnsweredAfter)\n );\n\n return mergeUploadedAssets({\n assets: loadedAssets,\n uploaded: bridging.map(({ asset }) => asset),\n sort,\n hasNextPage,\n });\n }, [\n canPlaceUploads,\n completedUploads,\n loadedAssets,\n folder,\n sort,\n hasNextPage,\n listAnsweredAfter,\n ]);\n const isFetchingMore = isFetching && page > 1;\n\n // A restored list already has rows on screen, so re-reading its current page\n // is a background refresh — reporting it as loading would swap those rows for\n // a spinner. Only an empty list has nothing better to show.\n const isLoadingList = isChangingList || (isLoading && assets.length === 0);\n\n const fetchNextPage = useCallback(() => {\n setPageState((prev) => ({\n queryKey,\n page: (prev.queryKey === queryKey ? prev.page : 1) + 1,\n }));\n }, [queryKey]);\n\n if (!enabled) {\n return {\n assets: [] as File[],\n // No list to keep fresh while disabled, so nothing to subscribe.\n subscribers: null,\n pagination: undefined,\n isLoading: false,\n isFetchingMore: false,\n hasNextPage: false,\n fetchNextPage,\n error: undefined,\n };\n }\n\n return {\n assets,\n subscribers,\n // Falls back to the accumulated total so a consumer showing the count\n // doesn't flash zero mid-transition, matching the possibly stale `assets`.\n pagination: currentData?.pagination ?? accumulated.pagination,\n isLoading: isLoadingList,\n isFetchingMore,\n hasNextPage,\n fetchNextPage,\n error,\n };\n};\n\nexport { useInfiniteAssets };\nexport { PAGE_SIZE };\n"],"names":["PAGE_SIZE","MAX_REMEMBERED_LISTS","flattenPages","pages","byId","Map","page","Object","keys","map","Number","sort","a","b","asset","set","id","values","deepestPage","reduce","deepest","key","Math","max","PageSubscriber","queryArgs","onRefreshed","currentData","useGetAssetsQuery","pageSize","results","useEffect","useInfiniteAssets","folder","search","filters","enabled","queryKey","JSON","stringify","listKey","pageState","setPageState","useState","accumulated","setAccumulated","memoryRef","useRef","isNewList","remembered","current","get","undefined","isLoading","isFetching","error","startedTimeStamp","fulfilledTimeStamp","skip","isSameQuery","pagination","handlePageRefreshed","useCallback","refreshedPage","prev","subscribers","createElement","Fragment","Array","from","length","_","index","earlierPage","memory","delete","size","oldest","next","done","value","dispatch","useDispatch","store","useStore","prevFolderRef","prevFolder","apiState","getState","uploadApi","reducerPath","removeQueryResult","internalActions","queries","forEach","cacheKey","startsWith","args","parse","slice","queryCacheKey","isChangingList","loadedAssets","useMemo","hasNextPage","pageCount","completedUploads","useTypedSelector","selectCompletedUploads","canPlaceUploads","listAnsweredAfter","assets","bridging","filter","completedAt","getRelationId","mergeUploadedAssets","uploaded","isFetchingMore","isLoadingList","fetchNextPage"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInfiniteScrollSentinel.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useInfiniteScrollSentinel.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\ninterface UseInfiniteScrollSentinelArgs {\n /** Whether there is a further page to request. */\n hasNextPage: boolean;\n /** Whether a subsequent page is already in flight. */\n isFetchingMore: boolean;\n /** Called to request the next page. Held in a ref, so it need not be stable. */\n onLoadMore: () => void;\n /**\n * Passed to the `IntersectionObserver`. Read once, when the sentinel node\n * attaches — changing it afterwards does NOT rebuild the observer, so a\n * later `threshold`/`rootMargin` is silently ignored. Pass a stable, ideally\n * module-level, object.\n */\n options?: IntersectionObserverInit;\n}\n\n/**\n * Infinite-scroll trigger for the media library list.\n *\n * Returns a callback ref to place on a sentinel element rendered after the last\n * row. Three deliberate choices:\n *\n * 1. **Loading is driven only by fresh observer readings.** A fetch fires from\n * the `IntersectionObserver` callback — never from a state/prop change — so\n * it can't react to a stale `isIntersecting` from before newly loaded rows\n * rendered (which fetched an extra page on every trigger).\n *\n * 2. **Each settled page re-observes the sentinel.** An `IntersectionObserver`\n * only fires on a *transition*. When the sentinel stays on screen (a page\n * that doesn't fill the viewport — tall viewport, short page, grid fitting\n * the whole page) it would never fire again and loading would stall. So when\n * `isFetchingMore` settles back to false we re-observe, forcing a fresh\n * reading against the new layout: still on screen → load the next page;\n * viewport now filled → stop.\n *\n * 3. **A callback ref, not a stable object ref.** The sentinel only mounts once\n * the first page has rendered (the list shows a loader before that). A\n * callback ref (re)binds the observer exactly when the node mounts/unmounts,\n * so the observer can't miss a sentinel that appears after the hook first ran.\n */\nexport const useInfiniteScrollSentinel = ({\n hasNextPage,\n isFetchingMore,\n onLoadMore,\n options,\n}: UseInfiniteScrollSentinelArgs) => {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const nodeRef = useRef<HTMLElement | null>(null);\n\n // Read through refs so the callback ref stays stable and the observer callback\n // always sees the latest values. `options` is read once at attach time (see\n // its JSDoc); `onLoadMore` need not be stable.\n const optionsRef = useRef(options);\n optionsRef.current = options;\n const onLoadMoreRef = useRef(onLoadMore);\n onLoadMoreRef.current = onLoadMore;\n const hasNextPageRef = useRef(hasNextPage);\n hasNextPageRef.current = hasNextPage;\n const isFetchingMoreRef = useRef(isFetchingMore);\n isFetchingMoreRef.current = isFetchingMore;\n\n const sentinelRef = useCallback((node: HTMLElement | null) => {\n observerRef.current?.disconnect();\n nodeRef.current = node;\n\n if (!node) {\n return;\n }\n\n const observer = new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting && hasNextPageRef.current && !isFetchingMoreRef.current) {\n onLoadMoreRef.current();\n }\n }, optionsRef.current);\n\n observer.observe(node);\n observerRef.current = observer;\n }, []);\n\n useEffect(() => () => observerRef.current?.disconnect(), []);\n\n // Once a page settles, re-observe so a *fresh* reading against the new layout\n // decides whether to keep loading — rather than a stale `isIntersecting` from\n // before the rows rendered. Re-observing re-emits the current intersection\n // even without a transition, which is what keeps loading a viewport that a\n // single page didn't fill.\n useEffect(() => {\n if (isFetchingMore || !observerRef.current || !nodeRef.current) {\n return;\n }\n\n observerRef.current.unobserve(nodeRef.current);\n observerRef.current.observe(nodeRef.current);\n }, [isFetchingMore]);\n\n return sentinelRef;\n};\n"],"names":["useInfiniteScrollSentinel","hasNextPage","isFetchingMore","onLoadMore","options","observerRef","useRef","nodeRef","optionsRef","current","onLoadMoreRef","hasNextPageRef","isFetchingMoreRef","sentinelRef","useCallback","node","disconnect","observer","IntersectionObserver","entry","isIntersecting","observe","useEffect","unobserve"],"mappings":";;;;AAkBA;;;;;;;;;;;;;;;;;;;;;;;AAuBC,IACM,MAAMA,yBAAAA,GAA4B,CAAC,EACxCC,WAAW,EACXC,cAAc,EACdC,UAAU,EACVC,OAAO,EACuB,GAAA;AAC9B,IAAA,MAAMC,cAAcC,YAAAA,CAAoC,IAAA,CAAA;AACxD,IAAA,MAAMC,UAAUD,YAAAA,CAA2B,IAAA,CAAA;;;;AAK3C,IAAA,MAAME,aAAaF,YAAAA,CAAOF,OAAAA,CAAAA;AAC1BI,IAAAA,UAAAA,CAAWC,OAAO,GAAGL,OAAAA;AACrB,IAAA,MAAMM,gBAAgBJ,YAAAA,CAAOH,UAAAA,CAAAA;AAC7BO,IAAAA,aAAAA,CAAcD,OAAO,GAAGN,UAAAA;AACxB,IAAA,MAAMQ,iBAAiBL,YAAAA,CAAOL,WAAAA,CAAAA;AAC9BU,IAAAA,cAAAA,CAAeF,OAAO,GAAGR,WAAAA;AACzB,IAAA,MAAMW,oBAAoBN,YAAAA,CAAOJ,cAAAA,CAAAA;AACjCU,IAAAA,iBAAAA,CAAkBH,OAAO,GAAGP,cAAAA;IAE5B,MAAMW,WAAAA,GAAcC,kBAAY,CAACC,IAAAA,GAAAA;AAC/BV,QAAAA,WAAAA,CAAYI,OAAO,EAAEO,UAAAA,EAAAA;AACrBT,QAAAA,OAAAA,CAAQE,OAAO,GAAGM,IAAAA;AAElB,QAAA,IAAI,CAACA,IAAAA,EAAM;AACT,YAAA;AACF,QAAA;AAEA,QAAA,MAAME,QAAAA,GAAW,IAAIC,oBAAAA,CAAqB,CAAC,CAACC,KAAAA,CAAM,GAAA;YAChD,IAAIA,KAAAA,CAAMC,cAAc,IAAIT,cAAAA,CAAeF,OAAO,IAAI,CAACG,iBAAAA,CAAkBH,OAAO,EAAE;AAChFC,gBAAAA,aAAAA,CAAcD,OAAO,EAAA;AACvB,YAAA;AACF,QAAA,CAAA,EAAGD,WAAWC,OAAO,CAAA;AAErBQ,QAAAA,QAAAA,CAASI,OAAO,CAACN,IAAAA,CAAAA;AACjBV,QAAAA,WAAAA,CAAYI,OAAO,GAAGQ,QAAAA;AACxB,IAAA,CAAA,EAAG,EAAE,CAAA;AAELK,IAAAA,eAAAA,CAAU,IAAM,IAAMjB,WAAAA,CAAYI,OAAO,EAAEO,cAAc,EAAE,CAAA;;;;;;IAO3DM,eAAAA,CAAU,IAAA;QACR,IAAIpB,cAAAA,IAAkB,CAACG,WAAAA,CAAYI,OAAO,IAAI,CAACF,OAAAA,CAAQE,OAAO,EAAE;AAC9D,YAAA;AACF,QAAA;AAEAJ,QAAAA,WAAAA,CAAYI,OAAO,CAACc,SAAS,CAAChB,QAAQE,OAAO,CAAA;AAC7CJ,QAAAA,WAAAA,CAAYI,OAAO,CAACY,OAAO,CAACd,QAAQE,OAAO,CAAA;IAC7C,CAAA,EAAG;AAACP,QAAAA;AAAe,KAAA,CAAA;IAEnB,OAAOW,WAAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInfiniteScrollSentinel.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useInfiniteScrollSentinel.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\ninterface UseInfiniteScrollSentinelArgs {\n /** Whether there is a further page to request. */\n hasNextPage: boolean;\n /** Whether a subsequent page is already in flight. */\n isFetchingMore: boolean;\n /** Called to request the next page. Held in a ref, so it need not be stable. */\n onLoadMore: () => void;\n /**\n * Passed to the `IntersectionObserver`. Read once, when the sentinel node\n * attaches — changing it afterwards does NOT rebuild the observer, so a\n * later `threshold`/`rootMargin` is silently ignored. Pass a stable, ideally\n * module-level, object.\n */\n options?: IntersectionObserverInit;\n}\n\n/**\n * Infinite-scroll trigger for the media library list.\n *\n * Returns a callback ref to place on a sentinel element rendered after the last\n * row. Three deliberate choices:\n *\n * 1. **Loading is driven only by fresh observer readings.** A fetch fires from\n * the `IntersectionObserver` callback — never from a state/prop change — so\n * it can't react to a stale `isIntersecting` from before newly loaded rows\n * rendered (which fetched an extra page on every trigger).\n *\n * 2. **Each settled page re-observes the sentinel.** An `IntersectionObserver`\n * only fires on a *transition*. When the sentinel stays on screen (a page\n * that doesn't fill the viewport — tall viewport, short page, grid fitting\n * the whole page) it would never fire again and loading would stall. So when\n * `isFetchingMore` settles back to false we re-observe, forcing a fresh\n * reading against the new layout: still on screen → load the next page;\n * viewport now filled → stop.\n *\n * 3. **A callback ref, not a stable object ref.** The sentinel only mounts once\n * the first page has rendered (the list shows a loader before that). A\n * callback ref (re)binds the observer exactly when the node mounts/unmounts,\n * so the observer can't miss a sentinel that appears after the hook first ran.\n */\nexport const useInfiniteScrollSentinel = ({\n hasNextPage,\n isFetchingMore,\n onLoadMore,\n options,\n}: UseInfiniteScrollSentinelArgs) => {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const nodeRef = useRef<HTMLElement | null>(null);\n\n // Read through refs so the callback ref stays stable and the observer callback\n // always sees the latest values. `options` is read once at attach time (see\n // its JSDoc); `onLoadMore` need not be stable.\n const optionsRef = useRef(options);\n optionsRef.current = options;\n const onLoadMoreRef = useRef(onLoadMore);\n onLoadMoreRef.current = onLoadMore;\n const hasNextPageRef = useRef(hasNextPage);\n hasNextPageRef.current = hasNextPage;\n const isFetchingMoreRef = useRef(isFetchingMore);\n isFetchingMoreRef.current = isFetchingMore;\n\n const sentinelRef = useCallback((node: HTMLElement | null) => {\n observerRef.current?.disconnect();\n nodeRef.current = node;\n\n if (!node) {\n return;\n }\n\n const observer = new IntersectionObserver(([entry]) => {\n if (entry.isIntersecting && hasNextPageRef.current && !isFetchingMoreRef.current) {\n onLoadMoreRef.current();\n }\n }, optionsRef.current);\n\n observer.observe(node);\n observerRef.current = observer;\n }, []);\n\n useEffect(() => () => observerRef.current?.disconnect(), []);\n\n // Once a page settles, re-observe so a *fresh* reading against the new layout\n // decides whether to keep loading — rather than a stale `isIntersecting` from\n // before the rows rendered. Re-observing re-emits the current intersection\n // even without a transition, which is what keeps loading a viewport that a\n // single page didn't fill.\n useEffect(() => {\n if (isFetchingMore || !observerRef.current || !nodeRef.current) {\n return;\n }\n\n observerRef.current.unobserve(nodeRef.current);\n observerRef.current.observe(nodeRef.current);\n }, [isFetchingMore]);\n\n return sentinelRef;\n};\n"],"names":["useInfiniteScrollSentinel","hasNextPage","isFetchingMore","onLoadMore","options","observerRef","useRef","nodeRef","optionsRef","current","onLoadMoreRef","hasNextPageRef","isFetchingMoreRef","sentinelRef","useCallback","node","disconnect","observer","IntersectionObserver","entry","isIntersecting","observe","useEffect","unobserve"],"mappings":";;AAkBA;;;;;;;;;;;;;;;;;;;;;;;AAuBC,IACM,MAAMA,yBAAAA,GAA4B,CAAC,EACxCC,WAAW,EACXC,cAAc,EACdC,UAAU,EACVC,OAAO,EACuB,GAAA;AAC9B,IAAA,MAAMC,cAAcC,MAAAA,CAAoC,IAAA,CAAA;AACxD,IAAA,MAAMC,UAAUD,MAAAA,CAA2B,IAAA,CAAA;;;;AAK3C,IAAA,MAAME,aAAaF,MAAAA,CAAOF,OAAAA,CAAAA;AAC1BI,IAAAA,UAAAA,CAAWC,OAAO,GAAGL,OAAAA;AACrB,IAAA,MAAMM,gBAAgBJ,MAAAA,CAAOH,UAAAA,CAAAA;AAC7BO,IAAAA,aAAAA,CAAcD,OAAO,GAAGN,UAAAA;AACxB,IAAA,MAAMQ,iBAAiBL,MAAAA,CAAOL,WAAAA,CAAAA;AAC9BU,IAAAA,cAAAA,CAAeF,OAAO,GAAGR,WAAAA;AACzB,IAAA,MAAMW,oBAAoBN,MAAAA,CAAOJ,cAAAA,CAAAA;AACjCU,IAAAA,iBAAAA,CAAkBH,OAAO,GAAGP,cAAAA;IAE5B,MAAMW,WAAAA,GAAcC,YAAY,CAACC,IAAAA,GAAAA;AAC/BV,QAAAA,WAAAA,CAAYI,OAAO,EAAEO,UAAAA,EAAAA;AACrBT,QAAAA,OAAAA,CAAQE,OAAO,GAAGM,IAAAA;AAElB,QAAA,IAAI,CAACA,IAAAA,EAAM;AACT,YAAA;AACF,QAAA;AAEA,QAAA,MAAME,QAAAA,GAAW,IAAIC,oBAAAA,CAAqB,CAAC,CAACC,KAAAA,CAAM,GAAA;YAChD,IAAIA,KAAAA,CAAMC,cAAc,IAAIT,cAAAA,CAAeF,OAAO,IAAI,CAACG,iBAAAA,CAAkBH,OAAO,EAAE;AAChFC,gBAAAA,aAAAA,CAAcD,OAAO,EAAA;AACvB,YAAA;AACF,QAAA,CAAA,EAAGD,WAAWC,OAAO,CAAA;AAErBQ,QAAAA,QAAAA,CAASI,OAAO,CAACN,IAAAA,CAAAA;AACjBV,QAAAA,WAAAA,CAAYI,OAAO,GAAGQ,QAAAA;AACxB,IAAA,CAAA,EAAG,EAAE,CAAA;AAELK,IAAAA,SAAAA,CAAU,IAAM,IAAMjB,WAAAA,CAAYI,OAAO,EAAEO,cAAc,EAAE,CAAA;;;;;;IAO3DM,SAAAA,CAAU,IAAA;QACR,IAAIpB,cAAAA,IAAkB,CAACG,WAAAA,CAAYI,OAAO,IAAI,CAACF,OAAAA,CAAQE,OAAO,EAAE;AAC9D,YAAA;AACF,QAAA;AAEAJ,QAAAA,WAAAA,CAAYI,OAAO,CAACc,SAAS,CAAChB,QAAQE,OAAO,CAAA;AAC7CJ,QAAAA,WAAAA,CAAYI,OAAO,CAACY,OAAO,CAACd,QAAQE,OAAO,CAAA;IAC7C,CAAA,EAAG;AAACP,QAAAA;AAAe,KAAA,CAAA;IAEnB,OAAOW,WAAAA;AACT;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsAssetDetailsOpen.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useIsAssetDetailsOpen.ts"],"sourcesContent":["import { useQueryParams } from '@strapi/admin/strapi-admin';\n\n/** Name of the parameter to look for in the URL to open the asset details drawer. */\nexport const ASSET_DETAILS_URL_PARAM = 'assetId';\n\n/**\n * The asset id in the URL, or `null` when the param is absent or unparseable.\n *\n * One definition shared by the drawer (which needs the id) and the \"is it open?\"\n * hook below, so the two can never disagree about what counts as open.\n */\nexport const parseAssetDetailsId = (raw: string | undefined): number | null => {\n const parsed = raw ? parseInt(raw, 10) : NaN;\n\n return Number.isNaN(parsed) ? null : parsed;\n};\n\n/**\n * Whether the asset details drawer is open, derived purely from the URL.\n *\n * Deliberately separate from `useAssetDetailsParam`, which additionally owns the\n * drawer's mount lifecycle: its `shouldRenderDrawer` only stays correct in the\n * component wired to the close animation, so a second caller would strand it at\n * `true`. Anything that just needs the answer reads this instead.\n */\nexport const useIsAssetDetailsOpen = (): boolean => {\n const [{ query }] = useQueryParams<{ [ASSET_DETAILS_URL_PARAM]?: string }>();\n\n return parseAssetDetailsId(query?.[ASSET_DETAILS_URL_PARAM]) !== null;\n};\n"],"names":["ASSET_DETAILS_URL_PARAM","parseAssetDetailsId","raw","parsed","parseInt","NaN","Number","isNaN","useIsAssetDetailsOpen","query","useQueryParams"],"mappings":";;;;AAEA,sFACO,MAAMA,uBAAAA,GAA0B;AAEvC;;;;;IAMO,MAAMC,mBAAAA,GAAsB,CAACC,GAAAA,GAAAA;AAClC,IAAA,MAAMC,MAAAA,GAASD,GAAAA,GAAME,QAAAA,CAASF,GAAAA,EAAK,EAAA,CAAA,GAAMG,GAAAA;AAEzC,IAAA,OAAOC,MAAAA,CAAOC,KAAK,CAACJ,MAAAA,CAAAA,GAAU,IAAA,GAAOA,MAAAA;AACvC;AAEA;;;;;;;UAQaK,qBAAAA,GAAwB,IAAA;AACnC,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AAEpB,IAAA,OAAOT,mBAAAA,CAAoBQ,KAAAA,GAAQT,uBAAAA,CAAwB,CAAA,KAAM,IAAA;AACnE;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsAssetDetailsOpen.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useIsAssetDetailsOpen.ts"],"sourcesContent":["import { useQueryParams } from '@strapi/admin/strapi-admin';\n\n/** Name of the parameter to look for in the URL to open the asset details drawer. */\nexport const ASSET_DETAILS_URL_PARAM = 'assetId';\n\n/**\n * The asset id in the URL, or `null` when the param is absent or unparseable.\n *\n * One definition shared by the drawer (which needs the id) and the \"is it open?\"\n * hook below, so the two can never disagree about what counts as open.\n */\nexport const parseAssetDetailsId = (raw: string | undefined): number | null => {\n const parsed = raw ? parseInt(raw, 10) : NaN;\n\n return Number.isNaN(parsed) ? null : parsed;\n};\n\n/**\n * Whether the asset details drawer is open, derived purely from the URL.\n *\n * Deliberately separate from `useAssetDetailsParam`, which additionally owns the\n * drawer's mount lifecycle: its `shouldRenderDrawer` only stays correct in the\n * component wired to the close animation, so a second caller would strand it at\n * `true`. Anything that just needs the answer reads this instead.\n */\nexport const useIsAssetDetailsOpen = (): boolean => {\n const [{ query }] = useQueryParams<{ [ASSET_DETAILS_URL_PARAM]?: string }>();\n\n return parseAssetDetailsId(query?.[ASSET_DETAILS_URL_PARAM]) !== null;\n};\n"],"names":["ASSET_DETAILS_URL_PARAM","parseAssetDetailsId","raw","parsed","parseInt","NaN","Number","isNaN","useIsAssetDetailsOpen","query","useQueryParams"],"mappings":";;AAEA,sFACO,MAAMA,uBAAAA,GAA0B;AAEvC;;;;;IAMO,MAAMC,mBAAAA,GAAsB,CAACC,GAAAA,GAAAA;AAClC,IAAA,MAAMC,MAAAA,GAASD,GAAAA,GAAME,QAAAA,CAASF,GAAAA,EAAK,EAAA,CAAA,GAAMG,GAAAA;AAEzC,IAAA,OAAOC,MAAAA,CAAOC,KAAK,CAACJ,MAAAA,CAAAA,GAAU,IAAA,GAAOA,MAAAA;AACvC;AAEA;;;;;;;UAQaK,qBAAAA,GAAwB,IAAA;AACnC,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AAEpB,IAAA,OAAOT,mBAAAA,CAAoBQ,KAAAA,GAAQT,uBAAAA,CAAwB,CAAA,KAAM,IAAA;AACnE;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListFilters.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useListFilters.ts"],"sourcesContent":["import { useQueryParams, withEncodedUserParams } from '@strapi/admin/strapi-admin';\n\n/**\n * Filter state for the assets list, backed by a single `?filters=` query param\n * so the applied filters are shareable and survive Back/refresh.\n *\n * Serialized grammar — badges separated by `;`, one badge is\n * `<field>:<condition>:<value>`:\n *\n * - `type:is:picture,audio` / `type:not:folder`\n * - `created:within:1week` / `updated:notwithin:3months` / `created:exact:1day`\n * - `created:rangeis:2024-01-01..2024-04-07` / `created:rangenot:...`\n *\n * Relative presets stay relative in the URL on purpose: the badge label\n * (\"1 week ago\") remains truthful forever and a shared link means \"within the\n * last week from whenever it is opened\". Resolution to absolute timestamps\n * happens at query-build time (see utils/buildAssetFilters.ts).\n *\n * Several badges for the same field are allowed, even contradictory ones —\n * everything is combined with AND; contradictions simply produce the filtered\n * empty state.\n */\n\nexport const TYPE_VALUES = ['folder', 'picture', 'audio', 'video', 'document'] as const;\nexport type TypeValue = (typeof TYPE_VALUES)[number];\n\nexport const DATE_PRESETS = [\n '1day',\n '3days',\n '1week',\n '1month',\n '3months',\n '6months',\n '1year',\n] as const;\nexport type DatePreset = (typeof DATE_PRESETS)[number];\n\nexport type TypeCondition = 'is' | 'isNot';\nexport type PresetCondition = 'isExactly' | 'withinLast' | 'notWithinLast';\nexport type RangeCondition = 'is' | 'isNot';\n\nexport type DateField = 'createdAt' | 'updatedAt';\n\nexport interface TypeFilter {\n kind: 'type';\n condition: TypeCondition;\n values: TypeValue[];\n}\n\nexport interface DatePresetFilter {\n kind: 'date';\n field: DateField;\n mode: 'preset';\n condition: PresetCondition;\n preset: DatePreset;\n}\n\nexport interface DateRangeFilter {\n kind: 'date';\n field: DateField;\n mode: 'range';\n condition: RangeCondition;\n /** Calendar dates, `YYYY-MM-DD`, inclusive on both ends. */\n from: string;\n to: string;\n}\n\nexport type DateFilter = DatePresetFilter | DateRangeFilter;\nexport type ListFilter = TypeFilter | DateFilter;\n\nconst FIELD_TOKENS: Record<string, DateField> = {\n created: 'createdAt',\n updated: 'updatedAt',\n};\nconst FIELD_TOKEN_BY_FIELD: Record<DateField, string> = {\n createdAt: 'created',\n updatedAt: 'updated',\n};\n\nconst PRESET_CONDITION_TOKENS: Record<string, PresetCondition> = {\n exact: 'isExactly',\n within: 'withinLast',\n notwithin: 'notWithinLast',\n};\nconst PRESET_TOKEN_BY_CONDITION: Record<PresetCondition, string> = {\n isExactly: 'exact',\n withinLast: 'within',\n notWithinLast: 'notwithin',\n};\n\nconst RANGE_CONDITION_TOKENS: Record<string, RangeCondition> = {\n rangeis: 'is',\n rangenot: 'isNot',\n};\nconst RANGE_TOKEN_BY_CONDITION: Record<RangeCondition, string> = {\n is: 'rangeis',\n isNot: 'rangenot',\n};\n\nconst DATE_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nconst isTypeValue = (value: string): value is TypeValue =>\n (TYPE_VALUES as readonly string[]).includes(value);\n\nconst isDatePreset = (value: string): value is DatePreset =>\n (DATE_PRESETS as readonly string[]).includes(value);\n\nconst parseBadge = (raw: string): ListFilter | null => {\n const [field, condition, value] = raw.split(':');\n\n if (!field || !condition || !value) {\n return null;\n }\n\n if (field === 'type') {\n if (condition !== 'is' && condition !== 'not') {\n return null;\n }\n const values = value.split(',').filter(isTypeValue);\n\n return values.length > 0\n ? { kind: 'type', condition: condition === 'is' ? 'is' : 'isNot', values }\n : null;\n }\n\n const dateField = FIELD_TOKENS[field];\n if (!dateField) {\n return null;\n }\n\n if (condition in PRESET_CONDITION_TOKENS) {\n return isDatePreset(value)\n ? {\n kind: 'date',\n field: dateField,\n mode: 'preset',\n condition: PRESET_CONDITION_TOKENS[condition],\n preset: value,\n }\n : null;\n }\n\n if (condition in RANGE_CONDITION_TOKENS) {\n const [from, to] = value.split('..');\n\n return DATE_RE.test(from ?? '') && DATE_RE.test(to ?? '')\n ? {\n kind: 'date',\n field: dateField,\n mode: 'range',\n condition: RANGE_CONDITION_TOKENS[condition],\n from,\n to,\n }\n : null;\n }\n\n return null;\n};\n\n/**\n * `unknown` on purpose: the query string is user-editable, and qs parses\n * shapes like `?filters[]=a&filters[]=b` into arrays — the guard is what\n * makes the caller's `?filters=` type an assertion rather than a crash.\n */\nexport const parseFiltersParam = (raw: unknown): ListFilter[] => {\n if (typeof raw !== 'string' || raw === '') {\n return [];\n }\n\n return raw\n .split(';')\n .map(parseBadge)\n .filter((filter): filter is ListFilter => filter !== null);\n};\n\nconst serializeBadge = (filter: ListFilter): string => {\n if (filter.kind === 'type') {\n return `type:${filter.condition === 'is' ? 'is' : 'not'}:${filter.values.join(',')}`;\n }\n\n const field = FIELD_TOKEN_BY_FIELD[filter.field];\n\n if (filter.mode === 'preset') {\n return `${field}:${PRESET_TOKEN_BY_CONDITION[filter.condition]}:${filter.preset}`;\n }\n\n return `${field}:${RANGE_TOKEN_BY_CONDITION[filter.condition]}:${filter.from}..${filter.to}`;\n};\n\nexport const serializeFilters = (filters: ListFilter[]): string =>\n filters.map(serializeBadge).join(';');\n\nexport interface ListFilters {\n filters: ListFilter[];\n /** Serialized form — stable fingerprint for list-identity (selection reset). */\n serialized: string;\n addFilter: (filter: ListFilter) => void;\n /** Replaces the badge at `index` (condition or value edited in place). */\n updateFilter: (index: number, filter: ListFilter) => void;\n removeFilter: (index: number) => void;\n clearFilters: () => void;\n}\n\nexport const useListFilters = (): ListFilters => {\n const [{ query }, setQuery] = useQueryParams<{ filters?: string; _q?: string }>();\n\n const filters = parseFiltersParam(query?.filters);\n\n // `replace: true` on every write: filters are edited in rapid micro-steps\n // (each checkbox of the keep-open Type submenu, each badge segment edit), so\n // pushing would turn one logical change into a stack of Back entries. The\n // URL stays shareable and refresh-safe either way.\n const writeFilters = (next: ListFilter[]) => {\n if (next.length === 0) {\n setQuery(withEncodedUserParams(query, { filters: undefined }), 'push', true);\n } else {\n setQuery(withEncodedUserParams(query, { filters: serializeFilters(next) }), 'push', true);\n }\n };\n\n return {\n filters,\n serialized: serializeFilters(filters),\n addFilter: (filter) => writeFilters([...filters, filter]),\n updateFilter: (index, filter) =>\n writeFilters(filters.map((f, i) => (i === index ? filter : f))),\n removeFilter: (index) => writeFilters(filters.filter((_, i) => i !== index)),\n clearFilters: () => writeFilters([]),\n };\n};\n"],"names":["TYPE_VALUES","DATE_PRESETS","FIELD_TOKENS","created","updated","FIELD_TOKEN_BY_FIELD","createdAt","updatedAt","PRESET_CONDITION_TOKENS","exact","within","notwithin","PRESET_TOKEN_BY_CONDITION","isExactly","withinLast","notWithinLast","RANGE_CONDITION_TOKENS","rangeis","rangenot","RANGE_TOKEN_BY_CONDITION","is","isNot","DATE_RE","isTypeValue","value","includes","isDatePreset","parseBadge","raw","field","condition","split","values","filter","length","kind","dateField","mode","preset","from","to","test","parseFiltersParam","map","serializeBadge","join","serializeFilters","filters","useListFilters","query","setQuery","useQueryParams","writeFilters","next","withEncodedUserParams","undefined","serialized","addFilter","updateFilter","index","f","i","removeFilter","_","clearFilters"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListFilters.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useListFilters.ts"],"sourcesContent":["import { useQueryParams, withEncodedUserParams } from '@strapi/admin/strapi-admin';\n\n/**\n * Filter state for the assets list, backed by a single `?filters=` query param\n * so the applied filters are shareable and survive Back/refresh.\n *\n * Serialized grammar — badges separated by `;`, one badge is\n * `<field>:<condition>:<value>`:\n *\n * - `type:is:picture,audio` / `type:not:folder`\n * - `created:within:1week` / `updated:notwithin:3months` / `created:exact:1day`\n * - `created:rangeis:2024-01-01..2024-04-07` / `created:rangenot:...`\n *\n * Relative presets stay relative in the URL on purpose: the badge label\n * (\"1 week ago\") remains truthful forever and a shared link means \"within the\n * last week from whenever it is opened\". Resolution to absolute timestamps\n * happens at query-build time (see utils/buildAssetFilters.ts).\n *\n * Several badges for the same field are allowed, even contradictory ones —\n * everything is combined with AND; contradictions simply produce the filtered\n * empty state.\n */\n\nexport const TYPE_VALUES = ['folder', 'picture', 'audio', 'video', 'document'] as const;\nexport type TypeValue = (typeof TYPE_VALUES)[number];\n\nexport const DATE_PRESETS = [\n '1day',\n '3days',\n '1week',\n '1month',\n '3months',\n '6months',\n '1year',\n] as const;\nexport type DatePreset = (typeof DATE_PRESETS)[number];\n\nexport type TypeCondition = 'is' | 'isNot';\nexport type PresetCondition = 'isExactly' | 'withinLast' | 'notWithinLast';\nexport type RangeCondition = 'is' | 'isNot';\n\nexport type DateField = 'createdAt' | 'updatedAt';\n\nexport interface TypeFilter {\n kind: 'type';\n condition: TypeCondition;\n values: TypeValue[];\n}\n\nexport interface DatePresetFilter {\n kind: 'date';\n field: DateField;\n mode: 'preset';\n condition: PresetCondition;\n preset: DatePreset;\n}\n\nexport interface DateRangeFilter {\n kind: 'date';\n field: DateField;\n mode: 'range';\n condition: RangeCondition;\n /** Calendar dates, `YYYY-MM-DD`, inclusive on both ends. */\n from: string;\n to: string;\n}\n\nexport type DateFilter = DatePresetFilter | DateRangeFilter;\nexport type ListFilter = TypeFilter | DateFilter;\n\nconst FIELD_TOKENS: Record<string, DateField> = {\n created: 'createdAt',\n updated: 'updatedAt',\n};\nconst FIELD_TOKEN_BY_FIELD: Record<DateField, string> = {\n createdAt: 'created',\n updatedAt: 'updated',\n};\n\nconst PRESET_CONDITION_TOKENS: Record<string, PresetCondition> = {\n exact: 'isExactly',\n within: 'withinLast',\n notwithin: 'notWithinLast',\n};\nconst PRESET_TOKEN_BY_CONDITION: Record<PresetCondition, string> = {\n isExactly: 'exact',\n withinLast: 'within',\n notWithinLast: 'notwithin',\n};\n\nconst RANGE_CONDITION_TOKENS: Record<string, RangeCondition> = {\n rangeis: 'is',\n rangenot: 'isNot',\n};\nconst RANGE_TOKEN_BY_CONDITION: Record<RangeCondition, string> = {\n is: 'rangeis',\n isNot: 'rangenot',\n};\n\nconst DATE_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nconst isTypeValue = (value: string): value is TypeValue =>\n (TYPE_VALUES as readonly string[]).includes(value);\n\nconst isDatePreset = (value: string): value is DatePreset =>\n (DATE_PRESETS as readonly string[]).includes(value);\n\nconst parseBadge = (raw: string): ListFilter | null => {\n const [field, condition, value] = raw.split(':');\n\n if (!field || !condition || !value) {\n return null;\n }\n\n if (field === 'type') {\n if (condition !== 'is' && condition !== 'not') {\n return null;\n }\n const values = value.split(',').filter(isTypeValue);\n\n return values.length > 0\n ? { kind: 'type', condition: condition === 'is' ? 'is' : 'isNot', values }\n : null;\n }\n\n const dateField = FIELD_TOKENS[field];\n if (!dateField) {\n return null;\n }\n\n if (condition in PRESET_CONDITION_TOKENS) {\n return isDatePreset(value)\n ? {\n kind: 'date',\n field: dateField,\n mode: 'preset',\n condition: PRESET_CONDITION_TOKENS[condition],\n preset: value,\n }\n : null;\n }\n\n if (condition in RANGE_CONDITION_TOKENS) {\n const [from, to] = value.split('..');\n\n return DATE_RE.test(from ?? '') && DATE_RE.test(to ?? '')\n ? {\n kind: 'date',\n field: dateField,\n mode: 'range',\n condition: RANGE_CONDITION_TOKENS[condition],\n from,\n to,\n }\n : null;\n }\n\n return null;\n};\n\n/**\n * `unknown` on purpose: the query string is user-editable, and qs parses\n * shapes like `?filters[]=a&filters[]=b` into arrays — the guard is what\n * makes the caller's `?filters=` type an assertion rather than a crash.\n */\nexport const parseFiltersParam = (raw: unknown): ListFilter[] => {\n if (typeof raw !== 'string' || raw === '') {\n return [];\n }\n\n return raw\n .split(';')\n .map(parseBadge)\n .filter((filter): filter is ListFilter => filter !== null);\n};\n\nconst serializeBadge = (filter: ListFilter): string => {\n if (filter.kind === 'type') {\n return `type:${filter.condition === 'is' ? 'is' : 'not'}:${filter.values.join(',')}`;\n }\n\n const field = FIELD_TOKEN_BY_FIELD[filter.field];\n\n if (filter.mode === 'preset') {\n return `${field}:${PRESET_TOKEN_BY_CONDITION[filter.condition]}:${filter.preset}`;\n }\n\n return `${field}:${RANGE_TOKEN_BY_CONDITION[filter.condition]}:${filter.from}..${filter.to}`;\n};\n\nexport const serializeFilters = (filters: ListFilter[]): string =>\n filters.map(serializeBadge).join(';');\n\nexport interface ListFilters {\n filters: ListFilter[];\n /** Serialized form — stable fingerprint for list-identity (selection reset). */\n serialized: string;\n addFilter: (filter: ListFilter) => void;\n /** Replaces the badge at `index` (condition or value edited in place). */\n updateFilter: (index: number, filter: ListFilter) => void;\n removeFilter: (index: number) => void;\n clearFilters: () => void;\n}\n\nexport const useListFilters = (): ListFilters => {\n const [{ query }, setQuery] = useQueryParams<{ filters?: string; _q?: string }>();\n\n const filters = parseFiltersParam(query?.filters);\n\n // `replace: true` on every write: filters are edited in rapid micro-steps\n // (each checkbox of the keep-open Type submenu, each badge segment edit), so\n // pushing would turn one logical change into a stack of Back entries. The\n // URL stays shareable and refresh-safe either way.\n const writeFilters = (next: ListFilter[]) => {\n if (next.length === 0) {\n setQuery(withEncodedUserParams(query, { filters: undefined }), 'push', true);\n } else {\n setQuery(withEncodedUserParams(query, { filters: serializeFilters(next) }), 'push', true);\n }\n };\n\n return {\n filters,\n serialized: serializeFilters(filters),\n addFilter: (filter) => writeFilters([...filters, filter]),\n updateFilter: (index, filter) =>\n writeFilters(filters.map((f, i) => (i === index ? filter : f))),\n removeFilter: (index) => writeFilters(filters.filter((_, i) => i !== index)),\n clearFilters: () => writeFilters([]),\n };\n};\n"],"names":["TYPE_VALUES","DATE_PRESETS","FIELD_TOKENS","created","updated","FIELD_TOKEN_BY_FIELD","createdAt","updatedAt","PRESET_CONDITION_TOKENS","exact","within","notwithin","PRESET_TOKEN_BY_CONDITION","isExactly","withinLast","notWithinLast","RANGE_CONDITION_TOKENS","rangeis","rangenot","RANGE_TOKEN_BY_CONDITION","is","isNot","DATE_RE","isTypeValue","value","includes","isDatePreset","parseBadge","raw","field","condition","split","values","filter","length","kind","dateField","mode","preset","from","to","test","parseFiltersParam","map","serializeBadge","join","serializeFilters","filters","useListFilters","query","setQuery","useQueryParams","writeFilters","next","withEncodedUserParams","undefined","serialized","addFilter","updateFilter","index","f","i","removeFilter","_","clearFilters"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListScrollRestoration.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useListScrollRestoration.ts"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useRef } from 'react';\n\n/**\n * The admin layout marks the element that scrolls the main column (see\n * `Layouts.Root`). The media library has no scroll container of its own, so the\n * offset to save and restore belongs to that ancestor.\n */\nconst SCROLL_ROOT_SELECTOR = '[data-strapi-main-content]';\n\n/**\n * How long a restore keeps retrying after the list key changes.\n *\n * A returning list usually comes back from memory in one commit, so the first\n * attempt lands. When it doesn't — pages still loading, so the content isn't yet\n * tall enough to scroll that far — later commits retry. Past this window the\n * offset is dropped rather than yanked out from under someone already reading.\n */\nconst RESTORE_WINDOW_MS = 2000;\n\n/**\n * How many list offsets to keep. Matches `MAX_REMEMBERED_LISTS` in\n * `useInfiniteAssets`: the two are keyed identically, so they should forget on\n * the same terms.\n */\nconst MAX_REMEMBERED_OFFSETS = 10;\n\ninterface PendingRestore {\n top: number;\n deadline: number;\n}\n\n/**\n * Remembers where each list was scrolled to and puts it back on return.\n *\n * `key` fingerprints the list on screen (folder, search, sort, filters). While\n * it holds steady the current offset is recorded; when it changes the incoming\n * key's saved offset is restored, or the list is sent to the top if it has none\n * — a first visit, or one whose entry has been dropped.\n *\n * Returns a callback ref to place on any element inside the scrolling column;\n * it only locates that column, it is never scrolled itself.\n *\n * Restoring a *position* only helps if the rows that filled it come back too —\n * that is `useInfiniteAssets`' job.\n */\nexport const useListScrollRestoration = (key: string) => {\n const offsetsRef = useRef(new Map<string, number>());\n const containerRef = useRef<HTMLElement | null>(null);\n const detachRef = useRef<(() => void) | null>(null);\n // The key offsets are currently filed under. In a ref because the scroll\n // listener is attached once and must read the current value.\n const keyRef = useRef(key);\n const pendingRef = useRef<PendingRestore | null>(null);\n\n const anchorRef = useCallback((node: HTMLElement | null) => {\n detachRef.current?.();\n detachRef.current = null;\n containerRef.current = null;\n\n const container = node?.closest<HTMLElement>(SCROLL_ROOT_SELECTOR);\n\n if (!container) {\n return;\n }\n\n const handleScroll = () => {\n const offsets = offsetsRef.current;\n\n // Delete before set so the entry moves to the end. Map iterates in\n // insertion order, so the first key is the least recently scrolled.\n offsets.delete(keyRef.current);\n offsets.set(keyRef.current, container.scrollTop);\n\n while (offsets.size > MAX_REMEMBERED_OFFSETS) {\n const oldest = offsets.keys().next().value;\n\n if (oldest === undefined) {\n break;\n }\n\n offsets.delete(oldest);\n }\n };\n\n container.addEventListener('scroll', handleScroll, { passive: true });\n containerRef.current = container;\n detachRef.current = () => container.removeEventListener('scroll', handleScroll);\n }, []);\n\n useEffect(() => () => detachRef.current?.(), []);\n\n // Runs on every commit, not just when `key` changes: a restore the first\n // commit was too short to satisfy must be retried as the rows arrive, and\n // there is no state to key that off. Layout phase so the list is never\n // painted at the wrong offset.\n useLayoutEffect(() => {\n const container = containerRef.current;\n\n if (!container) {\n return;\n }\n\n if (keyRef.current !== key) {\n keyRef.current = key;\n pendingRef.current = {\n top: offsetsRef.current.get(key) ?? 0,\n deadline: Date.now() + RESTORE_WINDOW_MS,\n };\n }\n\n const pending = pendingRef.current;\n\n if (!pending) {\n return;\n }\n\n // Before the assignment, not alongside it: past the window the offset has to\n // be dropped rather than applied one final time to a list the user has since\n // scrolled themselves.\n if (Date.now() > pending.deadline) {\n pendingRef.current = null;\n return;\n }\n\n container.scrollTop = pending.top;\n\n // The browser clamps to the content that exists now, so a target the list\n // isn't tall enough for yet stays pending for the next commit.\n if (container.scrollTop >= pending.top) {\n pendingRef.current = null;\n }\n });\n\n return anchorRef;\n};\n"],"names":["SCROLL_ROOT_SELECTOR","RESTORE_WINDOW_MS","MAX_REMEMBERED_OFFSETS","useListScrollRestoration","key","offsetsRef","useRef","Map","containerRef","detachRef","keyRef","pendingRef","anchorRef","useCallback","node","current","container","closest","handleScroll","offsets","delete","set","scrollTop","size","oldest","keys","next","value","undefined","addEventListener","passive","removeEventListener","useEffect","useLayoutEffect","top","get","deadline","Date","now","pending"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListScrollRestoration.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useListScrollRestoration.ts"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useRef } from 'react';\n\n/**\n * The admin layout marks the element that scrolls the main column (see\n * `Layouts.Root`). The media library has no scroll container of its own, so the\n * offset to save and restore belongs to that ancestor.\n */\nconst SCROLL_ROOT_SELECTOR = '[data-strapi-main-content]';\n\n/**\n * How long a restore keeps retrying after the list key changes.\n *\n * A returning list usually comes back from memory in one commit, so the first\n * attempt lands. When it doesn't — pages still loading, so the content isn't yet\n * tall enough to scroll that far — later commits retry. Past this window the\n * offset is dropped rather than yanked out from under someone already reading.\n */\nconst RESTORE_WINDOW_MS = 2000;\n\n/**\n * How many list offsets to keep. Matches `MAX_REMEMBERED_LISTS` in\n * `useInfiniteAssets`: the two are keyed identically, so they should forget on\n * the same terms.\n */\nconst MAX_REMEMBERED_OFFSETS = 10;\n\ninterface PendingRestore {\n top: number;\n deadline: number;\n}\n\n/**\n * Remembers where each list was scrolled to and puts it back on return.\n *\n * `key` fingerprints the list on screen (folder, search, sort, filters). While\n * it holds steady the current offset is recorded; when it changes the incoming\n * key's saved offset is restored, or the list is sent to the top if it has none\n * — a first visit, or one whose entry has been dropped.\n *\n * Returns a callback ref to place on any element inside the scrolling column;\n * it only locates that column, it is never scrolled itself.\n *\n * Restoring a *position* only helps if the rows that filled it come back too —\n * that is `useInfiniteAssets`' job.\n */\nexport const useListScrollRestoration = (key: string) => {\n const offsetsRef = useRef(new Map<string, number>());\n const containerRef = useRef<HTMLElement | null>(null);\n const detachRef = useRef<(() => void) | null>(null);\n // The key offsets are currently filed under. In a ref because the scroll\n // listener is attached once and must read the current value.\n const keyRef = useRef(key);\n const pendingRef = useRef<PendingRestore | null>(null);\n\n const anchorRef = useCallback((node: HTMLElement | null) => {\n detachRef.current?.();\n detachRef.current = null;\n containerRef.current = null;\n\n const container = node?.closest<HTMLElement>(SCROLL_ROOT_SELECTOR);\n\n if (!container) {\n return;\n }\n\n const handleScroll = () => {\n const offsets = offsetsRef.current;\n\n // Delete before set so the entry moves to the end. Map iterates in\n // insertion order, so the first key is the least recently scrolled.\n offsets.delete(keyRef.current);\n offsets.set(keyRef.current, container.scrollTop);\n\n while (offsets.size > MAX_REMEMBERED_OFFSETS) {\n const oldest = offsets.keys().next().value;\n\n if (oldest === undefined) {\n break;\n }\n\n offsets.delete(oldest);\n }\n };\n\n container.addEventListener('scroll', handleScroll, { passive: true });\n containerRef.current = container;\n detachRef.current = () => container.removeEventListener('scroll', handleScroll);\n }, []);\n\n useEffect(() => () => detachRef.current?.(), []);\n\n // Runs on every commit, not just when `key` changes: a restore the first\n // commit was too short to satisfy must be retried as the rows arrive, and\n // there is no state to key that off. Layout phase so the list is never\n // painted at the wrong offset.\n useLayoutEffect(() => {\n const container = containerRef.current;\n\n if (!container) {\n return;\n }\n\n if (keyRef.current !== key) {\n keyRef.current = key;\n pendingRef.current = {\n top: offsetsRef.current.get(key) ?? 0,\n deadline: Date.now() + RESTORE_WINDOW_MS,\n };\n }\n\n const pending = pendingRef.current;\n\n if (!pending) {\n return;\n }\n\n // Before the assignment, not alongside it: past the window the offset has to\n // be dropped rather than applied one final time to a list the user has since\n // scrolled themselves.\n if (Date.now() > pending.deadline) {\n pendingRef.current = null;\n return;\n }\n\n container.scrollTop = pending.top;\n\n // The browser clamps to the content that exists now, so a target the list\n // isn't tall enough for yet stays pending for the next commit.\n if (container.scrollTop >= pending.top) {\n pendingRef.current = null;\n }\n });\n\n return anchorRef;\n};\n"],"names":["SCROLL_ROOT_SELECTOR","RESTORE_WINDOW_MS","MAX_REMEMBERED_OFFSETS","useListScrollRestoration","key","offsetsRef","useRef","Map","containerRef","detachRef","keyRef","pendingRef","anchorRef","useCallback","node","current","container","closest","handleScroll","offsets","delete","set","scrollTop","size","oldest","keys","next","value","undefined","addEventListener","passive","removeEventListener","useEffect","useLayoutEffect","top","get","deadline","Date","now","pending"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListSort.js","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useListSort.ts"],"sourcesContent":["import { useQueryParams, withEncodedUserParams } from '@strapi/admin/strapi-admin';\n\n/**\n * Sort state for the assets list, backed by URL query params so the current\n * ordering is shareable and survives Back/refresh:\n *\n * - `?sort=<rule>` — a single whitelisted rule. Omitted → default (most\n * recent updates).\n * - `?folders=mixed` — folders interleaved with files. Omitted → folders on top.\n *\n * The date rules and the direction rules are mutually exclusive: exactly one\n * rule is active at a time (one checkmark total, like the design mock). Picking\n * an option in one group clears the other; clearing the active option falls\n * back to the default — an unsorted list is not a state the UI offers.\n */\n\nexport const SORT_BY_RULES = {\n oldestUploads: 'createdAt:ASC',\n mostRecentUpdates: 'updatedAt:DESC',\n} as const;\n\nexport const SORT_DIRECTION_RULES = {\n nameAsc: 'name:ASC',\n nameDesc: 'name:DESC',\n sizeAsc: 'size:ASC',\n sizeDesc: 'size:DESC',\n} as const;\n\nexport type SortByKey = keyof typeof SORT_BY_RULES;\nexport type SortDirectionKey = keyof typeof SORT_DIRECTION_RULES;\nexport type FoldersPosition = 'top' | 'mixed';\n\nconst DEFAULT_SORT_BY: SortByKey = 'mostRecentUpdates';\n\nconst SORT_BY_BY_RULE = Object.fromEntries(\n Object.entries(SORT_BY_RULES).map(([key, rule]) => [rule, key])\n) as Record<string, SortByKey>;\n\nconst SORT_DIRECTION_BY_RULE = Object.fromEntries(\n Object.entries(SORT_DIRECTION_RULES).map(([key, rule]) => [rule, key])\n) as Record<string, SortDirectionKey>;\n\ninterface ParsedSort {\n sortBy: SortByKey | null;\n direction: SortDirectionKey | null;\n /** False when the state is the fallback default (no recognized rule in the URL). */\n isExplicit: boolean;\n}\n\n/** Parses `?sort=` — the first recognized rule wins, unknown rules are dropped. */\nconst parseSortParam = (raw: string | undefined): ParsedSort => {\n for (const rule of (raw ?? '').split(',')) {\n if (rule in SORT_BY_BY_RULE) {\n return { sortBy: SORT_BY_BY_RULE[rule], direction: null, isExplicit: true };\n }\n if (rule in SORT_DIRECTION_BY_RULE) {\n return { sortBy: null, direction: SORT_DIRECTION_BY_RULE[rule], isExplicit: true };\n }\n }\n\n return { sortBy: DEFAULT_SORT_BY, direction: null, isExplicit: false };\n};\n\nconst serializeSort = (sortBy: SortByKey | null, direction: SortDirectionKey | null): string => {\n const rules: (string | null)[] = [\n sortBy && SORT_BY_RULES[sortBy],\n direction && SORT_DIRECTION_RULES[direction],\n ];\n\n return rules.filter((rule): rule is string => Boolean(rule)).join(',');\n};\n\nexport interface ListSort {\n sortBy: SortByKey | null;\n direction: SortDirectionKey | null;\n foldersPosition: FoldersPosition;\n /**\n * The active rule for the files query, e.g. `updatedAt:DESC` — always a\n * single rule since the sort groups are mutually exclusive.\n */\n assetsSort: string;\n /**\n * Rule applicable to the folders query. In the default state (no sort in the\n * URL) folders keep their alphabetical order so the band matches the sidebar\n * tree; an explicit user sort applies, except size rules (folders have no\n * `size` column), which fall back to alphabetical.\n */\n foldersSort: string;\n setSortBy: (key: SortByKey | null) => void;\n setDirection: (key: SortDirectionKey | null) => void;\n setFoldersPosition: (position: FoldersPosition) => void;\n}\n\nexport const useListSort = (): ListSort => {\n const [{ query }, setQuery] = useQueryParams<{\n sort?: string;\n folders?: string;\n _q?: string;\n }>();\n\n const { sortBy, direction, isExplicit } = parseSortParam(query?.sort);\n const foldersPosition: FoldersPosition = query?.folders === 'mixed' ? 'mixed' : 'top';\n\n const writeSort = (nextSortBy: SortByKey | null, nextDirection: SortDirectionKey | null) => {\n // Exactly one active rule: clearing the active one falls back to default.\n if (nextSortBy === null && nextDirection === null) {\n nextSortBy = DEFAULT_SORT_BY;\n }\n\n const serialized = serializeSort(nextSortBy, nextDirection);\n\n if (nextSortBy === DEFAULT_SORT_BY && nextDirection === null) {\n setQuery(withEncodedUserParams(query, { sort: undefined }));\n } else {\n setQuery(withEncodedUserParams(query, { sort: serialized }));\n }\n };\n\n // Groups are mutually exclusive — picking in one clears the other.\n const setSortBy = (key: SortByKey | null) => writeSort(key, null);\n const setDirection = (key: SortDirectionKey | null) => writeSort(null, key);\n\n const setFoldersPosition = (position: FoldersPosition) => {\n if (position === 'mixed') {\n setQuery(withEncodedUserParams(query, { folders: 'mixed' }));\n } else {\n setQuery(withEncodedUserParams(query, { folders: undefined }));\n }\n };\n\n const assetsSort = serializeSort(sortBy, direction);\n const folderRuleCandidates: (string | null)[] = [\n sortBy && SORT_BY_RULES[sortBy],\n direction && !direction.startsWith('size') ? SORT_DIRECTION_RULES[direction] : null,\n ];\n const folderRules = folderRuleCandidates.filter((rule): rule is string => Boolean(rule));\n // Default state keeps folders alphabetical (matches the sidebar tree) — only\n // an explicit user sort reorders the folders band.\n const foldersSort = isExplicit && folderRules.length > 0 ? folderRules.join(',') : 'name:ASC';\n\n return {\n sortBy,\n direction,\n foldersPosition,\n assetsSort,\n foldersSort,\n setSortBy,\n setDirection,\n setFoldersPosition,\n };\n};\n"],"names":["SORT_BY_RULES","oldestUploads","mostRecentUpdates","SORT_DIRECTION_RULES","nameAsc","nameDesc","sizeAsc","sizeDesc","DEFAULT_SORT_BY","SORT_BY_BY_RULE","Object","fromEntries","entries","map","key","rule","SORT_DIRECTION_BY_RULE","parseSortParam","raw","split","sortBy","direction","isExplicit","serializeSort","rules","filter","Boolean","join","useListSort","query","setQuery","useQueryParams","sort","foldersPosition","folders","writeSort","nextSortBy","nextDirection","serialized","withEncodedUserParams","undefined","setSortBy","setDirection","setFoldersPosition","position","assetsSort","folderRuleCandidates","startsWith","folderRules","foldersSort","length"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListSort.mjs","sources":["../../../../../../admin/src/future/pages/Assets/hooks/useListSort.ts"],"sourcesContent":["import { useQueryParams, withEncodedUserParams } from '@strapi/admin/strapi-admin';\n\n/**\n * Sort state for the assets list, backed by URL query params so the current\n * ordering is shareable and survives Back/refresh:\n *\n * - `?sort=<rule>` — a single whitelisted rule. Omitted → default (most\n * recent updates).\n * - `?folders=mixed` — folders interleaved with files. Omitted → folders on top.\n *\n * The date rules and the direction rules are mutually exclusive: exactly one\n * rule is active at a time (one checkmark total, like the design mock). Picking\n * an option in one group clears the other; clearing the active option falls\n * back to the default — an unsorted list is not a state the UI offers.\n */\n\nexport const SORT_BY_RULES = {\n oldestUploads: 'createdAt:ASC',\n mostRecentUpdates: 'updatedAt:DESC',\n} as const;\n\nexport const SORT_DIRECTION_RULES = {\n nameAsc: 'name:ASC',\n nameDesc: 'name:DESC',\n sizeAsc: 'size:ASC',\n sizeDesc: 'size:DESC',\n} as const;\n\nexport type SortByKey = keyof typeof SORT_BY_RULES;\nexport type SortDirectionKey = keyof typeof SORT_DIRECTION_RULES;\nexport type FoldersPosition = 'top' | 'mixed';\n\nconst DEFAULT_SORT_BY: SortByKey = 'mostRecentUpdates';\n\nconst SORT_BY_BY_RULE = Object.fromEntries(\n Object.entries(SORT_BY_RULES).map(([key, rule]) => [rule, key])\n) as Record<string, SortByKey>;\n\nconst SORT_DIRECTION_BY_RULE = Object.fromEntries(\n Object.entries(SORT_DIRECTION_RULES).map(([key, rule]) => [rule, key])\n) as Record<string, SortDirectionKey>;\n\ninterface ParsedSort {\n sortBy: SortByKey | null;\n direction: SortDirectionKey | null;\n /** False when the state is the fallback default (no recognized rule in the URL). */\n isExplicit: boolean;\n}\n\n/** Parses `?sort=` — the first recognized rule wins, unknown rules are dropped. */\nconst parseSortParam = (raw: string | undefined): ParsedSort => {\n for (const rule of (raw ?? '').split(',')) {\n if (rule in SORT_BY_BY_RULE) {\n return { sortBy: SORT_BY_BY_RULE[rule], direction: null, isExplicit: true };\n }\n if (rule in SORT_DIRECTION_BY_RULE) {\n return { sortBy: null, direction: SORT_DIRECTION_BY_RULE[rule], isExplicit: true };\n }\n }\n\n return { sortBy: DEFAULT_SORT_BY, direction: null, isExplicit: false };\n};\n\nconst serializeSort = (sortBy: SortByKey | null, direction: SortDirectionKey | null): string => {\n const rules: (string | null)[] = [\n sortBy && SORT_BY_RULES[sortBy],\n direction && SORT_DIRECTION_RULES[direction],\n ];\n\n return rules.filter((rule): rule is string => Boolean(rule)).join(',');\n};\n\nexport interface ListSort {\n sortBy: SortByKey | null;\n direction: SortDirectionKey | null;\n foldersPosition: FoldersPosition;\n /**\n * The active rule for the files query, e.g. `updatedAt:DESC` — always a\n * single rule since the sort groups are mutually exclusive.\n */\n assetsSort: string;\n /**\n * Rule applicable to the folders query. In the default state (no sort in the\n * URL) folders keep their alphabetical order so the band matches the sidebar\n * tree; an explicit user sort applies, except size rules (folders have no\n * `size` column), which fall back to alphabetical.\n */\n foldersSort: string;\n setSortBy: (key: SortByKey | null) => void;\n setDirection: (key: SortDirectionKey | null) => void;\n setFoldersPosition: (position: FoldersPosition) => void;\n}\n\nexport const useListSort = (): ListSort => {\n const [{ query }, setQuery] = useQueryParams<{\n sort?: string;\n folders?: string;\n _q?: string;\n }>();\n\n const { sortBy, direction, isExplicit } = parseSortParam(query?.sort);\n const foldersPosition: FoldersPosition = query?.folders === 'mixed' ? 'mixed' : 'top';\n\n const writeSort = (nextSortBy: SortByKey | null, nextDirection: SortDirectionKey | null) => {\n // Exactly one active rule: clearing the active one falls back to default.\n if (nextSortBy === null && nextDirection === null) {\n nextSortBy = DEFAULT_SORT_BY;\n }\n\n const serialized = serializeSort(nextSortBy, nextDirection);\n\n if (nextSortBy === DEFAULT_SORT_BY && nextDirection === null) {\n setQuery(withEncodedUserParams(query, { sort: undefined }));\n } else {\n setQuery(withEncodedUserParams(query, { sort: serialized }));\n }\n };\n\n // Groups are mutually exclusive — picking in one clears the other.\n const setSortBy = (key: SortByKey | null) => writeSort(key, null);\n const setDirection = (key: SortDirectionKey | null) => writeSort(null, key);\n\n const setFoldersPosition = (position: FoldersPosition) => {\n if (position === 'mixed') {\n setQuery(withEncodedUserParams(query, { folders: 'mixed' }));\n } else {\n setQuery(withEncodedUserParams(query, { folders: undefined }));\n }\n };\n\n const assetsSort = serializeSort(sortBy, direction);\n const folderRuleCandidates: (string | null)[] = [\n sortBy && SORT_BY_RULES[sortBy],\n direction && !direction.startsWith('size') ? SORT_DIRECTION_RULES[direction] : null,\n ];\n const folderRules = folderRuleCandidates.filter((rule): rule is string => Boolean(rule));\n // Default state keeps folders alphabetical (matches the sidebar tree) — only\n // an explicit user sort reorders the folders band.\n const foldersSort = isExplicit && folderRules.length > 0 ? folderRules.join(',') : 'name:ASC';\n\n return {\n sortBy,\n direction,\n foldersPosition,\n assetsSort,\n foldersSort,\n setSortBy,\n setDirection,\n setFoldersPosition,\n };\n};\n"],"names":["SORT_BY_RULES","oldestUploads","mostRecentUpdates","SORT_DIRECTION_RULES","nameAsc","nameDesc","sizeAsc","sizeDesc","DEFAULT_SORT_BY","SORT_BY_BY_RULE","Object","fromEntries","entries","map","key","rule","SORT_DIRECTION_BY_RULE","parseSortParam","raw","split","sortBy","direction","isExplicit","serializeSort","rules","filter","Boolean","join","useListSort","query","setQuery","useQueryParams","sort","foldersPosition","folders","writeSort","nextSortBy","nextDirection","serialized","withEncodedUserParams","undefined","setSortBy","setDirection","setFoldersPosition","position","assetsSort","folderRuleCandidates","startsWith","folderRules","foldersSort","length"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildAssetFilters.js","sources":["../../../../../../admin/src/future/pages/Assets/utils/buildAssetFilters.ts"],"sourcesContent":["import {\n type DateFilter,\n type DatePreset,\n type ListFilter,\n type TypeFilter,\n type TypeValue,\n} from '../hooks/useListFilters';\n\n/**\n * Translates the URL filter model into Strapi `filters[$and]` entries for the\n * files and folders queries, and decides the structural visibility of both\n * sections.\n *\n * Relative presets resolve against `now` at build time — the URL stays\n * relative (\"within the last week\"), only the outgoing query is absolute.\n *\n * Semantics:\n * - Every badge is one `$and` entry (badges combine with AND, per ticket).\n * - Type: `folder` is not a mime — it acts structurally on the folders\n * section. The remaining values map to mime clauses; `document` is the\n * legacy catch-all (mime contains none of image/audio/video — audio\n * included in the exclusion, fixing the legacy quirk).\n * - Dates apply to files and folders alike (folders have both timestamps).\n * - \"is exactly <preset>\" means the calendar day of `now - delta`.\n * - Ranges are inclusive on both ends (start-of-day .. end-of-day).\n */\n\ntype QueryClause = Record<string, unknown>;\n\nconst MIME_BY_VALUE: Record<Exclude<TypeValue, 'folder' | 'document'>, string> = {\n picture: 'image',\n audio: 'audio',\n video: 'video',\n};\n\nconst ALL_MIMES = Object.values(MIME_BY_VALUE);\n\nconst PRESET_DELTAS: Record<DatePreset, { days?: number; months?: number; years?: number }> = {\n '1day': { days: 1 },\n '3days': { days: 3 },\n '1week': { days: 7 },\n '1month': { months: 1 },\n '3months': { months: 3 },\n '6months': { months: 6 },\n '1year': { years: 1 },\n};\n\nconst subtractPreset = (now: Date, preset: DatePreset): Date => {\n const { days = 0, months = 0, years = 0 } = PRESET_DELTAS[preset];\n const result = new Date(now.getTime());\n\n if (years || months) {\n // JS date setters overflow at month ends (Mar 31 − 1 month → Feb 31 → Mar 3),\n // so move to the 1st first and clamp the day to the target month's length.\n const dayOfMonth = result.getDate();\n result.setDate(1);\n result.setFullYear(result.getFullYear() - years);\n result.setMonth(result.getMonth() - months);\n\n const daysInTargetMonth = new Date(result.getFullYear(), result.getMonth() + 1, 0).getDate();\n result.setDate(Math.min(dayOfMonth, daysInTargetMonth));\n }\n\n result.setDate(result.getDate() - days);\n\n return result;\n};\n\nconst startOfDay = (date: Date): Date => {\n const result = new Date(date.getTime());\n result.setHours(0, 0, 0, 0);\n return result;\n};\n\nconst endOfDay = (date: Date): Date => {\n const result = new Date(date.getTime());\n result.setHours(23, 59, 59, 999);\n return result;\n};\n\n/**\n * Parses `YYYY-MM-DD` as a local calendar date — NOT `new Date(value)`, which\n * treats date-only strings as UTC midnight and shifts the day in every\n * timezone west of UTC. Shared by the query builder, the badge labels and the\n * range calendar so all three agree on which day a range endpoint means.\n */\nexport const parseCalendarDate = (value: string): Date => {\n const [year, month, day] = value.split('-').map(Number);\n return new Date(year, month - 1, day);\n};\n\nconst buildDateClause = (filter: DateFilter, now: Date): QueryClause => {\n const { field } = filter;\n\n if (filter.mode === 'preset') {\n const pivot = subtractPreset(now, filter.preset);\n\n switch (filter.condition) {\n case 'withinLast':\n return { [field]: { $gte: pivot.toISOString() } };\n case 'notWithinLast':\n return { [field]: { $lt: pivot.toISOString() } };\n case 'isExactly':\n return {\n [field]: {\n $gte: startOfDay(pivot).toISOString(),\n $lte: endOfDay(pivot).toISOString(),\n },\n };\n }\n }\n\n const from = startOfDay(parseCalendarDate(filter.from)).toISOString();\n const to = endOfDay(parseCalendarDate(filter.to)).toISOString();\n\n if (filter.condition === 'is') {\n return { [field]: { $gte: from, $lte: to } };\n }\n\n return { $or: [{ [field]: { $lt: from } }, { [field]: { $gt: to } }] };\n};\n\nconst buildMimeClause = (filter: TypeFilter): QueryClause | null => {\n const fileValues = filter.values.filter((value): value is TypeValue => value !== 'folder');\n\n if (fileValues.length === 0) {\n return null;\n }\n\n const branches: QueryClause[] = fileValues.map((value) => {\n if (value === 'document') {\n // Catch-all: none of the known mime families.\n return { $and: ALL_MIMES.map((mime) => ({ mime: { $notContains: mime } })) };\n }\n return { mime: { $contains: MIME_BY_VALUE[value as keyof typeof MIME_BY_VALUE] } };\n });\n\n if (filter.condition === 'is') {\n return branches.length === 1 ? branches[0] : { $or: branches };\n }\n\n // \"is not\" = matches none of the selected values: negate each branch, AND them.\n const negated: QueryClause[] = fileValues.map((value) => {\n if (value === 'document') {\n // Not a document = is one of the known families.\n return { $or: ALL_MIMES.map((mime) => ({ mime: { $contains: mime } })) };\n }\n return { mime: { $notContains: MIME_BY_VALUE[value as keyof typeof MIME_BY_VALUE] } };\n });\n\n return negated.length === 1 ? negated[0] : { $and: negated };\n};\n\nexport interface BuiltFilters {\n /** Extra `$and` entries for the files query. */\n fileClauses: QueryClause[];\n /** Extra `$and` entries for the folders query (dates only). */\n folderClauses: QueryClause[];\n /**\n * Whether the folders section can show at all. A type badge decides it by\n * evaluating \"folder\" like any other value: `is` shows folders only when\n * folder is selected; `is not` hides them only when folder is selected.\n */\n showFolders: boolean;\n /**\n * Whether the files list can show at all — false when an `is` type badge\n * selects only \"folder\" (no file can match).\n */\n showFiles: boolean;\n}\n\nexport const buildAssetFilters = (filters: ListFilter[], now: Date): BuiltFilters => {\n const fileClauses: QueryClause[] = [];\n const folderClauses: QueryClause[] = [];\n let showFolders = true;\n let showFiles = true;\n\n for (const filter of filters) {\n if (filter.kind === 'date') {\n const clause = buildDateClause(filter, now);\n fileClauses.push(clause);\n folderClauses.push(clause);\n continue;\n }\n\n const includesFolder = filter.values.includes('folder');\n if (filter.condition === 'is' ? !includesFolder : includesFolder) {\n showFolders = false;\n }\n\n const mimeClause = buildMimeClause(filter);\n if (mimeClause) {\n fileClauses.push(mimeClause);\n } else if (filter.condition === 'is') {\n // `is [folder]` only — no file can match the badge.\n showFiles = false;\n }\n }\n\n return { fileClauses, folderClauses, showFolders, showFiles };\n};\n"],"names":["MIME_BY_VALUE","picture","audio","video","ALL_MIMES","Object","values","PRESET_DELTAS","days","months","years","subtractPreset","now","preset","result","Date","getTime","dayOfMonth","getDate","setDate","setFullYear","getFullYear","setMonth","getMonth","daysInTargetMonth","Math","min","startOfDay","date","setHours","endOfDay","parseCalendarDate","value","year","month","day","split","map","Number","buildDateClause","filter","field","mode","pivot","condition","$gte","toISOString","$lt","$lte","from","to","$or","$gt","buildMimeClause","fileValues","length","branches","$and","mime","$notContains","$contains","negated","buildAssetFilters","filters","fileClauses","folderClauses","showFolders","showFiles","kind","clause","push","includesFolder","includes","mimeClause"],"mappings":"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"}