@payloadcms/ui 4.0.0-internal.cea8867 → 4.0.0-internal.d21c039

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (934) hide show
  1. package/dist/css/app.css +122 -0
  2. package/dist/css/colors.css +7 -6
  3. package/dist/css/forms.css +1 -6
  4. package/dist/css/preflight.css +1 -0
  5. package/dist/css/spacing.css +29 -3
  6. package/dist/css/typography.css +158 -14
  7. package/dist/css/z-index.css +10 -0
  8. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  9. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  10. package/dist/elements/APIKeyInput/index.js +27 -29
  11. package/dist/elements/APIKeyInput/index.js.map +1 -1
  12. package/dist/elements/AddNewRelation/index.css +0 -1
  13. package/dist/elements/AppHeader/EditViewWidthSettings/index.css +6 -0
  14. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts +4 -0
  15. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts.map +1 -0
  16. package/dist/elements/AppHeader/EditViewWidthSettings/index.js +96 -0
  17. package/dist/elements/AppHeader/EditViewWidthSettings/index.js.map +1 -0
  18. package/dist/elements/AppHeader/SettingsMenu/index.css +5 -0
  19. package/dist/elements/AppHeader/SettingsMenu/index.d.ts +4 -0
  20. package/dist/elements/AppHeader/SettingsMenu/index.d.ts.map +1 -0
  21. package/dist/elements/AppHeader/SettingsMenu/index.js +59 -0
  22. package/dist/elements/AppHeader/SettingsMenu/index.js.map +1 -0
  23. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts +3 -0
  24. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts.map +1 -0
  25. package/dist/elements/AppHeader/TypeSizeSettings/index.js +58 -0
  26. package/dist/elements/AppHeader/TypeSizeSettings/index.js.map +1 -0
  27. package/dist/elements/AppHeader/index.css +4 -3
  28. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  29. package/dist/elements/AppHeader/index.js +8 -3
  30. package/dist/elements/AppHeader/index.js.map +1 -1
  31. package/dist/elements/ArrayAction/index.d.ts +3 -0
  32. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  33. package/dist/elements/ArrayAction/index.js +83 -29
  34. package/dist/elements/ArrayAction/index.js.map +1 -1
  35. package/dist/elements/Autosave/index.d.ts.map +1 -1
  36. package/dist/elements/Autosave/index.js +2 -3
  37. package/dist/elements/Autosave/index.js.map +1 -1
  38. package/dist/elements/Banner/index.css +4 -0
  39. package/dist/elements/Banner/index.d.ts.map +1 -1
  40. package/dist/elements/Banner/index.js +1 -0
  41. package/dist/elements/Banner/index.js.map +1 -1
  42. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  43. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  44. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  45. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  46. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  47. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  48. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  49. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  50. package/dist/elements/BulkUpload/FileSidebar/index.css +5 -0
  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 +10 -17
  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 +19 -13
  57. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  58. package/dist/elements/BulkUpload/index.css +2 -0
  59. package/dist/elements/Button/index.css +2 -2
  60. package/dist/elements/Button/index.d.ts.map +1 -1
  61. package/dist/elements/Button/index.js +2 -0
  62. package/dist/elements/Button/index.js.map +1 -1
  63. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  64. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  65. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  66. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  67. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  68. package/dist/elements/ClipboardAction/index.js +17 -1
  69. package/dist/elements/ClipboardAction/index.js.map +1 -1
  70. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  71. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  72. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  73. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  74. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  75. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  76. package/dist/elements/ClipboardAction/types.js.map +1 -1
  77. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  78. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  79. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  80. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  81. package/dist/elements/CodeEditor/index.css +0 -5
  82. package/dist/elements/Collapsible/index.css +1 -0
  83. package/dist/elements/CommandPalette/index.css +0 -7
  84. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  85. package/dist/elements/CopyLocaleData/index.js +8 -9
  86. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  87. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  88. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  89. package/dist/elements/CopyToClipboard/index.js +10 -8
  90. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  91. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  92. package/dist/elements/CreateDocumentButton/index.js +4 -1
  93. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  94. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  95. package/dist/elements/DatePicker/DatePicker.js +1 -0
  96. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  97. package/dist/elements/DatePicker/index.css +3 -1
  98. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  99. package/dist/elements/DeleteDocument/index.js +16 -1
  100. package/dist/elements/DeleteDocument/index.js.map +1 -1
  101. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  102. package/dist/elements/DeleteMany/index.js +2 -3
  103. package/dist/elements/DeleteMany/index.js.map +1 -1
  104. package/dist/elements/Dialog/index.css +1 -0
  105. package/dist/elements/DocumentControls/index.css +1 -0
  106. package/dist/elements/DocumentFields/index.css +2 -0
  107. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +4 -1
  108. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -1
  109. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  110. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  111. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  112. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  113. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  114. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  115. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  116. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  117. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  118. package/dist/elements/DocumentHeader/index.css +22 -2
  119. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  120. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  121. package/dist/elements/DocumentHeader/index.js +6 -3
  122. package/dist/elements/DocumentHeader/index.js.map +1 -1
  123. package/dist/elements/Drawer/index.css +10 -4
  124. package/dist/elements/Dropzone/index.css +10 -4
  125. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  126. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  127. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  128. package/dist/elements/DuplicateDocument/index.js +2 -3
  129. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  130. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  131. package/dist/elements/EditMany/DrawerContent.js +4 -5
  132. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  133. package/dist/elements/EditUpload/index.css +1 -1
  134. package/dist/elements/FieldDiffContainer/index.css +1 -0
  135. package/dist/elements/FieldDiffLabel/index.css +1 -0
  136. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  137. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  138. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  139. package/dist/elements/FileDetails/StaticFileDetails/index.css +10 -9
  140. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  141. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  142. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  143. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  144. package/dist/elements/FileManager/index.css +35 -52
  145. package/dist/elements/FileManager/index.d.ts +1 -1
  146. package/dist/elements/FileManager/index.d.ts.map +1 -1
  147. package/dist/elements/FileManager/index.js +385 -282
  148. package/dist/elements/FileManager/index.js.map +1 -1
  149. package/dist/elements/HTMLDiff/index.css +1 -0
  150. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  151. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  152. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  153. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  154. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  155. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  156. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  157. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  158. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  159. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  160. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  161. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  162. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  163. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  164. package/dist/elements/IDLabel/index.css +6 -0
  165. package/dist/elements/IDLabel/index.d.ts +1 -1
  166. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  167. package/dist/elements/IDLabel/index.js +16 -21
  168. package/dist/elements/IDLabel/index.js.map +1 -1
  169. package/dist/elements/InputStepper/index.css +0 -1
  170. package/dist/elements/ItemsDrawer/index.css +3 -0
  171. package/dist/elements/ListControls/index.css +10 -4
  172. package/dist/elements/ListControls/index.d.ts.map +1 -1
  173. package/dist/elements/ListControls/index.js +7 -1
  174. package/dist/elements/ListControls/index.js.map +1 -1
  175. package/dist/elements/ListControls/types.d.ts +3 -1
  176. package/dist/elements/ListControls/types.d.ts.map +1 -1
  177. package/dist/elements/ListControls/types.js.map +1 -1
  178. package/dist/elements/ListControlsBar/index.css +8 -3
  179. package/dist/elements/ListControlsBar/index.js +4 -1
  180. package/dist/elements/ListControlsBar/index.js.map +1 -1
  181. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  182. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  183. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  184. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  185. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  186. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  187. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  188. package/dist/elements/ListHeader/index.css +6 -1
  189. package/dist/elements/LivePreview/Window/index.css +1 -0
  190. package/dist/elements/LivePreview/Window/index.js +1 -1
  191. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  192. package/dist/elements/Localizer/index.js +1 -1
  193. package/dist/elements/Localizer/index.js.map +1 -1
  194. package/dist/elements/Locked/index.css +0 -8
  195. package/dist/elements/Locked/index.d.ts.map +1 -1
  196. package/dist/elements/Locked/index.js +70 -64
  197. package/dist/elements/Locked/index.js.map +1 -1
  198. package/dist/elements/MiniCarousel/index.css +39 -37
  199. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  200. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  201. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  202. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  203. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  204. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  205. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +5 -3
  206. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  207. package/dist/elements/Nav/index.css +2 -0
  208. package/dist/elements/NavGroup/index.css +0 -1
  209. package/dist/elements/PageControls/index.css +1 -0
  210. package/dist/elements/PillSelector/index.css +1 -0
  211. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  212. package/dist/elements/Popup/index.js +1 -1
  213. package/dist/elements/Popup/index.js.map +1 -1
  214. package/dist/elements/PreviewButton/index.d.ts +1 -2
  215. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  216. package/dist/elements/PreviewButton/index.js +11 -5
  217. package/dist/elements/PreviewButton/index.js.map +1 -1
  218. package/dist/elements/PreviewSizes/index.css +10 -9
  219. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  220. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  221. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  222. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  223. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  224. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  225. package/dist/elements/PublishButton/index.css +1 -0
  226. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  227. package/dist/elements/PublishButton/index.js +16 -31
  228. package/dist/elements/PublishButton/index.js.map +1 -1
  229. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  230. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  231. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  232. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  233. package/dist/elements/QueryPresets/QueryPresetBar/index.js +15 -4
  234. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  235. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  236. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  237. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts +7 -0
  238. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -0
  239. package/dist/elements/ReactSelect/DefaultMenuPortal.js +120 -0
  240. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -0
  241. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  242. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  243. package/dist/elements/ReactSelect/getMenuListStyles.d.ts +1 -1
  244. package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -1
  245. package/dist/elements/ReactSelect/getMenuListStyles.js +13 -5
  246. package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -1
  247. package/dist/elements/ReactSelect/getMenuStyles.d.ts +10 -0
  248. package/dist/elements/ReactSelect/getMenuStyles.d.ts.map +1 -0
  249. package/dist/elements/ReactSelect/getMenuStyles.js +21 -0
  250. package/dist/elements/ReactSelect/getMenuStyles.js.map +1 -0
  251. package/dist/elements/ReactSelect/index.css +7 -3
  252. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  253. package/dist/elements/ReactSelect/index.js +24 -101
  254. package/dist/elements/ReactSelect/index.js.map +1 -1
  255. package/dist/elements/ReactSelect/types.d.ts +1 -2
  256. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  257. package/dist/elements/ReactSelect/types.js.map +1 -1
  258. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  259. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  260. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  261. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  262. package/dist/elements/RelationshipTable/index.css +0 -2
  263. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  264. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  265. package/dist/elements/RelationshipTable/index.js +41 -5
  266. package/dist/elements/RelationshipTable/index.js.map +1 -1
  267. package/dist/elements/RenderTitle/index.css +16 -0
  268. package/dist/elements/RenderTitle/index.d.ts +1 -0
  269. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  270. package/dist/elements/RenderTitle/index.js +36 -18
  271. package/dist/elements/RenderTitle/index.js.map +1 -1
  272. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  273. package/dist/elements/RestoreMany/index.js +2 -3
  274. package/dist/elements/RestoreMany/index.js.map +1 -1
  275. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  276. package/dist/elements/SaveDraftButton/index.js +2 -3
  277. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  278. package/dist/elements/SelectRow/index.d.ts +4 -3
  279. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  280. package/dist/elements/SelectRow/index.js +10 -7
  281. package/dist/elements/SelectRow/index.js.map +1 -1
  282. package/dist/elements/SidebarToggle/index.css +0 -17
  283. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  284. package/dist/elements/SortColumn/index.js +42 -38
  285. package/dist/elements/SortColumn/index.js.map +1 -1
  286. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  287. package/dist/elements/SortHeader/index.js +29 -26
  288. package/dist/elements/SortHeader/index.js.map +1 -1
  289. package/dist/elements/Status/index.d.ts.map +1 -1
  290. package/dist/elements/Status/index.js +2 -3
  291. package/dist/elements/Status/index.js.map +1 -1
  292. package/dist/elements/StepNav/index.css +64 -14
  293. package/dist/elements/StepNav/index.d.ts.map +1 -1
  294. package/dist/elements/StepNav/index.js +143 -69
  295. package/dist/elements/StepNav/index.js.map +1 -1
  296. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  297. package/dist/elements/Table/DefaultCell/index.js +3 -11
  298. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  299. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  300. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  301. package/dist/elements/Table/OrderableRow.js +17 -1
  302. package/dist/elements/Table/OrderableRow.js.map +1 -1
  303. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  304. package/dist/elements/Table/OrderableTable.js +20 -4
  305. package/dist/elements/Table/OrderableTable.js.map +1 -1
  306. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  307. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  308. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  309. package/dist/elements/Table/index.css +2 -0
  310. package/dist/elements/TableSection/index.css +1 -1
  311. package/dist/elements/Tabs/index.css +1 -0
  312. package/dist/elements/Thumbnail/index.css +1 -0
  313. package/dist/elements/Thumbnail/index.d.ts +1 -1
  314. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  315. package/dist/elements/Thumbnail/index.js.map +1 -1
  316. package/dist/elements/TimezonePicker/index.css +1 -0
  317. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  318. package/dist/elements/TimezonePicker/index.js +5 -1
  319. package/dist/elements/TimezonePicker/index.js.map +1 -1
  320. package/dist/elements/Tooltip/index.css +22 -34
  321. package/dist/elements/Tooltip/index.d.ts +11 -3
  322. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  323. package/dist/elements/Tooltip/index.js +151 -85
  324. package/dist/elements/Tooltip/index.js.map +1 -1
  325. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  326. package/dist/elements/UnpublishButton/index.js +3 -4
  327. package/dist/elements/UnpublishButton/index.js.map +1 -1
  328. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  329. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  330. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  331. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  332. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  333. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  334. package/dist/elements/Upload/index.css +39 -37
  335. package/dist/elements/Upload/index.d.ts.map +1 -1
  336. package/dist/elements/Upload/index.js +37 -99
  337. package/dist/elements/Upload/index.js.map +1 -1
  338. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  339. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  340. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  341. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  342. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  343. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  344. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  345. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  346. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  347. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  348. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  349. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  350. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  351. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  352. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  353. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  354. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  355. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  356. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  357. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  358. package/dist/elements/WhereBuilder/index.css +2 -0
  359. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  360. package/dist/elements/WhereBuilder/index.js +15 -4
  361. package/dist/elements/WhereBuilder/index.js.map +1 -1
  362. package/dist/exports/client/index.d.ts +7 -1
  363. package/dist/exports/client/index.d.ts.map +1 -1
  364. package/dist/exports/client/index.js +1 -1
  365. package/dist/exports/client/index.js.map +3 -3
  366. package/dist/exports/layouts.d.ts +1 -0
  367. package/dist/exports/layouts.d.ts.map +1 -1
  368. package/dist/exports/layouts.js +1 -0
  369. package/dist/exports/layouts.js.map +1 -1
  370. package/dist/exports/rsc/index.d.ts +2 -0
  371. package/dist/exports/rsc/index.d.ts.map +1 -1
  372. package/dist/exports/rsc/index.js +2 -0
  373. package/dist/exports/rsc/index.js.map +1 -1
  374. package/dist/exports/shared/index.d.ts +1 -0
  375. package/dist/exports/shared/index.d.ts.map +1 -1
  376. package/dist/exports/shared/index.js +2 -2
  377. package/dist/exports/shared/index.js.map +4 -4
  378. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  379. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  380. package/dist/fields/Array/ArrayRow.js +99 -160
  381. package/dist/fields/Array/ArrayRow.js.map +1 -1
  382. package/dist/fields/Array/index.css +1 -0
  383. package/dist/fields/Array/index.d.ts.map +1 -1
  384. package/dist/fields/Array/index.js +40 -13
  385. package/dist/fields/Array/index.js.map +1 -1
  386. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  387. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  388. package/dist/fields/Blocks/BlockRow.js +136 -195
  389. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  390. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  391. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  392. package/dist/fields/Blocks/RowActions.js +26 -20
  393. package/dist/fields/Blocks/RowActions.js.map +1 -1
  394. package/dist/fields/Blocks/index.css +1 -0
  395. package/dist/fields/Blocks/index.d.ts.map +1 -1
  396. package/dist/fields/Blocks/index.js +40 -13
  397. package/dist/fields/Blocks/index.js.map +1 -1
  398. package/dist/fields/Checkbox/Input.d.ts +4 -2
  399. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  400. package/dist/fields/Checkbox/Input.js +32 -26
  401. package/dist/fields/Checkbox/Input.js.map +1 -1
  402. package/dist/fields/Checkbox/index.css +62 -117
  403. package/dist/fields/FieldDescription/index.css +5 -0
  404. package/dist/fields/FieldError/index.css +0 -9
  405. package/dist/fields/FieldError/index.d.ts.map +1 -1
  406. package/dist/fields/FieldError/index.js +19 -9
  407. package/dist/fields/FieldError/index.js.map +1 -1
  408. package/dist/fields/FieldLabel/index.css +22 -28
  409. package/dist/fields/FieldLabel/index.js +7 -8
  410. package/dist/fields/FieldLabel/index.js.map +1 -1
  411. package/dist/fields/Group/index.css +11 -4
  412. package/dist/fields/Join/index.css +9 -0
  413. package/dist/fields/Join/index.d.ts.map +1 -1
  414. package/dist/fields/Join/index.js +13 -9
  415. package/dist/fields/Join/index.js.map +1 -1
  416. package/dist/fields/RadioGroup/Radio/index.css +42 -19
  417. package/dist/fields/RadioGroup/index.css +2 -27
  418. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  419. package/dist/fields/Relationship/Input.js +34 -17
  420. package/dist/fields/Relationship/Input.js.map +1 -1
  421. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  422. package/dist/fields/Row/index.css +2 -0
  423. package/dist/fields/Slug/index.css +0 -1
  424. package/dist/fields/Slug/index.d.ts.map +1 -1
  425. package/dist/fields/Slug/index.js +74 -111
  426. package/dist/fields/Slug/index.js.map +1 -1
  427. package/dist/fields/Tabs/index.css +9 -0
  428. package/dist/fields/Textarea/index.css +1 -1
  429. package/dist/fields/Upload/Input.d.ts.map +1 -1
  430. package/dist/fields/Upload/Input.js +46 -19
  431. package/dist/fields/Upload/Input.js.map +1 -1
  432. package/dist/fields/Upload/index.css +19 -4
  433. package/dist/fields/shared/index.d.ts +1 -1
  434. package/dist/fields/shared/index.d.ts.map +1 -1
  435. package/dist/fields/shared/index.js.map +1 -1
  436. package/dist/forms/Form/context.d.ts +3 -1
  437. package/dist/forms/Form/context.d.ts.map +1 -1
  438. package/dist/forms/Form/context.js +3 -1
  439. package/dist/forms/Form/context.js.map +1 -1
  440. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  441. package/dist/forms/Form/fieldReducer.js +3 -1
  442. package/dist/forms/Form/fieldReducer.js.map +1 -1
  443. package/dist/forms/Form/index.d.ts.map +1 -1
  444. package/dist/forms/Form/index.js +27 -22
  445. package/dist/forms/Form/index.js.map +1 -1
  446. package/dist/forms/Form/types.d.ts +1 -1
  447. package/dist/forms/Form/types.d.ts.map +1 -1
  448. package/dist/forms/Form/types.js.map +1 -1
  449. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  450. package/dist/forms/NullifyField/index.js +2 -3
  451. package/dist/forms/NullifyField/index.js.map +1 -1
  452. package/dist/forms/RenderFields/index.css +10 -2
  453. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  454. package/dist/forms/WatchChildErrors/index.js +2 -2
  455. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  456. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  457. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -1
  458. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  459. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  460. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -5
  461. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  462. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  463. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  464. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  465. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  466. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  467. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  468. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  469. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  470. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  471. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  472. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  473. package/dist/hooks/useControllableState.js +3 -3
  474. package/dist/hooks/useControllableState.js.map +1 -1
  475. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  476. package/dist/hooks/usePayloadAPI.js +2 -3
  477. package/dist/hooks/usePayloadAPI.js.map +1 -1
  478. package/dist/icons/Edit/index.d.ts +0 -1
  479. package/dist/icons/Edit/index.d.ts.map +1 -1
  480. package/dist/icons/Edit/index.js +4 -4
  481. package/dist/icons/Edit/index.js.map +1 -1
  482. package/dist/layouts/Root/index.d.ts +1 -1
  483. package/dist/layouts/Root/index.d.ts.map +1 -1
  484. package/dist/layouts/Root/index.js +30 -7
  485. package/dist/layouts/Root/index.js.map +1 -1
  486. package/dist/layouts/Root/viewport.d.ts +1 -0
  487. package/dist/layouts/Root/viewport.d.ts.map +1 -1
  488. package/dist/layouts/Root/viewport.js +4 -1
  489. package/dist/layouts/Root/viewport.js.map +1 -1
  490. package/dist/providers/Actions/index.d.ts +1 -0
  491. package/dist/providers/Actions/index.d.ts.map +1 -1
  492. package/dist/providers/Actions/index.js +43 -11
  493. package/dist/providers/Actions/index.js.map +1 -1
  494. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  495. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  496. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  497. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  498. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  499. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  500. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  501. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  502. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  503. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  504. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  505. package/dist/providers/Auth/authSessionRequests.js +119 -0
  506. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  507. package/dist/providers/Auth/index.d.ts +2 -56
  508. package/dist/providers/Auth/index.d.ts.map +1 -1
  509. package/dist/providers/Auth/index.js +283 -135
  510. package/dist/providers/Auth/index.js.map +1 -1
  511. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  512. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  513. package/dist/providers/Auth/sessionActivity.js +49 -0
  514. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  515. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  516. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  517. package/dist/providers/Auth/sessionTiming.js +18 -0
  518. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  519. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  520. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  521. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  522. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  523. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  524. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  525. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  526. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  527. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  528. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  529. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  530. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  531. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  532. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  533. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  534. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  535. package/dist/providers/Auth/types.d.ts +65 -0
  536. package/dist/providers/Auth/types.d.ts.map +1 -0
  537. package/dist/providers/Auth/types.js +2 -0
  538. package/dist/providers/Auth/types.js.map +1 -0
  539. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  540. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  541. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  542. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  543. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  544. package/dist/providers/DocumentInfo/index.js +32 -22
  545. package/dist/providers/DocumentInfo/index.js.map +1 -1
  546. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  547. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  548. package/dist/providers/DocumentTitle/index.js +2 -0
  549. package/dist/providers/DocumentTitle/index.js.map +1 -1
  550. package/dist/providers/Embed/index.d.ts +24 -0
  551. package/dist/providers/Embed/index.d.ts.map +1 -0
  552. package/dist/providers/Embed/index.js +105 -0
  553. package/dist/providers/Embed/index.js.map +1 -0
  554. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  555. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  556. package/dist/providers/FormErrorHandler/index.js +6 -0
  557. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  558. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  559. package/dist/providers/LivePreview/index.js +13 -6
  560. package/dist/providers/LivePreview/index.js.map +1 -1
  561. package/dist/providers/Locale/index.d.ts +1 -5
  562. package/dist/providers/Locale/index.d.ts.map +1 -1
  563. package/dist/providers/Locale/index.js +64 -138
  564. package/dist/providers/Locale/index.js.map +1 -1
  565. package/dist/providers/Root/index.d.ts +6 -1
  566. package/dist/providers/Root/index.d.ts.map +1 -1
  567. package/dist/providers/Root/index.js +49 -31
  568. package/dist/providers/Root/index.js.map +1 -1
  569. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  570. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  571. package/dist/providers/RouteTransition/index.d.ts +2 -0
  572. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  573. package/dist/providers/RouteTransition/index.js +42 -14
  574. package/dist/providers/RouteTransition/index.js.map +1 -1
  575. package/dist/providers/Selection/index.d.ts.map +1 -1
  576. package/dist/providers/Selection/index.js +2 -3
  577. package/dist/providers/Selection/index.js.map +1 -1
  578. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  579. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  580. package/dist/providers/ServerFunctions/index.js +15 -0
  581. package/dist/providers/ServerFunctions/index.js.map +1 -1
  582. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  583. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  584. package/dist/providers/SidebarTabs/index.js.map +1 -1
  585. package/dist/providers/TableColumns/buildColumnState/index.js +1 -2
  586. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  587. package/dist/providers/Theme/index.d.ts +25 -1
  588. package/dist/providers/Theme/index.d.ts.map +1 -1
  589. package/dist/providers/Theme/index.js +331 -90
  590. package/dist/providers/Theme/index.js.map +1 -1
  591. package/dist/providers/Theme/shared.d.ts +8 -0
  592. package/dist/providers/Theme/shared.d.ts.map +1 -1
  593. package/dist/providers/Theme/shared.js +6 -0
  594. package/dist/providers/Theme/shared.js.map +1 -1
  595. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  596. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  597. package/dist/providers/UploadHandlers/index.js +102 -42
  598. package/dist/providers/UploadHandlers/index.js.map +1 -1
  599. package/dist/styles.css +208 -30
  600. package/dist/templates/Default/Wrapper/index.css +2 -0
  601. package/dist/templates/Default/index.css +1 -0
  602. package/dist/templates/Default/index.d.ts +1 -0
  603. package/dist/templates/Default/index.d.ts.map +1 -1
  604. package/dist/templates/Default/index.js +2 -0
  605. package/dist/templates/Default/index.js.map +1 -1
  606. package/dist/utilities/buildFormState.d.ts.map +1 -1
  607. package/dist/utilities/buildFormState.js +6 -2
  608. package/dist/utilities/buildFormState.js.map +1 -1
  609. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  610. package/dist/utilities/combineFieldLabel.js +5 -1
  611. package/dist/utilities/combineFieldLabel.js.map +1 -1
  612. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  613. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  614. package/dist/utilities/formatAbsoluteURL.js +18 -8
  615. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  616. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  617. package/dist/utilities/formatMetadata.js +0 -5
  618. package/dist/utilities/formatMetadata.js.map +1 -1
  619. package/dist/utilities/generateFieldID.d.ts +1 -1
  620. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  621. package/dist/utilities/generateFieldID.js +2 -2
  622. package/dist/utilities/generateFieldID.js.map +1 -1
  623. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  624. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  625. package/dist/utilities/getFilesFromClipboard.js +49 -0
  626. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  627. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  628. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  629. package/dist/utilities/getHasScheduledPublish.js +2 -5
  630. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  631. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  632. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  633. package/dist/utilities/getRequestEmbed.js +10 -0
  634. package/dist/utilities/getRequestEmbed.js.map +1 -0
  635. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  636. package/dist/utilities/handleAuthRedirect.js +4 -1
  637. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  638. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  639. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  640. package/dist/utilities/handleServerFunctions.js +21 -39
  641. package/dist/utilities/handleServerFunctions.js.map +1 -1
  642. package/dist/utilities/initReq.d.ts.map +1 -1
  643. package/dist/utilities/initReq.js +40 -5
  644. package/dist/utilities/initReq.js.map +1 -1
  645. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  646. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  647. package/dist/utilities/isAbsoluteURL.js +15 -0
  648. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  649. package/dist/utilities/isHttpURL.d.ts +3 -0
  650. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  651. package/dist/utilities/isHttpURL.js +12 -0
  652. package/dist/utilities/isHttpURL.js.map +1 -0
  653. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  654. package/dist/utilities/isPathMatchingRoute.js +7 -5
  655. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  656. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  657. package/dist/utilities/isPublicAdminRoute.js +9 -6
  658. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  659. package/dist/utilities/renderTable.d.ts.map +1 -1
  660. package/dist/utilities/renderTable.js +18 -2
  661. package/dist/utilities/renderTable.js.map +1 -1
  662. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  663. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  664. package/dist/utilities/schedulePublishHandler.js +72 -5
  665. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  666. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  667. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  668. package/dist/utilities/serverFunctionRegistry.js +27 -8
  669. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  670. package/dist/utilities/slugify.d.ts.map +1 -1
  671. package/dist/utilities/slugify.js +52 -6
  672. package/dist/utilities/slugify.js.map +1 -1
  673. package/dist/views/API/index.client.d.ts.map +1 -1
  674. package/dist/views/API/index.client.js +2 -3
  675. package/dist/views/API/index.client.js.map +1 -1
  676. package/dist/views/API/index.css +9 -0
  677. package/dist/views/Account/index.d.ts +1 -1
  678. package/dist/views/Account/index.d.ts.map +1 -1
  679. package/dist/views/Account/index.js +8 -5
  680. package/dist/views/Account/index.js.map +1 -1
  681. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  682. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  683. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  684. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  685. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  686. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  687. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  688. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  689. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  690. package/dist/views/Dashboard/Default/ModularDashboard/index.css +31 -144
  691. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  692. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  693. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  694. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  695. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  696. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  697. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  698. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  699. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  700. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +12 -10
  701. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  702. package/dist/views/Dashboard/index.d.ts.map +1 -1
  703. package/dist/views/Dashboard/index.js +2 -3
  704. package/dist/views/Dashboard/index.js.map +1 -1
  705. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  706. package/dist/views/Document/handleServerFunction.js +2 -0
  707. package/dist/views/Document/handleServerFunction.js.map +1 -1
  708. package/dist/views/Document/index.d.ts +1 -1
  709. package/dist/views/Document/index.d.ts.map +1 -1
  710. package/dist/views/Document/index.js +10 -6
  711. package/dist/views/Document/index.js.map +1 -1
  712. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  713. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  714. package/dist/views/Document/renderDocumentSlots.js +7 -4
  715. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  716. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  717. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  718. package/dist/views/Edit/Auth/APIKey.js +233 -59
  719. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  720. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  721. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  722. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  723. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  724. package/dist/views/Edit/Auth/index.css +91 -0
  725. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  726. package/dist/views/Edit/Auth/index.js +10 -28
  727. package/dist/views/Edit/Auth/index.js.map +1 -1
  728. package/dist/views/Edit/Auth/types.d.ts +3 -1
  729. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  730. package/dist/views/Edit/Auth/types.js.map +1 -1
  731. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  732. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  733. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  734. package/dist/views/Edit/index.css +80 -53
  735. package/dist/views/Edit/index.d.ts.map +1 -1
  736. package/dist/views/Edit/index.js +16 -2
  737. package/dist/views/Edit/index.js.map +1 -1
  738. package/dist/views/Edit/useEditViewWidth.d.ts +8 -0
  739. package/dist/views/Edit/useEditViewWidth.d.ts.map +1 -0
  740. package/dist/views/Edit/useEditViewWidth.js +56 -0
  741. package/dist/views/Edit/useEditViewWidth.js.map +1 -0
  742. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  743. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  744. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  745. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  746. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  747. package/dist/views/ForgotPassword/index.js +2 -11
  748. package/dist/views/ForgotPassword/index.js.map +1 -1
  749. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  750. package/dist/views/HierarchyList/index.css +17 -1
  751. package/dist/views/List/ListHeader/index.css +6 -0
  752. package/dist/views/List/ListHeader/index.d.ts +1 -11
  753. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  754. package/dist/views/List/ListHeader/index.js +3 -9
  755. package/dist/views/List/ListHeader/index.js.map +1 -1
  756. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  757. package/dist/views/List/handleServerFunction.js +3 -1
  758. package/dist/views/List/handleServerFunction.js.map +1 -1
  759. package/dist/views/List/index.client.d.ts.map +1 -1
  760. package/dist/views/List/index.client.js +3 -16
  761. package/dist/views/List/index.client.js.map +1 -1
  762. package/dist/views/List/index.css +20 -1
  763. package/dist/views/List/index.d.ts.map +1 -1
  764. package/dist/views/List/index.js +6 -1
  765. package/dist/views/List/index.js.map +1 -1
  766. package/dist/views/Logout/index.d.ts.map +1 -1
  767. package/dist/views/Logout/index.js +11 -0
  768. package/dist/views/Logout/index.js.map +1 -1
  769. package/dist/views/NotFound/client.d.ts +2 -0
  770. package/dist/views/NotFound/client.d.ts.map +1 -0
  771. package/dist/views/NotFound/client.js +4 -0
  772. package/dist/views/NotFound/client.js.map +1 -0
  773. package/dist/views/NotFound/page.d.ts.map +1 -1
  774. package/dist/views/NotFound/page.js +4 -3
  775. package/dist/views/NotFound/page.js.map +1 -1
  776. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  777. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  778. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  779. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  780. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  781. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  782. package/dist/views/Root/index.d.ts +12 -1
  783. package/dist/views/Root/index.d.ts.map +1 -1
  784. package/dist/views/Root/index.js +42 -25
  785. package/dist/views/Root/index.js.map +1 -1
  786. package/dist/views/Verify/index.d.ts +1 -1
  787. package/dist/views/Verify/index.d.ts.map +1 -1
  788. package/dist/views/Verify/index.js +4 -4
  789. package/dist/views/Verify/index.js.map +1 -1
  790. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  791. package/dist/views/Version/Default/SetStepNav.js +10 -13
  792. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  793. package/dist/views/Version/Default/index.css +29 -9
  794. package/dist/views/Version/Default/index.d.ts.map +1 -1
  795. package/dist/views/Version/Default/index.js +16 -13
  796. package/dist/views/Version/Default/index.js.map +1 -1
  797. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  798. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  799. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  800. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  801. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  802. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  803. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  804. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  805. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  806. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  807. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  808. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  809. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  810. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  811. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  812. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  813. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  814. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  815. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  816. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  817. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  818. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  819. package/dist/views/Version/Restore/index.js +9 -6
  820. package/dist/views/Version/Restore/index.js.map +1 -1
  821. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  822. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  823. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  824. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  825. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  826. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  827. package/dist/views/Versions/index.css +7 -0
  828. package/dist/widgets/CollectionCards/index.client.js +1 -1
  829. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  830. package/dist/widgets/CollectionCards/index.css +40 -35
  831. package/dist/widgets/CollectionCards/index.js +1 -1
  832. package/dist/widgets/CollectionCards/index.js.map +1 -1
  833. package/dist/widgets/RecentlyViewed/DocumentActivity/index.css +184 -0
  834. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts +5 -0
  835. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts.map +1 -0
  836. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js +225 -0
  837. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js.map +1 -0
  838. package/dist/widgets/RecentlyViewed/DocumentItem/index.css +180 -0
  839. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts +11 -0
  840. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts.map +1 -0
  841. package/dist/widgets/RecentlyViewed/DocumentItem/index.js +104 -0
  842. package/dist/widgets/RecentlyViewed/DocumentItem/index.js.map +1 -0
  843. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts +10 -0
  844. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts.map +1 -0
  845. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js +85 -0
  846. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js.map +1 -0
  847. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts +7 -0
  848. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts.map +1 -0
  849. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js +206 -0
  850. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js.map +1 -0
  851. package/dist/widgets/RecentlyViewed/index.d.ts +3 -5
  852. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  853. package/dist/widgets/RecentlyViewed/index.js +10 -140
  854. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  855. package/dist/widgets/RecentlyViewed/shared.d.ts +38 -0
  856. package/dist/widgets/RecentlyViewed/shared.d.ts.map +1 -0
  857. package/dist/widgets/RecentlyViewed/shared.js +70 -0
  858. package/dist/widgets/RecentlyViewed/shared.js.map +1 -0
  859. package/dist/widgets/UploadDropzone/index.client.d.ts +7 -0
  860. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -0
  861. package/dist/widgets/UploadDropzone/index.client.js +134 -0
  862. package/dist/widgets/UploadDropzone/index.client.js.map +1 -0
  863. package/dist/widgets/UploadDropzone/index.css +50 -0
  864. package/dist/widgets/UploadDropzone/index.d.ts +8 -0
  865. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -0
  866. package/dist/widgets/UploadDropzone/index.js +29 -0
  867. package/dist/widgets/UploadDropzone/index.js.map +1 -0
  868. package/dist/widgets/Welcome/index.css +13 -0
  869. package/dist/widgets/Welcome/index.d.ts +5 -0
  870. package/dist/widgets/Welcome/index.d.ts.map +1 -0
  871. package/dist/widgets/Welcome/index.js +26 -0
  872. package/dist/widgets/Welcome/index.js.map +1 -0
  873. package/dist/widgets/WidgetIcon/assets/images.svg +3 -0
  874. package/dist/widgets/WidgetIcon/assets/pin-solid.svg +3 -0
  875. package/dist/widgets/WidgetIcon/assets/pin.svg +3 -0
  876. package/dist/widgets/WidgetIcon/assets/table.svg +3 -0
  877. package/dist/widgets/WidgetIcon/index.css +23 -0
  878. package/dist/widgets/WidgetIcon/index.d.ts +6 -0
  879. package/dist/widgets/WidgetIcon/index.d.ts.map +1 -0
  880. package/dist/widgets/WidgetIcon/index.js +10 -0
  881. package/dist/widgets/WidgetIcon/index.js.map +1 -0
  882. package/package.json +14 -12
  883. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  884. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  885. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  886. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  887. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  888. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  889. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  890. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  891. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  892. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  893. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  894. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  895. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  896. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  897. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  898. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  899. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  900. package/dist/layouts/Root/index.spec.js +0 -20
  901. package/dist/layouts/Root/index.spec.js.map +0 -1
  902. package/dist/scss/app.scss +0 -183
  903. package/dist/scss/colors.scss +0 -191
  904. package/dist/scss/custom.css +0 -1
  905. package/dist/scss/queries.scss +0 -27
  906. package/dist/scss/styles.scss +0 -9
  907. package/dist/scss/svg.scss +0 -10
  908. package/dist/scss/toastify.scss +0 -61
  909. package/dist/scss/vars.scss +0 -192
  910. package/dist/scss/z-index.scss +0 -9
  911. package/dist/utilities/appendCacheTag.spec.js +0 -34
  912. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  913. package/dist/utilities/formatMetadata.spec.js +0 -83
  914. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  915. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  916. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  917. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  918. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  919. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  920. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  921. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  922. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  923. package/dist/utilities/recentlyViewed.spec.js +0 -92
  924. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  925. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  926. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  927. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  928. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  929. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  930. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  931. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  932. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  933. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  934. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -7,6 +7,7 @@ import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react
7
7
  import { useEffectEvent } from '../../hooks/useEffectEvent.js';
8
8
  import { useAuth } from '../../providers/Auth/index.js';
9
9
  import { useConfig } from '../../providers/Config/index.js';
10
+ import { useDocumentEvents } from '../../providers/DocumentEvents/index.js';
10
11
  import { ListQueryProvider } from '../../providers/ListQuery/index.js';
11
12
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
12
13
  import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
@@ -25,6 +26,7 @@ export const RelationshipTable = props => {
25
26
  AfterInput,
26
27
  allowCreate = true,
27
28
  BeforeInput,
29
+ Description,
28
30
  disableTable = false,
29
31
  field,
30
32
  fieldPath,
@@ -177,12 +179,46 @@ export const RelationshipTable = props => {
177
179
  setCurrentDrawerID(undefined);
178
180
  }
179
181
  }, [isDrawerOpen]);
180
- const canCreate = allowCreate !== false && permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create;
182
+ // Keep this table in sync with documents created, updated, or deleted elsewhere
183
+ // (a sibling join table, the relationship field, or an inline drawer edit).
184
+ const {
185
+ mostRecentUpdate
186
+ } = useDocumentEvents();
187
+ const lastHandledEventRef = useRef(null);
188
+ const handleDocumentEvent = useEffectEvent(event => {
189
+ if (disableTable || !event || event === lastHandledEventRef.current) {
190
+ return;
191
+ }
192
+ const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo];
193
+ if (!relationSlugs.includes(event.entitySlug)) {
194
+ return;
195
+ }
196
+ lastHandledEventRef.current = event;
197
+ // Skip the refetch when the current data already reflects this event — e.g. this
198
+ // table's own drawer already applied it optimistically via onDrawerSave/onDrawerDelete,
199
+ // or a fresh mount already loaded data that includes it. Otherwise saving/deleting from
200
+ // this table's own drawer (which also emits a matching event) would render a second time.
201
+ const eventDocID = event.doc?.id ?? event.id;
202
+ const existingDoc = isPolymorphic ? data?.docs?.find(doc => doc.relationTo === event.entitySlug && doc.value?.id === eventDocID) : data?.docs?.find(doc => doc.id === eventDocID);
203
+ const existingUpdatedAt = isPolymorphic ? existingDoc?.value?.updatedAt : existingDoc?.updatedAt;
204
+ const isAlreadyReflected = event.operation === 'delete' ? !existingDoc : Boolean(existingDoc) && existingUpdatedAt === event.updatedAt;
205
+ if (isAlreadyReflected) {
206
+ return;
207
+ }
208
+ void renderTable();
209
+ });
181
210
  useEffect(() => {
211
+ handleDocumentEvent(mostRecentUpdate);
212
+ }, [mostRecentUpdate]);
213
+ const canCreate = allowCreate !== false && permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create;
214
+ const openSelectedCollectionDrawer = useEffectEvent(() => {
182
215
  if (isPolymorphic && selectedCollection) {
183
216
  openDrawer();
184
217
  }
185
- }, [selectedCollection, openDrawer, isPolymorphic]);
218
+ });
219
+ useEffect(() => {
220
+ openSelectedCollectionDrawer();
221
+ }, [selectedCollection, isPolymorphic]);
186
222
  useEffect(() => {
187
223
  if (isPolymorphic && !isDrawerOpen && selectedCollection) {
188
224
  setSelectedCollection(undefined);
@@ -220,7 +256,7 @@ export const RelationshipTable = props => {
220
256
  children: [Label, /*#__PURE__*/_jsx("div", {
221
257
  className: `${baseClass}__actions`,
222
258
  children: addNewButton
223
- })]
259
+ }), Description]
224
260
  }), BeforeInput, /*#__PURE__*/_jsx("p", {
225
261
  children: t('general:loading')
226
262
  })]
@@ -231,7 +267,7 @@ export const RelationshipTable = props => {
231
267
  children: [Label, /*#__PURE__*/_jsx("div", {
232
268
  className: `${baseClass}__actions`,
233
269
  children: addNewButton
234
- })]
270
+ }), Description]
235
271
  }), BeforeInput, /*#__PURE__*/_jsx(NoListResults, {
236
272
  Actions: canCreate ? [/*#__PURE__*/_jsx(AddNewButton, {
237
273
  allowCreate: canCreate,
@@ -269,7 +305,7 @@ export const RelationshipTable = props => {
269
305
  children: [Label, /*#__PURE__*/_jsxs("div", {
270
306
  className: `${baseClass}__actions`,
271
307
  children: [addNewButton, columnsButton]
272
- })]
308
+ }), Description]
273
309
  }), BeforeInput, Table, /*#__PURE__*/_jsx(RelationshipTablePagination, {})]
274
310
  })
275
311
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","useEffectEvent","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","useDocumentDrawer","ListColumnSelectionButton","NoListResults","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","canCreate","collections","create","memoizedListQuery","useMemo","addNewButton","_jsx","buttonStyle","className","label","onClick","columnsButton","slug","_jsxs","length","Actions","labels","singular","description","plural","title","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { NoListResults } from '../NoListResults/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.css'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string, collectionSlug?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin?.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin?.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin?.defaultColumns,\n field.admin?.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id, collectionSlug) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n\n if (collectionSlug) {\n setSelectedCollection(collectionSlug)\n } else {\n setSelectedCollection(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n const addNewButton = (\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"ghost\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ''}`}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n )\n\n const columnsButton = <ListColumnSelectionButton collectionSlug={collectionConfig?.slug} />\n\n return (\n <div className={baseClass}>\n {isLoadingTable ? (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n </div>\n {BeforeInput}\n <p>{t('general:loading')}</p>\n </Fragment>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n </div>\n {BeforeInput}\n <NoListResults\n Actions={\n canCreate\n ? [\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n key=\"create\"\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />,\n ]\n : []\n }\n description={i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n title={i18n.t('general:noResultsFound')}\n />\n </Fragment>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {addNewButton}\n {columnsButton}\n </div>\n </div>\n {BeforeInput}\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAS/B,SAASC,qBAAqB,EAAEC,6BAA6B,QAAQ;AACrE,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAI1E,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,aAAa,QAAQ;AAC9B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,YAAY,QAAQ;AAC7B,SAASC,UAAU,QAAQ;AAC3B,SAASC,2BAA2B,QAAQ;AAC5C,OAAO;AAEP,MAAMC,SAAA,GAAY;AAuBlB,OAAO,MAAMC,iBAAA,GAAgEC,KAAA;EAC3E,MAAM;IACJC,UAAU;IACVC,WAAA,GAAc,IAAI;IAClBC,WAAW;IACXC,YAAA,GAAe,KAAK;IACpBC,KAAK;IACLC,SAAS;IACTC,aAAa;IACbC,WAAA,EAAaC,oBAAoB;IACjCC,iBAAiB;IACjBC,KAAK;IACLC,MAAM;IACNC;EAAU,CACX,GAAGb,KAAA;EACJ,MAAM,CAACc,KAAA,EAAOC,QAAA,CAAS,GAAGhC,QAAA,CAA0B;EACpD,MAAM;IAAEiC,MAAM;IAAEC;EAAe,CAAE,GAAG/B,SAAA;EACpC,MAAM;IAAEgC,IAAI;IAAEC;EAAC,CAAE,GAAG7B,cAAA;EAEpB,MAAM,CAAC8B,KAAA,EAAOC,QAAA,CAAS,GAAGtC,QAAA;EAE1B,MAAM,CAACuC,gBAAA,CAAiB,GAAGvC,QAAA,CAAS,MAAMkC,eAAA,CAAgB;IAAEM,cAAA,EAAgBV;EAAW;EAEvF,MAAMW,aAAA,GAAgBC,KAAA,CAAMC,OAAO,CAACb,UAAA;EAEpC,MAAM,CAACc,kBAAA,EAAoBC,qBAAA,CAAsB,GAAG7C,QAAA,CAClDyC,aAAA,GAAgBK,SAAA,GAAYhB,UAAA;EAG9B,MAAM;IAAEiB;EAAW,CAAE,GAAG7C,OAAA;EAExB,MAAM8C,6BAAA,GAAgCjD,MAAA,CAAO;EAE7C,MAAM,CAACkD,eAAA,EAAiBC,kBAAA,CAAmB,GAAGlD,QAAA,CAA6B8C,SAAA;EAE3E,MAAM,CAACK,cAAA,GAAkB;IAAEC,WAAW;IAAEC,YAAY;IAAEC;EAAU,CAAE,CAAC,GAAG9C,iBAAA,CAAkB;IACtF+C,EAAA,EAAIN,eAAA;IACJT,cAAA,EAAgBI;EAClB;EAEA,MAAM,CAACY,cAAA,EAAgBC,iBAAA,CAAkB,GAAGzD,QAAA,CAAS,CAACqB,YAAA;EAEtD,MAAM,CAACqC,IAAA,EAAMC,OAAA,CAAQ,GAAG3D,QAAA,CAAwB,MAC9C0B,oBAAA,GACI;IACE,GAAGA,oBAAoB;IACvBkC,IAAA,EAAMlB,KAAA,CAAMC,OAAO,CAACjB,oBAAA,CAAqBkC,IAAI,IACzClC,oBAAA,CAAqBkC,IAAI,CAACC,MAAM,CAAC,CAACC,GAAA,EAAKC,GAAA;MACrC,IAAI,OAAOA,GAAA,KAAQ,YAAY,OAAOA,GAAA,KAAQ,UAAU;QACtD,OAAO,C,GACFD,GAAA,EACH;UACEP,EAAA,EAAIQ;QACN,EACD;MACH;MAEA,OAAO,C,GAAID,GAAA,EAAKC,GAAA,CAAI;IACtB,GAAG,EAAE,IACL;EACN,IACAjB,SAAA;EAGN,MAAM,CAACkB,WAAA,EAAaC,cAAA,CAAe,GAAGjE,QAAA;EAEtC,MAAM;IAAEkE;EAAa,CAAE,GAAG7D,kBAAA;EAE1B,MAAM8D,WAAA,GAActE,WAAA,CAClB,MAAO6D,IAAA;IACL,MAAMU,QAAA,GAAsB;MAC1BC,KAAA,EAAO/C,KAAA,EAAOgD,YAAA,IAAgB/B,gBAAA,EAAkBgC,KAAA,EAAOC,UAAA,EAAYF,YAAA;MACnEG,IAAA,EAAMnD,KAAA,CAAMoD,WAAW,IAAInC,gBAAA,EAAkBmC,WAAA;MAC7C,IAAIrC,KAAA,IAAS,CAAC,CAAC;MACfsC,KAAA,EAAO;QAAE,IAAItC,KAAA,EAAOsC,KAAA,IAAS,CAAC,CAAC;MAAE;IACnC;IAEA,IAAInD,aAAA,EAAe;MACjB4C,QAAA,CAASO,KAAK,GAAGlF,qBAAA,CAAsB2E,QAAA,CAASO,KAAK,EAAEnD,aAAA;IACzD;IAEA;IACA,MAAMoD,cAAA,GAAiBtD,KAAA,CAAMiD,KAAK,EAAEK,cAAA,GAChCtD,KAAA,CAAMiD,KAAK,CAACK,cAAc,CAACC,GAAG,CAAEC,QAAA,KAAc;MAC5CA,QAAA;MACAC,MAAA,EAAQ;IACV,MACAjC,SAAA;IAEJ,MAAMkC,cAAA,GACJ,OAAO1D,KAAA,CAAMiD,KAAK,EAAEU,eAAA,KAAoB,YACpC,CAAC3D,KAAA,CAAMiD,KAAK,CAACU,eAAe,GAC5BvC,KAAA,CAAMC,OAAO,CAACb,UAAA;IAEpB,MAAM;MACJ4B,IAAA,EAAMwB,OAAO;MACbC,KAAA,EAAOC,cAAc;MACrBrD,KAAA,EAAOsD;IAAQ,CAChB,GAAG,MAAMnB,aAAA,CAAc;MACtB1B,cAAA,EAAgBV,UAAA;MAChBwD,OAAA,EAAS5F,6BAAA,CAA8B2C,KAAA,EAAOiD,OAAA,KAAYV,cAAA;MAC1DlB,IAAA;MACA6B,mBAAA,EAAqB;MACrBC,kBAAA,EACE,CAAClE,KAAA,CAAMmE,SAAS,IAAI/C,KAAA,CAAMC,OAAO,CAACrB,KAAA,CAAMoE,UAAU,IAC9C5C,SAAA,GACA,IAAIxB,KAAA,CAAMoE,UAAU,IAAIpE,KAAA,CAAMqE,IAAI,QAAQ;MAChD9D,MAAA;MACAQ,KAAA,EAAO+B,QAAA;MACPY,cAAA;MACAY,eAAA,EAAiB;IACnB;IAEAjC,OAAA,CAAQuB,OAAA;IACRlD,QAAA,CAASqD,QAAA;IACTpB,cAAA,CAAemB,cAAA;IACf3B,iBAAA,CAAkB;EACpB,GACA,CACEnC,KAAA,CAAMgD,YAAY,EAClBhD,KAAA,CAAMoD,WAAW,EACjBpD,KAAA,CAAMiD,KAAK,EAAEK,cAAA,EACbtD,KAAA,CAAMiD,KAAK,EAAEU,eAAA,EACb3D,KAAA,CAAMoE,UAAU,EAChBpE,KAAA,CAAMqE,IAAI,EACVrE,KAAA,CAAMmE,SAAS,EACflD,gBAAA,EAAkBgC,KAAA,EAAOC,UAAA,EAAYF,YAAA,EACrC/B,gBAAA,EAAkBmC,WAAA,EAClBrC,KAAA,EACAb,aAAA,EACA0C,aAAA,EACApC,UAAA,EACAD,MAAA,CACD;EAGH,MAAMgE,iBAAA,GAAoB5F,cAAA,CAAe,CAACoC,KAAA,EAAkBhB,YAAA;IAC1D,IAAI,CAACA,YAAA,KAAiB,CAACU,KAAA,IAASM,KAAI,GAAI;MACtC,KAAK8B,WAAA;IACP;EACF;EAEArE,SAAA,CAAU;IACR+F,iBAAA,CAAkBxD,KAAA,EAAOhB,YAAA;EAC3B,GAAG,CAACgB,KAAA,EAAOhB,YAAA,CAAa;EAExB,MAAMyE,YAAA,GAAejG,WAAA,CACnB,CAAC;IAAEkE,GAAG;IAAEgC;EAAS,CAAE;IACjB,IAAIA,SAAA,KAAc,UAAU;MAC1B3C,WAAA;IACF;IAEA,MAAM4C,aAAA,GAAgBtC,IAAA,EAAME,IAAA,EAAMqC,SAAA,CAAWC,CAAA,IAAMA,CAAA,CAAE3C,EAAE,KAAKQ,GAAA,CAAIR,EAAE;IAClE,MAAM4C,oBAAA,GAAsC;MAAEvC,IAAA,EAAM;IAAG;IAEvD,IAAIoC,aAAA,KAAkB,CAAC,GAAG;MACxB,MAAMI,OAAA,GAAU,C,GAAI1C,IAAA,CAAKE,IAAI,CAAC;MAC9BwC,OAAO,CAACJ,aAAA,CAAc,GAAGjC,GAAA;MACzBoC,oBAAA,CAAqBvC,IAAI,GAAGwC,OAAA;IAC9B,OAAO;MACLD,oBAAA,CAAqBvC,IAAI,GAAG,CAACG,GAAA,E,GAAQL,IAAA,CAAKE,IAAI,CAAC;IACjD;IAEA,KAAKO,WAAA,CAAYgC,oBAAA;EACnB,GACA,CAACzC,IAAA,EAAME,IAAA,EAAMO,WAAA,EAAaf,WAAA,CAAY;EAGxC,MAAMiD,cAAA,GAAiBxG,WAAA,CACpByG,IAAA;IACC,MAAMF,OAAA,GAAU1C,IAAA,CAAKE,IAAI,CAAC2C,MAAM,CAAExC,GAAA,IAAQA,GAAA,CAAIR,EAAE,KAAK+C,IAAA,CAAK/C,EAAE;IAE5D,KAAKY,WAAA,CAAY;MACf,GAAGT,IAAI;MACPE,IAAA,EAAMwC;IACR;IAEAlD,kBAAA,CAAmBJ,SAAA;EACrB,GACA,CAACY,IAAA,EAAMS,WAAA,CAAY;EAGrB,MAAMqC,YAAA,GAAe3G,WAAA,CAA0B,CAAC0D,EAAA,EAAIf,cAAA;IAClDQ,6BAAA,CAA8ByD,OAAO,GAAG;IAExC,IAAIlD,EAAA,EAAI;MACNL,kBAAA,CAAmBK,EAAA;IACrB,OAAO;MACLL,kBAAA,CAAmBJ,SAAA;IACrB;IAEA,IAAIN,cAAA,EAAgB;MAClBK,qBAAA,CAAsBL,cAAA;IACxB,OAAO;MACLK,qBAAA,CAAsBC,SAAA;IACxB;EACF,GAAG,EAAE;EAELhD,SAAA,CAAU;IACR,IAAIkD,6BAAA,CAA8ByD,OAAO,EAAE;MACzCzD,6BAAA,CAA8ByD,OAAO,GAAG;MACxCnD,UAAA;IACF;EACF,GAAG,CAACA,UAAA,CAAW;EAEfxD,SAAA,CAAU;IACR,IAAI,CAACuD,YAAA,EAAc;MACjBH,kBAAA,CAAmBJ,SAAA;IACrB;EACF,GAAG,CAACO,YAAA,CAAa;EAEjB,MAAMqD,SAAA,GACJvF,WAAA,KAAgB,SAChB4B,WAAA,EAAa4D,WAAA,GAAclE,aAAA,GAAgBX,UAAU,CAAC,EAAE,GAAGA,UAAA,CAAW,EAAE8E,MAAA;EAE1E9G,SAAA,CAAU;IACR,IAAI2C,aAAA,IAAiBG,kBAAA,EAAoB;MACvCU,UAAA;IACF;EACF,GAAG,CAACV,kBAAA,EAAoBU,UAAA,EAAYb,aAAA,CAAc;EAElD3C,SAAA,CAAU;IACR,IAAI2C,aAAA,IAAiB,CAACY,YAAA,IAAgBT,kBAAA,EAAoB;MACxDC,qBAAA,CAAsBC,SAAA;IACxB;IACA;IACA;EACF,GAAG,CAACO,YAAA,CAAa;EAEjB,MAAMwD,iBAAA,GAAoBlH,KAAA,CAAMmH,OAAO,CACrC,OAAO;IACLxB,OAAA,EAAS5F,6BAAA,CAA8BsE,WAAA,GAAca,GAAA,CAAI,CAAC;MAAEC;IAAQ,CAAE,KAAKA,QAAA;IAC3ET,KAAA,EAAO/C,KAAA,CAAMgD,YAAY,IAAI/B,gBAAA,EAAkBgC,KAAA,EAAOC,UAAA,EAAYF,YAAA;IAClEG,IAAA,EAAMnD,KAAA,CAAMoD,WAAW,IAAInC,gBAAA,EAAkBmC;EAC/C,IACA,CAACV,WAAA,EAAa1C,KAAA,EAAOiB,gBAAA,CAAiB;EAGxC,MAAMwE,YAAA,gBACJC,IAAA,CAACpG,YAAA;IACCO,WAAA,EAAaA,WAAA,KAAgB;IAC7BJ,SAAA,EAAWA,SAAA;IACXkG,WAAA,EAAY;IACZC,SAAA,EAAW,GAAGnG,SAAA,YAAqB0B,aAAA,GAAgB,iBAAiB,IAAI;IACxEkE,WAAA,EAAa1E,MAAA,CAAO0E,WAAW;IAC/BxE,IAAA,EAAMA,IAAA;IACNgF,KAAA,EAAOhF,IAAA,CAAKC,CAAC,CAAC;IACdgF,OAAA,EAAS3E,aAAA,GAAgBI,qBAAA,GAAwBS,UAAA;IACjDP,WAAA,EAAaA,WAAA;IACbjB,UAAA,EAAYA;;EAIhB,MAAMuF,aAAA,gBAAgBL,IAAA,CAACvG,yBAAA;IAA0B+B,cAAA,EAAgBD,gBAAA,EAAkB+E;;EAEnF,oBACEC,KAAA,CAAC;IAAIL,SAAA,EAAWnG,SAAA;eACbyC,cAAA,gBACC+D,KAAA,CAAC3H,QAAA;8BACC2H,KAAA,CAAC;QAAIL,SAAA,EAAW,GAAGnG,SAAA,UAAmB;mBACnCa,KAAA,E,aACDoF,IAAA,CAAC;UAAIE,SAAA,EAAW,GAAGnG,SAAA,WAAoB;oBAAGgG;;UAE3C3F,WAAA,E,aACD4F,IAAA,CAAC;kBAAG5E,CAAA,CAAE;;sBAGRmF,KAAA,CAAC3H,QAAA;iBACE8D,IAAA,EAAME,IAAA,IAAQF,IAAA,CAAKE,IAAI,CAAC4D,MAAM,KAAK,kBAClCD,KAAA,CAAC3H,QAAA;gCACC2H,KAAA,CAAC;UAAIL,SAAA,EAAW,GAAGnG,SAAA,UAAmB;qBACnCa,KAAA,E,aACDoF,IAAA,CAAC;YAAIE,SAAA,EAAW,GAAGnG,SAAA,WAAoB;sBAAGgG;;YAE3C3F,WAAA,E,aACD4F,IAAA,CAACtG,aAAA;UACC+G,OAAA,EACEf,SAAA,GACI,C,aACEM,IAAA,CAACpG,YAAA;YACCO,WAAA,EAAauF,SAAA;YACb3F,SAAA,EAAWA,SAAA;YACX4F,WAAA,EAAa1E,MAAA,CAAO0E,WAAW;YAC/BxE,IAAA,EAAMA,IAAA;YAENgF,KAAA,EAAOhF,IAAA,CAAKC,CAAC,CAAC,0BAA0B;cACtC+E,KAAA,EAAO1E,aAAA,GACHN,IAAA,CAAKC,CAAC,CAAC,sBACP5C,cAAA,CAAe+C,gBAAA,EAAkBmF,MAAA,EAAQC,QAAA,EAAUxF,IAAA;YACzD;YACAiF,OAAA,EAAS3E,aAAA,GAAgBI,qBAAA,GAAwBS,UAAA;YACjDP,WAAA,EAAaA,WAAA;YACbjB,UAAA,EAAYA;aARR,UAUP,GACD,EAAE;UAER8F,WAAA,EAAazF,IAAA,CAAKC,CAAC,CAAC,qBAAqB;YACvC+E,KAAA,EAAO1E,aAAA,GACHN,IAAA,CAAKC,CAAC,CAAC,uBACP5C,cAAA,CAAe+C,gBAAA,EAAkBmF,MAAA,EAAQG,MAAA,EAAQ1F,IAAA;UACvD;UACA2F,KAAA,EAAO3F,IAAA,CAAKC,CAAC,CAAC;;UAInBsB,IAAA,EAAME,IAAA,IAAQF,IAAA,CAAKE,IAAI,CAAC4D,MAAM,GAAG,kBAChCR,IAAA,CAACrG,oBAAA;kBACC,aAAAqG,IAAA,CAAC5G,iBAAA;UACCsD,IAAA,EAAMA,IAAA;UACNqE,kBAAA,EAAoB;UACpBC,aAAA,EAAe1F,QAAA;UACfkD,kBAAA,EACE,CAAClE,KAAA,CAAMmE,SAAS,IAAI/C,KAAA,CAAMC,OAAO,CAACrB,KAAA,CAAMoE,UAAU,IAC9C5C,SAAA,GACA,IAAIxB,KAAA,CAAMoE,UAAU,IAAInE,SAAA,CAAU0G,UAAU,CAAC,KAAK,YAAY;UAEpE5F,KAAA,EAAOwE,iBAAA;oBAEP,aAAAU,KAAA,CAACjH,oBAAA;YACCkC,cAAA,EAAgBC,aAAA,GAAgBX,UAAU,CAAC,EAAE,GAAGA,UAAA;YAChDkC,WAAA,EAAaA,WAAA;YACbkE,kBAAA,eACElB,IAAA,CAACnG,UAAA;cAAWoC,eAAA,EAAiBA,eAAA;cAAiBuD,YAAA,EAAcA;;oCAG9De,KAAA,CAAC;cAAIL,SAAA,EAAW,GAAGnG,SAAA,UAAmB;yBACnCa,KAAA,E,aACD2F,KAAA,CAAC;gBAAIL,SAAA,EAAW,GAAGnG,SAAA,WAAoB;2BACpCgG,YAAA,EACAM,aAAA;;gBAGJjG,WAAA,EACAW,KAAA,E,aACDiF,IAAA,CAAClG,2BAAA;;;;QAOZI,UAAA,E,aACD8F,IAAA,CAAC7D,cAAA;MACC1B,WAAA,EAAaE,iBAAA;MACbwG,QAAA,EAAU9B,cAAA;MACV+B,MAAA,EAAQtC;;;AAIhB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","useEffectEvent","useAuth","useConfig","useDocumentEvents","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","useDocumentDrawer","ListColumnSelectionButton","NoListResults","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","Description","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","mostRecentUpdate","lastHandledEventRef","handleDocumentEvent","event","relationSlugs","includes","entitySlug","eventDocID","existingDoc","find","value","existingUpdatedAt","updatedAt","isAlreadyReflected","Boolean","canCreate","collections","create","openSelectedCollectionDrawer","memoizedListQuery","useMemo","addNewButton","_jsx","buttonStyle","className","label","onClick","columnsButton","slug","_jsxs","length","Actions","labels","singular","description","plural","title","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","onDelete","onSave"],"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type DocumentEvent,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { NoListResults } from '../NoListResults/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.css'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly Description?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string, collectionSlug?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n Description,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin?.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin?.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin?.defaultColumns,\n field.admin?.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id, collectionSlug) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n\n if (collectionSlug) {\n setSelectedCollection(collectionSlug)\n } else {\n setSelectedCollection(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n // Keep this table in sync with documents created, updated, or deleted elsewhere\n // (a sibling join table, the relationship field, or an inline drawer edit).\n const { mostRecentUpdate } = useDocumentEvents()\n const lastHandledEventRef = useRef<DocumentEvent | null>(null)\n\n const handleDocumentEvent = useEffectEvent((event: DocumentEvent | null) => {\n if (disableTable || !event || event === lastHandledEventRef.current) {\n return\n }\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n if (!relationSlugs.includes(event.entitySlug)) {\n return\n }\n\n lastHandledEventRef.current = event\n\n // Skip the refetch when the current data already reflects this event — e.g. this\n // table's own drawer already applied it optimistically via onDrawerSave/onDrawerDelete,\n // or a fresh mount already loaded data that includes it. Otherwise saving/deleting from\n // this table's own drawer (which also emits a matching event) would render a second time.\n const eventDocID = event.doc?.id ?? event.id\n\n const existingDoc = isPolymorphic\n ? data?.docs?.find(\n (doc) => doc.relationTo === event.entitySlug && doc.value?.id === eventDocID,\n )\n : data?.docs?.find((doc) => doc.id === eventDocID)\n\n const existingUpdatedAt = isPolymorphic ? existingDoc?.value?.updatedAt : existingDoc?.updatedAt\n\n const isAlreadyReflected =\n event.operation === 'delete'\n ? !existingDoc\n : Boolean(existingDoc) && existingUpdatedAt === event.updatedAt\n\n if (isAlreadyReflected) {\n return\n }\n\n void renderTable()\n })\n\n useEffect(() => {\n handleDocumentEvent(mostRecentUpdate)\n }, [mostRecentUpdate])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n const openSelectedCollectionDrawer = useEffectEvent(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n })\n\n useEffect(() => {\n openSelectedCollectionDrawer()\n }, [selectedCollection, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n const addNewButton = (\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"ghost\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ''}`}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n )\n\n const columnsButton = <ListColumnSelectionButton collectionSlug={collectionConfig?.slug} />\n\n return (\n <div className={baseClass}>\n {isLoadingTable ? (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <p>{t('general:loading')}</p>\n </Fragment>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <Fragment>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>{addNewButton}</div>\n {Description}\n </div>\n {BeforeInput}\n <NoListResults\n Actions={\n canCreate\n ? [\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n key=\"create\"\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />,\n ]\n : []\n }\n description={i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n title={i18n.t('general:noResultsFound')}\n />\n </Fragment>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n {addNewButton}\n {columnsButton}\n </div>\n {Description}\n </div>\n {BeforeInput}\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,21 @@
22
22
  letter-spacing: inherit;
23
23
  }
24
24
 
25
+ .render-title--placeholder {
26
+ color: var(--color-text-secondary);
27
+ }
28
+
29
+ .render-title__placeholder-button {
30
+ padding: 0;
31
+ border: 0;
32
+ background: none;
33
+ color: inherit;
34
+ font: inherit;
35
+ letter-spacing: inherit;
36
+ text-align: inherit;
37
+ cursor: pointer;
38
+ }
39
+
25
40
  .render-title__id {
26
41
  vertical-align: middle;
27
42
  position: relative;
@@ -37,6 +52,7 @@
37
52
  }
38
53
  }
39
54
 
55
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
40
56
  @media (max-width: 768px) {
41
57
  .render-title {
42
58
  --render-title-letter-spacing: -0.075px;
@@ -5,6 +5,7 @@ export type RenderTitleProps = {
5
5
  element?: React.ElementType;
6
6
  fallback?: string;
7
7
  fallbackToID?: boolean;
8
+ focusFieldOnPlaceholder?: string;
8
9
  /**
9
10
  * When true, renders the title as a link to the document. Useful inside drawers
10
11
  * to navigate to the full document view.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RenderTitle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiDlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RenderTitle/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmFlD,CAAA"}
@@ -12,11 +12,12 @@ import { IDLabel } from '../IDLabel/index.js';
12
12
  import './index.css';
13
13
  const baseClass = 'render-title';
14
14
  export const RenderTitle = props => {
15
- const $ = _c(14);
15
+ const $ = _c(17);
16
16
  const {
17
17
  className,
18
18
  element: t0,
19
19
  fallback,
20
+ focusFieldOnPlaceholder,
20
21
  renderAsLink,
21
22
  title: titleFromProps
22
23
  } = props;
@@ -28,6 +29,7 @@ export const RenderTitle = props => {
28
29
  isInitializing
29
30
  } = useDocumentInfo();
30
31
  const {
32
+ isPlaceholder,
31
33
  title: titleFromContext
32
34
  } = useDocumentTitle();
33
35
  const {
@@ -41,9 +43,10 @@ export const RenderTitle = props => {
41
43
  } = t2;
42
44
  const title = titleFromProps || titleFromContext || fallback;
43
45
  const idAsTitle = title === id;
46
+ const showPlaceholder = !titleFromProps && isPlaceholder;
44
47
  const Tag = element;
45
48
  let t3;
46
- if ($[0] !== Tag || $[1] !== adminRoute || $[2] !== className || $[3] !== collectionSlug || $[4] !== globalSlug || $[5] !== id || $[6] !== idAsTitle || $[7] !== isInitializing || $[8] !== renderAsLink || $[9] !== title) {
49
+ if ($[0] !== Tag || $[1] !== adminRoute || $[2] !== className || $[3] !== collectionSlug || $[4] !== focusFieldOnPlaceholder || $[5] !== globalSlug || $[6] !== id || $[7] !== idAsTitle || $[8] !== isInitializing || $[9] !== renderAsLink || $[10] !== showPlaceholder || $[11] !== title) {
47
50
  const EmptySpace = _jsx(Fragment, {
48
51
  children: "\xA0"
49
52
  });
@@ -52,17 +55,19 @@ export const RenderTitle = props => {
52
55
  path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`
53
56
  }) : null;
54
57
  const t4 = idAsTitle && `${baseClass}--has-id`;
55
- let t5;
56
- if ($[11] !== className || $[12] !== t4) {
57
- t5 = [className, baseClass, t4].filter(Boolean);
58
- $[11] = className;
59
- $[12] = t4;
60
- $[13] = t5;
58
+ const t5 = showPlaceholder && `${baseClass}--placeholder`;
59
+ let t6;
60
+ if ($[13] !== className || $[14] !== t4 || $[15] !== t5) {
61
+ t6 = [className, baseClass, t4, t5].filter(Boolean);
62
+ $[13] = className;
63
+ $[14] = t4;
64
+ $[15] = t5;
65
+ $[16] = t6;
61
66
  } else {
62
- t5 = $[13];
67
+ t6 = $[16];
63
68
  }
64
69
  t3 = _jsx(Tag, {
65
- className: t5.join(" "),
70
+ className: t6.join(" "),
66
71
  "data-doc-id": id,
67
72
  title,
68
73
  children: isInitializing ? EmptySpace : idAsTitle ? _jsx(IDLabel, {
@@ -72,21 +77,34 @@ export const RenderTitle = props => {
72
77
  className: `${baseClass}__link`,
73
78
  href: docPath,
74
79
  children: title || EmptySpace
80
+ }) : showPlaceholder && focusFieldOnPlaceholder && focusFieldOnPlaceholder !== "id" ? _jsx("button", {
81
+ className: `${baseClass}__placeholder-button`,
82
+ onClick: event => {
83
+ const fieldID = `field-${focusFieldOnPlaceholder.replace(/\./g, "__")}`;
84
+ const scope = event.currentTarget.closest(".template-default__wrap");
85
+ const field = scope?.querySelector(`#${CSS.escape(fieldID)}`);
86
+ const input = field instanceof HTMLInputElement || field instanceof HTMLTextAreaElement ? field : field?.querySelector("input:not([type=\"hidden\"]), textarea, [contenteditable=\"true\"], [role=\"combobox\"], button");
87
+ input?.focus();
88
+ },
89
+ type: "button",
90
+ children: title || EmptySpace
75
91
  }) : title || EmptySpace
76
92
  });
77
93
  $[0] = Tag;
78
94
  $[1] = adminRoute;
79
95
  $[2] = className;
80
96
  $[3] = collectionSlug;
81
- $[4] = globalSlug;
82
- $[5] = id;
83
- $[6] = idAsTitle;
84
- $[7] = isInitializing;
85
- $[8] = renderAsLink;
86
- $[9] = title;
87
- $[10] = t3;
97
+ $[4] = focusFieldOnPlaceholder;
98
+ $[5] = globalSlug;
99
+ $[6] = id;
100
+ $[7] = idAsTitle;
101
+ $[8] = isInitializing;
102
+ $[9] = renderAsLink;
103
+ $[10] = showPlaceholder;
104
+ $[11] = title;
105
+ $[12] = t3;
88
106
  } else {
89
- t3 = $[10];
107
+ t3 = $[12];
90
108
  }
91
109
  return t3;
92
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","Fragment","Link","useConfig","useDocumentInfo","useDocumentTitle","IDLabel","baseClass","RenderTitle","props","$","className","element","t0","fallback","renderAsLink","title","titleFromProps","undefined","id","collectionSlug","globalSlug","isInitializing","titleFromContext","config","t1","routes","t2","admin","adminRoute","idAsTitle","Tag","t3","EmptySpace","_jsx","children","docPath","path","t4","t5","filter","Boolean","join","href"],"sources":["../../../src/elements/RenderTitle/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport './index.css'\n\nconst baseClass = 'render-title'\n\nexport type RenderTitleProps = {\n className?: string\n element?: React.ElementType\n fallback?: string\n fallbackToID?: boolean\n /**\n * When true, renders the title as a link to the document. Useful inside drawers\n * to navigate to the full document view.\n */\n renderAsLink?: boolean\n title?: string\n}\n\nexport const RenderTitle: React.FC<RenderTitleProps> = (props) => {\n const { className, element = 'h1', fallback, renderAsLink, title: titleFromProps } = props\n\n const { id, collectionSlug, globalSlug, isInitializing } = useDocumentInfo()\n const { title: titleFromContext } = useDocumentTitle()\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const title = titleFromProps || titleFromContext || fallback\n\n const idAsTitle = title === id\n\n const Tag = element\n\n // Render and invisible character to prevent layout shift when the title populates from context\n const EmptySpace = <Fragment>&nbsp;</Fragment>\n\n const docPath =\n renderAsLink && id && (collectionSlug || globalSlug)\n ? formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n : null\n\n return (\n <Tag\n className={[className, baseClass, idAsTitle && `${baseClass}--has-id`]\n .filter(Boolean)\n .join(' ')}\n data-doc-id={id}\n title={title}\n >\n {isInitializing ? (\n EmptySpace\n ) : idAsTitle ? (\n <IDLabel className={`${baseClass}__id`} id={id} />\n ) : docPath ? (\n <Link className={`${baseClass}__link`} href={docPath}>\n {title || EmptySpace}\n </Link>\n ) : (\n title || EmptySpace\n )}\n </Tag>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,IAAI,QAAQ;AACrB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAelB,OAAO,MAAMC,WAAA,GAA0CC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACrD;IAAAa,SAAA;IAAAC,OAAA,EAAAC,EAAA;IAAAC,QAAA;IAAAC,YAAA;IAAAC,KAAA,EAAAC;EAAA,IAAqFR,KAAA;EAAlE,MAAAG,OAAA,GAAAC,EAAc,KAAAK,SAAA,GAAJ,IAAI,GAAdL,EAAc;EAEjC;IAAAM,EAAA;IAAAC,cAAA;IAAAC,UAAA;IAAAC;EAAA,IAA2DlB,eAAA;EAC3D;IAAAY,KAAA,EAAAO;EAAA,IAAoClB,gBAAA;EACpC;IAAAmB,MAAA,EAAAC;EAAA,IAIItB,SAAA;EAHM;IAAAuB,MAAA,EAAAC;EAAA,IAAAF,EAEP;EADS;IAAAG,KAAA,EAAAC;EAAA,IAAAF,EAAqB;EAIjC,MAAAX,KAAA,GAAcC,cAAA,IAAkBM,gBAAA,IAAoBT,QAAA;EAEpD,MAAAgB,SAAA,GAAkBd,KAAA,KAAUG,EAAA;EAE5B,MAAAY,GAAA,GAAYnB,OAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAtB,CAAA,QAAAqB,GAAA,IAAArB,CAAA,QAAAmB,UAAA,IAAAnB,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAU,cAAA,IAAAV,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAS,EAAA,IAAAT,CAAA,QAAAoB,SAAA,IAAApB,CAAA,QAAAY,cAAA,IAAAZ,CAAA,QAAAK,YAAA,IAAAL,CAAA,QAAAM,KAAA;IAGZ,MAAAiB,UAAA,GAAmBC,IAAA,CAAAjC,QAAA;MAAAkC,QAAA,EAAU;IAAA,C;IAE7B,MAAAC,OAAA,GACErB,YAAA,IAAgBI,EAAA,KAAOC,cAAA,IAAkBC,UAAS,IAC9CtB,cAAA;MAAA8B,UAAA;MAAAQ,IAAA,EAEQ,IAAIjB,cAAA,GAAiB,eAAeA,cAAA,EAAgB,GAAG,WAAWC,UAAA,EAAY,IAAIF,EAAA;IAAI,CAC9F,QACA;IAIgC,MAAAmB,EAAA,GAAAR,SAAA,IAAa,GAAAvB,SAAA,UAAsB;IAAA,IAAAgC,EAAA;IAAA,IAAA7B,CAAA,SAAAC,SAAA,IAAAD,CAAA,SAAA4B,EAAA;MAA1DC,EAAA,IAAC5B,SAAA,EAAAJ,SAAA,EAAsB+B,EAAmC,EAAAE,MAAA,CAAAC,OAC3D;MAAA/B,CAAA,OAAAC,SAAA;MAAAD,CAAA,OAAA4B,EAAA;MAAA5B,CAAA,OAAA6B,EAAA;IAAA;MAAAA,EAAA,GAAA7B,CAAA;IAAA;IAFZsB,EAAA,GAAAE,IAAA,CAACH,GAAA;MAAApB,SAAA,EACY4B,EACD,CAAAG,IAAA,CACF;MAAA,eACKvB,EAAA;MAAAH,KAAA;MAAAmB,QAAA,EAGZb,cAAA,GACCW,UAAA,GACEH,SAAA,GACFI,IAAA,CAAA5B,OAAA;QAAAK,SAAA,EAAoB,GAAAJ,SAAA,MAAkB;QAAAY;MAAA,C,IACpCiB,OAAA,GACFF,IAAA,CAAAhC,IAAA;QAAAS,SAAA,EAAiB,GAAAJ,SAAA,QAAoB;QAAAoC,IAAA,EAAQP,OAAA;QAAAD,QAAA,EAC1CnB,KAAA,IAASiB;MAAA,C,IAGZjB,KAAA,IAASiB;IAAA,C;;;;;;;;;;;;;;;SAhBbD,E;CAoBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","Fragment","Link","useConfig","useDocumentInfo","useDocumentTitle","IDLabel","baseClass","RenderTitle","props","$","className","element","t0","fallback","focusFieldOnPlaceholder","renderAsLink","title","titleFromProps","undefined","id","collectionSlug","globalSlug","isInitializing","isPlaceholder","titleFromContext","config","t1","routes","t2","admin","adminRoute","idAsTitle","showPlaceholder","Tag","t3","EmptySpace","_jsx","children","docPath","path","t4","t5","t6","filter","Boolean","join","href","onClick","event","fieldID","replace","scope","currentTarget","closest","field","querySelector","CSS","escape","input","HTMLInputElement","HTMLTextAreaElement","focus","type"],"sources":["../../../src/elements/RenderTitle/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport './index.css'\n\nconst baseClass = 'render-title'\n\nexport type RenderTitleProps = {\n className?: string\n element?: React.ElementType\n fallback?: string\n fallbackToID?: boolean\n focusFieldOnPlaceholder?: string\n /**\n * When true, renders the title as a link to the document. Useful inside drawers\n * to navigate to the full document view.\n */\n renderAsLink?: boolean\n title?: string\n}\n\nexport const RenderTitle: React.FC<RenderTitleProps> = (props) => {\n const {\n className,\n element = 'h1',\n fallback,\n focusFieldOnPlaceholder,\n renderAsLink,\n title: titleFromProps,\n } = props\n\n const { id, collectionSlug, globalSlug, isInitializing } = useDocumentInfo()\n const { isPlaceholder, title: titleFromContext } = useDocumentTitle()\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const title = titleFromProps || titleFromContext || fallback\n\n const idAsTitle = title === id\n\n const showPlaceholder = !titleFromProps && isPlaceholder\n\n const Tag = element\n\n // Render and invisible character to prevent layout shift when the title populates from context\n const EmptySpace = <Fragment>&nbsp;</Fragment>\n\n const docPath =\n renderAsLink && id && (collectionSlug || globalSlug)\n ? formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n : null\n\n return (\n <Tag\n className={[\n className,\n baseClass,\n idAsTitle && `${baseClass}--has-id`,\n showPlaceholder && `${baseClass}--placeholder`,\n ]\n .filter(Boolean)\n .join(' ')}\n data-doc-id={id}\n title={title}\n >\n {isInitializing ? (\n EmptySpace\n ) : idAsTitle ? (\n <IDLabel className={`${baseClass}__id`} id={id} />\n ) : docPath ? (\n <Link className={`${baseClass}__link`} href={docPath}>\n {title || EmptySpace}\n </Link>\n ) : showPlaceholder && focusFieldOnPlaceholder && focusFieldOnPlaceholder !== 'id' ? (\n <button\n className={`${baseClass}__placeholder-button`}\n onClick={(event) => {\n const fieldID = `field-${focusFieldOnPlaceholder.replace(/\\./g, '__')}`\n const scope = event.currentTarget.closest('.template-default__wrap')\n const field = scope?.querySelector<HTMLElement>(`#${CSS.escape(fieldID)}`)\n const input =\n field instanceof HTMLInputElement || field instanceof HTMLTextAreaElement\n ? field\n : field?.querySelector<HTMLElement>(\n 'input:not([type=\"hidden\"]), textarea, [contenteditable=\"true\"], [role=\"combobox\"], button',\n )\n\n input?.focus()\n }}\n type=\"button\"\n >\n {title || EmptySpace}\n </button>\n ) : (\n title || EmptySpace\n )}\n </Tag>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAS,MAAM,SAAS,CAAA;AAMvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+KvC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAS,MAAM,SAAS,CAAA;AAMvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAkBzB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgLvC,CAAA"}
@@ -37,9 +37,8 @@ export const RestoreMany = props => {
37
37
  serverURL
38
38
  }
39
39
  } = useConfig();
40
- const {
41
- code: locale
42
- } = useLocale();
40
+ const currentLocale = useLocale();
41
+ const locale = currentLocale?.code;
43
42
  const router = useRouter();
44
43
  const {
45
44
  clearRouteCache
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","confirmManyRestoreDrawerSlug","RestoreMany","props","collection","slug","viewType","permissions","config","collections","routes","serverURL","code","locale","router","clearRouteCache","searchParams","count","getSelectedIds","selectAll","toggleAll","openModal","i18n","t","restoreAsPublished","setRestoreAsPublished","useState","collectionPermissions","hasUpdatePermission","update","None","selectingAll","AllAvailable","selectedIDs","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","handleRestore","collectionConfig","find","c","whereConstraint","id","in","url","apiRoute","api","path","stringify","limit","select","trash","search","addQueryPrefix","body","versions","drafts","_status","restoreManyResponse","patch","JSON","headers","language","plural","singular","labels","json","restoredDocs","docs","length","successLabel","status","success","label","errors","error","message","description","map","e","join","err","replace","page","undefined","s","labelString","_jsxs","Fragment","_jsx","onClick","checked","name","onToggle","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/RestoreMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\n\nconst confirmManyRestoreDrawerSlug = `confirm-restore-many-docs`\n\nexport type Props = {\n collection: ClientCollectionConfig\n viewType?: ViewTypes\n}\n\nexport const RestoreMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, viewType } = props\n\n const { permissions } = useAuth()\n const {\n config: { collections, routes, serverURL },\n } = useConfig()\n const { code: locale } = useLocale()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const searchParams = useSearchParams()\n const { count, getSelectedIds, selectAll, toggleAll } = useSelection()\n const { openModal } = useModal()\n\n const { i18n, t } = useTranslation()\n\n const [restoreAsPublished, setRestoreAsPublished] = React.useState(false)\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission || viewType !== 'trash') {\n return null\n }\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n const selectedIDs = !selectingAll ? getSelectedIds() : []\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere = {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n\n const handleRestore = async () => {\n const collectionConfig = collections.find((c) => c.slug === slug)\n if (!collectionConfig) {\n return\n }\n\n let whereConstraint: Where\n\n if (selectingAll) {\n whereConstraint = finalWhere\n } else {\n whereConstraint = {\n and: [{ id: { in: selectedIDs } }, { deletedAt: { exists: true } }],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: routes.api,\n path: `/${slug}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n trash: true, // Ensure trashed docs are returned\n where: mergeListSearchAndWhere({\n collectionConfig,\n search: parseSearchParams(searchParams)?.search as string,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const restoreManyResponse = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await restoreManyResponse.json()\n\n const restoredDocs = json?.docs?.length || 0\n const successLabel = restoredDocs > 1 ? plural : singular\n\n if (restoreManyResponse.status < 400 || restoredDocs > 0) {\n toast.success(\n t('general:restoredCountSuccessfully', {\n count: restoredDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((e) => e.message).join('\\n'),\n })\n }\n } catch (err) {\n toast.error(t('error:unknown'))\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectingAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }\n\n const collectionConfig = collections.find(({ slug: s }) => s === slug)\n\n const labelString = getTranslation(\n count === 1 ? collectionConfig.labels.singular : collectionConfig.labels.plural,\n i18n,\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:restore')}\n onClick={() => {\n openModal(confirmManyRestoreDrawerSlug)\n }}\n >\n {t('general:restore')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n {t(\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraftCount'\n : 'general:aboutToRestoreCount',\n {\n count,\n label: labelString,\n },\n )}\n {collectionConfig?.versions?.drafts && (\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published-many\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published-many\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={confirmManyRestoreDrawerSlug}\n onConfirm={handleRestore}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","confirmManyRestoreDrawerSlug","RestoreMany","props","collection","slug","viewType","permissions","config","collections","routes","serverURL","currentLocale","locale","code","router","clearRouteCache","searchParams","count","getSelectedIds","selectAll","toggleAll","openModal","i18n","t","restoreAsPublished","setRestoreAsPublished","useState","collectionPermissions","hasUpdatePermission","update","None","selectingAll","AllAvailable","selectedIDs","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","handleRestore","collectionConfig","find","c","whereConstraint","id","in","url","apiRoute","api","path","stringify","limit","select","trash","search","addQueryPrefix","body","versions","drafts","_status","restoreManyResponse","patch","JSON","headers","language","plural","singular","labels","json","restoredDocs","docs","length","successLabel","status","success","label","errors","error","message","description","map","e","join","err","replace","page","undefined","s","labelString","_jsxs","Fragment","_jsx","onClick","checked","name","onToggle","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/RestoreMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\n\nconst confirmManyRestoreDrawerSlug = `confirm-restore-many-docs`\n\nexport type Props = {\n collection: ClientCollectionConfig\n viewType?: ViewTypes\n}\n\nexport const RestoreMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, viewType } = props\n\n const { permissions } = useAuth()\n const {\n config: { collections, routes, serverURL },\n } = useConfig()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const searchParams = useSearchParams()\n const { count, getSelectedIds, selectAll, toggleAll } = useSelection()\n const { openModal } = useModal()\n\n const { i18n, t } = useTranslation()\n\n const [restoreAsPublished, setRestoreAsPublished] = React.useState(false)\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission || viewType !== 'trash') {\n return null\n }\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n const selectedIDs = !selectingAll ? getSelectedIds() : []\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere = {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n\n const handleRestore = async () => {\n const collectionConfig = collections.find((c) => c.slug === slug)\n if (!collectionConfig) {\n return\n }\n\n let whereConstraint: Where\n\n if (selectingAll) {\n whereConstraint = finalWhere\n } else {\n whereConstraint = {\n and: [{ id: { in: selectedIDs } }, { deletedAt: { exists: true } }],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: routes.api,\n path: `/${slug}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n trash: true, // Ensure trashed docs are returned\n where: mergeListSearchAndWhere({\n collectionConfig,\n search: parseSearchParams(searchParams)?.search as string,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const restoreManyResponse = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await restoreManyResponse.json()\n\n const restoredDocs = json?.docs?.length || 0\n const successLabel = restoredDocs > 1 ? plural : singular\n\n if (restoreManyResponse.status < 400 || restoredDocs > 0) {\n toast.success(\n t('general:restoredCountSuccessfully', {\n count: restoredDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((e) => e.message).join('\\n'),\n })\n }\n } catch (err) {\n toast.error(t('error:unknown'))\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectingAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }\n\n const collectionConfig = collections.find(({ slug: s }) => s === slug)\n\n const labelString = getTranslation(\n count === 1 ? collectionConfig.labels.singular : collectionConfig.labels.plural,\n i18n,\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:restore')}\n onClick={() => {\n openModal(confirmManyRestoreDrawerSlug)\n }}\n >\n {t('general:restore')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n {t(\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraftCount'\n : 'general:aboutToRestoreCount',\n {\n count,\n label: labelString,\n },\n )}\n {collectionConfig?.versions?.drafts && (\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published-many\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published-many\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={confirmManyRestoreDrawerSlug}\n onConfirm={handleRestore}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAGzD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,wBAAgB,eAAe,CAAC,KAAK,EAAE,0BAA0B,qBAsFhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAGzD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,wBAAgB,eAAe,CAAC,KAAK,EAAE,0BAA0B,qBAuFhE"}
@@ -29,9 +29,8 @@ export function SaveDraftButton(props) {
29
29
  uploadStatus
30
30
  } = useDocumentInfo();
31
31
  const modified = useFormModified();
32
- const {
33
- code: locale
34
- } = useLocale();
32
+ const currentLocale = useLocale();
33
+ const locale = currentLocale?.code;
35
34
  const ref = useRef(null);
36
35
  const editDepth = useEditDepth();
37
36
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","props","config","routes","api","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","code","locale","ref","editDepth","t","submit","operation","disabled","saveDraft","search","action","method","apiRoute","path","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SaveDraftButtonClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport function SaveDraftButton(props: SaveDraftButtonClientProps) {\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { id, collectionSlug, globalSlug, setUnpublishedVersionCount, uploadStatus } =\n useDocumentInfo()\n\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const disabled = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${search}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${search}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n\n setUnpublishedVersionCount((count) => count + 1)\n }, [submit, collectionSlug, globalSlug, api, locale, id, disabled, setUnpublishedVersionCount])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (disabled) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={disabled}\n onClick={() => {\n return void saveDraft()\n }}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","props","config","routes","api","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","currentLocale","locale","code","ref","editDepth","t","submit","operation","disabled","saveDraft","search","action","method","apiRoute","path","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SaveDraftButtonClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport function SaveDraftButton(props: SaveDraftButtonClientProps) {\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { id, collectionSlug, globalSlug, setUnpublishedVersionCount, uploadStatus } =\n useDocumentInfo()\n\n const modified = useFormModified()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const disabled = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${search}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${search}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n\n setUnpublishedVersionCount((count) => count + 1)\n }, [submit, collectionSlug, globalSlug, api, locale, id, disabled, setUnpublishedVersionCount])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (disabled) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={disabled}\n onClick={() => {\n return void saveDraft()\n }}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,9 +3,10 @@ import React from 'react';
3
3
  import './index.css';
4
4
  export declare const SelectRow: React.FC<{
5
5
  rowData: {
6
- _isLocked: boolean;
7
- _userEditing: User;
8
- id: string;
6
+ _isLocked?: boolean;
7
+ _userEditing?: User;
8
+ id: number | string;
9
9
  };
10
+ selectRowLabel: string;
10
11
  }>;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SelectRow/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAA;QAClB,YAAY,EAAE,IAAI,CAAA;QAClB,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF,CAmBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SelectRow/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,YAAY,CAAC,EAAE,IAAI,CAAA;QACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KACpB,CAAA;IACD,cAAc,EAAE,MAAM,CAAA;CACvB,CAoBA,CAAA"}
@@ -10,9 +10,10 @@ import { Locked } from '../Locked/index.js';
10
10
  import './index.css';
11
11
  const baseClass = 'select-row';
12
12
  export const SelectRow = t0 => {
13
- const $ = _c(13);
13
+ const $ = _c(14);
14
14
  const {
15
- rowData
15
+ rowData,
16
+ selectRowLabel
16
17
  } = t0;
17
18
  const {
18
19
  user
@@ -73,18 +74,20 @@ export const SelectRow = t0 => {
73
74
  t5 = $[9];
74
75
  }
75
76
  let t6;
76
- if ($[10] !== t3 || $[11] !== t5) {
77
+ if ($[10] !== selectRowLabel || $[11] !== t3 || $[12] !== t5) {
77
78
  t6 = _jsx(CheckboxInput, {
79
+ "aria-label": selectRowLabel,
78
80
  checked: t3,
79
81
  className: t4.join(" "),
80
82
  onToggle: t5,
81
83
  variant: "muted"
82
84
  });
83
- $[10] = t3;
84
- $[11] = t5;
85
- $[12] = t6;
85
+ $[10] = selectRowLabel;
86
+ $[11] = t3;
87
+ $[12] = t5;
88
+ $[13] = t6;
86
89
  } else {
87
- t6 = $[12];
90
+ t6 = $[13];
88
91
  }
89
92
  return t6;
90
93
  };