@payloadcms/ui 3.80.0-internal.c396c15 → 3.80.0-internal.cdd7ef7

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 (518) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +0 -12
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/Button/index.d.ts.map +1 -1
  5. package/dist/elements/Button/index.js +5 -3
  6. package/dist/elements/Button/index.js.map +1 -1
  7. package/dist/elements/Button/index.scss +38 -5
  8. package/dist/elements/Button/types.d.ts +1 -1
  9. package/dist/elements/Button/types.d.ts.map +1 -1
  10. package/dist/elements/Button/types.js.map +1 -1
  11. package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
  12. package/dist/elements/CheckboxPopup/index.js +0 -1
  13. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  14. package/dist/elements/CheckboxPopup/index.scss +1 -0
  15. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  16. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +53 -3
  17. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  18. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +541 -0
  19. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -0
  20. package/dist/elements/Combobox/index.d.ts.map +1 -1
  21. package/dist/elements/Combobox/index.js +1 -0
  22. package/dist/elements/Combobox/index.js.map +1 -1
  23. package/dist/elements/CreateDocumentButton/index.d.ts +26 -0
  24. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -0
  25. package/dist/elements/CreateDocumentButton/index.js +182 -0
  26. package/dist/elements/CreateDocumentButton/index.js.map +1 -0
  27. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  28. package/dist/elements/DefaultListViewTabs/index.js +28 -54
  29. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  30. package/dist/elements/DelayedSpinner/index.d.ts +23 -0
  31. package/dist/elements/DelayedSpinner/index.d.ts.map +1 -0
  32. package/dist/elements/DelayedSpinner/index.js +61 -0
  33. package/dist/elements/DelayedSpinner/index.js.map +1 -0
  34. package/dist/elements/DocumentControls/index.d.ts +1 -0
  35. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  36. package/dist/elements/DocumentControls/index.js +6 -10
  37. package/dist/elements/DocumentControls/index.js.map +1 -1
  38. package/dist/elements/DocumentControls/index.scss +1 -1
  39. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  40. package/dist/elements/DocumentDrawer/index.js +54 -141
  41. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  42. package/dist/elements/DocumentDrawer/types.d.ts +7 -1
  43. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  44. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  45. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  46. package/dist/elements/DrawerActionHeader/index.js +2 -0
  47. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  48. package/dist/elements/DrawerActionHeader/index.scss +2 -2
  49. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts +5 -0
  50. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -0
  51. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +166 -0
  52. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -0
  53. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.scss +63 -0
  54. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts +5 -0
  55. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -0
  56. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +161 -0
  57. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -0
  58. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.scss +105 -0
  59. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +8 -0
  60. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -0
  61. package/dist/elements/Hierarchy/ColumnBrowser/index.js +473 -0
  62. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -0
  63. package/dist/elements/Hierarchy/ColumnBrowser/index.scss +20 -0
  64. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +106 -0
  65. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -0
  66. package/dist/elements/Hierarchy/ColumnBrowser/types.js +2 -0
  67. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -0
  68. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts +11 -0
  69. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -0
  70. package/dist/elements/Hierarchy/DocHeaderButton/index.js +126 -0
  71. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -0
  72. package/dist/elements/{FolderView/MoveDocToFolder → Hierarchy/DocHeaderButton}/index.scss +7 -1
  73. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts +10 -0
  74. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts.map +1 -0
  75. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +34 -0
  76. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -0
  77. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts +15 -0
  78. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +1 -0
  79. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js +60 -0
  80. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +1 -0
  81. package/dist/elements/Hierarchy/Drawer/index.d.ts +20 -0
  82. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +1 -0
  83. package/dist/elements/Hierarchy/Drawer/index.js +291 -0
  84. package/dist/elements/Hierarchy/Drawer/index.js.map +1 -0
  85. package/dist/elements/Hierarchy/Drawer/index.scss +81 -0
  86. package/dist/elements/Hierarchy/Drawer/types.d.ts +68 -0
  87. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +1 -0
  88. package/dist/elements/Hierarchy/Drawer/types.js +3 -0
  89. package/dist/elements/Hierarchy/Drawer/types.js.map +1 -0
  90. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +30 -0
  91. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +1 -0
  92. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js +148 -0
  93. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +1 -0
  94. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +13 -0
  95. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -0
  96. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +185 -0
  97. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -0
  98. package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +78 -0
  99. package/dist/elements/Hierarchy/Field/index.client.d.ts +8 -0
  100. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -0
  101. package/dist/elements/Hierarchy/Field/index.client.js +186 -0
  102. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -0
  103. package/dist/elements/Hierarchy/Field/index.scss +35 -0
  104. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -0
  105. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -0
  106. package/dist/elements/Hierarchy/Field/index.server.js +30 -0
  107. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -0
  108. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts +4 -0
  109. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts.map +1 -0
  110. package/dist/elements/Hierarchy/HydrateProvider/index.js +70 -0
  111. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -0
  112. package/dist/elements/Hierarchy/MoveMany/index.d.ts +22 -0
  113. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -0
  114. package/dist/elements/Hierarchy/MoveMany/index.js +278 -0
  115. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -0
  116. package/dist/elements/Hierarchy/MoveMany/index.scss +7 -0
  117. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts +18 -0
  118. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts.map +1 -0
  119. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js +115 -0
  120. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js.map +1 -0
  121. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts +13 -0
  122. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts.map +1 -0
  123. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +88 -0
  124. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -0
  125. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts +17 -0
  126. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts.map +1 -0
  127. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js +85 -0
  128. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -0
  129. package/dist/elements/Hierarchy/Search/index.d.ts +10 -0
  130. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -0
  131. package/dist/elements/Hierarchy/Search/index.js +144 -0
  132. package/dist/elements/Hierarchy/Search/index.js.map +1 -0
  133. package/dist/elements/Hierarchy/Search/index.scss +212 -0
  134. package/dist/elements/Hierarchy/Search/types.d.ts +21 -0
  135. package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -0
  136. package/dist/elements/Hierarchy/Search/types.js +2 -0
  137. package/dist/elements/Hierarchy/Search/types.js.map +1 -0
  138. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts +20 -0
  139. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -0
  140. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +122 -0
  141. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -0
  142. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +21 -0
  143. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -0
  144. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +162 -0
  145. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -0
  146. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts +7 -0
  147. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -0
  148. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +177 -0
  149. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -0
  150. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts +8 -0
  151. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts.map +1 -0
  152. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js +36 -0
  153. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js.map +1 -0
  154. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +12 -0
  155. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -0
  156. package/dist/elements/Hierarchy/Tree/LoadMore/index.js +29 -0
  157. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -0
  158. package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +26 -0
  159. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +7 -0
  160. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +1 -0
  161. package/dist/elements/Hierarchy/Tree/TreeConnector.js +23 -0
  162. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +1 -0
  163. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +28 -0
  164. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -0
  165. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +140 -0
  166. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -0
  167. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +5 -0
  168. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -0
  169. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +225 -0
  170. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -0
  171. package/dist/elements/Hierarchy/Tree/TreeNode/index.scss +110 -0
  172. package/dist/elements/Hierarchy/Tree/index.d.ts +5 -0
  173. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -0
  174. package/dist/elements/Hierarchy/Tree/index.js +270 -0
  175. package/dist/elements/Hierarchy/Tree/index.js.map +1 -0
  176. package/dist/elements/Hierarchy/Tree/index.scss +60 -0
  177. package/dist/elements/Hierarchy/Tree/types.d.ts +76 -0
  178. package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -0
  179. package/dist/elements/Hierarchy/Tree/types.js +2 -0
  180. package/dist/elements/Hierarchy/Tree/types.js.map +1 -0
  181. package/dist/elements/Hierarchy/Tree/useChildren.d.ts +32 -0
  182. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -0
  183. package/dist/elements/Hierarchy/Tree/useChildren.js +229 -0
  184. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -0
  185. package/dist/elements/Link/index.d.ts +4 -0
  186. package/dist/elements/Link/index.d.ts.map +1 -1
  187. package/dist/elements/Link/index.js +5 -0
  188. package/dist/elements/Link/index.js.map +1 -1
  189. package/dist/elements/ListHeader/TitleActions/index.d.ts +0 -1
  190. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  191. package/dist/elements/ListHeader/TitleActions/index.js +0 -1
  192. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  193. package/dist/elements/ListHeader/index.js +2 -2
  194. package/dist/elements/ListHeader/index.js.map +1 -1
  195. package/dist/elements/ListSelection/index.scss +2 -1
  196. package/dist/elements/LoadMoreRow/index.d.ts +15 -0
  197. package/dist/elements/LoadMoreRow/index.d.ts.map +1 -0
  198. package/dist/elements/LoadMoreRow/index.js +75 -0
  199. package/dist/elements/LoadMoreRow/index.js.map +1 -0
  200. package/dist/elements/LoadMoreRow/index.scss +42 -0
  201. package/dist/elements/Locked/index.scss +1 -1
  202. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  203. package/dist/elements/PublishButton/index.js +3 -1
  204. package/dist/elements/PublishButton/index.js.map +1 -1
  205. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  206. package/dist/elements/RelationshipTable/index.js +17 -12
  207. package/dist/elements/RelationshipTable/index.js.map +1 -1
  208. package/dist/elements/Spinner/index.d.ts +16 -0
  209. package/dist/elements/Spinner/index.d.ts.map +1 -0
  210. package/dist/elements/Spinner/index.js +49 -0
  211. package/dist/elements/Spinner/index.js.map +1 -0
  212. package/dist/elements/Spinner/index.scss +39 -0
  213. package/dist/elements/StepNav/index.d.ts.map +1 -1
  214. package/dist/elements/StepNav/index.js +10 -1
  215. package/dist/elements/StepNav/index.js.map +1 -1
  216. package/dist/elements/StepNav/types.d.ts +1 -0
  217. package/dist/elements/StepNav/types.d.ts.map +1 -1
  218. package/dist/elements/StepNav/types.js.map +1 -1
  219. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +6 -0
  220. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -0
  221. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +187 -0
  222. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -0
  223. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +29 -0
  224. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  225. package/dist/elements/Table/DefaultCell/index.js +20 -0
  226. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  227. package/dist/elements/Toasts/fieldErrors.d.ts +4 -0
  228. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  229. package/dist/elements/Toasts/fieldErrors.js +4 -2
  230. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  231. package/dist/elements/Toasts/fieldErrors.spec.js +46 -0
  232. package/dist/elements/Toasts/fieldErrors.spec.js.map +1 -0
  233. package/dist/elements/Tooltip/index.js +1 -1
  234. package/dist/elements/Tooltip/index.js.map +1 -1
  235. package/dist/elements/Tooltip/index.scss +1 -15
  236. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  237. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +8 -6
  238. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  239. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  240. package/dist/elements/WhereBuilder/field-types.js +2 -5
  241. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  242. package/dist/exports/client/{DatePicker-CL2EGBVQ.js → DatePicker-T2DMDMM5.js} +2 -2
  243. package/dist/exports/client/chunk-WDZJLNNB.js +29 -0
  244. package/dist/exports/client/{chunk-SH42NW5R.js.map → chunk-WDZJLNNB.js.map} +4 -4
  245. package/dist/exports/client/index.d.ts +26 -9
  246. package/dist/exports/client/index.d.ts.map +1 -1
  247. package/dist/exports/client/index.js +26 -24
  248. package/dist/exports/client/index.js.map +4 -4
  249. package/dist/exports/rsc/index.d.ts +3 -3
  250. package/dist/exports/rsc/index.d.ts.map +1 -1
  251. package/dist/exports/rsc/index.js +3 -3
  252. package/dist/exports/rsc/index.js.map +1 -1
  253. package/dist/fields/Join/index.d.ts.map +1 -1
  254. package/dist/fields/Join/index.js +1 -1
  255. package/dist/fields/Join/index.js.map +1 -1
  256. package/dist/fields/Null/index.d.ts +11 -0
  257. package/dist/fields/Null/index.d.ts.map +1 -0
  258. package/dist/fields/Null/index.js +13 -0
  259. package/dist/fields/Null/index.js.map +1 -0
  260. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  261. package/dist/forms/Form/mergeServerFormState.js +101 -24
  262. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  263. package/dist/icons/Chevron/index.d.ts.map +1 -1
  264. package/dist/icons/Chevron/index.js +5 -1
  265. package/dist/icons/Chevron/index.js.map +1 -1
  266. package/dist/icons/Document/index.d.ts +3 -1
  267. package/dist/icons/Document/index.d.ts.map +1 -1
  268. package/dist/icons/Document/index.js +4 -2
  269. package/dist/icons/Document/index.js.map +1 -1
  270. package/dist/icons/Document/index.scss +4 -0
  271. package/dist/icons/Filter/index.d.ts +4 -0
  272. package/dist/icons/Filter/index.d.ts.map +1 -0
  273. package/dist/icons/Filter/index.js +15 -0
  274. package/dist/icons/Filter/index.js.map +1 -0
  275. package/dist/icons/Filter/index.scss +13 -0
  276. package/dist/icons/Folder/index.d.ts +4 -2
  277. package/dist/icons/Folder/index.d.ts.map +1 -1
  278. package/dist/icons/Folder/index.js +4 -2
  279. package/dist/icons/Folder/index.js.map +1 -1
  280. package/dist/icons/Folder/index.scss +8 -0
  281. package/dist/icons/Lock/index.scss +1 -1
  282. package/dist/icons/Plus/index.d.ts.map +1 -1
  283. package/dist/icons/Plus/index.js +2 -1
  284. package/dist/icons/Plus/index.js.map +1 -1
  285. package/dist/icons/TableView/index.d.ts +3 -0
  286. package/dist/icons/TableView/index.d.ts.map +1 -0
  287. package/dist/icons/TableView/index.js +16 -0
  288. package/dist/icons/TableView/index.js.map +1 -0
  289. package/dist/icons/Tag/index.d.ts +8 -0
  290. package/dist/icons/Tag/index.d.ts.map +1 -0
  291. package/dist/icons/Tag/index.js +22 -0
  292. package/dist/icons/Tag/index.js.map +1 -0
  293. package/dist/icons/Tag/index.scss +14 -0
  294. package/dist/providers/DocumentSelection/index.d.ts +8 -0
  295. package/dist/providers/DocumentSelection/index.d.ts.map +1 -0
  296. package/dist/providers/DocumentSelection/index.js +239 -0
  297. package/dist/providers/DocumentSelection/index.js.map +1 -0
  298. package/dist/providers/DocumentSelection/types.d.ts +122 -0
  299. package/dist/providers/DocumentSelection/types.d.ts.map +1 -0
  300. package/dist/providers/DocumentSelection/types.js +5 -0
  301. package/dist/providers/DocumentSelection/types.js.map +1 -0
  302. package/dist/providers/Hierarchy/index.d.ts +5 -0
  303. package/dist/providers/Hierarchy/index.d.ts.map +1 -0
  304. package/dist/providers/Hierarchy/index.js +350 -0
  305. package/dist/providers/Hierarchy/index.js.map +1 -0
  306. package/dist/providers/Hierarchy/types.d.ts +106 -0
  307. package/dist/providers/Hierarchy/types.d.ts.map +1 -0
  308. package/dist/providers/Hierarchy/types.js +2 -0
  309. package/dist/providers/Hierarchy/types.js.map +1 -0
  310. package/dist/providers/Root/index.d.ts.map +1 -1
  311. package/dist/providers/Root/index.js +18 -15
  312. package/dist/providers/Root/index.js.map +1 -1
  313. package/dist/providers/ServerFunctions/index.d.ts +1 -6
  314. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  315. package/dist/providers/ServerFunctions/index.js +0 -18
  316. package/dist/providers/ServerFunctions/index.js.map +1 -1
  317. package/dist/providers/SidebarTabs/index.d.ts +19 -0
  318. package/dist/providers/SidebarTabs/index.d.ts.map +1 -0
  319. package/dist/providers/SidebarTabs/index.js +24 -0
  320. package/dist/providers/SidebarTabs/index.js.map +1 -0
  321. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +2 -1
  322. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  323. package/dist/providers/TableColumns/buildColumnState/renderCell.js +34 -1
  324. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  325. package/dist/styles.css +1 -1
  326. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  327. package/dist/utilities/isSuperset.d.ts +6 -0
  328. package/dist/utilities/isSuperset.d.ts.map +1 -0
  329. package/dist/utilities/isSuperset.js +10 -0
  330. package/dist/utilities/isSuperset.js.map +1 -0
  331. package/dist/utilities/renderTable.d.ts +3 -1
  332. package/dist/utilities/renderTable.d.ts.map +1 -1
  333. package/dist/utilities/renderTable.js +9 -3
  334. package/dist/utilities/renderTable.js.map +1 -1
  335. package/dist/views/Edit/index.d.ts +1 -1
  336. package/dist/views/Edit/index.d.ts.map +1 -1
  337. package/dist/views/Edit/index.js +15 -4
  338. package/dist/views/Edit/index.js.map +1 -1
  339. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +10 -0
  340. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -0
  341. package/dist/views/HierarchyList/DocumentListSelection/index.js +194 -0
  342. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -0
  343. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +21 -0
  344. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -0
  345. package/dist/views/HierarchyList/HierarchyListHeader/index.js +67 -0
  346. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -0
  347. package/dist/views/HierarchyList/HierarchyListHeader/index.scss +9 -0
  348. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +4 -0
  349. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -0
  350. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +104 -0
  351. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -0
  352. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +4 -0
  353. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +1 -0
  354. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +53 -0
  355. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -0
  356. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +4 -0
  357. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +1 -0
  358. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +128 -0
  359. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -0
  360. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +99 -0
  361. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -0
  362. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +118 -0
  363. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -0
  364. package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +214 -0
  365. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +27 -0
  366. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -0
  367. package/dist/views/HierarchyList/HierarchyTable/index.js +388 -0
  368. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -0
  369. package/dist/views/HierarchyList/HierarchyTable/index.scss +148 -0
  370. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +20 -0
  371. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -0
  372. package/dist/views/HierarchyList/HierarchyTable/types.js +2 -0
  373. package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -0
  374. package/dist/views/HierarchyList/TypeFilter/index.d.ts +15 -0
  375. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -0
  376. package/dist/views/HierarchyList/TypeFilter/index.js +37 -0
  377. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -0
  378. package/dist/views/HierarchyList/TypeFilter/index.scss +32 -0
  379. package/dist/views/HierarchyList/index.d.ts +5 -0
  380. package/dist/views/HierarchyList/index.d.ts.map +1 -0
  381. package/dist/views/HierarchyList/index.js +305 -0
  382. package/dist/views/HierarchyList/index.js.map +1 -0
  383. package/dist/views/HierarchyList/index.scss +72 -0
  384. package/dist/views/List/index.d.ts.map +1 -1
  385. package/dist/views/List/index.js +51 -7
  386. package/dist/views/List/index.js.map +1 -1
  387. package/package.json +4 -4
  388. package/dist/elements/FolderView/Breadcrumbs/index.d.ts +0 -19
  389. package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +0 -1
  390. package/dist/elements/FolderView/Breadcrumbs/index.js +0 -96
  391. package/dist/elements/FolderView/Breadcrumbs/index.js.map +0 -1
  392. package/dist/elements/FolderView/Breadcrumbs/index.scss +0 -56
  393. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +0 -6
  394. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +0 -1
  395. package/dist/elements/FolderView/BrowseByFolderButton/index.js +0 -40
  396. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +0 -1
  397. package/dist/elements/FolderView/BrowseByFolderButton/index.scss +0 -30
  398. package/dist/elements/FolderView/Cell/index.client.d.ts +0 -13
  399. package/dist/elements/FolderView/Cell/index.client.d.ts.map +0 -1
  400. package/dist/elements/FolderView/Cell/index.client.js +0 -95
  401. package/dist/elements/FolderView/Cell/index.client.js.map +0 -1
  402. package/dist/elements/FolderView/Cell/index.server.d.ts +0 -4
  403. package/dist/elements/FolderView/Cell/index.server.d.ts.map +0 -1
  404. package/dist/elements/FolderView/Cell/index.server.js +0 -18
  405. package/dist/elements/FolderView/Cell/index.server.js.map +0 -1
  406. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +0 -3
  407. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +0 -1
  408. package/dist/elements/FolderView/ColoredFolderIcon/index.js +0 -9
  409. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +0 -1
  410. package/dist/elements/FolderView/ColoredFolderIcon/index.scss +0 -5
  411. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +0 -7
  412. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +0 -1
  413. package/dist/elements/FolderView/CurrentFolderActions/index.js +0 -162
  414. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +0 -1
  415. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +0 -11
  416. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +0 -1
  417. package/dist/elements/FolderView/DragOverlaySelection/index.js +0 -62
  418. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +0 -1
  419. package/dist/elements/FolderView/DragOverlaySelection/index.scss +0 -35
  420. package/dist/elements/FolderView/DraggableTableRow/index.d.ts +0 -18
  421. package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +0 -1
  422. package/dist/elements/FolderView/DraggableTableRow/index.js +0 -63
  423. package/dist/elements/FolderView/DraggableTableRow/index.js.map +0 -1
  424. package/dist/elements/FolderView/DraggableTableRow/index.scss +0 -135
  425. package/dist/elements/FolderView/DraggableWithClick/index.d.ts +0 -15
  426. package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +0 -1
  427. package/dist/elements/FolderView/DraggableWithClick/index.js +0 -86
  428. package/dist/elements/FolderView/DraggableWithClick/index.js.map +0 -1
  429. package/dist/elements/FolderView/DraggableWithClick/index.scss +0 -5
  430. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +0 -7
  431. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +0 -1
  432. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +0 -39
  433. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +0 -1
  434. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +0 -37
  435. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +0 -1
  436. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +0 -609
  437. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +0 -1
  438. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +0 -30
  439. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +0 -4
  440. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +0 -1
  441. package/dist/elements/FolderView/FilterFolderTypePill/index.js +0 -102
  442. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +0 -1
  443. package/dist/elements/FolderView/FilterFolderTypePill/index.scss +0 -16
  444. package/dist/elements/FolderView/FolderField/index.scss +0 -12
  445. package/dist/elements/FolderView/FolderField/index.server.d.ts +0 -4
  446. package/dist/elements/FolderView/FolderField/index.server.d.ts.map +0 -1
  447. package/dist/elements/FolderView/FolderField/index.server.js +0 -16
  448. package/dist/elements/FolderView/FolderField/index.server.js.map +0 -1
  449. package/dist/elements/FolderView/FolderFileCard/index.d.ts +0 -30
  450. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +0 -1
  451. package/dist/elements/FolderView/FolderFileCard/index.js +0 -209
  452. package/dist/elements/FolderView/FolderFileCard/index.js.map +0 -1
  453. package/dist/elements/FolderView/FolderFileCard/index.scss +0 -247
  454. package/dist/elements/FolderView/FolderFileTable/index.d.ts +0 -8
  455. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +0 -1
  456. package/dist/elements/FolderView/FolderFileTable/index.js +0 -284
  457. package/dist/elements/FolderView/FolderFileTable/index.js.map +0 -1
  458. package/dist/elements/FolderView/FolderFileTable/index.scss +0 -11
  459. package/dist/elements/FolderView/FolderTypeField/index.d.ts +0 -4
  460. package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +0 -1
  461. package/dist/elements/FolderView/FolderTypeField/index.js +0 -123
  462. package/dist/elements/FolderView/FolderTypeField/index.js.map +0 -1
  463. package/dist/elements/FolderView/ItemCardGrid/index.d.ts +0 -16
  464. package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +0 -1
  465. package/dist/elements/FolderView/ItemCardGrid/index.js +0 -34
  466. package/dist/elements/FolderView/ItemCardGrid/index.js.map +0 -1
  467. package/dist/elements/FolderView/ItemCardGrid/index.scss +0 -16
  468. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +0 -37
  469. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +0 -1
  470. package/dist/elements/FolderView/MoveDocToFolder/index.js +0 -292
  471. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +0 -1
  472. package/dist/elements/FolderView/SimpleTable/index.d.ts +0 -19
  473. package/dist/elements/FolderView/SimpleTable/index.d.ts.map +0 -1
  474. package/dist/elements/FolderView/SimpleTable/index.js +0 -95
  475. package/dist/elements/FolderView/SimpleTable/index.js.map +0 -1
  476. package/dist/elements/FolderView/SimpleTable/index.scss +0 -59
  477. package/dist/elements/FolderView/SortByPill/index.d.ts +0 -4
  478. package/dist/elements/FolderView/SortByPill/index.d.ts.map +0 -1
  479. package/dist/elements/FolderView/SortByPill/index.js +0 -112
  480. package/dist/elements/FolderView/SortByPill/index.js.map +0 -1
  481. package/dist/elements/FolderView/SortByPill/index.scss +0 -16
  482. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +0 -8
  483. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +0 -1
  484. package/dist/elements/FolderView/ToggleViewButtons/index.js +0 -31
  485. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +0 -1
  486. package/dist/elements/FolderView/ToggleViewButtons/index.scss +0 -17
  487. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +0 -15
  488. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +0 -1
  489. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +0 -182
  490. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +0 -1
  491. package/dist/exports/client/chunk-SH42NW5R.js +0 -29
  492. package/dist/providers/Folders/groupItemIDsByRelation.d.ts +0 -3
  493. package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +0 -1
  494. package/dist/providers/Folders/groupItemIDsByRelation.js +0 -10
  495. package/dist/providers/Folders/groupItemIDsByRelation.js.map +0 -1
  496. package/dist/providers/Folders/index.d.ts +0 -143
  497. package/dist/providers/Folders/index.d.ts.map +0 -1
  498. package/dist/providers/Folders/index.js +0 -641
  499. package/dist/providers/Folders/index.js.map +0 -1
  500. package/dist/utilities/getFolderResultsComponentAndData.d.ts +0 -25
  501. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +0 -1
  502. package/dist/utilities/getFolderResultsComponentAndData.js +0 -135
  503. package/dist/utilities/getFolderResultsComponentAndData.js.map +0 -1
  504. package/dist/views/BrowseByFolder/index.d.ts +0 -5
  505. package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
  506. package/dist/views/BrowseByFolder/index.js +0 -342
  507. package/dist/views/BrowseByFolder/index.js.map +0 -1
  508. package/dist/views/BrowseByFolder/index.scss +0 -174
  509. package/dist/views/CollectionFolder/ListSelection/index.d.ts +0 -9
  510. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +0 -1
  511. package/dist/views/CollectionFolder/ListSelection/index.js +0 -180
  512. package/dist/views/CollectionFolder/ListSelection/index.js.map +0 -1
  513. package/dist/views/CollectionFolder/index.d.ts +0 -5
  514. package/dist/views/CollectionFolder/index.d.ts.map +0 -1
  515. package/dist/views/CollectionFolder/index.js +0 -325
  516. package/dist/views/CollectionFolder/index.js.map +0 -1
  517. package/dist/views/CollectionFolder/index.scss +0 -162
  518. /package/dist/exports/client/{DatePicker-CL2EGBVQ.js.map → DatePicker-T2DMDMM5.js.map} +0 -0
@@ -0,0 +1,291 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","useEffectEvent","TagIcon","useConfig","useTranslation","useDocumentDrawer","Drawer","DrawerDepthProvider","DrawerActionHeader","HierarchyColumnBrowser","fetchAncestorPath","baseClass","HierarchyDrawerContent","baseFilter","closeDrawer","columnBrowserRef","disabledIds","filterByCollection","hasMany","hierarchyCollectionSlug","Icon","initialSelections","onCreateNew","onMoveToRoot","onSave","parentFieldName","ref","showMoveToRoot","useAsTitle","i18n","t","config","routes","api","serverURL","getEntityConfig","collectionConfig","collectionSlug","collectionLabel","labels","plural","parentFieldName_internal","hierarchy","initialExpandedPath","setInitialExpandedPath","isLoadingPath","setIsLoadingPath","Boolean","length","hasLoadedPathRef","firstSelection","loadAncestorPath","itemId","path","current","selections","setSelections","map","Map","id","set","selectedIds","Set","keys","ancestorsWithSelections","handleCancel","handleSave","handleSelect","prev","next","has","delete","clear","handleClearAll","selectItem","selectionCount","size","_jsxs","className","_jsx","onCancel","saveLabel","title","label","color","onClick","type","_Fragment","onSelect","HierarchyDrawer","props","drawerSlug","createParentId","setCreateParentId","drawerContentRef","documentDrawerKey","setDocumentDrawerKey","documentDrawerSlug","DocumentDrawer","closeDocumentDrawer","openDrawer","openDocumentDrawer","handleCreateNew","parentId","setTimeout","handleDocumentSave","doc","undefined","refreshColumn","drawerContent","gutter","Header","slug","initialData"],"sources":["../../../../src/elements/Hierarchy/Drawer/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type { HierarchyColumnBrowserRef } from '../ColumnBrowser/index.js'\nimport type { HierarchyDrawerInternalProps, SelectionWithPath } from './types.js'\n\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { TagIcon } from '../../../icons/Tag/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Drawer, DrawerDepthProvider } from '../../Drawer/index.js'\nimport { DrawerActionHeader } from '../../DrawerActionHeader/index.js'\nimport { HierarchyColumnBrowser } from '../ColumnBrowser/index.js'\nimport { fetchAncestorPath } from './fetchAncestorPath.js'\nimport './index.scss'\n\nexport const baseClass = 'hierarchy-drawer'\n\ntype HierarchyDrawerContentProps = {\n columnBrowserRef?: React.RefObject<HierarchyColumnBrowserRef | null>\n onCreateNew?: (params: { parentId: null | number | string }) => void\n} & HierarchyDrawerInternalProps\n\nexport type HierarchyDrawerContentRef = {\n selectItem: (id: number | string) => void\n}\n\nexport const HierarchyDrawerContent = function HierarchyDrawerContent({\n baseFilter,\n closeDrawer,\n columnBrowserRef,\n disabledIds,\n filterByCollection,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n initialSelections,\n onCreateNew,\n onMoveToRoot,\n onSave,\n parentFieldName,\n ref,\n showMoveToRoot,\n useAsTitle,\n}: { ref?: React.RefObject<HierarchyDrawerContentRef | null> } & HierarchyDrawerContentProps) {\n const { i18n, t } = useTranslation()\n // NOTE: Do NOT use useModal() here - it causes re-renders when any modal state changes\n // Use closeDrawer prop instead which already handles closing the modal\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const collectionLabel = collectionConfig\n ? getTranslation(collectionConfig.labels?.plural || hierarchyCollectionSlug, i18n)\n : hierarchyCollectionSlug\n\n const parentFieldName_internal =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy.parentFieldName\n : parentFieldName\n\n const [initialExpandedPath, setInitialExpandedPath] = useState<(number | string)[] | undefined>()\n const [isLoadingPath, setIsLoadingPath] = useState(Boolean(initialSelections?.length))\n const hasLoadedPathRef = React.useRef(false)\n const firstSelection = initialSelections?.[0]\n\n const loadAncestorPath = useEffectEvent(async (itemId?: number | string) => {\n if (!itemId) {\n setIsLoadingPath(false)\n return\n }\n\n try {\n const path = await fetchAncestorPath({\n api,\n collectionSlug: hierarchyCollectionSlug,\n itemId,\n parentFieldName: parentFieldName_internal,\n serverURL,\n })\n setInitialExpandedPath(path)\n } catch {\n // Silently handle fetch errors - will just start at root\n } finally {\n setIsLoadingPath(false)\n }\n })\n\n // Load ancestor path on mount\n useEffect(() => {\n if (hasLoadedPathRef.current) {\n return\n }\n hasLoadedPathRef.current = true\n void loadAncestorPath(firstSelection)\n }, [firstSelection])\n\n const [selections, setSelections] = useState<Map<number | string, SelectionWithPath>>(() => {\n const map = new Map<number | string, SelectionWithPath>()\n\n if (initialSelections) {\n for (const id of initialSelections) {\n map.set(id, { id, path: [] })\n }\n }\n\n return map\n })\n\n const selectedIds = useMemo(() => new Set(selections.keys()), [selections])\n\n // For now, ancestorsWithSelections is empty - will be computed when we have path tracking\n const ancestorsWithSelections = useMemo(() => new Set<number | string>(), [])\n\n const handleCancel = useCallback(() => {\n closeDrawer()\n }, [closeDrawer])\n\n const handleSave = useCallback(() => {\n onSave({ closeDrawer, selections })\n }, [onSave, selections, closeDrawer])\n\n const handleSelect = useCallback(\n ({\n id,\n path,\n }: {\n id: number | string\n path: Array<{ id: number | string; title: string }>\n }) => {\n setSelections((prev) => {\n const next = new Map(prev)\n\n if (next.has(id)) {\n next.delete(id)\n } else {\n if (!hasMany) {\n // Single select: clear previous selections\n next.clear()\n }\n next.set(id, { id, path })\n }\n\n return next\n })\n },\n [hasMany],\n )\n\n const handleClearAll = useCallback(() => {\n setSelections(new Map())\n }, [])\n\n // Expose selectItem for programmatic selection (e.g., after creating a new item)\n useImperativeHandle(\n ref,\n () => ({\n selectItem: (id: number | string) => {\n setSelections((prev) => {\n const next = new Map(prev)\n if (!hasMany) {\n next.clear()\n }\n // Path will be empty for newly created items - could be enhanced later\n next.set(id, { id, path: [] })\n return next\n })\n },\n }),\n [hasMany],\n )\n\n const selectionCount = selections.size\n\n return (\n <div className={`${baseClass}__content`}>\n <DrawerActionHeader\n onCancel={handleCancel}\n onSave={handleSave}\n saveLabel={t('general:select')}\n title={t('general:selectValue', { label: collectionLabel })}\n />\n <div className={`${baseClass}__subheader`}>\n <div className={`${baseClass}__subheader-left`}>\n {Icon || <TagIcon color=\"muted\" />}\n <h4>{collectionLabel}</h4>\n </div>\n <div className={`${baseClass}__subheader-right`}>\n {showMoveToRoot && onMoveToRoot && (\n <button className={`${baseClass}__move-to-root`} onClick={onMoveToRoot} type=\"button\">\n {t('hierarchy:moveToRoot')}\n </button>\n )}\n {selectionCount > 0 && (\n <>\n <span className={`${baseClass}__selection-info`}>{selectionCount} selected</span>\n <span>—</span>\n <button className={`${baseClass}__clear-all`} onClick={handleClearAll} type=\"button\">\n {t('general:clearAll')}\n </button>\n </>\n )}\n </div>\n </div>\n <div className={`${baseClass}__columns`}>\n <HierarchyColumnBrowser\n ancestorsWithSelections={ancestorsWithSelections}\n baseFilter={baseFilter}\n disabledIds={disabledIds}\n filterByCollection={filterByCollection}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n initialExpandedPath={initialExpandedPath}\n isLoadingPath={isLoadingPath}\n onCreateNew={onCreateNew}\n onSelect={handleSelect}\n parentFieldName={parentFieldName}\n ref={columnBrowserRef}\n selectedIds={selectedIds}\n useAsTitle={useAsTitle}\n />\n </div>\n </div>\n )\n}\n\nexport const HierarchyDrawer: React.FC<HierarchyDrawerInternalProps> = (props) => {\n const { drawerSlug, hierarchyCollectionSlug, parentFieldName } = props\n\n // Get parentFieldName from hierarchy config\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const parentFieldName_internal =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy.parentFieldName\n : parentFieldName\n\n // Track which parentId is being used for the document drawer - use state to trigger re-render\n const [createParentId, setCreateParentId] = useState<null | number | string>(null)\n\n // Ref to access column browser's refresh function\n const columnBrowserRef = useRef<HierarchyColumnBrowserRef | null>(null)\n\n // Ref to access drawer content's selectItem function\n const drawerContentRef = useRef<HierarchyDrawerContentRef | null>(null)\n\n // Key for DocumentDrawer to force remount when parentId changes\n const [documentDrawerKey, setDocumentDrawerKey] = useState(0)\n\n // Stable drawer slug for the document drawer - must not change on remount\n const documentDrawerSlug = `${drawerSlug}-create-doc`\n\n // Document drawer for creating new items - rendered OUTSIDE the Drawer to avoid nested modal issues\n const [DocumentDrawer, , { closeDrawer: closeDocumentDrawer, openDrawer: openDocumentDrawer }] =\n useDocumentDrawer({\n collectionSlug: hierarchyCollectionSlug,\n drawerSlug: documentDrawerSlug,\n })\n\n const handleCreateNew = useCallback(\n ({ parentId }: { parentId: null | number | string }) => {\n // Increment key to force DocumentDrawer remount with new initialData\n setDocumentDrawerKey((prev) => prev + 1)\n setCreateParentId(parentId)\n // Use setTimeout to ensure state update triggers re-render before opening drawer\n setTimeout(() => {\n openDocumentDrawer()\n }, 0)\n },\n [openDocumentDrawer],\n )\n\n // Refresh the column, select the new item, and close the document drawer after creation\n const handleDocumentSave = useCallback<\n NonNullable<React.ComponentProps<typeof DocumentDrawer>['onSave']>\n >(\n ({ doc }) => {\n if (columnBrowserRef.current && createParentId !== undefined) {\n void columnBrowserRef.current.refreshColumn(createParentId)\n }\n if (drawerContentRef.current && doc?.id) {\n drawerContentRef.current.selectItem(doc.id)\n }\n closeDocumentDrawer()\n },\n [closeDocumentDrawer, createParentId],\n )\n\n // Memoize the content - only depends on stable values\n const drawerContent = useMemo(\n () => (\n <HierarchyDrawerContent\n {...props}\n columnBrowserRef={columnBrowserRef}\n onCreateNew={handleCreateNew}\n ref={drawerContentRef}\n />\n ),\n [handleCreateNew, props],\n )\n\n return (\n <>\n <Drawer className={baseClass} gutter={false} Header={null} slug={drawerSlug}>\n {drawerContent}\n </Drawer>\n <DrawerDepthProvider>\n <DocumentDrawer\n initialData={\n createParentId !== null ? { [parentFieldName_internal]: createParentId } : undefined\n }\n key={documentDrawerKey}\n onSave={handleDocumentSave}\n />\n </DrawerDepthProvider>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ @use '../../../scss/type.scss';
2
+
3
+ .hierarchy-drawer {
4
+ &__content {
5
+ display: flex;
6
+ flex-direction: column;
7
+ height: 100%;
8
+ background: var(--theme-bg);
9
+ }
10
+
11
+ &__subheader {
12
+ display: flex;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+ padding: calc(var(--base) * 0.8) var(--gutter-h);
16
+ border-bottom: 1px solid var(--theme-elevation-100);
17
+ flex-shrink: 0;
18
+ }
19
+
20
+ &__subheader-left {
21
+ display: flex;
22
+ align-items: center;
23
+ gap: calc(var(--base) * 0.5);
24
+ font-weight: 500;
25
+ color: var(--theme-elevation-800);
26
+
27
+ svg {
28
+ width: calc(var(--base) * 0.9);
29
+ height: calc(var(--base) * 0.9);
30
+ }
31
+ }
32
+
33
+ &__subheader-right {
34
+ @extend %small;
35
+ display: flex;
36
+ align-items: center;
37
+ gap: calc(var(--base) * 0.4);
38
+ }
39
+
40
+ &__selection-info {
41
+ color: var(--theme-elevation-500);
42
+ }
43
+
44
+ &__clear-all {
45
+ color: var(--theme-elevation-550);
46
+ text-decoration: underline;
47
+ cursor: pointer;
48
+ background: none;
49
+ border: none;
50
+ padding: 0;
51
+ font-size: inherit;
52
+
53
+ &:hover {
54
+ color: var(--theme-elevation-800);
55
+ }
56
+ }
57
+
58
+ &__move-to-root {
59
+ background: none;
60
+ border: none;
61
+ color: var(--theme-text);
62
+ cursor: pointer;
63
+ font-size: inherit;
64
+ padding: 0;
65
+ text-decoration: underline;
66
+
67
+ &:hover {
68
+ color: var(--theme-elevation-800);
69
+ }
70
+ }
71
+
72
+ &__columns {
73
+ flex: 1;
74
+ overflow: hidden;
75
+ display: flex;
76
+ }
77
+
78
+ &__toggler {
79
+ cursor: pointer;
80
+ }
81
+ }
@@ -0,0 +1,68 @@
1
+ import type { Where } from 'payload';
2
+ import type React from 'react';
3
+ import type { HTMLAttributes } from 'react';
4
+ export type SelectionWithPath = {
5
+ id: number | string;
6
+ path: Array<{
7
+ id: number | string;
8
+ title: string;
9
+ }>;
10
+ };
11
+ export type UseHierarchyDrawerArgs = {
12
+ /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */
13
+ disabledIds?: Set<number | string>;
14
+ /**
15
+ * When provided, filters hierarchy items to only show those that accept these collections.
16
+ * Used with collectionSpecific hierarchy config.
17
+ */
18
+ filterByCollection?: string[];
19
+ hierarchyCollectionSlug: string;
20
+ Icon?: React.ReactNode;
21
+ };
22
+ export type HierarchyDrawerProps = {
23
+ readonly hasMany?: boolean;
24
+ readonly initialSelections?: (number | string)[];
25
+ readonly onMoveToRoot?: () => void;
26
+ readonly onSave: (params: {
27
+ closeDrawer: () => void;
28
+ selections: Map<number | string, SelectionWithPath>;
29
+ }) => void;
30
+ readonly showMoveToRoot?: boolean;
31
+ };
32
+ export type HierarchyDrawerInternalProps = {
33
+ /** Base filter constraint (e.g., tenant filter) to apply to all queries */
34
+ readonly baseFilter?: null | Where;
35
+ readonly closeDrawer: () => void;
36
+ /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */
37
+ readonly disabledIds?: Set<number | string>;
38
+ readonly drawerSlug: string;
39
+ /**
40
+ * When provided, filters hierarchy items to only show those that accept these collections.
41
+ * Used with collectionSpecific hierarchy config.
42
+ */
43
+ readonly filterByCollection?: string[];
44
+ readonly hierarchyCollectionSlug: string;
45
+ readonly Icon?: React.ReactNode;
46
+ readonly parentFieldName: string;
47
+ readonly useAsTitle?: string;
48
+ } & HierarchyDrawerProps;
49
+ export type HierarchyDrawerTogglerProps = {
50
+ children?: React.ReactNode;
51
+ className?: string;
52
+ disabled?: boolean;
53
+ drawerSlug?: string;
54
+ } & HTMLAttributes<HTMLButtonElement>;
55
+ export type UseHierarchyDrawer = (args: UseHierarchyDrawerArgs) => [
56
+ React.FC<HierarchyDrawerProps>,
57
+ React.FC<Omit<HierarchyDrawerTogglerProps, 'drawerSlug'>>,
58
+ {
59
+ closeDrawer: () => void;
60
+ drawerDepth: number;
61
+ drawerSlug: string;
62
+ isDrawerOpen: boolean;
63
+ openDrawer: () => void;
64
+ toggleDrawer: () => void;
65
+ }
66
+ ];
67
+ export type { ColumnItemData } from '../ColumnBrowser/types.js';
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Drawer/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Re-export column browser types for backwards compatibility
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/Hierarchy/Drawer/types.ts"],"sourcesContent":["import type { Where } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nexport type SelectionWithPath = {\n id: number | string\n path: Array<{ id: number | string; title: string }>\n}\n\nexport type UseHierarchyDrawerArgs = {\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n disabledIds?: Set<number | string>\n /**\n * When provided, filters hierarchy items to only show those that accept these collections.\n * Used with collectionSpecific hierarchy config.\n */\n filterByCollection?: string[]\n hierarchyCollectionSlug: string\n Icon?: React.ReactNode\n}\n\nexport type HierarchyDrawerProps = {\n readonly hasMany?: boolean\n readonly initialSelections?: (number | string)[]\n readonly onMoveToRoot?: () => void\n readonly onSave: (params: {\n closeDrawer: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => void\n readonly showMoveToRoot?: boolean\n}\n\nexport type HierarchyDrawerInternalProps = {\n /** Base filter constraint (e.g., tenant filter) to apply to all queries */\n readonly baseFilter?: null | Where\n readonly closeDrawer: () => void\n /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */\n readonly disabledIds?: Set<number | string>\n readonly drawerSlug: string\n /**\n * When provided, filters hierarchy items to only show those that accept these collections.\n * Used with collectionSpecific hierarchy config.\n */\n readonly filterByCollection?: string[]\n readonly hierarchyCollectionSlug: string\n readonly Icon?: React.ReactNode\n readonly parentFieldName: string\n readonly useAsTitle?: string\n} & HierarchyDrawerProps\n\nexport type HierarchyDrawerTogglerProps = {\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n drawerSlug?: string\n} & HTMLAttributes<HTMLButtonElement>\n\nexport type UseHierarchyDrawer = (args: UseHierarchyDrawerArgs) => [\n React.FC<HierarchyDrawerProps>,\n React.FC<Omit<HierarchyDrawerTogglerProps, 'drawerSlug'>>,\n {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n },\n]\n\n// Re-export column browser types for backwards compatibility\nexport type { ColumnItemData } from '../ColumnBrowser/types.js'\n"],"mappings":"AAsEA;AACA","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import type { HierarchyDrawerTogglerProps, UseHierarchyDrawer } from './types.js';
3
+ export * from './types.js';
4
+ export declare const formatHierarchyDrawerSlug: ({ depth, uuid, }: {
5
+ depth: number;
6
+ uuid: string;
7
+ }) => string;
8
+ export declare const HierarchyDrawerToggler: React.FC<HierarchyDrawerTogglerProps>;
9
+ /**
10
+ * Hook for using a hierarchy drawer for selecting hierarchy items.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * const [HierarchyDrawer, HierarchyDrawerToggler, { closeDrawer, openDrawer }] = useHierarchyDrawer({
15
+ * collectionSlug: 'categories',
16
+ * })
17
+ *
18
+ * return (
19
+ * <>
20
+ * <HierarchyDrawer
21
+ * onSave={(selections) => console.log(selections)}
22
+ * hasMany={true}
23
+ * />
24
+ * <HierarchyDrawerToggler>Select Categories</HierarchyDrawerToggler>
25
+ * </>
26
+ * )
27
+ * ```
28
+ */
29
+ export declare const useHierarchyDrawer: UseHierarchyDrawer;
30
+ //# sourceMappingURL=useHierarchyDrawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHierarchyDrawer.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Drawer/useHierarchyDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8C,MAAM,OAAO,CAAA;AAElE,OAAO,KAAK,EAEV,2BAA2B,EAC3B,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAEnB,cAAc,YAAY,CAAA;AAQ1B,eAAO,MAAM,yBAAyB,qBAGnC;IACD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,MAA6C,CAAA;AAEjD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAmBxE,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAiHhC,CAAA"}