@payloadcms/ui 3.80.0-internal.cdd7ef7 → 3.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +12 -0
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/FormsManager/index.js +29 -7
  6. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  7. package/dist/elements/Button/index.d.ts.map +1 -1
  8. package/dist/elements/Button/index.js +3 -5
  9. package/dist/elements/Button/index.js.map +1 -1
  10. package/dist/elements/Button/index.scss +5 -38
  11. package/dist/elements/Button/types.d.ts +1 -1
  12. package/dist/elements/Button/types.d.ts.map +1 -1
  13. package/dist/elements/Button/types.js.map +1 -1
  14. package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
  15. package/dist/elements/CheckboxPopup/index.js +1 -0
  16. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  17. package/dist/elements/CheckboxPopup/index.scss +0 -1
  18. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  19. package/dist/elements/DefaultListViewTabs/index.js +54 -28
  20. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  21. package/dist/elements/DocumentControls/index.d.ts +0 -1
  22. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentControls/index.js +10 -6
  24. package/dist/elements/DocumentControls/index.js.map +1 -1
  25. package/dist/elements/DocumentControls/index.scss +1 -1
  26. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentDrawer/index.js +141 -54
  28. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  29. package/dist/elements/DocumentDrawer/types.d.ts +1 -7
  30. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  31. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  32. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  33. package/dist/elements/DrawerActionHeader/index.js +0 -2
  34. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  35. package/dist/elements/DrawerActionHeader/index.scss +2 -2
  36. package/dist/elements/FolderView/Breadcrumbs/index.d.ts +19 -0
  37. package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -0
  38. package/dist/elements/FolderView/Breadcrumbs/index.js +96 -0
  39. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -0
  40. package/dist/elements/FolderView/Breadcrumbs/index.scss +56 -0
  41. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +6 -0
  42. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -0
  43. package/dist/elements/FolderView/BrowseByFolderButton/index.js +40 -0
  44. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -0
  45. package/dist/elements/FolderView/BrowseByFolderButton/index.scss +30 -0
  46. package/dist/elements/FolderView/Cell/index.client.d.ts +13 -0
  47. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -0
  48. package/dist/elements/FolderView/Cell/index.client.js +95 -0
  49. package/dist/elements/FolderView/Cell/index.client.js.map +1 -0
  50. package/dist/elements/FolderView/Cell/index.server.d.ts +4 -0
  51. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -0
  52. package/dist/elements/FolderView/Cell/index.server.js +18 -0
  53. package/dist/elements/FolderView/Cell/index.server.js.map +1 -0
  54. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +3 -0
  55. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +1 -0
  56. package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -0
  57. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -0
  58. package/dist/elements/FolderView/ColoredFolderIcon/index.scss +5 -0
  59. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +7 -0
  60. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -0
  61. package/dist/elements/FolderView/CurrentFolderActions/index.js +162 -0
  62. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -0
  63. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +11 -0
  64. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -0
  65. package/dist/elements/FolderView/DragOverlaySelection/index.js +62 -0
  66. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -0
  67. package/dist/elements/FolderView/DragOverlaySelection/index.scss +35 -0
  68. package/dist/elements/FolderView/DraggableTableRow/index.d.ts +18 -0
  69. package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -0
  70. package/dist/elements/FolderView/DraggableTableRow/index.js +63 -0
  71. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -0
  72. package/dist/elements/FolderView/DraggableTableRow/index.scss +135 -0
  73. package/dist/elements/FolderView/DraggableWithClick/index.d.ts +15 -0
  74. package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -0
  75. package/dist/elements/FolderView/DraggableWithClick/index.js +86 -0
  76. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -0
  77. package/dist/elements/FolderView/DraggableWithClick/index.scss +5 -0
  78. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +7 -0
  79. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
  80. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +39 -0
  81. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
  82. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +37 -0
  83. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -0
  84. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +609 -0
  85. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -0
  86. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +30 -0
  87. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
  88. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
  89. package/dist/elements/FolderView/FilterFolderTypePill/index.js +102 -0
  90. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
  91. package/dist/elements/FolderView/FilterFolderTypePill/index.scss +16 -0
  92. package/dist/elements/FolderView/FolderField/index.scss +12 -0
  93. package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
  94. package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
  95. package/dist/elements/FolderView/FolderField/index.server.js +16 -0
  96. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
  97. package/dist/elements/FolderView/FolderFileCard/index.d.ts +30 -0
  98. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -0
  99. package/dist/elements/FolderView/FolderFileCard/index.js +209 -0
  100. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -0
  101. package/dist/elements/FolderView/FolderFileCard/index.scss +247 -0
  102. package/dist/elements/FolderView/FolderFileTable/index.d.ts +8 -0
  103. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -0
  104. package/dist/elements/FolderView/FolderFileTable/index.js +284 -0
  105. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -0
  106. package/dist/elements/FolderView/FolderFileTable/index.scss +11 -0
  107. package/dist/elements/FolderView/FolderTypeField/index.d.ts +4 -0
  108. package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
  109. package/dist/elements/FolderView/FolderTypeField/index.js +123 -0
  110. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
  111. package/dist/elements/FolderView/ItemCardGrid/index.d.ts +16 -0
  112. package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -0
  113. package/dist/elements/FolderView/ItemCardGrid/index.js +34 -0
  114. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -0
  115. package/dist/elements/FolderView/ItemCardGrid/index.scss +16 -0
  116. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +37 -0
  117. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -0
  118. package/dist/elements/FolderView/MoveDocToFolder/index.js +292 -0
  119. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -0
  120. package/dist/elements/{Hierarchy/DocHeaderButton → FolderView/MoveDocToFolder}/index.scss +1 -7
  121. package/dist/elements/FolderView/SimpleTable/index.d.ts +19 -0
  122. package/dist/elements/FolderView/SimpleTable/index.d.ts.map +1 -0
  123. package/dist/elements/FolderView/SimpleTable/index.js +95 -0
  124. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -0
  125. package/dist/elements/FolderView/SimpleTable/index.scss +59 -0
  126. package/dist/elements/FolderView/SortByPill/index.d.ts +4 -0
  127. package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -0
  128. package/dist/elements/FolderView/SortByPill/index.js +112 -0
  129. package/dist/elements/FolderView/SortByPill/index.js.map +1 -0
  130. package/dist/elements/FolderView/SortByPill/index.scss +16 -0
  131. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +8 -0
  132. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +1 -0
  133. package/dist/elements/FolderView/ToggleViewButtons/index.js +31 -0
  134. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -0
  135. package/dist/elements/FolderView/ToggleViewButtons/index.scss +17 -0
  136. package/dist/elements/Link/index.d.ts +0 -4
  137. package/dist/elements/Link/index.d.ts.map +1 -1
  138. package/dist/elements/Link/index.js +0 -5
  139. package/dist/elements/Link/index.js.map +1 -1
  140. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +15 -0
  141. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -0
  142. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +182 -0
  143. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -0
  144. package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
  145. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  146. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  147. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  148. package/dist/elements/ListHeader/index.js +2 -2
  149. package/dist/elements/ListHeader/index.js.map +1 -1
  150. package/dist/elements/ListSelection/index.scss +1 -2
  151. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  152. package/dist/elements/LivePreview/Window/index.js +9 -7
  153. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  154. package/dist/elements/Locked/index.scss +1 -1
  155. package/dist/elements/RelationshipTable/index.js +3 -3
  156. package/dist/elements/RelationshipTable/index.js.map +1 -1
  157. package/dist/elements/StepNav/index.d.ts.map +1 -1
  158. package/dist/elements/StepNav/index.js +1 -10
  159. package/dist/elements/StepNav/index.js.map +1 -1
  160. package/dist/elements/StepNav/types.d.ts +0 -1
  161. package/dist/elements/StepNav/types.d.ts.map +1 -1
  162. package/dist/elements/StepNav/types.js.map +1 -1
  163. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  164. package/dist/elements/Table/DefaultCell/index.js +0 -20
  165. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  166. package/dist/elements/Tooltip/index.js +1 -1
  167. package/dist/elements/Tooltip/index.js.map +1 -1
  168. package/dist/elements/Tooltip/index.scss +15 -1
  169. package/dist/exports/client/index.d.ts +10 -27
  170. package/dist/exports/client/index.d.ts.map +1 -1
  171. package/dist/exports/client/index.js +24 -26
  172. package/dist/exports/client/index.js.map +4 -4
  173. package/dist/exports/rsc/index.d.ts +3 -3
  174. package/dist/exports/rsc/index.d.ts.map +1 -1
  175. package/dist/exports/rsc/index.js +3 -3
  176. package/dist/exports/rsc/index.js.map +1 -1
  177. package/dist/fields/Join/index.d.ts.map +1 -1
  178. package/dist/fields/Join/index.js +1 -1
  179. package/dist/fields/Join/index.js.map +1 -1
  180. package/dist/fields/shared/index.d.ts +2 -2
  181. package/dist/fields/shared/index.d.ts.map +1 -1
  182. package/dist/fields/shared/index.js.map +1 -1
  183. package/dist/icons/Chevron/index.d.ts.map +1 -1
  184. package/dist/icons/Chevron/index.js +1 -5
  185. package/dist/icons/Chevron/index.js.map +1 -1
  186. package/dist/icons/Document/index.d.ts +1 -3
  187. package/dist/icons/Document/index.d.ts.map +1 -1
  188. package/dist/icons/Document/index.js +2 -4
  189. package/dist/icons/Document/index.js.map +1 -1
  190. package/dist/icons/Document/index.scss +0 -4
  191. package/dist/icons/Folder/index.d.ts +2 -4
  192. package/dist/icons/Folder/index.d.ts.map +1 -1
  193. package/dist/icons/Folder/index.js +2 -4
  194. package/dist/icons/Folder/index.js.map +1 -1
  195. package/dist/icons/Folder/index.scss +0 -8
  196. package/dist/icons/Lock/index.scss +1 -1
  197. package/dist/icons/Plus/index.d.ts.map +1 -1
  198. package/dist/icons/Plus/index.js +1 -2
  199. package/dist/icons/Plus/index.js.map +1 -1
  200. package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
  201. package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
  202. package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
  203. package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
  204. package/dist/providers/Folders/index.d.ts +143 -0
  205. package/dist/providers/Folders/index.d.ts.map +1 -0
  206. package/dist/providers/Folders/index.js +641 -0
  207. package/dist/providers/Folders/index.js.map +1 -0
  208. package/dist/providers/LivePreview/context.d.ts +6 -0
  209. package/dist/providers/LivePreview/context.d.ts.map +1 -1
  210. package/dist/providers/LivePreview/context.js +1 -0
  211. package/dist/providers/LivePreview/context.js.map +1 -1
  212. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  213. package/dist/providers/LivePreview/index.js +13 -1
  214. package/dist/providers/LivePreview/index.js.map +1 -1
  215. package/dist/providers/Root/index.d.ts.map +1 -1
  216. package/dist/providers/Root/index.js +15 -18
  217. package/dist/providers/Root/index.js.map +1 -1
  218. package/dist/providers/ServerFunctions/index.d.ts +6 -1
  219. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  220. package/dist/providers/ServerFunctions/index.js +18 -0
  221. package/dist/providers/ServerFunctions/index.js.map +1 -1
  222. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +1 -2
  223. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  224. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -34
  225. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  226. package/dist/styles.css +1 -1
  227. package/dist/utilities/getFolderResultsComponentAndData.d.ts +25 -0
  228. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
  229. package/dist/utilities/getFolderResultsComponentAndData.js +135 -0
  230. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
  231. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  232. package/dist/utilities/renderTable.d.ts +1 -3
  233. package/dist/utilities/renderTable.d.ts.map +1 -1
  234. package/dist/utilities/renderTable.js +3 -9
  235. package/dist/utilities/renderTable.js.map +1 -1
  236. package/dist/views/BrowseByFolder/index.d.ts +5 -0
  237. package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
  238. package/dist/views/BrowseByFolder/index.js +342 -0
  239. package/dist/views/BrowseByFolder/index.js.map +1 -0
  240. package/dist/views/BrowseByFolder/index.scss +174 -0
  241. package/dist/views/CollectionFolder/ListSelection/index.d.ts +9 -0
  242. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -0
  243. package/dist/views/CollectionFolder/ListSelection/index.js +180 -0
  244. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -0
  245. package/dist/views/CollectionFolder/index.d.ts +5 -0
  246. package/dist/views/CollectionFolder/index.d.ts.map +1 -0
  247. package/dist/views/CollectionFolder/index.js +325 -0
  248. package/dist/views/CollectionFolder/index.js.map +1 -0
  249. package/dist/views/CollectionFolder/index.scss +162 -0
  250. package/dist/views/Edit/index.d.ts +1 -1
  251. package/dist/views/Edit/index.d.ts.map +1 -1
  252. package/dist/views/Edit/index.js +10 -8
  253. package/dist/views/Edit/index.js.map +1 -1
  254. package/dist/views/List/index.d.ts.map +1 -1
  255. package/dist/views/List/index.js +7 -51
  256. package/dist/views/List/index.js.map +1 -1
  257. package/package.json +4 -4
  258. package/dist/elements/CreateDocumentButton/index.d.ts +0 -26
  259. package/dist/elements/CreateDocumentButton/index.d.ts.map +0 -1
  260. package/dist/elements/CreateDocumentButton/index.js +0 -182
  261. package/dist/elements/CreateDocumentButton/index.js.map +0 -1
  262. package/dist/elements/DelayedSpinner/index.d.ts +0 -23
  263. package/dist/elements/DelayedSpinner/index.d.ts.map +0 -1
  264. package/dist/elements/DelayedSpinner/index.js +0 -61
  265. package/dist/elements/DelayedSpinner/index.js.map +0 -1
  266. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts +0 -5
  267. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +0 -1
  268. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +0 -166
  269. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +0 -1
  270. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.scss +0 -63
  271. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts +0 -5
  272. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +0 -1
  273. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +0 -161
  274. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +0 -1
  275. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.scss +0 -105
  276. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +0 -8
  277. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +0 -1
  278. package/dist/elements/Hierarchy/ColumnBrowser/index.js +0 -473
  279. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +0 -1
  280. package/dist/elements/Hierarchy/ColumnBrowser/index.scss +0 -20
  281. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +0 -106
  282. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +0 -1
  283. package/dist/elements/Hierarchy/ColumnBrowser/types.js +0 -2
  284. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +0 -1
  285. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts +0 -11
  286. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +0 -1
  287. package/dist/elements/Hierarchy/DocHeaderButton/index.js +0 -126
  288. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +0 -1
  289. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts +0 -10
  290. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts.map +0 -1
  291. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +0 -34
  292. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +0 -1
  293. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts +0 -15
  294. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
  295. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js +0 -60
  296. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
  297. package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
  298. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
  299. package/dist/elements/Hierarchy/Drawer/index.js +0 -291
  300. package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
  301. package/dist/elements/Hierarchy/Drawer/index.scss +0 -81
  302. package/dist/elements/Hierarchy/Drawer/types.d.ts +0 -68
  303. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
  304. package/dist/elements/Hierarchy/Drawer/types.js +0 -3
  305. package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
  306. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
  307. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
  308. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js +0 -148
  309. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
  310. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +0 -13
  311. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +0 -1
  312. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +0 -185
  313. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +0 -1
  314. package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
  315. package/dist/elements/Hierarchy/Field/index.client.d.ts +0 -8
  316. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +0 -1
  317. package/dist/elements/Hierarchy/Field/index.client.js +0 -186
  318. package/dist/elements/Hierarchy/Field/index.client.js.map +0 -1
  319. package/dist/elements/Hierarchy/Field/index.scss +0 -35
  320. package/dist/elements/Hierarchy/Field/index.server.d.ts +0 -3
  321. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +0 -1
  322. package/dist/elements/Hierarchy/Field/index.server.js +0 -30
  323. package/dist/elements/Hierarchy/Field/index.server.js.map +0 -1
  324. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts +0 -4
  325. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts.map +0 -1
  326. package/dist/elements/Hierarchy/HydrateProvider/index.js +0 -70
  327. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +0 -1
  328. package/dist/elements/Hierarchy/MoveMany/index.d.ts +0 -22
  329. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +0 -1
  330. package/dist/elements/Hierarchy/MoveMany/index.js +0 -278
  331. package/dist/elements/Hierarchy/MoveMany/index.js.map +0 -1
  332. package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
  333. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts +0 -18
  334. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts.map +0 -1
  335. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js +0 -115
  336. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js.map +0 -1
  337. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts +0 -13
  338. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts.map +0 -1
  339. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +0 -88
  340. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +0 -1
  341. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts +0 -17
  342. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts.map +0 -1
  343. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js +0 -85
  344. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +0 -1
  345. package/dist/elements/Hierarchy/Search/index.d.ts +0 -10
  346. package/dist/elements/Hierarchy/Search/index.d.ts.map +0 -1
  347. package/dist/elements/Hierarchy/Search/index.js +0 -144
  348. package/dist/elements/Hierarchy/Search/index.js.map +0 -1
  349. package/dist/elements/Hierarchy/Search/index.scss +0 -212
  350. package/dist/elements/Hierarchy/Search/types.d.ts +0 -21
  351. package/dist/elements/Hierarchy/Search/types.d.ts.map +0 -1
  352. package/dist/elements/Hierarchy/Search/types.js +0 -2
  353. package/dist/elements/Hierarchy/Search/types.js.map +0 -1
  354. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts +0 -20
  355. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +0 -1
  356. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +0 -122
  357. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +0 -1
  358. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +0 -21
  359. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +0 -1
  360. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +0 -162
  361. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +0 -1
  362. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts +0 -7
  363. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +0 -1
  364. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +0 -177
  365. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +0 -1
  366. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
  367. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
  368. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js +0 -36
  369. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js.map +0 -1
  370. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +0 -12
  371. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +0 -1
  372. package/dist/elements/Hierarchy/Tree/LoadMore/index.js +0 -29
  373. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +0 -1
  374. package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
  375. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
  376. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
  377. package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
  378. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
  379. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +0 -28
  380. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +0 -1
  381. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +0 -140
  382. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +0 -1
  383. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +0 -5
  384. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +0 -1
  385. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +0 -225
  386. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +0 -1
  387. package/dist/elements/Hierarchy/Tree/TreeNode/index.scss +0 -110
  388. package/dist/elements/Hierarchy/Tree/index.d.ts +0 -5
  389. package/dist/elements/Hierarchy/Tree/index.d.ts.map +0 -1
  390. package/dist/elements/Hierarchy/Tree/index.js +0 -270
  391. package/dist/elements/Hierarchy/Tree/index.js.map +0 -1
  392. package/dist/elements/Hierarchy/Tree/index.scss +0 -60
  393. package/dist/elements/Hierarchy/Tree/types.d.ts +0 -76
  394. package/dist/elements/Hierarchy/Tree/types.d.ts.map +0 -1
  395. package/dist/elements/Hierarchy/Tree/types.js +0 -2
  396. package/dist/elements/Hierarchy/Tree/types.js.map +0 -1
  397. package/dist/elements/Hierarchy/Tree/useChildren.d.ts +0 -32
  398. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +0 -1
  399. package/dist/elements/Hierarchy/Tree/useChildren.js +0 -229
  400. package/dist/elements/Hierarchy/Tree/useChildren.js.map +0 -1
  401. package/dist/elements/LoadMoreRow/index.d.ts +0 -15
  402. package/dist/elements/LoadMoreRow/index.d.ts.map +0 -1
  403. package/dist/elements/LoadMoreRow/index.js +0 -75
  404. package/dist/elements/LoadMoreRow/index.js.map +0 -1
  405. package/dist/elements/LoadMoreRow/index.scss +0 -42
  406. package/dist/elements/Spinner/index.d.ts +0 -16
  407. package/dist/elements/Spinner/index.d.ts.map +0 -1
  408. package/dist/elements/Spinner/index.js +0 -49
  409. package/dist/elements/Spinner/index.js.map +0 -1
  410. package/dist/elements/Spinner/index.scss +0 -39
  411. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +0 -6
  412. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +0 -1
  413. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +0 -187
  414. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +0 -1
  415. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +0 -29
  416. package/dist/fields/Null/index.d.ts +0 -11
  417. package/dist/fields/Null/index.d.ts.map +0 -1
  418. package/dist/fields/Null/index.js +0 -13
  419. package/dist/fields/Null/index.js.map +0 -1
  420. package/dist/icons/Filter/index.d.ts +0 -4
  421. package/dist/icons/Filter/index.d.ts.map +0 -1
  422. package/dist/icons/Filter/index.js +0 -15
  423. package/dist/icons/Filter/index.js.map +0 -1
  424. package/dist/icons/Filter/index.scss +0 -13
  425. package/dist/icons/TableView/index.d.ts +0 -3
  426. package/dist/icons/TableView/index.d.ts.map +0 -1
  427. package/dist/icons/TableView/index.js +0 -16
  428. package/dist/icons/TableView/index.js.map +0 -1
  429. package/dist/icons/Tag/index.d.ts +0 -8
  430. package/dist/icons/Tag/index.d.ts.map +0 -1
  431. package/dist/icons/Tag/index.js +0 -22
  432. package/dist/icons/Tag/index.js.map +0 -1
  433. package/dist/icons/Tag/index.scss +0 -14
  434. package/dist/providers/DocumentSelection/index.d.ts +0 -8
  435. package/dist/providers/DocumentSelection/index.d.ts.map +0 -1
  436. package/dist/providers/DocumentSelection/index.js +0 -239
  437. package/dist/providers/DocumentSelection/index.js.map +0 -1
  438. package/dist/providers/DocumentSelection/types.d.ts +0 -122
  439. package/dist/providers/DocumentSelection/types.d.ts.map +0 -1
  440. package/dist/providers/DocumentSelection/types.js +0 -5
  441. package/dist/providers/DocumentSelection/types.js.map +0 -1
  442. package/dist/providers/Hierarchy/index.d.ts +0 -5
  443. package/dist/providers/Hierarchy/index.d.ts.map +0 -1
  444. package/dist/providers/Hierarchy/index.js +0 -350
  445. package/dist/providers/Hierarchy/index.js.map +0 -1
  446. package/dist/providers/Hierarchy/types.d.ts +0 -106
  447. package/dist/providers/Hierarchy/types.d.ts.map +0 -1
  448. package/dist/providers/Hierarchy/types.js +0 -2
  449. package/dist/providers/Hierarchy/types.js.map +0 -1
  450. package/dist/providers/SidebarTabs/index.d.ts +0 -19
  451. package/dist/providers/SidebarTabs/index.d.ts.map +0 -1
  452. package/dist/providers/SidebarTabs/index.js +0 -24
  453. package/dist/providers/SidebarTabs/index.js.map +0 -1
  454. package/dist/utilities/isSuperset.d.ts +0 -6
  455. package/dist/utilities/isSuperset.d.ts.map +0 -1
  456. package/dist/utilities/isSuperset.js +0 -10
  457. package/dist/utilities/isSuperset.js.map +0 -1
  458. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +0 -10
  459. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +0 -1
  460. package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -194
  461. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +0 -1
  462. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +0 -21
  463. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +0 -1
  464. package/dist/views/HierarchyList/HierarchyListHeader/index.js +0 -67
  465. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +0 -1
  466. package/dist/views/HierarchyList/HierarchyListHeader/index.scss +0 -9
  467. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +0 -4
  468. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +0 -1
  469. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +0 -104
  470. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +0 -1
  471. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +0 -4
  472. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +0 -1
  473. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +0 -53
  474. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +0 -1
  475. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +0 -4
  476. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +0 -1
  477. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +0 -128
  478. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +0 -1
  479. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +0 -99
  480. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +0 -1
  481. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +0 -118
  482. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +0 -1
  483. package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +0 -214
  484. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +0 -27
  485. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
  486. package/dist/views/HierarchyList/HierarchyTable/index.js +0 -388
  487. package/dist/views/HierarchyList/HierarchyTable/index.js.map +0 -1
  488. package/dist/views/HierarchyList/HierarchyTable/index.scss +0 -148
  489. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -20
  490. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +0 -1
  491. package/dist/views/HierarchyList/HierarchyTable/types.js +0 -2
  492. package/dist/views/HierarchyList/HierarchyTable/types.js.map +0 -1
  493. package/dist/views/HierarchyList/TypeFilter/index.d.ts +0 -15
  494. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +0 -1
  495. package/dist/views/HierarchyList/TypeFilter/index.js +0 -37
  496. package/dist/views/HierarchyList/TypeFilter/index.js.map +0 -1
  497. package/dist/views/HierarchyList/TypeFilter/index.scss +0 -32
  498. package/dist/views/HierarchyList/index.d.ts +0 -5
  499. package/dist/views/HierarchyList/index.d.ts.map +0 -1
  500. package/dist/views/HierarchyList/index.js +0 -305
  501. package/dist/views/HierarchyList/index.js.map +0 -1
  502. package/dist/views/HierarchyList/index.scss +0 -72
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/Hierarchy/ColumnBrowser/types.ts"],"sourcesContent":["import type { Where } from 'payload'\nimport type React from 'react'\n\nexport type ColumnItemData = {\n /** For folders with collectionSpecific config, the allowed collection slugs */\n allowedCollections?: string[]\n hasChildren: boolean\n id: number | string\n title: string\n}\n\nexport type PathSegment = {\n id: number | string\n title: string\n}\n\nexport type ColumnItemProps = {\n disabled?: boolean\n /** Required collections that the folder must allow (for superset check) */\n filterByCollection?: string[]\n hasSelectedDescendants: boolean\n isExpanded: boolean\n isSelected: boolean\n item: ColumnItemData\n onExpand: (params: { id: number | string }) => void\n onSelect: (params: { id: number | string }) => void\n}\n\nexport type ColumnProps = {\n ancestorsWithSelections: Set<number | string>\n /** Whether user can create new documents */\n canCreate: boolean\n /** Label for the collection (e.g., \"Folder\") */\n collectionLabel: string\n disabled?: boolean\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n expandedId: null | number | string\n /** Required collections for superset check (passed to ColumnItem) */\n filterByCollection?: string[]\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n /** Called when user clicks \"New\" button - parent should open drawer with parentId */\n onCreateNew: (params: { parentId: null | number | string }) => void\n onExpand: (params: { id: number | string }) => void\n onLoadMore: () => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentId: null | number | string\n parentTitle?: string\n pathToColumn: PathSegment[]\n selectedIds: Set<number | string>\n totalDocs: number\n}\n\nexport type ColumnState = {\n hasNextPage: boolean\n isLoading: boolean\n items: ColumnItemData[]\n page: number\n parentId: null | number | string\n parentTitle?: string\n totalDocs: number\n}\n\nexport type HierarchyColumnBrowserRef = {\n /** Refetch a specific column by parentId */\n refreshColumn: (parentId: null | number | string) => Promise<void>\n}\n\nexport type HierarchyColumnBrowserProps = {\n ancestorsWithSelections: Set<number | string>\n /** Base filter constraint (e.g., tenant filter) to apply to all queries */\n baseFilter?: null | Where\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n /**\n * Filters hierarchy items based on collection type restrictions:\n * - `undefined`: No filtering, show all folders\n * - `[]` (empty array): No filtering, show all folders (no constraints)\n * - `['posts', ...]`: Show folders accepting ANY of these collections OR unrestricted folders\n *\n * Note: Query uses ANY semantics due to PG hasMany enum limitations.\n * Client-side enforcement can disable selection of folders that don't allow ALL required collections.\n */\n filterByCollection?: string[]\n hierarchyCollectionSlug: string\n initialExpandedPath?: (number | string)[]\n /** Whether the initial expanded path is still being loaded */\n isLoadingPath?: boolean\n /** Called when user clicks \"New\" button to create a new item */\n onCreateNew?: (params: { parentId: null | number | string }) => void\n onSelect: (params: { id: number | string; path: PathSegment[] }) => void\n parentFieldName: string\n selectedIds: Set<number | string>\n useAsTitle?: string\n}\n"],"mappings":"AAsEA","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import './index.scss';
3
- export type HierarchyButtonClientProps = {
4
- fieldName: string;
5
- hasMany?: boolean;
6
- hierarchyCollectionSlug: string;
7
- Icon?: React.ReactNode;
8
- readOnly?: boolean;
9
- };
10
- export declare const HierarchyButtonClient: React.FC<HierarchyButtonClientProps>;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAUxE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+HtE,CAAA"}
@@ -1,126 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
- import { formatAdminURL } from 'payload/shared';
5
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
6
- import { useForm, useFormFields } from '../../../forms/Form/context.js';
7
- import { useConfig } from '../../../providers/Config/index.js';
8
- import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
9
- import { useTranslation } from '../../../providers/Translation/index.js';
10
- import { Button } from '../../Button/index.js';
11
- import { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js';
12
- import './index.scss';
13
- const baseClass = 'hierarchy-button';
14
- export const HierarchyButtonClient = ({
15
- fieldName,
16
- hasMany = false,
17
- hierarchyCollectionSlug,
18
- Icon,
19
- readOnly
20
- }) => {
21
- const {
22
- t
23
- } = useTranslation();
24
- const {
25
- config,
26
- getEntityConfig
27
- } = useConfig();
28
- const {
29
- collectionSlug: documentCollectionSlug
30
- } = useDocumentInfo();
31
- const {
32
- setModified
33
- } = useForm();
34
- const dispatchField = useFormFields(([_, dispatch]) => dispatch);
35
- const currentFieldValue = useFormFields(([fields]) => fields && fields?.[fieldName] || null);
36
- const currentId = currentFieldValue?.value;
37
- const [displayName, setDisplayName] = useState('');
38
- const [isLoading, setIsLoading] = useState(true);
39
- const collectionConfig = getEntityConfig({
40
- collectionSlug: hierarchyCollectionSlug
41
- });
42
- const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name';
43
- const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug;
44
- // When in hierarchy collection, let the drawer use allowedCollections from context
45
- // When in other collections, filter by that collection's slug
46
- // Memoize to prevent new array references on every render
47
- const filterByCollection = useMemo(() => isHierarchyCollection || !documentCollectionSlug ? undefined : [documentCollectionSlug], [isHierarchyCollection, documentCollectionSlug]);
48
- const [HierarchyDrawer,, {
49
- openDrawer
50
- }] = useHierarchyDrawer({
51
- filterByCollection,
52
- hierarchyCollectionSlug,
53
- Icon
54
- });
55
- // Fetch item name when currentId changes
56
- useEffect(() => {
57
- const fetchItemName = async () => {
58
- if (currentId && (typeof currentId === 'string' || typeof currentId === 'number')) {
59
- setIsLoading(true);
60
- try {
61
- const response = await fetch(formatAdminURL({
62
- apiRoute: config.routes.api,
63
- path: `/${hierarchyCollectionSlug}/${currentId}`,
64
- serverURL: config.serverURL
65
- }), {
66
- credentials: 'include'
67
- });
68
- if (response.ok) {
69
- const itemData = await response.json();
70
- const title = itemData?.[useAsTitle] || itemData?.name || itemData?.id;
71
- setDisplayName(String(title));
72
- } else {
73
- setDisplayName(t('general:none'));
74
- }
75
- } catch {
76
- setDisplayName(t('general:none'));
77
- } finally {
78
- setIsLoading(false);
79
- }
80
- } else {
81
- setDisplayName(t('general:none'));
82
- setIsLoading(false);
83
- }
84
- };
85
- void fetchItemName();
86
- }, [currentId, hierarchyCollectionSlug, config.routes.api, config.serverURL, useAsTitle, t]);
87
- const handleDrawerSave = useCallback(({
88
- closeDrawer,
89
- selections
90
- }) => {
91
- const ids = Array.from(selections.keys());
92
- const newValue = hasMany ? ids : ids[0] ?? null;
93
- if (currentFieldValue?.value !== newValue) {
94
- dispatchField({
95
- type: 'UPDATE',
96
- path: fieldName,
97
- value: newValue
98
- });
99
- setModified(true);
100
- }
101
- closeDrawer();
102
- }, [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified]);
103
- const handleClick = useCallback(() => {
104
- if (!readOnly) {
105
- openDrawer();
106
- }
107
- }, [openDrawer, readOnly]);
108
- const label = isLoading ? `${t('general:loading')}...` : displayName;
109
- return /*#__PURE__*/_jsxs(_Fragment, {
110
- children: [/*#__PURE__*/_jsx(Button, {
111
- buttonStyle: "subtle",
112
- className: [baseClass, readOnly && `${baseClass}--read-only`].filter(Boolean).join(' '),
113
- disabled: readOnly,
114
- icon: Icon,
115
- iconPosition: "left",
116
- margin: false,
117
- onClick: handleClick,
118
- children: label
119
- }), /*#__PURE__*/_jsx(HierarchyDrawer, {
120
- hasMany: hasMany,
121
- initialSelections: currentId ? [currentId] : undefined,
122
- onSave: handleDrawerSave
123
- })]
124
- });
125
- };
126
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useEffect","useMemo","useState","useForm","useFormFields","useConfig","useDocumentInfo","useTranslation","Button","useHierarchyDrawer","baseClass","HierarchyButtonClient","fieldName","hasMany","hierarchyCollectionSlug","Icon","readOnly","t","config","getEntityConfig","collectionSlug","documentCollectionSlug","setModified","dispatchField","_","dispatch","currentFieldValue","fields","currentId","value","displayName","setDisplayName","isLoading","setIsLoading","collectionConfig","useAsTitle","admin","isHierarchyCollection","filterByCollection","undefined","HierarchyDrawer","openDrawer","fetchItemName","response","fetch","apiRoute","routes","api","path","serverURL","credentials","ok","itemData","json","title","name","id","String","handleDrawerSave","closeDrawer","selections","ids","Array","from","keys","newValue","type","handleClick","label","_jsxs","_Fragment","_jsx","buttonStyle","className","filter","Boolean","join","disabled","icon","iconPosition","margin","onClick","initialSelections","onSave"],"sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { SelectionWithPath } from '../Drawer/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js'\nimport './index.scss'\n\nconst baseClass = 'hierarchy-button'\n\nexport type HierarchyButtonClientProps = {\n fieldName: string\n hasMany?: boolean\n hierarchyCollectionSlug: string\n Icon?: React.ReactNode\n readOnly?: boolean\n}\n\nexport const HierarchyButtonClient: React.FC<HierarchyButtonClientProps> = ({\n fieldName,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n readOnly,\n}) => {\n const { t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { collectionSlug: documentCollectionSlug } = useDocumentInfo()\n const { setModified } = useForm()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n\n const currentFieldValue = useFormFields(([fields]) => (fields && fields?.[fieldName]) || null)\n const currentId = currentFieldValue?.value as null | number | string\n\n const [displayName, setDisplayName] = useState<string>('')\n const [isLoading, setIsLoading] = useState(true)\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name'\n\n const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug\n\n // When in hierarchy collection, let the drawer use allowedCollections from context\n // When in other collections, filter by that collection's slug\n // Memoize to prevent new array references on every render\n const filterByCollection = useMemo(\n () => (isHierarchyCollection || !documentCollectionSlug ? undefined : [documentCollectionSlug]),\n [isHierarchyCollection, documentCollectionSlug],\n )\n\n const [HierarchyDrawer, , { openDrawer }] = useHierarchyDrawer({\n filterByCollection,\n hierarchyCollectionSlug,\n Icon,\n })\n\n // Fetch item name when currentId changes\n useEffect(() => {\n const fetchItemName = async () => {\n if (currentId && (typeof currentId === 'string' || typeof currentId === 'number')) {\n setIsLoading(true)\n try {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${hierarchyCollectionSlug}/${currentId}`,\n serverURL: config.serverURL,\n }),\n { credentials: 'include' },\n )\n\n if (response.ok) {\n const itemData = await response.json()\n const title = itemData?.[useAsTitle] || itemData?.name || itemData?.id\n\n setDisplayName(String(title))\n } else {\n setDisplayName(t('general:none'))\n }\n } catch {\n setDisplayName(t('general:none'))\n } finally {\n setIsLoading(false)\n }\n } else {\n setDisplayName(t('general:none'))\n setIsLoading(false)\n }\n }\n\n void fetchItemName()\n }, [currentId, hierarchyCollectionSlug, config.routes.api, config.serverURL, useAsTitle, t])\n\n const handleDrawerSave = useCallback(\n ({\n closeDrawer,\n selections,\n }: {\n closeDrawer: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => {\n const ids = Array.from(selections.keys())\n const newValue = hasMany ? ids : (ids[0] ?? null)\n\n if (currentFieldValue?.value !== newValue) {\n dispatchField({\n type: 'UPDATE',\n path: fieldName,\n value: newValue,\n })\n setModified(true)\n }\n closeDrawer()\n },\n [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified],\n )\n\n const handleClick = useCallback(() => {\n if (!readOnly) {\n openDrawer()\n }\n }, [openDrawer, readOnly])\n\n const label = isLoading ? `${t('general:loading')}...` : displayName\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, readOnly && `${baseClass}--read-only`].filter(Boolean).join(' ')}\n disabled={readOnly}\n icon={Icon}\n iconPosition=\"left\"\n margin={false}\n onClick={handleClick}\n >\n {label}\n </Button>\n <HierarchyDrawer\n hasMany={hasMany}\n initialSelections={currentId ? [currentId] : undefined}\n onSave={handleDrawerSave}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import type { Payload } from 'payload';
2
- import React from 'react';
3
- export type HierarchyButtonServerProps = {
4
- fieldName: string;
5
- hasMany?: boolean;
6
- hierarchyCollectionSlug: string;
7
- payload: Payload;
8
- };
9
- export declare const HierarchyButton: React.FC<HierarchyButtonServerProps>;
10
- //# sourceMappingURL=index.server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.server.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAqChE,CAAA"}
@@ -1,34 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { FolderIcon } from '../../../icons/Folder/index.js';
4
- import { RenderServerComponent } from '../../RenderServerComponent/index.js';
5
- // eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary
6
- import { HierarchyButtonClient } from '../../../exports/client/index.js';
7
- export const HierarchyButton = ({
8
- fieldName,
9
- hasMany,
10
- hierarchyCollectionSlug,
11
- payload
12
- }) => {
13
- const hierarchyCollectionConfig = payload.config.collections.find(c => c.slug === hierarchyCollectionSlug);
14
- const hierarchyConfig = hierarchyCollectionConfig?.hierarchy && typeof hierarchyCollectionConfig.hierarchy === 'object' ? hierarchyCollectionConfig.hierarchy : undefined;
15
- const IconComponent = hierarchyConfig?.admin.components.Icon;
16
- // Render the custom icon if provided, otherwise use FolderIcon directly
17
- // Important: Must render the icon here on server to avoid hydration mismatch
18
- // For default FolderIcon path, render directly to avoid import map requirement
19
- const isDefaultFolderIcon = !IconComponent || IconComponent === '@payloadcms/ui#FolderIcon';
20
- const renderedIcon = isDefaultFolderIcon ? /*#__PURE__*/_jsx(FolderIcon, {
21
- color: "muted"
22
- }) : RenderServerComponent({
23
- Component: IconComponent,
24
- importMap: payload.importMap,
25
- key: `hierarchy-button-icon-${hierarchyCollectionSlug}`
26
- });
27
- return /*#__PURE__*/_jsx(HierarchyButtonClient, {
28
- fieldName: fieldName,
29
- hasMany: hasMany,
30
- hierarchyCollectionSlug: hierarchyCollectionSlug,
31
- Icon: renderedIcon
32
- });
33
- };
34
- //# sourceMappingURL=index.server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.server.js","names":["React","FolderIcon","RenderServerComponent","HierarchyButtonClient","HierarchyButton","fieldName","hasMany","hierarchyCollectionSlug","payload","hierarchyCollectionConfig","config","collections","find","c","slug","hierarchyConfig","hierarchy","undefined","IconComponent","admin","components","Icon","isDefaultFolderIcon","renderedIcon","_jsx","color","Component","importMap","key"],"sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.server.tsx"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport React from 'react'\n\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { HierarchyButtonClient } from '../../../exports/client/index.js'\n\nexport type HierarchyButtonServerProps = {\n fieldName: string\n hasMany?: boolean\n hierarchyCollectionSlug: string\n payload: Payload\n}\n\nexport const HierarchyButton: React.FC<HierarchyButtonServerProps> = ({\n fieldName,\n hasMany,\n hierarchyCollectionSlug,\n payload,\n}) => {\n const hierarchyCollectionConfig = payload.config.collections.find(\n (c) => c.slug === hierarchyCollectionSlug,\n )\n const hierarchyConfig =\n hierarchyCollectionConfig?.hierarchy && typeof hierarchyCollectionConfig.hierarchy === 'object'\n ? hierarchyCollectionConfig.hierarchy\n : undefined\n const IconComponent = hierarchyConfig?.admin.components.Icon\n\n // Render the custom icon if provided, otherwise use FolderIcon directly\n // Important: Must render the icon here on server to avoid hydration mismatch\n // For default FolderIcon path, render directly to avoid import map requirement\n const isDefaultFolderIcon = !IconComponent || IconComponent === '@payloadcms/ui#FolderIcon'\n const renderedIcon = isDefaultFolderIcon ? (\n <FolderIcon color=\"muted\" />\n ) : (\n RenderServerComponent({\n Component: IconComponent,\n importMap: payload.importMap,\n key: `hierarchy-button-icon-${hierarchyCollectionSlug}`,\n })\n )\n\n return (\n <HierarchyButtonClient\n fieldName={fieldName}\n hasMany={hasMany}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n Icon={renderedIcon}\n />\n )\n}\n"],"mappings":";AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,qBAAqB,QAAQ;AACtC;AACA,SAASC,qBAAqB,QAAQ;AAStC,OAAO,MAAMC,eAAA,GAAwDA,CAAC;EACpEC,SAAS;EACTC,OAAO;EACPC,uBAAuB;EACvBC;AAAO,CACR;EACC,MAAMC,yBAAA,GAA4BD,OAAA,CAAQE,MAAM,CAACC,WAAW,CAACC,IAAI,CAC9DC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKP,uBAAA;EAEpB,MAAMQ,eAAA,GACJN,yBAAA,EAA2BO,SAAA,IAAa,OAAOP,yBAAA,CAA0BO,SAAS,KAAK,WACnFP,yBAAA,CAA0BO,SAAS,GACnCC,SAAA;EACN,MAAMC,aAAA,GAAgBH,eAAA,EAAiBI,KAAA,CAAMC,UAAA,CAAWC,IAAA;EAExD;EACA;EACA;EACA,MAAMC,mBAAA,GAAsB,CAACJ,aAAA,IAAiBA,aAAA,KAAkB;EAChE,MAAMK,YAAA,GAAeD,mBAAA,gBACnBE,IAAA,CAACvB,UAAA;IAAWwB,KAAA,EAAM;OAElBvB,qBAAA,CAAsB;IACpBwB,SAAA,EAAWR,aAAA;IACXS,SAAA,EAAWnB,OAAA,CAAQmB,SAAS;IAC5BC,GAAA,EAAK,yBAAyBrB,uBAAA;EAChC;EAGF,oBACEiB,IAAA,CAACrB,qBAAA;IACCE,SAAA,EAAWA,SAAA;IACXC,OAAA,EAASA,OAAA;IACTC,uBAAA,EAAyBA,uBAAA;IACzBc,IAAA,EAAME;;AAGZ","ignoreList":[]}
@@ -1,15 +0,0 @@
1
- type FetchAncestorPathArgs = {
2
- api: string;
3
- collectionSlug: string;
4
- itemId: number | string;
5
- parentFieldName: string;
6
- serverURL: string;
7
- };
8
- /**
9
- * Fetches the ancestor path for an item using a single API call with depth.
10
- * Returns array of ancestor IDs from root to item's parent.
11
- * Example: item at level 3 returns [grandparentId, parentId]
12
- */
13
- export declare function fetchAncestorPath({ api, collectionSlug, itemId, parentFieldName, serverURL, }: FetchAncestorPathArgs): Promise<(number | string)[]>;
14
- export {};
15
- //# sourceMappingURL=fetchAncestorPath.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchAncestorPath.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Drawer/fetchAncestorPath.ts"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,GAAG,EACH,cAAc,EACd,MAAM,EACN,eAAe,EACf,SAAS,GACV,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CA+CtD"}
@@ -1,60 +0,0 @@
1
- import { formatAdminURL } from 'payload/shared';
2
- import * as qs from 'qs-esm';
3
- const MAX_HIERARCHY_DEPTH = 20;
4
- /**
5
- * Fetches the ancestor path for an item using a single API call with depth.
6
- * Returns array of ancestor IDs from root to item's parent.
7
- * Example: item at level 3 returns [grandparentId, parentId]
8
- */
9
- export async function fetchAncestorPath({
10
- api,
11
- collectionSlug,
12
- itemId,
13
- parentFieldName,
14
- serverURL
15
- }) {
16
- const queryString = qs.stringify({
17
- depth: MAX_HIERARCHY_DEPTH,
18
- limit: 1,
19
- select: {
20
- [parentFieldName]: true
21
- },
22
- where: {
23
- id: {
24
- equals: itemId
25
- }
26
- }
27
- }, {
28
- addQueryPrefix: true
29
- });
30
- const url = formatAdminURL({
31
- apiRoute: api,
32
- path: `/${collectionSlug}${queryString}`,
33
- serverURL
34
- });
35
- const response = await fetch(url, {
36
- credentials: 'include'
37
- });
38
- if (!response.ok) {
39
- return [];
40
- }
41
- const data = await response.json();
42
- const doc = data.docs?.[0];
43
- if (!doc) {
44
- return [];
45
- }
46
- // Walk the nested parent chain to build path from root to immediate parent
47
- const path = [];
48
- let current = doc[parentFieldName];
49
- while (current !== null && current !== undefined) {
50
- // Parent could be an ID (number/string) or a populated object
51
- const parentId = typeof current === 'object' ? current.id : current;
52
- if (parentId !== null && parentId !== undefined) {
53
- path.unshift(parentId);
54
- }
55
- // Move to next parent (only if current is populated object)
56
- current = typeof current === 'object' ? current[parentFieldName] : null;
57
- }
58
- return path;
59
- }
60
- //# sourceMappingURL=fetchAncestorPath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchAncestorPath.js","names":["formatAdminURL","qs","MAX_HIERARCHY_DEPTH","fetchAncestorPath","api","collectionSlug","itemId","parentFieldName","serverURL","queryString","stringify","depth","limit","select","where","id","equals","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","data","json","doc","docs","current","undefined","parentId","unshift"],"sources":["../../../../src/elements/Hierarchy/Drawer/fetchAncestorPath.ts"],"sourcesContent":["import { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\ntype FetchAncestorPathArgs = {\n api: string\n collectionSlug: string\n itemId: number | string\n parentFieldName: string\n serverURL: string\n}\n\nconst MAX_HIERARCHY_DEPTH = 20\n\n/**\n * Fetches the ancestor path for an item using a single API call with depth.\n * Returns array of ancestor IDs from root to item's parent.\n * Example: item at level 3 returns [grandparentId, parentId]\n */\nexport async function fetchAncestorPath({\n api,\n collectionSlug,\n itemId,\n parentFieldName,\n serverURL,\n}: FetchAncestorPathArgs): Promise<(number | string)[]> {\n const queryString = qs.stringify(\n {\n depth: MAX_HIERARCHY_DEPTH,\n limit: 1,\n select: { [parentFieldName]: true },\n where: { id: { equals: itemId } },\n },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n return []\n }\n\n const data = await response.json()\n const doc = data.docs?.[0]\n\n if (!doc) {\n return []\n }\n\n // Walk the nested parent chain to build path from root to immediate parent\n const path: (number | string)[] = []\n let current = doc[parentFieldName]\n\n while (current !== null && current !== undefined) {\n // Parent could be an ID (number/string) or a populated object\n const parentId = typeof current === 'object' ? current.id : current\n\n if (parentId !== null && parentId !== undefined) {\n path.unshift(parentId)\n }\n\n // Move to next parent (only if current is populated object)\n current = typeof current === 'object' ? current[parentFieldName] : null\n }\n\n return path\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AAUpB,MAAMC,mBAAA,GAAsB;AAE5B;;;;;AAKA,OAAO,eAAeC,kBAAkB;EACtCC,GAAG;EACHC,cAAc;EACdC,MAAM;EACNC,eAAe;EACfC;AAAS,CACa;EACtB,MAAMC,WAAA,GAAcR,EAAA,CAAGS,SAAS,CAC9B;IACEC,KAAA,EAAOT,mBAAA;IACPU,KAAA,EAAO;IACPC,MAAA,EAAQ;MAAE,CAACN,eAAA,GAAkB;IAAK;IAClCO,KAAA,EAAO;MAAEC,EAAA,EAAI;QAAEC,MAAA,EAAQV;MAAO;IAAE;EAClC,GACA;IAAEW,cAAA,EAAgB;EAAK;EAGzB,MAAMC,GAAA,GAAMlB,cAAA,CAAe;IACzBmB,QAAA,EAAUf,GAAA;IACVgB,IAAA,EAAM,IAAIf,cAAA,GAAiBI,WAAA,EAAa;IACxCD;EACF;EAEA,MAAMa,QAAA,GAAW,MAAMC,KAAA,CAAMJ,GAAA,EAAK;IAAEK,WAAA,EAAa;EAAU;EAE3D,IAAI,CAACF,QAAA,CAASG,EAAE,EAAE;IAChB,OAAO,EAAE;EACX;EAEA,MAAMC,IAAA,GAAO,MAAMJ,QAAA,CAASK,IAAI;EAChC,MAAMC,GAAA,GAAMF,IAAA,CAAKG,IAAI,GAAG,EAAE;EAE1B,IAAI,CAACD,GAAA,EAAK;IACR,OAAO,EAAE;EACX;EAEA;EACA,MAAMP,IAAA,GAA4B,EAAE;EACpC,IAAIS,OAAA,GAAUF,GAAG,CAACpB,eAAA,CAAgB;EAElC,OAAOsB,OAAA,KAAY,QAAQA,OAAA,KAAYC,SAAA,EAAW;IAChD;IACA,MAAMC,QAAA,GAAW,OAAOF,OAAA,KAAY,WAAWA,OAAA,CAAQd,EAAE,GAAGc,OAAA;IAE5D,IAAIE,QAAA,KAAa,QAAQA,QAAA,KAAaD,SAAA,EAAW;MAC/CV,IAAA,CAAKY,OAAO,CAACD,QAAA;IACf;IAEA;IACAF,OAAA,GAAU,OAAOA,OAAA,KAAY,WAAWA,OAAO,CAACtB,eAAA,CAAgB,GAAG;EACrE;EAEA,OAAOa,IAAA;AACT","ignoreList":[]}
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
- import type { HierarchyColumnBrowserRef } from '../ColumnBrowser/index.js';
3
- import type { HierarchyDrawerInternalProps } from './types.js';
4
- import './index.scss';
5
- export declare const baseClass = "hierarchy-drawer";
6
- type HierarchyDrawerContentProps = {
7
- columnBrowserRef?: React.RefObject<HierarchyColumnBrowserRef | null>;
8
- onCreateNew?: (params: {
9
- parentId: null | number | string;
10
- }) => void;
11
- } & HierarchyDrawerInternalProps;
12
- export type HierarchyDrawerContentRef = {
13
- selectItem: (id: number | string) => void;
14
- };
15
- export declare const HierarchyDrawerContent: ({ baseFilter, closeDrawer, columnBrowserRef, disabledIds, filterByCollection, hasMany, hierarchyCollectionSlug, Icon, initialSelections, onCreateNew, onMoveToRoot, onSave, parentFieldName, ref, showMoveToRoot, useAsTitle, }: {
16
- ref?: React.RefObject<HierarchyDrawerContentRef | null>;
17
- } & HierarchyDrawerContentProps) => React.JSX.Element;
18
- export declare const HierarchyDrawer: React.FC<HierarchyDrawerInternalProps>;
19
- export {};
20
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Drawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,4BAA4B,EAAqB,MAAM,YAAY,CAAA;AAWjF,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,qBAAqB,CAAA;AAE3C,KAAK,2BAA2B,GAAG;IACjC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;IACpE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACrE,GAAG,4BAA4B,CAAA;AAEhC,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,sBAAsB,oOAiBhC;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;CAAE,GAAG,2BAA2B,sBAwL3F,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA2FlE,CAAA"}
@@ -1,291 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
- import { getTranslation } from '@payloadcms/translations';
5
- import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
6
- import { useEffectEvent } from '../../../hooks/useEffectEvent.js';
7
- import { TagIcon } from '../../../icons/Tag/index.js';
8
- import { useConfig } from '../../../providers/Config/index.js';
9
- import { useTranslation } from '../../../providers/Translation/index.js';
10
- import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
11
- import { Drawer, DrawerDepthProvider } from '../../Drawer/index.js';
12
- import { DrawerActionHeader } from '../../DrawerActionHeader/index.js';
13
- import { HierarchyColumnBrowser } from '../ColumnBrowser/index.js';
14
- import { fetchAncestorPath } from './fetchAncestorPath.js';
15
- import './index.scss';
16
- export const baseClass = 'hierarchy-drawer';
17
- export const HierarchyDrawerContent = function HierarchyDrawerContent({
18
- baseFilter,
19
- closeDrawer,
20
- columnBrowserRef,
21
- disabledIds,
22
- filterByCollection,
23
- hasMany = false,
24
- hierarchyCollectionSlug,
25
- Icon,
26
- initialSelections,
27
- onCreateNew,
28
- onMoveToRoot,
29
- onSave,
30
- parentFieldName,
31
- ref,
32
- showMoveToRoot,
33
- useAsTitle
34
- }) {
35
- const {
36
- i18n,
37
- t
38
- } = useTranslation();
39
- // NOTE: Do NOT use useModal() here - it causes re-renders when any modal state changes
40
- // Use closeDrawer prop instead which already handles closing the modal
41
- const {
42
- config: {
43
- routes: {
44
- api
45
- },
46
- serverURL
47
- },
48
- getEntityConfig
49
- } = useConfig();
50
- const collectionConfig = getEntityConfig({
51
- collectionSlug: hierarchyCollectionSlug
52
- });
53
- const collectionLabel = collectionConfig ? getTranslation(collectionConfig.labels?.plural || hierarchyCollectionSlug, i18n) : hierarchyCollectionSlug;
54
- const parentFieldName_internal = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy.parentFieldName : parentFieldName;
55
- const [initialExpandedPath, setInitialExpandedPath] = useState();
56
- const [isLoadingPath, setIsLoadingPath] = useState(Boolean(initialSelections?.length));
57
- const hasLoadedPathRef = React.useRef(false);
58
- const firstSelection = initialSelections?.[0];
59
- const loadAncestorPath = useEffectEvent(async itemId => {
60
- if (!itemId) {
61
- setIsLoadingPath(false);
62
- return;
63
- }
64
- try {
65
- const path = await fetchAncestorPath({
66
- api,
67
- collectionSlug: hierarchyCollectionSlug,
68
- itemId,
69
- parentFieldName: parentFieldName_internal,
70
- serverURL
71
- });
72
- setInitialExpandedPath(path);
73
- } catch {
74
- // Silently handle fetch errors - will just start at root
75
- } finally {
76
- setIsLoadingPath(false);
77
- }
78
- });
79
- // Load ancestor path on mount
80
- useEffect(() => {
81
- if (hasLoadedPathRef.current) {
82
- return;
83
- }
84
- hasLoadedPathRef.current = true;
85
- void loadAncestorPath(firstSelection);
86
- }, [firstSelection]);
87
- const [selections, setSelections] = useState(() => {
88
- const map = new Map();
89
- if (initialSelections) {
90
- for (const id of initialSelections) {
91
- map.set(id, {
92
- id,
93
- path: []
94
- });
95
- }
96
- }
97
- return map;
98
- });
99
- const selectedIds = useMemo(() => new Set(selections.keys()), [selections]);
100
- // For now, ancestorsWithSelections is empty - will be computed when we have path tracking
101
- const ancestorsWithSelections = useMemo(() => new Set(), []);
102
- const handleCancel = useCallback(() => {
103
- closeDrawer();
104
- }, [closeDrawer]);
105
- const handleSave = useCallback(() => {
106
- onSave({
107
- closeDrawer,
108
- selections
109
- });
110
- }, [onSave, selections, closeDrawer]);
111
- const handleSelect = useCallback(({
112
- id: id_0,
113
- path: path_0
114
- }) => {
115
- setSelections(prev => {
116
- const next = new Map(prev);
117
- if (next.has(id_0)) {
118
- next.delete(id_0);
119
- } else {
120
- if (!hasMany) {
121
- // Single select: clear previous selections
122
- next.clear();
123
- }
124
- next.set(id_0, {
125
- id: id_0,
126
- path: path_0
127
- });
128
- }
129
- return next;
130
- });
131
- }, [hasMany]);
132
- const handleClearAll = useCallback(() => {
133
- setSelections(new Map());
134
- }, []);
135
- // Expose selectItem for programmatic selection (e.g., after creating a new item)
136
- useImperativeHandle(ref, () => ({
137
- selectItem: id_1 => {
138
- setSelections(prev_0 => {
139
- const next_0 = new Map(prev_0);
140
- if (!hasMany) {
141
- next_0.clear();
142
- }
143
- // Path will be empty for newly created items - could be enhanced later
144
- next_0.set(id_1, {
145
- id: id_1,
146
- path: []
147
- });
148
- return next_0;
149
- });
150
- }
151
- }), [hasMany]);
152
- const selectionCount = selections.size;
153
- return /*#__PURE__*/_jsxs("div", {
154
- className: `${baseClass}__content`,
155
- children: [/*#__PURE__*/_jsx(DrawerActionHeader, {
156
- onCancel: handleCancel,
157
- onSave: handleSave,
158
- saveLabel: t('general:select'),
159
- title: t('general:selectValue', {
160
- label: collectionLabel
161
- })
162
- }), /*#__PURE__*/_jsxs("div", {
163
- className: `${baseClass}__subheader`,
164
- children: [/*#__PURE__*/_jsxs("div", {
165
- className: `${baseClass}__subheader-left`,
166
- children: [Icon || /*#__PURE__*/_jsx(TagIcon, {
167
- color: "muted"
168
- }), /*#__PURE__*/_jsx("h4", {
169
- children: collectionLabel
170
- })]
171
- }), /*#__PURE__*/_jsxs("div", {
172
- className: `${baseClass}__subheader-right`,
173
- children: [showMoveToRoot && onMoveToRoot && /*#__PURE__*/_jsx("button", {
174
- className: `${baseClass}__move-to-root`,
175
- onClick: onMoveToRoot,
176
- type: "button",
177
- children: t('hierarchy:moveToRoot')
178
- }), selectionCount > 0 && /*#__PURE__*/_jsxs(_Fragment, {
179
- children: [/*#__PURE__*/_jsxs("span", {
180
- className: `${baseClass}__selection-info`,
181
- children: [selectionCount, " selected"]
182
- }), /*#__PURE__*/_jsx("span", {
183
- children: "—"
184
- }), /*#__PURE__*/_jsx("button", {
185
- className: `${baseClass}__clear-all`,
186
- onClick: handleClearAll,
187
- type: "button",
188
- children: t('general:clearAll')
189
- })]
190
- })]
191
- })]
192
- }), /*#__PURE__*/_jsx("div", {
193
- className: `${baseClass}__columns`,
194
- children: /*#__PURE__*/_jsx(HierarchyColumnBrowser, {
195
- ancestorsWithSelections: ancestorsWithSelections,
196
- baseFilter: baseFilter,
197
- disabledIds: disabledIds,
198
- filterByCollection: filterByCollection,
199
- hierarchyCollectionSlug: hierarchyCollectionSlug,
200
- initialExpandedPath: initialExpandedPath,
201
- isLoadingPath: isLoadingPath,
202
- onCreateNew: onCreateNew,
203
- onSelect: handleSelect,
204
- parentFieldName: parentFieldName,
205
- ref: columnBrowserRef,
206
- selectedIds: selectedIds,
207
- useAsTitle: useAsTitle
208
- })
209
- })]
210
- });
211
- };
212
- export const HierarchyDrawer = props => {
213
- const {
214
- drawerSlug,
215
- hierarchyCollectionSlug,
216
- parentFieldName
217
- } = props;
218
- // Get parentFieldName from hierarchy config
219
- const {
220
- getEntityConfig
221
- } = useConfig();
222
- const collectionConfig = getEntityConfig({
223
- collectionSlug: hierarchyCollectionSlug
224
- });
225
- const parentFieldName_internal = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy.parentFieldName : parentFieldName;
226
- // Track which parentId is being used for the document drawer - use state to trigger re-render
227
- const [createParentId, setCreateParentId] = useState(null);
228
- // Ref to access column browser's refresh function
229
- const columnBrowserRef = useRef(null);
230
- // Ref to access drawer content's selectItem function
231
- const drawerContentRef = useRef(null);
232
- // Key for DocumentDrawer to force remount when parentId changes
233
- const [documentDrawerKey, setDocumentDrawerKey] = useState(0);
234
- // Stable drawer slug for the document drawer - must not change on remount
235
- const documentDrawerSlug = `${drawerSlug}-create-doc`;
236
- // Document drawer for creating new items - rendered OUTSIDE the Drawer to avoid nested modal issues
237
- const [DocumentDrawer,, {
238
- closeDrawer: closeDocumentDrawer,
239
- openDrawer: openDocumentDrawer
240
- }] = useDocumentDrawer({
241
- collectionSlug: hierarchyCollectionSlug,
242
- drawerSlug: documentDrawerSlug
243
- });
244
- const handleCreateNew = useCallback(({
245
- parentId
246
- }) => {
247
- // Increment key to force DocumentDrawer remount with new initialData
248
- setDocumentDrawerKey(prev => prev + 1);
249
- setCreateParentId(parentId);
250
- // Use setTimeout to ensure state update triggers re-render before opening drawer
251
- setTimeout(() => {
252
- openDocumentDrawer();
253
- }, 0);
254
- }, [openDocumentDrawer]);
255
- // Refresh the column, select the new item, and close the document drawer after creation
256
- const handleDocumentSave = useCallback(({
257
- doc
258
- }) => {
259
- if (columnBrowserRef.current && createParentId !== undefined) {
260
- void columnBrowserRef.current.refreshColumn(createParentId);
261
- }
262
- if (drawerContentRef.current && doc?.id) {
263
- drawerContentRef.current.selectItem(doc.id);
264
- }
265
- closeDocumentDrawer();
266
- }, [closeDocumentDrawer, createParentId]);
267
- // Memoize the content - only depends on stable values
268
- const drawerContent = useMemo(() => /*#__PURE__*/_jsx(HierarchyDrawerContent, {
269
- ...props,
270
- columnBrowserRef: columnBrowserRef,
271
- onCreateNew: handleCreateNew,
272
- ref: drawerContentRef
273
- }), [handleCreateNew, props]);
274
- return /*#__PURE__*/_jsxs(_Fragment, {
275
- children: [/*#__PURE__*/_jsx(Drawer, {
276
- className: baseClass,
277
- gutter: false,
278
- Header: null,
279
- slug: drawerSlug,
280
- children: drawerContent
281
- }), /*#__PURE__*/_jsx(DrawerDepthProvider, {
282
- children: /*#__PURE__*/_jsx(DocumentDrawer, {
283
- initialData: createParentId !== null ? {
284
- [parentFieldName_internal]: createParentId
285
- } : undefined,
286
- onSave: handleDocumentSave
287
- }, documentDrawerKey)
288
- })]
289
- });
290
- };
291
- //# sourceMappingURL=index.js.map