@payloadcms/ui 4.0.0-internal.af6aad0 → 4.0.0-internal.b8a92d2

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 (855) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/colors.css +9 -8
  3. package/dist/css/forms.css +1 -0
  4. package/dist/css/preflight.css +1 -0
  5. package/dist/css/spacing.css +12 -0
  6. package/dist/css/typography.css +158 -14
  7. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  8. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  9. package/dist/elements/APIKeyInput/index.js +27 -29
  10. package/dist/elements/APIKeyInput/index.js.map +1 -1
  11. package/dist/elements/AddNewRelation/index.css +4 -0
  12. package/dist/elements/AddNewRelation/index.js +2 -2
  13. package/dist/elements/AddNewRelation/index.js.map +1 -1
  14. package/dist/elements/AppHeader/EditViewWidthSettings/index.css +5 -0
  15. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts +4 -0
  16. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts.map +1 -0
  17. package/dist/elements/AppHeader/EditViewWidthSettings/index.js +77 -0
  18. package/dist/elements/AppHeader/EditViewWidthSettings/index.js.map +1 -0
  19. package/dist/{icons/CollapseLayers → elements/AppHeader/SettingsMenu}/index.css +1 -1
  20. package/dist/elements/AppHeader/SettingsMenu/index.d.ts +4 -0
  21. package/dist/elements/AppHeader/SettingsMenu/index.d.ts.map +1 -0
  22. package/dist/elements/AppHeader/SettingsMenu/index.js +59 -0
  23. package/dist/elements/AppHeader/SettingsMenu/index.js.map +1 -0
  24. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts +3 -0
  25. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts.map +1 -0
  26. package/dist/elements/AppHeader/TypeSizeSettings/index.js +58 -0
  27. package/dist/elements/AppHeader/TypeSizeSettings/index.js.map +1 -0
  28. package/dist/elements/AppHeader/index.css +3 -4
  29. package/dist/elements/AppHeader/index.d.ts +8 -1
  30. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  31. package/dist/elements/AppHeader/index.js +16 -6
  32. package/dist/elements/AppHeader/index.js.map +1 -1
  33. package/dist/elements/Autosave/index.d.ts.map +1 -1
  34. package/dist/elements/Autosave/index.js +2 -3
  35. package/dist/elements/Autosave/index.js.map +1 -1
  36. package/dist/elements/Banner/index.css +4 -0
  37. package/dist/elements/Banner/index.d.ts.map +1 -1
  38. package/dist/elements/Banner/index.js +1 -0
  39. package/dist/elements/Banner/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  41. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  42. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  43. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
  44. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  45. package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
  46. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  47. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  48. package/dist/elements/BulkUpload/FormsManager/index.js +18 -12
  49. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  50. package/dist/elements/BulkUpload/index.css +2 -0
  51. package/dist/elements/Button/index.css +0 -23
  52. package/dist/elements/Button/types.d.ts +1 -1
  53. package/dist/elements/Button/types.d.ts.map +1 -1
  54. package/dist/elements/Button/types.js.map +1 -1
  55. package/dist/elements/Collapsible/index.css +1 -0
  56. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  57. package/dist/elements/CopyLocaleData/index.js +8 -9
  58. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  59. package/dist/elements/DatePicker/index.css +2 -0
  60. package/dist/elements/DefaultListViewTabs/index.css +0 -1
  61. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  62. package/dist/elements/DefaultListViewTabs/index.js +62 -84
  63. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  64. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  65. package/dist/elements/DeleteMany/index.js +2 -3
  66. package/dist/elements/DeleteMany/index.js.map +1 -1
  67. package/dist/elements/Dialog/index.css +1 -0
  68. package/dist/elements/DocumentControls/index.css +1 -0
  69. package/dist/elements/DocumentDrawer/types.d.ts +1 -1
  70. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  71. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  72. package/dist/elements/DocumentFields/index.css +2 -0
  73. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  74. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  75. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  76. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  77. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  78. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  79. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  80. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  81. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  82. package/dist/elements/DocumentHeader/index.css +1 -0
  83. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  84. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  85. package/dist/elements/DocumentHeader/index.js +4 -2
  86. package/dist/elements/DocumentHeader/index.js.map +1 -1
  87. package/dist/elements/Drawer/types.d.ts +2 -2
  88. package/dist/elements/Drawer/types.d.ts.map +1 -1
  89. package/dist/elements/Drawer/types.js.map +1 -1
  90. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  91. package/dist/elements/DuplicateDocument/index.js +2 -3
  92. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  93. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  94. package/dist/elements/EditMany/DrawerContent.js +2 -3
  95. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  96. package/dist/elements/EditUpload/index.css +1 -1
  97. package/dist/elements/FieldDiffContainer/index.css +1 -0
  98. package/dist/elements/FieldDiffLabel/index.css +1 -0
  99. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  100. package/dist/elements/HTMLDiff/index.css +1 -0
  101. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +4 -22
  102. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  103. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +49 -68
  104. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  105. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +15 -100
  106. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  107. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +137 -97
  108. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  109. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +1 -1
  110. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  111. package/dist/elements/Hierarchy/ColumnBrowser/index.js +23 -51
  112. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  113. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +3 -26
  114. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  115. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  116. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  117. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -6
  118. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  119. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +3 -1
  120. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -1
  121. package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +36 -0
  122. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +13 -0
  123. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -0
  124. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +141 -0
  125. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -0
  126. package/dist/elements/Hierarchy/Field/index.client.d.ts +0 -5
  127. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
  128. package/dist/elements/Hierarchy/Field/index.client.js +95 -120
  129. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  130. package/dist/elements/Hierarchy/Field/index.css +34 -3
  131. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +4 -18
  132. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  133. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +24 -88
  134. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  135. package/dist/elements/Hierarchy/Modal/index.css +53 -4
  136. package/dist/elements/Hierarchy/Modal/index.d.ts +2 -5
  137. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  138. package/dist/elements/Hierarchy/Modal/index.js +99 -136
  139. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  140. package/dist/elements/Hierarchy/Modal/types.d.ts +0 -15
  141. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  142. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  143. package/dist/elements/Hierarchy/MoveMany/index.d.ts +3 -7
  144. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  145. package/dist/elements/Hierarchy/MoveMany/index.js +171 -45
  146. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  147. package/dist/elements/Hierarchy/Search/index.css +9 -2
  148. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  149. package/dist/elements/Hierarchy/Search/index.js +73 -6
  150. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  151. package/dist/elements/Hierarchy/Search/types.d.ts +6 -2
  152. package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -1
  153. package/dist/elements/Hierarchy/Search/types.js.map +1 -1
  154. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  155. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  156. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  157. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +4 -0
  158. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  159. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +186 -101
  160. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  161. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  162. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +21 -1
  163. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  164. package/dist/elements/Hierarchy/Tree/LoadMore/index.css +3 -3
  165. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +29 -59
  166. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +1 -1
  167. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  168. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +10 -54
  169. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  170. package/dist/elements/Hierarchy/Tree/index.css +9 -8
  171. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  172. package/dist/elements/Hierarchy/Tree/index.js +47 -29
  173. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  174. package/dist/elements/Hierarchy/Tree/types.d.ts +1 -9
  175. package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -1
  176. package/dist/elements/Hierarchy/Tree/types.js.map +1 -1
  177. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  178. package/dist/elements/Hierarchy/Tree/useChildren.js +1 -11
  179. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  180. package/dist/elements/ItemsDrawer/index.css +3 -0
  181. package/dist/elements/ListControls/index.css +1 -0
  182. package/dist/elements/ListControls/index.d.ts.map +1 -1
  183. package/dist/elements/ListControls/index.js +7 -2
  184. package/dist/elements/ListControls/index.js.map +1 -1
  185. package/dist/elements/ListControls/types.d.ts +3 -5
  186. package/dist/elements/ListControls/types.d.ts.map +1 -1
  187. package/dist/elements/ListControls/types.js.map +1 -1
  188. package/dist/elements/ListControlsBar/index.css +1 -0
  189. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  190. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  191. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  192. package/dist/elements/LivePreview/Window/index.css +1 -0
  193. package/dist/elements/LivePreview/Window/index.js +1 -1
  194. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  195. package/dist/elements/Localizer/index.js +1 -1
  196. package/dist/elements/Localizer/index.js.map +1 -1
  197. package/dist/elements/Nav/NavSidebarToggle/index.js +1 -1
  198. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  199. package/dist/elements/Nav/NavWrapper/index.d.ts +0 -1
  200. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  201. package/dist/elements/Nav/NavWrapper/index.js +18 -12
  202. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  203. package/dist/elements/Nav/SidebarTabs/index.css +2 -1
  204. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +3 -2
  205. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  206. package/dist/elements/Nav/context.d.ts +1 -0
  207. package/dist/elements/Nav/context.d.ts.map +1 -1
  208. package/dist/elements/Nav/context.js +67 -92
  209. package/dist/elements/Nav/context.js.map +1 -1
  210. package/dist/elements/Nav/index.css +44 -47
  211. package/dist/elements/Nav/index.d.ts +0 -4
  212. package/dist/elements/Nav/index.d.ts.map +1 -1
  213. package/dist/elements/Nav/index.js +1 -16
  214. package/dist/elements/Nav/index.js.map +1 -1
  215. package/dist/elements/NavGroup/index.css +15 -29
  216. package/dist/elements/PageControls/index.css +1 -0
  217. package/dist/elements/PillSelector/index.css +1 -0
  218. package/dist/elements/Popup/PopupButtonList/index.css +16 -32
  219. package/dist/elements/Popup/index.css +0 -6
  220. package/dist/elements/Popup/index.d.ts +0 -10
  221. package/dist/elements/Popup/index.d.ts.map +1 -1
  222. package/dist/elements/Popup/index.js +5 -12
  223. package/dist/elements/Popup/index.js.map +1 -1
  224. package/dist/elements/PreviewSizes/index.css +2 -0
  225. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  226. package/dist/elements/PublishButton/ScheduleDrawer/index.js +8 -30
  227. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  228. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  229. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  230. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  231. package/dist/elements/PublishButton/index.css +1 -0
  232. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  233. package/dist/elements/PublishButton/index.js +16 -31
  234. package/dist/elements/PublishButton/index.js.map +1 -1
  235. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  236. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  237. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  238. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  239. package/dist/elements/QueryPresets/QueryPresetBar/index.js +14 -1
  240. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  241. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  242. package/dist/elements/ReactSelect/types.d.ts +0 -5
  243. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  244. package/dist/elements/ReactSelect/types.js.map +1 -1
  245. package/dist/elements/RenderTitle/index.css +1 -0
  246. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  247. package/dist/elements/RestoreMany/index.js +2 -3
  248. package/dist/elements/RestoreMany/index.js.map +1 -1
  249. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  250. package/dist/elements/SaveDraftButton/index.js +2 -3
  251. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  252. package/dist/elements/SelectAll/index.d.ts.map +1 -1
  253. package/dist/elements/SelectAll/index.js +2 -1
  254. package/dist/elements/SelectAll/index.js.map +1 -1
  255. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  256. package/dist/elements/SelectRow/index.js +2 -1
  257. package/dist/elements/SelectRow/index.js.map +1 -1
  258. package/dist/elements/SidebarRow/index.css +5 -1
  259. package/dist/elements/SidebarToggle/index.css +1 -3
  260. package/dist/elements/Status/index.d.ts.map +1 -1
  261. package/dist/elements/Status/index.js +2 -3
  262. package/dist/elements/Status/index.js.map +1 -1
  263. package/dist/elements/StepNav/index.d.ts.map +1 -1
  264. package/dist/elements/StepNav/index.js +10 -14
  265. package/dist/elements/StepNav/index.js.map +1 -1
  266. package/dist/elements/StepNav/types.d.ts +0 -6
  267. package/dist/elements/StepNav/types.d.ts.map +1 -1
  268. package/dist/elements/StepNav/types.js.map +1 -1
  269. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +7 -5
  270. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  271. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +3 -14
  272. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  273. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  274. package/dist/elements/Table/OrderableTable.js +2 -3
  275. package/dist/elements/Table/OrderableTable.js.map +1 -1
  276. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  277. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  278. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  279. package/dist/elements/Table/index.css +1 -0
  280. package/dist/elements/TableSection/index.css +1 -0
  281. package/dist/elements/Tabs/index.css +1 -0
  282. package/dist/elements/Thumbnail/index.css +1 -0
  283. package/dist/elements/TimezonePicker/index.css +1 -0
  284. package/dist/elements/Tooltip/index.css +7 -0
  285. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  286. package/dist/elements/UnpublishButton/index.js +3 -4
  287. package/dist/elements/UnpublishButton/index.js.map +1 -1
  288. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  289. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  290. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  291. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  292. package/dist/elements/UserMenu/LanguageMenu/index.js +39 -83
  293. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  294. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  295. package/dist/elements/UserMenu/SettingsMenu/index.js +21 -57
  296. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  297. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  298. package/dist/elements/UserMenu/ThemeMenu/index.js +39 -83
  299. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  300. package/dist/elements/UserMenu/index.css +2 -32
  301. package/dist/elements/UserMenu/index.d.ts +0 -1
  302. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  303. package/dist/elements/UserMenu/index.js +51 -77
  304. package/dist/elements/UserMenu/index.js.map +1 -1
  305. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  306. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  307. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  308. package/dist/elements/WhereBuilder/index.css +2 -0
  309. package/dist/exports/client/index.d.ts +2 -4
  310. package/dist/exports/client/index.d.ts.map +1 -1
  311. package/dist/exports/client/index.js +1 -1
  312. package/dist/exports/client/index.js.map +3 -3
  313. package/dist/exports/rsc/index.d.ts +2 -0
  314. package/dist/exports/rsc/index.d.ts.map +1 -1
  315. package/dist/exports/rsc/index.js +2 -0
  316. package/dist/exports/rsc/index.js.map +1 -1
  317. package/dist/fields/Array/index.css +1 -0
  318. package/dist/fields/Array/index.d.ts.map +1 -1
  319. package/dist/fields/Array/index.js +2 -3
  320. package/dist/fields/Array/index.js.map +1 -1
  321. package/dist/fields/Blocks/index.css +1 -0
  322. package/dist/fields/Blocks/index.d.ts.map +1 -1
  323. package/dist/fields/Blocks/index.js +2 -3
  324. package/dist/fields/Blocks/index.js.map +1 -1
  325. package/dist/fields/Checkbox/Input.d.ts +2 -2
  326. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  327. package/dist/fields/Checkbox/Input.js +152 -134
  328. package/dist/fields/Checkbox/Input.js.map +1 -1
  329. package/dist/fields/Checkbox/index.css +163 -168
  330. package/dist/fields/FieldDescription/index.css +5 -0
  331. package/dist/fields/FieldLabel/index.css +8 -27
  332. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  333. package/dist/fields/FieldLabel/index.js +4 -5
  334. package/dist/fields/FieldLabel/index.js.map +1 -1
  335. package/dist/fields/Group/index.css +1 -0
  336. package/dist/fields/RadioGroup/Radio/index.css +1 -0
  337. package/dist/fields/RadioGroup/index.css +1 -1
  338. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  339. package/dist/fields/Relationship/Input.js +8 -27
  340. package/dist/fields/Relationship/Input.js.map +1 -1
  341. package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
  342. package/dist/fields/Relationship/optionsReducer.js +0 -2
  343. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  344. package/dist/fields/Relationship/types.d.ts +0 -24
  345. package/dist/fields/Relationship/types.d.ts.map +1 -1
  346. package/dist/fields/Relationship/types.js.map +1 -1
  347. package/dist/fields/Row/index.css +2 -0
  348. package/dist/fields/Slug/index.d.ts.map +1 -1
  349. package/dist/fields/Slug/index.js +2 -3
  350. package/dist/fields/Slug/index.js.map +1 -1
  351. package/dist/fields/Tabs/index.css +1 -0
  352. package/dist/fields/Textarea/index.css +1 -1
  353. package/dist/fields/Upload/Input.d.ts.map +1 -1
  354. package/dist/fields/Upload/Input.js +2 -3
  355. package/dist/fields/Upload/Input.js.map +1 -1
  356. package/dist/fields/shared/index.d.ts +1 -1
  357. package/dist/fields/shared/index.d.ts.map +1 -1
  358. package/dist/fields/shared/index.js.map +1 -1
  359. package/dist/forms/Form/context.d.ts +3 -1
  360. package/dist/forms/Form/context.d.ts.map +1 -1
  361. package/dist/forms/Form/context.js +3 -1
  362. package/dist/forms/Form/context.js.map +1 -1
  363. package/dist/forms/Form/index.d.ts.map +1 -1
  364. package/dist/forms/Form/index.js +15 -7
  365. package/dist/forms/Form/index.js.map +1 -1
  366. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  367. package/dist/forms/NullifyField/index.js +2 -3
  368. package/dist/forms/NullifyField/index.js.map +1 -1
  369. package/dist/forms/RenderFields/index.css +1 -7
  370. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  371. package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
  372. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  373. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  374. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  375. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  376. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  377. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  378. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  379. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  380. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  381. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  382. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  383. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  384. package/dist/hooks/useControllableState.js +3 -3
  385. package/dist/hooks/useControllableState.js.map +1 -1
  386. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  387. package/dist/hooks/usePayloadAPI.js +2 -3
  388. package/dist/hooks/usePayloadAPI.js.map +1 -1
  389. package/dist/layouts/Root/index.d.ts.map +1 -1
  390. package/dist/layouts/Root/index.js +19 -5
  391. package/dist/layouts/Root/index.js.map +1 -1
  392. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  393. package/dist/providers/DocumentInfo/index.js +32 -22
  394. package/dist/providers/DocumentInfo/index.js.map +1 -1
  395. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  396. package/dist/providers/Hierarchy/index.js +24 -53
  397. package/dist/providers/Hierarchy/index.js.map +1 -1
  398. package/dist/providers/Hierarchy/types.d.ts +0 -2
  399. package/dist/providers/Hierarchy/types.d.ts.map +1 -1
  400. package/dist/providers/Hierarchy/types.js.map +1 -1
  401. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  402. package/dist/providers/LivePreview/index.js +13 -6
  403. package/dist/providers/LivePreview/index.js.map +1 -1
  404. package/dist/providers/Locale/index.d.ts +1 -5
  405. package/dist/providers/Locale/index.d.ts.map +1 -1
  406. package/dist/providers/Locale/index.js +61 -140
  407. package/dist/providers/Locale/index.js.map +1 -1
  408. package/dist/providers/Root/index.d.ts +4 -1
  409. package/dist/providers/Root/index.d.ts.map +1 -1
  410. package/dist/providers/Root/index.js +25 -16
  411. package/dist/providers/Root/index.js.map +1 -1
  412. package/dist/providers/Selection/index.d.ts.map +1 -1
  413. package/dist/providers/Selection/index.js +2 -3
  414. package/dist/providers/Selection/index.js.map +1 -1
  415. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  416. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  417. package/dist/providers/ServerFunctions/index.js +15 -0
  418. package/dist/providers/ServerFunctions/index.js.map +1 -1
  419. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  420. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  421. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  422. package/dist/providers/Theme/index.d.ts +17 -1
  423. package/dist/providers/Theme/index.d.ts.map +1 -1
  424. package/dist/providers/Theme/index.js +253 -81
  425. package/dist/providers/Theme/index.js.map +1 -1
  426. package/dist/providers/Theme/shared.d.ts +8 -0
  427. package/dist/providers/Theme/shared.d.ts.map +1 -1
  428. package/dist/providers/Theme/shared.js +6 -0
  429. package/dist/providers/Theme/shared.js.map +1 -1
  430. package/dist/styles.css +182 -23
  431. package/dist/templates/Default/Wrapper/index.css +3 -2
  432. package/dist/templates/Default/Wrapper/index.d.ts +0 -2
  433. package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
  434. package/dist/templates/Default/Wrapper/index.js +6 -12
  435. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  436. package/dist/templates/Default/index.css +2 -3
  437. package/dist/templates/Default/index.d.ts.map +1 -1
  438. package/dist/templates/Default/index.js +15 -17
  439. package/dist/templates/Default/index.js.map +1 -1
  440. package/dist/utilities/buildFormState.d.ts.map +1 -1
  441. package/dist/utilities/buildFormState.js +6 -2
  442. package/dist/utilities/buildFormState.js.map +1 -1
  443. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  444. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  445. package/dist/utilities/formatAbsoluteURL.js +18 -8
  446. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  447. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  448. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  449. package/dist/utilities/getHasScheduledPublish.js +2 -5
  450. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  451. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  452. package/dist/utilities/handleAuthRedirect.js +4 -1
  453. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  454. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  455. package/dist/utilities/handleServerFunctions.js +4 -2
  456. package/dist/utilities/handleServerFunctions.js.map +1 -1
  457. package/dist/utilities/initReq.d.ts.map +1 -1
  458. package/dist/utilities/initReq.js +40 -5
  459. package/dist/utilities/initReq.js.map +1 -1
  460. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  461. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  462. package/dist/utilities/isAbsoluteURL.js +15 -0
  463. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  464. package/dist/utilities/isHttpURL.d.ts +3 -0
  465. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  466. package/dist/utilities/isHttpURL.js +12 -0
  467. package/dist/utilities/isHttpURL.js.map +1 -0
  468. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  469. package/dist/utilities/isPathMatchingRoute.js +7 -5
  470. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  471. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  472. package/dist/utilities/isPublicAdminRoute.js +9 -6
  473. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  474. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  475. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  476. package/dist/utilities/schedulePublishHandler.js +72 -5
  477. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  478. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  479. package/dist/utilities/serverFunctionRegistry.js +2 -1
  480. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  481. package/dist/utilities/slugify.d.ts.map +1 -1
  482. package/dist/utilities/slugify.js +2 -0
  483. package/dist/utilities/slugify.js.map +1 -1
  484. package/dist/views/API/index.client.d.ts.map +1 -1
  485. package/dist/views/API/index.client.js +2 -3
  486. package/dist/views/API/index.client.js.map +1 -1
  487. package/dist/views/API/index.css +1 -0
  488. package/dist/views/Account/index.d.ts +1 -1
  489. package/dist/views/Account/index.d.ts.map +1 -1
  490. package/dist/views/Account/index.js +8 -5
  491. package/dist/views/Account/index.js.map +1 -1
  492. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
  493. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  494. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  495. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  496. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  497. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  498. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  499. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  500. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -0
  501. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  502. package/dist/views/Dashboard/index.d.ts.map +1 -1
  503. package/dist/views/Dashboard/index.js +2 -3
  504. package/dist/views/Dashboard/index.js.map +1 -1
  505. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  506. package/dist/views/Document/handleServerFunction.js +2 -0
  507. package/dist/views/Document/handleServerFunction.js.map +1 -1
  508. package/dist/views/Document/index.d.ts +1 -1
  509. package/dist/views/Document/index.d.ts.map +1 -1
  510. package/dist/views/Document/index.js +10 -6
  511. package/dist/views/Document/index.js.map +1 -1
  512. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  513. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  514. package/dist/views/Document/renderDocumentSlots.js +7 -4
  515. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  516. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  517. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  518. package/dist/views/Edit/Auth/APIKey.js +233 -59
  519. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  520. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  521. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  522. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  523. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  524. package/dist/views/Edit/Auth/index.css +91 -0
  525. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  526. package/dist/views/Edit/Auth/index.js +10 -28
  527. package/dist/views/Edit/Auth/index.js.map +1 -1
  528. package/dist/views/Edit/Auth/types.d.ts +3 -1
  529. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  530. package/dist/views/Edit/Auth/types.js.map +1 -1
  531. package/dist/views/Edit/index.css +44 -0
  532. package/dist/views/Edit/index.d.ts.map +1 -1
  533. package/dist/views/Edit/index.js +13 -0
  534. package/dist/views/Edit/index.js.map +1 -1
  535. package/dist/views/Edit/useEditViewWidth.d.ts +8 -0
  536. package/dist/views/Edit/useEditViewWidth.d.ts.map +1 -0
  537. package/dist/views/Edit/useEditViewWidth.js +56 -0
  538. package/dist/views/Edit/useEditViewWidth.js.map +1 -0
  539. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  540. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  541. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  542. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  543. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  544. package/dist/views/ForgotPassword/index.js +2 -11
  545. package/dist/views/ForgotPassword/index.js.map +1 -1
  546. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  547. package/dist/views/HierarchyList/DocumentListSelection/index.js +105 -100
  548. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  549. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +1 -6
  550. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -1
  551. package/dist/views/HierarchyList/HierarchyListHeader/index.js +8 -10
  552. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  553. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
  554. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +10 -11
  555. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  556. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  557. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
  558. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +6 -3
  559. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
  560. package/dist/views/HierarchyList/HierarchyTable/index.css +0 -51
  561. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +1 -13
  562. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  563. package/dist/views/HierarchyList/HierarchyTable/index.js +38 -156
  564. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  565. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -6
  566. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -1
  567. package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -1
  568. package/dist/views/HierarchyList/index.css +1 -0
  569. package/dist/views/HierarchyList/index.d.ts.map +1 -1
  570. package/dist/views/HierarchyList/index.js +20 -103
  571. package/dist/views/HierarchyList/index.js.map +1 -1
  572. package/dist/views/List/ListHeader/index.css +1 -0
  573. package/dist/views/List/ListHeader/index.d.ts +0 -1
  574. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  575. package/dist/views/List/ListHeader/index.js +2 -6
  576. package/dist/views/List/ListHeader/index.js.map +1 -1
  577. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  578. package/dist/views/List/ListSelection/index.js +122 -138
  579. package/dist/views/List/ListSelection/index.js.map +1 -1
  580. package/dist/views/List/handleHierarchy.d.ts +1 -6
  581. package/dist/views/List/handleHierarchy.d.ts.map +1 -1
  582. package/dist/views/List/handleHierarchy.js +3 -34
  583. package/dist/views/List/handleHierarchy.js.map +1 -1
  584. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  585. package/dist/views/List/handleServerFunction.js +3 -1
  586. package/dist/views/List/handleServerFunction.js.map +1 -1
  587. package/dist/views/List/index.client.d.ts.map +1 -1
  588. package/dist/views/List/index.client.js +6 -129
  589. package/dist/views/List/index.client.js.map +1 -1
  590. package/dist/views/List/index.css +2 -0
  591. package/dist/views/List/index.d.ts.map +1 -1
  592. package/dist/views/List/index.js +18 -28
  593. package/dist/views/List/index.js.map +1 -1
  594. package/dist/views/NotFound/client.d.ts +2 -0
  595. package/dist/views/NotFound/client.d.ts.map +1 -0
  596. package/dist/views/NotFound/client.js +4 -0
  597. package/dist/views/NotFound/client.js.map +1 -0
  598. package/dist/views/NotFound/page.d.ts.map +1 -1
  599. package/dist/views/NotFound/page.js +4 -3
  600. package/dist/views/NotFound/page.js.map +1 -1
  601. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  602. package/dist/views/Root/getRouteData.js +2 -8
  603. package/dist/views/Root/getRouteData.js.map +1 -1
  604. package/dist/views/Root/index.d.ts.map +1 -1
  605. package/dist/views/Root/index.js +31 -22
  606. package/dist/views/Root/index.js.map +1 -1
  607. package/dist/views/Verify/index.d.ts +1 -1
  608. package/dist/views/Verify/index.d.ts.map +1 -1
  609. package/dist/views/Verify/index.js +4 -4
  610. package/dist/views/Verify/index.js.map +1 -1
  611. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  612. package/dist/views/Version/Default/SetStepNav.js +10 -13
  613. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  614. package/dist/views/Version/Default/index.css +2 -0
  615. package/dist/views/Version/Default/index.d.ts.map +1 -1
  616. package/dist/views/Version/Default/index.js +12 -13
  617. package/dist/views/Version/Default/index.js.map +1 -1
  618. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  619. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  620. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  621. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  622. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  623. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  624. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  625. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  626. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  627. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  628. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  629. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  630. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  631. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  632. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  633. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  634. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  635. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  636. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  637. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  638. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  639. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  640. package/dist/views/Version/Restore/index.js +9 -6
  641. package/dist/views/Version/Restore/index.js.map +1 -1
  642. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  643. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  644. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  645. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  646. package/dist/views/Versions/index.css +1 -0
  647. package/dist/widgets/CollectionCards/index.client.js +1 -1
  648. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  649. package/dist/widgets/CollectionCards/index.css +43 -33
  650. package/dist/widgets/CollectionCards/index.js +1 -1
  651. package/dist/widgets/CollectionCards/index.js.map +1 -1
  652. package/dist/widgets/RecentlyViewed/DocumentActivity/index.css +193 -0
  653. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts +5 -0
  654. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts.map +1 -0
  655. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js +225 -0
  656. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js.map +1 -0
  657. package/dist/widgets/RecentlyViewed/DocumentItem/index.css +181 -0
  658. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts +11 -0
  659. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts.map +1 -0
  660. package/dist/widgets/RecentlyViewed/DocumentItem/index.js +104 -0
  661. package/dist/widgets/RecentlyViewed/DocumentItem/index.js.map +1 -0
  662. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts +10 -0
  663. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts.map +1 -0
  664. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js +85 -0
  665. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js.map +1 -0
  666. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts +7 -0
  667. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts.map +1 -0
  668. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js +206 -0
  669. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js.map +1 -0
  670. package/dist/widgets/RecentlyViewed/index.d.ts +3 -5
  671. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  672. package/dist/widgets/RecentlyViewed/index.js +10 -140
  673. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  674. package/dist/widgets/RecentlyViewed/shared.d.ts +38 -0
  675. package/dist/widgets/RecentlyViewed/shared.d.ts.map +1 -0
  676. package/dist/widgets/RecentlyViewed/shared.js +70 -0
  677. package/dist/widgets/RecentlyViewed/shared.js.map +1 -0
  678. package/dist/widgets/UploadDropzone/index.client.d.ts +7 -0
  679. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -0
  680. package/dist/widgets/UploadDropzone/index.client.js +134 -0
  681. package/dist/widgets/UploadDropzone/index.client.js.map +1 -0
  682. package/dist/widgets/UploadDropzone/index.css +50 -0
  683. package/dist/widgets/UploadDropzone/index.d.ts +8 -0
  684. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -0
  685. package/dist/widgets/UploadDropzone/index.js +29 -0
  686. package/dist/widgets/UploadDropzone/index.js.map +1 -0
  687. package/dist/widgets/Welcome/index.css +13 -0
  688. package/dist/widgets/Welcome/index.d.ts +5 -0
  689. package/dist/widgets/Welcome/index.d.ts.map +1 -0
  690. package/dist/widgets/Welcome/index.js +26 -0
  691. package/dist/widgets/Welcome/index.js.map +1 -0
  692. package/dist/widgets/WidgetIcon/assets/images.svg +3 -0
  693. package/dist/widgets/WidgetIcon/assets/pin-solid.svg +3 -0
  694. package/dist/widgets/WidgetIcon/assets/pin.svg +3 -0
  695. package/dist/widgets/WidgetIcon/assets/table.svg +3 -0
  696. package/dist/widgets/WidgetIcon/index.css +23 -0
  697. package/dist/widgets/WidgetIcon/index.d.ts +6 -0
  698. package/dist/widgets/WidgetIcon/index.d.ts.map +1 -0
  699. package/dist/widgets/WidgetIcon/index.js +10 -0
  700. package/dist/widgets/WidgetIcon/index.js.map +1 -0
  701. package/package.json +11 -5
  702. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  703. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  704. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  705. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  706. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -885
  707. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  708. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  709. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  710. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  711. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  712. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  713. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  714. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  715. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  716. package/dist/elements/Hierarchy/CreateNewButton/index.css +0 -9
  717. package/dist/elements/Hierarchy/CreateNewButton/index.d.ts +0 -9
  718. package/dist/elements/Hierarchy/CreateNewButton/index.d.ts.map +0 -1
  719. package/dist/elements/Hierarchy/CreateNewButton/index.js +0 -111
  720. package/dist/elements/Hierarchy/CreateNewButton/index.js.map +0 -1
  721. package/dist/elements/Hierarchy/Modal/Footer/index.css +0 -45
  722. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +0 -28
  723. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +0 -1
  724. package/dist/elements/Hierarchy/Modal/Footer/index.js +0 -166
  725. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +0 -1
  726. package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts +0 -22
  727. package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts.map +0 -1
  728. package/dist/elements/Hierarchy/getFolderHierarchySlug.js +0 -17
  729. package/dist/elements/Hierarchy/getFolderHierarchySlug.js.map +0 -1
  730. package/dist/elements/Hierarchy/move/moveDocuments.d.ts +0 -34
  731. package/dist/elements/Hierarchy/move/moveDocuments.d.ts.map +0 -1
  732. package/dist/elements/Hierarchy/move/moveDocuments.js +0 -94
  733. package/dist/elements/Hierarchy/move/moveDocuments.js.map +0 -1
  734. package/dist/elements/SegmentedControl/index.css +0 -58
  735. package/dist/elements/SegmentedControl/index.d.ts +0 -19
  736. package/dist/elements/SegmentedControl/index.d.ts.map +0 -1
  737. package/dist/elements/SegmentedControl/index.js +0 -104
  738. package/dist/elements/SegmentedControl/index.js.map +0 -1
  739. package/dist/elements/StepNav/DropTarget/index.css +0 -20
  740. package/dist/elements/StepNav/DropTarget/index.d.ts +0 -16
  741. package/dist/elements/StepNav/DropTarget/index.d.ts.map +0 -1
  742. package/dist/elements/StepNav/DropTarget/index.js +0 -71
  743. package/dist/elements/StepNav/DropTarget/index.js.map +0 -1
  744. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  745. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  746. package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts +0 -18
  747. package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts.map +0 -1
  748. package/dist/elements/UserMenu/HoverSubmenuGroup.js +0 -38
  749. package/dist/elements/UserMenu/HoverSubmenuGroup.js.map +0 -1
  750. package/dist/elements/UserMenu/useHoverSubmenu.d.ts +0 -21
  751. package/dist/elements/UserMenu/useHoverSubmenu.d.ts.map +0 -1
  752. package/dist/elements/UserMenu/useHoverSubmenu.js +0 -260
  753. package/dist/elements/UserMenu/useHoverSubmenu.js.map +0 -1
  754. package/dist/elements/ViewModeToggle/index.d.ts +0 -8
  755. package/dist/elements/ViewModeToggle/index.d.ts.map +0 -1
  756. package/dist/elements/ViewModeToggle/index.js +0 -29
  757. package/dist/elements/ViewModeToggle/index.js.map +0 -1
  758. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  759. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  760. package/dist/elements/WhereBuilder/conditionValue.spec.js +0 -65
  761. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +0 -1
  762. package/dist/fields/Upload/Input.spec.js +0 -241
  763. package/dist/fields/Upload/Input.spec.js.map +0 -1
  764. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  765. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  766. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  767. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  768. package/dist/icons/CollapseLayers/index.d.ts +0 -7
  769. package/dist/icons/CollapseLayers/index.d.ts.map +0 -1
  770. package/dist/icons/CollapseLayers/index.js +0 -23
  771. package/dist/icons/CollapseLayers/index.js.map +0 -1
  772. package/dist/icons/Table/index.css +0 -5
  773. package/dist/icons/Table/index.d.ts +0 -7
  774. package/dist/icons/Table/index.d.ts.map +0 -1
  775. package/dist/icons/Table/index.js +0 -25
  776. package/dist/icons/Table/index.js.map +0 -1
  777. package/dist/layouts/Root/index.spec.js +0 -20
  778. package/dist/layouts/Root/index.spec.js.map +0 -1
  779. package/dist/providers/Auth/authSessionRequests.spec.js +0 -121
  780. package/dist/providers/Auth/authSessionRequests.spec.js.map +0 -1
  781. package/dist/providers/Auth/sessionActivity.spec.js +0 -44
  782. package/dist/providers/Auth/sessionActivity.spec.js.map +0 -1
  783. package/dist/providers/Auth/tabSessionSync/index.spec.js +0 -463
  784. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +0 -1
  785. package/dist/providers/Auth/useAuthSessionTimers.spec.js +0 -311
  786. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +0 -1
  787. package/dist/providers/HierarchyDnd/index.css +0 -51
  788. package/dist/providers/HierarchyDnd/index.d.ts +0 -21
  789. package/dist/providers/HierarchyDnd/index.d.ts.map +0 -1
  790. package/dist/providers/HierarchyDnd/index.js +0 -163
  791. package/dist/providers/HierarchyDnd/index.js.map +0 -1
  792. package/dist/providers/HierarchyDnd/types.d.ts +0 -56
  793. package/dist/providers/HierarchyDnd/types.d.ts.map +0 -1
  794. package/dist/providers/HierarchyDnd/types.js +0 -21
  795. package/dist/providers/HierarchyDnd/types.js.map +0 -1
  796. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +0 -44
  797. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +0 -1
  798. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  799. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  800. package/dist/utilities/appendCacheTag.spec.js +0 -34
  801. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  802. package/dist/utilities/formatMetadata.spec.js +0 -83
  803. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  804. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  805. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  806. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  807. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  808. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  809. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  810. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  811. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  812. package/dist/utilities/recentlyViewed.spec.js +0 -92
  813. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  814. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.css +0 -216
  815. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts +0 -20
  816. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts.map +0 -1
  817. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js +0 -182
  818. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js.map +0 -1
  819. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.css +0 -38
  820. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts +0 -15
  821. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts.map +0 -1
  822. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js +0 -85
  823. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js.map +0 -1
  824. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.css +0 -98
  825. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts +0 -27
  826. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts.map +0 -1
  827. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js +0 -84
  828. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js.map +0 -1
  829. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts +0 -19
  830. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts.map +0 -1
  831. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js +0 -100
  832. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js.map +0 -1
  833. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts +0 -53
  834. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts.map +0 -1
  835. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js +0 -145
  836. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js.map +0 -1
  837. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts +0 -8
  838. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts.map +0 -1
  839. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js +0 -21
  840. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js.map +0 -1
  841. package/dist/views/HierarchyList/HierarchyCards/index.css +0 -115
  842. package/dist/views/HierarchyList/HierarchyCards/index.d.ts +0 -80
  843. package/dist/views/HierarchyList/HierarchyCards/index.d.ts.map +0 -1
  844. package/dist/views/HierarchyList/HierarchyCards/index.js +0 -457
  845. package/dist/views/HierarchyList/HierarchyCards/index.js.map +0 -1
  846. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  847. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  848. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  849. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  850. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  851. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  852. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  853. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  854. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  855. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fetchAncestorPath.js","names":["formatAdminURL","qs","MAX_HIERARCHY_DEPTH","EMPTY_RESULT","ancestorIds","path","fetchAncestorPaths","api","collectionSlug","itemIds","parentFieldName","serverURL","useAsTitle","results","Map","length","queryString","stringify","depth","limit","select","where","id","in","addQueryPrefix","url","apiRoute","response","fetch","credentials","ok","data","json","doc","docs","undefined","set","buildAncestorPath","fetchAncestorPath","itemId","rest","get","toTitle","value","segmentID","rawTitle","String","title","current","parent","parentDoc","parentID","unshift","slice","map","segment"],"sources":["../../../../src/elements/Hierarchy/Modal/fetchAncestorPath.ts"],"sourcesContent":["import { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\n\nimport type { PathSegment } from '../ColumnBrowser/types.js'\n\ntype FetchAncestorPathArgs = {\n api: string\n collectionSlug: string\n itemId: number | string\n parentFieldName: string\n serverURL: string\n useAsTitle: string\n}\n\ntype FetchAncestorPathsArgs = {\n itemIds: (number | string)[]\n} & Omit<FetchAncestorPathArgs, 'itemId'>\n\nexport type AncestorPathResult = {\n /** Ancestor IDs from root down to the item's immediate parent, excluding the item itself */\n ancestorIds: (number | string)[]\n /** Full path from root down to the item itself, with titles */\n path: PathSegment[]\n}\n\nconst MAX_HIERARCHY_DEPTH = 20\n\nconst EMPTY_RESULT: AncestorPathResult = { ancestorIds: [], path: [] }\n\n/**\n * Fetches the ancestor paths for several items in a single API call with depth.\n * Each populated parent chain is walked to build a titled breadcrumb from root to the item.\n */\nexport async function fetchAncestorPaths({\n api,\n collectionSlug,\n itemIds,\n parentFieldName,\n serverURL,\n useAsTitle,\n}: FetchAncestorPathsArgs): Promise<Map<number | string, AncestorPathResult>> {\n const results = new Map<number | string, AncestorPathResult>()\n\n if (itemIds.length === 0) {\n return results\n }\n\n const queryString = qs.stringify(\n {\n depth: MAX_HIERARCHY_DEPTH,\n limit: itemIds.length,\n select: { [parentFieldName]: true, [useAsTitle]: true },\n where: { id: { in: itemIds } },\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 results\n }\n\n const data = await response.json()\n\n for (const doc of (data.docs || []) as Record<string, unknown>[]) {\n const id = doc.id as number | string\n\n if (id === null || id === undefined) {\n continue\n }\n\n results.set(id, buildAncestorPath({ id, doc, parentFieldName, useAsTitle }))\n }\n\n return results\n}\n\n/**\n * Fetches the ancestor path for a single item. See {@link fetchAncestorPaths}.\n */\nexport async function fetchAncestorPath({\n itemId,\n ...rest\n}: FetchAncestorPathArgs): Promise<AncestorPathResult> {\n const results = await fetchAncestorPaths({ ...rest, itemIds: [itemId] })\n\n return results.get(itemId) ?? EMPTY_RESULT\n}\n\nfunction buildAncestorPath({\n id,\n doc,\n parentFieldName,\n useAsTitle,\n}: {\n doc: Record<string, unknown>\n id: number | string\n parentFieldName: string\n useAsTitle: string\n}): AncestorPathResult {\n const toTitle = (\n value: Record<string, unknown> | undefined,\n segmentID: number | string,\n ): string => {\n const rawTitle = value?.[useAsTitle]\n return typeof rawTitle === 'string' || typeof rawTitle === 'number'\n ? String(rawTitle)\n : String(segmentID)\n }\n\n const path: PathSegment[] = [{ id, title: toTitle(doc, id) }]\n\n let current: Record<string, unknown> | undefined = doc\n\n for (let depth = 0; depth < MAX_HIERARCHY_DEPTH; depth++) {\n const parent = current?.[parentFieldName]\n\n if (parent === null || parent === undefined) {\n break\n }\n\n // Parent is either a populated document or a bare ID once the depth limit is hit\n if (typeof parent === 'object') {\n const parentDoc = parent as Record<string, unknown>\n const parentID = parentDoc.id as number | string\n\n if (parentID === null || parentID === undefined) {\n break\n }\n\n path.unshift({ id: parentID, title: toTitle(parentDoc, parentID) })\n current = parentDoc\n } else {\n const parentID = parent as number | string\n path.unshift({ id: parentID, title: String(parentID) })\n break\n }\n }\n\n return {\n ancestorIds: path.slice(0, -1).map((segment) => segment.id),\n path,\n }\n}\n"],"mappings":"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","ignoreList":[]}
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/Modal/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":[]}
@@ -14,17 +14,66 @@
14
14
  overflow: clip;
15
15
  }
16
16
 
17
- /* Beats the `:has(.dialog__header)` / `:has(.dialog__footer)` padding rules in Dialog/index.css */
18
- .dialog.hierarchy-modal .hierarchy-modal__content .dialog__body {
17
+ .hierarchy-modal__header-actions {
18
+ display: flex;
19
+ gap: var(--spacer-2);
20
+ }
21
+
22
+ .dialog.hierarchy-modal .dialog__body {
19
23
  display: flex;
20
24
  flex-direction: column;
21
25
  padding: 0;
22
26
  }
23
27
 
24
- .dialog.hierarchy-modal .dialog__footer {
28
+ .hierarchy-modal__subheader {
29
+ display: flex;
25
30
  justify-content: space-between;
26
31
  align-items: center;
27
- border-top: var(--stroke-width-small) solid var(--color-border);
32
+ padding: var(--spacer-1) var(--spacer-3);
33
+ padding-inline-start: var(--spacer-2-5);
34
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
35
+ flex-shrink: 0;
36
+ }
37
+
38
+ .hierarchy-modal__subheader-left {
39
+ display: flex;
40
+ align-items: center;
41
+ gap: var(--spacer-1);
42
+ font-weight: 500;
43
+ color: var(--color-text);
44
+ }
45
+
46
+ .hierarchy-modal__subheader-right {
47
+ display: flex;
48
+ align-items: center;
49
+ gap: var(--spacer-2);
50
+ }
51
+
52
+ .hierarchy-modal__selection-info {
53
+ color: var(--color-text-secondary);
54
+ }
55
+
56
+ .hierarchy-modal__move-to-root,
57
+ .hierarchy-modal__clear-all {
58
+ height: auto;
59
+ padding: 0;
60
+ border: 0;
61
+ border-radius: 0;
62
+ background: transparent;
63
+ color: var(--color-text-secondary);
64
+ text-decoration: underline;
65
+ text-underline-offset: 2px;
66
+ }
67
+
68
+ .hierarchy-modal__move-to-root:hover:not(.btn--disabled),
69
+ .hierarchy-modal__clear-all:hover:not(.btn--disabled) {
70
+ background: transparent;
71
+ color: var(--color-text);
72
+ }
73
+
74
+ .hierarchy-modal__move-to-root:active:not(.btn--disabled),
75
+ .hierarchy-modal__clear-all:active:not(.btn--disabled) {
76
+ background: transparent;
28
77
  }
29
78
 
30
79
  .hierarchy-modal__columns {
@@ -10,12 +10,9 @@ type HierarchyModalContentProps = {
10
10
  }) => void;
11
11
  } & HierarchyModalInternalProps;
12
12
  export type HierarchyModalContentRef = {
13
- selectItem: (params: {
14
- id: number | string;
15
- title?: string;
16
- }) => void;
13
+ selectItem: (id: number | string) => void;
17
14
  };
18
- export declare const HierarchyModalContent: ({ baseFilter, closeModal, columnBrowserRef, confirmLabel, disabledIds, filterByCollection, hasMany, hierarchyCollectionSlug, Icon, initialSelections, onCreateNew, onMoveToRoot, onSave, parentFieldName, ref, showMoveToRoot, title, useAsTitle, }: {
15
+ export declare const HierarchyModalContent: ({ baseFilter, closeModal, columnBrowserRef, disabledIds, filterByCollection, hasMany, hierarchyCollectionSlug, Icon, initialSelections, onCreateNew, onMoveToRoot, onSave, parentFieldName, ref, showMoveToRoot, useAsTitle, }: {
19
16
  ref?: React.RefObject<HierarchyModalContentRef | null>;
20
17
  } & HierarchyModalContentProps) => React.JSX.Element;
21
18
  export declare const HierarchyModal: React.FC<HierarchyModalInternalProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAE1E,OAAO,KAAK,EAAE,2BAA2B,EAAqB,MAAM,YAAY,CAAA;AAYhF,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,SAAS,oBAAoB,CAAA;AAE1C,KAAK,0BAA0B,GAAG;IAChC,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,2BAA2B,CAAA;AAE/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,qBAAqB,wPAmB/B;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAA;CAAE,GAAG,0BAA0B,sBAyPzF,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAoGhE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Modal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAqB,MAAM,YAAY,CAAA;AAahF,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,SAAS,oBAAoB,CAAA;AAE1C,KAAK,0BAA0B,GAAG;IAChC,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,2BAA2B,CAAA;AAE/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,qBAAqB,mOAiB/B;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAA;CAAE,GAAG,0BAA0B,sBAmNzF,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA+FhE,CAAA"}
@@ -4,22 +4,22 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  import { getTranslation } from '@payloadcms/translations';
5
5
  import React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
6
6
  import { useEffectEvent } from '../../../hooks/useEffectEvent.js';
7
+ import { TagIcon } from '../../../icons/Tag/index.js';
7
8
  import { useConfig } from '../../../providers/Config/index.js';
8
9
  import { useHierarchy } from '../../../providers/Hierarchy/index.js';
9
10
  import { useTranslation } from '../../../providers/Translation/index.js';
11
+ import { Button } from '../../Button/index.js';
10
12
  import { DialogBody, DialogHeader, DialogModal } from '../../Dialog/index.js';
11
13
  import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
12
14
  import { DrawerDepthProvider } from '../../Drawer/index.js';
13
15
  import { HierarchyColumnBrowser } from '../ColumnBrowser/index.js';
14
- import { fetchAncestorPaths } from './fetchAncestorPath.js';
15
- import { HierarchyModalFooter } from './Footer/index.js';
16
+ import { fetchAncestorPath } from './fetchAncestorPath.js';
16
17
  import './index.css';
17
18
  export const baseClass = 'hierarchy-modal';
18
19
  export const HierarchyModalContent = function HierarchyModalContent({
19
20
  baseFilter,
20
21
  closeModal,
21
22
  columnBrowserRef,
22
- confirmLabel,
23
23
  disabledIds,
24
24
  filterByCollection,
25
25
  hasMany = false,
@@ -32,7 +32,6 @@ export const HierarchyModalContent = function HierarchyModalContent({
32
32
  parentFieldName,
33
33
  ref,
34
34
  showMoveToRoot,
35
- title,
36
35
  useAsTitle
37
36
  }) {
38
37
  const {
@@ -54,17 +53,14 @@ export const HierarchyModalContent = function HierarchyModalContent({
54
53
  collectionSlug: hierarchyCollectionSlug
55
54
  });
56
55
  const collectionLabel = collectionConfig ? getTranslation(collectionConfig.labels?.plural || hierarchyCollectionSlug, i18n) : hierarchyCollectionSlug;
57
- const collectionLabelSingular = collectionConfig ? getTranslation(collectionConfig.labels?.singular || hierarchyCollectionSlug, i18n) : hierarchyCollectionSlug;
58
56
  const parentFieldName_internal = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy.parentFieldName : parentFieldName;
59
57
  const [initialExpandedPath, setInitialExpandedPath] = useState();
60
- const [previousPath, setPreviousPath] = useState();
61
58
  const [isLoadingPath, setIsLoadingPath] = useState(Boolean(initialSelections?.length));
62
59
  const hasLoadedPathRef = React.useRef(false);
60
+ const firstSelection = initialSelections?.[0];
63
61
  const mapSelections = useCallback(ids => {
64
62
  const map = new Map();
65
- // Single-select is a move: the existing value is the origin shown in the footer, not a
66
- // pre-made choice. Multi-select edits a set, so existing values start checked.
67
- if (ids && hasMany) {
63
+ if (ids) {
68
64
  for (const id of ids) {
69
65
  map.set(id, {
70
66
  id,
@@ -73,78 +69,39 @@ export const HierarchyModalContent = function HierarchyModalContent({
73
69
  }
74
70
  }
75
71
  return map;
76
- }, [hasMany]);
77
- const [selections, setSelections] = useState(() => mapSelections(initialSelections));
78
- const loadAncestorPaths = useEffectEvent(async ids_0 => {
79
- const firstId = ids_0?.[0];
80
- if (!firstId) {
72
+ }, []);
73
+ const loadAncestorPath = useEffectEvent(async itemId => {
74
+ if (!itemId) {
81
75
  setIsLoadingPath(false);
82
76
  return;
83
77
  }
84
- // Multi-select marks the ancestors of every checked item as partially selected, so all of
85
- // their paths are needed. Single-select only needs the origin of the move.
86
- const itemIds = hasMany ? ids_0 : [firstId];
87
78
  try {
88
- const paths = await fetchAncestorPaths({
79
+ const path = await fetchAncestorPath({
89
80
  api,
90
81
  collectionSlug: hierarchyCollectionSlug,
91
- itemIds,
82
+ itemId,
92
83
  parentFieldName: parentFieldName_internal,
93
- serverURL,
94
- useAsTitle: useAsTitle || 'id'
84
+ serverURL
95
85
  });
96
- const firstPath = paths.get(firstId);
97
- setInitialExpandedPath(firstPath?.ancestorIds);
98
- setPreviousPath(firstPath?.path);
99
- // Selections seeded from the field's value start without a path - backfill them so their
100
- // ancestors can be marked, and so the footer breadcrumbs read correctly
101
- if (hasMany) {
102
- setSelections(prev => {
103
- const next = new Map(prev);
104
- for (const [id_0, {
105
- path
106
- }] of paths) {
107
- if (next.has(id_0)) {
108
- next.set(id_0, {
109
- id: id_0,
110
- path
111
- });
112
- }
113
- }
114
- return next;
115
- });
116
- }
86
+ setInitialExpandedPath(path);
117
87
  } catch {
118
88
  // Silently handle fetch errors - will just start at root
119
89
  } finally {
120
90
  setIsLoadingPath(false);
121
91
  }
122
92
  });
123
- // Load ancestor paths on mount
93
+ // Load ancestor path on mount
124
94
  useEffect(() => {
125
95
  if (hasLoadedPathRef.current) {
126
96
  return;
127
97
  }
128
98
  hasLoadedPathRef.current = true;
129
- void loadAncestorPaths(initialSelections);
130
- }, [initialSelections]);
99
+ void loadAncestorPath(firstSelection);
100
+ }, [firstSelection]);
101
+ const [selections, setSelections] = useState(() => mapSelections(initialSelections));
131
102
  const selectedIds = useMemo(() => new Set(selections.keys()), [selections]);
132
- // Every ancestor of a checked item gets a badge counting the picks below it, so a collapsed
133
- // branch still shows how much is selected inside
134
- const selectedDescendantCounts = useMemo(() => {
135
- const counts = new Map();
136
- for (const {
137
- id: id_1,
138
- path: path_0
139
- } of selections.values()) {
140
- for (const segment of path_0) {
141
- if (segment.id !== id_1) {
142
- counts.set(segment.id, (counts.get(segment.id) ?? 0) + 1);
143
- }
144
- }
145
- }
146
- return counts;
147
- }, [selections]);
103
+ // For now, ancestorsWithSelections is empty - will be computed when we have path tracking
104
+ const ancestorsWithSelections = useMemo(() => new Set(), []);
148
105
  const handleSave = useCallback(() => {
149
106
  onSave({
150
107
  closeModal,
@@ -152,83 +109,115 @@ export const HierarchyModalContent = function HierarchyModalContent({
152
109
  });
153
110
  }, [onSave, selections, closeModal]);
154
111
  const handleSelect = useCallback(({
155
- id: id_2,
156
- path: path_1
112
+ id: id_0,
113
+ path: path_0
157
114
  }) => {
158
- setSelections(prev_0 => {
159
- const next_0 = new Map(prev_0);
160
- // Single select replaces rather than toggles - clicking an item always makes it the
161
- // destination, so re-clicking the open folder cannot leave the move with no target
162
- if (!hasMany) {
163
- next_0.clear();
164
- next_0.set(id_2, {
165
- id: id_2,
166
- path: path_1
167
- });
168
- return next_0;
169
- }
170
- if (next_0.has(id_2)) {
171
- next_0.delete(id_2);
115
+ setSelections(prev => {
116
+ const next = new Map(prev);
117
+ if (next.has(id_0)) {
118
+ next.delete(id_0);
172
119
  } else {
173
- next_0.set(id_2, {
174
- id: id_2,
175
- path: path_1
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
176
127
  });
177
128
  }
178
- return next_0;
129
+ return next;
179
130
  });
180
131
  }, [hasMany]);
181
132
  const handleClearAll = useCallback(() => {
182
133
  setSelections(new Map());
183
134
  }, []);
184
- const handleRevealPath = useCallback(path_2 => {
185
- void columnBrowserRef?.current?.revealPath(path_2);
186
- }, [columnBrowserRef]);
187
135
  const handleCancel = useCallback(() => {
188
136
  setSelections(mapSelections(initialSelections));
189
137
  closeModal();
190
138
  }, [closeModal, initialSelections, mapSelections]);
191
139
  // Expose selectItem for programmatic selection (e.g., after creating a new item)
192
140
  useImperativeHandle(ref, () => ({
193
- selectItem: ({
194
- id: id_3,
195
- title: itemTitle
196
- }) => {
197
- setSelections(prev_1 => {
198
- const next_1 = new Map(prev_1);
141
+ selectItem: id_1 => {
142
+ setSelections(prev_0 => {
143
+ const next_0 = new Map(prev_0);
199
144
  if (!hasMany) {
200
- next_1.clear();
145
+ next_0.clear();
201
146
  }
202
- // A newly created item has no browsed path, so its own title is the whole breadcrumb
203
- next_1.set(id_3, {
204
- id: id_3,
205
- path: itemTitle ? [{
206
- id: id_3,
207
- title: itemTitle
208
- }] : []
147
+ // Path will be empty for newly created items - could be enhanced later
148
+ next_0.set(id_1, {
149
+ id: id_1,
150
+ path: []
209
151
  });
210
- return next_1;
152
+ return next_0;
211
153
  });
212
154
  }
213
155
  }), [hasMany]);
214
156
  const selectionCount = selections.size;
215
- const destinationPath = hasMany ? undefined : selections.values().next().value?.path;
216
157
  return /*#__PURE__*/_jsxs("div", {
217
158
  className: `${baseClass}__content`,
218
159
  children: [/*#__PURE__*/_jsx(DialogHeader, {
219
- onClose: handleCancel,
220
- showClose: true,
221
- title: title || t('general:selectLabel', {
160
+ title: t('general:selectValue', {
222
161
  label: collectionLabel
162
+ }),
163
+ children: /*#__PURE__*/_jsxs("div", {
164
+ className: `${baseClass}__header-actions`,
165
+ children: [/*#__PURE__*/_jsx(Button, {
166
+ buttonStyle: "secondary",
167
+ margin: false,
168
+ onClick: handleCancel,
169
+ size: "medium",
170
+ children: t('general:cancel')
171
+ }), /*#__PURE__*/_jsx(Button, {
172
+ margin: false,
173
+ onClick: handleSave,
174
+ size: "medium",
175
+ children: t('general:select')
176
+ })]
223
177
  })
224
- }), /*#__PURE__*/_jsx(DialogBody, {
225
- children: /*#__PURE__*/_jsx("div", {
178
+ }), /*#__PURE__*/_jsxs(DialogBody, {
179
+ children: [/*#__PURE__*/_jsxs("div", {
180
+ className: `${baseClass}__subheader`,
181
+ children: [/*#__PURE__*/_jsxs("div", {
182
+ className: `${baseClass}__subheader-left`,
183
+ children: [Icon || /*#__PURE__*/_jsx(TagIcon, {}), /*#__PURE__*/_jsx("h4", {
184
+ children: collectionLabel
185
+ })]
186
+ }), /*#__PURE__*/_jsxs("div", {
187
+ className: `${baseClass}__subheader-right`,
188
+ children: [showMoveToRoot && onMoveToRoot && /*#__PURE__*/_jsx(Button, {
189
+ buttonStyle: "ghost",
190
+ className: `${baseClass}__move-to-root`,
191
+ margin: false,
192
+ onClick: onMoveToRoot,
193
+ size: "medium",
194
+ children: t('hierarchy:moveToRoot')
195
+ }), Boolean(selectionCount) && /*#__PURE__*/_jsxs(_Fragment, {
196
+ children: [/*#__PURE__*/_jsx("span", {
197
+ className: `${baseClass}__selection-info`,
198
+ children: t('general:selectedCount', {
199
+ count: selectionCount,
200
+ label: ''
201
+ })
202
+ }), /*#__PURE__*/_jsx("span", {
203
+ children: "—"
204
+ }), /*#__PURE__*/_jsx(Button, {
205
+ buttonStyle: "ghost",
206
+ className: `${baseClass}__clear-all`,
207
+ margin: false,
208
+ onClick: handleClearAll,
209
+ size: "medium",
210
+ children: t('general:clear')
211
+ })]
212
+ })]
213
+ })]
214
+ }), /*#__PURE__*/_jsx("div", {
226
215
  className: `${baseClass}__columns`,
227
216
  children: /*#__PURE__*/_jsx(HierarchyColumnBrowser, {
217
+ ancestorsWithSelections: ancestorsWithSelections,
228
218
  baseFilter: baseFilter,
229
219
  disabledIds: disabledIds,
230
220
  filterByCollection: filterByCollection,
231
- hasMany: hasMany,
232
221
  hierarchyCollectionSlug: hierarchyCollectionSlug,
233
222
  initialExpandedPath: initialExpandedPath,
234
223
  isLoadingPath: isLoadingPath,
@@ -236,31 +225,10 @@ export const HierarchyModalContent = function HierarchyModalContent({
236
225
  onSelect: handleSelect,
237
226
  parentFieldName: parentFieldName,
238
227
  ref: columnBrowserRef,
239
- selectedDescendantCounts: selectedDescendantCounts,
240
228
  selectedIds: selectedIds,
241
229
  useAsTitle: useAsTitle
242
230
  })
243
- })
244
- }), /*#__PURE__*/_jsx(HierarchyModalFooter, {
245
- confirmLabel: confirmLabel || (hasMany ? t('general:confirm') : t('general:move')),
246
- destinationPath: destinationPath,
247
- Icon: Icon,
248
- isConfirmDisabled: selectionCount === 0,
249
- isMultiSelect: hasMany,
250
- onClear: handleClearAll,
251
- onConfirm: handleSave,
252
- onMoveToRoot: onMoveToRoot,
253
- onRevealPath: handleRevealPath,
254
- placeholderLabel: t('general:selectLabel', {
255
- label: hasMany ? collectionLabel : collectionLabelSingular
256
- }),
257
- previousPath: hasMany ? undefined : previousPath,
258
- selectionCount: selectionCount,
259
- selectionCountLabel: t('general:selectedCount', {
260
- count: selectionCount,
261
- label: collectionLabel
262
- }),
263
- showMoveToRoot: showMoveToRoot
231
+ })]
264
232
  })]
265
233
  });
266
234
  };
@@ -269,8 +237,7 @@ export const HierarchyModal = props => {
269
237
  hierarchyCollectionSlug,
270
238
  modalSlug,
271
239
  parentFieldName,
272
- reopenCount,
273
- useAsTitle
240
+ reopenCount
274
241
  } = props;
275
242
  const {
276
243
  refreshTree
@@ -320,15 +287,11 @@ export const HierarchyModal = props => {
320
287
  void columnBrowserRef.current.refreshColumn(createParentId);
321
288
  }
322
289
  if (modalContentRef.current && doc?.id) {
323
- const newItemTitle = useAsTitle ? doc[useAsTitle] : undefined;
324
- modalContentRef.current.selectItem({
325
- id: doc.id,
326
- title: typeof newItemTitle === 'string' ? newItemTitle : undefined
327
- });
290
+ modalContentRef.current.selectItem(doc.id);
328
291
  }
329
292
  refreshTree(hierarchyCollectionSlug);
330
293
  closeDocumentDrawer();
331
- }, [closeDocumentDrawer, createParentId, hierarchyCollectionSlug, refreshTree, useAsTitle]);
294
+ }, [closeDocumentDrawer, createParentId, hierarchyCollectionSlug, refreshTree]);
332
295
  // Memoize the content - only depends on stable values
333
296
  const modalContent = useMemo(() => /*#__PURE__*/_jsx(HierarchyModalContent, {
334
297
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","useEffectEvent","useConfig","useHierarchy","useTranslation","DialogBody","DialogHeader","DialogModal","useDocumentDrawer","DrawerDepthProvider","HierarchyColumnBrowser","fetchAncestorPaths","HierarchyModalFooter","baseClass","HierarchyModalContent","baseFilter","closeModal","columnBrowserRef","confirmLabel","disabledIds","filterByCollection","hasMany","hierarchyCollectionSlug","Icon","initialSelections","onCreateNew","onMoveToRoot","onSave","parentFieldName","ref","showMoveToRoot","title","useAsTitle","i18n","t","config","routes","api","serverURL","getEntityConfig","collectionConfig","collectionSlug","collectionLabel","labels","plural","collectionLabelSingular","singular","parentFieldName_internal","hierarchy","initialExpandedPath","setInitialExpandedPath","previousPath","setPreviousPath","isLoadingPath","setIsLoadingPath","Boolean","length","hasLoadedPathRef","mapSelections","ids","map","Map","id","set","path","selections","setSelections","loadAncestorPaths","firstId","itemIds","paths","firstPath","get","ancestorIds","prev","next","has","current","selectedIds","Set","keys","selectedDescendantCounts","counts","values","segment","handleSave","handleSelect","clear","delete","handleClearAll","handleRevealPath","revealPath","handleCancel","selectItem","itemTitle","selectionCount","size","destinationPath","undefined","value","_jsxs","className","_jsx","onClose","showClose","label","onSelect","isConfirmDisabled","isMultiSelect","onClear","onConfirm","onRevealPath","placeholderLabel","selectionCountLabel","count","HierarchyModal","props","modalSlug","reopenCount","refreshTree","createParentId","setCreateParentId","modalContentRef","documentDrawerKey","setDocumentDrawerKey","documentDrawerSlug","DocumentDrawer","closeDrawer","closeDocumentDrawer","openDrawer","openDocumentDrawer","drawerSlug","handleCreateNew","parentId","setTimeout","handleDocumentSave","doc","refreshColumn","newItemTitle","modalContent","_Fragment","closeOnBlur","slug","initialData"],"sources":["../../../../src/elements/Hierarchy/Modal/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 { PathSegment } from '../ColumnBrowser/types.js'\nimport type { HierarchyModalInternalProps, SelectionWithPath } from './types.js'\n\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { DialogBody, DialogHeader, DialogModal } from '../../Dialog/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { DrawerDepthProvider } from '../../Drawer/index.js'\nimport { HierarchyColumnBrowser } from '../ColumnBrowser/index.js'\nimport { fetchAncestorPaths } from './fetchAncestorPath.js'\nimport { HierarchyModalFooter } from './Footer/index.js'\nimport './index.css'\n\nexport const baseClass = 'hierarchy-modal'\n\ntype HierarchyModalContentProps = {\n columnBrowserRef?: React.RefObject<HierarchyColumnBrowserRef | null>\n onCreateNew?: (params: { parentId: null | number | string }) => void\n} & HierarchyModalInternalProps\n\nexport type HierarchyModalContentRef = {\n selectItem: (params: { id: number | string; title?: string }) => void\n}\n\nexport const HierarchyModalContent = function HierarchyModalContent({\n baseFilter,\n closeModal,\n columnBrowserRef,\n confirmLabel,\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 title,\n useAsTitle,\n}: { ref?: React.RefObject<HierarchyModalContentRef | null> } & HierarchyModalContentProps) {\n const { i18n, t } = useTranslation()\n // NOTE: Do NOT use useModal() here - it causes re-renders when any modal state changes\n // Use closeModal 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 const collectionLabelSingular = collectionConfig\n ? getTranslation(collectionConfig.labels?.singular || 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 [previousPath, setPreviousPath] = useState<PathSegment[] | undefined>()\n const [isLoadingPath, setIsLoadingPath] = useState(Boolean(initialSelections?.length))\n const hasLoadedPathRef = React.useRef(false)\n\n const mapSelections = useCallback(\n (ids?: (number | string)[]) => {\n const map = new Map<number | string, SelectionWithPath>()\n\n // Single-select is a move: the existing value is the origin shown in the footer, not a\n // pre-made choice. Multi-select edits a set, so existing values start checked.\n if (ids && hasMany) {\n for (const id of ids) {\n map.set(id, { id, path: [] })\n }\n }\n\n return map\n },\n [hasMany],\n )\n\n const [selections, setSelections] = useState<Map<number | string, SelectionWithPath>>(() =>\n mapSelections(initialSelections),\n )\n\n const loadAncestorPaths = useEffectEvent(async (ids?: (number | string)[]) => {\n const firstId = ids?.[0]\n\n if (!firstId) {\n setIsLoadingPath(false)\n return\n }\n\n // Multi-select marks the ancestors of every checked item as partially selected, so all of\n // their paths are needed. Single-select only needs the origin of the move.\n const itemIds = hasMany ? ids : [firstId]\n\n try {\n const paths = await fetchAncestorPaths({\n api,\n collectionSlug: hierarchyCollectionSlug,\n itemIds,\n parentFieldName: parentFieldName_internal,\n serverURL,\n useAsTitle: useAsTitle || 'id',\n })\n\n const firstPath = paths.get(firstId)\n setInitialExpandedPath(firstPath?.ancestorIds)\n setPreviousPath(firstPath?.path)\n\n // Selections seeded from the field's value start without a path - backfill them so their\n // ancestors can be marked, and so the footer breadcrumbs read correctly\n if (hasMany) {\n setSelections((prev) => {\n const next = new Map(prev)\n\n for (const [id, { path }] of paths) {\n if (next.has(id)) {\n next.set(id, { id, path })\n }\n }\n\n return next\n })\n }\n } catch {\n // Silently handle fetch errors - will just start at root\n } finally {\n setIsLoadingPath(false)\n }\n })\n\n // Load ancestor paths on mount\n useEffect(() => {\n if (hasLoadedPathRef.current) {\n return\n }\n hasLoadedPathRef.current = true\n void loadAncestorPaths(initialSelections)\n }, [initialSelections])\n\n const selectedIds = useMemo(() => new Set(selections.keys()), [selections])\n\n // Every ancestor of a checked item gets a badge counting the picks below it, so a collapsed\n // branch still shows how much is selected inside\n const selectedDescendantCounts = useMemo(() => {\n const counts = new Map<number | string, number>()\n\n for (const { id, path } of selections.values()) {\n for (const segment of path) {\n if (segment.id !== id) {\n counts.set(segment.id, (counts.get(segment.id) ?? 0) + 1)\n }\n }\n }\n\n return counts\n }, [selections])\n\n const handleSave = useCallback(() => {\n onSave({ closeModal, selections })\n }, [onSave, selections, closeModal])\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 // Single select replaces rather than toggles - clicking an item always makes it the\n // destination, so re-clicking the open folder cannot leave the move with no target\n if (!hasMany) {\n next.clear()\n next.set(id, { id, path })\n return next\n }\n\n if (next.has(id)) {\n next.delete(id)\n } else {\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 const handleRevealPath = useCallback(\n (path: PathSegment[]) => {\n void columnBrowserRef?.current?.revealPath(path)\n },\n [columnBrowserRef],\n )\n\n const handleCancel = useCallback(() => {\n setSelections(mapSelections(initialSelections))\n closeModal()\n }, [closeModal, initialSelections, mapSelections])\n\n // Expose selectItem for programmatic selection (e.g., after creating a new item)\n useImperativeHandle(\n ref,\n () => ({\n selectItem: ({ id, title: itemTitle }: { id: number | string; title?: string }) => {\n setSelections((prev) => {\n const next = new Map(prev)\n if (!hasMany) {\n next.clear()\n }\n // A newly created item has no browsed path, so its own title is the whole breadcrumb\n next.set(id, { id, path: itemTitle ? [{ id, title: itemTitle }] : [] })\n return next\n })\n },\n }),\n [hasMany],\n )\n\n const selectionCount = selections.size\n const destinationPath = hasMany ? undefined : selections.values().next().value?.path\n\n return (\n <div className={`${baseClass}__content`}>\n <DialogHeader\n onClose={handleCancel}\n showClose\n title={title || t('general:selectLabel', { label: collectionLabel })}\n />\n <DialogBody>\n <div className={`${baseClass}__columns`}>\n <HierarchyColumnBrowser\n baseFilter={baseFilter}\n disabledIds={disabledIds}\n filterByCollection={filterByCollection}\n hasMany={hasMany}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n initialExpandedPath={initialExpandedPath}\n isLoadingPath={isLoadingPath}\n onCreateNew={onCreateNew}\n onSelect={handleSelect}\n parentFieldName={parentFieldName}\n ref={columnBrowserRef}\n selectedDescendantCounts={selectedDescendantCounts}\n selectedIds={selectedIds}\n useAsTitle={useAsTitle}\n />\n </div>\n </DialogBody>\n <HierarchyModalFooter\n confirmLabel={confirmLabel || (hasMany ? t('general:confirm') : t('general:move'))}\n destinationPath={destinationPath}\n Icon={Icon}\n isConfirmDisabled={selectionCount === 0}\n isMultiSelect={hasMany}\n onClear={handleClearAll}\n onConfirm={handleSave}\n onMoveToRoot={onMoveToRoot}\n onRevealPath={handleRevealPath}\n placeholderLabel={t('general:selectLabel', {\n label: hasMany ? collectionLabel : collectionLabelSingular,\n })}\n previousPath={hasMany ? undefined : previousPath}\n selectionCount={selectionCount}\n selectionCountLabel={t('general:selectedCount', {\n count: selectionCount,\n label: collectionLabel,\n })}\n showMoveToRoot={showMoveToRoot}\n />\n </div>\n )\n}\n\nexport const HierarchyModal: React.FC<HierarchyModalInternalProps> = (props) => {\n const { hierarchyCollectionSlug, modalSlug, parentFieldName, reopenCount, useAsTitle } = props\n\n const { refreshTree } = useHierarchy()\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 modalContentRef = useRef<HierarchyModalContentRef | 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 = `${modalSlug}-create-doc`\n\n // Document drawer for creating new items - rendered OUTSIDE the modal 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 (modalContentRef.current && doc?.id) {\n const newItemTitle = useAsTitle ? doc[useAsTitle] : undefined\n\n modalContentRef.current.selectItem({\n id: doc.id,\n title: typeof newItemTitle === 'string' ? newItemTitle : undefined,\n })\n }\n refreshTree(hierarchyCollectionSlug)\n closeDocumentDrawer()\n },\n [closeDocumentDrawer, createParentId, hierarchyCollectionSlug, refreshTree, useAsTitle],\n )\n\n // Memoize the content - only depends on stable values\n const modalContent = useMemo(\n () => (\n <HierarchyModalContent\n key={reopenCount}\n {...props}\n columnBrowserRef={columnBrowserRef}\n onCreateNew={handleCreateNew}\n ref={modalContentRef}\n />\n ),\n [handleCreateNew, props, reopenCount],\n )\n\n return (\n <>\n <DialogModal className={baseClass} closeOnBlur size=\"large\" slug={modalSlug}>\n {modalContent}\n </DialogModal>\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":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","useEffectEvent","TagIcon","useConfig","useHierarchy","useTranslation","Button","DialogBody","DialogHeader","DialogModal","useDocumentDrawer","DrawerDepthProvider","HierarchyColumnBrowser","fetchAncestorPath","baseClass","HierarchyModalContent","baseFilter","closeModal","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","mapSelections","ids","map","Map","id","set","path","loadAncestorPath","itemId","current","selections","setSelections","selectedIds","Set","keys","ancestorsWithSelections","handleSave","handleSelect","prev","next","has","delete","clear","handleClearAll","handleCancel","selectItem","selectionCount","size","_jsxs","className","_jsx","title","label","buttonStyle","margin","onClick","_Fragment","count","onSelect","HierarchyModal","props","modalSlug","reopenCount","refreshTree","createParentId","setCreateParentId","modalContentRef","documentDrawerKey","setDocumentDrawerKey","documentDrawerSlug","DocumentDrawer","closeDrawer","closeDocumentDrawer","openDrawer","openDocumentDrawer","drawerSlug","handleCreateNew","parentId","setTimeout","handleDocumentSave","doc","undefined","refreshColumn","modalContent","closeOnBlur","slug","initialData"],"sources":["../../../../src/elements/Hierarchy/Modal/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 { HierarchyModalInternalProps, 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 { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DialogBody, DialogHeader, DialogModal } from '../../Dialog/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { DrawerDepthProvider } from '../../Drawer/index.js'\nimport { HierarchyColumnBrowser } from '../ColumnBrowser/index.js'\nimport { fetchAncestorPath } from './fetchAncestorPath.js'\nimport './index.css'\n\nexport const baseClass = 'hierarchy-modal'\n\ntype HierarchyModalContentProps = {\n columnBrowserRef?: React.RefObject<HierarchyColumnBrowserRef | null>\n onCreateNew?: (params: { parentId: null | number | string }) => void\n} & HierarchyModalInternalProps\n\nexport type HierarchyModalContentRef = {\n selectItem: (id: number | string) => void\n}\n\nexport const HierarchyModalContent = function HierarchyModalContent({\n baseFilter,\n closeModal,\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<HierarchyModalContentRef | null> } & HierarchyModalContentProps) {\n const { i18n, t } = useTranslation()\n // NOTE: Do NOT use useModal() here - it causes re-renders when any modal state changes\n // Use closeModal 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 mapSelections = useCallback((ids?: (number | string)[]) => {\n const map = new Map<number | string, SelectionWithPath>()\n\n if (ids) {\n for (const id of ids) {\n map.set(id, { id, path: [] })\n }\n }\n\n return map\n }, [])\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 mapSelections(initialSelections),\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 handleSave = useCallback(() => {\n onSave({ closeModal, selections })\n }, [onSave, selections, closeModal])\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 const handleCancel = useCallback(() => {\n setSelections(mapSelections(initialSelections))\n closeModal()\n }, [closeModal, initialSelections, mapSelections])\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 <DialogHeader title={t('general:selectValue', { label: collectionLabel })}>\n <div className={`${baseClass}__header-actions`}>\n <Button buttonStyle=\"secondary\" margin={false} onClick={handleCancel} size=\"medium\">\n {t('general:cancel')}\n </Button>\n <Button margin={false} onClick={handleSave} size=\"medium\">\n {t('general:select')}\n </Button>\n </div>\n </DialogHeader>\n <DialogBody>\n <div className={`${baseClass}__subheader`}>\n <div className={`${baseClass}__subheader-left`}>\n {Icon || <TagIcon />}\n <h4>{collectionLabel}</h4>\n </div>\n <div className={`${baseClass}__subheader-right`}>\n {showMoveToRoot && onMoveToRoot && (\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__move-to-root`}\n margin={false}\n onClick={onMoveToRoot}\n size=\"medium\"\n >\n {t('hierarchy:moveToRoot')}\n </Button>\n )}\n {Boolean(selectionCount) && (\n <>\n {\n <span className={`${baseClass}__selection-info`}>\n {t('general:selectedCount', { count: selectionCount, label: '' })}\n </span>\n }\n <span>—</span>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__clear-all`}\n margin={false}\n onClick={handleClearAll}\n size=\"medium\"\n >\n {t('general:clear')}\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 </DialogBody>\n </div>\n )\n}\n\nexport const HierarchyModal: React.FC<HierarchyModalInternalProps> = (props) => {\n const { hierarchyCollectionSlug, modalSlug, parentFieldName, reopenCount } = props\n\n const { refreshTree } = useHierarchy()\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 modalContentRef = useRef<HierarchyModalContentRef | 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 = `${modalSlug}-create-doc`\n\n // Document drawer for creating new items - rendered OUTSIDE the modal 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 (modalContentRef.current && doc?.id) {\n modalContentRef.current.selectItem(doc.id)\n }\n refreshTree(hierarchyCollectionSlug)\n closeDocumentDrawer()\n },\n [closeDocumentDrawer, createParentId, hierarchyCollectionSlug, refreshTree],\n )\n\n // Memoize the content - only depends on stable values\n const modalContent = useMemo(\n () => (\n <HierarchyModalContent\n key={reopenCount}\n {...props}\n columnBrowserRef={columnBrowserRef}\n onCreateNew={handleCreateNew}\n ref={modalContentRef}\n />\n ),\n [handleCreateNew, props, reopenCount],\n )\n\n return (\n <>\n <DialogModal className={baseClass} closeOnBlur size=\"large\" slug={modalSlug}>\n {modalContent}\n </DialogModal>\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":[]}
@@ -20,17 +20,7 @@ export type UseHierarchyModalArgs = {
20
20
  Icon?: React.ReactNode;
21
21
  };
22
22
  export type HierarchyModalProps = {
23
- /**
24
- * Label for the footer's primary action.
25
- * Defaults to "Confirm" when `hasMany`, otherwise "Move".
26
- */
27
- readonly confirmLabel?: string;
28
23
  readonly hasMany?: boolean;
29
- /**
30
- * The item(s) already assigned when the modal opens.
31
- * In multi-select mode these start checked; in single-select mode the first entry is shown
32
- * in the footer as the origin of the move and the browser expands to reveal it.
33
- */
34
24
  readonly initialSelections?: (number | string)[];
35
25
  readonly onMoveToRoot?: () => void;
36
26
  readonly onSave: (params: {
@@ -38,11 +28,6 @@ export type HierarchyModalProps = {
38
28
  selections: Map<number | string, SelectionWithPath>;
39
29
  }) => void;
40
30
  readonly showMoveToRoot?: boolean;
41
- /**
42
- * Header title, e.g. `Move "My Post"` or "Move 3 Documents".
43
- * Defaults to "Select {collection label}".
44
- */
45
- readonly title?: string;
46
31
  };
47
32
  export type HierarchyModalInternalProps = {
48
33
  /** Base filter constraint (e.g., tenant filter) to apply to all queries */