@payloadcms/next 3.80.0-canary.4 → 3.80.0-internal-debug.daef79f

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 (458) hide show
  1. package/dist/auth/login.js +52 -58
  2. package/dist/auth/login.js.map +1 -1
  3. package/dist/auth/logout.js +39 -44
  4. package/dist/auth/logout.js.map +1 -1
  5. package/dist/auth/refresh.js +45 -47
  6. package/dist/auth/refresh.js.map +1 -1
  7. package/dist/cjs/withPayload.cjs +65 -24
  8. package/dist/cjs/withPayload.cjs.map +2 -2
  9. package/dist/config.js +1 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +9 -15
  12. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +40 -71
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +65 -59
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +38 -0
  18. package/dist/elements/DocumentHeader/Tabs/index.js +80 -70
  19. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/index.scss +54 -0
  21. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +16 -23
  22. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.scss +10 -0
  24. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +61 -69
  25. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/index.js +48 -28
  27. package/dist/elements/DocumentHeader/index.js.map +1 -1
  28. package/dist/elements/DocumentHeader/index.scss +64 -0
  29. package/dist/elements/FormHeader/index.js +30 -16
  30. package/dist/elements/FormHeader/index.js.map +1 -1
  31. package/dist/elements/FormHeader/index.scss +8 -0
  32. package/dist/elements/Logo/index.js +19 -34
  33. package/dist/elements/Logo/index.js.map +1 -1
  34. package/dist/elements/Nav/NavHamburger/index.js +23 -44
  35. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  36. package/dist/elements/Nav/NavWrapper/index.js +28 -54
  37. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  38. package/dist/elements/Nav/NavWrapper/index.scss +27 -0
  39. package/dist/elements/Nav/SettingsMenuButton/index.js +33 -39
  40. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  41. package/dist/elements/Nav/SettingsMenuButton/index.scss +11 -0
  42. package/dist/elements/Nav/getNavPrefs.js +27 -22
  43. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  44. package/dist/elements/Nav/index.client.js +97 -118
  45. package/dist/elements/Nav/index.client.js.map +1 -1
  46. package/dist/elements/Nav/index.js +191 -170
  47. package/dist/elements/Nav/index.js.map +1 -1
  48. package/dist/elements/Nav/index.scss +173 -0
  49. package/dist/esbuildEntry.d.ts +5 -0
  50. package/dist/esbuildEntry.d.ts.map +1 -0
  51. package/dist/esbuildEntry.js +6 -0
  52. package/dist/esbuildEntry.js.map +1 -0
  53. package/dist/exports/auth.js +1 -0
  54. package/dist/exports/auth.js.map +1 -1
  55. package/dist/exports/client.js +1 -1
  56. package/dist/exports/client.js.map +1 -1
  57. package/dist/exports/layouts.js +1 -0
  58. package/dist/exports/layouts.js.map +1 -1
  59. package/dist/exports/routes.js +1 -0
  60. package/dist/exports/routes.js.map +1 -1
  61. package/dist/exports/rsc.js +1 -0
  62. package/dist/exports/rsc.js.map +1 -1
  63. package/dist/exports/templates.js +1 -0
  64. package/dist/exports/templates.js.map +1 -1
  65. package/dist/exports/utilities.js +7 -12
  66. package/dist/exports/utilities.js.map +1 -1
  67. package/dist/exports/views.js +1 -0
  68. package/dist/exports/views.js.map +1 -1
  69. package/dist/index.js +1 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/layouts/Root/NestProviders.js +21 -20
  72. package/dist/layouts/Root/NestProviders.js.map +1 -1
  73. package/dist/layouts/Root/checkDependencies.js +49 -41
  74. package/dist/layouts/Root/checkDependencies.js.map +1 -1
  75. package/dist/layouts/Root/index.js +128 -103
  76. package/dist/layouts/Root/index.js.map +1 -1
  77. package/dist/prod/styles.css +5 -1
  78. package/dist/routes/graphql/handler.js +114 -122
  79. package/dist/routes/graphql/handler.js.map +1 -1
  80. package/dist/routes/graphql/index.js +1 -0
  81. package/dist/routes/graphql/index.js.map +1 -1
  82. package/dist/routes/graphql/playground.js +28 -27
  83. package/dist/routes/graphql/playground.js.map +1 -1
  84. package/dist/routes/index.js +1 -0
  85. package/dist/routes/index.js.map +1 -1
  86. package/dist/routes/rest/index.js +23 -22
  87. package/dist/routes/rest/index.js.map +1 -1
  88. package/dist/routes/rest/og/image.js +103 -79
  89. package/dist/routes/rest/og/image.js.map +1 -1
  90. package/dist/routes/rest/og/index.js +59 -54
  91. package/dist/routes/rest/og/index.js.map +1 -1
  92. package/dist/templates/Default/NavHamburger/index.js +12 -20
  93. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  94. package/dist/templates/Default/Wrapper/index.js +20 -44
  95. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  96. package/dist/templates/Default/Wrapper/index.scss +58 -0
  97. package/dist/templates/Default/index.js +147 -116
  98. package/dist/templates/Default/index.js.map +1 -1
  99. package/dist/templates/Default/index.scss +79 -0
  100. package/dist/templates/Minimal/index.js +26 -17
  101. package/dist/templates/Minimal/index.js.map +1 -1
  102. package/dist/templates/Minimal/index.scss +30 -0
  103. package/dist/utilities/getExistingAuthToken.js +3 -2
  104. package/dist/utilities/getExistingAuthToken.js.map +1 -1
  105. package/dist/utilities/getNextRequestI18n.js +12 -13
  106. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  107. package/dist/utilities/getPayloadHMR.js +5 -5
  108. package/dist/utilities/getPayloadHMR.js.map +1 -1
  109. package/dist/utilities/getPreferences.js +27 -22
  110. package/dist/utilities/getPreferences.js.map +1 -1
  111. package/dist/utilities/getRequestLocale.js +13 -14
  112. package/dist/utilities/getRequestLocale.js.map +1 -1
  113. package/dist/utilities/getRequestTheme.js +19 -19
  114. package/dist/utilities/getRequestTheme.js.map +1 -1
  115. package/dist/utilities/getRouteWithoutAdmin.js +3 -5
  116. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -1
  117. package/dist/utilities/handleAuthRedirect.js +22 -36
  118. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  119. package/dist/utilities/handleServerFunctions.js +33 -43
  120. package/dist/utilities/handleServerFunctions.js.map +1 -1
  121. package/dist/utilities/initReq.js +78 -96
  122. package/dist/utilities/initReq.js.map +1 -1
  123. package/dist/utilities/isCustomAdminView.js +22 -26
  124. package/dist/utilities/isCustomAdminView.js.map +1 -1
  125. package/dist/utilities/isPublicAdminRoute.js +26 -20
  126. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  127. package/dist/utilities/meta.js +68 -63
  128. package/dist/utilities/meta.js.map +1 -1
  129. package/dist/utilities/selectiveCache.js +25 -26
  130. package/dist/utilities/selectiveCache.js.map +1 -1
  131. package/dist/utilities/setPayloadAuthCookie.js +19 -22
  132. package/dist/utilities/setPayloadAuthCookie.js.map +1 -1
  133. package/dist/utilities/slugify.js +24 -33
  134. package/dist/utilities/slugify.js.map +1 -1
  135. package/dist/utilities/timestamp.js +7 -6
  136. package/dist/utilities/timestamp.js.map +1 -1
  137. package/dist/views/API/LocaleSelector/index.js +17 -39
  138. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  139. package/dist/views/API/RenderJSON/index.js +171 -126
  140. package/dist/views/API/RenderJSON/index.js.map +1 -1
  141. package/dist/views/API/RenderJSON/index.scss +129 -0
  142. package/dist/views/API/index.client.js +291 -199
  143. package/dist/views/API/index.client.js.map +1 -1
  144. package/dist/views/API/index.js +7 -2
  145. package/dist/views/API/index.js.map +1 -1
  146. package/dist/views/API/index.scss +119 -0
  147. package/dist/views/API/metadata.js +18 -23
  148. package/dist/views/API/metadata.js.map +1 -1
  149. package/dist/views/Account/ResetPreferences/index.js +78 -102
  150. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  151. package/dist/views/Account/Settings/LanguageSelector.js +18 -47
  152. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  153. package/dist/views/Account/Settings/index.js +60 -25
  154. package/dist/views/Account/Settings/index.js.map +1 -1
  155. package/dist/views/Account/Settings/index.scss +48 -0
  156. package/dist/views/Account/ToggleTheme/index.js +38 -55
  157. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  158. package/dist/views/Account/index.client.js +16 -32
  159. package/dist/views/Account/index.client.js.map +1 -1
  160. package/dist/views/Account/index.js +149 -162
  161. package/dist/views/Account/index.js.map +1 -1
  162. package/dist/views/Account/metadata.js +8 -12
  163. package/dist/views/Account/metadata.js.map +1 -1
  164. package/dist/views/BrowseByFolder/buildView.js +138 -157
  165. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  166. package/dist/views/BrowseByFolder/index.js +16 -16
  167. package/dist/views/BrowseByFolder/index.js.map +1 -1
  168. package/dist/views/BrowseByFolder/metadata.js +13 -15
  169. package/dist/views/BrowseByFolder/metadata.js.map +1 -1
  170. package/dist/views/CollectionFolders/buildView.js +122 -142
  171. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  172. package/dist/views/CollectionFolders/index.js +16 -16
  173. package/dist/views/CollectionFolders/index.js.map +1 -1
  174. package/dist/views/CollectionFolders/metadata.js +18 -21
  175. package/dist/views/CollectionFolders/metadata.js.map +1 -1
  176. package/dist/views/CollectionFolders/renderFolderViewSlots.js +58 -61
  177. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -1
  178. package/dist/views/CollectionTrash/index.js +17 -17
  179. package/dist/views/CollectionTrash/index.js.map +1 -1
  180. package/dist/views/CollectionTrash/metadata.js +18 -21
  181. package/dist/views/CollectionTrash/metadata.js.map +1 -1
  182. package/dist/views/CreateFirstUser/index.client.js +117 -103
  183. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  184. package/dist/views/CreateFirstUser/index.js +87 -81
  185. package/dist/views/CreateFirstUser/index.js.map +1 -1
  186. package/dist/views/CreateFirstUser/index.scss +21 -0
  187. package/dist/views/CreateFirstUser/metadata.js +8 -12
  188. package/dist/views/CreateFirstUser/metadata.js.map +1 -1
  189. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +145 -170
  190. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  191. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +144 -118
  192. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  193. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +59 -72
  194. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  195. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +435 -414
  196. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  197. package/dist/views/Dashboard/Default/ModularDashboard/index.js +54 -63
  198. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  199. package/dist/views/Dashboard/Default/ModularDashboard/index.scss +318 -0
  200. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +65 -96
  201. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  202. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +44 -54
  203. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  204. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +65 -72
  205. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  206. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +193 -175
  207. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  208. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +31 -30
  209. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -1
  210. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromConfig.js +18 -17
  211. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromConfig.js.map +1 -1
  212. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js +6 -5
  213. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  214. package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js +69 -74
  215. package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -1
  216. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +228 -234
  217. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -1
  218. package/dist/views/Dashboard/Default/index.js +59 -45
  219. package/dist/views/Dashboard/Default/index.js.map +1 -1
  220. package/dist/views/Dashboard/index.js +46 -42
  221. package/dist/views/Dashboard/index.js.map +1 -1
  222. package/dist/views/Dashboard/metadata.js +10 -14
  223. package/dist/views/Dashboard/metadata.js.map +1 -1
  224. package/dist/views/Document/getCustomDocumentViewByKey.js +3 -2
  225. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -1
  226. package/dist/views/Document/getCustomViewByRoute.js +27 -30
  227. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  228. package/dist/views/Document/getDocPreferences.js +40 -41
  229. package/dist/views/Document/getDocPreferences.js.map +1 -1
  230. package/dist/views/Document/getDocumentData.js +44 -55
  231. package/dist/views/Document/getDocumentData.js.map +1 -1
  232. package/dist/views/Document/getDocumentPermissions.js +114 -117
  233. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  234. package/dist/views/Document/getDocumentView.js +313 -283
  235. package/dist/views/Document/getDocumentView.js.map +1 -1
  236. package/dist/views/Document/getIsLocked.js +73 -73
  237. package/dist/views/Document/getIsLocked.js.map +1 -1
  238. package/dist/views/Document/getMetaBySegment.js +130 -136
  239. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  240. package/dist/views/Document/getVersions.js +220 -213
  241. package/dist/views/Document/getVersions.js.map +1 -1
  242. package/dist/views/Document/handleServerFunction.js +100 -127
  243. package/dist/views/Document/handleServerFunction.js.map +1 -1
  244. package/dist/views/Document/index.js +319 -359
  245. package/dist/views/Document/index.js.map +1 -1
  246. package/dist/views/Document/metadata.js +2 -1
  247. package/dist/views/Document/metadata.js.map +1 -1
  248. package/dist/views/Document/renderDocumentSlots.js +141 -155
  249. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  250. package/dist/views/Edit/index.js +10 -6
  251. package/dist/views/Edit/index.js.map +1 -1
  252. package/dist/views/Edit/metadata.js +36 -46
  253. package/dist/views/Edit/metadata.js.map +1 -1
  254. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +130 -164
  255. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  256. package/dist/views/ForgotPassword/index.js +79 -62
  257. package/dist/views/ForgotPassword/index.js.map +1 -1
  258. package/dist/views/ForgotPassword/metadata.js +8 -12
  259. package/dist/views/ForgotPassword/metadata.js.map +1 -1
  260. package/dist/views/List/createSerializableValue.js +12 -11
  261. package/dist/views/List/createSerializableValue.js.map +1 -1
  262. package/dist/views/List/enrichDocsWithVersionStatus.js +86 -86
  263. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  264. package/dist/views/List/extractRelationshipDisplayValue.js +15 -14
  265. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -1
  266. package/dist/views/List/extractValueOrRelationshipID.js +16 -15
  267. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -1
  268. package/dist/views/List/handleGroupBy.js +133 -150
  269. package/dist/views/List/handleGroupBy.js.map +1 -1
  270. package/dist/views/List/handleServerFunction.js +96 -122
  271. package/dist/views/List/handleServerFunction.js.map +1 -1
  272. package/dist/views/List/index.js +306 -325
  273. package/dist/views/List/index.js.map +1 -1
  274. package/dist/views/List/metadata.js +17 -20
  275. package/dist/views/List/metadata.js.map +1 -1
  276. package/dist/views/List/renderListViewSlots.js +82 -75
  277. package/dist/views/List/renderListViewSlots.js.map +1 -1
  278. package/dist/views/List/resolveAllFilterOptions.js +43 -45
  279. package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
  280. package/dist/views/List/transformColumnsToSelect.js +9 -8
  281. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  282. package/dist/views/Login/LoginField/index.js +57 -89
  283. package/dist/views/Login/LoginField/index.js.map +1 -1
  284. package/dist/views/Login/LoginForm/index.js +107 -160
  285. package/dist/views/Login/LoginForm/index.js.map +1 -1
  286. package/dist/views/Login/LoginForm/index.scss +10 -0
  287. package/dist/views/Login/index.js +82 -85
  288. package/dist/views/Login/index.js.map +1 -1
  289. package/dist/views/Login/index.scss +10 -0
  290. package/dist/views/Login/metadata.js +8 -12
  291. package/dist/views/Login/metadata.js.map +1 -1
  292. package/dist/views/Logout/LogoutClient.js +84 -120
  293. package/dist/views/Logout/LogoutClient.js.map +1 -1
  294. package/dist/views/Logout/index.js +29 -29
  295. package/dist/views/Logout/index.js.map +1 -1
  296. package/dist/views/Logout/index.scss +25 -0
  297. package/dist/views/Logout/metadata.js +7 -11
  298. package/dist/views/Logout/metadata.js.map +1 -1
  299. package/dist/views/NotFound/index.client.js +71 -82
  300. package/dist/views/NotFound/index.client.js.map +1 -1
  301. package/dist/views/NotFound/index.js +72 -73
  302. package/dist/views/NotFound/index.js.map +1 -1
  303. package/dist/views/NotFound/index.scss +57 -0
  304. package/dist/views/NotFound/metadata.js +7 -9
  305. package/dist/views/NotFound/metadata.js.map +1 -1
  306. package/dist/views/ResetPassword/ResetPasswordForm/index.js +97 -108
  307. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  308. package/dist/views/ResetPassword/index.js +93 -73
  309. package/dist/views/ResetPassword/index.js.map +1 -1
  310. package/dist/views/ResetPassword/index.scss +11 -0
  311. package/dist/views/ResetPassword/metadata.js +8 -12
  312. package/dist/views/ResetPassword/metadata.js.map +1 -1
  313. package/dist/views/Root/attachViewActions.js +18 -23
  314. package/dist/views/Root/attachViewActions.js.map +1 -1
  315. package/dist/views/Root/generateCustomViewMetadata.js +19 -21
  316. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  317. package/dist/views/Root/getCustomViewByKey.js +12 -14
  318. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  319. package/dist/views/Root/getCustomViewByRoute.js +31 -42
  320. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  321. package/dist/views/Root/getDocumentViewInfo.js +24 -23
  322. package/dist/views/Root/getDocumentViewInfo.js.map +1 -1
  323. package/dist/views/Root/getRouteData.js +333 -325
  324. package/dist/views/Root/getRouteData.js.map +1 -1
  325. package/dist/views/Root/index.js +248 -270
  326. package/dist/views/Root/index.js.map +1 -1
  327. package/dist/views/Root/isPathMatchingRoute.js +21 -26
  328. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  329. package/dist/views/Root/metadata.js +176 -181
  330. package/dist/views/Root/metadata.js.map +1 -1
  331. package/dist/views/Unauthorized/index.js +54 -46
  332. package/dist/views/Unauthorized/index.js.map +1 -1
  333. package/dist/views/Unauthorized/index.scss +14 -0
  334. package/dist/views/Unauthorized/metadata.js +8 -12
  335. package/dist/views/Unauthorized/metadata.js.map +1 -1
  336. package/dist/views/Verify/index.client.js +25 -43
  337. package/dist/views/Verify/index.client.js.map +1 -1
  338. package/dist/views/Verify/index.js +69 -64
  339. package/dist/views/Verify/index.js.map +1 -1
  340. package/dist/views/Verify/index.scss +16 -0
  341. package/dist/views/Verify/metadata.js +8 -12
  342. package/dist/views/Verify/metadata.js.map +1 -1
  343. package/dist/views/Version/Default/SelectedLocalesContext.js +4 -4
  344. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  345. package/dist/views/Version/Default/SetStepNav.js +86 -127
  346. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  347. package/dist/views/Version/Default/index.js +380 -236
  348. package/dist/views/Version/Default/index.js.map +1 -1
  349. package/dist/views/Version/Default/index.scss +170 -0
  350. package/dist/views/Version/Default/types.js +2 -1
  351. package/dist/views/Version/Default/types.js.map +1 -1
  352. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +102 -119
  353. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  354. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +81 -0
  355. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +78 -73
  356. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  357. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +363 -408
  358. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  359. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +40 -51
  360. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  361. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +38 -70
  362. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  363. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.scss +12 -0
  364. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +59 -56
  365. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  366. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +9 -0
  367. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +139 -117
  368. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  369. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +59 -0
  370. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +56 -61
  371. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  372. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +224 -206
  373. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  374. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +91 -0
  375. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -11
  376. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  377. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +49 -74
  378. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  379. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +4 -0
  380. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +135 -146
  381. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  382. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +9 -0
  383. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +57 -82
  384. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  385. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +4 -0
  386. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +252 -211
  387. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  388. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.scss +121 -0
  389. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +23 -22
  390. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  391. package/dist/views/Version/RenderFieldsToDiff/index.js +12 -9
  392. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  393. package/dist/views/Version/RenderFieldsToDiff/index.scss +24 -0
  394. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +213 -228
  395. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  396. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +1005 -826
  397. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  398. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +2 -1
  399. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -1
  400. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +44 -43
  401. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
  402. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +32 -36
  403. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  404. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +145 -129
  405. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  406. package/dist/views/Version/Restore/index.js +117 -92
  407. package/dist/views/Version/Restore/index.js.map +1 -1
  408. package/dist/views/Version/Restore/index.scss +84 -0
  409. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +33 -50
  410. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  411. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +170 -226
  412. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  413. package/dist/views/Version/SelectComparison/VersionDrawer/index.scss +18 -0
  414. package/dist/views/Version/SelectComparison/index.js +73 -50
  415. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  416. package/dist/views/Version/SelectComparison/index.scss +9 -0
  417. package/dist/views/Version/SelectComparison/types.js +2 -1
  418. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  419. package/dist/views/Version/SelectLocales/index.js +34 -32
  420. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  421. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +106 -100
  422. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  423. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +30 -35
  424. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -1
  425. package/dist/views/Version/VersionPillLabel/index.scss +26 -0
  426. package/dist/views/Version/fetchVersions.js +113 -138
  427. package/dist/views/Version/fetchVersions.js.map +1 -1
  428. package/dist/views/Version/index.js +328 -326
  429. package/dist/views/Version/index.js.map +1 -1
  430. package/dist/views/Version/metadata.js +43 -50
  431. package/dist/views/Version/metadata.js.map +1 -1
  432. package/dist/views/Versions/buildColumns.js +95 -79
  433. package/dist/views/Versions/buildColumns.js.map +1 -1
  434. package/dist/views/Versions/cells/AutosaveCell/index.js +34 -38
  435. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  436. package/dist/views/Versions/cells/AutosaveCell/index.scss +9 -0
  437. package/dist/views/Versions/cells/CreatedAt/index.js +32 -53
  438. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  439. package/dist/views/Versions/cells/ID/index.js +10 -8
  440. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  441. package/dist/views/Versions/index.client.js +106 -83
  442. package/dist/views/Versions/index.client.js.map +1 -1
  443. package/dist/views/Versions/index.js +164 -164
  444. package/dist/views/Versions/index.js.map +1 -1
  445. package/dist/views/Versions/index.scss +110 -0
  446. package/dist/views/Versions/metadata.js +37 -44
  447. package/dist/views/Versions/metadata.js.map +1 -1
  448. package/dist/views/Versions/types.js +2 -1
  449. package/dist/views/Versions/types.js.map +1 -1
  450. package/dist/withPayload/withPayload.js +236 -177
  451. package/dist/withPayload/withPayload.js.map +1 -1
  452. package/dist/withPayload/withPayload.spec.js +36 -35
  453. package/dist/withPayload/withPayload.spec.js.map +1 -1
  454. package/dist/withPayload/withPayload.utils.js +65 -73
  455. package/dist/withPayload/withPayload.utils.js.map +1 -1
  456. package/dist/withPayload/withPayloadLegacy.js +41 -40
  457. package/dist/withPayload/withPayloadLegacy.js.map +1 -1
  458. package/package.json +6 -6
@@ -1,106 +1,75 @@
1
1
  'use client';
2
-
3
- import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
5
3
  import { ShimmerEffect, useServerFunctions } from '@payloadcms/ui';
6
4
  import React, { useCallback, useEffect, useRef } from 'react';
7
5
  /**
8
6
  * Utility to render a widget on-demand on the client.
9
- */
10
- export const RenderWidget = t0 => {
11
- const $ = _c(10);
12
- const {
13
- widgetData,
14
- widgetId
15
- } = t0;
16
- const [Component, setComponent] = React.useState(null);
17
- const {
18
- serverFunction
19
- } = useServerFunctions();
20
- const requestIDRef = useRef(0);
21
- let t1;
22
- if ($[0] !== serverFunction || $[1] !== widgetData || $[2] !== widgetId) {
23
- t1 = () => {
24
- const render = async function render() {
25
- const requestID = requestIDRef.current = requestIDRef.current + 1;
26
- setComponent(null);
27
- ;
28
- try {
29
- const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf("-"));
30
- const result = await serverFunction({
31
- name: "render-widget",
32
- args: {
33
- widgetData,
34
- widgetSlug
35
- }
36
- });
37
- if (requestID !== requestIDRef.current) {
38
- return;
39
- }
40
- setComponent(result.component);
41
- } catch (t2) {
42
- if (requestID !== requestIDRef.current) {
43
- return;
44
- }
45
- setComponent(React.createElement("div", {
46
- style: {
47
- background: "var(--theme-error-50)",
48
- border: "1px solid var(--theme-error-200)",
49
- borderRadius: "4px",
50
- color: "var(--theme-error-text)",
51
- padding: "20px",
52
- textAlign: "center"
7
+ */ export const RenderWidget = /**
8
+ * Instance-specific data for this widget
9
+ */ /**
10
+ * Unique ID for this widget instance (format: "slug-timestamp")
11
+ */ ({ widgetData, widgetId })=>{
12
+ const [Component, setComponent] = React.useState(null);
13
+ const { serverFunction } = useServerFunctions();
14
+ const requestIDRef = useRef(0);
15
+ const renderWidget = useCallback(()=>{
16
+ async function render() {
17
+ const requestID = ++requestIDRef.current;
18
+ setComponent(null);
19
+ try {
20
+ const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf('-'));
21
+ const result = await serverFunction({
22
+ name: 'render-widget',
23
+ args: {
24
+ widgetData,
25
+ widgetSlug
26
+ }
27
+ });
28
+ if (requestID !== requestIDRef.current) {
29
+ return;
30
+ }
31
+ setComponent(result.component);
32
+ } catch (_error) {
33
+ if (requestID !== requestIDRef.current) {
34
+ return;
35
+ }
36
+ // Log error but don't expose details to console in production
37
+ // Fallback error component
38
+ setComponent(/*#__PURE__*/ React.createElement('div', {
39
+ style: {
40
+ background: 'var(--theme-error-50)',
41
+ border: '1px solid var(--theme-error-200)',
42
+ borderRadius: '4px',
43
+ color: 'var(--theme-error-text)',
44
+ padding: '20px',
45
+ textAlign: 'center'
46
+ }
47
+ }, 'Failed to load widget. Please try again later.'));
53
48
  }
54
- }, "Failed to load widget. Please try again later."));
55
49
  }
56
- };
57
- render();
58
- };
59
- $[0] = serverFunction;
60
- $[1] = widgetData;
61
- $[2] = widgetId;
62
- $[3] = t1;
63
- } else {
64
- t1 = $[3];
65
- }
66
- const renderWidget = t1;
67
- let t2;
68
- let t3;
69
- if ($[4] !== renderWidget) {
70
- t2 = () => {
71
- renderWidget();
72
- };
73
- t3 = [renderWidget];
74
- $[4] = renderWidget;
75
- $[5] = t2;
76
- $[6] = t3;
77
- } else {
78
- t2 = $[5];
79
- t3 = $[6];
80
- }
81
- useEffect(t2, t3);
82
- if (!Component) {
83
- let t4;
84
- if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
85
- t4 = _jsx(ShimmerEffect, {
86
- height: "100%"
87
- });
88
- $[7] = t4;
89
- } else {
90
- t4 = $[7];
50
+ void render();
51
+ }, [
52
+ serverFunction,
53
+ widgetData,
54
+ widgetId
55
+ ]);
56
+ useEffect(()=>{
57
+ void renderWidget();
58
+ }, [
59
+ renderWidget
60
+ ]);
61
+ if (!Component) {
62
+ return /*#__PURE__*/ _jsxDEV(ShimmerEffect, {
63
+ height: "100%"
64
+ }, void 0, false, {
65
+ fileName: "src/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.tsx",
66
+ lineNumber: 83,
67
+ columnNumber: 12
68
+ }, this);
91
69
  }
92
- return t4;
93
- }
94
- let t4;
95
- if ($[8] !== Component) {
96
- t4 = _jsx(_Fragment, {
97
- children: Component
98
- });
99
- $[8] = Component;
100
- $[9] = t4;
101
- } else {
102
- t4 = $[9];
103
- }
104
- return t4;
70
+ return /*#__PURE__*/ _jsxDEV(_Fragment, {
71
+ children: Component
72
+ }, void 0, false);
105
73
  };
74
+
106
75
  //# sourceMappingURL=RenderWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderWidget.js","names":["c","_c","ShimmerEffect","useServerFunctions","React","useCallback","useEffect","useRef","RenderWidget","t0","$","widgetData","widgetId","Component","setComponent","useState","serverFunction","requestIDRef","t1","render","requestID","current","widgetSlug","slice","lastIndexOf","result","name","args","component","t2","createElement","style","background","border","borderRadius","color","padding","textAlign","renderWidget","t3","t4","Symbol","for","_jsx","height","_Fragment","children"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.tsx"],"sourcesContent":["'use client'\n\nimport { ShimmerEffect, useServerFunctions } from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type {\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType,\n} from './renderWidgetServerFn.js'\n\n/**\n * Utility to render a widget on-demand on the client.\n */\nexport const RenderWidget: React.FC<{\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * Unique ID for this widget instance (format: \"slug-timestamp\")\n */\n widgetId: string\n}> = ({ widgetData, widgetId }) => {\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const { serverFunction } = useServerFunctions()\n const requestIDRef = useRef(0)\n\n const renderWidget = useCallback(() => {\n async function render() {\n const requestID = ++requestIDRef.current\n setComponent(null)\n\n try {\n const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf('-'))\n\n const result = (await serverFunction({\n name: 'render-widget',\n args: {\n widgetData,\n widgetSlug,\n } as RenderWidgetServerFnArgs,\n })) as RenderWidgetServerFnReturnType\n\n if (requestID !== requestIDRef.current) {\n return\n }\n\n setComponent(result.component)\n } catch (_error) {\n if (requestID !== requestIDRef.current) {\n return\n }\n\n // Log error but don't expose details to console in production\n\n // Fallback error component\n setComponent(\n 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 'Failed to load widget. Please try again later.',\n ),\n )\n }\n }\n void render()\n }, [serverFunction, widgetData, widgetId])\n\n useEffect(() => {\n void renderWidget()\n }, [renderWidget])\n\n if (!Component) {\n return <ShimmerEffect height=\"100%\" />\n }\n\n return <>{Component}</>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,aAAa,EAAEC,kBAAkB,QAAQ;AAClD,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAOtD;;;AAGA,OAAO,MAAMC,YAAA,GASRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC;EAAA,IAAAH,EAAwB;EAC5B,OAAAI,SAAA,EAAAC,YAAA,IAAkCV,KAAA,CAAAW,QAAA,KAAuC;EACzE;IAAAC;EAAA,IAA2Bb,kBAAA;EAC3B,MAAAc,YAAA,GAAqBV,MAAA,EAAO;EAAA,IAAAW,EAAA;EAAA,IAAAR,CAAA,QAAAM,cAAA,IAAAN,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAE,QAAA;IAEKM,EAAA,GAAAA,CAAA;MAC/B,MAAAC,MAAA,kBAAAA,OAAA;QACE,MAAAC,SAAA,GAAoBH,YAAA,CAAAI,OAAA,GAAAJ,YAAA,CAAAI,OAAA,IAAoB;QACxCP,YAAA,KAAa;QAAA;QAAA;UAGX,MAAAQ,UAAA,GAAmBV,QAAA,CAAAW,KAAA,IAAkBX,QAAA,CAAAY,WAAA,CAAqB;UAE1D,MAAAC,MAAA,SAAsBT,cAAA;YAAAU,IAAA,EACd;YAAAC,IAAA;cAAAhB,UAAA;cAAAW;YAAA;UAAA,CAKR;UAAA,IAEIF,SAAA,KAAcH,YAAA,CAAAI,OAAoB;YAAA;UAAA;UAItCP,YAAA,CAAaW,MAAA,CAAAG,SAAgB;QAAA,SAAAC,EAAA;UAAA,IAEzBT,SAAA,KAAcH,YAAA,CAAAI,OAAoB;YAAA;UAAA;UAOtCP,YAAA,CACEV,KAAA,CAAA0B,aAAA,CACE;YAAAC,KAAA;cAAAC,UAAA,EAGgB;cAAAC,MAAA,EACJ;cAAAC,YAAA,EACM;cAAAC,KAAA,EACP;cAAAC,OAAA,EACE;cAAAC,SAAA,EACE;YAAA;UAAA,GAGf;QAAA;MAAA;MAKHlB,MAAA;IAAA;IACPT,CAAA,MAAAM,cAAA;IAAAN,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAhDA,MAAA4B,YAAA,GAAqBpB,EAgDoB;EAAA,IAAAW,EAAA;EAAA,IAAAU,EAAA;EAAA,IAAA7B,CAAA,QAAA4B,YAAA;IAE/BT,EAAA,GAAAA,CAAA;MACHS,YAAA;IAAA;IACJC,EAAA,IAACD,YAAA;IAAa5B,CAAA,MAAA4B,YAAA;IAAA5B,CAAA,MAAAmB,EAAA;IAAAnB,CAAA,MAAA6B,EAAA;EAAA;IAAAV,EAAA,GAAAnB,CAAA;IAAA6B,EAAA,GAAA7B,CAAA;EAAA;EAFjBJ,SAAA,CAAUuB,EAEV,EAAGU,EAAc;EAAA,KAEZ1B,SAAA;IAAA,IAAA2B,EAAA;IAAA,IAAA9B,CAAA,QAAA+B,MAAA,CAAAC,GAAA;MACIF,EAAA,GAAAG,IAAA,CAAAzC,aAAA;QAAA0C,MAAA,EAAsB;MAAA,C;;;;;WAAtBJ,E;;;;IAGFA,EAAA,GAAAG,IAAA,CAAAE,SAAA;MAAAC,QAAA,EAAGjC;IAAA,C;;;;;;SAAH2B,E;CACT","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.tsx"],"sourcesContent":["'use client'\n\nimport { ShimmerEffect, useServerFunctions } from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type {\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType,\n} from './renderWidgetServerFn.js'\n\n/**\n * Utility to render a widget on-demand on the client.\n */\nexport const RenderWidget: React.FC<{\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * Unique ID for this widget instance (format: \"slug-timestamp\")\n */\n widgetId: string\n}> = ({ widgetData, widgetId }) => {\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const { serverFunction } = useServerFunctions()\n const requestIDRef = useRef(0)\n\n const renderWidget = useCallback(() => {\n async function render() {\n const requestID = ++requestIDRef.current\n setComponent(null)\n\n try {\n const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf('-'))\n\n const result = (await serverFunction({\n name: 'render-widget',\n args: {\n widgetData,\n widgetSlug,\n } as RenderWidgetServerFnArgs,\n })) as RenderWidgetServerFnReturnType\n\n if (requestID !== requestIDRef.current) {\n return\n }\n\n setComponent(result.component)\n } catch (_error) {\n if (requestID !== requestIDRef.current) {\n return\n }\n\n // Log error but don't expose details to console in production\n\n // Fallback error component\n setComponent(\n 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 'Failed to load widget. Please try again later.',\n ),\n )\n }\n }\n void render()\n }, [serverFunction, widgetData, widgetId])\n\n useEffect(() => {\n void renderWidget()\n }, [renderWidget])\n\n if (!Component) {\n return <ShimmerEffect height=\"100%\" />\n }\n\n return <>{Component}</>\n}\n"],"names":["ShimmerEffect","useServerFunctions","React","useCallback","useEffect","useRef","RenderWidget","widgetData","widgetId","Component","setComponent","useState","serverFunction","requestIDRef","renderWidget","render","requestID","current","widgetSlug","slice","lastIndexOf","result","name","args","component","_error","createElement","style","background","border","borderRadius","color","padding","textAlign","height"],"mappings":"AAAA;;AAEA,SAASA,aAAa,EAAEC,kBAAkB,QAAQ,iBAAgB;AAClE,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,QAAO;AAO7D;;CAEC,GACD,OAAO,MAAMC,eACX;;GAEC,GAED;;GAEC,GAEE,CAAC,EAAEC,UAAU,EAAEC,QAAQ,EAAE;IAC5B,MAAM,CAACC,WAAWC,aAAa,GAAGR,MAAMS,QAAQ,CAAyB;IACzE,MAAM,EAAEC,cAAc,EAAE,GAAGX;IAC3B,MAAMY,eAAeR,OAAO;IAE5B,MAAMS,eAAeX,YAAY;QAC/B,eAAeY;YACb,MAAMC,YAAY,EAAEH,aAAaI,OAAO;YACxCP,aAAa;YAEb,IAAI;gBACF,MAAMQ,aAAaV,SAASW,KAAK,CAAC,GAAGX,SAASY,WAAW,CAAC;gBAE1D,MAAMC,SAAU,MAAMT,eAAe;oBACnCU,MAAM;oBACNC,MAAM;wBACJhB;wBACAW;oBACF;gBACF;gBAEA,IAAIF,cAAcH,aAAaI,OAAO,EAAE;oBACtC;gBACF;gBAEAP,aAAaW,OAAOG,SAAS;YAC/B,EAAE,OAAOC,QAAQ;gBACf,IAAIT,cAAcH,aAAaI,OAAO,EAAE;oBACtC;gBACF;gBAEA,8DAA8D;gBAE9D,2BAA2B;gBAC3BP,2BACER,MAAMwB,aAAa,CACjB,OACA;oBACEC,OAAO;wBACLC,YAAY;wBACZC,QAAQ;wBACRC,cAAc;wBACdC,OAAO;wBACPC,SAAS;wBACTC,WAAW;oBACb;gBACF,GACA;YAGN;QACF;QACA,KAAKlB;IACP,GAAG;QAACH;QAAgBL;QAAYC;KAAS;IAEzCJ,UAAU;QACR,KAAKU;IACP,GAAG;QAACA;KAAa;IAEjB,IAAI,CAACL,WAAW;QACd,qBAAO,QAACT;YAAckC,QAAO;;;;;;IAC/B;IAEA,qBAAO;kBAAGzB;;AACZ,EAAC"}
@@ -2,64 +2,54 @@ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerCompo
2
2
  /**
3
3
  * Server function to get the default dashboard layout on-demand.
4
4
  * Used when resetting the dashboard to its default configuration.
5
- */
6
- export const getDefaultLayoutHandler = async ({
7
- cookies,
8
- locale,
9
- permissions,
10
- req
11
- }) => {
12
- if (!req.user) {
13
- throw new Error('Unauthorized');
14
- }
15
- const {
16
- defaultLayout = [],
17
- widgets = []
18
- } = req.payload.config.admin.dashboard || {};
19
- const {
20
- importMap
21
- } = req.payload;
22
- const layoutItems = await getItemsFromConfig(defaultLayout, req, widgets);
23
- const layout = layoutItems.map(layoutItem => {
24
- const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'));
5
+ */ export const getDefaultLayoutHandler = async ({ cookies, locale, permissions, req })=>{
6
+ if (!req.user) {
7
+ throw new Error('Unauthorized');
8
+ }
9
+ const { defaultLayout = [], widgets = [] } = req.payload.config.admin.dashboard || {};
10
+ const { importMap } = req.payload;
11
+ const layoutItems = await getItemsFromConfig(defaultLayout, req, widgets);
12
+ const layout = layoutItems.map((layoutItem)=>{
13
+ const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'));
14
+ return {
15
+ component: RenderServerComponent({
16
+ Component: widgets.find((widget)=>widget.slug === widgetSlug)?.Component,
17
+ importMap,
18
+ serverProps: {
19
+ cookies,
20
+ locale,
21
+ permissions,
22
+ req,
23
+ widgetData: layoutItem.data || {},
24
+ widgetSlug
25
+ }
26
+ }),
27
+ item: layoutItem
28
+ };
29
+ });
25
30
  return {
26
- component: RenderServerComponent({
27
- Component: widgets.find(widget => widget.slug === widgetSlug)?.Component,
28
- importMap,
29
- serverProps: {
30
- cookies,
31
- locale,
32
- permissions,
33
- req,
34
- widgetData: layoutItem.data || {},
35
- widgetSlug
36
- }
37
- }),
38
- item: layoutItem
31
+ layout
39
32
  };
40
- });
41
- return {
42
- layout
43
- };
44
33
  };
45
34
  async function getItemsFromConfig(defaultLayout, req, widgets) {
46
- let widgetInstances;
47
- if (typeof defaultLayout === 'function') {
48
- widgetInstances = await defaultLayout({
49
- req
35
+ let widgetInstances;
36
+ if (typeof defaultLayout === 'function') {
37
+ widgetInstances = await defaultLayout({
38
+ req
39
+ });
40
+ } else {
41
+ widgetInstances = defaultLayout;
42
+ }
43
+ return widgetInstances.map((widgetInstance, index)=>{
44
+ const widget = widgets.find((w)=>w.slug === widgetInstance.widgetSlug);
45
+ return {
46
+ id: `${widgetInstance.widgetSlug}-${index}`,
47
+ data: widgetInstance.data,
48
+ maxWidth: widget?.maxWidth ?? 'full',
49
+ minWidth: widget?.minWidth ?? 'x-small',
50
+ width: widgetInstance.width || 'x-small'
51
+ };
50
52
  });
51
- } else {
52
- widgetInstances = defaultLayout;
53
- }
54
- return widgetInstances.map((widgetInstance, index) => {
55
- const widget = widgets.find(w => w.slug === widgetInstance.widgetSlug);
56
- return {
57
- id: `${widgetInstance.widgetSlug}-${index}`,
58
- data: widgetInstance.data,
59
- maxWidth: widget?.maxWidth ?? 'full',
60
- minWidth: widget?.minWidth ?? 'x-small',
61
- width: widgetInstance.width || 'x-small'
62
- };
63
- });
64
53
  }
54
+
65
55
  //# sourceMappingURL=getDefaultLayoutServerFn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultLayoutServerFn.js","names":["RenderServerComponent","getDefaultLayoutHandler","cookies","locale","permissions","req","user","Error","defaultLayout","widgets","payload","config","admin","dashboard","importMap","layoutItems","getItemsFromConfig","layout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","component","Component","find","widget","slug","serverProps","widgetData","data","item","widgetInstances","widgetInstance","index","w","maxWidth","minWidth","width"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.ts"],"sourcesContent":["import type {\n DashboardConfig,\n PayloadRequest,\n ServerFunction,\n Widget,\n WidgetServerProps,\n} from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nimport type { WidgetInstanceClient, WidgetItem } from '../index.client.js'\n\nexport type GetDefaultLayoutServerFnArgs = Record<string, never>\n\nexport type GetDefaultLayoutServerFnReturnType = {\n layout: WidgetInstanceClient[]\n}\n\n/**\n * Server function to get the default dashboard layout on-demand.\n * Used when resetting the dashboard to its default configuration.\n */\nexport const getDefaultLayoutHandler: ServerFunction<\n GetDefaultLayoutServerFnArgs,\n Promise<GetDefaultLayoutServerFnReturnType>\n> = async ({ cookies, locale, permissions, req }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { defaultLayout = [], widgets = [] } = req.payload.config.admin.dashboard || {}\n const { importMap } = req.payload\n\n const layoutItems = await getItemsFromConfig(defaultLayout, req, widgets)\n\n const layout: WidgetInstanceClient[] = layoutItems.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n return {\n component: RenderServerComponent({\n Component: widgets.find((widget) => widget.slug === widgetSlug)?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n widgetData: layoutItem.data || {},\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n return { layout }\n}\n\nasync function getItemsFromConfig(\n defaultLayout: NonNullable<DashboardConfig['defaultLayout']>,\n req: PayloadRequest,\n widgets: Pick<Widget, 'maxWidth' | 'minWidth' | 'slug'>[],\n): Promise<WidgetItem[]> {\n let widgetInstances\n if (typeof defaultLayout === 'function') {\n widgetInstances = await defaultLayout({ req })\n } else {\n widgetInstances = defaultLayout\n }\n\n return widgetInstances.map((widgetInstance, index) => {\n const widget = widgets.find((w) => w.slug === widgetInstance.widgetSlug)\n return {\n id: `${widgetInstance.widgetSlug}-${index}`,\n data: widgetInstance.data,\n maxWidth: widget?.maxWidth ?? 'full',\n minWidth: widget?.minWidth ?? 'x-small',\n width: widgetInstance.width || 'x-small',\n }\n })\n}\n"],"mappings":"AAQA,SAASA,qBAAqB,QAAQ;AAUtC;;;;AAIA,OAAO,MAAMC,uBAAA,GAGT,MAAAA,CAAO;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC;AAAG,CAAE;EAC9C,IAAI,CAACA,GAAA,CAAIC,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGJ,GAAA,CAAIK,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACpF,MAAM;IAAEC;EAAS,CAAE,GAAGT,GAAA,CAAIK,OAAO;EAEjC,MAAMK,WAAA,GAAc,MAAMC,kBAAA,CAAmBR,aAAA,EAAeH,GAAA,EAAKI,OAAA;EAEjE,MAAMQ,MAAA,GAAiCF,WAAA,CAAYG,GAAG,CAAEC,UAAA;IACtD,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,OAAO;MACLC,SAAA,EAAWxB,qBAAA,CAAsB;QAC/ByB,SAAA,EAAWhB,OAAA,CAAQiB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKR,UAAA,GAAaK,SAAA;QACjEX,SAAA;QACAe,WAAA,EAAa;UACX3B,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAyB,UAAA,EAAYX,UAAA,CAAWY,IAAI,IAAI,CAAC;UAChCX;QACF;MACF;MACAY,IAAA,EAAMb;IACR;EACF;EAEA,OAAO;IAAEF;EAAO;AAClB;AAEA,eAAeD,mBACbR,aAA4D,EAC5DH,GAAmB,EACnBI,OAAyD;EAEzD,IAAIwB,eAAA;EACJ,IAAI,OAAOzB,aAAA,KAAkB,YAAY;IACvCyB,eAAA,GAAkB,MAAMzB,aAAA,CAAc;MAAEH;IAAI;EAC9C,OAAO;IACL4B,eAAA,GAAkBzB,aAAA;EACpB;EAEA,OAAOyB,eAAA,CAAgBf,GAAG,CAAC,CAACgB,cAAA,EAAgBC,KAAA;IAC1C,MAAMR,MAAA,GAASlB,OAAA,CAAQiB,IAAI,CAAEU,CAAA,IAAMA,CAAA,CAAER,IAAI,KAAKM,cAAA,CAAed,UAAU;IACvE,OAAO;MACLC,EAAA,EAAI,GAAGa,cAAA,CAAed,UAAU,IAAIe,KAAA,EAAO;MAC3CJ,IAAA,EAAMG,cAAA,CAAeH,IAAI;MACzBM,QAAA,EAAUV,MAAA,EAAQU,QAAA,IAAY;MAC9BC,QAAA,EAAUX,MAAA,EAAQW,QAAA,IAAY;MAC9BC,KAAA,EAAOL,cAAA,CAAeK,KAAK,IAAI;IACjC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.ts"],"sourcesContent":["import type {\n DashboardConfig,\n PayloadRequest,\n ServerFunction,\n Widget,\n WidgetServerProps,\n} from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nimport type { WidgetInstanceClient, WidgetItem } from '../index.client.js'\n\nexport type GetDefaultLayoutServerFnArgs = Record<string, never>\n\nexport type GetDefaultLayoutServerFnReturnType = {\n layout: WidgetInstanceClient[]\n}\n\n/**\n * Server function to get the default dashboard layout on-demand.\n * Used when resetting the dashboard to its default configuration.\n */\nexport const getDefaultLayoutHandler: ServerFunction<\n GetDefaultLayoutServerFnArgs,\n Promise<GetDefaultLayoutServerFnReturnType>\n> = async ({ cookies, locale, permissions, req }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { defaultLayout = [], widgets = [] } = req.payload.config.admin.dashboard || {}\n const { importMap } = req.payload\n\n const layoutItems = await getItemsFromConfig(defaultLayout, req, widgets)\n\n const layout: WidgetInstanceClient[] = layoutItems.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n return {\n component: RenderServerComponent({\n Component: widgets.find((widget) => widget.slug === widgetSlug)?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n widgetData: layoutItem.data || {},\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n return { layout }\n}\n\nasync function getItemsFromConfig(\n defaultLayout: NonNullable<DashboardConfig['defaultLayout']>,\n req: PayloadRequest,\n widgets: Pick<Widget, 'maxWidth' | 'minWidth' | 'slug'>[],\n): Promise<WidgetItem[]> {\n let widgetInstances\n if (typeof defaultLayout === 'function') {\n widgetInstances = await defaultLayout({ req })\n } else {\n widgetInstances = defaultLayout\n }\n\n return widgetInstances.map((widgetInstance, index) => {\n const widget = widgets.find((w) => w.slug === widgetInstance.widgetSlug)\n return {\n id: `${widgetInstance.widgetSlug}-${index}`,\n data: widgetInstance.data,\n maxWidth: widget?.maxWidth ?? 'full',\n minWidth: widget?.minWidth ?? 'x-small',\n width: widgetInstance.width || 'x-small',\n }\n })\n}\n"],"names":["RenderServerComponent","getDefaultLayoutHandler","cookies","locale","permissions","req","user","Error","defaultLayout","widgets","payload","config","admin","dashboard","importMap","layoutItems","getItemsFromConfig","layout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","component","Component","find","widget","slug","serverProps","widgetData","data","item","widgetInstances","widgetInstance","index","w","maxWidth","minWidth","width"],"mappings":"AAQA,SAASA,qBAAqB,QAAQ,gDAA+C;AAUrF;;;CAGC,GACD,OAAO,MAAMC,0BAGT,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE;IAC9C,IAAI,CAACA,IAAIC,IAAI,EAAE;QACb,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAM,EAAEC,gBAAgB,EAAE,EAAEC,UAAU,EAAE,EAAE,GAAGJ,IAAIK,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;IACpF,MAAM,EAAEC,SAAS,EAAE,GAAGT,IAAIK,OAAO;IAEjC,MAAMK,cAAc,MAAMC,mBAAmBR,eAAeH,KAAKI;IAEjE,MAAMQ,SAAiCF,YAAYG,GAAG,CAAC,CAACC;QACtD,MAAMC,aAAaD,WAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,WAAWE,EAAE,CAACE,WAAW,CAAC;QACpE,OAAO;YACLC,WAAWxB,sBAAsB;gBAC/ByB,WAAWhB,QAAQiB,IAAI,CAAC,CAACC,SAAWA,OAAOC,IAAI,KAAKR,aAAaK;gBACjEX;gBACAe,aAAa;oBACX3B;oBACAC;oBACAC;oBACAC;oBACAyB,YAAYX,WAAWY,IAAI,IAAI,CAAC;oBAChCX;gBACF;YACF;YACAY,MAAMb;QACR;IACF;IAEA,OAAO;QAAEF;IAAO;AAClB,EAAC;AAED,eAAeD,mBACbR,aAA4D,EAC5DH,GAAmB,EACnBI,OAAyD;IAEzD,IAAIwB;IACJ,IAAI,OAAOzB,kBAAkB,YAAY;QACvCyB,kBAAkB,MAAMzB,cAAc;YAAEH;QAAI;IAC9C,OAAO;QACL4B,kBAAkBzB;IACpB;IAEA,OAAOyB,gBAAgBf,GAAG,CAAC,CAACgB,gBAAgBC;QAC1C,MAAMR,SAASlB,QAAQiB,IAAI,CAAC,CAACU,IAAMA,EAAER,IAAI,KAAKM,eAAed,UAAU;QACvE,OAAO;YACLC,IAAI,GAAGa,eAAed,UAAU,CAAC,CAAC,EAAEe,OAAO;YAC3CJ,MAAMG,eAAeH,IAAI;YACzBM,UAAUV,QAAQU,YAAY;YAC9BC,UAAUX,QAAQW,YAAY;YAC9BC,OAAOL,eAAeK,KAAK,IAAI;QACjC;IACF;AACF"}
@@ -2,79 +2,72 @@ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerCompo
2
2
  import React from 'react';
3
3
  import { extractLocaleData } from '../utils/localeUtils.js';
4
4
  /**
5
+ * Instance-specific data for this widget
6
+ */ /**
7
+ * The slug of the widget to render
8
+ */ /**
5
9
  * Server function to render a widget on-demand.
6
10
  * Similar to render-field but specifically for dashboard widgets.
7
- */
8
- export const renderWidgetHandler = ({
9
- cookies,
10
- locale,
11
- permissions,
12
- req,
13
- widgetData,
14
- widgetSlug
15
- }) => {
16
- if (!req.user) {
17
- throw new Error('Unauthorized');
18
- }
19
- const {
20
- widgets
21
- } = req.payload.config.admin.dashboard;
22
- const {
23
- importMap
24
- } = req.payload;
25
- // Find the widget configuration
26
- const widgetConfig = widgets.find(widget => widget.slug === widgetSlug);
27
- if (!widgetConfig) {
28
- return {
29
- component: React.createElement('div', {
30
- style: {
31
- background: 'var(--theme-elevation-50)',
32
- border: '1px solid var(--theme-elevation-200)',
33
- borderRadius: '4px',
34
- color: 'var(--theme-text)',
35
- padding: '20px',
36
- textAlign: 'center'
37
- }
38
- }, `Widget "${widgetSlug}" not found`)
39
- };
40
- }
41
- try {
42
- const localeFilteredData = widgetConfig.fields?.length ? extractLocaleData(widgetData || {}, req.locale || 'en', widgetConfig.fields) : widgetData || {};
43
- const serverProps = {
44
- cookies,
45
- locale,
46
- permissions,
47
- req,
48
- widgetData: localeFilteredData,
49
- widgetSlug
50
- };
51
- // Render the widget server component
52
- const component = RenderServerComponent({
53
- Component: widgetConfig.Component,
54
- importMap,
55
- serverProps
56
- });
57
- return {
58
- component
59
- };
60
- } catch (error) {
61
- const errorMessage = error instanceof Error ? error.message : String(error);
62
- req.payload.logger.error({
63
- err: error,
64
- msg: `Error rendering widget "${widgetSlug}": ${errorMessage}`
65
- });
66
- return {
67
- component: React.createElement('div', {
68
- style: {
69
- background: 'var(--theme-error-50)',
70
- border: '1px solid var(--theme-error-200)',
71
- borderRadius: '4px',
72
- color: 'var(--theme-error-text)',
73
- padding: '20px',
74
- textAlign: 'center'
75
- }
76
- }, 'Error loading widget')
77
- };
78
- }
11
+ */ export const renderWidgetHandler = ({ cookies, locale, permissions, req, widgetData, widgetSlug })=>{
12
+ if (!req.user) {
13
+ throw new Error('Unauthorized');
14
+ }
15
+ const { widgets } = req.payload.config.admin.dashboard;
16
+ const { importMap } = req.payload;
17
+ // Find the widget configuration
18
+ const widgetConfig = widgets.find((widget)=>widget.slug === widgetSlug);
19
+ if (!widgetConfig) {
20
+ return {
21
+ component: React.createElement('div', {
22
+ style: {
23
+ background: 'var(--theme-elevation-50)',
24
+ border: '1px solid var(--theme-elevation-200)',
25
+ borderRadius: '4px',
26
+ color: 'var(--theme-text)',
27
+ padding: '20px',
28
+ textAlign: 'center'
29
+ }
30
+ }, `Widget "${widgetSlug}" not found`)
31
+ };
32
+ }
33
+ try {
34
+ const localeFilteredData = widgetConfig.fields?.length ? extractLocaleData(widgetData || {}, req.locale || 'en', widgetConfig.fields) : widgetData || {};
35
+ const serverProps = {
36
+ cookies,
37
+ locale,
38
+ permissions,
39
+ req,
40
+ widgetData: localeFilteredData,
41
+ widgetSlug
42
+ };
43
+ // Render the widget server component
44
+ const component = RenderServerComponent({
45
+ Component: widgetConfig.Component,
46
+ importMap,
47
+ serverProps
48
+ });
49
+ return {
50
+ component
51
+ };
52
+ } catch (error) {
53
+ const errorMessage = error instanceof Error ? error.message : String(error);
54
+ req.payload.logger.error({
55
+ err: error,
56
+ msg: `Error rendering widget "${widgetSlug}": ${errorMessage}`
57
+ });
58
+ return {
59
+ component: React.createElement('div', {
60
+ style: {
61
+ background: 'var(--theme-error-50)',
62
+ border: '1px solid var(--theme-error-200)',
63
+ borderRadius: '4px',
64
+ color: 'var(--theme-error-text)',
65
+ padding: '20px',
66
+ textAlign: 'center'
67
+ }
68
+ }, 'Error loading widget')
69
+ };
70
+ }
79
71
  };
72
+
80
73
  //# sourceMappingURL=renderWidgetServerFn.js.map
@@ -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,"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"],"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"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ,gDAA+C;AACrF,OAAOC,WAAW,QAAO;AAEzB,SAASC,iBAAiB,QAAQ,0BAAyB;AAGzD;;GAEC,GAED;;GAEC,GAQH;;;CAGC,GACD,OAAO,MAAMC,sBAGT,CAAC,EAAEC,OAAO,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAEC,UAAU,EAAEC,UAAU,EAAE;IAChE,IAAI,CAACF,IAAIG,IAAI,EAAE;QACb,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAM,EAAEC,OAAO,EAAE,GAAGL,IAAIM,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS;IACtD,MAAM,EAAEC,SAAS,EAAE,GAAGV,IAAIM,OAAO;IAEjC,gCAAgC;IAChC,MAAMK,eAAeN,QAAQO,IAAI,CAAC,CAACC,SAAWA,OAAOC,IAAI,KAAKZ;IAE9D,IAAI,CAACS,cAAc;QACjB,OAAO;YACLI,WAAWrB,MAAMsB,aAAa,CAC5B,OACA;gBACEC,OAAO;oBACLC,YAAY;oBACZC,QAAQ;oBACRC,cAAc;oBACdC,OAAO;oBACPC,SAAS;oBACTC,WAAW;gBACb;YACF,GACA,CAAC,QAAQ,EAAErB,WAAW,WAAW,CAAC;QAEtC;IACF;IAEA,IAAI;QACF,MAAMsB,qBAAqBb,aAAac,MAAM,EAAEC,SAC5C/B,kBAAkBM,cAAc,CAAC,GAAGD,IAAIF,MAAM,IAAI,MAAMa,aAAac,MAAM,IAC3ExB,cAAc,CAAC;QAEnB,MAAM0B,cAAiC;YACrC9B;YACAC;YACAC;YACAC;YACAC,YAAYuB;YACZtB;QACF;QAEA,qCAAqC;QACrC,MAAMa,YAAYtB,sBAAsB;YACtCmC,WAAWjB,aAAaiB,SAAS;YACjClB;YACAiB;QACF;QAEA,OAAO;YAAEZ;QAAU;IACrB,EAAE,OAAOc,OAAO;QACd,MAAMC,eAAeD,iBAAiBzB,QAAQyB,MAAME,OAAO,GAAGC,OAAOH;QAErE7B,IAAIM,OAAO,CAAC2B,MAAM,CAACJ,KAAK,CAAC;YACvBK,KAAKL;YACLM,KAAK,CAAC,wBAAwB,EAAEjC,WAAW,GAAG,EAAE4B,cAAc;QAChE;QAEA,OAAO;YACLf,WAAWrB,MAAMsB,aAAa,CAC5B,OACA;gBACEC,OAAO;oBACLC,YAAY;oBACZC,QAAQ;oBACRC,cAAc;oBACdC,OAAO;oBACPC,SAAS;oBACTC,WAAW;gBACb;YACF,GACA;QAEJ;IACF;AACF,EAAC"}