@payloadcms/next 3.0.0-canary.a5aaf21 → 3.0.0-canary.a6e7305

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 (301) hide show
  1. package/dist/cjs/withPayload.cjs +156 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -0
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -0
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
  7. package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
  8. package/dist/elements/DocumentHeader/index.scss +44 -42
  9. package/dist/elements/DocumentLocked/index.d.ts +1 -1
  10. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentLocked/index.js +24 -14
  12. package/dist/elements/DocumentLocked/index.js.map +1 -1
  13. package/dist/elements/DocumentLocked/index.scss +29 -26
  14. package/dist/elements/DocumentTakeOver/index.scss +28 -26
  15. package/dist/elements/FormHeader/index.d.ts +9 -0
  16. package/dist/elements/FormHeader/index.d.ts.map +1 -0
  17. package/dist/elements/FormHeader/index.js +20 -0
  18. package/dist/elements/FormHeader/index.js.map +1 -0
  19. package/dist/elements/FormHeader/index.scss +8 -0
  20. package/dist/elements/LeaveWithoutSaving/index.scss +28 -26
  21. package/dist/elements/Nav/NavWrapper/index.scss +20 -18
  22. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  23. package/dist/elements/Nav/index.client.js +1 -0
  24. package/dist/elements/Nav/index.client.js.map +1 -1
  25. package/dist/elements/Nav/index.scss +127 -125
  26. package/dist/exports/routes.d.ts +1 -1
  27. package/dist/exports/routes.d.ts.map +1 -1
  28. package/dist/exports/routes.js +1 -1
  29. package/dist/exports/routes.js.map +1 -1
  30. package/dist/exports/utilities.d.ts +1 -0
  31. package/dist/exports/utilities.d.ts.map +1 -1
  32. package/dist/exports/utilities.js +1 -0
  33. package/dist/exports/utilities.js.map +1 -1
  34. package/dist/layouts/Root/index.js +6 -6
  35. package/dist/layouts/Root/index.js.map +1 -1
  36. package/dist/prod/styles.css +1 -1
  37. package/dist/routes/graphql/handler.d.ts.map +1 -1
  38. package/dist/routes/graphql/handler.js +23 -11
  39. package/dist/routes/graphql/handler.js.map +1 -1
  40. package/dist/routes/rest/auth/login.js +2 -2
  41. package/dist/routes/rest/auth/login.js.map +1 -1
  42. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  43. package/dist/routes/rest/auth/logout.js +3 -2
  44. package/dist/routes/rest/auth/logout.js.map +1 -1
  45. package/dist/routes/rest/auth/refresh.js +2 -2
  46. package/dist/routes/rest/auth/refresh.js.map +1 -1
  47. package/dist/routes/rest/auth/registerFirstUser.js +2 -2
  48. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  49. package/dist/routes/rest/auth/resetPassword.js +2 -2
  50. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  51. package/dist/routes/rest/collections/create.d.ts.map +1 -1
  52. package/dist/routes/rest/collections/create.js +5 -1
  53. package/dist/routes/rest/collections/create.js.map +1 -1
  54. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  55. package/dist/routes/rest/collections/delete.js +8 -0
  56. package/dist/routes/rest/collections/delete.js.map +1 -1
  57. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  58. package/dist/routes/rest/collections/deleteByID.js +7 -1
  59. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  60. package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
  61. package/dist/routes/rest/collections/duplicate.js +5 -1
  62. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  63. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  64. package/dist/routes/rest/collections/find.js +7 -1
  65. package/dist/routes/rest/collections/find.js.map +1 -1
  66. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  67. package/dist/routes/rest/collections/findByID.js +5 -1
  68. package/dist/routes/rest/collections/findByID.js.map +1 -1
  69. package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
  70. package/dist/routes/rest/collections/findVersionByID.js +5 -1
  71. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  72. package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
  73. package/dist/routes/rest/collections/findVersions.js +7 -1
  74. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  75. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  76. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  77. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  78. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  79. package/dist/routes/rest/collections/update.js +10 -0
  80. package/dist/routes/rest/collections/update.js.map +1 -1
  81. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  82. package/dist/routes/rest/collections/updateByID.js +7 -1
  83. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  84. package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
  85. package/dist/routes/rest/globals/findOne.js +5 -1
  86. package/dist/routes/rest/globals/findOne.js.map +1 -1
  87. package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
  88. package/dist/routes/rest/globals/findVersionByID.js +5 -1
  89. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  90. package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
  91. package/dist/routes/rest/globals/findVersions.js +7 -1
  92. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  93. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  94. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  95. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  96. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  97. package/dist/routes/rest/globals/update.js +5 -1
  98. package/dist/routes/rest/globals/update.js.map +1 -1
  99. package/dist/routes/rest/index.d.ts +17 -12
  100. package/dist/routes/rest/index.d.ts.map +1 -1
  101. package/dist/routes/rest/index.js +90 -15
  102. package/dist/routes/rest/index.js.map +1 -1
  103. package/dist/routes/rest/og/index.js +2 -4
  104. package/dist/routes/rest/og/index.js.map +1 -1
  105. package/dist/routes/rest/routeError.d.ts +2 -7
  106. package/dist/routes/rest/routeError.d.ts.map +1 -1
  107. package/dist/routes/rest/routeError.js +33 -19
  108. package/dist/routes/rest/routeError.js.map +1 -1
  109. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +1 -1
  110. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -1
  111. package/dist/routes/rest/utilities/sanitizeJoinParams.js +9 -5
  112. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -1
  113. package/dist/routes/rest/utilities/sanitizePopulate.d.ts +3 -0
  114. package/dist/routes/rest/utilities/sanitizePopulate.d.ts.map +1 -0
  115. package/dist/routes/rest/utilities/sanitizePopulate.js +11 -0
  116. package/dist/routes/rest/utilities/sanitizePopulate.js.map +1 -0
  117. package/dist/routes/rest/utilities/sanitizeSelect.d.ts +6 -0
  118. package/dist/routes/rest/utilities/sanitizeSelect.d.ts.map +1 -0
  119. package/dist/routes/rest/utilities/sanitizeSelect.js +17 -0
  120. package/dist/routes/rest/utilities/sanitizeSelect.js.map +1 -0
  121. package/dist/scss/app.scss +166 -162
  122. package/dist/scss/colors.scss +256 -254
  123. package/dist/scss/resets.scss +9 -7
  124. package/dist/scss/toastify.scss +42 -40
  125. package/dist/scss/toasts.scss +105 -103
  126. package/dist/scss/type.scss +80 -79
  127. package/dist/templates/Default/Wrapper/index.scss +38 -36
  128. package/dist/templates/Default/index.scss +60 -58
  129. package/dist/templates/Minimal/index.scss +22 -20
  130. package/dist/utilities/getNextRequestI18n.js +2 -2
  131. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  132. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  133. package/dist/utilities/getRequestTheme.js +3 -0
  134. package/dist/utilities/getRequestTheme.js.map +1 -1
  135. package/dist/utilities/initPage/handleAdminPage.d.ts +12 -11
  136. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  137. package/dist/utilities/initPage/handleAdminPage.js +9 -21
  138. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  139. package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
  140. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  141. package/dist/utilities/initPage/handleAuthRedirect.js +23 -36
  142. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  143. package/dist/utilities/initPage/index.d.ts +1 -1
  144. package/dist/utilities/initPage/index.d.ts.map +1 -1
  145. package/dist/utilities/initPage/index.js +27 -10
  146. package/dist/utilities/initPage/index.js.map +1 -1
  147. package/dist/utilities/initPage/isCustomAdminView.d.ts +10 -0
  148. package/dist/utilities/initPage/isCustomAdminView.d.ts.map +1 -0
  149. package/dist/utilities/initPage/isCustomAdminView.js +31 -0
  150. package/dist/utilities/initPage/isCustomAdminView.js.map +1 -0
  151. package/dist/utilities/initPage/shared.d.ts +2 -2
  152. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  153. package/dist/utilities/initPage/shared.js +19 -13
  154. package/dist/utilities/initPage/shared.js.map +1 -1
  155. package/dist/utilities/initReq.js +1 -1
  156. package/dist/utilities/initReq.js.map +1 -1
  157. package/dist/views/API/RenderJSON/index.scss +68 -66
  158. package/dist/views/API/index.scss +98 -96
  159. package/dist/views/Account/Settings/index.d.ts +2 -1
  160. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  161. package/dist/views/Account/Settings/index.js +3 -2
  162. package/dist/views/Account/Settings/index.js.map +1 -1
  163. package/dist/views/Account/Settings/index.scss +37 -35
  164. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  165. package/dist/views/Account/ToggleTheme/index.js +1 -0
  166. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  167. package/dist/views/Account/index.d.ts.map +1 -1
  168. package/dist/views/Account/index.js +4 -2
  169. package/dist/views/Account/index.js.map +1 -1
  170. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  171. package/dist/views/CreateFirstUser/index.client.js +31 -15
  172. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  173. package/dist/views/CreateFirstUser/index.scss +13 -11
  174. package/dist/views/Dashboard/Default/index.d.ts +3 -1
  175. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  176. package/dist/views/Dashboard/Default/index.js +12 -3
  177. package/dist/views/Dashboard/Default/index.js.map +1 -1
  178. package/dist/views/Dashboard/Default/index.scss +51 -49
  179. package/dist/views/Dashboard/index.d.ts.map +1 -1
  180. package/dist/views/Dashboard/index.js +31 -13
  181. package/dist/views/Dashboard/index.js.map +1 -1
  182. package/dist/views/Document/getDocumentData.js +4 -2
  183. package/dist/views/Document/getDocumentData.js.map +1 -1
  184. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  185. package/dist/views/Document/getDocumentPermissions.js +6 -5
  186. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  187. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  188. package/dist/views/Document/getViewsFromConfig.js +6 -0
  189. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  190. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  191. package/dist/views/Edit/Default/Auth/APIKey.js +2 -8
  192. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  193. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  194. package/dist/views/Edit/Default/Auth/index.js +37 -26
  195. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  196. package/dist/views/Edit/Default/Auth/index.scss +56 -54
  197. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  198. package/dist/views/Edit/Default/index.js +45 -73
  199. package/dist/views/Edit/Default/index.js.map +1 -1
  200. package/dist/views/Edit/Default/index.scss +15 -13
  201. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  202. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +9 -11
  203. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  204. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  205. package/dist/views/ForgotPassword/index.js +10 -8
  206. package/dist/views/ForgotPassword/index.js.map +1 -1
  207. package/dist/views/List/Default/index.scss +136 -134
  208. package/dist/views/List/index.d.ts.map +1 -1
  209. package/dist/views/List/index.js +1 -1
  210. package/dist/views/List/index.js.map +1 -1
  211. package/dist/views/LivePreview/IFrame/index.scss +8 -6
  212. package/dist/views/LivePreview/Preview/index.scss +32 -30
  213. package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
  214. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
  215. package/dist/views/LivePreview/Toolbar/index.scss +33 -31
  216. package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
  217. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  218. package/dist/views/LivePreview/index.client.js +221 -203
  219. package/dist/views/LivePreview/index.client.js.map +1 -1
  220. package/dist/views/LivePreview/index.scss +48 -46
  221. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  222. package/dist/views/Login/LoginForm/index.js +2 -1
  223. package/dist/views/Login/LoginForm/index.js.map +1 -1
  224. package/dist/views/Login/LoginForm/index.scss +8 -6
  225. package/dist/views/Login/index.scss +8 -6
  226. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  227. package/dist/views/Logout/LogoutClient.js +77 -55
  228. package/dist/views/Logout/LogoutClient.js.map +1 -1
  229. package/dist/views/Logout/index.scss +17 -15
  230. package/dist/views/NotFound/index.d.ts +5 -5
  231. package/dist/views/NotFound/index.d.ts.map +1 -1
  232. package/dist/views/NotFound/index.js +7 -2
  233. package/dist/views/NotFound/index.js.map +1 -1
  234. package/dist/views/NotFound/index.scss +38 -36
  235. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
  236. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
  237. package/dist/views/ResetPassword/{index.client.js → ResetPasswordForm/index.js} +16 -19
  238. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  239. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  240. package/dist/views/ResetPassword/index.js +19 -10
  241. package/dist/views/ResetPassword/index.js.map +1 -1
  242. package/dist/views/ResetPassword/index.scss +6 -26
  243. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  244. package/dist/views/Root/getViewFromConfig.js +1 -7
  245. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  246. package/dist/views/Root/index.d.ts +5 -5
  247. package/dist/views/Root/index.d.ts.map +1 -1
  248. package/dist/views/Root/index.js +23 -10
  249. package/dist/views/Root/index.js.map +1 -1
  250. package/dist/views/Root/meta.d.ts +5 -5
  251. package/dist/views/Root/meta.d.ts.map +1 -1
  252. package/dist/views/Root/meta.js +3 -2
  253. package/dist/views/Root/meta.js.map +1 -1
  254. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  255. package/dist/views/Unauthorized/index.js +14 -7
  256. package/dist/views/Unauthorized/index.js.map +1 -1
  257. package/dist/views/Unauthorized/index.scss +4 -31
  258. package/dist/views/Verify/index.client.d.ts +7 -0
  259. package/dist/views/Verify/index.client.d.ts.map +1 -0
  260. package/dist/views/Verify/index.client.js +46 -0
  261. package/dist/views/Verify/index.client.js.map +1 -0
  262. package/dist/views/Verify/index.d.ts.map +1 -1
  263. package/dist/views/Verify/index.js +12 -11
  264. package/dist/views/Verify/index.js.map +1 -1
  265. package/dist/views/Verify/index.scss +13 -11
  266. package/dist/views/Version/Default/index.scss +52 -50
  267. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
  268. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
  269. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
  270. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
  271. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
  272. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
  273. package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
  274. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  275. package/dist/views/Version/Restore/index.js +8 -14
  276. package/dist/views/Version/Restore/index.js.map +1 -1
  277. package/dist/views/Version/Restore/index.scss +57 -55
  278. package/dist/views/Version/SelectComparison/index.scss +12 -10
  279. package/dist/views/Version/SelectLocales/index.scss +6 -4
  280. package/dist/views/Version/index.d.ts.map +1 -1
  281. package/dist/views/Version/index.js +2 -0
  282. package/dist/views/Version/index.js.map +1 -1
  283. package/dist/views/Versions/cells/CreatedAt/index.js +1 -0
  284. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  285. package/dist/views/Versions/getLatestVersion.d.ts +1 -0
  286. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  287. package/dist/views/Versions/getLatestVersion.js +15 -4
  288. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  289. package/dist/views/Versions/index.d.ts.map +1 -1
  290. package/dist/views/Versions/index.js +4 -4
  291. package/dist/views/Versions/index.js.map +1 -1
  292. package/dist/views/Versions/index.scss +78 -76
  293. package/dist/withPayload.d.ts.map +1 -1
  294. package/dist/withPayload.js +9 -1
  295. package/dist/withPayload.js.map +1 -1
  296. package/package.json +10 -10
  297. package/dist/cjs/withPayload.js +0 -111
  298. package/dist/cjs/withPayload.js.map +0 -1
  299. package/dist/views/ResetPassword/index.client.d.ts +0 -7
  300. package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
  301. package/dist/views/ResetPassword/index.client.js.map +0 -1
@@ -1,41 +1,43 @@
1
1
  @import '../../../scss/styles.scss';
2
2
 
3
- .live-preview-toolbar {
4
- display: flex;
5
- background-color: var(--theme-bg);
6
- color: var(--theme-text);
7
- height: calc(var(--base) * 1.75);
8
- align-items: center;
9
- flex-shrink: 0;
3
+ @layer payload-default {
4
+ .live-preview-toolbar {
5
+ display: flex;
6
+ background-color: var(--theme-bg);
7
+ color: var(--theme-text);
8
+ height: calc(var(--base) * 1.75);
9
+ align-items: center;
10
+ flex-shrink: 0;
10
11
 
11
- &--static {
12
- position: relative;
13
- width: 100%;
14
- justify-content: center;
15
- border-bottom: 1px solid var(--theme-elevation-100);
16
- }
12
+ &--static {
13
+ position: relative;
14
+ width: 100%;
15
+ justify-content: center;
16
+ border-bottom: 1px solid var(--theme-elevation-100);
17
+ }
17
18
 
18
- &--draggable {
19
- @include shadow-lg;
20
- position: absolute;
21
- top: 0;
22
- left: 0;
23
- margin: 0;
24
- border-radius: 4px;
25
- }
19
+ &--draggable {
20
+ @include shadow-lg;
21
+ position: absolute;
22
+ top: 0;
23
+ left: 0;
24
+ margin: 0;
25
+ border-radius: 4px;
26
+ }
26
27
 
27
- &__drag-handle {
28
- background: transparent;
29
- border: 0;
30
- padding: 0;
31
- cursor: grab;
28
+ &__drag-handle {
29
+ background: transparent;
30
+ border: 0;
31
+ padding: 0;
32
+ cursor: grab;
32
33
 
33
- .icon--drag-handle .fill {
34
- fill: var(--theme-elevation-300);
35
- }
34
+ .icon--drag-handle .fill {
35
+ fill: var(--theme-elevation-300);
36
+ }
36
37
 
37
- &:active {
38
- cursor: grabbing;
38
+ &:active {
39
+ cursor: grabbing;
40
+ }
39
41
  }
40
42
  }
41
43
  }
@@ -1,4 +1,6 @@
1
- .toolbar-area {
2
- width: 100%;
3
- height: 100%;
1
+ @layer payload-default {
2
+ .toolbar-area {
3
+ width: 100%;
4
+ height: 100%;
5
+ }
4
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAehB,OAAO,KAAgC,MAAM,OAAO,CAAA;AAOpD,OAAO,cAAc,CAAA;AAoLrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAmDA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAqBhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AASjF,OAAO,cAAc,CAAA;AA4YrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAmDA,CAAA"}
@@ -3,8 +3,11 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { DocumentControls, DocumentFields, Form, OperationProvider, SetViewActions, useAuth, useConfig, useDocumentEvents, useDocumentInfo, useTranslation } from '@payloadcms/ui';
6
- import { getFormState } from '@payloadcms/ui/shared';
7
- import React, { Fragment, useCallback } from 'react';
6
+ import { getFormState, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
7
+ import { useRouter } from 'next/navigation.js';
8
+ import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
9
+ import { DocumentLocked } from '../../elements/DocumentLocked/index.js';
10
+ import { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js';
8
11
  import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
9
12
  import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
10
13
  import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
@@ -13,17 +16,15 @@ import { LivePreviewProvider } from './Context/index.js';
13
16
  import { LivePreview } from './Preview/index.js';
14
17
  import { usePopupWindow } from './usePopupWindow.js';
15
18
  const baseClass = 'live-preview';
16
- const PreviewView = t0 => {
17
- const $ = _c(53);
18
- const {
19
- apiRoute,
20
- collectionConfig,
21
- config,
22
- fields,
23
- globalConfig,
24
- schemaPath,
25
- serverURL
26
- } = t0;
19
+ const PreviewView = ({
20
+ apiRoute,
21
+ collectionConfig,
22
+ config,
23
+ fields,
24
+ globalConfig,
25
+ schemaPath,
26
+ serverURL
27
+ }) => {
27
28
  const {
28
29
  id,
29
30
  action,
@@ -33,9 +34,11 @@ const PreviewView = t0 => {
33
34
  BeforeDocument,
34
35
  BeforeFields,
35
36
  collectionSlug,
37
+ currentEditor,
36
38
  disableActions,
37
39
  disableLeaveWithoutSaving,
38
40
  docPermissions,
41
+ documentIsLocked,
39
42
  getDocPreferences,
40
43
  globalSlug,
41
44
  hasPublishPermission,
@@ -44,18 +47,25 @@ const PreviewView = t0 => {
44
47
  initialState,
45
48
  isEditing,
46
49
  isInitializing,
47
- onSave: onSaveFromProps
50
+ lastUpdateTime,
51
+ onSave: onSaveFromProps,
52
+ setCurrentEditor,
53
+ setDocumentIsLocked,
54
+ unlockDocument,
55
+ updateDocumentEditor
48
56
  } = useDocumentInfo();
49
- const operation = id ? "update" : "create";
57
+ const operation = id ? 'update' : 'create';
50
58
  const {
51
- config: t1
59
+ config: {
60
+ admin: {
61
+ user: userSlug
62
+ },
63
+ routes: {
64
+ admin: adminRoute
65
+ }
66
+ }
52
67
  } = useConfig();
53
- const {
54
- admin: t2
55
- } = t1;
56
- const {
57
- user: userSlug
58
- } = t2;
68
+ const router = useRouter();
59
69
  const {
60
70
  t
61
71
  } = useTranslation();
@@ -69,193 +79,201 @@ const PreviewView = t0 => {
69
79
  const {
70
80
  reportUpdate
71
81
  } = useDocumentEvents();
72
- let t3;
73
- if ($[0] !== reportUpdate || $[1] !== id || $[2] !== collectionSlug || $[3] !== user || $[4] !== userSlug || $[5] !== refreshCookieAsync || $[6] !== onSaveFromProps) {
74
- t3 = json => {
75
- reportUpdate({
76
- id,
77
- entitySlug: collectionSlug,
78
- updatedAt: json?.result?.updatedAt || new Date().toISOString()
82
+ const docConfig = collectionConfig || globalConfig;
83
+ const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true;
84
+ const isLockingEnabled = lockDocumentsProp !== false;
85
+ const lockDurationDefault = 300 // Default 5 minutes in seconds
86
+ ;
87
+ const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
88
+ const lockDurationInMilliseconds = lockDuration * 1000;
89
+ const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
90
+ const [showTakeOverModal, setShowTakeOverModal] = useState(false);
91
+ const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
92
+ const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
93
+ const isLockExpired = Date.now() > lockExpiryTime;
94
+ const documentLockStateRef = useRef({
95
+ hasShownLockedModal: false,
96
+ isLocked: false,
97
+ user: null
98
+ });
99
+ const onSave = useCallback(json => {
100
+ reportUpdate({
101
+ id,
102
+ entitySlug: collectionSlug,
103
+ updatedAt: json?.result?.updatedAt || new Date().toISOString()
104
+ });
105
+ // If we're editing the doc of the logged-in user,
106
+ // Refresh the cookie to get new permissions
107
+ if (user && collectionSlug === userSlug && id === user.id) {
108
+ void refreshCookieAsync();
109
+ }
110
+ // Unlock the document after save
111
+ if ((id || globalSlug) && isLockingEnabled) {
112
+ setDocumentIsLocked(false);
113
+ }
114
+ if (typeof onSaveFromProps === 'function') {
115
+ void onSaveFromProps({
116
+ ...json,
117
+ operation: id ? 'update' : 'create'
79
118
  });
80
- if (user && collectionSlug === userSlug && id === user.id) {
81
- refreshCookieAsync();
119
+ }
120
+ }, [collectionSlug, globalSlug, id, isLockingEnabled, onSaveFromProps, refreshCookieAsync, reportUpdate, setDocumentIsLocked, user, userSlug]);
121
+ const onChange = useCallback(async ({
122
+ formState: prevFormState
123
+ }) => {
124
+ const currentTime = Date.now();
125
+ const timeSinceLastUpdate = currentTime - editSessionStartTime;
126
+ const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
127
+ ;
128
+ if (updateLastEdited) {
129
+ setEditSessionStartTime(currentTime);
130
+ }
131
+ const docPreferences = await getDocPreferences();
132
+ const {
133
+ lockedState,
134
+ state
135
+ } = await getFormState({
136
+ apiRoute,
137
+ body: {
138
+ id,
139
+ collectionSlug,
140
+ docPreferences,
141
+ formState: prevFormState,
142
+ globalSlug,
143
+ operation,
144
+ returnLockStatus: isLockingEnabled ? true : false,
145
+ schemaPath,
146
+ updateLastEdited
147
+ },
148
+ serverURL
149
+ });
150
+ setDocumentIsLocked(true);
151
+ if (isLockingEnabled) {
152
+ const previousOwnerId = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
153
+ if (lockedState) {
154
+ if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {
155
+ if (previousOwnerId === user.id && lockedState.user.id !== user.id) {
156
+ setShowTakeOverModal(true);
157
+ documentLockStateRef.current.hasShownLockedModal = true;
158
+ }
159
+ documentLockStateRef.current = documentLockStateRef.current = {
160
+ hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,
161
+ isLocked: true,
162
+ user: lockedState.user
163
+ };
164
+ setCurrentEditor(lockedState.user);
165
+ }
166
+ }
167
+ }
168
+ return state;
169
+ }, [collectionSlug, editSessionStartTime, globalSlug, serverURL, apiRoute, id, isLockingEnabled, operation, schemaPath, getDocPreferences, setCurrentEditor, setDocumentIsLocked, user]);
170
+ // Clean up when the component unmounts or when the document is unlocked
171
+ useEffect(() => {
172
+ return () => {
173
+ if (!isLockingEnabled) {
174
+ return;
82
175
  }
83
- if (typeof onSaveFromProps === "function") {
84
- onSaveFromProps({
85
- ...json,
86
- operation: id ? "update" : "create"
87
- });
176
+ const currentPath = window.location.pathname;
177
+ const documentId = id || globalSlug;
178
+ // Routes where we do NOT want to unlock the document
179
+ const stayWithinDocumentPaths = ['preview', 'api', 'versions'];
180
+ const isStayingWithinDocument = stayWithinDocumentPaths.some(path => currentPath.includes(path));
181
+ // Unlock the document only if we're actually navigating away from the document
182
+ if (documentId && documentIsLocked && !isStayingWithinDocument) {
183
+ // Check if this user is still the current editor
184
+ if (typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id === user?.id : documentLockStateRef.current?.user === user?.id) {
185
+ void unlockDocument(id, collectionSlug ?? globalSlug);
186
+ setDocumentIsLocked(false);
187
+ setCurrentEditor(null);
188
+ }
88
189
  }
190
+ setShowTakeOverModal(false);
89
191
  };
90
- $[0] = reportUpdate;
91
- $[1] = id;
92
- $[2] = collectionSlug;
93
- $[3] = user;
94
- $[4] = userSlug;
95
- $[5] = refreshCookieAsync;
96
- $[6] = onSaveFromProps;
97
- $[7] = t3;
98
- } else {
99
- t3 = $[7];
100
- }
101
- const onSave = t3;
102
- let t4;
103
- if ($[8] !== getDocPreferences || $[9] !== apiRoute || $[10] !== id || $[11] !== operation || $[12] !== schemaPath || $[13] !== serverURL) {
104
- t4 = async t5 => {
105
- const {
106
- formState: prevFormState
107
- } = t5;
108
- const docPreferences = await getDocPreferences();
109
- const {
110
- state
111
- } = await getFormState({
112
- apiRoute,
113
- body: {
114
- id,
115
- docPreferences,
116
- formState: prevFormState,
117
- operation,
118
- schemaPath
192
+ }, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
193
+ const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal &&
194
+ // eslint-disable-next-line react-compiler/react-compiler
195
+ !documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
196
+ return /*#__PURE__*/_jsx(OperationProvider, {
197
+ operation: operation,
198
+ children: /*#__PURE__*/_jsxs(Form, {
199
+ action: action,
200
+ className: `${baseClass}__form`,
201
+ disabled: isReadOnlyForIncomingUser || !hasSavePermission,
202
+ initialState: initialState,
203
+ isInitializing: isInitializing,
204
+ method: id ? 'PATCH' : 'POST',
205
+ onChange: [onChange],
206
+ onSuccess: onSave,
207
+ children: [isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(DocumentLocked, {
208
+ handleGoBack: () => handleGoBack({
209
+ adminRoute,
210
+ collectionSlug,
211
+ router
212
+ }),
213
+ isActive: shouldShowDocumentLockedModal,
214
+ onReadOnly: () => {
215
+ setIsReadOnlyForIncomingUser(true);
216
+ setShowTakeOverModal(false);
119
217
  },
120
- serverURL
121
- });
122
- return state;
123
- };
124
- $[8] = getDocPreferences;
125
- $[9] = apiRoute;
126
- $[10] = id;
127
- $[11] = operation;
128
- $[12] = schemaPath;
129
- $[13] = serverURL;
130
- $[14] = t4;
131
- } else {
132
- t4 = $[14];
133
- }
134
- const onChange = t4;
135
- const t5 = !hasSavePermission;
136
- const t6 = id ? "PATCH" : "POST";
137
- let t7;
138
- if ($[15] !== onChange || $[16] !== collectionConfig || $[17] !== globalConfig || $[18] !== disableLeaveWithoutSaving || $[19] !== t || $[20] !== collectionSlug || $[21] !== globalSlug || $[22] !== id || $[23] !== config || $[24] !== apiURL || $[25] !== initialData || $[26] !== disableActions || $[27] !== hasPublishPermission || $[28] !== hasSavePermission || $[29] !== isEditing || $[30] !== docPermissions || $[31] !== previewWindowType || $[32] !== AfterFields || $[33] !== BeforeFields || $[34] !== fields || $[35] !== BeforeDocument || $[36] !== AfterDocument || $[37] !== action || $[38] !== t5 || $[39] !== initialState || $[40] !== isInitializing || $[41] !== t6 || $[42] !== onSave || $[43] !== operation) {
139
- let t8;
140
- if ($[45] !== collectionConfig || $[46] !== globalConfig || $[47] !== disableLeaveWithoutSaving) {
141
- t8 = (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && _jsx(LeaveWithoutSaving, {});
142
- $[45] = collectionConfig;
143
- $[46] = globalConfig;
144
- $[47] = disableLeaveWithoutSaving;
145
- $[48] = t8;
146
- } else {
147
- t8 = $[48];
148
- }
149
- const t9 = _jsx(SetDocumentStepNav, {
150
- collectionSlug,
151
- globalLabel: globalConfig?.label,
152
- globalSlug,
153
- id,
154
- pluralLabel: collectionConfig ? collectionConfig?.labels?.plural : undefined,
155
- useAsTitle: collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined,
156
- view: t("general:livePreview")
157
- });
158
- const t10 = _jsx(SetDocumentTitle, {
159
- collectionConfig,
160
- config,
161
- fallback: id?.toString() || "",
162
- globalConfig
163
- });
164
- const t11 = _jsx(DocumentControls, {
165
- apiURL,
166
- data: initialData,
167
- disableActions,
168
- hasPublishPermission,
169
- hasSavePermission,
170
- id,
171
- isEditing,
172
- permissions: docPermissions,
173
- slug: collectionConfig?.slug || globalConfig?.slug
174
- });
175
- const t12 = previewWindowType === "popup" && `${baseClass}--detached`;
176
- let t13;
177
- if ($[49] !== t12) {
178
- t13 = [baseClass, t12].filter(Boolean);
179
- $[49] = t12;
180
- $[50] = t13;
181
- } else {
182
- t13 = $[50];
183
- }
184
- const t14 = t13.join(" ");
185
- const t15 = previewWindowType === "popup" && `${baseClass}__main--popup-open`;
186
- let t16;
187
- if ($[51] !== t15) {
188
- t16 = [`${baseClass}__main`, t15].filter(Boolean);
189
- $[51] = t15;
190
- $[52] = t16;
191
- } else {
192
- t16 = $[52];
193
- }
194
- t7 = _jsx(OperationProvider, {
195
- operation,
196
- children: _jsxs(Form, {
197
- action,
198
- className: `${baseClass}__form`,
199
- disabled: t5,
200
- initialState,
201
- isInitializing,
202
- method: t6,
203
- onChange: [onChange],
204
- onSuccess: onSave,
205
- children: [t8, t9, t10, t11, _jsxs("div", {
206
- className: t14,
207
- children: [_jsxs("div", {
208
- className: t16.join(" "),
209
- children: [BeforeDocument, _jsx(DocumentFields, {
210
- AfterFields,
211
- BeforeFields,
212
- docPermissions,
213
- fields,
214
- forceSidebarWrap: true,
215
- readOnly: !hasSavePermission,
216
- schemaPath: collectionSlug || globalSlug
217
- }), AfterDocument]
218
- }), _jsx(LivePreview, {
219
- collectionSlug,
220
- globalSlug
221
- })]
218
+ onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled),
219
+ updatedAt: lastUpdateTime,
220
+ user: currentEditor
221
+ }), isLockingEnabled && showTakeOverModal && /*#__PURE__*/_jsx(DocumentTakeOver, {
222
+ handleBackToDashboard: () => handleBackToDashboard({
223
+ adminRoute,
224
+ router
225
+ }),
226
+ isActive: showTakeOverModal,
227
+ onReadOnly: () => {
228
+ setIsReadOnlyForIncomingUser(true);
229
+ setShowTakeOverModal(false);
230
+ }
231
+ }), (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(LeaveWithoutSaving, {}), /*#__PURE__*/_jsx(SetDocumentStepNav, {
232
+ collectionSlug: collectionSlug,
233
+ globalLabel: globalConfig?.label,
234
+ globalSlug: globalSlug,
235
+ id: id,
236
+ pluralLabel: collectionConfig ? collectionConfig?.labels?.plural : undefined,
237
+ useAsTitle: collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined,
238
+ view: t('general:livePreview')
239
+ }), /*#__PURE__*/_jsx(SetDocumentTitle, {
240
+ collectionConfig: collectionConfig,
241
+ config: config,
242
+ fallback: id?.toString() || '',
243
+ globalConfig: globalConfig
244
+ }), /*#__PURE__*/_jsx(DocumentControls, {
245
+ apiURL: apiURL,
246
+ data: initialData,
247
+ disableActions: disableActions,
248
+ hasPublishPermission: hasPublishPermission,
249
+ hasSavePermission: hasSavePermission,
250
+ id: id,
251
+ isEditing: isEditing,
252
+ onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled, setIsReadOnlyForIncomingUser),
253
+ permissions: docPermissions,
254
+ readOnlyForIncomingUser: isReadOnlyForIncomingUser,
255
+ slug: collectionConfig?.slug || globalConfig?.slug,
256
+ user: currentEditor
257
+ }), /*#__PURE__*/_jsxs("div", {
258
+ className: [baseClass, previewWindowType === 'popup' && `${baseClass}--detached`].filter(Boolean).join(' '),
259
+ children: [/*#__PURE__*/_jsxs("div", {
260
+ className: [`${baseClass}__main`, previewWindowType === 'popup' && `${baseClass}__main--popup-open`].filter(Boolean).join(' '),
261
+ children: [BeforeDocument, /*#__PURE__*/_jsx(DocumentFields, {
262
+ AfterFields: AfterFields,
263
+ BeforeFields: BeforeFields,
264
+ docPermissions: docPermissions,
265
+ fields: fields,
266
+ forceSidebarWrap: true,
267
+ readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
268
+ schemaPath: collectionSlug || globalSlug
269
+ }), AfterDocument]
270
+ }), /*#__PURE__*/_jsx(LivePreview, {
271
+ collectionSlug: collectionSlug,
272
+ globalSlug: globalSlug
222
273
  })]
223
- })
224
- });
225
- $[15] = onChange;
226
- $[16] = collectionConfig;
227
- $[17] = globalConfig;
228
- $[18] = disableLeaveWithoutSaving;
229
- $[19] = t;
230
- $[20] = collectionSlug;
231
- $[21] = globalSlug;
232
- $[22] = id;
233
- $[23] = config;
234
- $[24] = apiURL;
235
- $[25] = initialData;
236
- $[26] = disableActions;
237
- $[27] = hasPublishPermission;
238
- $[28] = hasSavePermission;
239
- $[29] = isEditing;
240
- $[30] = docPermissions;
241
- $[31] = previewWindowType;
242
- $[32] = AfterFields;
243
- $[33] = BeforeFields;
244
- $[34] = fields;
245
- $[35] = BeforeDocument;
246
- $[36] = AfterDocument;
247
- $[37] = action;
248
- $[38] = t5;
249
- $[39] = initialState;
250
- $[40] = isInitializing;
251
- $[41] = t6;
252
- $[42] = onSave;
253
- $[43] = operation;
254
- $[44] = t7;
255
- } else {
256
- t7 = $[44];
257
- }
258
- return t7;
274
+ })]
275
+ })
276
+ });
259
277
  };
260
278
  export const LivePreviewClient = props => {
261
279
  const $ = _c(14);