@payloadcms/ui 3.80.0-internal.21e9c47 → 3.80.0-internal.52ab774

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 (321) hide show
  1. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  2. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +53 -3
  3. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  4. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +541 -0
  5. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -0
  6. package/dist/elements/Combobox/index.d.ts.map +1 -1
  7. package/dist/elements/Combobox/index.js +1 -0
  8. package/dist/elements/Combobox/index.js.map +1 -1
  9. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -0
  10. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/Column/index.js +5 -5
  11. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -0
  12. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/Column/index.scss +1 -1
  13. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -0
  14. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/ColumnItem/index.js +3 -3
  15. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -0
  16. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/ColumnItem/index.scss +1 -1
  17. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/index.d.ts +1 -1
  18. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -0
  19. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/index.js +13 -10
  20. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -0
  21. package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/types.d.ts +3 -0
  22. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -0
  23. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -0
  24. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -0
  25. package/dist/elements/{HierarchyButton → Hierarchy/DocHeaderButton}/index.js +6 -6
  26. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -0
  27. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts.map +1 -0
  28. package/dist/elements/{HierarchyButton → Hierarchy/DocHeaderButton}/index.server.js +3 -3
  29. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -0
  30. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +1 -0
  31. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +1 -0
  32. package/dist/elements/{HierarchyDrawer → Hierarchy}/Drawer/index.d.ts +3 -3
  33. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +1 -0
  34. package/dist/elements/{HierarchyDrawer → Hierarchy}/Drawer/index.js +4 -2
  35. package/dist/elements/Hierarchy/Drawer/index.js.map +1 -0
  36. package/dist/elements/{HierarchyDrawer → Hierarchy/Drawer}/types.d.ts +4 -1
  37. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +1 -0
  38. package/dist/elements/Hierarchy/Drawer/types.js.map +1 -0
  39. package/dist/elements/{HierarchyDrawer/index.d.ts → Hierarchy/Drawer/useHierarchyDrawer.d.ts} +1 -1
  40. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +1 -0
  41. package/dist/elements/{HierarchyDrawer/index.js → Hierarchy/Drawer/useHierarchyDrawer.js} +10 -8
  42. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +1 -0
  43. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -0
  44. package/dist/elements/{HierarchyField → Hierarchy/Field}/SelectedHierarchies.js +7 -16
  45. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -0
  46. package/dist/elements/{HierarchyField → Hierarchy/Field}/SelectedHierarchies.scss +1 -1
  47. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -0
  48. package/dist/elements/{HierarchyField → Hierarchy/Field}/index.client.js +17 -29
  49. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -0
  50. package/dist/elements/{HierarchyField → Hierarchy/Field}/index.scss +1 -1
  51. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -0
  52. package/dist/elements/{HierarchyField → Hierarchy/Field}/index.server.js +2 -2
  53. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -0
  54. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts +4 -0
  55. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts.map +1 -0
  56. package/dist/elements/Hierarchy/HydrateProvider/index.js +70 -0
  57. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -0
  58. package/dist/elements/{MoveMany → Hierarchy/MoveMany}/index.d.ts +3 -3
  59. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -0
  60. package/dist/elements/{MoveMany → Hierarchy/MoveMany}/index.js +10 -10
  61. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -0
  62. package/dist/elements/{MoveMany → Hierarchy/MoveMany}/index.scss +1 -1
  63. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts.map +1 -0
  64. package/dist/elements/{HierarchySearch → Hierarchy/Search}/HierarchySearchInput.js +5 -5
  65. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js.map +1 -0
  66. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts.map +1 -0
  67. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -0
  68. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts.map +1 -0
  69. package/dist/elements/{HierarchySearch → Hierarchy/Search}/HierarchySearchResults.js +2 -2
  70. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -0
  71. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -0
  72. package/dist/elements/{HierarchySearch → Hierarchy/Search}/index.js +2 -2
  73. package/dist/elements/Hierarchy/Search/index.js.map +1 -0
  74. package/dist/elements/{HierarchySearch → Hierarchy/Search}/index.scss +1 -1
  75. package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -0
  76. package/dist/elements/Hierarchy/Search/types.js.map +1 -0
  77. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -0
  78. package/dist/elements/{HierarchySearch → Hierarchy/Search}/useHierarchySearch.js +2 -2
  79. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -0
  80. package/dist/elements/{HierarchyTree → Hierarchy/Tree}/HierarchySidebarTab.d.ts +1 -0
  81. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -0
  82. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +194 -0
  83. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -0
  84. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -0
  85. package/dist/elements/{HierarchyTree → Hierarchy/Tree}/HierarchySidebarTab.server.js +20 -10
  86. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -0
  87. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts.map +1 -0
  88. package/dist/elements/{Tree → Hierarchy/Tree}/LoadMore/LoadMoreButton.js +1 -1
  89. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js.map +1 -0
  90. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -0
  91. package/dist/elements/{Tree → Hierarchy/Tree}/LoadMore/index.js +1 -1
  92. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -0
  93. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +1 -0
  94. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +1 -0
  95. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -0
  96. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -0
  97. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +5 -0
  98. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -0
  99. package/dist/elements/{Tree → Hierarchy/Tree}/TreeNode/index.js +11 -4
  100. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -0
  101. package/dist/elements/{Tree → Hierarchy/Tree}/TreeNode/index.scss +1 -1
  102. package/dist/elements/{HierarchyTree → Hierarchy/Tree}/index.d.ts +1 -0
  103. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -0
  104. package/dist/elements/Hierarchy/Tree/index.js +305 -0
  105. package/dist/elements/Hierarchy/Tree/index.js.map +1 -0
  106. package/dist/elements/{Tree → Hierarchy/Tree}/index.scss +2 -5
  107. package/dist/elements/{Tree → Hierarchy/Tree}/types.d.ts +31 -22
  108. package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -0
  109. package/dist/elements/Hierarchy/Tree/types.js.map +1 -0
  110. package/dist/elements/Hierarchy/Tree/useChildren.d.ts +32 -0
  111. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -0
  112. package/dist/elements/{Tree → Hierarchy/Tree}/useChildren.js +52 -32
  113. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -0
  114. package/dist/elements/Link/index.d.ts.map +1 -1
  115. package/dist/elements/LoadMoreRow/index.js +1 -1
  116. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  117. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  118. package/dist/elements/PublishButton/index.js +3 -1
  119. package/dist/elements/PublishButton/index.js.map +1 -1
  120. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  121. package/dist/elements/RelationshipTable/index.js +14 -9
  122. package/dist/elements/RelationshipTable/index.js.map +1 -1
  123. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +1 -1
  124. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  125. package/dist/elements/Toasts/fieldErrors.d.ts +4 -0
  126. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  127. package/dist/elements/Toasts/fieldErrors.js +4 -2
  128. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  129. package/dist/elements/Toasts/fieldErrors.spec.js +46 -0
  130. package/dist/elements/Toasts/fieldErrors.spec.js.map +1 -0
  131. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  132. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +8 -6
  133. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  134. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  135. package/dist/elements/WhereBuilder/field-types.js +2 -5
  136. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  137. package/dist/exports/client/{DatePicker-CL2EGBVQ.js → DatePicker-T2DMDMM5.js} +2 -2
  138. package/dist/exports/client/chunk-WDZJLNNB.js +29 -0
  139. package/dist/exports/client/{chunk-SH42NW5R.js.map → chunk-WDZJLNNB.js.map} +4 -4
  140. package/dist/exports/client/index.d.ts +11 -15
  141. package/dist/exports/client/index.d.ts.map +1 -1
  142. package/dist/exports/client/index.js +26 -26
  143. package/dist/exports/client/index.js.map +4 -4
  144. package/dist/exports/rsc/index.d.ts +3 -3
  145. package/dist/exports/rsc/index.d.ts.map +1 -1
  146. package/dist/exports/rsc/index.js +3 -3
  147. package/dist/exports/rsc/index.js.map +1 -1
  148. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  149. package/dist/forms/Form/mergeServerFormState.js +101 -24
  150. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  151. package/dist/icons/TableView/index.d.ts +3 -0
  152. package/dist/icons/TableView/index.d.ts.map +1 -0
  153. package/dist/icons/TableView/index.js +16 -0
  154. package/dist/icons/TableView/index.js.map +1 -0
  155. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  156. package/dist/providers/Hierarchy/index.js +29 -8
  157. package/dist/providers/Hierarchy/index.js.map +1 -1
  158. package/dist/providers/Hierarchy/types.d.ts +10 -5
  159. package/dist/providers/Hierarchy/types.d.ts.map +1 -1
  160. package/dist/providers/Hierarchy/types.js.map +1 -1
  161. package/dist/providers/SidebarTabs/index.d.ts +19 -0
  162. package/dist/providers/SidebarTabs/index.d.ts.map +1 -0
  163. package/dist/providers/SidebarTabs/index.js +24 -0
  164. package/dist/providers/SidebarTabs/index.js.map +1 -0
  165. package/dist/styles.css +1 -1
  166. package/dist/views/Edit/index.d.ts.map +1 -1
  167. package/dist/views/Edit/index.js +12 -3
  168. package/dist/views/Edit/index.js.map +1 -1
  169. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  170. package/dist/views/HierarchyList/DocumentListSelection/index.js +147 -86
  171. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  172. package/dist/views/HierarchyList/HierarchyListHeader/index.js +7 -6
  173. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  174. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +7 -3
  175. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  176. package/dist/views/HierarchyList/HierarchyTable/index.js +19 -18
  177. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  178. package/dist/views/HierarchyList/index.d.ts.map +1 -1
  179. package/dist/views/HierarchyList/index.js +3 -1
  180. package/dist/views/HierarchyList/index.js.map +1 -1
  181. package/package.json +4 -4
  182. package/dist/elements/HierarchyButton/index.d.ts.map +0 -1
  183. package/dist/elements/HierarchyButton/index.js.map +0 -1
  184. package/dist/elements/HierarchyButton/index.server.d.ts.map +0 -1
  185. package/dist/elements/HierarchyButton/index.server.js.map +0 -1
  186. package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts.map +0 -1
  187. package/dist/elements/HierarchyColumnBrowser/Column/index.js.map +0 -1
  188. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts.map +0 -1
  189. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js.map +0 -1
  190. package/dist/elements/HierarchyColumnBrowser/index.d.ts.map +0 -1
  191. package/dist/elements/HierarchyColumnBrowser/index.js.map +0 -1
  192. package/dist/elements/HierarchyColumnBrowser/types.d.ts.map +0 -1
  193. package/dist/elements/HierarchyColumnBrowser/types.js.map +0 -1
  194. package/dist/elements/HierarchyDrawer/Drawer/index.d.ts.map +0 -1
  195. package/dist/elements/HierarchyDrawer/Drawer/index.js.map +0 -1
  196. package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts.map +0 -1
  197. package/dist/elements/HierarchyDrawer/fetchAncestorPath.js.map +0 -1
  198. package/dist/elements/HierarchyDrawer/index.d.ts.map +0 -1
  199. package/dist/elements/HierarchyDrawer/index.js.map +0 -1
  200. package/dist/elements/HierarchyDrawer/types.d.ts.map +0 -1
  201. package/dist/elements/HierarchyDrawer/types.js.map +0 -1
  202. package/dist/elements/HierarchyField/SelectedHierarchies.d.ts.map +0 -1
  203. package/dist/elements/HierarchyField/SelectedHierarchies.js.map +0 -1
  204. package/dist/elements/HierarchyField/index.client.d.ts.map +0 -1
  205. package/dist/elements/HierarchyField/index.client.js.map +0 -1
  206. package/dist/elements/HierarchyField/index.server.d.ts.map +0 -1
  207. package/dist/elements/HierarchyField/index.server.js.map +0 -1
  208. package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts.map +0 -1
  209. package/dist/elements/HierarchySearch/HierarchySearchInput.js.map +0 -1
  210. package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts.map +0 -1
  211. package/dist/elements/HierarchySearch/HierarchySearchResultItem.js.map +0 -1
  212. package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts.map +0 -1
  213. package/dist/elements/HierarchySearch/HierarchySearchResults.js.map +0 -1
  214. package/dist/elements/HierarchySearch/index.d.ts.map +0 -1
  215. package/dist/elements/HierarchySearch/index.js.map +0 -1
  216. package/dist/elements/HierarchySearch/types.d.ts.map +0 -1
  217. package/dist/elements/HierarchySearch/types.js.map +0 -1
  218. package/dist/elements/HierarchySearch/useHierarchySearch.d.ts.map +0 -1
  219. package/dist/elements/HierarchySearch/useHierarchySearch.js.map +0 -1
  220. package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts.map +0 -1
  221. package/dist/elements/HierarchyTree/HierarchySidebarTab.js +0 -156
  222. package/dist/elements/HierarchyTree/HierarchySidebarTab.js.map +0 -1
  223. package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts.map +0 -1
  224. package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js.map +0 -1
  225. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts.map +0 -1
  226. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js +0 -36
  227. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js.map +0 -1
  228. package/dist/elements/HierarchyTree/LoadMore/index.d.ts.map +0 -1
  229. package/dist/elements/HierarchyTree/LoadMore/index.js +0 -29
  230. package/dist/elements/HierarchyTree/LoadMore/index.js.map +0 -1
  231. package/dist/elements/HierarchyTree/LoadMore/index.scss +0 -26
  232. package/dist/elements/HierarchyTree/TreeConnector.d.ts.map +0 -1
  233. package/dist/elements/HierarchyTree/TreeConnector.js.map +0 -1
  234. package/dist/elements/HierarchyTree/TreeFocusContext.d.ts.map +0 -1
  235. package/dist/elements/HierarchyTree/TreeFocusContext.js.map +0 -1
  236. package/dist/elements/HierarchyTree/TreeNode/index.d.ts +0 -5
  237. package/dist/elements/HierarchyTree/TreeNode/index.d.ts.map +0 -1
  238. package/dist/elements/HierarchyTree/TreeNode/index.js +0 -201
  239. package/dist/elements/HierarchyTree/TreeNode/index.js.map +0 -1
  240. package/dist/elements/HierarchyTree/TreeNode/index.scss +0 -99
  241. package/dist/elements/HierarchyTree/index.d.ts.map +0 -1
  242. package/dist/elements/HierarchyTree/index.js +0 -64
  243. package/dist/elements/HierarchyTree/index.js.map +0 -1
  244. package/dist/elements/HierarchyTree/index.scss +0 -42
  245. package/dist/elements/HierarchyTree/types.d.ts +0 -55
  246. package/dist/elements/HierarchyTree/types.d.ts.map +0 -1
  247. package/dist/elements/HierarchyTree/types.js.map +0 -1
  248. package/dist/elements/HierarchyTree/useChildren.d.ts +0 -26
  249. package/dist/elements/HierarchyTree/useChildren.d.ts.map +0 -1
  250. package/dist/elements/HierarchyTree/useChildren.js +0 -150
  251. package/dist/elements/HierarchyTree/useChildren.js.map +0 -1
  252. package/dist/elements/HierarchyTree/useTreeState.d.ts +0 -9
  253. package/dist/elements/HierarchyTree/useTreeState.d.ts.map +0 -1
  254. package/dist/elements/HierarchyTree/useTreeState.js +0 -50
  255. package/dist/elements/HierarchyTree/useTreeState.js.map +0 -1
  256. package/dist/elements/HydrateHierarchyProvider/index.d.ts +0 -4
  257. package/dist/elements/HydrateHierarchyProvider/index.d.ts.map +0 -1
  258. package/dist/elements/HydrateHierarchyProvider/index.js +0 -67
  259. package/dist/elements/HydrateHierarchyProvider/index.js.map +0 -1
  260. package/dist/elements/MoveMany/index.d.ts.map +0 -1
  261. package/dist/elements/MoveMany/index.js.map +0 -1
  262. package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
  263. package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
  264. package/dist/elements/Tree/LoadMore/LoadMoreButton.js.map +0 -1
  265. package/dist/elements/Tree/LoadMore/index.d.ts +0 -12
  266. package/dist/elements/Tree/LoadMore/index.d.ts.map +0 -1
  267. package/dist/elements/Tree/LoadMore/index.js.map +0 -1
  268. package/dist/elements/Tree/TreeConnector.d.ts +0 -7
  269. package/dist/elements/Tree/TreeConnector.d.ts.map +0 -1
  270. package/dist/elements/Tree/TreeConnector.js +0 -23
  271. package/dist/elements/Tree/TreeConnector.js.map +0 -1
  272. package/dist/elements/Tree/TreeFocusContext.d.ts +0 -28
  273. package/dist/elements/Tree/TreeFocusContext.d.ts.map +0 -1
  274. package/dist/elements/Tree/TreeFocusContext.js +0 -140
  275. package/dist/elements/Tree/TreeFocusContext.js.map +0 -1
  276. package/dist/elements/Tree/TreeNode/index.d.ts +0 -5
  277. package/dist/elements/Tree/TreeNode/index.d.ts.map +0 -1
  278. package/dist/elements/Tree/TreeNode/index.js.map +0 -1
  279. package/dist/elements/Tree/index.d.ts +0 -5
  280. package/dist/elements/Tree/index.d.ts.map +0 -1
  281. package/dist/elements/Tree/index.js +0 -258
  282. package/dist/elements/Tree/index.js.map +0 -1
  283. package/dist/elements/Tree/types.d.ts.map +0 -1
  284. package/dist/elements/Tree/types.js +0 -2
  285. package/dist/elements/Tree/types.js.map +0 -1
  286. package/dist/elements/Tree/useChildren.d.ts +0 -25
  287. package/dist/elements/Tree/useChildren.d.ts.map +0 -1
  288. package/dist/elements/Tree/useChildren.js.map +0 -1
  289. package/dist/exports/client/chunk-SH42NW5R.js +0 -29
  290. /package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/Column/index.d.ts +0 -0
  291. /package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/ColumnItem/index.d.ts +0 -0
  292. /package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/index.scss +0 -0
  293. /package/dist/elements/{HierarchyColumnBrowser → Hierarchy/ColumnBrowser}/types.js +0 -0
  294. /package/dist/elements/{HierarchyButton → Hierarchy/DocHeaderButton}/index.d.ts +0 -0
  295. /package/dist/elements/{HierarchyButton → Hierarchy/DocHeaderButton}/index.scss +0 -0
  296. /package/dist/elements/{HierarchyButton → Hierarchy/DocHeaderButton}/index.server.d.ts +0 -0
  297. /package/dist/elements/{HierarchyDrawer → Hierarchy/Drawer}/fetchAncestorPath.d.ts +0 -0
  298. /package/dist/elements/{HierarchyDrawer → Hierarchy/Drawer}/fetchAncestorPath.js +0 -0
  299. /package/dist/elements/{HierarchyDrawer → Hierarchy}/Drawer/index.scss +0 -0
  300. /package/dist/elements/{HierarchyDrawer → Hierarchy/Drawer}/types.js +0 -0
  301. /package/dist/elements/{HierarchyField → Hierarchy/Field}/SelectedHierarchies.d.ts +0 -0
  302. /package/dist/elements/{HierarchyField → Hierarchy/Field}/index.client.d.ts +0 -0
  303. /package/dist/elements/{HierarchyField → Hierarchy/Field}/index.server.d.ts +0 -0
  304. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/HierarchySearchInput.d.ts +0 -0
  305. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/HierarchySearchResultItem.d.ts +0 -0
  306. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/HierarchySearchResultItem.js +0 -0
  307. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/HierarchySearchResults.d.ts +0 -0
  308. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/index.d.ts +0 -0
  309. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/types.d.ts +0 -0
  310. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/types.js +0 -0
  311. /package/dist/elements/{HierarchySearch → Hierarchy/Search}/useHierarchySearch.d.ts +0 -0
  312. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/HierarchySidebarTab.server.d.ts +0 -0
  313. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/LoadMore/LoadMoreButton.d.ts +0 -0
  314. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/LoadMore/index.d.ts +0 -0
  315. /package/dist/elements/{Tree → Hierarchy/Tree}/LoadMore/index.scss +0 -0
  316. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/TreeConnector.d.ts +0 -0
  317. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/TreeConnector.js +0 -0
  318. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/TreeFocusContext.d.ts +0 -0
  319. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/TreeFocusContext.js +0 -0
  320. /package/dist/elements/{HierarchyTree → Hierarchy/Tree}/types.js +0 -0
  321. /package/dist/exports/client/{DatePicker-CL2EGBVQ.js.map → DatePicker-T2DMDMM5.js.map} +0 -0
@@ -1,156 +0,0 @@
1
- 'use client';
2
-
3
- import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
- import { useRouter, useSearchParams } from 'next/navigation.js';
6
- import { formatAdminURL } from 'payload/shared';
7
- import React, { useCallback, useState } from 'react';
8
- import { HierarchySearch } from '../../elements/HierarchySearch/index.js';
9
- import { HydrateHierarchyProvider } from '../../elements/HydrateHierarchyProvider/index.js';
10
- import { useConfig } from '../../providers/Config/index.js';
11
- import { useHierarchy } from '../../providers/Hierarchy/index.js';
12
- import { useRouteTransition } from '../../providers/RouteTransition/index.js';
13
- import { HierarchyTree } from './index.js';
14
- export const HierarchySidebarTab = t0 => {
15
- const $ = _c(30);
16
- const {
17
- collectionSpecificOptions,
18
- hierarchyCollectionSlug,
19
- icon,
20
- initialData,
21
- initialExpandedNodes,
22
- initialSelectedFilters,
23
- parentFieldName,
24
- selectedNodeId: selectedNodeIdFromServer,
25
- treeLimit,
26
- typeFieldName,
27
- useAsTitle
28
- } = t0;
29
- const router = useRouter();
30
- const searchParams = useSearchParams();
31
- const {
32
- startRouteTransition
33
- } = useRouteTransition();
34
- const {
35
- config: t1
36
- } = useConfig();
37
- const {
38
- routes: t2
39
- } = t1;
40
- const {
41
- admin: adminRoute
42
- } = t2;
43
- const [isSearchActive, setIsSearchActive] = useState(false);
44
- let t3;
45
- if ($[0] !== initialSelectedFilters) {
46
- t3 = initialSelectedFilters ?? [];
47
- $[0] = initialSelectedFilters;
48
- $[1] = t3;
49
- } else {
50
- t3 = $[1];
51
- }
52
- const [selectedFilters, setSelectedFiltersLocal] = useState(t3);
53
- const {
54
- setSelectedFilters: setSelectedFiltersContext,
55
- treeRefreshKey,
56
- viewCollectionSlug
57
- } = useHierarchy();
58
- let t4;
59
- if ($[2] !== adminRoute || $[3] !== collectionSpecificOptions || $[4] !== hierarchyCollectionSlug || $[5] !== icon || $[6] !== initialData || $[7] !== initialExpandedNodes || $[8] !== initialSelectedFilters || $[9] !== isSearchActive || $[10] !== parentFieldName || $[11] !== router || $[12] !== searchParams || $[13] !== selectedFilters || $[14] !== selectedNodeIdFromServer || $[15] !== setSelectedFiltersContext || $[16] !== startRouteTransition || $[17] !== treeLimit || $[18] !== treeRefreshKey || $[19] !== typeFieldName || $[20] !== useAsTitle || $[21] !== viewCollectionSlug) {
60
- const parentParam = searchParams.get("parent");
61
- const isViewingThisCollection = viewCollectionSlug === hierarchyCollectionSlug;
62
- const selectedNodeId = isViewingThisCollection ? parentParam ?? selectedNodeIdFromServer ?? undefined : undefined;
63
- const effectiveInitialData = treeRefreshKey === 0 ? initialData : null;
64
- let t5;
65
- if ($[23] !== setSelectedFiltersContext) {
66
- t5 = filters => {
67
- setSelectedFiltersLocal(filters);
68
- setSelectedFiltersContext(filters);
69
- };
70
- $[23] = setSelectedFiltersContext;
71
- $[24] = t5;
72
- } else {
73
- t5 = $[24];
74
- }
75
- const handleFilterChange = t5;
76
- let t6;
77
- if ($[25] !== adminRoute || $[26] !== hierarchyCollectionSlug || $[27] !== router || $[28] !== startRouteTransition) {
78
- t6 = t7 => {
79
- const {
80
- id
81
- } = t7;
82
- const url = formatAdminURL({
83
- adminRoute,
84
- path: `/collections/${hierarchyCollectionSlug}?parent=${id}`
85
- });
86
- startRouteTransition(() => {
87
- router.push(url);
88
- router.refresh();
89
- });
90
- };
91
- $[25] = adminRoute;
92
- $[26] = hierarchyCollectionSlug;
93
- $[27] = router;
94
- $[28] = startRouteTransition;
95
- $[29] = t6;
96
- } else {
97
- t6 = $[29];
98
- }
99
- const handleNavigateToParent = t6;
100
- t4 = _jsxs(_Fragment, {
101
- children: [_jsx(HydrateHierarchyProvider, {
102
- collectionSlug: hierarchyCollectionSlug,
103
- expandedNodes: initialExpandedNodes,
104
- parentFieldName,
105
- selectedFilters: initialSelectedFilters,
106
- treeData: effectiveInitialData,
107
- treeLimit,
108
- typeFieldName
109
- }), _jsxs("div", {
110
- className: "hierarchy-sidebar-tab",
111
- children: [_jsx(HierarchySearch, {
112
- collectionSlug: hierarchyCollectionSlug,
113
- collectionSpecificOptions,
114
- isActive: isSearchActive,
115
- onActiveChange: setIsSearchActive,
116
- onFilterChange: handleFilterChange,
117
- onSelect: handleNavigateToParent,
118
- selectedFilters
119
- }), !isSearchActive && _jsx(HierarchyTree, {
120
- collectionSlug: hierarchyCollectionSlug,
121
- filterByCollections: selectedFilters.length > 0 ? selectedFilters : undefined,
122
- icon,
123
- initialData: effectiveInitialData,
124
- onNodeClick: handleNavigateToParent,
125
- selectedNodeId,
126
- useAsTitle
127
- }, `${hierarchyCollectionSlug}-${treeRefreshKey}`)]
128
- })]
129
- });
130
- $[2] = adminRoute;
131
- $[3] = collectionSpecificOptions;
132
- $[4] = hierarchyCollectionSlug;
133
- $[5] = icon;
134
- $[6] = initialData;
135
- $[7] = initialExpandedNodes;
136
- $[8] = initialSelectedFilters;
137
- $[9] = isSearchActive;
138
- $[10] = parentFieldName;
139
- $[11] = router;
140
- $[12] = searchParams;
141
- $[13] = selectedFilters;
142
- $[14] = selectedNodeIdFromServer;
143
- $[15] = setSelectedFiltersContext;
144
- $[16] = startRouteTransition;
145
- $[17] = treeLimit;
146
- $[18] = treeRefreshKey;
147
- $[19] = typeFieldName;
148
- $[20] = useAsTitle;
149
- $[21] = viewCollectionSlug;
150
- $[22] = t4;
151
- } else {
152
- t4 = $[22];
153
- }
154
- return t4;
155
- };
156
- //# sourceMappingURL=HierarchySidebarTab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HierarchySidebarTab.js","names":["c","_c","useRouter","useSearchParams","formatAdminURL","React","useCallback","useState","HierarchySearch","HydrateHierarchyProvider","useConfig","useHierarchy","useRouteTransition","HierarchyTree","HierarchySidebarTab","t0","$","collectionSpecificOptions","hierarchyCollectionSlug","icon","initialData","initialExpandedNodes","initialSelectedFilters","parentFieldName","selectedNodeId","selectedNodeIdFromServer","treeLimit","typeFieldName","useAsTitle","router","searchParams","startRouteTransition","config","t1","routes","t2","admin","adminRoute","isSearchActive","setIsSearchActive","t3","selectedFilters","setSelectedFiltersLocal","setSelectedFilters","setSelectedFiltersContext","treeRefreshKey","viewCollectionSlug","t4","parentParam","get","isViewingThisCollection","undefined","effectiveInitialData","t5","filters","handleFilterChange","t6","t7","id","url","path","push","refresh","handleNavigateToParent","_jsxs","_Fragment","children","_jsx","collectionSlug","expandedNodes","treeData","className","isActive","onActiveChange","onFilterChange","onSelect","filterByCollections","length","onNodeClick"],"sources":["../../../src/elements/HierarchyTree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { HierarchySearch } from '../../elements/HierarchySearch/index.js'\nimport { HydrateHierarchyProvider } from '../../elements/HydrateHierarchyProvider/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useHierarchy } from '../../providers/Hierarchy/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n collectionSpecificOptions?: { label: string; value: string }[]\n hierarchyCollectionSlug: string\n icon?: React.ReactNode\n initialData?: HierarchyInitialData | null\n initialExpandedNodes?: (number | string)[]\n initialSelectedFilters?: string[]\n parentFieldName?: string\n selectedNodeId?: null | string\n treeLimit?: number\n typeFieldName?: string\n useAsTitle?: string\n } & SidebarTabClientProps\n> = ({\n collectionSpecificOptions,\n hierarchyCollectionSlug,\n icon,\n initialData,\n initialExpandedNodes,\n initialSelectedFilters,\n parentFieldName,\n selectedNodeId: selectedNodeIdFromServer,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const router = useRouter()\n const searchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const [isSearchActive, setIsSearchActive] = useState(false)\n const [selectedFilters, setSelectedFiltersLocal] = useState<string[]>(\n initialSelectedFilters ?? [],\n )\n const {\n setSelectedFilters: setSelectedFiltersContext,\n treeRefreshKey,\n viewCollectionSlug,\n } = useHierarchy()\n\n // Only show selection if the current list view matches this tab's hierarchy collection\n const parentParam = searchParams.get('parent')\n const isViewingThisCollection = viewCollectionSlug === hierarchyCollectionSlug\n const selectedNodeId = isViewingThisCollection\n ? (parentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n // Only use initialData on first render - after refresh, fetch fresh data\n const effectiveInitialData = treeRefreshKey === 0 ? initialData : null\n\n const handleFilterChange = useCallback(\n (filters: string[]) => {\n setSelectedFiltersLocal(filters)\n setSelectedFiltersContext(filters)\n },\n [setSelectedFiltersContext],\n )\n\n const handleNavigateToParent = useCallback(\n ({ id }: { id: number | string }) => {\n const url = formatAdminURL({\n adminRoute,\n path: `/collections/${hierarchyCollectionSlug}?parent=${id}`,\n })\n startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, hierarchyCollectionSlug, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={effectiveInitialData}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n />\n <div className=\"hierarchy-sidebar-tab\">\n <HierarchySearch\n collectionSlug={hierarchyCollectionSlug}\n collectionSpecificOptions={collectionSpecificOptions}\n isActive={isSearchActive}\n onActiveChange={setIsSearchActive}\n onFilterChange={handleFilterChange}\n onSelect={handleNavigateToParent}\n selectedFilters={selectedFilters}\n />\n {!isSearchActive && (\n <HierarchyTree\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={selectedFilters.length > 0 ? selectedFilters : undefined}\n icon={icon}\n initialData={effectiveInitialData}\n key={`${hierarchyCollectionSlug}-${treeRefreshKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HierarchySidebarTab.server.d.ts","sourceRoot":"","sources":["../../../src/elements/HierarchyTree/HierarchySidebarTab.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAKpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,uBAAuB,EAAE,MAAM,CAAA;CAChC,GAAG,qBAAqB,CAAA;AAEzB,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CA+K9E,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HierarchySidebarTab.server.js","names":["getTranslation","createLocalReq","getInitialTreeData","PREFERENCE_KEYS","React","HierarchySidebarTab","TagIcon","RenderServerComponent","HierarchySidebarTabServer","hierarchyCollectionSlug","i18n","payload","searchParams","user","initialData","initialExpandedNodes","initialSelectedFilters","selectedNodeId","parentFieldName","treeLimit","typeFieldName","useAsTitle","collectionSpecificOptions","collectionConfig","collections","config","hierarchyConfig","hierarchy","undefined","IconComponent","admin","components","Icon","icon","Component","importMap","key","_jsx","color","parent","String","preferenceKey","HIERARCHY_TREE","docs","preferenceDocs","find","collection","limit","overrideAccess","where","and","equals","id","preferences","value","expandedNodes","selectedFilters","collectionSpecific","fieldName","relatedCollections","Object","keys","map","slug","relatedConfig","label","labels","plural","sort","a","b","localeCompare","selectedNodeParentId","ancestorIds","currentNodeId","isFirstIteration","node","findByID","depth","parentId","push","expandedSet","Set","forEach","add","Array","from","req","collectionSlug","expandedNodeIds","length","filterByCollections","error","logger","warn","err","msg"],"sources":["../../../src/elements/HierarchyTree/HierarchySidebarTab.server.tsx"],"sourcesContent":["import type { SidebarTabServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createLocalReq, getInitialTreeData } from 'payload'\nimport { PREFERENCE_KEYS } from 'payload/shared'\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { HierarchySidebarTab } from '../../exports/client/index.js'\nimport { TagIcon } from '../../icons/Tag/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\n\nexport type HierarchySidebarTabServerProps = {\n hierarchyCollectionSlug: string\n} & SidebarTabServerProps\n\nexport const HierarchySidebarTabServer: React.FC<HierarchySidebarTabServerProps> = async ({\n hierarchyCollectionSlug,\n i18n,\n payload,\n searchParams,\n user,\n}) => {\n if (!user) {\n return null\n }\n\n let initialData = null\n let initialExpandedNodes: (number | string)[] = []\n let initialSelectedFilters: string[] = []\n let selectedNodeId: null | string = null\n let parentFieldName = 'parent'\n let treeLimit: number | undefined\n let typeFieldName: string | undefined\n let useAsTitle: string | undefined\n let collectionSpecificOptions: { label: string; value: string }[] = []\n\n // Get collection config and render icon (outside try block - doesn't need async)\n const collectionConfig = payload.collections[hierarchyCollectionSlug]?.config\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n\n const IconComponent = hierarchyConfig?.admin?.components?.Icon\n const icon = IconComponent ? (\n RenderServerComponent({\n Component: IconComponent,\n importMap: payload.importMap,\n key: `hierarchy-sidebar-icon-${hierarchyCollectionSlug}`,\n })\n ) : (\n <TagIcon color=\"muted\" />\n )\n\n try {\n // Get selected node from URL (?parent=<id>)\n selectedNodeId = searchParams?.parent ? String(searchParams.parent) : null\n\n // STEP 1: Load user's expanded node preferences\n const preferenceKey = `${PREFERENCE_KEYS.HIERARCHY_TREE}-${hierarchyCollectionSlug}`\n\n const { docs: preferenceDocs } = await payload.find({\n collection: 'payload-preferences',\n limit: 1,\n overrideAccess: false,\n user,\n where: {\n and: [\n { key: { equals: preferenceKey } },\n { 'user.value': { equals: user.id } },\n { 'user.relationTo': { equals: user.collection } },\n ],\n },\n })\n\n const preferences = preferenceDocs[0]\n\n if (preferences?.value?.expandedNodes) {\n initialExpandedNodes = preferences.value.expandedNodes\n }\n\n if (preferences?.value?.selectedFilters) {\n initialSelectedFilters = preferences.value.selectedFilters\n }\n\n // STEP 2: Get remaining config values\n parentFieldName = hierarchyConfig?.parentFieldName\n treeLimit = hierarchyConfig?.admin?.treeLimit\n typeFieldName =\n hierarchyConfig?.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object'\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n useAsTitle = collectionConfig?.admin?.useAsTitle\n\n // STEP 2.5: Build collection-specific options from related collections\n if (hierarchyConfig.collectionSpecific && hierarchyConfig?.relatedCollections) {\n collectionSpecificOptions = Object.keys(hierarchyConfig.relatedCollections)\n .map((slug) => {\n const relatedConfig = payload.collections[slug]?.config\n const label = relatedConfig?.labels?.plural ?? slug\n\n return {\n label: getTranslation(label, i18n),\n value: slug,\n }\n })\n .sort((a, b) => a.label.localeCompare(b.label))\n }\n\n // Track the immediate parent of the selected node (for ensuring siblings are loaded)\n let selectedNodeParentId: null | number | string = null\n\n // If there's a selected node, ensure its ancestor chain is expanded\n if (selectedNodeId) {\n // Walk up the parent chain to root\n const ancestorIds: (number | string)[] = []\n let currentNodeId: null | number | string = selectedNodeId\n let isFirstIteration = true\n\n while (currentNodeId) {\n try {\n const node = await payload.findByID({\n id: currentNodeId,\n collection: hierarchyCollectionSlug,\n depth: 0,\n overrideAccess: false,\n user,\n })\n\n const parentId = node?.[parentFieldName]\n\n // Capture the immediate parent of the selected node\n if (isFirstIteration) {\n selectedNodeParentId = parentId ?? null\n isFirstIteration = false\n }\n\n if (parentId) {\n ancestorIds.push(parentId)\n currentNodeId = parentId\n } else {\n currentNodeId = null\n }\n } catch {\n // Node not found or access denied\n break\n }\n }\n\n // Merge ancestor IDs with existing expanded nodes\n const expandedSet = new Set(initialExpandedNodes)\n ancestorIds.forEach((id) => expandedSet.add(id))\n initialExpandedNodes = Array.from(expandedSet)\n }\n\n // STEP 3: Fetch tree data (root nodes + children of expanded nodes + selected node path)\n const req = await createLocalReq({ user }, payload)\n\n initialData = await getInitialTreeData({\n collectionSlug: hierarchyCollectionSlug,\n expandedNodeIds: initialExpandedNodes,\n ...(initialSelectedFilters.length > 0 && { filterByCollections: initialSelectedFilters }),\n ...(treeLimit !== undefined && { limit: treeLimit }),\n req,\n selectedNodeId,\n selectedNodeParentId,\n })\n } catch (error) {\n payload.logger.warn({\n err: error,\n msg: `Failed to fetch hierarchy data for ${hierarchyCollectionSlug}`,\n })\n // Fall back to client-side fetching if server fetch fails\n }\n\n return (\n <HierarchySidebarTab\n collectionSpecificOptions={collectionSpecificOptions}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n initialSelectedFilters={initialSelectedFilters}\n parentFieldName={parentFieldName}\n selectedNodeId={selectedNodeId}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadMoreButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/HierarchyTree/LoadMore/LoadMoreButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAKlD,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAyBxD,CAAA"}
@@ -1,36 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import React, { useCallback, useRef } from 'react';
5
- import { useTranslation } from '../../../providers/Translation/index.js';
6
- import { useFocusableItem } from '../TreeFocusContext.js';
7
- export const LoadMoreButton = ({
8
- id,
9
- onLoadMore
10
- }) => {
11
- const {
12
- t
13
- } = useTranslation();
14
- const buttonRef = useRef(null);
15
- const {
16
- handleFocus,
17
- tabIndex
18
- } = useFocusableItem({
19
- id,
20
- type: 'load-more',
21
- ref: buttonRef
22
- });
23
- const handleClick = useCallback(async () => {
24
- await onLoadMore();
25
- }, [onLoadMore]);
26
- return /*#__PURE__*/_jsx("button", {
27
- className: "hierarchy-tree__load-more-button",
28
- onClick: handleClick,
29
- onFocus: handleFocus,
30
- ref: buttonRef,
31
- tabIndex: tabIndex,
32
- type: "button",
33
- children: t('general:loadMore')
34
- });
35
- };
36
- //# sourceMappingURL=LoadMoreButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadMoreButton.js","names":["React","useCallback","useRef","useTranslation","useFocusableItem","LoadMoreButton","id","onLoadMore","t","buttonRef","handleFocus","tabIndex","type","ref","handleClick","_jsx","className","onClick","onFocus"],"sources":["../../../../src/elements/HierarchyTree/LoadMore/LoadMoreButton.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useFocusableItem } from '../TreeFocusContext.js'\n\ntype LoadMoreButtonProps = {\n id: string\n onLoadMore: (() => Promise<void>) | (() => void)\n}\n\nexport const LoadMoreButton: React.FC<LoadMoreButtonProps> = ({ id, onLoadMore }) => {\n const { t } = useTranslation()\n const buttonRef = useRef<HTMLButtonElement>(null)\n const { handleFocus, tabIndex } = useFocusableItem({\n id,\n type: 'load-more',\n ref: buttonRef,\n })\n\n const handleClick = useCallback(async () => {\n await onLoadMore()\n }, [onLoadMore])\n\n return (\n <button\n className=\"hierarchy-tree__load-more-button\"\n onClick={handleClick}\n onFocus={handleFocus}\n ref={buttonRef}\n tabIndex={tabIndex}\n type=\"button\"\n >\n {t('general:loadMore')}\n </button>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,WAAW,EAAEC,MAAM,QAAQ;AAE3C,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AAOjC,OAAO,MAAMC,cAAA,GAAgDA,CAAC;EAAEC,EAAE;EAAEC;AAAU,CAAE;EAC9E,MAAM;IAAEC;EAAC,CAAE,GAAGL,cAAA;EACd,MAAMM,SAAA,GAAYP,MAAA,CAA0B;EAC5C,MAAM;IAAEQ,WAAW;IAAEC;EAAQ,CAAE,GAAGP,gBAAA,CAAiB;IACjDE,EAAA;IACAM,IAAA,EAAM;IACNC,GAAA,EAAKJ;EACP;EAEA,MAAMK,WAAA,GAAcb,WAAA,CAAY;IAC9B,MAAMM,UAAA;EACR,GAAG,CAACA,UAAA,CAAW;EAEf,oBACEQ,IAAA,CAAC;IACCC,SAAA,EAAU;IACVC,OAAA,EAASH,WAAA;IACTI,OAAA,EAASR,WAAA;IACTG,GAAA,EAAKJ,SAAA;IACLE,QAAA,EAAUA,QAAA;IACVC,IAAA,EAAK;cAEJJ,CAAA,CAAE;;AAGT","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/HierarchyTree/LoadMore/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAErB,KAAK,aAAa,GAAG;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;IAChD,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAiB5C,CAAA"}
@@ -1,29 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- import React from 'react';
5
- import { LoadMoreRow } from '../../LoadMoreRow/index.js';
6
- import { LoadMoreButton } from './LoadMoreButton.js';
7
- import './index.scss';
8
- export const LoadMore = ({
9
- id,
10
- currentCount,
11
- depth,
12
- onLoadMore,
13
- totalDocs
14
- }) => {
15
- return /*#__PURE__*/_jsx(LoadMoreRow, {
16
- className: "hierarchy-tree__load-more",
17
- currentCount: currentCount,
18
- hasMore: currentCount < totalDocs,
19
- loadMoreButton: /*#__PURE__*/_jsx(LoadMoreButton, {
20
- id: id,
21
- onLoadMore: onLoadMore
22
- }),
23
- style: {
24
- '--hierarchy-tree-depth': depth
25
- },
26
- totalDocs: totalDocs
27
- });
28
- };
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["React","LoadMoreRow","LoadMoreButton","LoadMore","id","currentCount","depth","onLoadMore","totalDocs","_jsx","className","hasMore","loadMoreButton","style"],"sources":["../../../../src/elements/HierarchyTree/LoadMore/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { LoadMoreRow } from '../../LoadMoreRow/index.js'\nimport { LoadMoreButton } from './LoadMoreButton.js'\nimport './index.scss'\n\ntype LoadMoreProps = {\n currentCount: number\n depth: number\n id: string\n onLoadMore: (() => Promise<void>) | (() => void)\n totalDocs: number\n}\n\nexport const LoadMore: React.FC<LoadMoreProps> = ({\n id,\n currentCount,\n depth,\n onLoadMore,\n totalDocs,\n}) => {\n return (\n <LoadMoreRow\n className=\"hierarchy-tree__load-more\"\n currentCount={currentCount}\n hasMore={currentCount < totalDocs}\n loadMoreButton={<LoadMoreButton id={id} onLoadMore={onLoadMore} />}\n style={{ '--hierarchy-tree-depth': depth } as React.CSSProperties}\n totalDocs={totalDocs}\n />\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAUP,OAAO,MAAMC,QAAA,GAAoCA,CAAC;EAChDC,EAAE;EACFC,YAAY;EACZC,KAAK;EACLC,UAAU;EACVC;AAAS,CACV;EACC,oBACEC,IAAA,CAACR,WAAA;IACCS,SAAA,EAAU;IACVL,YAAA,EAAcA,YAAA;IACdM,OAAA,EAASN,YAAA,GAAeG,SAAA;IACxBI,cAAA,eAAgBH,IAAA,CAACP,cAAA;MAAeE,EAAA,EAAIA,EAAA;MAAIG,UAAA,EAAYA;;IACpDM,KAAA,EAAO;MAAE,0BAA0BP;IAAM;IACzCE,SAAA,EAAWA;;AAGjB","ignoreList":[]}
@@ -1,26 +0,0 @@
1
- // Tree-specific overrides for the shared LoadMoreRow component
2
-
3
- .hierarchy-tree__load-more.load-more-row {
4
- padding: var(--hierarchy-tree-node-padding-y) var(--hierarchy-tree-node-padding-x);
5
- padding-left: calc(var(--hierarchy-tree-depth, 0) * var(--hierarchy-tree-indent));
6
- height: var(--hierarchy-tree-node-content-height);
7
- position: relative;
8
- margin-bottom: var(--hierarchy-tree-row-gap);
9
- padding-top: 0;
10
-
11
- .load-more-row__connector {
12
- margin-left: 2px;
13
- }
14
- }
15
-
16
- // Tree-specific button styling (uses native button for focus management)
17
- .hierarchy-tree__load-more-button {
18
- background: none;
19
- border: none;
20
- padding: 0;
21
- color: var(--theme-text);
22
- font-size: inherit;
23
- font-family: inherit;
24
- cursor: pointer;
25
- text-decoration: underline;
26
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeConnector.d.ts","sourceRoot":"","sources":["../../../src/elements/HierarchyTree/TreeConnector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkBtD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeConnector.js","names":["React","TreeConnector","className","_jsx","fill","height","viewBox","width","xmlns","d","stroke","strokeLinecap","strokeLinejoin"],"sources":["../../../src/elements/HierarchyTree/TreeConnector.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\ntype TreeConnectorProps = {\n className?: string\n}\n\nexport const TreeConnector: React.FC<TreeConnectorProps> = ({ className }) => {\n return (\n <svg\n className={className}\n fill=\"none\"\n height=\"9\"\n viewBox=\"0 0 9 9\"\n width=\"9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.59062 7.83333H3.16667C2.45942 7.83333 1.78115 7.55238 1.28105 7.05229C0.780951 6.55219 0.5 5.87391 0.5 5.16667V0.5\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAMlB,OAAO,MAAMC,aAAA,GAA8CA,CAAC;EAAEC;AAAS,CAAE;EACvE,oBACEC,IAAA,CAAC;IACCD,SAAA,EAAWA,SAAA;IACXE,IAAA,EAAK;IACLC,MAAA,EAAO;IACPC,OAAA,EAAQ;IACRC,KAAA,EAAM;IACNC,KAAA,EAAM;cAEN,aAAAL,IAAA,CAAC;MACCM,CAAA,EAAE;MACFC,MAAA,EAAO;MACPC,aAAA,EAAc;MACdC,cAAA,EAAe;;;AAIvB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeFocusContext.d.ts","sourceRoot":"","sources":["../../../src/elements/HierarchyTree/TreeFocusContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC,CAAA;AAID,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAsErE,CAAA;AAED,eAAO,MAAM,YAAY,4BAMxB,CAAA;AAED,eAAO,MAAM,gBAAgB,uBAI1B;IACD,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAC3B;;;;CAwBA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeFocusContext.js","names":["c","_c","createContext","use","useCallback","useEffect","useRef","useState","TreeFocusContext","undefined","TreeFocusProvider","children","focusedId","setFocusedId","itemsRef","Map","registerItem","item","current","set","id","unregisterItem","delete","moveFocus","direction","items","Array","from","values","length","sortedItems","filter","ref","sort","a","b","aElement","bElement","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","currentIndex","findIndex","nextIndex","Math","min","max","nextItem","focus","_jsx","value","useTreeFocus","context","Error","useFocusableItem","t0","$","type","isFocused","isFirstItemEver","t1","t2","t3","handleFocus","tabIndex","t4"],"sources":["../../../src/elements/HierarchyTree/TreeFocusContext.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { createContext, use, useCallback, useEffect, useRef, useState } from 'react'\n\ntype FocusableItem = {\n id: string\n ref: React.RefObject<HTMLElement>\n type: 'load-more' | 'node'\n}\n\ntype TreeFocusContextType = {\n focusedId: null | string\n moveFocus: (direction: 'down' | 'up') => void\n registerItem: (item: FocusableItem) => void\n setFocusedId: (id: null | string) => void\n unregisterItem: (id: string) => void\n}\n\nconst TreeFocusContext = createContext<TreeFocusContextType | undefined>(undefined)\n\nexport const TreeFocusProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [focusedId, setFocusedId] = useState<null | string>(null)\n const itemsRef = useRef<Map<string, FocusableItem>>(new Map())\n\n const registerItem = useCallback((item: FocusableItem) => {\n itemsRef.current.set(item.id, item)\n }, [])\n\n const unregisterItem = useCallback((id: string) => {\n itemsRef.current.delete(id)\n }, [])\n\n const moveFocus = useCallback(\n (direction: 'down' | 'up') => {\n const items = Array.from(itemsRef.current.values())\n if (items.length === 0) {\n return\n }\n\n // Sort items by their DOM position to ensure correct navigation order\n const sortedItems = items\n .filter((item) => item.ref.current)\n .sort((a, b) => {\n const aElement = a.ref.current\n const bElement = b.ref.current\n if (!aElement || !bElement) {\n return 0\n }\n\n const position = aElement.compareDocumentPosition(bElement)\n if (position & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1\n }\n return 0\n })\n\n const currentIndex = focusedId ? sortedItems.findIndex((item) => item.id === focusedId) : -1\n\n let nextIndex: number\n if (direction === 'down') {\n nextIndex = currentIndex === -1 ? 0 : Math.min(currentIndex + 1, sortedItems.length - 1)\n } else {\n nextIndex = Math.max(currentIndex - 1, 0)\n }\n\n const nextItem = sortedItems[nextIndex]\n if (nextItem && nextItem.ref.current) {\n nextItem.ref.current.focus()\n setFocusedId(nextItem.id)\n }\n },\n [focusedId],\n )\n\n return (\n <TreeFocusContext\n value={{\n focusedId,\n moveFocus,\n registerItem,\n setFocusedId,\n unregisterItem,\n }}\n >\n {children}\n </TreeFocusContext>\n )\n}\n\nexport const useTreeFocus = () => {\n const context = use(TreeFocusContext)\n if (!context) {\n throw new Error('useTreeFocus must be used within TreeFocusProvider')\n }\n return context\n}\n\nexport const useFocusableItem = ({\n id,\n type,\n ref,\n}: {\n id: string\n ref: React.RefObject<HTMLElement>\n type: 'load-more' | 'node'\n}) => {\n const { focusedId, registerItem, setFocusedId, unregisterItem } = useTreeFocus()\n const isFocused = focusedId === id\n const isFirstItemEver = focusedId === null\n\n useEffect(() => {\n registerItem({ id, type, ref })\n return () => {\n unregisterItem(id)\n }\n }, [id, ref, type, registerItem, unregisterItem])\n\n const handleFocus = useCallback(() => {\n setFocusedId(id)\n }, [id, setFocusedId])\n\n // Roving tabindex: focused item gets 0, first item (when nothing focused) gets 0, all others get -1\n const tabIndex = isFocused ? 0 : isFirstItemEver ? 0 : -1\n\n return {\n handleFocus,\n isFocused,\n tabIndex,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import type { TreeNodeProps } from '../types.js';
3
- import './index.scss';
4
- export declare const TreeNode: ({ cache, collectionSlug, depth, expandedNodes, limit, node, onSelect, onToggle, parentFieldName, selected, selectedNodeId, useAsTitle, }: TreeNodeProps) => React.JSX.Element;
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/HierarchyTree/TreeNode/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAQhD,OAAO,cAAc,CAAA;AAmBrB,eAAO,MAAM,QAAQ,6IAalB,aAAa,sBA6Kf,CAAA"}
@@ -1,201 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
- import { DEFAULT_HIERARCHY_TREE_LIMIT } from 'payload/shared';
5
- import React, { useCallback, useRef } from 'react';
6
- import { Spinner } from '../../../elements/Spinner/index.js';
7
- import { ChevronIcon } from '../../../icons/Chevron/index.js';
8
- import { useTranslation } from '../../../providers/Translation/index.js';
9
- import { LoadMore } from '../LoadMore/index.js';
10
- import { useFocusableItem, useTreeFocus } from '../TreeFocusContext.js';
11
- import { useChildren } from '../useChildren.js';
12
- import './index.scss';
13
- const baseClass = 'hierarchy-tree-node';
14
- const getDocumentTitle = (doc, useAsTitle) => {
15
- const docId = doc.id;
16
- const idStr = typeof docId === 'number' ? String(docId) : docId;
17
- if (!useAsTitle) {
18
- return idStr;
19
- }
20
- const value = doc[useAsTitle];
21
- if (value && (typeof value === 'string' || typeof value === 'number')) {
22
- return String(value);
23
- }
24
- return idStr;
25
- };
26
- export const TreeNode = ({
27
- cache,
28
- collectionSlug,
29
- depth = 0,
30
- expandedNodes,
31
- limit = DEFAULT_HIERARCHY_TREE_LIMIT,
32
- node,
33
- onSelect,
34
- onToggle,
35
- parentFieldName,
36
- selected,
37
- selectedNodeId,
38
- useAsTitle
39
- }) => {
40
- const {
41
- t
42
- } = useTranslation();
43
- const expanded = expandedNodes.has(node.id);
44
- const nodeRef = useRef(null);
45
- const contentRef = useRef(null);
46
- const {
47
- setFocusedId
48
- } = useTreeFocus();
49
- const {
50
- children,
51
- hasMore,
52
- isLoading,
53
- loadMore: loadMoreFromHook,
54
- totalDocs
55
- } = useChildren({
56
- cache,
57
- collectionSlug,
58
- enabled: expanded,
59
- limit,
60
- parentFieldName,
61
- parentId: node.id
62
- });
63
- const handleLoadMore = React.useCallback(async () => {
64
- const newDocs = await loadMoreFromHook();
65
- if (newDocs && newDocs.length > 0) {
66
- const firstNewDoc = newDocs[0];
67
- const docId = firstNewDoc.id;
68
- setFocusedId(`node-${docId}`);
69
- }
70
- }, [loadMoreFromHook, setFocusedId]);
71
- const {
72
- handleFocus,
73
- isFocused,
74
- tabIndex
75
- } = useFocusableItem({
76
- id: `node-${node.id}`,
77
- type: 'node',
78
- ref: contentRef
79
- });
80
- // When focusedId points to this node, actually call .focus()
81
- React.useEffect(() => {
82
- if (isFocused && contentRef.current && document.activeElement !== contentRef.current) {
83
- contentRef.current.focus();
84
- }
85
- }, [isFocused]);
86
- // Determine if node has children:
87
- // - If explicitly set in data, use that
88
- // - If expanded and loaded, check the actual children
89
- // - Otherwise, assume it might have children (show chevron until proven otherwise)
90
- const hasChildren = node.hasChildren === true || (expanded && children !== null ? children.length > 0 : true);
91
- const handleToggleClick = useCallback(e => {
92
- e.stopPropagation();
93
- onToggle({
94
- id: node.id
95
- });
96
- }, [node.id, onToggle]);
97
- const handleSelectClick = useCallback(() => {
98
- onSelect({
99
- id: node.id
100
- });
101
- }, [node.id, onSelect]);
102
- const handleKeyDown = useCallback(e_0 => {
103
- switch (e_0.key) {
104
- case ' ':
105
- case 'Enter':
106
- e_0.preventDefault();
107
- handleSelectClick();
108
- break;
109
- case 'ArrowLeft':
110
- if (hasChildren && expanded) {
111
- e_0.preventDefault();
112
- onToggle({
113
- id: node.id
114
- });
115
- }
116
- break;
117
- case 'ArrowRight':
118
- if (hasChildren && !expanded) {
119
- e_0.preventDefault();
120
- onToggle({
121
- id: node.id
122
- });
123
- }
124
- break;
125
- }
126
- }, [hasChildren, expanded, handleSelectClick, onToggle, node.id]);
127
- return /*#__PURE__*/_jsxs("div", {
128
- className: baseClass,
129
- ref: nodeRef,
130
- style: {
131
- '--hierarchy-tree-depth': depth
132
- },
133
- children: [/*#__PURE__*/_jsxs("div", {
134
- className: [`${baseClass}__content`, selected && `${baseClass}__content--selected`].filter(Boolean).join(' '),
135
- onClick: handleSelectClick,
136
- onFocus: handleFocus,
137
- onKeyDown: handleKeyDown,
138
- ref: contentRef,
139
- role: "button",
140
- tabIndex: tabIndex,
141
- children: [/*#__PURE__*/_jsx("div", {
142
- className: `${baseClass}__indicator`
143
- }), hasChildren ? /*#__PURE__*/_jsx("button", {
144
- "aria-label": expanded ? t('general:collapse') : t('general:open'),
145
- className: `${baseClass}__toggle`,
146
- onClick: handleToggleClick,
147
- tabIndex: -1,
148
- type: "button",
149
- children: /*#__PURE__*/_jsx(ChevronIcon, {
150
- direction: expanded ? 'down' : 'right'
151
- })
152
- }) : /*#__PURE__*/_jsx("div", {
153
- className: `${baseClass}__toggle-spacer`
154
- }), /*#__PURE__*/_jsx("span", {
155
- className: `${baseClass}__title`,
156
- title: node.title,
157
- children: node.title
158
- }), isLoading && expanded && /*#__PURE__*/_jsx("span", {
159
- className: `${baseClass}__loading`,
160
- children: /*#__PURE__*/_jsx(Spinner, {
161
- loadingText: null,
162
- size: "small"
163
- })
164
- })]
165
- }), expanded && children && children.length > 0 && /*#__PURE__*/_jsxs(_Fragment, {
166
- children: [/*#__PURE__*/_jsx("div", {
167
- className: `${baseClass}__children`,
168
- children: children.map(child => {
169
- const childData = child;
170
- const childId = childData.id;
171
- const childTitle = getDocumentTitle(child, useAsTitle);
172
- return /*#__PURE__*/_jsx(TreeNode, {
173
- cache: cache,
174
- collectionSlug: collectionSlug,
175
- depth: depth + 1,
176
- expandedNodes: expandedNodes,
177
- limit: limit,
178
- node: {
179
- id: childId,
180
- hasChildren: true,
181
- title: childTitle
182
- },
183
- onSelect: onSelect,
184
- onToggle: onToggle,
185
- parentFieldName: parentFieldName,
186
- selected: String(childId) === String(selectedNodeId),
187
- selectedNodeId: selectedNodeId,
188
- useAsTitle: useAsTitle
189
- }, String(childId));
190
- })
191
- }), hasMore && /*#__PURE__*/_jsx(LoadMore, {
192
- currentCount: children.length,
193
- depth: depth + 1,
194
- id: `load-more-${node.id}`,
195
- onLoadMore: handleLoadMore,
196
- totalDocs: totalDocs
197
- })]
198
- })]
199
- });
200
- };
201
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["DEFAULT_HIERARCHY_TREE_LIMIT","React","useCallback","useRef","Spinner","ChevronIcon","useTranslation","LoadMore","useFocusableItem","useTreeFocus","useChildren","baseClass","getDocumentTitle","doc","useAsTitle","docId","id","idStr","String","value","TreeNode","cache","collectionSlug","depth","expandedNodes","limit","node","onSelect","onToggle","parentFieldName","selected","selectedNodeId","t","expanded","has","nodeRef","contentRef","setFocusedId","children","hasMore","isLoading","loadMore","loadMoreFromHook","totalDocs","enabled","parentId","handleLoadMore","newDocs","length","firstNewDoc","handleFocus","isFocused","tabIndex","type","ref","useEffect","current","document","activeElement","focus","hasChildren","handleToggleClick","e","stopPropagation","handleSelectClick","handleKeyDown","key","preventDefault","_jsxs","className","style","filter","Boolean","join","onClick","onFocus","onKeyDown","role","_jsx","direction","title","loadingText","size","_Fragment","map","child","childData","childId","childTitle","currentCount","onLoadMore"],"sources":["../../../../src/elements/HierarchyTree/TreeNode/index.tsx"],"sourcesContent":["'use client'\n\nimport { DEFAULT_HIERARCHY_TREE_LIMIT } from 'payload/shared'\nimport React, { useCallback, useRef } from 'react'\n\nimport type { TreeNodeProps } from '../types.js'\n\nimport { Spinner } from '../../../elements/Spinner/index.js'\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { LoadMore } from '../LoadMore/index.js'\nimport { useFocusableItem, useTreeFocus } from '../TreeFocusContext.js'\nimport { useChildren } from '../useChildren.js'\nimport './index.scss'\n\nconst baseClass = 'hierarchy-tree-node'\n\nconst getDocumentTitle = (doc: Record<string, unknown>, useAsTitle: string | undefined): string => {\n const docId: number | string = doc.id as number | string\n const idStr = typeof docId === 'number' ? String(docId) : docId\n\n if (!useAsTitle) {\n return idStr\n }\n\n const value = doc[useAsTitle]\n if (value && (typeof value === 'string' || typeof value === 'number')) {\n return String(value)\n }\n return idStr\n}\n\nexport const TreeNode = ({\n cache,\n collectionSlug,\n depth = 0,\n expandedNodes,\n limit = DEFAULT_HIERARCHY_TREE_LIMIT,\n node,\n onSelect,\n onToggle,\n parentFieldName,\n selected,\n selectedNodeId,\n useAsTitle,\n}: TreeNodeProps) => {\n const { t } = useTranslation()\n const expanded = expandedNodes.has(node.id)\n const nodeRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const { setFocusedId } = useTreeFocus()\n\n const {\n children,\n hasMore,\n isLoading,\n loadMore: loadMoreFromHook,\n totalDocs,\n } = useChildren({\n cache,\n collectionSlug,\n enabled: expanded,\n limit,\n parentFieldName,\n parentId: node.id,\n })\n\n const handleLoadMore = React.useCallback(async () => {\n const newDocs = await loadMoreFromHook()\n\n if (newDocs && newDocs.length > 0) {\n const firstNewDoc = newDocs[0]\n const docId: number | string = (firstNewDoc as { id: number | string }).id\n setFocusedId(`node-${docId}`)\n }\n }, [loadMoreFromHook, setFocusedId])\n\n const { handleFocus, isFocused, tabIndex } = useFocusableItem({\n id: `node-${node.id}`,\n type: 'node',\n ref: contentRef,\n })\n\n // When focusedId points to this node, actually call .focus()\n React.useEffect(() => {\n if (isFocused && contentRef.current && document.activeElement !== contentRef.current) {\n contentRef.current.focus()\n }\n }, [isFocused])\n\n // Determine if node has children:\n // - If explicitly set in data, use that\n // - If expanded and loaded, check the actual children\n // - Otherwise, assume it might have children (show chevron until proven otherwise)\n const hasChildren =\n node.hasChildren === true || (expanded && children !== null ? children.length > 0 : true)\n\n const handleToggleClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation()\n onToggle({ id: node.id })\n },\n [node.id, onToggle],\n )\n\n const handleSelectClick = useCallback(() => {\n onSelect({ id: node.id })\n }, [node.id, onSelect])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n switch (e.key) {\n case ' ':\n case 'Enter':\n e.preventDefault()\n handleSelectClick()\n break\n case 'ArrowLeft':\n if (hasChildren && expanded) {\n e.preventDefault()\n onToggle({ id: node.id })\n }\n break\n case 'ArrowRight':\n if (hasChildren && !expanded) {\n e.preventDefault()\n onToggle({ id: node.id })\n }\n break\n }\n },\n [hasChildren, expanded, handleSelectClick, onToggle, node.id],\n )\n\n return (\n <div\n className={baseClass}\n ref={nodeRef}\n style={{ '--hierarchy-tree-depth': depth } as React.CSSProperties}\n >\n <div\n className={[`${baseClass}__content`, selected && `${baseClass}__content--selected`]\n .filter(Boolean)\n .join(' ')}\n onClick={handleSelectClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={contentRef}\n role=\"button\"\n tabIndex={tabIndex}\n >\n <div className={`${baseClass}__indicator`} />\n {hasChildren ? (\n <button\n aria-label={expanded ? t('general:collapse') : t('general:open')}\n className={`${baseClass}__toggle`}\n onClick={handleToggleClick}\n tabIndex={-1}\n type=\"button\"\n >\n <ChevronIcon direction={expanded ? 'down' : 'right'} />\n </button>\n ) : (\n <div className={`${baseClass}__toggle-spacer`} />\n )}\n <span className={`${baseClass}__title`} title={node.title}>\n {node.title}\n </span>\n {isLoading && expanded && (\n <span className={`${baseClass}__loading`}>\n <Spinner loadingText={null} size=\"small\" />\n </span>\n )}\n </div>\n\n {expanded && children && children.length > 0 && (\n <>\n <div className={`${baseClass}__children`}>\n {children.map((child) => {\n const childData = child as { id: number | string }\n const childId = childData.id\n const childTitle = getDocumentTitle(child, useAsTitle)\n return (\n <TreeNode\n cache={cache}\n collectionSlug={collectionSlug}\n depth={depth + 1}\n expandedNodes={expandedNodes}\n key={String(childId)}\n limit={limit}\n node={{\n id: childId,\n hasChildren: true,\n title: childTitle,\n }}\n onSelect={onSelect}\n onToggle={onToggle}\n parentFieldName={parentFieldName}\n selected={String(childId) === String(selectedNodeId)}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )\n })}\n </div>\n {hasMore && (\n <LoadMore\n currentCount={children.length}\n depth={depth + 1}\n id={`load-more-${node.id}`}\n onLoadMore={handleLoadMore}\n totalDocs={totalDocs}\n />\n )}\n </>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}