@strapi/content-manager 0.0.0-next.fc9d26d995624dc886b29f563e1de655d47e6609 → 0.0.0-next.fdac61dd05ca665168f51f655f1d165b55ec4231

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 (214) hide show
  1. package/dist/admin/chunks/{CardDragPreview-DwuraT0K.js → CardDragPreview-DwuraT0K.mjs} +1 -1
  2. package/dist/admin/chunks/CardDragPreview-DwuraT0K.mjs.map +1 -0
  3. package/dist/admin/chunks/{ComponentConfigurationPage-BcLDueh-.js → ComponentConfigurationPage-BBM3VdRz.js} +4 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-C2tPb7gH.js.map → ComponentConfigurationPage-BBM3VdRz.js.map} +1 -1
  5. package/dist/admin/chunks/{ComponentConfigurationPage-C2tPb7gH.js → ComponentConfigurationPage-I9h58PvZ.mjs} +9 -8
  6. package/dist/admin/chunks/ComponentConfigurationPage-I9h58PvZ.mjs.map +1 -0
  7. package/dist/admin/chunks/{ComponentIcon-BZcTc4rj.js → ComponentIcon-BZcTc4rj.mjs} +1 -1
  8. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.mjs.map +1 -0
  9. package/dist/admin/chunks/{EditConfigurationPage-D4Oio8m1.js → EditConfigurationPage-B0IuEz1P.mjs} +9 -8
  10. package/dist/admin/chunks/EditConfigurationPage-B0IuEz1P.mjs.map +1 -0
  11. package/dist/admin/chunks/{EditConfigurationPage-BwmBhyl0.js → EditConfigurationPage-M30RR8U2.js} +4 -3
  12. package/dist/admin/chunks/{EditConfigurationPage-BwmBhyl0.js.map → EditConfigurationPage-M30RR8U2.js.map} +1 -1
  13. package/dist/admin/chunks/{EditViewPage-DUYzyJRA.js → EditViewPage-B8CdaXgs.mjs} +11 -14
  14. package/dist/admin/chunks/EditViewPage-B8CdaXgs.mjs.map +1 -0
  15. package/dist/admin/chunks/{EditViewPage-CzwW9usH.js → EditViewPage-BDutXAUN.js} +7 -10
  16. package/dist/admin/chunks/EditViewPage-BDutXAUN.js.map +1 -0
  17. package/dist/admin/chunks/{FieldTypeIcon-BY6MrVF4.js → FieldTypeIcon-BY6MrVF4.mjs} +1 -1
  18. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.mjs.map +1 -0
  19. package/dist/admin/chunks/{Form-BNpDL5sM.js → Form-5g7HkFFt.mjs} +5 -5
  20. package/dist/admin/chunks/Form-5g7HkFFt.mjs.map +1 -0
  21. package/dist/admin/chunks/{Form-BhIYfGuy.js → Form-BbSrOxiB.js} +2 -2
  22. package/dist/admin/chunks/{Form-BhIYfGuy.js.map → Form-BbSrOxiB.js.map} +1 -1
  23. package/dist/admin/chunks/{History-B8UudJwA.js → History-BNHiyUWB.js} +6 -6
  24. package/dist/admin/chunks/{History-B8UudJwA.js.map → History-BNHiyUWB.js.map} +1 -1
  25. package/dist/admin/chunks/{History-BIB0-AfT.js → History-Cy1ebdHN.mjs} +11 -11
  26. package/dist/admin/chunks/History-Cy1ebdHN.mjs.map +1 -0
  27. package/dist/admin/chunks/{Input-D7x4QMoZ.js → Input-BCN9DN4b.js} +748 -313
  28. package/dist/admin/chunks/Input-BCN9DN4b.js.map +1 -0
  29. package/dist/admin/chunks/{Input-B6avNTdM.js → Input-BojOcrfa.mjs} +755 -320
  30. package/dist/admin/chunks/Input-BojOcrfa.mjs.map +1 -0
  31. package/dist/admin/chunks/{ListConfigurationPage-CqNUcBK5.js → ListConfigurationPage-BalGY7W3.js} +3 -2
  32. package/dist/admin/chunks/{ListConfigurationPage-DzIDxb_n.js.map → ListConfigurationPage-BalGY7W3.js.map} +1 -1
  33. package/dist/admin/chunks/{ListConfigurationPage-DzIDxb_n.js → ListConfigurationPage-DZQMgiUY.mjs} +8 -7
  34. package/dist/admin/chunks/ListConfigurationPage-DZQMgiUY.mjs.map +1 -0
  35. package/dist/admin/chunks/{ListViewPage-C2jqACsH.js → ListViewPage-DJroapZV.js} +4 -3
  36. package/dist/admin/chunks/{ListViewPage-CUu7nXL6.js.map → ListViewPage-DJroapZV.js.map} +1 -1
  37. package/dist/admin/chunks/{ListViewPage-CUu7nXL6.js → ListViewPage-YoatliSO.mjs} +6 -5
  38. package/dist/admin/chunks/ListViewPage-YoatliSO.mjs.map +1 -0
  39. package/dist/admin/chunks/{NoContentTypePage-CPvNU2zt.js → NoContentTypePage-DQKO0Whm.mjs} +3 -2
  40. package/dist/admin/chunks/NoContentTypePage-DQKO0Whm.mjs.map +1 -0
  41. package/dist/admin/chunks/{NoContentTypePage-DP8WmGnH.js → NoContentTypePage-DZm2YCb6.js} +3 -2
  42. package/dist/admin/chunks/{NoContentTypePage-CPvNU2zt.js.map → NoContentTypePage-DZm2YCb6.js.map} +1 -1
  43. package/dist/admin/chunks/{NoPermissionsPage-DdE7dHGN.js → NoPermissionsPage-CxrNSIIg.js} +3 -2
  44. package/dist/admin/chunks/{NoPermissionsPage-DS4v_Wkt.js.map → NoPermissionsPage-CxrNSIIg.js.map} +1 -1
  45. package/dist/admin/chunks/{NoPermissionsPage-DS4v_Wkt.js → NoPermissionsPage-bgiFATIt.mjs} +3 -2
  46. package/dist/admin/chunks/NoPermissionsPage-bgiFATIt.mjs.map +1 -0
  47. package/dist/admin/chunks/{Preview-B-Qxu3nw.js → Preview-BJkZ6x1-.js} +252 -22
  48. package/dist/admin/chunks/Preview-BJkZ6x1-.js.map +1 -0
  49. package/dist/admin/chunks/{Preview-DF_PNpvE.js → Preview-BeB-PWgo.mjs} +261 -31
  50. package/dist/admin/chunks/Preview-BeB-PWgo.mjs.map +1 -0
  51. package/dist/admin/chunks/{Relations-Bc1mVCAn.js → Relations-C5phxBHR.js} +469 -4
  52. package/dist/admin/chunks/Relations-C5phxBHR.js.map +1 -0
  53. package/dist/admin/chunks/{Relations-BKR-Kn-x.js → Relations-CND3mw3X.mjs} +471 -7
  54. package/dist/admin/chunks/Relations-CND3mw3X.mjs.map +1 -0
  55. package/dist/admin/chunks/{ar-DckYq_WK.js → ar-DckYq_WK.mjs} +1 -1
  56. package/dist/admin/chunks/ar-DckYq_WK.mjs.map +1 -0
  57. package/dist/admin/chunks/{ca-DviY7mRj.js → ca-DviY7mRj.mjs} +1 -1
  58. package/dist/admin/chunks/ca-DviY7mRj.mjs.map +1 -0
  59. package/dist/admin/chunks/{cs-C7OSYFQ7.js → cs-C7OSYFQ7.mjs} +1 -1
  60. package/dist/admin/chunks/cs-C7OSYFQ7.mjs.map +1 -0
  61. package/dist/admin/chunks/{de-5QRlDHyR.js → de-5QRlDHyR.mjs} +1 -1
  62. package/dist/admin/chunks/de-5QRlDHyR.mjs.map +1 -0
  63. package/dist/admin/chunks/{en-LfhocNG2.js → en-CImiNxXE.mjs} +3 -1
  64. package/dist/admin/chunks/{en-C1CjdAtC.js.map → en-CImiNxXE.mjs.map} +1 -1
  65. package/dist/admin/chunks/{en-C1CjdAtC.js → en-CLf4SuMQ.js} +3 -1
  66. package/dist/admin/chunks/{en-LfhocNG2.js.map → en-CLf4SuMQ.js.map} +1 -1
  67. package/dist/admin/chunks/{es-DkoWSExG.js → es-DkoWSExG.mjs} +1 -1
  68. package/dist/admin/chunks/es-DkoWSExG.mjs.map +1 -0
  69. package/dist/admin/chunks/{eu-BG1xX7HK.js → eu-BG1xX7HK.mjs} +1 -1
  70. package/dist/admin/chunks/eu-BG1xX7HK.mjs.map +1 -0
  71. package/dist/admin/chunks/{fr-CFdRaRVj.js → fr-CFdRaRVj.mjs} +1 -1
  72. package/dist/admin/chunks/fr-CFdRaRVj.mjs.map +1 -0
  73. package/dist/admin/chunks/{gu-D5MMMXRs.js → gu-D5MMMXRs.mjs} +1 -1
  74. package/dist/admin/chunks/gu-D5MMMXRs.mjs.map +1 -0
  75. package/dist/admin/chunks/{hi-lp17SCjr.js → hi-lp17SCjr.mjs} +1 -1
  76. package/dist/admin/chunks/hi-lp17SCjr.mjs.map +1 -0
  77. package/dist/admin/chunks/{hooks-DMvik5y_.js → hooks-DMvik5y_.mjs} +1 -1
  78. package/dist/admin/chunks/hooks-DMvik5y_.mjs.map +1 -0
  79. package/dist/admin/chunks/{hu-CLka1U2C.js → hu-CLka1U2C.mjs} +1 -1
  80. package/dist/admin/chunks/hu-CLka1U2C.mjs.map +1 -0
  81. package/dist/admin/chunks/{id-USfY9m1g.js → id-USfY9m1g.mjs} +1 -1
  82. package/dist/admin/chunks/id-USfY9m1g.mjs.map +1 -0
  83. package/dist/admin/chunks/{index-BERMAQwA.js → index-BRXoE5Bv.js} +64 -34
  84. package/dist/admin/chunks/index-BRXoE5Bv.js.map +1 -0
  85. package/dist/admin/chunks/{index-Jhj6SW8H.js → index-CKhhB2D_.mjs} +94 -65
  86. package/dist/admin/chunks/index-CKhhB2D_.mjs.map +1 -0
  87. package/dist/admin/chunks/{it-BAHrwmYS.js → it-BAHrwmYS.mjs} +1 -1
  88. package/dist/admin/chunks/it-BAHrwmYS.mjs.map +1 -0
  89. package/dist/admin/chunks/{ja-BWKmBJFT.js → ja-BWKmBJFT.mjs} +1 -1
  90. package/dist/admin/chunks/ja-BWKmBJFT.mjs.map +1 -0
  91. package/dist/admin/chunks/{ko-CgADGBNt.js → ko-CgADGBNt.mjs} +1 -1
  92. package/dist/admin/chunks/ko-CgADGBNt.mjs.map +1 -0
  93. package/dist/admin/chunks/{layout-BU6D6F6_.js → layout-Bp7Wxdg6.js} +5 -4
  94. package/dist/admin/chunks/{layout-DYlapjb1.js.map → layout-Bp7Wxdg6.js.map} +1 -1
  95. package/dist/admin/chunks/{layout-DYlapjb1.js → layout-CdOs9qR9.mjs} +8 -7
  96. package/dist/admin/chunks/layout-CdOs9qR9.mjs.map +1 -0
  97. package/dist/admin/chunks/{ml-CnhCfOn_.js → ml-CnhCfOn_.mjs} +1 -1
  98. package/dist/admin/chunks/ml-CnhCfOn_.mjs.map +1 -0
  99. package/dist/admin/chunks/{ms-Bh09NFff.js → ms-Bh09NFff.mjs} +1 -1
  100. package/dist/admin/chunks/ms-Bh09NFff.mjs.map +1 -0
  101. package/dist/admin/chunks/{nl-C8HYflTc.js → nl-C8HYflTc.mjs} +1 -1
  102. package/dist/admin/chunks/nl-C8HYflTc.mjs.map +1 -0
  103. package/dist/admin/chunks/{objects-wl73iEma.js → objects-wl73iEma.mjs} +1 -1
  104. package/dist/admin/chunks/objects-wl73iEma.mjs.map +1 -0
  105. package/dist/admin/chunks/{pl-MFCZJZuZ.js → pl-MFCZJZuZ.mjs} +1 -1
  106. package/dist/admin/chunks/pl-MFCZJZuZ.mjs.map +1 -0
  107. package/dist/admin/chunks/{pt-BR-CcotyBGJ.js → pt-BR-CcotyBGJ.mjs} +1 -1
  108. package/dist/admin/chunks/pt-BR-CcotyBGJ.mjs.map +1 -0
  109. package/dist/admin/chunks/{pt-HbmgeiYO.js → pt-HbmgeiYO.mjs} +1 -1
  110. package/dist/admin/chunks/pt-HbmgeiYO.mjs.map +1 -0
  111. package/dist/admin/chunks/{relations-DXceN3I-.js → relations-BuF5cvYF.js} +2 -2
  112. package/dist/admin/chunks/{relations-DXceN3I-.js.map → relations-BuF5cvYF.js.map} +1 -1
  113. package/dist/admin/chunks/{relations-BxOJTAJZ.js → relations-DOG6K89Q.mjs} +2 -2
  114. package/dist/admin/chunks/relations-DOG6K89Q.mjs.map +1 -0
  115. package/dist/admin/chunks/{ru-CB4BUyQp.js → ru-CB4BUyQp.mjs} +1 -1
  116. package/dist/admin/chunks/{ru-CB4BUyQp.js.map → ru-CB4BUyQp.mjs.map} +1 -1
  117. package/dist/admin/chunks/{sa-n_aPA-pU.js → sa-n_aPA-pU.mjs} +1 -1
  118. package/dist/admin/chunks/sa-n_aPA-pU.mjs.map +1 -0
  119. package/dist/admin/chunks/{sk-tn_BDjE2.js → sk-tn_BDjE2.mjs} +1 -1
  120. package/dist/admin/chunks/sk-tn_BDjE2.mjs.map +1 -0
  121. package/dist/admin/chunks/{sv-cq4ZrQRd.js → sv-cq4ZrQRd.mjs} +1 -1
  122. package/dist/admin/chunks/sv-cq4ZrQRd.mjs.map +1 -0
  123. package/dist/admin/chunks/{th-mUH7hEtc.js → th-mUH7hEtc.mjs} +1 -1
  124. package/dist/admin/chunks/th-mUH7hEtc.mjs.map +1 -0
  125. package/dist/admin/chunks/{tr-Yt38daxh.js → tr-Yt38daxh.mjs} +1 -1
  126. package/dist/admin/chunks/tr-Yt38daxh.mjs.map +1 -0
  127. package/dist/admin/chunks/{uk-Cpgmm7gE.js → uk-Cpgmm7gE.mjs} +1 -1
  128. package/dist/admin/chunks/uk-Cpgmm7gE.mjs.map +1 -0
  129. package/dist/admin/chunks/{useDragAndDrop-HYwNDExe.js → useDragAndDrop-HYwNDExe.mjs} +1 -1
  130. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +1 -0
  131. package/dist/admin/chunks/{usePrev-Bjw2dhmq.js → usePrev-Bjw2dhmq.mjs} +1 -1
  132. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +1 -0
  133. package/dist/admin/chunks/{vi-CvBGlTjr.js → vi-CvBGlTjr.mjs} +1 -1
  134. package/dist/admin/chunks/vi-CvBGlTjr.mjs.map +1 -0
  135. package/dist/admin/chunks/{zh-BmF-sHaT.js → zh-BmF-sHaT.mjs} +1 -1
  136. package/dist/admin/chunks/zh-BmF-sHaT.mjs.map +1 -0
  137. package/dist/admin/chunks/{zh-Hans-CI0HKio3.js → zh-Hans-CI0HKio3.mjs} +1 -1
  138. package/dist/admin/chunks/{zh-Hans-CI0HKio3.js.map → zh-Hans-CI0HKio3.mjs.map} +1 -1
  139. package/dist/admin/index.js +2 -1
  140. package/dist/admin/index.js.map +1 -1
  141. package/dist/admin/index.mjs +2 -1
  142. package/dist/admin/index.mjs.map +1 -1
  143. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  144. package/dist/admin/src/index.d.ts +1 -0
  145. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +2 -1
  146. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +11 -0
  147. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +49 -1
  148. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +2 -1
  149. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +1 -2
  150. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +2 -1
  151. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -1
  152. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -1
  153. package/dist/admin/src/preview/pages/Preview.d.ts +2 -0
  154. package/dist/server/index.js +1 -1
  155. package/dist/server/index.js.map +1 -1
  156. package/dist/server/index.mjs +1 -1
  157. package/dist/server/index.mjs.map +1 -1
  158. package/package.json +7 -7
  159. package/dist/admin/chunks/CardDragPreview-DwuraT0K.js.map +0 -1
  160. package/dist/admin/chunks/ComponentConfigurationPage-BcLDueh-.js.map +0 -1
  161. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.js.map +0 -1
  162. package/dist/admin/chunks/EditConfigurationPage-D4Oio8m1.js.map +0 -1
  163. package/dist/admin/chunks/EditViewPage-CzwW9usH.js.map +0 -1
  164. package/dist/admin/chunks/EditViewPage-DUYzyJRA.js.map +0 -1
  165. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.js.map +0 -1
  166. package/dist/admin/chunks/Form-BNpDL5sM.js.map +0 -1
  167. package/dist/admin/chunks/History-BIB0-AfT.js.map +0 -1
  168. package/dist/admin/chunks/Input-B6avNTdM.js.map +0 -1
  169. package/dist/admin/chunks/Input-D7x4QMoZ.js.map +0 -1
  170. package/dist/admin/chunks/ListConfigurationPage-CqNUcBK5.js.map +0 -1
  171. package/dist/admin/chunks/ListViewPage-C2jqACsH.js.map +0 -1
  172. package/dist/admin/chunks/NoContentTypePage-DP8WmGnH.js.map +0 -1
  173. package/dist/admin/chunks/NoPermissionsPage-DdE7dHGN.js.map +0 -1
  174. package/dist/admin/chunks/Preview-B-Qxu3nw.js.map +0 -1
  175. package/dist/admin/chunks/Preview-DF_PNpvE.js.map +0 -1
  176. package/dist/admin/chunks/Relations-BKR-Kn-x.js.map +0 -1
  177. package/dist/admin/chunks/Relations-Bc1mVCAn.js.map +0 -1
  178. package/dist/admin/chunks/ar-DckYq_WK.js.map +0 -1
  179. package/dist/admin/chunks/ca-DviY7mRj.js.map +0 -1
  180. package/dist/admin/chunks/cs-C7OSYFQ7.js.map +0 -1
  181. package/dist/admin/chunks/de-5QRlDHyR.js.map +0 -1
  182. package/dist/admin/chunks/es-DkoWSExG.js.map +0 -1
  183. package/dist/admin/chunks/eu-BG1xX7HK.js.map +0 -1
  184. package/dist/admin/chunks/fr-CFdRaRVj.js.map +0 -1
  185. package/dist/admin/chunks/gu-D5MMMXRs.js.map +0 -1
  186. package/dist/admin/chunks/hi-lp17SCjr.js.map +0 -1
  187. package/dist/admin/chunks/hooks-DMvik5y_.js.map +0 -1
  188. package/dist/admin/chunks/hu-CLka1U2C.js.map +0 -1
  189. package/dist/admin/chunks/id-USfY9m1g.js.map +0 -1
  190. package/dist/admin/chunks/index-BERMAQwA.js.map +0 -1
  191. package/dist/admin/chunks/index-Jhj6SW8H.js.map +0 -1
  192. package/dist/admin/chunks/it-BAHrwmYS.js.map +0 -1
  193. package/dist/admin/chunks/ja-BWKmBJFT.js.map +0 -1
  194. package/dist/admin/chunks/ko-CgADGBNt.js.map +0 -1
  195. package/dist/admin/chunks/layout-BU6D6F6_.js.map +0 -1
  196. package/dist/admin/chunks/ml-CnhCfOn_.js.map +0 -1
  197. package/dist/admin/chunks/ms-Bh09NFff.js.map +0 -1
  198. package/dist/admin/chunks/nl-C8HYflTc.js.map +0 -1
  199. package/dist/admin/chunks/objects-wl73iEma.js.map +0 -1
  200. package/dist/admin/chunks/pl-MFCZJZuZ.js.map +0 -1
  201. package/dist/admin/chunks/pt-BR-CcotyBGJ.js.map +0 -1
  202. package/dist/admin/chunks/pt-HbmgeiYO.js.map +0 -1
  203. package/dist/admin/chunks/relations-BxOJTAJZ.js.map +0 -1
  204. package/dist/admin/chunks/sa-n_aPA-pU.js.map +0 -1
  205. package/dist/admin/chunks/sk-tn_BDjE2.js.map +0 -1
  206. package/dist/admin/chunks/sv-cq4ZrQRd.js.map +0 -1
  207. package/dist/admin/chunks/th-mUH7hEtc.js.map +0 -1
  208. package/dist/admin/chunks/tr-Yt38daxh.js.map +0 -1
  209. package/dist/admin/chunks/uk-Cpgmm7gE.js.map +0 -1
  210. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.js.map +0 -1
  211. package/dist/admin/chunks/usePrev-Bjw2dhmq.js.map +0 -1
  212. package/dist/admin/chunks/vi-CvBGlTjr.js.map +0 -1
  213. package/dist/admin/chunks/zh-BmF-sHaT.js.map +0 -1
  214. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +0 -49
@@ -1,25 +1,25 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { useNotification, useClipboard, useQueryParams, useHistory, createContext, useRBAC, Page } from '@strapi/admin/strapi-admin';
4
- import { Box, Typography, Tabs, Grid, IconButton, Portal, FocusTrap, Flex } from '@strapi/design-system';
3
+ import { useStrapiApp, useQueryParams, useNotification, useClipboard, DescriptionComponentRenderer, useHistory, createContext, useRBAC, Page, Form } from '@strapi/admin/strapi-admin';
4
+ import { Flex, Box, IconButton, Typography, Tabs, Grid, Portal, FocusTrap } from '@strapi/design-system';
5
5
  import { useIntl } from 'react-intl';
6
- import { Link as Link$1, useParams } from 'react-router-dom';
7
- import { D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, N as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout } from './index-Jhj6SW8H.js';
8
- import { Link, Cross } from '@strapi/icons';
9
- import { stringify } from 'qs';
6
+ import { Link as Link$1, useParams, useLocation } from 'react-router-dom';
7
+ import { N as DocumentActionButton, D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, O as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout, i as createYupSchema } from './index-CKhhB2D_.mjs';
8
+ import { ArrowLeft, Link, Cross } from '@strapi/icons';
10
9
  import { styled } from 'styled-components';
11
- import { getDocumentStatus } from './EditViewPage-DUYzyJRA.js';
10
+ import { F as FormLayout } from './Input-BojOcrfa.mjs';
11
+ import { stringify } from 'qs';
12
+ import { getDocumentStatus } from './EditViewPage-B8CdaXgs.mjs';
12
13
  import 'lodash/fp/mapValues';
13
14
  import 'yup';
14
15
  import 'fractional-indexing';
15
16
  import 'lodash/fp/pipe';
16
17
  import 'date-fns';
17
18
  import '@reduxjs/toolkit';
18
- import './Input-B6avNTdM.js';
19
+ import 'prismjs';
19
20
  import 'slate';
20
21
  import 'slate-history';
21
22
  import 'slate-react';
22
- import 'prismjs';
23
23
  import 'prismjs/themes/prism-solarizedlight.css';
24
24
  import 'prismjs/components/prism-asmatmel';
25
25
  import 'prismjs/components/prism-bash';
@@ -70,18 +70,18 @@ import 'prismjs/components/prism-typescript';
70
70
  import 'prismjs/components/prism-tsx';
71
71
  import 'prismjs/components/prism-vbnet';
72
72
  import 'prismjs/components/prism-yaml';
73
- import './usePrev-Bjw2dhmq.js';
74
- import './useDragAndDrop-HYwNDExe.js';
73
+ import './usePrev-Bjw2dhmq.mjs';
74
+ import './useDragAndDrop-HYwNDExe.mjs';
75
75
  import 'react-dnd';
76
76
  import '@radix-ui/react-toolbar';
77
77
  import 'react-dnd-html5-backend';
78
- import './objects-wl73iEma.js';
78
+ import './objects-wl73iEma.mjs';
79
79
  import 'lodash/clone';
80
80
  import 'lodash/toPath';
81
- import './Relations-BKR-Kn-x.js';
81
+ import './Relations-CND3mw3X.mjs';
82
82
  import 'react-window';
83
- import './relations-BxOJTAJZ.js';
84
- import './ComponentIcon-BZcTc4rj.js';
83
+ import './relations-DOG6K89Q.mjs';
84
+ import './ComponentIcon-BZcTc4rj.mjs';
85
85
  import '@strapi/icons/symbols';
86
86
  import 'codemirror5';
87
87
  import 'sanitize-html';
@@ -99,6 +99,77 @@ import 'markdown-it-sup';
99
99
  import 'highlight.js/styles/solarized-dark.css';
100
100
  import 'codemirror5/addon/display/placeholder';
101
101
 
102
+ // TODO use ArrowLineLeft once it's available in the DS
103
+ const AnimatedArrow = styled(ArrowLeft)`
104
+ will-change: transform;
105
+ rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
106
+ transition: rotate 0.2s ease-in-out;
107
+ `;
108
+ const UnstablePreviewContent = ()=>{
109
+ const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
110
+ const layout = usePreviewContext('PreviewContent', (state)=>state.layout);
111
+ const { formatMessage } = useIntl();
112
+ const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);
113
+ return /*#__PURE__*/ jsxs(Flex, {
114
+ flex: 1,
115
+ overflow: "auto",
116
+ alignItems: "stretch",
117
+ children: [
118
+ /*#__PURE__*/ jsx(Box, {
119
+ overflow: "auto",
120
+ width: isSideEditorOpen ? '50%' : 0,
121
+ borderWidth: "0 1px 0 0",
122
+ borderColor: "neutral150",
123
+ paddingTop: 6,
124
+ paddingBottom: 6,
125
+ // Remove horizontal padding when the editor is closed or it won't fully disappear
126
+ paddingLeft: isSideEditorOpen ? 6 : 0,
127
+ paddingRight: isSideEditorOpen ? 6 : 0,
128
+ transition: "all 0.2s ease-in-out",
129
+ children: /*#__PURE__*/ jsx(FormLayout, {
130
+ layout: layout.layout,
131
+ hasBackground: true
132
+ })
133
+ }),
134
+ /*#__PURE__*/ jsxs(Box, {
135
+ position: "relative",
136
+ flex: 1,
137
+ height: "100%",
138
+ overflow: "hidden",
139
+ children: [
140
+ /*#__PURE__*/ jsx(Box, {
141
+ src: previewUrl,
142
+ title: formatMessage({
143
+ id: 'content-manager.preview.panel.title',
144
+ defaultMessage: 'Preview'
145
+ }),
146
+ width: "100%",
147
+ height: "100%",
148
+ borderWidth: 0,
149
+ tag: "iframe"
150
+ }, previewUrl),
151
+ /*#__PURE__*/ jsx(IconButton, {
152
+ variant: "tertiary",
153
+ label: formatMessage(isSideEditorOpen ? {
154
+ id: 'content-manager.preview.content.close-editor',
155
+ defaultMessage: 'Close editor'
156
+ } : {
157
+ id: 'content-manager.preview.content.open-editor',
158
+ defaultMessage: 'Open editor'
159
+ }),
160
+ onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
161
+ position: "absolute",
162
+ top: 2,
163
+ left: 2,
164
+ children: /*#__PURE__*/ jsx(AnimatedArrow, {
165
+ isSideEditorOpen: isSideEditorOpen
166
+ })
167
+ })
168
+ ]
169
+ })
170
+ ]
171
+ });
172
+ };
102
173
  const PreviewContent = ()=>{
103
174
  const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
104
175
  const { formatMessage } = useIntl();
@@ -146,6 +217,7 @@ const PreviewContent = ()=>{
146
217
  // here in order to get the relative="path" functionality from the Link component.
147
218
  };
148
219
  return /*#__PURE__*/ jsx(IconButton, {
220
+ variant: "ghost",
149
221
  tag: Link$1,
150
222
  relative: "path",
151
223
  to: toWithFallback,
@@ -227,7 +299,119 @@ const PreviewTabs = ()=>{
227
299
  };
228
300
  /* -------------------------------------------------------------------------------------------------
229
301
  * PreviewHeader
230
- * -----------------------------------------------------------------------------------------------*/ const PreviewHeader = ()=>{
302
+ * -----------------------------------------------------------------------------------------------*/ const UnstablePreviewHeader = ()=>{
303
+ const title = usePreviewContext('PreviewHeader', (state)=>state.title);
304
+ const document = usePreviewContext('PreviewHeader', (state)=>state.document);
305
+ const schema = usePreviewContext('PreviewHeader', (state)=>state.schema);
306
+ const meta = usePreviewContext('PreviewHeader', (state)=>state.meta);
307
+ const plugins = useStrapiApp('PreviewHeader', (state)=>state.plugins);
308
+ const [{ query }] = useQueryParams();
309
+ const { formatMessage } = useIntl();
310
+ const { toggleNotification } = useNotification();
311
+ const { copy } = useClipboard();
312
+ const handleCopyLink = ()=>{
313
+ copy(window.location.href);
314
+ toggleNotification({
315
+ message: formatMessage({
316
+ id: 'content-manager.preview.copy.success',
317
+ defaultMessage: 'Copied preview link'
318
+ }),
319
+ type: 'success'
320
+ });
321
+ };
322
+ const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;
323
+ const props = {
324
+ activeTab: query.status ?? null,
325
+ collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',
326
+ model: schema.uid,
327
+ documentId: document.documentId,
328
+ document,
329
+ meta
330
+ };
331
+ return /*#__PURE__*/ jsxs(Flex, {
332
+ height: "48px",
333
+ gap: 4,
334
+ background: "neutral0",
335
+ borderColor: "neutral150",
336
+ tag: "header",
337
+ children: [
338
+ /*#__PURE__*/ jsxs(TitleContainer, {
339
+ height: "100%",
340
+ paddingLeft: 2,
341
+ paddingRight: 4,
342
+ children: [
343
+ /*#__PURE__*/ jsx(ClosePreviewButton, {}),
344
+ /*#__PURE__*/ jsx(PreviewTitle, {
345
+ tag: "h1",
346
+ title: title,
347
+ maxWidth: "200px",
348
+ fontSize: 2,
349
+ paddingLeft: 2,
350
+ paddingRight: 3,
351
+ fontWeight: 600,
352
+ children: title
353
+ }),
354
+ /*#__PURE__*/ jsx(Status, {})
355
+ ]
356
+ }),
357
+ /*#__PURE__*/ jsxs(Flex, {
358
+ flex: 1,
359
+ paddingRight: 2,
360
+ gap: 2,
361
+ justifyContent: hasDraftAndPublish ? 'space-between' : 'flex-end',
362
+ children: [
363
+ /*#__PURE__*/ jsx(PreviewTabs, {}),
364
+ /*#__PURE__*/ jsxs(Flex, {
365
+ gap: 2,
366
+ children: [
367
+ /*#__PURE__*/ jsx(IconButton, {
368
+ type: "button",
369
+ label: formatMessage({
370
+ id: 'preview.copy.label',
371
+ defaultMessage: 'Copy preview link'
372
+ }),
373
+ onClick: handleCopyLink,
374
+ children: /*#__PURE__*/ jsx(Link, {})
375
+ }),
376
+ /*#__PURE__*/ jsx(DescriptionComponentRenderer, {
377
+ props: props,
378
+ descriptions: plugins['content-manager'].apis.getDocumentActions('preview'),
379
+ children: (actions)=>{
380
+ const filteredActions = actions.filter((action)=>[
381
+ action.position
382
+ ].flat().includes('preview'));
383
+ const [primaryAction, secondaryAction] = filteredActions;
384
+ if (!primaryAction && !secondaryAction) return null;
385
+ // Both actions are available when draft and publish enabled
386
+ if (primaryAction && secondaryAction) {
387
+ return /*#__PURE__*/ jsxs(Fragment, {
388
+ children: [
389
+ /*#__PURE__*/ jsx(DocumentActionButton, {
390
+ ...secondaryAction,
391
+ variant: secondaryAction.variant || 'secondary'
392
+ }),
393
+ /*#__PURE__*/ jsx(DocumentActionButton, {
394
+ ...primaryAction,
395
+ variant: primaryAction.variant || 'default'
396
+ })
397
+ ]
398
+ });
399
+ }
400
+ // Otherwise we just have the save action
401
+ return /*#__PURE__*/ jsx(DocumentActionButton, {
402
+ ...primaryAction,
403
+ variant: primaryAction.variant || 'secondary'
404
+ });
405
+ }
406
+ })
407
+ ]
408
+ })
409
+ ]
410
+ })
411
+ ]
412
+ });
413
+ };
414
+ const PreviewHeader = ()=>{
231
415
  // Get the document title
232
416
  const title = usePreviewContext('PreviewHeader', (state)=>state.title);
233
417
  const { formatMessage } = useIntl();
@@ -303,11 +487,15 @@ const PreviewTitle = styled(Typography)`
303
487
  const StatusTab = styled(Tabs.Trigger)`
304
488
  text-transform: uppercase;
305
489
  `;
490
+ const TitleContainer = styled(Flex)`
491
+ border-right: 1px solid ${({ theme })=>theme.colors.neutral150};
492
+ `;
306
493
 
307
494
  const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
308
495
  /* -------------------------------------------------------------------------------------------------
309
496
  * PreviewPage
310
497
  * -----------------------------------------------------------------------------------------------*/ const PreviewPage = ()=>{
498
+ const location = useLocation();
311
499
  const { formatMessage } = useIntl();
312
500
  // Read all the necessary data from the URL to find the right preview URL
313
501
  const { slug: model, id: documentId, collectionType } = useParams();
@@ -345,13 +533,23 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
345
533
  if (documentResponse.isLoading || previewUrlResponse.isLoading || documentLayoutResponse.isLoading) {
346
534
  return /*#__PURE__*/ jsx(Page.Loading, {});
347
535
  }
348
- if (previewUrlResponse.error || documentLayoutResponse.error || !documentResponse.document || !documentResponse.meta || !documentResponse.schema) {
536
+ const initialValues = documentResponse.getInitialFormValues();
537
+ if (previewUrlResponse.error || documentLayoutResponse.error || !documentResponse.document || !documentResponse.meta || !documentResponse.schema || !initialValues) {
349
538
  return /*#__PURE__*/ jsx(Page.Error, {});
350
539
  }
351
540
  if (!previewUrlResponse.data?.data?.url) {
352
541
  return /*#__PURE__*/ jsx(Page.NoData, {});
353
542
  }
354
543
  const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);
544
+ const validateSync = (values, options)=>{
545
+ const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
546
+ status: documentResponse.document?.status,
547
+ ...options
548
+ });
549
+ return yupSchema.validateSync(values, {
550
+ abortEarly: false
551
+ });
552
+ };
355
553
  return /*#__PURE__*/ jsxs(Fragment, {
356
554
  children: [
357
555
  /*#__PURE__*/ jsx(Page.Title, {
@@ -368,14 +566,38 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
368
566
  title: documentTitle,
369
567
  meta: documentResponse.meta,
370
568
  schema: documentResponse.schema,
371
- children: /*#__PURE__*/ jsxs(Flex, {
372
- direction: "column",
569
+ layout: documentLayoutResponse.edit,
570
+ children: /*#__PURE__*/ jsx(Form, {
571
+ method: "PUT",
572
+ disabled: query.status === 'published' && documentResponse && documentResponse.document.status === 'published',
573
+ initialValues: documentResponse.getInitialFormValues(),
574
+ initialErrors: location?.state?.forceValidation ? validateSync(initialValues, {}) : {},
373
575
  height: "100%",
374
- alignItems: "stretch",
375
- children: [
376
- /*#__PURE__*/ jsx(PreviewHeader, {}),
377
- /*#__PURE__*/ jsx(PreviewContent, {})
378
- ]
576
+ validate: (values, options)=>{
577
+ const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
578
+ status: documentResponse.document?.status,
579
+ ...options
580
+ });
581
+ return yupSchema.validate(values, {
582
+ abortEarly: false
583
+ });
584
+ },
585
+ children: /*#__PURE__*/ jsx(Flex, {
586
+ direction: "column",
587
+ height: "100%",
588
+ alignItems: "stretch",
589
+ children: window.strapi.future.isEnabled('unstablePreviewSideEditor') ? /*#__PURE__*/ jsxs(Fragment, {
590
+ children: [
591
+ /*#__PURE__*/ jsx(UnstablePreviewHeader, {}),
592
+ /*#__PURE__*/ jsx(UnstablePreviewContent, {})
593
+ ]
594
+ }) : /*#__PURE__*/ jsxs(Fragment, {
595
+ children: [
596
+ /*#__PURE__*/ jsx(PreviewHeader, {}),
597
+ /*#__PURE__*/ jsx(PreviewContent, {})
598
+ ]
599
+ })
600
+ })
379
601
  })
380
602
  })
381
603
  ]
@@ -389,6 +611,14 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
389
611
  {
390
612
  action: 'plugin::content-manager.explorer.read',
391
613
  subject: model
614
+ },
615
+ {
616
+ action: 'plugin::content-manager.explorer.update',
617
+ subject: model
618
+ },
619
+ {
620
+ action: 'plugin::content-manager.explorer.publish',
621
+ subject: model
392
622
  }
393
623
  ]);
394
624
  if (isLoading) {
@@ -415,11 +645,11 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
415
645
  zIndex: 2,
416
646
  background: "neutral0",
417
647
  children: /*#__PURE__*/ jsx(Page.Protect, {
418
- permissions: permissions,
419
- children: ({ permissions })=>/*#__PURE__*/ jsx(DocumentRBAC, {
420
- permissions: permissions,
421
- children: /*#__PURE__*/ jsx(PreviewPage, {})
422
- })
648
+ permissions: permissions.filter((permission)=>permission.action.includes('explorer.read')),
649
+ children: /*#__PURE__*/ jsx(DocumentRBAC, {
650
+ permissions: permissions,
651
+ children: /*#__PURE__*/ jsx(PreviewPage, {})
652
+ })
423
653
  })
424
654
  });
425
655
  };
@@ -432,4 +662,4 @@ const ProtectedPreviewPage = ()=>{
432
662
  };
433
663
 
434
664
  export { ProtectedPreviewPage, usePreviewContext };
435
- //# sourceMappingURL=Preview-DF_PNpvE.js.map
665
+ //# sourceMappingURL=Preview-BeB-PWgo.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preview-BeB-PWgo.mjs","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, IconButton } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { usePreviewContext } from '../pages/Preview';\n\n// TODO use ArrowLineLeft once it's available in the DS\nconst AnimatedArrow = styled(ArrowLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst UnstablePreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n const layout = usePreviewContext('PreviewContent', (state) => state.layout);\n\n const { formatMessage } = useIntl();\n\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n return (\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout layout={layout.layout} hasBackground />\n </Box>\n <Box position=\"relative\" flex={1} height=\"100%\" overflow=\"hidden\">\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n <IconButton\n variant=\"tertiary\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n position=\"absolute\"\n top={2}\n left={2}\n >\n <AnimatedArrow isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n </Box>\n </Flex>\n );\n};\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent, UnstablePreviewContent };\n","import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n useStrapiApp,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentActionButton } from '../../pages/EditView/components/DocumentActions';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <>\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const plugins = useStrapiApp('PreviewHeader', (state) => state.plugins);\n\n const [{ query }] = useQueryParams<{\n status?: 'draft' | 'published';\n }>();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;\n const props = {\n activeTab: query.status ?? null,\n collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',\n model: schema.uid,\n documentId: document.documentId,\n document,\n meta,\n } satisfies DocumentActionProps;\n\n return (\n <Flex height=\"48px\" gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex\n flex={1}\n paddingRight={2}\n gap={2}\n justifyContent={hasDraftAndPublish ? 'space-between' : 'flex-end'}\n >\n <PreviewTabs />\n <Flex gap={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('preview')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) =>\n [action.position].flat().includes('preview')\n );\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader, UnstablePreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewContent, UnstablePreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader, UnstablePreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status === 'published'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <UnstablePreviewContent />\n </>\n ) : (\n <>\n <PreviewHeader />\n <PreviewContent />\n </>\n )}\n </Flex>\n </FormContext>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["AnimatedArrow","styled","ArrowLeft","props","isSideEditorOpen","UnstablePreviewContent","previewUrl","usePreviewContext","state","url","layout","formatMessage","useIntl","setIsSideEditorOpen","React","useState","_jsxs","Flex","flex","overflow","alignItems","_jsx","Box","width","borderWidth","borderColor","paddingTop","paddingBottom","paddingLeft","paddingRight","transition","FormLayout","hasBackground","position","height","src","title","id","defaultMessage","tag","IconButton","variant","label","onClick","prev","top","left","PreviewContent","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","Link","relative","to","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","_Fragment","Tabs","Root","value","onValueChange","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","plugins","useStrapiApp","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","activeTab","collectionType","kind","model","uid","documentId","gap","background","TitleContainer","PreviewTitle","maxWidth","fontSize","fontWeight","justifyContent","LinkIcon","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","actions","filteredActions","filter","action","flat","includes","primaryAction","secondaryAction","DocumentActionButton","PreviewHeader","Grid","gridCols","Item","xs","marginBottom","margin","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","PreviewPage","useLocation","slug","useParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","Title","FormContext","method","initialErrors","forceValidation","validate","direction","strapi","future","isEnabled","ProtectedPreviewPageImpl","permissions","useRBAC","subject","zIndex","Protect","permission","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}