@strapi/content-manager 0.0.0-next.6d1431fe2a53b80b47ad9f00187cd7bae9d5f46b → 0.0.0-next.6d1dbc97a99dbfe8847598f6cbea3f7a1df2c89c

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 (481) hide show
  1. package/dist/admin/chunks/CardDragPreview-DwuraT0K.mjs +80 -0
  2. package/dist/admin/chunks/CardDragPreview-DwuraT0K.mjs.map +1 -0
  3. package/dist/admin/chunks/CardDragPreview-_dubYgXO.js +82 -0
  4. package/dist/admin/chunks/CardDragPreview-_dubYgXO.js.map +1 -0
  5. package/dist/admin/chunks/ComponentConfigurationPage-Bn-SMKJG.js +299 -0
  6. package/dist/admin/chunks/ComponentConfigurationPage-Bn-SMKJG.js.map +1 -0
  7. package/dist/admin/chunks/ComponentConfigurationPage-Cqi5KqZa.mjs +277 -0
  8. package/dist/admin/chunks/ComponentConfigurationPage-Cqi5KqZa.mjs.map +1 -0
  9. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.mjs +153 -0
  10. package/dist/admin/chunks/ComponentIcon-BZcTc4rj.mjs.map +1 -0
  11. package/dist/admin/chunks/ComponentIcon-C-EjOUPA.js +176 -0
  12. package/dist/admin/chunks/ComponentIcon-C-EjOUPA.js.map +1 -0
  13. package/dist/admin/chunks/EditConfigurationPage-CRxsqOhS.js +181 -0
  14. package/dist/admin/chunks/EditConfigurationPage-CRxsqOhS.js.map +1 -0
  15. package/dist/admin/chunks/EditConfigurationPage-Dm16gciL.mjs +159 -0
  16. package/dist/admin/chunks/EditConfigurationPage-Dm16gciL.mjs.map +1 -0
  17. package/dist/admin/chunks/EditViewPage-Dk8CeS40.js +334 -0
  18. package/dist/admin/chunks/EditViewPage-Dk8CeS40.js.map +1 -0
  19. package/dist/admin/chunks/EditViewPage-eTCSh2HB.mjs +311 -0
  20. package/dist/admin/chunks/EditViewPage-eTCSh2HB.mjs.map +1 -0
  21. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.mjs +56 -0
  22. package/dist/admin/chunks/FieldTypeIcon-BY6MrVF4.mjs.map +1 -0
  23. package/dist/admin/chunks/FieldTypeIcon-Bxh-7Jin.js +58 -0
  24. package/dist/admin/chunks/FieldTypeIcon-Bxh-7Jin.js.map +1 -0
  25. package/dist/admin/chunks/Form-K_hq8zU4.mjs +955 -0
  26. package/dist/admin/chunks/Form-K_hq8zU4.mjs.map +1 -0
  27. package/dist/admin/chunks/Form-PB1sNax8.js +978 -0
  28. package/dist/admin/chunks/Form-PB1sNax8.js.map +1 -0
  29. package/dist/admin/chunks/History-CD5uVchr.mjs +1357 -0
  30. package/dist/admin/chunks/History-CD5uVchr.mjs.map +1 -0
  31. package/dist/admin/chunks/History-CfsF-U-3.js +1380 -0
  32. package/dist/admin/chunks/History-CfsF-U-3.js.map +1 -0
  33. package/dist/admin/chunks/Input-CU93J6dl.js +7221 -0
  34. package/dist/admin/chunks/Input-CU93J6dl.js.map +1 -0
  35. package/dist/admin/chunks/Input-grmHplxs.mjs +7190 -0
  36. package/dist/admin/chunks/Input-grmHplxs.mjs.map +1 -0
  37. package/dist/admin/chunks/ListConfigurationPage-Eo8txFp0.mjs +796 -0
  38. package/dist/admin/chunks/ListConfigurationPage-Eo8txFp0.mjs.map +1 -0
  39. package/dist/admin/chunks/ListConfigurationPage-nZti--Mw.js +819 -0
  40. package/dist/admin/chunks/ListConfigurationPage-nZti--Mw.js.map +1 -0
  41. package/dist/admin/chunks/ListViewPage-BBX-zSka.mjs +1133 -0
  42. package/dist/admin/chunks/ListViewPage-BBX-zSka.mjs.map +1 -0
  43. package/dist/admin/chunks/ListViewPage-DQYvHCxn.js +1155 -0
  44. package/dist/admin/chunks/ListViewPage-DQYvHCxn.js.map +1 -0
  45. package/dist/admin/chunks/NoContentTypePage-C-rbOQO1.mjs +58 -0
  46. package/dist/admin/chunks/NoContentTypePage-C-rbOQO1.mjs.map +1 -0
  47. package/dist/admin/chunks/NoContentTypePage-ChYgz3sN.js +60 -0
  48. package/dist/admin/chunks/NoContentTypePage-ChYgz3sN.js.map +1 -0
  49. package/dist/admin/chunks/NoPermissionsPage-CuxrInhz.mjs +37 -0
  50. package/dist/admin/chunks/NoPermissionsPage-CuxrInhz.mjs.map +1 -0
  51. package/dist/admin/chunks/NoPermissionsPage-H4SAlJeF.js +39 -0
  52. package/dist/admin/chunks/NoPermissionsPage-H4SAlJeF.js.map +1 -0
  53. package/dist/admin/chunks/Preview-Bz2dgOiw.js +692 -0
  54. package/dist/admin/chunks/Preview-Bz2dgOiw.js.map +1 -0
  55. package/dist/admin/chunks/Preview-HqnNXn4S.mjs +670 -0
  56. package/dist/admin/chunks/Preview-HqnNXn4S.mjs.map +1 -0
  57. package/dist/admin/chunks/Relations-BMvL4yMN.mjs +1291 -0
  58. package/dist/admin/chunks/Relations-BMvL4yMN.mjs.map +1 -0
  59. package/dist/admin/chunks/Relations-CbCAt692.js +1318 -0
  60. package/dist/admin/chunks/Relations-CbCAt692.js.map +1 -0
  61. package/dist/admin/chunks/ar-DckYq_WK.mjs +222 -0
  62. package/dist/{_chunks/ar-CCEVvqGG.mjs.map → admin/chunks/ar-DckYq_WK.mjs.map} +1 -1
  63. package/dist/admin/chunks/ar-DeQBSsfl.js +227 -0
  64. package/dist/{_chunks/ru-BT3ybNny.js.map → admin/chunks/ar-DeQBSsfl.js.map} +1 -1
  65. package/dist/admin/chunks/ca-ClDTvatJ.js +202 -0
  66. package/dist/admin/chunks/ca-ClDTvatJ.js.map +1 -0
  67. package/dist/admin/chunks/ca-DviY7mRj.mjs +197 -0
  68. package/dist/admin/chunks/ca-DviY7mRj.mjs.map +1 -0
  69. package/dist/admin/chunks/cs-BJFxwIWj.js +126 -0
  70. package/dist/{_chunks/cs-CkJy6B2v.js.map → admin/chunks/cs-BJFxwIWj.js.map} +1 -1
  71. package/dist/admin/chunks/cs-C7OSYFQ7.mjs +122 -0
  72. package/dist/{_chunks/cs-CM2aBUar.mjs.map → admin/chunks/cs-C7OSYFQ7.mjs.map} +1 -1
  73. package/dist/admin/chunks/de-5QRlDHyR.mjs +195 -0
  74. package/dist/{_chunks/eu-CdALomew.mjs.map → admin/chunks/de-5QRlDHyR.mjs.map} +1 -1
  75. package/dist/admin/chunks/de-CbImAUA5.js +200 -0
  76. package/dist/{_chunks/gu-BRmF601H.js.map → admin/chunks/de-CbImAUA5.js.map} +1 -1
  77. package/dist/admin/chunks/en-CImiNxXE.mjs +310 -0
  78. package/dist/{_chunks/en-pIGSfG2_.mjs.map → admin/chunks/en-CImiNxXE.mjs.map} +1 -1
  79. package/dist/admin/chunks/en-CLf4SuMQ.js +315 -0
  80. package/dist/{_chunks/en-tanszW-q.js.map → admin/chunks/en-CLf4SuMQ.js.map} +1 -1
  81. package/dist/admin/chunks/es-C8vLuvZL.js +197 -0
  82. package/dist/{_chunks/es-9K52xZIr.js.map → admin/chunks/es-C8vLuvZL.js.map} +1 -1
  83. package/dist/admin/chunks/es-DkoWSExG.mjs +192 -0
  84. package/dist/{_chunks/ja-BHqhDq4V.mjs.map → admin/chunks/es-DkoWSExG.mjs.map} +1 -1
  85. package/dist/admin/chunks/eu-BG1xX7HK.mjs +198 -0
  86. package/dist/admin/chunks/eu-BG1xX7HK.mjs.map +1 -0
  87. package/dist/admin/chunks/eu-BJW3AvXu.js +203 -0
  88. package/dist/admin/chunks/eu-BJW3AvXu.js.map +1 -0
  89. package/dist/admin/chunks/fr-CFdRaRVj.mjs +215 -0
  90. package/dist/admin/chunks/fr-CFdRaRVj.mjs.map +1 -0
  91. package/dist/admin/chunks/fr-gQSilC7w.js +220 -0
  92. package/dist/admin/chunks/fr-gQSilC7w.js.map +1 -0
  93. package/dist/admin/chunks/gu-D5MMMXRs.mjs +196 -0
  94. package/dist/admin/chunks/gu-D5MMMXRs.mjs.map +1 -0
  95. package/dist/admin/chunks/gu-DPU4wyx7.js +201 -0
  96. package/dist/{_chunks/eu-VDH-3ovk.js.map → admin/chunks/gu-DPU4wyx7.js.map} +1 -1
  97. package/dist/admin/chunks/hi-Dp4omeBb.js +201 -0
  98. package/dist/admin/chunks/hi-Dp4omeBb.js.map +1 -0
  99. package/dist/admin/chunks/hi-lp17SCjr.mjs +196 -0
  100. package/dist/admin/chunks/hi-lp17SCjr.mjs.map +1 -0
  101. package/dist/{_chunks/hooks-BAaaKPS_.js → admin/chunks/hooks-D-sOYd1s.js} +6 -3
  102. package/dist/admin/chunks/hooks-D-sOYd1s.js.map +1 -0
  103. package/dist/admin/chunks/hooks-DMvik5y_.mjs +7 -0
  104. package/dist/admin/chunks/hooks-DMvik5y_.mjs.map +1 -0
  105. package/dist/admin/chunks/hu-CLka1U2C.mjs +198 -0
  106. package/dist/admin/chunks/hu-CLka1U2C.mjs.map +1 -0
  107. package/dist/admin/chunks/hu-CtFJuhTd.js +203 -0
  108. package/dist/admin/chunks/hu-CtFJuhTd.js.map +1 -0
  109. package/dist/admin/chunks/id-D7V5S1rB.js +161 -0
  110. package/dist/{_chunks/it-DkBIs7vD.js.map → admin/chunks/id-D7V5S1rB.js.map} +1 -1
  111. package/dist/admin/chunks/id-USfY9m1g.mjs +156 -0
  112. package/dist/{_chunks/id-BtwA9WJT.mjs.map → admin/chunks/id-USfY9m1g.mjs.map} +1 -1
  113. package/dist/admin/chunks/index-CS_nLuw2.mjs +5382 -0
  114. package/dist/admin/chunks/index-CS_nLuw2.mjs.map +1 -0
  115. package/dist/admin/chunks/index-DfX0uEQT.js +5449 -0
  116. package/dist/admin/chunks/index-DfX0uEQT.js.map +1 -0
  117. package/dist/admin/chunks/it-BAHrwmYS.mjs +158 -0
  118. package/dist/{_chunks/it-BrVPqaf1.mjs.map → admin/chunks/it-BAHrwmYS.mjs.map} +1 -1
  119. package/dist/admin/chunks/it-CQFpa_Dc.js +163 -0
  120. package/dist/{_chunks/ko-woFZPmLk.js.map → admin/chunks/it-CQFpa_Dc.js.map} +1 -1
  121. package/dist/admin/chunks/ja-BWKmBJFT.mjs +192 -0
  122. package/dist/{_chunks/ko-HVQRlfUI.mjs.map → admin/chunks/ja-BWKmBJFT.mjs.map} +1 -1
  123. package/dist/admin/chunks/ja-jdQM-B79.js +197 -0
  124. package/dist/{_chunks/de-CCEmbAah.js.map → admin/chunks/ja-jdQM-B79.js.map} +1 -1
  125. package/dist/admin/chunks/ko-CgADGBNt.mjs +191 -0
  126. package/dist/{_chunks/es-D34tqjMw.mjs.map → admin/chunks/ko-CgADGBNt.mjs.map} +1 -1
  127. package/dist/admin/chunks/ko-k46sEyzt.js +196 -0
  128. package/dist/{_chunks/ja-7sfIbjxE.js.map → admin/chunks/ko-k46sEyzt.js.map} +1 -1
  129. package/dist/admin/chunks/layout-B4Uk0v1z.js +619 -0
  130. package/dist/admin/chunks/layout-B4Uk0v1z.js.map +1 -0
  131. package/dist/admin/chunks/layout-BInXGFmo.mjs +599 -0
  132. package/dist/admin/chunks/layout-BInXGFmo.mjs.map +1 -0
  133. package/dist/admin/chunks/ml-CnhCfOn_.mjs +196 -0
  134. package/dist/admin/chunks/ml-CnhCfOn_.mjs.map +1 -0
  135. package/dist/admin/chunks/ml-DqxPwODx.js +201 -0
  136. package/dist/admin/chunks/ml-DqxPwODx.js.map +1 -0
  137. package/dist/admin/chunks/ms-Bh09NFff.mjs +140 -0
  138. package/dist/{_chunks/ms-m_WjyWx7.mjs.map → admin/chunks/ms-Bh09NFff.mjs.map} +1 -1
  139. package/dist/admin/chunks/ms-CvSC0OdG.js +145 -0
  140. package/dist/{_chunks/ms-BuFotyP_.js.map → admin/chunks/ms-CvSC0OdG.js.map} +1 -1
  141. package/dist/admin/chunks/nl-BEubhS8C.js +203 -0
  142. package/dist/admin/chunks/nl-BEubhS8C.js.map +1 -0
  143. package/dist/admin/chunks/nl-C8HYflTc.mjs +198 -0
  144. package/dist/admin/chunks/nl-C8HYflTc.mjs.map +1 -0
  145. package/dist/admin/chunks/objects-C3EebVVe.js +76 -0
  146. package/dist/admin/chunks/objects-C3EebVVe.js.map +1 -0
  147. package/dist/admin/chunks/objects-wl73iEma.mjs +73 -0
  148. package/dist/admin/chunks/objects-wl73iEma.mjs.map +1 -0
  149. package/dist/admin/chunks/pl-DWhGDzmM.js +200 -0
  150. package/dist/{_chunks/ca-Cmk45QO6.js.map → admin/chunks/pl-DWhGDzmM.js.map} +1 -1
  151. package/dist/admin/chunks/pl-MFCZJZuZ.mjs +195 -0
  152. package/dist/{_chunks/ca-5U32ON2v.mjs.map → admin/chunks/pl-MFCZJZuZ.mjs.map} +1 -1
  153. package/dist/admin/chunks/pt-BR-CPtAXD-4.js +202 -0
  154. package/dist/{_chunks/pt-BR-BiOz37D9.js.map → admin/chunks/pt-BR-CPtAXD-4.js.map} +1 -1
  155. package/dist/admin/chunks/pt-BR-CcotyBGJ.mjs +197 -0
  156. package/dist/{_chunks/pt-BR-C71iDxnh.mjs.map → admin/chunks/pt-BR-CcotyBGJ.mjs.map} +1 -1
  157. package/dist/admin/chunks/pt-BoPxN80n.js +96 -0
  158. package/dist/admin/chunks/pt-BoPxN80n.js.map +1 -0
  159. package/dist/admin/chunks/pt-HbmgeiYO.mjs +93 -0
  160. package/dist/admin/chunks/pt-HbmgeiYO.mjs.map +1 -0
  161. package/dist/admin/chunks/relations-9C5dQI9e.js +178 -0
  162. package/dist/admin/chunks/relations-9C5dQI9e.js.map +1 -0
  163. package/dist/admin/chunks/relations-CwL0ThH9.mjs +173 -0
  164. package/dist/admin/chunks/relations-CwL0ThH9.mjs.map +1 -0
  165. package/dist/admin/chunks/ru-C0op0ALG.js +232 -0
  166. package/dist/admin/chunks/ru-C0op0ALG.js.map +1 -0
  167. package/dist/admin/chunks/ru-CB4BUyQp.mjs +230 -0
  168. package/dist/{_chunks/ru-BE6A4Exp.mjs.map → admin/chunks/ru-CB4BUyQp.mjs.map} +1 -1
  169. package/dist/admin/chunks/sa-B_FuPyMw.js +201 -0
  170. package/dist/admin/chunks/sa-B_FuPyMw.js.map +1 -0
  171. package/dist/admin/chunks/sa-n_aPA-pU.mjs +196 -0
  172. package/dist/admin/chunks/sa-n_aPA-pU.mjs.map +1 -0
  173. package/dist/admin/chunks/sk-D_iXML2C.js +203 -0
  174. package/dist/admin/chunks/sk-D_iXML2C.js.map +1 -0
  175. package/dist/admin/chunks/sk-tn_BDjE2.mjs +198 -0
  176. package/dist/admin/chunks/sk-tn_BDjE2.mjs.map +1 -0
  177. package/dist/admin/chunks/sv-BstBC1Yp.js +203 -0
  178. package/dist/admin/chunks/sv-BstBC1Yp.js.map +1 -0
  179. package/dist/admin/chunks/sv-cq4ZrQRd.mjs +198 -0
  180. package/dist/admin/chunks/sv-cq4ZrQRd.mjs.map +1 -0
  181. package/dist/admin/chunks/th-lXoOCqPC.js +149 -0
  182. package/dist/{_chunks/th-D9_GfAjc.js.map → admin/chunks/th-lXoOCqPC.js.map} +1 -1
  183. package/dist/admin/chunks/th-mUH7hEtc.mjs +144 -0
  184. package/dist/{_chunks/uk-CR-zDhAY.mjs.map → admin/chunks/th-mUH7hEtc.mjs.map} +1 -1
  185. package/dist/admin/chunks/tr-CkS6sLIE.js +200 -0
  186. package/dist/admin/chunks/tr-CkS6sLIE.js.map +1 -0
  187. package/dist/admin/chunks/tr-Yt38daxh.mjs +195 -0
  188. package/dist/{_chunks/de-C72KDNOl.mjs.map → admin/chunks/tr-Yt38daxh.mjs.map} +1 -1
  189. package/dist/admin/chunks/uk-BtM6WnaE.mjs +313 -0
  190. package/dist/admin/chunks/uk-BtM6WnaE.mjs.map +1 -0
  191. package/dist/admin/chunks/uk-DB6OgySY.js +318 -0
  192. package/dist/admin/chunks/uk-DB6OgySY.js.map +1 -0
  193. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs +247 -0
  194. package/dist/admin/chunks/useDragAndDrop-HYwNDExe.mjs.map +1 -0
  195. package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js +271 -0
  196. package/dist/admin/chunks/useDragAndDrop-gcqEJMnO.js.map +1 -0
  197. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs +18 -0
  198. package/dist/admin/chunks/usePrev-Bjw2dhmq.mjs.map +1 -0
  199. package/dist/admin/chunks/usePrev-DIYl-IAL.js +21 -0
  200. package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +1 -0
  201. package/dist/admin/chunks/vi-BGr1X_HZ.js +112 -0
  202. package/dist/{_chunks/vi-CJlYDheJ.js.map → admin/chunks/vi-BGr1X_HZ.js.map} +1 -1
  203. package/dist/admin/chunks/vi-CvBGlTjr.mjs +108 -0
  204. package/dist/{_chunks/vi-DUXIk_fw.mjs.map → admin/chunks/vi-CvBGlTjr.mjs.map} +1 -1
  205. package/dist/admin/chunks/zh-BmF-sHaT.mjs +205 -0
  206. package/dist/admin/chunks/zh-BmF-sHaT.mjs.map +1 -0
  207. package/dist/admin/chunks/zh-DwFu_Kfj.js +210 -0
  208. package/dist/admin/chunks/zh-DwFu_Kfj.js.map +1 -0
  209. package/dist/admin/chunks/zh-Hans-CI0HKio3.mjs +934 -0
  210. package/dist/{_chunks/zh-Hans-BPQcRIyH.mjs.map → admin/chunks/zh-Hans-CI0HKio3.mjs.map} +1 -1
  211. package/dist/admin/chunks/zh-Hans-JVK9x7xr.js +953 -0
  212. package/dist/{_chunks/zh-Hans-9kOncHGw.js.map → admin/chunks/zh-Hans-JVK9x7xr.js.map} +1 -1
  213. package/dist/admin/index.js +25 -4
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +17 -12
  216. package/dist/admin/index.mjs.map +1 -1
  217. package/dist/admin/src/components/InjectionZone.d.ts +7 -1
  218. package/dist/admin/src/content-manager.d.ts +6 -2
  219. package/dist/admin/src/exports.d.ts +1 -0
  220. package/dist/admin/src/history/services/historyVersion.d.ts +2 -2
  221. package/dist/admin/src/hooks/useDocument.d.ts +21 -4
  222. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  223. package/dist/admin/src/index.d.ts +1 -0
  224. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
  225. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +3 -2
  226. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +3 -3
  227. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +11 -0
  228. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +55 -0
  229. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -0
  230. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +4 -1
  231. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +4 -1
  232. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +2 -1
  233. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +1 -2
  234. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +29 -1
  235. package/dist/admin/src/pages/EditView/utils/data.d.ts +1 -0
  236. package/dist/admin/src/preview/components/PreviewContent.d.ts +3 -0
  237. package/dist/admin/src/preview/components/PreviewHeader.d.ts +3 -0
  238. package/dist/admin/src/preview/index.d.ts +2 -3
  239. package/dist/admin/src/preview/pages/Preview.d.ts +3 -1
  240. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  241. package/dist/admin/src/router.d.ts +1 -1
  242. package/dist/admin/src/services/api.d.ts +1 -1
  243. package/dist/admin/src/services/components.d.ts +2 -2
  244. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  245. package/dist/admin/src/services/documents.d.ts +16 -19
  246. package/dist/admin/src/services/init.d.ts +1 -1
  247. package/dist/admin/src/services/relations.d.ts +2 -2
  248. package/dist/admin/src/services/uid.d.ts +3 -3
  249. package/dist/server/index.js +5461 -4346
  250. package/dist/server/index.js.map +1 -1
  251. package/dist/server/index.mjs +5433 -4315
  252. package/dist/server/index.mjs.map +1 -1
  253. package/dist/server/src/controllers/utils/metadata.d.ts +2 -1
  254. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  255. package/dist/server/src/history/controllers/history-version.d.ts +1 -1
  256. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  257. package/dist/server/src/history/services/history.d.ts +3 -3
  258. package/dist/server/src/history/services/history.d.ts.map +1 -1
  259. package/dist/server/src/history/services/utils.d.ts +6 -10
  260. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  261. package/dist/server/src/index.d.ts +3 -2
  262. package/dist/server/src/index.d.ts.map +1 -1
  263. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  264. package/dist/server/src/preview/index.d.ts.map +1 -1
  265. package/dist/server/src/preview/services/index.d.ts +1 -0
  266. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  267. package/dist/server/src/preview/services/preview-config.d.ts +2 -0
  268. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  269. package/dist/server/src/preview/utils.d.ts +1 -0
  270. package/dist/server/src/preview/utils.d.ts.map +1 -1
  271. package/dist/server/src/register.d.ts.map +1 -1
  272. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  273. package/dist/server/src/services/document-metadata.d.ts +4 -2
  274. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  275. package/dist/server/src/services/index.d.ts +3 -2
  276. package/dist/server/src/services/index.d.ts.map +1 -1
  277. package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
  278. package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
  279. package/dist/server/src/services/utils/count.d.ts +1 -1
  280. package/dist/server/src/services/utils/count.d.ts.map +1 -1
  281. package/dist/server/src/services/utils/populate.d.ts +3 -3
  282. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  283. package/dist/shared/contracts/collection-types.d.ts +0 -1
  284. package/dist/shared/contracts/components.d.ts +0 -1
  285. package/dist/shared/contracts/content-types.d.ts +0 -1
  286. package/dist/shared/contracts/history-versions.d.ts +0 -1
  287. package/dist/shared/contracts/index.d.ts +0 -1
  288. package/dist/shared/contracts/init.d.ts +0 -1
  289. package/dist/shared/contracts/preview.d.ts +0 -1
  290. package/dist/shared/contracts/relations.d.ts +1 -2
  291. package/dist/shared/contracts/relations.d.ts.map +1 -1
  292. package/dist/shared/contracts/review-workflows.d.ts +0 -1
  293. package/dist/shared/contracts/single-types.d.ts +0 -1
  294. package/dist/shared/contracts/uid.d.ts +0 -1
  295. package/dist/shared/index.d.ts +0 -1
  296. package/dist/shared/index.js +35 -24
  297. package/dist/shared/index.js.map +1 -1
  298. package/dist/shared/index.mjs +34 -25
  299. package/dist/shared/index.mjs.map +1 -1
  300. package/package.json +20 -16
  301. package/dist/_chunks/CardDragPreview-C0QyJgRA.js +0 -69
  302. package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +0 -1
  303. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs +0 -70
  304. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +0 -1
  305. package/dist/_chunks/ComponentConfigurationPage-BXrB6Fyz.js +0 -255
  306. package/dist/_chunks/ComponentConfigurationPage-BXrB6Fyz.js.map +0 -1
  307. package/dist/_chunks/ComponentConfigurationPage-CS4dK8sJ.mjs +0 -236
  308. package/dist/_chunks/ComponentConfigurationPage-CS4dK8sJ.mjs.map +0 -1
  309. package/dist/_chunks/ComponentIcon-BXdiCGQp.js +0 -176
  310. package/dist/_chunks/ComponentIcon-BXdiCGQp.js.map +0 -1
  311. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs +0 -157
  312. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +0 -1
  313. package/dist/_chunks/EditConfigurationPage-BFrTf6Wt.js +0 -151
  314. package/dist/_chunks/EditConfigurationPage-BFrTf6Wt.js.map +0 -1
  315. package/dist/_chunks/EditConfigurationPage-KPmdp3nZ.mjs +0 -132
  316. package/dist/_chunks/EditConfigurationPage-KPmdp3nZ.mjs.map +0 -1
  317. package/dist/_chunks/EditViewPage-BnPxp-t3.mjs +0 -224
  318. package/dist/_chunks/EditViewPage-BnPxp-t3.mjs.map +0 -1
  319. package/dist/_chunks/EditViewPage-CCj-eG0Y.js +0 -243
  320. package/dist/_chunks/EditViewPage-CCj-eG0Y.js.map +0 -1
  321. package/dist/_chunks/Field-DSDtEDLU.mjs +0 -5563
  322. package/dist/_chunks/Field-DSDtEDLU.mjs.map +0 -1
  323. package/dist/_chunks/Field-SRNzJb2F.js +0 -5595
  324. package/dist/_chunks/Field-SRNzJb2F.js.map +0 -1
  325. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs +0 -50
  326. package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +0 -1
  327. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js +0 -49
  328. package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +0 -1
  329. package/dist/_chunks/Form-C8z5hjjO.mjs +0 -758
  330. package/dist/_chunks/Form-C8z5hjjO.mjs.map +0 -1
  331. package/dist/_chunks/Form-DbQ4gxkw.js +0 -779
  332. package/dist/_chunks/Form-DbQ4gxkw.js.map +0 -1
  333. package/dist/_chunks/History-C23owO-n.js +0 -1044
  334. package/dist/_chunks/History-C23owO-n.js.map +0 -1
  335. package/dist/_chunks/History-CuPXsYZL.mjs +0 -1023
  336. package/dist/_chunks/History-CuPXsYZL.mjs.map +0 -1
  337. package/dist/_chunks/ListConfigurationPage-ChKIEXi-.mjs +0 -632
  338. package/dist/_chunks/ListConfigurationPage-ChKIEXi-.mjs.map +0 -1
  339. package/dist/_chunks/ListConfigurationPage-CyfKtibC.js +0 -652
  340. package/dist/_chunks/ListConfigurationPage-CyfKtibC.js.map +0 -1
  341. package/dist/_chunks/ListViewPage-BLcdkiiW.js +0 -863
  342. package/dist/_chunks/ListViewPage-BLcdkiiW.js.map +0 -1
  343. package/dist/_chunks/ListViewPage-BicHoHdt.mjs +0 -839
  344. package/dist/_chunks/ListViewPage-BicHoHdt.mjs.map +0 -1
  345. package/dist/_chunks/NoContentTypePage-Clby61Hd.mjs +0 -51
  346. package/dist/_chunks/NoContentTypePage-Clby61Hd.mjs.map +0 -1
  347. package/dist/_chunks/NoContentTypePage-D9NSOYTF.js +0 -51
  348. package/dist/_chunks/NoContentTypePage-D9NSOYTF.js.map +0 -1
  349. package/dist/_chunks/NoPermissionsPage-CPcXGv0N.js +0 -23
  350. package/dist/_chunks/NoPermissionsPage-CPcXGv0N.js.map +0 -1
  351. package/dist/_chunks/NoPermissionsPage-DD72Qxzx.mjs +0 -23
  352. package/dist/_chunks/NoPermissionsPage-DD72Qxzx.mjs.map +0 -1
  353. package/dist/_chunks/Preview-DcrNJ6zU.mjs +0 -122
  354. package/dist/_chunks/Preview-DcrNJ6zU.mjs.map +0 -1
  355. package/dist/_chunks/Preview-DpB7tlma.js +0 -141
  356. package/dist/_chunks/Preview-DpB7tlma.js.map +0 -1
  357. package/dist/_chunks/Relations-BK3w1JyT.mjs +0 -730
  358. package/dist/_chunks/Relations-BK3w1JyT.mjs.map +0 -1
  359. package/dist/_chunks/Relations-mHVb9pZH.js +0 -750
  360. package/dist/_chunks/Relations-mHVb9pZH.js.map +0 -1
  361. package/dist/_chunks/ar-BUUWXIYu.js +0 -226
  362. package/dist/_chunks/ar-BUUWXIYu.js.map +0 -1
  363. package/dist/_chunks/ar-CCEVvqGG.mjs +0 -226
  364. package/dist/_chunks/ca-5U32ON2v.mjs +0 -201
  365. package/dist/_chunks/ca-Cmk45QO6.js +0 -201
  366. package/dist/_chunks/cs-CM2aBUar.mjs +0 -125
  367. package/dist/_chunks/cs-CkJy6B2v.js +0 -125
  368. package/dist/_chunks/de-C72KDNOl.mjs +0 -199
  369. package/dist/_chunks/de-CCEmbAah.js +0 -199
  370. package/dist/_chunks/en-pIGSfG2_.mjs +0 -299
  371. package/dist/_chunks/en-tanszW-q.js +0 -299
  372. package/dist/_chunks/es-9K52xZIr.js +0 -196
  373. package/dist/_chunks/es-D34tqjMw.mjs +0 -196
  374. package/dist/_chunks/eu-CdALomew.mjs +0 -202
  375. package/dist/_chunks/eu-VDH-3ovk.js +0 -202
  376. package/dist/_chunks/fr--pg5jUbt.mjs +0 -216
  377. package/dist/_chunks/fr--pg5jUbt.mjs.map +0 -1
  378. package/dist/_chunks/fr-B2Kyv8Z9.js +0 -216
  379. package/dist/_chunks/fr-B2Kyv8Z9.js.map +0 -1
  380. package/dist/_chunks/gu-BRmF601H.js +0 -200
  381. package/dist/_chunks/gu-CNpaMDpH.mjs +0 -200
  382. package/dist/_chunks/gu-CNpaMDpH.mjs.map +0 -1
  383. package/dist/_chunks/hi-CCJBptSq.js +0 -200
  384. package/dist/_chunks/hi-CCJBptSq.js.map +0 -1
  385. package/dist/_chunks/hi-Dwvd04m3.mjs +0 -200
  386. package/dist/_chunks/hi-Dwvd04m3.mjs.map +0 -1
  387. package/dist/_chunks/hooks-BAaaKPS_.js.map +0 -1
  388. package/dist/_chunks/hooks-E5u1mcgM.mjs +0 -8
  389. package/dist/_chunks/hooks-E5u1mcgM.mjs.map +0 -1
  390. package/dist/_chunks/hu-CeYvaaO0.mjs +0 -202
  391. package/dist/_chunks/hu-CeYvaaO0.mjs.map +0 -1
  392. package/dist/_chunks/hu-sNV_yLYy.js +0 -202
  393. package/dist/_chunks/hu-sNV_yLYy.js.map +0 -1
  394. package/dist/_chunks/id-B5Ser98A.js +0 -160
  395. package/dist/_chunks/id-B5Ser98A.js.map +0 -1
  396. package/dist/_chunks/id-BtwA9WJT.mjs +0 -160
  397. package/dist/_chunks/index-Bl3BGqcN.mjs +0 -4183
  398. package/dist/_chunks/index-Bl3BGqcN.mjs.map +0 -1
  399. package/dist/_chunks/index-KzSpgsQa.js +0 -4203
  400. package/dist/_chunks/index-KzSpgsQa.js.map +0 -1
  401. package/dist/_chunks/it-BrVPqaf1.mjs +0 -162
  402. package/dist/_chunks/it-DkBIs7vD.js +0 -162
  403. package/dist/_chunks/ja-7sfIbjxE.js +0 -196
  404. package/dist/_chunks/ja-BHqhDq4V.mjs +0 -196
  405. package/dist/_chunks/ko-HVQRlfUI.mjs +0 -195
  406. package/dist/_chunks/ko-woFZPmLk.js +0 -195
  407. package/dist/_chunks/layout-CKU3YxH7.js +0 -489
  408. package/dist/_chunks/layout-CKU3YxH7.js.map +0 -1
  409. package/dist/_chunks/layout-DFhUhimv.mjs +0 -471
  410. package/dist/_chunks/layout-DFhUhimv.mjs.map +0 -1
  411. package/dist/_chunks/ml-BihZwQit.mjs +0 -200
  412. package/dist/_chunks/ml-BihZwQit.mjs.map +0 -1
  413. package/dist/_chunks/ml-C2W8N8k1.js +0 -200
  414. package/dist/_chunks/ml-C2W8N8k1.js.map +0 -1
  415. package/dist/_chunks/ms-BuFotyP_.js +0 -144
  416. package/dist/_chunks/ms-m_WjyWx7.mjs +0 -144
  417. package/dist/_chunks/nl-D4R9gHx5.mjs +0 -202
  418. package/dist/_chunks/nl-D4R9gHx5.mjs.map +0 -1
  419. package/dist/_chunks/nl-bbEOHChV.js +0 -202
  420. package/dist/_chunks/nl-bbEOHChV.js.map +0 -1
  421. package/dist/_chunks/objects-BcXOv6_9.js +0 -47
  422. package/dist/_chunks/objects-BcXOv6_9.js.map +0 -1
  423. package/dist/_chunks/objects-D6yBsdmx.mjs +0 -45
  424. package/dist/_chunks/objects-D6yBsdmx.mjs.map +0 -1
  425. package/dist/_chunks/pl-sbx9mSt_.mjs +0 -199
  426. package/dist/_chunks/pl-sbx9mSt_.mjs.map +0 -1
  427. package/dist/_chunks/pl-uzwG-hk7.js +0 -199
  428. package/dist/_chunks/pl-uzwG-hk7.js.map +0 -1
  429. package/dist/_chunks/pt-BR-BiOz37D9.js +0 -201
  430. package/dist/_chunks/pt-BR-C71iDxnh.mjs +0 -201
  431. package/dist/_chunks/pt-BsaFvS8-.mjs +0 -95
  432. package/dist/_chunks/pt-BsaFvS8-.mjs.map +0 -1
  433. package/dist/_chunks/pt-CeXQuq50.js +0 -95
  434. package/dist/_chunks/pt-CeXQuq50.js.map +0 -1
  435. package/dist/_chunks/relations-CnyTxXmA.js +0 -133
  436. package/dist/_chunks/relations-CnyTxXmA.js.map +0 -1
  437. package/dist/_chunks/relations-KkpGHlgm.mjs +0 -134
  438. package/dist/_chunks/relations-KkpGHlgm.mjs.map +0 -1
  439. package/dist/_chunks/ru-BE6A4Exp.mjs +0 -231
  440. package/dist/_chunks/ru-BT3ybNny.js +0 -231
  441. package/dist/_chunks/sa-CcvkYInH.js +0 -200
  442. package/dist/_chunks/sa-CcvkYInH.js.map +0 -1
  443. package/dist/_chunks/sa-Dag0k-Z8.mjs +0 -200
  444. package/dist/_chunks/sa-Dag0k-Z8.mjs.map +0 -1
  445. package/dist/_chunks/sk-BFg-R8qJ.mjs +0 -202
  446. package/dist/_chunks/sk-BFg-R8qJ.mjs.map +0 -1
  447. package/dist/_chunks/sk-CvY09Xjv.js +0 -202
  448. package/dist/_chunks/sk-CvY09Xjv.js.map +0 -1
  449. package/dist/_chunks/sv-CUnfWGsh.mjs +0 -202
  450. package/dist/_chunks/sv-CUnfWGsh.mjs.map +0 -1
  451. package/dist/_chunks/sv-MYDuzgvT.js +0 -202
  452. package/dist/_chunks/sv-MYDuzgvT.js.map +0 -1
  453. package/dist/_chunks/th-BqbI8lIT.mjs +0 -148
  454. package/dist/_chunks/th-BqbI8lIT.mjs.map +0 -1
  455. package/dist/_chunks/th-D9_GfAjc.js +0 -148
  456. package/dist/_chunks/tr-CgeK3wJM.mjs +0 -199
  457. package/dist/_chunks/tr-CgeK3wJM.mjs.map +0 -1
  458. package/dist/_chunks/tr-D9UH-O_R.js +0 -199
  459. package/dist/_chunks/tr-D9UH-O_R.js.map +0 -1
  460. package/dist/_chunks/uk-C8EiqJY7.js +0 -144
  461. package/dist/_chunks/uk-C8EiqJY7.js.map +0 -1
  462. package/dist/_chunks/uk-CR-zDhAY.mjs +0 -144
  463. package/dist/_chunks/useDebounce-CtcjDB3L.js +0 -28
  464. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +0 -1
  465. package/dist/_chunks/useDebounce-DmuSJIF3.mjs +0 -29
  466. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +0 -1
  467. package/dist/_chunks/useDragAndDrop-DdHgKsqq.mjs +0 -231
  468. package/dist/_chunks/useDragAndDrop-DdHgKsqq.mjs.map +0 -1
  469. package/dist/_chunks/useDragAndDrop-J0TUUbR6.js +0 -249
  470. package/dist/_chunks/useDragAndDrop-J0TUUbR6.js.map +0 -1
  471. package/dist/_chunks/vi-CJlYDheJ.js +0 -111
  472. package/dist/_chunks/vi-DUXIk_fw.mjs +0 -111
  473. package/dist/_chunks/zh-BWZspA60.mjs +0 -209
  474. package/dist/_chunks/zh-BWZspA60.mjs.map +0 -1
  475. package/dist/_chunks/zh-CQQfszqR.js +0 -209
  476. package/dist/_chunks/zh-CQQfszqR.js.map +0 -1
  477. package/dist/_chunks/zh-Hans-9kOncHGw.js +0 -952
  478. package/dist/_chunks/zh-Hans-BPQcRIyH.mjs +0 -952
  479. package/dist/admin/src/preview/constants.d.ts +0 -1
  480. package/dist/server/src/preview/constants.d.ts +0 -2
  481. package/dist/server/src/preview/constants.d.ts.map +0 -1
@@ -0,0 +1,1357 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useForm, useStrapiApp, InputRenderer, useField, Form, Layouts, useTracking, useNotification, useQueryParams, useRBAC, ConfirmDialog, createContext, Page } from '@strapi/admin/strapi-admin';
4
+ import { Alert, Link, Flex, Field, Box, Tooltip, Typography, Divider, Grid, Dialog, Button, Portal, FocusTrap, Main } from '@strapi/design-system';
5
+ import { stringify } from 'qs';
6
+ import { useIntl } from 'react-intl';
7
+ import { NavLink, useNavigate, useParams, Link as Link$1, Navigate } from 'react-router-dom';
8
+ import { c as useDoc, f as useDocumentRBAC, m as useDocLayout, C as COLLECTION_TYPES, D as DocumentStatus, K as removeFieldsThatDontExistOnSchema, L as prepareTempKeys, e as contentManagerApi, k as PERMISSIONS, v as getDisplayName, R as RelativeTime, l as DocumentRBAC, M as useDocument, h as useDocumentLayout, p as useGetContentTypeConfigurationQuery, d as buildValidParams } from './index-CS_nLuw2.mjs';
9
+ import pipe from 'lodash/fp/pipe';
10
+ import { u as useTypedSelector } from './hooks-DMvik5y_.mjs';
11
+ import { ArrowLeft, WarningCircle } from '@strapi/icons';
12
+ import { styled } from 'styled-components';
13
+ import { a as useDynamicZone, u as useLazyComponents, b as useFieldHint, N as NotAllowedInput, M as MemoizedUIDInput, c as MemoizedWysiwyg, D as DynamicZone, d as MemoizedComponentInput, e as MemoizedBlocksInput } from './Input-grmHplxs.mjs';
14
+ import { g as getRelationLabel } from './relations-CwL0ThH9.mjs';
15
+ import 'lodash/fp/mapValues';
16
+ import 'yup';
17
+ import 'fractional-indexing';
18
+ import 'date-fns';
19
+ import '@reduxjs/toolkit';
20
+ import 'prismjs';
21
+ import 'react-redux';
22
+ import 'slate';
23
+ import 'slate-history';
24
+ import 'slate-react';
25
+ import 'prismjs/themes/prism-solarizedlight.css';
26
+ import 'prismjs/components/prism-asmatmel';
27
+ import 'prismjs/components/prism-bash';
28
+ import 'prismjs/components/prism-basic';
29
+ import 'prismjs/components/prism-c';
30
+ import 'prismjs/components/prism-clojure';
31
+ import 'prismjs/components/prism-cobol';
32
+ import 'prismjs/components/prism-cpp';
33
+ import 'prismjs/components/prism-csharp';
34
+ import 'prismjs/components/prism-dart';
35
+ import 'prismjs/components/prism-docker';
36
+ import 'prismjs/components/prism-elixir';
37
+ import 'prismjs/components/prism-erlang';
38
+ import 'prismjs/components/prism-fortran';
39
+ import 'prismjs/components/prism-fsharp';
40
+ import 'prismjs/components/prism-go';
41
+ import 'prismjs/components/prism-graphql';
42
+ import 'prismjs/components/prism-groovy';
43
+ import 'prismjs/components/prism-haskell';
44
+ import 'prismjs/components/prism-haxe';
45
+ import 'prismjs/components/prism-ini';
46
+ import 'prismjs/components/prism-java';
47
+ import 'prismjs/components/prism-javascript';
48
+ import 'prismjs/components/prism-jsx';
49
+ import 'prismjs/components/prism-json';
50
+ import 'prismjs/components/prism-julia';
51
+ import 'prismjs/components/prism-kotlin';
52
+ import 'prismjs/components/prism-latex';
53
+ import 'prismjs/components/prism-lua';
54
+ import 'prismjs/components/prism-markdown';
55
+ import 'prismjs/components/prism-matlab';
56
+ import 'prismjs/components/prism-makefile';
57
+ import 'prismjs/components/prism-objectivec';
58
+ import 'prismjs/components/prism-perl';
59
+ import 'prismjs/components/prism-php';
60
+ import 'prismjs/components/prism-powershell';
61
+ import 'prismjs/components/prism-python';
62
+ import 'prismjs/components/prism-r';
63
+ import 'prismjs/components/prism-ruby';
64
+ import 'prismjs/components/prism-rust';
65
+ import 'prismjs/components/prism-sas';
66
+ import 'prismjs/components/prism-scala';
67
+ import 'prismjs/components/prism-scheme';
68
+ import 'prismjs/components/prism-sql';
69
+ import 'prismjs/components/prism-stata';
70
+ import 'prismjs/components/prism-swift';
71
+ import 'prismjs/components/prism-typescript';
72
+ import 'prismjs/components/prism-tsx';
73
+ import 'prismjs/components/prism-vbnet';
74
+ import 'prismjs/components/prism-yaml';
75
+ import './usePrev-Bjw2dhmq.mjs';
76
+ import './useDragAndDrop-HYwNDExe.mjs';
77
+ import 'react-dnd';
78
+ import '@radix-ui/react-toolbar';
79
+ import 'react-dnd-html5-backend';
80
+ import './objects-wl73iEma.mjs';
81
+ import 'lodash/clone';
82
+ import 'lodash/toPath';
83
+ import './Relations-BMvL4yMN.mjs';
84
+ import 'react-window';
85
+ import './ComponentIcon-BZcTc4rj.mjs';
86
+ import '@strapi/icons/symbols';
87
+ import 'codemirror5';
88
+ import 'sanitize-html';
89
+ import 'highlight.js';
90
+ import 'markdown-it';
91
+ import 'markdown-it-abbr';
92
+ import 'markdown-it-container';
93
+ import 'markdown-it-deflist';
94
+ import 'markdown-it-emoji';
95
+ import 'markdown-it-footnote';
96
+ import 'markdown-it-ins';
97
+ import 'markdown-it-mark';
98
+ import 'markdown-it-sub';
99
+ import 'markdown-it-sup';
100
+ import 'highlight.js/styles/solarized-dark.css';
101
+ import 'codemirror5/addon/display/placeholder';
102
+
103
+ const StyledAlert = styled(Alert).attrs({
104
+ closeLabel: 'Close',
105
+ onClose: ()=>{},
106
+ shadow: 'none'
107
+ })`
108
+ button {
109
+ display: none;
110
+ }
111
+ `;
112
+ /* -------------------------------------------------------------------------------------------------
113
+ * CustomRelationInput
114
+ * -----------------------------------------------------------------------------------------------*/ const LinkEllipsis = styled(Link)`
115
+ display: block;
116
+
117
+ & > span {
118
+ white-space: nowrap;
119
+ overflow: hidden;
120
+ text-overflow: ellipsis;
121
+ display: block;
122
+ }
123
+ `;
124
+ const CustomRelationInput = (props)=>{
125
+ const { formatMessage } = useIntl();
126
+ const field = useField(props.name);
127
+ /**
128
+ * Ideally the server would return the correct shape, however, for admin user relations
129
+ * it sanitizes everything out when it finds an object for the relation value.
130
+ */ let formattedFieldValue;
131
+ if (field) {
132
+ formattedFieldValue = Array.isArray(field.value) ? {
133
+ results: field.value,
134
+ meta: {
135
+ missingCount: 0
136
+ }
137
+ } : field.value;
138
+ }
139
+ if (!formattedFieldValue || formattedFieldValue.results.length === 0 && formattedFieldValue.meta.missingCount === 0) {
140
+ return /*#__PURE__*/ jsxs(Fragment, {
141
+ children: [
142
+ /*#__PURE__*/ jsx(Field.Label, {
143
+ action: props.labelAction,
144
+ children: props.label
145
+ }),
146
+ /*#__PURE__*/ jsx(Box, {
147
+ marginTop: 1,
148
+ children: /*#__PURE__*/ jsx(StyledAlert, {
149
+ variant: "default",
150
+ children: formatMessage({
151
+ id: 'content-manager.history.content.no-relations',
152
+ defaultMessage: 'No relations.'
153
+ })
154
+ })
155
+ })
156
+ ]
157
+ });
158
+ }
159
+ const { results, meta } = formattedFieldValue;
160
+ return /*#__PURE__*/ jsxs(Box, {
161
+ children: [
162
+ /*#__PURE__*/ jsx(Field.Label, {
163
+ children: props.label
164
+ }),
165
+ results.length > 0 && /*#__PURE__*/ jsx(Flex, {
166
+ direction: "column",
167
+ gap: 2,
168
+ marginTop: 1,
169
+ alignItems: "stretch",
170
+ children: results.map((relationData)=>{
171
+ // @ts-expect-error - targetModel does exist on the attribute. But it's not typed.
172
+ const { targetModel } = props.attribute;
173
+ const href = `../${COLLECTION_TYPES}/${targetModel}/${relationData.documentId}`;
174
+ const label = getRelationLabel(relationData, props.mainField);
175
+ const isAdminUserRelation = targetModel === 'admin::user';
176
+ return /*#__PURE__*/ jsxs(Flex, {
177
+ paddingTop: 2,
178
+ paddingBottom: 2,
179
+ paddingLeft: 4,
180
+ paddingRight: 4,
181
+ hasRadius: true,
182
+ borderColor: "neutral200",
183
+ background: "neutral150",
184
+ justifyContent: "space-between",
185
+ children: [
186
+ /*#__PURE__*/ jsx(Box, {
187
+ minWidth: 0,
188
+ paddingTop: 1,
189
+ paddingBottom: 1,
190
+ paddingRight: 4,
191
+ children: /*#__PURE__*/ jsx(Tooltip, {
192
+ label: label,
193
+ children: isAdminUserRelation ? /*#__PURE__*/ jsx(Typography, {
194
+ children: label
195
+ }) : /*#__PURE__*/ jsx(LinkEllipsis, {
196
+ tag: NavLink,
197
+ to: href,
198
+ children: label
199
+ })
200
+ })
201
+ }),
202
+ /*#__PURE__*/ jsx(DocumentStatus, {
203
+ status: relationData.status
204
+ })
205
+ ]
206
+ }, relationData.documentId ?? relationData.id);
207
+ })
208
+ }),
209
+ meta.missingCount > 0 && /* @ts-expect-error – we dont need closeLabel */ /*#__PURE__*/ jsx(StyledAlert, {
210
+ marginTop: 1,
211
+ variant: "warning",
212
+ title: formatMessage({
213
+ id: 'content-manager.history.content.missing-relations.title',
214
+ defaultMessage: '{number, plural, =1 {Missing relation} other {{number} missing relations}}'
215
+ }, {
216
+ number: meta.missingCount
217
+ }),
218
+ children: formatMessage({
219
+ id: 'content-manager.history.content.missing-relations.message',
220
+ defaultMessage: "{number, plural, =1 {It has} other {They have}} been deleted and can't be restored."
221
+ }, {
222
+ number: meta.missingCount
223
+ })
224
+ })
225
+ ]
226
+ });
227
+ };
228
+ /* -------------------------------------------------------------------------------------------------
229
+ * CustomMediaInput
230
+ * -----------------------------------------------------------------------------------------------*/ // Create an object with value at key path (i.e. 'a.b.c')
231
+ const createInitialValuesForPath = (keyPath, value)=>{
232
+ const keys = keyPath.split('.');
233
+ // The root level object
234
+ const root = {};
235
+ // Make the first node the root
236
+ let node = root;
237
+ keys.forEach((key, index)=>{
238
+ // Skip prototype pollution keys
239
+ if (key === '__proto__' || key === 'constructor') return;
240
+ // If it's the last key, set the node value
241
+ if (index === keys.length - 1) {
242
+ node[key] = value;
243
+ } else {
244
+ // Ensure the key exists and is an object
245
+ node[key] = node[key] || {};
246
+ }
247
+ // Traverse down the tree
248
+ node = node[key];
249
+ });
250
+ return root;
251
+ };
252
+ const CustomMediaInput = (props)=>{
253
+ const { value } = useField(props.name);
254
+ const results = value?.results ?? [];
255
+ const meta = value?.meta ?? {
256
+ missingCount: 0
257
+ };
258
+ const { formatMessage } = useIntl();
259
+ const fields = useStrapiApp('CustomMediaInput', (state)=>state.fields);
260
+ const MediaLibrary = fields.media;
261
+ return /*#__PURE__*/ jsxs(Flex, {
262
+ direction: "column",
263
+ gap: 2,
264
+ alignItems: "stretch",
265
+ children: [
266
+ /*#__PURE__*/ jsx(Form, {
267
+ method: "PUT",
268
+ disabled: true,
269
+ initialValues: createInitialValuesForPath(props.name, results),
270
+ children: /*#__PURE__*/ jsx(MediaLibrary, {
271
+ ...props,
272
+ disabled: true,
273
+ multiple: results.length > 1
274
+ })
275
+ }),
276
+ meta.missingCount > 0 && /*#__PURE__*/ jsx(StyledAlert, {
277
+ variant: "warning",
278
+ closeLabel: "Close",
279
+ onClose: ()=>{},
280
+ title: formatMessage({
281
+ id: 'content-manager.history.content.missing-assets.title',
282
+ defaultMessage: '{number, plural, =1 {Missing asset} other {{number} missing assets}}'
283
+ }, {
284
+ number: meta.missingCount
285
+ }),
286
+ children: formatMessage({
287
+ id: 'content-manager.history.content.missing-assets.message',
288
+ defaultMessage: "{number, plural, =1 {It has} other {They have}} been deleted in the Media Library and can't be restored."
289
+ }, {
290
+ number: meta.missingCount
291
+ })
292
+ })
293
+ ]
294
+ });
295
+ };
296
+ /**
297
+ * Checks if the i18n plugin added a label action to the field and modifies it
298
+ * to adapt the wording for the history page.
299
+ */ const getLabelAction = (labelAction)=>{
300
+ if (!/*#__PURE__*/ React.isValidElement(labelAction)) {
301
+ return labelAction;
302
+ }
303
+ // TODO: find a better way to do this rather than access internals
304
+ const labelActionTitleId = labelAction.props.title.id;
305
+ if (labelActionTitleId === 'i18n.Field.localized') {
306
+ return /*#__PURE__*/ React.cloneElement(labelAction, {
307
+ ...labelAction.props,
308
+ title: {
309
+ id: 'history.content.localized',
310
+ defaultMessage: 'This value is specific to this locale. If you restore this version, the content will not be replaced for other locales.'
311
+ }
312
+ });
313
+ }
314
+ if (labelActionTitleId === 'i18n.Field.not-localized') {
315
+ return /*#__PURE__*/ React.cloneElement(labelAction, {
316
+ ...labelAction.props,
317
+ title: {
318
+ id: 'history.content.not-localized',
319
+ defaultMessage: 'This value is common to all locales. If you restore this version and save the changes, the content will be replaced for all locales.'
320
+ }
321
+ });
322
+ }
323
+ // Label action is unrelated to i18n, don't touch it.
324
+ return labelAction;
325
+ };
326
+ /**
327
+ * @internal
328
+ *
329
+ * @description An abstraction around the regular form input renderer designed specifically
330
+ * to be used on the History page in the content-manager. It understands how to render specific
331
+ * inputs within the context of a history version (i.e. relations, media, ignored RBAC, etc...)
332
+ */ const VersionInputRenderer = ({ visible, hint: providedHint, shouldIgnoreRBAC = false, labelAction, ...props })=>{
333
+ const customLabelAction = getLabelAction(labelAction);
334
+ const { formatMessage } = useIntl();
335
+ const version = useHistoryContext('VersionContent', (state)=>state.selectedVersion);
336
+ const configuration = useHistoryContext('VersionContent', (state)=>state.configuration);
337
+ const fieldSizes = useTypedSelector((state)=>state['content-manager'].app.fieldSizes);
338
+ const { id, components } = useDoc();
339
+ const isFormDisabled = useForm('InputRenderer', (state)=>state.disabled);
340
+ const isInDynamicZone = useDynamicZone('isInDynamicZone', (state)=>state.isInDynamicZone);
341
+ const canCreateFields = useDocumentRBAC('InputRenderer', (rbac)=>rbac.canCreateFields);
342
+ const canReadFields = useDocumentRBAC('InputRenderer', (rbac)=>rbac.canReadFields);
343
+ const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac)=>rbac.canUpdateFields);
344
+ const canUserAction = useDocumentRBAC('InputRenderer', (rbac)=>rbac.canUserAction);
345
+ const editableFields = id ? canUpdateFields : canCreateFields;
346
+ const readableFields = id ? canReadFields : canCreateFields;
347
+ /**
348
+ * Component fields are always readable and editable,
349
+ * however the fields within them may not be.
350
+ */ const canUserReadField = canUserAction(props.name, readableFields, props.type);
351
+ const canUserEditField = canUserAction(props.name, editableFields, props.type);
352
+ const fields = useStrapiApp('InputRenderer', (app)=>app.fields);
353
+ const { lazyComponentStore } = useLazyComponents(attributeHasCustomFieldProperty(props.attribute) ? [
354
+ props.attribute.customField
355
+ ] : undefined);
356
+ const hint = useFieldHint(providedHint, props.attribute);
357
+ const { edit: { components: componentsLayout } } = useDocLayout();
358
+ if (!visible) {
359
+ return null;
360
+ }
361
+ /**
362
+ * Don't render the field if the user can't read it.
363
+ */ if (!shouldIgnoreRBAC && !canUserReadField && !isInDynamicZone) {
364
+ return /*#__PURE__*/ jsx(NotAllowedInput, {
365
+ hint: hint,
366
+ ...props
367
+ });
368
+ }
369
+ const fieldIsDisabled = !canUserEditField && !isInDynamicZone || props.disabled || isFormDisabled;
370
+ /**
371
+ * Attributes found on the current content-type schema cannot be restored. We handle
372
+ * this by displaying a warning alert to the user instead of the input for that field type.
373
+ */ const addedAttributes = version.meta.unknownAttributes.added;
374
+ if (Object.keys(addedAttributes).includes(props.name)) {
375
+ return /*#__PURE__*/ jsxs(Flex, {
376
+ direction: "column",
377
+ alignItems: "flex-start",
378
+ gap: 1,
379
+ children: [
380
+ /*#__PURE__*/ jsx(Field.Label, {
381
+ children: props.label
382
+ }),
383
+ /*#__PURE__*/ jsx(StyledAlert, {
384
+ width: "100%",
385
+ closeLabel: "Close",
386
+ onClose: ()=>{},
387
+ variant: "warning",
388
+ title: formatMessage({
389
+ id: 'content-manager.history.content.new-field.title',
390
+ defaultMessage: 'New field'
391
+ }),
392
+ children: formatMessage({
393
+ id: 'content-manager.history.content.new-field.message',
394
+ defaultMessage: "This field didn't exist when this version was saved. If you restore this version, it will be empty."
395
+ })
396
+ })
397
+ ]
398
+ });
399
+ }
400
+ /**
401
+ * Because a custom field has a unique prop but the type could be confused with either
402
+ * the useField hook or the type of the field we need to handle it separately and first.
403
+ */ if (attributeHasCustomFieldProperty(props.attribute)) {
404
+ const CustomInput = lazyComponentStore[props.attribute.customField];
405
+ if (CustomInput) {
406
+ return /*#__PURE__*/ jsx(CustomInput, {
407
+ ...props,
408
+ // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.
409
+ hint: hint,
410
+ labelAction: customLabelAction,
411
+ disabled: fieldIsDisabled
412
+ });
413
+ }
414
+ return /*#__PURE__*/ jsx(InputRenderer, {
415
+ ...props,
416
+ hint: hint,
417
+ labelAction: customLabelAction,
418
+ // @ts-expect-error – this workaround lets us display that the custom field is missing.
419
+ type: props.attribute.customField,
420
+ disabled: fieldIsDisabled
421
+ });
422
+ }
423
+ /**
424
+ * Since media fields use a custom input via the upload plugin provided by the useLibrary hook,
425
+ * we need to handle the them before other custom inputs coming from the useLibrary hook.
426
+ */ if (props.type === 'media') {
427
+ return /*#__PURE__*/ jsx(CustomMediaInput, {
428
+ ...props,
429
+ labelAction: customLabelAction,
430
+ disabled: fieldIsDisabled
431
+ });
432
+ }
433
+ /**
434
+ * This is where we handle ONLY the fields from the `useLibrary` hook.
435
+ */ const addedInputTypes = Object.keys(fields);
436
+ if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {
437
+ const CustomInput = fields[props.type];
438
+ return /*#__PURE__*/ jsx(CustomInput, {
439
+ ...props,
440
+ // @ts-expect-error – TODO: fix this type error in the useLibrary hook.
441
+ hint: hint,
442
+ labelAction: customLabelAction,
443
+ disabled: fieldIsDisabled
444
+ });
445
+ }
446
+ /**
447
+ * These include the content-manager specific fields, failing that we fall back
448
+ * to the more generic form input renderer.
449
+ */ switch(props.type){
450
+ case 'blocks':
451
+ return /*#__PURE__*/ jsx(MemoizedBlocksInput, {
452
+ ...props,
453
+ hint: hint,
454
+ type: props.type,
455
+ disabled: fieldIsDisabled
456
+ });
457
+ case 'component':
458
+ const { layout } = componentsLayout[props.attribute.component];
459
+ // Components can only have one panel, so only save the first layout item
460
+ const [remainingFieldsLayout] = getRemaingFieldsLayout({
461
+ layout: [
462
+ layout
463
+ ],
464
+ metadatas: configuration.components[props.attribute.component].metadatas,
465
+ fieldSizes,
466
+ schemaAttributes: components[props.attribute.component].attributes
467
+ });
468
+ return /*#__PURE__*/ jsx(MemoizedComponentInput, {
469
+ ...props,
470
+ layout: [
471
+ ...layout,
472
+ ...remainingFieldsLayout || []
473
+ ],
474
+ hint: hint,
475
+ labelAction: customLabelAction,
476
+ disabled: fieldIsDisabled,
477
+ children: (inputProps)=>/*#__PURE__*/ jsx(VersionInputRenderer, {
478
+ ...inputProps,
479
+ shouldIgnoreRBAC: true
480
+ })
481
+ });
482
+ case 'dynamiczone':
483
+ return /*#__PURE__*/ jsx(DynamicZone, {
484
+ ...props,
485
+ hint: hint,
486
+ labelAction: customLabelAction,
487
+ disabled: fieldIsDisabled,
488
+ children: (inputProps)=>/*#__PURE__*/ jsx(VersionInputRenderer, {
489
+ ...inputProps,
490
+ shouldIgnoreRBAC: true
491
+ })
492
+ });
493
+ case 'relation':
494
+ return /*#__PURE__*/ jsx(CustomRelationInput, {
495
+ ...props,
496
+ hint: hint,
497
+ labelAction: customLabelAction,
498
+ disabled: fieldIsDisabled
499
+ });
500
+ case 'richtext':
501
+ return /*#__PURE__*/ jsx(MemoizedWysiwyg, {
502
+ ...props,
503
+ hint: hint,
504
+ type: props.type,
505
+ labelAction: customLabelAction,
506
+ disabled: fieldIsDisabled
507
+ });
508
+ case 'uid':
509
+ return /*#__PURE__*/ jsx(MemoizedUIDInput, {
510
+ ...props,
511
+ hint: hint,
512
+ type: props.type,
513
+ labelAction: customLabelAction,
514
+ disabled: fieldIsDisabled
515
+ });
516
+ /**
517
+ * Enumerations are a special case because they require options.
518
+ */ case 'enumeration':
519
+ return /*#__PURE__*/ jsx(InputRenderer, {
520
+ ...props,
521
+ hint: hint,
522
+ labelAction: customLabelAction,
523
+ options: props.attribute.enum.map((value)=>({
524
+ value
525
+ })),
526
+ // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!
527
+ type: props.customField ? 'custom-field' : props.type,
528
+ disabled: fieldIsDisabled
529
+ });
530
+ default:
531
+ // These props are not needed for the generic form input renderer.
532
+ const { unique: _unique, mainField: _mainField, ...restProps } = props;
533
+ return /*#__PURE__*/ jsx(InputRenderer, {
534
+ ...restProps,
535
+ hint: hint,
536
+ labelAction: customLabelAction,
537
+ // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!
538
+ type: props.customField ? 'custom-field' : props.type,
539
+ disabled: fieldIsDisabled
540
+ });
541
+ }
542
+ };
543
+ const attributeHasCustomFieldProperty = (attribute)=>'customField' in attribute && typeof attribute.customField === 'string';
544
+
545
+ const createLayoutFromFields = (fields)=>{
546
+ return fields.reduce((rows, field)=>{
547
+ if (field.type === 'dynamiczone') {
548
+ // Dynamic zones take up all the columns in a row
549
+ rows.push([
550
+ field
551
+ ]);
552
+ return rows;
553
+ }
554
+ if (!rows[rows.length - 1]) {
555
+ // Create a new row if there isn't one available
556
+ rows.push([]);
557
+ }
558
+ // Push fields to the current row, they wrap and handle their own column size
559
+ rows[rows.length - 1].push(field);
560
+ return rows;
561
+ }, [])// Map the rows to panels
562
+ .map((row)=>[
563
+ row
564
+ ]);
565
+ };
566
+ /**
567
+ * Build a layout for the fields that are were deleted from the edit view layout
568
+ * via the configure the view page. This layout will be merged with the main one.
569
+ * Those fields would be restored if the user restores the history version, which is why it's
570
+ * important to show them, even if they're not in the normal layout.
571
+ */ function getRemaingFieldsLayout({ layout, metadatas, schemaAttributes, fieldSizes }) {
572
+ const fieldsInLayout = layout.flatMap((panel)=>panel.flatMap((row)=>row.flatMap((field)=>field.name)));
573
+ const remainingFields = Object.entries(metadatas).reduce((currentRemainingFields, [name, field])=>{
574
+ // Make sure we do not fields that are not visible, e.g. "id"
575
+ if (!fieldsInLayout.includes(name) && field.edit.visible === true) {
576
+ const attribute = schemaAttributes[name];
577
+ // @ts-expect-error not sure why attribute causes type error
578
+ currentRemainingFields.push({
579
+ attribute,
580
+ type: attribute.type,
581
+ visible: true,
582
+ disabled: true,
583
+ label: field.edit.label || name,
584
+ name: name,
585
+ size: fieldSizes[attribute.type].default ?? 12
586
+ });
587
+ }
588
+ return currentRemainingFields;
589
+ }, []);
590
+ return createLayoutFromFields(remainingFields);
591
+ }
592
+ /* -------------------------------------------------------------------------------------------------
593
+ * FormPanel
594
+ * -----------------------------------------------------------------------------------------------*/ const FormPanel = ({ panel })=>{
595
+ if (panel.some((row)=>row.some((field)=>field.type === 'dynamiczone'))) {
596
+ const [row] = panel;
597
+ const [field] = row;
598
+ return /*#__PURE__*/ jsx(Grid.Root, {
599
+ gap: 4,
600
+ children: /*#__PURE__*/ jsx(Grid.Item, {
601
+ col: 12,
602
+ s: 12,
603
+ xs: 12,
604
+ direction: "column",
605
+ alignItems: "stretch",
606
+ children: /*#__PURE__*/ jsx(VersionInputRenderer, {
607
+ ...field
608
+ })
609
+ })
610
+ }, field.name);
611
+ }
612
+ return /*#__PURE__*/ jsx(Box, {
613
+ hasRadius: true,
614
+ background: "neutral0",
615
+ shadow: "tableShadow",
616
+ paddingLeft: 6,
617
+ paddingRight: 6,
618
+ paddingTop: 6,
619
+ paddingBottom: 6,
620
+ borderColor: "neutral150",
621
+ children: /*#__PURE__*/ jsx(Flex, {
622
+ direction: "column",
623
+ alignItems: "stretch",
624
+ gap: 6,
625
+ children: panel.map((row, gridRowIndex)=>/*#__PURE__*/ jsx(Grid.Root, {
626
+ gap: 4,
627
+ children: row.map(({ size, ...field })=>{
628
+ return /*#__PURE__*/ jsx(Grid.Item, {
629
+ col: size,
630
+ s: 12,
631
+ xs: 12,
632
+ direction: "column",
633
+ alignItems: "stretch",
634
+ children: /*#__PURE__*/ jsx(VersionInputRenderer, {
635
+ ...field
636
+ })
637
+ }, field.name);
638
+ })
639
+ }, gridRowIndex))
640
+ })
641
+ });
642
+ };
643
+ const VersionContent = ()=>{
644
+ const { formatMessage } = useIntl();
645
+ const { fieldSizes } = useTypedSelector((state)=>state['content-manager'].app);
646
+ const version = useHistoryContext('VersionContent', (state)=>state.selectedVersion);
647
+ const layout = useHistoryContext('VersionContent', (state)=>state.layout);
648
+ const configuration = useHistoryContext('VersionContent', (state)=>state.configuration);
649
+ const schema = useHistoryContext('VersionContent', (state)=>state.schema);
650
+ // Build a layout for the unknown fields section
651
+ const removedAttributes = version.meta.unknownAttributes.removed;
652
+ const removedAttributesAsFields = Object.entries(removedAttributes).map(([attributeName, attribute])=>{
653
+ const field = {
654
+ attribute,
655
+ shouldIgnoreRBAC: true,
656
+ type: attribute.type,
657
+ visible: true,
658
+ disabled: true,
659
+ label: attributeName,
660
+ name: attributeName,
661
+ size: fieldSizes[attribute.type].default ?? 12
662
+ };
663
+ return field;
664
+ });
665
+ const unknownFieldsLayout = createLayoutFromFields(removedAttributesAsFields);
666
+ // Build a layout for the fields that are were deleted from the layout
667
+ const remainingFieldsLayout = getRemaingFieldsLayout({
668
+ metadatas: configuration.contentType.metadatas,
669
+ layout,
670
+ schemaAttributes: schema.attributes,
671
+ fieldSizes
672
+ });
673
+ const { components } = useDoc();
674
+ /**
675
+ * Transform the data before passing it to the form so that each field
676
+ * has a uniquely generated key
677
+ */ const transformedData = React.useMemo(()=>{
678
+ const transform = (schemaAttributes, components = {})=>(document)=>{
679
+ const schema = {
680
+ attributes: schemaAttributes
681
+ };
682
+ const transformations = pipe(removeFieldsThatDontExistOnSchema(schema), prepareTempKeys(schema, components));
683
+ return transformations(document);
684
+ };
685
+ return transform(version.schema, components)(version.data);
686
+ }, [
687
+ components,
688
+ version.data,
689
+ version.schema
690
+ ]);
691
+ return /*#__PURE__*/ jsxs(Layouts.Content, {
692
+ children: [
693
+ /*#__PURE__*/ jsx(Box, {
694
+ paddingBottom: 8,
695
+ children: /*#__PURE__*/ jsx(Form, {
696
+ disabled: true,
697
+ method: "PUT",
698
+ initialValues: transformedData,
699
+ children: /*#__PURE__*/ jsx(Flex, {
700
+ direction: "column",
701
+ alignItems: "stretch",
702
+ gap: 6,
703
+ position: "relative",
704
+ children: [
705
+ ...layout,
706
+ ...remainingFieldsLayout
707
+ ].map((panel, index)=>{
708
+ return /*#__PURE__*/ jsx(FormPanel, {
709
+ panel: panel
710
+ }, index);
711
+ })
712
+ })
713
+ })
714
+ }),
715
+ removedAttributesAsFields.length > 0 && /*#__PURE__*/ jsxs(Fragment, {
716
+ children: [
717
+ /*#__PURE__*/ jsx(Divider, {}),
718
+ /*#__PURE__*/ jsxs(Box, {
719
+ paddingTop: 8,
720
+ children: [
721
+ /*#__PURE__*/ jsxs(Flex, {
722
+ direction: "column",
723
+ alignItems: "flex-start",
724
+ paddingBottom: 6,
725
+ gap: 1,
726
+ children: [
727
+ /*#__PURE__*/ jsx(Typography, {
728
+ variant: "delta",
729
+ children: formatMessage({
730
+ id: 'content-manager.history.content.unknown-fields.title',
731
+ defaultMessage: 'Unknown fields'
732
+ })
733
+ }),
734
+ /*#__PURE__*/ jsx(Typography, {
735
+ variant: "pi",
736
+ children: formatMessage({
737
+ id: 'content-manager.history.content.unknown-fields.message',
738
+ defaultMessage: 'These fields have been deleted or renamed in the Content-Type Builder. <b>These fields will not be restored.</b>'
739
+ }, {
740
+ b: (chunks)=>/*#__PURE__*/ jsx(Typography, {
741
+ variant: "pi",
742
+ fontWeight: "bold",
743
+ children: chunks
744
+ })
745
+ })
746
+ })
747
+ ]
748
+ }),
749
+ /*#__PURE__*/ jsx(Form, {
750
+ disabled: true,
751
+ method: "PUT",
752
+ initialValues: version.data,
753
+ children: /*#__PURE__*/ jsx(Flex, {
754
+ direction: "column",
755
+ alignItems: "stretch",
756
+ gap: 6,
757
+ position: "relative",
758
+ children: unknownFieldsLayout.map((panel, index)=>{
759
+ return /*#__PURE__*/ jsx(FormPanel, {
760
+ panel: panel
761
+ }, index);
762
+ })
763
+ })
764
+ })
765
+ ]
766
+ })
767
+ ]
768
+ })
769
+ ]
770
+ });
771
+ };
772
+
773
+ const historyVersionsApi = contentManagerApi.injectEndpoints({
774
+ endpoints: (builder)=>({
775
+ getHistoryVersions: builder.query({
776
+ query (params) {
777
+ return {
778
+ url: `/content-manager/history-versions`,
779
+ method: 'GET',
780
+ config: {
781
+ params
782
+ }
783
+ };
784
+ },
785
+ providesTags: [
786
+ 'HistoryVersion'
787
+ ]
788
+ }),
789
+ restoreVersion: builder.mutation({
790
+ query ({ params, body }) {
791
+ return {
792
+ url: `/content-manager/history-versions/${params.versionId}/restore`,
793
+ method: 'PUT',
794
+ data: body
795
+ };
796
+ },
797
+ invalidatesTags: (_res, _error, { documentId, collectionType, params })=>{
798
+ return [
799
+ 'HistoryVersion',
800
+ {
801
+ type: 'Document',
802
+ id: collectionType === COLLECTION_TYPES ? `${params.contentType}_${documentId}` : params.contentType
803
+ }
804
+ ];
805
+ }
806
+ })
807
+ })
808
+ });
809
+ const { useGetHistoryVersionsQuery, useRestoreVersionMutation } = historyVersionsApi;
810
+
811
+ const VersionHeader = ({ headerId })=>{
812
+ const [isConfirmDialogOpen, setIsConfirmDialogOpen] = React.useState(false);
813
+ const navigate = useNavigate();
814
+ const { formatMessage, formatDate } = useIntl();
815
+ const { trackUsage } = useTracking();
816
+ const { toggleNotification } = useNotification();
817
+ const [{ query }] = useQueryParams();
818
+ const { collectionType, slug } = useParams();
819
+ const [restoreVersion, { isLoading }] = useRestoreVersionMutation();
820
+ const { allowedActions } = useRBAC(PERMISSIONS.map((action)=>({
821
+ action,
822
+ subject: slug
823
+ })));
824
+ const version = useHistoryContext('VersionHeader', (state)=>state.selectedVersion);
825
+ const mainField = useHistoryContext('VersionHeader', (state)=>state.mainField);
826
+ const schema = useHistoryContext('VersionHeader', (state)=>state.schema);
827
+ const isCurrentVersion = useHistoryContext('VersionHeader', (state)=>state.page === 1 && state.versions.data[0].id === state.selectedVersion.id);
828
+ const mainFieldValue = version.data[mainField];
829
+ const getNextNavigation = ()=>{
830
+ const pluginsQueryParams = stringify({
831
+ plugins: query.plugins
832
+ }, {
833
+ encode: false
834
+ });
835
+ return {
836
+ pathname: '..',
837
+ search: pluginsQueryParams
838
+ };
839
+ };
840
+ const handleRestore = async ()=>{
841
+ try {
842
+ const response = await restoreVersion({
843
+ documentId: version.relatedDocumentId,
844
+ collectionType,
845
+ params: {
846
+ versionId: version.id,
847
+ contentType: version.contentType
848
+ },
849
+ body: {
850
+ contentType: version.contentType
851
+ }
852
+ });
853
+ if ('data' in response) {
854
+ navigate(getNextNavigation(), {
855
+ relative: 'path'
856
+ });
857
+ toggleNotification({
858
+ type: 'success',
859
+ title: formatMessage({
860
+ id: 'content-manager.restore.success.title',
861
+ defaultMessage: 'Version restored.'
862
+ }),
863
+ message: formatMessage({
864
+ id: 'content-manager.restore.success.message',
865
+ defaultMessage: 'A past version of the content was restored.'
866
+ })
867
+ });
868
+ trackUsage('didRestoreHistoryVersion');
869
+ }
870
+ if ('error' in response) {
871
+ toggleNotification({
872
+ type: 'danger',
873
+ message: formatMessage({
874
+ id: 'content-manager.history.restore.error.message',
875
+ defaultMessage: 'Could not restore version.'
876
+ })
877
+ });
878
+ }
879
+ } catch (error) {
880
+ toggleNotification({
881
+ type: 'danger',
882
+ message: formatMessage({
883
+ id: 'notification.error',
884
+ defaultMessage: 'An error occurred'
885
+ })
886
+ });
887
+ }
888
+ };
889
+ return /*#__PURE__*/ jsxs(Dialog.Root, {
890
+ open: isConfirmDialogOpen,
891
+ onOpenChange: setIsConfirmDialogOpen,
892
+ children: [
893
+ /*#__PURE__*/ jsx(Layouts.BaseHeader, {
894
+ id: headerId,
895
+ title: formatDate(new Date(version.createdAt), {
896
+ year: 'numeric',
897
+ month: 'numeric',
898
+ day: 'numeric',
899
+ hour: 'numeric',
900
+ minute: 'numeric'
901
+ }),
902
+ subtitle: /*#__PURE__*/ jsx(Typography, {
903
+ variant: "epsilon",
904
+ textColor: "neutral600",
905
+ children: formatMessage({
906
+ id: 'content-manager.history.version.subtitle',
907
+ defaultMessage: '{hasLocale, select, true {{subtitle}, in {locale}} other {{subtitle}}}'
908
+ }, {
909
+ hasLocale: Boolean(version.locale),
910
+ subtitle: `${mainFieldValue || ''} (${schema.info.singularName})`.trim(),
911
+ locale: version.locale?.name
912
+ })
913
+ }),
914
+ navigationAction: /*#__PURE__*/ jsx(Link, {
915
+ startIcon: /*#__PURE__*/ jsx(ArrowLeft, {}),
916
+ tag: NavLink,
917
+ to: getNextNavigation(),
918
+ relative: "path",
919
+ isExternal: false,
920
+ children: formatMessage({
921
+ id: 'global.back',
922
+ defaultMessage: 'Back'
923
+ })
924
+ }),
925
+ sticky: false,
926
+ primaryAction: /*#__PURE__*/ jsx(Dialog.Trigger, {
927
+ children: /*#__PURE__*/ jsx(Button, {
928
+ disabled: !allowedActions.canUpdate || isCurrentVersion,
929
+ onClick: ()=>{
930
+ setIsConfirmDialogOpen(true);
931
+ },
932
+ children: formatMessage({
933
+ id: 'content-manager.history.restore.confirm.button',
934
+ defaultMessage: 'Restore'
935
+ })
936
+ })
937
+ })
938
+ }),
939
+ /*#__PURE__*/ jsx(ConfirmDialog, {
940
+ onConfirm: handleRestore,
941
+ endAction: /*#__PURE__*/ jsx(Button, {
942
+ variant: "secondary",
943
+ onClick: handleRestore,
944
+ loading: isLoading,
945
+ children: formatMessage({
946
+ id: 'content-manager.history.restore.confirm.button',
947
+ defaultMessage: 'Restore'
948
+ })
949
+ }),
950
+ children: /*#__PURE__*/ jsxs(Flex, {
951
+ direction: "column",
952
+ alignItems: "center",
953
+ justifyContent: "center",
954
+ gap: 2,
955
+ textAlign: "center",
956
+ children: [
957
+ /*#__PURE__*/ jsx(Flex, {
958
+ justifyContent: "center",
959
+ children: /*#__PURE__*/ jsx(WarningCircle, {
960
+ width: "24px",
961
+ height: "24px",
962
+ fill: "danger600"
963
+ })
964
+ }),
965
+ /*#__PURE__*/ jsx(Typography, {
966
+ children: formatMessage({
967
+ id: 'content-manager.history.restore.confirm.title',
968
+ defaultMessage: 'Are you sure you want to restore this version?'
969
+ })
970
+ }),
971
+ /*#__PURE__*/ jsx(Typography, {
972
+ children: formatMessage({
973
+ id: 'content-manager.history.restore.confirm.message',
974
+ defaultMessage: "{isDraft, select, true {The restored content will override your draft.} other {The restored content won't be published, it will override the draft and be saved as pending changes. You'll be able to publish the changes at anytime.}}"
975
+ }, {
976
+ isDraft: version.status === 'draft'
977
+ })
978
+ })
979
+ ]
980
+ })
981
+ })
982
+ ]
983
+ });
984
+ };
985
+
986
+ /* -------------------------------------------------------------------------------------------------
987
+ * BlueText
988
+ * -----------------------------------------------------------------------------------------------*/ const BlueText = (children)=>/*#__PURE__*/ jsx(Typography, {
989
+ textColor: "primary600",
990
+ variant: "pi",
991
+ children: children
992
+ });
993
+ const VersionCard = ({ version, isCurrent })=>{
994
+ const { formatDate, formatMessage } = useIntl();
995
+ const [{ query }] = useQueryParams();
996
+ const isActive = query.id === version.id.toString();
997
+ const author = version.createdBy && getDisplayName(version.createdBy);
998
+ return /*#__PURE__*/ jsxs(Flex, {
999
+ direction: "column",
1000
+ alignItems: "flex-start",
1001
+ gap: 3,
1002
+ hasRadius: true,
1003
+ borderWidth: "1px",
1004
+ borderStyle: "solid",
1005
+ borderColor: isActive ? 'primary600' : 'neutral200',
1006
+ color: "neutral800",
1007
+ padding: 5,
1008
+ tag: Link$1,
1009
+ to: `?${stringify({
1010
+ ...query,
1011
+ id: version.id
1012
+ })}`,
1013
+ style: {
1014
+ textDecoration: 'none'
1015
+ },
1016
+ children: [
1017
+ /*#__PURE__*/ jsxs(Flex, {
1018
+ direction: "column",
1019
+ gap: 1,
1020
+ alignItems: "flex-start",
1021
+ children: [
1022
+ /*#__PURE__*/ jsx(Typography, {
1023
+ tag: "h3",
1024
+ fontWeight: "semiBold",
1025
+ children: formatDate(version.createdAt, {
1026
+ day: 'numeric',
1027
+ month: 'numeric',
1028
+ year: 'numeric',
1029
+ hour: '2-digit',
1030
+ minute: '2-digit'
1031
+ })
1032
+ }),
1033
+ /*#__PURE__*/ jsx(Typography, {
1034
+ tag: "p",
1035
+ variant: "pi",
1036
+ textColor: "neutral600",
1037
+ children: formatMessage({
1038
+ id: 'content-manager.history.sidebar.versionDescription',
1039
+ defaultMessage: '{distanceToNow}{isAnonymous, select, true {} other { by {author}}}{isCurrent, select, true { <b>(current)</b>} other {}}'
1040
+ }, {
1041
+ distanceToNow: /*#__PURE__*/ jsx(RelativeTime, {
1042
+ timestamp: new Date(version.createdAt)
1043
+ }),
1044
+ author,
1045
+ isAnonymous: !Boolean(version.createdBy),
1046
+ isCurrent,
1047
+ b: BlueText
1048
+ })
1049
+ })
1050
+ ]
1051
+ }),
1052
+ version.status && /*#__PURE__*/ jsx(DocumentStatus, {
1053
+ status: version.status,
1054
+ size: "XS"
1055
+ })
1056
+ ]
1057
+ });
1058
+ };
1059
+ const PaginationButton = ({ page, children })=>{
1060
+ const [{ query }] = useQueryParams();
1061
+ // Remove the id from the pagination link, so that the history page can redirect
1062
+ // to the id of the first history version in the new page once it's loaded
1063
+ const { id: _id, ...queryRest } = query;
1064
+ return /*#__PURE__*/ jsx(Link$1, {
1065
+ to: {
1066
+ search: stringify({
1067
+ ...queryRest,
1068
+ page
1069
+ })
1070
+ },
1071
+ style: {
1072
+ textDecoration: 'none'
1073
+ },
1074
+ children: /*#__PURE__*/ jsx(Typography, {
1075
+ variant: "omega",
1076
+ textColor: "primary600",
1077
+ children: children
1078
+ })
1079
+ });
1080
+ };
1081
+ /* -------------------------------------------------------------------------------------------------
1082
+ * VersionsList
1083
+ * -----------------------------------------------------------------------------------------------*/ const VersionsList = ()=>{
1084
+ const { formatMessage } = useIntl();
1085
+ const { versions, page } = useHistoryContext('VersionsList', (state)=>({
1086
+ versions: state.versions,
1087
+ page: state.page
1088
+ }));
1089
+ return /*#__PURE__*/ jsxs(Flex, {
1090
+ shrink: 0,
1091
+ direction: "column",
1092
+ alignItems: "stretch",
1093
+ width: "320px",
1094
+ height: "100vh",
1095
+ background: "neutral0",
1096
+ borderColor: "neutral200",
1097
+ borderWidth: "0 0 0 1px",
1098
+ borderStyle: "solid",
1099
+ tag: "aside",
1100
+ children: [
1101
+ /*#__PURE__*/ jsxs(Flex, {
1102
+ direction: "row",
1103
+ justifyContent: "space-between",
1104
+ padding: 4,
1105
+ borderColor: "neutral200",
1106
+ borderWidth: "0 0 1px",
1107
+ borderStyle: "solid",
1108
+ tag: "header",
1109
+ children: [
1110
+ /*#__PURE__*/ jsx(Typography, {
1111
+ tag: "h2",
1112
+ variant: "omega",
1113
+ fontWeight: "semiBold",
1114
+ children: formatMessage({
1115
+ id: 'content-manager.history.sidebar.title',
1116
+ defaultMessage: 'Versions'
1117
+ })
1118
+ }),
1119
+ /*#__PURE__*/ jsx(Box, {
1120
+ background: "neutral150",
1121
+ hasRadius: true,
1122
+ padding: 1,
1123
+ children: /*#__PURE__*/ jsx(Typography, {
1124
+ variant: "sigma",
1125
+ textColor: "neutral600",
1126
+ children: versions.meta.pagination.total
1127
+ })
1128
+ })
1129
+ ]
1130
+ }),
1131
+ /*#__PURE__*/ jsxs(Box, {
1132
+ flex: 1,
1133
+ overflow: "auto",
1134
+ children: [
1135
+ versions.meta.pagination.page > 1 && /*#__PURE__*/ jsx(Box, {
1136
+ paddingTop: 4,
1137
+ textAlign: "center",
1138
+ children: /*#__PURE__*/ jsx(PaginationButton, {
1139
+ page: page - 1,
1140
+ children: formatMessage({
1141
+ id: 'content-manager.history.sidebar.show-newer',
1142
+ defaultMessage: 'Show newer versions'
1143
+ })
1144
+ })
1145
+ }),
1146
+ /*#__PURE__*/ jsx(Flex, {
1147
+ direction: "column",
1148
+ gap: 3,
1149
+ padding: 4,
1150
+ tag: "ul",
1151
+ alignItems: "stretch",
1152
+ children: versions.data.map((version, index)=>/*#__PURE__*/ jsx("li", {
1153
+ "aria-label": formatMessage({
1154
+ id: 'content-manager.history.sidebar.title.version-card.aria-label',
1155
+ defaultMessage: 'Version card'
1156
+ }),
1157
+ children: /*#__PURE__*/ jsx(VersionCard, {
1158
+ version: version,
1159
+ isCurrent: page === 1 && index === 0
1160
+ })
1161
+ }, version.id))
1162
+ }),
1163
+ versions.meta.pagination.page < versions.meta.pagination.pageCount && /*#__PURE__*/ jsx(Box, {
1164
+ paddingBottom: 4,
1165
+ textAlign: "center",
1166
+ children: /*#__PURE__*/ jsx(PaginationButton, {
1167
+ page: page + 1,
1168
+ children: formatMessage({
1169
+ id: 'content-manager.history.sidebar.show-older',
1170
+ defaultMessage: 'Show older versions'
1171
+ })
1172
+ })
1173
+ })
1174
+ ]
1175
+ })
1176
+ ]
1177
+ });
1178
+ };
1179
+
1180
+ const [HistoryProvider, useHistoryContext] = createContext('HistoryPage');
1181
+ /* -------------------------------------------------------------------------------------------------
1182
+ * HistoryPage
1183
+ * -----------------------------------------------------------------------------------------------*/ const HistoryPage = ()=>{
1184
+ const headerId = React.useId();
1185
+ const { formatMessage } = useIntl();
1186
+ const { slug, id: documentId, collectionType } = useParams();
1187
+ const { isLoading: isLoadingDocument, schema } = useDocument({
1188
+ collectionType: collectionType,
1189
+ model: slug
1190
+ });
1191
+ const { isLoading: isLoadingLayout, edit: { layout, settings: { displayName, mainField } } } = useDocumentLayout(slug);
1192
+ const { data: configuration, isLoading: isLoadingConfiguration } = useGetContentTypeConfigurationQuery(slug);
1193
+ // Parse state from query params
1194
+ const [{ query }] = useQueryParams();
1195
+ const { id: selectedVersionId, ...queryWithoutId } = query;
1196
+ const validQueryParamsWithoutId = buildValidParams(queryWithoutId);
1197
+ const page = validQueryParamsWithoutId.page ? Number(validQueryParamsWithoutId.page) : 1;
1198
+ const versionsResponse = useGetHistoryVersionsQuery({
1199
+ contentType: slug,
1200
+ ...documentId ? {
1201
+ documentId
1202
+ } : {},
1203
+ // Omit id since it's not needed by the endpoint and caused extra refetches
1204
+ ...validQueryParamsWithoutId
1205
+ }, {
1206
+ refetchOnMountOrArgChange: true
1207
+ });
1208
+ /**
1209
+ * When the page is first mounted, if there's already data in the cache, RTK has a fullfilled
1210
+ * status for the first render, right before it triggers a new request. This means the code
1211
+ * briefly reaches the part that redirects to the first history version (if none is set).
1212
+ * But since that data is stale, that means auto-selecting a version that may not be the most
1213
+ * recent. To avoid this, we identify through requestId if the query is stale despite the
1214
+ * fullfilled status, and show the loader in that case.
1215
+ * This means we essentially don't want cache. We always refetch when the page mounts, and
1216
+ * we always show the loader until we have the most recent data. That's fine for this page.
1217
+ */ const initialRequestId = React.useRef(versionsResponse.requestId);
1218
+ const isStaleRequest = versionsResponse.requestId === initialRequestId.current;
1219
+ /**
1220
+ * Ensure that we have the necessary data to render the page:
1221
+ * - slug for single types
1222
+ * - slug _and_ documentId for collection types
1223
+ */ if (!slug || collectionType === COLLECTION_TYPES && !documentId) {
1224
+ return /*#__PURE__*/ jsx(Navigate, {
1225
+ to: "/content-manager"
1226
+ });
1227
+ }
1228
+ if (isLoadingDocument || isLoadingLayout || versionsResponse.isFetching || isStaleRequest || isLoadingConfiguration) {
1229
+ return /*#__PURE__*/ jsx(Page.Loading, {});
1230
+ }
1231
+ // It was a success, handle empty data
1232
+ if (!versionsResponse.isError && !versionsResponse.data?.data?.length) {
1233
+ return /*#__PURE__*/ jsx(Fragment, {
1234
+ children: /*#__PURE__*/ jsx(Page.NoData, {
1235
+ action: /*#__PURE__*/ jsx(Link, {
1236
+ tag: NavLink,
1237
+ to: `/content-manager/${collectionType}/${slug}${documentId ? `/${documentId}` : ''}`,
1238
+ children: formatMessage({
1239
+ id: 'global.back',
1240
+ defaultMessage: 'Back'
1241
+ })
1242
+ })
1243
+ })
1244
+ });
1245
+ }
1246
+ // We have data, handle selected version
1247
+ if (versionsResponse.data?.data?.length && !selectedVersionId) {
1248
+ return /*#__PURE__*/ jsx(Navigate, {
1249
+ to: {
1250
+ search: stringify({
1251
+ ...query,
1252
+ id: versionsResponse.data.data[0].id
1253
+ })
1254
+ },
1255
+ replace: true
1256
+ });
1257
+ }
1258
+ const selectedVersion = versionsResponse.data?.data?.find((version)=>version.id.toString() === selectedVersionId);
1259
+ if (versionsResponse.isError || !layout || !schema || !selectedVersion || !configuration || // This should not happen as it's covered by versionsResponse.isError, but we need it for TS
1260
+ versionsResponse.data.error) {
1261
+ return /*#__PURE__*/ jsx(Page.Error, {});
1262
+ }
1263
+ return /*#__PURE__*/ jsxs(Fragment, {
1264
+ children: [
1265
+ /*#__PURE__*/ jsx(Page.Title, {
1266
+ children: formatMessage({
1267
+ id: 'content-manager.history.page-title',
1268
+ defaultMessage: '{contentType} history'
1269
+ }, {
1270
+ contentType: displayName
1271
+ })
1272
+ }),
1273
+ /*#__PURE__*/ jsx(HistoryProvider, {
1274
+ contentType: slug,
1275
+ id: documentId,
1276
+ schema: schema,
1277
+ layout: layout,
1278
+ configuration: configuration,
1279
+ selectedVersion: selectedVersion,
1280
+ versions: versionsResponse.data,
1281
+ page: page,
1282
+ mainField: mainField,
1283
+ children: /*#__PURE__*/ jsxs(Flex, {
1284
+ direction: "row",
1285
+ alignItems: "flex-start",
1286
+ children: [
1287
+ /*#__PURE__*/ jsxs(Main, {
1288
+ grow: 1,
1289
+ height: "100vh",
1290
+ background: "neutral100",
1291
+ paddingBottom: 6,
1292
+ overflow: "auto",
1293
+ labelledBy: headerId,
1294
+ children: [
1295
+ /*#__PURE__*/ jsx(VersionHeader, {
1296
+ headerId: headerId
1297
+ }),
1298
+ /*#__PURE__*/ jsx(VersionContent, {})
1299
+ ]
1300
+ }),
1301
+ /*#__PURE__*/ jsx(VersionsList, {})
1302
+ ]
1303
+ })
1304
+ })
1305
+ ]
1306
+ });
1307
+ };
1308
+ /* -------------------------------------------------------------------------------------------------
1309
+ * ProtectedHistoryPage
1310
+ * -----------------------------------------------------------------------------------------------*/ const ProtectedHistoryPageImpl = ()=>{
1311
+ const { slug } = useParams();
1312
+ const { permissions = [], isLoading, error } = useRBAC(PERMISSIONS.map((action)=>({
1313
+ action,
1314
+ subject: slug
1315
+ })));
1316
+ if (isLoading) {
1317
+ return /*#__PURE__*/ jsx(Page.Loading, {});
1318
+ }
1319
+ if (error || !slug) {
1320
+ return /*#__PURE__*/ jsx(Box, {
1321
+ height: "100vh",
1322
+ width: "100vw",
1323
+ position: "fixed",
1324
+ top: 0,
1325
+ left: 0,
1326
+ zIndex: 2,
1327
+ background: "neutral0",
1328
+ children: /*#__PURE__*/ jsx(Page.Error, {})
1329
+ });
1330
+ }
1331
+ return /*#__PURE__*/ jsx(Box, {
1332
+ height: "100vh",
1333
+ width: "100vw",
1334
+ position: "fixed",
1335
+ top: 0,
1336
+ left: 0,
1337
+ zIndex: 2,
1338
+ background: "neutral0",
1339
+ children: /*#__PURE__*/ jsx(Page.Protect, {
1340
+ permissions: permissions,
1341
+ children: ({ permissions })=>/*#__PURE__*/ jsx(DocumentRBAC, {
1342
+ permissions: permissions,
1343
+ children: /*#__PURE__*/ jsx(HistoryPage, {})
1344
+ })
1345
+ })
1346
+ });
1347
+ };
1348
+ const ProtectedHistoryPage = ()=>{
1349
+ return /*#__PURE__*/ jsx(Portal, {
1350
+ children: /*#__PURE__*/ jsx(FocusTrap, {
1351
+ children: /*#__PURE__*/ jsx(ProtectedHistoryPageImpl, {})
1352
+ })
1353
+ });
1354
+ };
1355
+
1356
+ export { HistoryProvider, ProtectedHistoryPage, useHistoryContext };
1357
+ //# sourceMappingURL=History-CD5uVchr.mjs.map