@payloadcms/ui 3.23.0 → 3.24.0-canary.05013b2

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 (281) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +2 -4
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/Banner/index.d.ts.map +1 -1
  5. package/dist/elements/Banner/index.js +1 -2
  6. package/dist/elements/Banner/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  8. package/dist/elements/BulkUpload/EditForm/index.js +6 -2
  9. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  10. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  11. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +22 -20
  12. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  13. package/dist/elements/Button/index.d.ts.map +1 -1
  14. package/dist/elements/Button/index.js +11 -12
  15. package/dist/elements/Button/index.js.map +1 -1
  16. package/dist/elements/Button/types.d.ts +5 -0
  17. package/dist/elements/Button/types.d.ts.map +1 -1
  18. package/dist/elements/Button/types.js.map +1 -1
  19. package/dist/elements/Card/index.d.ts +7 -3
  20. package/dist/elements/Card/index.d.ts.map +1 -1
  21. package/dist/elements/Card/index.js +0 -2
  22. package/dist/elements/Card/index.js.map +1 -1
  23. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  24. package/dist/elements/CopyLocaleData/index.js +220 -99
  25. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  26. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  27. package/dist/elements/DeleteDocument/index.js +7 -3
  28. package/dist/elements/DeleteDocument/index.js.map +1 -1
  29. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  30. package/dist/elements/DeleteMany/index.js +2 -2
  31. package/dist/elements/DeleteMany/index.js.map +1 -1
  32. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  33. package/dist/elements/DocumentControls/index.js.map +1 -1
  34. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  35. package/dist/elements/DocumentLocked/index.js +67 -39
  36. package/dist/elements/DocumentLocked/index.js.map +1 -1
  37. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -1
  38. package/dist/elements/DocumentTakeOver/index.js +28 -12
  39. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  40. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  41. package/dist/elements/DuplicateDocument/index.js +8 -4
  42. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  43. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  44. package/dist/elements/EditMany/DrawerContent.js +3 -2
  45. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  46. package/dist/elements/EditUpload/index.js +1 -1
  47. package/dist/elements/EditUpload/index.js.map +1 -1
  48. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -0
  49. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  50. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -17
  51. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  52. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -0
  53. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  54. package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
  55. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  56. package/dist/elements/FileDetails/index.d.ts +1 -0
  57. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  58. package/dist/elements/FileDetails/index.js.map +1 -1
  59. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  60. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  61. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +6 -2
  62. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  63. package/dist/elements/Link/formatUrl.d.ts +4 -0
  64. package/dist/elements/Link/formatUrl.d.ts.map +1 -0
  65. package/dist/elements/Link/formatUrl.js +87 -0
  66. package/dist/elements/Link/formatUrl.js.map +1 -0
  67. package/dist/elements/Link/index.d.ts +6 -0
  68. package/dist/elements/Link/index.d.ts.map +1 -0
  69. package/dist/elements/Link/index.js +58 -0
  70. package/dist/elements/Link/index.js.map +1 -0
  71. package/dist/elements/ListControls/index.d.ts +2 -1
  72. package/dist/elements/ListControls/index.d.ts.map +1 -1
  73. package/dist/elements/ListControls/index.js +5 -3
  74. package/dist/elements/ListControls/index.js.map +1 -1
  75. package/dist/elements/Logout/index.d.ts +5 -0
  76. package/dist/elements/Logout/index.d.ts.map +1 -1
  77. package/dist/elements/Logout/index.js +10 -13
  78. package/dist/elements/Logout/index.js.map +1 -1
  79. package/dist/elements/Nav/context.d.ts.map +1 -1
  80. package/dist/elements/Nav/context.js +3 -1
  81. package/dist/elements/Nav/context.js.map +1 -1
  82. package/dist/elements/Pill/index.d.ts.map +1 -1
  83. package/dist/elements/Pill/index.js +1 -2
  84. package/dist/elements/Pill/index.js.map +1 -1
  85. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  86. package/dist/elements/Popup/PopupButtonList/index.js +1 -2
  87. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  88. package/dist/elements/PreviewButton/index.d.ts +2 -1
  89. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  90. package/dist/elements/PreviewButton/index.js +2 -2
  91. package/dist/elements/PreviewButton/index.js.map +1 -1
  92. package/dist/elements/PreviewSizes/index.js +1 -1
  93. package/dist/elements/PreviewSizes/index.js.map +1 -1
  94. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
  95. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  96. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  97. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  98. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  99. package/dist/elements/PublishButton/index.d.ts +2 -3
  100. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  101. package/dist/elements/PublishButton/index.js +2 -2
  102. package/dist/elements/PublishButton/index.js.map +1 -1
  103. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  104. package/dist/elements/RelationshipTable/index.js.map +1 -1
  105. package/dist/elements/SaveButton/index.d.ts +2 -3
  106. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  107. package/dist/elements/SaveButton/index.js +3 -3
  108. package/dist/elements/SaveButton/index.js.map +1 -1
  109. package/dist/elements/SaveDraftButton/index.d.ts +2 -1
  110. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  111. package/dist/elements/SaveDraftButton/index.js +2 -2
  112. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  113. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  114. package/dist/elements/StayLoggedIn/index.js +32 -27
  115. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  116. package/dist/elements/StepNav/index.d.ts +5 -0
  117. package/dist/elements/StepNav/index.d.ts.map +1 -1
  118. package/dist/elements/StepNav/index.js +18 -25
  119. package/dist/elements/StepNav/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +12 -4
  122. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  123. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  124. package/dist/elements/Table/DefaultCell/index.js +1 -2
  125. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  126. package/dist/elements/Table/index.d.ts +1 -9
  127. package/dist/elements/Table/index.d.ts.map +1 -1
  128. package/dist/elements/Table/index.js.map +1 -1
  129. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  130. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  131. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  132. package/dist/elements/TableColumns/index.d.ts +1 -2
  133. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  134. package/dist/elements/TableColumns/index.js.map +1 -1
  135. package/dist/elements/Thumbnail/index.js +2 -2
  136. package/dist/elements/Thumbnail/index.js.map +1 -1
  137. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  138. package/dist/elements/UnpublishMany/index.js.map +1 -1
  139. package/dist/elements/Upload/index.d.ts.map +1 -1
  140. package/dist/elements/Upload/index.js +5 -1
  141. package/dist/elements/Upload/index.js.map +1 -1
  142. package/dist/elements/ViewDescription/index.d.ts +2 -5
  143. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  144. package/dist/elements/ViewDescription/index.js +2 -2
  145. package/dist/elements/ViewDescription/index.js.map +1 -1
  146. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts +2 -1
  147. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts.map +1 -1
  148. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +2 -0
  149. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  150. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  151. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +4 -0
  152. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  153. package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts +2 -1
  154. package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts.map +1 -1
  155. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  156. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -1
  157. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  158. package/dist/elements/WhereBuilder/Condition/index.js +2 -0
  159. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  160. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  161. package/dist/elements/WhereBuilder/index.js +3 -1
  162. package/dist/elements/WhereBuilder/index.js.map +1 -1
  163. package/dist/elements/WhereBuilder/types.d.ts +2 -1
  164. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  165. package/dist/elements/WhereBuilder/types.js.map +1 -1
  166. package/dist/exports/client/{CodeEditor-BMYVMDNZ.js → CodeEditor-L6GW2VQ6.js} +2 -2
  167. package/dist/exports/client/chunk-ZZDNSFEW.js +26 -0
  168. package/dist/exports/client/{chunk-CQQHQHCB.js.map → chunk-ZZDNSFEW.js.map} +4 -4
  169. package/dist/exports/client/index.d.ts +47 -4
  170. package/dist/exports/client/index.d.ts.map +1 -1
  171. package/dist/exports/client/index.js +23 -23
  172. package/dist/exports/client/index.js.map +4 -4
  173. package/dist/exports/rsc/index.d.ts +1 -0
  174. package/dist/exports/rsc/index.d.ts.map +1 -1
  175. package/dist/exports/rsc/index.js +1 -0
  176. package/dist/exports/rsc/index.js.map +1 -1
  177. package/dist/fields/Array/index.d.ts.map +1 -1
  178. package/dist/fields/Array/index.js +1 -2
  179. package/dist/fields/Array/index.js.map +1 -1
  180. package/dist/fields/Blocks/BlockRow.d.ts +1 -1
  181. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  182. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  183. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +1 -1
  184. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  185. package/dist/fields/Blocks/BlocksDrawer/index.js +31 -23
  186. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  187. package/dist/fields/Blocks/RowActions.d.ts +1 -1
  188. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  189. package/dist/fields/Blocks/RowActions.js.map +1 -1
  190. package/dist/fields/Blocks/index.d.ts.map +1 -1
  191. package/dist/fields/Blocks/index.js +6 -4
  192. package/dist/fields/Blocks/index.js.map +1 -1
  193. package/dist/fields/JSON/index.d.ts.map +1 -1
  194. package/dist/fields/JSON/index.js +5 -6
  195. package/dist/fields/JSON/index.js.map +1 -1
  196. package/dist/fields/Join/index.d.ts.map +1 -1
  197. package/dist/fields/Join/index.js +20 -4
  198. package/dist/fields/Join/index.js.map +1 -1
  199. package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
  200. package/dist/fields/Relationship/optionsReducer.js +1 -0
  201. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  202. package/dist/fields/Upload/Input.d.ts +1 -0
  203. package/dist/fields/Upload/Input.d.ts.map +1 -1
  204. package/dist/fields/Upload/Input.js.map +1 -1
  205. package/dist/fields/Upload/RelationshipContent/index.js +1 -1
  206. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  207. package/dist/forms/Form/index.d.ts.map +1 -1
  208. package/dist/forms/Form/index.js +5 -1
  209. package/dist/forms/Form/index.js.map +1 -1
  210. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  211. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +4 -3
  212. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  213. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  214. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  215. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  216. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  217. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  218. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  219. package/dist/providers/Auth/index.d.ts.map +1 -1
  220. package/dist/providers/Auth/index.js +9 -13
  221. package/dist/providers/Auth/index.js.map +1 -1
  222. package/dist/providers/Config/index.d.ts +2 -2
  223. package/dist/providers/Config/index.d.ts.map +1 -1
  224. package/dist/providers/Config/index.js +17 -2
  225. package/dist/providers/Config/index.js.map +1 -1
  226. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  227. package/dist/providers/ListQuery/index.js +2 -1
  228. package/dist/providers/ListQuery/index.js.map +1 -1
  229. package/dist/providers/Root/index.d.ts.map +1 -1
  230. package/dist/providers/Root/index.js +44 -41
  231. package/dist/providers/Root/index.js.map +1 -1
  232. package/dist/providers/RouteTransition/ProgressBar/index.d.ts +17 -0
  233. package/dist/providers/RouteTransition/ProgressBar/index.d.ts.map +1 -0
  234. package/dist/providers/RouteTransition/ProgressBar/index.js +104 -0
  235. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -0
  236. package/dist/providers/RouteTransition/ProgressBar/index.scss +21 -0
  237. package/dist/providers/RouteTransition/index.d.ts +51 -0
  238. package/dist/providers/RouteTransition/index.d.ts.map +1 -0
  239. package/dist/providers/RouteTransition/index.js +133 -0
  240. package/dist/providers/RouteTransition/index.js.map +1 -0
  241. package/dist/styles.css +1 -1
  242. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  243. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +3 -1
  244. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  245. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  246. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +4 -1
  247. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  248. package/dist/utilities/buildTableState.d.ts +1 -2
  249. package/dist/utilities/buildTableState.d.ts.map +1 -1
  250. package/dist/utilities/buildTableState.js +1 -0
  251. package/dist/utilities/buildTableState.js.map +1 -1
  252. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  253. package/dist/utilities/copyDataFromLocale.js +22 -18
  254. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  255. package/dist/utilities/getClientConfig.js.map +1 -1
  256. package/dist/utilities/renderTable.d.ts.map +1 -1
  257. package/dist/utilities/renderTable.js.map +1 -1
  258. package/dist/utilities/resolveFilterOptions.d.ts +5 -0
  259. package/dist/utilities/resolveFilterOptions.d.ts.map +1 -0
  260. package/dist/{forms/fieldSchemasToFormState/getFilterOptionsQuery.js → utilities/resolveFilterOptions.js} +2 -2
  261. package/dist/utilities/resolveFilterOptions.js.map +1 -0
  262. package/dist/views/Edit/index.d.ts +2 -2
  263. package/dist/views/Edit/index.d.ts.map +1 -1
  264. package/dist/views/Edit/index.js +8 -4
  265. package/dist/views/Edit/index.js.map +1 -1
  266. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  267. package/dist/views/List/ListHeader/index.js +1 -4
  268. package/dist/views/List/ListHeader/index.js.map +1 -1
  269. package/dist/views/List/index.d.ts +2 -24
  270. package/dist/views/List/index.d.ts.map +1 -1
  271. package/dist/views/List/index.js +7 -7
  272. package/dist/views/List/index.js.map +1 -1
  273. package/dist/views/List/types.d.ts +1 -18
  274. package/dist/views/List/types.d.ts.map +1 -1
  275. package/dist/views/List/types.js.map +1 -1
  276. package/package.json +6 -6
  277. package/dist/exports/client/chunk-CQQHQHCB.js +0 -26
  278. package/dist/forms/fieldSchemasToFormState/getFilterOptionsQuery.d.ts +0 -7
  279. package/dist/forms/fieldSchemasToFormState/getFilterOptionsQuery.d.ts.map +0 -1
  280. package/dist/forms/fieldSchemasToFormState/getFilterOptionsQuery.js.map +0 -1
  281. /package/dist/exports/client/{CodeEditor-BMYVMDNZ.js.map → CodeEditor-L6GW2VQ6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","RootConfigContext","undefined","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","slug","global","globals","getEntityConfig","args","collectionSlug","globalSlug","_jsx","Provider","value","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n} from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(configFromProps)\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n setConfig(configFromProps)\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n return (\n <RootConfigContext.Provider value={{ config, getEntityConfig, setConfig }}>\n {children}\n </RootConfigContext.Provider>\n )\n}\n\nexport const useConfig = (): ClientConfigContext => useContext(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AASA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AA6B5F,MAAMC,iBAAA,gBAAoBN,aAAA,CAA+CO,SAAA;AAEzE,OAAO,MAAMC,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGP,QAAA,CAAuBM,eAAA;EAEnD;EACA;EACAR,SAAA,CAAU;IACRS,SAAA,CAAUD,eAAA;EACZ,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEE,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGV,OAAA,CAAQ;IACnD,MAAMS,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcL,MAAA,CAAOM,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWE,IAAI,CAAC,GAAGF,UAAA;IACvC;IACA,KAAK,MAAMG,MAAA,IAAUR,MAAA,CAAOS,OAAO,EAAE;MACnCL,aAAa,CAACI,MAAA,CAAOD,IAAI,CAAC,GAAGC,MAAA;IAC/B;IAEA,OAAO;MAAEL,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACJ,MAAA,CAAO;EAEX,MAAMU,eAAA,GAAkBnB,WAAA,CACrBoB,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOR,mBAAiB,CAACQ,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAOP,eAAa,CAACO,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACV,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,oBACEU,IAAA,CAAClB,iBAAA,CAAkBmB,QAAQ;IAACC,KAAA,EAAO;MAAEhB,MAAA;MAAQU,eAAA;MAAiBR;IAAU;cACrEH;;AAGP;AAEA,OAAO,MAAMkB,SAAA,GAAYA,CAAA;EAAA,OAA2BzB,UAAA,CAAAI,iBAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","_jsx","Provider","value","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n UnsanitizedClientConfig,\n} from 'payload'\n\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nfunction sanitizeClientConfig(\n unSanitizedConfig: ClientConfig | UnsanitizedClientConfig,\n): ClientConfig {\n if (!unSanitizedConfig?.blocks?.length || (unSanitizedConfig as ClientConfig).blocksMap) {\n ;(unSanitizedConfig as ClientConfig).blocksMap = {}\n return unSanitizedConfig as ClientConfig\n }\n const sanitizedConfig: ClientConfig = { ...unSanitizedConfig } as ClientConfig\n\n sanitizedConfig.blocksMap = {}\n\n for (const block of unSanitizedConfig.blocks) {\n sanitizedConfig.blocksMap[block.slug] = block\n }\n\n return sanitizedConfig\n}\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig | UnsanitizedClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(() => sanitizeClientConfig(configFromProps))\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n setConfig(sanitizeClientConfig(configFromProps))\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n return (\n <RootConfigContext.Provider value={{ config, getEntityConfig, setConfig }}>\n {children}\n </RootConfigContext.Provider>\n )\n}\n\nexport const useConfig = (): ClientConfigContext => useContext(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AA6B5F,MAAMC,iBAAA,gBAAoBN,aAAA,CAA+CO,SAAA;AAEzE,SAASC,qBACPC,iBAAyD;EAEzD,IAAI,CAACA,iBAAA,EAAmBC,MAAA,EAAQC,MAAA,IAAUF,iBAAC,CAAmCG,SAAS,EAAE;;IACrFH,iBAAA,CAAmCG,SAAS,GAAG,CAAC;IAClD,OAAOH,iBAAA;EACT;EACA,MAAMI,eAAA,GAAgC;IAAE,GAAGJ;EAAkB;EAE7DI,eAAA,CAAgBD,SAAS,GAAG,CAAC;EAE7B,KAAK,MAAME,KAAA,IAASL,iBAAA,CAAkBC,MAAM,EAAE;IAC5CG,eAAA,CAAgBD,SAAS,CAACE,KAAA,CAAMC,IAAI,CAAC,GAAGD,KAAA;EAC1C;EAEA,OAAOD,eAAA;AACT;AAEA,OAAO,MAAMG,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGf,QAAA,CAAuB,MAAMG,oBAAA,CAAqBW,eAAA;EAE9E;EACA;EACAhB,SAAA,CAAU;IACRiB,SAAA,CAAUZ,oBAAA,CAAqBW,eAAA;EACjC,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEE,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGlB,OAAA,CAAQ;IACnD,MAAMiB,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcL,MAAA,CAAOM,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWR,IAAI,CAAC,GAAGQ,UAAA;IACvC;IACA,KAAK,MAAME,MAAA,IAAUP,MAAA,CAAOQ,OAAO,EAAE;MACnCJ,aAAa,CAACG,MAAA,CAAOV,IAAI,CAAC,GAAGU,MAAA;IAC/B;IAEA,OAAO;MAAEJ,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACJ,MAAA,CAAO;EAEX,MAAMS,eAAA,GAAkB1B,WAAA,CACrB2B,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOP,mBAAiB,CAACO,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAON,eAAa,CAACM,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACT,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,oBACES,IAAA,CAACzB,iBAAA,CAAkB0B,QAAQ;IAACC,KAAA,EAAO;MAAEf,MAAA;MAAQS,eAAA;MAAiBP;IAAU;cACrEH;;AAGP;AAEA,OAAO,MAAMiB,SAAA,GAAYA,CAAA;EAAA,OAA2BhC,UAAA,CAAAI,iBAAW;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpE,OAAO,KAA+E,MAAM,OAAO,CAAA;AAKnG,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA0JtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpE,OAAO,KAA+E,MAAM,OAAO,CAAA;AAKnG,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2JtD,CAAA"}
@@ -93,6 +93,7 @@ export const ListQueryProvider = ({
93
93
  });
94
94
  }, [refineListData]);
95
95
  // If `defaultLimit` or `defaultSort` are updated externally, update the query
96
+ // I.e. when HMR runs, these properties may be different
96
97
  useEffect(() => {
97
98
  if (modifySearchParams) {
98
99
  let shouldUpdateQueryString = false;
@@ -112,7 +113,7 @@ export const ListQueryProvider = ({
112
113
  if (shouldUpdateQueryString) {
113
114
  setCurrentQuery(newQuery_0);
114
115
  // Do not use router.replace here to avoid re-rendering on initial load
115
- window.history.pushState(null, '', `?${qs.stringify(newQuery_0)}`);
116
+ window.history.replaceState(null, '', `?${qs.stringify(newQuery_0)}`);
116
117
  }
117
118
  }
118
119
  }, [defaultSort, defaultLimit, router, modifySearchParams]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","useSearchParams","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useMemo","useState","useListDrawerContext","parseSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","router","rawSearchParams","searchParams","currentQuery","setCurrentQuery","currentQueryRef","useRef","refineListData","query","page","newQuery","limit","String","search","sort","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","current","window","history","pushState","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, Sort, Where } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug?: string\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: Sort\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: (query: ListQuery) => void\n readonly preferenceKey?: string\n}\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: Sort\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n}) => {\n 'use no memo'\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n const currentQueryRef = React.useRef(currentQuery)\n\n // If the search params change externally, update the current query\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (query: ListQuery) => {\n let page = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n page = '1'\n }\n\n const newQuery: ListQuery = {\n limit: 'limit' in query ? query.limit : (currentQuery?.limit ?? String(defaultLimit)),\n page,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : ((currentQuery?.sort as string) ?? defaultSort),\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n if (modifySearchParams) {\n router.replace(`${qs.stringify(newQuery, { addQueryPrefix: true })}`)\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setCurrentQuery(newQuery)\n },\n [\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: String(arg) })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n await refineListData({ sort: arg })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n await refineListData({ where: arg })\n },\n [refineListData],\n )\n\n // If `defaultLimit` or `defaultSort` are updated externally, update the query\n useEffect(() => {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n const newQuery = { ...(currentQueryRef.current || {}) }\n\n // Allow the URL to override the default limit\n if (isNumber(defaultLimit) && !('limit' in currentQueryRef.current)) {\n newQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n // Allow the URL to override the default sort\n if (defaultSort && !('sort' in currentQueryRef.current)) {\n newQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n if (shouldUpdateQueryString) {\n setCurrentQuery(newQuery)\n // Do not use router.replace here to avoid re-rendering on initial load\n window.history.pushState(null, '', `?${qs.stringify(newQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n query: currentQuery,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useMemo","useState","useListDrawerContext","parseSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","modifySearchParams","onQueryChange","onQueryChangeFromProps","router","rawSearchParams","searchParams","currentQuery","setCurrentQuery","currentQueryRef","useRef","refineListData","query","page","newQuery","limit","String","search","sort","where","replace","stringify","addQueryPrefix","onChangeFn","handlePageChange","arg","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","shouldUpdateQueryString","current","window","history","replaceState","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { ListQuery, PaginatedDocs, Sort, Where } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug?: string\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: Sort\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: (query: ListQuery) => void\n readonly preferenceKey?: string\n}\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: Sort\n query: ListQuery\n refineListData: (args: ListQuery) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n}) => {\n 'use no memo'\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n\n const { onQueryChange } = useListDrawerContext()\n\n const [currentQuery, setCurrentQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {}\n }\n })\n\n const currentQueryRef = React.useRef(currentQuery)\n\n // If the search params change externally, update the current query\n useEffect(() => {\n if (modifySearchParams) {\n setCurrentQuery(searchParams)\n }\n }, [searchParams, modifySearchParams])\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (query: ListQuery) => {\n let page = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n page = '1'\n }\n\n const newQuery: ListQuery = {\n limit: 'limit' in query ? query.limit : (currentQuery?.limit ?? String(defaultLimit)),\n page,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : ((currentQuery?.sort as string) ?? defaultSort),\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n if (modifySearchParams) {\n router.replace(`${qs.stringify(newQuery, { addQueryPrefix: true })}`)\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setCurrentQuery(newQuery)\n },\n [\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n defaultLimit,\n defaultSort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: String(arg) })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n await refineListData({ sort: arg })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n await refineListData({ where: arg })\n },\n [refineListData],\n )\n\n // If `defaultLimit` or `defaultSort` are updated externally, update the query\n // I.e. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n const newQuery = { ...(currentQueryRef.current || {}) }\n\n // Allow the URL to override the default limit\n if (isNumber(defaultLimit) && !('limit' in currentQueryRef.current)) {\n newQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n // Allow the URL to override the default sort\n if (defaultSort && !('sort' in currentQueryRef.current)) {\n newQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n if (shouldUpdateQueryString) {\n setCurrentQuery(newQuery)\n // Do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(null, '', `?${qs.stringify(newQuery)}`)\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n query: currentQuery,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,EACL,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAqB9C,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6ExC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,EACL,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAsB9C,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+ExC,CAAA"}
@@ -17,6 +17,7 @@ import { LocaleProvider } from '../Locale/index.js';
17
17
  import { ParamsProvider } from '../Params/index.js';
18
18
  import { PreferencesProvider } from '../Preferences/index.js';
19
19
  import { RouteCache } from '../RouteCache/index.js';
20
+ import { RouteTransitionProvider } from '../RouteTransition/index.js';
20
21
  import { SearchParamsProvider } from '../SearchParams/index.js';
21
22
  import { ServerFunctionsProvider } from '../ServerFunctions/index.js';
22
23
  import { ThemeProvider } from '../Theme/index.js';
@@ -42,53 +43,55 @@ export const RootProvider = ({
42
43
  return /*#__PURE__*/_jsxs(Fragment, {
43
44
  children: [/*#__PURE__*/_jsx(ServerFunctionsProvider, {
44
45
  serverFunction: serverFunction,
45
- children: /*#__PURE__*/_jsx(RouteCacheComponent, {
46
- children: /*#__PURE__*/_jsx(ConfigProvider, {
47
- config: config,
48
- children: /*#__PURE__*/_jsx(ClientFunctionProvider, {
49
- children: /*#__PURE__*/_jsx(TranslationProvider, {
50
- dateFNSKey: dateFNSKey,
51
- fallbackLang: fallbackLang,
52
- language: languageCode,
53
- languageOptions: languageOptions,
54
- switchLanguageServerAction: switchLanguageServerAction,
55
- translations: translations,
56
- children: /*#__PURE__*/_jsx(WindowInfoProvider, {
57
- breakpoints: {
58
- l: '(max-width: 1440px)',
59
- m: '(max-width: 1024px)',
60
- s: '(max-width: 768px)',
61
- xs: '(max-width: 400px)'
62
- },
63
- children: /*#__PURE__*/_jsx(ScrollInfoProvider, {
64
- children: /*#__PURE__*/_jsx(SearchParamsProvider, {
65
- children: /*#__PURE__*/_jsx(ModalProvider, {
66
- classPrefix: "payload",
67
- transTime: 0,
68
- zIndex: "var(--z-modal)",
69
- children: /*#__PURE__*/_jsxs(AuthProvider, {
70
- permissions: permissions,
71
- user: user,
72
- children: [/*#__PURE__*/_jsx(PreferencesProvider, {
73
- children: /*#__PURE__*/_jsx(ThemeProvider, {
74
- theme: theme,
75
- children: /*#__PURE__*/_jsx(ParamsProvider, {
76
- children: /*#__PURE__*/_jsx(LocaleProvider, {
77
- locale: locale,
78
- children: /*#__PURE__*/_jsx(StepNavProvider, {
79
- children: /*#__PURE__*/_jsx(LoadingOverlayProvider, {
80
- children: /*#__PURE__*/_jsx(DocumentEventsProvider, {
81
- children: /*#__PURE__*/_jsx(NavProvider, {
82
- initialIsOpen: isNavOpen,
83
- children: children
46
+ children: /*#__PURE__*/_jsx(RouteTransitionProvider, {
47
+ children: /*#__PURE__*/_jsx(RouteCacheComponent, {
48
+ children: /*#__PURE__*/_jsx(ConfigProvider, {
49
+ config: config,
50
+ children: /*#__PURE__*/_jsx(ClientFunctionProvider, {
51
+ children: /*#__PURE__*/_jsx(TranslationProvider, {
52
+ dateFNSKey: dateFNSKey,
53
+ fallbackLang: fallbackLang,
54
+ language: languageCode,
55
+ languageOptions: languageOptions,
56
+ switchLanguageServerAction: switchLanguageServerAction,
57
+ translations: translations,
58
+ children: /*#__PURE__*/_jsx(WindowInfoProvider, {
59
+ breakpoints: {
60
+ l: '(max-width: 1440px)',
61
+ m: '(max-width: 1024px)',
62
+ s: '(max-width: 768px)',
63
+ xs: '(max-width: 400px)'
64
+ },
65
+ children: /*#__PURE__*/_jsx(ScrollInfoProvider, {
66
+ children: /*#__PURE__*/_jsx(SearchParamsProvider, {
67
+ children: /*#__PURE__*/_jsx(ModalProvider, {
68
+ classPrefix: "payload",
69
+ transTime: 0,
70
+ zIndex: "var(--z-modal)",
71
+ children: /*#__PURE__*/_jsxs(AuthProvider, {
72
+ permissions: permissions,
73
+ user: user,
74
+ children: [/*#__PURE__*/_jsx(PreferencesProvider, {
75
+ children: /*#__PURE__*/_jsx(ThemeProvider, {
76
+ theme: theme,
77
+ children: /*#__PURE__*/_jsx(ParamsProvider, {
78
+ children: /*#__PURE__*/_jsx(LocaleProvider, {
79
+ locale: locale,
80
+ children: /*#__PURE__*/_jsx(StepNavProvider, {
81
+ children: /*#__PURE__*/_jsx(LoadingOverlayProvider, {
82
+ children: /*#__PURE__*/_jsx(DocumentEventsProvider, {
83
+ children: /*#__PURE__*/_jsx(NavProvider, {
84
+ initialIsOpen: isNavOpen,
85
+ children: children
86
+ })
84
87
  })
85
88
  })
86
89
  })
87
90
  })
88
91
  })
89
92
  })
90
- })
91
- }), /*#__PURE__*/_jsx(ModalContainer, {}), /*#__PURE__*/_jsx(StayLoggedInModal, {})]
93
+ }), /*#__PURE__*/_jsx(ModalContainer, {}), /*#__PURE__*/_jsx(StayLoggedInModal, {})]
94
+ })
92
95
  })
93
96
  })
94
97
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ModalContainer","ModalProvider","ScrollInfoProvider","React","Fragment","LoadingOverlayProvider","NavProvider","StayLoggedInModal","StepNavProvider","WindowInfoProvider","AuthProvider","ClientFunctionProvider","ConfigProvider","DocumentEventsProvider","LocaleProvider","ParamsProvider","PreferencesProvider","RouteCache","SearchParamsProvider","ServerFunctionsProvider","ThemeProvider","ToastContainer","TranslationProvider","RootProvider","children","config","dateFNSKey","fallbackLang","isNavOpen","languageCode","languageOptions","locale","permissions","serverFunction","switchLanguageServerAction","theme","translations","user","RouteCacheComponent","process","env","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","_jsxs","_jsx","language","breakpoints","l","m","s","xs","classPrefix","transTime","zIndex","initialIsOpen"],"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 SanitizedPermissions,\n ServerFunctionClient,\n User,\n} from 'payload'\n\nimport { ModalContainer, ModalProvider } from '@faceless-ui/modal'\nimport { ScrollInfoProvider } from '@faceless-ui/scroll-info'\nimport React, { Fragment } from 'react'\n\nimport type { Theme } from '../Theme/index.js'\n\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 { 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 { LocaleProvider } from '../Locale/index.js'\nimport { ParamsProvider } from '../Params/index.js'\nimport { PreferencesProvider } from '../Preferences/index.js'\nimport { RouteCache } from '../RouteCache/index.js'\nimport { SearchParamsProvider } from '../SearchParams/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'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly config: ClientConfig\n readonly dateFNSKey: Language['dateFNSKey']\n readonly fallbackLang: I18nOptions['fallbackLanguage']\n readonly isNavOpen?: boolean\n readonly languageCode: string\n readonly languageOptions: LanguageOptions\n readonly locale?: Locale['code']\n readonly permissions: SanitizedPermissions\n readonly serverFunction: ServerFunctionClient\n readonly switchLanguageServerAction?: (lang: string) => Promise<void>\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 isNavOpen,\n languageCode,\n languageOptions,\n locale,\n permissions,\n serverFunction,\n switchLanguageServerAction,\n theme,\n translations,\n user,\n}) => {\n const RouteCacheComponent =\n process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === 'true' ? RouteCache : Fragment\n\n return (\n <Fragment>\n <ServerFunctionsProvider serverFunction={serverFunction}>\n <RouteCacheComponent>\n <ConfigProvider config={config}>\n <ClientFunctionProvider>\n <TranslationProvider\n dateFNSKey={dateFNSKey}\n fallbackLang={fallbackLang}\n language={languageCode}\n languageOptions={languageOptions}\n switchLanguageServerAction={switchLanguageServerAction}\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 <SearchParamsProvider>\n <ModalProvider classPrefix=\"payload\" transTime={0} zIndex=\"var(--z-modal)\">\n <AuthProvider permissions={permissions} user={user}>\n <PreferencesProvider>\n <ThemeProvider theme={theme}>\n <ParamsProvider>\n <LocaleProvider locale={locale}>\n <StepNavProvider>\n <LoadingOverlayProvider>\n <DocumentEventsProvider>\n <NavProvider initialIsOpen={isNavOpen}>\n {children}\n </NavProvider>\n </DocumentEventsProvider>\n </LoadingOverlayProvider>\n </StepNavProvider>\n </LocaleProvider>\n </ParamsProvider>\n </ThemeProvider>\n </PreferencesProvider>\n <ModalContainer />\n <StayLoggedInModal />\n </AuthProvider>\n </ModalProvider>\n </SearchParamsProvider>\n </ScrollInfoProvider>\n </WindowInfoProvider>\n </TranslationProvider>\n </ClientFunctionProvider>\n </ConfigProvider>\n </RouteCacheComponent>\n </ServerFunctionsProvider>\n <ToastContainer />\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAWA,SAASA,cAAc,EAAEC,aAAa,QAAQ;AAC9C,SAASC,kBAAkB,QAAQ;AACnC,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,WAAW,QAAQ;AAC5B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,YAAY,QAAQ;AAC7B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ;AAmBpC,OAAO,MAAMC,YAAA,GAAgCA,CAAC;EAC5CC,QAAQ;EACRC,MAAM;EACNC,UAAU;EACVC,YAAY;EACZC,SAAS;EACTC,YAAY;EACZC,eAAe;EACfC,MAAM;EACNC,WAAW;EACXC,cAAc;EACdC,0BAA0B;EAC1BC,KAAK;EACLC,YAAY;EACZC;AAAI,CACL;EACC,MAAMC,mBAAA,GACJC,OAAA,CAAQC,GAAG,CAACC,uCAAuC,KAAK,SAASxB,UAAA,GAAab,QAAA;EAEhF,oBACEsC,KAAA,CAACtC,QAAA;4BACCuC,IAAA,CAACxB,uBAAA;MAAwBc,cAAA,EAAgBA,cAAA;gBACvC,aAAAU,IAAA,CAACL,mBAAA;kBACC,aAAAK,IAAA,CAAC/B,cAAA;UAAea,MAAA,EAAQA,MAAA;oBACtB,aAAAkB,IAAA,CAAChC,sBAAA;sBACC,aAAAgC,IAAA,CAACrB,mBAAA;cACCI,UAAA,EAAYA,UAAA;cACZC,YAAA,EAAcA,YAAA;cACdiB,QAAA,EAAUf,YAAA;cACVC,eAAA,EAAiBA,eAAA;cACjBI,0BAAA,EAA4BA,0BAAA;cAC5BE,YAAA,EAAcA,YAAA;wBAEd,aAAAO,IAAA,CAAClC,kBAAA;gBACCoC,WAAA,EAAa;kBACXC,CAAA,EAAG;kBACHC,CAAA,EAAG;kBACHC,CAAA,EAAG;kBACHC,EAAA,EAAI;gBACN;0BAEA,aAAAN,IAAA,CAACzC,kBAAA;4BACC,aAAAyC,IAAA,CAACzB,oBAAA;8BACC,aAAAyB,IAAA,CAAC1C,aAAA;sBAAciD,WAAA,EAAY;sBAAUC,SAAA,EAAW;sBAAGC,MAAA,EAAO;gCACxD,aAAAV,KAAA,CAAChC,YAAA;wBAAasB,WAAA,EAAaA,WAAA;wBAAaK,IAAA,EAAMA,IAAA;gDAC5CM,IAAA,CAAC3B,mBAAA;oCACC,aAAA2B,IAAA,CAACvB,aAAA;4BAAce,KAAA,EAAOA,KAAA;sCACpB,aAAAQ,IAAA,CAAC5B,cAAA;wCACC,aAAA4B,IAAA,CAAC7B,cAAA;gCAAeiB,MAAA,EAAQA,MAAA;0CACtB,aAAAY,IAAA,CAACnC,eAAA;4CACC,aAAAmC,IAAA,CAACtC,sBAAA;8CACC,aAAAsC,IAAA,CAAC9B,sBAAA;gDACC,aAAA8B,IAAA,CAACrC,WAAA;wCAAY+C,aAAA,EAAezB,SAAA;kDACzBJ;;;;;;;;yCASjBmB,IAAA,CAAC3C,cAAA,O,aACD2C,IAAA,CAACpC,iBAAA;;;;;;;;;;qBAWrBoC,IAAA,CAACtB,cAAA;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ModalContainer","ModalProvider","ScrollInfoProvider","React","Fragment","LoadingOverlayProvider","NavProvider","StayLoggedInModal","StepNavProvider","WindowInfoProvider","AuthProvider","ClientFunctionProvider","ConfigProvider","DocumentEventsProvider","LocaleProvider","ParamsProvider","PreferencesProvider","RouteCache","RouteTransitionProvider","SearchParamsProvider","ServerFunctionsProvider","ThemeProvider","ToastContainer","TranslationProvider","RootProvider","children","config","dateFNSKey","fallbackLang","isNavOpen","languageCode","languageOptions","locale","permissions","serverFunction","switchLanguageServerAction","theme","translations","user","RouteCacheComponent","process","env","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","_jsxs","_jsx","language","breakpoints","l","m","s","xs","classPrefix","transTime","zIndex","initialIsOpen"],"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 SanitizedPermissions,\n ServerFunctionClient,\n User,\n} from 'payload'\n\nimport { ModalContainer, ModalProvider } from '@faceless-ui/modal'\nimport { ScrollInfoProvider } from '@faceless-ui/scroll-info'\nimport React, { Fragment } from 'react'\n\nimport type { Theme } from '../Theme/index.js'\n\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 { 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 { LocaleProvider } from '../Locale/index.js'\nimport { ParamsProvider } from '../Params/index.js'\nimport { PreferencesProvider } from '../Preferences/index.js'\nimport { RouteCache } from '../RouteCache/index.js'\nimport { RouteTransitionProvider } from '../RouteTransition/index.js'\nimport { SearchParamsProvider } from '../SearchParams/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'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly config: ClientConfig\n readonly dateFNSKey: Language['dateFNSKey']\n readonly fallbackLang: I18nOptions['fallbackLanguage']\n readonly isNavOpen?: boolean\n readonly languageCode: string\n readonly languageOptions: LanguageOptions\n readonly locale?: Locale['code']\n readonly permissions: SanitizedPermissions\n readonly serverFunction: ServerFunctionClient\n readonly switchLanguageServerAction?: (lang: string) => Promise<void>\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 isNavOpen,\n languageCode,\n languageOptions,\n locale,\n permissions,\n serverFunction,\n switchLanguageServerAction,\n theme,\n translations,\n user,\n}) => {\n const RouteCacheComponent =\n process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === 'true' ? RouteCache : Fragment\n\n return (\n <Fragment>\n <ServerFunctionsProvider serverFunction={serverFunction}>\n <RouteTransitionProvider>\n <RouteCacheComponent>\n <ConfigProvider config={config}>\n <ClientFunctionProvider>\n <TranslationProvider\n dateFNSKey={dateFNSKey}\n fallbackLang={fallbackLang}\n language={languageCode}\n languageOptions={languageOptions}\n switchLanguageServerAction={switchLanguageServerAction}\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 <SearchParamsProvider>\n <ModalProvider classPrefix=\"payload\" transTime={0} zIndex=\"var(--z-modal)\">\n <AuthProvider permissions={permissions} user={user}>\n <PreferencesProvider>\n <ThemeProvider theme={theme}>\n <ParamsProvider>\n <LocaleProvider locale={locale}>\n <StepNavProvider>\n <LoadingOverlayProvider>\n <DocumentEventsProvider>\n <NavProvider initialIsOpen={isNavOpen}>\n {children}\n </NavProvider>\n </DocumentEventsProvider>\n </LoadingOverlayProvider>\n </StepNavProvider>\n </LocaleProvider>\n </ParamsProvider>\n </ThemeProvider>\n </PreferencesProvider>\n <ModalContainer />\n <StayLoggedInModal />\n </AuthProvider>\n </ModalProvider>\n </SearchParamsProvider>\n </ScrollInfoProvider>\n </WindowInfoProvider>\n </TranslationProvider>\n </ClientFunctionProvider>\n </ConfigProvider>\n </RouteCacheComponent>\n </RouteTransitionProvider>\n </ServerFunctionsProvider>\n <ToastContainer />\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAWA,SAASA,cAAc,EAAEC,aAAa,QAAQ;AAC9C,SAASC,kBAAkB,QAAQ;AACnC,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,WAAW,QAAQ;AAC5B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,YAAY,QAAQ;AAC7B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,uBAAuB,QAAQ;AACxC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ;AAmBpC,OAAO,MAAMC,YAAA,GAAgCA,CAAC;EAC5CC,QAAQ;EACRC,MAAM;EACNC,UAAU;EACVC,YAAY;EACZC,SAAS;EACTC,YAAY;EACZC,eAAe;EACfC,MAAM;EACNC,WAAW;EACXC,cAAc;EACdC,0BAA0B;EAC1BC,KAAK;EACLC,YAAY;EACZC;AAAI,CACL;EACC,MAAMC,mBAAA,GACJC,OAAA,CAAQC,GAAG,CAACC,uCAAuC,KAAK,SAASzB,UAAA,GAAab,QAAA;EAEhF,oBACEuC,KAAA,CAACvC,QAAA;4BACCwC,IAAA,CAACxB,uBAAA;MAAwBc,cAAA,EAAgBA,cAAA;gBACvC,aAAAU,IAAA,CAAC1B,uBAAA;kBACC,aAAA0B,IAAA,CAACL,mBAAA;oBACC,aAAAK,IAAA,CAAChC,cAAA;YAAec,MAAA,EAAQA,MAAA;sBACtB,aAAAkB,IAAA,CAACjC,sBAAA;wBACC,aAAAiC,IAAA,CAACrB,mBAAA;gBACCI,UAAA,EAAYA,UAAA;gBACZC,YAAA,EAAcA,YAAA;gBACdiB,QAAA,EAAUf,YAAA;gBACVC,eAAA,EAAiBA,eAAA;gBACjBI,0BAAA,EAA4BA,0BAAA;gBAC5BE,YAAA,EAAcA,YAAA;0BAEd,aAAAO,IAAA,CAACnC,kBAAA;kBACCqC,WAAA,EAAa;oBACXC,CAAA,EAAG;oBACHC,CAAA,EAAG;oBACHC,CAAA,EAAG;oBACHC,EAAA,EAAI;kBACN;4BAEA,aAAAN,IAAA,CAAC1C,kBAAA;8BACC,aAAA0C,IAAA,CAACzB,oBAAA;gCACC,aAAAyB,IAAA,CAAC3C,aAAA;wBAAckD,WAAA,EAAY;wBAAUC,SAAA,EAAW;wBAAGC,MAAA,EAAO;kCACxD,aAAAV,KAAA,CAACjC,YAAA;0BAAauB,WAAA,EAAaA,WAAA;0BAAaK,IAAA,EAAMA,IAAA;kDAC5CM,IAAA,CAAC5B,mBAAA;sCACC,aAAA4B,IAAA,CAACvB,aAAA;8BAAce,KAAA,EAAOA,KAAA;wCACpB,aAAAQ,IAAA,CAAC7B,cAAA;0CACC,aAAA6B,IAAA,CAAC9B,cAAA;kCAAekB,MAAA,EAAQA,MAAA;4CACtB,aAAAY,IAAA,CAACpC,eAAA;8CACC,aAAAoC,IAAA,CAACvC,sBAAA;gDACC,aAAAuC,IAAA,CAAC/B,sBAAA;kDACC,aAAA+B,IAAA,CAACtC,WAAA;0CAAYgD,aAAA,EAAezB,SAAA;oDACzBJ;;;;;;;;2CASjBmB,IAAA,CAAC5C,cAAA,O,aACD4C,IAAA,CAACrC,iBAAA;;;;;;;;;;;qBAYvBqC,IAAA,CAACtB,cAAA;;AAGP","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ /**
4
+ * Renders a progress bar that shows the progress of a route transition.
5
+ * Place this at the root of your application, inside of the `RouteTransitionProvider`.
6
+ * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.
7
+ * @returns A progress bar that shows the progress of a route transition
8
+ * @example
9
+ * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'
10
+ * const App = () => (
11
+ * <RouteTransitionProvider>
12
+ * <ProgressBar />
13
+ * <Link href="/somewhere">Go Somewhere</Link>
14
+ * </RouteTransitionProvider>
15
+ */
16
+ export declare const ProgressBar: () => React.JSX.Element;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAGhD,OAAO,cAAc,CAAA;AAMrB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,yBA4DvB,CAAA"}
@@ -0,0 +1,104 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import React, { useEffect, useRef } from 'react';
6
+ import { useRouteTransition } from '../index.js';
7
+ import './index.scss';
8
+ const transitionDuration = 200;
9
+ const baseClass = 'progress-bar';
10
+ const initialDelay = 150;
11
+ /**
12
+ * Renders a progress bar that shows the progress of a route transition.
13
+ * Place this at the root of your application, inside of the `RouteTransitionProvider`.
14
+ * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.
15
+ * @returns A progress bar that shows the progress of a route transition
16
+ * @example
17
+ * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'
18
+ * const App = () => (
19
+ * <RouteTransitionProvider>
20
+ * <ProgressBar />
21
+ * <Link href="/somewhere">Go Somewhere</Link>
22
+ * </RouteTransitionProvider>
23
+ */
24
+ export const ProgressBar = () => {
25
+ const $ = _c(9);
26
+ const {
27
+ isTransitioning,
28
+ transitionProgress
29
+ } = useRouteTransition();
30
+ const [progressToShow, setProgressToShow] = React.useState(null);
31
+ const shouldDelayProgress = useRef(true);
32
+ let t0;
33
+ let t1;
34
+ if ($[0] !== isTransitioning || $[1] !== transitionProgress) {
35
+ t0 = () => {
36
+ let clearTimerID;
37
+ let delayTimerID;
38
+ if (isTransitioning) {
39
+ if (shouldDelayProgress.current) {
40
+ delayTimerID = setTimeout(() => {
41
+ setProgressToShow(transitionProgress);
42
+ shouldDelayProgress.current = false;
43
+ }, initialDelay);
44
+ } else {
45
+ setProgressToShow(transitionProgress);
46
+ }
47
+ } else {
48
+ shouldDelayProgress.current = true;
49
+ setProgressToShow(1);
50
+ clearTimerID = setTimeout(() => {
51
+ setProgressToShow(null);
52
+ }, transitionDuration * 2);
53
+ }
54
+ return () => {
55
+ clearTimeout(clearTimerID);
56
+ clearTimeout(delayTimerID);
57
+ };
58
+ };
59
+ t1 = [isTransitioning, transitionProgress];
60
+ $[0] = isTransitioning;
61
+ $[1] = transitionProgress;
62
+ $[2] = t0;
63
+ $[3] = t1;
64
+ } else {
65
+ t0 = $[2];
66
+ t1 = $[3];
67
+ }
68
+ useEffect(t0, t1);
69
+ if (typeof progressToShow === "number") {
70
+ const t2 = progressToShow === 1 && `${baseClass}--fade-out`;
71
+ let t3;
72
+ if ($[4] !== t2) {
73
+ t3 = [baseClass, t2].filter(Boolean);
74
+ $[4] = t2;
75
+ $[5] = t3;
76
+ } else {
77
+ t3 = $[5];
78
+ }
79
+ const t4 = t3.join(" ");
80
+ let t5;
81
+ if ($[6] !== progressToShow || $[7] !== t4) {
82
+ t5 = _jsx("div", {
83
+ className: t4,
84
+ style: {
85
+ "--transition-duration": `${transitionDuration}ms`
86
+ },
87
+ children: _jsx("div", {
88
+ className: `${baseClass}__progress`,
89
+ style: {
90
+ width: `${(progressToShow || 0) * 100}%`
91
+ }
92
+ })
93
+ });
94
+ $[6] = progressToShow;
95
+ $[7] = t4;
96
+ $[8] = t5;
97
+ } else {
98
+ t5 = $[8];
99
+ }
100
+ return t5;
101
+ }
102
+ return null;
103
+ };
104
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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.scss'\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":[]}
@@ -0,0 +1,21 @@
1
+ .progress-bar {
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ width: 100%;
6
+ height: 2px;
7
+ z-index: 9999;
8
+ opacity: 1;
9
+
10
+ &__progress {
11
+ height: 100%;
12
+ background-color: var(--theme-elevation-1000);
13
+ transition: width ease-in var(--transition-duration);
14
+ }
15
+
16
+ &--fade-out {
17
+ opacity: 0;
18
+ transition: opacity linear var(--transition-duration);
19
+ transition-delay: var(--transition-duration);
20
+ }
21
+ }
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ /**
3
+ * 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.
4
+ * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.
5
+ * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,
6
+ * or wrap a callback function with the `startRouteTransition` method.
7
+ * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.
8
+ * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.
9
+ * @example
10
+ * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'
11
+ * const App = () => (
12
+ * <RouteTransitionProvider>
13
+ * <ProgressBar />
14
+ * <Link href="/somewhere">Go Somewhere</Link>
15
+ * </RouteTransitionProvider>
16
+ * )
17
+ */
18
+ export declare const RouteTransitionProvider: React.FC<RouteTransitionProps>;
19
+ type RouteTransitionProps = {
20
+ children: React.ReactNode;
21
+ };
22
+ type StartRouteTransition = (callback?: () => void) => void;
23
+ type RouteTransitionContextValue = {
24
+ isTransitioning: boolean;
25
+ startRouteTransition: StartRouteTransition;
26
+ transitionProgress: number;
27
+ };
28
+ /**
29
+ * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.
30
+ * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.
31
+ * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.
32
+ * @example
33
+ * 'use client'
34
+ * import React, { useCallback } from 'react'
35
+ * import { useTransition } from '@payloadcms/ui'
36
+ * import { useRouter } from 'next/navigation'
37
+ *
38
+ * const MyComponent: React.FC = () => {
39
+ * const router = useRouter()
40
+ * const { startRouteTransition } = useRouteTransition()
41
+ *
42
+ * const redirectSomewhere = useCallback(() => {
43
+ * startRouteTransition(() => router.push('/somewhere'))
44
+ * }, [startRouteTransition, router])
45
+ *
46
+ * // ...
47
+ * }
48
+ */
49
+ export declare const useRouteTransition: () => RouteTransitionContextValue;
50
+ export {};
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,CA+DlE,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;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,mCAAiD,CAAA"}
@@ -0,0 +1,133 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react';
6
+ /**
7
+ * 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.
8
+ * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.
9
+ * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,
10
+ * or wrap a callback function with the `startRouteTransition` method.
11
+ * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.
12
+ * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.
13
+ * @example
14
+ * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'
15
+ * const App = () => (
16
+ * <RouteTransitionProvider>
17
+ * <ProgressBar />
18
+ * <Link href="/somewhere">Go Somewhere</Link>
19
+ * </RouteTransitionProvider>
20
+ * )
21
+ */
22
+ export const RouteTransitionProvider = t0 => {
23
+ const $ = _c(11);
24
+ const {
25
+ children
26
+ } = t0;
27
+ const [isTransitioning, setIsTransitioning] = useOptimistic(false);
28
+ const [transitionProgress, setTransitionProgress] = React.useState(0);
29
+ const transitionProgressRef = useRef(transitionProgress);
30
+ const timerID = useRef(null);
31
+ let t1;
32
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
33
+ t1 = () => {
34
+ timerID.current = setInterval(() => {
35
+ const newProgress = transitionProgressRef.current + (0.93 - transitionProgressRef.current) * Math.random() * 0.2 * Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * 0.75), 0.75);
36
+ setTransitionProgress(newProgress);
37
+ transitionProgressRef.current = newProgress;
38
+ }, 250);
39
+ };
40
+ $[0] = t1;
41
+ } else {
42
+ t1 = $[0];
43
+ }
44
+ const initiateProgress = t1;
45
+ let t2;
46
+ let t3;
47
+ if ($[1] !== isTransitioning) {
48
+ t2 = () => {
49
+ setTransitionProgress(0);
50
+ transitionProgressRef.current = 0;
51
+ if (isTransitioning) {
52
+ initiateProgress();
53
+ } else {
54
+ if (timerID.current) {
55
+ clearInterval(timerID.current);
56
+ }
57
+ }
58
+ };
59
+ t3 = [isTransitioning, initiateProgress];
60
+ $[1] = isTransitioning;
61
+ $[2] = t2;
62
+ $[3] = t3;
63
+ } else {
64
+ t2 = $[2];
65
+ t3 = $[3];
66
+ }
67
+ useEffect(t2, t3);
68
+ let t4;
69
+ if ($[4] !== setIsTransitioning) {
70
+ t4 = callback => {
71
+ startTransition(() => {
72
+ setIsTransitioning(true);
73
+ if (typeof callback === "function") {
74
+ callback();
75
+ }
76
+ });
77
+ };
78
+ $[4] = setIsTransitioning;
79
+ $[5] = t4;
80
+ } else {
81
+ t4 = $[5];
82
+ }
83
+ const startRouteTransition = t4;
84
+ let t5;
85
+ if ($[6] !== children || $[7] !== isTransitioning || $[8] !== startRouteTransition || $[9] !== transitionProgress) {
86
+ t5 = _jsx(RouteTransitionContext.Provider, {
87
+ value: {
88
+ isTransitioning,
89
+ startRouteTransition,
90
+ transitionProgress
91
+ },
92
+ children
93
+ });
94
+ $[6] = children;
95
+ $[7] = isTransitioning;
96
+ $[8] = startRouteTransition;
97
+ $[9] = transitionProgress;
98
+ $[10] = t5;
99
+ } else {
100
+ t5 = $[10];
101
+ }
102
+ return t5;
103
+ };
104
+ const RouteTransitionContext = /*#__PURE__*/React.createContext({
105
+ isTransitioning: false,
106
+ startRouteTransition: () => undefined,
107
+ transitionProgress: 0
108
+ });
109
+ /**
110
+ * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.
111
+ * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.
112
+ * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.
113
+ * @example
114
+ * 'use client'
115
+ * import React, { useCallback } from 'react'
116
+ * import { useTransition } from '@payloadcms/ui'
117
+ * import { useRouter } from 'next/navigation'
118
+ *
119
+ * const MyComponent: React.FC = () => {
120
+ * const router = useRouter()
121
+ * const { startRouteTransition } = useRouteTransition()
122
+ *
123
+ * const redirectSomewhere = useCallback(() => {
124
+ * startRouteTransition(() => router.push('/somewhere'))
125
+ * }, [startRouteTransition, router])
126
+ *
127
+ * // ...
128
+ * }
129
+ */
130
+ export const useRouteTransition = () => {
131
+ return React.useContext(RouteTransitionContext);
132
+ };
133
+ //# sourceMappingURL=index.js.map