@payloadcms/ui 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ec73d44

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 (934) hide show
  1. package/dist/css/app.css +2 -2
  2. package/dist/css/colors.css +65 -0
  3. package/dist/css/preflight.css +21 -2
  4. package/dist/elements/APIKeyInput/index.js +22 -23
  5. package/dist/elements/APIKeyInput/index.js.map +1 -1
  6. package/dist/elements/AddNewRelation/index.js +17 -19
  7. package/dist/elements/AddNewRelation/index.js.map +1 -1
  8. package/dist/elements/AppHeader/index.css +1 -1
  9. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  10. package/dist/elements/AppHeader/index.js +5 -1
  11. package/dist/elements/AppHeader/index.js.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +39 -30
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.js +236 -143
  15. package/dist/elements/Autosave/index.js.map +1 -1
  16. package/dist/elements/BranchSelector/index.d.ts.map +1 -1
  17. package/dist/elements/BranchSelector/index.js +285 -204
  18. package/dist/elements/BranchSelector/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/EditMany/index.js +29 -21
  25. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js +1 -34
  29. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/index.js +63 -23
  31. package/dist/elements/BulkUpload/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
  33. package/dist/elements/Button/index.css +3 -3
  34. package/dist/elements/Button/index.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +2 -1
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/types.d.ts +1 -0
  38. package/dist/elements/Button/types.d.ts.map +1 -1
  39. package/dist/elements/Button/types.js.map +1 -1
  40. package/dist/elements/CardGrid/index.css +0 -1
  41. package/dist/elements/ChangeSummary/index.js.map +1 -1
  42. package/dist/elements/Chip/index.js.map +1 -1
  43. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  44. package/dist/elements/ClipboardAction/index.js +213 -88
  45. package/dist/elements/ClipboardAction/index.js.map +1 -1
  46. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  47. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  48. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  49. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  50. package/dist/elements/CodeEditor/CodeEditor.js +99 -55
  51. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  52. package/dist/elements/CollapseAllToggle/index.js +47 -32
  53. package/dist/elements/CollapseAllToggle/index.js.map +1 -1
  54. package/dist/elements/Collapsible/index.css +15 -4
  55. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  56. package/dist/elements/Collapsible/index.js +46 -38
  57. package/dist/elements/Collapsible/index.js.map +1 -1
  58. package/dist/elements/Collapsible/provider.js +37 -14
  59. package/dist/elements/Collapsible/provider.js.map +1 -1
  60. package/dist/elements/ColumnSelection/Popup.css +4 -0
  61. package/dist/elements/ColumnSelection/Popup.js +10 -2
  62. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  63. package/dist/elements/ColumnSelection/index.js.map +1 -1
  64. package/dist/elements/CommandPalette/index.css +8 -0
  65. package/dist/elements/ConfirmationModal/index.d.ts +3 -0
  66. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  67. package/dist/elements/ConfirmationModal/index.js +2 -0
  68. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  69. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  70. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  71. package/dist/elements/CreateDocumentButton/index.js +45 -43
  72. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +6 -2
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/index.css +40 -25
  76. package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
  77. package/dist/elements/DefaultListViewTabs/index.css +4 -0
  78. package/dist/elements/DefaultListViewTabs/index.js +47 -37
  79. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  80. package/dist/elements/DelayedSpinner/index.js.map +1 -1
  81. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  82. package/dist/elements/DeleteDocument/index.js +1 -3
  83. package/dist/elements/DeleteDocument/index.js.map +1 -1
  84. package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
  85. package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
  86. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  87. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  88. package/dist/elements/DocumentCard/index.d.ts +2 -0
  89. package/dist/elements/DocumentCard/index.d.ts.map +1 -1
  90. package/dist/elements/DocumentCard/index.js +2 -0
  91. package/dist/elements/DocumentCard/index.js.map +1 -1
  92. package/dist/elements/DocumentControls/index.css +13 -10
  93. package/dist/elements/DocumentControls/index.js +1 -1
  94. package/dist/elements/DocumentControls/index.js.map +1 -1
  95. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  96. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  97. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  98. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  99. package/dist/elements/DocumentFields/index.css +7 -7
  100. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  101. package/dist/elements/DocumentFields/index.js +125 -65
  102. package/dist/elements/DocumentFields/index.js.map +1 -1
  103. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  104. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  105. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
  106. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  107. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
  108. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  109. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  110. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  111. package/dist/elements/DocumentLocked/index.js +1 -0
  112. package/dist/elements/DocumentLocked/index.js.map +1 -1
  113. package/dist/elements/DocumentStaleData/index.js.map +1 -1
  114. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  115. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
  116. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
  117. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  118. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
  119. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  120. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
  121. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  122. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  123. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  124. package/dist/elements/DraggableSortable/index.js +104 -170
  125. package/dist/elements/DraggableSortable/index.js.map +1 -1
  126. package/dist/elements/DraggableSortable/types.d.ts +1 -0
  127. package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
  128. package/dist/elements/DraggableSortable/types.js.map +1 -1
  129. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  130. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
  131. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
  132. package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
  133. package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
  134. package/dist/elements/Drawer/index.js +138 -81
  135. package/dist/elements/Drawer/index.js.map +1 -1
  136. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  137. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  138. package/dist/elements/DrawerHeader/index.js.map +1 -1
  139. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
  140. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  141. package/dist/elements/EditMany/DrawerContent.js +1 -1
  142. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  143. package/dist/elements/EditMany/index.js.map +1 -1
  144. package/dist/elements/EditUpload/library.css +6 -13
  145. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
  146. package/dist/elements/FieldDiffContainer/index.js +7 -1
  147. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  148. package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
  149. package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
  150. package/dist/elements/FieldDiffLabel/index.js +2 -0
  151. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  152. package/dist/elements/FieldSelect/index.js +23 -14
  153. package/dist/elements/FieldSelect/index.js.map +1 -1
  154. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  155. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  156. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  157. package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
  158. package/dist/elements/FileManager/index.js.map +1 -1
  159. package/dist/elements/FullscreenModal/index.js.map +1 -1
  160. package/dist/elements/GenerateConfirmation/index.js +21 -21
  161. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  162. package/dist/elements/GroupBy/Popup.js.map +1 -1
  163. package/dist/elements/GroupBy/index.js +120 -66
  164. package/dist/elements/GroupBy/index.js.map +1 -1
  165. package/dist/elements/HTMLDiff/colors.css +7 -0
  166. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  167. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
  168. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  169. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
  170. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  171. package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
  172. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
  173. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
  174. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
  175. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
  176. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
  177. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  178. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  179. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  180. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  181. package/dist/elements/Hierarchy/Tree/index.js +10 -5
  182. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  183. package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -1
  184. package/dist/elements/HierarchyTypeField/index.js.map +1 -1
  185. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  186. package/dist/elements/HydratePreferences/index.js.map +1 -1
  187. package/dist/elements/IDLabel/index.js.map +1 -1
  188. package/dist/elements/InputStepper/index.js.map +1 -1
  189. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
  190. package/dist/elements/ItemsDrawer/index.js +186 -105
  191. package/dist/elements/ItemsDrawer/index.js.map +1 -1
  192. package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
  193. package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
  194. package/dist/elements/LayoutToggle/index.js.map +1 -1
  195. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  196. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
  197. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  198. package/dist/elements/Link/index.js +1 -1
  199. package/dist/elements/Link/index.js.map +1 -1
  200. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
  201. package/dist/elements/ListControls/index.js.map +1 -1
  202. package/dist/elements/ListControls/types.d.ts +0 -10
  203. package/dist/elements/ListControls/types.d.ts.map +1 -1
  204. package/dist/elements/ListControls/types.js.map +1 -1
  205. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  206. package/dist/elements/ListDrawer/DrawerContent.js +2 -3
  207. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  208. package/dist/elements/ListDrawer/Provider.d.ts +3 -8
  209. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  210. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  211. package/dist/elements/ListDrawer/index.js.map +1 -1
  212. package/dist/elements/ListGroupByButton/index.js.map +1 -1
  213. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  214. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
  215. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  216. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  217. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
  218. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  219. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  220. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  221. package/dist/elements/ListSelection/index.js.map +1 -1
  222. package/dist/elements/ListWhereBuilder/index.js.map +1 -1
  223. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  224. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  225. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  226. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  227. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  228. package/dist/elements/LivePreview/Window/index.css +7 -1
  229. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  230. package/dist/elements/LivePreview/Window/index.js +6 -1
  231. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  232. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  233. package/dist/elements/Loading/index.js +62 -18
  234. package/dist/elements/Loading/index.js.map +1 -1
  235. package/dist/elements/LoadingOverlay/index.js +93 -49
  236. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  237. package/dist/elements/Localizer/index.js +133 -108
  238. package/dist/elements/Localizer/index.js.map +1 -1
  239. package/dist/elements/Locked/index.js +54 -37
  240. package/dist/elements/Locked/index.js.map +1 -1
  241. package/dist/elements/Logout/index.js.map +1 -1
  242. package/dist/elements/MergeBranch/MergeBranchForm/index.d.ts.map +1 -1
  243. package/dist/elements/MergeBranch/MergeBranchForm/index.js +21 -16
  244. package/dist/elements/MergeBranch/MergeBranchForm/index.js.map +1 -1
  245. package/dist/elements/MergeBranch/MergeProgress/index.js.map +1 -1
  246. package/dist/elements/MergeBranch/context.js +58 -20
  247. package/dist/elements/MergeBranch/context.js.map +1 -1
  248. package/dist/elements/MergeBranch/index.js.map +1 -1
  249. package/dist/elements/MergeBranch/useMergeBranchAction.js +1 -1
  250. package/dist/elements/MergeBranch/useMergeBranchAction.js.map +1 -1
  251. package/dist/elements/MergeBranch/useScheduleBranchMerge.js +1 -1
  252. package/dist/elements/MergeBranch/useScheduleBranchMerge.js.map +1 -1
  253. package/dist/elements/MergeBranch/useUpcomingBranchMerges.js.map +1 -1
  254. package/dist/elements/MiniCarousel/index.js +102 -38
  255. package/dist/elements/MiniCarousel/index.js.map +1 -1
  256. package/dist/elements/Modal/index.d.ts.map +1 -1
  257. package/dist/elements/Modal/index.js +13 -1
  258. package/dist/elements/Modal/index.js.map +1 -1
  259. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  260. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  261. package/dist/elements/Nav/NavWrapper/index.js +10 -6
  262. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  263. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  264. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
  265. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  266. package/dist/elements/Nav/SidebarTabs/index.client.js +32 -21
  267. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  268. package/dist/elements/Nav/context.js +2 -2
  269. package/dist/elements/Nav/context.js.map +1 -1
  270. package/dist/elements/Nav/getNavPrefs.d.ts +1 -1
  271. package/dist/elements/Nav/getNavPrefs.js +1 -1
  272. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  273. package/dist/elements/Nav/index.client.js.map +1 -1
  274. package/dist/elements/Nav/index.css +5 -0
  275. package/dist/elements/NavGroup/index.css +27 -3
  276. package/dist/elements/NavGroup/index.js +32 -39
  277. package/dist/elements/NavGroup/index.js.map +1 -1
  278. package/dist/elements/NoListResults/index.css +1 -0
  279. package/dist/elements/NoListResults/index.js +1 -1
  280. package/dist/elements/NoListResults/index.js.map +1 -1
  281. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  282. package/dist/elements/PageControls/index.js.map +1 -1
  283. package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
  284. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  285. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  286. package/dist/elements/Pagination/index.js +36 -37
  287. package/dist/elements/Pagination/index.js.map +1 -1
  288. package/dist/elements/PerPage/index.js.map +1 -1
  289. package/dist/elements/Pill/index.js.map +1 -1
  290. package/dist/elements/Popup/SubmenuScope.d.ts +3 -5
  291. package/dist/elements/Popup/SubmenuScope.d.ts.map +1 -1
  292. package/dist/elements/Popup/SubmenuScope.js +10 -54
  293. package/dist/elements/Popup/SubmenuScope.js.map +1 -1
  294. package/dist/elements/Popup/index.css +15 -0
  295. package/dist/elements/Popup/index.d.ts.map +1 -1
  296. package/dist/elements/Popup/index.js +88 -33
  297. package/dist/elements/Popup/index.js.map +1 -1
  298. package/dist/elements/Popup/useSubmenuPointerIntent.d.ts +16 -4
  299. package/dist/elements/Popup/useSubmenuPointerIntent.d.ts.map +1 -1
  300. package/dist/elements/Popup/useSubmenuPointerIntent.js +68 -27
  301. package/dist/elements/Popup/useSubmenuPointerIntent.js.map +1 -1
  302. package/dist/elements/PreviewButton/index.js.map +1 -1
  303. package/dist/elements/PreviewSizes/index.js +141 -70
  304. package/dist/elements/PreviewSizes/index.js.map +1 -1
  305. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  306. package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
  307. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  308. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  309. package/dist/elements/PublishButton/index.js +1 -0
  310. package/dist/elements/PublishButton/index.js.map +1 -1
  311. package/dist/elements/PublishMany/DrawerContent.js +1 -1
  312. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  313. package/dist/elements/PublishMany/index.js +32 -24
  314. package/dist/elements/PublishMany/index.js.map +1 -1
  315. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
  316. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  317. package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
  318. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  319. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
  320. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  321. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  322. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  323. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  324. package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
  325. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  326. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  327. package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
  328. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  329. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  330. package/dist/elements/ReactSelect/index.css +4 -0
  331. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  332. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  333. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  334. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  335. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  336. package/dist/elements/RelationshipTable/index.js +1 -1
  337. package/dist/elements/RelationshipTable/index.js.map +1 -1
  338. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  339. package/dist/elements/RenderTitle/index.js.map +1 -1
  340. package/dist/elements/RestoreMany/index.js +1 -1
  341. package/dist/elements/RestoreMany/index.js.map +1 -1
  342. package/dist/elements/SchedulePublishButton/index.js +112 -44
  343. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  344. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  345. package/dist/elements/SegmentedControl/index.css +50 -7
  346. package/dist/elements/SegmentedControl/index.js.map +1 -1
  347. package/dist/elements/SelectAll/index.js.map +1 -1
  348. package/dist/elements/SelectRow/index.js +31 -21
  349. package/dist/elements/SelectRow/index.js.map +1 -1
  350. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  351. package/dist/elements/SidebarToggle/index.js.map +1 -1
  352. package/dist/elements/SkipToContent/index.js.map +1 -1
  353. package/dist/elements/SortHeader/index.js.map +1 -1
  354. package/dist/elements/SortRow/index.js.map +1 -1
  355. package/dist/elements/Spinner/index.js.map +1 -1
  356. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  357. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  358. package/dist/elements/StepNav/context.js.map +1 -1
  359. package/dist/elements/Switch/index.css +2 -2
  360. package/dist/elements/Switch/index.js.map +1 -1
  361. package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
  362. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  363. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
  364. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  365. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +1 -1
  366. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
  367. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  368. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  369. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  370. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  371. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  372. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
  373. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  374. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  375. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  376. package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
  377. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  378. package/dist/elements/Table/DefaultCell/index.js +6 -1
  379. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  380. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
  381. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  382. package/dist/elements/Table/TableIdentity.js +32 -16
  383. package/dist/elements/Table/TableIdentity.js.map +1 -1
  384. package/dist/elements/Table/index.js.map +1 -1
  385. package/dist/elements/Table/useAriaSort.js.map +1 -1
  386. package/dist/elements/Tabs/index.css +4 -3
  387. package/dist/elements/Thumbnail/index.js +133 -53
  388. package/dist/elements/Thumbnail/index.js.map +1 -1
  389. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  390. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  391. package/dist/elements/TimezonePicker/index.js +113 -54
  392. package/dist/elements/TimezonePicker/index.js.map +1 -1
  393. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  394. package/dist/elements/Tooltip/index.js.map +1 -1
  395. package/dist/elements/Translation/index.js +1 -1
  396. package/dist/elements/Translation/index.js.map +1 -1
  397. package/dist/elements/TrashBanner/index.js.map +1 -1
  398. package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
  399. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  400. package/dist/elements/UnpublishMany/index.js +32 -24
  401. package/dist/elements/UnpublishMany/index.js.map +1 -1
  402. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  403. package/dist/elements/Upload/index.js.map +1 -1
  404. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
  405. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
  406. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  407. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  408. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  409. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  410. package/dist/elements/UserMenu/index.js +2 -1
  411. package/dist/elements/UserMenu/index.js.map +1 -1
  412. package/dist/elements/ViewDescription/index.js.map +1 -1
  413. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  414. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  415. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  416. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  417. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  418. package/dist/elements/WhereBuilder/Condition/index.js +1 -0
  419. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  420. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-23ZGBN6S.js} +2 -2
  421. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-AZBZPMY6.js} +2 -2
  422. package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
  423. package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
  424. package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
  425. package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
  426. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-ZP2PB6M4.js} +2 -2
  427. package/dist/exports/client/chunk-ZP2PB6M4.js.map +7 -0
  428. package/dist/exports/client/index.d.ts +2 -2
  429. package/dist/exports/client/index.d.ts.map +1 -1
  430. package/dist/exports/client/index.js +28 -28
  431. package/dist/exports/client/index.js.map +4 -4
  432. package/dist/exports/rsc/index.d.ts +1 -1
  433. package/dist/exports/rsc/index.d.ts.map +1 -1
  434. package/dist/exports/rsc/index.js +1 -1
  435. package/dist/exports/rsc/index.js.map +1 -1
  436. package/dist/exports/shared/index.js +2 -2
  437. package/dist/exports/shared/index.js.map +3 -3
  438. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  439. package/dist/fields/Array/ArrayRow.js +207 -99
  440. package/dist/fields/Array/ArrayRow.js.map +1 -1
  441. package/dist/fields/Array/index.d.ts.map +1 -1
  442. package/dist/fields/Array/index.js +521 -308
  443. package/dist/fields/Array/index.js.map +1 -1
  444. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  445. package/dist/fields/Blocks/BlockRow.js +224 -136
  446. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  447. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  448. package/dist/fields/Blocks/BlockSelector/index.js +114 -74
  449. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  450. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  451. package/dist/fields/Blocks/RowActions.js +75 -55
  452. package/dist/fields/Blocks/RowActions.js.map +1 -1
  453. package/dist/fields/Blocks/SectionTitle/index.css +4 -0
  454. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  455. package/dist/fields/Blocks/index.d.ts.map +1 -1
  456. package/dist/fields/Blocks/index.js +1 -0
  457. package/dist/fields/Blocks/index.js.map +1 -1
  458. package/dist/fields/Checkbox/index.css +3 -3
  459. package/dist/fields/Checkbox/index.js.map +1 -1
  460. package/dist/fields/Code/index.d.ts.map +1 -1
  461. package/dist/fields/Code/index.js +3 -2
  462. package/dist/fields/Code/index.js.map +1 -1
  463. package/dist/fields/Collapsible/index.js +114 -73
  464. package/dist/fields/Collapsible/index.js.map +1 -1
  465. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  466. package/dist/fields/DateTime/index.js +215 -121
  467. package/dist/fields/DateTime/index.js.map +1 -1
  468. package/dist/fields/Email/index.d.ts.map +1 -1
  469. package/dist/fields/Email/index.js.map +1 -1
  470. package/dist/fields/FieldDescription/index.js +29 -21
  471. package/dist/fields/FieldDescription/index.js.map +1 -1
  472. package/dist/fields/FieldError/index.js.map +1 -1
  473. package/dist/fields/FieldLabel/index.js.map +1 -1
  474. package/dist/fields/Group/index.css +3 -5
  475. package/dist/fields/Group/index.js +75 -46
  476. package/dist/fields/Group/index.js.map +1 -1
  477. package/dist/fields/Hidden/index.js +23 -15
  478. package/dist/fields/Hidden/index.js.map +1 -1
  479. package/dist/fields/JSON/index.d.ts.map +1 -1
  480. package/dist/fields/JSON/index.js +3 -2
  481. package/dist/fields/JSON/index.js.map +1 -1
  482. package/dist/fields/Number/Input.js.map +1 -1
  483. package/dist/fields/Number/index.d.ts.map +1 -1
  484. package/dist/fields/Number/index.js.map +1 -1
  485. package/dist/fields/Password/index.d.ts.map +1 -1
  486. package/dist/fields/Password/index.js.map +1 -1
  487. package/dist/fields/Password/input.js +46 -27
  488. package/dist/fields/Password/input.js.map +1 -1
  489. package/dist/fields/RadioGroup/Radio/index.js +35 -35
  490. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  491. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  492. package/dist/fields/RadioGroup/index.js.map +1 -1
  493. package/dist/fields/Relationship/Input.js +14 -14
  494. package/dist/fields/Relationship/Input.js.map +1 -1
  495. package/dist/fields/Relationship/index.js +216 -111
  496. package/dist/fields/Relationship/index.js.map +1 -1
  497. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  498. package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
  499. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  500. package/dist/fields/Select/Input.js +26 -10
  501. package/dist/fields/Select/Input.js.map +1 -1
  502. package/dist/fields/Select/index.d.ts.map +1 -1
  503. package/dist/fields/Select/index.js +158 -77
  504. package/dist/fields/Select/index.js.map +1 -1
  505. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  506. package/dist/fields/Tabs/index.css +17 -21
  507. package/dist/fields/Tabs/index.js +120 -112
  508. package/dist/fields/Tabs/index.js.map +1 -1
  509. package/dist/fields/Text/Input.d.ts.map +1 -1
  510. package/dist/fields/Text/Input.js +2 -2
  511. package/dist/fields/Text/Input.js.map +1 -1
  512. package/dist/fields/Text/index.js +172 -95
  513. package/dist/fields/Text/index.js.map +1 -1
  514. package/dist/fields/Text/types.d.ts +2 -1
  515. package/dist/fields/Text/types.d.ts.map +1 -1
  516. package/dist/fields/Text/types.js.map +1 -1
  517. package/dist/fields/Textarea/Input.js +58 -28
  518. package/dist/fields/Textarea/Input.js.map +1 -1
  519. package/dist/fields/Textarea/index.js +97 -55
  520. package/dist/fields/Textarea/index.js.map +1 -1
  521. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  522. package/dist/fields/Upload/Input.d.ts.map +1 -1
  523. package/dist/fields/Upload/Input.js +19 -8
  524. package/dist/fields/Upload/Input.js.map +1 -1
  525. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  526. package/dist/fields/Upload/index.css +9 -0
  527. package/dist/fields/Upload/index.js +101 -63
  528. package/dist/fields/Upload/index.js.map +1 -1
  529. package/dist/fields/shared/useRowFocus.js.map +1 -1
  530. package/dist/forms/Form/context.js.map +1 -1
  531. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  532. package/dist/forms/Form/fieldReducer.js.map +1 -1
  533. package/dist/forms/Form/index.d.ts.map +1 -1
  534. package/dist/forms/Form/index.js +27 -8
  535. package/dist/forms/Form/index.js.map +1 -1
  536. package/dist/forms/Form/reduceToSerializableFields.d.ts +9 -4
  537. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  538. package/dist/forms/Form/reduceToSerializableFields.js +34 -7
  539. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  540. package/dist/forms/Form/types.d.ts +1 -1
  541. package/dist/forms/Form/types.d.ts.map +1 -1
  542. package/dist/forms/Form/types.js.map +1 -1
  543. package/dist/forms/NullifyField/index.js.map +1 -1
  544. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  545. package/dist/forms/RenderFields/context.js +3 -2
  546. package/dist/forms/RenderFields/context.js.map +1 -1
  547. package/dist/forms/RenderFields/index.css +2 -2
  548. package/dist/forms/RenderFields/index.js.map +1 -1
  549. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  550. package/dist/forms/RowLabel/Context/index.js +58 -18
  551. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  552. package/dist/forms/Submit/index.js +12 -13
  553. package/dist/forms/Submit/index.js.map +1 -1
  554. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  555. package/dist/forms/useField/index.js +1 -1
  556. package/dist/forms/useField/index.js.map +1 -1
  557. package/dist/forms/useField/types.d.ts +0 -4
  558. package/dist/forms/useField/types.d.ts.map +1 -1
  559. package/dist/forms/useField/types.js.map +1 -1
  560. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  561. package/dist/graphics/Account/Gravatar/index.js +32 -17
  562. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  563. package/dist/graphics/Account/index.js +27 -18
  564. package/dist/graphics/Account/index.js.map +1 -1
  565. package/dist/hooks/useControllableState.js.map +1 -1
  566. package/dist/hooks/useDebounce.js.map +1 -1
  567. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  568. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  569. package/dist/hooks/useDelay.js.map +1 -1
  570. package/dist/hooks/useDelayedRender.js.map +1 -1
  571. package/dist/hooks/useElementHeightVariable.js.map +1 -1
  572. package/dist/hooks/useHotkey.js.map +1 -1
  573. package/dist/hooks/useIntersect.js.map +1 -1
  574. package/dist/hooks/usePayloadAPI.js.map +1 -1
  575. package/dist/hooks/usePointerSafeArea.d.ts +29 -0
  576. package/dist/hooks/usePointerSafeArea.d.ts.map +1 -0
  577. package/dist/hooks/usePointerSafeArea.js +232 -0
  578. package/dist/hooks/usePointerSafeArea.js.map +1 -0
  579. package/dist/hooks/usePopupWindow.js.map +1 -1
  580. package/dist/hooks/useRelatedCollections.js.map +1 -1
  581. package/dist/hooks/useResize.js.map +1 -1
  582. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  583. package/dist/hooks/useThrottledEffect.js +21 -24
  584. package/dist/hooks/useThrottledEffect.js.map +1 -1
  585. package/dist/hooks/useUseAsTitle.js.map +1 -1
  586. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  587. package/dist/icons/Sidebar/index.js +2 -0
  588. package/dist/icons/Sidebar/index.js.map +1 -1
  589. package/dist/icons/Table/index.css +5 -1
  590. package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
  591. package/dist/layouts/Root/RootProviders.js +31 -28
  592. package/dist/layouts/Root/RootProviders.js.map +1 -1
  593. package/dist/layouts/Root/index.d.ts +1 -1
  594. package/dist/layouts/Root/index.d.ts.map +1 -1
  595. package/dist/layouts/Root/index.js +4 -15
  596. package/dist/layouts/Root/index.js.map +1 -1
  597. package/dist/providers/Actions/index.js.map +1 -1
  598. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
  599. package/dist/providers/Auth/index.js +2 -2
  600. package/dist/providers/Auth/index.js.map +1 -1
  601. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
  602. package/dist/providers/Branch/index.d.ts +1 -1
  603. package/dist/providers/Branch/index.js +4 -4
  604. package/dist/providers/Branch/index.js.map +1 -1
  605. package/dist/providers/Branch/index.server.d.ts.map +1 -1
  606. package/dist/providers/Branch/index.server.js +3 -1
  607. package/dist/providers/Branch/index.server.js.map +1 -1
  608. package/dist/providers/ClientFunction/index.js.map +1 -1
  609. package/dist/providers/Config/index.js +65 -32
  610. package/dist/providers/Config/index.js.map +1 -1
  611. package/dist/providers/DocumentEvents/index.js.map +1 -1
  612. package/dist/providers/EditDepth/index.js.map +1 -1
  613. package/dist/providers/Embed/index.js.map +1 -1
  614. package/dist/providers/EntityVisibility/index.js.map +1 -1
  615. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  616. package/dist/providers/ListQuery/index.js +5 -5
  617. package/dist/providers/ListQuery/index.js.map +1 -1
  618. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  619. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  620. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  621. package/dist/providers/ListQuery/types.d.ts +6 -5
  622. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  623. package/dist/providers/ListQuery/types.js.map +1 -1
  624. package/dist/providers/ModalAccessibility/index.js.map +1 -1
  625. package/dist/providers/ModalFocus/index.d.ts +15 -0
  626. package/dist/providers/ModalFocus/index.d.ts.map +1 -0
  627. package/dist/providers/ModalFocus/index.js +70 -0
  628. package/dist/providers/ModalFocus/index.js.map +1 -0
  629. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  630. package/dist/providers/RouteCache/index.js +37 -25
  631. package/dist/providers/RouteCache/index.js.map +1 -1
  632. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  633. package/dist/providers/RouteTransition/index.d.ts +3 -2
  634. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  635. package/dist/providers/RouteTransition/index.js +78 -105
  636. package/dist/providers/RouteTransition/index.js.map +1 -1
  637. package/dist/providers/RouterAdapter/index.js.map +1 -1
  638. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  639. package/dist/providers/ServerFunctions/index.js +34 -23
  640. package/dist/providers/ServerFunctions/index.js.map +1 -1
  641. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  642. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  643. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  644. package/dist/providers/TableColumns/index.d.ts.map +1 -1
  645. package/dist/providers/TableColumns/index.js +18 -35
  646. package/dist/providers/TableColumns/index.js.map +1 -1
  647. package/dist/providers/Theme/index.js.map +1 -1
  648. package/dist/providers/ToastContainer/index.js.map +1 -1
  649. package/dist/providers/Translation/index.js.map +1 -1
  650. package/dist/providers/UploadControls/index.js.map +1 -1
  651. package/dist/providers/UploadEdits/index.js.map +1 -1
  652. package/dist/providers/UploadHandlers/index.js.map +1 -1
  653. package/dist/styles.css +87 -3
  654. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  655. package/dist/templates/Default/index.css +0 -1
  656. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  657. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  658. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  659. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  660. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  661. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  662. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  663. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  664. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  665. package/dist/utilities/groupNavItems.js.map +1 -1
  666. package/dist/utilities/handleLivePreview.js.map +1 -1
  667. package/dist/utilities/handleServerFunctions.d.ts +2 -10
  668. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  669. package/dist/utilities/handleServerFunctions.js +3 -7
  670. package/dist/utilities/handleServerFunctions.js.map +1 -1
  671. package/dist/utilities/hasSavePermission.js.map +1 -1
  672. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  673. package/dist/utilities/serverFunctionRegistry.d.ts +2 -7
  674. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  675. package/dist/utilities/serverFunctionRegistry.js +4 -9
  676. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  677. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  678. package/dist/views/API/index.client.d.ts.map +1 -1
  679. package/dist/views/API/index.client.js +1 -0
  680. package/dist/views/API/index.client.js.map +1 -1
  681. package/dist/views/Account/ResetPreferences/index.js +17 -17
  682. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  683. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  684. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
  685. package/dist/views/Account/ToggleTheme/index.js +106 -27
  686. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  687. package/dist/views/Account/index.client.js.map +1 -1
  688. package/dist/views/Branch/BranchChanges/index.d.ts.map +1 -1
  689. package/dist/views/Branch/BranchChanges/index.js +185 -86
  690. package/dist/views/Branch/BranchChanges/index.js.map +1 -1
  691. package/dist/views/Branch/DiscardChangesButton/index.js +1 -1
  692. package/dist/views/Branch/DiscardChangesButton/index.js.map +1 -1
  693. package/dist/views/Branch/Manage/index.js.map +1 -1
  694. package/dist/views/Branch/MergeChangesButton/index.js.map +1 -1
  695. package/dist/views/Branch/ScheduledMerges/index.js +1 -1
  696. package/dist/views/Branch/ScheduledMerges/index.js.map +1 -1
  697. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  698. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  699. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  700. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  701. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  702. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
  703. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  704. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  705. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  706. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  707. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +18 -5
  708. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  709. package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -1
  710. package/dist/views/Document/generateEditViewMetadata.js.map +1 -1
  711. package/dist/views/Document/index.js +1 -1
  712. package/dist/views/Document/index.js.map +1 -1
  713. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  714. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
  715. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  716. package/dist/views/Edit/Auth/index.js +13 -11
  717. package/dist/views/Edit/Auth/index.js.map +1 -1
  718. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  719. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  720. package/dist/views/Edit/index.css +26 -0
  721. package/dist/views/Edit/index.d.ts.map +1 -1
  722. package/dist/views/Edit/index.js +28 -17
  723. package/dist/views/Edit/index.js.map +1 -1
  724. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  725. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
  726. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  727. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  728. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  729. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  730. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
  731. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
  732. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
  733. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  734. package/dist/views/HierarchyList/index.js +2 -2
  735. package/dist/views/HierarchyList/index.js.map +1 -1
  736. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  737. package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
  738. package/dist/views/List/ListSelection/index.js.map +1 -1
  739. package/dist/views/Login/LoginField/index.js.map +1 -1
  740. package/dist/views/Login/LoginForm/index.js.map +1 -1
  741. package/dist/views/Logout/LogoutClient.js.map +1 -1
  742. package/dist/views/Logout/index.js.map +1 -1
  743. package/dist/views/NotFound/index.client.js.map +1 -1
  744. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  745. package/dist/views/Verify/index.client.js.map +1 -1
  746. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  747. package/dist/views/Version/Default/index.css +12 -12
  748. package/dist/views/Version/Default/index.js +333 -191
  749. package/dist/views/Version/Default/index.js.map +1 -1
  750. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  751. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  752. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +0 -4
  753. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  754. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
  755. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  756. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  757. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
  758. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  759. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  760. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  761. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  762. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
  763. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  764. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  765. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  766. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  767. package/dist/views/Version/Restore/index.js +183 -82
  768. package/dist/views/Version/Restore/index.js.map +1 -1
  769. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  770. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  771. package/dist/views/Version/SelectComparison/index.js +113 -33
  772. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  773. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  774. package/dist/views/Version/index.js.map +1 -1
  775. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  776. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  777. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  778. package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
  779. package/dist/views/Versions/index.client.js +9 -11
  780. package/dist/views/Versions/index.client.js.map +1 -1
  781. package/dist/views/Versions/index.js +2 -2
  782. package/dist/views/Versions/index.js.map +1 -1
  783. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
  784. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
  785. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
  786. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
  787. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
  788. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
  789. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
  790. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
  791. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
  792. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
  793. package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
  794. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
  795. package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
  796. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
  797. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
  798. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
  799. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
  800. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
  801. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
  802. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
  803. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
  804. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
  805. package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
  806. package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
  807. package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
  808. package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
  809. package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
  810. package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
  811. package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
  812. package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
  813. package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
  814. package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
  815. package/dist/widgets/Activity/components/Pagination/index.css +42 -0
  816. package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
  817. package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
  818. package/dist/widgets/Activity/components/Pagination/index.js +125 -0
  819. package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
  820. package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
  821. package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
  822. package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
  823. package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
  824. package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
  825. package/dist/widgets/Activity/index.client.d.ts +15 -0
  826. package/dist/widgets/Activity/index.client.d.ts.map +1 -0
  827. package/dist/widgets/Activity/index.client.js +186 -0
  828. package/dist/widgets/Activity/index.client.js.map +1 -0
  829. package/dist/widgets/Activity/index.css +320 -0
  830. package/dist/widgets/Activity/index.d.ts +13 -0
  831. package/dist/widgets/Activity/index.d.ts.map +1 -0
  832. package/dist/widgets/Activity/index.js +100 -0
  833. package/dist/widgets/Activity/index.js.map +1 -0
  834. package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +6 -13
  835. package/dist/widgets/Activity/types.d.ts.map +1 -0
  836. package/dist/widgets/Activity/types.js +2 -0
  837. package/dist/widgets/Activity/types.js.map +1 -0
  838. package/dist/widgets/Activity/utils/cache.d.ts +33 -0
  839. package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
  840. package/dist/widgets/Activity/utils/cache.js +72 -0
  841. package/dist/widgets/Activity/utils/cache.js.map +1 -0
  842. package/dist/widgets/Activity/utils/constants.d.ts +5 -0
  843. package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
  844. package/dist/widgets/Activity/utils/constants.js +4 -0
  845. package/dist/widgets/Activity/utils/constants.js.map +1 -0
  846. package/dist/widgets/Activity/utils/documents.d.ts +11 -0
  847. package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
  848. package/dist/widgets/Activity/utils/documents.js +38 -0
  849. package/dist/widgets/Activity/utils/documents.js.map +1 -0
  850. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
  851. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
  852. package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +24 -21
  853. package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
  854. package/dist/widgets/Activity/utils/state.d.ts +44 -0
  855. package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
  856. package/dist/widgets/Activity/utils/state.js +80 -0
  857. package/dist/widgets/Activity/utils/state.js.map +1 -0
  858. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
  859. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
  860. package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
  861. package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
  862. package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
  863. package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
  864. package/dist/widgets/Activity/utils/usePageSize.js +35 -0
  865. package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
  866. package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
  867. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
  868. package/dist/widgets/CollectionCards/index.client.js +3 -0
  869. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  870. package/dist/widgets/CollectionCards/index.d.ts +3 -0
  871. package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
  872. package/dist/widgets/CollectionCards/index.js +3 -0
  873. package/dist/widgets/CollectionCards/index.js.map +1 -1
  874. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  875. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  876. package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
  877. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  878. package/dist/widgets/CollectionQuery/index.d.ts +3 -0
  879. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
  880. package/dist/widgets/CollectionQuery/index.js +3 -0
  881. package/dist/widgets/CollectionQuery/index.js.map +1 -1
  882. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
  883. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
  884. package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
  885. package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
  886. package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
  887. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
  888. package/dist/widgets/UploadDropzone/index.client.js +3 -0
  889. package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
  890. package/dist/widgets/UploadDropzone/index.d.ts +3 -0
  891. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
  892. package/dist/widgets/UploadDropzone/index.js +3 -0
  893. package/dist/widgets/UploadDropzone/index.js.map +1 -1
  894. package/dist/widgets/Welcome/index.d.ts +3 -0
  895. package/dist/widgets/Welcome/index.d.ts.map +1 -1
  896. package/dist/widgets/Welcome/index.js +3 -0
  897. package/dist/widgets/Welcome/index.js.map +1 -1
  898. package/dist/widgets/WidgetCard/index.css +0 -20
  899. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
  900. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
  901. package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
  902. package/dist/widgets/shared/CollectionFilter/index.js +170 -0
  903. package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
  904. package/package.json +21 -23
  905. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  906. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  907. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  908. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
  909. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
  910. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
  911. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -73
  912. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
  913. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
  914. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -122
  915. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
  916. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
  917. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
  918. package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
  919. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
  920. package/dist/widgets/RecentlyViewed/index.client.js +0 -401
  921. package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
  922. package/dist/widgets/RecentlyViewed/index.css +0 -318
  923. package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
  924. package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
  925. package/dist/widgets/RecentlyViewed/index.js +0 -45
  926. package/dist/widgets/RecentlyViewed/index.js.map +0 -1
  927. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
  928. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
  929. package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
  930. package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
  931. package/dist/widgets/RecentlyViewed/recents.js +0 -19
  932. package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
  933. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
  934. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useMemo","useState","useForm","useFormFields","useBranchParam","useConfig","useDocumentInfo","useTranslation","getEffectiveHierarchyCollections","getHierarchyCollectionRestrictions","getHierarchyListURL","Button","HierarchyActionsMenu","useHierarchyModal","baseClass","HierarchyButtonClient","fieldName","hasMany","hierarchyCollectionSlug","Icon","readOnly","readOnlyFromProps","SmallIcon","i18n","t","config","getEntityConfig","id","documentId","collectionSlug","documentCollectionSlug","disabled","formDisabled","setModified","branch","dispatchField","_","dispatch","currentFieldValue","fields","currentSelections","value","Array","isArray","filter","selection","currentId","undefined","displayName","setDisplayName","isLoading","setIsLoading","collectionConfig","useAsTitle","admin","hierarchyConfig","relatedCollectionSlugs","typeFieldName","allowedCollections","isHierarchyCollection","filterByCollection","disabledIds","Set","HierarchyModal","openModal","fetchItemName","queryString","stringify","addQueryPrefix","response","fetch","apiRoute","routes","api","path","serverURL","credentials","ok","itemData","json","title","name","String","handleModalSave","closeModal","selections","ids","from","keys","newValue","type","handleClick","label","hasSingleSelection","hierarchyLabel","labels","singular","handleRemove","goTo","href","adminRoute","parentFieldName","parentID","buttonClassName","Boolean","join","_jsxs","_Fragment","_jsx","hasActions","onMove","onRemove","renderTrigger","triggerProps","buttonStyle","className","extraButtonProps","icon","iconPosition","margin","onClick","selected","tooltip","confirmLabel","initialSelections","onSave"],"sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { SelectionWithPath } from '../Modal/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { useBranchParam } from '../../../providers/Branch/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport {\n getEffectiveHierarchyCollections,\n getHierarchyCollectionRestrictions,\n} from '../../../utilities/hierarchyCollectionRestrictions.js'\nimport { getHierarchyListURL } from '../../../views/HierarchyList/getHierarchyListURL.js'\nimport { Button } from '../../Button/index.js'\nimport { HierarchyActionsMenu } from '../ActionsMenu/index.js'\nimport { useHierarchyModal } from '../Modal/useHierarchyModal.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-button'\n\nexport type HierarchyButtonClientProps = {\n fieldName: string\n hasMany?: boolean\n hierarchyCollectionSlug: string\n Icon?: React.ReactNode\n readOnly?: boolean\n SmallIcon?: React.ReactNode\n}\n\nexport const HierarchyButtonClient: React.FC<HierarchyButtonClientProps> = ({\n fieldName,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n readOnly: readOnlyFromProps,\n SmallIcon,\n}) => {\n const { i18n, t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { id: documentId, collectionSlug: documentCollectionSlug } = useDocumentInfo()\n const { disabled: formDisabled, setModified } = useForm()\n const branch = useBranchParam()\n const readOnly = readOnlyFromProps || formDisabled\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n\n const currentFieldValue = useFormFields(([fields]) => (fields && fields?.[fieldName]) || null)\n const currentSelections = useMemo(() => {\n const value = currentFieldValue?.value\n\n if (Array.isArray(value)) {\n return value.filter(\n (selection): selection is number | string =>\n typeof selection === 'number' || typeof selection === 'string',\n )\n }\n\n return typeof value === 'number' || typeof value === 'string' ? [value] : []\n }, [currentFieldValue?.value])\n const currentId = !hasMany ? currentSelections[0] : undefined\n\n const [displayName, setDisplayName] = useState<string>('')\n const [isLoading, setIsLoading] = useState(true)\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name'\n const { hierarchyConfig, relatedCollectionSlugs, typeFieldName } = useMemo(\n () => getHierarchyCollectionRestrictions({ collectionConfig }),\n [collectionConfig],\n )\n\n const allowedCollections = useFormFields(([fields]) => {\n const value = typeFieldName ? fields?.[typeFieldName]?.value : undefined\n\n return Array.isArray(value) ? (value as string[]) : undefined\n })\n\n const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug\n\n // When in hierarchy collection, let the modal use allowedCollections from context\n // When in other collections, filter by that collection's slug\n // Memoize to prevent new array references on every render\n const filterByCollection = useMemo(() => {\n if (!documentCollectionSlug) {\n return undefined\n }\n if (!isHierarchyCollection) {\n return [documentCollectionSlug]\n }\n if (!typeFieldName) {\n return undefined\n }\n return getEffectiveHierarchyCollections({ allowedCollections, relatedCollectionSlugs })\n }, [\n allowedCollections,\n documentCollectionSlug,\n isHierarchyCollection,\n relatedCollectionSlugs,\n typeFieldName,\n ])\n\n const disabledIds = useMemo(\n () => (isHierarchyCollection && documentId !== undefined ? new Set([documentId]) : undefined),\n [documentId, isHierarchyCollection],\n )\n\n const [HierarchyModal, , { openModal }] = useHierarchyModal({\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug,\n Icon,\n })\n\n // Fetch item name when currentId changes\n useEffect(() => {\n const fetchItemName = async () => {\n if (\n currentId !== null &&\n currentId !== undefined &&\n (typeof currentId === 'string' || typeof currentId === 'number')\n ) {\n setIsLoading(true)\n try {\n const queryString = qs.stringify({ branch }, { addQueryPrefix: true })\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${hierarchyCollectionSlug}/${currentId}${queryString}`,\n serverURL: config.serverURL,\n }),\n { credentials: 'include' },\n )\n\n if (response.ok) {\n const itemData = await response.json()\n const title = itemData?.[useAsTitle] || itemData?.name || itemData?.id\n\n setDisplayName(String(title))\n } else {\n setDisplayName(t('general:none'))\n }\n } catch {\n setDisplayName(t('general:none'))\n } finally {\n setIsLoading(false)\n }\n } else {\n setDisplayName(t('general:none'))\n setIsLoading(false)\n }\n }\n\n void fetchItemName()\n }, [\n branch,\n config.routes.api,\n config.serverURL,\n currentId,\n hierarchyCollectionSlug,\n t,\n useAsTitle,\n ])\n\n const handleModalSave = useCallback(\n ({\n closeModal,\n selections,\n }: {\n closeModal: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => {\n const ids = Array.from(selections.keys())\n const newValue = hasMany ? ids : (ids[0] ?? null)\n\n if (currentFieldValue?.value !== newValue) {\n dispatchField({\n type: 'UPDATE',\n path: fieldName,\n value: newValue,\n })\n setModified(true)\n }\n closeModal()\n },\n [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified],\n )\n\n const handleClick = useCallback(() => {\n if (!readOnly) {\n openModal()\n }\n }, [openModal, readOnly])\n\n const label = isLoading ? `${t('general:loading')}...` : displayName\n const hasSingleSelection =\n !hasMany && (typeof currentId === 'number' || typeof currentId === 'string')\n const hierarchyLabel =\n getTranslation(collectionConfig?.labels?.singular || hierarchyCollectionSlug, i18n) ||\n hierarchyCollectionSlug\n\n const handleRemove = useCallback(() => {\n dispatchField({\n type: 'UPDATE',\n path: fieldName,\n value: null,\n })\n setModified(true)\n }, [dispatchField, fieldName, setModified])\n\n const goTo = useMemo(\n () =>\n hasSingleSelection\n ? {\n name: displayName,\n href: getHierarchyListURL({\n adminRoute: config.routes.admin,\n collectionSlug: hierarchyCollectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n parentID: currentId,\n }),\n }\n : undefined,\n [\n config.routes.admin,\n currentId,\n displayName,\n hasSingleSelection,\n hierarchyCollectionSlug,\n hierarchyConfig?.parentFieldName,\n ],\n )\n\n const buttonClassName = [baseClass, readOnly && `${baseClass}--read-only`]\n .filter(Boolean)\n .join(' ')\n\n return (\n <>\n <HierarchyActionsMenu\n goTo={goTo}\n hasActions={hasSingleSelection && !readOnly}\n hierarchyLabel={hierarchyLabel}\n onMove={openModal}\n onRemove={handleRemove}\n renderTrigger={(triggerProps) => (\n <Button\n aria-label={triggerProps ? label : undefined}\n buttonStyle=\"secondary\"\n className={buttonClassName}\n disabled={readOnly}\n extraButtonProps={triggerProps?.extraButtonProps}\n icon={SmallIcon ?? Icon}\n iconPosition=\"left\"\n margin={false}\n onClick={triggerProps?.onClick ?? handleClick}\n selected={triggerProps?.selected}\n tooltip={triggerProps ? displayName : undefined}\n >\n {triggerProps ? <span className={`${baseClass}__truncate`}>{label}</span> : label}\n </Button>\n )}\n />\n <HierarchyModal\n confirmLabel={t('general:confirm')}\n hasMany={hasMany}\n initialSelections={currentSelections}\n onSave={handleModalSave}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useMemo","useState","useForm","useFormFields","useBranchParam","useConfig","useDocumentInfo","useTranslation","getEffectiveHierarchyCollections","getHierarchyCollectionRestrictions","getHierarchyListURL","Button","HierarchyActionsMenu","useHierarchyModal","baseClass","HierarchyButtonClient","fieldName","hasMany","hierarchyCollectionSlug","Icon","readOnly","readOnlyFromProps","SmallIcon","i18n","t","config","getEntityConfig","id","documentId","collectionSlug","documentCollectionSlug","disabled","formDisabled","setModified","branch","dispatchField","_","dispatch","currentFieldValue","fields","currentSelections","value","Array","isArray","filter","selection","currentId","undefined","displayName","setDisplayName","isLoading","setIsLoading","collectionConfig","useAsTitle","admin","hierarchyConfig","relatedCollectionSlugs","typeFieldName","allowedCollections","isHierarchyCollection","filterByCollection","disabledIds","Set","HierarchyModal","openModal","fetchItemName","queryString","stringify","addQueryPrefix","response","fetch","apiRoute","routes","api","path","serverURL","credentials","ok","itemData","json","title","name","String","handleModalSave","closeModal","selections","ids","from","keys","newValue","type","handleClick","label","hasSingleSelection","hierarchyLabel","labels","singular","handleRemove","goTo","href","adminRoute","parentFieldName","parentID","buttonClassName","Boolean","join","_jsxs","_Fragment","_jsx","hasActions","onMove","onRemove","renderTrigger","triggerProps","buttonStyle","className","extraButtonProps","icon","iconPosition","margin","onClick","selected","tooltip","confirmLabel","initialSelections","onSave"],"sources":["../../../../src/elements/Hierarchy/DocHeaderButton/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { SelectionWithPath } from '../Modal/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { useBranchParam } from '../../../providers/Branch/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport {\n getEffectiveHierarchyCollections,\n getHierarchyCollectionRestrictions,\n} from '../../../utilities/hierarchyCollectionRestrictions.js'\nimport { getHierarchyListURL } from '../../../views/HierarchyList/getHierarchyListURL.js'\nimport { Button } from '../../Button/index.js'\nimport { HierarchyActionsMenu } from '../ActionsMenu/index.js'\nimport { useHierarchyModal } from '../Modal/useHierarchyModal.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-button'\n\nexport type HierarchyButtonClientProps = {\n fieldName: string\n hasMany?: boolean\n hierarchyCollectionSlug: string\n Icon?: React.ReactNode\n readOnly?: boolean\n SmallIcon?: React.ReactNode\n}\n\nexport const HierarchyButtonClient: React.FC<HierarchyButtonClientProps> = ({\n fieldName,\n hasMany = false,\n hierarchyCollectionSlug,\n Icon,\n readOnly: readOnlyFromProps,\n SmallIcon,\n}) => {\n const { i18n, t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { id: documentId, collectionSlug: documentCollectionSlug } = useDocumentInfo()\n const { disabled: formDisabled, setModified } = useForm()\n const branch = useBranchParam()\n const readOnly = readOnlyFromProps || formDisabled\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n\n const currentFieldValue = useFormFields(([fields]) => (fields && fields?.[fieldName]) || null)\n const currentSelections = useMemo(() => {\n const value = currentFieldValue?.value\n\n if (Array.isArray(value)) {\n return value.filter(\n (selection): selection is number | string =>\n typeof selection === 'number' || typeof selection === 'string',\n )\n }\n\n return typeof value === 'number' || typeof value === 'string' ? [value] : []\n }, [currentFieldValue?.value])\n const currentId = !hasMany ? currentSelections[0] : undefined\n\n const [displayName, setDisplayName] = useState<string>('')\n const [isLoading, setIsLoading] = useState(true)\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'name'\n const { hierarchyConfig, relatedCollectionSlugs, typeFieldName } = useMemo(\n () => getHierarchyCollectionRestrictions({ collectionConfig }),\n [collectionConfig],\n )\n\n const allowedCollections = useFormFields(([fields]) => {\n const value = typeFieldName ? fields?.[typeFieldName]?.value : undefined\n\n return Array.isArray(value) ? (value as string[]) : undefined\n })\n\n const isHierarchyCollection = documentCollectionSlug === hierarchyCollectionSlug\n\n // When in hierarchy collection, let the modal use allowedCollections from context\n // When in other collections, filter by that collection's slug\n // Memoize to prevent new array references on every render\n const filterByCollection = useMemo(() => {\n if (!documentCollectionSlug) {\n return undefined\n }\n if (!isHierarchyCollection) {\n return [documentCollectionSlug]\n }\n if (!typeFieldName) {\n return undefined\n }\n return getEffectiveHierarchyCollections({ allowedCollections, relatedCollectionSlugs })\n }, [\n allowedCollections,\n documentCollectionSlug,\n isHierarchyCollection,\n relatedCollectionSlugs,\n typeFieldName,\n ])\n\n const disabledIds = useMemo(\n () => (isHierarchyCollection && documentId !== undefined ? new Set([documentId]) : undefined),\n [documentId, isHierarchyCollection],\n )\n\n const [HierarchyModal, , { openModal }] = useHierarchyModal({\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug,\n Icon,\n })\n\n // Fetch item name when currentId changes\n useEffect(() => {\n const fetchItemName = async () => {\n if (\n currentId !== null &&\n currentId !== undefined &&\n (typeof currentId === 'string' || typeof currentId === 'number')\n ) {\n setIsLoading(true)\n try {\n const queryString = qs.stringify({ branch }, { addQueryPrefix: true })\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${hierarchyCollectionSlug}/${currentId}${queryString}`,\n serverURL: config.serverURL,\n }),\n { credentials: 'include' },\n )\n\n if (response.ok) {\n const itemData = await response.json()\n const title = itemData?.[useAsTitle] || itemData?.name || itemData?.id\n\n setDisplayName(String(title))\n } else {\n setDisplayName(t('general:none'))\n }\n } catch {\n setDisplayName(t('general:none'))\n } finally {\n setIsLoading(false)\n }\n } else {\n setDisplayName(t('general:none'))\n setIsLoading(false)\n }\n }\n\n void fetchItemName()\n }, [\n branch,\n config.routes.api,\n config.serverURL,\n currentId,\n hierarchyCollectionSlug,\n t,\n useAsTitle,\n ])\n\n const handleModalSave = useCallback(\n ({\n closeModal,\n selections,\n }: {\n closeModal: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => {\n const ids = Array.from(selections.keys())\n const newValue = hasMany ? ids : (ids[0] ?? null)\n\n if (currentFieldValue?.value !== newValue) {\n dispatchField({\n type: 'UPDATE',\n path: fieldName,\n value: newValue,\n })\n setModified(true)\n }\n closeModal()\n },\n [currentFieldValue?.value, dispatchField, fieldName, hasMany, setModified],\n )\n\n const handleClick = useCallback(() => {\n if (!readOnly) {\n openModal()\n }\n }, [openModal, readOnly])\n\n const label = isLoading ? `${t('general:loading')}...` : displayName\n const hasSingleSelection =\n !hasMany && (typeof currentId === 'number' || typeof currentId === 'string')\n const hierarchyLabel =\n getTranslation(collectionConfig?.labels?.singular || hierarchyCollectionSlug, i18n) ||\n hierarchyCollectionSlug\n\n const handleRemove = useCallback(() => {\n dispatchField({\n type: 'UPDATE',\n path: fieldName,\n value: null,\n })\n setModified(true)\n }, [dispatchField, fieldName, setModified])\n\n const goTo = useMemo(\n () =>\n hasSingleSelection\n ? {\n name: displayName,\n href: getHierarchyListURL({\n adminRoute: config.routes.admin,\n collectionSlug: hierarchyCollectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n parentID: currentId,\n }),\n }\n : undefined,\n [\n config.routes.admin,\n currentId,\n displayName,\n hasSingleSelection,\n hierarchyCollectionSlug,\n hierarchyConfig?.parentFieldName,\n ],\n )\n\n const buttonClassName = [baseClass, readOnly && `${baseClass}--read-only`]\n .filter(Boolean)\n .join(' ')\n\n return (\n <>\n <HierarchyActionsMenu\n goTo={goTo}\n hasActions={hasSingleSelection && !readOnly}\n hierarchyLabel={hierarchyLabel}\n onMove={openModal}\n onRemove={handleRemove}\n renderTrigger={(triggerProps) => (\n <Button\n aria-label={`${t('hierarchy:folderLocation')}: ${label}`}\n buttonStyle=\"secondary\"\n className={buttonClassName}\n disabled={readOnly}\n extraButtonProps={triggerProps?.extraButtonProps}\n icon={SmallIcon ?? Icon}\n iconPosition=\"left\"\n margin={false}\n onClick={triggerProps?.onClick ?? handleClick}\n selected={triggerProps?.selected}\n tooltip={triggerProps ? displayName : undefined}\n >\n {triggerProps ? <span className={`${baseClass}__truncate`}>{label}</span> : label}\n </Button>\n )}\n />\n <HierarchyModal\n confirmLabel={t('general:confirm')}\n hasMany={hasMany}\n initialSelections={currentSelections}\n onSave={handleModalSave}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useMemo","GearIcon","useHierarchy","useRouteCache","useTranslation","Button","useDocumentDrawer","HierarchyEditButton","t0","$","id","collectionSlug","hasUpdatePermission","title","refreshTree","clearRouteCache","t","t1","drawerProps","DocumentDrawer","t2","closeDrawer","openDrawer","t3","handleSave","t4","_jsxs","_Fragment","children","_jsx","label","buttonStyle","className","icon","margin","onClick","onSave"],"sources":["../../../../src/elements/Hierarchy/EditButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport function HierarchyEditButton({\n id,\n collectionSlug,\n hasUpdatePermission,\n title,\n}: {\n collectionSlug: string\n hasUpdatePermission: boolean\n id: number | string\n title: string\n}) {\n const { refreshTree } = useHierarchy()\n const { clearRouteCache } = useRouteCache()\n const { t } = useTranslation()\n const drawerProps = useMemo(() => ({ id, collectionSlug }), [id, collectionSlug])\n const [DocumentDrawer, , { closeDrawer, openDrawer }] = useDocumentDrawer(drawerProps)\n\n const handleSave = useCallback(() => {\n closeDrawer()\n clearRouteCache()\n refreshTree(collectionSlug)\n }, [clearRouteCache, closeDrawer, collectionSlug, refreshTree])\n\n if (!hasUpdatePermission) {\n return null\n }\n\n return (\n <>\n <Button\n aria-label={t('general:editLabel', { label: title })}\n buttonStyle=\"ghost\"\n className=\"hierarchy-edit-button\"\n icon={<GearIcon />}\n margin={false}\n onClick={openDrawer}\n />\n <DocumentDrawer onSave={handleSave} />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAElC,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAA6B;IAAAa,EAAA;IAAAC,cAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAL,EAUnC;EACC;IAAAM;EAAA,IAAwBZ,YAAA;EACxB;IAAAa;EAAA,IAA4BZ,aAAA;EAC5B;IAAAa;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAC,EAAA;IACqBO,EAAA;MAAAP,EAAA;MAAAC;IAAA;IAAqBF,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAxD,MAAAS,WAAA,GAAmCD,EAAqB;EACxD,OAAAE,cAAA,GAAAC,EAAA,IAAwDd,iBAAA,CAAkBY,WAAA;EAAjD;IAAAG,WAAA;IAAAC;EAAA,IAAAF,EAA2B;EAAA,IAAAG,EAAA;EAAA,IAAAd,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAY,WAAA,IAAAZ,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAK,WAAA;IAErBS,EAAA,GAAAA,CAAA;MAC7BF,WAAA;MACAN,eAAA;MACAD,WAAA,CAAYH,cAAA;IAAA;IACdF,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAY,WAAA;IAAAZ,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAK,WAAA;IAAAL,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAJA,MAAAe,UAAA,GAAmBD,EAI2C;EAAA,KAEzDX,mBAAA;IAAA;EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAhB,CAAA,QAAAU,cAAA,IAAAV,CAAA,QAAAe,UAAA,IAAAf,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAO,CAAA,IAAAP,CAAA,SAAAI,KAAA;IAKHY,EAAA,GAAAC,KAAA,CAAAC,SAAA;MAAAC,QAAA,GACEC,IAAA,CAAAxB,MAAA;QAAA,cACcW,CAAA,CAAE;UAAAc,KAAA,EAA8BjB;QAAA,CAAM;QAAAkB,WAAA,EACtC;QAAAC,SAAA,EACF;QAAAC,IAAA,EACJJ,IAAA,CAAA5B,QAAA,IAAC;QAAAiC,MAAA;QAAAC,OAAA,EAEEb;MAAA,C,GAEXO,IAAA,CAACV,cAAA;QAAAiB,MAAA,EAAuBZ;MAAA,C;;;;;;;;;;;SAT1BC,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useMemo","GearIcon","useHierarchy","useRouteCache","useTranslation","Button","useDocumentDrawer","HierarchyEditButton","t0","$","id","collectionSlug","hasUpdatePermission","title","refreshTree","clearRouteCache","t","t1","drawerProps","DocumentDrawer","t2","closeDrawer","openDrawer","t3","handleSave","t4","_jsxs","_Fragment","children","_jsx","label","buttonStyle","className","icon","margin","onClick","onSave"],"sources":["../../../../src/elements/Hierarchy/EditButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\n\nexport function HierarchyEditButton({\n id,\n collectionSlug,\n hasUpdatePermission,\n title,\n}: {\n collectionSlug: string\n hasUpdatePermission: boolean\n id: number | string\n title: string\n}) {\n const { refreshTree } = useHierarchy()\n const { clearRouteCache } = useRouteCache()\n const { t } = useTranslation()\n const drawerProps = useMemo(() => ({ id, collectionSlug }), [id, collectionSlug])\n const [DocumentDrawer, , { closeDrawer, openDrawer }] = useDocumentDrawer(drawerProps)\n\n const handleSave = useCallback(() => {\n closeDrawer()\n clearRouteCache()\n refreshTree(collectionSlug)\n }, [clearRouteCache, closeDrawer, collectionSlug, refreshTree])\n\n if (!hasUpdatePermission) {\n return null\n }\n\n return (\n <>\n <Button\n aria-label={t('general:editLabel', { label: title })}\n buttonStyle=\"ghost\"\n className=\"hierarchy-edit-button\"\n icon={<GearIcon />}\n margin={false}\n onClick={openDrawer}\n />\n <DocumentDrawer onSave={handleSave} />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAElC,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAA6B;IAAAa,EAAA;IAAAC,cAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAL,EAUnC;EACC;IAAAM;EAAA,IAAwBZ,YAAA;EACxB;IAAAa;EAAA,IAA4BZ,aAAA;EAC5B;IAAAa;EAAA,IAAcZ,cAAA;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAC,EAAA;IACqBO,EAAA;MAAAP,EAAA;MAAAC;IAAqB;IAAAF,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAxD,MAAAS,WAAA,GAAmCD,EAAqB;EACxD,OAAAE,cAAA,GAAAC,EAAA,IAAwDd,iBAAA,CAAkBY,WAAA;EAAjD;IAAAG,WAAA;IAAAC;EAAA,IAAAF,EAA2B;EAAA,IAAAG,EAAA;EAAA,IAAAd,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAY,WAAA,IAAAZ,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAK,WAAA;IAErBS,EAAA,GAAAA,CAAA;MAC7BF,WAAA;MACAN,eAAA;MACAD,WAAA,CAAYH,cAAA;IAAA,CACd;IAAAF,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAY,WAAA;IAAAZ,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAK,WAAA;IAAAL,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAJA,MAAAe,UAAA,GAAmBD,EAI2C;EAE9D,IAAI,CAACX,mBAAA;IAAA,OACI;EAAA;EACT,IAAAa,EAAA;EAAA,IAAAhB,CAAA,QAAAU,cAAA,IAAAV,CAAA,QAAAe,UAAA,IAAAf,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAO,CAAA,IAAAP,CAAA,SAAAI,KAAA;IAGEY,EAAA,GAAAC,KAAA,CAAAC,SAAA;MAAAC,QAAA,E,CACEC,IAAA,CAACxB,MAAA;QAAA,cACaW,CAAA,CAAE,qBAAqB;UAAAc,KAAA,EAASjB;QAAM;QAAAkB,WAAA,EACtC;QAAAC,SAAA,EACF;QAAAC,IAAA,EACJJ,IAAA,CAAC5B,QAAA;QAAAiC,MAAA,EACC;QAAAC,OAAA,EACCb;UAEXO,IAAA,CAACV,cAAA;QAAAiB,MAAA,EAAuBZ;;;;;;;;;;;;SAT1BC,E","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useEffect","useHierarchy","HydrateHierarchyProvider","t0","$","allowedCollections","baseFilter","collectionSlug","expandedNodes","parent","parentFieldName","selectedFilters","tableData","treeData","treeLimit","typeFieldName","useAsTitle","hydrate","t1","t2"],"sources":["../../../../src/elements/Hierarchy/HydrateProvider/index.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect } from 'react'\n\nimport type { HydrateHierarchyProviderProps } from '../../../providers/Hierarchy/types.js'\n\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\n\nexport const HydrateHierarchyProvider: React.FC<HydrateHierarchyProviderProps> = ({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const { hydrate } = useHierarchy()\n\n useEffect(() => {\n hydrate({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n })\n }, [\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n hydrate,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n ])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAI1B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,wBAAA,GAAoEC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAC;IAAAM,kBAAA;IAAAC,UAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,MAAA;IAAAC,eAAA;IAAAC,eAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,aAAA;IAAAC;EAAA,IAAAb,EAajF;EACC;IAAAc;EAAA,IAAoBhB,YAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAC,kBAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAa,OAAA,IAAAb,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAO,eAAA,IAAAP,CAAA,QAAAQ,SAAA,IAAAR,CAAA,QAAAS,QAAA,IAAAT,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAW,aAAA,IAAAX,CAAA,SAAAY,UAAA;IAEVE,EAAA,GAAAA,CAAA;MACRD,OAAA;QAAAZ,kBAAA;QAAAC,UAAA;QAAAC,cAAA;QAAAC,aAAA;QAAAC,MAAA;QAAAC,eAAA;QAAAC,eAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,aAAA;QAAAC;MAAA,CAaA;IAAA;IACCG,EAAA,IACDd,kBAAA,EACAC,UAAA,EACAC,cAAA,EACAC,aAAA,EACAS,OAAA,EACAR,MAAA,EACAC,eAAA,EACAC,eAAA,EACAC,SAAA,EACAC,QAAA,EACAC,SAAA,EACAC,aAAA,EACAC,UAAA;IACDZ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,cAAA;IAAAH,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAa,OAAA;IAAAb,CAAA,MAAAK,MAAA;IAAAL,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAO,eAAA;IAAAP,CAAA,MAAAQ,SAAA;IAAAR,CAAA,MAAAS,QAAA;IAAAT,CAAA,OAAAU,SAAA;IAAAV,CAAA,OAAAW,aAAA;IAAAX,CAAA,OAAAY,UAAA;IAAAZ,CAAA,OAAAc,EAAA;IAAAd,CAAA,OAAAe,EAAA;EAAA;IAAAD,EAAA,GAAAd,CAAA;IAAAe,EAAA,GAAAf,CAAA;EAAA;EA7BDJ,SAAA,CAAUkB,EAeV,EAAGC,EAcF;EAAA;AAAA,CAGH","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useEffect","useHierarchy","HydrateHierarchyProvider","t0","$","allowedCollections","baseFilter","collectionSlug","expandedNodes","parent","parentFieldName","selectedFilters","tableData","treeData","treeLimit","typeFieldName","useAsTitle","hydrate","t1","t2"],"sources":["../../../../src/elements/Hierarchy/HydrateProvider/index.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect } from 'react'\n\nimport type { HydrateHierarchyProviderProps } from '../../../providers/Hierarchy/types.js'\n\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\n\nexport const HydrateHierarchyProvider: React.FC<HydrateHierarchyProviderProps> = ({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const { hydrate } = useHierarchy()\n\n useEffect(() => {\n hydrate({\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n })\n }, [\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n hydrate,\n parent,\n parentFieldName,\n selectedFilters,\n tableData,\n treeData,\n treeLimit,\n typeFieldName,\n useAsTitle,\n ])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAI1B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,wBAAA,GAAoEC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAC;IAAAM,kBAAA;IAAAC,UAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,MAAA;IAAAC,eAAA;IAAAC,eAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,aAAA;IAAAC;EAAA,IAAAb,EAajF;EACC;IAAAc;EAAA,IAAoBhB,YAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAC,kBAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAa,OAAA,IAAAb,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAO,eAAA,IAAAP,CAAA,QAAAQ,SAAA,IAAAR,CAAA,QAAAS,QAAA,IAAAT,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAW,aAAA,IAAAX,CAAA,SAAAY,UAAA;IAEVE,EAAA,GAAAA,CAAA;MACRD,OAAA,CAAQ;QAAAZ,kBAAA;QAAAC,UAAA;QAAAC,cAAA;QAAAC,aAAA;QAAAC,MAAA;QAAAC,eAAA;QAAAC,eAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,aAAA;QAAAC;MAaR;IAAA,CACF;IAAGG,EAAA,IACDd,kBAAA,EACAC,UAAA,EACAC,cAAA,EACAC,aAAA,EACAS,OAAA,EACAR,MAAA,EACAC,eAAA,EACAC,eAAA,EACAC,SAAA,EACAC,QAAA,EACAC,SAAA,EACAC,aAAA,EACAC,UAAA,CACD;IAAAZ,CAAA,MAAAC,kBAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,cAAA;IAAAH,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAa,OAAA;IAAAb,CAAA,MAAAK,MAAA;IAAAL,CAAA,MAAAM,eAAA;IAAAN,CAAA,MAAAO,eAAA;IAAAP,CAAA,MAAAQ,SAAA;IAAAR,CAAA,MAAAS,QAAA;IAAAT,CAAA,OAAAU,SAAA;IAAAV,CAAA,OAAAW,aAAA;IAAAX,CAAA,OAAAY,UAAA;IAAAZ,CAAA,OAAAc,EAAA;IAAAd,CAAA,OAAAe,EAAA;EAAA;IAAAD,EAAA,GAAAd,CAAA;IAAAe,EAAA,GAAAf,CAAA;EAAA;EA7BDJ,SAAA,CAAUkB,EAeV,EAAGC,EAcF;EAAA,OAEM;AAAA,CACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","FolderIcon","ReplaceIcon","useTranslation","Button","Chip","DialogFooter","baseClass","HierarchyPath","Icon","path","label","map","segment","title","join","_jsx","className","icon","HierarchyModalFooter","t0","$","confirmLabel","destinationPath","isBusy","t1","isConfirmDisabled","isMultiSelect","onClear","onConfirm","onMoveToRoot","placeholderLabel","previousPath","selectionCount","selectionCountLabel","showMoveToRoot","undefined","t","t2","_jsxs","children","Fragment","buttonStyle","margin","onClick","size","length","disabled"],"sources":["../../../../../src/elements/Hierarchy/Modal/Footer/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { PathSegment } from '../../ColumnBrowser/types.js'\n\nimport { FolderIcon } from '../../../../icons/Folder/index.js'\nimport { ReplaceIcon } from '../../../../icons/Replace/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport { Chip } from '../../../Chip/index.js'\nimport { DialogFooter } from '../../../Dialog/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-modal-footer'\n\nexport type HierarchyModalFooterProps = {\n confirmLabel: string\n destinationPath?: PathSegment[]\n Icon?: React.ReactNode\n isBusy?: boolean\n isConfirmDisabled: boolean\n isMultiSelect: boolean\n onClear: () => void\n onConfirm: () => void\n onMoveToRoot?: () => void\n placeholderLabel: string\n previousPath?: PathSegment[]\n selectionCount: number\n selectionCountLabel: string\n showMoveToRoot?: boolean\n}\n\nconst HierarchyPath: React.FC<{\n Icon?: React.ReactNode\n path: PathSegment[]\n}> = ({ Icon, path }) => {\n const label = path.map((segment) => segment.title).join(' / ')\n\n return (\n <Chip aria-label={label} className={`${baseClass}__path`} icon={Icon ?? <FolderIcon />}>\n {label}\n </Chip>\n )\n}\n\nexport const HierarchyModalFooter: React.FC<HierarchyModalFooterProps> = ({\n confirmLabel,\n destinationPath,\n Icon,\n isBusy = false,\n isConfirmDisabled,\n isMultiSelect,\n onClear,\n onConfirm,\n onMoveToRoot,\n placeholderLabel,\n previousPath,\n selectionCount,\n selectionCountLabel,\n showMoveToRoot,\n}) => {\n const { t } = useTranslation()\n\n return (\n <DialogFooter>\n <div className={`${baseClass}__info`}>\n {isMultiSelect ? (\n <React.Fragment>\n <span className={`${baseClass}__secondary`}>{selectionCountLabel}</span>\n {selectionCount > 0 ? (\n <Button\n buttonStyle=\"primary-ghost\"\n className={`${baseClass}__clear`}\n margin={false}\n onClick={onClear}\n size=\"medium\"\n >\n {t('general:clear')}\n </Button>\n ) : null}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {previousPath?.length ? (\n <React.Fragment>\n <HierarchyPath Icon={Icon} path={previousPath} />\n <span aria-hidden className={`${baseClass}__arrow`}>\n <ReplaceIcon />\n </span>\n </React.Fragment>\n ) : null}\n {destinationPath?.length ? (\n <HierarchyPath Icon={Icon} path={destinationPath} />\n ) : (\n <span className={`${baseClass}__secondary`}>{placeholderLabel}</span>\n )}\n </React.Fragment>\n )}\n </div>\n <div className={`${baseClass}__actions`}>\n {showMoveToRoot && onMoveToRoot ? (\n <Button\n buttonStyle=\"secondary\"\n disabled={isBusy}\n margin={false}\n onClick={onMoveToRoot}\n size=\"medium\"\n >\n {t('hierarchy:moveToRoot')}\n </Button>\n ) : null}\n <Button\n disabled={isBusy || isConfirmDisabled}\n margin={false}\n onClick={onConfirm}\n size=\"medium\"\n >\n {confirmLabel}\n </Button>\n </div>\n </DialogFooter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","FolderIcon","ReplaceIcon","useTranslation","Button","Chip","DialogFooter","baseClass","HierarchyPath","Icon","path","label","map","segment","title","join","_jsx","className","icon","HierarchyModalFooter","t0","$","confirmLabel","destinationPath","isBusy","t1","isConfirmDisabled","isMultiSelect","onClear","onConfirm","onMoveToRoot","placeholderLabel","previousPath","selectionCount","selectionCountLabel","showMoveToRoot","undefined","t","t2","_jsxs","children","Fragment","buttonStyle","margin","onClick","size","length","disabled"],"sources":["../../../../../src/elements/Hierarchy/Modal/Footer/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { PathSegment } from '../../ColumnBrowser/types.js'\n\nimport { FolderIcon } from '../../../../icons/Folder/index.js'\nimport { ReplaceIcon } from '../../../../icons/Replace/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport { Chip } from '../../../Chip/index.js'\nimport { DialogFooter } from '../../../Dialog/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-modal-footer'\n\nexport type HierarchyModalFooterProps = {\n confirmLabel: string\n destinationPath?: PathSegment[]\n Icon?: React.ReactNode\n isBusy?: boolean\n isConfirmDisabled: boolean\n isMultiSelect: boolean\n onClear: () => void\n onConfirm: () => void\n onMoveToRoot?: () => void\n placeholderLabel: string\n previousPath?: PathSegment[]\n selectionCount: number\n selectionCountLabel: string\n showMoveToRoot?: boolean\n}\n\nconst HierarchyPath: React.FC<{\n Icon?: React.ReactNode\n path: PathSegment[]\n}> = ({ Icon, path }) => {\n const label = path.map((segment) => segment.title).join(' / ')\n\n return (\n <Chip aria-label={label} className={`${baseClass}__path`} icon={Icon ?? <FolderIcon />}>\n {label}\n </Chip>\n )\n}\n\nexport const HierarchyModalFooter: React.FC<HierarchyModalFooterProps> = ({\n confirmLabel,\n destinationPath,\n Icon,\n isBusy = false,\n isConfirmDisabled,\n isMultiSelect,\n onClear,\n onConfirm,\n onMoveToRoot,\n placeholderLabel,\n previousPath,\n selectionCount,\n selectionCountLabel,\n showMoveToRoot,\n}) => {\n const { t } = useTranslation()\n\n return (\n <DialogFooter>\n <div className={`${baseClass}__info`}>\n {isMultiSelect ? (\n <React.Fragment>\n <span className={`${baseClass}__secondary`}>{selectionCountLabel}</span>\n {selectionCount > 0 ? (\n <Button\n buttonStyle=\"primary-ghost\"\n className={`${baseClass}__clear`}\n margin={false}\n onClick={onClear}\n size=\"medium\"\n >\n {t('general:clear')}\n </Button>\n ) : null}\n </React.Fragment>\n ) : (\n <React.Fragment>\n {previousPath?.length ? (\n <React.Fragment>\n <HierarchyPath Icon={Icon} path={previousPath} />\n <span aria-hidden className={`${baseClass}__arrow`}>\n <ReplaceIcon />\n </span>\n </React.Fragment>\n ) : null}\n {destinationPath?.length ? (\n <HierarchyPath Icon={Icon} path={destinationPath} />\n ) : (\n <span className={`${baseClass}__secondary`}>{placeholderLabel}</span>\n )}\n </React.Fragment>\n )}\n </div>\n <div className={`${baseClass}__actions`}>\n {showMoveToRoot && onMoveToRoot ? (\n <Button\n buttonStyle=\"secondary\"\n disabled={isBusy}\n margin={false}\n onClick={onMoveToRoot}\n size=\"medium\"\n >\n {t('hierarchy:moveToRoot')}\n </Button>\n ) : null}\n <Button\n disabled={isBusy || isConfirmDisabled}\n margin={false}\n onClick={onConfirm}\n size=\"medium\"\n >\n {confirmLabel}\n </Button>\n </div>\n </DialogFooter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import React, { useCallback, useMemo } from 'react';
6
6
  const baseClass = 'hierarchy-search-result-item';
7
7
  export const HierarchySearchResultItem = t0 => {
8
- const $ = _c(11);
8
+ const $ = _c(14);
9
9
  const {
10
10
  id,
11
11
  onClick,
@@ -46,21 +46,28 @@ export const HierarchySearchResultItem = t0 => {
46
46
  }
47
47
  const handleKeyDown = t3;
48
48
  let t4;
49
- bb0: {
50
- if (!path) {
51
- t4 = "";
52
- break bb0;
53
- }
54
- const segments = path.split(" / ");
55
- if (segments.length <= truncateSegments) {
56
- t4 = path;
57
- break bb0;
49
+ if ($[6] !== path || $[7] !== truncateSegments) {
50
+ bb0: {
51
+ if (!path) {
52
+ t4 = "";
53
+ break bb0;
54
+ }
55
+ const segments = path.split(" / ");
56
+ if (segments.length <= truncateSegments) {
57
+ t4 = path;
58
+ break bb0;
59
+ }
60
+ t4 = "... / " + segments.slice(-truncateSegments).join(" / ");
58
61
  }
59
- t4 = "... / " + segments.slice(-truncateSegments).join(" / ");
62
+ $[6] = path;
63
+ $[7] = truncateSegments;
64
+ $[8] = t4;
65
+ } else {
66
+ t4 = $[8];
60
67
  }
61
68
  const truncatedPath = t4;
62
69
  let t5;
63
- if ($[6] !== handleClick || $[7] !== handleKeyDown || $[8] !== title || $[9] !== truncatedPath) {
70
+ if ($[9] !== handleClick || $[10] !== handleKeyDown || $[11] !== title || $[12] !== truncatedPath) {
64
71
  t5 = _jsxs("div", {
65
72
  className: baseClass,
66
73
  onClick: handleClick,
@@ -75,13 +82,13 @@ export const HierarchySearchResultItem = t0 => {
75
82
  children: truncatedPath
76
83
  })]
77
84
  });
78
- $[6] = handleClick;
79
- $[7] = handleKeyDown;
80
- $[8] = title;
81
- $[9] = truncatedPath;
82
- $[10] = t5;
85
+ $[9] = handleClick;
86
+ $[10] = handleKeyDown;
87
+ $[11] = title;
88
+ $[12] = truncatedPath;
89
+ $[13] = t5;
83
90
  } else {
84
- t5 = $[10];
91
+ t5 = $[13];
85
92
  }
86
93
  return t5;
87
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySearchResultItem.js","names":["c","_c","React","useCallback","useMemo","baseClass","HierarchySearchResultItem","t0","$","id","onClick","path","title","truncateSegments","t1","undefined","t2","handleClick","t3","e","key","preventDefault","handleKeyDown","t4","bb0","segments","split","length","slice","join","truncatedPath","t5","_jsxs","className","onKeyDown","role","tabIndex","children","_jsx"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResultItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nconst baseClass = 'hierarchy-search-result-item'\n\ntype HierarchySearchResultItemProps = {\n id: number | string\n onClick: ({ id }: { id: number | string }) => void\n path: string\n title: string\n truncateSegments?: number\n}\n\nexport const HierarchySearchResultItem: React.FC<HierarchySearchResultItemProps> = ({\n id,\n onClick,\n path,\n title,\n truncateSegments = 3,\n}) => {\n const handleClick = useCallback(() => {\n onClick({ id })\n }, [id, onClick])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick({ id })\n }\n },\n [id, onClick],\n )\n\n const truncatedPath = useMemo(() => {\n if (!path) {\n return ''\n }\n\n const segments = path.split(' / ')\n\n if (segments.length <= truncateSegments) {\n return path\n }\n\n return '... / ' + segments.slice(-truncateSegments).join(' / ')\n }, [path, truncateSegments])\n\n return (\n <div\n className={baseClass}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}__title`}>{title}</div>\n {truncatedPath && <div className={`${baseClass}__path`}>{truncatedPath}</div>}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,yBAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,EAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,gBAAA,EAAAC;EAAA,IAAAP,EAMnF;EADC,MAAAM,gBAAA,GAAAC,EAAoB,KAAAC,SAAA,OAApBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAR,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAE,OAAA;IAEYM,EAAA,GAAAA,CAAA;MAC9BN,OAAA;QAAAD;MAAA,CAAa;IAAA;IACfD,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAFA,MAAAS,WAAA,GAAoBD,EAEJ;EAAA,IAAAE,EAAA;EAAA,IAAAV,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAE,OAAA;IAGdQ,EAAA,GAAAC,CAAA;MAAA,IACMA,CAAA,CAAAC,GAAA,KAAU,WAAWD,CAAA,CAAAC,GAAA,KAAU;QACjCD,CAAA,CAAAE,cAAA,CAAgB;QAChBX,OAAA;UAAAD;QAAA,CAAa;MAAA;IAAA;IAEjBD,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EANF,MAAAc,aAAA,GAAsBJ,EAOP;EAAA,IAAAK,EAAA;EAAAC,GAAA;IAAA,KAIRb,IAAA;MACHY,EAAA,GAAO;MAAA,MAAAC,GAAA;IAAA;IAGT,MAAAC,QAAA,GAAiBd,IAAA,CAAAe,KAAA,CAAW;IAAA,IAExBD,QAAA,CAAAE,MAAA,IAAmBd,gBAAA;MACrBU,EAAA,GAAOZ,IAAA;MAAA,MAAAa,GAAA;IAAA;IAGTD,EAAA,GAAO,WAAWE,QAAA,CAAAG,KAAA,EAAgBf,gBAAA,EAAAgB,IAAA,CAAuB;EAAA;EAX3D,MAAAC,aAAA,GAAsBP,EAYK;EAAA,IAAAQ,EAAA;EAAA,IAAAvB,CAAA,QAAAS,WAAA,IAAAT,CAAA,QAAAc,aAAA,IAAAd,CAAA,QAAAI,KAAA,IAAAJ,CAAA,QAAAsB,aAAA;IAGzBC,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EAAA5B,SAAA;MAAAK,OAAA,EAEUO,WAAA;MAAAiB,SAAA,EACEZ,aAAA;MAAAa,IAAA,EACN;MAAAC,QAAA;MAAAC,QAAA,GAGLC,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAA5B,SAAA,SAAqB;QAAAgC,QAAA,EAAGzB;MAAA,C,GACvCkB,aAAA,IAAiBQ,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAA5B,SAAA,QAAoB;QAAAgC,QAAA,EAAGP;MAAA,C;;;;;;;;;;SAR3DC,E;CAWJ","ignoreList":[]}
1
+ {"version":3,"file":"HierarchySearchResultItem.js","names":["c","_c","React","useCallback","useMemo","baseClass","HierarchySearchResultItem","t0","$","id","onClick","path","title","truncateSegments","t1","undefined","t2","handleClick","t3","e","key","preventDefault","handleKeyDown","t4","bb0","segments","split","length","slice","join","truncatedPath","t5","_jsxs","className","onKeyDown","role","tabIndex","children","_jsx"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResultItem.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nconst baseClass = 'hierarchy-search-result-item'\n\ntype HierarchySearchResultItemProps = {\n id: number | string\n onClick: ({ id }: { id: number | string }) => void\n path: string\n title: string\n truncateSegments?: number\n}\n\nexport const HierarchySearchResultItem: React.FC<HierarchySearchResultItemProps> = ({\n id,\n onClick,\n path,\n title,\n truncateSegments = 3,\n}) => {\n const handleClick = useCallback(() => {\n onClick({ id })\n }, [id, onClick])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick({ id })\n }\n },\n [id, onClick],\n )\n\n const truncatedPath = useMemo(() => {\n if (!path) {\n return ''\n }\n\n const segments = path.split(' / ')\n\n if (segments.length <= truncateSegments) {\n return path\n }\n\n return '... / ' + segments.slice(-truncateSegments).join(' / ')\n }, [path, truncateSegments])\n\n return (\n <div\n className={baseClass}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n >\n <div className={`${baseClass}__title`}>{title}</div>\n {truncatedPath && <div className={`${baseClass}__path`}>{truncatedPath}</div>}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAE5C,MAAMC,SAAA,GAAY;AAUlB,OAAO,MAAMC,yBAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,EAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,gBAAA,EAAAC;EAAA,IAAAP,EAMnF;EADC,MAAAM,gBAAA,GAAAC,EAAoB,KAApBC,SAAoB,GAApB,CAAoB,GAApBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAR,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAE,OAAA;IAEYM,EAAA,GAAAA,CAAA;MAC9BN,OAAA,CAAQ;QAAAD;MAAK;IAAA,CACf;IAAAD,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAFA,MAAAS,WAAA,GAAoBD,EAEJ;EAAA,IAAAE,EAAA;EAAA,IAAAV,CAAA,QAAAC,EAAA,IAAAD,CAAA,QAAAE,OAAA;IAGdQ,EAAA,GAAAC,CAAA;MACE,IAAIA,CAAA,CAAAC,GAAK,KAAK,OAAqB,IAAVD,CAAA,CAAAC,GAAK,KAAK;QACjCD,CAAA,CAAAE,cAAgB;QAChBX,OAAA,CAAQ;UAAAD;QAAK;MAAA;IACf,CACF;IAAAD,CAAA,MAAAC,EAAA;IAAAD,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EANF,MAAAc,aAAA,GAAsBJ,EAOP;EAAA,IAAAK,EAAA;EAAA,IAAAf,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,gBAAA;IAAAW,GAAA;MAIb,IAAI,CAACb,IAAA;QACHY,EAAA,GAAO;QAAP,MAAAC,GAAA;MAAO;MAGT,MAAAC,QAAA,GAAiBd,IAAA,CAAAe,KAAU,CAAC;MAE5B,IAAID,QAAA,CAAAE,MAAe,IAAId,gBAAA;QACrBU,EAAA,GAAOZ,IAAA;QAAP,MAAAa,GAAA;MAAO;MAGTD,EAAA,GAAO,WAAWE,QAAA,CAAAG,KAAc,CAAC,CAACf,gBAAA,EAAAgB,IAAsB,CAAC;IAAA;IAAArB,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,gBAAA;IAAAL,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAX3D,MAAAsB,aAAA,GAAsBP,EAYK;EAAA,IAAAQ,EAAA;EAAA,IAAAvB,CAAA,QAAAS,WAAA,IAAAT,CAAA,SAAAc,aAAA,IAAAd,CAAA,SAAAI,KAAA,IAAAJ,CAAA,SAAAsB,aAAA;IAGzBC,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EACY5B,SAAA;MAAAK,OAAA,EACFO,WAAA;MAAAiB,SAAA,EACEZ,aAAA;MAAAa,IAAA,EACN;MAAAC,QAAA,EACK;MAAAC,QAAA,E,CAEVC,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAG5B,SAAA,SAAkB;QAAAgC,QAAA,EAAGzB;UACvCkB,a,IAAiBQ,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAG5B,SAAA,QAAiB;QAAAgC,QAAA,EAAGP;;;;;;;;;;;SAR3DC,E;CAWJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySearchResults.js","names":["c","_c","React","useTranslation","LoadMoreRow","HierarchySearchResultItem","baseClass","HierarchySearchResults","t0","$","hasNextPage","isLoading","onLoadMore","onSelect","query","results","titleField","totalDocs","t","length","t1","_jsx","className","children","t2","result","id","onClick","path","title","String","_jsxs","map","currentCount","hasMore"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResults.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport type { SearchResult } from './types.js'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { LoadMoreRow } from '../../LoadMoreRow/index.js'\nimport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\n\nconst baseClass = 'hierarchy-search-results'\n\ntype HierarchySearchResultsProps = {\n hasNextPage: boolean\n isLoading: boolean\n onLoadMore: () => void\n onSelect: ({ id }: { id: number | string }) => void\n query: string\n results: SearchResult[]\n titleField: string\n totalDocs: number\n}\n\nexport const HierarchySearchResults: React.FC<HierarchySearchResultsProps> = ({\n hasNextPage,\n isLoading,\n onLoadMore,\n onSelect,\n query,\n results,\n titleField,\n totalDocs,\n}) => {\n const { t } = useTranslation()\n\n if (results.length === 0 && !isLoading) {\n return <div className={`${baseClass}__empty`}>{t('hierarchy:noResults', { query })}</div>\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__list`}>\n {results.map((result) => (\n <HierarchySearchResultItem\n id={result.id}\n key={result.id}\n onClick={onSelect}\n path={result.path}\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n title={String(result[titleField] || result.id)}\n />\n ))}\n </div>\n <LoadMoreRow\n className={`${baseClass}__load-more`}\n currentCount={results.length}\n hasMore={hasNextPage}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n totalDocs={totalDocs}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAIlB,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,yBAAyB,QAAQ;AAE1C,MAAMC,SAAA,GAAY;AAalB,OAAO,MAAMC,sBAAA,GAAgEC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,WAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAT,EAS7E;EACC;IAAAU;EAAA,IAAcf,cAAA;EAAA,IAEVY,OAAA,CAAAI,MAAA,MAAmB,KAAMR,SAAA;IAAA,IAAAS,EAAA;IAAA,IAAAX,CAAA,QAAAK,KAAA,IAAAL,CAAA,QAAAS,CAAA;MACpBE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAAhB,SAAA,SAAqB;QAAAiB,QAAA,EAAGL,CAAA,CAAE;UAAAJ;QAAA,CAA+B;MAAA,C;;;;;;;WAAzEM,E;;;;;;MAMUI,EAAA,GAAAC,MAAA,IACXJ,IAAA,CAAAhB,yBAAA;QAAAqB,EAAA,EACMD,MAAA,CAAAC,EAAA;QAAAC,OAAA,EAEKd,QAAA;QAAAe,IAAA,EACHH,MAAA,CAAAG,IAAA;QAAAC,KAAA,EAECC,MAAA,CAAOL,MAAM,CAACT,UAAA,KAAeS,MAAA,CAAAC,EAAS;MAAA,GAJxCD,MAAA,CAAAC,EAAS;MAAAjB,CAAA,OAAAI,QAAA;MAAAJ,CAAA,OAAAO,UAAA;MAAAP,CAAA,OAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IALtBW,EAAA,GAAAW,KAAA,CAAC;MAAAT,SAAA,EAAAhB,SAAA;MAAAiB,QAAA,GACCF,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAAhB,SAAA,QAAoB;QAAAiB,QAAA,EACjCR,OAAA,CAAAiB,GAAA,CAAYR,EAGK;MAAA,C,GAQpBH,IAAA,CAAAjB,WAAA;QAAAkB,SAAA,EACa,GAAAhB,SAAA,aAAyB;QAAA2B,YAAA,EACtBlB,OAAA,CAAAI,MAAA;QAAAe,OAAA,EACLxB,WAAA;QAAAC,SAAA;QAAAC,UAAA;QAAAK;MAAA,C;;;;;;;;;;;;;SAhBbG,E;CAuBJ","ignoreList":[]}
1
+ {"version":3,"file":"HierarchySearchResults.js","names":["c","_c","React","useTranslation","LoadMoreRow","HierarchySearchResultItem","baseClass","HierarchySearchResults","t0","$","hasNextPage","isLoading","onLoadMore","onSelect","query","results","titleField","totalDocs","t","length","t1","_jsx","className","children","t2","result","id","onClick","path","title","String","_jsxs","map","currentCount","hasMore"],"sources":["../../../../src/elements/Hierarchy/Search/HierarchySearchResults.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport type { SearchResult } from './types.js'\n\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { LoadMoreRow } from '../../LoadMoreRow/index.js'\nimport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\n\nconst baseClass = 'hierarchy-search-results'\n\ntype HierarchySearchResultsProps = {\n hasNextPage: boolean\n isLoading: boolean\n onLoadMore: () => void\n onSelect: ({ id }: { id: number | string }) => void\n query: string\n results: SearchResult[]\n titleField: string\n totalDocs: number\n}\n\nexport const HierarchySearchResults: React.FC<HierarchySearchResultsProps> = ({\n hasNextPage,\n isLoading,\n onLoadMore,\n onSelect,\n query,\n results,\n titleField,\n totalDocs,\n}) => {\n const { t } = useTranslation()\n\n if (results.length === 0 && !isLoading) {\n return <div className={`${baseClass}__empty`}>{t('hierarchy:noResults', { query })}</div>\n }\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__list`}>\n {results.map((result) => (\n <HierarchySearchResultItem\n id={result.id}\n key={result.id}\n onClick={onSelect}\n path={result.path}\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n title={String(result[titleField] || result.id)}\n />\n ))}\n </div>\n <LoadMoreRow\n className={`${baseClass}__load-more`}\n currentCount={results.length}\n hasMore={hasNextPage}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n totalDocs={totalDocs}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAIlB,SAASC,cAAc,QAAQ;AAC/B,SAASC,WAAW,QAAQ;AAC5B,SAASC,yBAAyB,QAAQ;AAE1C,MAAMC,SAAA,GAAY;AAalB,OAAO,MAAMC,sBAAA,GAAgEC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,WAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAT,EAS7E;EACC;IAAAU;EAAA,IAAcf,cAAA;EAEd,IAAIY,OAAA,CAAAI,MAAc,KAAK,CAAM,IAAzB,CAAyBR,SAAA;IAAA,IAAAS,EAAA;IAAA,IAAAX,CAAA,QAAAK,KAAA,IAAAL,CAAA,QAAAS,CAAA;MACpBE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAGhB,SAAA,SAAkB;QAAAiB,QAAA,EAAGL,CAAA,CAAE,uBAAuB;UAAAJ;QAAQ;;;;;;;;WAAzEM,E;;EACT,IAAAA,EAAA;EAAA,IAAAX,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAM,OAAA,IAAAN,CAAA,QAAAO,UAAA,IAAAP,CAAA,QAAAQ,SAAA;IAAA,IAAAO,EAAA;IAAA,IAAAf,CAAA,SAAAI,QAAA,IAAAJ,CAAA,SAAAO,UAAA;MAKmBQ,EAAA,GAAAC,MAAA,IACXJ,IAAA,CAAChB,yBAAA;QAAAqB,EAAA,EACKD,MAAA,CAAAC,EAAS;QAAAC,OAAA,EAEJd,QAAA;QAAAe,IAAA,EACHH,MAAA,CAAAG,IAAW;QAAAC,KAAA,EAEVC,MAAA,CAAOL,MAAM,CAACT,UAAA,CAAwB,IAATS,MAAA,CAAAC,EAAS;SAJxCD,MAAA,CAAAC,EAAS;MAAAjB,CAAA,OAAAI,QAAA;MAAAJ,CAAA,OAAAO,UAAA;MAAAP,CAAA,OAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IALtBW,EAAA,GAAAW,KAAA,CAAC;MAAAT,SAAA,EAAehB,SAAA;MAAAiB,QAAA,E,CACdF,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAGhB,SAAA,QAAiB;QAAAiB,QAAA,EACjCR,OAAA,CAAAiB,GAAW,CAACR,EAGK;UAQpBH,IAAA,CAACjB,WAAA;QAAAkB,SAAA,EACY,GAAGhB,SAAA,aAAsB;QAAA2B,YAAA,EACtBlB,OAAA,CAAAI,MAAc;QAAAe,OAAA,EACnBxB,WAAA;QAAAC,SAAA;QAAAC,UAAA;QAAAK;;;;;;;;;;;;;;SAhBbG,E;CAuBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","useState","FilterIcon","useConfig","useTranslation","Button","Popup","PopupList","SearchInput","HierarchySearchResults","useHierarchySearch","baseClass","HierarchySearch","t0","$","collectionSlug","collectionSpecificOptions","isActive","onActiveChange","onFilterChange","onSelect","selectedFilters","i18n","t","getEntityConfig","inputValue","setInputValue","completedQuery","setCompletedQuery","collectionConfig","titleField","admin","useAsTitle","collectionLabel","labels","plural","hierarchyConfig","hierarchy","clearResults","hasNextPage","isLoading","loadMore","results","search","totalDocs","parentFieldName","titlePathField","titlePathFieldName","t1","query","handleSearch","t2","handleClear","t3","value","handleInputChange","t4","t5","id","handleSelect","t6","selectedValues","handleFilterChange","hasFilters","length","hasActiveFilters","_jsxs","className","children","_jsx","onChange","onClear","onSearch","placeholder","label","buttonClassName","caret","horizontalAlign","popupType","render","CheckboxGroup","map","value_0","isActive_0","includes","CheckboxGroupItem","active","onClick","newSelectedValues","filter","v","onKeyDown","ariaProps","t7","buttonStyle","extraButtonProps","icon","hasBadgeCutout","size","role","count","onLoadMore","HierarchySearchResultItem"],"sources":["../../../../src/elements/Hierarchy/Search/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useState } from 'react'\n\nimport type { HierarchySearchProps } from './types.js'\n\nimport { FilterIcon } from '../../../icons/Filter/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { SearchInput } from '../../Search/SearchInput/index.js'\nimport { HierarchySearchResults } from './HierarchySearchResults.js'\nimport { useHierarchySearch } from './useHierarchySearch.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-search'\n\nexport const HierarchySearch: React.FC<HierarchySearchProps> = ({\n collectionSlug,\n collectionSpecificOptions,\n isActive,\n onActiveChange,\n onFilterChange,\n onSelect,\n selectedFilters,\n}) => {\n const { i18n, t } = useTranslation()\n const { getEntityConfig } = useConfig()\n const [inputValue, setInputValue] = useState('')\n const [completedQuery, setCompletedQuery] = useState('')\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const titleField = collectionConfig?.admin?.useAsTitle || 'id'\n const collectionLabel = getTranslation(collectionConfig?.labels?.plural, i18n)\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : null\n\n const { clearResults, hasNextPage, isLoading, loadMore, results, search, totalDocs } =\n useHierarchySearch({\n collectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n titleField,\n titlePathField: hierarchyConfig?.titlePathFieldName,\n })\n\n const handleSearch = useCallback(\n async (query: string) => {\n await search(query)\n setCompletedQuery(query)\n onActiveChange(true)\n },\n [search, onActiveChange],\n )\n\n const handleClear = useCallback(() => {\n setInputValue('')\n clearResults()\n onActiveChange(false)\n }, [clearResults, onActiveChange])\n\n const handleInputChange = useCallback(\n (value: string) => {\n setInputValue(value)\n if (!value && isActive) {\n clearResults()\n onActiveChange(false)\n }\n },\n [isActive, clearResults, onActiveChange],\n )\n\n const handleSelect = useCallback(\n ({ id }: { id: number | string }) => {\n onSelect({ id })\n handleClear()\n },\n [onSelect, handleClear],\n )\n\n const handleFilterChange = useCallback(\n ({ selectedValues }: { selectedValues: string[] }) => {\n onFilterChange?.(selectedValues)\n },\n [onFilterChange],\n )\n\n const hasFilters = collectionSpecificOptions && collectionSpecificOptions.length > 0\n const hasActiveFilters = selectedFilters && selectedFilters.length > 0\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__controls`}>\n <SearchInput\n onChange={handleInputChange}\n onClear={handleClear}\n onSearch={handleSearch}\n placeholder={t('hierarchy:searchLabel', { label: collectionLabel })}\n value={inputValue}\n />\n {hasFilters && (\n <Popup\n buttonClassName={`${baseClass}__filter`}\n caret={false}\n horizontalAlign=\"right\"\n popupType=\"menu\"\n render={() => (\n <PopupList.CheckboxGroup>\n {collectionSpecificOptions.map(({ label, value }) => {\n const isActive = selectedFilters?.includes(value)\n return (\n <PopupList.CheckboxGroupItem\n active={isActive}\n key={value}\n onClick={() => {\n const newSelectedValues = isActive\n ? selectedFilters.filter((v) => v !== value)\n : [...selectedFilters, value]\n handleFilterChange({ selectedValues: newSelectedValues })\n }}\n >\n {label}\n </PopupList.CheckboxGroupItem>\n )\n })}\n </PopupList.CheckboxGroup>\n )}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n {...ariaProps}\n aria-label={t('general:filter')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__filter`}\n extraButtonProps={{ onKeyDown }}\n icon={<FilterIcon hasBadgeCutout={hasActiveFilters} size={16} />}\n onClick={onClick}\n round\n selected={active}\n />\n )}\n verticalAlign=\"bottom\"\n />\n )}\n </div>\n <div aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n {isActive && !isLoading\n ? totalDocs === 0\n ? t('hierarchy:noResults', { query: completedQuery })\n : t('hierarchy:searchResults', { count: totalDocs })\n : ''}\n </div>\n {isActive && (\n <HierarchySearchResults\n hasNextPage={hasNextPage}\n isLoading={isLoading}\n onLoadMore={loadMore}\n onSelect={handleSelect}\n query={inputValue}\n results={results}\n titleField={titleField}\n totalDocs={totalDocs}\n />\n )}\n </div>\n )\n}\n\nexport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\nexport { HierarchySearchResults } from './HierarchySearchResults.js'\nexport type { HierarchySearchProps, SearchResult } from './types.js'\nexport { useHierarchySearch } from './useHierarchySearch.js'\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","useState","FilterIcon","useConfig","useTranslation","Button","Popup","PopupList","SearchInput","HierarchySearchResults","useHierarchySearch","baseClass","HierarchySearch","t0","$","collectionSlug","collectionSpecificOptions","isActive","onActiveChange","onFilterChange","onSelect","selectedFilters","i18n","t","getEntityConfig","inputValue","setInputValue","completedQuery","setCompletedQuery","collectionConfig","titleField","admin","useAsTitle","collectionLabel","labels","plural","hierarchyConfig","hierarchy","clearResults","hasNextPage","isLoading","loadMore","results","search","totalDocs","parentFieldName","titlePathField","titlePathFieldName","t1","query","handleSearch","t2","handleClear","t3","value","handleInputChange","t4","t5","id","handleSelect","t6","selectedValues","handleFilterChange","hasFilters","length","hasActiveFilters","_jsxs","className","children","_jsx","onChange","onClear","onSearch","placeholder","label","buttonClassName","caret","horizontalAlign","popupType","render","CheckboxGroup","map","value_0","isActive_0","includes","CheckboxGroupItem","active","onClick","newSelectedValues","filter","v","t7","onKeyDown","ariaProps","buttonStyle","extraButtonProps","icon","hasBadgeCutout","size","selected","role","count","onLoadMore","HierarchySearchResultItem"],"sources":["../../../../src/elements/Hierarchy/Search/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useState } from 'react'\n\nimport type { HierarchySearchProps } from './types.js'\n\nimport { FilterIcon } from '../../../icons/Filter/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { SearchInput } from '../../Search/SearchInput/index.js'\nimport { HierarchySearchResults } from './HierarchySearchResults.js'\nimport { useHierarchySearch } from './useHierarchySearch.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-search'\n\nexport const HierarchySearch: React.FC<HierarchySearchProps> = ({\n collectionSlug,\n collectionSpecificOptions,\n isActive,\n onActiveChange,\n onFilterChange,\n onSelect,\n selectedFilters,\n}) => {\n const { i18n, t } = useTranslation()\n const { getEntityConfig } = useConfig()\n const [inputValue, setInputValue] = useState('')\n const [completedQuery, setCompletedQuery] = useState('')\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const titleField = collectionConfig?.admin?.useAsTitle || 'id'\n const collectionLabel = getTranslation(collectionConfig?.labels?.plural, i18n)\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : null\n\n const { clearResults, hasNextPage, isLoading, loadMore, results, search, totalDocs } =\n useHierarchySearch({\n collectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n titleField,\n titlePathField: hierarchyConfig?.titlePathFieldName,\n })\n\n const handleSearch = useCallback(\n async (query: string) => {\n await search(query)\n setCompletedQuery(query)\n onActiveChange(true)\n },\n [search, onActiveChange],\n )\n\n const handleClear = useCallback(() => {\n setInputValue('')\n clearResults()\n onActiveChange(false)\n }, [clearResults, onActiveChange])\n\n const handleInputChange = useCallback(\n (value: string) => {\n setInputValue(value)\n if (!value && isActive) {\n clearResults()\n onActiveChange(false)\n }\n },\n [isActive, clearResults, onActiveChange],\n )\n\n const handleSelect = useCallback(\n ({ id }: { id: number | string }) => {\n onSelect({ id })\n handleClear()\n },\n [onSelect, handleClear],\n )\n\n const handleFilterChange = useCallback(\n ({ selectedValues }: { selectedValues: string[] }) => {\n onFilterChange?.(selectedValues)\n },\n [onFilterChange],\n )\n\n const hasFilters = collectionSpecificOptions && collectionSpecificOptions.length > 0\n const hasActiveFilters = selectedFilters && selectedFilters.length > 0\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__controls`}>\n <SearchInput\n onChange={handleInputChange}\n onClear={handleClear}\n onSearch={handleSearch}\n placeholder={t('hierarchy:searchLabel', { label: collectionLabel })}\n value={inputValue}\n />\n {hasFilters && (\n <Popup\n buttonClassName={`${baseClass}__filter`}\n caret={false}\n horizontalAlign=\"right\"\n popupType=\"menu\"\n render={() => (\n <PopupList.CheckboxGroup>\n {collectionSpecificOptions.map(({ label, value }) => {\n const isActive = selectedFilters?.includes(value)\n return (\n <PopupList.CheckboxGroupItem\n active={isActive}\n key={value}\n onClick={() => {\n const newSelectedValues = isActive\n ? selectedFilters.filter((v) => v !== value)\n : [...selectedFilters, value]\n handleFilterChange({ selectedValues: newSelectedValues })\n }}\n >\n {label}\n </PopupList.CheckboxGroupItem>\n )\n })}\n </PopupList.CheckboxGroup>\n )}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n {...ariaProps}\n aria-label={t('general:filter')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__filter`}\n extraButtonProps={{ onKeyDown }}\n icon={<FilterIcon hasBadgeCutout={hasActiveFilters} size={16} />}\n onClick={onClick}\n round\n selected={active}\n />\n )}\n verticalAlign=\"bottom\"\n />\n )}\n </div>\n <div aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n {isActive && !isLoading\n ? totalDocs === 0\n ? t('hierarchy:noResults', { query: completedQuery })\n : t('hierarchy:searchResults', { count: totalDocs })\n : ''}\n </div>\n {isActive && (\n <HierarchySearchResults\n hasNextPage={hasNextPage}\n isLoading={isLoading}\n onLoadMore={loadMore}\n onSelect={handleSelect}\n query={inputValue}\n results={results}\n titleField={titleField}\n totalDocs={totalDocs}\n />\n )}\n </div>\n )\n}\n\nexport { HierarchySearchResultItem } from './HierarchySearchResultItem.js'\nexport { HierarchySearchResults } from './HierarchySearchResults.js'\nexport type { HierarchySearchProps, SearchResult } from './types.js'\nexport { useHierarchySearch } from './useHierarchySearch.js'\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySidebarTab.js","names":["c","_c","formatAdminURL","qs","React","useCallback","useEffect","useRef","useState","useConfig","useHierarchy","useRouter","useSearchParams","useRouteTransition","useSidebarTabs","HydrateHierarchyProvider","HierarchySearch","HierarchyTree","HierarchySidebarTab","t0","$","baseFilter","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","treeRefreshKeys","sidebarTabs","resolvedParentFieldName","t4","get","currentParentParam","tabSlug","isActiveTab","activeTabSlug","t5","treeRefreshKey","prevTreeRefreshKeyRef","t6","t7","current","reloadTabContent","undefined","t8","JSON","stringify","baseFilterKey","t9","filters","handleFilterChange","t10","t11","id","url","path","view","addQueryPrefix","push","refresh","handleNavigateToParent","_jsxs","_Fragment","children","_jsx","collectionSlug","expandedNodes","treeData","className","isActive","onActiveChange","onFilterChange","onSelect","filterByCollections","length","onNodeClick"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useSidebarTabs } from '../../../providers/SidebarTabs/index.js'\nimport { HydrateHierarchyProvider } from '../HydrateProvider/index.js'\nimport { HierarchySearch } from '../Search/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n baseFilter?: Record<string, unknown>\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 baseFilter,\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 { setSelectedFilters: setSelectedFiltersContext, treeRefreshKeys } = useHierarchy()\n const sidebarTabs = useSidebarTabs()\n\n const resolvedParentFieldName = parentFieldName ?? 'parent'\n const currentParentParam = searchParams.get(resolvedParentFieldName)\n\n // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.\n // Always reload regardless of active state so inactive tabs are fresh when switched to.\n // The render-tab server function runs with a fresh request that lacks the client's URL query,\n // so forward the current selected parent id — otherwise the reload can't tell which node is\n // being viewed and rebuilds the tree from preference state.\n const tabSlug = `hierarchy-${hierarchyCollectionSlug}`\n const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug\n const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0\n const prevTreeRefreshKeyRef = useRef(treeRefreshKey)\n useEffect(() => {\n if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {\n prevTreeRefreshKeyRef.current = treeRefreshKey\n // Only forward the selected parent id when this tab is active. currentParentParam\n // reflects the global URL search params, so an inactive tab could otherwise pick up\n // another hierarchy collection's value if they share the same parentFieldName.\n sidebarTabs?.reloadTabContent(tabSlug, {\n searchParams:\n isActiveTab && currentParentParam\n ? { [resolvedParentFieldName]: currentParentParam }\n : undefined,\n })\n }\n }, [\n treeRefreshKey,\n sidebarTabs,\n tabSlug,\n isActiveTab,\n currentParentParam,\n resolvedParentFieldName,\n ])\n\n // Only highlight selected node when this tab is active\n const selectedNodeId = isActiveTab\n ? (currentParentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\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}${qs.stringify(\n { [resolvedParentFieldName]: id, view: 'hierarchy' },\n { addQueryPrefix: true },\n )}`,\n })\n startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, hierarchyCollectionSlug, resolvedParentFieldName, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={initialData}\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 baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={selectedFilters.length > 0 ? selectedFilters : undefined}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n key={`${hierarchyCollectionSlug}-${baseFilterKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HierarchySidebarTab.js","names":["c","_c","formatAdminURL","qs","React","useCallback","useEffect","useRef","useState","useConfig","useHierarchy","useRouter","useSearchParams","useRouteTransition","useSidebarTabs","HydrateHierarchyProvider","HierarchySearch","HierarchyTree","HierarchySidebarTab","t0","$","baseFilter","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","treeRefreshKeys","sidebarTabs","resolvedParentFieldName","t4","get","currentParentParam","tabSlug","isActiveTab","activeTabSlug","t5","treeRefreshKey","prevTreeRefreshKeyRef","t6","t7","current","reloadTabContent","undefined","t8","JSON","stringify","baseFilterKey","t9","filters","handleFilterChange","t10","t11","id","url","path","view","addQueryPrefix","push","refresh","handleNavigateToParent","_jsxs","_Fragment","children","_jsx","collectionSlug","expandedNodes","treeData","className","isActive","onActiveChange","onFilterChange","onSelect","filterByCollections","length","onNodeClick"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useSidebarTabs } from '../../../providers/SidebarTabs/index.js'\nimport { HydrateHierarchyProvider } from '../HydrateProvider/index.js'\nimport { HierarchySearch } from '../Search/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n baseFilter?: Record<string, unknown>\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 baseFilter,\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 { setSelectedFilters: setSelectedFiltersContext, treeRefreshKeys } = useHierarchy()\n const sidebarTabs = useSidebarTabs()\n\n const resolvedParentFieldName = parentFieldName ?? 'parent'\n const currentParentParam = searchParams.get(resolvedParentFieldName)\n\n // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.\n // Always reload regardless of active state so inactive tabs are fresh when switched to.\n // The render-tab server function runs with a fresh request that lacks the client's URL query,\n // so forward the current selected parent id — otherwise the reload can't tell which node is\n // being viewed and rebuilds the tree from preference state.\n const tabSlug = `hierarchy-${hierarchyCollectionSlug}`\n const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug\n const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0\n const prevTreeRefreshKeyRef = useRef(treeRefreshKey)\n useEffect(() => {\n if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {\n prevTreeRefreshKeyRef.current = treeRefreshKey\n // Only forward the selected parent id when this tab is active. currentParentParam\n // reflects the global URL search params, so an inactive tab could otherwise pick up\n // another hierarchy collection's value if they share the same parentFieldName.\n sidebarTabs?.reloadTabContent(tabSlug, {\n searchParams:\n isActiveTab && currentParentParam\n ? { [resolvedParentFieldName]: currentParentParam }\n : undefined,\n })\n }\n }, [\n treeRefreshKey,\n sidebarTabs,\n tabSlug,\n isActiveTab,\n currentParentParam,\n resolvedParentFieldName,\n ])\n\n // Only highlight selected node when this tab is active\n const selectedNodeId = isActiveTab\n ? (currentParentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\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}${qs.stringify(\n { [resolvedParentFieldName]: id, view: 'hierarchy' },\n { addQueryPrefix: true },\n )}`,\n })\n void startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, hierarchyCollectionSlug, resolvedParentFieldName, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={initialData}\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 baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={selectedFilters.length > 0 ? selectedFilters : undefined}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n key={`${hierarchyCollectionSlug}-${baseFilterKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeFocusContext.js","names":["c","_c","createContext","use","useCallback","useEffect","useLayoutEffect","useRef","useState","TreeFocusContext","undefined","TreeFocusProvider","children","focusedId","setFocusedIdState","itemsRef","Map","setFocusedId","id","item","current","get","ref","document","activeElement","focus","registerItem","set","unregisterItem","delete","moveFocus","direction","items","Array","from","values","length","sortedItems","filter","sort","a","b","aElement","bElement","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","currentIndex","findIndex","nextIndex","Math","min","max","nextItem","_jsx","value","useTreeFocus","context","Error","useFocusableItem","t0","$","type","isInitialTabStop","t1","isFocused","wasFocusedRef","t2","t3","t4","t5","t6","handleFocus","tabIndex","t7"],"sources":["../../../../src/elements/Hierarchy/Tree/TreeFocusContext.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} 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, setFocusedIdState] = useState<null | string>(null)\n const itemsRef = useRef<Map<string, FocusableItem>>(new Map())\n\n const setFocusedId = useCallback((id: null | string) => {\n setFocusedIdState(id)\n if (id) {\n const item = itemsRef.current.get(id)\n if (item?.ref.current && document.activeElement !== item.ref.current) {\n item.ref.current.focus()\n }\n }\n }, [])\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 setFocusedIdState((focusedId) => (focusedId === id ? null : focusedId))\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, setFocusedId],\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 isInitialTabStop = false,\n ref,\n}: {\n id: string\n isInitialTabStop?: boolean\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 wasFocusedRef = useRef(false)\n\n useEffect(() => {\n registerItem({ id, type, ref })\n return () => {\n unregisterItem(id)\n }\n }, [id, ref, type, registerItem, unregisterItem])\n\n useLayoutEffect(() => {\n if (\n isFocused &&\n !wasFocusedRef.current &&\n ref.current &&\n document.activeElement !== ref.current\n ) {\n ref.current.focus()\n }\n\n wasFocusedRef.current = isFocused\n }, [isFocused, ref])\n\n const handleFocus = useCallback(() => {\n setFocusedId(id)\n }, [id, setFocusedId])\n\n const tabIndex = isFocused || (focusedId === null && isInitialTabStop) ? 0 : -1\n\n return {\n handleFocus,\n isFocused,\n tabIndex,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TreeFocusContext.js","names":["c","_c","createContext","use","useCallback","useEffect","useLayoutEffect","useRef","useState","TreeFocusContext","undefined","TreeFocusProvider","children","focusedId","setFocusedIdState","itemsRef","Map","setFocusedId","id","item","current","get","ref","document","activeElement","focus","registerItem","set","unregisterItem","delete","moveFocus","direction","items","Array","from","values","length","sortedItems","filter","sort","a","b","aElement","bElement","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","currentIndex","findIndex","nextIndex","Math","min","max","nextItem","_jsx","value","useTreeFocus","context","Error","useFocusableItem","t0","$","type","isInitialTabStop","t1","isFocused","wasFocusedRef","t2","t3","t4","t5","t6","handleFocus","tabIndex","t7"],"sources":["../../../../src/elements/Hierarchy/Tree/TreeFocusContext.tsx"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} 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, setFocusedIdState] = useState<null | string>(null)\n const itemsRef = useRef<Map<string, FocusableItem>>(new Map())\n\n const setFocusedId = useCallback((id: null | string) => {\n setFocusedIdState(id)\n if (id) {\n const item = itemsRef.current.get(id)\n if (item?.ref.current && document.activeElement !== item.ref.current) {\n item.ref.current.focus()\n }\n }\n }, [])\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 setFocusedIdState((focusedId) => (focusedId === id ? null : focusedId))\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, setFocusedId],\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 isInitialTabStop = false,\n ref,\n}: {\n id: string\n isInitialTabStop?: boolean\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 wasFocusedRef = useRef(false)\n\n useEffect(() => {\n registerItem({ id, type, ref })\n return () => {\n unregisterItem(id)\n }\n }, [id, ref, type, registerItem, unregisterItem])\n\n useLayoutEffect(() => {\n if (\n isFocused &&\n !wasFocusedRef.current &&\n ref.current &&\n document.activeElement !== ref.current\n ) {\n ref.current.focus()\n }\n\n wasFocusedRef.current = isFocused\n }, [isFocused, ref])\n\n const handleFocus = useCallback(() => {\n setFocusedId(id)\n }, [id, setFocusedId])\n\n const tabIndex = isFocused || (focusedId === null && isInitialTabStop) ? 0 : -1\n\n return {\n handleFocus,\n isFocused,\n tabIndex,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwD,MAAM,OAAO,CAAA;AAE5E,OAAO,KAAK,EAAkB,kBAAkB,EAAgB,MAAM,YAAY,CAAA;AAiBlF,OAAO,aAAa,CAAA;AA2YpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwD,MAAM,OAAO,CAAA;AAE5E,OAAO,KAAK,EAAkB,kBAAkB,EAAgB,MAAM,YAAY,CAAA;AAiBlF,OAAO,aAAa,CAAA;AAmZpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAA"}
@@ -147,10 +147,15 @@ const HierarchyTreeInner = ({
147
147
  prevBaseFilterKeyRef.current = baseFilterKey;
148
148
  childrenCache.current.clear();
149
149
  }
150
- useMemo(() => {
151
- if (!initialData || initialData.docs.length === 0) {
152
- return;
153
- }
150
+ // Fill the cache during render, so children find initialData on their first render. Compares the
151
+ // inputs like useMemo would, since a useMemo used only for its side effect isn't guaranteed to run.
152
+ const initialDataInputs = [branch, initialData, filterByCollections, parentFieldName, collectionSlug, treeLimit, baseFilterKey];
153
+ const prevInitialDataInputsRef = useRef(null);
154
+ const haveInitialDataInputsChanged = !prevInitialDataInputsRef.current || initialDataInputs.some((input, i) => !Object.is(input, prevInitialDataInputsRef.current[i]));
155
+ if (haveInitialDataInputsChanged) {
156
+ prevInitialDataInputsRef.current = initialDataInputs;
157
+ }
158
+ if (haveInitialDataInputsChanged && initialData && initialData.docs.length > 0) {
154
159
  const docsByParent = new Map();
155
160
  for (const doc of initialData.docs) {
156
161
  const parentId = doc[parentFieldName] || 'null';
@@ -184,7 +189,7 @@ const HierarchyTreeInner = ({
184
189
  });
185
190
  }
186
191
  }
187
- }, [baseFilterKey, branch, collectionSlug, filterByCollections, initialData, parentFieldName, treeLimit]);
192
+ }
188
193
  const treeRef = useRef(null);
189
194
  const allOptionRef = useRef(null);
190
195
  const allOptionID = useId();