@payloadcms/ui 4.0.0-internal.011fd46 → 4.0.0-internal.078835b

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 (927) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/css/colors.css +3 -0
  3. package/dist/css/forms.css +6 -3
  4. package/dist/css/theme.css +2 -1
  5. package/dist/css/utilities.css +3 -2
  6. package/dist/css/z-index.css +9 -0
  7. package/dist/elements/APIKeyInput/index.css +4 -4
  8. package/dist/elements/AddNewRelation/index.css +28 -28
  9. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -1
  10. package/dist/elements/AppHeader/index.css +2 -15
  11. package/dist/elements/AppHeader/index.d.ts +2 -1
  12. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  13. package/dist/elements/AppHeader/index.js +13 -8
  14. package/dist/elements/AppHeader/index.js.map +1 -1
  15. package/dist/elements/ArrayAction/index.js +2 -2
  16. package/dist/elements/ArrayAction/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/ActionsBar/index.css +4 -8
  18. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +1 -5
  19. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  20. package/dist/elements/BulkUpload/ActionsBar/index.js +15 -22
  21. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/AddFilesView/index.css +14 -8
  23. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -2
  24. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  25. package/dist/elements/BulkUpload/AddFilesView/index.js +41 -36
  26. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/AddingFilesView/index.css +158 -6
  28. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +5 -1
  29. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  30. package/dist/elements/BulkUpload/AddingFilesView/index.js +134 -65
  31. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
  33. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  34. package/dist/elements/BulkUpload/EditForm/index.d.ts +1 -1
  35. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  36. package/dist/elements/BulkUpload/EditForm/index.js +16 -17
  37. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  38. package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -3
  39. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
  40. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  41. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  42. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +78 -64
  43. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  44. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  45. package/dist/elements/BulkUpload/EditMany/index.js +28 -10
  46. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  47. package/dist/elements/BulkUpload/FileSidebar/index.css +63 -143
  48. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  49. package/dist/elements/BulkUpload/FileSidebar/index.js +42 -175
  50. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  51. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  52. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  53. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  54. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  55. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  56. package/dist/elements/BulkUpload/FormsManager/index.js +15 -2
  57. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  58. package/dist/elements/BulkUpload/index.css +48 -0
  59. package/dist/elements/BulkUpload/index.d.ts +6 -5
  60. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  61. package/dist/elements/BulkUpload/index.js +42 -41
  62. package/dist/elements/BulkUpload/index.js.map +1 -1
  63. package/dist/elements/Button/index.d.ts.map +1 -1
  64. package/dist/elements/Button/index.js +5 -0
  65. package/dist/elements/Button/index.js.map +1 -1
  66. package/dist/elements/Card/index.css +1 -1
  67. package/dist/elements/ClipboardAction/ClipboardActionLabel.d.ts.map +1 -1
  68. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  69. package/dist/elements/ClipboardAction/index.js +1 -0
  70. package/dist/elements/ClipboardAction/index.js.map +1 -1
  71. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  72. package/dist/elements/CodeEditor/index.css +5 -0
  73. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  74. package/dist/elements/Collapsible/index.js +2 -0
  75. package/dist/elements/Collapsible/index.js.map +1 -1
  76. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  77. package/dist/elements/ColumnSelection/Popup.js +5 -1
  78. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  79. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +10 -0
  80. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +1 -0
  81. package/dist/elements/ColumnSelection/matchesColumnSearch.js +21 -0
  82. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +1 -0
  83. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +87 -0
  84. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +1 -0
  85. package/dist/elements/CopyLocaleData/index.js +1 -1
  86. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  87. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  88. package/dist/elements/CreateDocumentButton/index.js +0 -1
  89. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  90. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  91. package/dist/elements/DatePicker/getFormattedLocale.d.ts.map +1 -1
  92. package/dist/elements/DatePicker/index.css +9 -9
  93. package/dist/elements/DatePicker/index.js +1 -1
  94. package/dist/elements/DatePicker/index.js.map +1 -1
  95. package/dist/elements/Dialog/DialogHeader/index.d.ts +4 -0
  96. package/dist/elements/Dialog/DialogHeader/index.d.ts.map +1 -1
  97. package/dist/elements/Dialog/DialogHeader/index.js +45 -30
  98. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  99. package/dist/elements/Dialog/DialogModal/index.d.ts +5 -0
  100. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  101. package/dist/elements/Dialog/DialogModal/index.js +58 -31
  102. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  103. package/dist/elements/Dialog/DialogTitle/index.css +9 -0
  104. package/dist/elements/Dialog/DialogTitle/index.d.ts +5 -0
  105. package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -0
  106. package/dist/elements/Dialog/DialogTitle/index.js +10 -0
  107. package/dist/elements/Dialog/DialogTitle/index.js.map +1 -0
  108. package/dist/elements/Dialog/index.css +7 -1
  109. package/dist/elements/DocumentControls/index.css +1 -3
  110. package/dist/elements/DocumentControls/index.d.ts +2 -2
  111. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  112. package/dist/elements/DocumentControls/index.js +11 -1
  113. package/dist/elements/DocumentControls/index.js.map +1 -1
  114. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +2 -2
  115. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  116. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  117. package/dist/elements/DocumentFields/index.css +14 -2
  118. package/dist/elements/DocumentFields/index.d.ts +5 -0
  119. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  120. package/dist/elements/DocumentFields/index.js +9 -1
  121. package/dist/elements/DocumentFields/index.js.map +1 -1
  122. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts +12 -0
  123. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts.map +1 -0
  124. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +28 -0
  125. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -0
  126. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  127. package/dist/elements/DocumentHeader/index.js +2 -3
  128. package/dist/elements/DocumentHeader/index.js.map +1 -1
  129. package/dist/elements/DocumentLocked/index.d.ts +2 -2
  130. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  131. package/dist/elements/DocumentLocked/index.js.map +1 -1
  132. package/dist/elements/DraggableSortable/DragOverlayPreview/index.css +1 -1
  133. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  134. package/dist/elements/Drawer/index.d.ts.map +1 -1
  135. package/dist/elements/Drawer/index.js +1 -0
  136. package/dist/elements/Drawer/index.js.map +1 -1
  137. package/dist/elements/Drawer/useDrawerSlug.d.ts.map +1 -1
  138. package/dist/elements/DrawerActionHeader/index.css +1 -1
  139. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  140. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.css +7 -1
  141. package/dist/elements/DrawerHeader/index.d.ts +10 -0
  142. package/dist/elements/DrawerHeader/index.d.ts.map +1 -0
  143. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.js +16 -11
  144. package/dist/elements/DrawerHeader/index.js.map +1 -0
  145. package/dist/elements/Dropzone/index.css +5 -13
  146. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +1 -1
  147. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  148. package/dist/elements/EditUpload/index.css +97 -158
  149. package/dist/elements/EditUpload/index.d.ts +2 -1
  150. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  151. package/dist/elements/EditUpload/index.js +209 -231
  152. package/dist/elements/EditUpload/index.js.map +1 -1
  153. package/dist/elements/EditUpload/{library.scss → library.css} +108 -46
  154. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  155. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
  156. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  157. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  158. package/dist/elements/FileDetails/FileMeta/index.css +27 -0
  159. package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
  160. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  161. package/dist/elements/FileDetails/FileMeta/index.js +1 -1
  162. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  163. package/dist/elements/FileDetails/StaticFileDetails/index.css +140 -0
  164. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +2 -2
  165. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  166. package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
  167. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  168. package/dist/elements/FileDetails/index.d.ts +1 -1
  169. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  170. package/dist/elements/FileDetails/index.js.map +1 -1
  171. package/dist/elements/FileManager/FilePreview/AudioPreview/index.css +8 -0
  172. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts +10 -0
  173. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts.map +1 -0
  174. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js +24 -0
  175. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js.map +1 -0
  176. package/dist/elements/FileManager/FilePreview/PdfPreview/index.css +9 -0
  177. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts +12 -0
  178. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts.map +1 -0
  179. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js +27 -0
  180. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js.map +1 -0
  181. package/dist/elements/FileManager/FilePreview/VideoPreview/index.css +8 -0
  182. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts +10 -0
  183. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts.map +1 -0
  184. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js +24 -0
  185. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js.map +1 -0
  186. package/dist/elements/FileManager/FilePreview/index.css +83 -0
  187. package/dist/elements/FileManager/FilePreview/index.d.ts +13 -0
  188. package/dist/elements/FileManager/FilePreview/index.d.ts.map +1 -0
  189. package/dist/elements/FileManager/FilePreview/index.js +140 -0
  190. package/dist/elements/FileManager/FilePreview/index.js.map +1 -0
  191. package/dist/elements/FileManager/FileToolbar/index.css +91 -0
  192. package/dist/elements/FileManager/FileToolbar/index.d.ts +14 -0
  193. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -0
  194. package/dist/elements/FileManager/FileToolbar/index.js +106 -0
  195. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -0
  196. package/dist/elements/FileManager/index.css +154 -0
  197. package/dist/elements/FileManager/index.d.ts +19 -0
  198. package/dist/elements/FileManager/index.d.ts.map +1 -0
  199. package/dist/elements/FileManager/index.js +424 -0
  200. package/dist/elements/FileManager/index.js.map +1 -0
  201. package/dist/elements/GroupBy/Popup.d.ts.map +1 -1
  202. package/dist/elements/GroupBy/Popup.js +0 -1
  203. package/dist/elements/GroupBy/Popup.js.map +1 -1
  204. package/dist/elements/HTMLDiff/diff/index.d.ts.map +1 -1
  205. package/dist/elements/HTMLDiff/index.d.ts.map +1 -1
  206. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +5 -3
  207. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +1 -0
  208. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  209. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +1 -1
  210. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  211. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  212. package/dist/elements/Hierarchy/DocHeaderButton/index.js +12 -12
  213. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  214. package/dist/elements/Hierarchy/Field/index.client.js +14 -14
  215. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  216. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -0
  217. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -0
  218. package/dist/elements/Hierarchy/Modal/index.css +88 -0
  219. package/dist/elements/Hierarchy/Modal/index.d.ts +20 -0
  220. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -0
  221. package/dist/elements/Hierarchy/{Drawer → Modal}/index.js +105 -81
  222. package/dist/elements/Hierarchy/Modal/index.js.map +1 -0
  223. package/dist/elements/Hierarchy/{Drawer → Modal}/types.d.ts +22 -18
  224. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -0
  225. package/dist/elements/Hierarchy/Modal/types.js.map +1 -0
  226. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts +30 -0
  227. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts.map +1 -0
  228. package/dist/elements/Hierarchy/{Drawer/useHierarchyDrawer.js → Modal/useHierarchyModal.js} +51 -50
  229. package/dist/elements/Hierarchy/Modal/useHierarchyModal.js.map +1 -0
  230. package/dist/elements/Hierarchy/MoveMany/index.d.ts +2 -2
  231. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  232. package/dist/elements/Hierarchy/MoveMany/index.js +9 -9
  233. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  234. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  235. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +1 -1
  236. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
  237. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +38 -13
  238. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  239. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +37 -31
  240. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  241. package/dist/elements/Hierarchy/Tree/index.css +1 -1
  242. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  243. package/dist/elements/Hierarchy/Tree/index.js +18 -5
  244. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  245. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  246. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  247. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  248. package/dist/elements/ListControls/index.d.ts.map +1 -1
  249. package/dist/elements/ListControls/index.js +1 -2
  250. package/dist/elements/ListControls/index.js.map +1 -1
  251. package/dist/elements/ListDrawer/DrawerContent.js +1 -1
  252. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  253. package/dist/elements/ListDrawer/Provider.d.ts +1 -1
  254. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  255. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  256. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  257. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  258. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +2 -0
  259. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  260. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +4 -4
  261. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  262. package/dist/elements/LivePreview/Toolbar/Controls/index.js +2 -2
  263. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  264. package/dist/elements/LivePreview/Toolbar/SizeInput/index.css +5 -44
  265. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  266. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +26 -43
  267. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  268. package/dist/elements/LivePreview/Window/index.css +6 -0
  269. package/dist/elements/LoadingOverlay/reducer.d.ts.map +1 -1
  270. package/dist/elements/Locked/index.css +7 -4
  271. package/dist/elements/Locked/index.d.ts +2 -2
  272. package/dist/elements/Locked/index.d.ts.map +1 -1
  273. package/dist/elements/Locked/index.js +66 -53
  274. package/dist/elements/Locked/index.js.map +1 -1
  275. package/dist/elements/MiniCarousel/index.css +94 -0
  276. package/dist/elements/MiniCarousel/index.d.ts +15 -0
  277. package/dist/elements/MiniCarousel/index.d.ts.map +1 -0
  278. package/dist/elements/MiniCarousel/index.js +84 -0
  279. package/dist/elements/MiniCarousel/index.js.map +1 -0
  280. package/dist/elements/Nav/SettingsMenuButton/index.css +5 -0
  281. package/dist/elements/Nav/SettingsMenuButton/index.d.ts +1 -1
  282. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  283. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -1
  284. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  285. package/dist/elements/Nav/index.css +2 -7
  286. package/dist/elements/NavGroup/index.css +1 -1
  287. package/dist/elements/Pagination/index.css +5 -0
  288. package/dist/elements/Pagination/index.d.ts.map +1 -1
  289. package/dist/elements/Pagination/index.js +21 -21
  290. package/dist/elements/Pagination/index.js.map +1 -1
  291. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
  292. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  293. package/dist/elements/Popup/PopupTrigger/index.js +3 -0
  294. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  295. package/dist/elements/Popup/index.d.ts +7 -1
  296. package/dist/elements/Popup/index.d.ts.map +1 -1
  297. package/dist/elements/Popup/index.js +3 -1
  298. package/dist/elements/Popup/index.js.map +1 -1
  299. package/dist/elements/PreviewSizes/index.css +149 -0
  300. package/dist/elements/PreviewSizes/index.d.ts +2 -2
  301. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  302. package/dist/elements/PreviewSizes/index.js +1 -1
  303. package/dist/elements/PreviewSizes/index.js.map +1 -1
  304. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  305. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts.map +1 -1
  306. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts +7 -0
  307. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -0
  308. package/dist/elements/ReactSelect/DefaultMenuPortal.js +120 -0
  309. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -0
  310. package/dist/elements/ReactSelect/DropdownIndicator/index.css +1 -1
  311. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  312. package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -12
  313. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  314. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -1
  315. package/dist/elements/ReactSelect/getMenuListStyles.d.ts +1 -1
  316. package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -1
  317. package/dist/elements/ReactSelect/getMenuListStyles.js +13 -5
  318. package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -1
  319. package/dist/elements/ReactSelect/getMenuStyles.d.ts +10 -0
  320. package/dist/elements/ReactSelect/getMenuStyles.d.ts.map +1 -0
  321. package/dist/elements/ReactSelect/getMenuStyles.js +21 -0
  322. package/dist/elements/ReactSelect/getMenuStyles.js.map +1 -0
  323. package/dist/elements/ReactSelect/index.css +10 -3
  324. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  325. package/dist/elements/ReactSelect/index.js +25 -102
  326. package/dist/elements/ReactSelect/index.js.map +1 -1
  327. package/dist/elements/ReactSelect/types.d.ts +2 -2
  328. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  329. package/dist/elements/ReactSelect/types.js.map +1 -1
  330. package/dist/elements/RelationshipTable/AddNewButton.d.ts +2 -2
  331. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  332. package/dist/elements/RelationshipTable/AddNewButton.js +1 -2
  333. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  334. package/dist/elements/RelationshipTable/index.css +1 -2
  335. package/dist/elements/RenderServerComponent/clientOnly.d.ts +8 -0
  336. package/dist/elements/RenderServerComponent/clientOnly.d.ts.map +1 -0
  337. package/dist/elements/RenderServerComponent/clientOnly.js +56 -0
  338. package/dist/elements/RenderServerComponent/clientOnly.js.map +1 -0
  339. package/dist/elements/Search/ListSearchFilter/index.d.ts.map +1 -1
  340. package/dist/elements/Search/ListSearchFilter/index.js +1 -0
  341. package/dist/elements/Search/ListSearchFilter/index.js.map +1 -1
  342. package/dist/elements/Search/SearchInput/index.d.ts +2 -0
  343. package/dist/elements/Search/SearchInput/index.d.ts.map +1 -1
  344. package/dist/elements/Search/SearchInput/index.js +22 -19
  345. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  346. package/dist/elements/SelectAll/index.css +3 -1
  347. package/dist/elements/SelectRow/index.d.ts +2 -2
  348. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  349. package/dist/elements/SelectRow/index.js.map +1 -1
  350. package/dist/elements/SidebarRow/index.css +0 -2
  351. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  352. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +32 -13
  353. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  354. package/dist/elements/Table/DefaultCell/fields/index.d.ts +1 -1
  355. package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
  356. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  357. package/dist/elements/Table/OrderableRowDragPreview.d.ts.map +1 -1
  358. package/dist/elements/Table/index.css +25 -2
  359. package/dist/elements/Tabs/index.d.ts.map +1 -1
  360. package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -1
  361. package/dist/elements/Thumbnail/index.css +41 -0
  362. package/dist/elements/Thumbnail/index.d.ts +4 -4
  363. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  364. package/dist/elements/Thumbnail/index.js +1 -1
  365. package/dist/elements/Thumbnail/index.js.map +1 -1
  366. package/dist/elements/TimezonePicker/index.css +1 -1
  367. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +11 -0
  368. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -0
  369. package/dist/elements/Upload/UploadFromURLModal/index.js +88 -0
  370. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -0
  371. package/dist/elements/Upload/index.css +134 -45
  372. package/dist/elements/Upload/index.d.ts +3 -8
  373. package/dist/elements/Upload/index.d.ts.map +1 -1
  374. package/dist/elements/Upload/index.js +71 -92
  375. package/dist/elements/Upload/index.js.map +1 -1
  376. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  377. package/dist/elements/UserMenu/SubMenuHeader/index.js +8 -9
  378. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  379. package/dist/elements/UserMenu/index.css +26 -1
  380. package/dist/elements/UserMenu/index.d.ts +1 -0
  381. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  382. package/dist/elements/UserMenu/index.js +2 -1
  383. package/dist/elements/UserMenu/index.js.map +1 -1
  384. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.d.ts.map +1 -1
  385. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.d.ts.map +1 -1
  386. package/dist/elements/WhereBuilder/Condition/validOperators.d.ts.map +1 -1
  387. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  388. package/dist/exports/client/index.d.ts +8 -5
  389. package/dist/exports/client/index.d.ts.map +1 -1
  390. package/dist/exports/client/index.js +1 -86
  391. package/dist/exports/client/index.js.map +4 -4
  392. package/dist/exports/layouts.d.ts +1 -0
  393. package/dist/exports/layouts.d.ts.map +1 -1
  394. package/dist/exports/layouts.js +1 -0
  395. package/dist/exports/layouts.js.map +1 -1
  396. package/dist/exports/rsc/index.d.ts +3 -0
  397. package/dist/exports/rsc/index.d.ts.map +1 -1
  398. package/dist/exports/rsc/index.js +3 -0
  399. package/dist/exports/rsc/index.js.map +1 -1
  400. package/dist/exports/server.d.ts +3 -0
  401. package/dist/exports/server.d.ts.map +1 -0
  402. package/dist/exports/server.js +2 -0
  403. package/dist/exports/server.js.map +1 -0
  404. package/dist/exports/shared/index.js +2 -2
  405. package/dist/exports/shared/index.js.map +2 -2
  406. package/dist/fields/Array/index.d.ts +1 -1
  407. package/dist/fields/Array/index.d.ts.map +1 -1
  408. package/dist/fields/Array/index.js +7 -4
  409. package/dist/fields/Array/index.js.map +1 -1
  410. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +1 -1
  411. package/dist/fields/Blocks/BlockSelector/index.css +2 -5
  412. package/dist/fields/Blocks/SectionTitle/index.d.ts.map +1 -1
  413. package/dist/fields/Blocks/SectionTitle/index.js +1 -0
  414. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  415. package/dist/fields/Blocks/index.d.ts +1 -1
  416. package/dist/fields/Blocks/index.d.ts.map +1 -1
  417. package/dist/fields/Blocks/index.js +6 -3
  418. package/dist/fields/Blocks/index.js.map +1 -1
  419. package/dist/fields/Checkbox/index.css +2 -2
  420. package/dist/fields/Checkbox/index.d.ts +1 -1
  421. package/dist/fields/Code/index.css +1 -1
  422. package/dist/fields/Code/index.d.ts +2 -2
  423. package/dist/fields/Collapsible/index.d.ts +1 -1
  424. package/dist/fields/ConfirmPassword/index.d.ts +4 -0
  425. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  426. package/dist/fields/ConfirmPassword/index.js +37 -33
  427. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  428. package/dist/fields/DateTime/index.d.ts +1 -1
  429. package/dist/fields/Email/index.d.ts +1 -1
  430. package/dist/fields/Group/index.css +4 -10
  431. package/dist/fields/Group/index.d.ts +2 -2
  432. package/dist/fields/JSON/index.d.ts +1 -1
  433. package/dist/fields/Join/index.d.ts +1 -1
  434. package/dist/fields/Number/Input.d.ts.map +1 -1
  435. package/dist/fields/Number/Input.js +62 -46
  436. package/dist/fields/Number/Input.js.map +1 -1
  437. package/dist/fields/Number/index.css +19 -0
  438. package/dist/fields/Number/index.d.ts +1 -1
  439. package/dist/fields/Number/types.d.ts +10 -0
  440. package/dist/fields/Number/types.d.ts.map +1 -1
  441. package/dist/fields/Number/types.js.map +1 -1
  442. package/dist/fields/Password/input.d.ts.map +1 -1
  443. package/dist/fields/Password/input.js +33 -29
  444. package/dist/fields/Password/input.js.map +1 -1
  445. package/dist/fields/Password/types.d.ts +7 -3
  446. package/dist/fields/Password/types.d.ts.map +1 -1
  447. package/dist/fields/Password/types.js.map +1 -1
  448. package/dist/fields/Point/index.d.ts +1 -1
  449. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  450. package/dist/fields/Relationship/Input.js +4 -0
  451. package/dist/fields/Relationship/Input.js.map +1 -1
  452. package/dist/fields/Relationship/findOptionsByValue.d.ts.map +1 -1
  453. package/dist/fields/Relationship/index.d.ts +1 -1
  454. package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
  455. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  456. package/dist/fields/Relationship/types.d.ts +4 -0
  457. package/dist/fields/Relationship/types.d.ts.map +1 -1
  458. package/dist/fields/Relationship/types.js.map +1 -1
  459. package/dist/fields/Row/index.d.ts +1 -1
  460. package/dist/fields/Select/Input.d.ts +4 -0
  461. package/dist/fields/Select/Input.d.ts.map +1 -1
  462. package/dist/fields/Select/Input.js +45 -40
  463. package/dist/fields/Select/Input.js.map +1 -1
  464. package/dist/fields/Select/index.d.ts +1 -1
  465. package/dist/fields/Select/index.d.ts.map +1 -1
  466. package/dist/fields/Slug/index.d.ts +7 -5
  467. package/dist/fields/Slug/index.d.ts.map +1 -1
  468. package/dist/fields/Slug/index.js +6 -4
  469. package/dist/fields/Slug/index.js.map +1 -1
  470. package/dist/fields/Tabs/index.d.ts +1 -1
  471. package/dist/fields/Text/Input.d.ts.map +1 -1
  472. package/dist/fields/Text/Input.js +44 -37
  473. package/dist/fields/Text/Input.js.map +1 -1
  474. package/dist/fields/Text/index.d.ts +1 -1
  475. package/dist/fields/Text/types.d.ts +11 -2
  476. package/dist/fields/Text/types.d.ts.map +1 -1
  477. package/dist/fields/Text/types.js.map +1 -1
  478. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  479. package/dist/fields/Textarea/Input.js +27 -23
  480. package/dist/fields/Textarea/Input.js.map +1 -1
  481. package/dist/fields/Textarea/index.css +1 -1
  482. package/dist/fields/Textarea/index.d.ts +1 -1
  483. package/dist/fields/Textarea/types.d.ts +4 -0
  484. package/dist/fields/Textarea/types.d.ts.map +1 -1
  485. package/dist/fields/Textarea/types.js.map +1 -1
  486. package/dist/fields/Upload/Input.d.ts.map +1 -1
  487. package/dist/fields/Upload/Input.js +12 -11
  488. package/dist/fields/Upload/Input.js.map +1 -1
  489. package/dist/fields/Upload/index.js +1 -1
  490. package/dist/fields/Upload/index.js.map +1 -1
  491. package/dist/fields/index.d.ts.map +1 -1
  492. package/dist/fields/index.js +2 -0
  493. package/dist/fields/index.js.map +1 -1
  494. package/dist/fields/mergeFieldStyles.d.ts +1 -1
  495. package/dist/fields/mergeFieldStyles.d.ts.map +1 -1
  496. package/dist/forms/Form/context.d.ts.map +1 -1
  497. package/dist/forms/Form/createNestedClientFieldPath.d.ts.map +1 -1
  498. package/dist/forms/Form/errorMessages.d.ts.map +1 -1
  499. package/dist/forms/Form/index.d.ts.map +1 -1
  500. package/dist/forms/Form/index.js +3 -14
  501. package/dist/forms/Form/index.js.map +1 -1
  502. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  503. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  504. package/dist/forms/Form/rowHelpers.d.ts.map +1 -1
  505. package/dist/forms/Form/rows.d.ts.map +1 -1
  506. package/dist/forms/Form/types.d.ts +2 -2
  507. package/dist/forms/Form/types.d.ts.map +1 -1
  508. package/dist/forms/Form/types.js.map +1 -1
  509. package/dist/forms/RenderFields/RenderField.d.ts +1 -1
  510. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  511. package/dist/forms/RenderFields/RenderField.js +10 -0
  512. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  513. package/dist/forms/RenderFields/index.css +4 -4
  514. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  515. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  516. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  517. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +21 -5
  518. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  519. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -2
  520. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  521. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  522. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -2
  523. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  524. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  525. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -2
  526. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  527. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  528. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  529. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  530. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  531. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  532. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  533. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  534. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  535. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  536. package/dist/forms/useField/index.d.ts.map +1 -1
  537. package/dist/forms/withCondition/index.d.ts +1 -1
  538. package/dist/forms/withCondition/index.d.ts.map +1 -1
  539. package/dist/graphics/Icon/index.js +1 -1
  540. package/dist/graphics/Icon/index.js.map +1 -1
  541. package/dist/hooks/useDebouncedCallback.d.ts.map +1 -1
  542. package/dist/hooks/useDelay.d.ts.map +1 -1
  543. package/dist/hooks/useElementHeightVariable.d.ts +15 -0
  544. package/dist/hooks/useElementHeightVariable.d.ts.map +1 -0
  545. package/dist/hooks/useElementHeightVariable.js +53 -0
  546. package/dist/hooks/useElementHeightVariable.js.map +1 -0
  547. package/dist/hooks/useHotkey.d.ts.map +1 -1
  548. package/dist/hooks/useIntersect.d.ts.map +1 -1
  549. package/dist/hooks/usePopupWindow.d.ts +1 -1
  550. package/dist/hooks/usePopupWindow.d.ts.map +1 -1
  551. package/dist/hooks/useRelatedCollections.d.ts.map +1 -1
  552. package/dist/hooks/useResize.d.ts.map +1 -1
  553. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  554. package/dist/icons/Crop/index.css +5 -0
  555. package/dist/icons/Crop/index.d.ts +7 -0
  556. package/dist/icons/Crop/index.d.ts.map +1 -0
  557. package/dist/icons/Crop/index.js +24 -0
  558. package/dist/icons/Crop/index.js.map +1 -0
  559. package/dist/icons/Download/index.css +5 -0
  560. package/dist/icons/{ExternalLink → Download}/index.d.ts +1 -1
  561. package/dist/icons/Download/index.d.ts.map +1 -0
  562. package/dist/icons/Download/index.js +27 -0
  563. package/dist/icons/Download/index.js.map +1 -0
  564. package/dist/icons/{ExternalLink → NewTab}/index.css +1 -1
  565. package/dist/icons/NewTab/index.d.ts +7 -0
  566. package/dist/icons/NewTab/index.d.ts.map +1 -0
  567. package/dist/icons/NewTab/index.js +25 -0
  568. package/dist/icons/NewTab/index.js.map +1 -0
  569. package/dist/icons/Replace/index.css +5 -0
  570. package/dist/icons/Replace/index.d.ts +6 -0
  571. package/dist/icons/Replace/index.d.ts.map +1 -0
  572. package/dist/icons/Replace/index.js +20 -0
  573. package/dist/icons/Replace/index.js.map +1 -0
  574. package/dist/icons/Reset/index.css +5 -0
  575. package/dist/icons/Reset/index.d.ts +7 -0
  576. package/dist/icons/Reset/index.d.ts.map +1 -0
  577. package/dist/icons/Reset/index.js +25 -0
  578. package/dist/icons/Reset/index.js.map +1 -0
  579. package/dist/icons/Swap/index.js +1 -1
  580. package/dist/icons/Swap/index.js.map +1 -1
  581. package/dist/layouts/Root/index.d.ts.map +1 -1
  582. package/dist/layouts/Root/index.js +3 -1
  583. package/dist/layouts/Root/index.js.map +1 -1
  584. package/dist/layouts/Root/index.spec.js +20 -0
  585. package/dist/layouts/Root/index.spec.js.map +1 -0
  586. package/dist/layouts/Root/viewport.d.ts +5 -0
  587. package/dist/layouts/Root/viewport.d.ts.map +1 -0
  588. package/dist/layouts/Root/viewport.js +17 -0
  589. package/dist/layouts/Root/viewport.js.map +1 -0
  590. package/dist/providers/Auth/index.d.ts +7 -7
  591. package/dist/providers/Auth/index.d.ts.map +1 -1
  592. package/dist/providers/Auth/index.js.map +1 -1
  593. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  594. package/dist/providers/DocumentInfo/index.js.map +1 -1
  595. package/dist/providers/DocumentInfo/types.d.ts +6 -6
  596. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  597. package/dist/providers/DocumentInfo/types.js.map +1 -1
  598. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  599. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  600. package/dist/providers/ListQuery/index.js +8 -1
  601. package/dist/providers/ListQuery/index.js.map +1 -1
  602. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  603. package/dist/providers/ListQuery/sanitizeQuery.d.ts.map +1 -1
  604. package/dist/providers/LivePreview/sizeReducer.d.ts +1 -1
  605. package/dist/providers/LivePreview/sizeReducer.d.ts.map +1 -1
  606. package/dist/providers/Root/index.d.ts +2 -2
  607. package/dist/providers/Root/index.d.ts.map +1 -1
  608. package/dist/providers/Root/index.js.map +1 -1
  609. package/dist/providers/TableColumns/buildColumnState/filterFields.d.ts.map +1 -1
  610. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.d.ts.map +1 -1
  611. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.d.ts.map +1 -1
  612. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  613. package/dist/providers/TableColumns/getInitialColumns.d.ts +1 -1
  614. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -1
  615. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  616. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  617. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  618. package/dist/providers/UploadHandlers/index.js +102 -42
  619. package/dist/providers/UploadHandlers/index.js.map +1 -1
  620. package/dist/scss/app.scss +3 -2
  621. package/dist/styles.css +1379 -1
  622. package/dist/templates/Default/index.d.ts.map +1 -1
  623. package/dist/templates/Default/index.js +7 -1
  624. package/dist/templates/Default/index.js.map +1 -1
  625. package/dist/utilities/api.d.ts.map +1 -1
  626. package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -1
  627. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  628. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  629. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  630. package/dist/utilities/buildFormState.d.ts +2 -2
  631. package/dist/utilities/buildFormState.d.ts.map +1 -1
  632. package/dist/utilities/buildFormState.js +1 -0
  633. package/dist/utilities/buildFormState.js.map +1 -1
  634. package/dist/utilities/checkDependencies.d.ts.map +1 -1
  635. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  636. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  637. package/dist/utilities/copyDataFromLocale.js +1 -0
  638. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  639. package/dist/utilities/filterOutUploadFields.d.ts.map +1 -1
  640. package/dist/utilities/findLocaleFromCode.d.ts.map +1 -1
  641. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  642. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  643. package/dist/utilities/formatDocTitle/formatRelationshipTitle.d.ts.map +1 -1
  644. package/dist/utilities/formatDocTitle/index.d.ts +1 -1
  645. package/dist/utilities/formatDocTitle/index.d.ts.map +1 -1
  646. package/dist/utilities/formatDocTitle/index.js +1 -1
  647. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  648. package/dist/utilities/formatFields.d.ts.map +1 -1
  649. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  650. package/dist/utilities/formatRelativeDate.d.ts +15 -0
  651. package/dist/utilities/formatRelativeDate.d.ts.map +1 -0
  652. package/dist/utilities/formatRelativeDate.js +62 -0
  653. package/dist/utilities/formatRelativeDate.js.map +1 -0
  654. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  655. package/dist/utilities/getColumns.d.ts.map +1 -1
  656. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  657. package/dist/utilities/getDocPreferences.d.ts +2 -2
  658. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  659. package/dist/utilities/getDocPreferences.js.map +1 -1
  660. package/dist/utilities/getDocumentData.d.ts +2 -2
  661. package/dist/utilities/getDocumentData.d.ts.map +1 -1
  662. package/dist/utilities/getDocumentData.js.map +1 -1
  663. package/dist/utilities/getDocumentPermissions.d.ts.map +1 -1
  664. package/dist/utilities/getGlobalData.d.ts +2 -2
  665. package/dist/utilities/getGlobalData.d.ts.map +1 -1
  666. package/dist/utilities/getGlobalData.js.map +1 -1
  667. package/dist/utilities/getHasScheduledPublish.d.ts +2 -2
  668. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  669. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  670. package/dist/utilities/getIsLocked.d.ts +2 -2
  671. package/dist/utilities/getIsLocked.d.ts.map +1 -1
  672. package/dist/utilities/getIsLocked.js.map +1 -1
  673. package/dist/utilities/getOffsetTop.d.ts.map +1 -1
  674. package/dist/utilities/getRequestHighContrast.d.ts.map +1 -1
  675. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  676. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  677. package/dist/utilities/getRouteWithoutAdmin.d.ts.map +1 -1
  678. package/dist/utilities/getSupportedMonacoLocale.d.ts.map +1 -1
  679. package/dist/utilities/getVersions.d.ts +2 -2
  680. package/dist/utilities/getVersions.d.ts.map +1 -1
  681. package/dist/utilities/getVersions.js.map +1 -1
  682. package/dist/utilities/handleAuthRedirect.d.ts +2 -2
  683. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  684. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  685. package/dist/utilities/handleBackToDashboard.d.ts.map +1 -1
  686. package/dist/utilities/handleFormStateLocking.d.ts +2 -2
  687. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  688. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  689. package/dist/utilities/handleGoBack.d.ts.map +1 -1
  690. package/dist/utilities/handleLivePreview.d.ts +1 -0
  691. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  692. package/dist/utilities/handlePreview.d.ts.map +1 -1
  693. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  694. package/dist/utilities/handleStaleDataCheck.d.ts.map +1 -1
  695. package/dist/utilities/handleTakeOver.d.ts +5 -5
  696. package/dist/utilities/handleTakeOver.d.ts.map +1 -1
  697. package/dist/utilities/handleTakeOver.js.map +1 -1
  698. package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +1 -1
  699. package/dist/utilities/hasSavePermission.d.ts.map +1 -1
  700. package/dist/utilities/initReq.d.ts.map +1 -1
  701. package/dist/utilities/isClientUserObject.d.ts +2 -2
  702. package/dist/utilities/isClientUserObject.d.ts.map +1 -1
  703. package/dist/utilities/isClientUserObject.js.map +1 -1
  704. package/dist/utilities/isCustomAdminView.d.ts.map +1 -1
  705. package/dist/utilities/isEditing.d.ts.map +1 -1
  706. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  707. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  708. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  709. package/dist/utilities/isURLAllowed.js +9 -3
  710. package/dist/utilities/isURLAllowed.js.map +1 -1
  711. package/dist/utilities/recentlyViewed.d.ts +16 -0
  712. package/dist/utilities/recentlyViewed.d.ts.map +1 -0
  713. package/dist/utilities/recentlyViewed.js +21 -0
  714. package/dist/utilities/recentlyViewed.js.map +1 -0
  715. package/dist/utilities/recentlyViewed.spec.js +92 -0
  716. package/dist/utilities/recentlyViewed.spec.js.map +1 -0
  717. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  718. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  719. package/dist/utilities/renderTable.d.ts +2 -2
  720. package/dist/utilities/renderTable.d.ts.map +1 -1
  721. package/dist/utilities/resolveFilterOptions.d.ts +1 -1
  722. package/dist/utilities/resolveFilterOptions.d.ts.map +1 -1
  723. package/dist/utilities/sanitizeFilterOptionsQuery.d.ts.map +1 -1
  724. package/dist/utilities/scrollToID.d.ts.map +1 -1
  725. package/dist/utilities/selectiveCache.d.ts.map +1 -1
  726. package/dist/utilities/serverFunctionRegistry.d.ts +13 -0
  727. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -0
  728. package/dist/utilities/serverFunctionRegistry.js +25 -0
  729. package/dist/utilities/serverFunctionRegistry.js.map +1 -0
  730. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  731. package/dist/utilities/slugify.d.ts +1 -1
  732. package/dist/utilities/slugify.js +1 -1
  733. package/dist/utilities/slugify.js.map +1 -1
  734. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  735. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  736. package/dist/views/API/index.client.js +2 -2
  737. package/dist/views/API/index.client.js.map +1 -1
  738. package/dist/views/Account/ResetPreferences/index.d.ts +2 -2
  739. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  740. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  741. package/dist/views/Account/Settings/index.d.ts +2 -2
  742. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  743. package/dist/views/Account/Settings/index.js.map +1 -1
  744. package/dist/views/CollectionTrash/generateCollectionTrashMetadata.d.ts.map +1 -1
  745. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
  746. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +27 -23
  747. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  748. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
  749. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +2 -2
  750. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  751. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -2
  752. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  753. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts +2 -2
  754. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -1
  755. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  756. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  757. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  758. package/dist/views/Dashboard/Default/index.js.map +1 -1
  759. package/dist/views/Document/getCustomDocumentViewByKey.d.ts +1 -1
  760. package/dist/views/Document/getCustomDocumentViewByKey.d.ts.map +1 -1
  761. package/dist/views/Document/getCustomViewByRoute.d.ts +1 -1
  762. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  763. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  764. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  765. package/dist/views/Document/index.d.ts +1 -1
  766. package/dist/views/Document/index.d.ts.map +1 -1
  767. package/dist/views/Document/index.js +18 -1
  768. package/dist/views/Document/index.js.map +1 -1
  769. package/dist/views/Document/recordRecentlyViewed.d.ts +12 -0
  770. package/dist/views/Document/recordRecentlyViewed.d.ts.map +1 -0
  771. package/dist/views/Document/recordRecentlyViewed.js +40 -0
  772. package/dist/views/Document/recordRecentlyViewed.js.map +1 -0
  773. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  774. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  775. package/dist/views/Document/renderDocumentSlots.js +47 -1
  776. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  777. package/dist/views/Edit/index.css +143 -6
  778. package/dist/views/Edit/index.d.ts +1 -1
  779. package/dist/views/Edit/index.d.ts.map +1 -1
  780. package/dist/views/Edit/index.js +34 -31
  781. package/dist/views/Edit/index.js.map +1 -1
  782. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +2 -2
  783. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +2 -2
  784. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
  785. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
  786. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +2 -2
  787. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -1
  788. package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -1
  789. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  790. package/dist/views/HierarchyList/TypeFilter/index.js +3 -0
  791. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  792. package/dist/views/HierarchyList/index.d.ts.map +1 -1
  793. package/dist/views/HierarchyList/index.js +2 -6
  794. package/dist/views/HierarchyList/index.js.map +1 -1
  795. package/dist/views/List/ListHeader/index.css +5 -0
  796. package/dist/views/List/createSerializableValue.d.ts.map +1 -1
  797. package/dist/views/List/extractRelationshipDisplayValue.d.ts.map +1 -1
  798. package/dist/views/List/extractValueOrRelationshipID.d.ts.map +1 -1
  799. package/dist/views/List/generateListViewMetadata.d.ts.map +1 -1
  800. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  801. package/dist/views/List/handleHierarchy.d.ts +1 -1
  802. package/dist/views/List/handleHierarchy.d.ts.map +1 -1
  803. package/dist/views/List/index.client.js +3 -3
  804. package/dist/views/List/index.client.js.map +1 -1
  805. package/dist/views/List/index.d.ts.map +1 -1
  806. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  807. package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -1
  808. package/dist/views/List/transformColumnsToSelect.d.ts.map +1 -1
  809. package/dist/views/Logout/LogoutClient.d.ts +14 -0
  810. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  811. package/dist/views/Logout/LogoutClient.js +6 -4
  812. package/dist/views/Logout/LogoutClient.js.map +1 -1
  813. package/dist/views/Logout/index.d.ts.map +1 -1
  814. package/dist/views/Logout/index.js +7 -2
  815. package/dist/views/Logout/index.js.map +1 -1
  816. package/dist/views/NotFound/page.d.ts.map +1 -1
  817. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -1
  818. package/dist/views/Root/generatePageMetadata.d.ts.map +1 -1
  819. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts +1 -1
  820. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  821. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts +1 -1
  822. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  823. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  824. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  825. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  826. package/dist/views/Root/index.d.ts.map +1 -1
  827. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  828. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
  829. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  830. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  831. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  832. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +1 -0
  833. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  834. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  835. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  836. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +1 -0
  837. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  838. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  839. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  840. package/dist/views/Version/SelectComparison/index.js +1 -0
  841. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  842. package/dist/views/Versions/buildColumns.d.ts +1 -1
  843. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  844. package/dist/views/Versions/fetchVersions.d.ts +8 -8
  845. package/dist/views/Versions/fetchVersions.d.ts.map +1 -1
  846. package/dist/views/Versions/fetchVersions.js.map +1 -1
  847. package/dist/views/Versions/types.d.ts +2 -2
  848. package/dist/views/Versions/types.d.ts.map +1 -1
  849. package/dist/views/Versions/types.js.map +1 -1
  850. package/dist/widgets/CollectionCards/getCollectionCardsData.d.ts +20 -0
  851. package/dist/widgets/CollectionCards/getCollectionCardsData.d.ts.map +1 -0
  852. package/dist/widgets/CollectionCards/getCollectionCardsData.js +29 -0
  853. package/dist/widgets/CollectionCards/getCollectionCardsData.js.map +1 -0
  854. package/dist/widgets/CollectionCards/index.client.d.ts +5 -0
  855. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -0
  856. package/dist/widgets/CollectionCards/index.client.js +139 -0
  857. package/dist/widgets/CollectionCards/index.client.js.map +1 -0
  858. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  859. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -0
  860. package/dist/widgets/CollectionQuery/SortField/index.js +118 -0
  861. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -0
  862. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts +18 -0
  863. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts.map +1 -0
  864. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js +91 -0
  865. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js.map +1 -0
  866. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +100 -0
  867. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +1 -0
  868. package/dist/widgets/CollectionQuery/index.css +64 -0
  869. package/dist/widgets/CollectionQuery/index.d.ts +16 -0
  870. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -0
  871. package/dist/widgets/CollectionQuery/index.js +328 -0
  872. package/dist/widgets/CollectionQuery/index.js.map +1 -0
  873. package/dist/widgets/RecentlyViewed/CollectionsField/index.css +14 -0
  874. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +10 -0
  875. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -0
  876. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +76 -0
  877. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -0
  878. package/dist/widgets/RecentlyViewed/index.d.ts +10 -0
  879. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -0
  880. package/dist/widgets/RecentlyViewed/index.js +148 -0
  881. package/dist/widgets/RecentlyViewed/index.js.map +1 -0
  882. package/dist/widgets/WidgetCard/index.css +155 -0
  883. package/dist/widgets/WidgetCard/index.d.ts +19 -0
  884. package/dist/widgets/WidgetCard/index.d.ts.map +1 -0
  885. package/dist/widgets/WidgetCard/index.js +49 -0
  886. package/dist/widgets/WidgetCard/index.js.map +1 -0
  887. package/package.json +59 -8
  888. package/dist/elements/BulkUpload/Header/index.d.ts +0 -9
  889. package/dist/elements/BulkUpload/Header/index.d.ts.map +0 -1
  890. package/dist/elements/BulkUpload/Header/index.js.map +0 -1
  891. package/dist/elements/FileDetails/FileMeta/index.scss +0 -31
  892. package/dist/elements/FileDetails/StaticFileDetails/index.scss +0 -134
  893. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
  894. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
  895. package/dist/elements/Hierarchy/Drawer/index.css +0 -90
  896. package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
  897. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
  898. package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
  899. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
  900. package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
  901. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
  902. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
  903. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
  904. package/dist/elements/Nav/NavToggler/index.css +0 -12
  905. package/dist/elements/Nav/NavToggler/index.d.ts +0 -9
  906. package/dist/elements/Nav/NavToggler/index.d.ts.map +0 -1
  907. package/dist/elements/Nav/NavToggler/index.js +0 -91
  908. package/dist/elements/Nav/NavToggler/index.js.map +0 -1
  909. package/dist/elements/Nav/SettingsMenuButton/index.scss +0 -11
  910. package/dist/elements/PreviewSizes/index.scss +0 -147
  911. package/dist/elements/Thumbnail/index.scss +0 -53
  912. package/dist/exports/client/CodeEditor-T3624SG3.js +0 -14
  913. package/dist/exports/client/CodeEditor-T3624SG3.js.map +0 -7
  914. package/dist/exports/client/DatePicker-6KF52Z3G.js +0 -14
  915. package/dist/exports/client/DatePicker-6KF52Z3G.js.map +0 -7
  916. package/dist/exports/client/chunk-5LKBKI4T.js +0 -14
  917. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -7
  918. package/dist/exports/client/chunk-7T64ULOM.js +0 -29
  919. package/dist/exports/client/chunk-7T64ULOM.js.map +0 -7
  920. package/dist/exports/client/chunk-DMFYTMX6.js +0 -27
  921. package/dist/exports/client/chunk-DMFYTMX6.js.map +0 -7
  922. package/dist/icons/ExternalLink/index.d.ts.map +0 -1
  923. package/dist/icons/ExternalLink/index.js +0 -26
  924. package/dist/icons/ExternalLink/index.js.map +0 -1
  925. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.d.ts +0 -0
  926. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.js +0 -0
  927. /package/dist/elements/Hierarchy/{Drawer → Modal}/types.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHierarchyModal.js","names":["useModal","React","useCallback","useId","useMemo","useRef","useState","useConfig","useEditDepth","useHierarchy","DrawerToggler","ModalToggler","baseClass","HierarchyModal","formatHierarchyModalSlug","depth","uuid","HierarchyModalToggler","children","className","disabled","modalSlug","onClick","rest","_jsx","filter","Boolean","join","slug","useHierarchyModal","disabledIds","filterByCollection","filterByCollectionProp","hierarchyCollectionSlug","Icon","getEntityConfig","allowedCollections","baseFilter","collectionConfig","collectionSlug","useAsTitle","admin","hierarchyConfig","hierarchy","undefined","parentFieldName","map","c","modalDepth","closeModal","openModal","toggleModal","reopenCount","setReopenCount","closeModalRef","openModalRef","toggleModalRef","current","toggleHierarchyModal","closeHierarchyModal","openHierarchyModal","count","MemoizedModal","ModalComponent","props","MemoizedModalToggler","TogglerComponent","MemoizedModalState","isModalOpen"],"sources":["../../../../src/elements/Hierarchy/Modal/useHierarchyModal.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useId, useMemo, useRef, useState } from 'react'\n\nimport type { HierarchyModalProps, HierarchyModalTogglerProps, UseHierarchyModal } from './types.js'\n\nexport * from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useEditDepth } from '../../../providers/EditDepth/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { DrawerToggler as ModalToggler } from '../../Drawer/index.js'\nimport { baseClass, HierarchyModal } from './index.js'\n\nexport const formatHierarchyModalSlug = ({\n depth,\n uuid,\n}: {\n depth: number\n uuid: string\n}): string => `hierarchy-modal_${depth}_${uuid}`\n\nexport const HierarchyModalToggler: React.FC<HierarchyModalTogglerProps> = ({\n children,\n className,\n disabled,\n modalSlug,\n onClick,\n ...rest\n}) => {\n return (\n <ModalToggler\n className={[className, `${baseClass}__toggler`].filter(Boolean).join(' ')}\n disabled={disabled}\n onClick={onClick}\n slug={modalSlug}\n {...rest}\n >\n {children}\n </ModalToggler>\n )\n}\n\n/**\n * Hook for using a hierarchy modal for selecting hierarchy items.\n *\n * @example\n * ```tsx\n * const [HierarchyModal, HierarchyModalToggler, { closeModal, openModal }] = useHierarchyModal({\n * collectionSlug: 'categories',\n * })\n *\n * return (\n * <>\n * <HierarchyModal\n * onSave={(selections) => console.log(selections)}\n * hasMany={true}\n * />\n * <HierarchyModalToggler>Select Categories</HierarchyModalToggler>\n * </>\n * )\n * ```\n */\nexport const useHierarchyModal: UseHierarchyModal = ({\n disabledIds,\n filterByCollection: filterByCollectionProp,\n hierarchyCollectionSlug,\n Icon,\n}) => {\n const { getEntityConfig } = useConfig()\n const { allowedCollections, baseFilter } = useHierarchy()\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const parentFieldName = hierarchyConfig?.parentFieldName\n\n // Use explicit prop if provided, otherwise fall back to allowedCollections from context\n // - allowedCollections is null/undefined: no filtering (undefined)\n // - allowedCollections is []: folder accepts everything, show only unrestricted destinations ([])\n // - allowedCollections has values: show folders accepting those types\n // Memoize to prevent new array references on every render\n const filterByCollection = useMemo(() => {\n if (filterByCollectionProp !== undefined) {\n return filterByCollectionProp\n }\n return allowedCollections !== null ? allowedCollections.map((c) => c.slug) : undefined\n }, [filterByCollectionProp, allowedCollections])\n\n const modalDepth = useEditDepth()\n const uuid = useId()\n const { closeModal, openModal, toggleModal } = useModal()\n const [reopenCount, setReopenCount] = useState(0)\n\n const modalSlug = formatHierarchyModalSlug({\n depth: modalDepth,\n uuid,\n })\n\n // Store modal functions in refs to ensure stable callbacks\n // This prevents re-renders when other modals (like DocumentDrawer) change state\n const closeModalRef = useRef(closeModal)\n const openModalRef = useRef(openModal)\n const toggleModalRef = useRef(toggleModal)\n closeModalRef.current = closeModal\n openModalRef.current = openModal\n toggleModalRef.current = toggleModal\n\n // Stable callbacks using refs - these will NEVER change\n const toggleHierarchyModal = useCallback(() => {\n toggleModalRef.current(modalSlug)\n }, [modalSlug])\n\n const closeHierarchyModal = useCallback(() => {\n closeModalRef.current(modalSlug)\n }, [modalSlug])\n\n const openHierarchyModal = useCallback(() => {\n setReopenCount((count) => count + 1)\n openModalRef.current(modalSlug)\n }, [modalSlug])\n\n const MemoizedModal = useMemo(() => {\n const ModalComponent: React.FC<HierarchyModalProps> = (props) => (\n <HierarchyModal\n key={modalSlug}\n {...props}\n baseFilter={baseFilter}\n closeModal={closeHierarchyModal}\n disabledIds={disabledIds}\n filterByCollection={filterByCollection}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n Icon={Icon}\n modalSlug={modalSlug}\n parentFieldName={parentFieldName}\n reopenCount={reopenCount}\n useAsTitle={useAsTitle}\n />\n )\n\n return ModalComponent\n }, [\n baseFilter,\n closeHierarchyModal,\n disabledIds,\n filterByCollection,\n Icon,\n modalSlug,\n parentFieldName,\n reopenCount,\n hierarchyCollectionSlug,\n useAsTitle,\n ])\n\n const MemoizedModalToggler = useMemo(() => {\n const TogglerComponent: React.FC<Omit<HierarchyModalTogglerProps, 'modalSlug'>> = (props) => (\n <HierarchyModalToggler {...props} modalSlug={modalSlug} />\n )\n\n return TogglerComponent\n }, [modalSlug])\n\n const MemoizedModalState = useMemo(\n () => ({\n closeModal: closeHierarchyModal,\n modalDepth,\n modalSlug,\n // Note: Not tracking isModalOpen to prevent re-renders when other modals change state\n // Consumers needing this can use useModal() directly\n isModalOpen: false,\n openModal: openHierarchyModal,\n toggleModal: toggleHierarchyModal,\n }),\n [closeHierarchyModal, modalDepth, modalSlug, openHierarchyModal, toggleHierarchyModal],\n )\n\n return [MemoizedModal, MemoizedModalToggler, MemoizedModalState]\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  export declare const baseClass = "move-many";
3
3
  type MoveManyProps = {
4
- /** Current parent ID - drawer will open expanded to this location */
4
+ /** Current parent ID - modal will open expanded to this location */
5
5
  currentParentID?: null | number | string;
6
6
  /** The hierarchy collection slug (e.g., 'folders') */
7
7
  hierarchySlug: string;
8
- /** Icon to display in the hierarchy drawer */
8
+ /** Icon to display in the hierarchy modal */
9
9
  Icon?: React.ReactNode;
10
10
  /** When multiple MoveMany components are rendered on the page, this will differentiate them */
11
11
  modalPrefix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/MoveMany/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAe7D,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,KAAK,aAAa,GAAG;IACnB,qEAAqE;IACrE,eAAe,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACxC,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAA;IACrB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,CAAC,CAAA;CACzD,CAAA;AAeD,wBAAgB,QAAQ,CAAC,EACvB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,GACX,EAAE,aAAa,qBA4Qf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/MoveMany/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAe7D,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,KAAK,aAAa,GAAG;IACnB,oEAAoE;IACpE,eAAe,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACxC,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,CAAC,CAAA;CACzD,CAAA;AAeD,wBAAgB,QAAQ,CAAC,EACvB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,WAAW,EACX,SAAS,EACT,UAAU,GACX,EAAE,aAAa,qBAiQf"}
@@ -15,7 +15,7 @@ import { requests } from '../../../utilities/api.js';
15
15
  import { ConfirmationModal } from '../../ConfirmationModal/index.js';
16
16
  import { ListSelectionButton } from '../../ListSelection/index.js';
17
17
  import { Translation } from '../../Translation/index.js';
18
- import { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js';
18
+ import { useHierarchyModal } from '../Modal/useHierarchyModal.js';
19
19
  export const baseClass = 'move-many';
20
20
  /**
21
21
  * Gets the parent field name from the hierarchy config.
@@ -87,10 +87,10 @@ export function MoveMany({
87
87
  const parentIds = selections[hierarchySlug]?.ids;
88
88
  return parentIds?.length ? new Set(parentIds) : undefined;
89
89
  }, [selections, hierarchySlug]);
90
- const [HierarchyDrawer,, {
91
- closeDrawer,
92
- openDrawer
93
- }] = useHierarchyDrawer({
90
+ const [HierarchyModal,, {
91
+ closeModal,
92
+ openModal: openHierarchyModal
93
+ }] = useHierarchyModal({
94
94
  disabledIds,
95
95
  filterByCollection: requiredCollections,
96
96
  hierarchyCollectionSlug: hierarchySlug,
@@ -210,7 +210,7 @@ export function MoveMany({
210
210
  }));
211
211
  }
212
212
  if (!hasErrors || totalMoved > 0) {
213
- closeDrawer();
213
+ closeModal();
214
214
  onSuccess?.();
215
215
  }
216
216
  } catch (_err) {
@@ -218,7 +218,7 @@ export function MoveMany({
218
218
  } finally {
219
219
  setDestination(null);
220
220
  }
221
- }, [closeDrawer, destination, selections, parentFieldName, locale, api, i18n, t, label, onSuccess]);
221
+ }, [closeModal, destination, selections, parentFieldName, locale, api, i18n, t, label, onSuccess]);
222
222
  if (count === 0 || !canMove) {
223
223
  return null;
224
224
  }
@@ -226,9 +226,9 @@ export function MoveMany({
226
226
  children: [/*#__PURE__*/_jsx(ListSelectionButton, {
227
227
  "aria-label": t('general:move'),
228
228
  className: `${baseClass}__toggle`,
229
- onClick: openDrawer,
229
+ onClick: openHierarchyModal,
230
230
  children: t('general:move')
231
- }), /*#__PURE__*/_jsx(HierarchyDrawer, {
231
+ }), /*#__PURE__*/_jsx(HierarchyModal, {
232
232
  hasMany: false,
233
233
  initialSelections: currentParentID ? [currentParentID] : null,
234
234
  onMoveToRoot: handleMoveToRoot,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useMemo","useState","toast","useConfig","useDocumentSelection","useLocale","useTranslation","requests","ConfirmationModal","ListSelectionButton","Translation","useHierarchyDrawer","baseClass","getParentFieldName","hierarchyConfig","config","hierarchy","undefined","parentFieldName","MoveMany","currentParentID","hierarchySlug","Icon","modalPrefix","onSuccess","selections","i18n","t","code","locale","openModal","collections","routes","api","getSelectionsWithMetadata","destination","setDestination","confirmMoveDrawerSlug","requiredCollections","selectionsWithMeta","required","Set","collectionSlug","items","Object","entries","metadata","allowedCollections","slug","add","size","Array","from","disabledIds","parentIds","ids","length","HierarchyDrawer","closeDrawer","openDrawer","filterByCollection","hierarchyCollectionSlug","count","label","totalCount","labels","find","c","collectionLabel","plural","singular","push","join","hierarchyCollectionConfig","canMove","handleDrawerSave","selectionsMap","firstSelection","values","next","value","destinationId","id","destinationTitle","path","title","String","handleMoveToRoot","handleConfirmMove","totalMoved","hasErrors","queryString","stringify","where","in","addQueryPrefix","url","apiRoute","response","patch","body","JSON","headers","language","credentials","json","status","errors","error","message","description","map","movedCount","docs","successKey","success","_err","_jsxs","Fragment","_jsx","className","onClick","hasMany","initialSelections","onMoveToRoot","onSave","showMoveToRoot","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/elements/Hierarchy/MoveMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { SelectionWithPath } from '../Drawer/types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentSelection } from '../../../providers/DocumentSelection/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { useHierarchyDrawer } from '../Drawer/useHierarchyDrawer.js'\n\nexport const baseClass = 'move-many'\n\ntype MoveManyProps = {\n /** Current parent ID - drawer will open expanded to this location */\n currentParentID?: null | number | string\n /** The hierarchy collection slug (e.g., 'folders') */\n hierarchySlug: string\n /** Icon to display in the hierarchy drawer */\n Icon?: React.ReactNode\n /** When multiple MoveMany components are rendered on the page, this will differentiate them */\n modalPrefix?: string\n /** Callback after successful move */\n onSuccess?: () => void\n /** Selections grouped by collection slug */\n selections: Record<string, { ids: (number | string)[] }>\n}\n\n/**\n * Gets the parent field name from the hierarchy config.\n */\nfunction getParentFieldName(\n hierarchyConfig: ClientCollectionConfig | undefined,\n): string | undefined {\n const config =\n hierarchyConfig?.hierarchy && typeof hierarchyConfig.hierarchy === 'object'\n ? hierarchyConfig.hierarchy\n : undefined\n return config?.parentFieldName\n}\n\nexport function MoveMany({\n currentParentID,\n hierarchySlug,\n Icon,\n modalPrefix,\n onSuccess,\n selections,\n}: MoveManyProps) {\n const { i18n, t } = useTranslation()\n const { code: locale } = useLocale()\n const { openModal } = useModal()\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { getSelectionsWithMetadata } = useDocumentSelection()\n\n const [destination, setDestination] = useState<{\n id: null | number | string\n title: string\n } | null>(null)\n\n const confirmMoveDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-move-many`\n\n // Compute required collections from selection metadata\n // For related items: add their collection slug\n // For folders: add their allowedCollections values\n const requiredCollections = useMemo(() => {\n const selectionsWithMeta = getSelectionsWithMetadata()\n const required = new Set<string>()\n\n for (const [collectionSlug, { selections: items }] of Object.entries(selectionsWithMeta)) {\n if (collectionSlug === hierarchySlug) {\n // For folders, add their allowedCollections to required set\n for (const { metadata } of items) {\n if (metadata.allowedCollections) {\n for (const slug of metadata.allowedCollections) {\n required.add(slug)\n }\n }\n }\n } else {\n // For related items, add their collection slug\n required.add(collectionSlug)\n }\n }\n\n return required.size > 0 ? Array.from(required) : undefined\n }, [getSelectionsWithMetadata, hierarchySlug])\n\n // Folders being moved cannot be selected as destination (can't move into themselves)\n const disabledIds = useMemo(() => {\n const parentIds = selections[hierarchySlug]?.ids\n return parentIds?.length ? new Set(parentIds) : undefined\n }, [selections, hierarchySlug])\n\n const [HierarchyDrawer, , { closeDrawer, openDrawer }] = useHierarchyDrawer({\n disabledIds,\n filterByCollection: requiredCollections,\n hierarchyCollectionSlug: hierarchySlug,\n Icon,\n })\n\n // Calculate total count and label\n const { count, label } = useMemo(() => {\n let totalCount = 0\n const labels: string[] = []\n\n for (const [collectionSlug, { ids }] of Object.entries(selections)) {\n const config = collections.find((c) => c.slug === collectionSlug)\n\n if (config && ids.length > 0) {\n totalCount += ids.length\n const collectionLabel = getTranslation(\n ids.length > 1 ? config.labels.plural : config.labels.singular,\n i18n,\n )\n labels.push(collectionLabel)\n }\n }\n\n return {\n count: totalCount,\n label: labels.join(', '),\n }\n }, [selections, collections, i18n])\n\n const hierarchyCollectionConfig = collections.find((c) => c.slug === hierarchySlug)\n const parentFieldName = getParentFieldName(hierarchyCollectionConfig)\n\n // Check if hierarchy has a valid parentFieldName\n const canMove = parentFieldName !== undefined\n\n const handleDrawerSave = useCallback(\n ({ selections: selectionsMap }: { selections: Map<number | string, SelectionWithPath> }) => {\n if (selectionsMap.size === 0) {\n return\n }\n\n const firstSelection = selectionsMap.values().next().value\n const destinationId = firstSelection?.id\n const destinationTitle =\n firstSelection?.path?.[firstSelection.path.length - 1]?.title || String(destinationId)\n\n setDestination({ id: destinationId, title: destinationTitle })\n openModal(confirmMoveDrawerSlug)\n },\n [openModal, confirmMoveDrawerSlug],\n )\n\n const handleMoveToRoot = useCallback(() => {\n setDestination({ id: null, title: t('hierarchy:noParent') })\n openModal(confirmMoveDrawerSlug)\n }, [openModal, confirmMoveDrawerSlug, t])\n\n const handleConfirmMove = useCallback(async () => {\n if (destination === null) {\n return\n }\n\n let totalMoved = 0\n let hasErrors = false\n\n try {\n for (const [collectionSlug, { ids }] of Object.entries(selections)) {\n if (ids.length === 0) {\n continue\n }\n\n const queryString = qs.stringify(\n {\n locale,\n where: { id: { in: ids } },\n },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n })\n\n const response = await requests.patch(url, {\n body: JSON.stringify({ [parentFieldName]: destination.id }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n })\n\n const json = await response.json()\n\n if (response.status >= 400) {\n hasErrors = true\n\n if (json?.errors?.length > 0) {\n toast.error(json.message || t('error:unknown'), {\n description: json.errors\n .map((error: { message: string }) => error.message)\n .join('\\n'),\n })\n } else {\n toast.error(json?.message || t('error:unknown'))\n }\n\n continue\n }\n\n const movedCount = json?.docs?.length || 0\n totalMoved += movedCount\n\n if (json?.errors?.length > 0) {\n hasErrors = true\n toast.error(json.message, {\n description: json.errors.map((error: { message: string }) => error.message).join('\\n'),\n })\n }\n }\n\n if (totalMoved > 0) {\n const successKey =\n destination.id === null ? 'hierarchy:itemsMovedToRoot' : 'hierarchy:itemsMovedTo'\n\n toast.success(\n t(successKey, {\n destination: destination.title,\n title: label,\n }),\n )\n }\n\n if (!hasErrors || totalMoved > 0) {\n closeDrawer()\n onSuccess?.()\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n } finally {\n setDestination(null)\n }\n }, [\n closeDrawer,\n destination,\n selections,\n parentFieldName,\n locale,\n api,\n i18n,\n t,\n label,\n onSuccess,\n ])\n\n if (count === 0 || !canMove) {\n return null\n }\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:move')}\n className={`${baseClass}__toggle`}\n onClick={openDrawer}\n >\n {t('general:move')}\n </ListSelectionButton>\n <HierarchyDrawer\n hasMany={false}\n initialSelections={currentParentID ? [currentParentID] : null}\n onMoveToRoot={handleMoveToRoot}\n onSave={handleDrawerSave}\n showMoveToRoot\n />\n <ConfirmationModal\n body={\n <p>\n {destination?.id === null ? (\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"hierarchy:moveItemsToRootConfirmation\"\n t={t}\n variables={{\n count,\n label,\n }}\n />\n ) : (\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:moveConfirm\"\n t={t}\n variables={{\n count,\n destination: destination?.title || '',\n label,\n }}\n />\n )}\n </p>\n }\n confirmingLabel={t('general:moving')}\n heading={t('general:confirmMove')}\n modalSlug={confirmMoveDrawerSlug}\n onConfirm={handleConfirmMove}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useMemo","useState","toast","useConfig","useDocumentSelection","useLocale","useTranslation","requests","ConfirmationModal","ListSelectionButton","Translation","useHierarchyModal","baseClass","getParentFieldName","hierarchyConfig","config","hierarchy","undefined","parentFieldName","MoveMany","currentParentID","hierarchySlug","Icon","modalPrefix","onSuccess","selections","i18n","t","code","locale","openModal","collections","routes","api","getSelectionsWithMetadata","destination","setDestination","confirmMoveDrawerSlug","requiredCollections","selectionsWithMeta","required","Set","collectionSlug","items","Object","entries","metadata","allowedCollections","slug","add","size","Array","from","disabledIds","parentIds","ids","length","HierarchyModal","closeModal","openHierarchyModal","filterByCollection","hierarchyCollectionSlug","count","label","totalCount","labels","find","c","collectionLabel","plural","singular","push","join","hierarchyCollectionConfig","canMove","handleDrawerSave","selectionsMap","firstSelection","values","next","value","destinationId","id","destinationTitle","path","title","String","handleMoveToRoot","handleConfirmMove","totalMoved","hasErrors","queryString","stringify","where","in","addQueryPrefix","url","apiRoute","response","patch","body","JSON","headers","language","credentials","json","status","errors","error","message","description","map","movedCount","docs","successKey","success","_err","_jsxs","Fragment","_jsx","className","onClick","hasMany","initialSelections","onMoveToRoot","onSave","showMoveToRoot","elements","1","children","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/elements/Hierarchy/MoveMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { SelectionWithPath } from '../Modal/types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentSelection } from '../../../providers/DocumentSelection/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { useHierarchyModal } from '../Modal/useHierarchyModal.js'\n\nexport const baseClass = 'move-many'\n\ntype MoveManyProps = {\n /** Current parent ID - modal will open expanded to this location */\n currentParentID?: null | number | string\n /** The hierarchy collection slug (e.g., 'folders') */\n hierarchySlug: string\n /** Icon to display in the hierarchy modal */\n Icon?: React.ReactNode\n /** When multiple MoveMany components are rendered on the page, this will differentiate them */\n modalPrefix?: string\n /** Callback after successful move */\n onSuccess?: () => void\n /** Selections grouped by collection slug */\n selections: Record<string, { ids: (number | string)[] }>\n}\n\n/**\n * Gets the parent field name from the hierarchy config.\n */\nfunction getParentFieldName(\n hierarchyConfig: ClientCollectionConfig | undefined,\n): string | undefined {\n const config =\n hierarchyConfig?.hierarchy && typeof hierarchyConfig.hierarchy === 'object'\n ? hierarchyConfig.hierarchy\n : undefined\n return config?.parentFieldName\n}\n\nexport function MoveMany({\n currentParentID,\n hierarchySlug,\n Icon,\n modalPrefix,\n onSuccess,\n selections,\n}: MoveManyProps) {\n const { i18n, t } = useTranslation()\n const { code: locale } = useLocale()\n const { openModal } = useModal()\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { getSelectionsWithMetadata } = useDocumentSelection()\n\n const [destination, setDestination] = useState<{\n id: null | number | string\n title: string\n } | null>(null)\n\n const confirmMoveDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-move-many`\n\n // Compute required collections from selection metadata\n // For related items: add their collection slug\n // For folders: add their allowedCollections values\n const requiredCollections = useMemo(() => {\n const selectionsWithMeta = getSelectionsWithMetadata()\n const required = new Set<string>()\n\n for (const [collectionSlug, { selections: items }] of Object.entries(selectionsWithMeta)) {\n if (collectionSlug === hierarchySlug) {\n // For folders, add their allowedCollections to required set\n for (const { metadata } of items) {\n if (metadata.allowedCollections) {\n for (const slug of metadata.allowedCollections) {\n required.add(slug)\n }\n }\n }\n } else {\n // For related items, add their collection slug\n required.add(collectionSlug)\n }\n }\n\n return required.size > 0 ? Array.from(required) : undefined\n }, [getSelectionsWithMetadata, hierarchySlug])\n\n // Folders being moved cannot be selected as destination (can't move into themselves)\n const disabledIds = useMemo(() => {\n const parentIds = selections[hierarchySlug]?.ids\n return parentIds?.length ? new Set(parentIds) : undefined\n }, [selections, hierarchySlug])\n\n const [HierarchyModal, , { closeModal, openModal: openHierarchyModal }] = useHierarchyModal({\n disabledIds,\n filterByCollection: requiredCollections,\n hierarchyCollectionSlug: hierarchySlug,\n Icon,\n })\n\n // Calculate total count and label\n const { count, label } = useMemo(() => {\n let totalCount = 0\n const labels: string[] = []\n\n for (const [collectionSlug, { ids }] of Object.entries(selections)) {\n const config = collections.find((c) => c.slug === collectionSlug)\n\n if (config && ids.length > 0) {\n totalCount += ids.length\n const collectionLabel = getTranslation(\n ids.length > 1 ? config.labels.plural : config.labels.singular,\n i18n,\n )\n labels.push(collectionLabel)\n }\n }\n\n return {\n count: totalCount,\n label: labels.join(', '),\n }\n }, [selections, collections, i18n])\n\n const hierarchyCollectionConfig = collections.find((c) => c.slug === hierarchySlug)\n const parentFieldName = getParentFieldName(hierarchyCollectionConfig)\n\n // Check if hierarchy has a valid parentFieldName\n const canMove = parentFieldName !== undefined\n\n const handleDrawerSave = useCallback(\n ({ selections: selectionsMap }: { selections: Map<number | string, SelectionWithPath> }) => {\n if (selectionsMap.size === 0) {\n return\n }\n\n const firstSelection = selectionsMap.values().next().value\n const destinationId = firstSelection?.id\n const destinationTitle =\n firstSelection?.path?.[firstSelection.path.length - 1]?.title || String(destinationId)\n\n setDestination({ id: destinationId, title: destinationTitle })\n openModal(confirmMoveDrawerSlug)\n },\n [openModal, confirmMoveDrawerSlug],\n )\n\n const handleMoveToRoot = useCallback(() => {\n setDestination({ id: null, title: t('hierarchy:noParent') })\n openModal(confirmMoveDrawerSlug)\n }, [openModal, confirmMoveDrawerSlug, t])\n\n const handleConfirmMove = useCallback(async () => {\n if (destination === null) {\n return\n }\n\n let totalMoved = 0\n let hasErrors = false\n\n try {\n for (const [collectionSlug, { ids }] of Object.entries(selections)) {\n if (ids.length === 0) {\n continue\n }\n\n const queryString = qs.stringify(\n {\n locale,\n where: { id: { in: ids } },\n },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n })\n\n const response = await requests.patch(url, {\n body: JSON.stringify({ [parentFieldName]: destination.id }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n })\n\n const json = await response.json()\n\n if (response.status >= 400) {\n hasErrors = true\n\n if (json?.errors?.length > 0) {\n toast.error(json.message || t('error:unknown'), {\n description: json.errors\n .map((error: { message: string }) => error.message)\n .join('\\n'),\n })\n } else {\n toast.error(json?.message || t('error:unknown'))\n }\n\n continue\n }\n\n const movedCount = json?.docs?.length || 0\n totalMoved += movedCount\n\n if (json?.errors?.length > 0) {\n hasErrors = true\n toast.error(json.message, {\n description: json.errors.map((error: { message: string }) => error.message).join('\\n'),\n })\n }\n }\n\n if (totalMoved > 0) {\n const successKey =\n destination.id === null ? 'hierarchy:itemsMovedToRoot' : 'hierarchy:itemsMovedTo'\n\n toast.success(\n t(successKey, {\n destination: destination.title,\n title: label,\n }),\n )\n }\n\n if (!hasErrors || totalMoved > 0) {\n closeModal()\n onSuccess?.()\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n } finally {\n setDestination(null)\n }\n }, [closeModal, destination, selections, parentFieldName, locale, api, i18n, t, label, onSuccess])\n\n if (count === 0 || !canMove) {\n return null\n }\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:move')}\n className={`${baseClass}__toggle`}\n onClick={openHierarchyModal}\n >\n {t('general:move')}\n </ListSelectionButton>\n <HierarchyModal\n hasMany={false}\n initialSelections={currentParentID ? [currentParentID] : null}\n onMoveToRoot={handleMoveToRoot}\n onSave={handleDrawerSave}\n showMoveToRoot\n />\n <ConfirmationModal\n body={\n <p>\n {destination?.id === null ? (\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"hierarchy:moveItemsToRootConfirmation\"\n t={t}\n variables={{\n count,\n label,\n }}\n />\n ) : (\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:moveConfirm\"\n t={t}\n variables={{\n count,\n destination: destination?.title || '',\n label,\n }}\n />\n )}\n </p>\n }\n confirmingLabel={t('general:moving')}\n heading={t('general:confirmMove')}\n modalSlug={confirmMoveDrawerSlug}\n onConfirm={handleConfirmMove}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHierarchySearch.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Search/useHierarchySearch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,yEAMhC,sBAAsB,KAAG,wBAmH3B,CAAA"}
1
+ {"version":3,"file":"useHierarchySearch.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Search/useHierarchySearch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC9B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,kBAAkB,4EAM5B,sBAAsB,KAAG,wBAmH3B,CAAA"}
@@ -18,7 +18,7 @@ export declare const useTreeFocus: () => TreeFocusContextType;
18
18
  export declare const useFocusableItem: ({ id, type, ref, }: {
19
19
  id: string;
20
20
  ref: React.RefObject<HTMLElement>;
21
- type: "load-more" | "node";
21
+ type: 'load-more' | 'node';
22
22
  }) => {
23
23
  handleFocus: () => void;
24
24
  isFocused: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TreeFocusContext.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/TreeFocusContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC,CAAA;AAID,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAgFrE,CAAA;AAED,eAAO,MAAM,YAAY,4BAMxB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,oBAI9B;IACD,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAC3B;;;;CAsCA,CAAA"}
1
+ {"version":3,"file":"TreeFocusContext.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/TreeFocusContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAC3B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7C,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IAC3C,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAA;IACzC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC,CAAA;AAID,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAgFrE,CAAA;AAED,eAAO,MAAM,YAAY,4BAMxB,CAAA;AAED,eAAO,MAAM,gBAAgB,uBAI1B;IACD,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;CAC3B;;;;CAsCA,CAAA"}
@@ -8,32 +8,43 @@
8
8
  margin-left: 0;
9
9
  margin-right: 0;
10
10
  }
11
+
12
+ &:focus-visible {
13
+ outline: none;
14
+ }
11
15
  }
12
16
 
13
- .tree-node__content {
14
- padding: var(--tree-node-padding-y) var(--spacer-2);
15
- padding-left: calc(
16
- (var(--tree-depth, 0) * var(--tree-indent)) + (var(--spacer-1) * var(--tree-depth)) +
17
- var(--spacer-1)
17
+ .tree-node:focus-visible > .tree-node__content-wrapper > .tree-node__content {
18
+ outline: var(--accessibility-outline);
19
+ outline-offset: var(--accessibility-outline-offset);
20
+ }
21
+
22
+ .tree-node__content-wrapper {
23
+ margin-left: calc(
24
+ (var(--tree-depth, 0) * var(--tree-indent)) + (var(--spacer-1) * var(--tree-depth))
18
25
  );
26
+ margin-bottom: var(--tree-row-gap);
27
+ }
28
+
29
+ .tree-node__content {
30
+ display: flex;
31
+ align-items: center;
19
32
  transition: background-color 100ms ease;
20
33
  font-size: var(--tree-font-size);
21
34
  line-height: var(--tree-node-content-height);
22
- margin-bottom: var(--tree-row-gap);
23
35
  }
24
36
 
25
37
  .tree-node__toggle {
26
38
  background: none;
27
39
  border: none;
28
- padding: 0;
40
+ padding-block: var(--spacer-1);
41
+ padding-inline-start: var(--spacer-1);
29
42
  margin: 0;
30
43
  display: flex;
31
44
  align-items: center;
32
45
  justify-content: center;
33
46
  cursor: default;
34
47
  color: var(--color-icon-tertiary);
35
- width: var(--tree-chevron-width);
36
- height: var(--tree-chevron-width);
37
48
  flex-shrink: 0;
38
49
  border-radius: var(--button-radius);
39
50
 
@@ -42,13 +53,27 @@
42
53
  }
43
54
  }
44
55
 
45
- .tree-node__toggle-spacer {
46
- width: calc(var(--tree-chevron-width) + var(--tree-chevron-spacing));
47
- flex-shrink: 0;
56
+ .tree-node__node-trigger {
57
+ border: none;
58
+ background: none;
59
+ margin: 0;
60
+ padding: 0;
61
+ color: inherit;
62
+ font: inherit;
63
+ min-width: 0;
64
+ flex: 1;
65
+ display: flex;
66
+ align-items: center;
67
+ gap: var(--spacer-1);
68
+ text-align: left;
69
+ cursor: pointer;
70
+ padding-block: var(--spacer-1);
71
+ padding-inline-end: var(--spacer-1);
48
72
  }
49
73
 
50
74
  .tree-node__title {
51
- padding-left: var(--spacer-1);
75
+ padding-left: 0;
76
+ margin-left: var(--spacer-1);
52
77
  }
53
78
 
54
79
  .tree-node__loading {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/Hierarchy/Tree/TreeNode/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAQhD,OAAO,aAAa,CAAA;AAqBpB,eAAO,MAAM,QAAQ,GAAI,uNAkBtB,aAAa,sBA0Mf,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/Hierarchy/Tree/TreeNode/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAQhD,OAAO,aAAa,CAAA;AAqBpB,eAAO,MAAM,QAAQ,0NAkBlB,aAAa,sBAgNf,CAAA"}
@@ -82,7 +82,6 @@ export const TreeNode = ({
82
82
  }, [loadMoreFromHook, setFocusedId]);
83
83
  const {
84
84
  handleFocus,
85
- isFocused,
86
85
  tabIndex
87
86
  } = useFocusableItem({
88
87
  id: `node-${node.id}`,
@@ -152,36 +151,43 @@ export const TreeNode = ({
152
151
  '--tree-depth': depth
153
152
  },
154
153
  tabIndex: tabIndex,
155
- children: [/*#__PURE__*/_jsxs("div", {
156
- className: [`${baseClass}__content`, 'sidebar-row', selected && `${baseClass}__content--selected`, selected && 'sidebar-row--selected'].filter(Boolean).join(' '),
157
- children: [hasChildren ? /*#__PURE__*/_jsx("button", {
158
- "aria-label": expanded ? t('general:collapse') : t('general:open'),
159
- className: `${baseClass}__toggle`,
160
- onClick: handleToggle,
161
- onMouseDown: e_2 => e_2.preventDefault(),
162
- tabIndex: -1,
163
- type: "button",
164
- children: /*#__PURE__*/_jsx(ChevronIcon, {
165
- direction: expanded ? 'down' : 'right'
166
- })
167
- }) : /*#__PURE__*/_jsx("div", {
168
- className: `${baseClass}__toggle-spacer`
169
- }), Boolean(icon) && /*#__PURE__*/_jsx("span", {
170
- className: "sidebar-row__icon",
171
- children: icon
172
- }), /*#__PURE__*/_jsx("span", {
173
- className: `${baseClass}__title sidebar-row__title`,
174
- onClick: handleSelectClick,
175
- onMouseDown: e_3 => e_3.preventDefault(),
176
- title: node.title,
177
- children: node.title
178
- }), isLoading && expanded && /*#__PURE__*/_jsx("span", {
179
- className: `${baseClass}__loading`,
180
- children: /*#__PURE__*/_jsx(Spinner, {
181
- loadingText: null,
182
- size: "sm"
183
- })
184
- })]
154
+ children: [/*#__PURE__*/_jsx("div", {
155
+ className: `${baseClass}__content-wrapper`,
156
+ children: /*#__PURE__*/_jsxs("div", {
157
+ className: [`${baseClass}__content`, 'sidebar-row', selected && `${baseClass}__content--selected`, selected && 'sidebar-row--selected'].filter(Boolean).join(' '),
158
+ children: [hasChildren && /*#__PURE__*/_jsx("button", {
159
+ "aria-label": expanded ? t('general:collapse') : t('general:open'),
160
+ className: `${baseClass}__toggle`,
161
+ onClick: handleToggle,
162
+ onMouseDown: e_2 => e_2.preventDefault(),
163
+ tabIndex: -1,
164
+ type: "button",
165
+ children: /*#__PURE__*/_jsx(ChevronIcon, {
166
+ direction: expanded ? 'down' : 'right',
167
+ size: 16
168
+ })
169
+ }), /*#__PURE__*/_jsxs("button", {
170
+ className: [`${baseClass}__node-trigger`, selected && `${baseClass}__node-trigger--selected`].filter(Boolean).join(' '),
171
+ onClick: handleSelectClick,
172
+ onMouseDown: e_3 => e_3.preventDefault(),
173
+ tabIndex: -1,
174
+ title: node.title,
175
+ type: "button",
176
+ children: [Boolean(icon) && /*#__PURE__*/_jsx("span", {
177
+ className: "sidebar-row__icon",
178
+ children: icon
179
+ }), /*#__PURE__*/_jsx("span", {
180
+ className: `${baseClass}__title sidebar-row__title`,
181
+ children: node.title
182
+ })]
183
+ }), isLoading && expanded && /*#__PURE__*/_jsx("span", {
184
+ className: `${baseClass}__loading`,
185
+ children: /*#__PURE__*/_jsx(Spinner, {
186
+ loadingText: null,
187
+ size: "sm"
188
+ })
189
+ })]
190
+ })
185
191
  }), expanded && children && children.length > 0 && /*#__PURE__*/_jsxs(_Fragment, {
186
192
  children: [/*#__PURE__*/_jsx("div", {
187
193
  className: `${baseClass}__children`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useRef","Spinner","ChevronIcon","useTranslation","LoadMore","useFocusableItem","useTreeFocus","useChildren","DEFAULT_TREE_LIMIT","baseClass","getDocumentTitle","doc","useAsTitle","docId","id","idStr","String","value","TreeNode","allPossibleTypeValues","baseFilter","cache","collectionSlug","depth","expandedNodes","filterByCollections","icon","limit","node","onSelect","onToggle","parentFieldName","selected","selectedNodeId","typeFieldName","t","expanded","has","nodeRef","setFocusedId","children","hasMore","isLoading","load","loadMore","loadMoreFromHook","totalDocs","enabled","parentId","handleLoadMore","newDocs","length","firstNewDoc","window","requestAnimationFrame","handleFocus","isFocused","tabIndex","type","ref","hasChildren","handleToggle","e","stopPropagation","handleSelectClick","handleKeyDown","target","currentTarget","key","preventDefault","_jsxs","undefined","className","onFocus","onKeyDown","role","style","filter","Boolean","join","_jsx","onClick","onMouseDown","direction","title","loadingText","size","_Fragment","map","child","childData","childId","childTitle","currentCount","onLoadMore"],"sources":["../../../../../src/elements/Hierarchy/Tree/TreeNode/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport type { TreeNodeProps } from '../types.js'\n\nimport { Spinner } from '../../../../elements/Spinner/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { LoadMore } from '../LoadMore/index.js'\nimport { useFocusableItem, useTreeFocus } from '../TreeFocusContext.js'\nimport { useChildren } from '../useChildren.js'\nimport './index.css'\n\nconst DEFAULT_TREE_LIMIT = 10\n\nconst baseClass = 'tree-node'\n\nconst getDocumentTitle = (doc: Record<string, unknown>, useAsTitle: string | undefined): string => {\n const docId: number | string = doc.id as number | string\n const idStr = typeof docId === 'number' ? String(docId) : docId\n\n if (!useAsTitle) {\n return idStr\n }\n\n const value = doc[useAsTitle]\n if (value && (typeof value === 'string' || typeof value === 'number')) {\n return String(value)\n }\n return idStr\n}\n\nexport const TreeNode = ({\n allPossibleTypeValues,\n baseFilter,\n cache,\n collectionSlug,\n depth = 0,\n expandedNodes,\n filterByCollections,\n icon,\n limit = DEFAULT_TREE_LIMIT,\n node,\n onSelect,\n onToggle,\n parentFieldName,\n selected,\n selectedNodeId,\n typeFieldName,\n useAsTitle,\n}: TreeNodeProps) => {\n const { t } = useTranslation()\n const expanded = expandedNodes.has(node.id)\n const nodeRef = useRef<HTMLDivElement>(null)\n const { setFocusedId } = useTreeFocus()\n\n const {\n children,\n hasMore,\n isLoading,\n load,\n loadMore: loadMoreFromHook,\n totalDocs,\n } = useChildren({\n allPossibleTypeValues,\n baseFilter,\n cache,\n collectionSlug,\n enabled: expanded,\n filterByCollections,\n limit,\n parentFieldName,\n parentId: node.id,\n typeFieldName,\n useAsTitle,\n })\n\n const handleLoadMore = React.useCallback(async () => {\n const newDocs = await loadMoreFromHook()\n\n if (newDocs && newDocs.length > 0) {\n const firstNewDoc = newDocs[0]\n const docId: number | string = (firstNewDoc as { id: number | string }).id\n window.requestAnimationFrame(() => {\n setFocusedId(`node-${docId}`)\n })\n }\n }, [loadMoreFromHook, setFocusedId])\n\n const { handleFocus, isFocused, tabIndex } = useFocusableItem({\n id: `node-${node.id}`,\n type: 'node',\n ref: nodeRef,\n })\n\n // Determine if node has children:\n // - If explicitly set in data, use that\n // - If expanded and loaded, check the actual children\n // - Otherwise, assume it might have children (show chevron until proven otherwise)\n const hasChildren =\n node.hasChildren === true || (expanded && children !== null ? children.length > 0 : true)\n\n const handleToggle = useCallback(\n (e?: React.SyntheticEvent) => {\n e?.stopPropagation()\n void load()\n onToggle({ id: node.id })\n },\n [load, node.id, onToggle],\n )\n\n const handleSelectClick = useCallback(() => {\n onSelect?.({ id: node.id })\n }, [node.id, onSelect])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.target !== e.currentTarget) {\n return\n }\n switch (e.key) {\n case ' ':\n case 'Enter':\n e.preventDefault()\n e.stopPropagation()\n handleSelectClick()\n break\n case 'ArrowLeft':\n e.preventDefault()\n e.stopPropagation()\n if (hasChildren && expanded) {\n onToggle({ id: node.id })\n }\n break\n case 'ArrowRight':\n e.preventDefault()\n e.stopPropagation()\n if (hasChildren && !expanded) {\n handleToggle()\n }\n break\n }\n },\n [expanded, handleSelectClick, handleToggle, hasChildren, node.id, onToggle],\n )\n\n return (\n <div\n aria-expanded={hasChildren ? expanded : undefined}\n aria-level={depth + 1}\n aria-selected={selected}\n className={baseClass}\n onFocus={(e) => {\n if (e.target === e.currentTarget) {\n handleFocus()\n }\n }}\n onKeyDown={handleKeyDown}\n ref={nodeRef}\n role=\"treeitem\"\n style={{ '--tree-depth': depth } as React.CSSProperties}\n tabIndex={tabIndex}\n >\n <div\n className={[\n `${baseClass}__content`,\n 'sidebar-row',\n selected && `${baseClass}__content--selected`,\n selected && 'sidebar-row--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {hasChildren ? (\n <button\n aria-label={expanded ? t('general:collapse') : t('general:open')}\n className={`${baseClass}__toggle`}\n onClick={handleToggle}\n onMouseDown={(e) => e.preventDefault()}\n tabIndex={-1}\n type=\"button\"\n >\n <ChevronIcon direction={expanded ? 'down' : 'right'} />\n </button>\n ) : (\n <div className={`${baseClass}__toggle-spacer`} />\n )}\n {Boolean(icon) && <span className=\"sidebar-row__icon\">{icon}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -- keyboard handled by parent */}\n <span\n className={`${baseClass}__title sidebar-row__title`}\n onClick={handleSelectClick}\n onMouseDown={(e) => e.preventDefault()}\n title={node.title}\n >\n {node.title}\n </span>\n {isLoading && expanded && (\n <span className={`${baseClass}__loading`}>\n <Spinner loadingText={null} size=\"sm\" />\n </span>\n )}\n </div>\n\n {expanded && children && children.length > 0 && (\n <>\n <div className={`${baseClass}__children`} role=\"group\">\n {children.map((child) => {\n const childData = child as { id: number | string }\n const childId = childData.id\n const childTitle = getDocumentTitle(child, useAsTitle)\n return (\n <TreeNode\n allPossibleTypeValues={allPossibleTypeValues}\n baseFilter={baseFilter}\n cache={cache}\n collectionSlug={collectionSlug}\n depth={depth + 1}\n expandedNodes={expandedNodes}\n filterByCollections={filterByCollections}\n icon={icon}\n key={String(childId)}\n limit={limit}\n node={{\n id: childId,\n hasChildren: true,\n title: childTitle,\n }}\n onSelect={onSelect}\n onToggle={onToggle}\n parentFieldName={parentFieldName}\n selected={String(childId) === String(selectedNodeId)}\n selectedNodeId={selectedNodeId}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n })}\n </div>\n {hasMore && (\n <LoadMore\n currentCount={children.length}\n depth={depth + 1}\n id={`load-more-${node.id}`}\n onLoadMore={handleLoadMore}\n totalDocs={totalDocs}\n />\n )}\n </>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useRef","Spinner","ChevronIcon","useTranslation","LoadMore","useFocusableItem","useTreeFocus","useChildren","DEFAULT_TREE_LIMIT","baseClass","getDocumentTitle","doc","useAsTitle","docId","id","idStr","String","value","TreeNode","allPossibleTypeValues","baseFilter","cache","collectionSlug","depth","expandedNodes","filterByCollections","icon","limit","node","onSelect","onToggle","parentFieldName","selected","selectedNodeId","typeFieldName","t","expanded","has","nodeRef","setFocusedId","children","hasMore","isLoading","load","loadMore","loadMoreFromHook","totalDocs","enabled","parentId","handleLoadMore","newDocs","length","firstNewDoc","window","requestAnimationFrame","handleFocus","tabIndex","type","ref","hasChildren","handleToggle","e","stopPropagation","handleSelectClick","handleKeyDown","target","currentTarget","key","preventDefault","_jsxs","undefined","className","onFocus","onKeyDown","role","style","_jsx","filter","Boolean","join","onClick","onMouseDown","direction","size","title","loadingText","_Fragment","map","child","childData","childId","childTitle","currentCount","onLoadMore"],"sources":["../../../../../src/elements/Hierarchy/Tree/TreeNode/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport type { TreeNodeProps } from '../types.js'\n\nimport { Spinner } from '../../../../elements/Spinner/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { LoadMore } from '../LoadMore/index.js'\nimport { useFocusableItem, useTreeFocus } from '../TreeFocusContext.js'\nimport { useChildren } from '../useChildren.js'\nimport './index.css'\n\nconst DEFAULT_TREE_LIMIT = 10\n\nconst baseClass = 'tree-node'\n\nconst getDocumentTitle = (doc: Record<string, unknown>, useAsTitle: string | undefined): string => {\n const docId: number | string = doc.id as number | string\n const idStr = typeof docId === 'number' ? String(docId) : docId\n\n if (!useAsTitle) {\n return idStr\n }\n\n const value = doc[useAsTitle]\n if (value && (typeof value === 'string' || typeof value === 'number')) {\n return String(value)\n }\n return idStr\n}\n\nexport const TreeNode = ({\n allPossibleTypeValues,\n baseFilter,\n cache,\n collectionSlug,\n depth = 0,\n expandedNodes,\n filterByCollections,\n icon,\n limit = DEFAULT_TREE_LIMIT,\n node,\n onSelect,\n onToggle,\n parentFieldName,\n selected,\n selectedNodeId,\n typeFieldName,\n useAsTitle,\n}: TreeNodeProps) => {\n const { t } = useTranslation()\n const expanded = expandedNodes.has(node.id)\n const nodeRef = useRef<HTMLDivElement>(null)\n const { setFocusedId } = useTreeFocus()\n\n const {\n children,\n hasMore,\n isLoading,\n load,\n loadMore: loadMoreFromHook,\n totalDocs,\n } = useChildren({\n allPossibleTypeValues,\n baseFilter,\n cache,\n collectionSlug,\n enabled: expanded,\n filterByCollections,\n limit,\n parentFieldName,\n parentId: node.id,\n typeFieldName,\n useAsTitle,\n })\n\n const handleLoadMore = React.useCallback(async () => {\n const newDocs = await loadMoreFromHook()\n\n if (newDocs && newDocs.length > 0) {\n const firstNewDoc = newDocs[0]\n const docId: number | string = (firstNewDoc as { id: number | string }).id\n window.requestAnimationFrame(() => {\n setFocusedId(`node-${docId}`)\n })\n }\n }, [loadMoreFromHook, setFocusedId])\n\n const { handleFocus, tabIndex } = useFocusableItem({\n id: `node-${node.id}`,\n type: 'node',\n ref: nodeRef,\n })\n\n // Determine if node has children:\n // - If explicitly set in data, use that\n // - If expanded and loaded, check the actual children\n // - Otherwise, assume it might have children (show chevron until proven otherwise)\n const hasChildren =\n node.hasChildren === true || (expanded && children !== null ? children.length > 0 : true)\n\n const handleToggle = useCallback(\n (e?: React.SyntheticEvent) => {\n e?.stopPropagation()\n void load()\n onToggle({ id: node.id })\n },\n [load, node.id, onToggle],\n )\n\n const handleSelectClick = useCallback(() => {\n onSelect?.({ id: node.id })\n }, [node.id, onSelect])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.target !== e.currentTarget) {\n return\n }\n switch (e.key) {\n case ' ':\n case 'Enter':\n e.preventDefault()\n e.stopPropagation()\n handleSelectClick()\n break\n case 'ArrowLeft':\n e.preventDefault()\n e.stopPropagation()\n if (hasChildren && expanded) {\n onToggle({ id: node.id })\n }\n break\n case 'ArrowRight':\n e.preventDefault()\n e.stopPropagation()\n if (hasChildren && !expanded) {\n handleToggle()\n }\n break\n }\n },\n [expanded, handleSelectClick, handleToggle, hasChildren, node.id, onToggle],\n )\n\n return (\n <div\n aria-expanded={hasChildren ? expanded : undefined}\n aria-level={depth + 1}\n aria-selected={selected}\n className={baseClass}\n onFocus={(e) => {\n if (e.target === e.currentTarget) {\n handleFocus()\n }\n }}\n onKeyDown={handleKeyDown}\n ref={nodeRef}\n role=\"treeitem\"\n style={{ '--tree-depth': depth } as React.CSSProperties}\n tabIndex={tabIndex}\n >\n <div className={`${baseClass}__content-wrapper`}>\n <div\n className={[\n `${baseClass}__content`,\n 'sidebar-row',\n selected && `${baseClass}__content--selected`,\n selected && 'sidebar-row--selected',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {hasChildren && (\n <button\n aria-label={expanded ? t('general:collapse') : t('general:open')}\n className={`${baseClass}__toggle`}\n onClick={handleToggle}\n onMouseDown={(e) => e.preventDefault()}\n tabIndex={-1}\n type=\"button\"\n >\n <ChevronIcon direction={expanded ? 'down' : 'right'} size={16} />\n </button>\n )}\n <button\n className={[\n `${baseClass}__node-trigger`,\n selected && `${baseClass}__node-trigger--selected`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={handleSelectClick}\n onMouseDown={(e) => e.preventDefault()}\n tabIndex={-1}\n title={node.title}\n type=\"button\"\n >\n {Boolean(icon) && <span className=\"sidebar-row__icon\">{icon}</span>}\n <span className={`${baseClass}__title sidebar-row__title`}>{node.title}</span>\n </button>\n {isLoading && expanded && (\n <span className={`${baseClass}__loading`}>\n <Spinner loadingText={null} size=\"sm\" />\n </span>\n )}\n </div>\n </div>\n\n {expanded && children && children.length > 0 && (\n <>\n <div className={`${baseClass}__children`} role=\"group\">\n {children.map((child) => {\n const childData = child as { id: number | string }\n const childId = childData.id\n const childTitle = getDocumentTitle(child, useAsTitle)\n return (\n <TreeNode\n allPossibleTypeValues={allPossibleTypeValues}\n baseFilter={baseFilter}\n cache={cache}\n collectionSlug={collectionSlug}\n depth={depth + 1}\n expandedNodes={expandedNodes}\n filterByCollections={filterByCollections}\n icon={icon}\n key={String(childId)}\n limit={limit}\n node={{\n id: childId,\n hasChildren: true,\n title: childTitle,\n }}\n onSelect={onSelect}\n onToggle={onToggle}\n parentFieldName={parentFieldName}\n selected={String(childId) === String(selectedNodeId)}\n selectedNodeId={selectedNodeId}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n })}\n </div>\n {hasMore && (\n <LoadMore\n currentCount={children.length}\n depth={depth + 1}\n id={`load-more-${node.id}`}\n onLoadMore={handleLoadMore}\n totalDocs={totalDocs}\n />\n )}\n </>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,6 @@
10
10
  --tree-indent: var(--spacer-3);
11
11
  --tree-chevron-width: var(--spacer-3);
12
12
  --tree-chevron-spacing: var(--spacer-2);
13
- --tree-node-padding-y: var(--spacer-1);
14
13
  --tree-node-content-height: var(--text-body-medium-line-height);
15
14
  --tree-row-gap: var(--spacer-1);
16
15
  --tree-font-size: var(--text-body-medium-font-size);
@@ -38,6 +37,7 @@
38
37
  .tree__all-option {
39
38
  gap: var(--spacer-1);
40
39
  padding-left: var(--spacer-2);
40
+ padding-block: var(--spacer-1);
41
41
 
42
42
  .sidebar-row__title {
43
43
  font-weight: var(--text-body-medium-strong-font-weight);
@@ -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;AAgBlF,OAAO,aAAa,CAAA;AAwWpB,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;AAgBlF,OAAO,aAAa,CAAA;AAsYpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAA"}
@@ -45,7 +45,9 @@ const HierarchyTreeInner = ({
45
45
  useAsTitle: useAsTitleProp
46
46
  }) => {
47
47
  const {
48
- moveFocus
48
+ focusedId,
49
+ moveFocus,
50
+ setFocusedId
49
51
  } = useTreeFocus();
50
52
  const router = useRouter();
51
53
  const {
@@ -204,15 +206,26 @@ const HierarchyTreeInner = ({
204
206
  id: id_0
205
207
  });
206
208
  }, [onNodeClick]);
209
+ const rootFocusableIds = useMemo(() => rootNodes ? rootNodes.map(node => `node-${String(node.id)}`) : [], [rootNodes]);
210
+ const firstRootFocusableId = rootFocusableIds[0];
211
+ const lastRootFocusableId = rootFocusableIds[rootFocusableIds.length - 1];
207
212
  const handleTreeKeyDown = useCallback(e => {
208
213
  if (e.key === 'ArrowDown') {
209
214
  e.preventDefault();
215
+ if (focusedId && firstRootFocusableId && lastRootFocusableId && focusedId === lastRootFocusableId) {
216
+ setFocusedId(firstRootFocusableId);
217
+ return;
218
+ }
210
219
  moveFocus('down');
211
220
  } else if (e.key === 'ArrowUp') {
212
221
  e.preventDefault();
222
+ if (focusedId && firstRootFocusableId && lastRootFocusableId && focusedId === firstRootFocusableId) {
223
+ setFocusedId(lastRootFocusableId);
224
+ return;
225
+ }
213
226
  moveFocus('up');
214
227
  }
215
- }, [moveFocus]);
228
+ }, [firstRootFocusableId, focusedId, lastRootFocusableId, moveFocus, setFocusedId]);
216
229
  if (isLoading && !rootNodes) {
217
230
  return /*#__PURE__*/_jsx("div", {
218
231
  className: baseClass,
@@ -302,10 +315,10 @@ const HierarchyTreeInner = ({
302
315
  redirectAfterCreate: false
303
316
  })]
304
317
  })]
305
- }), rootNodes.map(node => {
306
- const nodeId_0 = node.id;
318
+ }), rootNodes.map(node_0 => {
319
+ const nodeId_0 = node_0.id;
307
320
  const nodeIdStr = typeof nodeId_0 === 'number' ? String(nodeId_0) : nodeId_0;
308
- const nodeTitle = getDocumentTitle(node, useAsTitle);
321
+ const nodeTitle = getDocumentTitle(node_0, useAsTitle);
309
322
  return /*#__PURE__*/_jsx(TreeNode, {
310
323
  allPossibleTypeValues: allPossibleTypeValues,
311
324
  baseFilter: baseFilter,