@payloadcms/next 3.86.0-internal.ac46214 → 4.0.0-canary.0

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 (472) hide show
  1. package/dist/adapters/layout.d.ts +7 -0
  2. package/dist/adapters/layout.d.ts.map +1 -0
  3. package/dist/adapters/layout.js +38 -0
  4. package/dist/adapters/layout.js.map +1 -0
  5. package/dist/adapters/router.d.ts +5 -0
  6. package/dist/adapters/router.d.ts.map +1 -0
  7. package/dist/adapters/router.js +53 -0
  8. package/dist/adapters/router.js.map +1 -0
  9. package/dist/adapters/server.d.ts +7 -0
  10. package/dist/adapters/server.d.ts.map +1 -0
  11. package/dist/adapters/server.js +39 -0
  12. package/dist/adapters/server.js.map +1 -0
  13. package/dist/cjs/withPayload.cjs +13 -176
  14. package/dist/cjs/withPayload.cjs.map +4 -4
  15. package/dist/exports/css.d.ts +3 -0
  16. package/dist/exports/css.d.ts.map +1 -0
  17. package/dist/exports/css.js +3 -0
  18. package/dist/exports/css.js.map +1 -0
  19. package/dist/exports/layouts.d.ts +1 -1
  20. package/dist/exports/layouts.d.ts.map +1 -1
  21. package/dist/exports/layouts.js +1 -1
  22. package/dist/exports/layouts.js.map +1 -1
  23. package/dist/exports/utilities.d.ts +2 -67
  24. package/dist/exports/utilities.d.ts.map +1 -1
  25. package/dist/exports/utilities.js +1 -49
  26. package/dist/exports/utilities.js.map +1 -1
  27. package/dist/prod/styles.css +1 -1
  28. package/dist/routes/graphql/handler.d.ts.map +1 -1
  29. package/dist/routes/graphql/playground.d.ts.map +1 -1
  30. package/dist/routes/rest/index.d.ts.map +1 -1
  31. package/dist/utilities/getHierarchyAncestry.d.ts +24 -0
  32. package/dist/utilities/getHierarchyAncestry.d.ts.map +1 -0
  33. package/dist/utilities/getHierarchyAncestry.js +103 -0
  34. package/dist/utilities/getHierarchyAncestry.js.map +1 -0
  35. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  36. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  37. package/dist/utilities/getRouteWithoutAdmin.d.ts.map +1 -1
  38. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  39. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  40. package/dist/utilities/handleServerFunctions.js +8 -5
  41. package/dist/utilities/handleServerFunctions.js.map +1 -1
  42. package/dist/utilities/isCustomAdminView.d.ts.map +1 -1
  43. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  44. package/dist/utilities/meta.d.ts.map +1 -1
  45. package/dist/utilities/switchLanguageHandler.d.ts +13 -0
  46. package/dist/utilities/switchLanguageHandler.d.ts.map +1 -0
  47. package/dist/utilities/switchLanguageHandler.js +16 -0
  48. package/dist/utilities/switchLanguageHandler.js.map +1 -0
  49. package/dist/utilities/timestamp.d.ts.map +1 -1
  50. package/dist/views/API/index.client.d.ts +1 -1
  51. package/dist/views/API/index.client.d.ts.map +1 -1
  52. package/dist/views/API/index.client.js +111 -78
  53. package/dist/views/API/index.client.js.map +1 -1
  54. package/dist/views/API/index.css +205 -0
  55. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  56. package/dist/views/Account/Settings/index.css +26 -0
  57. package/dist/views/Account/Settings/index.d.ts +1 -1
  58. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  59. package/dist/views/Account/Settings/index.js +2 -1
  60. package/dist/views/Account/Settings/index.js.map +1 -1
  61. package/dist/views/Account/ToggleHighContrast/index.d.ts +3 -0
  62. package/dist/views/Account/ToggleHighContrast/index.d.ts.map +1 -0
  63. package/dist/views/Account/ToggleHighContrast/index.js +45 -0
  64. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -0
  65. package/dist/views/Account/index.d.ts.map +1 -1
  66. package/dist/views/Account/index.js +2 -1
  67. package/dist/views/Account/index.js.map +1 -1
  68. package/dist/views/CollectionTrash/metadata.d.ts.map +1 -1
  69. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  70. package/dist/views/CreateFirstUser/index.client.js +32 -25
  71. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  72. package/dist/views/CreateFirstUser/index.css +69 -0
  73. package/dist/views/CreateFirstUser/index.d.ts +1 -1
  74. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  75. package/dist/views/CreateFirstUser/index.js +9 -5
  76. package/dist/views/CreateFirstUser/index.js.map +1 -1
  77. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  78. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +72 -45
  79. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  80. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
  81. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +25 -22
  82. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  83. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  84. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +2 -3
  85. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  86. package/dist/views/Dashboard/Default/ModularDashboard/index.css +299 -0
  87. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts +1 -1
  88. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  89. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  90. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  91. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -1
  92. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js +1 -1
  93. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  94. package/dist/views/Dashboard/Default/index.d.ts +0 -6
  95. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  96. package/dist/views/Dashboard/Default/index.js +3 -0
  97. package/dist/views/Dashboard/Default/index.js.map +1 -1
  98. package/dist/views/Dashboard/index.d.ts.map +1 -1
  99. package/dist/views/Dashboard/index.js +1 -0
  100. package/dist/views/Dashboard/index.js.map +1 -1
  101. package/dist/views/Document/getCustomDocumentViewByKey.d.ts.map +1 -1
  102. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  103. package/dist/views/Document/getDocPreferences.d.ts.map +1 -1
  104. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  105. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  106. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  107. package/dist/views/Document/getDocumentView.js +3 -9
  108. package/dist/views/Document/getDocumentView.js.map +1 -1
  109. package/dist/views/Document/getIsLocked.d.ts.map +1 -1
  110. package/dist/views/Document/getVersions.d.ts.map +1 -1
  111. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  112. package/dist/views/Document/handleServerFunction.js +1 -0
  113. package/dist/views/Document/handleServerFunction.js.map +1 -1
  114. package/dist/views/Document/index.d.ts.map +1 -1
  115. package/dist/views/Document/index.js +6 -3
  116. package/dist/views/Document/index.js.map +1 -1
  117. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  118. package/dist/views/Document/renderDocumentSlots.js +17 -8
  119. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  120. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +36 -0
  121. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts +1 -0
  122. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  123. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +62 -55
  124. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  125. package/dist/views/ForgotPassword/index.css +21 -0
  126. package/dist/views/ForgotPassword/index.d.ts +1 -0
  127. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  128. package/dist/views/ForgotPassword/index.js +11 -8
  129. package/dist/views/ForgotPassword/index.js.map +1 -1
  130. package/dist/views/Hierarchy/index.d.ts +18 -0
  131. package/dist/views/Hierarchy/index.d.ts.map +1 -0
  132. package/dist/views/Hierarchy/index.js +20 -0
  133. package/dist/views/Hierarchy/index.js.map +1 -0
  134. package/dist/views/List/createSerializableValue.d.ts.map +1 -1
  135. package/dist/views/List/extractRelationshipDisplayValue.d.ts.map +1 -1
  136. package/dist/views/List/extractValueOrRelationshipID.d.ts.map +1 -1
  137. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  138. package/dist/views/List/handleGroupBy.js +8 -0
  139. package/dist/views/List/handleGroupBy.js.map +1 -1
  140. package/dist/views/List/handleHierarchy.d.ts +18 -0
  141. package/dist/views/List/handleHierarchy.d.ts.map +1 -0
  142. package/dist/views/List/handleHierarchy.js +259 -0
  143. package/dist/views/List/handleHierarchy.js.map +1 -0
  144. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  145. package/dist/views/List/handleServerFunction.js +1 -0
  146. package/dist/views/List/handleServerFunction.js.map +1 -1
  147. package/dist/views/List/index.css +3 -0
  148. package/dist/views/List/index.d.ts +1 -0
  149. package/dist/views/List/index.d.ts.map +1 -1
  150. package/dist/views/List/index.js +113 -31
  151. package/dist/views/List/index.js.map +1 -1
  152. package/dist/views/List/metadata.d.ts.map +1 -1
  153. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  154. package/dist/views/List/renderListViewSlots.js +2 -1
  155. package/dist/views/List/renderListViewSlots.js.map +1 -1
  156. package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -1
  157. package/dist/views/List/transformColumnsToSelect.d.ts.map +1 -1
  158. package/dist/views/Login/LoginForm/index.css +48 -0
  159. package/dist/views/Login/LoginForm/index.d.ts +1 -1
  160. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  161. package/dist/views/Login/LoginForm/index.js +33 -26
  162. package/dist/views/Login/LoginForm/index.js.map +1 -1
  163. package/dist/views/Login/index.css +8 -0
  164. package/dist/views/Login/index.d.ts +1 -1
  165. package/dist/views/Login/index.d.ts.map +1 -1
  166. package/dist/views/Login/index.js +4 -1
  167. package/dist/views/Login/index.js.map +1 -1
  168. package/dist/views/NotFound/index.client.d.ts +2 -4
  169. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  170. package/dist/views/NotFound/index.client.js +25 -42
  171. package/dist/views/NotFound/index.client.js.map +1 -1
  172. package/dist/views/NotFound/index.css +47 -0
  173. package/dist/views/NotFound/index.d.ts.map +1 -1
  174. package/dist/views/NotFound/index.js +7 -6
  175. package/dist/views/NotFound/index.js.map +1 -1
  176. package/dist/views/NotFound/metadata.d.ts.map +1 -1
  177. package/dist/views/ResetPassword/ResetPasswordForm/index.css +36 -0
  178. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +1 -0
  179. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
  180. package/dist/views/ResetPassword/ResetPasswordForm/index.js +13 -6
  181. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  182. package/dist/views/ResetPassword/index.css +27 -0
  183. package/dist/views/ResetPassword/index.d.ts +1 -1
  184. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  185. package/dist/views/ResetPassword/index.js +12 -11
  186. package/dist/views/ResetPassword/index.js.map +1 -1
  187. package/dist/views/Root/generateCustomViewMetadata.d.ts.map +1 -1
  188. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  189. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts +12 -0
  190. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -0
  191. package/dist/views/Root/getCustomGlobalViewByRoute.js +46 -0
  192. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -0
  193. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  194. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  195. package/dist/views/Root/getRouteData.d.ts +1 -4
  196. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  197. package/dist/views/Root/getRouteData.js +83 -110
  198. package/dist/views/Root/getRouteData.js.map +1 -1
  199. package/dist/views/Root/index.d.ts.map +1 -1
  200. package/dist/views/Root/index.js +11 -17
  201. package/dist/views/Root/index.js.map +1 -1
  202. package/dist/views/Root/isPathMatchingRoute.d.ts.map +1 -1
  203. package/dist/views/Root/metadata.d.ts.map +1 -1
  204. package/dist/views/Root/metadata.js +1 -37
  205. package/dist/views/Root/metadata.js.map +1 -1
  206. package/dist/views/Unauthorized/index.css +44 -0
  207. package/dist/views/Unauthorized/index.d.ts +1 -1
  208. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  209. package/dist/views/Unauthorized/index.js +12 -33
  210. package/dist/views/Unauthorized/index.js.map +1 -1
  211. package/dist/views/Verify/index.d.ts.map +1 -1
  212. package/dist/views/Verify/index.js +2 -1
  213. package/dist/views/Verify/index.js.map +1 -1
  214. package/dist/views/Version/Default/index.css +227 -0
  215. package/dist/views/Version/Default/index.d.ts +1 -1
  216. package/dist/views/Version/Default/index.d.ts.map +1 -1
  217. package/dist/views/Version/Default/index.js +13 -11
  218. package/dist/views/Version/Default/index.js.map +1 -1
  219. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.css +64 -0
  220. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +2 -1
  221. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  222. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +54 -48
  223. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  224. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts +1 -1
  225. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
  226. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  227. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  228. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +3 -3
  229. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  230. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.css +97 -0
  231. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts +4 -0
  232. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts.map +1 -0
  233. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +91 -0
  234. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -0
  235. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +29 -0
  236. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +1 -1
  237. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -1
  238. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +37 -32
  239. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  240. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.css +5 -0
  241. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +1 -1
  242. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  243. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  244. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.css +40 -0
  245. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts +1 -1
  246. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  247. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +3 -6
  248. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  249. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  250. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +213 -0
  251. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +1 -1
  252. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  253. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +47 -25
  254. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  255. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.css +4 -0
  256. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +1 -1
  257. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  258. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +28 -22
  259. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  260. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.css +6 -0
  261. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +1 -1
  262. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  263. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  264. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.css +4 -0
  265. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +1 -1
  266. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  267. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +23 -15
  268. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  269. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +188 -0
  270. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +1 -1
  271. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  272. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +91 -51
  273. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  274. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  275. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +2 -1
  276. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  277. package/dist/views/Version/RenderFieldsToDiff/index.css +24 -0
  278. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  279. package/dist/views/Version/Restore/index.css +26 -0
  280. package/dist/views/Version/Restore/index.d.ts +1 -1
  281. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  282. package/dist/views/Version/Restore/index.js +4 -3
  283. package/dist/views/Version/Restore/index.js.map +1 -1
  284. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  285. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +0 -1
  286. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  287. package/dist/views/Version/VersionPillLabel/VersionPillLabel.d.ts +1 -1
  288. package/dist/views/Version/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  289. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +15 -8
  290. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  291. package/dist/views/Version/VersionPillLabel/index.css +31 -0
  292. package/dist/views/Version/fetchVersions.d.ts.map +1 -1
  293. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  294. package/dist/views/Versions/buildColumns.js +18 -18
  295. package/dist/views/Versions/buildColumns.js.map +1 -1
  296. package/dist/views/Versions/cells/AutosaveCell/index.css +7 -0
  297. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +1 -1
  298. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  299. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  300. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  301. package/dist/views/Versions/index.client.d.ts.map +1 -1
  302. package/dist/views/Versions/index.client.js +7 -23
  303. package/dist/views/Versions/index.client.js.map +1 -1
  304. package/dist/views/Versions/index.css +85 -0
  305. package/dist/views/Versions/index.d.ts +1 -1
  306. package/dist/views/Versions/index.d.ts.map +1 -1
  307. package/dist/views/Versions/index.js +1 -1
  308. package/dist/views/Versions/index.js.map +1 -1
  309. package/dist/withPayload/withPayload.d.ts.map +1 -1
  310. package/dist/withPayload/withPayload.js +9 -23
  311. package/dist/withPayload/withPayload.js.map +1 -1
  312. package/dist/withPayload/withPayload.utils.d.ts +0 -14
  313. package/dist/withPayload/withPayload.utils.d.ts.map +1 -1
  314. package/dist/withPayload/withPayload.utils.js +0 -73
  315. package/dist/withPayload/withPayload.utils.js.map +1 -1
  316. package/package.json +13 -27
  317. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.d.ts +0 -5
  318. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.d.ts.map +0 -1
  319. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +0 -19
  320. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +0 -1
  321. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +0 -12
  322. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +0 -1
  323. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +0 -81
  324. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +0 -1
  325. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +0 -16
  326. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +0 -1
  327. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +0 -66
  328. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +0 -1
  329. package/dist/elements/DocumentHeader/Tabs/index.d.ts +0 -10
  330. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +0 -1
  331. package/dist/elements/DocumentHeader/Tabs/index.js +0 -78
  332. package/dist/elements/DocumentHeader/Tabs/index.js.map +0 -1
  333. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +0 -4
  334. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +0 -1
  335. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +0 -29
  336. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +0 -1
  337. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +0 -11
  338. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +0 -1
  339. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +0 -72
  340. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +0 -1
  341. package/dist/elements/DocumentHeader/index.d.ts +0 -15
  342. package/dist/elements/DocumentHeader/index.d.ts.map +0 -1
  343. package/dist/elements/DocumentHeader/index.js +0 -36
  344. package/dist/elements/DocumentHeader/index.js.map +0 -1
  345. package/dist/elements/FormHeader/index.d.ts +0 -9
  346. package/dist/elements/FormHeader/index.d.ts.map +0 -1
  347. package/dist/elements/FormHeader/index.js +0 -20
  348. package/dist/elements/FormHeader/index.js.map +0 -1
  349. package/dist/elements/Logo/index.d.ts +0 -4
  350. package/dist/elements/Logo/index.d.ts.map +0 -1
  351. package/dist/elements/Logo/index.js +0 -39
  352. package/dist/elements/Logo/index.js.map +0 -1
  353. package/dist/elements/Nav/NavHamburger/index.d.ts +0 -8
  354. package/dist/elements/Nav/NavHamburger/index.d.ts.map +0 -1
  355. package/dist/elements/Nav/NavHamburger/index.js +0 -51
  356. package/dist/elements/Nav/NavHamburger/index.js.map +0 -1
  357. package/dist/elements/Nav/NavWrapper/index.d.ts +0 -10
  358. package/dist/elements/Nav/NavWrapper/index.d.ts.map +0 -1
  359. package/dist/elements/Nav/NavWrapper/index.js +0 -61
  360. package/dist/elements/Nav/NavWrapper/index.js.map +0 -1
  361. package/dist/elements/Nav/SettingsMenuButton/index.d.ts +0 -7
  362. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +0 -1
  363. package/dist/elements/Nav/SettingsMenuButton/index.js +0 -45
  364. package/dist/elements/Nav/SettingsMenuButton/index.js.map +0 -1
  365. package/dist/elements/Nav/getNavPrefs.d.ts +0 -3
  366. package/dist/elements/Nav/getNavPrefs.d.ts.map +0 -1
  367. package/dist/elements/Nav/getNavPrefs.js +0 -27
  368. package/dist/elements/Nav/getNavPrefs.js.map +0 -1
  369. package/dist/elements/Nav/index.client.d.ts +0 -11
  370. package/dist/elements/Nav/index.client.d.ts.map +0 -1
  371. package/dist/elements/Nav/index.client.js +0 -133
  372. package/dist/elements/Nav/index.client.js.map +0 -1
  373. package/dist/elements/Nav/index.d.ts +0 -8
  374. package/dist/elements/Nav/index.d.ts.map +0 -1
  375. package/dist/elements/Nav/index.js +0 -183
  376. package/dist/elements/Nav/index.js.map +0 -1
  377. package/dist/exports/client.d.ts +0 -5
  378. package/dist/exports/client.d.ts.map +0 -1
  379. package/dist/exports/client.js +0 -7
  380. package/dist/exports/client.js.map +0 -1
  381. package/dist/exports/rsc.d.ts +0 -5
  382. package/dist/exports/rsc.d.ts.map +0 -1
  383. package/dist/exports/rsc.js +0 -5
  384. package/dist/exports/rsc.js.map +0 -1
  385. package/dist/exports/templates.d.ts +0 -3
  386. package/dist/exports/templates.d.ts.map +0 -1
  387. package/dist/exports/templates.js +0 -3
  388. package/dist/exports/templates.js.map +0 -1
  389. package/dist/layouts/Root/NestProviders.d.ts +0 -12
  390. package/dist/layouts/Root/NestProviders.d.ts.map +0 -1
  391. package/dist/layouts/Root/NestProviders.js +0 -24
  392. package/dist/layouts/Root/NestProviders.js.map +0 -1
  393. package/dist/layouts/Root/checkDependencies.d.ts +0 -2
  394. package/dist/layouts/Root/checkDependencies.d.ts.map +0 -1
  395. package/dist/layouts/Root/checkDependencies.js +0 -49
  396. package/dist/layouts/Root/checkDependencies.js.map +0 -1
  397. package/dist/layouts/Root/index.d.ts +0 -17
  398. package/dist/layouts/Root/index.d.ts.map +0 -1
  399. package/dist/layouts/Root/index.js +0 -143
  400. package/dist/layouts/Root/index.js.map +0 -1
  401. package/dist/templates/Default/NavHamburger/index.d.ts +0 -3
  402. package/dist/templates/Default/NavHamburger/index.d.ts.map +0 -1
  403. package/dist/templates/Default/NavHamburger/index.js +0 -25
  404. package/dist/templates/Default/NavHamburger/index.js.map +0 -1
  405. package/dist/templates/Default/Wrapper/index.d.ts +0 -8
  406. package/dist/templates/Default/Wrapper/index.d.ts.map +0 -1
  407. package/dist/templates/Default/Wrapper/index.js +0 -49
  408. package/dist/templates/Default/Wrapper/index.js.map +0 -1
  409. package/dist/templates/Default/index.d.ts +0 -17
  410. package/dist/templates/Default/index.d.ts.map +0 -1
  411. package/dist/templates/Default/index.js +0 -129
  412. package/dist/templates/Default/index.js.map +0 -1
  413. package/dist/templates/Minimal/index.d.ts +0 -10
  414. package/dist/templates/Minimal/index.d.ts.map +0 -1
  415. package/dist/templates/Minimal/index.js +0 -21
  416. package/dist/templates/Minimal/index.js.map +0 -1
  417. package/dist/utilities/getPreferences.d.ts +0 -6
  418. package/dist/utilities/getPreferences.d.ts.map +0 -1
  419. package/dist/utilities/getPreferences.js +0 -26
  420. package/dist/utilities/getPreferences.js.map +0 -1
  421. package/dist/utilities/getRequestLocale.d.ts +0 -7
  422. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  423. package/dist/utilities/getRequestLocale.js +0 -20
  424. package/dist/utilities/getRequestLocale.js.map +0 -1
  425. package/dist/utilities/getRequestTheme.d.ts +0 -11
  426. package/dist/utilities/getRequestTheme.d.ts.map +0 -1
  427. package/dist/utilities/getRequestTheme.js +0 -22
  428. package/dist/utilities/getRequestTheme.js.map +0 -1
  429. package/dist/utilities/initReq.d.ts +0 -14
  430. package/dist/utilities/initReq.d.ts.map +0 -1
  431. package/dist/utilities/initReq.js +0 -110
  432. package/dist/utilities/initReq.js.map +0 -1
  433. package/dist/utilities/selectiveCache.d.ts +0 -12
  434. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  435. package/dist/utilities/selectiveCache.js +0 -38
  436. package/dist/utilities/selectiveCache.js.map +0 -1
  437. package/dist/views/API/RenderJSON/index.d.ts +0 -12
  438. package/dist/views/API/RenderJSON/index.d.ts.map +0 -1
  439. package/dist/views/API/RenderJSON/index.js +0 -135
  440. package/dist/views/API/RenderJSON/index.js.map +0 -1
  441. package/dist/views/BrowseByFolder/buildView.d.ts +0 -13
  442. package/dist/views/BrowseByFolder/buildView.d.ts.map +0 -1
  443. package/dist/views/BrowseByFolder/buildView.js +0 -170
  444. package/dist/views/BrowseByFolder/buildView.js.map +0 -1
  445. package/dist/views/BrowseByFolder/index.d.ts +0 -4
  446. package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
  447. package/dist/views/BrowseByFolder/index.js +0 -20
  448. package/dist/views/BrowseByFolder/index.js.map +0 -1
  449. package/dist/views/BrowseByFolder/metadata.d.ts +0 -4
  450. package/dist/views/BrowseByFolder/metadata.d.ts.map +0 -1
  451. package/dist/views/BrowseByFolder/metadata.js +0 -18
  452. package/dist/views/BrowseByFolder/metadata.js.map +0 -1
  453. package/dist/views/CollectionFolders/buildView.d.ts +0 -15
  454. package/dist/views/CollectionFolders/buildView.d.ts.map +0 -1
  455. package/dist/views/CollectionFolders/buildView.js +0 -156
  456. package/dist/views/CollectionFolders/buildView.js.map +0 -1
  457. package/dist/views/CollectionFolders/index.d.ts +0 -4
  458. package/dist/views/CollectionFolders/index.d.ts.map +0 -1
  459. package/dist/views/CollectionFolders/index.js +0 -20
  460. package/dist/views/CollectionFolders/index.js.map +0 -1
  461. package/dist/views/CollectionFolders/metadata.d.ts +0 -7
  462. package/dist/views/CollectionFolders/metadata.d.ts.map +0 -1
  463. package/dist/views/CollectionFolders/metadata.js +0 -25
  464. package/dist/views/CollectionFolders/metadata.js.map +0 -1
  465. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +0 -11
  466. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +0 -1
  467. package/dist/views/CollectionFolders/renderFolderViewSlots.js +0 -64
  468. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +0 -1
  469. package/dist/withPayload/withPayloadLegacy.d.ts +0 -2
  470. package/dist/withPayload/withPayloadLegacy.d.ts.map +0 -1
  471. package/dist/withPayload/withPayloadLegacy.js +0 -47
  472. package/dist/withPayload/withPayloadLegacy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","ChevronIcon","Popup","PopupList","useTranslation","XIcon","React","useMemo","useState","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","padding","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport { ChevronIcon, Popup, PopupList, useTranslation, XIcon } from '@payloadcms/ui'\nimport React, { useMemo, useState } from 'react'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n padding: '6px',\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--theme-success-400)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","ChevronIcon","Popup","PopupList","useTranslation","XIcon","React","useMemo","useState","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport { ChevronIcon, Popup, PopupList, useTranslation, XIcon } from '@payloadcms/ui'\nimport React, { useMemo, useState } from 'react'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--color-bg-success)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,299 @@
1
+ @layer payload-default {
2
+ .modular-dashboard {
3
+ margin: calc(var(--spacer-2-5) / -2);
4
+ width: calc(100% + var(--spacer-2-5));
5
+ }
6
+
7
+ .modular-dashboard .widget {
8
+ padding: calc(var(--spacer-2-5) / 2);
9
+ }
10
+
11
+ .modular-dashboard .widget-content {
12
+ height: 100%;
13
+ }
14
+
15
+ .widget-config-drawer__content {
16
+ height: 100%;
17
+
18
+ .form-submit {
19
+ margin-top: var(--spacer-2-5);
20
+
21
+ .btn {
22
+ width: auto;
23
+ }
24
+ }
25
+ }
26
+
27
+ @media (max-width: 768px) {
28
+ .modular-dashboard .widget {
29
+ width: 100% !important;
30
+ }
31
+
32
+ .modular-dashboard .widget-wrapper__size-btn {
33
+ display: none;
34
+ }
35
+ }
36
+
37
+ .modular-dashboard.editing .widget-content {
38
+ user-select: none;
39
+ -webkit-user-select: none;
40
+ pointer-events: none;
41
+ }
42
+
43
+ .modular-dashboard.editing .draggable {
44
+ cursor: grab;
45
+ }
46
+
47
+ .modular-dashboard .drag-overlay {
48
+ pointer-events: none;
49
+ user-select: none;
50
+ }
51
+
52
+ .modular-dashboard__empty {
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ height: 100%;
57
+ width: 100%;
58
+ padding: var(--spacer-4);
59
+ }
60
+
61
+ body:has(.drag-overlay) * {
62
+ cursor: grabbing;
63
+ }
64
+
65
+ .widget-wrapper__controls {
66
+ opacity: 0;
67
+ transition: opacity 0.2s ease;
68
+ }
69
+
70
+ .widget:focus-visible .widget-wrapper__controls,
71
+ .widget:has(:focus-visible) .widget-wrapper__controls {
72
+ opacity: 1;
73
+ }
74
+
75
+ @keyframes widget-highlight {
76
+ 0% {
77
+ box-shadow: 0 0 0 3px rgba(255, 208, 0, 0.9);
78
+ }
79
+ 100% {
80
+ box-shadow: 0 0 0 3px rgba(255, 208, 0, 0);
81
+ }
82
+ }
83
+
84
+ .widget--highlight {
85
+ animation: widget-highlight 1.5s ease-out forwards;
86
+ border-radius: var(--radius-medium);
87
+ }
88
+
89
+ .widget-wrapper {
90
+ position: relative;
91
+ height: 100%;
92
+ width: 100%;
93
+ }
94
+
95
+ .widget-wrapper--editing .widget-wrapper__controls {
96
+ transition: opacity 0.2s ease;
97
+ }
98
+
99
+ .widget-wrapper--editing:hover .widget-wrapper__controls {
100
+ opacity: 1;
101
+ }
102
+
103
+ .widget-wrapper__controls {
104
+ position: absolute;
105
+ top: var(--spacer-3);
106
+ right: var(--spacer-3);
107
+ z-index: 10;
108
+ display: flex;
109
+ align-items: center;
110
+ gap: var(--spacer-2);
111
+ }
112
+
113
+ .widget-wrapper__delete-btn {
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ width: var(--spacer-4);
118
+ height: var(--spacer-4);
119
+ background: var(--color-bg-danger);
120
+ border: none;
121
+ border-radius: var(--radius-small);
122
+ cursor: pointer;
123
+ color: var(--color-text-ondanger);
124
+ transition: all 0.2s ease;
125
+
126
+ &:hover {
127
+ background: var(--color-bg-danger-hover);
128
+ }
129
+
130
+ &:active {
131
+ background: var(--color-bg-danger-pressed);
132
+ }
133
+
134
+ &:focus-visible {
135
+ outline: var(--accessibility-outline);
136
+ outline-offset: var(--accessibility-outline-offset);
137
+ }
138
+
139
+ & svg {
140
+ pointer-events: none;
141
+ }
142
+ }
143
+
144
+ .widget-wrapper__edit-btn {
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ width: var(--spacer-4);
149
+ height: var(--spacer-4);
150
+ background: var(--color-text);
151
+ border: none;
152
+ border-radius: var(--radius-small);
153
+ cursor: pointer;
154
+ color: var(--color-bg);
155
+ transition: all 0.2s ease;
156
+
157
+ & .icon {
158
+ width: var(--spacer-3);
159
+ height: var(--spacer-3);
160
+ }
161
+
162
+ &:hover {
163
+ background: var(--color-text-secondary);
164
+ }
165
+
166
+ &:active {
167
+ background: var(--color-text-tertiary);
168
+ }
169
+
170
+ & svg {
171
+ pointer-events: none;
172
+ }
173
+ }
174
+
175
+ .widget-wrapper__size-btn {
176
+ display: flex;
177
+ align-items: center;
178
+ gap: var(--spacer-1);
179
+ padding: var(--spacer-1) var(--spacer-2);
180
+ min-width: auto;
181
+ height: var(--spacer-4);
182
+ background: var(--color-bg-inverse);
183
+ border: none;
184
+ border-radius: var(--radius-small);
185
+ cursor: pointer;
186
+ transition: all 0.2s ease;
187
+ font-family: var(--text-body-small-font-family);
188
+ font-size: var(--text-body-small-font-size);
189
+ font-weight: var(--text-body-small-font-weight);
190
+ line-height: var(--text-body-small-line-height);
191
+ letter-spacing: var(--text-body-small-letter-spacing);
192
+ color: var(--color-text-oninverse);
193
+ white-space: nowrap;
194
+
195
+ & .icon .stroke {
196
+ stroke: var(--color-icon-oninverse);
197
+ stroke-width: var(--stroke-width-medium);
198
+ }
199
+
200
+ &:hover {
201
+ background: var(--color-bg-inverse-hover);
202
+ }
203
+
204
+ &:active {
205
+ background: var(--color-bg-inverse-pressed);
206
+ }
207
+
208
+ &:disabled {
209
+ opacity: 0.5;
210
+ cursor: not-allowed;
211
+ }
212
+
213
+ &:disabled:hover {
214
+ background: var(--color-bg-inverse);
215
+ }
216
+
217
+ &:focus-visible {
218
+ outline: var(--accessibility-outline);
219
+ outline-offset: var(--accessibility-outline-offset);
220
+ }
221
+
222
+ & svg {
223
+ pointer-events: none;
224
+ }
225
+ }
226
+
227
+ .widget-wrapper__size-btn-percentage {
228
+ font-family: var(--text-body-small-font-family);
229
+ font-size: var(--text-body-small-font-size);
230
+ margin-left: auto;
231
+ color: var(--color-text-tertiary);
232
+ }
233
+
234
+ .popup-button-list:has(.widget-wrapper__size-btn-label) .popup__scroll-container {
235
+ padding: 0;
236
+ }
237
+
238
+ .popup__content:has(.widget-wrapper__size-btn-label) {
239
+ padding: var(--spacer-1);
240
+ box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
241
+ }
242
+
243
+ .popup-button-list__button:has(.widget-wrapper__size-btn-label) {
244
+ display: flex !important;
245
+ align-items: center !important;
246
+ gap: var(--spacer-3);
247
+ }
248
+
249
+ .popup-button-list__button:has(.widget-wrapper__size-btn-label) .widget-wrapper__size-btn-label {
250
+ flex: 0 0 auto;
251
+ }
252
+
253
+ .popup-button-list__button:has(.widget-wrapper__size-btn-label)
254
+ .widget-wrapper__size-btn-percentage {
255
+ margin-left: auto !important;
256
+ }
257
+
258
+ .step-nav .dashboard-breadcrumb-dropdown .btn {
259
+ padding-right: var(--spacer-1);
260
+ }
261
+
262
+ /* .step-nav .dashboard-breadcrumb-dropdown {
263
+ margin-left: calc(var(--spacer-2) * -1);
264
+ } */
265
+
266
+ .step-nav .dashboard-breadcrumb-dropdown__editing {
267
+ align-items: center;
268
+ display: flex !important;
269
+ gap: var(--spacer-2-5);
270
+
271
+ > span:first-child {
272
+ padding-left: var(--spacer-1);
273
+ }
274
+ }
275
+
276
+ .step-nav .dashboard-breadcrumb-dropdown__actions {
277
+ display: flex !important;
278
+ gap: var(--spacer-2-5);
279
+ }
280
+
281
+ .step-nav .dashboard-breadcrumb-dropdown__label {
282
+ display: flex;
283
+ align-items: center;
284
+ gap: var(--spacer-1);
285
+ }
286
+
287
+ .step-nav .drawer-toggler--unstyled {
288
+ background: transparent;
289
+ margin: 0;
290
+ padding: 0;
291
+ outline: none;
292
+ box-shadow: none;
293
+
294
+ &:hover,
295
+ &:focus {
296
+ background: transparent;
297
+ }
298
+ }
299
+ }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { DashboardViewServerProps } from '../index.js';
3
- import './index.scss';
3
+ import './index.css';
4
4
  export declare function ModularDashboard(props: DashboardViewServerProps): Promise<React.JSX.Element>;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAO3D,OAAO,cAAc,CAAA;AAIrB,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,8BAiDrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAO3D,OAAO,aAAa,CAAA;AAIpB,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,8BAiDrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RenderServerComponent","React","ModularDashboardClient","getItemsFromConfig","getItemsFromPreferences","extractLocaleData","ModularDashboard","props","defaultLayout","widgets","payload","config","admin","dashboard","importMap","user","cookies","locale","permissions","req","initPageResult","i18n","layout","serverLayout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","widgetConfig","find","widget","slug","widgetData","fields","length","data","component","Component","serverProps","item","clientWidgets","_","__","label","rest","t","_jsx","clientLayout"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { ClientWidget, Field, WidgetServerProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport type { DashboardViewServerProps } from '../index.js'\nimport type { WidgetInstanceClient } from './index.client.js'\n\nimport { ModularDashboardClient } from './index.client.js'\nimport { getItemsFromConfig } from './utils/getItemsFromConfig.js'\nimport { getItemsFromPreferences } from './utils/getItemsFromPreferences.js'\nimport { extractLocaleData } from './utils/localeUtils.js'\nimport './index.scss'\n\ntype ServerLayout = WidgetInstanceClient[]\n\nexport async function ModularDashboard(props: DashboardViewServerProps) {\n const { defaultLayout = [], widgets = [] } = props.payload.config.admin.dashboard || {}\n const { importMap } = props.payload\n const { user } = props\n const { cookies, locale, permissions, req } = props.initPageResult\n const { i18n } = req\n\n const layout =\n (await getItemsFromPreferences(props.payload, user)) ??\n (await getItemsFromConfig(defaultLayout, req, widgets))\n\n const serverLayout: ServerLayout = layout.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n const widgetData = widgetConfig?.fields?.length\n ? extractLocaleData(layoutItem.data || {}, req.locale || 'en', widgetConfig.fields as Field[])\n : layoutItem.data || {}\n\n return {\n component: RenderServerComponent({\n Component: widgetConfig?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n widgetData,\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n // Resolve function labels to static labels for client components\n const clientWidgets: ClientWidget[] = widgets.map((widget) => {\n const { Component: _, fields: __, label, ...rest } = widget\n return {\n ...rest,\n label: typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n })\n\n return (\n <div>\n <ModularDashboardClient clientLayout={serverLayout} widgets={clientWidgets} />\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAKlB,SAASC,sBAAsB,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,iBAAiB,QAAQ;AAKlC,OAAO,eAAeC,iBAAiBC,KAA+B;EACpE,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGF,KAAA,CAAMG,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACtF,MAAM;IAAEC;EAAS,CAAE,GAAGP,KAAA,CAAMG,OAAO;EACnC,MAAM;IAAEK;EAAI,CAAE,GAAGR,KAAA;EACjB,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAGZ,KAAA,CAAMa,cAAc;EAClE,MAAM;IAAEC;EAAI,CAAE,GAAGF,GAAA;EAEjB,MAAMG,MAAA,GACJ,OAAOlB,uBAAA,CAAwBG,KAAA,CAAMG,OAAO,EAAEK,IAAA,OAC7C,MAAMZ,kBAAA,CAAmBK,aAAA,EAAeW,GAAA,EAAKV,OAAA;EAEhD,MAAMc,YAAA,GAA6BD,MAAA,CAAOE,GAAG,CAAEC,UAAA;IAC7C,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,MAAMC,YAAA,GAAerB,OAAA,CAAQsB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKP,UAAA;IAC9D,MAAMQ,UAAA,GAAaJ,YAAA,EAAcK,MAAA,EAAQC,MAAA,GACrC/B,iBAAA,CAAkBoB,UAAA,CAAWY,IAAI,IAAI,CAAC,GAAGlB,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAaK,MAAM,IAChFV,UAAA,CAAWY,IAAI,IAAI,CAAC;IAExB,OAAO;MACLC,SAAA,EAAWtC,qBAAA,CAAsB;QAC/BuC,SAAA,EAAWT,YAAA,EAAcS,SAAA;QACzBzB,SAAA;QACA0B,WAAA,EAAa;UACXxB,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAe,UAAA;UACAR;QACF;MACF;MACAe,IAAA,EAAMhB;IACR;EACF;EAEA;EACA,MAAMiB,aAAA,GAAgCjC,OAAA,CAAQe,GAAG,CAAEQ,MAAA;IACjD,MAAM;MAAEO,SAAA,EAAWI,CAAC;MAAER,MAAA,EAAQS,EAAE;MAAEC,KAAK;MAAE,GAAGC;IAAA,CAAM,GAAGd,MAAA;IACrD,OAAO;MACL,GAAGc,IAAI;MACPD,KAAA,EAAO,OAAOA,KAAA,KAAU,aAAaA,KAAA,CAAM;QAAExB,IAAA;QAAM0B,CAAA,EAAG1B,IAAA,CAAK0B;MAAe,KAAKF;IACjF;EACF;EAEA,oBACEG,IAAA,CAAC;cACC,aAAAA,IAAA,CAAC9C,sBAAA;MAAuB+C,YAAA,EAAc1B,YAAA;MAAcd,OAAA,EAASiC;;;AAGnE","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","React","ModularDashboardClient","getItemsFromConfig","getItemsFromPreferences","extractLocaleData","ModularDashboard","props","defaultLayout","widgets","payload","config","admin","dashboard","importMap","user","cookies","locale","permissions","req","initPageResult","i18n","layout","serverLayout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","widgetConfig","find","widget","slug","widgetData","fields","length","data","component","Component","serverProps","item","clientWidgets","_","__","label","rest","t","_jsx","clientLayout"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { ClientWidget, Field, WidgetServerProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport type { DashboardViewServerProps } from '../index.js'\nimport type { WidgetInstanceClient } from './index.client.js'\n\nimport { ModularDashboardClient } from './index.client.js'\nimport { getItemsFromConfig } from './utils/getItemsFromConfig.js'\nimport { getItemsFromPreferences } from './utils/getItemsFromPreferences.js'\nimport { extractLocaleData } from './utils/localeUtils.js'\nimport './index.css'\n\ntype ServerLayout = WidgetInstanceClient[]\n\nexport async function ModularDashboard(props: DashboardViewServerProps) {\n const { defaultLayout = [], widgets = [] } = props.payload.config.admin.dashboard || {}\n const { importMap } = props.payload\n const { user } = props\n const { cookies, locale, permissions, req } = props.initPageResult\n const { i18n } = req\n\n const layout =\n (await getItemsFromPreferences(props.payload, user)) ??\n (await getItemsFromConfig(defaultLayout, req, widgets))\n\n const serverLayout: ServerLayout = layout.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n const widgetData = widgetConfig?.fields?.length\n ? extractLocaleData(layoutItem.data || {}, req.locale || 'en', widgetConfig.fields)\n : layoutItem.data || {}\n\n return {\n component: RenderServerComponent({\n Component: widgetConfig?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n widgetData,\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n // Resolve function labels to static labels for client components\n const clientWidgets: ClientWidget[] = widgets.map((widget) => {\n const { Component: _, fields: __, label, ...rest } = widget\n return {\n ...rest,\n label: typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n })\n\n return (\n <div>\n <ModularDashboardClient clientLayout={serverLayout} widgets={clientWidgets} />\n </div>\n )\n}\n"],"mappings":";AAGA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAKlB,SAASC,sBAAsB,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,iBAAiB,QAAQ;AAKlC,OAAO,eAAeC,iBAAiBC,KAA+B;EACpE,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGF,KAAA,CAAMG,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACtF,MAAM;IAAEC;EAAS,CAAE,GAAGP,KAAA,CAAMG,OAAO;EACnC,MAAM;IAAEK;EAAI,CAAE,GAAGR,KAAA;EACjB,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAGZ,KAAA,CAAMa,cAAc;EAClE,MAAM;IAAEC;EAAI,CAAE,GAAGF,GAAA;EAEjB,MAAMG,MAAA,GACJ,OAAOlB,uBAAA,CAAwBG,KAAA,CAAMG,OAAO,EAAEK,IAAA,OAC7C,MAAMZ,kBAAA,CAAmBK,aAAA,EAAeW,GAAA,EAAKV,OAAA;EAEhD,MAAMc,YAAA,GAA6BD,MAAA,CAAOE,GAAG,CAAEC,UAAA;IAC7C,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,MAAMC,YAAA,GAAerB,OAAA,CAAQsB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKP,UAAA;IAC9D,MAAMQ,UAAA,GAAaJ,YAAA,EAAcK,MAAA,EAAQC,MAAA,GACrC/B,iBAAA,CAAkBoB,UAAA,CAAWY,IAAI,IAAI,CAAC,GAAGlB,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAaK,MAAM,IAChFV,UAAA,CAAWY,IAAI,IAAI,CAAC;IAExB,OAAO;MACLC,SAAA,EAAWtC,qBAAA,CAAsB;QAC/BuC,SAAA,EAAWT,YAAA,EAAcS,SAAA;QACzBzB,SAAA;QACA0B,WAAA,EAAa;UACXxB,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAe,UAAA;UACAR;QACF;MACF;MACAe,IAAA,EAAMhB;IACR;EACF;EAEA;EACA,MAAMiB,aAAA,GAAgCjC,OAAA,CAAQe,GAAG,CAAEQ,MAAA;IACjD,MAAM;MAAEO,SAAA,EAAWI,CAAC;MAAER,MAAA,EAAQS,EAAE;MAAEC,KAAK;MAAE,GAAGC;IAAA,CAAM,GAAGd,MAAA;IACrD,OAAO;MACL,GAAGc,IAAI;MACPD,KAAA,EAAO,OAAOA,KAAA,KAAU,aAAaA,KAAA,CAAM;QAAExB,IAAA;QAAM0B,CAAA,EAAG1B,IAAA,CAAK0B;MAAe,KAAKF;IACjF;EACF;EAEA,oBACEG,IAAA,CAAC;cACC,aAAAA,IAAA,CAAC9C,sBAAA;MAAuB+C,YAAA,EAAc1B,YAAA;MAAcd,OAAA,EAASiC;;;AAGnE","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderWidgetServerFn.js","names":["RenderServerComponent","React","extractLocaleData","renderWidgetHandler","cookies","locale","permissions","req","widgetData","widgetSlug","user","Error","widgets","payload","config","admin","dashboard","importMap","widgetConfig","find","widget","slug","component","createElement","style","background","border","borderRadius","color","padding","textAlign","localeFilteredData","fields","length","serverProps","Component","error","errorMessage","message","String","logger","err","msg"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.ts"],"sourcesContent":["import type { Field, ServerFunction, WidgetServerProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { extractLocaleData } from '../utils/localeUtils.js'\n\nexport type RenderWidgetServerFnArgs = {\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * The slug of the widget to render\n */\n widgetSlug: string\n}\n\nexport type RenderWidgetServerFnReturnType = {\n component: React.ReactNode\n}\n\n/**\n * Server function to render a widget on-demand.\n * Similar to render-field but specifically for dashboard widgets.\n */\nexport const renderWidgetHandler: ServerFunction<\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType\n> = ({ cookies, locale, permissions, req, widgetData, widgetSlug }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { widgets } = req.payload.config.admin.dashboard\n const { importMap } = req.payload\n\n // Find the widget configuration\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n\n if (!widgetConfig) {\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-elevation-50)',\n border: '1px solid var(--theme-elevation-200)',\n borderRadius: '4px',\n color: 'var(--theme-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n `Widget \"${widgetSlug}\" not found`,\n ),\n }\n }\n\n try {\n const localeFilteredData = widgetConfig.fields?.length\n ? extractLocaleData(widgetData || {}, req.locale || 'en', widgetConfig.fields as Field[])\n : widgetData || {}\n\n const serverProps: WidgetServerProps = {\n cookies,\n locale,\n permissions,\n req,\n widgetData: localeFilteredData,\n widgetSlug,\n }\n\n // Render the widget server component\n const component = RenderServerComponent({\n Component: widgetConfig.Component,\n importMap,\n serverProps,\n })\n\n return { component }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n req.payload.logger.error({\n err: error,\n msg: `Error rendering widget \"${widgetSlug}\": ${errorMessage}`,\n })\n\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-error-50)',\n border: '1px solid var(--theme-error-200)',\n borderRadius: '4px',\n color: 'var(--theme-error-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n 'Error loading widget',\n ),\n }\n }\n}\n"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,iBAAiB,QAAQ;AAiBlC;;;;AAIA,OAAO,MAAMC,mBAAA,GAGTA,CAAC;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC,GAAG;EAAEC,UAAU;EAAEC;AAAU,CAAE;EAChE,IAAI,CAACF,GAAA,CAAIG,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAO,CAAE,GAAGL,GAAA,CAAIM,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS;EACtD,MAAM;IAAEC;EAAS,CAAE,GAAGV,GAAA,CAAIM,OAAO;EAEjC;EACA,MAAMK,YAAA,GAAeN,OAAA,CAAQO,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKZ,UAAA;EAE9D,IAAI,CAACS,YAAA,EAAc;IACjB,OAAO;MACLI,SAAA,EAAWrB,KAAA,CAAMsB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA,WAAWrB,UAAA,aAAuB;IAEtC;EACF;EAEA,IAAI;IACF,MAAMsB,kBAAA,GAAqBb,YAAA,CAAac,MAAM,EAAEC,MAAA,GAC5C/B,iBAAA,CAAkBM,UAAA,IAAc,CAAC,GAAGD,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAac,MAAM,IAC3ExB,UAAA,IAAc,CAAC;IAEnB,MAAM0B,WAAA,GAAiC;MACrC9B,OAAA;MACAC,MAAA;MACAC,WAAA;MACAC,GAAA;MACAC,UAAA,EAAYuB,kBAAA;MACZtB;IACF;IAEA;IACA,MAAMa,SAAA,GAAYtB,qBAAA,CAAsB;MACtCmC,SAAA,EAAWjB,YAAA,CAAaiB,SAAS;MACjClB,SAAA;MACAiB;IACF;IAEA,OAAO;MAAEZ;IAAU;EACrB,EAAE,OAAOc,KAAA,EAAO;IACd,MAAMC,YAAA,GAAeD,KAAA,YAAiBzB,KAAA,GAAQyB,KAAA,CAAME,OAAO,GAAGC,MAAA,CAAOH,KAAA;IAErE7B,GAAA,CAAIM,OAAO,CAAC2B,MAAM,CAACJ,KAAK,CAAC;MACvBK,GAAA,EAAKL,KAAA;MACLM,GAAA,EAAK,2BAA2BjC,UAAA,MAAgB4B,YAAA;IAClD;IAEA,OAAO;MACLf,SAAA,EAAWrB,KAAA,CAAMsB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA;IAEJ;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"renderWidgetServerFn.js","names":["RenderServerComponent","React","extractLocaleData","renderWidgetHandler","cookies","locale","permissions","req","widgetData","widgetSlug","user","Error","widgets","payload","config","admin","dashboard","importMap","widgetConfig","find","widget","slug","component","createElement","style","background","border","borderRadius","color","padding","textAlign","localeFilteredData","fields","length","serverProps","Component","error","errorMessage","message","String","logger","err","msg"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.ts"],"sourcesContent":["import type { Field, ServerFunction, WidgetServerProps } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { extractLocaleData } from '../utils/localeUtils.js'\n\nexport type RenderWidgetServerFnArgs = {\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * The slug of the widget to render\n */\n widgetSlug: string\n}\n\nexport type RenderWidgetServerFnReturnType = {\n component: React.ReactNode\n}\n\n/**\n * Server function to render a widget on-demand.\n * Similar to render-field but specifically for dashboard widgets.\n */\nexport const renderWidgetHandler: ServerFunction<\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType\n> = ({ cookies, locale, permissions, req, widgetData, widgetSlug }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { widgets } = req.payload.config.admin.dashboard\n const { importMap } = req.payload\n\n // Find the widget configuration\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n\n if (!widgetConfig) {\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-elevation-50)',\n border: '1px solid var(--theme-elevation-200)',\n borderRadius: '4px',\n color: 'var(--theme-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n `Widget \"${widgetSlug}\" not found`,\n ),\n }\n }\n\n try {\n const localeFilteredData = widgetConfig.fields?.length\n ? extractLocaleData(widgetData || {}, req.locale || 'en', widgetConfig.fields)\n : widgetData || {}\n\n const serverProps: WidgetServerProps = {\n cookies,\n locale,\n permissions,\n req,\n widgetData: localeFilteredData,\n widgetSlug,\n }\n\n // Render the widget server component\n const component = RenderServerComponent({\n Component: widgetConfig.Component,\n importMap,\n serverProps,\n })\n\n return { component }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n req.payload.logger.error({\n err: error,\n msg: `Error rendering widget \"${widgetSlug}\": ${errorMessage}`,\n })\n\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-error-50)',\n border: '1px solid var(--theme-error-200)',\n borderRadius: '4px',\n color: 'var(--theme-error-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n 'Error loading widget',\n ),\n }\n }\n}\n"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,iBAAiB,QAAQ;AAiBlC;;;;AAIA,OAAO,MAAMC,mBAAA,GAGTA,CAAC;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC,GAAG;EAAEC,UAAU;EAAEC;AAAU,CAAE;EAChE,IAAI,CAACF,GAAA,CAAIG,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAO,CAAE,GAAGL,GAAA,CAAIM,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS;EACtD,MAAM;IAAEC;EAAS,CAAE,GAAGV,GAAA,CAAIM,OAAO;EAEjC;EACA,MAAMK,YAAA,GAAeN,OAAA,CAAQO,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKZ,UAAA;EAE9D,IAAI,CAACS,YAAA,EAAc;IACjB,OAAO;MACLI,SAAA,EAAWrB,KAAA,CAAMsB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA,WAAWrB,UAAA,aAAuB;IAEtC;EACF;EAEA,IAAI;IACF,MAAMsB,kBAAA,GAAqBb,YAAA,CAAac,MAAM,EAAEC,MAAA,GAC5C/B,iBAAA,CAAkBM,UAAA,IAAc,CAAC,GAAGD,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAac,MAAM,IAC3ExB,UAAA,IAAc,CAAC;IAEnB,MAAM0B,WAAA,GAAiC;MACrC9B,OAAA;MACAC,MAAA;MACAC,WAAA;MACAC,GAAA;MACAC,UAAA,EAAYuB,kBAAA;MACZtB;IACF;IAEA;IACA,MAAMa,SAAA,GAAYtB,qBAAA,CAAsB;MACtCmC,SAAA,EAAWjB,YAAA,CAAaiB,SAAS;MACjClB,SAAA;MACAiB;IACF;IAEA,OAAO;MAAEZ;IAAU;EACrB,EAAE,OAAOc,KAAA,EAAO;IACd,MAAMC,YAAA,GAAeD,KAAA,YAAiBzB,KAAA,GAAQyB,KAAA,CAAME,OAAO,GAAGC,MAAA,CAAOH,KAAA;IAErE7B,GAAA,CAAIM,OAAO,CAAC2B,MAAM,CAACJ,KAAK,CAAC;MACvBK,GAAA,EAAKL,KAAA;MACLM,GAAA,EAAK,2BAA2BjC,UAAA,MAAgB4B,YAAA;IAClD;IAEA,OAAO;MACLf,SAAA,EAAWrB,KAAA,CAAMsB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA;IAEJ;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getItemsFromPreferences.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,CAe9B"}
1
+ {"version":3,"file":"getItemsFromPreferences.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,CAe9B"}
@@ -1,5 +1,5 @@
1
+ import { getPreferences } from '@payloadcms/ui/rsc';
1
2
  import { PREFERENCE_KEYS } from 'payload/shared';
2
- import { getPreferences } from '../../../../../utilities/getPreferences.js';
3
3
  export async function getItemsFromPreferences(payload, user) {
4
4
  const savedPreferences = await getPreferences(PREFERENCE_KEYS.DASHBOARD_LAYOUT, payload, user.id, user.collection);
5
5
  if (!savedPreferences?.value || typeof savedPreferences.value !== 'object' || !('layouts' in savedPreferences.value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"getItemsFromPreferences.js","names":["PREFERENCE_KEYS","getPreferences","getItemsFromPreferences","payload","user","savedPreferences","DASHBOARD_LAYOUT","id","collection","value","layouts"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"sourcesContent":["import type { BasePayload, TypedUser } from 'payload'\n\nimport { PREFERENCE_KEYS } from 'payload/shared'\n\nimport type { WidgetItem } from '../index.client.js'\n\nimport { getPreferences } from '../../../../../utilities/getPreferences.js'\n\nexport async function getItemsFromPreferences(\n payload: BasePayload,\n user: TypedUser,\n): Promise<null | WidgetItem[]> {\n const savedPreferences = await getPreferences(\n PREFERENCE_KEYS.DASHBOARD_LAYOUT,\n payload,\n user.id,\n user.collection,\n )\n if (\n !savedPreferences?.value ||\n typeof savedPreferences.value !== 'object' ||\n !('layouts' in savedPreferences.value)\n ) {\n return null\n }\n return savedPreferences.value.layouts as null | WidgetItem[]\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ;AAIhC,SAASC,cAAc,QAAQ;AAE/B,OAAO,eAAeC,wBACpBC,OAAoB,EACpBC,IAAe;EAEf,MAAMC,gBAAA,GAAmB,MAAMJ,cAAA,CAC7BD,eAAA,CAAgBM,gBAAgB,EAChCH,OAAA,EACAC,IAAA,CAAKG,EAAE,EACPH,IAAA,CAAKI,UAAU;EAEjB,IACE,CAACH,gBAAA,EAAkBI,KAAA,IACnB,OAAOJ,gBAAA,CAAiBI,KAAK,KAAK,YAClC,EAAE,aAAaJ,gBAAA,CAAiBI,KAAK,CAAD,EACpC;IACA,OAAO;EACT;EACA,OAAOJ,gBAAA,CAAiBI,KAAK,CAACC,OAAO;AACvC","ignoreList":[]}
1
+ {"version":3,"file":"getItemsFromPreferences.js","names":["getPreferences","PREFERENCE_KEYS","getItemsFromPreferences","payload","user","savedPreferences","DASHBOARD_LAYOUT","id","collection","value","layouts"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"sourcesContent":["import type { BasePayload, TypedUser } from 'payload'\n\nimport { getPreferences } from '@payloadcms/ui/rsc'\nimport { PREFERENCE_KEYS } from 'payload/shared'\n\nimport type { WidgetItem } from '../index.client.js'\n\nexport async function getItemsFromPreferences(\n payload: BasePayload,\n user: TypedUser,\n): Promise<null | WidgetItem[]> {\n const savedPreferences = await getPreferences(\n PREFERENCE_KEYS.DASHBOARD_LAYOUT,\n payload,\n user.id,\n user.collection,\n )\n if (\n !savedPreferences?.value ||\n typeof savedPreferences.value !== 'object' ||\n !('layouts' in savedPreferences.value)\n ) {\n return null\n }\n return savedPreferences.value.layouts as null | WidgetItem[]\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,SAASC,eAAe,QAAQ;AAIhC,OAAO,eAAeC,wBACpBC,OAAoB,EACpBC,IAAe;EAEf,MAAMC,gBAAA,GAAmB,MAAML,cAAA,CAC7BC,eAAA,CAAgBK,gBAAgB,EAChCH,OAAA,EACAC,IAAA,CAAKG,EAAE,EACPH,IAAA,CAAKI,UAAU;EAEjB,IACE,CAACH,gBAAA,EAAkBI,KAAA,IACnB,OAAOJ,gBAAA,CAAiBI,KAAK,KAAK,YAClC,EAAE,aAAaJ,gBAAA,CAAiBI,KAAK,CAAD,EACpC;IACA,OAAO;EACT;EACA,OAAOJ,gBAAA,CAAiBI,KAAK,CAACC,OAAO;AACvC","ignoreList":[]}
@@ -14,12 +14,6 @@ export type DashboardViewServerPropsOnly = {
14
14
  lockDuration?: number;
15
15
  slug: string;
16
16
  }>;
17
- /**
18
- * @deprecated
19
- * This prop is deprecated and will be removed in the next major version.
20
- * Components now import their own `Link` directly from `next/link`.
21
- */
22
- Link?: React.ComponentType;
23
17
  navGroups?: ReturnType<typeof groupNavItems>;
24
18
  } & AdminViewServerPropsOnly;
25
19
  export type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAe,MAAM,SAAS,CAAA;AAIxF,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAWD,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;CAC7C,GAAG,wBAAwB,CAAA;AAE5B,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,4BAA4B,CAAA;AAE9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,qBAqC/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Dashboard/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAe,MAAM,SAAS,CAAA;AAIxF,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAWD,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE;YAAE,SAAS,EAAE,OAAO,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;QAC/F,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;IACF,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;CAC7C,GAAG,wBAAwB,CAAA;AAE5B,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,4BAA4B,CAAA;AAE9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,qBAuC/D"}
@@ -12,6 +12,7 @@ export function DefaultDashboard(props) {
12
12
  payload,
13
13
  permissions,
14
14
  searchParams,
15
+ server,
15
16
  user
16
17
  } = props;
17
18
  const {
@@ -30,6 +31,7 @@ export function DefaultDashboard(props) {
30
31
  payload,
31
32
  permissions,
32
33
  searchParams,
34
+ server,
33
35
  user
34
36
  }
35
37
  }), /*#__PURE__*/_jsx(ModularDashboard, {
@@ -44,6 +46,7 @@ export function DefaultDashboard(props) {
44
46
  payload,
45
47
  permissions,
46
48
  searchParams,
49
+ server,
47
50
  user
48
51
  }
49
52
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Gutter","RenderServerComponent","React","ModularDashboard","baseClass","DefaultDashboard","props","i18n","locale","params","payload","permissions","searchParams","user","afterDashboard","beforeDashboard","config","admin","components","_jsxs","className","Component","importMap","serverProps","_jsx"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { AdminViewServerPropsOnly, ClientUser, Locale, ServerProps } from 'payload'\n\nimport { Gutter } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { ModularDashboard } from './ModularDashboard/index.js'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\n// Neither DashboardViewClientProps, DashboardViewServerPropsOnly, nor\n// DashboardViewServerProps make much sense. They were created\n// before the modular dashboard existed, and they are tightly coupled to\n// the default layout of collection and global cards. All of their values\n// could have been derived from the req object, and the same likely applies\n// to other views. These types remain only for backward compatibility.\n// It is recommended to use the modular dashboard widgets, which have props\n// that are more agnostic to their content.\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n navGroups?: ReturnType<typeof groupNavItems>\n} & AdminViewServerPropsOnly\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const { i18n, locale, params, payload, permissions, searchParams, user } = props\n const { afterDashboard, beforeDashboard } = payload.config.admin.components\n\n return (\n <Gutter className={baseClass}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n <ModularDashboard {...props} />\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n </Gutter>\n )\n}\n"],"mappings":";AAGA,SAASA,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAgClB,OAAO,SAASC,iBAAiBC,KAA+B;EAC9D,MAAM;IAAEC,IAAI;IAAEC,MAAM;IAAEC,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAEC,YAAY;IAAEC;EAAI,CAAE,GAAGP,KAAA;EAC3E,MAAM;IAAEQ,cAAc;IAAEC;EAAe,CAAE,GAAGL,OAAA,CAAQM,MAAM,CAACC,KAAK,CAACC,UAAU;EAE3E,oBACEC,KAAA,CAACnB,MAAA;IAAOoB,SAAA,EAAWhB,SAAA;eAChBW,eAAA,IACCd,qBAAA,CAAsB;MACpBoB,SAAA,EAAWN,eAAA;MACXO,SAAA,EAAWZ,OAAA,CAAQY,SAAS;MAC5BC,WAAA,EAAa;QACXhB,IAAA;QACAC,MAAA;QACAC,MAAA;QACAC,OAAA;QACAC,WAAA;QACAC,YAAA;QACAC;MACF;IACF,I,aACFW,IAAA,CAACrB,gBAAA;MAAkB,GAAGG;QACrBQ,cAAA,IACCb,qBAAA,CAAsB;MACpBoB,SAAA,EAAWP,cAAA;MACXQ,SAAA,EAAWZ,OAAA,CAAQY,SAAS;MAC5BC,WAAA,EAAa;QACXhB,IAAA;QACAC,MAAA;QACAC,MAAA;QACAC,OAAA;QACAC,WAAA;QACAC,YAAA;QACAC;MACF;IACF;;AAGR","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Gutter","RenderServerComponent","React","ModularDashboard","baseClass","DefaultDashboard","props","i18n","locale","params","payload","permissions","searchParams","server","user","afterDashboard","beforeDashboard","config","admin","components","_jsxs","className","Component","importMap","serverProps","_jsx"],"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { AdminViewServerPropsOnly, ClientUser, Locale, ServerProps } from 'payload'\n\nimport { Gutter } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { ModularDashboard } from './ModularDashboard/index.js'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\n// Neither DashboardViewClientProps, DashboardViewServerPropsOnly, nor\n// DashboardViewServerProps make much sense. They were created\n// before the modular dashboard existed, and they are tightly coupled to\n// the default layout of collection and global cards. All of their values\n// could have been derived from the req object, and the same likely applies\n// to other views. These types remain only for backward compatibility.\n// It is recommended to use the modular dashboard widgets, which have props\n// that are more agnostic to their content.\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n navGroups?: ReturnType<typeof groupNavItems>\n} & AdminViewServerPropsOnly\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const { i18n, locale, params, payload, permissions, searchParams, server, user } = props\n const { afterDashboard, beforeDashboard } = payload.config.admin.components\n\n return (\n <Gutter className={baseClass}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n server,\n user,\n } satisfies ServerProps,\n })}\n <ModularDashboard {...props} />\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n server,\n user,\n } satisfies ServerProps,\n })}\n </Gutter>\n )\n}\n"],"mappings":";AAGA,SAASA,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AA0BlB,OAAO,SAASC,iBAAiBC,KAA+B;EAC9D,MAAM;IAAEC,IAAI;IAAEC,MAAM;IAAEC,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAEC,YAAY;IAAEC,MAAM;IAAEC;EAAI,CAAE,GAAGR,KAAA;EACnF,MAAM;IAAES,cAAc;IAAEC;EAAe,CAAE,GAAGN,OAAA,CAAQO,MAAM,CAACC,KAAK,CAACC,UAAU;EAE3E,oBACEC,KAAA,CAACpB,MAAA;IAAOqB,SAAA,EAAWjB,SAAA;eAChBY,eAAA,IACCf,qBAAA,CAAsB;MACpBqB,SAAA,EAAWN,eAAA;MACXO,SAAA,EAAWb,OAAA,CAAQa,SAAS;MAC5BC,WAAA,EAAa;QACXjB,IAAA;QACAC,MAAA;QACAC,MAAA;QACAC,OAAA;QACAC,WAAA;QACAC,YAAA;QACAC,MAAA;QACAC;MACF;IACF,I,aACFW,IAAA,CAACtB,gBAAA;MAAkB,GAAGG;QACrBS,cAAA,IACCd,qBAAA,CAAsB;MACpBqB,SAAA,EAAWP,cAAA;MACXQ,SAAA,EAAWb,OAAA,CAAQa,SAAS;MAC5BC,WAAA,EAAa;QACXjB,IAAA;QACAC,MAAA;QACAC,MAAA;QACAC,OAAA;QACAC,WAAA;QACAC,YAAA;QACAC,MAAA;QACAC;MACF;IACF;;AAGR","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,wBAAsB,aAAa,CAAC,KAAK,EAAE,oBAAoB,8BA0C9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Dashboard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,wBAAsB,aAAa,CAAC,KAAK,EAAE,oBAAoB,8BA2C9D"}
@@ -41,6 +41,7 @@ export async function DashboardView(props) {
41
41
  navGroups,
42
42
  payload,
43
43
  permissions,
44
+ server: req.server,
44
45
  user,
45
46
  visibleEntities
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","getGlobalData","getNavGroups","React","Fragment","DefaultDashboard","DashboardView","props","locale","permissions","req","i18n","payload","config","user","visibleEntities","initPageResult","globalData","navGroups","_jsxs","_jsx","nav","clientProps","Component","admin","components","views","dashboard","Fallback","importMap","serverProps"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { AdminViewServerProps } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getGlobalData, getNavGroups } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DashboardViewClientProps, DashboardViewServerPropsOnly } from './Default/index.js'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport async function DashboardView(props: AdminViewServerProps) {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = props.initPageResult\n\n const globalData = await getGlobalData(req)\n const navGroups = getNavGroups(permissions, visibleEntities, config, i18n)\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n {RenderServerComponent({\n clientProps: {\n locale,\n } satisfies DashboardViewClientProps,\n Component: config.admin?.components?.views?.dashboard?.Component,\n Fallback: DefaultDashboard,\n importMap: payload.importMap,\n serverProps: {\n ...props,\n globalData,\n i18n,\n locale,\n navGroups,\n payload,\n permissions,\n user,\n visibleEntities,\n } satisfies DashboardViewServerPropsOnly,\n })}\n </Fragment>\n )\n}\n"],"mappings":";AAEA,SAASA,mBAAmB,EAAEC,UAAU,QAAQ;AAChD,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,EAAEC,YAAY,QAAQ;AAC5C,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,gBAAgB,QAAQ;AAEjC,OAAO,eAAeC,cAAcC,KAA2B;EAC7D,MAAM;IACJC,MAAM;IACNC,WAAW;IACXC,GAAA,EAAK;MACHC,IAAI;MACJC,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBD,OAAO;MACPE;IAAI,CACL;IACDJ,GAAG;IACHK;EAAe,CAChB,GAAGR,KAAA,CAAMS,cAAc;EAExB,MAAMC,UAAA,GAAa,MAAMhB,aAAA,CAAcS,GAAA;EACvC,MAAMQ,SAAA,GAAYhB,YAAA,CAAaO,WAAA,EAAaM,eAAA,EAAiBF,MAAA,EAAQF,IAAA;EAErE,oBACEQ,KAAA,CAACf,QAAA;4BACCgB,IAAA,CAACtB,mBAAA;MAAoBW,WAAA,EAAaA;qBAClCW,IAAA,CAACrB,UAAA;MAAWsB,GAAA,EAAK;QAChBrB,qBAAA,CAAsB;MACrBsB,WAAA,EAAa;QACXd;MACF;MACAe,SAAA,EAAWV,MAAA,CAAOW,KAAK,EAAEC,UAAA,EAAYC,KAAA,EAAOC,SAAA,EAAWJ,SAAA;MACvDK,QAAA,EAAUvB,gBAAA;MACVwB,SAAA,EAAWjB,OAAA,CAAQiB,SAAS;MAC5BC,WAAA,EAAa;QACX,GAAGvB,KAAK;QACRU,UAAA;QACAN,IAAA;QACAH,MAAA;QACAU,SAAA;QACAN,OAAA;QACAH,WAAA;QACAK,IAAA;QACAC;MACF;IACF;;AAGN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","getGlobalData","getNavGroups","React","Fragment","DefaultDashboard","DashboardView","props","locale","permissions","req","i18n","payload","config","user","visibleEntities","initPageResult","globalData","navGroups","_jsxs","_jsx","nav","clientProps","Component","admin","components","views","dashboard","Fallback","importMap","serverProps","server"],"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { AdminViewServerProps } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getGlobalData, getNavGroups } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DashboardViewClientProps, DashboardViewServerPropsOnly } from './Default/index.js'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nexport async function DashboardView(props: AdminViewServerProps) {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = props.initPageResult\n\n const globalData = await getGlobalData(req)\n const navGroups = getNavGroups(permissions, visibleEntities, config, i18n)\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n {RenderServerComponent({\n clientProps: {\n locale,\n } satisfies DashboardViewClientProps,\n Component: config.admin?.components?.views?.dashboard?.Component,\n Fallback: DefaultDashboard,\n importMap: payload.importMap,\n serverProps: {\n ...props,\n globalData,\n i18n,\n locale,\n navGroups,\n payload,\n permissions,\n server: req.server,\n user,\n visibleEntities,\n } satisfies DashboardViewServerPropsOnly,\n })}\n </Fragment>\n )\n}\n"],"mappings":";AAEA,SAASA,mBAAmB,EAAEC,UAAU,QAAQ;AAChD,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,EAAEC,YAAY,QAAQ;AAC5C,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,gBAAgB,QAAQ;AAEjC,OAAO,eAAeC,cAAcC,KAA2B;EAC7D,MAAM;IACJC,MAAM;IACNC,WAAW;IACXC,GAAA,EAAK;MACHC,IAAI;MACJC,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBD,OAAO;MACPE;IAAI,CACL;IACDJ,GAAG;IACHK;EAAe,CAChB,GAAGR,KAAA,CAAMS,cAAc;EAExB,MAAMC,UAAA,GAAa,MAAMhB,aAAA,CAAcS,GAAA;EACvC,MAAMQ,SAAA,GAAYhB,YAAA,CAAaO,WAAA,EAAaM,eAAA,EAAiBF,MAAA,EAAQF,IAAA;EAErE,oBACEQ,KAAA,CAACf,QAAA;4BACCgB,IAAA,CAACtB,mBAAA;MAAoBW,WAAA,EAAaA;qBAClCW,IAAA,CAACrB,UAAA;MAAWsB,GAAA,EAAK;QAChBrB,qBAAA,CAAsB;MACrBsB,WAAA,EAAa;QACXd;MACF;MACAe,SAAA,EAAWV,MAAA,CAAOW,KAAK,EAAEC,UAAA,EAAYC,KAAA,EAAOC,SAAA,EAAWJ,SAAA;MACvDK,QAAA,EAAUvB,gBAAA;MACVwB,SAAA,EAAWjB,OAAA,CAAQiB,SAAS;MAC5BC,WAAA,EAAa;QACX,GAAGvB,KAAK;QACRU,UAAA;QACAN,IAAA;QACAH,MAAA;QACAU,SAAA;QACAN,OAAA;QACAH,WAAA;QACAsB,MAAA,EAAQrB,GAAA,CAAIqB,MAAM;QAClBjB,IAAA;QACAC;MACF;IACF;;AAGN","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getCustomDocumentViewByKey.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomDocumentViewByKey.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAElG,eAAO,MAAM,0BAA0B,UAEjC,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,iBAC1C,MAAM,KACpB,iBAKF,CAAA"}
1
+ {"version":3,"file":"getCustomDocumentViewByKey.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomDocumentViewByKey.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAElG,eAAO,MAAM,0BAA0B,GACrC,OACI,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EACzD,eAAe,MAAM,KACpB,iBAKF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,oBAAoB,wCAI9B;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EACD,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC1D,KAAG;IACF,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CAoCjB,CAAA"}
1
+ {"version":3,"file":"getCustomViewByRoute.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getCustomViewByRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlG,eAAO,MAAM,oBAAoB,GAAI,qCAIlC;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EACD,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GACzD,qBAAqB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAA;CAC1D,KAAG;IACF,SAAS,EAAE,iBAAiB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;CAoCjB,CAAA"}