@payloadcms/ui 4.0.0-internal.8001944 → 4.0.0-internal.8089ef7

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 (715) hide show
  1. package/dist/css/app.css +1 -1
  2. package/dist/css/forms.css +0 -1
  3. package/dist/css/spacing.css +1 -1
  4. package/dist/css/typography.css +161 -55
  5. package/dist/elements/APIKeyInput/index.css +2 -2
  6. package/dist/elements/AppHeader/index.css +1 -1
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +9 -2
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/Autosave/index.d.ts.map +1 -1
  11. package/dist/elements/Autosave/index.js +10 -3
  12. package/dist/elements/Autosave/index.js.map +1 -1
  13. package/dist/elements/Banner/index.css +3 -4
  14. package/dist/elements/BulkUpload/EditMany/index.css +4 -5
  15. package/dist/elements/BulkUpload/FileSidebar/index.css +0 -1
  16. package/dist/elements/BulkUpload/FileSidebar/index.js +1 -1
  17. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  18. package/dist/elements/Button/index.css +31 -1
  19. package/dist/elements/Button/types.d.ts +1 -1
  20. package/dist/elements/Button/types.d.ts.map +1 -1
  21. package/dist/elements/Button/types.js.map +1 -1
  22. package/dist/elements/Card/index.css +3 -4
  23. package/dist/elements/CardGrid/index.css +20 -0
  24. package/dist/elements/CardGrid/index.d.ts +13 -0
  25. package/dist/elements/CardGrid/index.d.ts.map +1 -0
  26. package/dist/elements/CardGrid/index.js +23 -0
  27. package/dist/elements/CardGrid/index.js.map +1 -0
  28. package/dist/elements/Chip/index.css +0 -1
  29. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  30. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  31. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  32. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  33. package/dist/elements/CodeEditor/CodeEditor.js +5 -0
  34. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  35. package/dist/elements/Collapsible/index.css +4 -1
  36. package/dist/elements/ColumnSelection/Popup.css +6 -11
  37. package/dist/elements/CommandPalette/index.css +3 -8
  38. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  39. package/dist/elements/CopyToClipboard/index.js +62 -54
  40. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  41. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  42. package/dist/elements/CreateDocumentButton/index.js +56 -33
  43. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  44. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  45. package/dist/elements/DatePicker/DatePicker.js +88 -15
  46. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  47. package/dist/elements/DatePicker/hasAmbiguousYearInput.d.ts +8 -0
  48. package/dist/elements/DatePicker/hasAmbiguousYearInput.d.ts.map +1 -0
  49. package/dist/elements/DatePicker/hasAmbiguousYearInput.js +37 -0
  50. package/dist/elements/DatePicker/hasAmbiguousYearInput.js.map +1 -0
  51. package/dist/elements/DatePicker/index.css +27 -17
  52. package/dist/elements/DatePicker/useDatePickerKeyboard.d.ts +18 -0
  53. package/dist/elements/DatePicker/useDatePickerKeyboard.d.ts.map +1 -0
  54. package/dist/elements/DatePicker/useDatePickerKeyboard.js +212 -0
  55. package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -0
  56. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  57. package/dist/elements/DefaultListViewTabs/index.js +9 -7
  58. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  59. package/dist/elements/Dialog/DialogTitle/index.css +1 -1
  60. package/dist/elements/Dialog/index.css +1 -2
  61. package/dist/elements/DocumentCard/index.css +73 -0
  62. package/dist/elements/DocumentCard/index.d.ts +18 -0
  63. package/dist/elements/DocumentCard/index.d.ts.map +1 -0
  64. package/dist/elements/DocumentCard/index.js +182 -0
  65. package/dist/elements/DocumentCard/index.js.map +1 -0
  66. package/dist/elements/DocumentControls/index.css +14 -15
  67. package/dist/elements/DocumentControls/index.d.ts +4 -2
  68. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  69. package/dist/elements/DocumentControls/index.js.map +1 -1
  70. package/dist/elements/DocumentDrawer/DrawerHeader/index.css +4 -7
  71. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  72. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  73. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  74. package/dist/elements/DocumentFields/RequiredFieldsInfo/index.css +2 -2
  75. package/dist/elements/DocumentFields/index.css +5 -5
  76. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  77. package/dist/elements/DocumentFields/index.js +1 -2
  78. package/dist/elements/DocumentFields/index.js.map +1 -1
  79. package/dist/elements/DocumentHeader/index.css +1 -1
  80. package/dist/elements/Drawer/index.css +4 -5
  81. package/dist/elements/Drawer/types.d.ts +2 -2
  82. package/dist/elements/Drawer/types.d.ts.map +1 -1
  83. package/dist/elements/Drawer/types.js.map +1 -1
  84. package/dist/elements/EditMany/index.css +4 -5
  85. package/dist/elements/EditUpload/index.css +3 -4
  86. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  87. package/dist/elements/EditUpload/index.js +13 -2
  88. package/dist/elements/EditUpload/index.js.map +1 -1
  89. package/dist/elements/EditUpload/library.css +6 -13
  90. package/dist/elements/ErrorPill/index.css +0 -1
  91. package/dist/elements/FieldDiffContainer/index.css +0 -1
  92. package/dist/elements/FieldDiffLabel/index.css +4 -5
  93. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
  94. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  95. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  96. package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
  97. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  98. package/dist/elements/FileDetails/FileMeta/index.js +41 -21
  99. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  100. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -1
  101. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  102. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  103. package/dist/elements/FileDetails/index.d.ts +1 -1
  104. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  105. package/dist/elements/FileDetails/index.js.map +1 -1
  106. package/dist/elements/FileManager/FilePreview/index.css +2 -3
  107. package/dist/elements/FileManager/FilePreview/index.js +4 -4
  108. package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
  109. package/dist/elements/FileManager/FileToolbar/index.css +2 -3
  110. package/dist/elements/FileManager/index.css +0 -1
  111. package/dist/elements/FileManager/index.d.ts.map +1 -1
  112. package/dist/elements/FileManager/index.js +13 -6
  113. package/dist/elements/FileManager/index.js.map +1 -1
  114. package/dist/elements/FormHeader/index.css +0 -2
  115. package/dist/elements/GroupBy/Popup.css +3 -6
  116. package/dist/elements/HTMLDiff/index.css +0 -1
  117. package/dist/elements/Hierarchy/ActionsMenu/index.css +18 -0
  118. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts +35 -0
  119. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts.map +1 -0
  120. package/dist/elements/Hierarchy/ActionsMenu/index.js +99 -0
  121. package/dist/elements/Hierarchy/ActionsMenu/index.js.map +1 -0
  122. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +18 -16
  123. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  124. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  125. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +40 -36
  126. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  127. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  128. package/dist/elements/Hierarchy/ColumnBrowser/index.js +15 -58
  129. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  130. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +2 -0
  131. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  132. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  133. package/dist/elements/Hierarchy/DocHeaderButton/index.css +12 -0
  134. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  135. package/dist/elements/Hierarchy/DocHeaderButton/index.js +88 -13
  136. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  137. package/dist/elements/Hierarchy/EditButton/index.d.ts +8 -0
  138. package/dist/elements/Hierarchy/EditButton/index.d.ts.map +1 -0
  139. package/dist/elements/Hierarchy/EditButton/index.js +93 -0
  140. package/dist/elements/Hierarchy/EditButton/index.js.map +1 -0
  141. package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.d.ts +9 -0
  142. package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.d.ts.map +1 -0
  143. package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.js +41 -0
  144. package/dist/elements/Hierarchy/Field/getHierarchyFilterOptions.js.map +1 -0
  145. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
  146. package/dist/elements/Hierarchy/Field/index.client.js +120 -105
  147. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  148. package/dist/elements/Hierarchy/Field/index.css +0 -1
  149. package/dist/elements/Hierarchy/Modal/Footer/index.css +33 -0
  150. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +21 -0
  151. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
  152. package/dist/elements/Hierarchy/Modal/Footer/index.js +122 -0
  153. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
  154. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +8 -3
  155. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  156. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +38 -12
  157. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  158. package/dist/elements/Hierarchy/Modal/index.css +0 -56
  159. package/dist/elements/Hierarchy/Modal/index.d.ts +5 -3
  160. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  161. package/dist/elements/Hierarchy/Modal/index.js +90 -102
  162. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  163. package/dist/elements/Hierarchy/Modal/selection.d.ts +12 -0
  164. package/dist/elements/Hierarchy/Modal/selection.d.ts.map +1 -0
  165. package/dist/elements/Hierarchy/Modal/selection.js +40 -0
  166. package/dist/elements/Hierarchy/Modal/selection.js.map +1 -0
  167. package/dist/elements/Hierarchy/Modal/types.d.ts +4 -0
  168. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  169. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  170. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts.map +1 -1
  171. package/dist/elements/Hierarchy/Modal/useHierarchyModal.js +1 -1
  172. package/dist/elements/Hierarchy/Modal/useHierarchyModal.js.map +1 -1
  173. package/dist/elements/Hierarchy/MoveMany/index.d.ts +3 -3
  174. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  175. package/dist/elements/Hierarchy/MoveMany/index.js +79 -92
  176. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  177. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  178. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +7 -1
  179. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  180. package/dist/elements/Hierarchy/Tree/index.css +1 -1
  181. package/dist/elements/HydratePreferences/index.d.ts +8 -0
  182. package/dist/elements/HydratePreferences/index.d.ts.map +1 -0
  183. package/dist/elements/HydratePreferences/index.js +34 -0
  184. package/dist/elements/HydratePreferences/index.js.map +1 -0
  185. package/dist/elements/IDLabel/index.css +5 -7
  186. package/dist/elements/ItemsDrawer/ItemSearch/index.css +0 -1
  187. package/dist/elements/LLMInstructionsCell/index.css +11 -0
  188. package/dist/elements/LLMInstructionsCell/index.d.ts +5 -0
  189. package/dist/elements/LLMInstructionsCell/index.d.ts.map +1 -0
  190. package/dist/elements/LLMInstructionsCell/index.js +24 -0
  191. package/dist/elements/LLMInstructionsCell/index.js.map +1 -0
  192. package/dist/elements/LLMInstructionsDescription/index.css +79 -0
  193. package/dist/elements/LLMInstructionsDescription/index.d.ts +6 -0
  194. package/dist/elements/LLMInstructionsDescription/index.d.ts.map +1 -0
  195. package/dist/elements/LLMInstructionsDescription/index.js +40 -0
  196. package/dist/elements/LLMInstructionsDescription/index.js.map +1 -0
  197. package/dist/elements/LLMInstructionsMenuItem/index.d.ts +5 -0
  198. package/dist/elements/LLMInstructionsMenuItem/index.d.ts.map +1 -0
  199. package/dist/elements/LLMInstructionsMenuItem/index.js +46 -0
  200. package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -0
  201. package/dist/elements/LayoutToggle/index.d.ts +8 -0
  202. package/dist/elements/LayoutToggle/index.d.ts.map +1 -0
  203. package/dist/elements/LayoutToggle/index.js +56 -0
  204. package/dist/elements/LayoutToggle/index.js.map +1 -0
  205. package/dist/elements/Link/index.d.ts.map +1 -1
  206. package/dist/elements/Link/index.js +3 -0
  207. package/dist/elements/Link/index.js.map +1 -1
  208. package/dist/elements/ListControls/index.d.ts.map +1 -1
  209. package/dist/elements/ListControls/index.js +2 -1
  210. package/dist/elements/ListControls/index.js.map +1 -1
  211. package/dist/elements/ListControls/types.d.ts +1 -10
  212. package/dist/elements/ListControls/types.d.ts.map +1 -1
  213. package/dist/elements/ListControls/types.js.map +1 -1
  214. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  215. package/dist/elements/ListDrawer/DrawerContent.js +2 -3
  216. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  217. package/dist/elements/ListDrawer/Provider.d.ts +0 -6
  218. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  219. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  220. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  221. package/dist/elements/ListDrawer/index.js +1 -1
  222. package/dist/elements/ListDrawer/index.js.map +1 -1
  223. package/dist/elements/ListDrawer/types.d.ts +1 -0
  224. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  225. package/dist/elements/ListDrawer/types.js.map +1 -1
  226. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  227. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +24 -20
  228. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  229. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.d.ts +6 -0
  230. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.d.ts.map +1 -0
  231. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js +61 -0
  232. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -0
  233. package/dist/elements/ListHeader/DrawerTitleActions/index.d.ts +1 -0
  234. package/dist/elements/ListHeader/DrawerTitleActions/index.d.ts.map +1 -1
  235. package/dist/elements/ListHeader/DrawerTitleActions/index.js +1 -0
  236. package/dist/elements/ListHeader/DrawerTitleActions/index.js.map +1 -1
  237. package/dist/elements/ListHeader/index.css +4 -5
  238. package/dist/elements/MiniCarousel/index.d.ts +1 -1
  239. package/dist/elements/MiniCarousel/index.d.ts.map +1 -1
  240. package/dist/elements/MiniCarousel/index.js +6 -6
  241. package/dist/elements/MiniCarousel/index.js.map +1 -1
  242. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  243. package/dist/elements/Nav/NavWrapper/index.js +19 -14
  244. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  245. package/dist/elements/Nav/SidebarTabs/index.client.js +1 -1
  246. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  247. package/dist/elements/Nav/SidebarTabs/index.css +2 -1
  248. package/dist/elements/Nav/index.js +1 -2
  249. package/dist/elements/Nav/index.js.map +1 -1
  250. package/dist/elements/NavGroup/index.css +3 -4
  251. package/dist/elements/NoListResults/index.css +2 -3
  252. package/dist/elements/PageControls/index.css +4 -1
  253. package/dist/elements/PageControls/index.d.ts.map +1 -1
  254. package/dist/elements/PageControls/index.js +22 -8
  255. package/dist/elements/PageControls/index.js.map +1 -1
  256. package/dist/elements/Pagination/SimplePagination/index.css +0 -1
  257. package/dist/elements/Pagination/index.css +0 -2
  258. package/dist/elements/PerPage/index.css +0 -1
  259. package/dist/elements/Pill/index.css +0 -1
  260. package/dist/elements/Popup/PopupButtonList/index.css +4 -2
  261. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -0
  262. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  263. package/dist/elements/Popup/PopupButtonList/index.js +4 -0
  264. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  265. package/dist/elements/Popup/PopupGroupLabel/index.css +0 -1
  266. package/dist/elements/PreviewSizes/index.d.ts +1 -1
  267. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  268. package/dist/elements/PreviewSizes/index.js +9 -9
  269. package/dist/elements/PreviewSizes/index.js.map +1 -1
  270. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  271. package/dist/elements/PublishButton/index.js +71 -8
  272. package/dist/elements/PublishButton/index.js.map +1 -1
  273. package/dist/elements/PublishButton/validateAllLocales.d.ts +11 -0
  274. package/dist/elements/PublishButton/validateAllLocales.d.ts.map +1 -0
  275. package/dist/elements/PublishButton/validateAllLocales.js +263 -0
  276. package/dist/elements/PublishButton/validateAllLocales.js.map +1 -0
  277. package/dist/elements/QueryPresets/fields/Heading/index.css +0 -1
  278. package/dist/elements/ReactSelect/MultiValueLabel/index.css +0 -1
  279. package/dist/elements/ReactSelect/index.css +0 -3
  280. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  281. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  282. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  283. package/dist/elements/RenderTitle/index.css +9 -7
  284. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  285. package/dist/elements/SaveDraftButton/index.js +15 -2
  286. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  287. package/dist/elements/Search/SearchInput/index.css +0 -1
  288. package/dist/elements/Search/SearchInput/index.js +1 -1
  289. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  290. package/dist/elements/SegmentedControl/index.css +9 -0
  291. package/dist/elements/SegmentedControl/index.d.ts +20 -0
  292. package/dist/elements/SegmentedControl/index.d.ts.map +1 -0
  293. package/dist/elements/SegmentedControl/index.js +162 -0
  294. package/dist/elements/SegmentedControl/index.js.map +1 -0
  295. package/dist/elements/SidebarRow/index.css +1 -2
  296. package/dist/elements/SortColumn/index.css +1 -2
  297. package/dist/elements/Spinner/index.css +0 -2
  298. package/dist/elements/Status/index.css +3 -4
  299. package/dist/elements/StepNav/index.css +15 -9
  300. package/dist/elements/StepNav/index.d.ts.map +1 -1
  301. package/dist/elements/StepNav/index.js +7 -0
  302. package/dist/elements/StepNav/index.js.map +1 -1
  303. package/dist/elements/StepNav/types.d.ts +2 -0
  304. package/dist/elements/StepNav/types.d.ts.map +1 -1
  305. package/dist/elements/StepNav/types.js.map +1 -1
  306. package/dist/elements/Switch/index.css +0 -1
  307. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.css +0 -1
  308. package/dist/elements/Table/DefaultCell/fields/Code/index.css +0 -1
  309. package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -1
  310. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  311. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +0 -9
  312. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  313. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +100 -43
  314. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  315. package/dist/elements/Table/DefaultCell/fields/JSON/index.css +0 -1
  316. package/dist/elements/Table/DefaultCell/fields/Status/index.css +0 -1
  317. package/dist/elements/Table/index.css +1 -1
  318. package/dist/elements/TableSection/index.css +4 -5
  319. package/dist/elements/Tabs/index.css +5 -5
  320. package/dist/elements/Tabs/index.d.ts +4 -0
  321. package/dist/elements/Tabs/index.d.ts.map +1 -1
  322. package/dist/elements/Tabs/index.js +30 -1
  323. package/dist/elements/Tabs/index.js.map +1 -1
  324. package/dist/elements/ThumbnailCard/index.css +0 -1
  325. package/dist/elements/TimezonePicker/index.css +0 -3
  326. package/dist/elements/Tooltip/index.css +0 -1
  327. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  328. package/dist/elements/Tooltip/index.js +1 -0
  329. package/dist/elements/Tooltip/index.js.map +1 -1
  330. package/dist/elements/Upload/getEditorFileSrc.d.ts +11 -0
  331. package/dist/elements/Upload/getEditorFileSrc.d.ts.map +1 -0
  332. package/dist/elements/Upload/getEditorFileSrc.js +6 -0
  333. package/dist/elements/Upload/getEditorFileSrc.js.map +1 -0
  334. package/dist/elements/Upload/index.css +2 -3
  335. package/dist/elements/Upload/index.d.ts +1 -1
  336. package/dist/elements/Upload/index.d.ts.map +1 -1
  337. package/dist/elements/Upload/index.js +12 -7
  338. package/dist/elements/Upload/index.js.map +1 -1
  339. package/dist/elements/UserMenu/index.css +7 -10
  340. package/dist/exports/client/CodeEditor-S7MOGZSR.js +14 -0
  341. package/dist/exports/client/CodeEditor-S7MOGZSR.js.map +7 -0
  342. package/dist/exports/client/DatePicker-POZJVQP4.js +14 -0
  343. package/dist/exports/client/DatePicker-POZJVQP4.js.map +7 -0
  344. package/dist/exports/client/chunk-2AY67NFV.js +29 -0
  345. package/dist/exports/client/chunk-2AY67NFV.js.map +7 -0
  346. package/dist/exports/client/chunk-AVJIZPR3.js +14 -0
  347. package/dist/exports/client/chunk-AVJIZPR3.js.map +7 -0
  348. package/dist/exports/client/chunk-Z42OBP5U.js +27 -0
  349. package/dist/exports/client/chunk-Z42OBP5U.js.map +7 -0
  350. package/dist/exports/client/index.d.ts +19 -1
  351. package/dist/exports/client/index.d.ts.map +1 -1
  352. package/dist/exports/client/index.js +100 -1
  353. package/dist/exports/client/index.js.map +4 -4
  354. package/dist/exports/rsc/index.d.ts +1 -0
  355. package/dist/exports/rsc/index.d.ts.map +1 -1
  356. package/dist/exports/rsc/index.js +1 -0
  357. package/dist/exports/rsc/index.js.map +1 -1
  358. package/dist/exports/shared/index.js +2 -2
  359. package/dist/exports/shared/index.js.map +3 -3
  360. package/dist/fields/Array/index.css +4 -0
  361. package/dist/fields/Blocks/SectionTitle/index.css +3 -5
  362. package/dist/fields/Blocks/index.css +2 -2
  363. package/dist/fields/Checkbox/Input.js +1 -1
  364. package/dist/fields/Checkbox/Input.js.map +1 -1
  365. package/dist/fields/Checkbox/index.css +4 -0
  366. package/dist/fields/DateTime/index.d.ts.map +1 -1
  367. package/dist/fields/DateTime/index.js +9 -2
  368. package/dist/fields/DateTime/index.js.map +1 -1
  369. package/dist/fields/FieldLabel/index.css +1 -2
  370. package/dist/fields/Group/index.css +5 -8
  371. package/dist/fields/Join/index.css +3 -4
  372. package/dist/fields/RadioGroup/Radio/index.css +0 -1
  373. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  374. package/dist/fields/Relationship/Input.js +25 -17
  375. package/dist/fields/Relationship/Input.js.map +1 -1
  376. package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
  377. package/dist/fields/Relationship/optionsReducer.js +2 -0
  378. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  379. package/dist/fields/Relationship/types.d.ts +8 -0
  380. package/dist/fields/Relationship/types.d.ts.map +1 -1
  381. package/dist/fields/Relationship/types.js.map +1 -1
  382. package/dist/fields/Select/Input.d.ts.map +1 -1
  383. package/dist/fields/Select/Input.js +17 -15
  384. package/dist/fields/Select/Input.js.map +1 -1
  385. package/dist/fields/Select/index.css +7 -0
  386. package/dist/fields/Tabs/Tab/index.d.ts +2 -0
  387. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  388. package/dist/fields/Tabs/Tab/index.js +15 -9
  389. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  390. package/dist/fields/Tabs/index.css +14 -14
  391. package/dist/fields/Tabs/index.d.ts.map +1 -1
  392. package/dist/fields/Tabs/index.js +179 -116
  393. package/dist/fields/Tabs/index.js.map +1 -1
  394. package/dist/fields/Upload/HasMany/index.js +1 -1
  395. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  396. package/dist/fields/Upload/HasOne/index.js +1 -1
  397. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  398. package/dist/fields/Upload/Input.d.ts.map +1 -1
  399. package/dist/fields/Upload/Input.js +13 -4
  400. package/dist/fields/Upload/Input.js.map +1 -1
  401. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  402. package/dist/forms/Form/fieldReducer.js +6 -9
  403. package/dist/forms/Form/fieldReducer.js.map +1 -1
  404. package/dist/forms/Form/index.d.ts.map +1 -1
  405. package/dist/forms/Form/index.js +0 -1
  406. package/dist/forms/Form/index.js.map +1 -1
  407. package/dist/forms/Form/types.d.ts +0 -5
  408. package/dist/forms/Form/types.d.ts.map +1 -1
  409. package/dist/forms/Form/types.js.map +1 -1
  410. package/dist/forms/RenderFields/index.css +2 -5
  411. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -2
  412. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  413. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  414. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -2
  415. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  416. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  417. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -2
  418. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  419. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  420. package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -2
  421. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  422. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  423. package/dist/forms/useField/types.d.ts +0 -4
  424. package/dist/forms/useField/types.d.ts.map +1 -1
  425. package/dist/forms/useField/types.js.map +1 -1
  426. package/dist/icons/Arrow/index.d.ts +1 -1
  427. package/dist/icons/Arrow/index.d.ts.map +1 -1
  428. package/dist/icons/Arrow/index.js +7 -1
  429. package/dist/icons/Arrow/index.js.map +1 -1
  430. package/dist/icons/Clock/index.d.ts +6 -0
  431. package/dist/icons/Clock/index.d.ts.map +1 -0
  432. package/dist/icons/Clock/index.js +18 -0
  433. package/dist/icons/Clock/index.js.map +1 -0
  434. package/dist/icons/Pin/index.d.ts +7 -0
  435. package/dist/icons/Pin/index.d.ts.map +1 -0
  436. package/dist/icons/Pin/index.js +23 -0
  437. package/dist/icons/Pin/index.js.map +1 -0
  438. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  439. package/dist/icons/Sidebar/index.js +2 -0
  440. package/dist/icons/Sidebar/index.js.map +1 -1
  441. package/dist/icons/Table/index.css +1 -0
  442. package/dist/icons/Table/index.d.ts +7 -0
  443. package/dist/icons/Table/index.d.ts.map +1 -0
  444. package/dist/icons/Table/index.js +25 -0
  445. package/dist/icons/Table/index.js.map +1 -0
  446. package/dist/layouts/Root/getRootLayoutData.d.ts +3 -6
  447. package/dist/layouts/Root/getRootLayoutData.d.ts.map +1 -1
  448. package/dist/layouts/Root/getRootLayoutData.js +14 -13
  449. package/dist/layouts/Root/getRootLayoutData.js.map +1 -1
  450. package/dist/layouts/Root/index.d.ts +1 -1
  451. package/dist/layouts/Root/index.d.ts.map +1 -1
  452. package/dist/layouts/Root/index.js +11 -18
  453. package/dist/layouts/Root/index.js.map +1 -1
  454. package/dist/providers/ListQuery/getSearchWithListQuery.d.ts +7 -0
  455. package/dist/providers/ListQuery/getSearchWithListQuery.d.ts.map +1 -0
  456. package/dist/providers/ListQuery/getSearchWithListQuery.js +22 -0
  457. package/dist/providers/ListQuery/getSearchWithListQuery.js.map +1 -0
  458. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  459. package/dist/providers/ListQuery/index.js +11 -12
  460. package/dist/providers/ListQuery/index.js.map +1 -1
  461. package/dist/providers/ListQuery/types.d.ts +0 -4
  462. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  463. package/dist/providers/ListQuery/types.js.map +1 -1
  464. package/dist/providers/Preferences/index.d.ts +7 -1
  465. package/dist/providers/Preferences/index.d.ts.map +1 -1
  466. package/dist/providers/Preferences/index.js +62 -20
  467. package/dist/providers/Preferences/index.js.map +1 -1
  468. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  469. package/dist/providers/RouteCache/index.js +38 -37
  470. package/dist/providers/RouteCache/index.js.map +1 -1
  471. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  472. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  473. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  474. package/dist/providers/TableColumns/buildColumnState/index.d.ts +1 -0
  475. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  476. package/dist/providers/TableColumns/buildColumnState/index.js +2 -0
  477. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  478. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +2 -1
  479. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  480. package/dist/providers/TableColumns/buildColumnState/renderCell.js +12 -28
  481. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  482. package/dist/providers/TableColumns/types.d.ts +1 -34
  483. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  484. package/dist/providers/TableColumns/types.js.map +1 -1
  485. package/dist/providers/ToastContainer/index.css +6 -7
  486. package/dist/providers/Translation/index.d.ts.map +1 -1
  487. package/dist/providers/Translation/index.js +11 -1
  488. package/dist/providers/Translation/index.js.map +1 -1
  489. package/dist/styles.css +163 -58
  490. package/dist/utilities/appendCacheTag.d.ts +1 -0
  491. package/dist/utilities/appendCacheTag.d.ts.map +1 -1
  492. package/dist/utilities/appendCacheTag.js +2 -1
  493. package/dist/utilities/appendCacheTag.js.map +1 -1
  494. package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -1
  495. package/dist/utilities/buildClientFieldSchemaMap/index.js +9 -4
  496. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
  497. package/dist/utilities/filterLLMInstructionsMenuItems.d.ts +9 -0
  498. package/dist/utilities/filterLLMInstructionsMenuItems.d.ts.map +1 -0
  499. package/dist/utilities/filterLLMInstructionsMenuItems.js +37 -0
  500. package/dist/utilities/filterLLMInstructionsMenuItems.js.map +1 -0
  501. package/dist/utilities/filterOutUploadFields.js +1 -1
  502. package/dist/utilities/filterOutUploadFields.js.map +1 -1
  503. package/dist/utilities/getClientConfig.d.ts +5 -1
  504. package/dist/utilities/getClientConfig.d.ts.map +1 -1
  505. package/dist/utilities/getClientConfig.js +2 -1
  506. package/dist/utilities/getClientConfig.js.map +1 -1
  507. package/dist/utilities/getClientSchemaMap.d.ts.map +1 -1
  508. package/dist/utilities/getClientSchemaMap.js +2 -1
  509. package/dist/utilities/getClientSchemaMap.js.map +1 -1
  510. package/dist/utilities/getDocumentThumbnail.d.ts +6 -0
  511. package/dist/utilities/getDocumentThumbnail.d.ts.map +1 -0
  512. package/dist/utilities/getDocumentThumbnail.js +27 -0
  513. package/dist/utilities/getDocumentThumbnail.js.map +1 -0
  514. package/dist/utilities/getDocumentThumbnailPopulate.d.ts +7 -0
  515. package/dist/utilities/getDocumentThumbnailPopulate.d.ts.map +1 -0
  516. package/dist/utilities/getDocumentThumbnailPopulate.js +23 -0
  517. package/dist/utilities/getDocumentThumbnailPopulate.js.map +1 -0
  518. package/dist/utilities/getDocumentThumbnailSelect.d.ts +7 -0
  519. package/dist/utilities/getDocumentThumbnailSelect.d.ts.map +1 -0
  520. package/dist/utilities/getDocumentThumbnailSelect.js +24 -0
  521. package/dist/utilities/getDocumentThumbnailSelect.js.map +1 -0
  522. package/dist/utilities/hierarchyCollectionRestrictions.d.ts +15 -0
  523. package/dist/utilities/hierarchyCollectionRestrictions.d.ts.map +1 -0
  524. package/dist/utilities/hierarchyCollectionRestrictions.js +17 -0
  525. package/dist/utilities/hierarchyCollectionRestrictions.js.map +1 -0
  526. package/dist/utilities/renderTable.d.ts +2 -1
  527. package/dist/utilities/renderTable.d.ts.map +1 -1
  528. package/dist/utilities/renderTable.js +2 -0
  529. package/dist/utilities/renderTable.js.map +1 -1
  530. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  531. package/dist/utilities/schedulePublishHandler.js +3 -0
  532. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  533. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  534. package/dist/utilities/serverFunctionRegistry.js +2 -0
  535. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  536. package/dist/utilities/traverseForLocalizedFields.d.ts +7 -2
  537. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  538. package/dist/utilities/traverseForLocalizedFields.js +22 -8
  539. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  540. package/dist/views/API/index.css +1 -2
  541. package/dist/views/CreateFirstUser/index.css +0 -2
  542. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  543. package/dist/views/CreateFirstUser/index.js +4 -2
  544. package/dist/views/CreateFirstUser/index.js.map +1 -1
  545. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  546. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +31 -21
  547. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  548. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -2
  549. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  550. package/dist/views/Dashboard/Default/ModularDashboard/index.css +4 -3
  551. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  552. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  553. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +16 -4
  554. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  555. package/dist/views/Document/index.js +1 -1
  556. package/dist/views/Document/index.js.map +1 -1
  557. package/dist/views/Document/renderDocumentSlots.d.ts +1 -1
  558. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  559. package/dist/views/Document/renderDocumentSlots.js +10 -3
  560. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  561. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  562. package/dist/views/Edit/Auth/APIKey.js +1 -0
  563. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  564. package/dist/views/Edit/Auth/index.css +4 -5
  565. package/dist/views/Edit/index.css +26 -0
  566. package/dist/views/Edit/index.d.ts.map +1 -1
  567. package/dist/views/Edit/index.js +1 -1
  568. package/dist/views/Edit/index.js.map +1 -1
  569. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  570. package/dist/views/ForgotPassword/index.js +1 -3
  571. package/dist/views/ForgotPassword/index.js.map +1 -1
  572. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  573. package/dist/views/HierarchyList/DocumentListSelection/index.js +103 -105
  574. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  575. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +4 -1
  576. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -1
  577. package/dist/views/HierarchyList/HierarchyListHeader/index.js +26 -14
  578. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  579. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
  580. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +44 -86
  581. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  582. package/dist/views/HierarchyList/HierarchyTable/index.css +8 -31
  583. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +3 -1
  584. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  585. package/dist/views/HierarchyList/HierarchyTable/index.js +78 -5
  586. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  587. package/dist/views/HierarchyList/getHierarchyListURL.d.ts +7 -0
  588. package/dist/views/HierarchyList/getHierarchyListURL.d.ts.map +1 -0
  589. package/dist/views/HierarchyList/getHierarchyListURL.js +22 -0
  590. package/dist/views/HierarchyList/getHierarchyListURL.js.map +1 -0
  591. package/dist/views/HierarchyList/index.d.ts.map +1 -1
  592. package/dist/views/HierarchyList/index.js +35 -11
  593. package/dist/views/HierarchyList/index.js.map +1 -1
  594. package/dist/views/List/DocumentGrid/index.d.ts +17 -0
  595. package/dist/views/List/DocumentGrid/index.d.ts.map +1 -0
  596. package/dist/views/List/DocumentGrid/index.js +117 -0
  597. package/dist/views/List/DocumentGrid/index.js.map +1 -0
  598. package/dist/views/List/GroupedDocumentGrid/index.css +17 -0
  599. package/dist/views/List/GroupedDocumentGrid/index.d.ts +14 -0
  600. package/dist/views/List/GroupedDocumentGrid/index.d.ts.map +1 -0
  601. package/dist/views/List/GroupedDocumentGrid/index.js +99 -0
  602. package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -0
  603. package/dist/views/List/ListHeader/index.css +4 -5
  604. package/dist/views/List/ListHeader/index.d.ts +3 -1
  605. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  606. package/dist/views/List/ListHeader/index.js +15 -4
  607. package/dist/views/List/ListHeader/index.js.map +1 -1
  608. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  609. package/dist/views/List/enrichDocsWithVersionStatus.js +3 -1
  610. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  611. package/dist/views/List/getDocumentListItemURL.d.ts +9 -0
  612. package/dist/views/List/getDocumentListItemURL.d.ts.map +1 -0
  613. package/dist/views/List/getDocumentListItemURL.js +23 -0
  614. package/dist/views/List/getDocumentListItemURL.js.map +1 -0
  615. package/dist/views/List/handleGroupBy.d.ts +6 -2
  616. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  617. package/dist/views/List/handleGroupBy.js +13 -3
  618. package/dist/views/List/handleGroupBy.js.map +1 -1
  619. package/dist/views/List/index.client.d.ts.map +1 -1
  620. package/dist/views/List/index.client.js +63 -18
  621. package/dist/views/List/index.client.js.map +1 -1
  622. package/dist/views/List/index.css +1 -1
  623. package/dist/views/List/index.d.ts.map +1 -1
  624. package/dist/views/List/index.js +91 -11
  625. package/dist/views/List/index.js.map +1 -1
  626. package/dist/views/List/renderListViewSlots.d.ts +3 -2
  627. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  628. package/dist/views/List/renderListViewSlots.js +12 -4
  629. package/dist/views/List/renderListViewSlots.js.map +1 -1
  630. package/dist/views/List/resolveDocumentListItemURL.d.ts +11 -0
  631. package/dist/views/List/resolveDocumentListItemURL.d.ts.map +1 -0
  632. package/dist/views/List/resolveDocumentListItemURL.js +30 -0
  633. package/dist/views/List/resolveDocumentListItemURL.js.map +1 -0
  634. package/dist/views/NotFound/index.css +0 -2
  635. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  636. package/dist/views/ResetPassword/index.js +1 -3
  637. package/dist/views/ResetPassword/index.js.map +1 -1
  638. package/dist/views/Root/getRouteData.d.ts +1 -8
  639. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  640. package/dist/views/Root/getRouteData.js +3 -12
  641. package/dist/views/Root/getRouteData.js.map +1 -1
  642. package/dist/views/Unauthorized/index.css +0 -2
  643. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  644. package/dist/views/Unauthorized/index.js +2 -1
  645. package/dist/views/Unauthorized/index.js.map +1 -1
  646. package/dist/views/Version/Default/index.css +7 -11
  647. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.css +0 -1
  648. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -12
  649. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  650. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.css +0 -1
  651. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +2 -2
  652. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  653. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +2 -2
  654. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  655. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +2 -2
  656. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  657. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +2 -2
  658. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  659. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.css +3 -4
  660. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +2 -2
  661. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  662. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +0 -1
  663. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -2
  664. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  665. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  666. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +2 -2
  667. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  668. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -8
  669. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  670. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -2
  671. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  672. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +0 -1
  673. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  674. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +2 -2
  675. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  676. package/dist/views/Versions/VersionPillLabel/index.css +1 -2
  677. package/dist/views/Versions/index.css +1 -1
  678. package/dist/widgets/CollectionCards/index.css +0 -1
  679. package/dist/widgets/CollectionQuery/index.css +4 -6
  680. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  681. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +31 -5
  682. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  683. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +41 -0
  684. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +19 -0
  685. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +1 -0
  686. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +121 -0
  687. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +1 -0
  688. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +20 -0
  689. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +1 -0
  690. package/dist/widgets/RecentlyViewed/getDocuments.js +251 -0
  691. package/dist/widgets/RecentlyViewed/getDocuments.js.map +1 -0
  692. package/dist/widgets/RecentlyViewed/index.client.d.ts +41 -0
  693. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +1 -0
  694. package/dist/widgets/RecentlyViewed/index.client.js +404 -0
  695. package/dist/widgets/RecentlyViewed/index.client.js.map +1 -0
  696. package/dist/widgets/RecentlyViewed/index.css +352 -0
  697. package/dist/widgets/RecentlyViewed/index.d.ts +1 -1
  698. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  699. package/dist/widgets/RecentlyViewed/index.js +33 -134
  700. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  701. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts +18 -0
  702. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +1 -0
  703. package/dist/widgets/RecentlyViewed/pinnedPreferences.js +81 -0
  704. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +1 -0
  705. package/dist/widgets/RecentlyViewed/recents.d.ts +8 -0
  706. package/dist/widgets/RecentlyViewed/recents.d.ts.map +1 -0
  707. package/dist/widgets/RecentlyViewed/recents.js +19 -0
  708. package/dist/widgets/RecentlyViewed/recents.js.map +1 -0
  709. package/dist/widgets/Welcome/index.css +16 -9
  710. package/dist/widgets/WidgetCard/index.css +4 -8
  711. package/package.json +8 -8
  712. package/dist/utilities/dateLocales.d.ts +0 -30
  713. package/dist/utilities/dateLocales.d.ts.map +0 -1
  714. package/dist/utilities/dateLocales.js +0 -57
  715. package/dist/utilities/dateLocales.js.map +0 -1
@@ -3,9 +3,10 @@ import { getTranslation } from '@payloadcms/translations';
3
3
  import React from 'react';
4
4
  import { CloseModalButton } from '../../../elements/CloseModalButton/index.js';
5
5
  import { DefaultListViewTabs } from '../../../elements/DefaultListViewTabs/index.js';
6
+ import { HierarchyEditButton } from '../../../elements/Hierarchy/EditButton/index.js';
6
7
  import { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js';
7
8
  import { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js';
8
- import { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js';
9
+ import { ListDrawerConfirmSelectionButton, ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js';
9
10
  import { ListHeader } from '../../../elements/ListHeader/index.js';
10
11
  import { ListBulkUploadButton } from '../../../elements/ListHeader/TitleActions/index.js';
11
12
  import { useConfig } from '../../../providers/Config/index.js';
@@ -16,9 +17,11 @@ const drawerBaseClass = 'list-drawer';
16
17
  export const CollectionListHeader = ({
17
18
  className,
18
19
  collectionConfig,
20
+ currentHierarchyItem,
19
21
  Description,
20
22
  disableBulkDelete,
21
23
  disableBulkEdit,
24
+ enableRowSelections,
22
25
  hasCreatePermission,
23
26
  hasDeletePermission,
24
27
  hasTrashPermission,
@@ -41,6 +44,7 @@ export const CollectionListHeader = ({
41
44
  const {
42
45
  isGroupingBy
43
46
  } = useListQuery();
47
+ const title = currentHierarchyItem?.title ?? getTranslation(collectionConfig?.labels?.plural, i18n);
44
48
  if (isInDrawer) {
45
49
  return /*#__PURE__*/_jsx(ListHeader, {
46
50
  Actions: [],
@@ -57,7 +61,9 @@ export const CollectionListHeader = ({
57
61
  })?.labels?.plural, i18n),
58
62
  TitleActions: [/*#__PURE__*/_jsx(ListDrawerCreateNewDocButton, {
59
63
  hasCreatePermission: hasCreatePermission
60
- }, "list-drawer-create-new-doc")].filter(Boolean)
64
+ }, "list-drawer-create-new-doc"), /*#__PURE__*/_jsx(ListDrawerConfirmSelectionButton, {
65
+ enableRowSelections: enableRowSelections
66
+ }, "list-drawer-confirm-selection")].filter(Boolean)
61
67
  });
62
68
  }
63
69
  return /*#__PURE__*/_jsx(ListHeader, {
@@ -77,8 +83,13 @@ export const CollectionListHeader = ({
77
83
  }, "default-list-actions")].filter(Boolean),
78
84
  AfterListHeaderContent: Description,
79
85
  className: className,
80
- title: getTranslation(collectionConfig?.labels?.plural, i18n),
81
- TitleActions: [hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && /*#__PURE__*/_jsx(ListBulkUploadButton, {
86
+ title: title,
87
+ TitleActions: [currentHierarchyItem && /*#__PURE__*/_jsx(HierarchyEditButton, {
88
+ collectionSlug: collectionConfig.slug,
89
+ hasUpdatePermission: currentHierarchyItem.hasUpdatePermission,
90
+ id: currentHierarchyItem.id,
91
+ title: title
92
+ }, "edit-hierarchy-document"), hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && /*#__PURE__*/_jsx(ListBulkUploadButton, {
82
93
  collectionSlug: collectionConfig.slug,
83
94
  hasCreatePermission: hasCreatePermission,
84
95
  isBulkUploadEnabled: isBulkUploadEnabled,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","DefaultListViewTabs","useListDrawerContext","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","useConfig","useListQuery","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","hasDeletePermission","hasTrashPermission","i18n","isBulkUploadEnabled","onBulkUploadSuccess","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","isTrashRoute","isGroupingBy","_jsx","Actions","AfterListHeaderContent","_jsxs","_Fragment","BeforeTitle","slug","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","showSelectAllAcrossPages"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { DefaultListViewTabs } from '../../../elements/DefaultListViewTabs/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport { ListBulkUploadButton } from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.css'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n hasDeletePermission?: boolean\n hasTrashPermission?: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n smallBreak: boolean\n TitleActions?: React.ReactNode[]\n viewType?: ViewTypes\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n i18n,\n isBulkUploadEnabled,\n onBulkUploadSuccess,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n const isTrashRoute = viewType === 'trash'\n const { isGroupingBy } = useListQuery()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n BeforeTitle={\n <CloseModalButton className={`${drawerBaseClass}__header-close`} slug={drawerSlug} />\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && !isGroupingBy && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasDeletePermission={hasDeletePermission}\n hasTrashPermission={hasTrashPermission}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n showSelectAllAcrossPages={!isGroupingBy}\n viewType={viewType}\n />\n ),\n <DefaultListViewTabs\n collectionConfig={collectionConfig}\n config={config}\n key=\"default-list-actions\"\n viewType={viewType}\n />,\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,UAAU,QAAQ;AAC3B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,eAAA,GAAkB;AAqBxB,OAAO,MAAMC,oBAAA,GAAkDA,CAAC;EAC9DC,SAAS;EACTC,gBAAgB;EAChBC,WAAW;EACXC,iBAAiB;EACjBC,eAAe;EACfC,mBAAmB;EACnBC,mBAAmB;EACnBC,kBAAkB;EAClBC,IAAI;EACJC,mBAAmB;EACnBC,mBAAmB;EACnBC,UAAU;EACVC;AAAQ,CACT;EACC,MAAM;IAAEC,MAAM;IAAEC;EAAe,CAAE,GAAGnB,SAAA;EACpC,MAAM;IAAEoB,UAAU;IAAEC,UAAU;IAAEC;EAAc,CAAE,GAAG3B,oBAAA;EACnD,MAAM4B,YAAA,GAAeN,QAAA,KAAa;EAClC,MAAM;IAAEO;EAAY,CAAE,GAAGvB,YAAA;EAEzB,IAAIoB,UAAA,EAAY;IACd,oBACEI,IAAA,CAAC3B,UAAA;MACC4B,OAAA,EAAS,EAAE;MACXC,sBAAA,eACEC,KAAA,CAAAC,SAAA;mBACGtB,WAAA,E,aACAkB,IAAA,CAAC7B,wBAAA;;MAGNkC,WAAA,eACEL,IAAA,CAAChC,gBAAA;QAAiBY,SAAA,EAAW,GAAGF,eAAA,gBAA+B;QAAE4B,IAAA,EAAMX;;MAEzEf,SAAA,EAAW,GAAGF,eAAA,UAAyB;MACvC6B,KAAA,EAAOzC,cAAA,CACL4B,eAAA,CAAgB;QAAEc,cAAA,EAAgBX,cAAA,CAAeY;MAAM,IAAIC,MAAA,EAAQC,MAAA,EACnEvB,IAAA;MAEFwB,YAAA,EAAc,C,aACZZ,IAAA,CAAC5B,4BAAA;QACCa,mBAAA,EAAqBA;SACjB,8BAEP,CAAC4B,MAAM,CAACC,OAAA;;EAGf;EAEA,oBACEd,IAAA,CAAC3B,UAAA;IACC4B,OAAA,EAAS,CACP,CAACV,UAAA,IAAc,CAACQ,YAAA,iBACdC,IAAA,CAACvB,aAAA;MACCI,gBAAA,EAAkBA,gBAAA;MAClBE,iBAAA,EAAmBA,iBAAA;MACnBC,eAAA,EAAiBA,eAAA;MACjBE,mBAAA,EAAqBA,mBAAA;MACrBC,kBAAA,EAAoBA,kBAAA;MAEpB4B,KAAA,EAAOjD,cAAA,CAAee,gBAAA,EAAkB6B,MAAA,EAAQC,MAAA,EAAQvB,IAAA;MACxD4B,wBAAA,EAA0B,CAACjB,YAAA;MAC3BP,QAAA,EAAUA;OAHN,mB,aAMRQ,IAAA,CAAC/B,mBAAA;MACCY,gBAAA,EAAkBA,gBAAA;MAClBY,MAAA,EAAQA,MAAA;MAERD,QAAA,EAAUA;OADN,wBAGP,CAACqB,MAAM,CAACC,OAAA;IACTZ,sBAAA,EAAwBpB,WAAA;IACxBF,SAAA,EAAWA,SAAA;IACX2B,KAAA,EAAOzC,cAAA,CAAee,gBAAA,EAAkB6B,MAAA,EAAQC,MAAA,EAAQvB,IAAA;IACxDwB,YAAA,EAAc,CACZ3B,mBAAA,IAAuBI,mBAAA,IAAuB,CAACS,YAAA,iBAC7CE,IAAA,CAAC1B,oBAAA;MACCkC,cAAA,EAAgB3B,gBAAA,CAAiByB,IAAI;MACrCrB,mBAAA,EAAqBA,mBAAA;MACrBI,mBAAA,EAAqBA,mBAAA;MAErBC,mBAAA,EAAqBA;OADjB,2BAIT,CAACuB,MAAM,CAACC,OAAA;;AAGf","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","DefaultListViewTabs","HierarchyEditButton","useListDrawerContext","DrawerRelationshipSelect","ListDrawerConfirmSelectionButton","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","useConfig","useListQuery","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","currentHierarchyItem","Description","disableBulkDelete","disableBulkEdit","enableRowSelections","hasCreatePermission","hasDeletePermission","hasTrashPermission","i18n","isBulkUploadEnabled","onBulkUploadSuccess","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","isTrashRoute","isGroupingBy","title","labels","plural","_jsx","Actions","AfterListHeaderContent","_jsxs","_Fragment","BeforeTitle","slug","collectionSlug","value","TitleActions","filter","Boolean","label","showSelectAllAcrossPages","hasUpdatePermission","id"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, CurrentHierarchyItem, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { DefaultListViewTabs } from '../../../elements/DefaultListViewTabs/index.js'\nimport { HierarchyEditButton } from '../../../elements/Hierarchy/EditButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport {\n ListDrawerConfirmSelectionButton,\n ListDrawerCreateNewDocButton,\n} from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport { ListBulkUploadButton } from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.css'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n currentHierarchyItem?: CurrentHierarchyItem\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections?: boolean\n hasCreatePermission: boolean\n hasDeletePermission?: boolean\n hasTrashPermission?: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n smallBreak: boolean\n TitleActions?: React.ReactNode[]\n viewType?: ViewTypes\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n currentHierarchyItem,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n i18n,\n isBulkUploadEnabled,\n onBulkUploadSuccess,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n const isTrashRoute = viewType === 'trash'\n const { isGroupingBy } = useListQuery()\n const title =\n currentHierarchyItem?.title ?? getTranslation(collectionConfig?.labels?.plural, i18n)\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n BeforeTitle={\n <CloseModalButton className={`${drawerBaseClass}__header-close`} slug={drawerSlug} />\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n <ListDrawerConfirmSelectionButton\n enableRowSelections={enableRowSelections}\n key=\"list-drawer-confirm-selection\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && !isGroupingBy && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasDeletePermission={hasDeletePermission}\n hasTrashPermission={hasTrashPermission}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n showSelectAllAcrossPages={!isGroupingBy}\n viewType={viewType}\n />\n ),\n <DefaultListViewTabs\n collectionConfig={collectionConfig}\n config={config}\n key=\"default-list-actions\"\n viewType={viewType}\n />,\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={title}\n TitleActions={[\n currentHierarchyItem && (\n <HierarchyEditButton\n collectionSlug={collectionConfig.slug}\n hasUpdatePermission={currentHierarchyItem.hasUpdatePermission}\n id={currentHierarchyItem.id}\n key=\"edit-hierarchy-document\"\n title={title}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && !isTrashRoute && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"enrichDocsWithVersionStatus.d.ts","sourceRoot":"","sources":["../../../src/views/List/enrichDocsWithVersionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvF;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,gBAAgB,EAChB,IAAI,EACJ,GAAG,GACJ,EAAE;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoGzB"}
1
+ {"version":3,"file":"enrichDocsWithVersionStatus.d.ts","sourceRoot":"","sources":["../../../src/views/List/enrichDocsWithVersionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvF;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,EAChD,gBAAgB,EAChB,IAAI,EACJ,GAAG,GACJ,EAAE;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,IAAI,EAAE,aAAa,CAAA;IACnB,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsGzB"}
@@ -48,11 +48,13 @@
48
48
  collection: collectionConfig.slug,
49
49
  depth: 0,
50
50
  limit: 0,
51
- overrideAccess: true,
51
+ overrideAccess: false,
52
52
  pagination: false,
53
+ req,
53
54
  select: {
54
55
  parent: true
55
56
  },
57
+ user: req.user,
56
58
  where: {
57
59
  and: [{
58
60
  parent: {
@@ -1 +1 @@
1
- {"version":3,"file":"enrichDocsWithVersionStatus.js","names":["enrichDocsWithVersionStatus","collectionConfig","data","req","draftsEnabled","versions","drafts","docs","length","draftDocs","filter","doc","_status","draftDocIds","map","id","Boolean","publishedVersions","payload","findVersions","collection","slug","depth","limit","overrideAccess","pagination","select","parent","where","and","in","equals","hasPublishedVersionSet","Set","version","enrichedDocs","has","_displayStatus","error","logger","err","msg"],"sources":["../../../src/views/List/enrichDocsWithVersionStatus.ts"],"sourcesContent":["import type { PaginatedDocs, PayloadRequest, SanitizedCollectionConfig } from 'payload'\n\n/**\n * Enriches list view documents with correct draft status display.\n * When draft=true is used in the query, Payload returns the latest draft version if it exists.\n * This function checks if draft documents also have a published version to determine \"changed\" status.\n *\n * Performance: Uses a single query to find all documents with \"changed\" status instead of N queries.\n */\nexport async function enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n}: {\n collectionConfig: SanitizedCollectionConfig\n data: PaginatedDocs\n req: PayloadRequest\n}): Promise<PaginatedDocs> {\n const draftsEnabled = collectionConfig?.versions?.drafts\n\n if (!draftsEnabled || !data?.docs?.length) {\n return data\n }\n\n // Find all draft documents\n // When querying with draft:true, we get the latest draft if it exists\n // We need to check if these drafts have a published version\n const draftDocs = data.docs.filter((doc) => doc._status === 'draft')\n\n if (draftDocs.length === 0) {\n return data\n }\n\n const draftDocIds = draftDocs.map((doc) => doc.id).filter(Boolean)\n\n if (draftDocIds.length === 0) {\n return data\n }\n\n // OPTIMIZATION: Single query to find all document IDs that have BOTH:\n // 1. A draft version (latest=true, _status='draft')\n // 2. A published version (_status='published')\n // These are the documents with \"changed\" status\n try {\n // TODO: This could be more efficient with a findDistinctVersions() API:\n // const { values } = await req.payload.findDistinctVersions({\n // collection: collectionConfig.slug,\n // field: 'parent',\n // where: {\n // and: [\n // { parent: { in: draftDocIds } },\n // { 'version._status': { equals: 'published' } },\n // ],\n // },\n // })\n // const hasPublishedVersionSet = new Set(values)\n //\n // For now, we query all published versions but only select the 'parent' field\n // to minimize data transfer, then deduplicate with a Set\n const publishedVersions = await req.payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 0,\n overrideAccess: true,\n pagination: false,\n select: {\n parent: true,\n },\n where: {\n and: [\n {\n parent: {\n in: draftDocIds,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n })\n\n // Create a Set of document IDs that have published versions\n const hasPublishedVersionSet = new Set(\n publishedVersions.docs.map((version) => version.parent).filter(Boolean),\n )\n\n // Enrich documents with display status\n const enrichedDocs = data.docs.map((doc) => {\n // If it's a draft and has a published version, show \"changed\"\n if (doc._status === 'draft' && hasPublishedVersionSet.has(doc.id)) {\n return {\n ...doc,\n _displayStatus: 'changed' as const,\n }\n }\n\n return {\n ...doc,\n _displayStatus: doc._status as 'draft' | 'published',\n }\n })\n\n return {\n ...data,\n docs: enrichedDocs,\n }\n } catch (error) {\n // If there's an error querying versions, just return the original data\n req.payload.logger.error({\n err: error,\n msg: `Error checking version status for collection ${collectionConfig.slug}`,\n })\n return data\n }\n}\n"],"mappings":"AAEA;;;;;;GAOA,OAAO,eAAeA,4BAA4B;EAChDC,gBAAgB;EAChBC,IAAI;EACJC;AAAG,CAKJ;EACC,MAAMC,aAAA,GAAgBH,gBAAA,EAAkBI,QAAA,EAAUC,MAAA;EAElD,IAAI,CAACF,aAAA,IAAiB,CAACF,IAAA,EAAMK,IAAA,EAAMC,MAAA,EAAQ;IACzC,OAAON,IAAA;EACT;EAEA;EACA;EACA;EACA,MAAMO,SAAA,GAAYP,IAAA,CAAKK,IAAI,CAACG,MAAM,CAAEC,GAAA,IAAQA,GAAA,CAAIC,OAAO,KAAK;EAE5D,IAAIH,SAAA,CAAUD,MAAM,KAAK,GAAG;IAC1B,OAAON,IAAA;EACT;EAEA,MAAMW,WAAA,GAAcJ,SAAA,CAAUK,GAAG,CAAEH,GAAA,IAAQA,GAAA,CAAII,EAAE,EAAEL,MAAM,CAACM,OAAA;EAE1D,IAAIH,WAAA,CAAYL,MAAM,KAAK,GAAG;IAC5B,OAAON,IAAA;EACT;EAEA;EACA;EACA;EACA;EACA,IAAI;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMe,iBAAA,GAAoB,MAAMd,GAAA,CAAIe,OAAO,CAACC,YAAY,CAAC;MACvDC,UAAA,EAAYnB,gBAAA,CAAiBoB,IAAI;MACjCC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,cAAA,EAAgB;MAChBC,UAAA,EAAY;MACZC,MAAA,EAAQ;QACNC,MAAA,EAAQ;MACV;MACAC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEF,MAAA,EAAQ;YACNG,EAAA,EAAIjB;UACN;QACF,GACA;UACE,mBAAmB;YACjBkB,MAAA,EAAQ;UACV;QACF;MAEJ;IACF;IAEA;IACA,MAAMC,sBAAA,GAAyB,IAAIC,GAAA,CACjChB,iBAAA,CAAkBV,IAAI,CAACO,GAAG,CAAEoB,OAAA,IAAYA,OAAA,CAAQP,MAAM,EAAEjB,MAAM,CAACM,OAAA;IAGjE;IACA,MAAMmB,YAAA,GAAejC,IAAA,CAAKK,IAAI,CAACO,GAAG,CAAEH,GAAA;MAClC;MACA,IAAIA,GAAA,CAAIC,OAAO,KAAK,WAAWoB,sBAAA,CAAuBI,GAAG,CAACzB,GAAA,CAAII,EAAE,GAAG;QACjE,OAAO;UACL,GAAGJ,GAAG;UACN0B,cAAA,EAAgB;QAClB;MACF;MAEA,OAAO;QACL,GAAG1B,GAAG;QACN0B,cAAA,EAAgB1B,GAAA,CAAIC;MACtB;IACF;IAEA,OAAO;MACL,GAAGV,IAAI;MACPK,IAAA,EAAM4B;IACR;EACF,EAAE,OAAOG,KAAA,EAAO;IACd;IACAnC,GAAA,CAAIe,OAAO,CAACqB,MAAM,CAACD,KAAK,CAAC;MACvBE,GAAA,EAAKF,KAAA;MACLG,GAAA,EAAK,gDAAgDxC,gBAAA,CAAiBoB,IAAI;IAC5E;IACA,OAAOnB,IAAA;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"enrichDocsWithVersionStatus.js","names":["enrichDocsWithVersionStatus","collectionConfig","data","req","draftsEnabled","versions","drafts","docs","length","draftDocs","filter","doc","_status","draftDocIds","map","id","Boolean","publishedVersions","payload","findVersions","collection","slug","depth","limit","overrideAccess","pagination","select","parent","user","where","and","in","equals","hasPublishedVersionSet","Set","version","enrichedDocs","has","_displayStatus","error","logger","err","msg"],"sources":["../../../src/views/List/enrichDocsWithVersionStatus.ts"],"sourcesContent":["import type { PaginatedDocs, PayloadRequest, SanitizedCollectionConfig } from 'payload'\n\n/**\n * Enriches list view documents with correct draft status display.\n * When draft=true is used in the query, Payload returns the latest draft version if it exists.\n * This function checks if draft documents also have a published version to determine \"changed\" status.\n *\n * Performance: Uses a single query to find all documents with \"changed\" status instead of N queries.\n */\nexport async function enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n}: {\n collectionConfig: SanitizedCollectionConfig\n data: PaginatedDocs\n req: PayloadRequest\n}): Promise<PaginatedDocs> {\n const draftsEnabled = collectionConfig?.versions?.drafts\n\n if (!draftsEnabled || !data?.docs?.length) {\n return data\n }\n\n // Find all draft documents\n // When querying with draft:true, we get the latest draft if it exists\n // We need to check if these drafts have a published version\n const draftDocs = data.docs.filter((doc) => doc._status === 'draft')\n\n if (draftDocs.length === 0) {\n return data\n }\n\n const draftDocIds = draftDocs.map((doc) => doc.id).filter(Boolean)\n\n if (draftDocIds.length === 0) {\n return data\n }\n\n // OPTIMIZATION: Single query to find all document IDs that have BOTH:\n // 1. A draft version (latest=true, _status='draft')\n // 2. A published version (_status='published')\n // These are the documents with \"changed\" status\n try {\n // TODO: This could be more efficient with a findDistinctVersions() API:\n // const { values } = await req.payload.findDistinctVersions({\n // collection: collectionConfig.slug,\n // field: 'parent',\n // where: {\n // and: [\n // { parent: { in: draftDocIds } },\n // { 'version._status': { equals: 'published' } },\n // ],\n // },\n // })\n // const hasPublishedVersionSet = new Set(values)\n //\n // For now, we query all published versions but only select the 'parent' field\n // to minimize data transfer, then deduplicate with a Set\n const publishedVersions = await req.payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 0,\n overrideAccess: false,\n pagination: false,\n req,\n select: {\n parent: true,\n },\n user: req.user,\n where: {\n and: [\n {\n parent: {\n in: draftDocIds,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n })\n\n // Create a Set of document IDs that have published versions\n const hasPublishedVersionSet = new Set(\n publishedVersions.docs.map((version) => version.parent).filter(Boolean),\n )\n\n // Enrich documents with display status\n const enrichedDocs = data.docs.map((doc) => {\n // If it's a draft and has a published version, show \"changed\"\n if (doc._status === 'draft' && hasPublishedVersionSet.has(doc.id)) {\n return {\n ...doc,\n _displayStatus: 'changed' as const,\n }\n }\n\n return {\n ...doc,\n _displayStatus: doc._status as 'draft' | 'published',\n }\n })\n\n return {\n ...data,\n docs: enrichedDocs,\n }\n } catch (error) {\n // If there's an error querying versions, just return the original data\n req.payload.logger.error({\n err: error,\n msg: `Error checking version status for collection ${collectionConfig.slug}`,\n })\n return data\n }\n}\n"],"mappings":"AAEA;;;;;;GAOA,OAAO,eAAeA,4BAA4B;EAChDC,gBAAgB;EAChBC,IAAI;EACJC;AAAG,CAKJ;EACC,MAAMC,aAAA,GAAgBH,gBAAA,EAAkBI,QAAA,EAAUC,MAAA;EAElD,IAAI,CAACF,aAAA,IAAiB,CAACF,IAAA,EAAMK,IAAA,EAAMC,MAAA,EAAQ;IACzC,OAAON,IAAA;EACT;EAEA;EACA;EACA;EACA,MAAMO,SAAA,GAAYP,IAAA,CAAKK,IAAI,CAACG,MAAM,CAAEC,GAAA,IAAQA,GAAA,CAAIC,OAAO,KAAK;EAE5D,IAAIH,SAAA,CAAUD,MAAM,KAAK,GAAG;IAC1B,OAAON,IAAA;EACT;EAEA,MAAMW,WAAA,GAAcJ,SAAA,CAAUK,GAAG,CAAEH,GAAA,IAAQA,GAAA,CAAII,EAAE,EAAEL,MAAM,CAACM,OAAA;EAE1D,IAAIH,WAAA,CAAYL,MAAM,KAAK,GAAG;IAC5B,OAAON,IAAA;EACT;EAEA;EACA;EACA;EACA;EACA,IAAI;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMe,iBAAA,GAAoB,MAAMd,GAAA,CAAIe,OAAO,CAACC,YAAY,CAAC;MACvDC,UAAA,EAAYnB,gBAAA,CAAiBoB,IAAI;MACjCC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,cAAA,EAAgB;MAChBC,UAAA,EAAY;MACZtB,GAAA;MACAuB,MAAA,EAAQ;QACNC,MAAA,EAAQ;MACV;MACAC,IAAA,EAAMzB,GAAA,CAAIyB,IAAI;MACdC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEH,MAAA,EAAQ;YACNI,EAAA,EAAIlB;UACN;QACF,GACA;UACE,mBAAmB;YACjBmB,MAAA,EAAQ;UACV;QACF;MAEJ;IACF;IAEA;IACA,MAAMC,sBAAA,GAAyB,IAAIC,GAAA,CACjCjB,iBAAA,CAAkBV,IAAI,CAACO,GAAG,CAAEqB,OAAA,IAAYA,OAAA,CAAQR,MAAM,EAAEjB,MAAM,CAACM,OAAA;IAGjE;IACA,MAAMoB,YAAA,GAAelC,IAAA,CAAKK,IAAI,CAACO,GAAG,CAAEH,GAAA;MAClC;MACA,IAAIA,GAAA,CAAIC,OAAO,KAAK,WAAWqB,sBAAA,CAAuBI,GAAG,CAAC1B,GAAA,CAAII,EAAE,GAAG;QACjE,OAAO;UACL,GAAGJ,GAAG;UACN2B,cAAA,EAAgB;QAClB;MACF;MAEA,OAAO;QACL,GAAG3B,GAAG;QACN2B,cAAA,EAAgB3B,GAAA,CAAIC;MACtB;IACF;IAEA,OAAO;MACL,GAAGV,IAAI;MACPK,IAAA,EAAM6B;IACR;EACF,EAAE,OAAOG,KAAA,EAAO;IACd;IACApC,GAAA,CAAIe,OAAO,CAACsB,MAAM,CAACD,KAAK,CAAC;MACvBE,GAAA,EAAKF,KAAA;MACLG,GAAA,EAAK,gDAAgDzC,gBAAA,CAAiBoB,IAAI;IAC5E;IACA,OAAOnB,IAAA;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { ViewTypes } from 'payload';
2
+ export declare const getDocumentListItemURL: ({ adminRoute, collectionSlug, documentID, hierarchyParentFieldName, viewType, }: {
3
+ adminRoute: string;
4
+ collectionSlug: string;
5
+ documentID: number | string;
6
+ hierarchyParentFieldName?: string;
7
+ viewType?: ViewTypes;
8
+ }) => string;
9
+ //# sourceMappingURL=getDocumentListItemURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocumentListItemURL.d.ts","sourceRoot":"","sources":["../../../src/views/List/getDocumentListItemURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAMxC,eAAO,MAAM,sBAAsB,oFAMhC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KAAG,MAcH,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { formatAdminURL } from 'payload/shared';
2
+ import { getHierarchyListURL } from '../HierarchyList/getHierarchyListURL.js';
3
+ export const getDocumentListItemURL = ({
4
+ adminRoute,
5
+ collectionSlug,
6
+ documentID,
7
+ hierarchyParentFieldName,
8
+ viewType
9
+ }) => {
10
+ if (viewType === 'list' && hierarchyParentFieldName) {
11
+ return getHierarchyListURL({
12
+ adminRoute,
13
+ collectionSlug,
14
+ parentFieldName: hierarchyParentFieldName,
15
+ parentID: documentID
16
+ });
17
+ }
18
+ return formatAdminURL({
19
+ adminRoute,
20
+ path: `/collections/${collectionSlug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(String(documentID))}`
21
+ });
22
+ };
23
+ //# sourceMappingURL=getDocumentListItemURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocumentListItemURL.js","names":["formatAdminURL","getHierarchyListURL","getDocumentListItemURL","adminRoute","collectionSlug","documentID","hierarchyParentFieldName","viewType","parentFieldName","parentID","path","encodeURIComponent","String"],"sources":["../../../src/views/List/getDocumentListItemURL.ts"],"sourcesContent":["import type { ViewTypes } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\n\nimport { getHierarchyListURL } from '../HierarchyList/getHierarchyListURL.js'\n\nexport const getDocumentListItemURL = ({\n adminRoute,\n collectionSlug,\n documentID,\n hierarchyParentFieldName,\n viewType,\n}: {\n adminRoute: string\n collectionSlug: string\n documentID: number | string\n hierarchyParentFieldName?: string\n viewType?: ViewTypes\n}): string => {\n if (viewType === 'list' && hierarchyParentFieldName) {\n return getHierarchyListURL({\n adminRoute,\n collectionSlug,\n parentFieldName: hierarchyParentFieldName,\n parentID: documentID,\n })\n }\n\n return formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(String(documentID))}`,\n })\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAE/B,SAASC,mBAAmB,QAAQ;AAEpC,OAAO,MAAMC,sBAAA,GAAyBA,CAAC;EACrCC,UAAU;EACVC,cAAc;EACdC,UAAU;EACVC,wBAAwB;EACxBC;AAAQ,CAOT;EACC,IAAIA,QAAA,KAAa,UAAUD,wBAAA,EAA0B;IACnD,OAAOL,mBAAA,CAAoB;MACzBE,UAAA;MACAC,cAAA;MACAI,eAAA,EAAiBF,wBAAA;MACjBG,QAAA,EAAUJ;IACZ;EACF;EAEA,OAAOL,cAAA,CAAe;IACpBG,UAAA;IACAO,IAAA,EAAM,gBAAgBN,cAAA,GAAiBG,QAAA,KAAa,UAAU,WAAW,MAAMI,kBAAA,CAAmBC,MAAA,CAAOP,UAAA;EAC3G;AACF","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import type { ClientCollectionConfig, ClientConfig, Column, ListQuery, PaginatedDocs, PayloadRequest, SanitizedCollectionConfig, SanitizedFieldsPermissions, SelectType, ViewTypes, Where } from 'payload';
2
- export declare const handleGroupBy: ({ clientCollectionConfig, clientConfig, collectionConfig, collectionSlug, columns, customCellProps, drawerSlug, enableRowSelections, fieldPermissions, query, req, select, trash, user, viewType, where: whereWithMergedSearch, }: {
1
+ import type { ClientCollectionConfig, ClientConfig, Column, ListQuery, ListViewGroup, PaginatedDocs, PayloadRequest, PopulateType, SanitizedCollectionConfig, SanitizedFieldsPermissions, SelectType, ViewTypes, Where } from 'payload';
2
+ export declare const handleGroupBy: ({ clientCollectionConfig, clientConfig, collectionConfig, collectionSlug, columns, customCellProps, drawerSlug, enableRowSelections, fieldPermissions, hierarchyParentFieldName, query, req, select, thumbnailFieldName, thumbnailPopulate, trash, user, viewType, where: whereWithMergedSearch, }: {
3
3
  clientCollectionConfig: ClientCollectionConfig;
4
4
  clientConfig: ClientConfig;
5
5
  collectionConfig: SanitizedCollectionConfig;
@@ -9,9 +9,12 @@ export declare const handleGroupBy: ({ clientCollectionConfig, clientConfig, col
9
9
  drawerSlug?: string;
10
10
  enableRowSelections?: boolean;
11
11
  fieldPermissions?: SanitizedFieldsPermissions;
12
+ hierarchyParentFieldName?: string;
12
13
  query?: ListQuery;
13
14
  req: PayloadRequest;
14
15
  select?: SelectType;
16
+ thumbnailFieldName?: string;
17
+ thumbnailPopulate?: PopulateType;
15
18
  trash?: boolean;
16
19
  user: any;
17
20
  viewType?: ViewTypes;
@@ -19,6 +22,7 @@ export declare const handleGroupBy: ({ clientCollectionConfig, clientConfig, col
19
22
  }) => Promise<{
20
23
  columnState: Column[];
21
24
  data: PaginatedDocs;
25
+ groupedData: ListViewGroup[];
22
26
  Table: null | React.ReactNode | React.ReactNode[];
23
27
  }>;
24
28
  //# sourceMappingURL=handleGroupBy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleGroupBy.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleGroupBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,UAAU,EACV,SAAS,EACT,KAAK,EACN,MAAM,SAAS,CAAA;AAWhB,eAAO,MAAM,aAAa,sOAiBvB;IACD,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;CACb,KAAG,OAAO,CAAC;IACV,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;CAClD,CA4KA,CAAA"}
1
+ {"version":3,"file":"handleGroupBy.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleGroupBy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,MAAM,EACN,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAC1B,UAAU,EACV,SAAS,EACT,KAAK,EACN,MAAM,SAAS,CAAA;AAWhB,eAAO,MAAM,aAAa,uSAoBvB;IACD,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,GAAG,EAAE,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;IAC7C,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,YAAY,CAAA;IAChC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,KAAK,EAAE,KAAK,CAAA;CACb,KAAG,OAAO,CAAC;IACV,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;CAClD,CAmLA,CAAA"}
@@ -15,9 +15,12 @@ export const handleGroupBy = async ({
15
15
  drawerSlug,
16
16
  enableRowSelections,
17
17
  fieldPermissions,
18
+ hierarchyParentFieldName,
18
19
  query,
19
20
  req,
20
21
  select,
22
+ thumbnailFieldName,
23
+ thumbnailPopulate,
21
24
  trash = false,
22
25
  user,
23
26
  viewType,
@@ -25,7 +28,7 @@ export const handleGroupBy = async ({
25
28
  }) => {
26
29
  let Table = null;
27
30
  let columnState;
28
- const dataByGroup = {};
31
+ const groupedData = [];
29
32
  // NOTE: is there a faster/better way to do this?
30
33
  const flattenedFields = flattenAllFields({
31
34
  fields: collectionConfig.fields
@@ -69,7 +72,7 @@ export const handleGroupBy = async ({
69
72
  const valueOrRelationshipID = extractValueOrRelationshipID(potentiallyPopulatedRelationship);
70
73
  const groupData = await req.payload.find({
71
74
  collection: collectionSlug,
72
- depth: 0,
75
+ depth: thumbnailFieldName ? 1 : 0,
73
76
  draft: true,
74
77
  fallbackLocale: false,
75
78
  includeLockStatus: true,
@@ -77,6 +80,7 @@ export const handleGroupBy = async ({
77
80
  locale: req.locale,
78
81
  overrideAccess: false,
79
82
  page: query?.queryByGroup?.[valueOrRelationshipID]?.page ? Number(query.queryByGroup[valueOrRelationshipID].page) : undefined,
83
+ populate: thumbnailPopulate,
80
84
  req,
81
85
  // Note: if we wanted to enable table-by-table sorting, we could use this:
82
86
  // sort: query?.queryByGroup?.[valueOrRelationshipID]?.sort,
@@ -140,6 +144,7 @@ export const handleGroupBy = async ({
140
144
  groupByFieldPath,
141
145
  groupByValue: serializableValue,
142
146
  heading: heading || req.i18n.t('general:noValue'),
147
+ hierarchyParentFieldName,
143
148
  i18n: req.i18n,
144
149
  key: `table-${serializableValue}`,
145
150
  orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
@@ -156,13 +161,18 @@ export const handleGroupBy = async ({
156
161
  if (!Table) {
157
162
  Table = [];
158
163
  }
159
- dataByGroup[serializableValue] = groupData;
164
+ groupedData[i] = {
165
+ data: groupData,
166
+ heading: heading || req.i18n.t('general:noValue'),
167
+ value: serializableValue
168
+ };
160
169
  Table[i] = NewTable;
161
170
  }
162
171
  }));
163
172
  return {
164
173
  columnState,
165
174
  data,
175
+ groupedData: groupedData.filter(Boolean),
166
176
  Table
167
177
  };
168
178
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handleGroupBy.js","names":["getTranslation","flattenAllFields","formatDate","renderTable","createSerializableValue","extractRelationshipDisplayValue","extractValueOrRelationshipID","handleGroupBy","clientCollectionConfig","clientConfig","collectionConfig","collectionSlug","columns","customCellProps","drawerSlug","enableRowSelections","fieldPermissions","query","req","select","trash","user","viewType","where","whereWithMergedSearch","Table","columnState","dataByGroup","flattenedFields","fields","groupByFieldPath","groupBy","replace","groupByField","find","f","name","populate","type","relationTo","Array","isArray","forEach","rel","config","collections","c","slug","admin","useAsTitle","distinct","payload","findDistinct","collection","depth","field","limit","Number","undefined","locale","overrideAccess","page","sort","data","docs","values","map","Promise","all","distinctValue","i","potentiallyPopulatedRelationship","valueOrRelationshipID","groupData","draft","fallbackLocale","includeLockStatus","queryByGroup","equals","heading","i18n","t","relationshipConfig","date","String","pattern","dateFormat","option","options","opt","value","translated","label","serializableValue","length","newColumnState","NewTable","groupByValue","key","orderableFieldName","orderable"],"sources":["../../../src/views/List/handleGroupBy.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n Column,\n ListQuery,\n PaginatedDocs,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n SelectType,\n ViewTypes,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { flattenAllFields } from 'payload'\n\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { renderTable } from '../../utilities/renderTable.js'\nimport { createSerializableValue } from './createSerializableValue.js'\nimport { extractRelationshipDisplayValue } from './extractRelationshipDisplayValue.js'\nimport { extractValueOrRelationshipID } from './extractValueOrRelationshipID.js'\n\nexport const handleGroupBy = async ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions,\n query,\n req,\n select,\n trash = false,\n user,\n viewType,\n where: whereWithMergedSearch,\n}: {\n clientCollectionConfig: ClientCollectionConfig\n clientConfig: ClientConfig\n collectionConfig: SanitizedCollectionConfig\n collectionSlug: string\n columns: any[]\n customCellProps?: Record<string, any>\n drawerSlug?: string\n enableRowSelections?: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n query?: ListQuery\n req: PayloadRequest\n select?: SelectType\n trash?: boolean\n user: any\n viewType?: ViewTypes\n where: Where\n}): Promise<{\n columnState: Column[]\n data: PaginatedDocs\n Table: null | React.ReactNode | React.ReactNode[]\n}> => {\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[]\n\n const dataByGroup: Record<string, PaginatedDocs> = {}\n\n // NOTE: is there a faster/better way to do this?\n const flattenedFields = flattenAllFields({ fields: collectionConfig.fields })\n\n const groupByFieldPath = query.groupBy.replace(/^-/, '')\n\n const groupByField = flattenedFields.find((f) => f.name === groupByFieldPath)\n\n // Set up population for relationships\n let populate\n\n if (groupByField?.type === 'relationship' && groupByField.relationTo) {\n const relationTo = Array.isArray(groupByField.relationTo)\n ? groupByField.relationTo\n : [groupByField.relationTo]\n\n populate = {}\n relationTo.forEach((rel) => {\n const config = clientConfig.collections.find((c) => c.slug === rel)\n populate[rel] = { [config?.admin?.useAsTitle || 'id']: true }\n })\n }\n\n const distinct = await req.payload.findDistinct({\n collection: collectionSlug,\n depth: 1,\n field: groupByFieldPath,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n populate,\n req,\n sort: query?.groupBy,\n trash,\n where: whereWithMergedSearch,\n })\n\n const data = {\n ...distinct,\n docs: distinct.values?.map(() => ({})) || [],\n values: undefined,\n }\n\n await Promise.all(\n (distinct.values || []).map(async (distinctValue, i) => {\n const potentiallyPopulatedRelationship = distinctValue[groupByFieldPath]\n\n // Extract value or relationship ID for database query\n const valueOrRelationshipID = extractValueOrRelationshipID(potentiallyPopulatedRelationship)\n\n const groupData = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.queryByGroup?.[valueOrRelationshipID]?.limit\n ? Number(query.queryByGroup[valueOrRelationshipID].limit)\n : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.queryByGroup?.[valueOrRelationshipID]?.page\n ? Number(query.queryByGroup[valueOrRelationshipID].page)\n : undefined,\n req,\n // Note: if we wanted to enable table-by-table sorting, we could use this:\n // sort: query?.queryByGroup?.[valueOrRelationshipID]?.sort,\n select,\n sort: query?.sort,\n trash,\n user,\n where: {\n ...(whereWithMergedSearch || {}),\n [groupByFieldPath]: {\n equals: valueOrRelationshipID,\n },\n },\n })\n\n // Extract heading\n let heading: string\n\n if (potentiallyPopulatedRelationship === null) {\n heading = req.i18n.t('general:noValue')\n } else if (groupByField?.type === 'relationship') {\n const relationshipConfig = Array.isArray(groupByField.relationTo)\n ? undefined\n : clientConfig.collections.find((c) => c.slug === groupByField.relationTo)\n heading = extractRelationshipDisplayValue(\n potentiallyPopulatedRelationship,\n clientConfig,\n relationshipConfig,\n )\n } else if (groupByField?.type === 'date') {\n heading = formatDate({\n date: String(valueOrRelationshipID),\n i18n: req.i18n,\n pattern: clientConfig.admin.dateFormat,\n })\n } else if (groupByField?.type === 'checkbox') {\n if (valueOrRelationshipID === true) {\n heading = req.i18n.t('general:true')\n }\n if (valueOrRelationshipID === false) {\n heading = req.i18n.t('general:false')\n }\n } else if (groupByField?.type === 'select' || groupByField?.type === 'radio') {\n const option = groupByField.options?.find(\n (opt) => (typeof opt === 'string' ? opt : opt.value) === valueOrRelationshipID,\n )\n if (option && typeof option !== 'string') {\n const translated = getTranslation(option.label, req.i18n)\n heading = typeof translated === 'string' ? translated : String(valueOrRelationshipID)\n } else {\n heading = String(valueOrRelationshipID)\n }\n } else {\n heading = String(valueOrRelationshipID)\n }\n\n // Create serializable value for client\n const serializableValue = createSerializableValue(valueOrRelationshipID)\n\n if (groupData.docs && groupData.docs.length > 0) {\n const { columnState: newColumnState, Table: NewTable } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data: groupData,\n drawerSlug,\n enableRowSelections,\n fieldPermissions,\n groupByFieldPath,\n groupByValue: serializableValue,\n heading: heading || req.i18n.t('general:noValue'),\n i18n: req.i18n,\n key: `table-${serializableValue}`,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n })\n\n // Only need to set `columnState` once, using the first table's column state\n // This will avoid needing to generate column state explicitly for root context that wraps all tables\n if (!columnState) {\n columnState = newColumnState\n }\n\n if (!Table) {\n Table = []\n }\n\n dataByGroup[serializableValue] = groupData\n ;(Table as Array<React.ReactNode>)[i] = NewTable\n }\n }),\n )\n\n return {\n columnState,\n data,\n Table,\n }\n}\n"],"mappings":"AAcA,SAASA,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AAEjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,WAAW,QAAQ;AAC5B,SAASC,uBAAuB,QAAQ;AACxC,SAASC,+BAA+B,QAAQ;AAChD,SAASC,4BAA4B,QAAQ;AAE7C,OAAO,MAAMC,aAAA,GAAgB,MAAAA,CAAO;EAClCC,sBAAsB;EACtBC,YAAY;EACZC,gBAAgB;EAChBC,cAAc;EACdC,OAAO;EACPC,eAAe;EACfC,UAAU;EACVC,mBAAmB;EACnBC,gBAAgB;EAChBC,KAAK;EACLC,GAAG;EACHC,MAAM;EACNC,KAAA,GAAQ,KAAK;EACbC,IAAI;EACJC,QAAQ;EACRC,KAAA,EAAOC;AAAqB,CAkB7B;EAKC,IAAIC,KAAA,GAA6C;EACjD,IAAIC,WAAA;EAEJ,MAAMC,WAAA,GAA6C,CAAC;EAEpD;EACA,MAAMC,eAAA,GAAkB3B,gBAAA,CAAiB;IAAE4B,MAAA,EAAQnB,gBAAA,CAAiBmB;EAAO;EAE3E,MAAMC,gBAAA,GAAmBb,KAAA,CAAMc,OAAO,CAACC,OAAO,CAAC,MAAM;EAErD,MAAMC,YAAA,GAAeL,eAAA,CAAgBM,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKN,gBAAA;EAE5D;EACA,IAAIO,QAAA;EAEJ,IAAIJ,YAAA,EAAcK,IAAA,KAAS,kBAAkBL,YAAA,CAAaM,UAAU,EAAE;IACpE,MAAMA,UAAA,GAAaC,KAAA,CAAMC,OAAO,CAACR,YAAA,CAAaM,UAAU,IACpDN,YAAA,CAAaM,UAAU,GACvB,CAACN,YAAA,CAAaM,UAAU,CAAC;IAE7BF,QAAA,GAAW,CAAC;IACZE,UAAA,CAAWG,OAAO,CAAEC,GAAA;MAClB,MAAMC,MAAA,GAASnC,YAAA,CAAaoC,WAAW,CAACX,IAAI,CAAEY,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKJ,GAAA;MAC/DN,QAAQ,CAACM,GAAA,CAAI,GAAG;QAAE,CAACC,MAAA,EAAQI,KAAA,EAAOC,UAAA,IAAc,OAAO;MAAK;IAC9D;EACF;EAEA,MAAMC,QAAA,GAAW,MAAMhC,GAAA,CAAIiC,OAAO,CAACC,YAAY,CAAC;IAC9CC,UAAA,EAAY1C,cAAA;IACZ2C,KAAA,EAAO;IACPC,KAAA,EAAOzB,gBAAA;IACP0B,KAAA,EAAOvC,KAAA,EAAOuC,KAAA,GAAQC,MAAA,CAAOxC,KAAA,CAAMuC,KAAK,IAAIE,SAAA;IAC5CC,MAAA,EAAQzC,GAAA,CAAIyC,MAAM;IAClBC,cAAA,EAAgB;IAChBC,IAAA,EAAM5C,KAAA,EAAO4C,IAAA,GAAOJ,MAAA,CAAOxC,KAAA,CAAM4C,IAAI,IAAIH,SAAA;IACzCrB,QAAA;IACAnB,GAAA;IACA4C,IAAA,EAAM7C,KAAA,EAAOc,OAAA;IACbX,KAAA;IACAG,KAAA,EAAOC;EACT;EAEA,MAAMuC,IAAA,GAAO;IACX,GAAGb,QAAQ;IACXc,IAAA,EAAMd,QAAA,CAASe,MAAM,EAAEC,GAAA,CAAI,OAAO,CAAC,OAAO,EAAE;IAC5CD,MAAA,EAAQP;EACV;EAEA,MAAMS,OAAA,CAAQC,GAAG,CACf,CAAClB,QAAA,CAASe,MAAM,IAAI,EAAE,EAAEC,GAAG,CAAC,OAAOG,aAAA,EAAeC,CAAA;IAChD,MAAMC,gCAAA,GAAmCF,aAAa,CAACvC,gBAAA,CAAiB;IAExE;IACA,MAAM0C,qBAAA,GAAwBlE,4BAAA,CAA6BiE,gCAAA;IAE3D,MAAME,SAAA,GAAY,MAAMvD,GAAA,CAAIiC,OAAO,CAACjB,IAAI,CAAC;MACvCmB,UAAA,EAAY1C,cAAA;MACZ2C,KAAA,EAAO;MACPoB,KAAA,EAAO;MACPC,cAAA,EAAgB;MAChBC,iBAAA,EAAmB;MACnBpB,KAAA,EAAOvC,KAAA,EAAO4D,YAAA,GAAeL,qBAAA,CAAsB,EAAEhB,KAAA,GACjDC,MAAA,CAAOxC,KAAA,CAAM4D,YAAY,CAACL,qBAAA,CAAsB,CAAChB,KAAK,IACtDE,SAAA;MACJC,MAAA,EAAQzC,GAAA,CAAIyC,MAAM;MAClBC,cAAA,EAAgB;MAChBC,IAAA,EAAM5C,KAAA,EAAO4D,YAAA,GAAeL,qBAAA,CAAsB,EAAEX,IAAA,GAChDJ,MAAA,CAAOxC,KAAA,CAAM4D,YAAY,CAACL,qBAAA,CAAsB,CAACX,IAAI,IACrDH,SAAA;MACJxC,GAAA;MACA;MACA;MACAC,MAAA;MACA2C,IAAA,EAAM7C,KAAA,EAAO6C,IAAA;MACb1C,KAAA;MACAC,IAAA;MACAE,KAAA,EAAO;QACL,IAAIC,qBAAA,IAAyB,CAAC,CAAC;QAC/B,CAACM,gBAAA,GAAmB;UAClBgD,MAAA,EAAQN;QACV;MACF;IACF;IAEA;IACA,IAAIO,OAAA;IAEJ,IAAIR,gCAAA,KAAqC,MAAM;MAC7CQ,OAAA,GAAU7D,GAAA,CAAI8D,IAAI,CAACC,CAAC,CAAC;IACvB,OAAO,IAAIhD,YAAA,EAAcK,IAAA,KAAS,gBAAgB;MAChD,MAAM4C,kBAAA,GAAqB1C,KAAA,CAAMC,OAAO,CAACR,YAAA,CAAaM,UAAU,IAC5DmB,SAAA,GACAjD,YAAA,CAAaoC,WAAW,CAACX,IAAI,CAAEY,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKd,YAAA,CAAaM,UAAU;MAC3EwC,OAAA,GAAU1E,+BAAA,CACRkE,gCAAA,EACA9D,YAAA,EACAyE,kBAAA;IAEJ,OAAO,IAAIjD,YAAA,EAAcK,IAAA,KAAS,QAAQ;MACxCyC,OAAA,GAAU7E,UAAA,CAAW;QACnBiF,IAAA,EAAMC,MAAA,CAAOZ,qBAAA;QACbQ,IAAA,EAAM9D,GAAA,CAAI8D,IAAI;QACdK,OAAA,EAAS5E,YAAA,CAAauC,KAAK,CAACsC;MAC9B;IACF,OAAO,IAAIrD,YAAA,EAAcK,IAAA,KAAS,YAAY;MAC5C,IAAIkC,qBAAA,KAA0B,MAAM;QAClCO,OAAA,GAAU7D,GAAA,CAAI8D,IAAI,CAACC,CAAC,CAAC;MACvB;MACA,IAAIT,qBAAA,KAA0B,OAAO;QACnCO,OAAA,GAAU7D,GAAA,CAAI8D,IAAI,CAACC,CAAC,CAAC;MACvB;IACF,OAAO,IAAIhD,YAAA,EAAcK,IAAA,KAAS,YAAYL,YAAA,EAAcK,IAAA,KAAS,SAAS;MAC5E,MAAMiD,MAAA,GAAStD,YAAA,CAAauD,OAAO,EAAEtD,IAAA,CAClCuD,GAAA,IAAQ,CAAC,OAAOA,GAAA,KAAQ,WAAWA,GAAA,GAAMA,GAAA,CAAIC,KAAK,MAAMlB,qBAAA;MAE3D,IAAIe,MAAA,IAAU,OAAOA,MAAA,KAAW,UAAU;QACxC,MAAMI,UAAA,GAAa3F,cAAA,CAAeuF,MAAA,CAAOK,KAAK,EAAE1E,GAAA,CAAI8D,IAAI;QACxDD,OAAA,GAAU,OAAOY,UAAA,KAAe,WAAWA,UAAA,GAAaP,MAAA,CAAOZ,qBAAA;MACjE,OAAO;QACLO,OAAA,GAAUK,MAAA,CAAOZ,qBAAA;MACnB;IACF,OAAO;MACLO,OAAA,GAAUK,MAAA,CAAOZ,qBAAA;IACnB;IAEA;IACA,MAAMqB,iBAAA,GAAoBzF,uBAAA,CAAwBoE,qBAAA;IAElD,IAAIC,SAAA,CAAUT,IAAI,IAAIS,SAAA,CAAUT,IAAI,CAAC8B,MAAM,GAAG,GAAG;MAC/C,MAAM;QAAEpE,WAAA,EAAaqE,cAAc;QAAEtE,KAAA,EAAOuE;MAAQ,CAAE,GAAG7F,WAAA,CAAY;QACnEK,sBAAA;QACAE,gBAAA;QACAE,OAAA;QACAC,eAAA;QACAkD,IAAA,EAAMU,SAAA;QACN3D,UAAA;QACAC,mBAAA;QACAC,gBAAA;QACAc,gBAAA;QACAmE,YAAA,EAAcJ,iBAAA;QACdd,OAAA,EAASA,OAAA,IAAW7D,GAAA,CAAI8D,IAAI,CAACC,CAAC,CAAC;QAC/BD,IAAA,EAAM9D,GAAA,CAAI8D,IAAI;QACdkB,GAAA,EAAK,SAASL,iBAAA,EAAmB;QACjCM,kBAAA,EAAoBzF,gBAAA,CAAiB0F,SAAS,KAAK,OAAO,WAAW1C,SAAA;QACrEP,OAAA,EAASjC,GAAA,CAAIiC,OAAO;QACpBlC,KAAA;QACAgC,UAAA,EAAYvC,gBAAA,CAAiBsC,KAAK,CAACC,UAAU;QAC7C3B;MACF;MAEA;MACA;MACA,IAAI,CAACI,WAAA,EAAa;QAChBA,WAAA,GAAcqE,cAAA;MAChB;MAEA,IAAI,CAACtE,KAAA,EAAO;QACVA,KAAA,GAAQ,EAAE;MACZ;MAEAE,WAAW,CAACkE,iBAAA,CAAkB,GAAGpB,SAAA;MAC/BhD,KAAgC,CAAC6C,CAAA,CAAE,GAAG0B,QAAA;IAC1C;EACF;EAGF,OAAO;IACLtE,WAAA;IACAqC,IAAA;IACAtC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"handleGroupBy.js","names":["getTranslation","flattenAllFields","formatDate","renderTable","createSerializableValue","extractRelationshipDisplayValue","extractValueOrRelationshipID","handleGroupBy","clientCollectionConfig","clientConfig","collectionConfig","collectionSlug","columns","customCellProps","drawerSlug","enableRowSelections","fieldPermissions","hierarchyParentFieldName","query","req","select","thumbnailFieldName","thumbnailPopulate","trash","user","viewType","where","whereWithMergedSearch","Table","columnState","groupedData","flattenedFields","fields","groupByFieldPath","groupBy","replace","groupByField","find","f","name","populate","type","relationTo","Array","isArray","forEach","rel","config","collections","c","slug","admin","useAsTitle","distinct","payload","findDistinct","collection","depth","field","limit","Number","undefined","locale","overrideAccess","page","sort","data","docs","values","map","Promise","all","distinctValue","i","potentiallyPopulatedRelationship","valueOrRelationshipID","groupData","draft","fallbackLocale","includeLockStatus","queryByGroup","equals","heading","i18n","t","relationshipConfig","date","String","pattern","dateFormat","option","options","opt","value","translated","label","serializableValue","length","newColumnState","NewTable","groupByValue","key","orderableFieldName","orderable","filter","Boolean"],"sources":["../../../src/views/List/handleGroupBy.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n Column,\n ListQuery,\n ListViewGroup,\n PaginatedDocs,\n PayloadRequest,\n PopulateType,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n SelectType,\n ViewTypes,\n Where,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { flattenAllFields } from 'payload'\n\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { renderTable } from '../../utilities/renderTable.js'\nimport { createSerializableValue } from './createSerializableValue.js'\nimport { extractRelationshipDisplayValue } from './extractRelationshipDisplayValue.js'\nimport { extractValueOrRelationshipID } from './extractValueOrRelationshipID.js'\n\nexport const handleGroupBy = async ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions,\n hierarchyParentFieldName,\n query,\n req,\n select,\n thumbnailFieldName,\n thumbnailPopulate,\n trash = false,\n user,\n viewType,\n where: whereWithMergedSearch,\n}: {\n clientCollectionConfig: ClientCollectionConfig\n clientConfig: ClientConfig\n collectionConfig: SanitizedCollectionConfig\n collectionSlug: string\n columns: any[]\n customCellProps?: Record<string, any>\n drawerSlug?: string\n enableRowSelections?: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n hierarchyParentFieldName?: string\n query?: ListQuery\n req: PayloadRequest\n select?: SelectType\n thumbnailFieldName?: string\n thumbnailPopulate?: PopulateType\n trash?: boolean\n user: any\n viewType?: ViewTypes\n where: Where\n}): Promise<{\n columnState: Column[]\n data: PaginatedDocs\n groupedData: ListViewGroup[]\n Table: null | React.ReactNode | React.ReactNode[]\n}> => {\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[]\n\n const groupedData: ListViewGroup[] = []\n\n // NOTE: is there a faster/better way to do this?\n const flattenedFields = flattenAllFields({ fields: collectionConfig.fields })\n\n const groupByFieldPath = query.groupBy.replace(/^-/, '')\n\n const groupByField = flattenedFields.find((f) => f.name === groupByFieldPath)\n\n // Set up population for relationships\n let populate\n\n if (groupByField?.type === 'relationship' && groupByField.relationTo) {\n const relationTo = Array.isArray(groupByField.relationTo)\n ? groupByField.relationTo\n : [groupByField.relationTo]\n\n populate = {}\n relationTo.forEach((rel) => {\n const config = clientConfig.collections.find((c) => c.slug === rel)\n populate[rel] = { [config?.admin?.useAsTitle || 'id']: true }\n })\n }\n\n const distinct = await req.payload.findDistinct({\n collection: collectionSlug,\n depth: 1,\n field: groupByFieldPath,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n populate,\n req,\n sort: query?.groupBy,\n trash,\n where: whereWithMergedSearch,\n })\n\n const data = {\n ...distinct,\n docs: distinct.values?.map(() => ({})) || [],\n values: undefined,\n }\n\n await Promise.all(\n (distinct.values || []).map(async (distinctValue, i) => {\n const potentiallyPopulatedRelationship = distinctValue[groupByFieldPath]\n\n // Extract value or relationship ID for database query\n const valueOrRelationshipID = extractValueOrRelationshipID(potentiallyPopulatedRelationship)\n\n const groupData = await req.payload.find({\n collection: collectionSlug,\n depth: thumbnailFieldName ? 1 : 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.queryByGroup?.[valueOrRelationshipID]?.limit\n ? Number(query.queryByGroup[valueOrRelationshipID].limit)\n : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.queryByGroup?.[valueOrRelationshipID]?.page\n ? Number(query.queryByGroup[valueOrRelationshipID].page)\n : undefined,\n populate: thumbnailPopulate,\n req,\n // Note: if we wanted to enable table-by-table sorting, we could use this:\n // sort: query?.queryByGroup?.[valueOrRelationshipID]?.sort,\n select,\n sort: query?.sort,\n trash,\n user,\n where: {\n ...(whereWithMergedSearch || {}),\n [groupByFieldPath]: {\n equals: valueOrRelationshipID,\n },\n },\n })\n\n // Extract heading\n let heading: string\n\n if (potentiallyPopulatedRelationship === null) {\n heading = req.i18n.t('general:noValue')\n } else if (groupByField?.type === 'relationship') {\n const relationshipConfig = Array.isArray(groupByField.relationTo)\n ? undefined\n : clientConfig.collections.find((c) => c.slug === groupByField.relationTo)\n heading = extractRelationshipDisplayValue(\n potentiallyPopulatedRelationship,\n clientConfig,\n relationshipConfig,\n )\n } else if (groupByField?.type === 'date') {\n heading = formatDate({\n date: String(valueOrRelationshipID),\n i18n: req.i18n,\n pattern: clientConfig.admin.dateFormat,\n })\n } else if (groupByField?.type === 'checkbox') {\n if (valueOrRelationshipID === true) {\n heading = req.i18n.t('general:true')\n }\n if (valueOrRelationshipID === false) {\n heading = req.i18n.t('general:false')\n }\n } else if (groupByField?.type === 'select' || groupByField?.type === 'radio') {\n const option = groupByField.options?.find(\n (opt) => (typeof opt === 'string' ? opt : opt.value) === valueOrRelationshipID,\n )\n if (option && typeof option !== 'string') {\n const translated = getTranslation(option.label, req.i18n)\n heading = typeof translated === 'string' ? translated : String(valueOrRelationshipID)\n } else {\n heading = String(valueOrRelationshipID)\n }\n } else {\n heading = String(valueOrRelationshipID)\n }\n\n // Create serializable value for client\n const serializableValue = createSerializableValue(valueOrRelationshipID)\n\n if (groupData.docs && groupData.docs.length > 0) {\n const { columnState: newColumnState, Table: NewTable } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data: groupData,\n drawerSlug,\n enableRowSelections,\n fieldPermissions,\n groupByFieldPath,\n groupByValue: serializableValue,\n heading: heading || req.i18n.t('general:noValue'),\n hierarchyParentFieldName,\n i18n: req.i18n,\n key: `table-${serializableValue}`,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n })\n\n // Only need to set `columnState` once, using the first table's column state\n // This will avoid needing to generate column state explicitly for root context that wraps all tables\n if (!columnState) {\n columnState = newColumnState\n }\n\n if (!Table) {\n Table = []\n }\n\n groupedData[i] = {\n data: groupData,\n heading: heading || req.i18n.t('general:noValue'),\n value: serializableValue,\n }\n ;(Table as Array<React.ReactNode>)[i] = NewTable\n }\n }),\n )\n\n return {\n columnState,\n data,\n groupedData: groupedData.filter(Boolean),\n Table,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAAsC,MAAM,OAAO,CAAA;AA2B1D,OAAO,aAAa,CAAA;AAIpB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBAoZzD"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAIzE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAkC1D,OAAO,aAAa,CAAA;AAIpB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBAoczD"}
@@ -5,6 +5,7 @@ import { getTranslation } from '@payloadcms/translations';
5
5
  import { formatAdminURL, formatFilesize } from 'payload/shared';
6
6
  import React, { useEffect, useRef, useState } from 'react';
7
7
  import { Button } from '../../elements/Button/index.js';
8
+ import { LayoutToggle } from '../../elements/LayoutToggle/index.js';
8
9
  import { ListControls } from '../../elements/ListControls/index.js';
9
10
  import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
10
11
  import { ListWhereBuilder } from '../../elements/ListWhereBuilder/index.js';
@@ -12,7 +13,6 @@ import { useModal } from '../../elements/Modal/index.js';
12
13
  import { NoListResults } from '../../elements/NoListResults/index.js';
13
14
  import { PageControls } from '../../elements/PageControls/index.js';
14
15
  import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
15
- import { SelectMany } from '../../elements/SelectMany/index.js';
16
16
  import { useStepNav } from '../../elements/StepNav/index.js';
17
17
  import { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js';
18
18
  import { TableIdentityProvider } from '../../elements/Table/TableIdentity.js';
@@ -21,13 +21,18 @@ import { useControllableState } from '../../hooks/useControllableState.js';
21
21
  import { useConfig } from '../../providers/Config/index.js';
22
22
  import { DocumentSelectionProvider } from '../../providers/DocumentSelection/index.js';
23
23
  import { useListQuery } from '../../providers/ListQuery/index.js';
24
+ import { usePreferences } from '../../providers/Preferences/index.js';
25
+ import { useRouter } from '../../providers/RouterAdapter/index.js';
24
26
  import { SelectionProvider } from '../../providers/Selection/index.js';
25
27
  import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
26
28
  import { useTranslation } from '../../providers/Translation/index.js';
27
29
  import { useWindowInfo } from '../../providers/WindowInfo/index.js';
28
30
  import { ListSelection } from '../../views/List/ListSelection/index.js';
29
31
  import { DocumentListSelection } from '../HierarchyList/DocumentListSelection/index.js';
32
+ import { getHierarchyListURL } from '../HierarchyList/getHierarchyListURL.js';
30
33
  import { HierarchyTable } from '../HierarchyList/HierarchyTable/index.js';
34
+ import { DocumentGrid } from './DocumentGrid/index.js';
35
+ import { GroupedDocumentGrid } from './GroupedDocumentGrid/index.js';
31
36
  import { CollectionListHeader } from './ListHeader/index.js';
32
37
  import './index.css';
33
38
  const baseClass = 'collection-list';
@@ -40,11 +45,15 @@ export function DefaultListView(props) {
40
45
  BeforeListTable,
41
46
  collectionSlug,
42
47
  columnState,
48
+ currentHierarchyItem,
43
49
  Description,
44
50
  disableBulkDelete,
45
51
  disableBulkEdit,
46
52
  disableQueryPresets,
53
+ documentLayout,
54
+ documentURLs,
47
55
  enableRowSelections,
56
+ groupedData,
48
57
  hasCreatePermission: hasCreatePermissionFromProps,
49
58
  hasDeletePermission,
50
59
  hasTrashPermission,
@@ -60,12 +69,16 @@ export function DefaultListView(props) {
60
69
  viewType
61
70
  } = props;
62
71
  const [Table] = useControllableState(InitialTable);
72
+ const [layout, setLayout] = useState(documentLayout ?? 'table');
63
73
  const {
64
74
  allowCreate,
65
75
  createNewDrawerSlug,
66
- isInDrawer,
67
- onBulkSelect
76
+ isInDrawer
68
77
  } = useListDrawerContext();
78
+ const {
79
+ setPreference
80
+ } = usePreferences();
81
+ const router = useRouter();
69
82
  const hasCreatePermission = allowCreate !== undefined ? allowCreate && hasCreatePermissionFromProps : hasCreatePermissionFromProps;
70
83
  const {
71
84
  config: {
@@ -87,6 +100,8 @@ export function DefaultListView(props) {
87
100
  } = useListQuery();
88
101
  const previousSearch = useRef(resolvedSearch || '');
89
102
  const searchChangeResults = useRef(null);
103
+ const isDataGrouped = groupedData !== undefined;
104
+ const shouldRenderGrid = layout === 'grid' && !isInDrawer;
90
105
  const hasWhereParam = useRef(Boolean(query?.where));
91
106
  const [isWhereOpen, setIsWhereOpen] = useState(hasActiveFilters);
92
107
  useEffect(() => {
@@ -103,6 +118,15 @@ export function DefaultListView(props) {
103
118
  const collectionConfig = getEntityConfig({
104
119
  collectionSlug
105
120
  });
121
+ const handleLayoutChange = async nextLayout => {
122
+ const preferencesKey = `collection-${collectionSlug}`;
123
+ setLayout(nextLayout);
124
+ await setPreference(preferencesKey, preferences => ({
125
+ ...(preferences ?? {}),
126
+ documentLayout: nextLayout
127
+ }));
128
+ router.refresh();
129
+ };
106
130
  const {
107
131
  labels,
108
132
  upload
@@ -137,6 +161,7 @@ export function DefaultListView(props) {
137
161
  return () => clearTimeout(timeout);
138
162
  }, [data, i18n, isSearchSettled, labels.plural, labels.singular, resolvedGroupBy, resolvedSearch, searchInput]);
139
163
  const collectionLabel = getTranslation(labels?.plural, i18n);
164
+ const hierarchyParentFieldName = !isInDrawer && viewType === 'list' && collectionConfig.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy.parentFieldName ?? 'parent' : undefined;
140
165
  const {
141
166
  setStepNav
142
167
  } = useStepNav();
@@ -161,7 +186,10 @@ export function DefaultListView(props) {
161
186
  if (!isInDrawer) {
162
187
  const baseLabel = {
163
188
  label: collectionLabel,
164
- url: hierarchyData || isTrashEnabled && viewType === 'trash' ? formatAdminURL({
189
+ url: hierarchyData ? getHierarchyListURL({
190
+ adminRoute,
191
+ collectionSlug
192
+ }) : isTrashEnabled && viewType === 'trash' ? formatAdminURL({
165
193
  adminRoute,
166
194
  path: `/collections/${collectionSlug}`
167
195
  }) : undefined
@@ -172,14 +200,15 @@ export function DefaultListView(props) {
172
200
  let navItems = isTrashEnabled && viewType === 'trash' ? [baseLabel, trashLabel] : [baseLabel];
173
201
  // Add hierarchy breadcrumbs
174
202
  if (hierarchyData?.breadcrumbs) {
175
- const queryParam = hierarchyData.parentFieldName || 'parent';
176
203
  const hierarchyBreadcrumbs = hierarchyData.breadcrumbs.map((crumb, index) => {
177
204
  const isLast = index === hierarchyData.breadcrumbs.length - 1;
178
205
  return {
179
206
  label: crumb.title,
180
- url: isLast ? undefined : formatAdminURL({
207
+ url: isLast ? undefined : getHierarchyListURL({
181
208
  adminRoute,
182
- path: `/collections/${collectionSlug}?${queryParam}=${crumb.id}`
209
+ collectionSlug,
210
+ parentFieldName: hierarchyData.parentFieldName,
211
+ parentID: crumb.id
183
212
  })
184
213
  };
185
214
  });
@@ -202,6 +231,7 @@ export function DefaultListView(props) {
202
231
  totalDocs: data?.totalDocs,
203
232
  children: [BeforeList, /*#__PURE__*/_jsx(CollectionListHeader, {
204
233
  collectionConfig: collectionConfig,
234
+ currentHierarchyItem: currentHierarchyItem,
205
235
  Description: Description || collectionConfig?.admin?.description ? /*#__PURE__*/_jsx("div", {
206
236
  className: `${baseClass}__sub-header`,
207
237
  children: /*#__PURE__*/_jsx(RenderCustomComponent, {
@@ -214,6 +244,7 @@ export function DefaultListView(props) {
214
244
  }) : undefined,
215
245
  disableBulkDelete: disableBulkDelete,
216
246
  disableBulkEdit: disableBulkEdit,
247
+ enableRowSelections: enableRowSelections,
217
248
  hasCreatePermission: hasCreatePermission,
218
249
  hasDeletePermission: hasDeletePermission,
219
250
  hasTrashPermission: hasTrashPermission,
@@ -223,17 +254,17 @@ export function DefaultListView(props) {
223
254
  smallBreak: smallBreak,
224
255
  viewType: viewType
225
256
  }), /*#__PURE__*/_jsx(ListControls, {
226
- beforeActions: enableRowSelections && typeof onBulkSelect === 'function' ? beforeActions ? [...beforeActions, /*#__PURE__*/_jsx(SelectMany, {
227
- onClick: onBulkSelect
228
- }, "select-many")] : [/*#__PURE__*/_jsx(SelectMany, {
229
- onClick: onBulkSelect
230
- }, "select-many")] : beforeActions,
257
+ beforeActions: beforeActions,
231
258
  collectionConfig: collectionConfig,
232
259
  collectionSlug: collectionSlug,
233
260
  disableQueryPresets: collectionConfig?.enableQueryPresets !== true || disableQueryPresets,
234
261
  hasCreatePermission: hasCreatePermission && viewType !== 'trash' && !isInDrawer,
235
262
  hasDeletePermission: hasDeletePermission,
236
263
  isWhereOpen: isWhereOpen,
264
+ layoutToggle: !hierarchyData && !isInDrawer ? /*#__PURE__*/_jsx(LayoutToggle, {
265
+ layout: layout,
266
+ onChange: handleLayoutChange
267
+ }) : undefined,
237
268
  listMenuItems: listMenuItems,
238
269
  newDocumentURL: newDocumentURL,
239
270
  onWhereToggle: () => setIsWhereOpen(prev => !prev),
@@ -282,7 +313,25 @@ export function DefaultListView(props) {
282
313
  disableBulkDelete: disableBulkDelete,
283
314
  disableBulkEdit: disableBulkEdit
284
315
  })]
285
- }) : docs?.length > 0 ? /*#__PURE__*/_jsx(RelationshipProvider, {
316
+ }) : docs?.length > 0 ? shouldRenderGrid && isDataGrouped ? /*#__PURE__*/_jsx(GroupedDocumentGrid, {
317
+ collectionSlug: collectionSlug,
318
+ documentURLs: documentURLs,
319
+ enableRowSelections: enableRowSelections,
320
+ groups: groupedData,
321
+ hierarchyParentFieldName: hierarchyParentFieldName,
322
+ viewType: viewType
323
+ }) : shouldRenderGrid ? /*#__PURE__*/_jsx(DocumentGrid, {
324
+ adminRoute: adminRoute,
325
+ collectionLabel: collectionLabel,
326
+ collectionSlug: collectionSlug,
327
+ docs: docs,
328
+ documentURLs: documentURLs,
329
+ enableRowSelections: enableRowSelections,
330
+ hierarchyParentFieldName: hierarchyParentFieldName,
331
+ useAsThumbnail: collectionConfig.admin.useAsThumbnail,
332
+ useAsTitle: collectionConfig.admin.useAsTitle,
333
+ viewType: viewType
334
+ }) : /*#__PURE__*/_jsx(RelationshipProvider, {
286
335
  children: Table
287
336
  }) : null, docs?.length === 0 && (NoResults ?? /*#__PURE__*/_jsx(NoListResults, {
288
337
  Actions: hasCreatePermission && newDocumentURL && viewType !== 'trash' ? [isInDrawer ? /*#__PURE__*/_jsx(Button, {
@@ -314,11 +363,7 @@ export function DefaultListView(props) {
314
363
  showSelectAllAcrossPages: !isGroupingBy
315
364
  }), /*#__PURE__*/_jsx("div", {
316
365
  className: `${baseClass}__list-selection-actions`,
317
- children: enableRowSelections && typeof onBulkSelect === 'function' ? beforeActions ? [...beforeActions, /*#__PURE__*/_jsx(SelectMany, {
318
- onClick: onBulkSelect
319
- }, "select-many")] : [/*#__PURE__*/_jsx(SelectMany, {
320
- onClick: onBulkSelect
321
- }, "select-many")] : beforeActions
366
+ children: beforeActions
322
367
  })]
323
368
  }) : null,
324
369
  collectionConfig: collectionConfig,