@payloadcms/ui 4.0.0-internal.d1cc1d3 → 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 (751) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/colors.css +7 -6
  3. package/dist/css/forms.css +1 -0
  4. package/dist/css/preflight.css +1 -0
  5. package/dist/css/spacing.css +18 -0
  6. package/dist/css/typography.css +158 -14
  7. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  8. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  9. package/dist/elements/APIKeyInput/index.js +27 -29
  10. package/dist/elements/APIKeyInput/index.js.map +1 -1
  11. package/dist/elements/AppHeader/EditViewWidthSettings/index.css +6 -0
  12. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts +4 -0
  13. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts.map +1 -0
  14. package/dist/elements/AppHeader/EditViewWidthSettings/index.js +96 -0
  15. package/dist/elements/AppHeader/EditViewWidthSettings/index.js.map +1 -0
  16. package/dist/elements/AppHeader/SettingsMenu/index.css +5 -0
  17. package/dist/elements/AppHeader/SettingsMenu/index.d.ts +4 -0
  18. package/dist/elements/AppHeader/SettingsMenu/index.d.ts.map +1 -0
  19. package/dist/elements/AppHeader/SettingsMenu/index.js +59 -0
  20. package/dist/elements/AppHeader/SettingsMenu/index.js.map +1 -0
  21. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts +3 -0
  22. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts.map +1 -0
  23. package/dist/elements/AppHeader/TypeSizeSettings/index.js +58 -0
  24. package/dist/elements/AppHeader/TypeSizeSettings/index.js.map +1 -0
  25. package/dist/elements/AppHeader/index.css +4 -0
  26. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  27. package/dist/elements/AppHeader/index.js +3 -2
  28. package/dist/elements/AppHeader/index.js.map +1 -1
  29. package/dist/elements/ArrayAction/index.d.ts +1 -0
  30. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  31. package/dist/elements/ArrayAction/index.js +45 -32
  32. package/dist/elements/ArrayAction/index.js.map +1 -1
  33. package/dist/elements/Autosave/index.d.ts.map +1 -1
  34. package/dist/elements/Autosave/index.js +2 -3
  35. package/dist/elements/Autosave/index.js.map +1 -1
  36. package/dist/elements/Banner/index.css +4 -0
  37. package/dist/elements/Banner/index.d.ts.map +1 -1
  38. package/dist/elements/Banner/index.js +1 -0
  39. package/dist/elements/Banner/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  41. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  42. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  43. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  44. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  45. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  46. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  47. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
  48. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  49. package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
  50. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  51. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  52. package/dist/elements/BulkUpload/FormsManager/index.js +18 -12
  53. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  54. package/dist/elements/BulkUpload/index.css +2 -0
  55. package/dist/elements/Button/index.css +2 -2
  56. package/dist/elements/Button/index.d.ts.map +1 -1
  57. package/dist/elements/Button/index.js +2 -0
  58. package/dist/elements/Button/index.js.map +1 -1
  59. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  60. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  61. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  62. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  63. package/dist/elements/Collapsible/index.css +1 -0
  64. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  65. package/dist/elements/CopyLocaleData/index.js +8 -9
  66. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  67. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  68. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  69. package/dist/elements/CopyToClipboard/index.js +10 -8
  70. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  71. package/dist/elements/DatePicker/index.css +2 -0
  72. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  73. package/dist/elements/DeleteMany/index.js +2 -3
  74. package/dist/elements/DeleteMany/index.js.map +1 -1
  75. package/dist/elements/Dialog/index.css +1 -0
  76. package/dist/elements/DocumentControls/index.css +1 -0
  77. package/dist/elements/DocumentFields/index.css +2 -0
  78. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +4 -1
  79. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -1
  80. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  81. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  82. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  83. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  84. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  85. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  86. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  87. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  88. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  89. package/dist/elements/DocumentHeader/index.css +22 -2
  90. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  91. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  92. package/dist/elements/DocumentHeader/index.js +6 -3
  93. package/dist/elements/DocumentHeader/index.js.map +1 -1
  94. package/dist/elements/Drawer/index.css +10 -4
  95. package/dist/elements/Dropzone/index.css +10 -4
  96. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  97. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  98. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  99. package/dist/elements/DuplicateDocument/index.js +2 -3
  100. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  101. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  102. package/dist/elements/EditMany/DrawerContent.js +2 -3
  103. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  104. package/dist/elements/EditUpload/index.css +1 -1
  105. package/dist/elements/FieldDiffContainer/index.css +1 -0
  106. package/dist/elements/FieldDiffLabel/index.css +1 -0
  107. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  108. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  109. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  110. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  111. package/dist/elements/FileManager/index.css +0 -30
  112. package/dist/elements/FileManager/index.d.ts.map +1 -1
  113. package/dist/elements/FileManager/index.js +379 -287
  114. package/dist/elements/FileManager/index.js.map +1 -1
  115. package/dist/elements/HTMLDiff/index.css +1 -0
  116. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  117. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  118. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  119. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  120. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  121. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  122. package/dist/elements/IDLabel/index.css +6 -0
  123. package/dist/elements/IDLabel/index.d.ts +1 -1
  124. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  125. package/dist/elements/IDLabel/index.js +16 -21
  126. package/dist/elements/IDLabel/index.js.map +1 -1
  127. package/dist/elements/ItemsDrawer/index.css +3 -0
  128. package/dist/elements/ListControls/index.css +10 -4
  129. package/dist/elements/ListControls/index.d.ts.map +1 -1
  130. package/dist/elements/ListControls/index.js +7 -1
  131. package/dist/elements/ListControls/index.js.map +1 -1
  132. package/dist/elements/ListControls/types.d.ts +3 -1
  133. package/dist/elements/ListControls/types.d.ts.map +1 -1
  134. package/dist/elements/ListControls/types.js.map +1 -1
  135. package/dist/elements/ListControlsBar/index.css +8 -3
  136. package/dist/elements/ListControlsBar/index.js +4 -1
  137. package/dist/elements/ListControlsBar/index.js.map +1 -1
  138. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  139. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  140. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  141. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  142. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  143. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  144. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  145. package/dist/elements/ListHeader/index.css +6 -1
  146. package/dist/elements/LivePreview/Window/index.css +1 -0
  147. package/dist/elements/LivePreview/Window/index.js +1 -1
  148. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  149. package/dist/elements/Localizer/index.js +1 -1
  150. package/dist/elements/Localizer/index.js.map +1 -1
  151. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +3 -2
  152. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  153. package/dist/elements/Nav/index.css +2 -0
  154. package/dist/elements/PageControls/index.css +1 -0
  155. package/dist/elements/PillSelector/index.css +1 -0
  156. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  157. package/dist/elements/Popup/index.js +1 -1
  158. package/dist/elements/Popup/index.js.map +1 -1
  159. package/dist/elements/PreviewSizes/index.css +2 -0
  160. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  161. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  162. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  163. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  164. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  165. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  166. package/dist/elements/PublishButton/index.css +1 -0
  167. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  168. package/dist/elements/PublishButton/index.js +16 -31
  169. package/dist/elements/PublishButton/index.js.map +1 -1
  170. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  171. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  172. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  173. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  174. package/dist/elements/QueryPresets/QueryPresetBar/index.js +15 -4
  175. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  176. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  177. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  178. package/dist/elements/RelationshipTable/index.js +5 -2
  179. package/dist/elements/RelationshipTable/index.js.map +1 -1
  180. package/dist/elements/RenderTitle/index.css +12 -0
  181. package/dist/elements/RenderTitle/index.d.ts +1 -0
  182. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  183. package/dist/elements/RenderTitle/index.js +30 -17
  184. package/dist/elements/RenderTitle/index.js.map +1 -1
  185. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  186. package/dist/elements/RestoreMany/index.js +2 -3
  187. package/dist/elements/RestoreMany/index.js.map +1 -1
  188. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  189. package/dist/elements/SaveDraftButton/index.js +2 -3
  190. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  191. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  192. package/dist/elements/SortHeader/index.js +29 -26
  193. package/dist/elements/SortHeader/index.js.map +1 -1
  194. package/dist/elements/Status/index.d.ts.map +1 -1
  195. package/dist/elements/Status/index.js +2 -3
  196. package/dist/elements/Status/index.js.map +1 -1
  197. package/dist/elements/StepNav/index.css +64 -14
  198. package/dist/elements/StepNav/index.d.ts.map +1 -1
  199. package/dist/elements/StepNav/index.js +143 -69
  200. package/dist/elements/StepNav/index.js.map +1 -1
  201. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  202. package/dist/elements/Table/DefaultCell/index.js +3 -11
  203. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  204. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  205. package/dist/elements/Table/OrderableTable.js +2 -3
  206. package/dist/elements/Table/OrderableTable.js.map +1 -1
  207. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  208. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  209. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  210. package/dist/elements/Table/index.css +1 -0
  211. package/dist/elements/TableSection/index.css +1 -0
  212. package/dist/elements/Tabs/index.css +1 -0
  213. package/dist/elements/Thumbnail/index.css +1 -0
  214. package/dist/elements/TimezonePicker/index.css +1 -0
  215. package/dist/elements/Tooltip/index.css +7 -0
  216. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  217. package/dist/elements/UnpublishButton/index.js +3 -4
  218. package/dist/elements/UnpublishButton/index.js.map +1 -1
  219. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  220. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  221. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  222. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  223. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  224. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  225. package/dist/elements/Upload/index.css +39 -32
  226. package/dist/elements/Upload/index.d.ts.map +1 -1
  227. package/dist/elements/Upload/index.js +37 -99
  228. package/dist/elements/Upload/index.js.map +1 -1
  229. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  230. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  231. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  232. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  233. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  234. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  235. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  236. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  237. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  238. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  239. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  240. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  241. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  242. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  243. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  244. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  245. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  246. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  247. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  248. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  249. package/dist/elements/WhereBuilder/index.css +2 -0
  250. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  251. package/dist/elements/WhereBuilder/index.js +15 -4
  252. package/dist/elements/WhereBuilder/index.js.map +1 -1
  253. package/dist/exports/client/index.d.ts +4 -1
  254. package/dist/exports/client/index.d.ts.map +1 -1
  255. package/dist/exports/client/index.js +1 -1
  256. package/dist/exports/client/index.js.map +3 -3
  257. package/dist/exports/rsc/index.d.ts +2 -0
  258. package/dist/exports/rsc/index.d.ts.map +1 -1
  259. package/dist/exports/rsc/index.js +2 -0
  260. package/dist/exports/rsc/index.js.map +1 -1
  261. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  262. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  263. package/dist/fields/Array/ArrayRow.js +2 -0
  264. package/dist/fields/Array/ArrayRow.js.map +1 -1
  265. package/dist/fields/Array/index.css +1 -0
  266. package/dist/fields/Array/index.d.ts.map +1 -1
  267. package/dist/fields/Array/index.js +40 -13
  268. package/dist/fields/Array/index.js.map +1 -1
  269. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  270. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  271. package/dist/fields/Blocks/BlockRow.js +2 -0
  272. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  273. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  274. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  275. package/dist/fields/Blocks/RowActions.js +22 -19
  276. package/dist/fields/Blocks/RowActions.js.map +1 -1
  277. package/dist/fields/Blocks/index.css +1 -0
  278. package/dist/fields/Blocks/index.d.ts.map +1 -1
  279. package/dist/fields/Blocks/index.js +37 -10
  280. package/dist/fields/Blocks/index.js.map +1 -1
  281. package/dist/fields/Checkbox/Input.d.ts +2 -2
  282. package/dist/fields/Checkbox/Input.js.map +1 -1
  283. package/dist/fields/Checkbox/index.css +48 -67
  284. package/dist/fields/FieldDescription/index.css +5 -0
  285. package/dist/fields/FieldLabel/index.css +22 -28
  286. package/dist/fields/FieldLabel/index.js +7 -8
  287. package/dist/fields/FieldLabel/index.js.map +1 -1
  288. package/dist/fields/Group/index.css +11 -4
  289. package/dist/fields/RadioGroup/Radio/index.css +42 -19
  290. package/dist/fields/RadioGroup/index.css +2 -20
  291. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  292. package/dist/fields/Relationship/Input.js +2 -3
  293. package/dist/fields/Relationship/Input.js.map +1 -1
  294. package/dist/fields/Row/index.css +2 -0
  295. package/dist/fields/Slug/index.d.ts.map +1 -1
  296. package/dist/fields/Slug/index.js +2 -3
  297. package/dist/fields/Slug/index.js.map +1 -1
  298. package/dist/fields/Tabs/index.css +9 -0
  299. package/dist/fields/Textarea/index.css +1 -1
  300. package/dist/fields/Upload/Input.d.ts.map +1 -1
  301. package/dist/fields/Upload/Input.js +46 -19
  302. package/dist/fields/Upload/Input.js.map +1 -1
  303. package/dist/fields/shared/index.d.ts +1 -1
  304. package/dist/fields/shared/index.d.ts.map +1 -1
  305. package/dist/fields/shared/index.js.map +1 -1
  306. package/dist/forms/Form/context.d.ts +3 -1
  307. package/dist/forms/Form/context.d.ts.map +1 -1
  308. package/dist/forms/Form/context.js +3 -1
  309. package/dist/forms/Form/context.js.map +1 -1
  310. package/dist/forms/Form/index.d.ts.map +1 -1
  311. package/dist/forms/Form/index.js +19 -8
  312. package/dist/forms/Form/index.js.map +1 -1
  313. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  314. package/dist/forms/NullifyField/index.js +2 -3
  315. package/dist/forms/NullifyField/index.js.map +1 -1
  316. package/dist/forms/RenderFields/index.css +1 -7
  317. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  318. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  319. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  320. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  321. package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
  322. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  323. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  324. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  325. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  326. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  327. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  328. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  329. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  330. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  331. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  332. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  333. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  334. package/dist/hooks/useControllableState.js +3 -3
  335. package/dist/hooks/useControllableState.js.map +1 -1
  336. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  337. package/dist/hooks/usePayloadAPI.js +2 -3
  338. package/dist/hooks/usePayloadAPI.js.map +1 -1
  339. package/dist/icons/Edit/index.d.ts +0 -1
  340. package/dist/icons/Edit/index.d.ts.map +1 -1
  341. package/dist/icons/Edit/index.js +4 -4
  342. package/dist/icons/Edit/index.js.map +1 -1
  343. package/dist/layouts/Root/index.d.ts.map +1 -1
  344. package/dist/layouts/Root/index.js +22 -5
  345. package/dist/layouts/Root/index.js.map +1 -1
  346. package/dist/providers/Actions/index.d.ts +1 -0
  347. package/dist/providers/Actions/index.d.ts.map +1 -1
  348. package/dist/providers/Actions/index.js +43 -11
  349. package/dist/providers/Actions/index.js.map +1 -1
  350. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  351. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  352. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  353. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  354. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  355. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  356. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  357. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  358. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  359. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  360. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  361. package/dist/providers/Auth/authSessionRequests.js +119 -0
  362. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  363. package/dist/providers/Auth/index.d.ts +2 -56
  364. package/dist/providers/Auth/index.d.ts.map +1 -1
  365. package/dist/providers/Auth/index.js +283 -135
  366. package/dist/providers/Auth/index.js.map +1 -1
  367. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  368. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  369. package/dist/providers/Auth/sessionActivity.js +49 -0
  370. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  371. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  372. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  373. package/dist/providers/Auth/sessionTiming.js +18 -0
  374. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  375. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  376. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  377. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  378. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  379. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  380. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  381. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  382. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  383. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  384. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  385. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  386. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  387. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  388. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  389. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  390. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  391. package/dist/providers/Auth/types.d.ts +65 -0
  392. package/dist/providers/Auth/types.d.ts.map +1 -0
  393. package/dist/providers/Auth/types.js +2 -0
  394. package/dist/providers/Auth/types.js.map +1 -0
  395. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  396. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  397. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  398. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  399. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  400. package/dist/providers/DocumentInfo/index.js +32 -22
  401. package/dist/providers/DocumentInfo/index.js.map +1 -1
  402. package/dist/providers/FormErrorHandler/index.d.ts +5 -1
  403. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
  404. package/dist/providers/FormErrorHandler/index.js.map +1 -1
  405. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  406. package/dist/providers/LivePreview/index.js +13 -6
  407. package/dist/providers/LivePreview/index.js.map +1 -1
  408. package/dist/providers/Locale/index.d.ts +1 -5
  409. package/dist/providers/Locale/index.d.ts.map +1 -1
  410. package/dist/providers/Locale/index.js +64 -138
  411. package/dist/providers/Locale/index.js.map +1 -1
  412. package/dist/providers/Root/index.d.ts +5 -1
  413. package/dist/providers/Root/index.d.ts.map +1 -1
  414. package/dist/providers/Root/index.js +32 -20
  415. package/dist/providers/Root/index.js.map +1 -1
  416. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  417. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  418. package/dist/providers/RouteTransition/index.d.ts +2 -0
  419. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  420. package/dist/providers/RouteTransition/index.js +42 -14
  421. package/dist/providers/RouteTransition/index.js.map +1 -1
  422. package/dist/providers/Selection/index.d.ts.map +1 -1
  423. package/dist/providers/Selection/index.js +2 -3
  424. package/dist/providers/Selection/index.js.map +1 -1
  425. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  426. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  427. package/dist/providers/ServerFunctions/index.js +15 -0
  428. package/dist/providers/ServerFunctions/index.js.map +1 -1
  429. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  430. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  431. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  432. package/dist/providers/Theme/index.d.ts +22 -1
  433. package/dist/providers/Theme/index.d.ts.map +1 -1
  434. package/dist/providers/Theme/index.js +313 -84
  435. package/dist/providers/Theme/index.js.map +1 -1
  436. package/dist/providers/Theme/shared.d.ts +8 -0
  437. package/dist/providers/Theme/shared.d.ts.map +1 -1
  438. package/dist/providers/Theme/shared.js +6 -0
  439. package/dist/providers/Theme/shared.js.map +1 -1
  440. package/dist/styles.css +186 -21
  441. package/dist/templates/Default/Wrapper/index.css +2 -0
  442. package/dist/templates/Default/index.css +1 -0
  443. package/dist/templates/Default/index.d.ts +1 -0
  444. package/dist/templates/Default/index.d.ts.map +1 -1
  445. package/dist/templates/Default/index.js +2 -0
  446. package/dist/templates/Default/index.js.map +1 -1
  447. package/dist/utilities/buildFormState.d.ts.map +1 -1
  448. package/dist/utilities/buildFormState.js +6 -2
  449. package/dist/utilities/buildFormState.js.map +1 -1
  450. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  451. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  452. package/dist/utilities/formatAbsoluteURL.js +18 -8
  453. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  454. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  455. package/dist/utilities/formatMetadata.js +0 -5
  456. package/dist/utilities/formatMetadata.js.map +1 -1
  457. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  458. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  459. package/dist/utilities/getFilesFromClipboard.js +49 -0
  460. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  461. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  462. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  463. package/dist/utilities/getHasScheduledPublish.js +2 -5
  464. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  465. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  466. package/dist/utilities/handleAuthRedirect.js +4 -1
  467. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  468. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  469. package/dist/utilities/handleServerFunctions.js +4 -2
  470. package/dist/utilities/handleServerFunctions.js.map +1 -1
  471. package/dist/utilities/initReq.d.ts.map +1 -1
  472. package/dist/utilities/initReq.js +40 -5
  473. package/dist/utilities/initReq.js.map +1 -1
  474. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  475. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  476. package/dist/utilities/isAbsoluteURL.js +15 -0
  477. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  478. package/dist/utilities/isHttpURL.d.ts +3 -0
  479. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  480. package/dist/utilities/isHttpURL.js +12 -0
  481. package/dist/utilities/isHttpURL.js.map +1 -0
  482. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  483. package/dist/utilities/isPathMatchingRoute.js +7 -5
  484. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  485. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  486. package/dist/utilities/isPublicAdminRoute.js +9 -6
  487. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  488. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  489. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  490. package/dist/utilities/schedulePublishHandler.js +72 -5
  491. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  492. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  493. package/dist/utilities/serverFunctionRegistry.js +2 -1
  494. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  495. package/dist/utilities/slugify.d.ts.map +1 -1
  496. package/dist/utilities/slugify.js +3 -0
  497. package/dist/utilities/slugify.js.map +1 -1
  498. package/dist/views/API/index.client.d.ts.map +1 -1
  499. package/dist/views/API/index.client.js +2 -3
  500. package/dist/views/API/index.client.js.map +1 -1
  501. package/dist/views/API/index.css +9 -0
  502. package/dist/views/Account/index.d.ts +1 -1
  503. package/dist/views/Account/index.d.ts.map +1 -1
  504. package/dist/views/Account/index.js +8 -5
  505. package/dist/views/Account/index.js.map +1 -1
  506. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  507. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  508. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  509. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  510. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  511. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  512. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  513. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  514. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  515. package/dist/views/Dashboard/Default/ModularDashboard/index.css +35 -140
  516. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  517. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  518. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  519. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  520. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  521. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  522. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  523. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -0
  524. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  525. package/dist/views/Dashboard/index.d.ts.map +1 -1
  526. package/dist/views/Dashboard/index.js +2 -3
  527. package/dist/views/Dashboard/index.js.map +1 -1
  528. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  529. package/dist/views/Document/handleServerFunction.js +2 -0
  530. package/dist/views/Document/handleServerFunction.js.map +1 -1
  531. package/dist/views/Document/index.d.ts +1 -1
  532. package/dist/views/Document/index.d.ts.map +1 -1
  533. package/dist/views/Document/index.js +10 -6
  534. package/dist/views/Document/index.js.map +1 -1
  535. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  536. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  537. package/dist/views/Document/renderDocumentSlots.js +7 -4
  538. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  539. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  540. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  541. package/dist/views/Edit/Auth/APIKey.js +233 -59
  542. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  543. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  544. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  545. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  546. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  547. package/dist/views/Edit/Auth/index.css +91 -0
  548. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  549. package/dist/views/Edit/Auth/index.js +10 -28
  550. package/dist/views/Edit/Auth/index.js.map +1 -1
  551. package/dist/views/Edit/Auth/types.d.ts +3 -1
  552. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  553. package/dist/views/Edit/Auth/types.js.map +1 -1
  554. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  555. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  556. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  557. package/dist/views/Edit/index.css +19 -0
  558. package/dist/views/Edit/index.d.ts.map +1 -1
  559. package/dist/views/Edit/index.js +16 -2
  560. package/dist/views/Edit/index.js.map +1 -1
  561. package/dist/views/Edit/useEditViewWidth.d.ts +8 -0
  562. package/dist/views/Edit/useEditViewWidth.d.ts.map +1 -0
  563. package/dist/views/Edit/useEditViewWidth.js +56 -0
  564. package/dist/views/Edit/useEditViewWidth.js.map +1 -0
  565. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  566. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  567. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  568. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  569. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  570. package/dist/views/ForgotPassword/index.js +2 -11
  571. package/dist/views/ForgotPassword/index.js.map +1 -1
  572. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  573. package/dist/views/HierarchyList/index.css +16 -0
  574. package/dist/views/List/ListHeader/index.css +6 -0
  575. package/dist/views/List/ListHeader/index.d.ts +1 -11
  576. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  577. package/dist/views/List/ListHeader/index.js +3 -9
  578. package/dist/views/List/ListHeader/index.js.map +1 -1
  579. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  580. package/dist/views/List/handleServerFunction.js +3 -1
  581. package/dist/views/List/handleServerFunction.js.map +1 -1
  582. package/dist/views/List/index.client.d.ts.map +1 -1
  583. package/dist/views/List/index.client.js +3 -16
  584. package/dist/views/List/index.client.js.map +1 -1
  585. package/dist/views/List/index.css +19 -0
  586. package/dist/views/List/index.d.ts.map +1 -1
  587. package/dist/views/List/index.js +2 -1
  588. package/dist/views/List/index.js.map +1 -1
  589. package/dist/views/NotFound/client.d.ts +2 -0
  590. package/dist/views/NotFound/client.d.ts.map +1 -0
  591. package/dist/views/NotFound/client.js +4 -0
  592. package/dist/views/NotFound/client.js.map +1 -0
  593. package/dist/views/NotFound/page.d.ts.map +1 -1
  594. package/dist/views/NotFound/page.js +4 -3
  595. package/dist/views/NotFound/page.js.map +1 -1
  596. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  597. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  598. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  599. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  600. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  601. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  602. package/dist/views/Root/index.d.ts.map +1 -1
  603. package/dist/views/Root/index.js +32 -22
  604. package/dist/views/Root/index.js.map +1 -1
  605. package/dist/views/Verify/index.d.ts +1 -1
  606. package/dist/views/Verify/index.d.ts.map +1 -1
  607. package/dist/views/Verify/index.js +4 -4
  608. package/dist/views/Verify/index.js.map +1 -1
  609. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  610. package/dist/views/Version/Default/SetStepNav.js +10 -13
  611. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  612. package/dist/views/Version/Default/index.css +29 -9
  613. package/dist/views/Version/Default/index.d.ts.map +1 -1
  614. package/dist/views/Version/Default/index.js +16 -13
  615. package/dist/views/Version/Default/index.js.map +1 -1
  616. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  617. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  618. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  619. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  620. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  621. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  622. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  623. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  624. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  625. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  626. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  627. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  628. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  629. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  630. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  631. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  632. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  633. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  634. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  635. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  636. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  637. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  638. package/dist/views/Version/Restore/index.js +9 -6
  639. package/dist/views/Version/Restore/index.js.map +1 -1
  640. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  641. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  642. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  643. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  644. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  645. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  646. package/dist/views/Versions/index.css +7 -0
  647. package/dist/widgets/CollectionCards/index.client.js +1 -1
  648. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  649. package/dist/widgets/CollectionCards/index.css +40 -35
  650. package/dist/widgets/CollectionCards/index.js +1 -1
  651. package/dist/widgets/CollectionCards/index.js.map +1 -1
  652. package/dist/widgets/RecentlyViewed/DocumentActivity/index.css +184 -0
  653. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts +5 -0
  654. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts.map +1 -0
  655. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js +225 -0
  656. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js.map +1 -0
  657. package/dist/widgets/RecentlyViewed/DocumentItem/index.css +180 -0
  658. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts +11 -0
  659. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts.map +1 -0
  660. package/dist/widgets/RecentlyViewed/DocumentItem/index.js +104 -0
  661. package/dist/widgets/RecentlyViewed/DocumentItem/index.js.map +1 -0
  662. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts +10 -0
  663. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts.map +1 -0
  664. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js +85 -0
  665. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js.map +1 -0
  666. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts +7 -0
  667. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts.map +1 -0
  668. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js +206 -0
  669. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js.map +1 -0
  670. package/dist/widgets/RecentlyViewed/index.d.ts +3 -5
  671. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  672. package/dist/widgets/RecentlyViewed/index.js +10 -140
  673. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  674. package/dist/widgets/RecentlyViewed/shared.d.ts +38 -0
  675. package/dist/widgets/RecentlyViewed/shared.d.ts.map +1 -0
  676. package/dist/widgets/RecentlyViewed/shared.js +70 -0
  677. package/dist/widgets/RecentlyViewed/shared.js.map +1 -0
  678. package/dist/widgets/UploadDropzone/index.client.d.ts +7 -0
  679. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -0
  680. package/dist/widgets/UploadDropzone/index.client.js +134 -0
  681. package/dist/widgets/UploadDropzone/index.client.js.map +1 -0
  682. package/dist/widgets/UploadDropzone/index.css +50 -0
  683. package/dist/widgets/UploadDropzone/index.d.ts +8 -0
  684. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -0
  685. package/dist/widgets/UploadDropzone/index.js +29 -0
  686. package/dist/widgets/UploadDropzone/index.js.map +1 -0
  687. package/dist/widgets/Welcome/index.css +13 -0
  688. package/dist/widgets/Welcome/index.d.ts +5 -0
  689. package/dist/widgets/Welcome/index.d.ts.map +1 -0
  690. package/dist/widgets/Welcome/index.js +26 -0
  691. package/dist/widgets/Welcome/index.js.map +1 -0
  692. package/dist/widgets/WidgetIcon/assets/images.svg +3 -0
  693. package/dist/widgets/WidgetIcon/assets/pin-solid.svg +3 -0
  694. package/dist/widgets/WidgetIcon/assets/pin.svg +3 -0
  695. package/dist/widgets/WidgetIcon/assets/table.svg +3 -0
  696. package/dist/widgets/WidgetIcon/index.css +23 -0
  697. package/dist/widgets/WidgetIcon/index.d.ts +6 -0
  698. package/dist/widgets/WidgetIcon/index.d.ts.map +1 -0
  699. package/dist/widgets/WidgetIcon/index.js +10 -0
  700. package/dist/widgets/WidgetIcon/index.js.map +1 -0
  701. package/package.json +11 -5
  702. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  703. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  704. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  705. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  706. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  707. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  708. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  709. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  710. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  711. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  712. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  713. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  714. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  715. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  716. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  717. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  718. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  719. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  720. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  721. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  722. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  723. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  724. package/dist/layouts/Root/index.spec.js +0 -20
  725. package/dist/layouts/Root/index.spec.js.map +0 -1
  726. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  727. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  728. package/dist/utilities/appendCacheTag.spec.js +0 -34
  729. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  730. package/dist/utilities/formatMetadata.spec.js +0 -83
  731. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  732. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  733. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  734. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  735. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  736. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  737. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  738. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  739. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  740. package/dist/utilities/recentlyViewed.spec.js +0 -92
  741. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  742. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  743. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  744. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  745. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  746. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  747. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  748. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  749. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  750. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  751. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import { initI18n } from '@payloadcms/translations';
2
2
  import { createLocalReq, executeAuthStrategies, getAccessResults, getPayload, getRequestLanguage, parseCookies } from 'payload';
3
+ import { applyUserReadAccess } from 'payload/internal';
3
4
  import { getRequestLocale } from './getRequestLocale.js';
4
5
  import { selectiveCache } from './selectiveCache.js';
5
6
  const partialReqCache = selectiveCache('partialReq');
@@ -19,7 +20,7 @@ export const initReq = async function ({
19
20
  }) {
20
21
  const headers = await serverAdapter.getHeaders();
21
22
  const cookies = parseCookies(headers);
22
- const partialResult = await partialReqCache.get(async () => {
23
+ const getPartialResult = async () => {
23
24
  const config = await configPromise;
24
25
  const payload = await getPayload({
25
26
  config,
@@ -51,8 +52,9 @@ export const initReq = async function ({
51
52
  responseHeaders,
52
53
  user
53
54
  };
54
- }, 'global');
55
- return reqCache.get(async () => {
55
+ };
56
+ const partialResult = await partialReqCache.get(getPartialResult, 'global');
57
+ const getResult = async () => {
56
58
  const {
57
59
  i18n,
58
60
  languageCode,
@@ -64,6 +66,10 @@ export const initReq = async function ({
64
66
  req: reqOverrides,
65
67
  ...optionsOverrides
66
68
  } = overrides || {};
69
+ const hasOptionsUserOverride = Object.hasOwn(optionsOverrides, 'user');
70
+ const hasReqUserOverride = Object.hasOwn(reqOverrides ?? {}, 'user');
71
+ const hasUserOverride = hasOptionsUserOverride || hasReqUserOverride;
72
+ const userOverride = hasOptionsUserOverride ? optionsOverrides.user : reqOverrides?.user;
67
73
  const req = await createLocalReq({
68
74
  req: {
69
75
  headers,
@@ -76,10 +82,37 @@ export const initReq = async function ({
76
82
  },
77
83
  ...(optionsOverrides || {})
78
84
  }, payload);
85
+ if (hasUserOverride && userOverride == null) {
86
+ req.user = null;
87
+ }
88
+ let userWithReadAccess = req.user;
79
89
  const locale = await getRequestLocale({
80
90
  req
81
91
  });
82
92
  req.locale = locale?.code;
93
+ if (!hasUserOverride && req.user) {
94
+ try {
95
+ const collectionSlug = req.user.collection ?? payload.config.admin.user;
96
+ const collection = payload.collections[collectionSlug]?.config;
97
+ if (!collection?.auth) {
98
+ throw new Error('Authenticated user collection not found');
99
+ }
100
+ userWithReadAccess = await applyUserReadAccess({
101
+ collection,
102
+ depth: collection.auth.depth,
103
+ overrideAccess: false,
104
+ req,
105
+ showHiddenFields: false,
106
+ user: req.user
107
+ });
108
+ } catch (error) {
109
+ payload.logger.error({
110
+ err: error
111
+ });
112
+ req.user = null;
113
+ userWithReadAccess = null;
114
+ }
115
+ }
83
116
  const permissions = await getAccessResults({
84
117
  req
85
118
  });
@@ -89,9 +122,11 @@ export const initReq = async function ({
89
122
  languageCode,
90
123
  locale,
91
124
  permissions,
92
- req
125
+ req,
126
+ user: userWithReadAccess
93
127
  };
94
- }, key).then(result => {
128
+ };
129
+ return reqCache.get(getResult, key, overrides).then(result => {
95
130
  // Shallow-copy req before returning to prevent
96
131
  // mutations from propagating to the cached req object.
97
132
  // This ensures parallel operations using the same cache key don't affect each other.
@@ -1 +1 @@
1
- {"version":3,"file":"initReq.js","names":["initI18n","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","getRequestLocale","selectiveCache","partialReqCache","reqCache","initReq","canSetHeaders","configPromise","importMap","key","overrides","serverAdapter","headers","getHeaders","cookies","partialResult","get","config","payload","cron","languageCode","i18n","context","language","responseHeaders","user","req","reqOverrides","optionsOverrides","host","server","locale","code","permissions","then","result"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type {\n ImportMap,\n InitReqResult,\n PayloadRequest,\n SanitizedConfig,\n ServerAdapter,\n} from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\n\nimport { getRequestLocale } from './getRequestLocale.js'\nimport { selectiveCache } from './selectiveCache.js'\n\ntype PartialResult = {\n i18n: I18nClient\n} & Pick<InitReqResult, 'languageCode'> &\n Pick<PayloadRequest, 'payload' | 'responseHeaders' | 'user'>\n\nconst partialReqCache = selectiveCache<PartialResult>('partialReq')\nconst reqCache = selectiveCache<InitReqResult>('req')\n\n/**\n * Initializes a full request object, including the `req` object and access control.\n * Reads headers/cookies through the supplied `serverAdapter` so the function is\n * framework-agnostic; the consuming framework wires its own adapter.\n */\nexport const initReq = async function ({\n canSetHeaders,\n configPromise,\n importMap,\n key,\n overrides,\n serverAdapter,\n}: {\n canSetHeaders?: boolean\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n key: string\n overrides?: Parameters<typeof createLocalReq>[0]\n serverAdapter: ServerAdapter\n}): Promise<InitReqResult> {\n const headers = await serverAdapter.getHeaders()\n const cookies = parseCookies(headers)\n\n const partialResult = await partialReqCache.get(async () => {\n const config = await configPromise\n const payload = await getPayload({ config, cron: true, importMap })\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const { responseHeaders, user } = await executeAuthStrategies({\n canSetHeaders,\n headers,\n payload,\n })\n\n return {\n i18n,\n languageCode,\n payload,\n responseHeaders,\n user,\n }\n }, 'global')\n\n return reqCache\n .get(async () => {\n const { i18n, languageCode, payload, responseHeaders, user } = partialResult\n\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n server: serverAdapter,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n const locale = await getRequestLocale({\n req,\n })\n\n req.locale = locale?.code\n\n const permissions = await getAccessResults({\n req,\n })\n\n return {\n cookies,\n headers,\n languageCode,\n locale,\n permissions,\n req,\n }\n }, key)\n .then((result) => {\n // Shallow-copy req before returning to prevent\n // mutations from propagating to the cached req object.\n // This ensures parallel operations using the same cache key don't affect each other.\n return {\n ...result,\n req: {\n ...result.req,\n ...(result.req?.context\n ? {\n context: { ...result.req.context },\n }\n : {}),\n },\n }\n })\n}\n"],"mappings":"AASA,SAASA,QAAQ,QAAQ;AACzB,SACEC,cAAc,EACdC,qBAAqB,EACrBC,gBAAgB,EAChBC,UAAU,EACVC,kBAAkB,EAClBC,YAAY,QACP;AAEP,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAO/B,MAAMC,eAAA,GAAkBD,cAAA,CAA8B;AACtD,MAAME,QAAA,GAAWF,cAAA,CAA8B;AAE/C;;;;;AAKA,OAAO,MAAMG,OAAA,GAAU,eAAAA,CAAgB;EACrCC,aAAa;EACbC,aAAa;EACbC,SAAS;EACTC,GAAG;EACHC,SAAS;EACTC;AAAa,CAQd;EACC,MAAMC,OAAA,GAAU,MAAMD,aAAA,CAAcE,UAAU;EAC9C,MAAMC,OAAA,GAAUd,YAAA,CAAaY,OAAA;EAE7B,MAAMG,aAAA,GAAgB,MAAMZ,eAAA,CAAgBa,GAAG,CAAC;IAC9C,MAAMC,MAAA,GAAS,MAAMV,aAAA;IACrB,MAAMW,OAAA,GAAU,MAAMpB,UAAA,CAAW;MAAEmB,MAAA;MAAQE,IAAA,EAAM;MAAMX;IAAU;IACjE,MAAMY,YAAA,GAAerB,kBAAA,CAAmB;MACtCkB,MAAA;MACAH,OAAA;MACAF;IACF;IAEA,MAAMS,IAAA,GAAmB,MAAM3B,QAAA,CAAS;MACtCuB,MAAA,EAAQA,MAAA,CAAOI,IAAI;MACnBC,OAAA,EAAS;MACTC,QAAA,EAAUH;IACZ;IAEA,MAAM;MAAEI,eAAe;MAAEC;IAAI,CAAE,GAAG,MAAM7B,qBAAA,CAAsB;MAC5DU,aAAA;MACAM,OAAA;MACAM;IACF;IAEA,OAAO;MACLG,IAAA;MACAD,YAAA;MACAF,OAAA;MACAM,eAAA;MACAC;IACF;EACF,GAAG;EAEH,OAAOrB,QAAA,CACJY,GAAG,CAAC;IACH,MAAM;MAAEK,IAAI;MAAED,YAAY;MAAEF,OAAO;MAAEM,eAAe;MAAEC;IAAI,CAAE,GAAGV,aAAA;IAE/D,MAAM;MAAEW,GAAA,EAAKC,YAAY;MAAE,GAAGC;IAAA,CAAkB,GAAGlB,SAAA,IAAa,CAAC;IAEjE,MAAMgB,GAAA,GAAM,MAAM/B,cAAA,CAChB;MACE+B,GAAA,EAAK;QACHd,OAAA;QACAiB,IAAA,EAAMjB,OAAA,CAAQI,GAAG,CAAC;QAClBK,IAAA,EAAMA,IAAA;QACNG,eAAA;QACAM,MAAA,EAAQnB,aAAA;QACRc,IAAA;QACA,IAAIE,YAAA,IAAgB,CAAC,CAAC;MACxB;MACA,IAAIC,gBAAA,IAAoB,CAAC,CAAC;IAC5B,GACAV,OAAA;IAGF,MAAMa,MAAA,GAAS,MAAM9B,gBAAA,CAAiB;MACpCyB;IACF;IAEAA,GAAA,CAAIK,MAAM,GAAGA,MAAA,EAAQC,IAAA;IAErB,MAAMC,WAAA,GAAc,MAAMpC,gBAAA,CAAiB;MACzC6B;IACF;IAEA,OAAO;MACLZ,OAAA;MACAF,OAAA;MACAQ,YAAA;MACAW,MAAA;MACAE,WAAA;MACAP;IACF;EACF,GAAGjB,GAAA,EACFyB,IAAI,CAAEC,MAAA;IACL;IACA;IACA;IACA,OAAO;MACL,GAAGA,MAAM;MACTT,GAAA,EAAK;QACH,GAAGS,MAAA,CAAOT,GAAG;QACb,IAAIS,MAAA,CAAOT,GAAG,EAAEJ,OAAA,GACZ;UACEA,OAAA,EAAS;YAAE,GAAGa,MAAA,CAAOT,GAAG,CAACJ;UAAQ;QACnC,IACA,CAAC,CAAC;MACR;IACF;EACF;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"initReq.js","names":["initI18n","createLocalReq","executeAuthStrategies","getAccessResults","getPayload","getRequestLanguage","parseCookies","applyUserReadAccess","getRequestLocale","selectiveCache","partialReqCache","reqCache","initReq","canSetHeaders","configPromise","importMap","key","overrides","serverAdapter","headers","getHeaders","cookies","getPartialResult","config","payload","cron","languageCode","i18n","context","language","responseHeaders","user","partialResult","get","getResult","req","reqOverrides","optionsOverrides","hasOptionsUserOverride","Object","hasOwn","hasReqUserOverride","hasUserOverride","userOverride","host","server","userWithReadAccess","locale","code","collectionSlug","collection","admin","collections","auth","Error","depth","overrideAccess","showHiddenFields","error","logger","err","permissions","then","result"],"sources":["../../src/utilities/initReq.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\nimport type {\n ImportMap,\n InitReqResult,\n PayloadRequest,\n SanitizedConfig,\n ServerAdapter,\n} from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport {\n createLocalReq,\n executeAuthStrategies,\n getAccessResults,\n getPayload,\n getRequestLanguage,\n parseCookies,\n} from 'payload'\nimport { applyUserReadAccess } from 'payload/internal'\n\nimport { getRequestLocale } from './getRequestLocale.js'\nimport { selectiveCache } from './selectiveCache.js'\n\ntype PartialResult = {\n i18n: I18nClient\n} & Pick<InitReqResult, 'languageCode'> &\n Pick<PayloadRequest, 'payload' | 'responseHeaders' | 'user'>\n\nconst partialReqCache = selectiveCache<PartialResult>('partialReq')\nconst reqCache = selectiveCache<InitReqResult>('req')\n\n/**\n * Initializes a full request object, including the `req` object and access control.\n * Reads headers/cookies through the supplied `serverAdapter` so the function is\n * framework-agnostic; the consuming framework wires its own adapter.\n */\nexport const initReq = async function ({\n canSetHeaders,\n configPromise,\n importMap,\n key,\n overrides,\n serverAdapter,\n}: {\n canSetHeaders?: boolean\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n key: string\n overrides?: Parameters<typeof createLocalReq>[0]\n serverAdapter: ServerAdapter\n}): Promise<InitReqResult> {\n const headers = await serverAdapter.getHeaders()\n const cookies = parseCookies(headers)\n\n const getPartialResult = async () => {\n const config = await configPromise\n const payload = await getPayload({ config, cron: true, importMap })\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const { responseHeaders, user } = await executeAuthStrategies({\n canSetHeaders,\n headers,\n payload,\n })\n\n return {\n i18n,\n languageCode,\n payload,\n responseHeaders,\n user,\n }\n }\n\n const partialResult = await partialReqCache.get(getPartialResult, 'global')\n\n const getResult = async () => {\n const { i18n, languageCode, payload, responseHeaders, user } = partialResult\n\n const { req: reqOverrides, ...optionsOverrides } = overrides || {}\n const hasOptionsUserOverride = Object.hasOwn(optionsOverrides, 'user')\n const hasReqUserOverride = Object.hasOwn(reqOverrides ?? {}, 'user')\n const hasUserOverride = hasOptionsUserOverride || hasReqUserOverride\n const userOverride = hasOptionsUserOverride ? optionsOverrides.user : reqOverrides?.user\n\n const req = await createLocalReq(\n {\n req: {\n headers,\n host: headers.get('host'),\n i18n: i18n as I18n,\n responseHeaders,\n server: serverAdapter,\n user,\n ...(reqOverrides || {}),\n },\n ...(optionsOverrides || {}),\n },\n payload,\n )\n\n if (hasUserOverride && userOverride == null) {\n req.user = null\n }\n\n let userWithReadAccess = req.user\n\n const locale = await getRequestLocale({ req })\n req.locale = locale?.code\n\n if (!hasUserOverride && req.user) {\n try {\n const collectionSlug = req.user.collection ?? payload.config.admin.user\n const collection = payload.collections[collectionSlug]?.config\n\n if (!collection?.auth) {\n throw new Error('Authenticated user collection not found')\n }\n\n userWithReadAccess = await applyUserReadAccess({\n collection,\n depth: collection.auth.depth,\n overrideAccess: false,\n req,\n showHiddenFields: false,\n user: req.user,\n })\n } catch (error) {\n payload.logger.error({ err: error })\n req.user = null\n userWithReadAccess = null\n }\n }\n\n const permissions = await getAccessResults({ req })\n\n return {\n cookies,\n headers,\n languageCode,\n locale,\n permissions,\n req,\n user: userWithReadAccess,\n }\n }\n\n return reqCache.get(getResult, key, overrides).then((result) => {\n // Shallow-copy req before returning to prevent\n // mutations from propagating to the cached req object.\n // This ensures parallel operations using the same cache key don't affect each other.\n return {\n ...result,\n req: {\n ...result.req,\n ...(result.req?.context\n ? {\n context: { ...result.req.context },\n }\n : {}),\n },\n }\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ /** Checks whether a URL is absolute or relative. */
2
+ export declare const isAbsoluteURL: (incomingURL?: string | URL) => boolean;
3
+ //# sourceMappingURL=isAbsoluteURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAbsoluteURL.d.ts","sourceRoot":"","sources":["../../src/utilities/isAbsoluteURL.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,aAAa,iBAAkB,MAAM,GAAG,GAAG,KAAG,OAe1D,CAAA"}
@@ -0,0 +1,15 @@
1
+ /** Checks whether a URL is absolute or relative. */export const isAbsoluteURL = incomingURL => {
2
+ if (!incomingURL) {
3
+ return false;
4
+ }
5
+ if (incomingURL instanceof URL) {
6
+ return true;
7
+ }
8
+ try {
9
+ new URL(incomingURL);
10
+ return true;
11
+ } catch {
12
+ return false;
13
+ }
14
+ };
15
+ //# sourceMappingURL=isAbsoluteURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAbsoluteURL.js","names":["isAbsoluteURL","incomingURL","URL"],"sources":["../../src/utilities/isAbsoluteURL.ts"],"sourcesContent":["/** Checks whether a URL is absolute or relative. */\nexport const isAbsoluteURL = (incomingURL?: string | URL): boolean => {\n if (!incomingURL) {\n return false\n }\n\n if (incomingURL instanceof URL) {\n return true\n }\n\n try {\n new URL(incomingURL)\n return true\n } catch {\n return false\n }\n}\n"],"mappings":"AAAA,oDACA,OAAO,MAAMA,aAAA,GAAiBC,WAAA;EAC5B,IAAI,CAACA,WAAA,EAAa;IAChB,OAAO;EACT;EAEA,IAAIA,WAAA,YAAuBC,GAAA,EAAK;IAC9B,OAAO;EACT;EAEA,IAAI;IACF,IAAIA,GAAA,CAAID,WAAA;IACR,OAAO;EACT,EAAE,MAAM;IACN,OAAO;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ /** Allows only HTTP(S) URLs, e.g. `http://` or `https://`. */
2
+ export declare const isHttpURL: (incomingURL?: string | URL) => boolean;
3
+ //# sourceMappingURL=isHttpURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHttpURL.d.ts","sourceRoot":"","sources":["../../src/utilities/isHttpURL.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,eAAO,MAAM,SAAS,iBAAkB,MAAM,GAAG,GAAG,KAAG,OAatD,CAAA"}
@@ -0,0 +1,12 @@
1
+ /** Allows only HTTP(S) URLs, e.g. `http://` or `https://`. */export const isHttpURL = incomingURL => {
2
+ if (!incomingURL) {
3
+ return false;
4
+ }
5
+ try {
6
+ const url = typeof incomingURL === 'string' ? new URL(incomingURL, window.location.origin) : incomingURL;
7
+ return url.protocol === 'http:' || url.protocol === 'https:';
8
+ } catch {
9
+ return false;
10
+ }
11
+ };
12
+ //# sourceMappingURL=isHttpURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHttpURL.js","names":["isHttpURL","incomingURL","url","URL","window","location","origin","protocol"],"sources":["../../src/utilities/isHttpURL.ts"],"sourcesContent":["/** Allows only HTTP(S) URLs, e.g. `http://` or `https://`. */\nexport const isHttpURL = (incomingURL?: string | URL): boolean => {\n if (!incomingURL) {\n return false\n }\n\n try {\n const url =\n typeof incomingURL === 'string' ? new URL(incomingURL, window.location.origin) : incomingURL\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n } catch {\n return false\n }\n}\n"],"mappings":"AAAA,8DACA,OAAO,MAAMA,SAAA,GAAaC,WAAA;EACxB,IAAI,CAACA,WAAA,EAAa;IAChB,OAAO;EACT;EAEA,IAAI;IACF,MAAMC,GAAA,GACJ,OAAOD,WAAA,KAAgB,WAAW,IAAIE,GAAA,CAAIF,WAAA,EAAaG,MAAA,CAAOC,QAAQ,CAACC,MAAM,IAAIL,WAAA;IAEnF,OAAOC,GAAA,CAAIK,QAAQ,KAAK,WAAWL,GAAA,CAAIK,QAAQ,KAAK;EACtD,EAAE,MAAM;IACN,OAAO;EACT;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"isPathMatchingRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/isPathMatchingRoute.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,gEAM7B;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,YA4BA,CAAA"}
1
+ {"version":3,"file":"isPathMatchingRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/isPathMatchingRoute.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,gEAM7B;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,YA6BA,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { pathToRegexp } from 'path-to-regexp';
2
+ import { stripTrailingSlash } from 'payload/shared';
2
3
  export const isPathMatchingRoute = ({
3
4
  currentRoute,
4
5
  exact,
@@ -9,21 +10,22 @@ export const isPathMatchingRoute = ({
9
10
  if (!viewPath) {
10
11
  return false;
11
12
  }
13
+ const normalizedCurrentRoute = strict ? currentRoute : stripTrailingSlash(currentRoute);
12
14
  const keys = [];
13
15
  const regex = pathToRegexp(viewPath, keys, {
14
16
  sensitive,
15
17
  strict
16
18
  });
17
- const match = regex.exec(currentRoute);
18
- const viewRoute = match?.[0] || viewPath;
19
+ const match = regex.exec(normalizedCurrentRoute);
20
+ const viewRoute = strict ? match?.[0] || viewPath : stripTrailingSlash(match?.[0] || viewPath);
19
21
  if (exact) {
20
- return currentRoute === viewRoute;
22
+ return normalizedCurrentRoute === viewRoute;
21
23
  }
22
24
  if (!exact) {
23
- if (!currentRoute.startsWith(viewRoute)) {
25
+ if (!normalizedCurrentRoute.startsWith(viewRoute)) {
24
26
  return false;
25
27
  }
26
- const remainingPath = currentRoute.slice(viewRoute.length);
28
+ const remainingPath = normalizedCurrentRoute.slice(viewRoute.length);
27
29
  return remainingPath === '' || remainingPath.startsWith('/');
28
30
  }
29
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"isPathMatchingRoute.js","names":["pathToRegexp","isPathMatchingRoute","currentRoute","exact","path","viewPath","sensitive","strict","keys","regex","match","exec","viewRoute","startsWith","remainingPath","slice","length"],"sources":["../../src/utilities/isPathMatchingRoute.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\n\nexport const isPathMatchingRoute = ({\n currentRoute,\n exact,\n path: viewPath,\n sensitive,\n strict,\n}: {\n currentRoute: string\n exact?: boolean\n path?: string\n sensitive?: boolean\n strict?: boolean\n}) => {\n if (!viewPath) {\n return false\n }\n\n const keys = []\n\n const regex = pathToRegexp(viewPath, keys, {\n sensitive,\n strict,\n })\n\n const match = regex.exec(currentRoute)\n const viewRoute = match?.[0] || viewPath\n\n if (exact) {\n return currentRoute === viewRoute\n }\n\n if (!exact) {\n if (!currentRoute.startsWith(viewRoute)) {\n return false\n }\n\n const remainingPath = currentRoute.slice(viewRoute.length)\n\n return remainingPath === '' || remainingPath.startsWith('/')\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAE7B,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,YAAY;EACZC,KAAK;EACLC,IAAA,EAAMC,QAAQ;EACdC,SAAS;EACTC;AAAM,CAOP;EACC,IAAI,CAACF,QAAA,EAAU;IACb,OAAO;EACT;EAEA,MAAMG,IAAA,GAAO,EAAE;EAEf,MAAMC,KAAA,GAAQT,YAAA,CAAaK,QAAA,EAAUG,IAAA,EAAM;IACzCF,SAAA;IACAC;EACF;EAEA,MAAMG,KAAA,GAAQD,KAAA,CAAME,IAAI,CAACT,YAAA;EACzB,MAAMU,SAAA,GAAYF,KAAA,GAAQ,EAAE,IAAIL,QAAA;EAEhC,IAAIF,KAAA,EAAO;IACT,OAAOD,YAAA,KAAiBU,SAAA;EAC1B;EAEA,IAAI,CAACT,KAAA,EAAO;IACV,IAAI,CAACD,YAAA,CAAaW,UAAU,CAACD,SAAA,GAAY;MACvC,OAAO;IACT;IAEA,MAAME,aAAA,GAAgBZ,YAAA,CAAaa,KAAK,CAACH,SAAA,CAAUI,MAAM;IAEzD,OAAOF,aAAA,KAAkB,MAAMA,aAAA,CAAcD,UAAU,CAAC;EAC1D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"isPathMatchingRoute.js","names":["pathToRegexp","stripTrailingSlash","isPathMatchingRoute","currentRoute","exact","path","viewPath","sensitive","strict","normalizedCurrentRoute","keys","regex","match","exec","viewRoute","startsWith","remainingPath","slice","length"],"sources":["../../src/utilities/isPathMatchingRoute.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\nimport { stripTrailingSlash } from 'payload/shared'\n\nexport const isPathMatchingRoute = ({\n currentRoute,\n exact,\n path: viewPath,\n sensitive,\n strict,\n}: {\n currentRoute: string\n exact?: boolean\n path?: string\n sensitive?: boolean\n strict?: boolean\n}) => {\n if (!viewPath) {\n return false\n }\n\n const normalizedCurrentRoute = strict ? currentRoute : stripTrailingSlash(currentRoute)\n const keys = []\n\n const regex = pathToRegexp(viewPath, keys, {\n sensitive,\n strict,\n })\n\n const match = regex.exec(normalizedCurrentRoute)\n const viewRoute = strict ? match?.[0] || viewPath : stripTrailingSlash(match?.[0] || viewPath)\n\n if (exact) {\n return normalizedCurrentRoute === viewRoute\n }\n\n if (!exact) {\n if (!normalizedCurrentRoute.startsWith(viewRoute)) {\n return false\n }\n\n const remainingPath = normalizedCurrentRoute.slice(viewRoute.length)\n\n return remainingPath === '' || remainingPath.startsWith('/')\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AAEnC,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,YAAY;EACZC,KAAK;EACLC,IAAA,EAAMC,QAAQ;EACdC,SAAS;EACTC;AAAM,CAOP;EACC,IAAI,CAACF,QAAA,EAAU;IACb,OAAO;EACT;EAEA,MAAMG,sBAAA,GAAyBD,MAAA,GAASL,YAAA,GAAeF,kBAAA,CAAmBE,YAAA;EAC1E,MAAMO,IAAA,GAAO,EAAE;EAEf,MAAMC,KAAA,GAAQX,YAAA,CAAaM,QAAA,EAAUI,IAAA,EAAM;IACzCH,SAAA;IACAC;EACF;EAEA,MAAMI,KAAA,GAAQD,KAAA,CAAME,IAAI,CAACJ,sBAAA;EACzB,MAAMK,SAAA,GAAYN,MAAA,GAASI,KAAA,GAAQ,EAAE,IAAIN,QAAA,GAAWL,kBAAA,CAAmBW,KAAA,GAAQ,EAAE,IAAIN,QAAA;EAErF,IAAIF,KAAA,EAAO;IACT,OAAOK,sBAAA,KAA2BK,SAAA;EACpC;EAEA,IAAI,CAACV,KAAA,EAAO;IACV,IAAI,CAACK,sBAAA,CAAuBM,UAAU,CAACD,SAAA,GAAY;MACjD,OAAO;IACT;IAEA,MAAME,aAAA,GAAgBP,sBAAA,CAAuBQ,KAAK,CAACH,SAAA,CAAUI,MAAM;IAEnE,OAAOF,aAAA,KAAkB,MAAMA,aAAA,CAAcD,UAAU,CAAC;EAC1D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"isPublicAdminRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/isPublicAdminRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAmB9C,eAAO,MAAM,kBAAkB,mCAI5B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAaH,CAAA"}
1
+ {"version":3,"file":"isPublicAdminRoute.d.ts","sourceRoot":"","sources":["../../src/utilities/isPublicAdminRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAmB9C,eAAO,MAAM,kBAAkB,mCAI5B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAuBH,CAAA"}
@@ -6,16 +6,19 @@ export const isPublicAdminRoute = ({
6
6
  config,
7
7
  route
8
8
  }) => {
9
+ const routeWithoutAdmin = getRouteWithoutAdmin({
10
+ adminRoute,
11
+ route
12
+ });
13
+ const routeSegments = routeWithoutAdmin.split('/').filter(Boolean);
14
+ const isVerifyRoute = routeSegments.length === 3 && routeSegments[1] === 'verify' && config.collections.some(collection => collection.slug === routeSegments[0] && Boolean(collection.auth));
15
+ if (isVerifyRoute) {
16
+ return true;
17
+ }
9
18
  return publicAdminRoutes.some(routeSegment => {
10
19
  const segment = config.admin?.routes?.[routeSegment] || routeSegment;
11
- const routeWithoutAdmin = getRouteWithoutAdmin({
12
- adminRoute,
13
- route
14
- });
15
20
  if (routeWithoutAdmin.startsWith(segment)) {
16
21
  return true;
17
- } else if (routeWithoutAdmin.includes('/verify/')) {
18
- return true;
19
22
  } else {
20
23
  return false;
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"isPublicAdminRoute.js","names":["getRouteWithoutAdmin","publicAdminRoutes","isPublicAdminRoute","adminRoute","config","route","some","routeSegment","segment","admin","routes","routeWithoutAdmin","startsWith","includes"],"sources":["../../src/utilities/isPublicAdminRoute.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { getRouteWithoutAdmin } from './getRouteWithoutAdmin.js'\n\n// Routes that are accessible without admin authentication\nconst publicAdminRoutes: (keyof Pick<\n SanitizedConfig['admin']['routes'],\n 'createFirstUser' | 'forgot' | 'inactivity' | 'login' | 'logout' | 'reset' | 'unauthorized'\n>)[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isPublicAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n return publicAdminRoutes.some((routeSegment) => {\n const segment = config.admin?.routes?.[routeSegment] || routeSegment\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n\n if (routeWithoutAdmin.startsWith(segment)) {\n return true\n } else if (routeWithoutAdmin.includes('/verify/')) {\n return true\n } else {\n return false\n }\n })\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAErC;AACA,MAAMC,iBAAA,GAGC,CACL,mBACA,UACA,SACA,UACA,UACA,cACA,gBACA,QACD;AAED,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,OAAOJ,iBAAA,CAAkBK,IAAI,CAAEC,YAAA;IAC7B,MAAMC,OAAA,GAAUJ,MAAA,CAAOK,KAAK,EAAEC,MAAA,GAASH,YAAA,CAAa,IAAIA,YAAA;IACxD,MAAMI,iBAAA,GAAoBX,oBAAA,CAAqB;MAAEG,UAAA;MAAYE;IAAM;IAEnE,IAAIM,iBAAA,CAAkBC,UAAU,CAACJ,OAAA,GAAU;MACzC,OAAO;IACT,OAAO,IAAIG,iBAAA,CAAkBE,QAAQ,CAAC,aAAa;MACjD,OAAO;IACT,OAAO;MACL,OAAO;IACT;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"isPublicAdminRoute.js","names":["getRouteWithoutAdmin","publicAdminRoutes","isPublicAdminRoute","adminRoute","config","route","routeWithoutAdmin","routeSegments","split","filter","Boolean","isVerifyRoute","length","collections","some","collection","slug","auth","routeSegment","segment","admin","routes","startsWith"],"sources":["../../src/utilities/isPublicAdminRoute.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { getRouteWithoutAdmin } from './getRouteWithoutAdmin.js'\n\n// Routes that are accessible without admin authentication\nconst publicAdminRoutes: (keyof Pick<\n SanitizedConfig['admin']['routes'],\n 'createFirstUser' | 'forgot' | 'inactivity' | 'login' | 'logout' | 'reset' | 'unauthorized'\n>)[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isPublicAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n const routeSegments = routeWithoutAdmin.split('/').filter(Boolean)\n const isVerifyRoute =\n routeSegments.length === 3 &&\n routeSegments[1] === 'verify' &&\n config.collections.some(\n (collection) => collection.slug === routeSegments[0] && Boolean(collection.auth),\n )\n\n if (isVerifyRoute) {\n return true\n }\n\n return publicAdminRoutes.some((routeSegment) => {\n const segment = config.admin?.routes?.[routeSegment] || routeSegment\n\n if (routeWithoutAdmin.startsWith(segment)) {\n return true\n } else {\n return false\n }\n })\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAErC;AACA,MAAMC,iBAAA,GAGC,CACL,mBACA,UACA,SACA,UACA,UACA,cACA,gBACA,QACD;AAED,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,MAAMC,iBAAA,GAAoBN,oBAAA,CAAqB;IAAEG,UAAA;IAAYE;EAAM;EACnE,MAAME,aAAA,GAAgBD,iBAAA,CAAkBE,KAAK,CAAC,KAAKC,MAAM,CAACC,OAAA;EAC1D,MAAMC,aAAA,GACJJ,aAAA,CAAcK,MAAM,KAAK,KACzBL,aAAa,CAAC,EAAE,KAAK,YACrBH,MAAA,CAAOS,WAAW,CAACC,IAAI,CACpBC,UAAA,IAAeA,UAAA,CAAWC,IAAI,KAAKT,aAAa,CAAC,EAAE,IAAIG,OAAA,CAAQK,UAAA,CAAWE,IAAI;EAGnF,IAAIN,aAAA,EAAe;IACjB,OAAO;EACT;EAEA,OAAOV,iBAAA,CAAkBa,IAAI,CAAEI,YAAA;IAC7B,MAAMC,OAAA,GAAUf,MAAA,CAAOgB,KAAK,EAAEC,MAAA,GAASH,YAAA,CAAa,IAAIA,YAAA;IAExD,IAAIZ,iBAAA,CAAkBgB,UAAU,CAACH,OAAA,GAAU;MACzC,OAAO;IACT,OAAO;MACL,OAAO;IACT;EACF;AACF","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { type SchedulePublishTaskInput, type ServerFunction } from 'payload';
1
+ import type { SchedulePublishTaskInput, ServerFunction } from 'payload';
2
+ import type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js';
2
3
  export type SchedulePublishHandlerArgs = {
3
4
  date?: Date;
4
5
  /**
@@ -8,5 +9,11 @@ export type SchedulePublishHandlerArgs = {
8
9
  localeToPublish?: string;
9
10
  timezone?: string;
10
11
  } & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>;
12
+ export type GetUpcomingScheduledPublishHandlerArgs = {
13
+ collectionSlug?: string;
14
+ globalSlug?: string;
15
+ id?: number | string;
16
+ };
17
+ export declare const getUpcomingScheduledPublishHandler: ServerFunction<GetUpcomingScheduledPublishHandlerArgs, Promise<UpcomingEvent[]>>;
11
18
  export declare const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs>;
12
19
  //# sourceMappingURL=schedulePublishHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5F,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CAuD7E,CAAA"}
1
+ {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAKtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,MAAM,MAAM,sCAAsC,GAAG;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAC7D,sCAAsC,EACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAiDzB,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CA+D7E,CAAA"}
@@ -1,4 +1,62 @@
1
- import { canAccessAdmin } from 'payload';
1
+ import { canAccessAdmin, Forbidden } from 'payload';
2
+ import { hasScheduledPublishEnabled } from 'payload/shared';
3
+ import { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js';
4
+ import { getDocumentPermissions } from './getDocumentPermissions.js';
5
+ export const getUpcomingScheduledPublishHandler = async ({
6
+ id,
7
+ collectionSlug,
8
+ globalSlug,
9
+ req
10
+ }) => {
11
+ const {
12
+ payload
13
+ } = req;
14
+ await canAccessAdmin({
15
+ req
16
+ });
17
+ const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined;
18
+ const globalConfig = globalSlug ? payload.config.globals.find(({
19
+ slug
20
+ }) => slug === globalSlug) : undefined;
21
+ const entityConfig = collectionConfig || globalConfig;
22
+ const hasValidTarget = Boolean(entityConfig && hasScheduledPublishEnabled(entityConfig) && (collectionConfig && id !== undefined && !globalSlug || globalConfig && !collectionSlug));
23
+ if (!hasValidTarget) {
24
+ throw new Forbidden(req.t);
25
+ }
26
+ const {
27
+ hasPublishPermission
28
+ } = await getDocumentPermissions({
29
+ id,
30
+ collectionConfig,
31
+ data: {},
32
+ globalConfig,
33
+ req
34
+ });
35
+ if (!hasPublishPermission) {
36
+ throw new Forbidden(req.t);
37
+ }
38
+ const {
39
+ docs
40
+ } = await payload.db.find({
41
+ collection: 'payload-jobs',
42
+ limit: 0,
43
+ sort: 'waitUntil',
44
+ where: buildUpcomingScheduleWhere({
45
+ id,
46
+ collectionSlug,
47
+ globalSlug
48
+ })
49
+ });
50
+ return docs.map(job => ({
51
+ id: job.id,
52
+ input: {
53
+ type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',
54
+ locale: job.input?.locale,
55
+ timezone: job.input?.timezone
56
+ },
57
+ waitUntil: job.waitUntil
58
+ }));
59
+ };
2
60
  export const schedulePublishHandler = async ({
3
61
  type,
4
62
  date,
@@ -23,9 +81,15 @@ export const schedulePublishHandler = async ({
23
81
  collection: 'payload-jobs',
24
82
  req,
25
83
  where: {
26
- id: {
27
- equals: deleteID
28
- }
84
+ and: [{
85
+ id: {
86
+ equals: deleteID
87
+ }
88
+ }, {
89
+ taskSlug: {
90
+ equals: 'schedulePublish'
91
+ }
92
+ }]
29
93
  }
30
94
  });
31
95
  }
@@ -36,7 +100,10 @@ export const schedulePublishHandler = async ({
36
100
  global,
37
101
  locale: localeToPublish,
38
102
  timezone,
39
- user: user.id
103
+ user: user && user.collection ? {
104
+ relationTo: user.collection,
105
+ value: user.id
106
+ } : undefined
40
107
  },
41
108
  task: 'schedulePublish',
42
109
  waitUntil: date
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","schedulePublishHandler","type","date","deleteID","doc","global","localeToPublish","req","timezone","i18n","payload","user","delete","collection","where","id","equals","jobs","queue","input","locale","task","waitUntil","err","error","value","relationTo","logger","message","t"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import { canAccessAdmin, type SchedulePublishTaskInput, type ServerFunction } from 'payload'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: { id: { equals: deleteID } },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAA4D;AAYnF,OAAO,MAAMC,sBAAA,GAAqE,MAAAA,CAAO;EACvFC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,GAAG;EACHC,MAAM;EACNC,eAAe;EACfC,GAAG;EACHC;AAAQ,CACT;EACC,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAI,CAAE,GAAGJ,GAAA;EAEhC,MAAMR,cAAA,CAAe;IAAEQ;EAAI;EAE3B,IAAI;IACF,IAAIJ,QAAA,EAAU;MACZ,MAAMO,OAAA,CAAQE,MAAM,CAAC;QACnBC,UAAA,EAAY;QACZN,GAAA;QACAO,KAAA,EAAO;UAAEC,EAAA,EAAI;YAAEC,MAAA,EAAQb;UAAS;QAAE;MACpC;IACF;IAEA,MAAMO,OAAA,CAAQO,IAAI,CAACC,KAAK,CAAC;MACvBC,KAAA,EAAO;QACLlB,IAAA;QACAG,GAAA;QACAC,MAAA;QACAe,MAAA,EAAQd,eAAA;QACRE,QAAA;QACAG,IAAA,EAAMA,IAAA,CAAKI;MACb;MACAM,IAAA,EAAM;MACNC,SAAA,EAAWpB;IACb;EACF,EAAE,OAAOqB,GAAA,EAAK;IACZ,IAAIC,KAAA;IAEJ,IAAIrB,QAAA,EAAU;MACZqB,KAAA,GAAQ,kDAAkDrB,QAAA,EAAU;IACtE,OAAO;MACLqB,KAAA,GAAQ,oBAAoBvB,IAAA,OAAW;MACvC,IAAIG,GAAA,EAAK;QACPoB,KAAA,IAAS,oBAAoBpB,GAAA,CAAIqB,KAAK,kBAAkBrB,GAAA,CAAIsB,UAAU,EAAE;MAC1E;IACF;IAEAhB,OAAA,CAAQiB,MAAM,CAACH,KAAK,CAAC;MAAED;IAAI,GAAGC,KAAA;IAE9B,OAAO;MACLA;IACF;EACF;EAEA,OAAO;IAAEI,OAAA,EAASnB,IAAA,CAAKoB,CAAC,CAAC;EAAmB;AAC9C","ignoreList":[]}
1
+ {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","Forbidden","hasScheduledPublishEnabled","buildUpcomingScheduleWhere","getDocumentPermissions","getUpcomingScheduledPublishHandler","id","collectionSlug","globalSlug","req","payload","collectionConfig","collections","config","undefined","globalConfig","globals","find","slug","entityConfig","hasValidTarget","Boolean","t","hasPublishPermission","data","docs","db","collection","limit","sort","where","map","job","input","type","locale","timezone","waitUntil","schedulePublishHandler","date","deleteID","doc","global","localeToPublish","i18n","user","delete","and","equals","taskSlug","jobs","queue","relationTo","value","task","err","error","logger","message"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import type { SchedulePublishTaskInput, ServerFunction } from 'payload'\n\nimport { canAccessAdmin, Forbidden } from 'payload'\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport type GetUpcomingScheduledPublishHandlerArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}\n\nexport const getUpcomingScheduledPublishHandler: ServerFunction<\n GetUpcomingScheduledPublishHandlerArgs,\n Promise<UpcomingEvent[]>\n> = async ({ id, collectionSlug, globalSlug, req }) => {\n const { payload } = req\n\n await canAccessAdmin({ req })\n\n const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined\n const globalConfig = globalSlug\n ? payload.config.globals.find(({ slug }) => slug === globalSlug)\n : undefined\n const entityConfig = collectionConfig || globalConfig\n const hasValidTarget = Boolean(\n entityConfig &&\n hasScheduledPublishEnabled(entityConfig) &&\n ((collectionConfig && id !== undefined && !globalSlug) || (globalConfig && !collectionSlug)),\n )\n\n if (!hasValidTarget) {\n throw new Forbidden(req.t)\n }\n\n const { hasPublishPermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n globalConfig,\n req,\n })\n\n if (!hasPublishPermission) {\n throw new Forbidden(req.t)\n }\n\n const { docs } = await payload.db.find<UpcomingEvent>({\n collection: 'payload-jobs',\n limit: 0,\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return docs.map((job) => ({\n id: job.id,\n input: {\n type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',\n locale: job.input?.locale,\n timezone: job.input?.timezone,\n },\n waitUntil: job.waitUntil,\n }))\n}\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: {\n and: [{ id: { equals: deleteID } }, { taskSlug: { equals: 'schedulePublish' } }],\n },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user:\n user && user.collection\n ? {\n relationTo: user.collection,\n value: user.id,\n }\n : undefined,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAe7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAc1E,CAAA"}
1
+ {"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkB7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAe1E,CAAA"}
@@ -7,7 +7,7 @@ import { renderListHandler } from '../views/List/handleServerFunction.js';
7
7
  import { buildFormStateHandler } from './buildFormState.js';
8
8
  import { buildTableStateHandler } from './buildTableState.js';
9
9
  import { copyDataFromLocaleHandler } from './copyDataFromLocale.js';
10
- import { schedulePublishHandler } from './schedulePublishHandler.js';
10
+ import { getUpcomingScheduledPublishHandler, schedulePublishHandler } from './schedulePublishHandler.js';
11
11
  import { slugifyHandler } from './slugify.js';
12
12
  import { switchLanguageHandler } from './switchLanguageHandler.js';
13
13
  /**
@@ -29,6 +29,7 @@ export const sharedServerFunctions = {
29
29
  'copy-data-from-locale': copyDataFromLocaleHandler,
30
30
  'form-state': buildFormStateHandler,
31
31
  'get-default-layout': getDefaultLayoutHandler,
32
+ 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,
32
33
  'render-document': renderDocumentHandler,
33
34
  'render-document-slots': renderDocumentSlotsHandler,
34
35
  'render-field': _internal_renderFieldHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","schedulePublishHandler","slugifyHandler","switchLanguageHandler","sharedServerFunctions","slugify"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport { schedulePublishHandler } from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\n/**\n * The complete, framework-agnostic set of Payload server functions.\n *\n * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches\n * from this single registry via `createServerFunctionHandler`, so a handler\n * added here reaches every framework and the adapter lists can't drift.\n *\n * Handlers may return values containing React elements (e.g. `customComponents`\n * inside form state, the `Document` / `List` nodes from render-document /\n * render-list, the render-field / render-widget output). Adapters ship those\n * over the wire as RSC payloads: Next.js does this natively, while the TanStack\n * Start adapter passes a `transformResult` (`serializeForRsc`) to\n * `createServerFunctionHandler` that converts elements into\n * `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBJ,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,mBAAmBE,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBO,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeJ;AACjB","ignoreList":[]}
1
+ {"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","getUpcomingScheduledPublishHandler","schedulePublishHandler","slugifyHandler","switchLanguageHandler","sharedServerFunctions","slugify"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport {\n getUpcomingScheduledPublishHandler,\n schedulePublishHandler,\n} from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\n/**\n * The complete, framework-agnostic set of Payload server functions.\n *\n * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches\n * from this single registry via `createServerFunctionHandler`, so a handler\n * added here reaches every framework and the adapter lists can't drift.\n *\n * Handlers may return values containing React elements (e.g. `customComponents`\n * inside form state, the `Document` / `List` nodes from render-document /\n * render-list, the render-field / render-widget output). Adapters ship those\n * over the wire as RSC payloads: Next.js does this natively, while the TanStack\n * Start adapter passes a `transformResult` (`serializeForRsc`) to\n * `createServerFunctionHandler` that converts elements into\n * `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SACEC,kCAAkC,EAClCC,sBAAsB,QACjB;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBL,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,kCAAkCQ,kCAAA;EAClC,mBAAmBN,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBQ,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeL;AACjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAkF7B,CAAA"}
1
+ {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAuF7B,CAAA"}
@@ -53,6 +53,7 @@ export const slugifyHandler = async args => {
53
53
  // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable
54
54
  // rows would break uniqueness.
55
55
  const canRead = await executeAccess({
56
+ slug: collectionConfig.slug,
56
57
  disableErrors: true,
57
58
  req
58
59
  }, collectionConfig.access.read);
@@ -74,6 +75,7 @@ export const slugifyHandler = async args => {
74
75
  draftsEnabled: hasDraftsEnabled(collectionConfig),
75
76
  field: field.name,
76
77
  locale: localeToScope,
78
+ overrideAccess: true,
77
79
  req,
78
80
  value: result
79
81
  });
@@ -83,6 +85,7 @@ export const slugifyHandler = async args => {
83
85
  collection: collectionConfig,
84
86
  field: field.name,
85
87
  locale: localeToScope,
88
+ overrideAccess: true,
86
89
  req,
87
90
  slugify
88
91
  });
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess({ disableErrors: true, req }, collectionConfig.access.read)\n\n if (canRead !== true) {\n return result\n }\n\n // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it\n // dedupes against the default locale and can hand back a colliding value. The client passes the\n // active admin locale; fall back to the request's own locale.\n const localeToScope = field.localized ? (locale ?? req.locale ?? undefined) : undefined\n\n // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.\n const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined\n\n // A source resolved to a value: dedupe it the same way the next save would, so the generate button\n // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.\n if (result) {\n return getUniqueFieldValue({\n id: excludeId,\n collection: collectionConfig.slug,\n draftsEnabled: hasDraftsEnabled(collectionConfig),\n field: field.name,\n locale: localeToScope,\n req,\n value: result,\n })\n }\n\n return getSlugFallbackValue({\n id: excludeId,\n collection: collectionConfig,\n field: field.name,\n locale: localeToScope,\n req,\n slugify,\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","overrideAccess","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess(\n { slug: collectionConfig.slug, disableErrors: true, req },\n collectionConfig.access.read,\n )\n\n if (canRead !== true) {\n return result\n }\n\n // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it\n // dedupes against the default locale and can hand back a colliding value. The client passes the\n // active admin locale; fall back to the request's own locale.\n const localeToScope = field.localized ? (locale ?? req.locale ?? undefined) : undefined\n\n // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.\n const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined\n\n // A source resolved to a value: dedupe it the same way the next save would, so the generate button\n // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.\n if (result) {\n return getUniqueFieldValue({\n id: excludeId,\n collection: collectionConfig.slug,\n draftsEnabled: hasDraftsEnabled(collectionConfig),\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n value: result,\n })\n }\n\n return getSlugFallbackValue({\n id: excludeId,\n collection: collectionConfig,\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n slugify,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAkPjC,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAmPjC,CAAA"}
@@ -34,9 +34,8 @@ export const APIViewClient = () => {
34
34
  i18n,
35
35
  t
36
36
  } = useTranslation();
37
- const {
38
- code
39
- } = useLocale();
37
+ const currentLocale = useLocale();
38
+ const code = currentLocale?.code;
40
39
  const {
41
40
  config: {
42
41
  defaultDepth,