@payloadcms/ui 4.0.0-internal.f15737c → 4.0.0-internal.f2a04f7

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 (330) hide show
  1. package/dist/css/preflight.css +21 -2
  2. package/dist/elements/AppHeader/index.css +1 -1
  3. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  4. package/dist/elements/AppHeader/index.js +5 -1
  5. package/dist/elements/AppHeader/index.js.map +1 -1
  6. package/dist/elements/Autosave/index.d.ts.map +1 -1
  7. package/dist/elements/Autosave/index.js +10 -3
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.css +24 -0
  10. package/dist/elements/Button/types.d.ts +1 -1
  11. package/dist/elements/Button/types.d.ts.map +1 -1
  12. package/dist/elements/Button/types.js.map +1 -1
  13. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  14. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  15. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  16. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  17. package/dist/elements/CodeEditor/CodeEditor.js +5 -0
  18. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  19. package/dist/elements/DatePicker/DatePicker.js +6 -2
  20. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  21. package/dist/elements/DatePicker/index.css +35 -25
  22. package/dist/elements/DocumentControls/index.css +13 -10
  23. package/dist/elements/DocumentControls/index.d.ts +4 -2
  24. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentControls/index.js.map +1 -1
  26. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  27. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  29. package/dist/elements/DocumentFields/index.css +7 -7
  30. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentFields/index.js +1 -2
  32. package/dist/elements/DocumentFields/index.js.map +1 -1
  33. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  34. package/dist/elements/Drawer/types.d.ts +2 -2
  35. package/dist/elements/Drawer/types.d.ts.map +1 -1
  36. package/dist/elements/Drawer/types.js.map +1 -1
  37. package/dist/elements/EditUpload/library.css +6 -13
  38. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  39. package/dist/elements/FileManager/index.d.ts.map +1 -1
  40. package/dist/elements/FileManager/index.js +6 -1
  41. package/dist/elements/FileManager/index.js.map +1 -1
  42. package/dist/elements/Hierarchy/ActionsMenu/index.css +18 -0
  43. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts +35 -0
  44. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts.map +1 -0
  45. package/dist/elements/Hierarchy/ActionsMenu/index.js +99 -0
  46. package/dist/elements/Hierarchy/ActionsMenu/index.js.map +1 -0
  47. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +18 -16
  48. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  49. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +2 -0
  50. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  51. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  52. package/dist/elements/Hierarchy/DocHeaderButton/index.css +12 -0
  53. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  54. package/dist/elements/Hierarchy/DocHeaderButton/index.js +61 -14
  55. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  56. package/dist/elements/Hierarchy/Modal/Footer/index.css +33 -0
  57. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +21 -0
  58. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
  59. package/dist/elements/Hierarchy/Modal/Footer/index.js +122 -0
  60. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
  61. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +8 -3
  62. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  63. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +38 -12
  64. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  65. package/dist/elements/Hierarchy/Modal/index.css +0 -56
  66. package/dist/elements/Hierarchy/Modal/index.d.ts +5 -3
  67. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  68. package/dist/elements/Hierarchy/Modal/index.js +64 -65
  69. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  70. package/dist/elements/Hierarchy/Modal/types.d.ts +2 -0
  71. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  72. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  73. package/dist/elements/Hierarchy/MoveMany/index.d.ts +1 -3
  74. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  75. package/dist/elements/Hierarchy/MoveMany/index.js +62 -84
  76. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  77. package/dist/elements/ListControls/types.d.ts +0 -10
  78. package/dist/elements/ListControls/types.d.ts.map +1 -1
  79. package/dist/elements/ListControls/types.js.map +1 -1
  80. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  81. package/dist/elements/ListDrawer/DrawerContent.js +1 -2
  82. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  83. package/dist/elements/ListDrawer/Provider.d.ts +0 -6
  84. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  85. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  86. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  87. package/dist/elements/ListDrawer/index.js +1 -1
  88. package/dist/elements/ListDrawer/index.js.map +1 -1
  89. package/dist/elements/ListDrawer/types.d.ts +1 -0
  90. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  91. package/dist/elements/ListDrawer/types.js.map +1 -1
  92. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  93. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +24 -20
  94. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  95. package/dist/elements/LivePreview/Window/index.css +7 -1
  96. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  97. package/dist/elements/Nav/NavWrapper/index.js +19 -14
  98. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  99. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  100. package/dist/elements/PublishButton/index.js +71 -8
  101. package/dist/elements/PublishButton/index.js.map +1 -1
  102. package/dist/elements/PublishButton/validateAllLocales.d.ts +11 -0
  103. package/dist/elements/PublishButton/validateAllLocales.d.ts.map +1 -0
  104. package/dist/elements/PublishButton/validateAllLocales.js +263 -0
  105. package/dist/elements/PublishButton/validateAllLocales.js.map +1 -0
  106. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  107. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  108. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  109. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  110. package/dist/elements/SaveDraftButton/index.js +15 -2
  111. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  112. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  113. package/dist/elements/SegmentedControl/index.css +50 -7
  114. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  116. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +0 -9
  117. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +63 -40
  119. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/index.js +6 -1
  122. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  123. package/dist/elements/Table/index.js.map +1 -1
  124. package/dist/elements/Tabs/index.css +4 -3
  125. package/dist/elements/Upload/getEditorFileSrc.d.ts +11 -0
  126. package/dist/elements/Upload/getEditorFileSrc.d.ts.map +1 -0
  127. package/dist/elements/Upload/getEditorFileSrc.js +6 -0
  128. package/dist/elements/Upload/getEditorFileSrc.js.map +1 -0
  129. package/dist/elements/Upload/index.d.ts.map +1 -1
  130. package/dist/elements/Upload/index.js +6 -1
  131. package/dist/elements/Upload/index.js.map +1 -1
  132. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-I6PL55BF.js} +2 -2
  133. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-XAKGIULG.js} +2 -2
  134. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-36JJSMEB.js} +2 -2
  135. package/dist/exports/client/chunk-36JJSMEB.js.map +7 -0
  136. package/dist/exports/client/chunk-R7M6BG75.js +27 -0
  137. package/dist/exports/client/chunk-R7M6BG75.js.map +7 -0
  138. package/dist/exports/client/index.d.ts +3 -0
  139. package/dist/exports/client/index.d.ts.map +1 -1
  140. package/dist/exports/client/index.js +27 -27
  141. package/dist/exports/client/index.js.map +4 -4
  142. package/dist/exports/shared/index.js +2 -2
  143. package/dist/exports/shared/index.js.map +3 -3
  144. package/dist/fields/Group/index.css +3 -5
  145. package/dist/fields/Tabs/index.css +14 -14
  146. package/dist/fields/Upload/Input.d.ts.map +1 -1
  147. package/dist/fields/Upload/Input.js +3 -1
  148. package/dist/fields/Upload/Input.js.map +1 -1
  149. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  150. package/dist/forms/Form/fieldReducer.js +6 -9
  151. package/dist/forms/Form/fieldReducer.js.map +1 -1
  152. package/dist/forms/Form/index.d.ts.map +1 -1
  153. package/dist/forms/Form/index.js +0 -1
  154. package/dist/forms/Form/index.js.map +1 -1
  155. package/dist/forms/Form/types.d.ts +0 -5
  156. package/dist/forms/Form/types.d.ts.map +1 -1
  157. package/dist/forms/Form/types.js.map +1 -1
  158. package/dist/forms/RenderFields/index.css +2 -2
  159. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -2
  160. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  161. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  162. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -2
  163. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  164. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  165. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -2
  166. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  167. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  168. package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -2
  169. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  170. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  171. package/dist/forms/useField/types.d.ts +0 -4
  172. package/dist/forms/useField/types.d.ts.map +1 -1
  173. package/dist/forms/useField/types.js.map +1 -1
  174. package/dist/icons/Arrow/index.d.ts +1 -1
  175. package/dist/icons/Arrow/index.d.ts.map +1 -1
  176. package/dist/icons/Arrow/index.js +7 -1
  177. package/dist/icons/Arrow/index.js.map +1 -1
  178. package/dist/icons/Clock/index.d.ts +6 -0
  179. package/dist/icons/Clock/index.d.ts.map +1 -0
  180. package/dist/icons/Clock/index.js +18 -0
  181. package/dist/icons/Clock/index.js.map +1 -0
  182. package/dist/icons/Pin/index.d.ts +7 -0
  183. package/dist/icons/Pin/index.d.ts.map +1 -0
  184. package/dist/icons/Pin/index.js +23 -0
  185. package/dist/icons/Pin/index.js.map +1 -0
  186. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  187. package/dist/icons/Sidebar/index.js +2 -0
  188. package/dist/icons/Sidebar/index.js.map +1 -1
  189. package/dist/icons/Table/index.css +5 -1
  190. package/dist/layouts/Root/getRootLayoutData.d.ts +2 -2
  191. package/dist/layouts/Root/getRootLayoutData.d.ts.map +1 -1
  192. package/dist/layouts/Root/getRootLayoutData.js +8 -4
  193. package/dist/layouts/Root/getRootLayoutData.js.map +1 -1
  194. package/dist/layouts/Root/index.d.ts +1 -1
  195. package/dist/layouts/Root/index.d.ts.map +1 -1
  196. package/dist/layouts/Root/index.js +5 -20
  197. package/dist/layouts/Root/index.js.map +1 -1
  198. package/dist/providers/ListQuery/types.d.ts +0 -4
  199. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  200. package/dist/providers/ListQuery/types.js.map +1 -1
  201. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  202. package/dist/providers/RouteCache/index.js +37 -25
  203. package/dist/providers/RouteCache/index.js.map +1 -1
  204. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  205. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  206. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  207. package/dist/providers/TableColumns/types.d.ts +1 -34
  208. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  209. package/dist/providers/TableColumns/types.js.map +1 -1
  210. package/dist/styles.css +22 -3
  211. package/dist/templates/Default/index.css +0 -1
  212. package/dist/utilities/appendCacheTag.d.ts +1 -0
  213. package/dist/utilities/appendCacheTag.d.ts.map +1 -1
  214. package/dist/utilities/appendCacheTag.js +2 -1
  215. package/dist/utilities/appendCacheTag.js.map +1 -1
  216. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  217. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  218. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  219. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  220. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  221. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  222. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  223. package/dist/utilities/getDocumentThumbnail.d.ts +6 -0
  224. package/dist/utilities/getDocumentThumbnail.d.ts.map +1 -0
  225. package/dist/utilities/getDocumentThumbnail.js +27 -0
  226. package/dist/utilities/getDocumentThumbnail.js.map +1 -0
  227. package/dist/utilities/getDocumentThumbnailPopulate.d.ts +7 -0
  228. package/dist/utilities/getDocumentThumbnailPopulate.d.ts.map +1 -0
  229. package/dist/utilities/getDocumentThumbnailPopulate.js +23 -0
  230. package/dist/utilities/getDocumentThumbnailPopulate.js.map +1 -0
  231. package/dist/utilities/getDocumentThumbnailSelect.d.ts +7 -0
  232. package/dist/utilities/getDocumentThumbnailSelect.d.ts.map +1 -0
  233. package/dist/utilities/getDocumentThumbnailSelect.js +24 -0
  234. package/dist/utilities/getDocumentThumbnailSelect.js.map +1 -0
  235. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  236. package/dist/utilities/handleLivePreview.js.map +1 -1
  237. package/dist/utilities/hasSavePermission.js.map +1 -1
  238. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  239. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  240. package/dist/utilities/serverFunctionRegistry.js +2 -0
  241. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  242. package/dist/utilities/traverseForLocalizedFields.d.ts +7 -2
  243. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  244. package/dist/utilities/traverseForLocalizedFields.js +22 -8
  245. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  246. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  247. package/dist/views/CreateFirstUser/index.js +4 -2
  248. package/dist/views/CreateFirstUser/index.js.map +1 -1
  249. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  250. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  251. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  252. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  253. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  254. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +16 -4
  255. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  256. package/dist/views/Edit/index.css +26 -0
  257. package/dist/views/Edit/index.d.ts.map +1 -1
  258. package/dist/views/Edit/index.js +1 -1
  259. package/dist/views/Edit/index.js.map +1 -1
  260. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  261. package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -1
  262. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  263. package/dist/views/List/DocumentGrid/index.d.ts.map +1 -1
  264. package/dist/views/List/DocumentGrid/index.js +2 -37
  265. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  266. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  267. package/dist/views/List/enrichDocsWithVersionStatus.js +3 -1
  268. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  269. package/dist/views/List/index.d.ts.map +1 -1
  270. package/dist/views/List/index.js +11 -24
  271. package/dist/views/List/index.js.map +1 -1
  272. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -12
  273. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  274. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +2 -2
  275. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  276. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +2 -2
  277. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  278. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +2 -2
  279. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  280. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +2 -2
  281. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  282. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +2 -2
  283. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  284. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -2
  285. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  286. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  287. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +2 -2
  288. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  289. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -8
  290. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  291. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -2
  292. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  293. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  294. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +2 -2
  295. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  296. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  297. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +31 -5
  298. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  299. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +41 -0
  300. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +19 -0
  301. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +1 -0
  302. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +121 -0
  303. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +1 -0
  304. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +20 -0
  305. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +1 -0
  306. package/dist/widgets/RecentlyViewed/getDocuments.js +254 -0
  307. package/dist/widgets/RecentlyViewed/getDocuments.js.map +1 -0
  308. package/dist/widgets/RecentlyViewed/index.client.d.ts +41 -0
  309. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +1 -0
  310. package/dist/widgets/RecentlyViewed/index.client.js +409 -0
  311. package/dist/widgets/RecentlyViewed/index.client.js.map +1 -0
  312. package/dist/widgets/RecentlyViewed/index.css +352 -0
  313. package/dist/widgets/RecentlyViewed/index.d.ts +1 -1
  314. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  315. package/dist/widgets/RecentlyViewed/index.js +33 -134
  316. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  317. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts +18 -0
  318. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +1 -0
  319. package/dist/widgets/RecentlyViewed/pinnedPreferences.js +81 -0
  320. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +1 -0
  321. package/dist/widgets/RecentlyViewed/recents.d.ts +8 -0
  322. package/dist/widgets/RecentlyViewed/recents.d.ts.map +1 -0
  323. package/dist/widgets/RecentlyViewed/recents.js +19 -0
  324. package/dist/widgets/RecentlyViewed/recents.js.map +1 -0
  325. package/package.json +16 -16
  326. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  327. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  328. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  329. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-I6PL55BF.js.map} +0 -0
  330. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-XAKGIULG.js.map} +0 -0
@@ -3,6 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
+ import { useId } from 'react';
6
7
  import { FieldLabel } from '../../../fields/FieldLabel/index.js';
7
8
  import { useConfig } from '../../../providers/Config/index.js';
8
9
  import { useTranslation } from '../../../providers/Translation/index.js';
@@ -11,11 +12,12 @@ import { ReactSelect } from '../../ReactSelect/index.js';
11
12
  import { listHeaderClass } from '../index.js';
12
13
  const drawerBaseClass = 'list-drawer';
13
14
  export const DrawerRelationshipSelect = () => {
14
- const $ = _c(12);
15
+ const $ = _c(13);
15
16
  const {
16
17
  i18n,
17
18
  t
18
19
  } = useTranslation();
20
+ const collectionInputID = useId();
19
21
  const {
20
22
  config: t0,
21
23
  getEntityConfig
@@ -29,21 +31,21 @@ export const DrawerRelationshipSelect = () => {
29
31
  setSelectedOption
30
32
  } = useListDrawerContext();
31
33
  let t1;
32
- if ($[0] !== collections || $[1] !== enabledCollections || $[2] !== getEntityConfig || $[3] !== i18n || $[4] !== selectedOption || $[5] !== setSelectedOption || $[6] !== t) {
34
+ if ($[0] !== collectionInputID || $[1] !== collections || $[2] !== enabledCollections || $[3] !== getEntityConfig || $[4] !== i18n || $[5] !== selectedOption || $[6] !== setSelectedOption || $[7] !== t) {
33
35
  t1 = Symbol.for("react.early_return_sentinel");
34
36
  bb0: {
35
37
  let t2;
36
- if ($[8] !== enabledCollections) {
38
+ if ($[9] !== enabledCollections) {
37
39
  t2 = t3 => {
38
40
  const {
39
41
  slug
40
42
  } = t3;
41
43
  return enabledCollections.includes(slug);
42
44
  };
43
- $[8] = enabledCollections;
44
- $[9] = t2;
45
+ $[9] = enabledCollections;
46
+ $[10] = t2;
45
47
  } else {
46
- t2 = $[9];
48
+ t2 = $[10];
47
49
  }
48
50
  const enabledCollectionConfigs = collections.filter(t2);
49
51
  if (enabledCollectionConfigs.length > 1) {
@@ -51,24 +53,25 @@ export const DrawerRelationshipSelect = () => {
51
53
  collectionSlug: selectedOption.value
52
54
  });
53
55
  let t3;
54
- if ($[10] !== i18n) {
56
+ if ($[11] !== i18n) {
55
57
  t3 = coll => ({
56
58
  label: getTranslation(coll.labels.singular, i18n),
57
59
  value: coll.slug
58
60
  });
59
- $[10] = i18n;
60
- $[11] = t3;
61
+ $[11] = i18n;
62
+ $[12] = t3;
61
63
  } else {
62
- t3 = $[11];
64
+ t3 = $[12];
63
65
  }
64
66
  t1 = _jsxs("div", {
65
67
  className: `${drawerBaseClass}__select-collection-wrap`,
66
68
  children: [_jsx(FieldLabel, {
67
- htmlFor: `select-collection__${drawerBaseClass}`,
69
+ htmlFor: collectionInputID,
68
70
  label: t("upload:selectCollectionToBrowse")
69
71
  }), _jsx(ReactSelect, {
70
72
  className: `${listHeaderClass}__select-collection`,
71
73
  id: `select-collection__${drawerBaseClass}`,
74
+ inputId: collectionInputID,
72
75
  isClearable: false,
73
76
  onChange: setSelectedOption,
74
77
  options: enabledCollectionConfigs.map(t3),
@@ -81,16 +84,17 @@ export const DrawerRelationshipSelect = () => {
81
84
  break bb0;
82
85
  }
83
86
  }
84
- $[0] = collections;
85
- $[1] = enabledCollections;
86
- $[2] = getEntityConfig;
87
- $[3] = i18n;
88
- $[4] = selectedOption;
89
- $[5] = setSelectedOption;
90
- $[6] = t;
91
- $[7] = t1;
87
+ $[0] = collectionInputID;
88
+ $[1] = collections;
89
+ $[2] = enabledCollections;
90
+ $[3] = getEntityConfig;
91
+ $[4] = i18n;
92
+ $[5] = selectedOption;
93
+ $[6] = setSelectedOption;
94
+ $[7] = t;
95
+ $[8] = t1;
92
96
  } else {
93
- t1 = $[7];
97
+ t1 = $[8];
94
98
  }
95
99
  if (t1 !== Symbol.for("react.early_return_sentinel")) {
96
100
  return t1;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","FieldLabel","useConfig","useTranslation","useListDrawerContext","ReactSelect","listHeaderClass","drawerBaseClass","DrawerRelationshipSelect","$","i18n","t","config","t0","getEntityConfig","collections","enabledCollections","selectedOption","setSelectedOption","t1","Symbol","for","t2","t3","slug","includes","enabledCollectionConfigs","filter","length","activeCollectionConfig","collectionSlug","value","coll","label","labels","singular","_jsxs","className","children","_jsx","htmlFor","id","isClearable","onChange","options","map"],"sources":["../../../../src/elements/ListHeader/DrawerRelationshipSelect/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useListDrawerContext } from '../../ListDrawer/Provider.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { listHeaderClass } from '../index.js'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport const DrawerRelationshipSelect = () => {\n const { i18n, t } = useTranslation()\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n const { enabledCollections, selectedOption, setSelectedOption } = useListDrawerContext()\n const enabledCollectionConfigs = collections.filter(({ slug }) =>\n enabledCollections.includes(slug),\n )\n if (enabledCollectionConfigs.length > 1) {\n const activeCollectionConfig = getEntityConfig({ collectionSlug: selectedOption.value })\n\n return (\n <div className={`${drawerBaseClass}__select-collection-wrap`}>\n <FieldLabel\n htmlFor={`select-collection__${drawerBaseClass}`}\n label={t('upload:selectCollectionToBrowse')}\n />\n <ReactSelect\n className={`${listHeaderClass}__select-collection`}\n id={`select-collection__${drawerBaseClass}`}\n isClearable={false}\n onChange={setSelectedOption}\n options={enabledCollectionConfigs.map((coll) => ({\n label: getTranslation(coll.labels.singular, i18n),\n value: coll.slug,\n }))}\n value={{\n label: getTranslation(activeCollectionConfig?.labels.singular, i18n),\n value: activeCollectionConfig?.slug,\n }}\n />\n </div>\n )\n }\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,cAAc,QAAQ;AAE/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAEhC,MAAMC,eAAA,GAAkB;AAExB,OAAO,MAAMC,wBAAA,GAA2BA,CAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EACtC;IAAAW,IAAA;IAAAC;EAAA,IAAoBR,cAAA;EACpB;IAAAS,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAGIZ,SAAA;EAFM;IAAAa;EAAA,IAAAF,EAAe;EAGzB;IAAAG,kBAAA;IAAAC,cAAA;IAAAC;EAAA,IAAkEd,oBAAA;EAAA,IAAAe,EAAA;EAAA,IAAAV,CAAA,QAAAM,WAAA,IAAAN,CAAA,QAAAO,kBAAA,IAAAP,CAAA,QAAAK,eAAA,IAAAL,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAQ,cAAA,IAAAR,CAAA,QAAAS,iBAAA,IAAAT,CAAA,QAAAE,CAAA;IAQ9DQ,EAAA,GAAAC,MAAA,CAAAC,GAAA,8B;;;;QAPgDC,EAAA,GAAAC,EAAA;UAAC;YAAAC;UAAA,IAAAD,EAAQ;UAAA,OAC3DP,kBAAA,CAAAS,QAAA,CAA4BD,IAAA;QAAA;QAAAf,CAAA,MAAAO,kBAAA;QAAAP,CAAA,MAAAa,EAAA;MAAA;QAAAA,EAAA,GAAAb,CAAA;MAAA;MAD9B,MAAAiB,wBAAA,GAAiCX,WAAA,CAAAY,MAAA,CAAmBL,EACtB;MAAA,IAE1BI,wBAAA,CAAAE,MAAA,IAAkC;QACpC,MAAAC,sBAAA,GAA+Bf,eAAA;UAAAgB,cAAA,EAAkCb,cAAA,CAAAc;QAAA,CAAqB;QAAA,IAAAR,EAAA;QAAA,IAAAd,CAAA,SAAAC,IAAA;UAa1Ca,EAAA,GAAAS,IAAA;YAAAC,KAAA,EAC7BjC,cAAA,CAAegC,IAAA,CAAAE,MAAA,CAAAC,QAAA,EAAsBzB,IAAA;YAAAqB,KAAA,EACrCC,IAAA,CAAAR;UAAA;UACTf,CAAA,OAAAC,IAAA;UAAAD,CAAA,OAAAc,EAAA;QAAA;UAAAA,EAAA,GAAAd,CAAA;QAAA;QAbJU,EAAA,GAAAiB,KAAA,CAAC;UAAAC,SAAA,EAAe,GAAA9B,eAAA,0BAA4C;UAAA+B,QAAA,GAC1DC,IAAA,CAAAtC,UAAA;YAAAuC,OAAA,EACW,sBAAAjC,eAAA,EAAuC;YAAA0B,KAAA,EACzCtB,CAAA,CAAE;UAAA,C,GAEX4B,IAAA,CAAAlC,WAAA;YAAAgC,SAAA,EACa,GAAA/B,eAAA,qBAAuC;YAAAmC,EAAA,EAC9C,sBAAAlC,eAAA,EAAuC;YAAAmC,WAAA;YAAAC,QAAA,EAEjCzB,iBAAA;YAAA0B,OAAA,EACDlB,wBAAA,CAAAmB,GAAA,CAA6BtB,EAGtC;YAAAQ,KAAA;cAAAE,KAAA,EAESjC,cAAA,CAAe6B,sBAAA,EAAAK,MAAA,CAAAC,QAAA,EAAyCzB,IAAA;cAAAqB,KAAA,EACxDF,sBAAA,EAAAL;YAAA;UAAA,C;;;;;;;;;;;;;;;;;;;;CAOnB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","useId","FieldLabel","useConfig","useTranslation","useListDrawerContext","ReactSelect","listHeaderClass","drawerBaseClass","DrawerRelationshipSelect","$","i18n","t","collectionInputID","config","t0","getEntityConfig","collections","enabledCollections","selectedOption","setSelectedOption","t1","Symbol","for","t2","t3","slug","includes","enabledCollectionConfigs","filter","length","activeCollectionConfig","collectionSlug","value","coll","label","labels","singular","_jsxs","className","children","_jsx","htmlFor","id","inputId","isClearable","onChange","options","map"],"sources":["../../../../src/elements/ListHeader/DrawerRelationshipSelect/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useId } from 'react'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useListDrawerContext } from '../../ListDrawer/Provider.js'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { listHeaderClass } from '../index.js'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport const DrawerRelationshipSelect = () => {\n const { i18n, t } = useTranslation()\n const collectionInputID = useId()\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n const { enabledCollections, selectedOption, setSelectedOption } = useListDrawerContext()\n const enabledCollectionConfigs = collections.filter(({ slug }) =>\n enabledCollections.includes(slug),\n )\n if (enabledCollectionConfigs.length > 1) {\n const activeCollectionConfig = getEntityConfig({ collectionSlug: selectedOption.value })\n\n return (\n <div className={`${drawerBaseClass}__select-collection-wrap`}>\n <FieldLabel htmlFor={collectionInputID} label={t('upload:selectCollectionToBrowse')} />\n <ReactSelect\n className={`${listHeaderClass}__select-collection`}\n id={`select-collection__${drawerBaseClass}`}\n inputId={collectionInputID}\n isClearable={false}\n onChange={setSelectedOption}\n options={enabledCollectionConfigs.map((coll) => ({\n label: getTranslation(coll.labels.singular, i18n),\n value: coll.slug,\n }))}\n value={{\n label: getTranslation(activeCollectionConfig?.labels.singular, i18n),\n value: activeCollectionConfig?.slug,\n }}\n />\n </div>\n )\n }\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,QAAQ;AAEtB,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAEhC,MAAMC,eAAA,GAAkB;AAExB,OAAO,MAAMC,wBAAA,GAA2BA,CAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EACtC;IAAAY,IAAA;IAAAC;EAAA,IAAoBR,cAAA;EACpB,MAAAS,iBAAA,GAA0BZ,KAAA;EAC1B;IAAAa,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAGIb,SAAA;EAFM;IAAAc;EAAA,IAAAF,EAAe;EAGzB;IAAAG,kBAAA;IAAAC,cAAA;IAAAC;EAAA,IAAkEf,oBAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAX,CAAA,QAAAG,iBAAA,IAAAH,CAAA,QAAAO,WAAA,IAAAP,CAAA,QAAAQ,kBAAA,IAAAR,CAAA,QAAAM,eAAA,IAAAN,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAS,cAAA,IAAAT,CAAA,QAAAU,iBAAA,IAAAV,CAAA,QAAAE,CAAA;IAQ9DS,EAAA,GAAAC,MAAA,CAAAC,GAAA,8B;;;;QAPgDC,EAAA,GAAAC,EAAA;UAAC;YAAAC;UAAA,IAAAD,EAAQ;UAAA,OAC3DP,kBAAA,CAAAS,QAAA,CAA4BD,IAAA;QAAA;QAAAhB,CAAA,MAAAQ,kBAAA;QAAAR,CAAA,OAAAc,EAAA;MAAA;QAAAA,EAAA,GAAAd,CAAA;MAAA;MAD9B,MAAAkB,wBAAA,GAAiCX,WAAA,CAAAY,MAAA,CAAmBL,EACtB;MAAA,IAE1BI,wBAAA,CAAAE,MAAA,IAAkC;QACpC,MAAAC,sBAAA,GAA+Bf,eAAA;UAAAgB,cAAA,EAAkCb,cAAA,CAAAc;QAAA,CAAqB;QAAA,IAAAR,EAAA;QAAA,IAAAf,CAAA,SAAAC,IAAA;UAW1Cc,EAAA,GAAAS,IAAA;YAAAC,KAAA,EAC7BnC,cAAA,CAAekC,IAAA,CAAAE,MAAA,CAAAC,QAAA,EAAsB1B,IAAA;YAAAsB,KAAA,EACrCC,IAAA,CAAAR;UAAA;UACThB,CAAA,OAAAC,IAAA;UAAAD,CAAA,OAAAe,EAAA;QAAA;UAAAA,EAAA,GAAAf,CAAA;QAAA;QAXJW,EAAA,GAAAiB,KAAA,CAAC;UAAAC,SAAA,EAAe,GAAA/B,eAAA,0BAA4C;UAAAgC,QAAA,GAC1DC,IAAA,CAAAvC,UAAA;YAAAwC,OAAA,EAAqB7B,iBAAA;YAAAsB,KAAA,EAA0BvB,CAAA,CAAE;UAAA,C,GACjD6B,IAAA,CAAAnC,WAAA;YAAAiC,SAAA,EACa,GAAAhC,eAAA,qBAAuC;YAAAoC,EAAA,EAC9C,sBAAAnC,eAAA,EAAuC;YAAAoC,OAAA,EAClC/B,iBAAA;YAAAgC,WAAA;YAAAC,QAAA,EAEC1B,iBAAA;YAAA2B,OAAA,EACDnB,wBAAA,CAAAoB,GAAA,CAA6BvB,EAGtC;YAAAQ,KAAA;cAAAE,KAAA,EAESnC,cAAA,CAAe+B,sBAAA,EAAAK,MAAA,CAAAC,QAAA,EAAyC1B,IAAA;cAAAsB,KAAA,EACxDF,sBAAA,EAAAL;YAAA;UAAA,C;;;;;;;;;;;;;;;;;;;;;CAOnB","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  @layer payload-default {
2
2
  .collection-edit:has(.live-preview-window--is-expanded) {
3
3
  .document-fields {
4
- width: 0;
4
+ display: none;
5
5
  }
6
6
  }
7
7
 
@@ -50,6 +50,12 @@
50
50
 
51
51
  /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
52
52
  @media (max-width: 1024px) {
53
+ .collection-edit:has(.live-preview-window--is-live-previewing) {
54
+ .document-fields {
55
+ display: none;
56
+ }
57
+ }
58
+
53
59
  .live-preview-window {
54
60
  width: 100%;
55
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,aAAa,CAAA;AAEpB;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB,CAsBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAEpB;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB,CAuBA,CAAA"}
@@ -3,6 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import React from 'react';
6
+ import { useEmbed } from '../../../providers/Embed/index.js';
6
7
  import { useNav } from '../context.js';
7
8
  import './index.css';
8
9
  /**
@@ -20,6 +21,9 @@ export const NavWrapper = props => {
20
21
  navOpen,
21
22
  navRef
22
23
  } = useNav();
24
+ const {
25
+ isEmbedded
26
+ } = useEmbed();
23
27
  const t0 = navOpen && `${baseClass}--nav-open`;
24
28
  const t1 = hydrated && `${baseClass}--nav-hydrated`;
25
29
  let t2;
@@ -34,28 +38,29 @@ export const NavWrapper = props => {
34
38
  }
35
39
  const t3 = t2.join(" ");
36
40
  const t4 = !navOpen ? true : undefined;
37
- const t5 = `${baseClass}__scroll`;
38
- let t6;
39
- if ($[4] !== children || $[5] !== header || $[6] !== navRef || $[7] !== t3 || $[8] !== t4 || $[9] !== t5) {
40
- t6 = _jsxs("aside", {
41
+ const t5 = !isEmbedded && header;
42
+ const t6 = `${baseClass}__scroll`;
43
+ let t7;
44
+ if ($[4] !== children || $[5] !== navRef || $[6] !== t3 || $[7] !== t4 || $[8] !== t5 || $[9] !== t6) {
45
+ t7 = _jsxs("aside", {
41
46
  className: t3,
42
47
  inert: t4,
43
- children: [header, _jsx("div", {
44
- className: t5,
48
+ children: [t5, _jsx("div", {
49
+ className: t6,
45
50
  ref: navRef,
46
51
  children
47
52
  })]
48
53
  });
49
54
  $[4] = children;
50
- $[5] = header;
51
- $[6] = navRef;
52
- $[7] = t3;
53
- $[8] = t4;
54
- $[9] = t5;
55
- $[10] = t6;
55
+ $[5] = navRef;
56
+ $[6] = t3;
57
+ $[7] = t4;
58
+ $[8] = t5;
59
+ $[9] = t6;
60
+ $[10] = t7;
56
61
  } else {
57
- t6 = $[10];
62
+ t7 = $[10];
58
63
  }
59
- return t6;
64
+ return t7;
60
65
  };
61
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useNav","NavWrapper","props","$","baseClass","children","header","hydrated","navOpen","navRef","t0","t1","t2","filter","Boolean","t3","join","t4","undefined","t5","t6","_jsxs","className","inert","_jsx","ref"],"sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useNav } from '../context.js'\nimport './index.css'\n\n/**\n * @internal\n */\nexport const NavWrapper: React.FC<{\n baseClass?: string\n children: React.ReactNode\n header?: React.ReactNode\n}> = (props) => {\n const { baseClass, children, header } = props\n\n const { hydrated, navOpen, navRef } = useNav()\n\n return (\n <aside\n className={[\n baseClass,\n navOpen && `${baseClass}--nav-open`,\n hydrated && `${baseClass}--nav-hydrated`,\n ]\n .filter(Boolean)\n .join(' ')}\n inert={!navOpen ? true : undefined}\n >\n {header}\n <div className={`${baseClass}__scroll`} ref={navRef}>\n {children}\n </div>\n </aside>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP;;;AAGA,OAAO,MAAMC,UAAA,GAIRC,KAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACH;IAAAM,SAAA;IAAAC,QAAA;IAAAC;EAAA,IAAwCJ,KAAA;EAExC;IAAAK,QAAA;IAAAC,OAAA;IAAAC;EAAA,IAAsCT,MAAA;EAMhC,MAAAU,EAAA,GAAAF,OAAA,IAAW,GAAGJ,SAAA,YAAqB;EACnC,MAAAO,EAAA,GAAAJ,QAAA,IAAY,GAAGH,SAAA,gBAAyB;EAAA,IAAAQ,EAAA;EAAA,IAAAT,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAO,EAAA,IAAAP,CAAA,QAAAQ,EAAA;IAH/BC,EAAA,IACTR,SAAA,EACAM,EAAmC,EACnCC,EAAwC,EAAAE,MAAA,CAAAC,OAEhC;IAAAX,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EALC,MAAAY,EAAA,GAAAH,EAKD,CAAAI,IAAA,CACF;EACD,MAAAC,EAAA,IAACT,OAAA,UAAAU,SAAiB;EAGT,MAAAC,EAAA,MAAGf,SAAA,UAAmB;EAAA,IAAAgB,EAAA;EAAA,IAAAjB,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAM,MAAA,IAAAN,CAAA,QAAAY,EAAA,IAAAZ,CAAA,QAAAc,EAAA,IAAAd,CAAA,QAAAgB,EAAA;IAXxCC,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EACYP,EAMH;MAAAQ,KAAA,EACDN,EAAkB;MAAAZ,QAAA,GAExBC,MAAA,EACDkB,IAAA,CAAC;QAAAF,SAAA,EAAeH,EAAsB;QAAAM,GAAA,EAAOhB,MAAA;QAAAJ;MAAA,C;;;;;;;;;;;;SAX/Ce,E;CAgBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEmbed","useNav","NavWrapper","props","$","baseClass","children","header","hydrated","navOpen","navRef","isEmbedded","t0","t1","t2","filter","Boolean","t3","join","t4","undefined","t5","t6","t7","_jsxs","className","inert","_jsx","ref"],"sources":["../../../../src/elements/Nav/NavWrapper/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useEmbed } from '../../../providers/Embed/index.js'\nimport { useNav } from '../context.js'\nimport './index.css'\n\n/**\n * @internal\n */\nexport const NavWrapper: React.FC<{\n baseClass?: string\n children: React.ReactNode\n header?: React.ReactNode\n}> = (props) => {\n const { baseClass, children, header } = props\n\n const { hydrated, navOpen, navRef } = useNav()\n const { isEmbedded } = useEmbed()\n\n return (\n <aside\n className={[\n baseClass,\n navOpen && `${baseClass}--nav-open`,\n hydrated && `${baseClass}--nav-hydrated`,\n ]\n .filter(Boolean)\n .join(' ')}\n inert={!navOpen ? true : undefined}\n >\n {!isEmbedded && header}\n <div className={`${baseClass}__scroll`} ref={navRef}>\n {children}\n </div>\n </aside>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP;;;AAGA,OAAO,MAAMC,UAAA,GAIRC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EACH;IAAAO,SAAA;IAAAC,QAAA;IAAAC;EAAA,IAAwCJ,KAAA;EAExC;IAAAK,QAAA;IAAAC,OAAA;IAAAC;EAAA,IAAsCT,MAAA;EACtC;IAAAU;EAAA,IAAuBX,QAAA;EAMjB,MAAAY,EAAA,GAAAH,OAAA,IAAW,GAAGJ,SAAA,YAAqB;EACnC,MAAAQ,EAAA,GAAAL,QAAA,IAAY,GAAGH,SAAA,gBAAyB;EAAA,IAAAS,EAAA;EAAA,IAAAV,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAS,EAAA;IAH/BC,EAAA,IACTT,SAAA,EACAO,EAAmC,EACnCC,EAAwC,EAAAE,MAAA,CAAAC,OAEhC;IAAAZ,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAQ,EAAA;IAAAR,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EALC,MAAAa,EAAA,GAAAH,EAKD,CAAAI,IAAA,CACF;EACD,MAAAC,EAAA,IAACV,OAAA,UAAAW,SAAiB;EAExB,MAAAC,EAAA,IAACV,UAAA,IAAcJ,MAAA;EACA,MAAAe,EAAA,MAAGjB,SAAA,UAAmB;EAAA,IAAAkB,EAAA;EAAA,IAAAnB,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAM,MAAA,IAAAN,CAAA,QAAAa,EAAA,IAAAb,CAAA,QAAAe,EAAA,IAAAf,CAAA,QAAAiB,EAAA,IAAAjB,CAAA,QAAAkB,EAAA;IAXxCC,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EACYR,EAMH;MAAAS,KAAA,EACDP,EAAkB;MAAAb,QAAA,GAExBe,EAAe,EAChBM,IAAA,CAAC;QAAAF,SAAA,EAAeH,EAAsB;QAAAM,GAAA,EAAOlB,MAAA;QAAAJ;MAAA,C;;;;;;;;;;;;SAX/CiB,E;CAgBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAa1C,OAAO,aAAa,CAAA;AAEpB,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,wBAA6B,qBA8PpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAiBpD,OAAO,aAAa,CAAA;AAEpB,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,wBAA6B,qBAqUpD"}
@@ -4,7 +4,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { getTranslation } from '@payloadcms/translations';
5
5
  import { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared';
6
6
  import * as qs from 'qs-esm';
7
- import React, { useCallback } from 'react';
7
+ import React, { useCallback, useState } from 'react';
8
+ import { toast } from 'sonner';
8
9
  import { useForm, useFormModified } from '../../forms/Form/context.js';
9
10
  import { FormSubmit } from '../../forms/Submit/index.js';
10
11
  import { useHotkey } from '../../hooks/useHotkey.js';
@@ -14,8 +15,11 @@ import { useEditDepth } from '../../providers/EditDepth/index.js';
14
15
  import { useLocale } from '../../providers/Locale/index.js';
15
16
  import { useOperation } from '../../providers/Operation/index.js';
16
17
  import { useTranslation } from '../../providers/Translation/index.js';
18
+ import { useUploadEdits } from '../../providers/UploadEdits/index.js';
17
19
  import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js';
18
20
  import { PopupList } from '../Popup/index.js';
21
+ import { FieldErrorsToast } from '../Toasts/fieldErrors.js';
22
+ import { validateDocumentLocales } from './validateAllLocales.js';
19
23
  import './index.css';
20
24
  export function PublishButton({
21
25
  label: labelProp
@@ -37,13 +41,18 @@ export function PublishButton({
37
41
  getEntityConfig
38
42
  } = useConfig();
39
43
  const {
44
+ getData,
40
45
  submit
41
46
  } = useForm();
47
+ const {
48
+ uploadEdits
49
+ } = useUploadEdits();
42
50
  const modified = useFormModified();
43
51
  const editDepth = useEditDepth();
44
52
  const locale = useLocale();
45
53
  const localeCode = locale?.code;
46
54
  const {
55
+ blocksMap,
47
56
  localization,
48
57
  routes: {
49
58
  api
@@ -69,7 +78,11 @@ export function PublishButton({
69
78
  }, [collectionSlug, globalSlug, getEntityConfig]);
70
79
  const hasNewerVersions = unpublishedVersionCount > 0;
71
80
  const canPublish = hasPublishPermission && (modified || hasNewerVersions || !hasPublishedDoc) && uploadStatus !== 'uploading';
72
- const hasLocalizedFields = React.useMemo(() => Boolean(entityConfig?.fields && traverseForLocalizedFields(entityConfig.fields)), [entityConfig?.fields]);
81
+ const [isValidatingLocales, setIsValidatingLocales] = useState(false);
82
+ const hasLocalizedFields = React.useMemo(() => Boolean(entityConfig?.fields && traverseForLocalizedFields({
83
+ blocksMap,
84
+ fields: entityConfig.fields
85
+ })), [blocksMap, entityConfig?.fields]);
73
86
  const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission;
74
87
  const operation = useOperation();
75
88
  const disabled = operation === 'update' && !modified;
@@ -83,7 +96,8 @@ export function PublishButton({
83
96
  depth: 0,
84
97
  draft: true,
85
98
  'fallback-locale': 'null',
86
- locale: localeCode
99
+ locale: localeCode,
100
+ uploadEdits: uploadEdits || undefined
87
101
  }, {
88
102
  addQueryPrefix: true
89
103
  });
@@ -112,7 +126,7 @@ export function PublishButton({
112
126
  },
113
127
  skipValidation: true
114
128
  });
115
- }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id]);
129
+ }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id, uploadEdits]);
116
130
  useHotkey({
117
131
  cmdCtrlKey: true,
118
132
  editDepth,
@@ -129,9 +143,56 @@ export function PublishButton({
129
143
  if (uploadStatus === 'uploading') {
130
144
  return;
131
145
  }
146
+ if (localization && hasLocalizedFields) {
147
+ setIsValidatingLocales(true);
148
+ let validation;
149
+ try {
150
+ const encodedID = id === undefined ? '' : `/${encodeURIComponent(String(id))}`;
151
+ let validationPath;
152
+ if (globalSlug) {
153
+ validationPath = `/globals/${encodeURIComponent(globalSlug)}/validate`;
154
+ } else if (collectionSlug) {
155
+ validationPath = `/${encodeURIComponent(collectionSlug)}${encodedID}/validate`;
156
+ } else {
157
+ throw new Error('Document validation requires a collection or global slug.');
158
+ }
159
+ validation = await validateDocumentLocales({
160
+ activeLocale: localeCode,
161
+ blocksMap,
162
+ data: {
163
+ ...getData(),
164
+ _status: 'published'
165
+ },
166
+ endpoint: formatAdminURL({
167
+ apiRoute: api,
168
+ path: validationPath
169
+ }),
170
+ fields: entityConfig?.fields ?? [],
171
+ locales: localization.locales.map(({
172
+ code
173
+ }) => code)
174
+ });
175
+ } catch {
176
+ toast.error(t('error:unknown'));
177
+ return;
178
+ } finally {
179
+ setIsValidatingLocales(false);
180
+ }
181
+ if (!validation.valid) {
182
+ const introMessage = t('error:followingFieldsInvalid', {
183
+ count: validation.errors.length
184
+ });
185
+ const fieldList = validation.errors.map(error => `${error.locale ? `[${error.locale}] ` : ''}${error.label ? getTranslation(error.label, i18n) : error.path}`).join(', ');
186
+ toast.error(/*#__PURE__*/_jsx(FieldErrorsToast, {
187
+ errorMessage: `${introMessage} ${fieldList}`
188
+ }));
189
+ return;
190
+ }
191
+ }
132
192
  const params_0 = qs.stringify({
133
193
  depth: 0,
134
194
  locale: localeCode,
195
+ uploadEdits: uploadEdits || undefined,
135
196
  ...(localizeStatusEnabled && {
136
197
  publishAllLocales: true
137
198
  })
@@ -153,14 +214,15 @@ export function PublishButton({
153
214
  setMostRecentVersionIsAutosaved(false);
154
215
  setHasPublishedDoc(true);
155
216
  }
156
- }, [localeCode, localizeStatusEnabled, api, collectionSlug, globalSlug, id, setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
217
+ }, [localeCode, localizeStatusEnabled, api, blocksMap, collectionSlug, entityConfig?.fields, getData, globalSlug, hasLocalizedFields, id, localization, i18n, setHasPublishedDoc, submit, setUnpublishedVersionCount, t, uploadStatus, setMostRecentVersionIsAutosaved, uploadEdits]);
157
218
  const publishLocale = useCallback(async locale_0 => {
158
219
  if (uploadStatus === 'uploading') {
159
220
  return;
160
221
  }
161
222
  const params_1 = qs.stringify({
162
223
  depth: 0,
163
- locale: locale_0
224
+ locale: locale_0,
225
+ uploadEdits: uploadEdits || undefined
164
226
  }, {
165
227
  addQueryPrefix: true
166
228
  });
@@ -180,7 +242,7 @@ export function PublishButton({
180
242
  setMostRecentVersionIsAutosaved(false);
181
243
  setHasPublishedDoc(true);
182
244
  }
183
- }, [api, collectionSlug, globalSlug, id, setHasPublishedDoc, setMostRecentVersionIsAutosaved, setUnpublishedVersionCount, submit, uploadStatus]);
245
+ }, [api, collectionSlug, globalSlug, id, setHasPublishedDoc, setMostRecentVersionIsAutosaved, setUnpublishedVersionCount, submit, uploadStatus, uploadEdits]);
184
246
  const activeLocale = localization && localization?.locales.find(locale_1 => typeof locale_1 === 'string' ? locale_1 === localeCode : locale_1.code === localeCode);
185
247
  const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n);
186
248
  if (!hasPublishPermission) {
@@ -189,7 +251,8 @@ export function PublishButton({
189
251
  return /*#__PURE__*/_jsx(React.Fragment, {
190
252
  children: /*#__PURE__*/_jsx(FormSubmit, {
191
253
  buttonId: "action-save",
192
- disabled: !canPublish,
254
+ disabled: !canPublish || isValidatingLocales,
255
+ loading: isValidatingLocales,
193
256
  onClick: isSpecificLocalePublishEnabled ? () => publishLocale(activeLocale.code) : publish,
194
257
  size: "medium",
195
258
  SubMenuPopupContent: isSpecificLocalePublishEnabled ? () => /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasLocalizeStatusEnabled","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","locale","localeCode","code","localization","routes","api","i18n","t","shortLabel","entityConfig","useMemo","hasNewerVersions","canPublish","hasLocalizedFields","Boolean","fields","isSpecificLocalePublishEnabled","operation","disabled","hasAutosave","saveDraft","params","stringify","depth","draft","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","localizeStatusEnabled","publish","publishAllLocales","result","publishLocale","pathSegment","activeLocale","locales","find","activeLocaleLabel","_jsx","Fragment","buttonId","onClick","size","SubMenuPopupContent","ButtonGroup","Button","undefined","type","_jsxs","className"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } 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'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.css'\n\nexport function PublishButton({\n label: labelProp,\n}: { label?: string } & PublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const locale = useLocale()\n const localeCode = locale?.code\n const {\n localization,\n routes: { api },\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n const shortLabel = labelProp || t('version:publish')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const hasLocalizedFields = React.useMemo(\n () => Boolean(entityConfig?.fields && traverseForLocalizedFields(entityConfig.fields)),\n [entityConfig?.fields],\n )\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const localizeStatusEnabled = hasLocalizeStatusEnabled(entityConfig)\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n ...(localizeStatusEnabled && { publishAllLocales: true }),\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n localeCode,\n localizeStatusEnabled,\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n submit,\n uploadStatus,\n ],\n )\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={isSpecificLocalePublishEnabled ? () => publishLocale(activeLocale.code) : publish}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-all-locales\" onClick={publish}>\n {t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : undefined\n }\n type=\"button\"\n >\n {isSpecificLocalePublishEnabled ? (\n t('version:publishIn', { locale: activeLocaleLabel })\n ) : (\n <React.Fragment>\n <span className=\"publish-button__label--full\">{label}</span>\n <span className=\"publish-button__label--short\">{shortLabel}</span>\n </React.Fragment>\n )}\n </FormSubmit>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasLocalizeStatusEnabled","qs","React","useCallback","useState","toast","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","useUploadEdits","traverseForLocalizedFields","PopupList","FieldErrorsToast","validateDocumentLocales","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","getData","submit","uploadEdits","modified","editDepth","locale","localeCode","code","blocksMap","localization","routes","api","i18n","t","shortLabel","entityConfig","useMemo","hasNewerVersions","canPublish","isValidatingLocales","setIsValidatingLocales","hasLocalizedFields","Boolean","fields","isSpecificLocalePublishEnabled","operation","disabled","hasAutosave","saveDraft","params","stringify","depth","draft","undefined","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","localizeStatusEnabled","publish","validation","encodedID","encodeURIComponent","String","validationPath","Error","activeLocale","data","endpoint","locales","map","error","valid","introMessage","count","errors","length","fieldList","join","_jsx","errorMessage","publishAllLocales","result","publishLocale","pathSegment","find","activeLocaleLabel","Fragment","buttonId","loading","onClick","size","SubMenuPopupContent","ButtonGroup","Button","type","_jsxs","className"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\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'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { FieldErrorsToast } from '../Toasts/fieldErrors.js'\nimport { validateDocumentLocales } from './validateAllLocales.js'\nimport './index.css'\n\nexport function PublishButton({\n label: labelProp,\n}: { label?: string } & PublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { getData, submit } = useForm()\n const { uploadEdits } = useUploadEdits()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const locale = useLocale()\n const localeCode = locale?.code\n const {\n blocksMap,\n localization,\n routes: { api },\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n const shortLabel = labelProp || t('version:publish')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const [isValidatingLocales, setIsValidatingLocales] = useState(false)\n\n const hasLocalizedFields = React.useMemo(\n () =>\n Boolean(\n entityConfig?.fields &&\n traverseForLocalizedFields({\n blocksMap,\n fields: entityConfig.fields,\n }),\n ),\n [blocksMap, entityConfig?.fields],\n )\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n uploadEdits: uploadEdits || undefined,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id, uploadEdits])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const localizeStatusEnabled = hasLocalizeStatusEnabled(entityConfig)\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n if (localization && hasLocalizedFields) {\n setIsValidatingLocales(true)\n let validation\n\n try {\n const encodedID = id === undefined ? '' : `/${encodeURIComponent(String(id))}`\n let validationPath: `/${string}`\n\n if (globalSlug) {\n validationPath = `/globals/${encodeURIComponent(globalSlug)}/validate`\n } else if (collectionSlug) {\n validationPath = `/${encodeURIComponent(collectionSlug)}${encodedID}/validate`\n } else {\n throw new Error('Document validation requires a collection or global slug.')\n }\n\n validation = await validateDocumentLocales({\n activeLocale: localeCode,\n blocksMap,\n data: { ...getData(), _status: 'published' },\n endpoint: formatAdminURL({ apiRoute: api, path: validationPath }),\n fields: entityConfig?.fields ?? [],\n locales: localization.locales.map(({ code }) => code),\n })\n } catch {\n toast.error(t('error:unknown'))\n return\n } finally {\n setIsValidatingLocales(false)\n }\n\n if (!validation.valid) {\n const introMessage = t('error:followingFieldsInvalid', { count: validation.errors.length })\n const fieldList = validation.errors\n .map(\n (error) =>\n `${error.locale ? `[${error.locale}] ` : ''}${\n error.label ? getTranslation(error.label, i18n) : error.path\n }`,\n )\n .join(', ')\n\n toast.error(<FieldErrorsToast errorMessage={`${introMessage} ${fieldList}`} />)\n return\n }\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n uploadEdits: uploadEdits || undefined,\n ...(localizeStatusEnabled && { publishAllLocales: true }),\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n localeCode,\n localizeStatusEnabled,\n api,\n blocksMap,\n collectionSlug,\n entityConfig?.fields,\n getData,\n globalSlug,\n hasLocalizedFields,\n id,\n localization,\n i18n,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n t,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n uploadEdits,\n ])\n\n const publishLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n uploadEdits: uploadEdits || undefined,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n submit,\n uploadStatus,\n uploadEdits,\n ],\n )\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish || isValidatingLocales}\n loading={isValidatingLocales}\n onClick={isSpecificLocalePublishEnabled ? () => publishLocale(activeLocale.code) : publish}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-all-locales\" onClick={publish}>\n {t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : undefined\n }\n type=\"button\"\n >\n {isSpecificLocalePublishEnabled ? (\n t('version:publishIn', { locale: activeLocaleLabel })\n ) : (\n <React.Fragment>\n <span className=\"publish-button__label--full\">{label}</span>\n <span className=\"publish-button__label--short\">{shortLabel}</span>\n </React.Fragment>\n )}\n </FormSubmit>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { ClientBlock, ClientField, Data, ValidationResult } from 'payload';
2
+ export declare function validateDocumentLocales({ activeLocale, blocksMap, data, endpoint, fields, locales, signal, }: {
3
+ activeLocale: string;
4
+ blocksMap: Record<string, ClientBlock>;
5
+ data: Data;
6
+ endpoint: string;
7
+ fields: ClientField[];
8
+ locales: string[];
9
+ signal?: AbortSignal;
10
+ }): Promise<ValidationResult>;
11
+ //# sourceMappingURL=validateAllLocales.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAllLocales.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/validateAllLocales.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,IAAI,EAEJ,gBAAgB,EACjB,MAAM,SAAS,CAAA;AA6ChB,wBAAsB,uBAAuB,CAAC,EAC5C,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0C5B"}