@payloadcms/ui 4.0.0-internal.e55ccef → 4.0.0-internal.f11981a

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 (361) hide show
  1. package/dist/css/app.css +121 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/spacing.css +11 -3
  4. package/dist/css/z-index.css +1 -0
  5. package/dist/elements/AddNewRelation/index.css +0 -1
  6. package/dist/elements/AppHeader/index.css +0 -3
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +5 -1
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/ArrayAction/index.d.ts +2 -0
  11. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +65 -24
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  15. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  16. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  17. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  18. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  19. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  20. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  21. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  22. package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
  23. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  24. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  25. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  26. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  27. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  28. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  29. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  30. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  31. package/dist/elements/ClipboardAction/index.js +17 -1
  32. package/dist/elements/ClipboardAction/index.js.map +1 -1
  33. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  34. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  35. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  36. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  37. package/dist/elements/ClipboardAction/types.js.map +1 -1
  38. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  39. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  40. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  41. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  42. package/dist/elements/CodeEditor/index.css +0 -5
  43. package/dist/elements/CommandPalette/index.css +0 -7
  44. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  45. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  46. package/dist/elements/CopyToClipboard/index.js +10 -8
  47. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  48. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  49. package/dist/elements/CreateDocumentButton/index.js +4 -1
  50. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  51. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  52. package/dist/elements/DatePicker/DatePicker.js +1 -0
  53. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  54. package/dist/elements/DatePicker/index.css +1 -1
  55. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  56. package/dist/elements/DeleteDocument/index.js +16 -1
  57. package/dist/elements/DeleteDocument/index.js.map +1 -1
  58. package/dist/elements/EditMany/DrawerContent.js +2 -2
  59. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  60. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  61. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  62. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  63. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  64. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  65. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  66. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  67. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  68. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  69. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  70. package/dist/elements/FileManager/index.css +36 -23
  71. package/dist/elements/FileManager/index.d.ts +1 -1
  72. package/dist/elements/FileManager/index.d.ts.map +1 -1
  73. package/dist/elements/FileManager/index.js +15 -4
  74. package/dist/elements/FileManager/index.js.map +1 -1
  75. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  76. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  77. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  78. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  79. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  80. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  81. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  82. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  83. package/dist/elements/InputStepper/index.css +0 -1
  84. package/dist/elements/Locked/index.css +0 -8
  85. package/dist/elements/Locked/index.d.ts.map +1 -1
  86. package/dist/elements/Locked/index.js +70 -64
  87. package/dist/elements/Locked/index.js.map +1 -1
  88. package/dist/elements/MiniCarousel/index.css +39 -37
  89. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  90. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  91. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  92. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  93. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  94. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  95. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  96. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  97. package/dist/elements/NavGroup/index.css +0 -1
  98. package/dist/elements/PreviewButton/index.d.ts +1 -2
  99. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  100. package/dist/elements/PreviewButton/index.js +11 -5
  101. package/dist/elements/PreviewButton/index.js.map +1 -1
  102. package/dist/elements/PreviewSizes/index.css +8 -9
  103. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  104. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  105. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  106. package/dist/elements/ReactSelect/index.css +0 -3
  107. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  108. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  109. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  110. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  111. package/dist/elements/RelationshipTable/index.css +0 -2
  112. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  113. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  114. package/dist/elements/RelationshipTable/index.js +36 -3
  115. package/dist/elements/RelationshipTable/index.js.map +1 -1
  116. package/dist/elements/RenderTitle/index.css +4 -0
  117. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  118. package/dist/elements/RenderTitle/index.js +18 -13
  119. package/dist/elements/RenderTitle/index.js.map +1 -1
  120. package/dist/elements/SelectRow/index.d.ts +4 -3
  121. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  122. package/dist/elements/SelectRow/index.js +10 -7
  123. package/dist/elements/SelectRow/index.js.map +1 -1
  124. package/dist/elements/SidebarToggle/index.css +0 -17
  125. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  126. package/dist/elements/SortColumn/index.js +42 -38
  127. package/dist/elements/SortColumn/index.js.map +1 -1
  128. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  129. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  130. package/dist/elements/Table/OrderableRow.js +17 -1
  131. package/dist/elements/Table/OrderableRow.js.map +1 -1
  132. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  133. package/dist/elements/Table/OrderableTable.js +19 -2
  134. package/dist/elements/Table/OrderableTable.js.map +1 -1
  135. package/dist/elements/Table/index.css +1 -0
  136. package/dist/elements/TableSection/index.css +0 -1
  137. package/dist/elements/Thumbnail/index.d.ts +1 -1
  138. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  139. package/dist/elements/Thumbnail/index.js.map +1 -1
  140. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  141. package/dist/elements/TimezonePicker/index.js +5 -1
  142. package/dist/elements/TimezonePicker/index.js.map +1 -1
  143. package/dist/elements/Tooltip/index.css +15 -34
  144. package/dist/elements/Tooltip/index.d.ts +11 -3
  145. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  146. package/dist/elements/Tooltip/index.js +151 -85
  147. package/dist/elements/Tooltip/index.js.map +1 -1
  148. package/dist/elements/Upload/index.css +0 -5
  149. package/dist/exports/client/index.d.ts +5 -1
  150. package/dist/exports/client/index.d.ts.map +1 -1
  151. package/dist/exports/client/index.js +1 -1
  152. package/dist/exports/client/index.js.map +3 -3
  153. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  154. package/dist/fields/Array/ArrayRow.js +97 -160
  155. package/dist/fields/Array/ArrayRow.js.map +1 -1
  156. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  157. package/dist/fields/Blocks/BlockRow.js +134 -195
  158. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  159. package/dist/fields/Blocks/RowActions.d.ts +2 -0
  160. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  161. package/dist/fields/Blocks/RowActions.js +23 -20
  162. package/dist/fields/Blocks/RowActions.js.map +1 -1
  163. package/dist/fields/Blocks/index.js +3 -3
  164. package/dist/fields/Blocks/index.js.map +1 -1
  165. package/dist/fields/Checkbox/Input.d.ts +2 -0
  166. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  167. package/dist/fields/Checkbox/Input.js +32 -26
  168. package/dist/fields/Checkbox/Input.js.map +1 -1
  169. package/dist/fields/Checkbox/index.css +37 -73
  170. package/dist/fields/FieldError/index.css +0 -9
  171. package/dist/fields/FieldError/index.d.ts.map +1 -1
  172. package/dist/fields/FieldError/index.js +19 -9
  173. package/dist/fields/FieldError/index.js.map +1 -1
  174. package/dist/fields/Join/index.css +9 -0
  175. package/dist/fields/Join/index.d.ts.map +1 -1
  176. package/dist/fields/Join/index.js +13 -9
  177. package/dist/fields/Join/index.js.map +1 -1
  178. package/dist/fields/RadioGroup/index.css +0 -7
  179. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  180. package/dist/fields/Relationship/Input.js +32 -14
  181. package/dist/fields/Relationship/Input.js.map +1 -1
  182. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  183. package/dist/fields/Slug/index.css +0 -1
  184. package/dist/fields/Slug/index.d.ts.map +1 -1
  185. package/dist/fields/Slug/index.js +75 -111
  186. package/dist/fields/Slug/index.js.map +1 -1
  187. package/dist/fields/Upload/index.css +19 -4
  188. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  189. package/dist/forms/Form/fieldReducer.js +3 -1
  190. package/dist/forms/Form/fieldReducer.js.map +1 -1
  191. package/dist/forms/Form/index.d.ts.map +1 -1
  192. package/dist/forms/Form/index.js +12 -15
  193. package/dist/forms/Form/index.js.map +1 -1
  194. package/dist/forms/Form/types.d.ts +1 -1
  195. package/dist/forms/Form/types.d.ts.map +1 -1
  196. package/dist/forms/Form/types.js.map +1 -1
  197. package/dist/forms/RenderFields/index.css +16 -2
  198. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  199. package/dist/forms/WatchChildErrors/index.js +2 -2
  200. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  201. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  202. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  203. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  204. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  205. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  206. package/dist/layouts/Root/index.d.ts +1 -1
  207. package/dist/layouts/Root/index.d.ts.map +1 -1
  208. package/dist/layouts/Root/index.js +8 -2
  209. package/dist/layouts/Root/index.js.map +1 -1
  210. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  211. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  212. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  213. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  214. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  215. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  216. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  217. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  218. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  219. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  220. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  221. package/dist/providers/Auth/authSessionRequests.js +119 -0
  222. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  223. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  224. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  225. package/dist/providers/Auth/index.d.ts +2 -56
  226. package/dist/providers/Auth/index.d.ts.map +1 -1
  227. package/dist/providers/Auth/index.js +283 -135
  228. package/dist/providers/Auth/index.js.map +1 -1
  229. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  230. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  231. package/dist/providers/Auth/sessionActivity.js +49 -0
  232. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  233. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  234. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  235. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  236. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  237. package/dist/providers/Auth/sessionTiming.js +18 -0
  238. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  239. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  240. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  241. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  242. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  243. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  244. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  245. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  246. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  247. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  248. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  249. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  250. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  251. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  252. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  253. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  254. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  255. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  256. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  257. package/dist/providers/Auth/types.d.ts +66 -0
  258. package/dist/providers/Auth/types.d.ts.map +1 -0
  259. package/dist/providers/Auth/types.js +2 -0
  260. package/dist/providers/Auth/types.js.map +1 -0
  261. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  262. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  263. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  264. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  265. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  266. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  267. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  268. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  269. package/dist/providers/DocumentTitle/index.js +2 -0
  270. package/dist/providers/DocumentTitle/index.js.map +1 -1
  271. package/dist/providers/Embed/index.d.ts +24 -0
  272. package/dist/providers/Embed/index.d.ts.map +1 -0
  273. package/dist/providers/Embed/index.js +105 -0
  274. package/dist/providers/Embed/index.js.map +1 -0
  275. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  276. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  277. package/dist/providers/FormErrorHandler/index.js +6 -0
  278. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  279. package/dist/providers/Root/index.d.ts +1 -0
  280. package/dist/providers/Root/index.d.ts.map +1 -1
  281. package/dist/providers/Root/index.js +37 -31
  282. package/dist/providers/Root/index.js.map +1 -1
  283. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  284. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  285. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  286. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  287. package/dist/providers/RouteTransition/index.d.ts +2 -0
  288. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  289. package/dist/providers/RouteTransition/index.js +42 -14
  290. package/dist/providers/RouteTransition/index.js.map +1 -1
  291. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  292. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  293. package/dist/providers/SidebarTabs/index.js.map +1 -1
  294. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  295. package/dist/providers/TableColumns/buildColumnState/index.js +1 -1
  296. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  297. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  298. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  299. package/dist/providers/Theme/index.d.ts +3 -0
  300. package/dist/providers/Theme/index.d.ts.map +1 -1
  301. package/dist/providers/Theme/index.js +107 -95
  302. package/dist/providers/Theme/index.js.map +1 -1
  303. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  304. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  305. package/dist/providers/UploadHandlers/index.js +102 -42
  306. package/dist/providers/UploadHandlers/index.js.map +1 -1
  307. package/dist/styles.css +13 -10
  308. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  309. package/dist/utilities/combineFieldLabel.js +5 -1
  310. package/dist/utilities/combineFieldLabel.js.map +1 -1
  311. package/dist/utilities/generateFieldID.d.ts +1 -1
  312. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  313. package/dist/utilities/generateFieldID.js +2 -2
  314. package/dist/utilities/generateFieldID.js.map +1 -1
  315. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  316. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  317. package/dist/utilities/getRequestEmbed.js +10 -0
  318. package/dist/utilities/getRequestEmbed.js.map +1 -0
  319. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  320. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  321. package/dist/utilities/handleServerFunctions.js +17 -37
  322. package/dist/utilities/handleServerFunctions.js.map +1 -1
  323. package/dist/utilities/renderTable.d.ts.map +1 -1
  324. package/dist/utilities/renderTable.js +18 -2
  325. package/dist/utilities/renderTable.js.map +1 -1
  326. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  327. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  328. package/dist/utilities/serverFunctionRegistry.js +25 -7
  329. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  330. package/dist/utilities/slugify.d.ts.map +1 -1
  331. package/dist/utilities/slugify.js +49 -6
  332. package/dist/utilities/slugify.js.map +1 -1
  333. package/dist/views/Dashboard/Default/ModularDashboard/index.css +0 -8
  334. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  335. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  336. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  337. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  338. package/dist/views/Edit/index.css +61 -53
  339. package/dist/views/HierarchyList/index.css +1 -1
  340. package/dist/views/List/index.css +1 -1
  341. package/dist/views/List/index.d.ts.map +1 -1
  342. package/dist/views/List/index.js +4 -0
  343. package/dist/views/List/index.js.map +1 -1
  344. package/dist/views/Logout/index.d.ts.map +1 -1
  345. package/dist/views/Logout/index.js +11 -0
  346. package/dist/views/Logout/index.js.map +1 -1
  347. package/dist/views/Root/index.d.ts +12 -1
  348. package/dist/views/Root/index.d.ts.map +1 -1
  349. package/dist/views/Root/index.js +10 -3
  350. package/dist/views/Root/index.js.map +1 -1
  351. package/package.json +6 -11
  352. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  353. package/dist/scss/app.scss +0 -183
  354. package/dist/scss/colors.scss +0 -191
  355. package/dist/scss/custom.css +0 -1
  356. package/dist/scss/queries.scss +0 -27
  357. package/dist/scss/styles.scss +0 -9
  358. package/dist/scss/svg.scss +0 -10
  359. package/dist/scss/toastify.scss +0 -61
  360. package/dist/scss/vars.scss +0 -192
  361. package/dist/scss/z-index.scss +0 -9
@@ -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,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,EACL,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAyB9C,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,gBAAgB,EAAE,OAAO,CAAA;IAClC,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,aAAa,EAAE,sBAAsB,CAAA;IAC9C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,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,CA2FxC,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,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,EACL,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AA0B9C,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,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACtD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,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,aAAa,EAAE,sBAAsB,CAAA;IAC9C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,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,CA8FxC,CAAA"}
@@ -18,6 +18,7 @@ import { AuthProvider } from '../Auth/index.js';
18
18
  import { ClientFunctionProvider } from '../ClientFunction/index.js';
19
19
  import { ConfigProvider } from '../Config/index.js';
20
20
  import { DocumentEventsProvider } from '../DocumentEvents/index.js';
21
+ import { EmbedProvider } from '../Embed/index.js';
21
22
  import { HierarchyProvider } from '../Hierarchy/index.js';
22
23
  import { LocaleProvider } from '../Locale/index.js';
23
24
  import { PreferencesProvider } from '../Preferences/index.js';
@@ -29,11 +30,12 @@ import { ToastContainer } from '../ToastContainer/index.js';
29
30
  import { TranslationProvider } from '../Translation/index.js';
30
31
  import { UploadHandlersProvider } from '../UploadHandlers/index.js';
31
32
  export const RootProvider = t0 => {
32
- const $ = _c(17);
33
+ const $ = _c(18);
33
34
  const {
34
35
  children,
35
36
  config,
36
37
  dateFNSKey,
38
+ embed,
37
39
  fallbackLang,
38
40
  highContrastMode,
39
41
  isNavOpen,
@@ -49,12 +51,12 @@ export const RootProvider = t0 => {
49
51
  } = t0;
50
52
  const dndContextID = React.useId();
51
53
  let t1;
52
- if ($[0] !== RouterAdapter || $[1] !== children || $[2] !== config || $[3] !== dateFNSKey || $[4] !== dndContextID || $[5] !== fallbackLang || $[6] !== highContrastMode || $[7] !== isNavOpen || $[8] !== languageCode || $[9] !== languageOptions || $[10] !== locale || $[11] !== permissions || $[12] !== serverFunction || $[13] !== theme || $[14] !== translations || $[15] !== user) {
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) {
53
55
  t1 = _jsxs(ClickOutsideProvider, {
54
- children: [_jsx(RouterAdapter, {
55
- children: _jsx(ServerFunctionsProvider, {
56
- serverFunction,
57
- children: _jsx(RouteTransitionProvider, {
56
+ children: [_jsx(RouteTransitionProvider, {
57
+ children: _jsx(RouterAdapter, {
58
+ children: _jsx(ServerFunctionsProvider, {
59
+ serverFunction,
58
60
  children: _jsx(RouteCache, {
59
61
  cachingEnabled: process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === "true",
60
62
  children: _jsx(ConfigProvider, {
@@ -87,18 +89,21 @@ export const RootProvider = t0 => {
87
89
  children: _jsx(ThemeProvider, {
88
90
  highContrastMode,
89
91
  theme,
90
- children: _jsx(LocaleProvider, {
91
- locale,
92
- children: _jsx(StepNavProvider, {
93
- children: _jsx(LoadingOverlayProvider, {
94
- children: _jsx(DocumentEventsProvider, {
95
- children: _jsx(NavProvider, {
96
- initialIsOpen: isNavOpen,
97
- children: _jsx(UploadHandlersProvider, {
98
- children: _jsx(DndContext, {
99
- collisionDetection: pointerWithin,
100
- id: dndContextID,
101
- children
92
+ children: _jsx(EmbedProvider, {
93
+ embed,
94
+ children: _jsx(LocaleProvider, {
95
+ locale,
96
+ children: _jsx(StepNavProvider, {
97
+ children: _jsx(LoadingOverlayProvider, {
98
+ children: _jsx(DocumentEventsProvider, {
99
+ children: _jsx(NavProvider, {
100
+ initialIsOpen: isNavOpen,
101
+ children: _jsx(UploadHandlersProvider, {
102
+ children: _jsx(DndContext, {
103
+ collisionDetection: pointerWithin,
104
+ id: dndContextID,
105
+ children
106
+ })
102
107
  })
103
108
  })
104
109
  })
@@ -129,20 +134,21 @@ export const RootProvider = t0 => {
129
134
  $[2] = config;
130
135
  $[3] = dateFNSKey;
131
136
  $[4] = dndContextID;
132
- $[5] = fallbackLang;
133
- $[6] = highContrastMode;
134
- $[7] = isNavOpen;
135
- $[8] = languageCode;
136
- $[9] = languageOptions;
137
- $[10] = locale;
138
- $[11] = permissions;
139
- $[12] = serverFunction;
140
- $[13] = theme;
141
- $[14] = translations;
142
- $[15] = user;
143
- $[16] = t1;
137
+ $[5] = embed;
138
+ $[6] = fallbackLang;
139
+ $[7] = highContrastMode;
140
+ $[8] = isNavOpen;
141
+ $[9] = languageCode;
142
+ $[10] = languageOptions;
143
+ $[11] = locale;
144
+ $[12] = permissions;
145
+ $[13] = serverFunction;
146
+ $[14] = theme;
147
+ $[15] = translations;
148
+ $[16] = user;
149
+ $[17] = t1;
144
150
  } else {
145
- t1 = $[16];
151
+ t1 = $[17];
146
152
  }
147
153
  return t1;
148
154
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","DndContext","pointerWithin","ModalContainer","ModalProvider","ScrollInfoProvider","React","CloseModalOnRouteChange","DrawerStackProvider","LoadingOverlayProvider","NavProvider","StayLoggedInModal","StepNavProvider","ClickOutsideProvider","WindowInfoProvider","AuthProvider","ClientFunctionProvider","ConfigProvider","DocumentEventsProvider","HierarchyProvider","LocaleProvider","PreferencesProvider","RouteCache","RouteTransitionProvider","ServerFunctionsProvider","ThemeProvider","ToastContainer","TranslationProvider","UploadHandlersProvider","RootProvider","t0","$","children","config","dateFNSKey","fallbackLang","highContrastMode","isNavOpen","languageCode","languageOptions","locale","permissions","RouterAdapter","serverFunction","theme","translations","user","dndContextID","useId","t1","_jsxs","_jsx","cachingEnabled","process","env","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","language","breakpoints","l","m","s","xs","classPrefix","transTime","zIndex","initialIsOpen","collisionDetection","id"],"sources":["../../../src/providers/Root/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient, I18nOptions, Language } from '@payloadcms/translations'\nimport type {\n ClientConfig,\n LanguageOptions,\n Locale,\n RouterAdapterComponent,\n SanitizedPermissions,\n ServerFunctionClient,\n User,\n} from 'payload'\n\nimport { DndContext, pointerWithin } from '@dnd-kit/core'\nimport { ModalContainer, ModalProvider } from '@faceless-ui/modal'\nimport { ScrollInfoProvider } from '@faceless-ui/scroll-info'\nimport React from 'react'\n\nimport type { Theme } from '../Theme/index.js'\n\nimport { CloseModalOnRouteChange } from '../../elements/CloseModalOnRouteChange/index.js'\nimport { DrawerStackProvider } from '../../elements/Drawer/index.js'\nimport { LoadingOverlayProvider } from '../../elements/LoadingOverlay/index.js'\nimport { NavProvider } from '../../elements/Nav/context.js'\nimport { StayLoggedInModal } from '../../elements/StayLoggedIn/index.js'\nimport { StepNavProvider } from '../../elements/StepNav/index.js'\nimport { ClickOutsideProvider } from '../../providers/ClickOutside/index.js'\nimport { WindowInfoProvider } from '../../providers/WindowInfo/index.js'\nimport { AuthProvider } from '../Auth/index.js'\nimport { ClientFunctionProvider } from '../ClientFunction/index.js'\nimport { ConfigProvider } from '../Config/index.js'\nimport { DocumentEventsProvider } from '../DocumentEvents/index.js'\nimport { HierarchyProvider } from '../Hierarchy/index.js'\nimport { LocaleProvider } from '../Locale/index.js'\nimport { PreferencesProvider } from '../Preferences/index.js'\nimport { RouteCache } from '../RouteCache/index.js'\nimport { RouteTransitionProvider } from '../RouteTransition/index.js'\nimport { ServerFunctionsProvider } from '../ServerFunctions/index.js'\nimport { ThemeProvider } from '../Theme/index.js'\nimport { ToastContainer } from '../ToastContainer/index.js'\nimport { TranslationProvider } from '../Translation/index.js'\nimport { UploadHandlersProvider } from '../UploadHandlers/index.js'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly config: ClientConfig\n readonly dateFNSKey: Language['dateFNSKey']\n readonly fallbackLang: I18nOptions['fallbackLanguage']\n readonly highContrastMode: boolean\n readonly isNavOpen?: boolean\n readonly languageCode: string\n readonly languageOptions: LanguageOptions\n readonly locale?: Locale['code']\n readonly permissions: SanitizedPermissions\n readonly RouterAdapter: RouterAdapterComponent\n readonly serverFunction: ServerFunctionClient\n readonly theme: Theme\n readonly translations: I18nClient['translations']\n readonly user: null | User\n}\n\nexport const RootProvider: React.FC<Props> = ({\n children,\n config,\n dateFNSKey,\n fallbackLang,\n highContrastMode,\n isNavOpen,\n languageCode,\n languageOptions,\n locale,\n permissions,\n RouterAdapter,\n serverFunction,\n theme,\n translations,\n user,\n}) => {\n const dndContextID = React.useId()\n\n return (\n <ClickOutsideProvider>\n <RouterAdapter>\n <ServerFunctionsProvider serverFunction={serverFunction}>\n <RouteTransitionProvider>\n <RouteCache\n cachingEnabled={process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === 'true'}\n >\n <ConfigProvider config={config}>\n <ClientFunctionProvider>\n <TranslationProvider\n dateFNSKey={dateFNSKey}\n fallbackLang={fallbackLang}\n language={languageCode}\n languageOptions={languageOptions}\n translations={translations}\n >\n <WindowInfoProvider\n breakpoints={{\n l: '(max-width: 1440px)',\n m: '(max-width: 1024px)',\n s: '(max-width: 768px)',\n xs: '(max-width: 400px)',\n }}\n >\n <ScrollInfoProvider>\n <ModalProvider classPrefix=\"payload\" transTime={0} zIndex=\"var(--z-modal)\">\n <DrawerStackProvider>\n <CloseModalOnRouteChange />\n <AuthProvider permissions={permissions} user={user}>\n <PreferencesProvider>\n <HierarchyProvider>\n <ThemeProvider highContrastMode={highContrastMode} theme={theme}>\n <LocaleProvider locale={locale}>\n <StepNavProvider>\n <LoadingOverlayProvider>\n <DocumentEventsProvider>\n <NavProvider initialIsOpen={isNavOpen}>\n <UploadHandlersProvider>\n <DndContext\n collisionDetection={pointerWithin}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n >\n {children}\n </DndContext>\n </UploadHandlersProvider>\n </NavProvider>\n </DocumentEventsProvider>\n </LoadingOverlayProvider>\n </StepNavProvider>\n </LocaleProvider>\n </ThemeProvider>\n </HierarchyProvider>\n </PreferencesProvider>\n <ModalContainer />\n <StayLoggedInModal />\n </AuthProvider>\n </DrawerStackProvider>\n </ModalProvider>\n </ScrollInfoProvider>\n </WindowInfoProvider>\n </TranslationProvider>\n </ClientFunctionProvider>\n </ConfigProvider>\n </RouteCache>\n </RouteTransitionProvider>\n </ServerFunctionsProvider>\n </RouterAdapter>\n <ToastContainer config={config} />\n </ClickOutsideProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","DndContext","pointerWithin","ModalContainer","ModalProvider","ScrollInfoProvider","React","CloseModalOnRouteChange","DrawerStackProvider","LoadingOverlayProvider","NavProvider","StayLoggedInModal","StepNavProvider","ClickOutsideProvider","WindowInfoProvider","AuthProvider","ClientFunctionProvider","ConfigProvider","DocumentEventsProvider","EmbedProvider","HierarchyProvider","LocaleProvider","PreferencesProvider","RouteCache","RouteTransitionProvider","ServerFunctionsProvider","ThemeProvider","ToastContainer","TranslationProvider","UploadHandlersProvider","RootProvider","t0","$","children","config","dateFNSKey","embed","fallbackLang","highContrastMode","isNavOpen","languageCode","languageOptions","locale","permissions","RouterAdapter","serverFunction","theme","translations","user","dndContextID","useId","t1","_jsxs","_jsx","cachingEnabled","process","env","NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH","language","breakpoints","l","m","s","xs","classPrefix","transTime","zIndex","initialIsOpen","collisionDetection","id"],"sources":["../../../src/providers/Root/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient, I18nOptions, Language } from '@payloadcms/translations'\nimport type {\n ClientConfig,\n LanguageOptions,\n Locale,\n RouterAdapterComponent,\n SanitizedPermissions,\n ServerFunctionClient,\n User,\n} from 'payload'\n\nimport { DndContext, pointerWithin } from '@dnd-kit/core'\nimport { ModalContainer, ModalProvider } from '@faceless-ui/modal'\nimport { ScrollInfoProvider } from '@faceless-ui/scroll-info'\nimport React from 'react'\n\nimport type { Theme } from '../Theme/index.js'\n\nimport { CloseModalOnRouteChange } from '../../elements/CloseModalOnRouteChange/index.js'\nimport { DrawerStackProvider } from '../../elements/Drawer/index.js'\nimport { LoadingOverlayProvider } from '../../elements/LoadingOverlay/index.js'\nimport { NavProvider } from '../../elements/Nav/context.js'\nimport { StayLoggedInModal } from '../../elements/StayLoggedIn/index.js'\nimport { StepNavProvider } from '../../elements/StepNav/index.js'\nimport { ClickOutsideProvider } from '../../providers/ClickOutside/index.js'\nimport { WindowInfoProvider } from '../../providers/WindowInfo/index.js'\nimport { AuthProvider } from '../Auth/index.js'\nimport { ClientFunctionProvider } from '../ClientFunction/index.js'\nimport { ConfigProvider } from '../Config/index.js'\nimport { DocumentEventsProvider } from '../DocumentEvents/index.js'\nimport { EmbedProvider } from '../Embed/index.js'\nimport { HierarchyProvider } from '../Hierarchy/index.js'\nimport { LocaleProvider } from '../Locale/index.js'\nimport { PreferencesProvider } from '../Preferences/index.js'\nimport { RouteCache } from '../RouteCache/index.js'\nimport { RouteTransitionProvider } from '../RouteTransition/index.js'\nimport { ServerFunctionsProvider } from '../ServerFunctions/index.js'\nimport { ThemeProvider } from '../Theme/index.js'\nimport { ToastContainer } from '../ToastContainer/index.js'\nimport { TranslationProvider } from '../Translation/index.js'\nimport { UploadHandlersProvider } from '../UploadHandlers/index.js'\n\ntype Props = {\n readonly children: React.ReactNode\n readonly config: ClientConfig\n readonly dateFNSKey: Language['dateFNSKey']\n readonly embed?: boolean\n readonly fallbackLang: I18nOptions['fallbackLanguage']\n readonly highContrastMode: boolean\n readonly isNavOpen?: boolean\n readonly languageCode: string\n readonly languageOptions: LanguageOptions\n readonly locale?: Locale['code']\n readonly permissions: SanitizedPermissions\n readonly RouterAdapter: RouterAdapterComponent\n readonly serverFunction: ServerFunctionClient\n readonly theme: Theme\n readonly translations: I18nClient['translations']\n readonly user: null | User\n}\n\nexport const RootProvider: React.FC<Props> = ({\n children,\n config,\n dateFNSKey,\n embed,\n fallbackLang,\n highContrastMode,\n isNavOpen,\n languageCode,\n languageOptions,\n locale,\n permissions,\n RouterAdapter,\n serverFunction,\n theme,\n translations,\n user,\n}) => {\n const dndContextID = React.useId()\n\n return (\n <ClickOutsideProvider>\n <RouteTransitionProvider>\n <RouterAdapter>\n <ServerFunctionsProvider serverFunction={serverFunction}>\n <RouteCache\n cachingEnabled={process.env.NEXT_PUBLIC_ENABLE_ROUTER_CACHE_REFRESH === 'true'}\n >\n <ConfigProvider config={config}>\n <ClientFunctionProvider>\n <TranslationProvider\n dateFNSKey={dateFNSKey}\n fallbackLang={fallbackLang}\n language={languageCode}\n languageOptions={languageOptions}\n translations={translations}\n >\n <WindowInfoProvider\n breakpoints={{\n l: '(max-width: 1440px)',\n m: '(max-width: 1024px)',\n s: '(max-width: 768px)',\n xs: '(max-width: 400px)',\n }}\n >\n <ScrollInfoProvider>\n <ModalProvider classPrefix=\"payload\" transTime={0} zIndex=\"var(--z-modal)\">\n <DrawerStackProvider>\n <CloseModalOnRouteChange />\n <AuthProvider permissions={permissions} user={user}>\n <PreferencesProvider>\n <HierarchyProvider>\n <ThemeProvider highContrastMode={highContrastMode} theme={theme}>\n <EmbedProvider embed={embed}>\n <LocaleProvider locale={locale}>\n <StepNavProvider>\n <LoadingOverlayProvider>\n <DocumentEventsProvider>\n <NavProvider initialIsOpen={isNavOpen}>\n <UploadHandlersProvider>\n <DndContext\n collisionDetection={pointerWithin}\n // Provide stable ID to fix hydration issues: https://github.com/clauderic/dnd-kit/issues/926\n id={dndContextID}\n >\n {children}\n </DndContext>\n </UploadHandlersProvider>\n </NavProvider>\n </DocumentEventsProvider>\n </LoadingOverlayProvider>\n </StepNavProvider>\n </LocaleProvider>\n </EmbedProvider>\n </ThemeProvider>\n </HierarchyProvider>\n </PreferencesProvider>\n <ModalContainer />\n <StayLoggedInModal />\n </AuthProvider>\n </DrawerStackProvider>\n </ModalProvider>\n </ScrollInfoProvider>\n </WindowInfoProvider>\n </TranslationProvider>\n </ClientFunctionProvider>\n </ConfigProvider>\n </RouteCache>\n </ServerFunctionsProvider>\n </RouterAdapter>\n </RouteTransitionProvider>\n <ToastContainer config={config} />\n </ClickOutsideProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -46,7 +46,7 @@ export const ProgressBar = () => {
46
46
  }
47
47
  } else {
48
48
  shouldDelayProgress.current = true;
49
- setProgressToShow(1);
49
+ setProgressToShow(_temp);
50
50
  clearTimerID = setTimeout(() => {
51
51
  setProgressToShow(null);
52
52
  }, transitionDuration * 2);
@@ -101,4 +101,7 @@ export const ProgressBar = () => {
101
101
  }
102
102
  return null;
103
103
  };
104
+ function _temp(currentProgress) {
105
+ return currentProgress === null ? null : 1;
106
+ }
104
107
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRef","useRouteTransition","transitionDuration","baseClass","initialDelay","ProgressBar","$","isTransitioning","transitionProgress","progressToShow","setProgressToShow","useState","shouldDelayProgress","t0","t1","clearTimerID","delayTimerID","current","clearTimeout","t2","t3","filter","Boolean","t4","join","t5","_jsx","className","style","children","width"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../index.js'\nimport './index.css'\n\nconst transitionDuration = 200\nconst baseClass = 'progress-bar'\nconst initialDelay = 150\n\n/**\n * Renders a progress bar that shows the progress of a route transition.\n * Place this at the root of your application, inside of the `RouteTransitionProvider`.\n * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.\n * @returns A progress bar that shows the progress of a route transition\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n */\nexport const ProgressBar = () => {\n const { isTransitioning, transitionProgress } = useRouteTransition()\n const [progressToShow, setProgressToShow] = React.useState<null | number>(null)\n const shouldDelayProgress = useRef(true)\n\n useEffect(() => {\n let clearTimerID: NodeJS.Timeout\n let delayTimerID: NodeJS.Timeout\n\n if (isTransitioning) {\n if (shouldDelayProgress.current) {\n delayTimerID = setTimeout(() => {\n setProgressToShow(transitionProgress)\n shouldDelayProgress.current = false\n }, initialDelay)\n } else {\n setProgressToShow(transitionProgress)\n }\n } else {\n shouldDelayProgress.current = true\n\n // Fast forward to 100% when the transition is complete\n // Then fade out the progress bar directly after\n setProgressToShow(1)\n\n // Wait for CSS transition to finish before hiding the progress bar\n // This includes both the fast-forward to 100% and the subsequent fade-out\n clearTimerID = setTimeout(() => {\n setProgressToShow(null)\n }, transitionDuration * 2)\n }\n\n return () => {\n clearTimeout(clearTimerID)\n clearTimeout(delayTimerID)\n }\n }, [isTransitioning, transitionProgress])\n\n if (typeof progressToShow === 'number') {\n return (\n <div\n className={[baseClass, progressToShow === 1 && `${baseClass}--fade-out`]\n .filter(Boolean)\n .join(' ')}\n style={{\n // @ts-expect-error - TS doesn't like custom CSS properties\n '--transition-duration': `${transitionDuration}ms`,\n }}\n >\n <div\n className={`${baseClass}__progress`}\n style={{\n width: `${(progressToShow || 0) * 100}%`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,SAAA,GAAY;AAClB,MAAMC,YAAA,GAAe;AAErB;;;;;;;;;;;;;AAaA,OAAO,MAAMC,WAAA,GAAcA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACzB;IAAAU,eAAA;IAAAC;EAAA,IAAgDP,kBAAA;EAChD,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CZ,KAAA,CAAAa,QAAA,KAA8B;EAC1E,MAAAC,mBAAA,GAA4BZ,MAAA,KAAO;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,kBAAA;IAEzBK,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,YAAA;MACAC,GAAA,CAAAA,YAAA;MAAA,IAEAT,eAAA;QAAA,IACEK,mBAAA,CAAAK,OAAA;UACFD,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;YACbN,iBAAA,CAAkBF,kBAAA;YAClBI,mBAAA,CAAAK,OAAA;UAAA,GAAAb,YACC;QAHH;UAKAM,iBAAA,CAAkBF,kBAAA;QAAA;MAAA;QAGpBI,mBAAA,CAAAK,OAAA;QAIAP,iBAAA,EAAkB;QAIlBK,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;UACbL,iBAAA,KAAkB;QAAA,GACjBR,kBAAA,IAAqB;MAFxB;MAAA;QAMAgB,YAAA,CAAaH,YAAA;QACbG,YAAA,CAAaF,YAAA;MAAA;IAAA;IAEdF,EAAA,IAACP,eAAA,EAAiBC,kBAAA;IAAmBF,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAD,EAAA,GAAAP,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EA/BxCP,SAAA,CAAUc,EA+BV,EAAGC,EAAqC;EAAA,IAEpC,OAAOL,cAAA,KAAmB;IAGD,MAAAU,EAAA,GAAAV,cAAA,MAAmB,IAAK,GAAAN,SAAA,YAAwB;IAAA,IAAAiB,EAAA;IAAA,IAAAd,CAAA,QAAAa,EAAA;MAA5DC,EAAA,IAAAjB,SAAA,EAAYgB,EAAgD,EAAAE,MAAA,CAAAC,OAC7D;MAAAhB,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;IAAA;MAAAA,EAAA,GAAAd,CAAA;IAAA;IADC,MAAAiB,EAAA,GAAAH,EACD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAAnB,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAiB,EAAA;MAHVE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EACYJ,EAEH;QAAAK,KAAA;UAAA,yBAGmB,GAAA1B,kBAAA;QAAyB;QAAA2B,QAAA,EAGpDH,IAAA,CAAC;UAAAC,SAAA,EACY,GAAAxB,SAAA,YAAwB;UAAAyB,KAAA;YAAAE,KAAA,EAE1B,GAAG,CAACrB,cAAA,KAAkB,OAAK;UAAM;QAAA,C;;;;;;;;WAZ9CgB,E;;;CAoBN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRef","useRouteTransition","transitionDuration","baseClass","initialDelay","ProgressBar","$","isTransitioning","transitionProgress","progressToShow","setProgressToShow","useState","shouldDelayProgress","t0","t1","clearTimerID","delayTimerID","current","_temp","clearTimeout","t2","t3","filter","Boolean","t4","join","t5","_jsx","className","style","children","width","currentProgress"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../index.js'\nimport './index.css'\n\nconst transitionDuration = 200\nconst baseClass = 'progress-bar'\nconst initialDelay = 150\n\n/**\n * Renders a progress bar that shows the progress of a route transition.\n * Place this at the root of your application, inside of the `RouteTransitionProvider`.\n * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.\n * @returns A progress bar that shows the progress of a route transition\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n */\nexport const ProgressBar = () => {\n const { isTransitioning, transitionProgress } = useRouteTransition()\n const [progressToShow, setProgressToShow] = React.useState<null | number>(null)\n const shouldDelayProgress = useRef(true)\n\n useEffect(() => {\n let clearTimerID: NodeJS.Timeout\n let delayTimerID: NodeJS.Timeout\n\n if (isTransitioning) {\n if (shouldDelayProgress.current) {\n delayTimerID = setTimeout(() => {\n setProgressToShow(transitionProgress)\n shouldDelayProgress.current = false\n }, initialDelay)\n } else {\n setProgressToShow(transitionProgress)\n }\n } else {\n shouldDelayProgress.current = true\n\n // Fast forward to 100% when the transition is complete\n // Then fade out the progress bar directly after\n setProgressToShow((currentProgress) => (currentProgress === null ? null : 1))\n\n // Wait for CSS transition to finish before hiding the progress bar\n // This includes both the fast-forward to 100% and the subsequent fade-out\n clearTimerID = setTimeout(() => {\n setProgressToShow(null)\n }, transitionDuration * 2)\n }\n\n return () => {\n clearTimeout(clearTimerID)\n clearTimeout(delayTimerID)\n }\n }, [isTransitioning, transitionProgress])\n\n if (typeof progressToShow === 'number') {\n return (\n <div\n className={[baseClass, progressToShow === 1 && `${baseClass}--fade-out`]\n .filter(Boolean)\n .join(' ')}\n style={{\n // @ts-expect-error - TS doesn't like custom CSS properties\n '--transition-duration': `${transitionDuration}ms`,\n }}\n >\n <div\n className={`${baseClass}__progress`}\n style={{\n width: `${(progressToShow || 0) * 100}%`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,SAAA,GAAY;AAClB,MAAMC,YAAA,GAAe;AAErB;;;;;;;;;;;;;AAaA,OAAO,MAAMC,WAAA,GAAcA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACzB;IAAAU,eAAA;IAAAC;EAAA,IAAgDP,kBAAA;EAChD,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CZ,KAAA,CAAAa,QAAA,KAA8B;EAC1E,MAAAC,mBAAA,GAA4BZ,MAAA,KAAO;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,kBAAA;IAEzBK,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,YAAA;MACAC,GAAA,CAAAA,YAAA;MAAA,IAEAT,eAAA;QAAA,IACEK,mBAAA,CAAAK,OAAA;UACFD,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;YACbN,iBAAA,CAAkBF,kBAAA;YAClBI,mBAAA,CAAAK,OAAA;UAAA,GAAAb,YACC;QAHH;UAKAM,iBAAA,CAAkBF,kBAAA;QAAA;MAAA;QAGpBI,mBAAA,CAAAK,OAAA;QAIAP,iBAAA,CAAAQ,KAA0E;QAI1EH,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;UACbL,iBAAA,KAAkB;QAAA,GACjBR,kBAAA,IAAqB;MAFxB;MAAA;QAMAiB,YAAA,CAAaJ,YAAA;QACbI,YAAA,CAAaH,YAAA;MAAA;IAAA;IAEdF,EAAA,IAACP,eAAA,EAAiBC,kBAAA;IAAmBF,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAD,EAAA,GAAAP,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EA/BxCP,SAAA,CAAUc,EA+BV,EAAGC,EAAqC;EAAA,IAEpC,OAAOL,cAAA,KAAmB;IAGD,MAAAW,EAAA,GAAAX,cAAA,MAAmB,IAAK,GAAAN,SAAA,YAAwB;IAAA,IAAAkB,EAAA;IAAA,IAAAf,CAAA,QAAAc,EAAA;MAA5DC,EAAA,IAAAlB,SAAA,EAAYiB,EAAgD,EAAAE,MAAA,CAAAC,OAC7D;MAAAjB,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IADC,MAAAkB,EAAA,GAAAH,EACD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAkB,EAAA;MAHVE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EACYJ,EAEH;QAAAK,KAAA;UAAA,yBAGmB,GAAA3B,kBAAA;QAAyB;QAAA4B,QAAA,EAGpDH,IAAA,CAAC;UAAAC,SAAA,EACY,GAAAzB,SAAA,YAAwB;UAAA0B,KAAA;YAAAE,KAAA,EAE1B,GAAG,CAACtB,cAAA,KAAkB,OAAK;UAAM;QAAA,C;;;;;;;;WAZ9CiB,E;;;CAoBN;AA5D2B,SAAAR,MAAAc,eAAA;EAAA,OAuBmBA,eAAA,SAAoB,WAAc;AAAA","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ // @vitest-environment happy-dom
2
+ import { act, createElement, useEffect } from 'react';
3
+ import { createRoot } from 'react-dom/client';
4
+ import { afterEach, beforeEach, expect, test, vi } from 'vitest';
5
+ import { RouteTransitionProvider, useRouteTransition } from '../index.js';
6
+ import { ProgressBar } from './index.js';
7
+ let container;
8
+ let root;
9
+ beforeEach(() => {
10
+ globalThis.IS_REACT_ACT_ENVIRONMENT = true;
11
+ container = document.createElement('div');
12
+ document.body.appendChild(container);
13
+ root = createRoot(container);
14
+ });
15
+ afterEach(() => {
16
+ act(() => root.unmount());
17
+ container.remove();
18
+ vi.useRealTimers();
19
+ });
20
+ test('does not show progress for transitions that finish before the initial delay', async () => {
21
+ vi.useFakeTimers();
22
+ const FastTransition = () => {
23
+ const {
24
+ holdRouteTransition
25
+ } = useRouteTransition();
26
+ useEffect(() => {
27
+ const releaseRouteTransition = holdRouteTransition();
28
+ const timeout = setTimeout(releaseRouteTransition, 50);
29
+ return () => {
30
+ clearTimeout(timeout);
31
+ releaseRouteTransition();
32
+ };
33
+ }, [holdRouteTransition]);
34
+ return null;
35
+ };
36
+ await act(async () => {
37
+ root.render(createElement(RouteTransitionProvider, null, createElement(ProgressBar), createElement(FastTransition)));
38
+ });
39
+ await act(async () => {
40
+ await vi.advanceTimersByTimeAsync(50);
41
+ });
42
+ expect(container.querySelector('.progress-bar')).toBeNull();
43
+ });
44
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","names":["act","createElement","useEffect","createRoot","afterEach","beforeEach","expect","test","vi","RouteTransitionProvider","useRouteTransition","ProgressBar","container","root","globalThis","IS_REACT_ACT_ENVIRONMENT","document","body","appendChild","unmount","remove","useRealTimers","useFakeTimers","FastTransition","holdRouteTransition","releaseRouteTransition","timeout","setTimeout","clearTimeout","render","advanceTimersByTimeAsync","querySelector","toBeNull"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.spec.ts"],"sourcesContent":["// @vitest-environment happy-dom\n\nimport { act, createElement, useEffect } from 'react'\nimport { createRoot, type Root } from 'react-dom/client'\nimport { afterEach, beforeEach, expect, test, vi } from 'vitest'\n\nimport { RouteTransitionProvider, useRouteTransition } from '../index.js'\nimport { ProgressBar } from './index.js'\n\nlet container: HTMLDivElement\nlet root: Root\n\nbeforeEach(() => {\n globalThis.IS_REACT_ACT_ENVIRONMENT = true\n container = document.createElement('div')\n document.body.appendChild(container)\n root = createRoot(container)\n})\n\nafterEach(() => {\n act(() => root.unmount())\n container.remove()\n vi.useRealTimers()\n})\n\ntest('does not show progress for transitions that finish before the initial delay', async () => {\n vi.useFakeTimers()\n\n const FastTransition = () => {\n const { holdRouteTransition } = useRouteTransition()\n\n useEffect(() => {\n const releaseRouteTransition = holdRouteTransition()\n const timeout = setTimeout(releaseRouteTransition, 50)\n\n return () => {\n clearTimeout(timeout)\n releaseRouteTransition()\n }\n }, [holdRouteTransition])\n\n return null\n }\n\n await act(async () => {\n root.render(\n createElement(\n RouteTransitionProvider,\n null,\n createElement(ProgressBar),\n createElement(FastTransition),\n ),\n )\n })\n\n await act(async () => {\n await vi.advanceTimersByTimeAsync(50)\n })\n\n expect(container.querySelector('.progress-bar')).toBeNull()\n})\n"],"mappings":"AAAA;AAEA,SAASA,GAAG,EAAEC,aAAa,EAAEC,SAAS,QAAQ;AAC9C,SAASC,UAAU,QAAmB;AACtC,SAASC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,IAAI,EAAEC,EAAE,QAAQ;AAExD,SAASC,uBAAuB,EAAEC,kBAAkB,QAAQ;AAC5D,SAASC,WAAW,QAAQ;AAE5B,IAAIC,SAAA;AACJ,IAAIC,IAAA;AAEJR,UAAA,CAAW;EACTS,UAAA,CAAWC,wBAAwB,GAAG;EACtCH,SAAA,GAAYI,QAAA,CAASf,aAAa,CAAC;EACnCe,QAAA,CAASC,IAAI,CAACC,WAAW,CAACN,SAAA;EAC1BC,IAAA,GAAOV,UAAA,CAAWS,SAAA;AACpB;AAEAR,SAAA,CAAU;EACRJ,GAAA,CAAI,MAAMa,IAAA,CAAKM,OAAO;EACtBP,SAAA,CAAUQ,MAAM;EAChBZ,EAAA,CAAGa,aAAa;AAClB;AAEAd,IAAA,CAAK,+EAA+E;EAClFC,EAAA,CAAGc,aAAa;EAEhB,MAAMC,cAAA,GAAiBA,CAAA;IACrB,MAAM;MAAEC;IAAmB,CAAE,GAAGd,kBAAA;IAEhCR,SAAA,CAAU;MACR,MAAMuB,sBAAA,GAAyBD,mBAAA;MAC/B,MAAME,OAAA,GAAUC,UAAA,CAAWF,sBAAA,EAAwB;MAEnD,OAAO;QACLG,YAAA,CAAaF,OAAA;QACbD,sBAAA;MACF;IACF,GAAG,CAACD,mBAAA,CAAoB;IAExB,OAAO;EACT;EAEA,MAAMxB,GAAA,CAAI;IACRa,IAAA,CAAKgB,MAAM,CACT5B,aAAA,CACEQ,uBAAA,EACA,MACAR,aAAA,CAAcU,WAAA,GACdV,aAAA,CAAcsB,cAAA;EAGpB;EAEA,MAAMvB,GAAA,CAAI;IACR,MAAMQ,EAAA,CAAGsB,wBAAwB,CAAC;EACpC;EAEAxB,MAAA,CAAOM,SAAA,CAAUmB,aAAa,CAAC,kBAAkBC,QAAQ;AAC3D","ignoreList":[]}
@@ -21,6 +21,8 @@ type RouteTransitionProps = {
21
21
  };
22
22
  type StartRouteTransition = (callback?: () => void) => void;
23
23
  type RouteTransitionContextValue = {
24
+ /** Keeps the transition active until the returned release function is called. */
25
+ holdRouteTransition: () => () => void;
24
26
  isTransitioning: boolean;
25
27
  startRouteTransition: StartRouteTransition;
26
28
  transitionProgress: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteTransition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA6DlE,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAE3D,KAAK,2BAA2B,GAAG;IACjC,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteTransition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqFlE,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAE3D,KAAK,2BAA2B,GAAG;IACjC,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,MAAM,IAAI,CAAA;IACrC,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAA"}
@@ -20,12 +20,14 @@ import React, { startTransition, useCallback, useEffect, useOptimistic, useRef }
20
20
  * )
21
21
  */
22
22
  export const RouteTransitionProvider = t0 => {
23
- const $ = _c(11);
23
+ const $ = _c(12);
24
24
  const {
25
25
  children
26
26
  } = t0;
27
- const [isTransitioning, setIsTransitioning] = useOptimistic(false);
27
+ const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false);
28
+ const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0);
28
29
  const [transitionProgress, setTransitionProgress] = React.useState(0);
30
+ const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0;
29
31
  const transitionProgressRef = useRef(transitionProgress);
30
32
  const timerID = useRef(null);
31
33
  let t1;
@@ -66,42 +68,62 @@ export const RouteTransitionProvider = t0 => {
66
68
  }
67
69
  useEffect(t2, t3);
68
70
  let t4;
69
- if ($[4] !== setIsTransitioning) {
71
+ if ($[4] !== setIsOptimisticallyTransitioning) {
70
72
  t4 = callback => {
71
73
  startTransition(() => {
72
- setIsTransitioning(true);
74
+ setIsOptimisticallyTransitioning(true);
73
75
  if (typeof callback === "function") {
74
76
  callback();
75
77
  }
76
78
  });
77
79
  };
78
- $[4] = setIsTransitioning;
80
+ $[4] = setIsOptimisticallyTransitioning;
79
81
  $[5] = t4;
80
82
  } else {
81
83
  t4 = $[5];
82
84
  }
83
85
  const startRouteTransition = t4;
84
86
  let t5;
85
- if ($[6] !== children || $[7] !== isTransitioning || $[8] !== startRouteTransition || $[9] !== transitionProgress) {
86
- t5 = _jsx(RouteTransitionContext, {
87
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
88
+ t5 = () => {
89
+ let hasReleased = false;
90
+ setActiveRouteTransitionHolds(_temp);
91
+ return () => {
92
+ if (hasReleased) {
93
+ return;
94
+ }
95
+ hasReleased = true;
96
+ setActiveRouteTransitionHolds(_temp2);
97
+ };
98
+ };
99
+ $[6] = t5;
100
+ } else {
101
+ t5 = $[6];
102
+ }
103
+ const holdRouteTransition = t5;
104
+ let t6;
105
+ if ($[7] !== children || $[8] !== isTransitioning || $[9] !== startRouteTransition || $[10] !== transitionProgress) {
106
+ t6 = _jsx(RouteTransitionContext, {
87
107
  value: {
108
+ holdRouteTransition,
88
109
  isTransitioning,
89
110
  startRouteTransition,
90
111
  transitionProgress
91
112
  },
92
113
  children
93
114
  });
94
- $[6] = children;
95
- $[7] = isTransitioning;
96
- $[8] = startRouteTransition;
97
- $[9] = transitionProgress;
98
- $[10] = t5;
115
+ $[7] = children;
116
+ $[8] = isTransitioning;
117
+ $[9] = startRouteTransition;
118
+ $[10] = transitionProgress;
119
+ $[11] = t6;
99
120
  } else {
100
- t5 = $[10];
121
+ t6 = $[11];
101
122
  }
102
- return t5;
123
+ return t6;
103
124
  };
104
125
  const RouteTransitionContext = /*#__PURE__*/React.createContext({
126
+ holdRouteTransition: () => () => undefined,
105
127
  isTransitioning: false,
106
128
  // Default implementation: just call the callback directly (no transition animation)
107
129
  startRouteTransition: callback => {
@@ -132,4 +154,10 @@ const RouteTransitionContext = /*#__PURE__*/React.createContext({
132
154
  * }
133
155
  */
134
156
  export const useRouteTransition = () => React.use(RouteTransitionContext);
157
+ function _temp(count) {
158
+ return count + 1;
159
+ }
160
+ function _temp2(count_0) {
161
+ return Math.max(0, count_0 - 1);
162
+ }
135
163
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","startTransition","useCallback","useEffect","useOptimistic","useRef","RouteTransitionProvider","t0","$","children","isTransitioning","setIsTransitioning","transitionProgress","setTransitionProgress","useState","transitionProgressRef","timerID","t1","Symbol","for","current","setInterval","newProgress","Math","random","pow","log","initiateProgress","t2","t3","clearInterval","t4","callback","startRouteTransition","t5","_jsx","RouteTransitionContext","value","createContext","useRouteTransition","use"],"sources":["../../../src/providers/RouteTransition/index.tsx"],"sourcesContent":["'use client'\nimport React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react'\n\n/**\n * Route transitions are useful in showing immediate visual feedback to the user when navigating between pages. This is especially useful on slow networks when navigating to data heavy or process intensive pages.\n * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.\n * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,\n * or wrap a callback function with the `startRouteTransition` method.\n * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.\n * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n * )\n */\nexport const RouteTransitionProvider: React.FC<RouteTransitionProps> = ({ children }) => {\n const [isTransitioning, setIsTransitioning] = useOptimistic(false)\n const [transitionProgress, setTransitionProgress] = React.useState<number>(0)\n\n const transitionProgressRef = useRef(transitionProgress)\n\n const timerID = useRef(null)\n\n const initiateProgress = useCallback(() => {\n timerID.current = setInterval(() => {\n // randomly update progress using an exponential curve\n // cap the progress to ensure it never fully reaches completion\n // accelerate quickly then decelerate slowly\n const maxProgress = 0.93\n const jumpFactor = 0.2 // lower to reduce jumps in progress\n const growthFactor = 0.75 // adjust to control acceleration\n const slowdownFactor = 0.75 // adjust to control deceleration\n\n const newProgress =\n transitionProgressRef.current +\n (maxProgress - transitionProgressRef.current) *\n Math.random() *\n jumpFactor *\n Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor)\n\n setTransitionProgress(newProgress)\n transitionProgressRef.current = newProgress\n }, 250) // every n ms, update progress\n }, [])\n\n useEffect(() => {\n setTransitionProgress(0)\n transitionProgressRef.current = 0\n\n if (isTransitioning) {\n initiateProgress()\n } else {\n if (timerID.current) {\n clearInterval(timerID.current)\n }\n }\n }, [isTransitioning, initiateProgress])\n\n const startRouteTransition: StartRouteTransition = useCallback(\n (callback?: () => void) => {\n startTransition(() => {\n setIsTransitioning(true)\n\n if (typeof callback === 'function') {\n callback()\n }\n })\n },\n [setIsTransitioning],\n )\n\n return (\n <RouteTransitionContext value={{ isTransitioning, startRouteTransition, transitionProgress }}>\n {children}\n </RouteTransitionContext>\n )\n}\n\ntype RouteTransitionProps = {\n children: React.ReactNode\n}\n\ntype StartRouteTransition = (callback?: () => void) => void\n\ntype RouteTransitionContextValue = {\n isTransitioning: boolean\n startRouteTransition: StartRouteTransition\n transitionProgress: number\n}\n\nconst RouteTransitionContext = React.createContext<RouteTransitionContextValue>({\n isTransitioning: false,\n // Default implementation: just call the callback directly (no transition animation)\n startRouteTransition: (callback) => {\n if (typeof callback === 'function') {\n callback()\n }\n },\n transitionProgress: 0,\n})\n\n/**\n * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.\n * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.\n * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * 'use client'\n * import React, { useCallback } from 'react'\n * import { useTransition, useRouter } from '@payloadcms/ui'\n *\n * const MyComponent: React.FC = () => {\n * const router = useRouter()\n * const { startRouteTransition } = useRouteTransition()\n *\n * const redirectSomewhere = useCallback(() => {\n * startRouteTransition(() => router.push('/somewhere'))\n * }, [startRouteTransition, router])\n *\n * // ...\n * }\n */\nexport const useRouteTransition = () => React.use(RouteTransitionContext)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","startTransition","useCallback","useEffect","useOptimistic","useRef","RouteTransitionProvider","t0","$","children","isOptimisticallyTransitioning","setIsOptimisticallyTransitioning","activeRouteTransitionHolds","setActiveRouteTransitionHolds","useState","transitionProgress","setTransitionProgress","isTransitioning","transitionProgressRef","timerID","t1","Symbol","for","current","setInterval","newProgress","Math","random","pow","log","initiateProgress","t2","t3","clearInterval","t4","callback","startRouteTransition","t5","hasReleased","_temp","_temp2","holdRouteTransition","t6","_jsx","RouteTransitionContext","value","createContext","undefined","useRouteTransition","use","count","count_0","max"],"sources":["../../../src/providers/RouteTransition/index.tsx"],"sourcesContent":["'use client'\nimport React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react'\n\n/**\n * Route transitions are useful in showing immediate visual feedback to the user when navigating between pages. This is especially useful on slow networks when navigating to data heavy or process intensive pages.\n * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.\n * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,\n * or wrap a callback function with the `startRouteTransition` method.\n * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.\n * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n * )\n */\nexport const RouteTransitionProvider: React.FC<RouteTransitionProps> = ({ children }) => {\n const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false)\n const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0)\n const [transitionProgress, setTransitionProgress] = React.useState<number>(0)\n const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0\n\n const transitionProgressRef = useRef(transitionProgress)\n\n const timerID = useRef(null)\n\n const initiateProgress = useCallback(() => {\n timerID.current = setInterval(() => {\n // randomly update progress using an exponential curve\n // cap the progress to ensure it never fully reaches completion\n // accelerate quickly then decelerate slowly\n const maxProgress = 0.93\n const jumpFactor = 0.2 // lower to reduce jumps in progress\n const growthFactor = 0.75 // adjust to control acceleration\n const slowdownFactor = 0.75 // adjust to control deceleration\n\n const newProgress =\n transitionProgressRef.current +\n (maxProgress - transitionProgressRef.current) *\n Math.random() *\n jumpFactor *\n Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor)\n\n setTransitionProgress(newProgress)\n transitionProgressRef.current = newProgress\n }, 250) // every n ms, update progress\n }, [])\n\n useEffect(() => {\n setTransitionProgress(0)\n transitionProgressRef.current = 0\n\n if (isTransitioning) {\n initiateProgress()\n } else {\n if (timerID.current) {\n clearInterval(timerID.current)\n }\n }\n }, [isTransitioning, initiateProgress])\n\n const startRouteTransition: StartRouteTransition = useCallback(\n (callback?: () => void) => {\n startTransition(() => {\n setIsOptimisticallyTransitioning(true)\n\n if (typeof callback === 'function') {\n callback()\n }\n })\n },\n [setIsOptimisticallyTransitioning],\n )\n\n const holdRouteTransition = useCallback(() => {\n let hasReleased = false\n\n setActiveRouteTransitionHolds((count) => count + 1)\n\n return () => {\n if (hasReleased) {\n return\n }\n\n hasReleased = true\n setActiveRouteTransitionHolds((count) => Math.max(0, count - 1))\n }\n }, [])\n\n return (\n <RouteTransitionContext\n value={{\n holdRouteTransition,\n isTransitioning,\n startRouteTransition,\n transitionProgress,\n }}\n >\n {children}\n </RouteTransitionContext>\n )\n}\n\ntype RouteTransitionProps = {\n children: React.ReactNode\n}\n\ntype StartRouteTransition = (callback?: () => void) => void\n\ntype RouteTransitionContextValue = {\n /** Keeps the transition active until the returned release function is called. */\n holdRouteTransition: () => () => void\n isTransitioning: boolean\n startRouteTransition: StartRouteTransition\n transitionProgress: number\n}\n\nconst RouteTransitionContext = React.createContext<RouteTransitionContextValue>({\n holdRouteTransition: () => () => undefined,\n isTransitioning: false,\n // Default implementation: just call the callback directly (no transition animation)\n startRouteTransition: (callback) => {\n if (typeof callback === 'function') {\n callback()\n }\n },\n transitionProgress: 0,\n})\n\n/**\n * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.\n * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.\n * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * 'use client'\n * import React, { useCallback } from 'react'\n * import { useTransition, useRouter } from '@payloadcms/ui'\n *\n * const MyComponent: React.FC = () => {\n * const router = useRouter()\n * const { startRouteTransition } = useRouteTransition()\n *\n * const redirectSomewhere = useCallback(() => {\n * startRouteTransition(() => router.push('/somewhere'))\n * }, [startRouteTransition, router])\n *\n * // ...\n * }\n */\nexport const useRouteTransition = () => React.use(RouteTransitionContext)\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,17 @@
1
1
  import React from 'react';
2
+ import type { RenderTabServerFnArgs } from '../../elements/Nav/SidebarTabs/renderTabServerFn.js';
2
3
  export type SidebarTabsContextType = {
3
4
  activeTabSlug: null | string;
4
5
  /**
5
6
  * Reload the content for a specific tab, bypassing the cache.
6
7
  * Useful when the tab's data dependencies change.
7
8
  */
8
- reloadTabContent: (tabSlug: string) => void;
9
+ reloadTabContent: (tabSlug: string, serverArgs?: Partial<RenderTabServerFnArgs>) => void;
9
10
  };
10
11
  export type SidebarTabsProviderProps = {
11
12
  activeTabSlug: null | string;
12
13
  children: React.ReactNode;
13
- reloadTabContent: (tabSlug: string) => void;
14
+ reloadTabContent: (tabSlug: string, serverArgs?: Partial<RenderTabServerFnArgs>) => void;
14
15
  };
15
16
  export declare const SidebarTabsProvider: React.FC<SidebarTabsProviderProps>;
16
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SidebarTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C,CAAA;AAID,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAQlE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,IAAI,GAAG,sBAExC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/SidebarTabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAA;AAEhG,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAA;CACzF,CAAA;AAID,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAA;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAA;CACzF,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAQlE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,IAAI,GAAG,sBAExC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","use","SidebarTabsContext","SidebarTabsProvider","activeTabSlug","children","reloadTabContent","_jsx","value","useSidebarTabs"],"sources":["../../../src/providers/SidebarTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, use } from 'react'\n\nexport type SidebarTabsContextType = {\n activeTabSlug: null | string\n /**\n * Reload the content for a specific tab, bypassing the cache.\n * Useful when the tab's data dependencies change.\n */\n reloadTabContent: (tabSlug: string) => void\n}\n\nconst SidebarTabsContext = createContext<null | SidebarTabsContextType>(null)\n\nexport type SidebarTabsProviderProps = {\n activeTabSlug: null | string\n children: React.ReactNode\n reloadTabContent: (tabSlug: string) => void\n}\n\nexport const SidebarTabsProvider: React.FC<SidebarTabsProviderProps> = ({\n activeTabSlug,\n children,\n reloadTabContent,\n}) => {\n return (\n <SidebarTabsContext value={{ activeTabSlug, reloadTabContent }}>{children}</SidebarTabsContext>\n )\n}\n\n/**\n * Hook to access sidebar tab controls.\n * Returns null if used outside of a SidebarTabsProvider (e.g., when there's only one tab).\n */\nexport const useSidebarTabs = (): null | SidebarTabsContextType => {\n return use(SidebarTabsContext)\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAW1C,MAAMC,kBAAA,gBAAqBF,aAAA,CAA6C;AAQxE,OAAO,MAAMG,mBAAA,GAA0DA,CAAC;EACtEC,aAAa;EACbC,QAAQ;EACRC;AAAgB,CACjB;EACC,oBACEC,IAAA,CAACL,kBAAA;IAAmBM,KAAA,EAAO;MAAEJ,aAAA;MAAeE;IAAiB;cAAID;;AAErE;AAEA;;;;AAIA,OAAO,MAAMI,cAAA,GAAiBA,CAAA;EAC5B,OAAOR,GAAA,CAAIC,kBAAA;AACb","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","use","SidebarTabsContext","SidebarTabsProvider","activeTabSlug","children","reloadTabContent","_jsx","value","useSidebarTabs"],"sources":["../../../src/providers/SidebarTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, use } from 'react'\n\nimport type { RenderTabServerFnArgs } from '../../elements/Nav/SidebarTabs/renderTabServerFn.js'\n\nexport type SidebarTabsContextType = {\n activeTabSlug: null | string\n /**\n * Reload the content for a specific tab, bypassing the cache.\n * Useful when the tab's data dependencies change.\n */\n reloadTabContent: (tabSlug: string, serverArgs?: Partial<RenderTabServerFnArgs>) => void\n}\n\nconst SidebarTabsContext = createContext<null | SidebarTabsContextType>(null)\n\nexport type SidebarTabsProviderProps = {\n activeTabSlug: null | string\n children: React.ReactNode\n reloadTabContent: (tabSlug: string, serverArgs?: Partial<RenderTabServerFnArgs>) => void\n}\n\nexport const SidebarTabsProvider: React.FC<SidebarTabsProviderProps> = ({\n activeTabSlug,\n children,\n reloadTabContent,\n}) => {\n return (\n <SidebarTabsContext value={{ activeTabSlug, reloadTabContent }}>{children}</SidebarTabsContext>\n )\n}\n\n/**\n * Hook to access sidebar tab controls.\n * Returns null if used outside of a SidebarTabsProvider (e.g., when there's only one tab).\n */\nexport const useSidebarTabs = (): null | SidebarTabsContextType => {\n return use(SidebarTabsContext)\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAa1C,MAAMC,kBAAA,gBAAqBF,aAAA,CAA6C;AAQxE,OAAO,MAAMG,mBAAA,GAA0DA,CAAC;EACtEC,aAAa;EACbC,QAAQ;EACRC;AAAgB,CACjB;EACC,oBACEC,IAAA,CAACL,kBAAA;IAAmBM,KAAA,EAAO;MAAEJ,aAAA;MAAeE;IAAiB;cAAID;;AAErE;AAEA;;;;AAIA,OAAO,MAAMI,cAAA,GAAiBA,CAAA;EAC5B,OAAOR,GAAA,CAAIC,kBAAA;AACb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/TableColumns/buildColumnState/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAEV,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,MAAM,EACN,yBAAyB,EACzB,QAAQ,EACR,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAG1B,SAAS,EACV,MAAM,SAAS,CAAA;AAUhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAY5E,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC1C,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;IAC7C,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CACA;IACE,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC5B,GACD;IACE,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE;QACJ,UAAU,EAAE,cAAc,CAAA;QAC1B,KAAK,EAAE,QAAQ,CAAA;KAChB,EAAE,CAAA;CACJ,CACJ,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,oBAAoB,KAAG,MAAM,EA+NnE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/TableColumns/buildColumnState/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAEV,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,MAAM,EACN,yBAAyB,EACzB,QAAQ,EACR,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAG1B,SAAS,EACV,MAAM,SAAS,CAAA;AAUhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AAY5E,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC1C,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;IAC7C,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,YAAY,EAAE,KAAK,EAAE,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,GAAG,CACA;IACE,cAAc,EAAE,cAAc,CAAA;IAC9B,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC5B,GACD;IACE,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE;QACJ,UAAU,EAAE,cAAc,CAAA;QAC1B,KAAK,EAAE,QAAQ,CAAA;KAChB,EAAE,CAAA;CACJ,CACJ,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,oBAAoB,KAAG,MAAM,EAgOnE,CAAA"}
@@ -91,7 +91,7 @@ export const buildColumnState = args => {
91
91
  }
92
92
  let CustomLabel = undefined;
93
93
  if (dataType === 'monomorphic') {
94
- const CustomLabelToRender = serverField && 'admin' in serverField && 'components' in serverField.admin && 'Label' in serverField.admin.components && serverField.admin.components.Label !== undefined // let it return `null`
94
+ const CustomLabelToRender = serverField && 'admin' in serverField && 'components' in serverField.admin && serverField.admin.components && 'Label' in serverField.admin.components && serverField.admin.components.Label !== undefined // let it return `null`
95
95
  ? serverField.admin.components.Label : undefined;
96
96
  // TODO: customComponent will be optional in v4
97
97
  const clientProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderServerComponent","SortColumn","filterFieldsWithPermissions","isColumnActive","renderCell","sortFieldMap","buildColumnState","args","beforeRows","clientFields","collectionSlug","columns","customCellProps","dataType","docs","enableLinkedCell","enableRowSelections","fieldPermissions","i18n","payload","req","serverFields","sortColumnProps","useAsTitle","viewType","sortedFieldMap","fields","keepPresentationalFields","moveSubFieldsToTop","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","activeColumnsIndices","sorted","reduce","acc","clientField","colIndex","accessor","undefined","serverField","find","f","fAccessor","hasCustomCell","admin","components","Cell","type","columnPref","preference","isActive","column","includes","push","CustomLabel","CustomLabelToRender","Label","clientProps","customLabelServerProps","Component","importMap","serverProps","fieldAffectsDataSubFields","label","labelWithPrefix","dotAccessor","replace","isVirtualField","virtual","Heading","_jsx","disable","isLinkedColumn","active","renderedCells","map","doc","rowIndex","relationTo","columnIndex","value"],"sources":["../../../../src/providers/TableColumns/buildColumnState/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientComponentProps,\n ClientField,\n CollectionPreferences,\n CollectionSlug,\n Column,\n DefaultCellComponentProps,\n Document,\n Field,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n ServerComponentProps,\n StaticLabel,\n ViewTypes,\n} from 'payload'\n\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../../../elements/SortColumn/index.js'\n\nimport { RenderServerComponent } from '../../../elements/RenderServerComponent/index.js'\nimport {\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../../../exports/client/index.js'\nimport { filterFieldsWithPermissions } from './filterFieldsWithPermissions.js'\nimport { isColumnActive } from './isColumnActive.js'\nimport { renderCell } from './renderCell.js'\nimport { sortFieldMap } from './sortFieldMap.js'\n\nexport type BuildColumnStateArgs = {\n beforeRows?: Column[]\n clientFields: ClientField[]\n columns?: CollectionPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n enableLinkedCell?: boolean\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n i18n: I18nClient\n payload: Payload\n req?: PayloadRequest\n serverFields: Field[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n} & (\n | {\n collectionSlug: CollectionSlug\n dataType: 'monomorphic'\n docs: PaginatedDocs['docs']\n }\n | {\n collectionSlug?: undefined\n dataType: 'polymorphic'\n docs: {\n relationTo: CollectionSlug\n value: Document\n }[]\n }\n)\n\nexport const buildColumnState = (args: BuildColumnStateArgs): Column[] => {\n const {\n beforeRows,\n clientFields,\n collectionSlug,\n columns,\n customCellProps,\n dataType,\n docs,\n enableLinkedCell = true,\n enableRowSelections,\n fieldPermissions,\n i18n,\n payload,\n req,\n serverFields,\n sortColumnProps,\n useAsTitle,\n viewType,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFieldsWithPermissions({ fieldPermissions, fields: clientFields }),\n {\n i18n,\n keepPresentationalFields: true,\n moveSubFieldsToTop: true,\n },\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFieldsWithPermissions({\n fieldPermissions,\n fields: serverFields,\n }),\n {\n i18n,\n keepPresentationalFields: true,\n moveSubFieldsToTop: true,\n },\n ) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columns`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columns`\n sortedFieldMap = sortFieldMap<ClientField>(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap<Field>(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, clientField, colIndex) => {\n if (fieldIsHiddenOrDisabled(clientField) && !fieldIsID(clientField)) {\n return acc\n }\n\n const accessor =\n (clientField as any).accessor ?? ('name' in clientField ? clientField.name : undefined)\n\n const serverField = _sortedFieldMap.find((f) => {\n const fAccessor = (f as any).accessor ?? ('name' in f ? f.name : undefined)\n return fAccessor === accessor\n })\n\n const hasCustomCell =\n serverField?.admin &&\n 'components' in serverField.admin &&\n serverField.admin.components &&\n 'Cell' in serverField.admin.components &&\n serverField.admin.components.Cell\n\n if (serverField && serverField.type === 'group' && !hasCustomCell) {\n return acc // skip any group without a custom cell\n }\n\n const columnPref = columns?.find(\n (preference) => clientField && 'name' in clientField && preference.accessor === accessor,\n )\n\n const isActive = isColumnActive({\n accessor,\n activeColumnsIndices,\n column: columnPref,\n columns,\n })\n\n if (isActive && !activeColumnsIndices.includes(colIndex)) {\n activeColumnsIndices.push(colIndex)\n }\n\n let CustomLabel = undefined\n\n if (dataType === 'monomorphic') {\n const CustomLabelToRender =\n serverField &&\n 'admin' in serverField &&\n 'components' in serverField.admin &&\n 'Label' in serverField.admin.components &&\n serverField.admin.components.Label !== undefined // let it return `null`\n ? serverField.admin.components.Label\n : undefined\n\n // TODO: customComponent will be optional in v4\n const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n field: clientField,\n }\n\n const customLabelServerProps: Pick<\n ServerComponentProps,\n 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n > = {\n clientField,\n collectionSlug,\n field: serverField,\n i18n,\n payload,\n }\n\n CustomLabel = CustomLabelToRender\n ? RenderServerComponent({\n clientProps,\n Component: CustomLabelToRender,\n importMap: payload.importMap,\n serverProps: customLabelServerProps,\n })\n : undefined\n }\n\n const fieldAffectsDataSubFields =\n clientField &&\n clientField.type &&\n (clientField.type === 'array' ||\n clientField.type === 'group' ||\n clientField.type === 'blocks')\n\n const label =\n clientField && 'labelWithPrefix' in clientField && clientField.labelWithPrefix !== undefined\n ? clientField.labelWithPrefix\n : 'label' in clientField\n ? clientField.label\n : undefined\n\n // Convert accessor to dot notation specifically for SortColumn sorting behavior\n const dotAccessor = accessor?.replace(/-/g, '.')\n\n const isVirtualField = serverField && 'virtual' in serverField && serverField.virtual === true\n\n const Heading = (\n <SortColumn\n disable={\n fieldAffectsDataSubFields ||\n fieldIsPresentationalOnly(clientField) ||\n isVirtualField ||\n undefined\n }\n Label={CustomLabel}\n label={label as StaticLabel}\n name={dotAccessor}\n {...(sortColumnProps || {})}\n />\n )\n\n const isLinkedColumn = enableLinkedCell && colIndex === activeColumnsIndices[0]\n\n const column: Column = {\n accessor,\n active: isActive,\n CustomLabel,\n field: clientField,\n Heading,\n isLinkedColumn,\n renderedCells: isActive\n ? docs.map((doc, rowIndex) => {\n return renderCell({\n clientField,\n collectionSlug: dataType === 'monomorphic' ? collectionSlug : doc.relationTo,\n columnIndex: colIndex,\n customCellProps,\n doc: dataType === 'monomorphic' ? doc : doc.value,\n enableRowSelections,\n i18n,\n isLinkedColumn,\n payload,\n req,\n rowIndex,\n serverField,\n viewType,\n })\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderServerComponent","SortColumn","filterFieldsWithPermissions","isColumnActive","renderCell","sortFieldMap","buildColumnState","args","beforeRows","clientFields","collectionSlug","columns","customCellProps","dataType","docs","enableLinkedCell","enableRowSelections","fieldPermissions","i18n","payload","req","serverFields","sortColumnProps","useAsTitle","viewType","sortedFieldMap","fields","keepPresentationalFields","moveSubFieldsToTop","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","activeColumnsIndices","sorted","reduce","acc","clientField","colIndex","accessor","undefined","serverField","find","f","fAccessor","hasCustomCell","admin","components","Cell","type","columnPref","preference","isActive","column","includes","push","CustomLabel","CustomLabelToRender","Label","clientProps","customLabelServerProps","Component","importMap","serverProps","fieldAffectsDataSubFields","label","labelWithPrefix","dotAccessor","replace","isVirtualField","virtual","Heading","_jsx","disable","isLinkedColumn","active","renderedCells","map","doc","rowIndex","relationTo","columnIndex","value"],"sources":["../../../../src/providers/TableColumns/buildColumnState/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientComponentProps,\n ClientField,\n CollectionPreferences,\n CollectionSlug,\n Column,\n DefaultCellComponentProps,\n Document,\n Field,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n ServerComponentProps,\n StaticLabel,\n ViewTypes,\n} from 'payload'\n\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../../../elements/SortColumn/index.js'\n\nimport { RenderServerComponent } from '../../../elements/RenderServerComponent/index.js'\nimport {\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../../../exports/client/index.js'\nimport { filterFieldsWithPermissions } from './filterFieldsWithPermissions.js'\nimport { isColumnActive } from './isColumnActive.js'\nimport { renderCell } from './renderCell.js'\nimport { sortFieldMap } from './sortFieldMap.js'\n\nexport type BuildColumnStateArgs = {\n beforeRows?: Column[]\n clientFields: ClientField[]\n columns?: CollectionPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n enableLinkedCell?: boolean\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n i18n: I18nClient\n payload: Payload\n req?: PayloadRequest\n serverFields: Field[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n} & (\n | {\n collectionSlug: CollectionSlug\n dataType: 'monomorphic'\n docs: PaginatedDocs['docs']\n }\n | {\n collectionSlug?: undefined\n dataType: 'polymorphic'\n docs: {\n relationTo: CollectionSlug\n value: Document\n }[]\n }\n)\n\nexport const buildColumnState = (args: BuildColumnStateArgs): Column[] => {\n const {\n beforeRows,\n clientFields,\n collectionSlug,\n columns,\n customCellProps,\n dataType,\n docs,\n enableLinkedCell = true,\n enableRowSelections,\n fieldPermissions,\n i18n,\n payload,\n req,\n serverFields,\n sortColumnProps,\n useAsTitle,\n viewType,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFieldsWithPermissions({ fieldPermissions, fields: clientFields }),\n {\n i18n,\n keepPresentationalFields: true,\n moveSubFieldsToTop: true,\n },\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFieldsWithPermissions({\n fieldPermissions,\n fields: serverFields,\n }),\n {\n i18n,\n keepPresentationalFields: true,\n moveSubFieldsToTop: true,\n },\n ) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columns`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columns`\n sortedFieldMap = sortFieldMap<ClientField>(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap<Field>(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, clientField, colIndex) => {\n if (fieldIsHiddenOrDisabled(clientField) && !fieldIsID(clientField)) {\n return acc\n }\n\n const accessor =\n (clientField as any).accessor ?? ('name' in clientField ? clientField.name : undefined)\n\n const serverField = _sortedFieldMap.find((f) => {\n const fAccessor = (f as any).accessor ?? ('name' in f ? f.name : undefined)\n return fAccessor === accessor\n })\n\n const hasCustomCell =\n serverField?.admin &&\n 'components' in serverField.admin &&\n serverField.admin.components &&\n 'Cell' in serverField.admin.components &&\n serverField.admin.components.Cell\n\n if (serverField && serverField.type === 'group' && !hasCustomCell) {\n return acc // skip any group without a custom cell\n }\n\n const columnPref = columns?.find(\n (preference) => clientField && 'name' in clientField && preference.accessor === accessor,\n )\n\n const isActive = isColumnActive({\n accessor,\n activeColumnsIndices,\n column: columnPref,\n columns,\n })\n\n if (isActive && !activeColumnsIndices.includes(colIndex)) {\n activeColumnsIndices.push(colIndex)\n }\n\n let CustomLabel = undefined\n\n if (dataType === 'monomorphic') {\n const CustomLabelToRender =\n serverField &&\n 'admin' in serverField &&\n 'components' in serverField.admin &&\n serverField.admin.components &&\n 'Label' in serverField.admin.components &&\n serverField.admin.components.Label !== undefined // let it return `null`\n ? serverField.admin.components.Label\n : undefined\n\n // TODO: customComponent will be optional in v4\n const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n field: clientField,\n }\n\n const customLabelServerProps: Pick<\n ServerComponentProps,\n 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n > = {\n clientField,\n collectionSlug,\n field: serverField,\n i18n,\n payload,\n }\n\n CustomLabel = CustomLabelToRender\n ? RenderServerComponent({\n clientProps,\n Component: CustomLabelToRender,\n importMap: payload.importMap,\n serverProps: customLabelServerProps,\n })\n : undefined\n }\n\n const fieldAffectsDataSubFields =\n clientField &&\n clientField.type &&\n (clientField.type === 'array' ||\n clientField.type === 'group' ||\n clientField.type === 'blocks')\n\n const label =\n clientField && 'labelWithPrefix' in clientField && clientField.labelWithPrefix !== undefined\n ? clientField.labelWithPrefix\n : 'label' in clientField\n ? clientField.label\n : undefined\n\n // Convert accessor to dot notation specifically for SortColumn sorting behavior\n const dotAccessor = accessor?.replace(/-/g, '.')\n\n const isVirtualField = serverField && 'virtual' in serverField && serverField.virtual === true\n\n const Heading = (\n <SortColumn\n disable={\n fieldAffectsDataSubFields ||\n fieldIsPresentationalOnly(clientField) ||\n isVirtualField ||\n undefined\n }\n Label={CustomLabel}\n label={label as StaticLabel}\n name={dotAccessor}\n {...(sortColumnProps || {})}\n />\n )\n\n const isLinkedColumn = enableLinkedCell && colIndex === activeColumnsIndices[0]\n\n const column: Column = {\n accessor,\n active: isActive,\n CustomLabel,\n field: clientField,\n Heading,\n isLinkedColumn,\n renderedCells: isActive\n ? docs.map((doc, rowIndex) => {\n return renderCell({\n clientField,\n collectionSlug: dataType === 'monomorphic' ? collectionSlug : doc.relationTo,\n columnIndex: colIndex,\n customCellProps,\n doc: dataType === 'monomorphic' ? doc : doc.value,\n enableRowSelections,\n i18n,\n isLinkedColumn,\n payload,\n req,\n rowIndex,\n serverField,\n viewType,\n })\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}