@payloadcms/ui 4.0.0-internal.bc5cf8c → 4.0.0-internal.c3ac604

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 (874) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/css/app.css +121 -0
  3. package/dist/css/forms.css +6 -9
  4. package/dist/css/spacing.css +11 -3
  5. package/dist/css/theme.css +2 -1
  6. package/dist/css/z-index.css +10 -0
  7. package/dist/elements/APIKeyInput/index.css +4 -4
  8. package/dist/elements/AddNewRelation/index.css +27 -28
  9. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -1
  10. package/dist/elements/AppHeader/index.css +2 -18
  11. package/dist/elements/AppHeader/index.d.ts +2 -1
  12. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  13. package/dist/elements/AppHeader/index.js +10 -8
  14. package/dist/elements/AppHeader/index.js.map +1 -1
  15. package/dist/elements/ArrayAction/index.d.ts +2 -0
  16. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  17. package/dist/elements/ArrayAction/index.js +65 -23
  18. package/dist/elements/ArrayAction/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  20. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  21. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  22. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  23. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  24. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  25. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  26. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  29. package/dist/elements/Button/index.d.ts.map +1 -1
  30. package/dist/elements/Button/index.js +5 -0
  31. package/dist/elements/Button/index.js.map +1 -1
  32. package/dist/elements/ClipboardAction/ClipboardActionLabel.d.ts.map +1 -1
  33. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  34. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  35. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  36. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  37. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  38. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  39. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  40. package/dist/elements/ClipboardAction/index.js +18 -1
  41. package/dist/elements/ClipboardAction/index.js.map +1 -1
  42. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  43. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  44. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  45. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  46. package/dist/elements/ClipboardAction/types.js.map +1 -1
  47. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  48. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  49. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  50. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  51. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  52. package/dist/elements/CodeEditor/index.css +5 -5
  53. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  54. package/dist/elements/Collapsible/index.js +2 -0
  55. package/dist/elements/Collapsible/index.js.map +1 -1
  56. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  57. package/dist/elements/ColumnSelection/Popup.js +6 -6
  58. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  59. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +10 -0
  60. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +1 -0
  61. package/dist/elements/ColumnSelection/matchesColumnSearch.js +21 -0
  62. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +1 -0
  63. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +87 -0
  64. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +1 -0
  65. package/dist/elements/CommandPalette/index.css +0 -7
  66. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  67. package/dist/elements/CreateDocumentButton/index.js +4 -1
  68. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  69. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  70. package/dist/elements/DatePicker/DatePicker.js +1 -0
  71. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  72. package/dist/elements/DatePicker/getFormattedLocale.d.ts.map +1 -1
  73. package/dist/elements/DatePicker/index.css +4 -4
  74. package/dist/elements/DatePicker/index.js +1 -1
  75. package/dist/elements/DatePicker/index.js.map +1 -1
  76. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  77. package/dist/elements/DeleteDocument/index.js +16 -1
  78. package/dist/elements/DeleteDocument/index.js.map +1 -1
  79. package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -1
  80. package/dist/elements/DocumentControls/index.css +0 -2
  81. package/dist/elements/DocumentControls/index.d.ts +2 -2
  82. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  83. package/dist/elements/DocumentControls/index.js +1 -0
  84. package/dist/elements/DocumentControls/index.js.map +1 -1
  85. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +2 -2
  86. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  87. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  88. package/dist/elements/DocumentFields/index.css +9 -0
  89. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  90. package/dist/elements/DocumentLocked/index.d.ts +2 -2
  91. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  92. package/dist/elements/DocumentLocked/index.js.map +1 -1
  93. package/dist/elements/DraggableSortable/DragOverlayPreview/index.css +1 -1
  94. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  95. package/dist/elements/Drawer/index.d.ts.map +1 -1
  96. package/dist/elements/Drawer/index.js +1 -0
  97. package/dist/elements/Drawer/index.js.map +1 -1
  98. package/dist/elements/Drawer/useDrawerSlug.d.ts.map +1 -1
  99. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  100. package/dist/elements/EditMany/DrawerContent.js +2 -2
  101. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  102. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  103. package/dist/elements/EditUpload/index.js +4 -0
  104. package/dist/elements/EditUpload/index.js.map +1 -1
  105. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  106. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  107. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  108. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  109. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  110. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  111. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  112. package/dist/elements/FileManager/index.css +36 -23
  113. package/dist/elements/FileManager/index.d.ts +1 -1
  114. package/dist/elements/FileManager/index.d.ts.map +1 -1
  115. package/dist/elements/FileManager/index.js +15 -4
  116. package/dist/elements/FileManager/index.js.map +1 -1
  117. package/dist/elements/HTMLDiff/diff/index.d.ts.map +1 -1
  118. package/dist/elements/HTMLDiff/index.d.ts.map +1 -1
  119. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +3 -1
  120. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +1 -1
  121. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  122. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +1 -1
  123. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  124. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  125. package/dist/elements/Hierarchy/DocHeaderButton/index.js +12 -12
  126. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  127. package/dist/elements/Hierarchy/Field/index.client.js +14 -14
  128. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  129. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -0
  130. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -0
  131. package/dist/elements/Hierarchy/Modal/index.css +88 -0
  132. package/dist/elements/Hierarchy/Modal/index.d.ts +20 -0
  133. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -0
  134. package/dist/elements/Hierarchy/{Drawer → Modal}/index.js +105 -81
  135. package/dist/elements/Hierarchy/Modal/index.js.map +1 -0
  136. package/dist/elements/Hierarchy/{Drawer → Modal}/types.d.ts +22 -18
  137. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -0
  138. package/dist/elements/Hierarchy/Modal/types.js.map +1 -0
  139. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts +30 -0
  140. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts.map +1 -0
  141. package/dist/elements/Hierarchy/{Drawer/useHierarchyDrawer.js → Modal/useHierarchyModal.js} +51 -50
  142. package/dist/elements/Hierarchy/Modal/useHierarchyModal.js.map +1 -0
  143. package/dist/elements/Hierarchy/MoveMany/index.d.ts +2 -2
  144. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  145. package/dist/elements/Hierarchy/MoveMany/index.js +9 -9
  146. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  147. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  148. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  149. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  150. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  151. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  152. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  153. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  154. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +1 -1
  155. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
  156. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +38 -14
  157. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  158. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +37 -31
  159. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  160. package/dist/elements/Hierarchy/Tree/index.css +1 -1
  161. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  162. package/dist/elements/Hierarchy/Tree/index.js +18 -5
  163. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  164. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  165. package/dist/elements/InputStepper/index.css +0 -1
  166. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  167. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  168. package/dist/elements/ListControls/index.js +1 -1
  169. package/dist/elements/ListControls/index.js.map +1 -1
  170. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  171. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  172. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +1 -0
  173. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  174. package/dist/elements/LivePreview/Window/index.css +6 -0
  175. package/dist/elements/LoadingOverlay/reducer.d.ts.map +1 -1
  176. package/dist/elements/Locked/index.css +0 -5
  177. package/dist/elements/Locked/index.d.ts +2 -2
  178. package/dist/elements/Locked/index.d.ts.map +1 -1
  179. package/dist/elements/Locked/index.js +38 -19
  180. package/dist/elements/Locked/index.js.map +1 -1
  181. package/dist/elements/MiniCarousel/index.css +39 -37
  182. package/dist/elements/Nav/SettingsMenuButton/index.css +5 -0
  183. package/dist/elements/Nav/SettingsMenuButton/index.d.ts +1 -1
  184. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  185. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -1
  186. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  187. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  188. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  189. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  190. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  191. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  192. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  193. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  194. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  195. package/dist/elements/Nav/index.css +0 -5
  196. package/dist/elements/NavGroup/index.css +0 -1
  197. package/dist/elements/Pagination/index.css +5 -0
  198. package/dist/elements/Pagination/index.d.ts.map +1 -1
  199. package/dist/elements/Pagination/index.js +21 -21
  200. package/dist/elements/Pagination/index.js.map +1 -1
  201. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
  202. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  203. package/dist/elements/Popup/PopupTrigger/index.js +3 -0
  204. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  205. package/dist/elements/Popup/index.d.ts +6 -0
  206. package/dist/elements/Popup/index.d.ts.map +1 -1
  207. package/dist/elements/Popup/index.js +2 -0
  208. package/dist/elements/Popup/index.js.map +1 -1
  209. package/dist/elements/PreviewButton/index.d.ts +1 -2
  210. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  211. package/dist/elements/PreviewButton/index.js +11 -5
  212. package/dist/elements/PreviewButton/index.js.map +1 -1
  213. package/dist/elements/PreviewSizes/index.css +8 -9
  214. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  215. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts.map +1 -1
  216. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  217. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts +7 -0
  218. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -0
  219. package/dist/elements/ReactSelect/DefaultMenuPortal.js +120 -0
  220. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -0
  221. package/dist/elements/ReactSelect/DropdownIndicator/index.css +1 -1
  222. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  223. package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -12
  224. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  225. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  226. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  227. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -1
  228. package/dist/elements/ReactSelect/getMenuListStyles.d.ts +1 -1
  229. package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -1
  230. package/dist/elements/ReactSelect/getMenuListStyles.js +13 -5
  231. package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -1
  232. package/dist/elements/ReactSelect/getMenuStyles.d.ts +10 -0
  233. package/dist/elements/ReactSelect/getMenuStyles.d.ts.map +1 -0
  234. package/dist/elements/ReactSelect/getMenuStyles.js +21 -0
  235. package/dist/elements/ReactSelect/getMenuStyles.js.map +1 -0
  236. package/dist/elements/ReactSelect/index.css +10 -6
  237. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  238. package/dist/elements/ReactSelect/index.js +25 -102
  239. package/dist/elements/ReactSelect/index.js.map +1 -1
  240. package/dist/elements/ReactSelect/types.d.ts +2 -2
  241. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  242. package/dist/elements/ReactSelect/types.js.map +1 -1
  243. package/dist/elements/RelationshipTable/AddNewButton.d.ts +2 -2
  244. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  245. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  246. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  247. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  248. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  249. package/dist/elements/RelationshipTable/index.css +1 -4
  250. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  251. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  252. package/dist/elements/RelationshipTable/index.js +36 -3
  253. package/dist/elements/RelationshipTable/index.js.map +1 -1
  254. package/dist/elements/RenderTitle/index.css +4 -0
  255. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  256. package/dist/elements/RenderTitle/index.js +18 -13
  257. package/dist/elements/RenderTitle/index.js.map +1 -1
  258. package/dist/elements/Search/ListSearchFilter/index.d.ts.map +1 -1
  259. package/dist/elements/Search/ListSearchFilter/index.js +1 -0
  260. package/dist/elements/Search/ListSearchFilter/index.js.map +1 -1
  261. package/dist/elements/Search/SearchInput/index.d.ts +2 -0
  262. package/dist/elements/Search/SearchInput/index.d.ts.map +1 -1
  263. package/dist/elements/Search/SearchInput/index.js +22 -19
  264. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  265. package/dist/elements/SelectAll/index.css +3 -1
  266. package/dist/elements/SelectRow/index.d.ts +5 -4
  267. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  268. package/dist/elements/SelectRow/index.js +10 -7
  269. package/dist/elements/SelectRow/index.js.map +1 -1
  270. package/dist/elements/SidebarRow/index.css +0 -2
  271. package/dist/elements/SidebarToggle/index.css +0 -17
  272. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  273. package/dist/elements/SortColumn/index.js +42 -38
  274. package/dist/elements/SortColumn/index.js.map +1 -1
  275. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +24 -24
  276. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  277. package/dist/elements/Table/DefaultCell/fields/index.d.ts +1 -1
  278. package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
  279. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  280. package/dist/elements/Table/OrderableRowDragPreview.d.ts.map +1 -1
  281. package/dist/elements/Table/index.css +26 -2
  282. package/dist/elements/TableSection/index.css +0 -1
  283. package/dist/elements/Tabs/index.d.ts.map +1 -1
  284. package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -1
  285. package/dist/elements/Thumbnail/index.d.ts +1 -1
  286. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  287. package/dist/elements/Thumbnail/index.js.map +1 -1
  288. package/dist/elements/TimezonePicker/index.css +1 -1
  289. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  290. package/dist/elements/TimezonePicker/index.js +5 -1
  291. package/dist/elements/TimezonePicker/index.js.map +1 -1
  292. package/dist/elements/Tooltip/index.css +15 -34
  293. package/dist/elements/Tooltip/index.d.ts +11 -3
  294. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  295. package/dist/elements/Tooltip/index.js +151 -85
  296. package/dist/elements/Tooltip/index.js.map +1 -1
  297. package/dist/elements/Upload/index.css +0 -5
  298. package/dist/elements/Upload/index.d.ts.map +1 -1
  299. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  300. package/dist/elements/UserMenu/SubMenuHeader/index.js +8 -9
  301. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  302. package/dist/elements/UserMenu/index.css +26 -1
  303. package/dist/elements/UserMenu/index.d.ts +1 -0
  304. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  305. package/dist/elements/UserMenu/index.js +2 -1
  306. package/dist/elements/UserMenu/index.js.map +1 -1
  307. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.d.ts.map +1 -1
  308. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts.map +1 -1
  309. package/dist/elements/WhereBuilder/Condition/validOperators.d.ts.map +1 -1
  310. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  311. package/dist/exports/client/index.d.ts +7 -3
  312. package/dist/exports/client/index.d.ts.map +1 -1
  313. package/dist/exports/client/index.js +1 -1
  314. package/dist/exports/client/index.js.map +3 -3
  315. package/dist/exports/layouts.d.ts +1 -0
  316. package/dist/exports/layouts.d.ts.map +1 -1
  317. package/dist/exports/layouts.js +1 -0
  318. package/dist/exports/layouts.js.map +1 -1
  319. package/dist/exports/rsc/index.d.ts +3 -0
  320. package/dist/exports/rsc/index.d.ts.map +1 -1
  321. package/dist/exports/rsc/index.js +3 -0
  322. package/dist/exports/rsc/index.js.map +1 -1
  323. package/dist/exports/shared/index.d.ts +1 -0
  324. package/dist/exports/shared/index.d.ts.map +1 -1
  325. package/dist/exports/shared/index.js +2 -2
  326. package/dist/exports/shared/index.js.map +4 -4
  327. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  328. package/dist/fields/Array/ArrayRow.js +97 -160
  329. package/dist/fields/Array/ArrayRow.js.map +1 -1
  330. package/dist/fields/Array/index.d.ts +1 -1
  331. package/dist/fields/Array/index.d.ts.map +1 -1
  332. package/dist/fields/Array/index.js +7 -4
  333. package/dist/fields/Array/index.js.map +1 -1
  334. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  335. package/dist/fields/Blocks/BlockRow.js +134 -195
  336. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  337. package/dist/fields/Blocks/RowActions.d.ts +2 -0
  338. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  339. package/dist/fields/Blocks/RowActions.js +23 -20
  340. package/dist/fields/Blocks/RowActions.js.map +1 -1
  341. package/dist/fields/Blocks/SectionTitle/index.d.ts.map +1 -1
  342. package/dist/fields/Blocks/SectionTitle/index.js +1 -0
  343. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  344. package/dist/fields/Blocks/index.d.ts +1 -1
  345. package/dist/fields/Blocks/index.d.ts.map +1 -1
  346. package/dist/fields/Blocks/index.js +9 -6
  347. package/dist/fields/Blocks/index.js.map +1 -1
  348. package/dist/fields/Checkbox/Input.d.ts +2 -0
  349. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  350. package/dist/fields/Checkbox/Input.js +32 -26
  351. package/dist/fields/Checkbox/Input.js.map +1 -1
  352. package/dist/fields/Checkbox/index.css +37 -73
  353. package/dist/fields/Checkbox/index.d.ts +1 -1
  354. package/dist/fields/Code/index.css +1 -1
  355. package/dist/fields/Code/index.d.ts +2 -2
  356. package/dist/fields/Collapsible/index.d.ts +1 -1
  357. package/dist/fields/ConfirmPassword/index.d.ts +4 -0
  358. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  359. package/dist/fields/ConfirmPassword/index.js +37 -33
  360. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  361. package/dist/fields/DateTime/index.d.ts +1 -1
  362. package/dist/fields/Email/index.d.ts +1 -1
  363. package/dist/fields/FieldError/index.css +0 -9
  364. package/dist/fields/FieldError/index.d.ts.map +1 -1
  365. package/dist/fields/FieldError/index.js +19 -9
  366. package/dist/fields/FieldError/index.js.map +1 -1
  367. package/dist/fields/Group/index.css +1 -7
  368. package/dist/fields/Group/index.d.ts +2 -2
  369. package/dist/fields/JSON/index.d.ts +1 -1
  370. package/dist/fields/Join/index.css +9 -0
  371. package/dist/fields/Join/index.d.ts +1 -1
  372. package/dist/fields/Join/index.d.ts.map +1 -1
  373. package/dist/fields/Join/index.js +13 -9
  374. package/dist/fields/Join/index.js.map +1 -1
  375. package/dist/fields/Number/Input.d.ts.map +1 -1
  376. package/dist/fields/Number/Input.js +29 -25
  377. package/dist/fields/Number/Input.js.map +1 -1
  378. package/dist/fields/Number/index.d.ts +1 -1
  379. package/dist/fields/Number/types.d.ts +4 -0
  380. package/dist/fields/Number/types.d.ts.map +1 -1
  381. package/dist/fields/Number/types.js.map +1 -1
  382. package/dist/fields/Password/input.d.ts.map +1 -1
  383. package/dist/fields/Password/input.js +33 -29
  384. package/dist/fields/Password/input.js.map +1 -1
  385. package/dist/fields/Password/types.d.ts +7 -3
  386. package/dist/fields/Password/types.d.ts.map +1 -1
  387. package/dist/fields/Password/types.js.map +1 -1
  388. package/dist/fields/Point/index.d.ts +1 -1
  389. package/dist/fields/RadioGroup/index.css +0 -7
  390. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  391. package/dist/fields/Relationship/Input.js +36 -14
  392. package/dist/fields/Relationship/Input.js.map +1 -1
  393. package/dist/fields/Relationship/findOptionsByValue.d.ts.map +1 -1
  394. package/dist/fields/Relationship/index.d.ts +1 -1
  395. package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
  396. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +2 -2
  397. package/dist/fields/Relationship/types.d.ts +4 -0
  398. package/dist/fields/Relationship/types.d.ts.map +1 -1
  399. package/dist/fields/Relationship/types.js.map +1 -1
  400. package/dist/fields/Row/index.d.ts +1 -1
  401. package/dist/fields/Select/Input.d.ts +4 -0
  402. package/dist/fields/Select/Input.d.ts.map +1 -1
  403. package/dist/fields/Select/Input.js +45 -40
  404. package/dist/fields/Select/Input.js.map +1 -1
  405. package/dist/fields/Select/index.d.ts +1 -1
  406. package/dist/fields/Select/index.d.ts.map +1 -1
  407. package/dist/fields/Slug/index.css +0 -1
  408. package/dist/fields/Slug/index.d.ts +7 -5
  409. package/dist/fields/Slug/index.d.ts.map +1 -1
  410. package/dist/fields/Slug/index.js +79 -113
  411. package/dist/fields/Slug/index.js.map +1 -1
  412. package/dist/fields/Tabs/index.d.ts +1 -1
  413. package/dist/fields/Text/Input.d.ts.map +1 -1
  414. package/dist/fields/Text/Input.js +25 -21
  415. package/dist/fields/Text/Input.js.map +1 -1
  416. package/dist/fields/Text/index.d.ts +1 -1
  417. package/dist/fields/Text/types.d.ts +6 -2
  418. package/dist/fields/Text/types.d.ts.map +1 -1
  419. package/dist/fields/Text/types.js.map +1 -1
  420. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  421. package/dist/fields/Textarea/Input.js +27 -23
  422. package/dist/fields/Textarea/Input.js.map +1 -1
  423. package/dist/fields/Textarea/index.css +1 -1
  424. package/dist/fields/Textarea/index.d.ts +1 -1
  425. package/dist/fields/Textarea/types.d.ts +4 -0
  426. package/dist/fields/Textarea/types.d.ts.map +1 -1
  427. package/dist/fields/Textarea/types.js.map +1 -1
  428. package/dist/fields/Upload/index.css +19 -4
  429. package/dist/fields/index.d.ts.map +1 -1
  430. package/dist/fields/index.js +2 -0
  431. package/dist/fields/index.js.map +1 -1
  432. package/dist/fields/mergeFieldStyles.d.ts +1 -1
  433. package/dist/fields/mergeFieldStyles.d.ts.map +1 -1
  434. package/dist/forms/Form/context.d.ts.map +1 -1
  435. package/dist/forms/Form/createNestedClientFieldPath.d.ts.map +1 -1
  436. package/dist/forms/Form/errorMessages.d.ts.map +1 -1
  437. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  438. package/dist/forms/Form/fieldReducer.js +3 -1
  439. package/dist/forms/Form/fieldReducer.js.map +1 -1
  440. package/dist/forms/Form/index.d.ts.map +1 -1
  441. package/dist/forms/Form/index.js +9 -15
  442. package/dist/forms/Form/index.js.map +1 -1
  443. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  444. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  445. package/dist/forms/Form/rowHelpers.d.ts.map +1 -1
  446. package/dist/forms/Form/rows.d.ts.map +1 -1
  447. package/dist/forms/Form/types.d.ts +3 -3
  448. package/dist/forms/Form/types.d.ts.map +1 -1
  449. package/dist/forms/Form/types.js.map +1 -1
  450. package/dist/forms/RenderFields/RenderField.d.ts +1 -1
  451. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  452. package/dist/forms/RenderFields/RenderField.js +10 -0
  453. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  454. package/dist/forms/RenderFields/index.css +17 -3
  455. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  456. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  457. package/dist/forms/WatchChildErrors/index.js +2 -2
  458. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  459. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  460. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  461. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +22 -6
  462. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  463. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -2
  464. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  465. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  466. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -2
  467. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  468. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  469. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -2
  470. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  471. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  472. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  473. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  474. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  475. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  476. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  477. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  478. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  479. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  480. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  481. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  482. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  483. package/dist/forms/useField/index.d.ts.map +1 -1
  484. package/dist/forms/withCondition/index.d.ts +1 -1
  485. package/dist/forms/withCondition/index.d.ts.map +1 -1
  486. package/dist/graphics/Icon/index.js +1 -1
  487. package/dist/graphics/Icon/index.js.map +1 -1
  488. package/dist/hooks/useDebouncedCallback.d.ts.map +1 -1
  489. package/dist/hooks/useDelay.d.ts.map +1 -1
  490. package/dist/hooks/useElementHeightVariable.d.ts.map +1 -1
  491. package/dist/hooks/useHotkey.d.ts.map +1 -1
  492. package/dist/hooks/useIntersect.d.ts.map +1 -1
  493. package/dist/hooks/usePopupWindow.d.ts +1 -1
  494. package/dist/hooks/usePopupWindow.d.ts.map +1 -1
  495. package/dist/hooks/useRelatedCollections.d.ts.map +1 -1
  496. package/dist/hooks/useResize.d.ts.map +1 -1
  497. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  498. package/dist/layouts/Root/index.d.ts +1 -1
  499. package/dist/layouts/Root/index.d.ts.map +1 -1
  500. package/dist/layouts/Root/index.js +15 -5
  501. package/dist/layouts/Root/index.js.map +1 -1
  502. package/dist/layouts/Root/index.spec.js +20 -0
  503. package/dist/layouts/Root/index.spec.js.map +1 -0
  504. package/dist/layouts/Root/viewport.d.ts +5 -0
  505. package/dist/layouts/Root/viewport.d.ts.map +1 -0
  506. package/dist/layouts/Root/viewport.js +17 -0
  507. package/dist/layouts/Root/viewport.js.map +1 -0
  508. package/dist/providers/Auth/index.d.ts +8 -10
  509. package/dist/providers/Auth/index.d.ts.map +1 -1
  510. package/dist/providers/Auth/index.js +3 -8
  511. package/dist/providers/Auth/index.js.map +1 -1
  512. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  513. package/dist/providers/DocumentInfo/index.js.map +1 -1
  514. package/dist/providers/DocumentInfo/types.d.ts +6 -6
  515. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  516. package/dist/providers/DocumentInfo/types.js.map +1 -1
  517. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  518. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  519. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  520. package/dist/providers/DocumentTitle/index.js +2 -0
  521. package/dist/providers/DocumentTitle/index.js.map +1 -1
  522. package/dist/providers/Embed/index.d.ts +24 -0
  523. package/dist/providers/Embed/index.d.ts.map +1 -0
  524. package/dist/providers/Embed/index.js +105 -0
  525. package/dist/providers/Embed/index.js.map +1 -0
  526. package/dist/providers/FormErrorHandler/index.d.ts +20 -0
  527. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  528. package/dist/providers/FormErrorHandler/index.js +6 -0
  529. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  530. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  531. package/dist/providers/ListQuery/index.js +8 -1
  532. package/dist/providers/ListQuery/index.js.map +1 -1
  533. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  534. package/dist/providers/ListQuery/sanitizeQuery.d.ts.map +1 -1
  535. package/dist/providers/LivePreview/sizeReducer.d.ts +1 -1
  536. package/dist/providers/LivePreview/sizeReducer.d.ts.map +1 -1
  537. package/dist/providers/Root/index.d.ts +3 -2
  538. package/dist/providers/Root/index.d.ts.map +1 -1
  539. package/dist/providers/Root/index.js +33 -27
  540. package/dist/providers/Root/index.js.map +1 -1
  541. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  542. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  543. package/dist/providers/SidebarTabs/index.js.map +1 -1
  544. package/dist/providers/TableColumns/buildColumnState/filterFields.d.ts.map +1 -1
  545. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.d.ts.map +1 -1
  546. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.d.ts.map +1 -1
  547. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  548. package/dist/providers/TableColumns/buildColumnState/index.js +1 -1
  549. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  550. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  551. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  552. package/dist/providers/TableColumns/getInitialColumns.d.ts +1 -1
  553. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -1
  554. package/dist/providers/Theme/index.d.ts +5 -2
  555. package/dist/providers/Theme/index.d.ts.map +1 -1
  556. package/dist/providers/Theme/index.js +109 -96
  557. package/dist/providers/Theme/index.js.map +1 -1
  558. package/dist/providers/Theme/shared.d.ts +3 -0
  559. package/dist/providers/Theme/shared.d.ts.map +1 -0
  560. package/dist/providers/Theme/shared.js +2 -0
  561. package/dist/providers/Theme/shared.js.map +1 -0
  562. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  563. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  564. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  565. package/dist/providers/UploadHandlers/index.js +102 -42
  566. package/dist/providers/UploadHandlers/index.js.map +1 -1
  567. package/dist/styles.css +31 -14
  568. package/dist/templates/Default/index.d.ts.map +1 -1
  569. package/dist/templates/Default/index.js +6 -0
  570. package/dist/templates/Default/index.js.map +1 -1
  571. package/dist/utilities/api.d.ts.map +1 -1
  572. package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -1
  573. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  574. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  575. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  576. package/dist/utilities/buildFormState.d.ts +2 -2
  577. package/dist/utilities/buildFormState.d.ts.map +1 -1
  578. package/dist/utilities/buildFormState.js +1 -0
  579. package/dist/utilities/buildFormState.js.map +1 -1
  580. package/dist/utilities/checkDependencies.d.ts.map +1 -1
  581. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  582. package/dist/utilities/combineFieldLabel.js +5 -1
  583. package/dist/utilities/combineFieldLabel.js.map +1 -1
  584. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  585. package/dist/utilities/copyDataFromLocale.js +1 -0
  586. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  587. package/dist/utilities/filterOutUploadFields.d.ts.map +1 -1
  588. package/dist/utilities/findLocaleFromCode.d.ts.map +1 -1
  589. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  590. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  591. package/dist/utilities/formatDocTitle/formatRelationshipTitle.d.ts.map +1 -1
  592. package/dist/utilities/formatDocTitle/index.d.ts +1 -1
  593. package/dist/utilities/formatDocTitle/index.d.ts.map +1 -1
  594. package/dist/utilities/formatDocTitle/index.js +1 -1
  595. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  596. package/dist/utilities/formatFields.d.ts.map +1 -1
  597. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  598. package/dist/utilities/formatRelativeDate.d.ts +15 -0
  599. package/dist/utilities/formatRelativeDate.d.ts.map +1 -0
  600. package/dist/utilities/formatRelativeDate.js +62 -0
  601. package/dist/utilities/formatRelativeDate.js.map +1 -0
  602. package/dist/utilities/generateFieldID.d.ts +1 -1
  603. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  604. package/dist/utilities/generateFieldID.js +2 -2
  605. package/dist/utilities/generateFieldID.js.map +1 -1
  606. package/dist/utilities/getColumns.d.ts.map +1 -1
  607. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  608. package/dist/utilities/getDocPreferences.d.ts +2 -2
  609. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  610. package/dist/utilities/getDocPreferences.js.map +1 -1
  611. package/dist/utilities/getDocumentData.d.ts +2 -2
  612. package/dist/utilities/getDocumentData.d.ts.map +1 -1
  613. package/dist/utilities/getDocumentData.js.map +1 -1
  614. package/dist/utilities/getDocumentPermissions.d.ts.map +1 -1
  615. package/dist/utilities/getGlobalData.d.ts +2 -2
  616. package/dist/utilities/getGlobalData.d.ts.map +1 -1
  617. package/dist/utilities/getGlobalData.js.map +1 -1
  618. package/dist/utilities/getHasScheduledPublish.d.ts +2 -2
  619. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  620. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  621. package/dist/utilities/getIsLocked.d.ts +2 -2
  622. package/dist/utilities/getIsLocked.d.ts.map +1 -1
  623. package/dist/utilities/getIsLocked.js.map +1 -1
  624. package/dist/utilities/getLanguageDir.d.ts +12 -0
  625. package/dist/utilities/getLanguageDir.d.ts.map +1 -0
  626. package/dist/utilities/getLanguageDir.js +12 -0
  627. package/dist/utilities/getLanguageDir.js.map +1 -0
  628. package/dist/utilities/getOffsetTop.d.ts.map +1 -1
  629. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  630. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  631. package/dist/utilities/getRequestEmbed.js +10 -0
  632. package/dist/utilities/getRequestEmbed.js.map +1 -0
  633. package/dist/utilities/getRequestHighContrast.d.ts.map +1 -1
  634. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  635. package/dist/utilities/getRequestTheme.d.ts +1 -1
  636. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  637. package/dist/utilities/getRequestTheme.js +1 -1
  638. package/dist/utilities/getRequestTheme.js.map +1 -1
  639. package/dist/utilities/getRouteWithoutAdmin.d.ts.map +1 -1
  640. package/dist/utilities/getSupportedMonacoLocale.d.ts.map +1 -1
  641. package/dist/utilities/getVersions.d.ts +2 -2
  642. package/dist/utilities/getVersions.d.ts.map +1 -1
  643. package/dist/utilities/getVersions.js +2 -5
  644. package/dist/utilities/getVersions.js.map +1 -1
  645. package/dist/utilities/handleAuthRedirect.d.ts +2 -2
  646. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  647. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  648. package/dist/utilities/handleBackToDashboard.d.ts.map +1 -1
  649. package/dist/utilities/handleFormStateLocking.d.ts +2 -2
  650. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  651. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  652. package/dist/utilities/handleGoBack.d.ts.map +1 -1
  653. package/dist/utilities/handleLivePreview.d.ts +1 -0
  654. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  655. package/dist/utilities/handlePreview.d.ts.map +1 -1
  656. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  657. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  658. package/dist/utilities/handleServerFunctions.js +17 -37
  659. package/dist/utilities/handleServerFunctions.js.map +1 -1
  660. package/dist/utilities/handleStaleDataCheck.d.ts.map +1 -1
  661. package/dist/utilities/handleTakeOver.d.ts +5 -5
  662. package/dist/utilities/handleTakeOver.d.ts.map +1 -1
  663. package/dist/utilities/handleTakeOver.js.map +1 -1
  664. package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +1 -1
  665. package/dist/utilities/hasSavePermission.d.ts.map +1 -1
  666. package/dist/utilities/initReq.d.ts.map +1 -1
  667. package/dist/utilities/isClientUserObject.d.ts +2 -2
  668. package/dist/utilities/isClientUserObject.d.ts.map +1 -1
  669. package/dist/utilities/isClientUserObject.js.map +1 -1
  670. package/dist/utilities/isCustomAdminView.d.ts.map +1 -1
  671. package/dist/utilities/isEditing.d.ts.map +1 -1
  672. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  673. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  674. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  675. package/dist/utilities/isURLAllowed.js +9 -3
  676. package/dist/utilities/isURLAllowed.js.map +1 -1
  677. package/dist/utilities/recentlyViewed.d.ts +16 -0
  678. package/dist/utilities/recentlyViewed.d.ts.map +1 -0
  679. package/dist/utilities/recentlyViewed.js +21 -0
  680. package/dist/utilities/recentlyViewed.js.map +1 -0
  681. package/dist/utilities/recentlyViewed.spec.js +92 -0
  682. package/dist/utilities/recentlyViewed.spec.js.map +1 -0
  683. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  684. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  685. package/dist/utilities/renderTable.d.ts +2 -2
  686. package/dist/utilities/renderTable.d.ts.map +1 -1
  687. package/dist/utilities/renderTable.js +18 -2
  688. package/dist/utilities/renderTable.js.map +1 -1
  689. package/dist/utilities/resolveFilterOptions.d.ts +1 -1
  690. package/dist/utilities/resolveFilterOptions.d.ts.map +1 -1
  691. package/dist/utilities/sanitizeFilterOptionsQuery.d.ts.map +1 -1
  692. package/dist/utilities/scrollToID.d.ts.map +1 -1
  693. package/dist/utilities/selectiveCache.d.ts.map +1 -1
  694. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  695. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  696. package/dist/utilities/serverFunctionRegistry.js +25 -7
  697. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  698. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  699. package/dist/utilities/slugify.d.ts +1 -1
  700. package/dist/utilities/slugify.d.ts.map +1 -1
  701. package/dist/utilities/slugify.js +50 -7
  702. package/dist/utilities/slugify.js.map +1 -1
  703. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  704. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  705. package/dist/views/Account/ResetPreferences/index.d.ts +2 -2
  706. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  707. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  708. package/dist/views/Account/Settings/index.d.ts +2 -2
  709. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  710. package/dist/views/Account/Settings/index.js.map +1 -1
  711. package/dist/views/CollectionTrash/generateCollectionTrashMetadata.d.ts.map +1 -1
  712. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
  713. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +27 -23
  714. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  715. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -8
  716. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +5 -5
  717. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  718. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  719. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  720. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts +2 -2
  721. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -1
  722. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  723. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  724. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  725. package/dist/views/Dashboard/Default/index.js.map +1 -1
  726. package/dist/views/Document/getCustomDocumentViewByKey.d.ts +1 -1
  727. package/dist/views/Document/getCustomDocumentViewByKey.d.ts.map +1 -1
  728. package/dist/views/Document/getCustomViewByRoute.d.ts +1 -1
  729. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  730. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  731. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  732. package/dist/views/Document/index.d.ts +1 -1
  733. package/dist/views/Document/index.d.ts.map +1 -1
  734. package/dist/views/Document/index.js +17 -1
  735. package/dist/views/Document/index.js.map +1 -1
  736. package/dist/views/Document/recordRecentlyViewed.d.ts +12 -0
  737. package/dist/views/Document/recordRecentlyViewed.d.ts.map +1 -0
  738. package/dist/views/Document/recordRecentlyViewed.js +40 -0
  739. package/dist/views/Document/recordRecentlyViewed.js.map +1 -0
  740. package/dist/views/Edit/index.css +61 -53
  741. package/dist/views/Edit/index.d.ts.map +1 -1
  742. package/dist/views/Edit/index.js +1 -1
  743. package/dist/views/Edit/index.js.map +1 -1
  744. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +2 -2
  745. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
  746. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
  747. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +2 -2
  748. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -1
  749. package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -1
  750. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  751. package/dist/views/HierarchyList/TypeFilter/index.js +3 -0
  752. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  753. package/dist/views/HierarchyList/index.d.ts.map +1 -1
  754. package/dist/views/HierarchyList/index.js +2 -6
  755. package/dist/views/HierarchyList/index.js.map +1 -1
  756. package/dist/views/List/createSerializableValue.d.ts.map +1 -1
  757. package/dist/views/List/extractRelationshipDisplayValue.d.ts.map +1 -1
  758. package/dist/views/List/extractValueOrRelationshipID.d.ts.map +1 -1
  759. package/dist/views/List/generateListViewMetadata.d.ts.map +1 -1
  760. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  761. package/dist/views/List/handleHierarchy.d.ts +1 -1
  762. package/dist/views/List/handleHierarchy.d.ts.map +1 -1
  763. package/dist/views/List/index.d.ts.map +1 -1
  764. package/dist/views/List/index.js +5 -7
  765. package/dist/views/List/index.js.map +1 -1
  766. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  767. package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -1
  768. package/dist/views/List/transformColumnsToSelect.d.ts.map +1 -1
  769. package/dist/views/Logout/LogoutClient.js +28 -32
  770. package/dist/views/Logout/LogoutClient.js.map +1 -1
  771. package/dist/views/Logout/index.d.ts.map +1 -1
  772. package/dist/views/Logout/index.js +11 -0
  773. package/dist/views/Logout/index.js.map +1 -1
  774. package/dist/views/NotFound/page.d.ts.map +1 -1
  775. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -1
  776. package/dist/views/Root/generatePageMetadata.d.ts.map +1 -1
  777. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts +1 -1
  778. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  779. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts +1 -1
  780. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  781. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  782. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  783. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  784. package/dist/views/Root/index.d.ts +12 -1
  785. package/dist/views/Root/index.d.ts.map +1 -1
  786. package/dist/views/Root/index.js +10 -3
  787. package/dist/views/Root/index.js.map +1 -1
  788. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  789. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
  790. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  791. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  792. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  793. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +1 -0
  794. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  795. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  796. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  797. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +1 -0
  798. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  799. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  800. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  801. package/dist/views/Version/SelectComparison/index.js +1 -0
  802. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  803. package/dist/views/Versions/buildColumns.d.ts +1 -1
  804. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  805. package/dist/views/Versions/fetchVersions.d.ts +8 -8
  806. package/dist/views/Versions/fetchVersions.d.ts.map +1 -1
  807. package/dist/views/Versions/fetchVersions.js.map +1 -1
  808. package/dist/views/Versions/types.d.ts +2 -2
  809. package/dist/views/Versions/types.d.ts.map +1 -1
  810. package/dist/views/Versions/types.js.map +1 -1
  811. package/dist/widgets/CollectionCards/getCollectionCardsData.d.ts +2 -2
  812. package/dist/widgets/CollectionCards/getCollectionCardsData.d.ts.map +1 -1
  813. package/dist/widgets/CollectionCards/getCollectionCardsData.js.map +1 -1
  814. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  815. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  816. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -0
  817. package/dist/widgets/CollectionQuery/SortField/index.js +118 -0
  818. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -0
  819. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts +18 -0
  820. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts.map +1 -0
  821. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js +91 -0
  822. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js.map +1 -0
  823. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +100 -0
  824. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +1 -0
  825. package/dist/widgets/CollectionQuery/index.css +64 -0
  826. package/dist/widgets/CollectionQuery/index.d.ts +16 -0
  827. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -0
  828. package/dist/widgets/CollectionQuery/index.js +328 -0
  829. package/dist/widgets/CollectionQuery/index.js.map +1 -0
  830. package/dist/widgets/RecentlyViewed/CollectionsField/index.css +14 -0
  831. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +10 -0
  832. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -0
  833. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +76 -0
  834. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -0
  835. package/dist/widgets/RecentlyViewed/index.d.ts +10 -0
  836. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -0
  837. package/dist/widgets/RecentlyViewed/index.js +148 -0
  838. package/dist/widgets/RecentlyViewed/index.js.map +1 -0
  839. package/dist/widgets/WidgetCard/index.css +155 -0
  840. package/dist/widgets/WidgetCard/index.d.ts +19 -0
  841. package/dist/widgets/WidgetCard/index.d.ts.map +1 -0
  842. package/dist/widgets/WidgetCard/index.js +49 -0
  843. package/dist/widgets/WidgetCard/index.js.map +1 -0
  844. package/package.json +7 -515
  845. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
  846. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
  847. package/dist/elements/Hierarchy/Drawer/index.css +0 -90
  848. package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
  849. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
  850. package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
  851. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
  852. package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
  853. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
  854. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
  855. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
  856. package/dist/elements/Nav/NavToggler/index.css +0 -12
  857. package/dist/elements/Nav/NavToggler/index.d.ts +0 -9
  858. package/dist/elements/Nav/NavToggler/index.d.ts.map +0 -1
  859. package/dist/elements/Nav/NavToggler/index.js +0 -91
  860. package/dist/elements/Nav/NavToggler/index.js.map +0 -1
  861. package/dist/elements/Nav/SettingsMenuButton/index.scss +0 -11
  862. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  863. package/dist/scss/app.scss +0 -183
  864. package/dist/scss/colors.scss +0 -191
  865. package/dist/scss/custom.css +0 -1
  866. package/dist/scss/queries.scss +0 -27
  867. package/dist/scss/styles.scss +0 -9
  868. package/dist/scss/svg.scss +0 -10
  869. package/dist/scss/toastify.scss +0 -61
  870. package/dist/scss/vars.scss +0 -192
  871. package/dist/scss/z-index.scss +0 -9
  872. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.d.ts +0 -0
  873. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.js +0 -0
  874. /package/dist/elements/Hierarchy/{Drawer → Modal}/types.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceFieldOptions.spec.js","names":["describe","expect","it","vi","mock","combineFieldLabel","reduceFieldOptions","text","name","type","namesOf","options","map","option","value","field","undefined","optionsFor","fields","permissions","granted","create","read","update","readOnly","tabs","namedTab","okInTab","restrictedInTab","names","toContain","not","outerTab","innerTab","deepOk","deepRestricted","cleanTab","cleanField","restrictedHostTab","restrictedField","toEqual","arrayContaining","label","okAtRoot","restrictedAtRoot"],"sources":["../../../src/elements/FieldSelect/reduceFieldOptions.spec.ts"],"sourcesContent":["import type { ClientField } from 'payload'\n\nimport { describe, expect, it, vi } from 'vitest'\n\nimport type { FieldOption } from './reduceFieldOptions.js'\n\n// Mock the JSX label builder: irrelevant to permission logic and avoids needing a React runtime here.\nvi.mock('../../utilities/combineFieldLabel.js', () => ({\n combineFieldLabel: () => null,\n}))\n\nimport { reduceFieldOptions } from './reduceFieldOptions.js'\n\nconst text = (name: string): ClientField => ({ name, type: 'text' }) as ClientField\n\nconst namesOf = (options: FieldOption[]): (string | undefined)[] =>\n options.map((option) => ('name' in option.value.field ? option.value.field.name : undefined))\n\n// A denied field omits the operation key at runtime, which `SanitizedFieldPermissions` can't express — cast at the boundary.\ntype Permissions = Parameters<typeof reduceFieldOptions>[0]['permissions']\nconst optionsFor = (fields: ClientField[], permissions: unknown): FieldOption[] =>\n reduceFieldOptions({ fields, permissions: permissions as Permissions })\n\n// Granted sets the operation to `true`; denied omits the key, mirroring `populateFieldPermissions`.\nconst granted = { create: true, read: true, update: true }\nconst readOnly = { create: true, read: true }\n\ndescribe('reduceFieldOptions', () => {\n it('excludes a restricted field inside a named tab while keeping its clean siblings', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [{ name: 'namedTab', fields: [text('okInTab'), text('restrictedInTab')] }],\n } as ClientField,\n ]\n\n const permissions = {\n namedTab: {\n ...granted,\n fields: {\n okInTab: granted,\n restrictedInTab: readOnly,\n },\n },\n }\n\n const options = optionsFor(fields, permissions)\n const names = namesOf(options)\n\n expect(names).toContain('okInTab')\n expect(names).not.toContain('restrictedInTab')\n })\n\n it('excludes a restricted field inside a nested named tab', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'outerTab',\n fields: [\n {\n type: 'tabs',\n tabs: [{ name: 'innerTab', fields: [text('deepOk'), text('deepRestricted')] }],\n },\n ],\n },\n ],\n } as ClientField,\n ]\n\n const permissions = {\n outerTab: {\n ...granted,\n fields: {\n innerTab: {\n ...granted,\n fields: {\n deepOk: granted,\n deepRestricted: readOnly,\n },\n },\n },\n },\n }\n\n const options = optionsFor(fields, permissions)\n const names = namesOf(options)\n\n expect(names).toContain('deepOk')\n expect(names).not.toContain('deepRestricted')\n })\n\n it('only affects the named tab that contains the restricted field', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n { name: 'cleanTab', fields: [text('cleanField')] },\n { name: 'restrictedHostTab', fields: [text('restrictedField')] },\n ],\n } as ClientField,\n ]\n\n const permissions = {\n cleanTab: { ...granted, fields: { cleanField: granted } },\n restrictedHostTab: { ...granted, fields: { restrictedField: readOnly } },\n }\n\n const options = optionsFor(fields, permissions)\n const names = namesOf(options)\n\n expect(names).toContain('cleanField')\n expect(names).not.toContain('restrictedField')\n })\n\n it('includes every named-tab field when permissions are fully granted', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [{ name: 'namedTab', fields: [text('a'), text('b')] }],\n } as ClientField,\n ]\n\n const options = optionsFor(fields, true)\n const names = namesOf(options)\n\n expect(names).toEqual(expect.arrayContaining(['a', 'b']))\n })\n\n it('applies parent permissions to an unnamed tab and excludes its restricted fields', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [{ label: 'Unnamed', fields: [text('okAtRoot'), text('restrictedAtRoot')] }],\n } as ClientField,\n ]\n\n // Unnamed tabs share the parent's permission map, so subfields resolve at the parent level.\n const permissions = {\n okAtRoot: granted,\n restrictedAtRoot: readOnly,\n }\n\n const options = optionsFor(fields, permissions)\n const names = namesOf(options)\n\n expect(names).toContain('okAtRoot')\n expect(names).not.toContain('restrictedAtRoot')\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  @layer payload-default {
2
2
  .file-details {
3
- background: var(--theme-elevation-50);
4
- border: var(--stroke-width-small) solid var(--theme-border-color);
3
+ background: var(--color-bg-secondary);
4
+ border: var(--stroke-width-small) solid var(--color-border);
5
5
  border-radius: var(--radius-medium);
6
6
  box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
7
7
  }
@@ -25,10 +25,9 @@
25
25
  }
26
26
 
27
27
  .file-details__remove .btn__icon {
28
- border: var(--stroke-width-small) solid var(--theme-border-color);
29
- background: var(--theme-input-bg);
28
+ border: var(--stroke-width-small) solid var(--color-border);
29
+ background: var(--color-bg);
30
30
  box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1);
31
- transition: border 100ms cubic-bezier(0, 0.2, 0.2, 1);
32
31
  }
33
32
 
34
33
  .file-details__remove .btn__icon:not(:disabled):hover {
@@ -36,7 +35,7 @@
36
35
  }
37
36
 
38
37
  .file-details__remove .btn__icon:hover {
39
- border: var(--stroke-width-small) solid var(--theme-elevation-400);
38
+ border: var(--stroke-width-small) solid var(--special-border-translucent-strong);
40
39
  }
41
40
 
42
41
  .file-details__main-detail {
@@ -81,7 +80,7 @@
81
80
  }
82
81
 
83
82
  .file-details__size-label {
84
- color: var(--theme-elevation-400);
83
+ color: var(--color-text-tertiary);
85
84
  }
86
85
 
87
86
  .file-details__file-mutation {
@@ -92,14 +91,14 @@
92
91
 
93
92
  .file-details__edit {
94
93
  cursor: pointer;
95
- background-color: var(--theme-elevation-150);
94
+ background-color: var(--color-bg-tertiary);
96
95
  border: none;
97
96
  border-radius: var(--radius-medium);
98
97
  padding: var(--spacer-1) var(--spacer-2);
99
98
  }
100
99
 
101
100
  .file-details__edit:hover {
102
- background-color: var(--theme-elevation-100);
101
+ background-color: var(--color-bg-secondary);
103
102
  }
104
103
 
105
104
  @media (max-width: 1440px) {
@@ -1,7 +1,7 @@
1
1
  @layer payload-default {
2
2
  .file-preview {
3
3
  display: flex;
4
- flex-direction: row;
4
+ flex-direction: column-reverse;
5
5
  flex: 1 1 0;
6
6
  min-height: 0;
7
7
  /* Visible so the mini carousel can grow past the panel as the headers scroll away. */
@@ -75,9 +75,9 @@
75
75
  min-width: 0;
76
76
  }
77
77
 
78
- @container edit-main (max-width: 768px) {
78
+ @container edit-main (min-width: 768px) {
79
79
  .file-preview {
80
- flex-direction: column-reverse;
80
+ flex-direction: row;
81
81
  }
82
82
  }
83
83
  }
@@ -1,13 +1,14 @@
1
1
  @layer payload-default {
2
2
  .file-manager {
3
+ --file-fields-max-width: 600px;
3
4
  position: relative;
4
- flex: 1 0 0;
5
5
  align-self: stretch;
6
6
  width: 100%;
7
7
  margin-bottom: 0;
8
8
  border-radius: 0;
9
9
  background: var(--color-bg-secondary);
10
- min-height: 100px;
10
+ min-height: 400px;
11
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
11
12
 
12
13
  .dropzone {
13
14
  border: none;
@@ -16,25 +17,23 @@
16
17
  }
17
18
 
18
19
  .file-manager__panel {
19
- position: sticky;
20
- top: var(--doc-controls-height);
21
- height: calc(
22
- 100dvh - var(--app-header-height) - var(--doc-controls-height) - var(--doc-header-height)
23
- );
20
+ position: static;
21
+ height: auto;
22
+ min-height: 400px;
24
23
  display: flex;
25
24
  flex-direction: column;
26
25
  /* Visible so the mini carousel can grow past the panel to fill the area left behind as the
27
26
  app/doc headers scroll away (see MiniCarousel). */
28
27
  overflow: visible;
29
- /* Scroll-driven: grow height as the app header and doc header scroll away, matching the
30
- extra space they free up. Mirrors the MiniCarousel approach. Falls back to static height. */
31
28
  }
32
29
 
33
30
  .file-manager__content {
34
31
  display: flex;
35
- flex-direction: row;
36
- flex: 1 1 0;
37
- min-height: 0;
32
+ flex-direction: column;
33
+ /* flex-basis: auto (not 0) so this sizes to its content when the panel's height is auto
34
+ (stacked layout) instead of collapsing — flex-basis 0 only makes sense when the panel
35
+ has a definite height to grow into (see the min-width override below). */
36
+ flex: 1 1 auto;
38
37
  overflow: visible;
39
38
  }
40
39
 
@@ -44,7 +43,8 @@
44
43
  flex-direction: column;
45
44
  align-items: center;
46
45
  justify-content: center;
47
- padding: var(--spacer-4);
46
+ gap: var(--spacer-4);
47
+ padding: var(--spacer-4) var(--gutter-h);
48
48
  position: relative;
49
49
  }
50
50
 
@@ -58,10 +58,10 @@
58
58
  justify-content: center;
59
59
  }
60
60
 
61
- .file-manager__remove {
61
+ .file-manager__upload .file-manager__remove {
62
62
  position: absolute;
63
- top: var(--spacer-2);
64
- right: var(--spacer-2);
63
+ top: var(--gutter-h);
64
+ right: var(--gutter-h);
65
65
  margin: 0;
66
66
  z-index: 1;
67
67
  }
@@ -135,20 +135,33 @@
135
135
  color: var(--color-text-tertiary);
136
136
  }
137
137
 
138
- @container edit-main (max-width: 1024px) {
138
+ @container edit-main (min-width: 1024px) {
139
139
  .file-manager {
140
- min-height: 400px;
141
- border-bottom: var(--stroke-width-small) solid var(--color-border);
140
+ min-height: 100px;
141
+ border-bottom: none;
142
+ }
143
+
144
+ .file-manager__upload {
145
+ padding: var(--spacer-4);
146
+ }
147
+
148
+ .file-manager__file-adjustments {
149
+ max-width: var(--file-fields-max-width);
142
150
  }
143
151
 
144
152
  .file-manager__panel {
145
- position: static;
146
- height: auto;
147
- min-height: 400px;
153
+ position: sticky;
154
+ top: var(--doc-controls-height);
155
+ /* Scroll-driven: grow height as the app header and doc header scroll away, matching the
156
+ extra space they free up. Mirrors the MiniCarousel approach. Falls back to static height. */
157
+ height: calc(
158
+ 100dvh - var(--app-header-height) - var(--doc-controls-height) - var(--doc-header-height)
159
+ );
148
160
  }
149
161
 
150
162
  .file-manager__content {
151
- flex-direction: column;
163
+ flex-direction: row;
164
+ min-height: 0;
152
165
  }
153
166
  }
154
167
  }
@@ -10,7 +10,7 @@ export type FileManagerProps = {
10
10
  */
11
11
  readonly resetUploadEdits?: () => void;
12
12
  readonly updateUploadEdits?: (args: UploadEdits) => void;
13
- readonly uploadConfig: SanitizedCollectionConfig['upload'];
13
+ readonly uploadConfig: Omit<SanitizedCollectionConfig['upload'], 'uploadInstructions'>;
14
14
  readonly UploadControls?: React.ReactNode;
15
15
  readonly uploadEdits?: UploadEdits;
16
16
  readonly UploadFilePreview?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileManager/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIrE,OAAO,KAA6D,MAAM,OAAO,CAAA;AA2BjF,OAAO,aAAa,CAAA;AAcpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,SAAS,EAAE,SAAS,CAAA;IACnD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACxD,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqalD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileManager/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIrE,OAAO,KAA6D,MAAM,OAAO,CAAA;AA2BjF,OAAO,aAAa,CAAA;AAcpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,SAAS,EAAE,SAAS,CAAA;IACnD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACxD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkblD,CAAA"}
@@ -215,6 +215,12 @@ export const FileManager = ({
215
215
  setModified(true);
216
216
  updateUploadEdits(args);
217
217
  }, [setModified, updateUploadEdits]);
218
+ // Reset states for when replacing the file with a new upload
219
+ useEffect(() => {
220
+ setSelectedSize(null);
221
+ setRemovedFile(false);
222
+ setFileSrc('');
223
+ }, [data?.url, data?.filename]);
218
224
  useEffect(() => {
219
225
  if (initialState?.file?.value instanceof File) {
220
226
  setFileSrc(URL.createObjectURL(initialState.file.value));
@@ -228,9 +234,6 @@ export const FileManager = ({
228
234
  }
229
235
  };
230
236
  }, [fileSrc]);
231
- useEffect(() => {
232
- setSelectedSize(null);
233
- }, [data?.url, data?.filename]);
234
237
  useEffect(() => {
235
238
  const handleControlFileUrl = async () => {
236
239
  if (uploadControlFileUrl) {
@@ -326,6 +329,7 @@ export const FileManager = ({
326
329
  className: [fieldBaseClass, baseClass].filter(Boolean).join(' '),
327
330
  children: [/*#__PURE__*/_jsx(FieldError, {
328
331
  message: errorMessage,
332
+ path: "filename",
329
333
  showError: showError
330
334
  }), /*#__PURE__*/_jsxs("div", {
331
335
  className: `${baseClass}__panel`,
@@ -350,7 +354,14 @@ export const FileManager = ({
350
354
  UploadFilePreview: UploadFilePreview
351
355
  }) : showUploadInput ? /*#__PURE__*/_jsxs("div", {
352
356
  className: `${baseClass}__upload`,
353
- children: [!value && /*#__PURE__*/_jsx(Dropzone, {
357
+ children: [!value && removedFile && data?.filename && /*#__PURE__*/_jsx(Button, {
358
+ buttonStyle: "secondary",
359
+ className: `${baseClass}__remove`,
360
+ icon: "x",
361
+ onClick: () => setRemovedFile(false),
362
+ round: true,
363
+ tooltip: t('general:cancel')
364
+ }), !value && /*#__PURE__*/_jsx(Dropzone, {
354
365
  onChange: handleFileSelection,
355
366
  children: /*#__PURE__*/_jsxs("div", {
356
367
  className: `${baseClass}__dropzone-content`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","formatAdminURL","formatFilesize","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","TextInput","useForm","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","PreviewSizes","Thumbnail","editDrawerSlug","sizePreviewSlug","pasteURLDrawerSlug","UploadFromURLModal","AudioPreview","FilePreview","PdfPreview","VideoPreview","FileToolbar","baseClass","validate","value","undefined","name","FileManager","collectionSlug","initialState","resetUploadEdits","resetUploadEditsFromProps","updateUploadEdits","updateUploadEditsFromProps","uploadConfig","UploadControls","uploadEdits","uploadEditsFromProps","UploadFilePreview","closeModal","openModal","t","setModified","id","data","setUploadStatus","errorMessage","setValue","showError","path","config","routes","api","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","uploadEditsContext","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","fileUrl","setFileUrl","selectedSize","setSelectedSize","inputRef","useServerSideFetch","pasteURL","allowList","length","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","selectedSizeData","sizes","sidePanelFileSrc","url","thumbnailURL","sidePanelMimeType","mimeType","fileTypeIsAdjustable","renameFile","fileToChange","newName","File","type","lastModified","handleFileChange","file","isNewFile","URL","createObjectURL","handleFileNameChange","e","updatedFileName","target","handleFileRemoval","handleFileSelection","files","isValidUrl","canParse","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","rawSegment","split","pop","fileName","decodeURIComponent","_clientError","error","encodeURIComponent","serverResponse","apiRoute","_serverError","onEditsSave","args","startsWith","revokeObjectURL","handleControlFileUrl","renderSelectedFilePreview","src","fileType","_jsx","className","title","size","drawers","_jsxs","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","slug","label","doc","showUploadInput","hideFileInputOnCreate","filter","message","hideRemoveFile","isAdjustable","onEditImage","onReplace","onChange","buttonStyle","onClick","current","click","accept","hidden","ref","icon","round","tooltip"],"sources":["../../../src/elements/FileManager/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL, formatFilesize, isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { useForm } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport { editDrawerSlug, sizePreviewSlug } from '../Upload/index.js'\nimport { pasteURLDrawerSlug, UploadFromURLModal } from '../Upload/UploadFromURLModal/index.js'\nimport { AudioPreview } from './FilePreview/AudioPreview/index.js'\nimport { FilePreview } from './FilePreview/index.js'\nimport { PdfPreview } from './FilePreview/PdfPreview/index.js'\nimport { VideoPreview } from './FilePreview/VideoPreview/index.js'\nimport { FileToolbar } from './FileToolbar/index.js'\nimport './index.css'\n\nconst baseClass = 'file-manager'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n return true\n}\n\nexport type FileManagerProps = {\n readonly collectionSlug: string\n readonly initialState?: import('payload').FormState\n /**\n * When provided, upload edits are sourced from these props instead of the `useUploadEdits`\n * context. The bulk upload drawer uses this to drive per-file edits from its FormsManager.\n */\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n readonly uploadEdits?: UploadEdits\n readonly UploadFilePreview?: React.ReactNode\n}\n\nexport const FileManager: React.FC<FileManagerProps> = ({\n collectionSlug,\n initialState,\n resetUploadEdits: resetUploadEditsFromProps,\n updateUploadEdits: updateUploadEditsFromProps,\n uploadConfig,\n UploadControls,\n uploadEdits: uploadEditsFromProps,\n UploadFilePreview,\n}) => {\n const { closeModal, openModal } = useModal()\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { id, data, setUploadStatus } = useDocumentInfo()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n const uploadEditsContext = useUploadEdits()\n const resetUploadEdits = resetUploadEditsFromProps ?? uploadEditsContext.resetUploadEdits\n const updateUploadEdits = updateUploadEditsFromProps ?? uploadEditsContext.updateUploadEdits\n const uploadEdits = uploadEditsFromProps ?? uploadEditsContext.uploadEdits\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [fileUrl, setFileUrl] = useState<string>('')\n const [selectedSize, setSelectedSize] = useState<null | string>(null)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n const focalPointEnabled = uploadConfig?.focalPoint === true\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const selectedSizeData = selectedSize\n ? (data?.sizes?.[selectedSize] as Record<string, unknown>)\n : null\n const sidePanelFileSrc = (selectedSizeData?.url ?? data?.thumbnailURL ?? data?.url ?? null) as\n | null\n | string\n const sidePanelMimeType = data?.mimeType as string | undefined\n const fileTypeIsAdjustable =\n !!sidePanelMimeType &&\n isImage(sidePanelMimeType) &&\n sidePanelMimeType !== 'image/svg+xml' &&\n sidePanelMimeType !== 'image/jxl'\n\n const renameFile = (fileToChange: File, newName: string): File =>\n new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n setValue(file)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n },\n [setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const handleFileNameChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n setSelectedSize(null)\n resetUploadEdits()\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const handleFileSelection = useCallback(\n (files: FileList) => handleFileChange({ file: files?.[0] }),\n [handleFileChange],\n )\n\n const isValidUrl = Boolean(fileUrl && URL.canParse(fileUrl))\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || !URL.canParse(fileUrl) || uploadConfig?.pasteURL === false) {\n return\n }\n setUploadStatus('uploading')\n try {\n const clientResponse = await fetch(fileUrl)\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed: ${clientResponse.status}`)\n }\n const blob = await clientResponse.blob()\n const rawSegment = fileUrl.split('/').pop() || ''\n const fileName = uploadControlFileName || decodeURIComponent(rawSegment.split('?')[0])\n handleFileChange({ file: new File([blob], fileName, { type: blob.type }) })\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n return\n } catch (_clientError) {\n if (!useServerSideFetch) {\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n try {\n const pasteURL: `/${string}` = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(formatAdminURL({ apiRoute: api, path: pasteURL }))\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed: ${serverResponse.status}`)\n }\n const blob = await serverResponse.blob()\n const rawSegment = fileUrl.split('/').pop() || ''\n const fileName = decodeURIComponent(rawSegment.split('?')[0])\n handleFileChange({ file: new File([blob], fileName, { type: blob.type }) })\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n closeModal,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n return () => {\n if (fileSrc?.startsWith('blob:')) {\n URL.revokeObjectURL(fileSrc)\n }\n }\n }, [fileSrc])\n\n useEffect(() => {\n setSelectedSize(null)\n }, [data?.url, data?.filename])\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }, [uploadControlFile, handleFileChange])\n\n // Preview a freshly-selected (not-yet-saved) file from its local object URL, so video/audio/PDF\n // are playable/viewable just like images. Sizing is capped in CSS so large files stay contained.\n const renderSelectedFilePreview = (src: string) => {\n const fileType = value?.type ?? ''\n\n if (fileType.startsWith('video/')) {\n return (\n <div className={`${baseClass}__selected-preview`}>\n <VideoPreview fileSrc={src} />\n </div>\n )\n }\n\n if (fileType.startsWith('audio/')) {\n return (\n <div className={`${baseClass}__selected-preview ${baseClass}__selected-preview--audio`}>\n <AudioPreview fileSrc={src} />\n </div>\n )\n }\n\n if (fileType === 'application/pdf') {\n return (\n <div className={`${baseClass}__selected-preview`}>\n <PdfPreview fileSrc={src} title={value?.name} />\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__selected-preview`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(fileType) ? src : null}\n size=\"expand\"\n />\n </div>\n )\n }\n\n const drawers = (\n <Fragment>\n {(value || data?.filename) && (\n <EditDepthProvider>\n <EditUpload\n fileName={value?.name || (data?.filename as string)}\n fileSrc={(data?.url as string) || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || (data?.focalX as number) || 50,\n y: uploadEdits?.focalPoint?.y || (data?.focalY as number) || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__preview-drawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n {uploadConfig?.pasteURL !== false && (\n <UploadFromURLModal\n fileUrl={fileUrl}\n handleUrlSubmit={handleUrlSubmit}\n isValidUrl={isValidUrl}\n setFileUrl={setFileUrl}\n />\n )}\n </Fragment>\n )\n\n // Hide the create file input when the collection opts out of it (unless the user has explicitly\n // removed an existing file or already selected a new one).\n const showUploadInput = Boolean(value) || removedFile || !uploadConfig?.hideFileInputOnCreate\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n <div className={`${baseClass}__panel`}>\n {data?.filename && !removedFile && (\n <FileToolbar\n filename={data.filename as string}\n fileSrc={sidePanelFileSrc}\n fileUrl={data?.url as string}\n hideRemoveFile={uploadConfig?.hideRemoveFile}\n isAdjustable={fileTypeIsAdjustable}\n onEditImage={() => openModal(editDrawerSlug)}\n onReplace={handleFileRemoval}\n />\n )}\n <div className={`${baseClass}__content`}>\n {data?.filename && !removedFile ? (\n <FilePreview\n collectionSlug={collectionSlug}\n data={data as Record<string, unknown>}\n imageCacheTag={imageCacheTag}\n selectedSize={selectedSize}\n selectedSizeData={selectedSizeData}\n setSelectedSize={setSelectedSize}\n uploadConfig={uploadConfig}\n UploadFilePreview={UploadFilePreview}\n />\n ) : showUploadInput ? (\n <div className={`${baseClass}__upload`}>\n {!value && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzone-content`}>\n <div className={`${baseClass}__dropzone-buttons`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => inputRef.current?.click()}\n size=\"medium\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__or-text`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n openModal(pasteURLDrawerSlug)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"medium\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n {UploadControls ?? null}\n </div>\n <p className={`${baseClass}__drag-text`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {value && fileSrc && (\n <Fragment>\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n {renderSelectedFilePreview(fileSrc)}\n <div className={`${baseClass}__file-adjustments`}>\n {/* Custom id so this editor doesn't collide with the hidden auto `filename` field. */}\n <TextInput\n id=\"field-filemanager-filename\"\n label={t('upload:fileName')}\n onChange={handleFileNameChange}\n path=\"filename\"\n value={filename || value.name}\n />\n {(value.size || value.type) && (\n <span className={`${baseClass}__selected-meta`}>\n {[value.size ? formatFilesize(value.size) : null, value.type]\n .filter(Boolean)\n .join(' – ')}\n </span>\n )}\n </div>\n </Fragment>\n )}\n </div>\n ) : null}\n </div>\n </div>\n {drawers}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","formatAdminURL","formatFilesize","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","TextInput","useForm","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","PreviewSizes","Thumbnail","editDrawerSlug","sizePreviewSlug","pasteURLDrawerSlug","UploadFromURLModal","AudioPreview","FilePreview","PdfPreview","VideoPreview","FileToolbar","baseClass","validate","value","undefined","name","FileManager","collectionSlug","initialState","resetUploadEdits","resetUploadEditsFromProps","updateUploadEdits","updateUploadEditsFromProps","uploadConfig","UploadControls","uploadEdits","uploadEditsFromProps","UploadFilePreview","closeModal","openModal","t","setModified","id","data","setUploadStatus","errorMessage","setValue","showError","path","config","routes","api","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","uploadEditsContext","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","fileUrl","setFileUrl","selectedSize","setSelectedSize","inputRef","useServerSideFetch","pasteURL","allowList","length","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","selectedSizeData","sizes","sidePanelFileSrc","url","thumbnailURL","sidePanelMimeType","mimeType","fileTypeIsAdjustable","renameFile","fileToChange","newName","File","type","lastModified","handleFileChange","file","isNewFile","URL","createObjectURL","handleFileNameChange","e","updatedFileName","target","handleFileRemoval","handleFileSelection","files","isValidUrl","canParse","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","rawSegment","split","pop","fileName","decodeURIComponent","_clientError","error","encodeURIComponent","serverResponse","apiRoute","_serverError","onEditsSave","args","startsWith","revokeObjectURL","handleControlFileUrl","renderSelectedFilePreview","src","fileType","_jsx","className","title","size","drawers","_jsxs","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","slug","label","doc","showUploadInput","hideFileInputOnCreate","filter","message","hideRemoveFile","isAdjustable","onEditImage","onReplace","buttonStyle","icon","onClick","round","tooltip","onChange","current","click","accept","hidden","ref"],"sources":["../../../src/elements/FileManager/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL, formatFilesize, isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { useForm } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport { editDrawerSlug, sizePreviewSlug } from '../Upload/index.js'\nimport { pasteURLDrawerSlug, UploadFromURLModal } from '../Upload/UploadFromURLModal/index.js'\nimport { AudioPreview } from './FilePreview/AudioPreview/index.js'\nimport { FilePreview } from './FilePreview/index.js'\nimport { PdfPreview } from './FilePreview/PdfPreview/index.js'\nimport { VideoPreview } from './FilePreview/VideoPreview/index.js'\nimport { FileToolbar } from './FileToolbar/index.js'\nimport './index.css'\n\nconst baseClass = 'file-manager'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n return true\n}\n\nexport type FileManagerProps = {\n readonly collectionSlug: string\n readonly initialState?: import('payload').FormState\n /**\n * When provided, upload edits are sourced from these props instead of the `useUploadEdits`\n * context. The bulk upload drawer uses this to drive per-file edits from its FormsManager.\n */\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadConfig: Omit<SanitizedCollectionConfig['upload'], 'uploadInstructions'>\n readonly UploadControls?: React.ReactNode\n readonly uploadEdits?: UploadEdits\n readonly UploadFilePreview?: React.ReactNode\n}\n\nexport const FileManager: React.FC<FileManagerProps> = ({\n collectionSlug,\n initialState,\n resetUploadEdits: resetUploadEditsFromProps,\n updateUploadEdits: updateUploadEditsFromProps,\n uploadConfig,\n UploadControls,\n uploadEdits: uploadEditsFromProps,\n UploadFilePreview,\n}) => {\n const { closeModal, openModal } = useModal()\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { id, data, setUploadStatus } = useDocumentInfo()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n const uploadEditsContext = useUploadEdits()\n const resetUploadEdits = resetUploadEditsFromProps ?? uploadEditsContext.resetUploadEdits\n const updateUploadEdits = updateUploadEditsFromProps ?? uploadEditsContext.updateUploadEdits\n const uploadEdits = uploadEditsFromProps ?? uploadEditsContext.uploadEdits\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [fileUrl, setFileUrl] = useState<string>('')\n const [selectedSize, setSelectedSize] = useState<null | string>(null)\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n const focalPointEnabled = uploadConfig?.focalPoint === true\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const selectedSizeData = selectedSize\n ? (data?.sizes?.[selectedSize] as Record<string, unknown>)\n : null\n const sidePanelFileSrc = (selectedSizeData?.url ?? data?.thumbnailURL ?? data?.url ?? null) as\n | null\n | string\n const sidePanelMimeType = data?.mimeType as string | undefined\n const fileTypeIsAdjustable =\n !!sidePanelMimeType &&\n isImage(sidePanelMimeType) &&\n sidePanelMimeType !== 'image/svg+xml' &&\n sidePanelMimeType !== 'image/jxl'\n\n const renameFile = (fileToChange: File, newName: string): File =>\n new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n setValue(file)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n },\n [setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const handleFileNameChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n setSelectedSize(null)\n resetUploadEdits()\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const handleFileSelection = useCallback(\n (files: FileList) => handleFileChange({ file: files?.[0] }),\n [handleFileChange],\n )\n\n const isValidUrl = Boolean(fileUrl && URL.canParse(fileUrl))\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || !URL.canParse(fileUrl) || uploadConfig?.pasteURL === false) {\n return\n }\n setUploadStatus('uploading')\n try {\n const clientResponse = await fetch(fileUrl)\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed: ${clientResponse.status}`)\n }\n const blob = await clientResponse.blob()\n const rawSegment = fileUrl.split('/').pop() || ''\n const fileName = uploadControlFileName || decodeURIComponent(rawSegment.split('?')[0])\n handleFileChange({ file: new File([blob], fileName, { type: blob.type }) })\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n return\n } catch (_clientError) {\n if (!useServerSideFetch) {\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n try {\n const pasteURL: `/${string}` = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(formatAdminURL({ apiRoute: api, path: pasteURL }))\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed: ${serverResponse.status}`)\n }\n const blob = await serverResponse.blob()\n const rawSegment = fileUrl.split('/').pop() || ''\n const fileName = decodeURIComponent(rawSegment.split('?')[0])\n handleFileChange({ file: new File([blob], fileName, { type: blob.type }) })\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n closeModal,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n // Reset states for when replacing the file with a new upload\n useEffect(() => {\n setSelectedSize(null)\n setRemovedFile(false)\n setFileSrc('')\n }, [data?.url, data?.filename])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n return () => {\n if (fileSrc?.startsWith('blob:')) {\n URL.revokeObjectURL(fileSrc)\n }\n }\n }, [fileSrc])\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }, [uploadControlFile, handleFileChange])\n\n // Preview a freshly-selected (not-yet-saved) file from its local object URL, so video/audio/PDF\n // are playable/viewable just like images. Sizing is capped in CSS so large files stay contained.\n const renderSelectedFilePreview = (src: string) => {\n const fileType = value?.type ?? ''\n\n if (fileType.startsWith('video/')) {\n return (\n <div className={`${baseClass}__selected-preview`}>\n <VideoPreview fileSrc={src} />\n </div>\n )\n }\n\n if (fileType.startsWith('audio/')) {\n return (\n <div className={`${baseClass}__selected-preview ${baseClass}__selected-preview--audio`}>\n <AudioPreview fileSrc={src} />\n </div>\n )\n }\n\n if (fileType === 'application/pdf') {\n return (\n <div className={`${baseClass}__selected-preview`}>\n <PdfPreview fileSrc={src} title={value?.name} />\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__selected-preview`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(fileType) ? src : null}\n size=\"expand\"\n />\n </div>\n )\n }\n\n const drawers = (\n <Fragment>\n {(value || data?.filename) && (\n <EditDepthProvider>\n <EditUpload\n fileName={value?.name || (data?.filename as string)}\n fileSrc={(data?.url as string) || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || (data?.focalX as number) || 50,\n y: uploadEdits?.focalPoint?.y || (data?.focalY as number) || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__preview-drawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n {uploadConfig?.pasteURL !== false && (\n <UploadFromURLModal\n fileUrl={fileUrl}\n handleUrlSubmit={handleUrlSubmit}\n isValidUrl={isValidUrl}\n setFileUrl={setFileUrl}\n />\n )}\n </Fragment>\n )\n\n // Hide the create file input when the collection opts out of it (unless the user has explicitly\n // removed an existing file or already selected a new one).\n const showUploadInput = Boolean(value) || removedFile || !uploadConfig?.hideFileInputOnCreate\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} path=\"filename\" showError={showError} />\n <div className={`${baseClass}__panel`}>\n {data?.filename && !removedFile && (\n <FileToolbar\n filename={data.filename as string}\n fileSrc={sidePanelFileSrc}\n fileUrl={data?.url as string}\n hideRemoveFile={uploadConfig?.hideRemoveFile}\n isAdjustable={fileTypeIsAdjustable}\n onEditImage={() => openModal(editDrawerSlug)}\n onReplace={handleFileRemoval}\n />\n )}\n <div className={`${baseClass}__content`}>\n {data?.filename && !removedFile ? (\n <FilePreview\n collectionSlug={collectionSlug}\n data={data as Record<string, unknown>}\n imageCacheTag={imageCacheTag}\n selectedSize={selectedSize}\n selectedSizeData={selectedSizeData}\n setSelectedSize={setSelectedSize}\n uploadConfig={uploadConfig}\n UploadFilePreview={UploadFilePreview}\n />\n ) : showUploadInput ? (\n <div className={`${baseClass}__upload`}>\n {!value && removedFile && data?.filename && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={() => setRemovedFile(false)}\n round\n tooltip={t('general:cancel')}\n />\n )}\n {!value && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzone-content`}>\n <div className={`${baseClass}__dropzone-buttons`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => inputRef.current?.click()}\n size=\"medium\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__or-text`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n openModal(pasteURLDrawerSlug)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"medium\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n {UploadControls ?? null}\n </div>\n <p className={`${baseClass}__drag-text`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {value && fileSrc && (\n <Fragment>\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n {renderSelectedFilePreview(fileSrc)}\n <div className={`${baseClass}__file-adjustments`}>\n {/* Custom id so this editor doesn't collide with the hidden auto `filename` field. */}\n <TextInput\n id=\"field-filemanager-filename\"\n label={t('upload:fileName')}\n onChange={handleFileNameChange}\n path=\"filename\"\n value={filename || value.name}\n />\n {(value.size || value.type) && (\n <span className={`${baseClass}__selected-meta`}>\n {[value.size ? formatFilesize(value.size) : null, value.type]\n .filter(Boolean)\n .join(' – ')}\n </span>\n )}\n </div>\n </Fragment>\n )}\n </div>\n ) : null}\n </div>\n </div>\n {drawers}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/HTMLDiff/diff/index.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAC,CAAA;IACF;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAWD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,kBAAkB,CAAC,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAQ;gBAG7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EACE,UAKC,EACD,cAAqB,EACrB,WAAkB,EAClB,cAAkB,EAClB,mBAA2B,GAC5B,GAAE,eAAoB;IA4CzB,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,kBAAkB;IAwD1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,WAAW;IAcnB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA+D3B,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,qBAAqB;IA0B7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IASf,qBAAqB,IAAI,MAAM,EAAE;IAkEjC,iBAAiB,IAAI,MAAM;CA6HnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/HTMLDiff/diff/index.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAC,CAAA;IACF;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAWD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAChD,OAAO,CAAC,kBAAkB,CAAC,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAQ;IAE/B,YACE,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EACE,UAKC,EACD,cAAqB,EACrB,WAAkB,EAClB,cAAkB,EAClB,mBAA2B,GAC5B,GAAE,eAAoB,EAyCxB;IAGD,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,kBAAkB;IAwD1B,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,WAAW;IAcnB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA+D3B,OAAO,CAAC,gBAAgB;IAoDxB,OAAO,CAAC,qBAAqB;IA0B7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IASf,qBAAqB,IAAI,MAAM,EAAE,CAgEvC;IAEM,iBAAiB,IAAI,MAAM,CA4HjC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/HTMLDiff/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AACrB,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIlE,eAAO,MAAM,qBAAqB,GAAI,yDAKnC;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,KAAG;IACF,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,EAAE,EAAE,KAAK,CAAC,SAAS,CAAA;CA4BpB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/HTMLDiff/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AACrB,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIlE,eAAO,MAAM,qBAAqB,4DAK/B;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,KAAG;IACF,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,EAAE,EAAE,KAAK,CAAC,SAAS,CAAA;CA4BpB,CAAA"}
@@ -16,6 +16,7 @@
16
16
  justify-content: space-between;
17
17
  gap: var(--spacer-2);
18
18
  padding: var(--spacer-1) var(--spacer-3);
19
+ padding-inline-end: var(--spacer-2);
19
20
  flex-shrink: 0;
20
21
  margin-bottom: var(--spacer-2);
21
22
  border-bottom: var(--stroke-width-small) solid var(--color-border);
@@ -23,6 +24,7 @@
23
24
 
24
25
  .hierarchy-column__add-button {
25
26
  flex-shrink: 0;
27
+ color: var(--color-text-secondary);
26
28
  }
27
29
 
28
30
  .hierarchy-column__header-checkbox {
@@ -45,7 +47,7 @@
45
47
  display: flex;
46
48
  flex-direction: column;
47
49
  overflow-y: auto;
48
- margin: 0 var(--spacer-2);
50
+ margin: 0 var(--spacer-1);
49
51
  gap: var(--spacer-1);
50
52
  }
51
53
 
@@ -4,10 +4,10 @@
4
4
  align-items: center;
5
5
  padding: var(--spacer-1) var(--spacer-2);
6
6
  cursor: pointer;
7
- transition: background-color 80ms ease;
8
7
  user-select: none;
9
8
  gap: var(--spacer-2-5);
10
9
  border-radius: var(--button-radius);
10
+ margin-inline: var(--spacer-1);
11
11
 
12
12
  &:first-child {
13
13
  margin-top: var(--spacer-1);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/ColumnBrowser/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAE5F,OAAO,KAAK,EAGV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AASnB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,sBAAsB,GAAmC,8MAcnE;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CAAE,GAAG,2BAA2B,sBA0d3F,CAAA;AAED,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,WAAW,GACZ,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/ColumnBrowser/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAE5F,OAAO,KAAK,EAGV,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AASnB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,sBAAsB,iNAchC;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CAAE,GAAG,2BAA2B,sBA0d3F,CAAA;AAED,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,WAAW,GACZ,MAAM,YAAY,CAAA"}
@@ -40,7 +40,7 @@ export type ColumnProps = {
40
40
  hasNextPage: boolean;
41
41
  isLoading: boolean;
42
42
  items: ColumnItemData[];
43
- /** Called when user clicks "New" button - parent should open drawer with parentId */
43
+ /** Called when user clicks "New" button - parent should open modal with parentId */
44
44
  onCreateNew: (params: {
45
45
  parentId: null | number | string;
46
46
  }) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/ColumnBrowser/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/ColumnBrowser/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/Hierarchy/ColumnBrowser/types.ts"],"sourcesContent":["import type { Where } from 'payload'\nimport type React from 'react'\n\nexport type ColumnItemData = {\n /** For folders with collectionSpecific config, the allowed collection slugs */\n allowedCollections?: string[]\n hasChildren: boolean\n id: number | string\n title: string\n}\n\nexport type PathSegment = {\n id: number | string\n title: string\n}\n\nexport type ColumnItemProps = {\n disabled?: boolean\n /** Required collections that the folder must allow (for superset check) */\n filterByCollection?: string[]\n hasSelectedDescendants: boolean\n isExpanded: boolean\n isSelected: boolean\n item: ColumnItemData\n onExpand: (params: { id: number | string }) => void\n onSelect: (params: { id: number | string }) => void\n}\n\nexport type ColumnProps = {\n ancestorsWithSelections: Set<number | string>\n /** Whether user can create new documents */\n canCreate: boolean\n /** Label for the collection (e.g., \"Folder\") */\n collectionLabel: string\n disabled?: boolean\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n expandedId: null | number | string\n /** Required collections for superset check (passed to ColumnItem) */\n filterByCollection?: string[]\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n /** Called when user clicks \"New\" button - parent should open drawer with parentId */\n onCreateNew: (params: { parentId: null | number | string }) => void\n onExpand: (params: { id: number | string }) => void\n onLoadMore: () => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentId: null | number | string\n parentTitle?: string\n pathToColumn: PathSegment[]\n selectedIds: Set<number | string>\n totalDocs: number\n}\n\nexport type ColumnState = {\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n page: number\n parentId: null | number | string\n parentTitle?: string\n totalDocs: number\n}\n\nexport type HierarchyColumnBrowserRef = {\n /** Refetch a specific column by parentId */\n refreshColumn: (parentId: null | number | string) => Promise<void>\n}\n\nexport type HierarchyColumnBrowserProps = {\n ancestorsWithSelections: Set<number | string>\n /** Base filter constraint (e.g., tenant filter) to apply to all queries */\n baseFilter?: null | Where\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n /**\n * Filters hierarchy items based on collection type restrictions:\n * - `undefined`: No filtering, show all folders\n * - `[]` (empty array): No filtering, show all folders (no constraints)\n * - `['posts', ...]`: Show folders accepting ANY of these collections OR unrestricted folders\n *\n * Note: Query uses ANY semantics due to PG hasMany enum limitations.\n * Client-side enforcement can disable selection of folders that don't allow ALL required collections.\n */\n filterByCollection?: string[]\n hierarchyCollectionSlug: string\n initialExpandedPath?: (number | string)[]\n /** Whether the initial expanded path is still being loaded */\n isLoadingPath?: boolean\n /** Called when user clicks \"New\" button to create a new item */\n onCreateNew?: (params: { parentId: null | number | string }) => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentFieldName: string\n selectedIds: Set<number | string>\n useAsTitle?: string\n}\n"],"mappings":"AAsEA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/Hierarchy/ColumnBrowser/types.ts"],"sourcesContent":["import type { Where } from 'payload'\nimport type React from 'react'\n\nexport type ColumnItemData = {\n /** For folders with collectionSpecific config, the allowed collection slugs */\n allowedCollections?: string[]\n hasChildren: boolean\n id: number | string\n title: string\n}\n\nexport type PathSegment = {\n id: number | string\n title: string\n}\n\nexport type ColumnItemProps = {\n disabled?: boolean\n /** Required collections that the folder must allow (for superset check) */\n filterByCollection?: string[]\n hasSelectedDescendants: boolean\n isExpanded: boolean\n isSelected: boolean\n item: ColumnItemData\n onExpand: (params: { id: number | string }) => void\n onSelect: (params: { id: number | string }) => void\n}\n\nexport type ColumnProps = {\n ancestorsWithSelections: Set<number | string>\n /** Whether user can create new documents */\n canCreate: boolean\n /** Label for the collection (e.g., \"Folder\") */\n collectionLabel: string\n disabled?: boolean\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n expandedId: null | number | string\n /** Required collections for superset check (passed to ColumnItem) */\n filterByCollection?: string[]\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n /** Called when user clicks \"New\" button - parent should open modal with parentId */\n onCreateNew: (params: { parentId: null | number | string }) => void\n onExpand: (params: { id: number | string }) => void\n onLoadMore: () => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentId: null | number | string\n parentTitle?: string\n pathToColumn: PathSegment[]\n selectedIds: Set<number | string>\n totalDocs: number\n}\n\nexport type ColumnState = {\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n page: number\n parentId: null | number | string\n parentTitle?: string\n totalDocs: number\n}\n\nexport type HierarchyColumnBrowserRef = {\n /** Refetch a specific column by parentId */\n refreshColumn: (parentId: null | number | string) => Promise<void>\n}\n\nexport type HierarchyColumnBrowserProps = {\n ancestorsWithSelections: Set<number | string>\n /** Base filter constraint (e.g., tenant filter) to apply to all queries */\n baseFilter?: null | Where\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n /**\n * Filters hierarchy items based on collection type restrictions:\n * - `undefined`: No filtering, show all folders\n * - `[]` (empty array): No filtering, show all folders (no constraints)\n * - `['posts', ...]`: Show folders accepting ANY of these collections OR unrestricted folders\n *\n * Note: Query uses ANY semantics due to PG hasMany enum limitations.\n * Client-side enforcement can disable selection of folders that don't allow ALL required collections.\n */\n filterByCollection?: string[]\n hierarchyCollectionSlug: string\n initialExpandedPath?: (number | string)[]\n /** Whether the initial expanded path is still being loaded */\n isLoadingPath?: boolean\n /** Called when user clicks \"New\" button to create a new item */\n onCreateNew?: (params: { parentId: null | number | string }) => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentFieldName: string\n selectedIds: Set<number | string>\n useAsTitle?: string\n}\n"],"mappings":"AAsEA","ignoreList":[]}
@@ -8,7 +8,7 @@ import { useConfig } from '../../../providers/Config/index.js';
8
8
  import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
9
9
  import { useTranslation } from '../../../providers/Translation/index.js';
10
10
  import { Button } from '../../Button/index.js';
11
- import { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js';
11
+ import { useHierarchyModal } from '../Modal/useHierarchyModal.js';
12
12
  import './index.css';
13
13
  const baseClass = 'hierarchy-button';
14
14
  export const HierarchyButtonClient = ({
@@ -44,13 +44,13 @@ export const HierarchyButtonClient = ({
44
44
  });
45
45
  const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name';
46
46
  const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug;
47
- // When in hierarchy collection, let the drawer use allowedCollections from context
47
+ // When in hierarchy collection, let the modal use allowedCollections from context
48
48
  // When in other collections, filter by that collection's slug
49
49
  // Memoize to prevent new array references on every render
50
50
  const filterByCollection = useMemo(() => isHierarchyCollection || !documentCollectionSlug ? undefined : [documentCollectionSlug], [isHierarchyCollection, documentCollectionSlug]);
51
- const [HierarchyDrawer,, {
52
- openDrawer
53
- }] = useHierarchyDrawer({
51
+ const [HierarchyModal,, {
52
+ openModal
53
+ }] = useHierarchyModal({
54
54
  filterByCollection,
55
55
  hierarchyCollectionSlug,
56
56
  Icon
@@ -87,8 +87,8 @@ export const HierarchyButtonClient = ({
87
87
  };
88
88
  void fetchItemName();
89
89
  }, [currentId, hierarchyCollectionSlug, config.routes.api, config.serverURL, useAsTitle, t]);
90
- const handleDrawerSave = useCallback(({
91
- closeDrawer,
90
+ const handleModalSave = useCallback(({
91
+ closeModal,
92
92
  selections
93
93
  }) => {
94
94
  const ids = Array.from(selections.keys());
@@ -101,13 +101,13 @@ export const HierarchyButtonClient = ({
101
101
  });
102
102
  setModified(true);
103
103
  }
104
- closeDrawer();
104
+ closeModal();
105
105
  }, [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified]);
106
106
  const handleClick = useCallback(() => {
107
107
  if (!readOnly) {
108
- openDrawer();
108
+ openModal();
109
109
  }
110
- }, [openDrawer, readOnly]);
110
+ }, [openModal, readOnly]);
111
111
  const label = isLoading ? `${t('general:loading')}...` : displayName;
112
112
  return /*#__PURE__*/_jsxs(_Fragment, {
113
113
  children: [/*#__PURE__*/_jsx(Button, {
@@ -119,10 +119,10 @@ export const HierarchyButtonClient = ({
119
119
  margin: false,
120
120
  onClick: handleClick,
121
121
  children: label
122
- }), /*#__PURE__*/_jsx(HierarchyDrawer, {
122
+ }), /*#__PURE__*/_jsx(HierarchyModal, {
123
123
  hasMany: hasMany,
124
124
  initialSelections: currentId ? [currentId] : undefined,
125
- onSave: handleDrawerSave
125
+ onSave: handleModalSave
126
126
  })]
127
127
  });
128
128
  };