@payloadcms/ui 4.0.0-internal.c3ac604 → 4.0.0-internal.cc18726

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 (383) hide show
  1. package/dist/elements/AppHeader/index.css +1 -0
  2. package/dist/elements/AppHeader/index.js +1 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -0
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +45 -32
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +2 -3
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  12. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  14. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  16. package/dist/elements/BulkUpload/FormsManager/index.js +2 -3
  17. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  18. package/dist/elements/Button/index.css +2 -2
  19. package/dist/elements/Button/index.d.ts.map +1 -1
  20. package/dist/elements/Button/index.js +2 -0
  21. package/dist/elements/Button/index.js.map +1 -1
  22. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  23. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  24. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  25. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  26. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  27. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  28. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  29. package/dist/elements/CopyLocaleData/index.js +8 -9
  30. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  31. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  32. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  33. package/dist/elements/CopyToClipboard/index.js +10 -8
  34. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  35. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  36. package/dist/elements/DeleteMany/index.js +2 -3
  37. package/dist/elements/DeleteMany/index.js.map +1 -1
  38. package/dist/elements/Drawer/index.css +10 -4
  39. package/dist/elements/Dropzone/index.css +10 -4
  40. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  41. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  42. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  43. package/dist/elements/DuplicateDocument/index.js +2 -3
  44. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  45. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  46. package/dist/elements/EditMany/DrawerContent.js +2 -3
  47. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  48. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  49. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  50. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  51. package/dist/elements/FileManager/index.css +0 -30
  52. package/dist/elements/FileManager/index.d.ts.map +1 -1
  53. package/dist/elements/FileManager/index.js +379 -287
  54. package/dist/elements/FileManager/index.js.map +1 -1
  55. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  56. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  57. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  58. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  59. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  60. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  61. package/dist/elements/IDLabel/index.css +6 -0
  62. package/dist/elements/IDLabel/index.d.ts +1 -1
  63. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  64. package/dist/elements/IDLabel/index.js +16 -21
  65. package/dist/elements/IDLabel/index.js.map +1 -1
  66. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  67. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  68. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  69. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  70. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  71. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
  72. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  73. package/dist/elements/LivePreview/Window/index.js +1 -1
  74. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  75. package/dist/elements/Localizer/index.js +1 -1
  76. package/dist/elements/Localizer/index.js.map +1 -1
  77. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  78. package/dist/elements/Popup/index.js +1 -1
  79. package/dist/elements/Popup/index.js.map +1 -1
  80. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  81. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  82. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  83. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  84. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  85. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  86. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  87. package/dist/elements/PublishButton/index.js +5 -6
  88. package/dist/elements/PublishButton/index.js.map +1 -1
  89. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  90. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  91. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  92. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  93. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  94. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  95. package/dist/elements/RelationshipTable/index.js +5 -2
  96. package/dist/elements/RelationshipTable/index.js.map +1 -1
  97. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  98. package/dist/elements/RestoreMany/index.js +2 -3
  99. package/dist/elements/RestoreMany/index.js.map +1 -1
  100. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  101. package/dist/elements/SaveDraftButton/index.js +2 -3
  102. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  103. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  104. package/dist/elements/SortHeader/index.js +29 -26
  105. package/dist/elements/SortHeader/index.js.map +1 -1
  106. package/dist/elements/Status/index.d.ts.map +1 -1
  107. package/dist/elements/Status/index.js +2 -3
  108. package/dist/elements/Status/index.js.map +1 -1
  109. package/dist/elements/StepNav/index.css +64 -14
  110. package/dist/elements/StepNav/index.d.ts.map +1 -1
  111. package/dist/elements/StepNav/index.js +143 -69
  112. package/dist/elements/StepNav/index.js.map +1 -1
  113. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/index.js +3 -11
  115. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  116. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  117. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  118. package/dist/elements/Table/OrderableRow.js +17 -1
  119. package/dist/elements/Table/OrderableRow.js.map +1 -1
  120. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  121. package/dist/elements/Table/OrderableTable.js +20 -4
  122. package/dist/elements/Table/OrderableTable.js.map +1 -1
  123. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  124. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  125. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  126. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  127. package/dist/elements/UnpublishButton/index.js +3 -4
  128. package/dist/elements/UnpublishButton/index.js.map +1 -1
  129. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  130. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  131. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  132. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  133. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  134. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  135. package/dist/elements/Upload/index.css +39 -32
  136. package/dist/elements/Upload/index.d.ts.map +1 -1
  137. package/dist/elements/Upload/index.js +37 -99
  138. package/dist/elements/Upload/index.js.map +1 -1
  139. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  140. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  141. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  142. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  143. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  144. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  145. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  146. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  147. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  148. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  149. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  150. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  151. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  152. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  153. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  154. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  155. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  156. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  157. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  158. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  159. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  160. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  161. package/dist/elements/WhereBuilder/index.js +15 -4
  162. package/dist/elements/WhereBuilder/index.js.map +1 -1
  163. package/dist/exports/client/index.d.ts +2 -1
  164. package/dist/exports/client/index.d.ts.map +1 -1
  165. package/dist/exports/client/index.js +1 -1
  166. package/dist/exports/client/index.js.map +3 -3
  167. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  168. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  169. package/dist/fields/Array/ArrayRow.js +2 -0
  170. package/dist/fields/Array/ArrayRow.js.map +1 -1
  171. package/dist/fields/Array/index.d.ts.map +1 -1
  172. package/dist/fields/Array/index.js +40 -13
  173. package/dist/fields/Array/index.js.map +1 -1
  174. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  175. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  176. package/dist/fields/Blocks/BlockRow.js +2 -0
  177. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  178. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  179. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  180. package/dist/fields/Blocks/RowActions.js +22 -19
  181. package/dist/fields/Blocks/RowActions.js.map +1 -1
  182. package/dist/fields/Blocks/index.d.ts.map +1 -1
  183. package/dist/fields/Blocks/index.js +37 -10
  184. package/dist/fields/Blocks/index.js.map +1 -1
  185. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  186. package/dist/fields/FieldLabel/index.js +4 -5
  187. package/dist/fields/FieldLabel/index.js.map +1 -1
  188. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  189. package/dist/fields/Relationship/Input.js +2 -3
  190. package/dist/fields/Relationship/Input.js.map +1 -1
  191. package/dist/fields/Slug/index.d.ts.map +1 -1
  192. package/dist/fields/Slug/index.js +2 -3
  193. package/dist/fields/Slug/index.js.map +1 -1
  194. package/dist/fields/Upload/Input.d.ts.map +1 -1
  195. package/dist/fields/Upload/Input.js +46 -19
  196. package/dist/fields/Upload/Input.js.map +1 -1
  197. package/dist/fields/Upload/Input.spec.js +242 -0
  198. package/dist/fields/Upload/Input.spec.js.map +1 -0
  199. package/dist/fields/shared/index.d.ts +1 -1
  200. package/dist/fields/shared/index.d.ts.map +1 -1
  201. package/dist/fields/shared/index.js.map +1 -1
  202. package/dist/forms/Form/index.d.ts.map +1 -1
  203. package/dist/forms/Form/index.js +6 -4
  204. package/dist/forms/Form/index.js.map +1 -1
  205. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  206. package/dist/forms/NullifyField/index.js +2 -3
  207. package/dist/forms/NullifyField/index.js.map +1 -1
  208. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  209. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  210. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  211. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  212. package/dist/hooks/usePayloadAPI.js +2 -3
  213. package/dist/hooks/usePayloadAPI.js.map +1 -1
  214. package/dist/icons/Edit/index.d.ts +0 -1
  215. package/dist/icons/Edit/index.d.ts.map +1 -1
  216. package/dist/icons/Edit/index.js +4 -4
  217. package/dist/icons/Edit/index.js.map +1 -1
  218. package/dist/providers/Actions/index.d.ts +1 -0
  219. package/dist/providers/Actions/index.d.ts.map +1 -1
  220. package/dist/providers/Actions/index.js +43 -11
  221. package/dist/providers/Actions/index.js.map +1 -1
  222. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  223. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  224. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  225. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  226. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  227. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  228. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  229. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  230. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  231. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  232. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  233. package/dist/providers/Auth/authSessionRequests.js +119 -0
  234. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  235. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  236. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  237. package/dist/providers/Auth/index.d.ts +2 -56
  238. package/dist/providers/Auth/index.d.ts.map +1 -1
  239. package/dist/providers/Auth/index.js +283 -135
  240. package/dist/providers/Auth/index.js.map +1 -1
  241. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  242. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  243. package/dist/providers/Auth/sessionActivity.js +49 -0
  244. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  245. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  246. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  247. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  248. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  249. package/dist/providers/Auth/sessionTiming.js +18 -0
  250. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  251. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  252. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  253. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  254. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  255. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  256. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  257. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  258. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  259. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  260. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  261. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  262. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  263. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  264. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  265. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  266. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  267. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  268. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  269. package/dist/providers/Auth/types.d.ts +65 -0
  270. package/dist/providers/Auth/types.d.ts.map +1 -0
  271. package/dist/providers/Auth/types.js +2 -0
  272. package/dist/providers/Auth/types.js.map +1 -0
  273. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  274. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  275. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  276. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  277. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  278. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  279. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  280. package/dist/providers/DocumentInfo/index.js +2 -3
  281. package/dist/providers/DocumentInfo/index.js.map +1 -1
  282. package/dist/providers/FormErrorHandler/index.d.ts +5 -1
  283. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
  284. package/dist/providers/FormErrorHandler/index.js.map +1 -1
  285. package/dist/providers/Locale/index.d.ts +1 -5
  286. package/dist/providers/Locale/index.d.ts.map +1 -1
  287. package/dist/providers/Locale/index.js +64 -137
  288. package/dist/providers/Locale/index.js.map +1 -1
  289. package/dist/providers/Root/index.js +4 -4
  290. package/dist/providers/Root/index.js.map +1 -1
  291. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  292. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  293. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  294. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  295. package/dist/providers/RouteTransition/index.d.ts +2 -0
  296. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  297. package/dist/providers/RouteTransition/index.js +42 -14
  298. package/dist/providers/RouteTransition/index.js.map +1 -1
  299. package/dist/providers/Selection/index.d.ts.map +1 -1
  300. package/dist/providers/Selection/index.js +2 -3
  301. package/dist/providers/Selection/index.js.map +1 -1
  302. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  303. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  304. package/dist/providers/ServerFunctions/index.js +15 -0
  305. package/dist/providers/ServerFunctions/index.js.map +1 -1
  306. package/dist/styles.css +1 -1
  307. package/dist/templates/Default/index.d.ts +1 -0
  308. package/dist/templates/Default/index.d.ts.map +1 -1
  309. package/dist/templates/Default/index.js +2 -0
  310. package/dist/templates/Default/index.js.map +1 -1
  311. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  312. package/dist/utilities/formatMetadata.js +0 -5
  313. package/dist/utilities/formatMetadata.js.map +1 -1
  314. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  315. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  316. package/dist/utilities/getFilesFromClipboard.js +49 -0
  317. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  318. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  319. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  320. package/dist/utilities/getHasScheduledPublish.js +2 -5
  321. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  322. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  323. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  324. package/dist/utilities/schedulePublishHandler.js +68 -4
  325. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  326. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  327. package/dist/utilities/serverFunctionRegistry.js +2 -1
  328. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  329. package/dist/utilities/slugify.d.ts.map +1 -1
  330. package/dist/utilities/slugify.js +3 -0
  331. package/dist/utilities/slugify.js.map +1 -1
  332. package/dist/views/API/index.client.d.ts.map +1 -1
  333. package/dist/views/API/index.client.js +2 -3
  334. package/dist/views/API/index.client.js.map +1 -1
  335. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  336. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  337. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  338. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  339. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  340. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  341. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  342. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  343. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  344. package/dist/views/Dashboard/Default/ModularDashboard/index.css +33 -140
  345. package/dist/views/Document/index.d.ts.map +1 -1
  346. package/dist/views/Document/index.js +1 -2
  347. package/dist/views/Document/index.js.map +1 -1
  348. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  349. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  350. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  351. package/dist/views/Edit/index.d.ts.map +1 -1
  352. package/dist/views/Edit/index.js +3 -2
  353. package/dist/views/Edit/index.js.map +1 -1
  354. package/dist/views/HierarchyList/index.css +1 -1
  355. package/dist/views/List/ListHeader/index.d.ts +1 -10
  356. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  357. package/dist/views/List/ListHeader/index.js +1 -3
  358. package/dist/views/List/ListHeader/index.js.map +1 -1
  359. package/dist/views/List/index.client.d.ts.map +1 -1
  360. package/dist/views/List/index.client.js +0 -14
  361. package/dist/views/List/index.client.js.map +1 -1
  362. package/dist/views/List/index.css +6 -1
  363. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  364. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  365. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  366. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  367. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  368. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  369. package/dist/views/Root/index.d.ts.map +1 -1
  370. package/dist/views/Root/index.js +1 -0
  371. package/dist/views/Root/index.js.map +1 -1
  372. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  373. package/dist/views/Version/Default/SetStepNav.js +10 -13
  374. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  375. package/dist/views/Version/Default/index.d.ts.map +1 -1
  376. package/dist/views/Version/Default/index.js +12 -13
  377. package/dist/views/Version/Default/index.js.map +1 -1
  378. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  379. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  380. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  381. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  382. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  383. package/package.json +6 -5
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import { formatAdminURL } from 'payload/shared';
6
5
  import React, { createContext, use, useEffect, useRef, useState } from 'react';
@@ -8,7 +7,8 @@ import { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js';
8
7
  import { useAuth } from '../Auth/index.js';
9
8
  import { useConfig } from '../Config/index.js';
10
9
  import { useSearchParams } from '../RouterAdapter/index.js';
11
- const LocaleContext = /*#__PURE__*/createContext({});
10
+ import { useRouteTransition } from '../RouteTransition/index.js';
11
+ const LocaleContext = /*#__PURE__*/createContext(null);
12
12
  export const LocaleLoadingContext = /*#__PURE__*/createContext({
13
13
  localeIsLoading: false,
14
14
  setLocaleIsLoading: _ => undefined
@@ -20,151 +20,78 @@ const fetchPreferences = async (key, baseURL) => await fetch(`${baseURL}/payload
20
20
  },
21
21
  method: 'GET'
22
22
  })?.then(res => res.json());
23
- export const LocaleProvider = t0 => {
24
- const $ = _c(28);
23
+ export const LocaleProvider = ({
24
+ children,
25
+ /**
26
+ The `locale` prop originates from the root layout, which does not have access to search params
27
+ This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop
28
+ This prop does not update as the user navigates the site, because the root layout does not re-render
29
+ */
30
+ locale: initialLocaleFromPrefs
31
+ }) => {
25
32
  const {
26
- children,
27
- locale: initialLocaleFromPrefs
28
- } = t0;
29
- const {
30
- config: t1
33
+ config: {
34
+ localization = false,
35
+ routes: {
36
+ api: apiRoute
37
+ }
38
+ }
31
39
  } = useConfig();
32
- const {
33
- localization: t2,
34
- routes: t3
35
- } = t1;
36
- const localization = t2 === undefined ? false : t2;
37
- const {
38
- api: apiRoute
39
- } = t3;
40
40
  const {
41
41
  user
42
42
  } = useAuth();
43
- const defaultLocale = localization ? localization.defaultLocale : "en";
44
- const t4 = useSearchParams();
45
- let t5;
46
- if ($[0] !== t4) {
47
- t5 = t4.get("locale");
48
- $[0] = t4;
49
- $[1] = t5;
50
- } else {
51
- t5 = $[1];
52
- }
53
- const localeFromParams = t5;
54
- let t6;
55
- if ($[2] !== defaultLocale || $[3] !== initialLocaleFromPrefs || $[4] !== localeFromParams || $[5] !== localization) {
56
- t6 = () => {
57
- if (!localization || localization && !localization.locales.length) {
58
- return {};
59
- }
60
- return findLocaleFromCode(localization, localeFromParams) || findLocaleFromCode(localization, initialLocaleFromPrefs) || findLocaleFromCode(localization, defaultLocale) || findLocaleFromCode(localization, localization.locales[0].code);
61
- };
62
- $[2] = defaultLocale;
63
- $[3] = initialLocaleFromPrefs;
64
- $[4] = localeFromParams;
65
- $[5] = localization;
66
- $[6] = t6;
67
- } else {
68
- t6 = $[6];
69
- }
70
- const [locale, setLocale] = React.useState(t6);
43
+ const {
44
+ isTransitioning
45
+ } = useRouteTransition();
46
+ const defaultLocale = localization ? localization.defaultLocale : 'en';
47
+ const localeFromParams = useSearchParams().get('locale');
48
+ const [locale, setLocale] = React.useState(() => {
49
+ if (!localization || localization && !localization.locales.length) {
50
+ return null;
51
+ }
52
+ return findLocaleFromCode(localization, localeFromParams) || findLocaleFromCode(localization, initialLocaleFromPrefs) || findLocaleFromCode(localization, defaultLocale) || findLocaleFromCode(localization, localization.locales[0].code);
53
+ });
71
54
  const [isLoading, setLocaleIsLoading] = useState(false);
72
55
  const prevLocale = useRef(locale);
73
- let t7;
74
- let t8;
75
- if ($[7] !== locale) {
76
- t7 = () => {
77
- if (locale.code !== prevLocale.current.code) {
78
- setLocaleIsLoading(false);
79
- }
56
+ useEffect(() => {
57
+ // Keep fields disabled until the new locale's document state finishes loading.
58
+ if (locale?.code !== prevLocale.current?.code && !isTransitioning) {
59
+ setLocaleIsLoading(false);
80
60
  prevLocale.current = locale;
81
- };
82
- t8 = [locale];
83
- $[7] = locale;
84
- $[8] = t7;
85
- $[9] = t8;
86
- } else {
87
- t7 = $[8];
88
- t8 = $[9];
89
- }
90
- useEffect(t7, t8);
91
- let t9;
92
- if ($[10] !== apiRoute) {
93
- t9 = formatAdminURL({
94
- apiRoute,
95
- path: ""
96
- });
97
- $[10] = apiRoute;
98
- $[11] = t9;
99
- } else {
100
- t9 = $[11];
101
- }
102
- const fetchURL = t9;
103
- let t10;
104
- if ($[12] !== defaultLocale || $[13] !== fetchURL || $[14] !== localeFromParams || $[15] !== localization || $[16] !== user?.id) {
105
- t10 = () => {
106
- const resetLocale = async function resetLocale() {
107
- if (localization && user?.id) {
108
- const localeToUse = localeFromParams || (await fetchPreferences("locale", fetchURL)?.then(_temp));
109
- const newLocale = findLocaleFromCode(localization, localeToUse) || findLocaleFromCode(localization, defaultLocale) || findLocaleFromCode(localization, localization?.locales?.[0]?.code);
110
- if (newLocale) {
111
- setLocale(newLocale);
112
- }
61
+ }
62
+ }, [isTransitioning, locale]);
63
+ const fetchURL = formatAdminURL({
64
+ apiRoute,
65
+ path: ''
66
+ });
67
+ useEffect(() => {
68
+ /**
69
+ * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link
70
+ * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site
71
+ * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param
72
+ */
73
+ async function resetLocale() {
74
+ if (localization && user?.id) {
75
+ const localeToUse = localeFromParams || (await fetchPreferences('locale', fetchURL)?.then(res => res.value));
76
+ const newLocale = findLocaleFromCode(localization, localeToUse) || findLocaleFromCode(localization, defaultLocale) || findLocaleFromCode(localization, localization?.locales?.[0]?.code);
77
+ if (newLocale) {
78
+ setLocale(newLocale);
113
79
  }
114
- };
115
- resetLocale();
116
- };
117
- $[12] = defaultLocale;
118
- $[13] = fetchURL;
119
- $[14] = localeFromParams;
120
- $[15] = localization;
121
- $[16] = user?.id;
122
- $[17] = t10;
123
- } else {
124
- t10 = $[17];
125
- }
126
- const t11 = user?.id;
127
- let t12;
128
- if ($[18] !== defaultLocale || $[19] !== fetchURL || $[20] !== localeFromParams || $[21] !== localization || $[22] !== t11) {
129
- t12 = [defaultLocale, localization, fetchURL, localeFromParams, t11];
130
- $[18] = defaultLocale;
131
- $[19] = fetchURL;
132
- $[20] = localeFromParams;
133
- $[21] = localization;
134
- $[22] = t11;
135
- $[23] = t12;
136
- } else {
137
- t12 = $[23];
138
- }
139
- useEffect(t10, t12);
140
- let t13;
141
- if ($[24] !== children || $[25] !== isLoading || $[26] !== locale) {
142
- t13 = _jsx(LocaleContext, {
143
- value: locale,
144
- children: _jsx(LocaleLoadingContext, {
145
- value: {
146
- localeIsLoading: isLoading,
147
- setLocaleIsLoading
148
- },
149
- children
150
- })
151
- });
152
- $[24] = children;
153
- $[25] = isLoading;
154
- $[26] = locale;
155
- $[27] = t13;
156
- } else {
157
- t13 = $[27];
158
- }
159
- return t13;
80
+ }
81
+ }
82
+ void resetLocale();
83
+ }, [defaultLocale, localization, fetchURL, localeFromParams, user?.id]);
84
+ return /*#__PURE__*/_jsx(LocaleContext, {
85
+ value: locale,
86
+ children: /*#__PURE__*/_jsx(LocaleLoadingContext, {
87
+ value: {
88
+ localeIsLoading: isLoading,
89
+ setLocaleIsLoading
90
+ },
91
+ children: children
92
+ })
93
+ });
160
94
  };
161
95
  export const useLocaleLoading = () => use(LocaleLoadingContext);
162
- /**
163
- * TODO: V4
164
- * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.
165
- */
166
96
  export const useLocale = () => use(LocaleContext);
167
- function _temp(res) {
168
- return res.value;
169
- }
170
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","createContext","use","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","useSearchParams","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","t0","$","children","locale","initialLocaleFromPrefs","config","t1","localization","t2","routes","t3","api","apiRoute","user","defaultLocale","t4","t5","get","localeFromParams","t6","locales","length","code","setLocale","isLoading","prevLocale","t7","t8","current","t9","path","fetchURL","t10","id","resetLocale","localeToUse","_temp","newLocale","t11","t12","t13","_jsx","value","useLocaleLoading","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { createContext, use, useEffect, useRef, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n },\n } = useConfig()\n\n const { user } = useAuth()\n\n const defaultLocale = localization ? localization.defaultLocale : 'en'\n\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale>(() => {\n if (!localization || (localization && !localization.locales.length)) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization.locales[0].code)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale>(locale)\n\n useEffect(() => {\n /**\n * We need to set `isLoading` back to false once the locale is detected to be different\n * This happens when the user clicks an anchor link which appends the `?locale=` query param\n * This triggers a client-side navigation, which re-renders the page with the new locale\n * In Next.js, local state is persisted during this type of navigation because components are not unmounted\n */\n if (locale.code !== prevLocale.current.code) {\n setLocaleIsLoading(false)\n }\n\n prevLocale.current = locale\n }, [locale])\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: '',\n })\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value))\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization?.locales?.[0]?.code)\n\n if (newLocale) {\n setLocale(newLocale)\n }\n }\n }\n\n void resetLocale()\n }, [defaultLocale, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext value={locale}>\n <LocaleLoadingContext value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext>\n </LocaleContext>\n )\n}\n\nexport const useLocaleLoading = () => use(LocaleLoadingContext)\n\n/**\n * TODO: V4\n * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.\n */\nexport const useLocale = (): Locale => use(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","React","createContext","use","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","useSearchParams","useRouteTransition","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","children","locale","initialLocaleFromPrefs","config","localization","routes","api","apiRoute","user","isTransitioning","defaultLocale","localeFromParams","get","setLocale","locales","length","code","isLoading","prevLocale","current","fetchURL","path","resetLocale","id","localeToUse","value","newLocale","_jsx","useLocaleLoading","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { createContext, use, useEffect, useRef, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\n\nconst LocaleContext = createContext<Locale | null>(null)\n\nexport const LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n },\n } = useConfig()\n\n const { user } = useAuth()\n const { isTransitioning } = useRouteTransition()\n\n const defaultLocale = localization ? localization.defaultLocale : 'en'\n\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale | null>(() => {\n if (!localization || (localization && !localization.locales.length)) {\n return null\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization.locales[0].code)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale | null>(locale)\n\n useEffect(() => {\n // Keep fields disabled until the new locale's document state finishes loading.\n if (locale?.code !== prevLocale.current?.code && !isTransitioning) {\n setLocaleIsLoading(false)\n prevLocale.current = locale\n }\n }, [isTransitioning, locale])\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: '',\n })\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value))\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization?.locales?.[0]?.code)\n\n if (newLocale) {\n setLocale(newLocale)\n }\n }\n }\n\n void resetLocale()\n }, [defaultLocale, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext value={locale}>\n <LocaleLoadingContext value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext>\n </LocaleContext>\n )\n}\n\nexport const useLocaleLoading = () => use(LocaleLoadingContext)\n\nexport const useLocale = (): Locale | null => use(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
@@ -53,10 +53,10 @@ export const RootProvider = t0 => {
53
53
  let t1;
54
54
  if ($[0] !== RouterAdapter || $[1] !== children || $[2] !== config || $[3] !== dateFNSKey || $[4] !== dndContextID || $[5] !== embed || $[6] !== fallbackLang || $[7] !== highContrastMode || $[8] !== isNavOpen || $[9] !== languageCode || $[10] !== languageOptions || $[11] !== locale || $[12] !== permissions || $[13] !== serverFunction || $[14] !== theme || $[15] !== translations || $[16] !== user) {
55
55
  t1 = _jsxs(ClickOutsideProvider, {
56
- children: [_jsx(RouterAdapter, {
57
- children: _jsx(ServerFunctionsProvider, {
58
- serverFunction,
59
- children: _jsx(RouteTransitionProvider, {
56
+ children: [_jsx(RouteTransitionProvider, {
57
+ children: _jsx(RouterAdapter, {
58
+ children: _jsx(ServerFunctionsProvider, {
59
+ serverFunction,
60
60
  children: _jsx(RouteCache, {
61
61
  cachingEnabled: process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === "true",
62
62
  children: _jsx(ConfigProvider, {
@@ -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","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 <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 <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 </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