@payloadcms/next 3.0.0-canary.9de3ffd → 3.0.0-canary.a14e066

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 (660) hide show
  1. package/dist/cjs/withPayload.cjs +4 -4
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/config.js +0 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +15 -9
  6. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +100 -35
  8. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +75 -64
  11. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  12. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +31 -35
  13. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js.map +1 -1
  14. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +15 -12
  15. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js.map +1 -1
  16. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/index.js +95 -82
  18. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +37 -14
  21. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +60 -52
  25. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentHeader/index.js +24 -23
  28. package/dist/elements/DocumentHeader/index.js.map +1 -1
  29. package/dist/elements/DocumentLocked/index.d.ts +12 -0
  30. package/dist/elements/DocumentLocked/index.d.ts.map +1 -0
  31. package/dist/elements/DocumentLocked/index.js +142 -0
  32. package/dist/elements/DocumentLocked/index.js.map +1 -0
  33. package/dist/elements/DocumentLocked/index.scss +37 -0
  34. package/dist/elements/DocumentTakeOver/index.d.ts +8 -0
  35. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -0
  36. package/dist/elements/DocumentTakeOver/index.js +98 -0
  37. package/dist/elements/DocumentTakeOver/index.js.map +1 -0
  38. package/dist/elements/DocumentTakeOver/index.scss +37 -0
  39. package/dist/elements/EmailAndUsername/index.d.ts +1 -1
  40. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  41. package/dist/elements/EmailAndUsername/index.js +107 -75
  42. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  43. package/dist/elements/FormHeader/index.d.ts +9 -0
  44. package/dist/elements/FormHeader/index.d.ts.map +1 -0
  45. package/dist/elements/FormHeader/index.js +20 -0
  46. package/dist/elements/FormHeader/index.js.map +1 -0
  47. package/dist/elements/FormHeader/index.scss +6 -0
  48. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  49. package/dist/elements/LeaveWithoutSaving/index.js +150 -83
  50. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  51. package/dist/elements/LeaveWithoutSaving/index.scss +3 -3
  52. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  53. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +121 -101
  54. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  55. package/dist/elements/Logo/index.js +37 -22
  56. package/dist/elements/Logo/index.js.map +1 -1
  57. package/dist/elements/Nav/NavHamburger/index.js +41 -13
  58. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  59. package/dist/elements/Nav/NavWrapper/index.js +48 -16
  60. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  61. package/dist/elements/Nav/NavWrapper/index.scss +5 -0
  62. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  63. package/dist/elements/Nav/index.client.js +149 -76
  64. package/dist/elements/Nav/index.client.js.map +1 -1
  65. package/dist/elements/Nav/index.d.ts.map +1 -1
  66. package/dist/elements/Nav/index.js +57 -51
  67. package/dist/elements/Nav/index.js.map +1 -1
  68. package/dist/elements/Nav/index.scss +5 -1
  69. package/dist/exports/layouts.d.ts +1 -1
  70. package/dist/exports/layouts.d.ts.map +1 -1
  71. package/dist/exports/layouts.js +1 -2
  72. package/dist/exports/layouts.js.map +1 -1
  73. package/dist/exports/routes.js +0 -1
  74. package/dist/exports/routes.js.map +1 -1
  75. package/dist/exports/templates.js +0 -1
  76. package/dist/exports/templates.js.map +1 -1
  77. package/dist/exports/utilities.d.ts +1 -0
  78. package/dist/exports/utilities.d.ts.map +1 -1
  79. package/dist/exports/utilities.js +1 -1
  80. package/dist/exports/utilities.js.map +1 -1
  81. package/dist/exports/views.d.ts +1 -1
  82. package/dist/exports/views.d.ts.map +1 -1
  83. package/dist/exports/views.js +1 -2
  84. package/dist/exports/views.js.map +1 -1
  85. package/dist/fetchAPI-multipart/fileFactory.d.ts +2 -1
  86. package/dist/fetchAPI-multipart/fileFactory.d.ts.map +1 -1
  87. package/dist/fetchAPI-multipart/fileFactory.js +35 -34
  88. package/dist/fetchAPI-multipart/fileFactory.js.map +1 -1
  89. package/dist/fetchAPI-multipart/handlers.d.ts +1 -1
  90. package/dist/fetchAPI-multipart/handlers.d.ts.map +1 -1
  91. package/dist/fetchAPI-multipart/handlers.js +79 -78
  92. package/dist/fetchAPI-multipart/handlers.js.map +1 -1
  93. package/dist/fetchAPI-multipart/index.d.ts +1 -101
  94. package/dist/fetchAPI-multipart/index.d.ts.map +1 -1
  95. package/dist/fetchAPI-multipart/index.js +33 -31
  96. package/dist/fetchAPI-multipart/index.js.map +1 -1
  97. package/dist/fetchAPI-multipart/isEligibleRequest.js +13 -21
  98. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  99. package/dist/fetchAPI-multipart/processMultipart.d.ts +2 -1
  100. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  101. package/dist/fetchAPI-multipart/processMultipart.js +159 -141
  102. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  103. package/dist/fetchAPI-multipart/processNested.d.ts.map +1 -1
  104. package/dist/fetchAPI-multipart/processNested.js +26 -20
  105. package/dist/fetchAPI-multipart/processNested.js.map +1 -1
  106. package/dist/fetchAPI-multipart/uploadTimer.d.ts.map +1 -1
  107. package/dist/fetchAPI-multipart/uploadTimer.js +18 -17
  108. package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -1
  109. package/dist/fetchAPI-multipart/utilities.d.ts +1 -1
  110. package/dist/fetchAPI-multipart/utilities.d.ts.map +1 -1
  111. package/dist/fetchAPI-multipart/utilities.js +185 -165
  112. package/dist/fetchAPI-multipart/utilities.js.map +1 -1
  113. package/dist/fetchAPI-stream-file/index.js +19 -17
  114. package/dist/fetchAPI-stream-file/index.js.map +1 -1
  115. package/dist/index.js +0 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/layouts/Root/index.d.ts.map +1 -1
  118. package/dist/layouts/Root/index.js +151 -116
  119. package/dist/layouts/Root/index.js.map +1 -1
  120. package/dist/prod/styles.css +1 -1
  121. package/dist/routes/graphql/handler.d.ts.map +1 -1
  122. package/dist/routes/graphql/handler.js +119 -101
  123. package/dist/routes/graphql/handler.js.map +1 -1
  124. package/dist/routes/graphql/index.js +0 -1
  125. package/dist/routes/graphql/index.js.map +1 -1
  126. package/dist/routes/graphql/playground.js +23 -24
  127. package/dist/routes/graphql/playground.js.map +1 -1
  128. package/dist/routes/index.js +0 -1
  129. package/dist/routes/index.js.map +1 -1
  130. package/dist/routes/rest/auth/access.js +22 -21
  131. package/dist/routes/rest/auth/access.js.map +1 -1
  132. package/dist/routes/rest/auth/forgotPassword.js +29 -25
  133. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  134. package/dist/routes/rest/auth/init.js +16 -14
  135. package/dist/routes/rest/auth/init.js.map +1 -1
  136. package/dist/routes/rest/auth/login.js +43 -38
  137. package/dist/routes/rest/auth/login.js.map +1 -1
  138. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  139. package/dist/routes/rest/auth/logout.js +32 -27
  140. package/dist/routes/rest/auth/logout.js.map +1 -1
  141. package/dist/routes/rest/auth/me.js +23 -21
  142. package/dist/routes/rest/auth/me.js.map +1 -1
  143. package/dist/routes/rest/auth/refresh.js +31 -27
  144. package/dist/routes/rest/auth/refresh.js.map +1 -1
  145. package/dist/routes/rest/auth/registerFirstUser.js +43 -38
  146. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  147. package/dist/routes/rest/auth/resetPassword.js +38 -33
  148. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  149. package/dist/routes/rest/auth/unlock.js +27 -23
  150. package/dist/routes/rest/auth/unlock.js.map +1 -1
  151. package/dist/routes/rest/auth/verifyEmail.js +22 -17
  152. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  153. package/dist/routes/rest/buildFormState.js +38 -37
  154. package/dist/routes/rest/buildFormState.js.map +1 -1
  155. package/dist/routes/rest/checkEndpoints.js +11 -9
  156. package/dist/routes/rest/checkEndpoints.js.map +1 -1
  157. package/dist/routes/rest/collections/count.js +15 -11
  158. package/dist/routes/rest/collections/count.js.map +1 -1
  159. package/dist/routes/rest/collections/create.js +30 -26
  160. package/dist/routes/rest/collections/create.js.map +1 -1
  161. package/dist/routes/rest/collections/delete.js +40 -35
  162. package/dist/routes/rest/collections/delete.js.map +1 -1
  163. package/dist/routes/rest/collections/deleteByID.js +36 -31
  164. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  165. package/dist/routes/rest/collections/docAccess.js +17 -14
  166. package/dist/routes/rest/collections/docAccess.js.map +1 -1
  167. package/dist/routes/rest/collections/duplicate.js +36 -31
  168. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  169. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  170. package/dist/routes/rest/collections/find.js +32 -20
  171. package/dist/routes/rest/collections/find.js.map +1 -1
  172. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  173. package/dist/routes/rest/collections/findByID.js +30 -23
  174. package/dist/routes/rest/collections/findByID.js.map +1 -1
  175. package/dist/routes/rest/collections/findVersionByID.js +27 -22
  176. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  177. package/dist/routes/rest/collections/findVersions.js +27 -19
  178. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  179. package/dist/routes/rest/collections/preview.js +39 -34
  180. package/dist/routes/rest/collections/preview.js.map +1 -1
  181. package/dist/routes/rest/collections/restoreVersion.js +32 -27
  182. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  183. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  184. package/dist/routes/rest/collections/update.js +45 -37
  185. package/dist/routes/rest/collections/update.js.map +1 -1
  186. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  187. package/dist/routes/rest/collections/updateByID.js +44 -33
  188. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  189. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  190. package/dist/routes/rest/files/checkFileAccess.js +52 -45
  191. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  192. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  193. package/dist/routes/rest/files/getFile.js +56 -49
  194. package/dist/routes/rest/files/getFile.js.map +1 -1
  195. package/dist/routes/rest/files/getFileTypeFallback.js +16 -17
  196. package/dist/routes/rest/files/getFileTypeFallback.js.map +1 -1
  197. package/dist/routes/rest/globals/docAccess.js +15 -13
  198. package/dist/routes/rest/globals/docAccess.js.map +1 -1
  199. package/dist/routes/rest/globals/findOne.js +22 -18
  200. package/dist/routes/rest/globals/findOne.js.map +1 -1
  201. package/dist/routes/rest/globals/findVersionByID.js +22 -17
  202. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  203. package/dist/routes/rest/globals/findVersions.js +27 -19
  204. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  205. package/dist/routes/rest/globals/preview.js +38 -34
  206. package/dist/routes/rest/globals/preview.js.map +1 -1
  207. package/dist/routes/rest/globals/restoreVersion.js +27 -22
  208. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  209. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  210. package/dist/routes/rest/globals/update.js +38 -28
  211. package/dist/routes/rest/globals/update.js.map +1 -1
  212. package/dist/routes/rest/index.d.ts +12 -12
  213. package/dist/routes/rest/index.d.ts.map +1 -1
  214. package/dist/routes/rest/index.js +681 -626
  215. package/dist/routes/rest/index.js.map +1 -1
  216. package/dist/routes/rest/og/image.d.ts +1 -1
  217. package/dist/routes/rest/og/image.d.ts.map +1 -1
  218. package/dist/routes/rest/og/image.js +74 -76
  219. package/dist/routes/rest/og/image.js.map +1 -1
  220. package/dist/routes/rest/og/index.js +61 -60
  221. package/dist/routes/rest/og/index.js.map +1 -1
  222. package/dist/routes/rest/routeError.d.ts +2 -7
  223. package/dist/routes/rest/routeError.d.ts.map +1 -1
  224. package/dist/routes/rest/routeError.js +116 -95
  225. package/dist/routes/rest/routeError.js.map +1 -1
  226. package/dist/routes/rest/types.js +1 -2
  227. package/dist/routes/rest/types.js.map +1 -1
  228. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts.map +1 -1
  229. package/dist/routes/rest/utilities/sanitizeCollectionID.js +18 -11
  230. package/dist/routes/rest/utilities/sanitizeCollectionID.js.map +1 -1
  231. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +13 -0
  232. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -0
  233. package/dist/routes/rest/utilities/sanitizeJoinParams.js +17 -0
  234. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -0
  235. package/dist/scss/app.scss +166 -162
  236. package/dist/scss/colors.scss +256 -254
  237. package/dist/scss/resets.scss +9 -7
  238. package/dist/scss/toastify.scss +42 -40
  239. package/dist/scss/toasts.scss +105 -103
  240. package/dist/scss/type.scss +80 -79
  241. package/dist/templates/Default/NavHamburger/index.js +18 -6
  242. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  243. package/dist/templates/Default/Wrapper/index.js +42 -13
  244. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  245. package/dist/templates/Default/Wrapper/index.scss +0 -1
  246. package/dist/templates/Default/index.d.ts.map +1 -1
  247. package/dist/templates/Default/index.js +71 -50
  248. package/dist/templates/Default/index.js.map +1 -1
  249. package/dist/templates/Default/index.scss +14 -4
  250. package/dist/templates/Minimal/index.js +16 -16
  251. package/dist/templates/Minimal/index.js.map +1 -1
  252. package/dist/templates/Minimal/index.scss +2 -2
  253. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  254. package/dist/utilities/addDataAndFileToRequest.js +40 -35
  255. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  256. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  257. package/dist/utilities/addLocalesToRequest.js +48 -36
  258. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  259. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  260. package/dist/utilities/createPayloadRequest.js +90 -73
  261. package/dist/utilities/createPayloadRequest.js.map +1 -1
  262. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  263. package/dist/utilities/getNextRequestI18n.js +13 -11
  264. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  265. package/dist/utilities/getPayloadHMR.d.ts +1 -1
  266. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  267. package/dist/utilities/getPayloadHMR.js +91 -94
  268. package/dist/utilities/getPayloadHMR.js.map +1 -1
  269. package/dist/utilities/getRequestLanguage.js +16 -13
  270. package/dist/utilities/getRequestLanguage.js.map +1 -1
  271. package/dist/utilities/getRequestLocales.js +27 -24
  272. package/dist/utilities/getRequestLocales.js.map +1 -1
  273. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  274. package/dist/utilities/getRequestTheme.js +19 -16
  275. package/dist/utilities/getRequestTheme.js.map +1 -1
  276. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  277. package/dist/utilities/headersWithCors.js +21 -30
  278. package/dist/utilities/headersWithCors.js.map +1 -1
  279. package/dist/utilities/initPage/handleAdminPage.d.ts +11 -11
  280. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  281. package/dist/utilities/initPage/handleAdminPage.js +37 -46
  282. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  283. package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
  284. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  285. package/dist/utilities/initPage/handleAuthRedirect.js +36 -34
  286. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  287. package/dist/utilities/initPage/index.d.ts +1 -1
  288. package/dist/utilities/initPage/index.d.ts.map +1 -1
  289. package/dist/utilities/initPage/index.js +152 -123
  290. package/dist/utilities/initPage/index.js.map +1 -1
  291. package/dist/utilities/initPage/shared.d.ts +2 -2
  292. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  293. package/dist/utilities/initPage/shared.js +31 -25
  294. package/dist/utilities/initPage/shared.js.map +1 -1
  295. package/dist/utilities/initPage/types.js +1 -2
  296. package/dist/utilities/initPage/types.js.map +1 -1
  297. package/dist/utilities/initReq.d.ts +11 -0
  298. package/dist/utilities/initReq.d.ts.map +1 -0
  299. package/dist/utilities/initReq.js +46 -0
  300. package/dist/utilities/initReq.js.map +1 -0
  301. package/dist/utilities/mergeHeaders.js +8 -9
  302. package/dist/utilities/mergeHeaders.js.map +1 -1
  303. package/dist/utilities/meta.js +66 -68
  304. package/dist/utilities/meta.js.map +1 -1
  305. package/dist/utilities/timestamp.d.ts.map +1 -1
  306. package/dist/utilities/timestamp.js +6 -5
  307. package/dist/utilities/timestamp.js.map +1 -1
  308. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -1
  309. package/dist/views/API/LocaleSelector/index.js +38 -11
  310. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  311. package/dist/views/API/RenderJSON/index.d.ts +1 -1
  312. package/dist/views/API/RenderJSON/index.d.ts.map +1 -1
  313. package/dist/views/API/RenderJSON/index.js +124 -112
  314. package/dist/views/API/RenderJSON/index.js.map +1 -1
  315. package/dist/views/API/index.client.d.ts.map +1 -1
  316. package/dist/views/API/index.client.js +190 -202
  317. package/dist/views/API/index.client.js.map +1 -1
  318. package/dist/views/API/index.js +2 -3
  319. package/dist/views/API/index.js.map +1 -1
  320. package/dist/views/API/index.scss +98 -96
  321. package/dist/views/API/meta.js +22 -18
  322. package/dist/views/API/meta.js.map +1 -1
  323. package/dist/views/Account/Settings/LanguageSelector.js +45 -12
  324. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  325. package/dist/views/Account/Settings/index.d.ts +2 -1
  326. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  327. package/dist/views/Account/Settings/index.js +22 -28
  328. package/dist/views/Account/Settings/index.js.map +1 -1
  329. package/dist/views/Account/Settings/index.scss +37 -35
  330. package/dist/views/Account/ToggleTheme/index.js +51 -30
  331. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  332. package/dist/views/Account/index.client.js +32 -16
  333. package/dist/views/Account/index.client.js.map +1 -1
  334. package/dist/views/Account/index.d.ts.map +1 -1
  335. package/dist/views/Account/index.js +102 -69
  336. package/dist/views/Account/index.js.map +1 -1
  337. package/dist/views/Account/meta.js +12 -8
  338. package/dist/views/Account/meta.js.map +1 -1
  339. package/dist/views/CreateFirstUser/index.client.d.ts +1 -1
  340. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  341. package/dist/views/CreateFirstUser/index.client.js +115 -58
  342. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  343. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  344. package/dist/views/CreateFirstUser/index.js +42 -28
  345. package/dist/views/CreateFirstUser/index.js.map +1 -1
  346. package/dist/views/CreateFirstUser/index.scss +18 -6
  347. package/dist/views/CreateFirstUser/meta.js +12 -8
  348. package/dist/views/CreateFirstUser/meta.js.map +1 -1
  349. package/dist/views/Dashboard/Default/index.d.ts +8 -1
  350. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  351. package/dist/views/Dashboard/Default/index.js +146 -117
  352. package/dist/views/Dashboard/Default/index.js.map +1 -1
  353. package/dist/views/Dashboard/Default/index.scss +53 -46
  354. package/dist/views/Dashboard/index.d.ts.map +1 -1
  355. package/dist/views/Dashboard/index.js +76 -52
  356. package/dist/views/Dashboard/index.js.map +1 -1
  357. package/dist/views/Dashboard/meta.js +16 -12
  358. package/dist/views/Dashboard/meta.js.map +1 -1
  359. package/dist/views/Document/getCustomViewByKey.js +2 -3
  360. package/dist/views/Document/getCustomViewByKey.js.map +1 -1
  361. package/dist/views/Document/getCustomViewByRoute.js +30 -27
  362. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  363. package/dist/views/Document/getDocumentData.d.ts +5 -2
  364. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  365. package/dist/views/Document/getDocumentData.js +45 -28
  366. package/dist/views/Document/getDocumentData.js.map +1 -1
  367. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  368. package/dist/views/Document/getDocumentPermissions.js +86 -74
  369. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  370. package/dist/views/Document/getMetaBySegment.d.ts +2 -2
  371. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  372. package/dist/views/Document/getMetaBySegment.js +113 -107
  373. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  374. package/dist/views/Document/getViewsFromConfig.js +309 -331
  375. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  376. package/dist/views/Document/index.d.ts.map +1 -1
  377. package/dist/views/Document/index.js +194 -160
  378. package/dist/views/Document/index.js.map +1 -1
  379. package/dist/views/Document/meta.js +1 -2
  380. package/dist/views/Document/meta.js.map +1 -1
  381. package/dist/views/Edit/Default/Auth/APIKey.js +118 -132
  382. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  383. package/dist/views/Edit/Default/Auth/index.js +293 -196
  384. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  385. package/dist/views/Edit/Default/Auth/index.scss +56 -54
  386. package/dist/views/Edit/Default/Auth/types.d.ts +1 -1
  387. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  388. package/dist/views/Edit/Default/Auth/types.js +1 -2
  389. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  390. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  391. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +121 -70
  392. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  393. package/dist/views/Edit/Default/SetDocumentTitle/index.js +74 -29
  394. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +1 -1
  395. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  396. package/dist/views/Edit/Default/index.js +322 -189
  397. package/dist/views/Edit/Default/index.js.map +1 -1
  398. package/dist/views/Edit/Default/index.scss +15 -13
  399. package/dist/views/Edit/Default/types.js +1 -2
  400. package/dist/views/Edit/Default/types.js.map +1 -1
  401. package/dist/views/Edit/index.client.js +45 -21
  402. package/dist/views/Edit/index.client.js.map +1 -1
  403. package/dist/views/Edit/index.js +2 -3
  404. package/dist/views/Edit/index.js.map +1 -1
  405. package/dist/views/Edit/meta.js +43 -35
  406. package/dist/views/Edit/meta.js.map +1 -1
  407. package/dist/views/Edit/sanitizeEditViewProps.js +8 -9
  408. package/dist/views/Edit/sanitizeEditViewProps.js.map +1 -1
  409. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  410. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +153 -95
  411. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  412. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  413. package/dist/views/ForgotPassword/index.js +61 -48
  414. package/dist/views/ForgotPassword/index.js.map +1 -1
  415. package/dist/views/ForgotPassword/meta.js +12 -8
  416. package/dist/views/ForgotPassword/meta.js.map +1 -1
  417. package/dist/views/List/Default/index.d.ts.map +1 -1
  418. package/dist/views/List/Default/index.js +374 -210
  419. package/dist/views/List/Default/index.js.map +1 -1
  420. package/dist/views/List/Default/index.scss +136 -134
  421. package/dist/views/List/Default/types.js +1 -2
  422. package/dist/views/List/Default/types.js.map +1 -1
  423. package/dist/views/List/index.d.ts.map +1 -1
  424. package/dist/views/List/index.js +155 -138
  425. package/dist/views/List/index.js.map +1 -1
  426. package/dist/views/List/meta.js +20 -17
  427. package/dist/views/List/meta.js.map +1 -1
  428. package/dist/views/LivePreview/Context/collisionDetection.js +24 -21
  429. package/dist/views/LivePreview/Context/collisionDetection.js.map +1 -1
  430. package/dist/views/LivePreview/Context/context.d.ts +3 -2
  431. package/dist/views/LivePreview/Context/context.d.ts.map +1 -1
  432. package/dist/views/LivePreview/Context/context.js +39 -36
  433. package/dist/views/LivePreview/Context/context.js.map +1 -1
  434. package/dist/views/LivePreview/Context/index.d.ts.map +1 -1
  435. package/dist/views/LivePreview/Context/index.js +136 -142
  436. package/dist/views/LivePreview/Context/index.js.map +1 -1
  437. package/dist/views/LivePreview/Context/sizeReducer.js +18 -19
  438. package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
  439. package/dist/views/LivePreview/Device/index.d.ts.map +1 -1
  440. package/dist/views/LivePreview/Device/index.js +82 -71
  441. package/dist/views/LivePreview/Device/index.js.map +1 -1
  442. package/dist/views/LivePreview/DeviceContainer/index.js +47 -23
  443. package/dist/views/LivePreview/DeviceContainer/index.js.map +1 -1
  444. package/dist/views/LivePreview/IFrame/index.js +21 -16
  445. package/dist/views/LivePreview/IFrame/index.js.map +1 -1
  446. package/dist/views/LivePreview/IFrame/index.scss +8 -6
  447. package/dist/views/LivePreview/Preview/index.js +145 -92
  448. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  449. package/dist/views/LivePreview/Preview/index.scss +32 -30
  450. package/dist/views/LivePreview/Toolbar/Controls/index.js +137 -116
  451. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  452. package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
  453. package/dist/views/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  454. package/dist/views/LivePreview/Toolbar/SizeInput/index.js +89 -51
  455. package/dist/views/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  456. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
  457. package/dist/views/LivePreview/Toolbar/index.js +82 -50
  458. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  459. package/dist/views/LivePreview/Toolbar/index.scss +33 -31
  460. package/dist/views/LivePreview/ToolbarArea/index.js +32 -10
  461. package/dist/views/LivePreview/ToolbarArea/index.js.map +1 -1
  462. package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
  463. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  464. package/dist/views/LivePreview/index.client.js +332 -162
  465. package/dist/views/LivePreview/index.client.js.map +1 -1
  466. package/dist/views/LivePreview/index.js +67 -55
  467. package/dist/views/LivePreview/index.js.map +1 -1
  468. package/dist/views/LivePreview/index.scss +48 -46
  469. package/dist/views/LivePreview/meta.js +14 -9
  470. package/dist/views/LivePreview/meta.js.map +1 -1
  471. package/dist/views/LivePreview/usePopupWindow.d.ts +1 -1
  472. package/dist/views/LivePreview/usePopupWindow.d.ts.map +1 -1
  473. package/dist/views/LivePreview/usePopupWindow.js +133 -91
  474. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  475. package/dist/views/Login/LoginField/index.js +83 -39
  476. package/dist/views/Login/LoginField/index.js.map +1 -1
  477. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  478. package/dist/views/Login/LoginForm/index.js +147 -67
  479. package/dist/views/Login/LoginForm/index.js.map +1 -1
  480. package/dist/views/Login/LoginForm/index.scss +8 -6
  481. package/dist/views/Login/index.d.ts.map +1 -1
  482. package/dist/views/Login/index.js +78 -55
  483. package/dist/views/Login/index.js.map +1 -1
  484. package/dist/views/Login/index.scss +8 -6
  485. package/dist/views/Login/meta.js +12 -8
  486. package/dist/views/Login/meta.js.map +1 -1
  487. package/dist/views/Logout/LogoutClient.d.ts +1 -0
  488. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  489. package/dist/views/Logout/LogoutClient.js +110 -41
  490. package/dist/views/Logout/LogoutClient.js.map +1 -1
  491. package/dist/views/Logout/index.d.ts.map +1 -1
  492. package/dist/views/Logout/index.js +29 -16
  493. package/dist/views/Logout/index.js.map +1 -1
  494. package/dist/views/Logout/index.scss +19 -14
  495. package/dist/views/Logout/meta.js +11 -7
  496. package/dist/views/Logout/meta.js.map +1 -1
  497. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  498. package/dist/views/NotFound/index.client.js +81 -40
  499. package/dist/views/NotFound/index.client.js.map +1 -1
  500. package/dist/views/NotFound/index.d.ts +5 -5
  501. package/dist/views/NotFound/index.d.ts.map +1 -1
  502. package/dist/views/NotFound/index.js +49 -37
  503. package/dist/views/NotFound/index.js.map +1 -1
  504. package/dist/views/NotFound/index.scss +41 -21
  505. package/dist/views/NotFound/meta.js +9 -7
  506. package/dist/views/NotFound/meta.js.map +1 -1
  507. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
  508. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
  509. package/dist/views/ResetPassword/ResetPasswordForm/index.js +110 -0
  510. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  511. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  512. package/dist/views/ResetPassword/index.js +74 -58
  513. package/dist/views/ResetPassword/index.js.map +1 -1
  514. package/dist/views/ResetPassword/index.scss +9 -3
  515. package/dist/views/ResetPassword/meta.js +12 -8
  516. package/dist/views/ResetPassword/meta.js.map +1 -1
  517. package/dist/views/Root/generateCustomViewMetadata.js +21 -19
  518. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  519. package/dist/views/Root/getCustomViewByRoute.js +42 -31
  520. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  521. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  522. package/dist/views/Root/getViewFromConfig.js +158 -158
  523. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  524. package/dist/views/Root/index.d.ts +5 -5
  525. package/dist/views/Root/index.d.ts.map +1 -1
  526. package/dist/views/Root/index.js +105 -83
  527. package/dist/views/Root/index.js.map +1 -1
  528. package/dist/views/Root/isPathMatchingRoute.d.ts.map +1 -1
  529. package/dist/views/Root/isPathMatchingRoute.js +22 -13
  530. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  531. package/dist/views/Root/meta.d.ts +5 -5
  532. package/dist/views/Root/meta.d.ts.map +1 -1
  533. package/dist/views/Root/meta.js +142 -136
  534. package/dist/views/Root/meta.js.map +1 -1
  535. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  536. package/dist/views/Unauthorized/index.js +40 -23
  537. package/dist/views/Unauthorized/index.js.map +1 -1
  538. package/dist/views/Unauthorized/index.scss +4 -31
  539. package/dist/views/Unauthorized/meta.js +12 -8
  540. package/dist/views/Unauthorized/meta.js.map +1 -1
  541. package/dist/views/Verify/index.client.d.ts +7 -0
  542. package/dist/views/Verify/index.client.d.ts.map +1 -0
  543. package/dist/views/Verify/index.client.js +46 -0
  544. package/dist/views/Verify/index.client.js.map +1 -0
  545. package/dist/views/Verify/index.d.ts.map +1 -1
  546. package/dist/views/Verify/index.js +61 -44
  547. package/dist/views/Verify/index.js.map +1 -1
  548. package/dist/views/Verify/index.scss +13 -11
  549. package/dist/views/Verify/meta.js +12 -8
  550. package/dist/views/Verify/meta.js.map +1 -1
  551. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  552. package/dist/views/Version/Default/SetStepNav.js +147 -103
  553. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  554. package/dist/views/Version/Default/index.d.ts.map +1 -1
  555. package/dist/views/Version/Default/index.js +200 -114
  556. package/dist/views/Version/Default/index.js.map +1 -1
  557. package/dist/views/Version/Default/index.scss +52 -50
  558. package/dist/views/Version/Default/types.js +1 -2
  559. package/dist/views/Version/Default/types.js.map +1 -1
  560. package/dist/views/Version/RenderFieldsToDiff/Label/index.js +6 -5
  561. package/dist/views/Version/RenderFieldsToDiff/Label/index.js.map +1 -1
  562. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
  563. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  564. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +68 -70
  565. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  566. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
  567. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.d.ts.map +1 -1
  568. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js +35 -32
  569. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.js.map +1 -1
  570. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
  571. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +108 -78
  572. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  573. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
  574. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +17 -11
  575. package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +1 -1
  576. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  577. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +42 -38
  578. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  579. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
  580. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  581. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +42 -32
  582. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  583. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +17 -11
  584. package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +1 -1
  585. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  586. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +39 -30
  587. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  588. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
  589. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js +4 -5
  590. package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js.map +1 -1
  591. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +20 -21
  592. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  593. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js +23 -24
  594. package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +1 -1
  595. package/dist/views/Version/RenderFieldsToDiff/fields/types.js +1 -2
  596. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  597. package/dist/views/Version/RenderFieldsToDiff/index.d.ts.map +1 -1
  598. package/dist/views/Version/RenderFieldsToDiff/index.js +106 -97
  599. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  600. package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
  601. package/dist/views/Version/RenderFieldsToDiff/types.js +1 -2
  602. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  603. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  604. package/dist/views/Version/Restore/index.js +111 -112
  605. package/dist/views/Version/Restore/index.js.map +1 -1
  606. package/dist/views/Version/Restore/index.scss +60 -42
  607. package/dist/views/Version/Restore/types.js +1 -2
  608. package/dist/views/Version/Restore/types.js.map +1 -1
  609. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  610. package/dist/views/Version/SelectComparison/index.js +153 -138
  611. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  612. package/dist/views/Version/SelectComparison/index.scss +12 -10
  613. package/dist/views/Version/SelectComparison/types.d.ts +1 -0
  614. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  615. package/dist/views/Version/SelectComparison/types.js +1 -2
  616. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  617. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  618. package/dist/views/Version/SelectLocales/index.js +58 -30
  619. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  620. package/dist/views/Version/SelectLocales/index.scss +6 -4
  621. package/dist/views/Version/SelectLocales/types.js +1 -2
  622. package/dist/views/Version/SelectLocales/types.js.map +1 -1
  623. package/dist/views/Version/index.d.ts.map +1 -1
  624. package/dist/views/Version/index.js +128 -105
  625. package/dist/views/Version/index.js.map +1 -1
  626. package/dist/views/Version/meta.js +49 -43
  627. package/dist/views/Version/meta.js.map +1 -1
  628. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  629. package/dist/views/Versions/buildColumns.js +95 -75
  630. package/dist/views/Versions/buildColumns.js.map +1 -1
  631. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  632. package/dist/views/Versions/cells/AutosaveCell/index.js +98 -43
  633. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  634. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  635. package/dist/views/Versions/cells/CreatedAt/index.js +70 -17
  636. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  637. package/dist/views/Versions/cells/ID/index.js +17 -5
  638. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  639. package/dist/views/Versions/getLatestVersion.d.ts +1 -0
  640. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  641. package/dist/views/Versions/getLatestVersion.js +45 -30
  642. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  643. package/dist/views/Versions/index.client.js +80 -77
  644. package/dist/views/Versions/index.client.js.map +1 -1
  645. package/dist/views/Versions/index.d.ts.map +1 -1
  646. package/dist/views/Versions/index.js +170 -126
  647. package/dist/views/Versions/index.js.map +1 -1
  648. package/dist/views/Versions/index.scss +78 -76
  649. package/dist/views/Versions/meta.js +43 -37
  650. package/dist/views/Versions/meta.js.map +1 -1
  651. package/dist/views/Versions/types.js +1 -2
  652. package/dist/views/Versions/types.js.map +1 -1
  653. package/dist/withPayload.d.ts.map +1 -1
  654. package/dist/withPayload.js +83 -117
  655. package/dist/withPayload.js.map +1 -1
  656. package/package.json +38 -20
  657. package/dist/views/ResetPassword/index.client.d.ts +0 -7
  658. package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
  659. package/dist/views/ResetPassword/index.client.js +0 -72
  660. package/dist/views/ResetPassword/index.client.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import { DndContext } from '@dnd-kit/core';
4
5
  import { fieldSchemaToJSON } from 'payload/shared';
@@ -6,151 +7,144 @@ import React, { useCallback, useEffect, useState } from 'react';
6
7
  import { customCollisionDetection } from './collisionDetection.js';
7
8
  import { LivePreviewContext } from './context.js';
8
9
  import { sizeReducer } from './sizeReducer.js';
9
- export const LivePreviewProvider = ({ breakpoints, children, fieldSchema, isPopupOpen, openPopupWindow, popupRef, url })=>{
10
- const [previewWindowType, setPreviewWindowType] = useState('iframe');
11
- const [appIsReady, setAppIsReady] = useState(false);
12
- const [listeningForMessages, setListeningForMessages] = useState(false);
13
- const iframeRef = React.useRef(null);
14
- const [iframeHasLoaded, setIframeHasLoaded] = useState(false);
15
- const [zoom, setZoom] = useState(1);
16
- const [position, setPosition] = useState({
17
- x: 0,
18
- y: 0
19
- });
20
- const [size, setSize] = React.useReducer(sizeReducer, {
21
- height: 0,
22
- width: 0
23
- });
24
- const [measuredDeviceSize, setMeasuredDeviceSize] = useState({
25
- height: 0,
26
- width: 0
10
+ export const LivePreviewProvider = ({
11
+ breakpoints,
12
+ children,
13
+ fieldSchema,
14
+ isPopupOpen,
15
+ openPopupWindow,
16
+ popupRef,
17
+ url
18
+ }) => {
19
+ const [previewWindowType, setPreviewWindowType] = useState('iframe');
20
+ const [appIsReady, setAppIsReady] = useState(false);
21
+ const [listeningForMessages, setListeningForMessages] = useState(false);
22
+ const iframeRef = React.useRef(null);
23
+ const [iframeHasLoaded, setIframeHasLoaded] = useState(false);
24
+ const [zoom, setZoom] = useState(1);
25
+ const [position, setPosition] = useState({
26
+ x: 0,
27
+ y: 0
28
+ });
29
+ const [size, setSize] = React.useReducer(sizeReducer, {
30
+ height: 0,
31
+ width: 0
32
+ });
33
+ const [measuredDeviceSize, setMeasuredDeviceSize] = useState({
34
+ height: 0,
35
+ width: 0
36
+ });
37
+ const [breakpoint, setBreakpoint] = React.useState('responsive');
38
+ const [fieldSchemaJSON] = useState(() => {
39
+ return fieldSchemaToJSON(fieldSchema);
40
+ });
41
+ // The toolbar needs to freely drag and drop around the page
42
+ const handleDragEnd = ev => {
43
+ // only update position if the toolbar is completely within the preview area
44
+ // otherwise reset it back to the previous position
45
+ // TODO: reset to the nearest edge of the preview area
46
+ if (ev.over && ev.over.id === 'live-preview-area') {
47
+ const newPos = {
48
+ x: position.x + ev.delta.x,
49
+ y: position.y + ev.delta.y
50
+ };
51
+ setPosition(newPos);
52
+ } else {
53
+ // reset
54
+ }
55
+ };
56
+ const setWidth = useCallback(width => {
57
+ setSize({
58
+ type: 'width',
59
+ value: width
27
60
  });
28
- const [breakpoint, setBreakpoint] = React.useState('responsive');
29
- const [fieldSchemaJSON] = useState(()=>{
30
- return fieldSchemaToJSON(fieldSchema);
61
+ }, [setSize]);
62
+ const setHeight = useCallback(height => {
63
+ setSize({
64
+ type: 'height',
65
+ value: height
31
66
  });
32
- // The toolbar needs to freely drag and drop around the page
33
- const handleDragEnd = (ev)=>{
34
- // only update position if the toolbar is completely within the preview area
35
- // otherwise reset it back to the previous position
36
- // TODO: reset to the nearest edge of the preview area
37
- if (ev.over && ev.over.id === 'live-preview-area') {
38
- const newPos = {
39
- x: position.x + ev.delta.x,
40
- y: position.y + ev.delta.y
41
- };
42
- setPosition(newPos);
43
- } else {
44
- // reset
45
- }
46
- };
47
- const setWidth = useCallback((width)=>{
48
- setSize({
49
- type: 'width',
50
- value: width
51
- });
52
- }, [
53
- setSize
54
- ]);
55
- const setHeight = useCallback((height)=>{
56
- setSize({
57
- type: 'height',
58
- value: height
59
- });
60
- }, [
61
- setSize
62
- ]);
63
- // explicitly set new width and height when as new breakpoints are selected
64
- // exclude `custom` breakpoint as it is handled by the `setWidth` and `setHeight` directly
65
- useEffect(()=>{
66
- const foundBreakpoint = breakpoints?.find((bp)=>bp.name === breakpoint);
67
- if (foundBreakpoint && breakpoint !== 'responsive' && breakpoint !== 'custom' && typeof foundBreakpoint?.width === 'number' && typeof foundBreakpoint?.height === 'number') {
68
- setSize({
69
- type: 'reset',
70
- value: {
71
- height: foundBreakpoint.height,
72
- width: foundBreakpoint.width
73
- }
74
- });
67
+ }, [setSize]);
68
+ // explicitly set new width and height when as new breakpoints are selected
69
+ // exclude `custom` breakpoint as it is handled by the `setWidth` and `setHeight` directly
70
+ useEffect(() => {
71
+ const foundBreakpoint = breakpoints?.find(bp => bp.name === breakpoint);
72
+ if (foundBreakpoint && breakpoint !== 'responsive' && breakpoint !== 'custom' && typeof foundBreakpoint?.width === 'number' && typeof foundBreakpoint?.height === 'number') {
73
+ setSize({
74
+ type: 'reset',
75
+ value: {
76
+ height: foundBreakpoint.height,
77
+ width: foundBreakpoint.width
75
78
  }
76
- }, [
77
- breakpoint,
78
- breakpoints
79
- ]);
80
- // Receive the `ready` message from the popup window
81
- // This indicates that the app is ready to receive `window.postMessage` events
82
- // This is also the only cross-origin way of detecting when a popup window has loaded
83
- // Unlike iframe elements which have an `onLoad` handler, there is no way to access `window.open` on popups
84
- useEffect(()=>{
85
- const handleMessage = (event)=>{
86
- if (url?.startsWith(event.origin) && event.data && typeof event.data === 'object' && event.data.type === 'payload-live-preview') {
87
- if (event.data.ready) {
88
- setAppIsReady(true);
89
- }
90
- }
91
- };
92
- window.addEventListener('message', handleMessage);
93
- setListeningForMessages(true);
94
- return ()=>{
95
- window.removeEventListener('message', handleMessage);
96
- };
97
- }, [
98
- url,
99
- listeningForMessages
100
- ]);
101
- const handleWindowChange = useCallback((type)=>{
102
- setAppIsReady(false);
103
- setPreviewWindowType(type);
104
- if (type === 'popup') openPopupWindow();
105
- }, [
106
- openPopupWindow
107
- ]);
108
- // when the user closes the popup window, switch back to the iframe
109
- // the `usePopupWindow` reports the `isPopupOpen` state for us to use here
110
- useEffect(()=>{
111
- const newPreviewWindowType = isPopupOpen ? 'popup' : 'iframe';
112
- if (newPreviewWindowType !== previewWindowType) {
113
- handleWindowChange('iframe');
79
+ });
80
+ }
81
+ }, [breakpoint, breakpoints]);
82
+ // Receive the `ready` message from the popup window
83
+ // This indicates that the app is ready to receive `window.postMessage` events
84
+ // This is also the only cross-origin way of detecting when a popup window has loaded
85
+ // Unlike iframe elements which have an `onLoad` handler, there is no way to access `window.open` on popups
86
+ useEffect(() => {
87
+ const handleMessage = event => {
88
+ if (url?.startsWith(event.origin) && event.data && typeof event.data === 'object' && event.data.type === 'payload-live-preview') {
89
+ if (event.data.ready) {
90
+ setAppIsReady(true);
114
91
  }
115
- }, [
116
- previewWindowType,
117
- isPopupOpen,
118
- handleWindowChange
119
- ]);
120
- return /*#__PURE__*/ _jsx(LivePreviewContext.Provider, {
121
- value: {
122
- appIsReady,
123
- breakpoint,
124
- breakpoints,
125
- fieldSchemaJSON,
126
- iframeHasLoaded,
127
- iframeRef,
128
- isPopupOpen,
129
- measuredDeviceSize,
130
- openPopupWindow,
131
- popupRef,
132
- previewWindowType,
133
- setAppIsReady,
134
- setBreakpoint,
135
- setHeight,
136
- setIframeHasLoaded,
137
- setMeasuredDeviceSize,
138
- setPreviewWindowType: handleWindowChange,
139
- setSize,
140
- setToolbarPosition: setPosition,
141
- setWidth,
142
- setZoom,
143
- size,
144
- toolbarPosition: position,
145
- url,
146
- zoom
147
- },
148
- children: /*#__PURE__*/ _jsx(DndContext, {
149
- collisionDetection: customCollisionDetection,
150
- onDragEnd: handleDragEnd,
151
- children: listeningForMessages && children
152
- })
153
- });
92
+ }
93
+ };
94
+ window.addEventListener('message', handleMessage);
95
+ setListeningForMessages(true);
96
+ return () => {
97
+ window.removeEventListener('message', handleMessage);
98
+ };
99
+ }, [url, listeningForMessages]);
100
+ const handleWindowChange = useCallback(type => {
101
+ setAppIsReady(false);
102
+ setPreviewWindowType(type);
103
+ if (type === 'popup') {
104
+ openPopupWindow();
105
+ }
106
+ }, [openPopupWindow]);
107
+ // when the user closes the popup window, switch back to the iframe
108
+ // the `usePopupWindow` reports the `isPopupOpen` state for us to use here
109
+ useEffect(() => {
110
+ const newPreviewWindowType = isPopupOpen ? 'popup' : 'iframe';
111
+ if (newPreviewWindowType !== previewWindowType) {
112
+ handleWindowChange('iframe');
113
+ }
114
+ }, [previewWindowType, isPopupOpen, handleWindowChange]);
115
+ return /*#__PURE__*/_jsx(LivePreviewContext.Provider, {
116
+ value: {
117
+ appIsReady,
118
+ breakpoint,
119
+ breakpoints,
120
+ fieldSchemaJSON,
121
+ iframeHasLoaded,
122
+ iframeRef,
123
+ isPopupOpen,
124
+ measuredDeviceSize,
125
+ openPopupWindow,
126
+ popupRef,
127
+ previewWindowType,
128
+ setAppIsReady,
129
+ setBreakpoint,
130
+ setHeight,
131
+ setIframeHasLoaded,
132
+ setMeasuredDeviceSize,
133
+ setPreviewWindowType: handleWindowChange,
134
+ setSize,
135
+ setToolbarPosition: setPosition,
136
+ setWidth,
137
+ setZoom,
138
+ size,
139
+ toolbarPosition: position,
140
+ url,
141
+ zoom
142
+ },
143
+ children: /*#__PURE__*/_jsx(DndContext, {
144
+ collisionDetection: customCollisionDetection,
145
+ onDragEnd: handleDragEnd,
146
+ children: listeningForMessages && children
147
+ })
148
+ });
154
149
  };
155
-
156
150
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/LivePreview/Context/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, LivePreviewConfig } from 'payload'\n\nimport { DndContext } from '@dnd-kit/core'\nimport { fieldSchemaToJSON } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { usePopupWindow } from '../usePopupWindow.js'\n\nimport { customCollisionDetection } from './collisionDetection.js'\nimport { LivePreviewContext } from './context.js'\nimport { sizeReducer } from './sizeReducer.js'\n\nexport type LivePreviewProviderProps = {\n appIsReady?: boolean\n breakpoints?: LivePreviewConfig['breakpoints']\n children: React.ReactNode\n deviceSize?: {\n height: number\n width: number\n }\n fieldSchema: ClientField[]\n isPopupOpen?: boolean\n openPopupWindow?: ReturnType<typeof usePopupWindow>['openPopupWindow']\n popupRef?: React.RefObject<Window>\n url?: string\n}\n\nexport const LivePreviewProvider: React.FC<LivePreviewProviderProps> = ({\n breakpoints,\n children,\n fieldSchema,\n isPopupOpen,\n openPopupWindow,\n popupRef,\n url,\n}) => {\n const [previewWindowType, setPreviewWindowType] = useState<'iframe' | 'popup'>('iframe')\n\n const [appIsReady, setAppIsReady] = useState(false)\n const [listeningForMessages, setListeningForMessages] = useState(false)\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null)\n\n const [iframeHasLoaded, setIframeHasLoaded] = useState(false)\n\n const [zoom, setZoom] = useState(1)\n\n const [position, setPosition] = useState({ x: 0, y: 0 })\n\n const [size, setSize] = React.useReducer(sizeReducer, { height: 0, width: 0 })\n\n const [measuredDeviceSize, setMeasuredDeviceSize] = useState({\n height: 0,\n width: 0,\n })\n\n const [breakpoint, setBreakpoint] =\n React.useState<LivePreviewConfig['breakpoints'][0]['name']>('responsive')\n\n const [fieldSchemaJSON] = useState(() => {\n return fieldSchemaToJSON(fieldSchema)\n })\n\n // The toolbar needs to freely drag and drop around the page\n const handleDragEnd = (ev) => {\n // only update position if the toolbar is completely within the preview area\n // otherwise reset it back to the previous position\n // TODO: reset to the nearest edge of the preview area\n if (ev.over && ev.over.id === 'live-preview-area') {\n const newPos = {\n x: position.x + ev.delta.x,\n y: position.y + ev.delta.y,\n }\n\n setPosition(newPos)\n } else {\n // reset\n }\n }\n\n const setWidth = useCallback(\n (width) => {\n setSize({ type: 'width', value: width })\n },\n [setSize],\n )\n\n const setHeight = useCallback(\n (height) => {\n setSize({ type: 'height', value: height })\n },\n [setSize],\n )\n\n // explicitly set new width and height when as new breakpoints are selected\n // exclude `custom` breakpoint as it is handled by the `setWidth` and `setHeight` directly\n useEffect(() => {\n const foundBreakpoint = breakpoints?.find((bp) => bp.name === breakpoint)\n\n if (\n foundBreakpoint &&\n breakpoint !== 'responsive' &&\n breakpoint !== 'custom' &&\n typeof foundBreakpoint?.width === 'number' &&\n typeof foundBreakpoint?.height === 'number'\n ) {\n setSize({\n type: 'reset',\n value: {\n height: foundBreakpoint.height,\n width: foundBreakpoint.width,\n },\n })\n }\n }, [breakpoint, breakpoints])\n\n // Receive the `ready` message from the popup window\n // This indicates that the app is ready to receive `window.postMessage` events\n // This is also the only cross-origin way of detecting when a popup window has loaded\n // Unlike iframe elements which have an `onLoad` handler, there is no way to access `window.open` on popups\n useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (\n url?.startsWith(event.origin) &&\n event.data &&\n typeof event.data === 'object' &&\n event.data.type === 'payload-live-preview'\n ) {\n if (event.data.ready) {\n setAppIsReady(true)\n }\n }\n }\n\n window.addEventListener('message', handleMessage)\n\n setListeningForMessages(true)\n\n return () => {\n window.removeEventListener('message', handleMessage)\n }\n }, [url, listeningForMessages])\n\n const handleWindowChange = useCallback(\n (type: 'iframe' | 'popup') => {\n setAppIsReady(false)\n setPreviewWindowType(type)\n if (type === 'popup') openPopupWindow()\n },\n [openPopupWindow],\n )\n\n // when the user closes the popup window, switch back to the iframe\n // the `usePopupWindow` reports the `isPopupOpen` state for us to use here\n useEffect(() => {\n const newPreviewWindowType = isPopupOpen ? 'popup' : 'iframe'\n\n if (newPreviewWindowType !== previewWindowType) {\n handleWindowChange('iframe')\n }\n }, [previewWindowType, isPopupOpen, handleWindowChange])\n\n return (\n <LivePreviewContext.Provider\n value={{\n appIsReady,\n breakpoint,\n breakpoints,\n fieldSchemaJSON,\n iframeHasLoaded,\n iframeRef,\n isPopupOpen,\n measuredDeviceSize,\n openPopupWindow,\n popupRef,\n previewWindowType,\n setAppIsReady,\n setBreakpoint,\n setHeight,\n setIframeHasLoaded,\n setMeasuredDeviceSize,\n setPreviewWindowType: handleWindowChange,\n setSize,\n setToolbarPosition: setPosition,\n setWidth,\n setZoom,\n size,\n toolbarPosition: position,\n url,\n zoom,\n }}\n >\n <DndContext collisionDetection={customCollisionDetection} onDragEnd={handleDragEnd}>\n {listeningForMessages && children}\n </DndContext>\n </LivePreviewContext.Provider>\n )\n}\n"],"names":["DndContext","fieldSchemaToJSON","React","useCallback","useEffect","useState","customCollisionDetection","LivePreviewContext","sizeReducer","LivePreviewProvider","breakpoints","children","fieldSchema","isPopupOpen","openPopupWindow","popupRef","url","previewWindowType","setPreviewWindowType","appIsReady","setAppIsReady","listeningForMessages","setListeningForMessages","iframeRef","useRef","iframeHasLoaded","setIframeHasLoaded","zoom","setZoom","position","setPosition","x","y","size","setSize","useReducer","height","width","measuredDeviceSize","setMeasuredDeviceSize","breakpoint","setBreakpoint","fieldSchemaJSON","handleDragEnd","ev","over","id","newPos","delta","setWidth","type","value","setHeight","foundBreakpoint","find","bp","name","handleMessage","event","startsWith","origin","data","ready","window","addEventListener","removeEventListener","handleWindowChange","newPreviewWindowType","Provider","setToolbarPosition","toolbarPosition","collisionDetection","onDragEnd"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DndContext","fieldSchemaToJSON","React","useCallback","useEffect","useState","customCollisionDetection","LivePreviewContext","sizeReducer","LivePreviewProvider","breakpoints","children","fieldSchema","isPopupOpen","openPopupWindow","popupRef","url","previewWindowType","setPreviewWindowType","appIsReady","setAppIsReady","listeningForMessages","setListeningForMessages","iframeRef","useRef","iframeHasLoaded","setIframeHasLoaded","zoom","setZoom","position","setPosition","x","y","size","setSize","useReducer","height","width","measuredDeviceSize","setMeasuredDeviceSize","breakpoint","setBreakpoint","fieldSchemaJSON","handleDragEnd","ev","over","id","newPos","delta","setWidth","type","value","setHeight","foundBreakpoint","find","bp","name","handleMessage","event","startsWith","origin","data","ready","window","addEventListener","removeEventListener","handleWindowChange","newPreviewWindowType","_jsx","Provider","setToolbarPosition","toolbarPosition","collisionDetection","onDragEnd"],"sources":["../../../../src/views/LivePreview/Context/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, LivePreviewConfig } from 'payload'\n\nimport { DndContext } from '@dnd-kit/core'\nimport { fieldSchemaToJSON } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { usePopupWindow } from '../usePopupWindow.js'\n\nimport { customCollisionDetection } from './collisionDetection.js'\nimport { LivePreviewContext } from './context.js'\nimport { sizeReducer } from './sizeReducer.js'\n\nexport type LivePreviewProviderProps = {\n appIsReady?: boolean\n breakpoints?: LivePreviewConfig['breakpoints']\n children: React.ReactNode\n deviceSize?: {\n height: number\n width: number\n }\n fieldSchema: ClientField[]\n isPopupOpen?: boolean\n openPopupWindow?: ReturnType<typeof usePopupWindow>['openPopupWindow']\n popupRef?: React.RefObject<Window>\n url?: string\n}\n\nexport const LivePreviewProvider: React.FC<LivePreviewProviderProps> = ({\n breakpoints,\n children,\n fieldSchema,\n isPopupOpen,\n openPopupWindow,\n popupRef,\n url,\n}) => {\n const [previewWindowType, setPreviewWindowType] = useState<'iframe' | 'popup'>('iframe')\n\n const [appIsReady, setAppIsReady] = useState(false)\n const [listeningForMessages, setListeningForMessages] = useState(false)\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null)\n\n const [iframeHasLoaded, setIframeHasLoaded] = useState(false)\n\n const [zoom, setZoom] = useState(1)\n\n const [position, setPosition] = useState({ x: 0, y: 0 })\n\n const [size, setSize] = React.useReducer(sizeReducer, { height: 0, width: 0 })\n\n const [measuredDeviceSize, setMeasuredDeviceSize] = useState({\n height: 0,\n width: 0,\n })\n\n const [breakpoint, setBreakpoint] =\n React.useState<LivePreviewConfig['breakpoints'][0]['name']>('responsive')\n\n const [fieldSchemaJSON] = useState(() => {\n return fieldSchemaToJSON(fieldSchema)\n })\n\n // The toolbar needs to freely drag and drop around the page\n const handleDragEnd = (ev) => {\n // only update position if the toolbar is completely within the preview area\n // otherwise reset it back to the previous position\n // TODO: reset to the nearest edge of the preview area\n if (ev.over && ev.over.id === 'live-preview-area') {\n const newPos = {\n x: position.x + ev.delta.x,\n y: position.y + ev.delta.y,\n }\n\n setPosition(newPos)\n } else {\n // reset\n }\n }\n\n const setWidth = useCallback(\n (width) => {\n setSize({ type: 'width', value: width })\n },\n [setSize],\n )\n\n const setHeight = useCallback(\n (height) => {\n setSize({ type: 'height', value: height })\n },\n [setSize],\n )\n\n // explicitly set new width and height when as new breakpoints are selected\n // exclude `custom` breakpoint as it is handled by the `setWidth` and `setHeight` directly\n useEffect(() => {\n const foundBreakpoint = breakpoints?.find((bp) => bp.name === breakpoint)\n\n if (\n foundBreakpoint &&\n breakpoint !== 'responsive' &&\n breakpoint !== 'custom' &&\n typeof foundBreakpoint?.width === 'number' &&\n typeof foundBreakpoint?.height === 'number'\n ) {\n setSize({\n type: 'reset',\n value: {\n height: foundBreakpoint.height,\n width: foundBreakpoint.width,\n },\n })\n }\n }, [breakpoint, breakpoints])\n\n // Receive the `ready` message from the popup window\n // This indicates that the app is ready to receive `window.postMessage` events\n // This is also the only cross-origin way of detecting when a popup window has loaded\n // Unlike iframe elements which have an `onLoad` handler, there is no way to access `window.open` on popups\n useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (\n url?.startsWith(event.origin) &&\n event.data &&\n typeof event.data === 'object' &&\n event.data.type === 'payload-live-preview'\n ) {\n if (event.data.ready) {\n setAppIsReady(true)\n }\n }\n }\n\n window.addEventListener('message', handleMessage)\n\n setListeningForMessages(true)\n\n return () => {\n window.removeEventListener('message', handleMessage)\n }\n }, [url, listeningForMessages])\n\n const handleWindowChange = useCallback(\n (type: 'iframe' | 'popup') => {\n setAppIsReady(false)\n setPreviewWindowType(type)\n if (type === 'popup') {\n openPopupWindow()\n }\n },\n [openPopupWindow],\n )\n\n // when the user closes the popup window, switch back to the iframe\n // the `usePopupWindow` reports the `isPopupOpen` state for us to use here\n useEffect(() => {\n const newPreviewWindowType = isPopupOpen ? 'popup' : 'iframe'\n\n if (newPreviewWindowType !== previewWindowType) {\n handleWindowChange('iframe')\n }\n }, [previewWindowType, isPopupOpen, handleWindowChange])\n\n return (\n <LivePreviewContext.Provider\n value={{\n appIsReady,\n breakpoint,\n breakpoints,\n fieldSchemaJSON,\n iframeHasLoaded,\n iframeRef,\n isPopupOpen,\n measuredDeviceSize,\n openPopupWindow,\n popupRef,\n previewWindowType,\n setAppIsReady,\n setBreakpoint,\n setHeight,\n setIframeHasLoaded,\n setMeasuredDeviceSize,\n setPreviewWindowType: handleWindowChange,\n setSize,\n setToolbarPosition: setPosition,\n setWidth,\n setZoom,\n size,\n toolbarPosition: position,\n url,\n zoom,\n }}\n >\n <DndContext collisionDetection={customCollisionDetection} onDragEnd={handleDragEnd}>\n {listeningForMessages && children}\n </DndContext>\n </LivePreviewContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,24 +8,23 @@
8
8
  // return { ...state, ...(action?.value || {}) }
9
9
  // }
10
10
  // },
11
- export const sizeReducer = (state, action)=>{
12
- switch(action.type){
13
- case 'width':
14
- return {
15
- ...state,
16
- width: action.value
17
- };
18
- case 'height':
19
- return {
20
- ...state,
21
- height: action.value
22
- };
23
- default:
24
- return {
25
- ...state,
26
- ...action?.value || {}
27
- };
28
- }
11
+ export const sizeReducer = (state, action) => {
12
+ switch (action.type) {
13
+ case 'width':
14
+ return {
15
+ ...state,
16
+ width: action.value
17
+ };
18
+ case 'height':
19
+ return {
20
+ ...state,
21
+ height: action.value
22
+ };
23
+ default:
24
+ return {
25
+ ...state,
26
+ ...(action?.value || {})
27
+ };
28
+ }
29
29
  };
30
-
31
30
  //# sourceMappingURL=sizeReducer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"sourcesContent":["// export const sizeReducer: (state, action) => {\n// switch (action.type) {\n// case 'width':\n// return { ...state, width: action.value }\n// case 'height':\n// return { ...state, height: action.value }\n// default:\n// return { ...state, ...(action?.value || {}) }\n// }\n// },\n\ntype SizeReducerState = {\n height: number\n width: number\n}\n\nexport type SizeReducerAction =\n | {\n type: 'height' | 'width'\n value: number\n }\n | {\n type: 'reset'\n value: {\n height: number\n width: number\n }\n }\n\nexport const sizeReducer = (state: SizeReducerState, action: SizeReducerAction) => {\n switch (action.type) {\n case 'width':\n return { ...state, width: action.value }\n case 'height':\n return { ...state, height: action.value }\n default:\n return { ...state, ...(action?.value || {}) }\n }\n}\n"],"names":["sizeReducer","state","action","type","width","value","height"],"mappings":"AAAA,iDAAiD;AACjD,2BAA2B;AAC3B,oBAAoB;AACpB,iDAAiD;AACjD,qBAAqB;AACrB,kDAAkD;AAClD,eAAe;AACf,sDAAsD;AACtD,MAAM;AACN,KAAK;AAoBL,OAAO,MAAMA,cAAc,CAACC,OAAyBC;IACnD,OAAQA,OAAOC,IAAI;QACjB,KAAK;YACH,OAAO;gBAAE,GAAGF,KAAK;gBAAEG,OAAOF,OAAOG,KAAK;YAAC;QACzC,KAAK;YACH,OAAO;gBAAE,GAAGJ,KAAK;gBAAEK,QAAQJ,OAAOG,KAAK;YAAC;QAC1C;YACE,OAAO;gBAAE,GAAGJ,KAAK;gBAAE,GAAIC,QAAQG,SAAS,CAAC,CAAC;YAAE;IAChD;AACF,EAAC"}
1
+ {"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","width","value","height"],"sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"sourcesContent":["// export const sizeReducer: (state, action) => {\n// switch (action.type) {\n// case 'width':\n// return { ...state, width: action.value }\n// case 'height':\n// return { ...state, height: action.value }\n// default:\n// return { ...state, ...(action?.value || {}) }\n// }\n// },\n\ntype SizeReducerState = {\n height: number\n width: number\n}\n\nexport type SizeReducerAction =\n | {\n type: 'height' | 'width'\n value: number\n }\n | {\n type: 'reset'\n value: {\n height: number\n width: number\n }\n }\n\nexport const sizeReducer = (state: SizeReducerState, action: SizeReducerAction) => {\n switch (action.type) {\n case 'width':\n return { ...state, width: action.value }\n case 'height':\n return { ...state, height: action.value }\n default:\n return { ...state, ...(action?.value || {}) }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA,OAAO,MAAMA,WAAA,GAAcA,CAACC,KAAA,EAAyBC,MAAA;EACnD,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MACH,OAAO;QAAE,GAAGF,KAAK;QAAEG,KAAA,EAAOF,MAAA,CAAOG;MAAM;IACzC,KAAK;MACH,OAAO;QAAE,GAAGJ,KAAK;QAAEK,MAAA,EAAQJ,MAAA,CAAOG;MAAM;IAC1C;MACE,OAAO;QAAE,GAAGJ,KAAK;QAAE,IAAIC,MAAA,EAAQG,KAAA,IAAS,CAAC,CAAC;MAAE;EAChD;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Device/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CA4FA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Device/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAIxC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAiGA,CAAA"}
@@ -1,81 +1,92 @@
1
1
  'use client';
2
+
2
3
  import { jsx as _jsx } from "react/jsx-runtime";
3
4
  import { useResize } from '@payloadcms/ui';
4
5
  import React, { useEffect } from 'react';
5
6
  import { useLivePreviewContext } from '../Context/context.js';
6
- export const DeviceContainer = (props)=>{
7
- const { children } = props;
8
- const deviceFrameRef = React.useRef(null);
9
- const outerFrameRef = React.useRef(null);
10
- const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext();
11
- // Keep an accurate measurement of the actual device size as it is truly rendered
12
- // This is helpful when `sizes` are non-number units like percentages, etc.
13
- const { size: measuredDeviceSize } = useResize(deviceFrameRef.current);
14
- const { size: outerFrameSize } = useResize(outerFrameRef.current);
15
- let deviceIsLargerThanFrame = false;
16
- // Sync the measured device size with the context so that other components can use it
17
- // This happens from the bottom up so that as this component mounts and unmounts,
18
- // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe
19
- useEffect(()=>{
20
- if (measuredDeviceSize) {
21
- setMeasuredDeviceSize(measuredDeviceSize);
7
+ export const DeviceContainer = props => {
8
+ const {
9
+ children
10
+ } = props;
11
+ const deviceFrameRef = React.useRef(null);
12
+ const outerFrameRef = React.useRef(null);
13
+ const {
14
+ breakpoint,
15
+ setMeasuredDeviceSize,
16
+ size: desiredSize,
17
+ zoom
18
+ } = useLivePreviewContext();
19
+ // Keep an accurate measurement of the actual device size as it is truly rendered
20
+ // This is helpful when `sizes` are non-number units like percentages, etc.
21
+ const {
22
+ size: measuredDeviceSize
23
+ } = useResize(deviceFrameRef.current);
24
+ const {
25
+ size: outerFrameSize
26
+ } = useResize(outerFrameRef.current);
27
+ let deviceIsLargerThanFrame = false;
28
+ // Sync the measured device size with the context so that other components can use it
29
+ // This happens from the bottom up so that as this component mounts and unmounts,
30
+ // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe
31
+ useEffect(() => {
32
+ if (measuredDeviceSize) {
33
+ setMeasuredDeviceSize(measuredDeviceSize);
34
+ }
35
+ }, [measuredDeviceSize, setMeasuredDeviceSize]);
36
+ let x = '0';
37
+ let margin = '0';
38
+ if (breakpoint && breakpoint !== 'responsive') {
39
+ x = '-50%';
40
+ if (desiredSize && measuredDeviceSize && typeof zoom === 'number' && typeof desiredSize.width === 'number' && typeof desiredSize.height === 'number' && typeof measuredDeviceSize.width === 'number' && typeof measuredDeviceSize.height === 'number') {
41
+ margin = '0 auto';
42
+ const scaledDesiredWidth = desiredSize.width / zoom;
43
+ const scaledDeviceWidth = measuredDeviceSize.width * zoom;
44
+ const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width;
45
+ deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width;
46
+ if (deviceIsLargerThanFrame) {
47
+ if (zoom > 1) {
48
+ const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width;
49
+ if (differenceFromDeviceToFrame < 0) {
50
+ x = `${differenceFromDeviceToFrame / 2}px`;
51
+ } else {
52
+ x = '0';
53
+ }
54
+ } else {
55
+ x = '0';
22
56
  }
23
- }, [
24
- measuredDeviceSize,
25
- setMeasuredDeviceSize
26
- ]);
27
- let x = '0';
28
- let margin = '0';
29
- if (breakpoint && breakpoint !== 'responsive') {
30
- x = '-50%';
31
- if (typeof zoom === 'number' && typeof desiredSize.width === 'number' && typeof desiredSize.height === 'number' && typeof measuredDeviceSize.width === 'number' && typeof measuredDeviceSize.height === 'number') {
32
- margin = '0 auto';
33
- const scaledDesiredWidth = desiredSize.width / zoom;
34
- const scaledDeviceWidth = measuredDeviceSize.width * zoom;
35
- const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width;
36
- deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width;
37
- if (deviceIsLargerThanFrame) {
38
- if (zoom > 1) {
39
- const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width;
40
- if (differenceFromDeviceToFrame < 0) x = `${differenceFromDeviceToFrame / 2}px`;
41
- else x = '0';
42
- } else {
43
- x = '0';
44
- }
45
- } else {
46
- if (zoom >= 1) {
47
- x = `${scaledDeviceDifferencePixels / 2}px`;
48
- } else {
49
- const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth;
50
- x = `${differenceFromDeviceToFrame / 2}px`;
51
- margin = '0';
52
- }
53
- }
57
+ } else {
58
+ if (zoom >= 1) {
59
+ x = `${scaledDeviceDifferencePixels / 2}px`;
60
+ } else {
61
+ const differenceFromDeviceToFrame_0 = outerFrameSize.width - scaledDeviceWidth;
62
+ x = `${differenceFromDeviceToFrame_0 / 2}px`;
63
+ margin = '0';
54
64
  }
65
+ }
55
66
  }
56
- let width = zoom ? `${100 / zoom}%` : '100%';
57
- let height = zoom ? `${100 / zoom}%` : '100%';
58
- if (breakpoint !== 'responsive') {
59
- width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`;
60
- height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`;
61
- }
62
- return /*#__PURE__*/ _jsx("div", {
63
- ref: outerFrameRef,
64
- style: {
65
- height: '100%',
66
- width: '100%'
67
- },
68
- children: /*#__PURE__*/ _jsx("div", {
69
- ref: deviceFrameRef,
70
- style: {
71
- height,
72
- margin,
73
- transform: `translate3d(${x}, 0, 0)`,
74
- width
75
- },
76
- children: children
77
- })
78
- });
67
+ }
68
+ let width = zoom ? `${100 / zoom}%` : '100%';
69
+ let height = zoom ? `${100 / zoom}%` : '100%';
70
+ if (breakpoint !== 'responsive') {
71
+ width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`;
72
+ height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`;
73
+ }
74
+ return /*#__PURE__*/_jsx("div", {
75
+ ref: outerFrameRef,
76
+ style: {
77
+ height: '100%',
78
+ width: '100%'
79
+ },
80
+ children: /*#__PURE__*/_jsx("div", {
81
+ ref: deviceFrameRef,
82
+ style: {
83
+ height,
84
+ margin,
85
+ transform: `translate3d(${x}, 0, 0)`,
86
+ width
87
+ },
88
+ children: children
89
+ })
90
+ });
79
91
  };
80
-
81
92
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/LivePreview/Device/index.tsx"],"sourcesContent":["'use client'\nimport { useResize } from '@payloadcms/ui'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\n\nexport const DeviceContainer: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const deviceFrameRef = React.useRef<HTMLDivElement>(null)\n const outerFrameRef = React.useRef<HTMLDivElement>(null)\n\n const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext()\n\n // Keep an accurate measurement of the actual device size as it is truly rendered\n // This is helpful when `sizes` are non-number units like percentages, etc.\n const { size: measuredDeviceSize } = useResize(deviceFrameRef.current)\n const { size: outerFrameSize } = useResize(outerFrameRef.current)\n\n let deviceIsLargerThanFrame: boolean = false\n\n // Sync the measured device size with the context so that other components can use it\n // This happens from the bottom up so that as this component mounts and unmounts,\n // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe\n useEffect(() => {\n if (measuredDeviceSize) {\n setMeasuredDeviceSize(measuredDeviceSize)\n }\n }, [measuredDeviceSize, setMeasuredDeviceSize])\n\n let x = '0'\n let margin = '0'\n\n if (breakpoint && breakpoint !== 'responsive') {\n x = '-50%'\n\n if (\n typeof zoom === 'number' &&\n typeof desiredSize.width === 'number' &&\n typeof desiredSize.height === 'number' &&\n typeof measuredDeviceSize.width === 'number' &&\n typeof measuredDeviceSize.height === 'number'\n ) {\n margin = '0 auto'\n const scaledDesiredWidth = desiredSize.width / zoom\n const scaledDeviceWidth = measuredDeviceSize.width * zoom\n const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width\n deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width\n\n if (deviceIsLargerThanFrame) {\n if (zoom > 1) {\n const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width\n if (differenceFromDeviceToFrame < 0) x = `${differenceFromDeviceToFrame / 2}px`\n else x = '0'\n } else {\n x = '0'\n }\n } else {\n if (zoom >= 1) {\n x = `${scaledDeviceDifferencePixels / 2}px`\n } else {\n const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth\n x = `${differenceFromDeviceToFrame / 2}px`\n margin = '0'\n }\n }\n }\n }\n\n let width = zoom ? `${100 / zoom}%` : '100%'\n let height = zoom ? `${100 / zoom}%` : '100%'\n\n if (breakpoint !== 'responsive') {\n width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`\n height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`\n }\n\n return (\n <div\n ref={outerFrameRef}\n style={{\n height: '100%',\n width: '100%',\n }}\n >\n <div\n ref={deviceFrameRef}\n style={{\n height,\n margin,\n transform: `translate3d(${x}, 0, 0)`,\n width,\n }}\n >\n {children}\n </div>\n </div>\n )\n}\n"],"names":["useResize","React","useEffect","useLivePreviewContext","DeviceContainer","props","children","deviceFrameRef","useRef","outerFrameRef","breakpoint","setMeasuredDeviceSize","size","desiredSize","zoom","measuredDeviceSize","current","outerFrameSize","deviceIsLargerThanFrame","x","margin","width","height","scaledDesiredWidth","scaledDeviceWidth","scaledDeviceDifferencePixels","differenceFromDeviceToFrame","div","ref","style","transform"],"mappings":"AAAA;;AACA,SAASA,SAAS,QAAQ,iBAAgB;AAC1C,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAExC,SAASC,qBAAqB,QAAQ,wBAAuB;AAE7D,OAAO,MAAMC,kBAER,CAACC;IACJ,MAAM,EAAEC,QAAQ,EAAE,GAAGD;IAErB,MAAME,iBAAiBN,MAAMO,MAAM,CAAiB;IACpD,MAAMC,gBAAgBR,MAAMO,MAAM,CAAiB;IAEnD,MAAM,EAAEE,UAAU,EAAEC,qBAAqB,EAAEC,MAAMC,WAAW,EAAEC,IAAI,EAAE,GAAGX;IAEvE,iFAAiF;IACjF,2EAA2E;IAC3E,MAAM,EAAES,MAAMG,kBAAkB,EAAE,GAAGf,UAAUO,eAAeS,OAAO;IACrE,MAAM,EAAEJ,MAAMK,cAAc,EAAE,GAAGjB,UAAUS,cAAcO,OAAO;IAEhE,IAAIE,0BAAmC;IAEvC,qFAAqF;IACrF,iFAAiF;IACjF,8FAA8F;IAC9FhB,UAAU;QACR,IAAIa,oBAAoB;YACtBJ,sBAAsBI;QACxB;IACF,GAAG;QAACA;QAAoBJ;KAAsB;IAE9C,IAAIQ,IAAI;IACR,IAAIC,SAAS;IAEb,IAAIV,cAAcA,eAAe,cAAc;QAC7CS,IAAI;QAEJ,IACE,OAAOL,SAAS,YAChB,OAAOD,YAAYQ,KAAK,KAAK,YAC7B,OAAOR,YAAYS,MAAM,KAAK,YAC9B,OAAOP,mBAAmBM,KAAK,KAAK,YACpC,OAAON,mBAAmBO,MAAM,KAAK,UACrC;YACAF,SAAS;YACT,MAAMG,qBAAqBV,YAAYQ,KAAK,GAAGP;YAC/C,MAAMU,oBAAoBT,mBAAmBM,KAAK,GAAGP;YACrD,MAAMW,+BAA+BF,qBAAqBV,YAAYQ,KAAK;YAC3EH,0BAA0BM,oBAAoBP,eAAeI,KAAK;YAElE,IAAIH,yBAAyB;gBAC3B,IAAIJ,OAAO,GAAG;oBACZ,MAAMY,8BAA8BX,mBAAmBM,KAAK,GAAGJ,eAAeI,KAAK;oBACnF,IAAIK,8BAA8B,GAAGP,IAAI,CAAC,EAAEO,8BAA8B,EAAE,EAAE,CAAC;yBAC1EP,IAAI;gBACX,OAAO;oBACLA,IAAI;gBACN;YACF,OAAO;gBACL,IAAIL,QAAQ,GAAG;oBACbK,IAAI,CAAC,EAAEM,+BAA+B,EAAE,EAAE,CAAC;gBAC7C,OAAO;oBACL,MAAMC,8BAA8BT,eAAeI,KAAK,GAAGG;oBAC3DL,IAAI,CAAC,EAAEO,8BAA8B,EAAE,EAAE,CAAC;oBAC1CN,SAAS;gBACX;YACF;QACF;IACF;IAEA,IAAIC,QAAQP,OAAO,CAAC,EAAE,MAAMA,KAAK,CAAC,CAAC,GAAG;IACtC,IAAIQ,SAASR,OAAO,CAAC,EAAE,MAAMA,KAAK,CAAC,CAAC,GAAG;IAEvC,IAAIJ,eAAe,cAAc;QAC/BW,QAAQ,CAAC,EAAER,aAAaQ,QAAS,CAAA,OAAOP,SAAS,WAAWA,OAAO,CAAA,EAAG,EAAE,CAAC;QACzEQ,SAAS,CAAC,EAAET,aAAaS,SAAU,CAAA,OAAOR,SAAS,WAAWA,OAAO,CAAA,EAAG,EAAE,CAAC;IAC7E;IAEA,qBACE,KAACa;QACCC,KAAKnB;QACLoB,OAAO;YACLP,QAAQ;YACRD,OAAO;QACT;kBAEA,cAAA,KAACM;YACCC,KAAKrB;YACLsB,OAAO;gBACLP;gBACAF;gBACAU,WAAW,CAAC,YAAY,EAAEX,EAAE,OAAO,CAAC;gBACpCE;YACF;sBAECf;;;AAIT,EAAC"}
1
+ {"version":3,"file":"index.js","names":["useResize","React","useEffect","useLivePreviewContext","DeviceContainer","props","children","deviceFrameRef","useRef","outerFrameRef","breakpoint","setMeasuredDeviceSize","size","desiredSize","zoom","measuredDeviceSize","current","outerFrameSize","deviceIsLargerThanFrame","x","margin","width","height","scaledDesiredWidth","scaledDeviceWidth","scaledDeviceDifferencePixels","differenceFromDeviceToFrame","_jsx","ref","style","transform"],"sources":["../../../../src/views/LivePreview/Device/index.tsx"],"sourcesContent":["'use client'\nimport { useResize } from '@payloadcms/ui'\nimport React, { useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../Context/context.js'\n\nexport const DeviceContainer: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const deviceFrameRef = React.useRef<HTMLDivElement>(null)\n const outerFrameRef = React.useRef<HTMLDivElement>(null)\n\n const { breakpoint, setMeasuredDeviceSize, size: desiredSize, zoom } = useLivePreviewContext()\n\n // Keep an accurate measurement of the actual device size as it is truly rendered\n // This is helpful when `sizes` are non-number units like percentages, etc.\n const { size: measuredDeviceSize } = useResize(deviceFrameRef.current)\n const { size: outerFrameSize } = useResize(outerFrameRef.current)\n\n let deviceIsLargerThanFrame: boolean = false\n\n // Sync the measured device size with the context so that other components can use it\n // This happens from the bottom up so that as this component mounts and unmounts,\n // its size is freshly populated again upon re-mounting, i.e. going from iframe->popup->iframe\n useEffect(() => {\n if (measuredDeviceSize) {\n setMeasuredDeviceSize(measuredDeviceSize)\n }\n }, [measuredDeviceSize, setMeasuredDeviceSize])\n\n let x = '0'\n let margin = '0'\n\n if (breakpoint && breakpoint !== 'responsive') {\n x = '-50%'\n\n if (\n desiredSize &&\n measuredDeviceSize &&\n typeof zoom === 'number' &&\n typeof desiredSize.width === 'number' &&\n typeof desiredSize.height === 'number' &&\n typeof measuredDeviceSize.width === 'number' &&\n typeof measuredDeviceSize.height === 'number'\n ) {\n margin = '0 auto'\n const scaledDesiredWidth = desiredSize.width / zoom\n const scaledDeviceWidth = measuredDeviceSize.width * zoom\n const scaledDeviceDifferencePixels = scaledDesiredWidth - desiredSize.width\n deviceIsLargerThanFrame = scaledDeviceWidth > outerFrameSize.width\n\n if (deviceIsLargerThanFrame) {\n if (zoom > 1) {\n const differenceFromDeviceToFrame = measuredDeviceSize.width - outerFrameSize.width\n if (differenceFromDeviceToFrame < 0) {\n x = `${differenceFromDeviceToFrame / 2}px`\n } else {\n x = '0'\n }\n } else {\n x = '0'\n }\n } else {\n if (zoom >= 1) {\n x = `${scaledDeviceDifferencePixels / 2}px`\n } else {\n const differenceFromDeviceToFrame = outerFrameSize.width - scaledDeviceWidth\n x = `${differenceFromDeviceToFrame / 2}px`\n margin = '0'\n }\n }\n }\n }\n\n let width = zoom ? `${100 / zoom}%` : '100%'\n let height = zoom ? `${100 / zoom}%` : '100%'\n\n if (breakpoint !== 'responsive') {\n width = `${desiredSize?.width / (typeof zoom === 'number' ? zoom : 1)}px`\n height = `${desiredSize?.height / (typeof zoom === 'number' ? zoom : 1)}px`\n }\n\n return (\n <div\n ref={outerFrameRef}\n style={{\n height: '100%',\n width: '100%',\n }}\n >\n <div\n ref={deviceFrameRef}\n style={{\n height,\n margin,\n transform: `translate3d(${x}, 0, 0)`,\n width,\n }}\n >\n {children}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}