@payloadcms/ui 4.0.0-internal.fa183d3 → 4.0.0-internal.fec2230

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 (620) hide show
  1. package/dist/css/app.css +121 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/spacing.css +11 -3
  4. package/dist/css/z-index.css +1 -0
  5. package/dist/elements/AddNewRelation/index.css +0 -1
  6. package/dist/elements/AppHeader/index.css +1 -3
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +6 -2
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/ArrayAction/index.d.ts +3 -0
  11. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +83 -29
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.d.ts.map +1 -1
  15. package/dist/elements/Autosave/index.js +2 -3
  16. package/dist/elements/Autosave/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  18. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  19. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  20. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  22. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  23. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  24. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  25. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  26. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  27. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js +3 -4
  29. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  30. package/dist/elements/Button/index.css +2 -2
  31. package/dist/elements/Button/index.d.ts.map +1 -1
  32. package/dist/elements/Button/index.js +2 -0
  33. package/dist/elements/Button/index.js.map +1 -1
  34. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  35. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  36. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  37. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  38. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  39. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  40. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  41. package/dist/elements/ClipboardAction/index.js +17 -1
  42. package/dist/elements/ClipboardAction/index.js.map +1 -1
  43. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  44. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  45. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  46. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  47. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  48. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  49. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  50. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  51. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  52. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  53. package/dist/elements/ClipboardAction/types.js.map +1 -1
  54. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  55. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  56. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  57. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  58. package/dist/elements/CodeEditor/index.css +0 -5
  59. package/dist/elements/CommandPalette/index.css +0 -7
  60. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  61. package/dist/elements/CopyLocaleData/index.js +8 -9
  62. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  63. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  64. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  65. package/dist/elements/CopyToClipboard/index.js +10 -8
  66. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  67. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  68. package/dist/elements/CreateDocumentButton/index.js +4 -1
  69. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  70. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  71. package/dist/elements/DatePicker/DatePicker.js +1 -0
  72. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  73. package/dist/elements/DatePicker/index.css +1 -1
  74. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  75. package/dist/elements/DeleteDocument/index.js +16 -1
  76. package/dist/elements/DeleteDocument/index.js.map +1 -1
  77. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  78. package/dist/elements/DeleteMany/index.js +2 -3
  79. package/dist/elements/DeleteMany/index.js.map +1 -1
  80. package/dist/elements/Drawer/index.css +10 -4
  81. package/dist/elements/Dropzone/index.css +10 -4
  82. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  83. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  84. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  85. package/dist/elements/DuplicateDocument/index.js +2 -3
  86. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  87. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  88. package/dist/elements/EditMany/DrawerContent.js +4 -5
  89. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  90. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  91. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  92. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  93. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  94. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  95. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  96. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  97. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  98. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  99. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  100. package/dist/elements/FileManager/index.css +35 -52
  101. package/dist/elements/FileManager/index.d.ts +1 -1
  102. package/dist/elements/FileManager/index.d.ts.map +1 -1
  103. package/dist/elements/FileManager/index.js +385 -282
  104. package/dist/elements/FileManager/index.js.map +1 -1
  105. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  106. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  107. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  108. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  109. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  110. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  111. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  112. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  113. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  114. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  115. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  116. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  117. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  118. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  119. package/dist/elements/IDLabel/index.css +6 -0
  120. package/dist/elements/IDLabel/index.d.ts +1 -1
  121. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  122. package/dist/elements/IDLabel/index.js +16 -21
  123. package/dist/elements/IDLabel/index.js.map +1 -1
  124. package/dist/elements/InputStepper/index.css +0 -1
  125. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  126. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  127. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  128. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  129. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  130. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
  131. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  132. package/dist/elements/LivePreview/Window/index.js +1 -1
  133. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  134. package/dist/elements/Localizer/index.js +1 -1
  135. package/dist/elements/Localizer/index.js.map +1 -1
  136. package/dist/elements/Locked/index.css +0 -8
  137. package/dist/elements/Locked/index.d.ts.map +1 -1
  138. package/dist/elements/Locked/index.js +70 -64
  139. package/dist/elements/Locked/index.js.map +1 -1
  140. package/dist/elements/MiniCarousel/index.css +39 -37
  141. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  142. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  143. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  144. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  145. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  146. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  147. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  148. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  149. package/dist/elements/NavGroup/index.css +0 -1
  150. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  151. package/dist/elements/Popup/index.js +1 -1
  152. package/dist/elements/Popup/index.js.map +1 -1
  153. package/dist/elements/PreviewButton/index.d.ts +1 -2
  154. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  155. package/dist/elements/PreviewButton/index.js +11 -5
  156. package/dist/elements/PreviewButton/index.js.map +1 -1
  157. package/dist/elements/PreviewSizes/index.css +8 -9
  158. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  159. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  160. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  161. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  162. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  163. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  164. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  165. package/dist/elements/PublishButton/index.js +5 -6
  166. package/dist/elements/PublishButton/index.js.map +1 -1
  167. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  168. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  169. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  170. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  171. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  172. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  173. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  174. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  175. package/dist/elements/ReactSelect/index.css +0 -3
  176. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  177. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  178. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  179. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  180. package/dist/elements/RelationshipTable/index.css +0 -2
  181. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  182. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  183. package/dist/elements/RelationshipTable/index.js +41 -5
  184. package/dist/elements/RelationshipTable/index.js.map +1 -1
  185. package/dist/elements/RenderTitle/index.css +4 -0
  186. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  187. package/dist/elements/RenderTitle/index.js +18 -13
  188. package/dist/elements/RenderTitle/index.js.map +1 -1
  189. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  190. package/dist/elements/RestoreMany/index.js +2 -3
  191. package/dist/elements/RestoreMany/index.js.map +1 -1
  192. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  193. package/dist/elements/SaveDraftButton/index.js +2 -3
  194. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  195. package/dist/elements/SelectRow/index.d.ts +4 -3
  196. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  197. package/dist/elements/SelectRow/index.js +10 -7
  198. package/dist/elements/SelectRow/index.js.map +1 -1
  199. package/dist/elements/SidebarToggle/index.css +0 -17
  200. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  201. package/dist/elements/SortColumn/index.js +42 -38
  202. package/dist/elements/SortColumn/index.js.map +1 -1
  203. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  204. package/dist/elements/SortHeader/index.js +29 -26
  205. package/dist/elements/SortHeader/index.js.map +1 -1
  206. package/dist/elements/Status/index.d.ts.map +1 -1
  207. package/dist/elements/Status/index.js +2 -3
  208. package/dist/elements/Status/index.js.map +1 -1
  209. package/dist/elements/StepNav/index.css +64 -14
  210. package/dist/elements/StepNav/index.d.ts.map +1 -1
  211. package/dist/elements/StepNav/index.js +143 -69
  212. package/dist/elements/StepNav/index.js.map +1 -1
  213. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  214. package/dist/elements/Table/DefaultCell/index.js +3 -11
  215. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  216. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  217. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  218. package/dist/elements/Table/OrderableRow.js +17 -1
  219. package/dist/elements/Table/OrderableRow.js.map +1 -1
  220. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  221. package/dist/elements/Table/OrderableTable.js +20 -4
  222. package/dist/elements/Table/OrderableTable.js.map +1 -1
  223. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  224. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  225. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  226. package/dist/elements/Table/index.css +1 -0
  227. package/dist/elements/TableSection/index.css +0 -1
  228. package/dist/elements/Thumbnail/index.d.ts +1 -1
  229. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  230. package/dist/elements/Thumbnail/index.js.map +1 -1
  231. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  232. package/dist/elements/TimezonePicker/index.js +5 -1
  233. package/dist/elements/TimezonePicker/index.js.map +1 -1
  234. package/dist/elements/Tooltip/index.css +15 -34
  235. package/dist/elements/Tooltip/index.d.ts +11 -3
  236. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  237. package/dist/elements/Tooltip/index.js +151 -85
  238. package/dist/elements/Tooltip/index.js.map +1 -1
  239. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  240. package/dist/elements/UnpublishButton/index.js +3 -4
  241. package/dist/elements/UnpublishButton/index.js.map +1 -1
  242. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  243. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  244. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  245. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  246. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  247. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  248. package/dist/elements/Upload/index.css +39 -37
  249. package/dist/elements/Upload/index.d.ts.map +1 -1
  250. package/dist/elements/Upload/index.js +37 -99
  251. package/dist/elements/Upload/index.js.map +1 -1
  252. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  253. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  254. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  255. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  256. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  257. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  258. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  259. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  260. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  261. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  262. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  263. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  264. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  265. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  266. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  267. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  268. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  269. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  270. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  271. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  272. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  273. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  274. package/dist/elements/WhereBuilder/index.js +15 -4
  275. package/dist/elements/WhereBuilder/index.js.map +1 -1
  276. package/dist/exports/client/index.d.ts +5 -1
  277. package/dist/exports/client/index.d.ts.map +1 -1
  278. package/dist/exports/client/index.js +1 -1
  279. package/dist/exports/client/index.js.map +3 -3
  280. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  281. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  282. package/dist/fields/Array/ArrayRow.js +99 -160
  283. package/dist/fields/Array/ArrayRow.js.map +1 -1
  284. package/dist/fields/Array/index.d.ts.map +1 -1
  285. package/dist/fields/Array/index.js +40 -13
  286. package/dist/fields/Array/index.js.map +1 -1
  287. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  288. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  289. package/dist/fields/Blocks/BlockRow.js +136 -195
  290. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  291. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  292. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  293. package/dist/fields/Blocks/RowActions.js +26 -20
  294. package/dist/fields/Blocks/RowActions.js.map +1 -1
  295. package/dist/fields/Blocks/index.d.ts.map +1 -1
  296. package/dist/fields/Blocks/index.js +40 -13
  297. package/dist/fields/Blocks/index.js.map +1 -1
  298. package/dist/fields/Checkbox/Input.d.ts +2 -0
  299. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  300. package/dist/fields/Checkbox/Input.js +32 -26
  301. package/dist/fields/Checkbox/Input.js.map +1 -1
  302. package/dist/fields/Checkbox/index.css +37 -73
  303. package/dist/fields/FieldError/index.css +0 -9
  304. package/dist/fields/FieldError/index.d.ts.map +1 -1
  305. package/dist/fields/FieldError/index.js +19 -9
  306. package/dist/fields/FieldError/index.js.map +1 -1
  307. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  308. package/dist/fields/FieldLabel/index.js +4 -5
  309. package/dist/fields/FieldLabel/index.js.map +1 -1
  310. package/dist/fields/Join/index.css +9 -0
  311. package/dist/fields/Join/index.d.ts.map +1 -1
  312. package/dist/fields/Join/index.js +13 -9
  313. package/dist/fields/Join/index.js.map +1 -1
  314. package/dist/fields/RadioGroup/index.css +0 -7
  315. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  316. package/dist/fields/Relationship/Input.js +34 -17
  317. package/dist/fields/Relationship/Input.js.map +1 -1
  318. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  319. package/dist/fields/Slug/index.css +0 -1
  320. package/dist/fields/Slug/index.d.ts.map +1 -1
  321. package/dist/fields/Slug/index.js +74 -111
  322. package/dist/fields/Slug/index.js.map +1 -1
  323. package/dist/fields/Upload/Input.d.ts.map +1 -1
  324. package/dist/fields/Upload/Input.js +46 -19
  325. package/dist/fields/Upload/Input.js.map +1 -1
  326. package/dist/fields/Upload/Input.spec.js +242 -0
  327. package/dist/fields/Upload/Input.spec.js.map +1 -0
  328. package/dist/fields/Upload/index.css +19 -4
  329. package/dist/fields/shared/index.d.ts +1 -1
  330. package/dist/fields/shared/index.d.ts.map +1 -1
  331. package/dist/fields/shared/index.js.map +1 -1
  332. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  333. package/dist/forms/Form/fieldReducer.js +3 -1
  334. package/dist/forms/Form/fieldReducer.js.map +1 -1
  335. package/dist/forms/Form/index.d.ts.map +1 -1
  336. package/dist/forms/Form/index.js +14 -18
  337. package/dist/forms/Form/index.js.map +1 -1
  338. package/dist/forms/Form/types.d.ts +1 -1
  339. package/dist/forms/Form/types.d.ts.map +1 -1
  340. package/dist/forms/Form/types.js.map +1 -1
  341. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  342. package/dist/forms/NullifyField/index.js +2 -3
  343. package/dist/forms/NullifyField/index.js.map +1 -1
  344. package/dist/forms/RenderFields/index.css +16 -2
  345. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  346. package/dist/forms/WatchChildErrors/index.js +2 -2
  347. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  348. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  349. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -1
  350. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  351. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  352. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  353. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  354. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  355. package/dist/hooks/usePayloadAPI.js +2 -3
  356. package/dist/hooks/usePayloadAPI.js.map +1 -1
  357. package/dist/icons/Edit/index.d.ts +0 -1
  358. package/dist/icons/Edit/index.d.ts.map +1 -1
  359. package/dist/icons/Edit/index.js +4 -4
  360. package/dist/icons/Edit/index.js.map +1 -1
  361. package/dist/layouts/Root/index.d.ts +1 -1
  362. package/dist/layouts/Root/index.d.ts.map +1 -1
  363. package/dist/layouts/Root/index.js +8 -2
  364. package/dist/layouts/Root/index.js.map +1 -1
  365. package/dist/providers/Actions/index.d.ts +1 -0
  366. package/dist/providers/Actions/index.d.ts.map +1 -1
  367. package/dist/providers/Actions/index.js +43 -11
  368. package/dist/providers/Actions/index.js.map +1 -1
  369. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  370. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  371. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  372. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  373. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  374. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  375. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  376. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  377. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  378. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  379. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  380. package/dist/providers/Auth/authSessionRequests.js +119 -0
  381. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  382. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  383. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  384. package/dist/providers/Auth/index.d.ts +2 -56
  385. package/dist/providers/Auth/index.d.ts.map +1 -1
  386. package/dist/providers/Auth/index.js +283 -135
  387. package/dist/providers/Auth/index.js.map +1 -1
  388. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  389. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  390. package/dist/providers/Auth/sessionActivity.js +49 -0
  391. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  392. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  393. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  394. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  395. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  396. package/dist/providers/Auth/sessionTiming.js +18 -0
  397. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  398. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  399. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  400. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  401. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  402. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  403. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  404. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  405. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  406. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  407. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  408. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  409. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  410. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  411. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  412. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  413. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  414. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  415. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  416. package/dist/providers/Auth/types.d.ts +65 -0
  417. package/dist/providers/Auth/types.d.ts.map +1 -0
  418. package/dist/providers/Auth/types.js +2 -0
  419. package/dist/providers/Auth/types.js.map +1 -0
  420. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  421. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  422. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  423. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  424. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  425. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  426. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  427. package/dist/providers/DocumentInfo/index.js +2 -3
  428. package/dist/providers/DocumentInfo/index.js.map +1 -1
  429. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  430. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  431. package/dist/providers/DocumentTitle/index.js +2 -0
  432. package/dist/providers/DocumentTitle/index.js.map +1 -1
  433. package/dist/providers/Embed/index.d.ts +24 -0
  434. package/dist/providers/Embed/index.d.ts.map +1 -0
  435. package/dist/providers/Embed/index.js +105 -0
  436. package/dist/providers/Embed/index.js.map +1 -0
  437. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  438. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  439. package/dist/providers/FormErrorHandler/index.js +6 -0
  440. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  441. package/dist/providers/Locale/index.d.ts +1 -5
  442. package/dist/providers/Locale/index.d.ts.map +1 -1
  443. package/dist/providers/Locale/index.js +64 -137
  444. package/dist/providers/Locale/index.js.map +1 -1
  445. package/dist/providers/Root/index.d.ts +1 -0
  446. package/dist/providers/Root/index.d.ts.map +1 -1
  447. package/dist/providers/Root/index.js +37 -31
  448. package/dist/providers/Root/index.js.map +1 -1
  449. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  450. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  451. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  452. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  453. package/dist/providers/RouteTransition/index.d.ts +2 -0
  454. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  455. package/dist/providers/RouteTransition/index.js +42 -14
  456. package/dist/providers/RouteTransition/index.js.map +1 -1
  457. package/dist/providers/Selection/index.d.ts.map +1 -1
  458. package/dist/providers/Selection/index.js +2 -3
  459. package/dist/providers/Selection/index.js.map +1 -1
  460. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  461. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  462. package/dist/providers/ServerFunctions/index.js +15 -0
  463. package/dist/providers/ServerFunctions/index.js.map +1 -1
  464. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  465. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  466. package/dist/providers/SidebarTabs/index.js.map +1 -1
  467. package/dist/providers/TableColumns/buildColumnState/index.js +1 -2
  468. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  469. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  470. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  471. package/dist/providers/Theme/index.d.ts +3 -0
  472. package/dist/providers/Theme/index.d.ts.map +1 -1
  473. package/dist/providers/Theme/index.js +107 -95
  474. package/dist/providers/Theme/index.js.map +1 -1
  475. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  476. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  477. package/dist/providers/UploadHandlers/index.js +102 -42
  478. package/dist/providers/UploadHandlers/index.js.map +1 -1
  479. package/dist/styles.css +13 -10
  480. package/dist/templates/Default/index.d.ts +1 -0
  481. package/dist/templates/Default/index.d.ts.map +1 -1
  482. package/dist/templates/Default/index.js +2 -0
  483. package/dist/templates/Default/index.js.map +1 -1
  484. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  485. package/dist/utilities/combineFieldLabel.js +5 -1
  486. package/dist/utilities/combineFieldLabel.js.map +1 -1
  487. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  488. package/dist/utilities/formatMetadata.js +0 -5
  489. package/dist/utilities/formatMetadata.js.map +1 -1
  490. package/dist/utilities/generateFieldID.d.ts +1 -1
  491. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  492. package/dist/utilities/generateFieldID.js +2 -2
  493. package/dist/utilities/generateFieldID.js.map +1 -1
  494. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  495. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  496. package/dist/utilities/getFilesFromClipboard.js +49 -0
  497. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  498. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  499. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  500. package/dist/utilities/getHasScheduledPublish.js +2 -5
  501. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  502. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  503. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  504. package/dist/utilities/getRequestEmbed.js +10 -0
  505. package/dist/utilities/getRequestEmbed.js.map +1 -0
  506. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  507. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  508. package/dist/utilities/handleServerFunctions.js +17 -37
  509. package/dist/utilities/handleServerFunctions.js.map +1 -1
  510. package/dist/utilities/renderTable.d.ts.map +1 -1
  511. package/dist/utilities/renderTable.js +18 -2
  512. package/dist/utilities/renderTable.js.map +1 -1
  513. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  514. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  515. package/dist/utilities/schedulePublishHandler.js +68 -4
  516. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  517. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  518. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  519. package/dist/utilities/serverFunctionRegistry.js +27 -8
  520. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  521. package/dist/utilities/slugify.d.ts.map +1 -1
  522. package/dist/utilities/slugify.js +52 -6
  523. package/dist/utilities/slugify.js.map +1 -1
  524. package/dist/views/API/index.client.d.ts.map +1 -1
  525. package/dist/views/API/index.client.js +2 -3
  526. package/dist/views/API/index.client.js.map +1 -1
  527. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  528. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  529. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  530. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  531. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  532. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  533. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  534. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  535. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  536. package/dist/views/Dashboard/Default/ModularDashboard/index.css +29 -144
  537. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  538. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  539. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  540. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  541. package/dist/views/Document/index.d.ts.map +1 -1
  542. package/dist/views/Document/index.js +1 -2
  543. package/dist/views/Document/index.js.map +1 -1
  544. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  545. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  546. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  547. package/dist/views/Edit/index.css +61 -53
  548. package/dist/views/Edit/index.d.ts.map +1 -1
  549. package/dist/views/Edit/index.js +3 -2
  550. package/dist/views/Edit/index.js.map +1 -1
  551. package/dist/views/HierarchyList/index.css +1 -1
  552. package/dist/views/List/ListHeader/index.d.ts +1 -10
  553. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  554. package/dist/views/List/ListHeader/index.js +1 -3
  555. package/dist/views/List/ListHeader/index.js.map +1 -1
  556. package/dist/views/List/index.client.d.ts.map +1 -1
  557. package/dist/views/List/index.client.js +0 -14
  558. package/dist/views/List/index.client.js.map +1 -1
  559. package/dist/views/List/index.css +6 -1
  560. package/dist/views/List/index.d.ts.map +1 -1
  561. package/dist/views/List/index.js +4 -0
  562. package/dist/views/List/index.js.map +1 -1
  563. package/dist/views/Logout/index.d.ts.map +1 -1
  564. package/dist/views/Logout/index.js +11 -0
  565. package/dist/views/Logout/index.js.map +1 -1
  566. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  567. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  568. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  569. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  570. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  571. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  572. package/dist/views/Root/index.d.ts +12 -1
  573. package/dist/views/Root/index.d.ts.map +1 -1
  574. package/dist/views/Root/index.js +11 -3
  575. package/dist/views/Root/index.js.map +1 -1
  576. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  577. package/dist/views/Version/Default/SetStepNav.js +10 -13
  578. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  579. package/dist/views/Version/Default/index.d.ts.map +1 -1
  580. package/dist/views/Version/Default/index.js +12 -13
  581. package/dist/views/Version/Default/index.js.map +1 -1
  582. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  583. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  584. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  585. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  586. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  587. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  588. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  589. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js +258 -0
  590. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js.map +1 -0
  591. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  592. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  593. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  594. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  595. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  596. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  597. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +56 -2
  598. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  599. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  600. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  601. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  602. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  603. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +3 -13
  604. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  605. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  606. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  607. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  608. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  609. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  610. package/package.json +6 -10
  611. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  612. package/dist/scss/app.scss +0 -183
  613. package/dist/scss/colors.scss +0 -191
  614. package/dist/scss/custom.css +0 -1
  615. package/dist/scss/queries.scss +0 -27
  616. package/dist/scss/styles.scss +0 -9
  617. package/dist/scss/svg.scss +0 -10
  618. package/dist/scss/toastify.scss +0 -61
  619. package/dist/scss/vars.scss +0 -192
  620. package/dist/scss/z-index.scss +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","DndContext","pointerWithin","ModalContainer","ModalProvider","ScrollInfoProvider","React","CloseModalOnRouteChange","DrawerStackProvider","LoadingOverlayProvider","NavProvider","StayLoggedInModal","StepNavProvider","ClickOutsideProvider","WindowInfoProvider","AuthProvider","ClientFunctionProvider","ConfigProvider","DocumentEventsProvider","HierarchyProvider","LocaleProvider","PreferencesProvider","RouteCache","RouteTransitionProvider","ServerFunctionsProvider","ThemeProvider","ToastContainer","TranslationProvider","UploadHandlersProvider","RootProvider","t0","$","children","config","dateFNSKey","fallbackLang","highContrastMode","isNavOpen","languageCode","languageOptions","locale","permissions","RouterAdapter","serverFunction","theme","translations","user","dndContextID","useId","t1","_jsxs","_jsx","cachingEnabled","process","env","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","language","breakpoints","l","m","s","xs","classPrefix","transTime","zIndex","initialIsOpen","collisionDetection","id"],"sources":["../../../src/providers/Root/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient, I18nOptions, Language } from '@payloadcms/translations'\nimport type {\n ClientConfig,\n LanguageOptions,\n Locale,\n RouterAdapterComponent,\n SanitizedPermissions,\n ServerFunctionClient,\n User,\n} from 'payload'\n\nimport { DndContext, pointerWithin } from '@dnd-kit/core'\nimport { ModalContainer, ModalProvider } from '@faceless-ui/modal'\nimport { ScrollInfoProvider } from '@faceless-ui/scroll-info'\nimport React from 'react'\n\nimport type { Theme } from '../Theme/index.js'\n\nimport { CloseModalOnRouteChange } from '../../elements/CloseModalOnRouteChange/index.js'\nimport { DrawerStackProvider } from '../../elements/Drawer/index.js'\nimport { LoadingOverlayProvider } from '../../elements/LoadingOverlay/index.js'\nimport { NavProvider } from '../../elements/Nav/context.js'\nimport { StayLoggedInModal } from '../../elements/StayLoggedIn/index.js'\nimport { StepNavProvider } from '../../elements/StepNav/index.js'\nimport { ClickOutsideProvider } from '../../providers/ClickOutside/index.js'\nimport { WindowInfoProvider } from '../../providers/WindowInfo/index.js'\nimport { AuthProvider } from '../Auth/index.js'\nimport { ClientFunctionProvider } from '../ClientFunction/index.js'\nimport { ConfigProvider } from '../Config/index.js'\nimport { DocumentEventsProvider } from '../DocumentEvents/index.js'\nimport { HierarchyProvider } from '../Hierarchy/index.js'\nimport { LocaleProvider } from '../Locale/index.js'\nimport { PreferencesProvider } from '../Preferences/index.js'\nimport { RouteCache } from '../RouteCache/index.js'\nimport { RouteTransitionProvider } from '../RouteTransition/index.js'\nimport { ServerFunctionsProvider } from '../ServerFunctions/index.js'\nimport { ThemeProvider } from '../Theme/index.js'\nimport { ToastContainer } from '../ToastContainer/index.js'\nimport { TranslationProvider } from '../Translation/index.js'\nimport { UploadHandlersProvider } from '../UploadHandlers/index.js'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly config: ClientConfig\n readonly dateFNSKey: Language['dateFNSKey']\n readonly fallbackLang: I18nOptions['fallbackLanguage']\n readonly highContrastMode: boolean\n readonly isNavOpen?: boolean\n readonly languageCode: string\n readonly languageOptions: LanguageOptions\n readonly locale?: Locale['code']\n readonly permissions: SanitizedPermissions\n readonly RouterAdapter: RouterAdapterComponent\n readonly serverFunction: ServerFunctionClient\n readonly theme: Theme\n readonly translations: I18nClient['translations']\n readonly user: null | User\n}\n\nexport const RootProvider: React.FC<Props> = ({\n children,\n config,\n dateFNSKey,\n fallbackLang,\n highContrastMode,\n isNavOpen,\n languageCode,\n languageOptions,\n locale,\n permissions,\n RouterAdapter,\n serverFunction,\n theme,\n translations,\n user,\n}) => {\n const dndContextID = React.useId()\n\n return (\n <ClickOutsideProvider>\n <RouterAdapter>\n <ServerFunctionsProvider serverFunction={serverFunction}>\n <RouteTransitionProvider>\n <RouteCache\n cachingEnabled={process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === 'true'}\n >\n <ConfigProvider config={config}>\n <ClientFunctionProvider>\n <TranslationProvider\n dateFNSKey={dateFNSKey}\n fallbackLang={fallbackLang}\n language={languageCode}\n languageOptions={languageOptions}\n translations={translations}\n >\n <WindowInfoProvider\n breakpoints={{\n l: '(max-width: 1440px)',\n m: '(max-width: 1024px)',\n s: '(max-width: 768px)',\n xs: '(max-width: 400px)',\n }}\n >\n <ScrollInfoProvider>\n <ModalProvider classPrefix=\"payload\" transTime={0} zIndex=\"var(--z-modal)\">\n <DrawerStackProvider>\n <CloseModalOnRouteChange />\n <AuthProvider permissions={permissions} user={user}>\n <PreferencesProvider>\n <HierarchyProvider>\n <ThemeProvider highContrastMode={highContrastMode} theme={theme}>\n <LocaleProvider locale={locale}>\n <StepNavProvider>\n <LoadingOverlayProvider>\n <DocumentEventsProvider>\n <NavProvider initialIsOpen={isNavOpen}>\n <UploadHandlersProvider>\n <DndContext\n collisionDetection={pointerWithin}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n >\n {children}\n </DndContext>\n </UploadHandlersProvider>\n </NavProvider>\n </DocumentEventsProvider>\n </LoadingOverlayProvider>\n </StepNavProvider>\n </LocaleProvider>\n </ThemeProvider>\n </HierarchyProvider>\n </PreferencesProvider>\n <ModalContainer />\n <StayLoggedInModal />\n </AuthProvider>\n </DrawerStackProvider>\n </ModalProvider>\n </ScrollInfoProvider>\n </WindowInfoProvider>\n </TranslationProvider>\n </ClientFunctionProvider>\n </ConfigProvider>\n </RouteCache>\n </RouteTransitionProvider>\n </ServerFunctionsProvider>\n </RouterAdapter>\n <ToastContainer config={config} />\n </ClickOutsideProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","DndContext","pointerWithin","ModalContainer","ModalProvider","ScrollInfoProvider","React","CloseModalOnRouteChange","DrawerStackProvider","LoadingOverlayProvider","NavProvider","StayLoggedInModal","StepNavProvider","ClickOutsideProvider","WindowInfoProvider","AuthProvider","ClientFunctionProvider","ConfigProvider","DocumentEventsProvider","EmbedProvider","HierarchyProvider","LocaleProvider","PreferencesProvider","RouteCache","RouteTransitionProvider","ServerFunctionsProvider","ThemeProvider","ToastContainer","TranslationProvider","UploadHandlersProvider","RootProvider","t0","$","children","config","dateFNSKey","embed","fallbackLang","highContrastMode","isNavOpen","languageCode","languageOptions","locale","permissions","RouterAdapter","serverFunction","theme","translations","user","dndContextID","useId","t1","_jsxs","_jsx","cachingEnabled","process","env","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","language","breakpoints","l","m","s","xs","classPrefix","transTime","zIndex","initialIsOpen","collisionDetection","id"],"sources":["../../../src/providers/Root/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient, I18nOptions, Language } from '@payloadcms/translations'\nimport type {\n ClientConfig,\n LanguageOptions,\n Locale,\n RouterAdapterComponent,\n SanitizedPermissions,\n ServerFunctionClient,\n User,\n} from 'payload'\n\nimport { DndContext, pointerWithin } from '@dnd-kit/core'\nimport { ModalContainer, ModalProvider } from '@faceless-ui/modal'\nimport { ScrollInfoProvider } from '@faceless-ui/scroll-info'\nimport React from 'react'\n\nimport type { Theme } from '../Theme/index.js'\n\nimport { CloseModalOnRouteChange } from '../../elements/CloseModalOnRouteChange/index.js'\nimport { DrawerStackProvider } from '../../elements/Drawer/index.js'\nimport { LoadingOverlayProvider } from '../../elements/LoadingOverlay/index.js'\nimport { NavProvider } from '../../elements/Nav/context.js'\nimport { StayLoggedInModal } from '../../elements/StayLoggedIn/index.js'\nimport { StepNavProvider } from '../../elements/StepNav/index.js'\nimport { ClickOutsideProvider } from '../../providers/ClickOutside/index.js'\nimport { WindowInfoProvider } from '../../providers/WindowInfo/index.js'\nimport { AuthProvider } from '../Auth/index.js'\nimport { ClientFunctionProvider } from '../ClientFunction/index.js'\nimport { ConfigProvider } from '../Config/index.js'\nimport { DocumentEventsProvider } from '../DocumentEvents/index.js'\nimport { EmbedProvider } from '../Embed/index.js'\nimport { HierarchyProvider } from '../Hierarchy/index.js'\nimport { LocaleProvider } from '../Locale/index.js'\nimport { PreferencesProvider } from '../Preferences/index.js'\nimport { RouteCache } from '../RouteCache/index.js'\nimport { RouteTransitionProvider } from '../RouteTransition/index.js'\nimport { ServerFunctionsProvider } from '../ServerFunctions/index.js'\nimport { ThemeProvider } from '../Theme/index.js'\nimport { ToastContainer } from '../ToastContainer/index.js'\nimport { TranslationProvider } from '../Translation/index.js'\nimport { UploadHandlersProvider } from '../UploadHandlers/index.js'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly config: ClientConfig\n readonly dateFNSKey: Language['dateFNSKey']\n readonly embed?: boolean\n readonly fallbackLang: I18nOptions['fallbackLanguage']\n readonly highContrastMode: boolean\n readonly isNavOpen?: boolean\n readonly languageCode: string\n readonly languageOptions: LanguageOptions\n readonly locale?: Locale['code']\n readonly permissions: SanitizedPermissions\n readonly RouterAdapter: RouterAdapterComponent\n readonly serverFunction: ServerFunctionClient\n readonly theme: Theme\n readonly translations: I18nClient['translations']\n readonly user: null | User\n}\n\nexport const RootProvider: React.FC<Props> = ({\n children,\n config,\n dateFNSKey,\n embed,\n fallbackLang,\n highContrastMode,\n isNavOpen,\n languageCode,\n languageOptions,\n locale,\n permissions,\n RouterAdapter,\n serverFunction,\n theme,\n translations,\n user,\n}) => {\n const dndContextID = React.useId()\n\n return (\n <ClickOutsideProvider>\n <RouteTransitionProvider>\n <RouterAdapter>\n <ServerFunctionsProvider serverFunction={serverFunction}>\n <RouteCache\n cachingEnabled={process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === 'true'}\n >\n <ConfigProvider config={config}>\n <ClientFunctionProvider>\n <TranslationProvider\n dateFNSKey={dateFNSKey}\n fallbackLang={fallbackLang}\n language={languageCode}\n languageOptions={languageOptions}\n translations={translations}\n >\n <WindowInfoProvider\n breakpoints={{\n l: '(max-width: 1440px)',\n m: '(max-width: 1024px)',\n s: '(max-width: 768px)',\n xs: '(max-width: 400px)',\n }}\n >\n <ScrollInfoProvider>\n <ModalProvider classPrefix=\"payload\" transTime={0} zIndex=\"var(--z-modal)\">\n <DrawerStackProvider>\n <CloseModalOnRouteChange />\n <AuthProvider permissions={permissions} user={user}>\n <PreferencesProvider>\n <HierarchyProvider>\n <ThemeProvider highContrastMode={highContrastMode} theme={theme}>\n <EmbedProvider embed={embed}>\n <LocaleProvider locale={locale}>\n <StepNavProvider>\n <LoadingOverlayProvider>\n <DocumentEventsProvider>\n <NavProvider initialIsOpen={isNavOpen}>\n <UploadHandlersProvider>\n <DndContext\n collisionDetection={pointerWithin}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n >\n {children}\n </DndContext>\n </UploadHandlersProvider>\n </NavProvider>\n </DocumentEventsProvider>\n </LoadingOverlayProvider>\n </StepNavProvider>\n </LocaleProvider>\n </EmbedProvider>\n </ThemeProvider>\n </HierarchyProvider>\n </PreferencesProvider>\n <ModalContainer />\n <StayLoggedInModal />\n </AuthProvider>\n </DrawerStackProvider>\n </ModalProvider>\n </ScrollInfoProvider>\n </WindowInfoProvider>\n </TranslationProvider>\n </ClientFunctionProvider>\n </ConfigProvider>\n </RouteCache>\n </ServerFunctionsProvider>\n </RouterAdapter>\n </RouteTransitionProvider>\n <ToastContainer config={config} />\n </ClickOutsideProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -46,7 +46,7 @@ export const ProgressBar = () => {
46
46
  }
47
47
  } else {
48
48
  shouldDelayProgress.current = true;
49
- setProgressToShow(1);
49
+ setProgressToShow(_temp);
50
50
  clearTimerID = setTimeout(() => {
51
51
  setProgressToShow(null);
52
52
  }, transitionDuration * 2);
@@ -101,4 +101,7 @@ export const ProgressBar = () => {
101
101
  }
102
102
  return null;
103
103
  };
104
+ function _temp(currentProgress) {
105
+ return currentProgress === null ? null : 1;
106
+ }
104
107
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRef","useRouteTransition","transitionDuration","baseClass","initialDelay","ProgressBar","$","isTransitioning","transitionProgress","progressToShow","setProgressToShow","useState","shouldDelayProgress","t0","t1","clearTimerID","delayTimerID","current","clearTimeout","t2","t3","filter","Boolean","t4","join","t5","_jsx","className","style","children","width"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../index.js'\nimport './index.css'\n\nconst transitionDuration = 200\nconst baseClass = 'progress-bar'\nconst initialDelay = 150\n\n/**\n * Renders a progress bar that shows the progress of a route transition.\n * Place this at the root of your application, inside of the `RouteTransitionProvider`.\n * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.\n * @returns A progress bar that shows the progress of a route transition\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n */\nexport const ProgressBar = () => {\n const { isTransitioning, transitionProgress } = useRouteTransition()\n const [progressToShow, setProgressToShow] = React.useState<null | number>(null)\n const shouldDelayProgress = useRef(true)\n\n useEffect(() => {\n let clearTimerID: NodeJS.Timeout\n let delayTimerID: NodeJS.Timeout\n\n if (isTransitioning) {\n if (shouldDelayProgress.current) {\n delayTimerID = setTimeout(() => {\n setProgressToShow(transitionProgress)\n shouldDelayProgress.current = false\n }, initialDelay)\n } else {\n setProgressToShow(transitionProgress)\n }\n } else {\n shouldDelayProgress.current = true\n\n // Fast forward to 100% when the transition is complete\n // Then fade out the progress bar directly after\n setProgressToShow(1)\n\n // Wait for CSS transition to finish before hiding the progress bar\n // This includes both the fast-forward to 100% and the subsequent fade-out\n clearTimerID = setTimeout(() => {\n setProgressToShow(null)\n }, transitionDuration * 2)\n }\n\n return () => {\n clearTimeout(clearTimerID)\n clearTimeout(delayTimerID)\n }\n }, [isTransitioning, transitionProgress])\n\n if (typeof progressToShow === 'number') {\n return (\n <div\n className={[baseClass, progressToShow === 1 && `${baseClass}--fade-out`]\n .filter(Boolean)\n .join(' ')}\n style={{\n // @ts-expect-error - TS doesn't like custom CSS properties\n '--transition-duration': `${transitionDuration}ms`,\n }}\n >\n <div\n className={`${baseClass}__progress`}\n style={{\n width: `${(progressToShow || 0) * 100}%`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,SAAA,GAAY;AAClB,MAAMC,YAAA,GAAe;AAErB;;;;;;;;;;;;;AAaA,OAAO,MAAMC,WAAA,GAAcA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACzB;IAAAU,eAAA;IAAAC;EAAA,IAAgDP,kBAAA;EAChD,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CZ,KAAA,CAAAa,QAAA,KAA8B;EAC1E,MAAAC,mBAAA,GAA4BZ,MAAA,KAAO;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,kBAAA;IAEzBK,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,YAAA;MACAC,GAAA,CAAAA,YAAA;MAAA,IAEAT,eAAA;QAAA,IACEK,mBAAA,CAAAK,OAAA;UACFD,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;YACbN,iBAAA,CAAkBF,kBAAA;YAClBI,mBAAA,CAAAK,OAAA;UAAA,GAAAb,YACC;QAHH;UAKAM,iBAAA,CAAkBF,kBAAA;QAAA;MAAA;QAGpBI,mBAAA,CAAAK,OAAA;QAIAP,iBAAA,EAAkB;QAIlBK,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;UACbL,iBAAA,KAAkB;QAAA,GACjBR,kBAAA,IAAqB;MAFxB;MAAA;QAMAgB,YAAA,CAAaH,YAAA;QACbG,YAAA,CAAaF,YAAA;MAAA;IAAA;IAEdF,EAAA,IAACP,eAAA,EAAiBC,kBAAA;IAAmBF,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAD,EAAA,GAAAP,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EA/BxCP,SAAA,CAAUc,EA+BV,EAAGC,EAAqC;EAAA,IAEpC,OAAOL,cAAA,KAAmB;IAGD,MAAAU,EAAA,GAAAV,cAAA,MAAmB,IAAK,GAAAN,SAAA,YAAwB;IAAA,IAAAiB,EAAA;IAAA,IAAAd,CAAA,QAAAa,EAAA;MAA5DC,EAAA,IAAAjB,SAAA,EAAYgB,EAAgD,EAAAE,MAAA,CAAAC,OAC7D;MAAAhB,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;IAAA;MAAAA,EAAA,GAAAd,CAAA;IAAA;IADC,MAAAiB,EAAA,GAAAH,EACD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAAnB,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAiB,EAAA;MAHVE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EACYJ,EAEH;QAAAK,KAAA;UAAA,yBAGmB,GAAA1B,kBAAA;QAAyB;QAAA2B,QAAA,EAGpDH,IAAA,CAAC;UAAAC,SAAA,EACY,GAAAxB,SAAA,YAAwB;UAAAyB,KAAA;YAAAE,KAAA,EAE1B,GAAG,CAACrB,cAAA,KAAkB,OAAK;UAAM;QAAA,C;;;;;;;;WAZ9CgB,E;;;CAoBN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRef","useRouteTransition","transitionDuration","baseClass","initialDelay","ProgressBar","$","isTransitioning","transitionProgress","progressToShow","setProgressToShow","useState","shouldDelayProgress","t0","t1","clearTimerID","delayTimerID","current","_temp","clearTimeout","t2","t3","filter","Boolean","t4","join","t5","_jsx","className","style","children","width","currentProgress"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../index.js'\nimport './index.css'\n\nconst transitionDuration = 200\nconst baseClass = 'progress-bar'\nconst initialDelay = 150\n\n/**\n * Renders a progress bar that shows the progress of a route transition.\n * Place this at the root of your application, inside of the `RouteTransitionProvider`.\n * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.\n * @returns A progress bar that shows the progress of a route transition\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n */\nexport const ProgressBar = () => {\n const { isTransitioning, transitionProgress } = useRouteTransition()\n const [progressToShow, setProgressToShow] = React.useState<null | number>(null)\n const shouldDelayProgress = useRef(true)\n\n useEffect(() => {\n let clearTimerID: NodeJS.Timeout\n let delayTimerID: NodeJS.Timeout\n\n if (isTransitioning) {\n if (shouldDelayProgress.current) {\n delayTimerID = setTimeout(() => {\n setProgressToShow(transitionProgress)\n shouldDelayProgress.current = false\n }, initialDelay)\n } else {\n setProgressToShow(transitionProgress)\n }\n } else {\n shouldDelayProgress.current = true\n\n // Fast forward to 100% when the transition is complete\n // Then fade out the progress bar directly after\n setProgressToShow((currentProgress) => (currentProgress === null ? null : 1))\n\n // Wait for CSS transition to finish before hiding the progress bar\n // This includes both the fast-forward to 100% and the subsequent fade-out\n clearTimerID = setTimeout(() => {\n setProgressToShow(null)\n }, transitionDuration * 2)\n }\n\n return () => {\n clearTimeout(clearTimerID)\n clearTimeout(delayTimerID)\n }\n }, [isTransitioning, transitionProgress])\n\n if (typeof progressToShow === 'number') {\n return (\n <div\n className={[baseClass, progressToShow === 1 && `${baseClass}--fade-out`]\n .filter(Boolean)\n .join(' ')}\n style={{\n // @ts-expect-error - TS doesn't like custom CSS properties\n '--transition-duration': `${transitionDuration}ms`,\n }}\n >\n <div\n className={`${baseClass}__progress`}\n style={{\n width: `${(progressToShow || 0) * 100}%`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,SAAA,GAAY;AAClB,MAAMC,YAAA,GAAe;AAErB;;;;;;;;;;;;;AAaA,OAAO,MAAMC,WAAA,GAAcA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACzB;IAAAU,eAAA;IAAAC;EAAA,IAAgDP,kBAAA;EAChD,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CZ,KAAA,CAAAa,QAAA,KAA8B;EAC1E,MAAAC,mBAAA,GAA4BZ,MAAA,KAAO;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,kBAAA;IAEzBK,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,YAAA;MACAC,GAAA,CAAAA,YAAA;MAAA,IAEAT,eAAA;QAAA,IACEK,mBAAA,CAAAK,OAAA;UACFD,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;YACbN,iBAAA,CAAkBF,kBAAA;YAClBI,mBAAA,CAAAK,OAAA;UAAA,GAAAb,YACC;QAHH;UAKAM,iBAAA,CAAkBF,kBAAA;QAAA;MAAA;QAGpBI,mBAAA,CAAAK,OAAA;QAIAP,iBAAA,CAAAQ,KAA0E;QAI1EH,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;UACbL,iBAAA,KAAkB;QAAA,GACjBR,kBAAA,IAAqB;MAFxB;MAAA;QAMAiB,YAAA,CAAaJ,YAAA;QACbI,YAAA,CAAaH,YAAA;MAAA;IAAA;IAEdF,EAAA,IAACP,eAAA,EAAiBC,kBAAA;IAAmBF,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAD,EAAA,GAAAP,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EA/BxCP,SAAA,CAAUc,EA+BV,EAAGC,EAAqC;EAAA,IAEpC,OAAOL,cAAA,KAAmB;IAGD,MAAAW,EAAA,GAAAX,cAAA,MAAmB,IAAK,GAAAN,SAAA,YAAwB;IAAA,IAAAkB,EAAA;IAAA,IAAAf,CAAA,QAAAc,EAAA;MAA5DC,EAAA,IAAAlB,SAAA,EAAYiB,EAAgD,EAAAE,MAAA,CAAAC,OAC7D;MAAAjB,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IADC,MAAAkB,EAAA,GAAAH,EACD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAkB,EAAA;MAHVE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EACYJ,EAEH;QAAAK,KAAA;UAAA,yBAGmB,GAAA3B,kBAAA;QAAyB;QAAA4B,QAAA,EAGpDH,IAAA,CAAC;UAAAC,SAAA,EACY,GAAAzB,SAAA,YAAwB;UAAA0B,KAAA;YAAAE,KAAA,EAE1B,GAAG,CAACtB,cAAA,KAAkB,OAAK;UAAM;QAAA,C;;;;;;;;WAZ9CiB,E;;;CAoBN;AA5D2B,SAAAR,MAAAc,eAAA;EAAA,OAuBmBA,eAAA,SAAoB,WAAc;AAAA","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ // @vitest-environment happy-dom
2
+ import { act, createElement, useEffect } from 'react';
3
+ import { createRoot } from 'react-dom/client';
4
+ import { afterEach, beforeEach, expect, test, vi } from 'vitest';
5
+ import { RouteTransitionProvider, useRouteTransition } from '../index.js';
6
+ import { ProgressBar } from './index.js';
7
+ let container;
8
+ let root;
9
+ beforeEach(() => {
10
+ globalThis.IS_REACT_ACT_ENVIRONMENT = true;
11
+ container = document.createElement('div');
12
+ document.body.appendChild(container);
13
+ root = createRoot(container);
14
+ });
15
+ afterEach(() => {
16
+ act(() => root.unmount());
17
+ container.remove();
18
+ vi.useRealTimers();
19
+ });
20
+ test('does not show progress for transitions that finish before the initial delay', async () => {
21
+ vi.useFakeTimers();
22
+ const FastTransition = () => {
23
+ const {
24
+ holdRouteTransition
25
+ } = useRouteTransition();
26
+ useEffect(() => {
27
+ const releaseRouteTransition = holdRouteTransition();
28
+ const timeout = setTimeout(releaseRouteTransition, 50);
29
+ return () => {
30
+ clearTimeout(timeout);
31
+ releaseRouteTransition();
32
+ };
33
+ }, [holdRouteTransition]);
34
+ return null;
35
+ };
36
+ await act(async () => {
37
+ root.render(createElement(RouteTransitionProvider, null, createElement(ProgressBar), createElement(FastTransition)));
38
+ });
39
+ await act(async () => {
40
+ await vi.advanceTimersByTimeAsync(50);
41
+ });
42
+ expect(container.querySelector('.progress-bar')).toBeNull();
43
+ });
44
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","names":["act","createElement","useEffect","createRoot","afterEach","beforeEach","expect","test","vi","RouteTransitionProvider","useRouteTransition","ProgressBar","container","root","globalThis","IS_REACT_ACT_ENVIRONMENT","document","body","appendChild","unmount","remove","useRealTimers","useFakeTimers","FastTransition","holdRouteTransition","releaseRouteTransition","timeout","setTimeout","clearTimeout","render","advanceTimersByTimeAsync","querySelector","toBeNull"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.spec.ts"],"sourcesContent":["// @vitest-environment happy-dom\n\nimport { act, createElement, useEffect } from 'react'\nimport { createRoot, type Root } from 'react-dom/client'\nimport { afterEach, beforeEach, expect, test, vi } from 'vitest'\n\nimport { RouteTransitionProvider, useRouteTransition } from '../index.js'\nimport { ProgressBar } from './index.js'\n\nlet container: HTMLDivElement\nlet root: Root\n\nbeforeEach(() => {\n globalThis.IS_REACT_ACT_ENVIRONMENT = true\n container = document.createElement('div')\n document.body.appendChild(container)\n root = createRoot(container)\n})\n\nafterEach(() => {\n act(() => root.unmount())\n container.remove()\n vi.useRealTimers()\n})\n\ntest('does not show progress for transitions that finish before the initial delay', async () => {\n vi.useFakeTimers()\n\n const FastTransition = () => {\n const { holdRouteTransition } = useRouteTransition()\n\n useEffect(() => {\n const releaseRouteTransition = holdRouteTransition()\n const timeout = setTimeout(releaseRouteTransition, 50)\n\n return () => {\n clearTimeout(timeout)\n releaseRouteTransition()\n }\n }, [holdRouteTransition])\n\n return null\n }\n\n await act(async () => {\n root.render(\n createElement(\n RouteTransitionProvider,\n null,\n createElement(ProgressBar),\n createElement(FastTransition),\n ),\n )\n })\n\n await act(async () => {\n await vi.advanceTimersByTimeAsync(50)\n })\n\n expect(container.querySelector('.progress-bar')).toBeNull()\n})\n"],"mappings":"AAAA;AAEA,SAASA,GAAG,EAAEC,aAAa,EAAEC,SAAS,QAAQ;AAC9C,SAASC,UAAU,QAAmB;AACtC,SAASC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ;AAExD,SAASC,uBAAuB,EAAEC,kBAAkB,QAAQ;AAC5D,SAASC,WAAW,QAAQ;AAE5B,IAAIC,SAAA;AACJ,IAAIC,IAAA;AAEJR,UAAA,CAAW;EACTS,UAAA,CAAWC,wBAAwB,GAAG;EACtCH,SAAA,GAAYI,QAAA,CAASf,aAAa,CAAC;EACnCe,QAAA,CAASC,IAAI,CAACC,WAAW,CAACN,SAAA;EAC1BC,IAAA,GAAOV,UAAA,CAAWS,SAAA;AACpB;AAEAR,SAAA,CAAU;EACRJ,GAAA,CAAI,MAAMa,IAAA,CAAKM,OAAO;EACtBP,SAAA,CAAUQ,MAAM;EAChBZ,EAAA,CAAGa,aAAa;AAClB;AAEAd,IAAA,CAAK,+EAA+E;EAClFC,EAAA,CAAGc,aAAa;EAEhB,MAAMC,cAAA,GAAiBA,CAAA;IACrB,MAAM;MAAEC;IAAmB,CAAE,GAAGd,kBAAA;IAEhCR,SAAA,CAAU;MACR,MAAMuB,sBAAA,GAAyBD,mBAAA;MAC/B,MAAME,OAAA,GAAUC,UAAA,CAAWF,sBAAA,EAAwB;MAEnD,OAAO;QACLG,YAAA,CAAaF,OAAA;QACbD,sBAAA;MACF;IACF,GAAG,CAACD,mBAAA,CAAoB;IAExB,OAAO;EACT;EAEA,MAAMxB,GAAA,CAAI;IACRa,IAAA,CAAKgB,MAAM,CACT5B,aAAA,CACEQ,uBAAA,EACA,MACAR,aAAA,CAAcU,WAAA,GACdV,aAAA,CAAcsB,cAAA;EAGpB;EAEA,MAAMvB,GAAA,CAAI;IACR,MAAMQ,EAAA,CAAGsB,wBAAwB,CAAC;EACpC;EAEAxB,MAAA,CAAOM,SAAA,CAAUmB,aAAa,CAAC,kBAAkBC,QAAQ;AAC3D","ignoreList":[]}
@@ -21,6 +21,8 @@ type RouteTransitionProps = {
21
21
  };
22
22
  type StartRouteTransition = (callback?: () => void) => void;
23
23
  type RouteTransitionContextValue = {
24
+ /** Keeps the transition active until the returned release function is called. */
25
+ holdRouteTransition: () => () => void;
24
26
  isTransitioning: boolean;
25
27
  startRouteTransition: StartRouteTransition;
26
28
  transitionProgress: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteTransition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6DlE,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAE3D,KAAK,2BAA2B,GAAG;IACjC,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteTransition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqFlE,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAE3D,KAAK,2BAA2B,GAAG;IACjC,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,MAAM,IAAI,CAAA;IACrC,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAA"}
@@ -20,12 +20,14 @@ import React, { startTransition, useCallback, useEffect, useOptimistic, useRef }
20
20
  * )
21
21
  */
22
22
  export const RouteTransitionProvider = t0 => {
23
- const $ = _c(11);
23
+ const $ = _c(12);
24
24
  const {
25
25
  children
26
26
  } = t0;
27
- const [isTransitioning, setIsTransitioning] = useOptimistic(false);
27
+ const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false);
28
+ const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0);
28
29
  const [transitionProgress, setTransitionProgress] = React.useState(0);
30
+ const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0;
29
31
  const transitionProgressRef = useRef(transitionProgress);
30
32
  const timerID = useRef(null);
31
33
  let t1;
@@ -66,42 +68,62 @@ export const RouteTransitionProvider = t0 => {
66
68
  }
67
69
  useEffect(t2, t3);
68
70
  let t4;
69
- if ($[4] !== setIsTransitioning) {
71
+ if ($[4] !== setIsOptimisticallyTransitioning) {
70
72
  t4 = callback => {
71
73
  startTransition(() => {
72
- setIsTransitioning(true);
74
+ setIsOptimisticallyTransitioning(true);
73
75
  if (typeof callback === "function") {
74
76
  callback();
75
77
  }
76
78
  });
77
79
  };
78
- $[4] = setIsTransitioning;
80
+ $[4] = setIsOptimisticallyTransitioning;
79
81
  $[5] = t4;
80
82
  } else {
81
83
  t4 = $[5];
82
84
  }
83
85
  const startRouteTransition = t4;
84
86
  let t5;
85
- if ($[6] !== children || $[7] !== isTransitioning || $[8] !== startRouteTransition || $[9] !== transitionProgress) {
86
- t5 = _jsx(RouteTransitionContext, {
87
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
88
+ t5 = () => {
89
+ let hasReleased = false;
90
+ setActiveRouteTransitionHolds(_temp);
91
+ return () => {
92
+ if (hasReleased) {
93
+ return;
94
+ }
95
+ hasReleased = true;
96
+ setActiveRouteTransitionHolds(_temp2);
97
+ };
98
+ };
99
+ $[6] = t5;
100
+ } else {
101
+ t5 = $[6];
102
+ }
103
+ const holdRouteTransition = t5;
104
+ let t6;
105
+ if ($[7] !== children || $[8] !== isTransitioning || $[9] !== startRouteTransition || $[10] !== transitionProgress) {
106
+ t6 = _jsx(RouteTransitionContext, {
87
107
  value: {
108
+ holdRouteTransition,
88
109
  isTransitioning,
89
110
  startRouteTransition,
90
111
  transitionProgress
91
112
  },
92
113
  children
93
114
  });
94
- $[6] = children;
95
- $[7] = isTransitioning;
96
- $[8] = startRouteTransition;
97
- $[9] = transitionProgress;
98
- $[10] = t5;
115
+ $[7] = children;
116
+ $[8] = isTransitioning;
117
+ $[9] = startRouteTransition;
118
+ $[10] = transitionProgress;
119
+ $[11] = t6;
99
120
  } else {
100
- t5 = $[10];
121
+ t6 = $[11];
101
122
  }
102
- return t5;
123
+ return t6;
103
124
  };
104
125
  const RouteTransitionContext = /*#__PURE__*/React.createContext({
126
+ holdRouteTransition: () => () => undefined,
105
127
  isTransitioning: false,
106
128
  // Default implementation: just call the callback directly (no transition animation)
107
129
  startRouteTransition: callback => {
@@ -132,4 +154,10 @@ const RouteTransitionContext = /*#__PURE__*/React.createContext({
132
154
  * }
133
155
  */
134
156
  export const useRouteTransition = () => React.use(RouteTransitionContext);
157
+ function _temp(count) {
158
+ return count + 1;
159
+ }
160
+ function _temp2(count_0) {
161
+ return Math.max(0, count_0 - 1);
162
+ }
135
163
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","startTransition","useCallback","useEffect","useOptimistic","useRef","RouteTransitionProvider","t0","$","children","isTransitioning","setIsTransitioning","transitionProgress","setTransitionProgress","useState","transitionProgressRef","timerID","t1","Symbol","for","current","setInterval","newProgress","Math","random","pow","log","initiateProgress","t2","t3","clearInterval","t4","callback","startRouteTransition","t5","_jsx","RouteTransitionContext","value","createContext","useRouteTransition","use"],"sources":["../../../src/providers/RouteTransition/index.tsx"],"sourcesContent":["'use client'\nimport React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react'\n\n/**\n * Route transitions are useful in showing immediate visual feedback to the user when navigating between pages. This is especially useful on slow networks when navigating to data heavy or process intensive pages.\n * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.\n * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,\n * or wrap a callback function with the `startRouteTransition` method.\n * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.\n * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n * )\n */\nexport const RouteTransitionProvider: React.FC<RouteTransitionProps> = ({ children }) => {\n const [isTransitioning, setIsTransitioning] = useOptimistic(false)\n const [transitionProgress, setTransitionProgress] = React.useState<number>(0)\n\n const transitionProgressRef = useRef(transitionProgress)\n\n const timerID = useRef(null)\n\n const initiateProgress = useCallback(() => {\n timerID.current = setInterval(() => {\n // randomly update progress using an exponential curve\n // cap the progress to ensure it never fully reaches completion\n // accelerate quickly then decelerate slowly\n const maxProgress = 0.93\n const jumpFactor = 0.2 // lower to reduce jumps in progress\n const growthFactor = 0.75 // adjust to control acceleration\n const slowdownFactor = 0.75 // adjust to control deceleration\n\n const newProgress =\n transitionProgressRef.current +\n (maxProgress - transitionProgressRef.current) *\n Math.random() *\n jumpFactor *\n Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor)\n\n setTransitionProgress(newProgress)\n transitionProgressRef.current = newProgress\n }, 250) // every n ms, update progress\n }, [])\n\n useEffect(() => {\n setTransitionProgress(0)\n transitionProgressRef.current = 0\n\n if (isTransitioning) {\n initiateProgress()\n } else {\n if (timerID.current) {\n clearInterval(timerID.current)\n }\n }\n }, [isTransitioning, initiateProgress])\n\n const startRouteTransition: StartRouteTransition = useCallback(\n (callback?: () => void) => {\n startTransition(() => {\n setIsTransitioning(true)\n\n if (typeof callback === 'function') {\n callback()\n }\n })\n },\n [setIsTransitioning],\n )\n\n return (\n <RouteTransitionContext value={{ isTransitioning, startRouteTransition, transitionProgress }}>\n {children}\n </RouteTransitionContext>\n )\n}\n\ntype RouteTransitionProps = {\n children: React.ReactNode\n}\n\ntype StartRouteTransition = (callback?: () => void) => void\n\ntype RouteTransitionContextValue = {\n isTransitioning: boolean\n startRouteTransition: StartRouteTransition\n transitionProgress: number\n}\n\nconst RouteTransitionContext = React.createContext<RouteTransitionContextValue>({\n isTransitioning: false,\n // Default implementation: just call the callback directly (no transition animation)\n startRouteTransition: (callback) => {\n if (typeof callback === 'function') {\n callback()\n }\n },\n transitionProgress: 0,\n})\n\n/**\n * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.\n * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.\n * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * 'use client'\n * import React, { useCallback } from 'react'\n * import { useTransition, useRouter } from '@payloadcms/ui'\n *\n * const MyComponent: React.FC = () => {\n * const router = useRouter()\n * const { startRouteTransition } = useRouteTransition()\n *\n * const redirectSomewhere = useCallback(() => {\n * startRouteTransition(() => router.push('/somewhere'))\n * }, [startRouteTransition, router])\n *\n * // ...\n * }\n */\nexport const useRouteTransition = () => React.use(RouteTransitionContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","startTransition","useCallback","useEffect","useOptimistic","useRef","RouteTransitionProvider","t0","$","children","isOptimisticallyTransitioning","setIsOptimisticallyTransitioning","activeRouteTransitionHolds","setActiveRouteTransitionHolds","useState","transitionProgress","setTransitionProgress","isTransitioning","transitionProgressRef","timerID","t1","Symbol","for","current","setInterval","newProgress","Math","random","pow","log","initiateProgress","t2","t3","clearInterval","t4","callback","startRouteTransition","t5","hasReleased","_temp","_temp2","holdRouteTransition","t6","_jsx","RouteTransitionContext","value","createContext","undefined","useRouteTransition","use","count","count_0","max"],"sources":["../../../src/providers/RouteTransition/index.tsx"],"sourcesContent":["'use client'\nimport React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react'\n\n/**\n * Route transitions are useful in showing immediate visual feedback to the user when navigating between pages. This is especially useful on slow networks when navigating to data heavy or process intensive pages.\n * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.\n * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,\n * or wrap a callback function with the `startRouteTransition` method.\n * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.\n * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n * )\n */\nexport const RouteTransitionProvider: React.FC<RouteTransitionProps> = ({ children }) => {\n const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false)\n const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0)\n const [transitionProgress, setTransitionProgress] = React.useState<number>(0)\n const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0\n\n const transitionProgressRef = useRef(transitionProgress)\n\n const timerID = useRef(null)\n\n const initiateProgress = useCallback(() => {\n timerID.current = setInterval(() => {\n // randomly update progress using an exponential curve\n // cap the progress to ensure it never fully reaches completion\n // accelerate quickly then decelerate slowly\n const maxProgress = 0.93\n const jumpFactor = 0.2 // lower to reduce jumps in progress\n const growthFactor = 0.75 // adjust to control acceleration\n const slowdownFactor = 0.75 // adjust to control deceleration\n\n const newProgress =\n transitionProgressRef.current +\n (maxProgress - transitionProgressRef.current) *\n Math.random() *\n jumpFactor *\n Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor)\n\n setTransitionProgress(newProgress)\n transitionProgressRef.current = newProgress\n }, 250) // every n ms, update progress\n }, [])\n\n useEffect(() => {\n setTransitionProgress(0)\n transitionProgressRef.current = 0\n\n if (isTransitioning) {\n initiateProgress()\n } else {\n if (timerID.current) {\n clearInterval(timerID.current)\n }\n }\n }, [isTransitioning, initiateProgress])\n\n const startRouteTransition: StartRouteTransition = useCallback(\n (callback?: () => void) => {\n startTransition(() => {\n setIsOptimisticallyTransitioning(true)\n\n if (typeof callback === 'function') {\n callback()\n }\n })\n },\n [setIsOptimisticallyTransitioning],\n )\n\n const holdRouteTransition = useCallback(() => {\n let hasReleased = false\n\n setActiveRouteTransitionHolds((count) => count + 1)\n\n return () => {\n if (hasReleased) {\n return\n }\n\n hasReleased = true\n setActiveRouteTransitionHolds((count) => Math.max(0, count - 1))\n }\n }, [])\n\n return (\n <RouteTransitionContext\n value={{\n holdRouteTransition,\n isTransitioning,\n startRouteTransition,\n transitionProgress,\n }}\n >\n {children}\n </RouteTransitionContext>\n )\n}\n\ntype RouteTransitionProps = {\n children: React.ReactNode\n}\n\ntype StartRouteTransition = (callback?: () => void) => void\n\ntype RouteTransitionContextValue = {\n /** Keeps the transition active until the returned release function is called. */\n holdRouteTransition: () => () => void\n isTransitioning: boolean\n startRouteTransition: StartRouteTransition\n transitionProgress: number\n}\n\nconst RouteTransitionContext = React.createContext<RouteTransitionContextValue>({\n holdRouteTransition: () => () => undefined,\n isTransitioning: false,\n // Default implementation: just call the callback directly (no transition animation)\n startRouteTransition: (callback) => {\n if (typeof callback === 'function') {\n callback()\n }\n },\n transitionProgress: 0,\n})\n\n/**\n * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.\n * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.\n * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * 'use client'\n * import React, { useCallback } from 'react'\n * import { useTransition, useRouter } from '@payloadcms/ui'\n *\n * const MyComponent: React.FC = () => {\n * const router = useRouter()\n * const { startRouteTransition } = useRouteTransition()\n *\n * const redirectSomewhere = useCallback(() => {\n * startRouteTransition(() => router.push('/somewhere'))\n * }, [startRouteTransition, router])\n *\n * // ...\n * }\n */\nexport const useRouteTransition = () => React.use(RouteTransitionContext)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,KAAgF,MAAM,OAAO,CAAA;AAQpG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAcD,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoM7C,CAAA;AAED,eAAO,MAAM,YAAY,QAAO,gBAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,KAAgF,MAAM,OAAO,CAAA;AAQpG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAcD,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqM7C,CAAA;AAED,eAAO,MAAM,YAAY,QAAO,gBAAgC,CAAA"}
@@ -44,9 +44,8 @@ export const SelectionProvider = ({
44
44
  const {
45
45
  user
46
46
  } = useAuth();
47
- const {
48
- code: locale
49
- } = useLocale();
47
+ const currentLocale = useLocale();
48
+ const locale = currentLocale?.code;
50
49
  const [selected, setSelected] = useState(() => {
51
50
  const rows = new Map();
52
51
  docs.forEach(({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["qs","React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","parseSearchParams","useAuth","useListQuery","useLocale","useSearchParams","SelectAllStatus","Context","count","undefined","getQueryParams","additionalParams","getSelectedIds","selectAll","selected","Map","selectedIDs","setSelection","id","toggleAll","totalDocs","reduceActiveSelections","ids","key","value","push","SelectionProvider","children","docs","contextRef","user","code","locale","setSelected","rows","forEach","set","setSelectAll","setCount","searchParams","query","allAvailable","_isLocked","_userEditing","shouldSelect","size","length","doc","find","existingValue","get","isSelected","newMap","additionalWhereParams","where","params","not_equals","in","and","stringify","addQueryPrefix","some","all","_","newCount","current","_jsx","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useListQuery } from '../ListQuery/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n getSelectedIds: () => (number | string)[]\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n selectedIDs: (number | string)[]\n setSelection: (id: number | string) => void\n /**\n * Selects all rows on the current page within the current query.\n * If `allAvailable` is true, does not select specific IDs so that the query itself affects all rows across all pages.\n */\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({\n count: undefined,\n getQueryParams: (additionalParams?: Where) => '',\n getSelectedIds: () => [],\n selectAll: undefined,\n selected: new Map(),\n selectedIDs: [],\n setSelection: (id: number | string) => {},\n toggleAll: (toggleAll: boolean) => {},\n totalDocs: undefined,\n} satisfies SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n}\n\nconst reduceActiveSelections = (selected: Map<number | string, boolean>): (number | string)[] => {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n return ids\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs }) => {\n const contextRef = useRef({} as SelectionContext)\n const { user } = useAuth()\n\n const { code: locale } = useLocale()\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const searchParams = useSearchParams()\n const { query } = useListQuery()\n\n const toggleAll: SelectionContext['toggleAll'] = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n // Reset back to `None` if we previously had any type of selection\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n const shouldSelect = selectAll !== SelectAllStatus.Some\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, shouldSelect)\n }\n })\n\n // Set selectAll synchronously to avoid race conditions with useEffect\n if (shouldSelect && rows.size > 0) {\n if (rows.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else {\n setSelectAll(SelectAllStatus.Some)\n }\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection: SelectionContext['setSelection'] = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n const newMap = new Map(selected.set(id, isSelected))\n\n // If previously selected all and now deselecting, adjust status\n if (selectAll === SelectAllStatus.AllAvailable && !isSelected) {\n setSelectAll(SelectAllStatus.Some)\n }\n\n setSelected(newMap)\n },\n [selected, docs, selectAll, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = parseSearchParams(searchParams)?.where as Where\n\n where = params || {\n id: {\n not_equals: '',\n },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n const getSelectedIds = useCallback(() => reduceActiveSelections(selected), [selected])\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n useEffect(() => {\n setSelectAll(SelectAllStatus.None)\n setSelected(new Map())\n }, [query])\n\n const selectedIDs = useMemo(() => reduceActiveSelections(selected), [selected])\n\n contextRef.current = {\n count,\n getQueryParams,\n getSelectedIds,\n selectAll,\n selected,\n selectedIDs,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context value={contextRef.current}>{children}</Context>\n}\n\nexport const useSelection = (): SelectionContext => use(Context)\n"],"mappings":"AAAA;;;AAGA,YAAYA,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAE7F,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAEhC,OAAO,IAAAC,eAAK,0BAAAA,eAAA;;;;;SAAAA,eAAA;;AAyBZ,MAAMC,OAAA,gBAAUb,aAAA,CAAc;EAC5Bc,KAAA,EAAOC,SAAA;EACPC,cAAA,EAAiBC,gBAAA,IAA6B;EAC9CC,cAAA,EAAgBA,CAAA,KAAM,EAAE;EACxBC,SAAA,EAAWJ,SAAA;EACXK,QAAA,EAAU,IAAIC,GAAA;EACdC,WAAA,EAAa,EAAE;EACfC,YAAA,EAAeC,EAAA,KAAyB;EACxCC,SAAA,EAAYA,SAAA,KAAwB;EACpCC,SAAA,EAAWX;AACb;AASA,MAAMY,sBAAA,GAA0BP,QAAA;EAC9B,MAAMQ,GAAA,GAAM,EAAE;EAEd,KAAK,MAAM,CAACC,GAAA,EAAKC,KAAA,CAAM,IAAIV,QAAA,EAAU;IACnC,IAAIU,KAAA,EAAO;MACTF,GAAA,CAAIG,IAAI,CAACF,GAAA;IACX;EACF;EAEA,OAAOD,GAAA;AACT;AAEA,OAAO,MAAMI,iBAAA,GAAqCA,CAAC;EAAEC,QAAQ;EAAEC,IAAA,GAAO,EAAE;EAAER;AAAS,CAAE;EACnF,MAAMS,UAAA,GAAa9B,MAAA,CAAO,CAAC;EAC3B,MAAM;IAAE+B;EAAI,CAAE,GAAG5B,OAAA;EAEjB,MAAM;IAAE6B,IAAA,EAAMC;EAAM,CAAE,GAAG5B,SAAA;EAEzB,MAAM,CAACU,QAAA,EAAUmB,WAAA,CAAY,GAAGjC,QAAA,CAAuC;IACrE,MAAMkC,IAAA,GAAO,IAAInB,GAAA;IAEjBa,IAAA,CAAKO,OAAO,CAAC,CAAC;MAAEjB;IAAE,CAAE;MAClBgB,IAAA,CAAKE,GAAG,CAAClB,EAAA,EAAI;IACf;IAEA,OAAOgB,IAAA;EACT;EAEA,MAAM,CAACrB,SAAA,EAAWwB,YAAA,CAAa,GAAGrC,QAAA;EAClC,MAAM,CAACQ,KAAA,EAAO8B,QAAA,CAAS,GAAGtC,QAAA,CAAS;EACnC,MAAMuC,YAAA,GAAelC,eAAA;EACrB,MAAM;IAAEmC;EAAK,CAAE,GAAGrC,YAAA;EAElB,MAAMgB,SAAA,GAA2CvB,WAAA,CAC/C,CAAC6C,YAAA,GAAe,KAAK;IACnB,MAAMP,MAAA,GAAO,IAAInB,GAAA;IACjB,IAAI0B,YAAA,EAAc;MAChBJ,YAAA;MAEAT,IAAA,CAAKO,OAAO,CAAC,CAAC;QAAEjB,EAAE,EAAFA,IAAE;QAAEwB,SAAS;QAAEC;MAAY,CAAE;QAC3C,IAAI,CAACD,SAAA,IAAaC,YAAA,EAAczB,EAAA,KAAOY,IAAA,EAAMZ,EAAA,EAAI;UAC/CgB,MAAA,CAAKE,GAAG,CAAClB,IAAA,EAAI;QACf;MACF;IACF,OAAO;IACL;IACAL,SAAA,uBACAA,SAAA,kBACA;MACAwB,YAAA;IACF,OAAO;MACL,MAAMO,YAAA,GAAe/B,SAAA;MAErBe,IAAA,CAAKO,OAAO,CAAC,CAAC;QAAEjB,EAAE,EAAFA,IAAE;QAAEwB,SAAS,EAATA,WAAS;QAAEC,YAAY,EAAZA;MAAY,CAAE;QAC3C,IAAI,CAACD,WAAA,IAAaC,cAAA,EAAczB,EAAA,KAAOY,IAAA,EAAMZ,EAAA,EAAI;UAC/CgB,MAAA,CAAKE,GAAG,CAAClB,IAAA,EAAI0B,YAAA;QACf;MACF;MAEA;MACA,IAAIA,YAAA,IAAgBV,MAAA,CAAKW,IAAI,GAAG,GAAG;QACjC,IAAIX,MAAA,CAAKW,IAAI,KAAKjB,IAAA,CAAKkB,MAAM,EAAE;UAC7BT,YAAA;QACF,OAAO;UACLA,YAAA;QACF;MACF,OAAO;QACLA,YAAA;MACF;IACF;IAEAJ,WAAA,CAAYC,MAAA;EACd,GACA,CAACN,IAAA,EAAMf,SAAA,EAAWiB,IAAA,EAAMZ,EAAA,CAAG;EAG7B,MAAMD,YAAA,GAAiDrB,WAAA,CACpDsB,IAAA;IACC,MAAM6B,KAAA,GAAMnB,IAAA,CAAKoB,IAAI,CAAED,GAAA,IAAQA,GAAA,CAAI7B,EAAE,KAAKA,IAAA;IAE1C,IAAI6B,KAAA,EAAKL,SAAA,IAAaZ,IAAA,EAAMZ,EAAA,KAAO6B,KAAA,EAAKJ,YAAA,CAAazB,EAAA,EAAI;MACvD,QAAO;IACT;IAEA,MAAM+B,aAAA,GAAgBnC,QAAA,CAASoC,GAAG,CAAChC,IAAA;IACnC,MAAMiC,UAAA,GAAa,OAAOF,aAAA,KAAkB,YAAY,CAACA,aAAA,GAAgB;IAEzE,MAAMG,MAAA,GAAS,IAAIrC,GAAA,CAAID,QAAA,CAASsB,GAAG,CAAClB,IAAA,EAAIiC,UAAA;IAExC;IACA,IAAItC,SAAA,uBAA8C,CAACsC,UAAA,EAAY;MAC7Dd,YAAA;IACF;IAEAJ,WAAA,CAAYmB,MAAA;EACd,GACA,CAACtC,QAAA,EAAUc,IAAA,EAAMf,SAAA,EAAWiB,IAAA,EAAMZ,EAAA,CAAG;EAGvC,MAAMR,cAAA,GAAiBd,WAAA,CACpByD,qBAAA;IACC,IAAIC,KAAA;IAEJ,IAAIzC,SAAA,qBAA4C;MAC9C,MAAM0C,MAAA,GAAStD,iBAAA,CAAkBsC,YAAA,GAAee,KAAA;MAEhDA,KAAA,GAAQC,MAAA,IAAU;QAChBrC,EAAA,EAAI;UACFsC,UAAA,EAAY;QACd;MACF;IACF,OAAO;MACL,MAAMlC,GAAA,GAAM,EAAE;MAEd,KAAK,MAAM,CAACC,GAAA,EAAKC,KAAA,CAAM,IAAIV,QAAA,EAAU;QACnC,IAAIU,KAAA,EAAO;UACTF,GAAA,CAAIG,IAAI,CAACF,GAAA;QACX;MACF;MAEA+B,KAAA,GAAQ;QACNpC,EAAA,EAAI;UACFuC,EAAA,EAAInC;QACN;MACF;IACF;IAEA,IAAI+B,qBAAA,EAAuB;MACzBC,KAAA,GAAQ;QACNI,GAAA,EAAK,CAAC;UAAE,GAAGL;QAAsB,GAAGC,KAAA;MACtC;IACF;IAEA,OAAO9D,EAAA,CAAGmE,SAAS,CACjB;MACE3B,MAAA;MACAsB;IACF,GACA;MAAEM,cAAA,EAAgB;IAAK;EAE3B,GACA,CAAC/C,SAAA,EAAWC,QAAA,EAAUkB,MAAA,EAAQO,YAAA,CAAa;EAG7C,MAAM3B,cAAA,GAAiBhB,WAAA,CAAY,MAAMyB,sBAAA,CAAuBP,QAAA,GAAW,CAACA,QAAA,CAAS;EAErFjB,SAAA,CAAU;IACR,IAAIgB,SAAA,qBAA4C;MAC9C;IACF;IACA,IAAIgD,IAAA,GAAO;IACX,IAAIC,GAAA,GAAM;IAEV,IAAI,CAAChD,QAAA,CAAS+B,IAAI,EAAE;MAClBiB,GAAA,GAAM;MACND,IAAA,GAAO;IACT,OAAO;MACL,KAAK,MAAM,CAACE,CAAA,EAAGvC,OAAA,CAAM,IAAIV,QAAA,EAAU;QACjCgD,GAAA,GAAMA,GAAA,IAAOtC,OAAA;QACbqC,IAAA,GAAOA,IAAA,IAAQrC,OAAA;MACjB;IACF;IAEA,IAAIsC,GAAA,IAAOhD,QAAA,CAAS+B,IAAI,KAAKjB,IAAA,CAAKkB,MAAM,EAAE;MACxCT,YAAA;IACF,OAAO,IAAIwB,IAAA,EAAM;MACfxB,YAAA;IACF,OAAO;MACLA,YAAA;IACF;EACF,GAAG,CAACxB,SAAA,EAAWC,QAAA,EAAUM,SAAA,EAAWQ,IAAA,CAAK;EAEzC/B,SAAA,CAAU;IACR,IAAImE,QAAA,GAAW;IAEf,IAAInD,SAAA,qBAA4C;MAC9CmD,QAAA,GAAW5C,SAAA;IACb,OAAO;MACL,KAAK,MAAM,CAAC2C,GAAA,EAAGvC,OAAA,CAAM,IAAIV,QAAA,EAAU;QACjC,IAAIU,OAAA,EAAO;UACTwC,QAAA;QACF;MACF;IACF;IAEA1B,QAAA,CAAS0B,QAAA;EACX,GAAG,CAACnD,SAAA,EAAWC,QAAA,EAAUM,SAAA,CAAU;EAEnCvB,SAAA,CAAU;IACRwC,YAAA;IACAJ,WAAA,CAAY,IAAIlB,GAAA;EAClB,GAAG,CAACyB,KAAA,CAAM;EAEV,MAAMxB,WAAA,GAAclB,OAAA,CAAQ,MAAMuB,sBAAA,CAAuBP,QAAA,GAAW,CAACA,QAAA,CAAS;EAE9Ee,UAAA,CAAWoC,OAAO,GAAG;IACnBzD,KAAA;IACAE,cAAA;IACAE,cAAA;IACAC,SAAA;IACAC,QAAA;IACAE,WAAA;IACAC,YAAA;IACAE,SAAA;IACAC;EACF;EAEA,oBAAO8C,IAAA,CAAC3D,OAAA;IAAQiB,KAAA,EAAOK,UAAA,CAAWoC,OAAO;cAAGtC;;AAC9C;AAEA,OAAO,MAAMwC,YAAA,GAAeA,CAAA,KAAwBxE,GAAA,CAAIY,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["qs","React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","parseSearchParams","useAuth","useListQuery","useLocale","useSearchParams","SelectAllStatus","Context","count","undefined","getQueryParams","additionalParams","getSelectedIds","selectAll","selected","Map","selectedIDs","setSelection","id","toggleAll","totalDocs","reduceActiveSelections","ids","key","value","push","SelectionProvider","children","docs","contextRef","user","currentLocale","locale","code","setSelected","rows","forEach","set","setSelectAll","setCount","searchParams","query","allAvailable","_isLocked","_userEditing","shouldSelect","size","length","doc","find","existingValue","get","isSelected","newMap","additionalWhereParams","where","params","not_equals","in","and","stringify","addQueryPrefix","some","all","_","newCount","current","_jsx","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useListQuery } from '../ListQuery/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n getSelectedIds: () => (number | string)[]\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n selectedIDs: (number | string)[]\n setSelection: (id: number | string) => void\n /**\n * Selects all rows on the current page within the current query.\n * If `allAvailable` is true, does not select specific IDs so that the query itself affects all rows across all pages.\n */\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({\n count: undefined,\n getQueryParams: (additionalParams?: Where) => '',\n getSelectedIds: () => [],\n selectAll: undefined,\n selected: new Map(),\n selectedIDs: [],\n setSelection: (id: number | string) => {},\n toggleAll: (toggleAll: boolean) => {},\n totalDocs: undefined,\n} satisfies SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n}\n\nconst reduceActiveSelections = (selected: Map<number | string, boolean>): (number | string)[] => {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n return ids\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs }) => {\n const contextRef = useRef({} as SelectionContext)\n const { user } = useAuth()\n\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const searchParams = useSearchParams()\n const { query } = useListQuery()\n\n const toggleAll: SelectionContext['toggleAll'] = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n // Reset back to `None` if we previously had any type of selection\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n const shouldSelect = selectAll !== SelectAllStatus.Some\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, shouldSelect)\n }\n })\n\n // Set selectAll synchronously to avoid race conditions with useEffect\n if (shouldSelect && rows.size > 0) {\n if (rows.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else {\n setSelectAll(SelectAllStatus.Some)\n }\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection: SelectionContext['setSelection'] = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n const newMap = new Map(selected.set(id, isSelected))\n\n // If previously selected all and now deselecting, adjust status\n if (selectAll === SelectAllStatus.AllAvailable && !isSelected) {\n setSelectAll(SelectAllStatus.Some)\n }\n\n setSelected(newMap)\n },\n [selected, docs, selectAll, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = parseSearchParams(searchParams)?.where as Where\n\n where = params || {\n id: {\n not_equals: '',\n },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n const getSelectedIds = useCallback(() => reduceActiveSelections(selected), [selected])\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n useEffect(() => {\n setSelectAll(SelectAllStatus.None)\n setSelected(new Map())\n }, [query])\n\n const selectedIDs = useMemo(() => reduceActiveSelections(selected), [selected])\n\n contextRef.current = {\n count,\n getQueryParams,\n getSelectedIds,\n selectAll,\n selected,\n selectedIDs,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context value={contextRef.current}>{children}</Context>\n}\n\nexport const useSelection = (): SelectionContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -5,13 +5,16 @@ import type { RenderFieldServerFnArgs, RenderFieldServerFnReturnType } from '../
5
5
  import type { buildFormStateHandler } from '../../utilities/buildFormState.js';
6
6
  import type { buildTableStateHandler } from '../../utilities/buildTableState.js';
7
7
  import type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js';
8
- import type { schedulePublishHandler, SchedulePublishHandlerArgs } from '../../utilities/schedulePublishHandler.js';
8
+ import type { getUpcomingScheduledPublishHandler, GetUpcomingScheduledPublishHandlerArgs, schedulePublishHandler, SchedulePublishHandlerArgs } from '../../utilities/schedulePublishHandler.js';
9
9
  type GetFormStateClient = (args: {
10
10
  signal?: AbortSignal;
11
11
  } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>) => ReturnType<typeof buildFormStateHandler>;
12
12
  type SchedulePublishClient = (args: {
13
13
  signal?: AbortSignal;
14
14
  } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>) => ReturnType<typeof schedulePublishHandler>;
15
+ type GetUpcomingScheduledPublishClient = (args: {
16
+ signal?: AbortSignal;
17
+ } & Omit<GetUpcomingScheduledPublishHandlerArgs, 'clientConfig' | 'req'>) => ReturnType<typeof getUpcomingScheduledPublishHandler>;
15
18
  type GetTableStateClient = (args: {
16
19
  signal?: AbortSignal;
17
20
  } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>) => ReturnType<typeof buildTableStateHandler>;
@@ -64,6 +67,7 @@ export type ServerFunctionsContextType = {
64
67
  getDocumentSlots: GetDocumentSlots;
65
68
  getFormState: GetFormStateClient;
66
69
  getTableState: GetTableStateClient;
70
+ getUpcomingScheduledPublish: GetUpcomingScheduledPublishClient;
67
71
  renderDocument: RenderDocumentServerFunctionHookFn;
68
72
  schedulePublish: SchedulePublishClient;
69
73
  serverFunction: ServerFunctionClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"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"}
@@ -47,6 +47,20 @@ export const ServerFunctionsProvider = ({
47
47
  error
48
48
  };
49
49
  }, [serverFunction]);
50
+ const getUpcomingScheduledPublish = useCallback(async args => {
51
+ const {
52
+ signal: remoteSignal,
53
+ ...rest
54
+ } = args;
55
+ if (remoteSignal?.aborted) {
56
+ return [];
57
+ }
58
+ const result = await serverFunction({
59
+ name: 'get-upcoming-scheduled-publish',
60
+ args: rest
61
+ });
62
+ return remoteSignal?.aborted ? [] : result;
63
+ }, [serverFunction]);
50
64
  const getFormState = useCallback(async args => {
51
65
  const {
52
66
  signal: remoteSignal,
@@ -175,6 +189,7 @@ export const ServerFunctionsProvider = ({
175
189
  getDocumentSlots,
176
190
  getFormState,
177
191
  getTableState,
192
+ getUpcomingScheduledPublish,
178
193
  renderDocument,
179
194
  schedulePublish,
180
195
  serverFunction,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","use","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","data","_internal_renderField","slugify","switchLanguage","lang","_jsx"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n AdminViewServerPropsOnly,\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentPreferences,\n DocumentSlots,\n FormState,\n Params,\n RenderDocumentVersionsProperties,\n ServerFunction,\n ServerFunctionClient,\n SlugifyServerFunctionArgs,\n} from 'payload'\nimport type { Slugify } from 'payload/shared'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type {\n RenderFieldServerFnArgs,\n RenderFieldServerFnReturnType,\n} from '../../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype SlugifyClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SlugifyServerFunctionArgs, 'clientConfig' | 'req'>,\n) => ReturnType<Slugify>\n\nexport type RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\ntype RenderDocumentBaseArgs = {\n collectionSlug: string\n disableActions?: boolean\n docID: number | string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n overrideEntityVisibility?: boolean\n paramsOverride?: AdminViewServerPropsOnly['params']\n redirectAfterCreate?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n redirectAfterRestore?: boolean\n searchParams?: Params\n /**\n * Properties specific to the versions view\n */\n versions?: RenderDocumentVersionsProperties\n}\n\nexport type RenderDocumentServerFunction = ServerFunction<\n RenderDocumentBaseArgs,\n Promise<RenderDocumentResult>\n>\n\ntype RenderDocumentServerFunctionHookFn = (\n // No req or importMap - those are augmented by handleServerFunctions\n args: {\n signal?: AbortSignal\n } & RenderDocumentBaseArgs,\n) => Promise<RenderDocumentResult>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n id?: number | string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype RenderFieldClient = (args: RenderFieldServerFnArgs) => Promise<RenderFieldServerFnReturnType>\n\ntype SwitchLanguageClient = (lang: string) => Promise<void>\n\nexport type ServerFunctionsContextType = {\n _internal_renderField: RenderFieldClient\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocumentServerFunctionHookFn\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n slugify: SlugifyClient\n switchLanguage: SwitchLanguageClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.use(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error }\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocumentServerFunctionHookFn>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: {\n fallbackLocale: false,\n ...rest,\n } as Parameters<RenderDocumentServerFunctionHookFn>[0],\n })) as Awaited<ReturnType<RenderDocumentServerFunctionHookFn>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as Data\n\n if (!remoteSignal?.aborted) {\n return { data: result }\n }\n },\n [serverFunction],\n )\n\n const _internal_renderField = useCallback<RenderFieldClient>(\n async (args) => {\n try {\n const result = (await serverFunction({\n name: 'render-field',\n args,\n })) as RenderFieldServerFnReturnType\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const slugify = useCallback<SlugifyClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'slugify',\n args: { ...rest },\n })) as Awaited<ReturnType<Slugify>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const switchLanguage = useCallback<SwitchLanguageClient>(\n async (lang) => {\n await serverFunction({\n name: 'switch-language',\n args: { lang },\n })\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext\n value={{\n _internal_renderField,\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n schedulePublish,\n serverFunction,\n slugify,\n switchLanguage,\n }}\n >\n {children}\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","use","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getUpcomingScheduledPublish","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","data","_internal_renderField","slugify","switchLanguage","lang","_jsx"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n AdminViewServerPropsOnly,\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentPreferences,\n DocumentSlots,\n FormState,\n Params,\n RenderDocumentVersionsProperties,\n ServerFunction,\n ServerFunctionClient,\n SlugifyServerFunctionArgs,\n} from 'payload'\nimport type { Slugify } from 'payload/shared'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type {\n RenderFieldServerFnArgs,\n RenderFieldServerFnReturnType,\n} from '../../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n getUpcomingScheduledPublishHandler,\n GetUpcomingScheduledPublishHandlerArgs,\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetUpcomingScheduledPublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<GetUpcomingScheduledPublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof getUpcomingScheduledPublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype SlugifyClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SlugifyServerFunctionArgs, 'clientConfig' | 'req'>,\n) => ReturnType<Slugify>\n\nexport type RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\ntype RenderDocumentBaseArgs = {\n collectionSlug: string\n disableActions?: boolean\n docID: number | string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n overrideEntityVisibility?: boolean\n paramsOverride?: AdminViewServerPropsOnly['params']\n redirectAfterCreate?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n redirectAfterRestore?: boolean\n searchParams?: Params\n /**\n * Properties specific to the versions view\n */\n versions?: RenderDocumentVersionsProperties\n}\n\nexport type RenderDocumentServerFunction = ServerFunction<\n RenderDocumentBaseArgs,\n Promise<RenderDocumentResult>\n>\n\ntype RenderDocumentServerFunctionHookFn = (\n // No req or importMap - those are augmented by handleServerFunctions\n args: {\n signal?: AbortSignal\n } & RenderDocumentBaseArgs,\n) => Promise<RenderDocumentResult>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n id?: number | string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype RenderFieldClient = (args: RenderFieldServerFnArgs) => Promise<RenderFieldServerFnReturnType>\n\ntype SwitchLanguageClient = (lang: string) => Promise<void>\n\nexport type ServerFunctionsContextType = {\n _internal_renderField: RenderFieldClient\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n getUpcomingScheduledPublish: GetUpcomingScheduledPublishClient\n renderDocument: RenderDocumentServerFunctionHookFn\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n slugify: SlugifyClient\n switchLanguage: SwitchLanguageClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.use(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error }\n },\n [serverFunction],\n )\n\n const getUpcomingScheduledPublish = useCallback<GetUpcomingScheduledPublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n if (remoteSignal?.aborted) {\n return []\n }\n\n const result = (await serverFunction({\n name: 'get-upcoming-scheduled-publish',\n args: rest,\n })) as Awaited<ReturnType<typeof getUpcomingScheduledPublishHandler>>\n\n return remoteSignal?.aborted ? [] : result\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocumentServerFunctionHookFn>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: {\n fallbackLocale: false,\n ...rest,\n } as Parameters<RenderDocumentServerFunctionHookFn>[0],\n })) as Awaited<ReturnType<RenderDocumentServerFunctionHookFn>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as Data\n\n if (!remoteSignal?.aborted) {\n return { data: result }\n }\n },\n [serverFunction],\n )\n\n const _internal_renderField = useCallback<RenderFieldClient>(\n async (args) => {\n try {\n const result = (await serverFunction({\n name: 'render-field',\n args,\n })) as RenderFieldServerFnReturnType\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const slugify = useCallback<SlugifyClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'slugify',\n args: { ...rest },\n })) as Awaited<ReturnType<Slugify>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const switchLanguage = useCallback<SwitchLanguageClient>(\n async (lang) => {\n await serverFunction({\n name: 'switch-language',\n args: { lang },\n })\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext\n value={{\n _internal_renderField,\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n getUpcomingScheduledPublish,\n renderDocument,\n schedulePublish,\n serverFunction,\n slugify,\n switchLanguage,\n }}\n >\n {children}\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,17 @@
1
1
  import React from 'react';
2
+ import type { RenderTabServerFnArgs } from '../../elements/Nav/SidebarTabs/renderTabServerFn.js';
2
3
  export type SidebarTabsContextType = {
3
4
  activeTabSlug: null | string;
4
5
  /**
5
6
  * Reload the content for a specific tab, bypassing the cache.
6
7
  * Useful when the tab's data dependencies change.
7
8
  */
8
- reloadTabContent: (tabSlug: string) => void;
9
+ reloadTabContent: (tabSlug: string, serverArgs?: Partial<RenderTabServerFnArgs>) => void;
9
10
  };
10
11
  export type SidebarTabsProviderProps = {
11
12
  activeTabSlug: null | string;
12
13
  children: React.ReactNode;
13
- reloadTabContent: (tabSlug: string) => void;
14
+ reloadTabContent: (tabSlug: string, serverArgs?: Partial<RenderTabServerFnArgs>) => void;
14
15
  };
15
16
  export declare const SidebarTabsProvider: React.FC<SidebarTabsProviderProps>;
16
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SidebarTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C,CAAA;AAID,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAQlE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,IAAI,GAAG,sBAExC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SidebarTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAA;AAEhG,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAA;CACzF,CAAA;AAID,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAA;CACzF,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAQlE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,IAAI,GAAG,sBAExC,CAAA"}