@strapi/admin 4.19.0 → 4.20.0

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 (242) hide show
  1. package/dist/_chunks/{AdminSeatInfo-qX2sM70P.js → AdminSeatInfo-H-PA6GSR.js} +12 -13
  2. package/dist/_chunks/{AdminSeatInfo-qX2sM70P.js.map → AdminSeatInfo-H-PA6GSR.js.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-RawgDWj-.mjs → AdminSeatInfo-i1rd-M1M.mjs} +11 -12
  4. package/dist/_chunks/{AdminSeatInfo-RawgDWj-.mjs.map → AdminSeatInfo-i1rd-M1M.mjs.map} +1 -1
  5. package/dist/_chunks/{AuthenticatedApp-NOp7zFwi.mjs → AuthenticatedApp-DKV6vPyB.mjs} +21 -21
  6. package/dist/_chunks/{AuthenticatedApp-NOp7zFwi.mjs.map → AuthenticatedApp-DKV6vPyB.mjs.map} +1 -1
  7. package/dist/_chunks/{AuthenticatedApp-Vz4hNfIH.js → AuthenticatedApp-MdjV7Ts7.js} +21 -21
  8. package/dist/_chunks/{AuthenticatedApp-Vz4hNfIH.js.map → AuthenticatedApp-MdjV7Ts7.js.map} +1 -1
  9. package/dist/_chunks/{CreateActionEE-wZ329zt5.mjs → CreateActionEE-HlihxdRg.mjs} +3 -4
  10. package/dist/_chunks/{CreateActionEE-wZ329zt5.mjs.map → CreateActionEE-HlihxdRg.mjs.map} +1 -1
  11. package/dist/_chunks/{CreateActionEE-75bc0oef.js → CreateActionEE-i0ieUuZH.js} +4 -5
  12. package/dist/_chunks/{CreateActionEE-75bc0oef.js.map → CreateActionEE-i0ieUuZH.js.map} +1 -1
  13. package/dist/_chunks/{CreatePage-XDNrGyIA.mjs → CreatePage-9ewfnebV.mjs} +6 -6
  14. package/dist/_chunks/{CreatePage-XDNrGyIA.mjs.map → CreatePage-9ewfnebV.mjs.map} +1 -1
  15. package/dist/_chunks/{CreatePage-mkf7nRXj.js → CreatePage-bMJJfB85.js} +6 -6
  16. package/dist/_chunks/{CreatePage-mkf7nRXj.js.map → CreatePage-bMJJfB85.js.map} +1 -1
  17. package/dist/_chunks/{CreatePage-QH1DLZW_.mjs → CreatePage-ccn27toh.mjs} +16 -15
  18. package/dist/_chunks/CreatePage-ccn27toh.mjs.map +1 -0
  19. package/dist/_chunks/{CreatePage-beMm-uZ-.mjs → CreatePage-fzTcqNI4.mjs} +3 -3
  20. package/dist/_chunks/{CreatePage-beMm-uZ-.mjs.map → CreatePage-fzTcqNI4.mjs.map} +1 -1
  21. package/dist/_chunks/{CreatePage-v5EbopPP.js → CreatePage-khHUga68.js} +17 -16
  22. package/dist/_chunks/CreatePage-khHUga68.js.map +1 -0
  23. package/dist/_chunks/{CreatePage-BgcO3AqI.js → CreatePage-lA4NieHN.js} +3 -3
  24. package/dist/_chunks/{CreatePage-BgcO3AqI.js.map → CreatePage-lA4NieHN.js.map} +1 -1
  25. package/dist/_chunks/{CreateView-Ixck31v9.mjs → CreateView-5rpxCdVv.mjs} +6 -6
  26. package/dist/_chunks/{CreateView-Ixck31v9.mjs.map → CreateView-5rpxCdVv.mjs.map} +1 -1
  27. package/dist/_chunks/{CreateView-eUzBn2dW.js → CreateView-8jUPMvKo.js} +6 -6
  28. package/dist/_chunks/{CreateView-eUzBn2dW.js.map → CreateView-8jUPMvKo.js.map} +1 -1
  29. package/dist/_chunks/{CreateView-Vu-6BJ7s.mjs → CreateView-QVnYlajx.mjs} +6 -6
  30. package/dist/_chunks/{CreateView-Vu-6BJ7s.mjs.map → CreateView-QVnYlajx.mjs.map} +1 -1
  31. package/dist/_chunks/{CreateView-zBya6KTw.js → CreateView-_fvOtf_3.js} +6 -6
  32. package/dist/_chunks/{CreateView-zBya6KTw.js.map → CreateView-_fvOtf_3.js.map} +1 -1
  33. package/dist/_chunks/{EditPage-J6Rf9oKf.mjs → EditPage--J1dsByF.mjs} +4 -4
  34. package/dist/_chunks/{EditPage-J6Rf9oKf.mjs.map → EditPage--J1dsByF.mjs.map} +1 -1
  35. package/dist/_chunks/{EditPage-ZjUUKii7.js → EditPage-DbHeF44w.js} +6 -6
  36. package/dist/_chunks/{EditPage-ZjUUKii7.js.map → EditPage-DbHeF44w.js.map} +1 -1
  37. package/dist/_chunks/{EditPage-getxBx6Z.js → EditPage-H0bd-bLV.js} +37 -36
  38. package/dist/_chunks/EditPage-H0bd-bLV.js.map +1 -0
  39. package/dist/_chunks/{EditPage-HXrULs9d.mjs → EditPage-RIOdcpEj.mjs} +12 -8
  40. package/dist/_chunks/EditPage-RIOdcpEj.mjs.map +1 -0
  41. package/dist/_chunks/{EditPage-lWoNefEi.mjs → EditPage-dvT_6puE.mjs} +6 -6
  42. package/dist/_chunks/{EditPage-lWoNefEi.mjs.map → EditPage-dvT_6puE.mjs.map} +1 -1
  43. package/dist/_chunks/{EditPage-GDphIluA.js → EditPage-hzNbluF9.js} +4 -4
  44. package/dist/_chunks/{EditPage-GDphIluA.js.map → EditPage-hzNbluF9.js.map} +1 -1
  45. package/dist/_chunks/{EditPage-ztZL8xrI.mjs → EditPage-wizrdxWV.mjs} +36 -35
  46. package/dist/_chunks/EditPage-wizrdxWV.mjs.map +1 -0
  47. package/dist/_chunks/{EditPage-buPVDS8T.js → EditPage-zl5z376F.js} +12 -9
  48. package/dist/_chunks/EditPage-zl5z376F.js.map +1 -0
  49. package/dist/_chunks/{EditView-GLiFYAUa.js → EditView-502rB20x.js} +4 -4
  50. package/dist/_chunks/{EditView-GLiFYAUa.js.map → EditView-502rB20x.js.map} +1 -1
  51. package/dist/_chunks/{EditView-gst3Q76D.mjs → EditView-C5CfkXdo.mjs} +4 -4
  52. package/dist/_chunks/{EditView-gst3Q76D.mjs.map → EditView-C5CfkXdo.mjs.map} +1 -1
  53. package/dist/_chunks/{EditViewPage-fv2kuIzu.mjs → EditViewPage-7PPdoPu1.mjs} +4 -4
  54. package/dist/_chunks/{EditViewPage-fv2kuIzu.mjs.map → EditViewPage-7PPdoPu1.mjs.map} +1 -1
  55. package/dist/_chunks/{EditViewPage-MPKkl8pj.js → EditViewPage-fk4NgJzL.js} +4 -4
  56. package/dist/_chunks/{EditViewPage-MPKkl8pj.js.map → EditViewPage-fk4NgJzL.js.map} +1 -1
  57. package/dist/_chunks/{EventsTable-vZK_CTQU.mjs → EventsTable-aTOj5Iwg.mjs} +6 -6
  58. package/dist/_chunks/{EventsTable-vZK_CTQU.mjs.map → EventsTable-aTOj5Iwg.mjs.map} +1 -1
  59. package/dist/_chunks/{EventsTable-CV7xm5zl.js → EventsTable-ya4-snYx.js} +6 -6
  60. package/dist/_chunks/{EventsTable-CV7xm5zl.js.map → EventsTable-ya4-snYx.js.map} +1 -1
  61. package/dist/_chunks/{HomePage-J8ZfepOZ.mjs → HomePage-Dk4AIcd3.mjs} +5 -5
  62. package/dist/_chunks/{HomePage-J8ZfepOZ.mjs.map → HomePage-Dk4AIcd3.mjs.map} +1 -1
  63. package/dist/_chunks/{HomePage-18iuexeb.js → HomePage-R3dDw217.js} +6 -7
  64. package/dist/_chunks/{HomePage-18iuexeb.js.map → HomePage-R3dDw217.js.map} +1 -1
  65. package/dist/_chunks/{HomePage-xgawLbxm.mjs → HomePage-XaLoeZiA.mjs} +6 -7
  66. package/dist/_chunks/{HomePage-xgawLbxm.mjs.map → HomePage-XaLoeZiA.mjs.map} +1 -1
  67. package/dist/_chunks/{HomePage-xJWXSyMe.js → HomePage-fdjaJVMD.js} +5 -5
  68. package/dist/_chunks/{HomePage-xJWXSyMe.js.map → HomePage-fdjaJVMD.js.map} +1 -1
  69. package/dist/_chunks/{InformationBoxEE-rU-_LUTN.mjs → InformationBoxEE-SBgONjAA.mjs} +3 -4
  70. package/dist/_chunks/{InformationBoxEE-rU-_LUTN.mjs.map → InformationBoxEE-SBgONjAA.mjs.map} +1 -1
  71. package/dist/_chunks/{InformationBoxEE-J_ms6Ox-.js → InformationBoxEE-b6YVRmro.js} +4 -5
  72. package/dist/_chunks/{InformationBoxEE-J_ms6Ox-.js.map → InformationBoxEE-b6YVRmro.js.map} +1 -1
  73. package/dist/_chunks/{InstalledPluginsPage-x83hq0Ar.js → InstalledPluginsPage-9nZMI2Qn.js} +3 -3
  74. package/dist/_chunks/{InstalledPluginsPage-x83hq0Ar.js.map → InstalledPluginsPage-9nZMI2Qn.js.map} +1 -1
  75. package/dist/_chunks/{InstalledPluginsPage-7WqMzI5n.mjs → InstalledPluginsPage-zCIdi0Uy.mjs} +3 -3
  76. package/dist/_chunks/{InstalledPluginsPage-7WqMzI5n.mjs.map → InstalledPluginsPage-zCIdi0Uy.mjs.map} +1 -1
  77. package/dist/_chunks/{Layout-zWj_kIbj.js → Layout-FxM9OGbY.js} +2 -2
  78. package/dist/_chunks/{Layout-zWj_kIbj.js.map → Layout-FxM9OGbY.js.map} +1 -1
  79. package/dist/_chunks/{Layout-PTbeYyQq.mjs → Layout-vOoP2x6r.mjs} +2 -2
  80. package/dist/_chunks/{Layout-PTbeYyQq.mjs.map → Layout-vOoP2x6r.mjs.map} +1 -1
  81. package/dist/_chunks/{ListPage-5APd7aTc.js → ListPage-8U_BR3wy.js} +7 -8
  82. package/dist/_chunks/{ListPage-5APd7aTc.js.map → ListPage-8U_BR3wy.js.map} +1 -1
  83. package/dist/_chunks/{ListPage-_R5YJkq6.mjs → ListPage-CxkXuNHa.mjs} +2 -2
  84. package/dist/_chunks/{ListPage-_R5YJkq6.mjs.map → ListPage-CxkXuNHa.mjs.map} +1 -1
  85. package/dist/_chunks/{ListPage-tVXsHAt1.mjs → ListPage-Uce7hZa2.mjs} +7 -8
  86. package/dist/_chunks/{ListPage-tVXsHAt1.mjs.map → ListPage-Uce7hZa2.mjs.map} +1 -1
  87. package/dist/_chunks/{ListPage-rQztZoE3.mjs → ListPage-aEm1evEt.mjs} +3 -3
  88. package/dist/_chunks/{ListPage-rQztZoE3.mjs.map → ListPage-aEm1evEt.mjs.map} +1 -1
  89. package/dist/_chunks/{ListPage-x3LRX4sC.js → ListPage-aLr1BW3o.js} +8 -8
  90. package/dist/_chunks/{ListPage-x3LRX4sC.js.map → ListPage-aLr1BW3o.js.map} +1 -1
  91. package/dist/_chunks/{ListPage-yZj3Yt5r.js → ListPage-aRr9SKZt.js} +7 -8
  92. package/dist/_chunks/{ListPage-yZj3Yt5r.js.map → ListPage-aRr9SKZt.js.map} +1 -1
  93. package/dist/_chunks/{ListPage-Ykm_JxVX.mjs → ListPage-fEoCz13v.mjs} +8 -8
  94. package/dist/_chunks/{ListPage-Ykm_JxVX.mjs.map → ListPage-fEoCz13v.mjs.map} +1 -1
  95. package/dist/_chunks/{ListPage-NSFhbGAZ.mjs → ListPage-h7pSwLwn.mjs} +6 -7
  96. package/dist/_chunks/{ListPage-NSFhbGAZ.mjs.map → ListPage-h7pSwLwn.mjs.map} +1 -1
  97. package/dist/_chunks/{ListPage-WQ27QMWQ.js → ListPage-hD4Bhhn0.js} +3 -3
  98. package/dist/_chunks/{ListPage-WQ27QMWQ.js.map → ListPage-hD4Bhhn0.js.map} +1 -1
  99. package/dist/_chunks/{ListPage-imJlOUis.mjs → ListPage-oQRoZt1p.mjs} +4 -4
  100. package/dist/_chunks/{ListPage-imJlOUis.mjs.map → ListPage-oQRoZt1p.mjs.map} +1 -1
  101. package/dist/_chunks/{ListPage-lG6n0cR5.js → ListPage-xkElwKJ3.js} +2 -2
  102. package/dist/_chunks/{ListPage-lG6n0cR5.js.map → ListPage-xkElwKJ3.js.map} +1 -1
  103. package/dist/_chunks/{ListPage-E1x-qrkF.js → ListPage-yCO88Fhj.js} +4 -4
  104. package/dist/_chunks/{ListPage-E1x-qrkF.js.map → ListPage-yCO88Fhj.js.map} +1 -1
  105. package/dist/_chunks/{ListView-C4_qI4I-.mjs → ListView-2uBQgcn1.mjs} +3 -3
  106. package/dist/_chunks/{ListView-C4_qI4I-.mjs.map → ListView-2uBQgcn1.mjs.map} +1 -1
  107. package/dist/_chunks/{ListView-2m4WvFKV.mjs → ListView-BiPc2Nc1.mjs} +3 -3
  108. package/dist/_chunks/{ListView-2m4WvFKV.mjs.map → ListView-BiPc2Nc1.mjs.map} +1 -1
  109. package/dist/_chunks/{ListView-3J54TIVz.js → ListView-f-iZxI3O.js} +3 -3
  110. package/dist/_chunks/{ListView-3J54TIVz.js.map → ListView-f-iZxI3O.js.map} +1 -1
  111. package/dist/_chunks/{ListView-X-jykpTn.js → ListView-zpxUYNEB.js} +3 -3
  112. package/dist/_chunks/{ListView-X-jykpTn.js.map → ListView-zpxUYNEB.js.map} +1 -1
  113. package/dist/_chunks/{Login-j7BE_1eG.mjs → Login-72rL2XBD.mjs} +2 -2
  114. package/dist/_chunks/{Login-j7BE_1eG.mjs.map → Login-72rL2XBD.mjs.map} +1 -1
  115. package/dist/_chunks/{Login-_3hyJ-yA.js → Login-GuAgUKyi.js} +2 -2
  116. package/dist/_chunks/{Login-_3hyJ-yA.js.map → Login-GuAgUKyi.js.map} +1 -1
  117. package/dist/_chunks/{MagicLinkEE-Mw3_4xMD.mjs → MagicLinkEE-N2zwtkqY.mjs} +4 -4
  118. package/dist/_chunks/{MagicLinkEE-Mw3_4xMD.mjs.map → MagicLinkEE-N2zwtkqY.mjs.map} +1 -1
  119. package/dist/_chunks/{MagicLinkEE-RBmakdh1.js → MagicLinkEE-swRqjFLM.js} +4 -4
  120. package/dist/_chunks/{MagicLinkEE-RBmakdh1.js.map → MagicLinkEE-swRqjFLM.js.map} +1 -1
  121. package/dist/_chunks/{MarketplacePage-d_pQoh5h.mjs → MarketplacePage-1GNjM--m.mjs} +3 -3
  122. package/dist/_chunks/{MarketplacePage-d_pQoh5h.mjs.map → MarketplacePage-1GNjM--m.mjs.map} +1 -1
  123. package/dist/_chunks/{MarketplacePage--qZW1C_M.js → MarketplacePage-Ie2Wpbov.js} +3 -3
  124. package/dist/_chunks/{MarketplacePage--qZW1C_M.js.map → MarketplacePage-Ie2Wpbov.js.map} +1 -1
  125. package/dist/_chunks/{Permissions-YjqLnqwc.mjs → Permissions-o4NR8n4u.mjs} +2 -2
  126. package/dist/_chunks/{Permissions-YjqLnqwc.mjs.map → Permissions-o4NR8n4u.mjs.map} +1 -1
  127. package/dist/_chunks/{Permissions-5Idi1hGl.js → Permissions-wGVKNPCK.js} +2 -2
  128. package/dist/_chunks/{Permissions-5Idi1hGl.js.map → Permissions-wGVKNPCK.js.map} +1 -1
  129. package/dist/_chunks/{ProfilePage-Sv3HPL8I.js → ProfilePage-JW3-kFIA.js} +3 -3
  130. package/dist/_chunks/{ProfilePage-Sv3HPL8I.js.map → ProfilePage-JW3-kFIA.js.map} +1 -1
  131. package/dist/_chunks/{ProfilePage-HEWNqKF6.mjs → ProfilePage-SsdeVqyx.mjs} +3 -3
  132. package/dist/_chunks/{ProfilePage-HEWNqKF6.mjs.map → ProfilePage-SsdeVqyx.mjs.map} +1 -1
  133. package/dist/_chunks/{ReviewWorkflowsColumn-nO_l9SSd.mjs → ReviewWorkflowsColumn-UM9eh2AB.mjs} +2 -2
  134. package/dist/_chunks/{ReviewWorkflowsColumn-nO_l9SSd.mjs.map → ReviewWorkflowsColumn-UM9eh2AB.mjs.map} +1 -1
  135. package/dist/_chunks/{ReviewWorkflowsColumn-Rs6ZsFMn.js → ReviewWorkflowsColumn-wZiAM18-.js} +2 -2
  136. package/dist/_chunks/{ReviewWorkflowsColumn-Rs6ZsFMn.js.map → ReviewWorkflowsColumn-wZiAM18-.js.map} +1 -1
  137. package/dist/_chunks/{SelectRoles-kY2cQn9t.mjs → SelectRoles-L0wvwsmn.mjs} +3 -3
  138. package/dist/_chunks/{SelectRoles-kY2cQn9t.mjs.map → SelectRoles-L0wvwsmn.mjs.map} +1 -1
  139. package/dist/_chunks/{SelectRoles-KatT_FIg.js → SelectRoles-Y4Dy5Ruk.js} +3 -3
  140. package/dist/_chunks/{SelectRoles-KatT_FIg.js.map → SelectRoles-Y4Dy5Ruk.js.map} +1 -1
  141. package/dist/_chunks/{SettingsPage-p9I4yN8G.mjs → SettingsPage-OF4cOZEX.mjs} +21 -21
  142. package/dist/_chunks/{SettingsPage-p9I4yN8G.mjs.map → SettingsPage-OF4cOZEX.mjs.map} +1 -1
  143. package/dist/_chunks/{SettingsPage-ZgiejZbl.js → SettingsPage-pN2zNJja.js} +21 -21
  144. package/dist/_chunks/{SettingsPage-ZgiejZbl.js.map → SettingsPage-pN2zNJja.js.map} +1 -1
  145. package/dist/_chunks/{SingleSignOnPage-hPJ-ktE8.mjs → SingleSignOnPage-CP90POdb.mjs} +3 -3
  146. package/dist/_chunks/{SingleSignOnPage-hPJ-ktE8.mjs.map → SingleSignOnPage-CP90POdb.mjs.map} +1 -1
  147. package/dist/_chunks/{SingleSignOnPage-uwvm37vG.js → SingleSignOnPage-fGCF236F.js} +3 -3
  148. package/dist/_chunks/{SingleSignOnPage-uwvm37vG.js.map → SingleSignOnPage-fGCF236F.js.map} +1 -1
  149. package/dist/_chunks/{TokenTypeSelect-g1CejzJb.js → TokenTypeSelect-E1lcj1HQ.js} +2 -2
  150. package/dist/_chunks/{TokenTypeSelect-g1CejzJb.js.map → TokenTypeSelect-E1lcj1HQ.js.map} +1 -1
  151. package/dist/_chunks/{TokenTypeSelect-Zug5LBS9.mjs → TokenTypeSelect-Gf6YWKV8.mjs} +2 -2
  152. package/dist/_chunks/{TokenTypeSelect-Zug5LBS9.mjs.map → TokenTypeSelect-Gf6YWKV8.mjs.map} +1 -1
  153. package/dist/_chunks/{apiTokens-3JqiL0FP.mjs → apiTokens-6eq7TOjP.mjs} +2 -2
  154. package/dist/_chunks/{apiTokens-3JqiL0FP.mjs.map → apiTokens-6eq7TOjP.mjs.map} +1 -1
  155. package/dist/_chunks/{apiTokens-mO11QotK.js → apiTokens-WHkSHzkL.js} +2 -2
  156. package/dist/_chunks/{apiTokens-mO11QotK.js.map → apiTokens-WHkSHzkL.js.map} +1 -1
  157. package/dist/_chunks/{constants-oJsAomZe.js → constants-6P0B98vR.js} +2 -2
  158. package/dist/_chunks/{constants-oJsAomZe.js.map → constants-6P0B98vR.js.map} +1 -1
  159. package/dist/_chunks/{constants-cgzxEZpW.js → constants-6_Ji9v3C.js} +6 -6
  160. package/dist/_chunks/{constants-cgzxEZpW.js.map → constants-6_Ji9v3C.js.map} +1 -1
  161. package/dist/_chunks/{constants-SQ2dZAhr.js → constants-7l193VJl.js} +2 -2
  162. package/dist/_chunks/{constants-SQ2dZAhr.js.map → constants-7l193VJl.js.map} +1 -1
  163. package/dist/_chunks/{constants-EWIwy2Lb.mjs → constants-QcAGYy1f.mjs} +2 -2
  164. package/dist/_chunks/{constants-EWIwy2Lb.mjs.map → constants-QcAGYy1f.mjs.map} +1 -1
  165. package/dist/_chunks/{constants-oLogFPZi.mjs → constants-V6ogbA_Q.mjs} +4 -4
  166. package/dist/_chunks/{constants-oLogFPZi.mjs.map → constants-V6ogbA_Q.mjs.map} +1 -1
  167. package/dist/_chunks/{constants-GJB9U_2a.js → constants-m2b3phv4.js} +4 -4
  168. package/dist/_chunks/{constants-GJB9U_2a.js.map → constants-m2b3phv4.js.map} +1 -1
  169. package/dist/_chunks/{constants-ZQGaS2zq.mjs → constants-rHR3EQdj.mjs} +2 -2
  170. package/dist/_chunks/{constants-ZQGaS2zq.mjs.map → constants-rHR3EQdj.mjs.map} +1 -1
  171. package/dist/_chunks/{constants-HNN5YvZM.mjs → constants-sJFx6aQR.mjs} +6 -6
  172. package/dist/_chunks/{constants-HNN5YvZM.mjs.map → constants-sJFx6aQR.mjs.map} +1 -1
  173. package/dist/_chunks/{en-NIBEogzH.mjs → en-ZBAy2GQ0.mjs} +7 -1
  174. package/dist/_chunks/{en-NIBEogzH.mjs.map → en-ZBAy2GQ0.mjs.map} +1 -1
  175. package/dist/_chunks/{en-JwrMNR-h.js → en-l5S8Gv-y.js} +7 -1
  176. package/dist/_chunks/{en-JwrMNR-h.js.map → en-l5S8Gv-y.js.map} +1 -1
  177. package/dist/_chunks/{index-LblG7sy4.mjs → index-KLPMzfLn.mjs} +416 -187
  178. package/dist/_chunks/index-KLPMzfLn.mjs.map +1 -0
  179. package/dist/_chunks/{index-3OoQJD2O.js → index-vftGzD-K.js} +413 -184
  180. package/dist/_chunks/index-vftGzD-K.js.map +1 -0
  181. package/dist/_chunks/{reviewWorkflows-VsENEtCZ.mjs → reviewWorkflows-2vhxGG5r.mjs} +12 -12
  182. package/dist/_chunks/reviewWorkflows-2vhxGG5r.mjs.map +1 -0
  183. package/dist/_chunks/{reviewWorkflows-Q34tLlgw.js → reviewWorkflows-Tj9WSo1x.js} +12 -12
  184. package/dist/_chunks/reviewWorkflows-Tj9WSo1x.js.map +1 -0
  185. package/dist/_chunks/{transferTokens-cNXBS34Y.js → transferTokens-EK2ohR1y.js} +2 -2
  186. package/dist/_chunks/{transferTokens-cNXBS34Y.js.map → transferTokens-EK2ohR1y.js.map} +1 -1
  187. package/dist/_chunks/{transferTokens-liO4cxgc.mjs → transferTokens-WwK-ykRw.mjs} +2 -2
  188. package/dist/_chunks/{transferTokens-liO4cxgc.mjs.map → transferTokens-WwK-ykRw.mjs.map} +1 -1
  189. package/dist/_chunks/{useAdminRoles-3IgPJu3y.js → useAdminRoles-NvHHOpQ2.js} +2 -2
  190. package/dist/_chunks/{useAdminRoles-3IgPJu3y.js.map → useAdminRoles-NvHHOpQ2.js.map} +1 -1
  191. package/dist/_chunks/{useAdminRoles-vkrNCJ0G.mjs → useAdminRoles-UhbPCKxf.mjs} +2 -2
  192. package/dist/_chunks/{useAdminRoles-vkrNCJ0G.mjs.map → useAdminRoles-UhbPCKxf.mjs.map} +1 -1
  193. package/dist/_chunks/{useContentTypes-yBTP01dT.js → useContentTypes-P2Cw5O0Q.js} +2 -2
  194. package/dist/_chunks/{useContentTypes-yBTP01dT.js.map → useContentTypes-P2Cw5O0Q.js.map} +1 -1
  195. package/dist/_chunks/{useContentTypes-hyaDV7vW.mjs → useContentTypes-xc06YDmc.mjs} +2 -2
  196. package/dist/_chunks/{useContentTypes-hyaDV7vW.mjs.map → useContentTypes-xc06YDmc.mjs.map} +1 -1
  197. package/dist/_chunks/{useLicenseLimitNotification-IGSEKF_A.mjs → useLicenseLimitNotification-EQiK5CGO.mjs} +2 -2
  198. package/dist/_chunks/{useLicenseLimitNotification-IGSEKF_A.mjs.map → useLicenseLimitNotification-EQiK5CGO.mjs.map} +1 -1
  199. package/dist/_chunks/{useLicenseLimitNotification-V_EIX5NN.js → useLicenseLimitNotification-g9A_uMdX.js} +3 -3
  200. package/dist/_chunks/{useLicenseLimitNotification-V_EIX5NN.js.map → useLicenseLimitNotification-g9A_uMdX.js.map} +1 -1
  201. package/dist/_chunks/{useReviewWorkflows-8dwtECQ8.js → useReviewWorkflows-0KWVUWjY.js} +2 -2
  202. package/dist/_chunks/{useReviewWorkflows-8dwtECQ8.js.map → useReviewWorkflows-0KWVUWjY.js.map} +1 -1
  203. package/dist/_chunks/{useReviewWorkflows-_5iMJ_bQ.mjs → useReviewWorkflows-MQTwtA8V.mjs} +2 -2
  204. package/dist/_chunks/{useReviewWorkflows-_5iMJ_bQ.mjs.map → useReviewWorkflows-MQTwtA8V.mjs.map} +1 -1
  205. package/dist/_chunks/{useWebhooks-1cD-Wjh6.mjs → useWebhooks-0S-LOa28.mjs} +2 -2
  206. package/dist/_chunks/{useWebhooks-1cD-Wjh6.mjs.map → useWebhooks-0S-LOa28.mjs.map} +1 -1
  207. package/dist/_chunks/{useWebhooks-WLn3OtSg.js → useWebhooks-H34bjR-D.js} +2 -2
  208. package/dist/_chunks/{useWebhooks-WLn3OtSg.js.map → useWebhooks-H34bjR-D.js.map} +1 -1
  209. package/dist/_chunks/{validateWorkflow-_OqTLm6C.js → validateWorkflow-9Lwvkrq0.js} +2 -2
  210. package/dist/_chunks/{validateWorkflow-_OqTLm6C.js.map → validateWorkflow-9Lwvkrq0.js.map} +1 -1
  211. package/dist/_chunks/{validateWorkflow-aPtygwAZ.mjs → validateWorkflow-rJbqicXR.mjs} +2 -2
  212. package/dist/_chunks/{validateWorkflow-aPtygwAZ.mjs.map → validateWorkflow-rJbqicXR.mjs.map} +1 -1
  213. package/dist/admin/index.js +2 -1
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +3 -2
  216. package/dist/admin/src/content-manager/components/BlocksInput/BlocksContent.d.ts +4 -3
  217. package/dist/admin/src/content-manager/components/BlocksInput/BlocksEditor.d.ts +3 -2
  218. package/dist/admin/src/content-manager/components/BlocksInput/BlocksInput.d.ts +2 -1
  219. package/dist/admin/src/content-manager/pages/ListView/components/AutoCloneFailureModal.d.ts +12 -0
  220. package/dist/admin/src/index.d.ts +1 -0
  221. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -2
  222. package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.d.ts +6 -2
  223. package/dist/ee/admin/src/services/reviewWorkflows.d.ts +5 -1
  224. package/dist/shared/contracts/admin.d.ts +7 -1
  225. package/dist/shared/contracts/admin.d.ts.map +1 -1
  226. package/dist/shared/contracts/review-workflows.d.ts +6 -2
  227. package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
  228. package/package.json +13 -13
  229. package/dist/_chunks/CreatePage-QH1DLZW_.mjs.map +0 -1
  230. package/dist/_chunks/CreatePage-v5EbopPP.js.map +0 -1
  231. package/dist/_chunks/EditPage-HXrULs9d.mjs.map +0 -1
  232. package/dist/_chunks/EditPage-buPVDS8T.js.map +0 -1
  233. package/dist/_chunks/EditPage-getxBx6Z.js.map +0 -1
  234. package/dist/_chunks/EditPage-ztZL8xrI.mjs.map +0 -1
  235. package/dist/_chunks/index-3OoQJD2O.js.map +0 -1
  236. package/dist/_chunks/index-LblG7sy4.mjs.map +0 -1
  237. package/dist/_chunks/reviewWorkflows-Q34tLlgw.js.map +0 -1
  238. package/dist/_chunks/reviewWorkflows-VsENEtCZ.mjs.map +0 -1
  239. package/dist/_chunks/useLicenseLimits-Du8knwsR.js +0 -41
  240. package/dist/_chunks/useLicenseLimits-Du8knwsR.js.map +0 -1
  241. package/dist/_chunks/useLicenseLimits-gAX0JFIu.mjs +0 -23
  242. package/dist/_chunks/useLicenseLimits-gAX0JFIu.mjs.map +0 -1
@@ -19,7 +19,7 @@ import axios, { isAxiosError, AxiosError } from "axios";
19
19
  import { createContext as createContext$1 } from "@radix-ui/react-context";
20
20
  import { Link as Link$1, SubNav, SubNavHeader, SubNavSections, SubNavSection, SubNavLink, Menu, MenuItem, LinkButton as LinkButton$3 } from "@strapi/design-system/v2";
21
21
  import * as Icons from "@strapi/icons";
22
- import { Eye, EyeStriked, Cross, ArrowRight, EmptyPictures, Drag, Pencil, CarretDown, Trash, Refresh, Cog, Plus, Number as Number$1, Boolean as Boolean$1, Date as Date$1, Email, Enumeration, Media, Relation, Text, Json, Uid, Component as Component$1, DynamicZone as DynamicZone$1, ArrowLeft, Check, PlusCircle, Code, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Picture, NumberList, BulletList, Paragraph, Quote, Link as Link$5, Collapse, Bold, Italic, Underline, StrikeThrough, Expand, CheckCircle, ExclamationMarkCircle, Loader, More, Dot, Layer, Duplicate, CrossCircle, Filter as Filter$1, EmptyDocuments } from "@strapi/icons";
22
+ import { Eye, EyeStriked, Cross, ArrowRight, EmptyPictures, Drag, Pencil, CarretDown, Trash, Refresh, Cog, Plus, Number as Number$1, Boolean as Boolean$1, Date as Date$1, Email, Enumeration, Media, Relation, Text, Json, Uid, Component as Component$1, DynamicZone as DynamicZone$1, ArrowLeft, Check, PlusCircle, Code, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Picture, NumberList, BulletList, Paragraph, Quote, Link as Link$5, Collapse, Bold, Italic, Underline, StrikeThrough, Expand, CheckCircle, ExclamationMarkCircle, Loader, More, Dot, Layer, ChevronRight, Duplicate, CrossCircle, Filter as Filter$1, EmptyDocuments } from "@strapi/icons";
23
23
  import { Formik, Form as Form$1 } from "formik";
24
24
  import camelCase from "lodash/camelCase";
25
25
  import styled, { useTheme, createGlobalStyle, css, keyframes } from "styled-components";
@@ -42,7 +42,7 @@ import PropTypes, { PropTypes as PropTypes$1 } from "prop-types";
42
42
  import { get as get$1, size } from "lodash/fp";
43
43
  import isNaN$1 from "lodash/isNaN";
44
44
  import take from "lodash/take";
45
- import { Transforms, Editor as Editor$1, Node, Element, Range, Path, Point, createEditor } from "slate";
45
+ import { Editor as Editor$1, Transforms, Node, Element, Range, Path, Point, createEditor } from "slate";
46
46
  import { withHistory } from "slate-history";
47
47
  import { useFocused, useSelected, ReactEditor, Editable, useSlate, Slate, withReact } from "slate-react";
48
48
  import * as Toolbar from "@radix-ui/react-toolbar";
@@ -2039,11 +2039,11 @@ const AuthPage = ({ hasAdmin }) => {
2039
2039
  const authType = match?.params.authType;
2040
2040
  const Login$1 = useEnterprise(
2041
2041
  Login,
2042
- async () => (await import("./Login-j7BE_1eG.mjs")).LoginEE
2042
+ async () => (await import("./Login-72rL2XBD.mjs")).LoginEE
2043
2043
  );
2044
2044
  const forms = useEnterprise(
2045
2045
  FORMS,
2046
- async () => (await import("./constants-ZQGaS2zq.mjs")).FORMS,
2046
+ async () => (await import("./constants-rHR3EQdj.mjs")).FORMS,
2047
2047
  {
2048
2048
  combine(ceForms, eeForms) {
2049
2049
  return {
@@ -2280,12 +2280,12 @@ const createRoute = (loadComponent, to, exact = false) => {
2280
2280
  };
2281
2281
  const ROUTES_CE = null;
2282
2282
  const AuthenticatedApp = React.lazy(
2283
- () => import("./AuthenticatedApp-NOp7zFwi.mjs").then((n) => n.A).then((mod) => ({ default: mod.AuthenticatedApp }))
2283
+ () => import("./AuthenticatedApp-DKV6vPyB.mjs").then((n) => n.A).then((mod) => ({ default: mod.AuthenticatedApp }))
2284
2284
  );
2285
2285
  const App$2 = ({ authLogo, menuLogo, showReleaseNotification, showTutorials }) => {
2286
2286
  const adminPermissions = useEnterprise(
2287
2287
  ADMIN_PERMISSIONS_CE,
2288
- async () => (await import("./constants-EWIwy2Lb.mjs")).ADMIN_PERMISSIONS_EE,
2288
+ async () => (await import("./constants-QcAGYy1f.mjs")).ADMIN_PERMISSIONS_EE,
2289
2289
  {
2290
2290
  combine(cePermissions, eePermissions) {
2291
2291
  return merge({}, cePermissions, eePermissions);
@@ -2295,7 +2295,7 @@ const App$2 = ({ authLogo, menuLogo, showReleaseNotification, showTutorials }) =
2295
2295
  );
2296
2296
  const routes = useEnterprise(
2297
2297
  ROUTES_CE,
2298
- async () => (await import("./constants-EWIwy2Lb.mjs")).ROUTES_EE,
2298
+ async () => (await import("./constants-QcAGYy1f.mjs")).ROUTES_EE,
2299
2299
  {
2300
2300
  defaultValue: []
2301
2301
  }
@@ -6673,6 +6673,7 @@ const ContentTypeFormWrapper = ({
6673
6673
  dispatch(resetProps$2());
6674
6674
  };
6675
6675
  }, [dispatch]);
6676
+ const validParams = React.useMemo(() => buildValidGetParams(query), [query]);
6676
6677
  React.useEffect(() => {
6677
6678
  const CancelToken = axios.CancelToken;
6678
6679
  const source = CancelToken.source();
@@ -6684,7 +6685,7 @@ const ContentTypeFormWrapper = ({
6684
6685
  try {
6685
6686
  const { data: data2 } = await fetchClient.get(requestURL, {
6686
6687
  cancelToken: source2.token,
6687
- params: buildValidGetParams(query)
6688
+ params: validParams
6688
6689
  });
6689
6690
  dispatch(getDataSucceeded$1(cleanReceivedData(data2)));
6690
6691
  } catch (err) {
@@ -6733,7 +6734,7 @@ const ContentTypeFormWrapper = ({
6733
6734
  redirectionLink,
6734
6735
  toggleNotification,
6735
6736
  isSingleType,
6736
- query
6737
+ validParams
6737
6738
  ]);
6738
6739
  const displayErrors = React.useCallback(
6739
6740
  (err) => {
@@ -6788,7 +6789,7 @@ const ContentTypeFormWrapper = ({
6788
6789
  isCloning ? `/content-manager/${collectionType}/${slug}/clone/${origin}` : `/content-manager/${collectionType}/${slug}`,
6789
6790
  isCloning ? restBody : body,
6790
6791
  {
6791
- params: query
6792
+ params: validParams
6792
6793
  }
6793
6794
  );
6794
6795
  trackUsage("didCreateEntry", trackerProperty);
@@ -6820,7 +6821,7 @@ const ContentTypeFormWrapper = ({
6820
6821
  put,
6821
6822
  post,
6822
6823
  slug,
6823
- query,
6824
+ validParams,
6824
6825
  trackUsage,
6825
6826
  toggleNotification,
6826
6827
  setCurrentStep,
@@ -6857,7 +6858,11 @@ const ContentTypeFormWrapper = ({
6857
6858
  trackUsage("willPublishEntry");
6858
6859
  dispatch(setStatus("publish-pending"));
6859
6860
  const { data: data2 } = await post(
6860
- isSingleType ? `/content-manager/${collectionType}/${slug}/actions/publish` : `/content-manager/${collectionType}/${slug}/${id}/actions/publish`
6861
+ isSingleType ? `/content-manager/${collectionType}/${slug}/actions/publish` : `/content-manager/${collectionType}/${slug}/${id}/actions/publish`,
6862
+ void 0,
6863
+ {
6864
+ params: validParams
6865
+ }
6861
6866
  );
6862
6867
  trackUsage("didPublishEntry");
6863
6868
  dispatch(submitSucceeded(cleanReceivedData(data2)));
@@ -6882,6 +6887,7 @@ const ContentTypeFormWrapper = ({
6882
6887
  collectionType,
6883
6888
  slug,
6884
6889
  id,
6890
+ validParams,
6885
6891
  cleanReceivedData,
6886
6892
  toggleNotification,
6887
6893
  displayErrors
@@ -6892,7 +6898,7 @@ const ContentTypeFormWrapper = ({
6892
6898
  trackUsage("willEditEntry", trackerProperty);
6893
6899
  dispatch(setStatus("submit-pending"));
6894
6900
  const { data: data2 } = await put(`/content-manager/${collectionType}/${slug}/${id}`, body, {
6895
- params: query
6901
+ params: validParams
6896
6902
  });
6897
6903
  trackUsage("didEditEntry", trackerProperty);
6898
6904
  toggleNotification({
@@ -6919,6 +6925,7 @@ const ContentTypeFormWrapper = ({
6919
6925
  collectionType,
6920
6926
  slug,
6921
6927
  id,
6928
+ validParams,
6922
6929
  toggleNotification,
6923
6930
  queryClient2,
6924
6931
  cleanReceivedData,
@@ -6930,7 +6937,11 @@ const ContentTypeFormWrapper = ({
6930
6937
  try {
6931
6938
  trackUsage("willUnpublishEntry");
6932
6939
  const { data: data2 } = await post(
6933
- isSingleType ? `/content-manager/${collectionType}/${slug}/actions/unpublish` : `/content-manager/${collectionType}/${slug}/${id}/actions/unpublish`
6940
+ isSingleType ? `/content-manager/${collectionType}/${slug}/actions/unpublish` : `/content-manager/${collectionType}/${slug}/${id}/actions/unpublish`,
6941
+ void 0,
6942
+ {
6943
+ params: validParams
6944
+ }
6934
6945
  );
6935
6946
  trackUsage("didUnpublishEntry");
6936
6947
  toggleNotification({
@@ -6954,6 +6965,7 @@ const ContentTypeFormWrapper = ({
6954
6965
  collectionType,
6955
6966
  slug,
6956
6967
  id,
6968
+ validParams,
6957
6969
  toggleNotification,
6958
6970
  cleanReceivedData,
6959
6971
  displayErrors
@@ -7277,12 +7289,16 @@ const Hint = ({ id, error, name: name2, hint = "" }) => {
7277
7289
  return /* @__PURE__ */ jsx(Typography, { as: "p", variant: "pi", id: `${id || name2}-hint`, textColor: "neutral600", children: hint });
7278
7290
  };
7279
7291
  const baseHandleConvert = (editor, attributesToSet) => {
7292
+ const [_, lastNodePath] = Editor$1.last(editor, []);
7280
7293
  Transforms.unwrapNodes(editor, {
7281
7294
  match: (node) => !Editor$1.isEditor(node) && node.type === "list",
7282
- split: true
7295
+ split: true,
7296
+ at: editor.selection ?? lastNodePath
7283
7297
  });
7298
+ const [, updatedLastNodePath] = Editor$1.last(editor, []);
7284
7299
  const entry = Editor$1.above(editor, {
7285
- match: (node) => !Editor$1.isEditor(node) && node.type !== "text" && node.type !== "link"
7300
+ match: (node) => !Editor$1.isEditor(node) && node.type !== "text" && node.type !== "link",
7301
+ at: editor.selection ?? updatedLastNodePath
7286
7302
  });
7287
7303
  if (!entry || Editor$1.isEditor(entry[0])) {
7288
7304
  return;
@@ -7842,7 +7858,7 @@ const linkBlocks = {
7842
7858
  const listStyle = css`
7843
7859
  display: flex;
7844
7860
  flex-direction: column;
7845
- gap: ${({ theme }) => theme.spaces[1]};
7861
+ gap: ${({ theme }) => theme.spaces[2]};
7846
7862
  margin-inline-start: ${({ theme }) => theme.spaces[0]};
7847
7863
  margin-inline-end: ${({ theme }) => theme.spaces[0]};
7848
7864
  padding-inline-start: ${({ theme }) => theme.spaces[2]};
@@ -7858,21 +7874,26 @@ const listStyle = css`
7858
7874
  }
7859
7875
  `;
7860
7876
  const Orderedlist = styled.ol`
7861
- list-style-type: decimal;
7877
+ list-style-type: ${(props) => props.listStyleType};
7862
7878
  ${listStyle}
7863
7879
  `;
7864
7880
  const Unorderedlist = styled.ul`
7865
- list-style-type: disc;
7881
+ list-style-type: ${(props) => props.listStyleType};
7866
7882
  ${listStyle}
7867
7883
  `;
7884
+ const orderedStyles = ["decimal", "lower-alpha", "upper-roman"];
7885
+ const unorderedStyles = ["disc", "circle", "square"];
7868
7886
  const List = ({ attributes, children, element }) => {
7869
7887
  if (!isListNode$1(element)) {
7870
7888
  return null;
7871
7889
  }
7890
+ const listStyles = element.format === "ordered" ? orderedStyles : unorderedStyles;
7891
+ const nextIndex = (element.indentLevel || 0) % listStyles.length;
7892
+ const listStyleType = listStyles[nextIndex];
7872
7893
  if (element.format === "ordered") {
7873
- return /* @__PURE__ */ jsx(Orderedlist, { ...attributes, children });
7894
+ return /* @__PURE__ */ jsx(Orderedlist, { listStyleType, ...attributes, children });
7874
7895
  }
7875
- return /* @__PURE__ */ jsx(Unorderedlist, { ...attributes, children });
7896
+ return /* @__PURE__ */ jsx(Unorderedlist, { listStyleType, ...attributes, children });
7876
7897
  };
7877
7898
  const replaceListWithEmptyBlock = (editor, currentListPath) => {
7878
7899
  Transforms.removeNodes(editor, { at: currentListPath });
@@ -7897,27 +7918,44 @@ const handleBackspaceKeyOnList = (editor, event) => {
7897
7918
  const [currentListItem, currentListItemPath] = Editor$1.parent(editor, editor.selection.anchor);
7898
7919
  const [currentList, currentListPath] = Editor$1.parent(editor, currentListItemPath);
7899
7920
  const isListEmpty = currentList.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
7900
- const isNodeStart = Editor$1.isStart(editor, editor.selection.anchor, currentListItemPath);
7901
- const isFocusAtTheBeginningOfAChild = editor.selection.focus.offset === 0 && editor.selection.focus.path.at(-1) === 0;
7921
+ const isListItemEmpty = currentListItem.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
7922
+ const isFocusAtTheBeginningOfAChild = editor.selection.focus.offset === 0 && editor.selection.focus.path.at(-2) === 0;
7902
7923
  if (isListEmpty) {
7903
- event.preventDefault();
7904
- replaceListWithEmptyBlock(editor, currentListPath);
7905
- } else if (isNodeStart) {
7906
- Transforms.liftNodes(editor, {
7907
- match: (node) => !Editor$1.isEditor(node) && node.type === "list-item"
7924
+ const parentListEntry = Editor$1.above(editor, {
7925
+ at: currentListPath,
7926
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list"
7908
7927
  });
7909
- Transforms.setNodes(
7910
- editor,
7911
- { type: "paragraph" },
7912
- {
7913
- hanging: true
7914
- }
7915
- );
7928
+ if (!parentListEntry) {
7929
+ event.preventDefault();
7930
+ replaceListWithEmptyBlock(editor, currentListPath);
7931
+ }
7916
7932
  } else if (isFocusAtTheBeginningOfAChild) {
7917
7933
  Transforms.liftNodes(editor, {
7918
7934
  match: (node) => !Editor$1.isEditor(node) && node.type === "list-item"
7919
7935
  });
7920
7936
  Transforms.setNodes(editor, { type: "paragraph" });
7937
+ } else if (isListItemEmpty) {
7938
+ const previousEntry = Editor$1.previous(editor, {
7939
+ at: currentListItemPath
7940
+ });
7941
+ const nextEntry = Editor$1.next(editor, {
7942
+ at: currentListItemPath
7943
+ });
7944
+ if (previousEntry && nextEntry) {
7945
+ event.preventDefault();
7946
+ Transforms.removeNodes(editor, {
7947
+ at: currentListItemPath
7948
+ });
7949
+ const [previousList] = previousEntry;
7950
+ const [nextList] = nextEntry;
7951
+ if (!Editor$1.isEditor(previousList) && !isText$1(previousList) && isListNode$1(previousList) && !Editor$1.isEditor(nextList) && !isText$1(nextList) && isListNode$1(nextList)) {
7952
+ if (previousList.type === "list" && nextList.type === "list" && previousList.format === nextList.format && previousList.indentLevel === nextList.indentLevel) {
7953
+ Transforms.mergeNodes(editor, {
7954
+ at: currentListItemPath
7955
+ });
7956
+ }
7957
+ }
7958
+ }
7921
7959
  }
7922
7960
  };
7923
7961
  const handleEnterKeyOnList = (editor) => {
@@ -7931,17 +7969,40 @@ const handleEnterKeyOnList = (editor) => {
7931
7969
  const [currentList, currentListPath] = Editor$1.parent(editor, currentListItemPath);
7932
7970
  const isListEmpty = currentList.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
7933
7971
  const isListItemEmpty = currentListItem.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
7972
+ const isFocusAtTheBeginningOfAChild = editor.selection.focus.offset === 0 && editor.selection.focus.path.at(-1) === 0;
7934
7973
  if (isListEmpty) {
7935
7974
  replaceListWithEmptyBlock(editor, currentListPath);
7975
+ } else if (isFocusAtTheBeginningOfAChild && !isListItemEmpty) {
7976
+ const currentNode = Editor$1.above(editor, { at: editor.selection.anchor });
7977
+ Transforms.insertNodes(editor, { type: "list-item", children: [{ type: "text", text: "" }] });
7978
+ if (currentNode) {
7979
+ const path = currentNode[1];
7980
+ const updatedPath = [...path.slice(0, -1), path[path.length - 1] + 1];
7981
+ Transforms.select(editor, {
7982
+ anchor: { path: updatedPath.concat(0), offset: 0 },
7983
+ focus: { path: updatedPath.concat(0), offset: 0 }
7984
+ });
7985
+ }
7936
7986
  } else if (isListItemEmpty) {
7937
- Transforms.removeNodes(editor, { at: currentListItemPath });
7938
- const listNodeEntry = Editor$1.above(editor, {
7939
- match: (node) => !Editor$1.isEditor(node) && node.type === "list"
7940
- });
7941
- if (!listNodeEntry) {
7942
- return;
7987
+ if (!Editor$1.isEditor(currentList) && isListNode$1(currentList) && currentList?.indentLevel && currentList.indentLevel > 0) {
7988
+ const previousIndentLevel = currentList.indentLevel - 1;
7989
+ const parentListNodeEntry = Editor$1.above(editor, {
7990
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list" && (node.indentLevel || 0) === previousIndentLevel
7991
+ });
7992
+ if (parentListNodeEntry) {
7993
+ const modifiedPath = currentListItemPath.slice(0, -1);
7994
+ if (modifiedPath.length > 0) {
7995
+ modifiedPath[modifiedPath.length - 1] += 1;
7996
+ }
7997
+ Transforms.moveNodes(editor, {
7998
+ at: currentListItemPath,
7999
+ to: modifiedPath
8000
+ });
8001
+ return;
8002
+ }
7943
8003
  }
7944
- const createdParagraphPath = Path.next(listNodeEntry[1]);
8004
+ Transforms.removeNodes(editor, { at: currentListItemPath });
8005
+ const createdParagraphPath = Path.next(currentListPath);
7945
8006
  Transforms.insertNodes(
7946
8007
  editor,
7947
8008
  {
@@ -7966,6 +8027,37 @@ const handleConvertToList = (editor, format) => {
7966
8027
  return;
7967
8028
  Transforms.wrapNodes(editor, { type: "list", format, children: [] }, { at: convertedPath });
7968
8029
  };
8030
+ const handleTabOnList = (editor) => {
8031
+ const currentListItemEntry = Editor$1.above(editor, {
8032
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list-item"
8033
+ });
8034
+ if (!currentListItemEntry || !editor.selection) {
8035
+ return;
8036
+ }
8037
+ const [currentListItem, currentListItemPath] = currentListItemEntry;
8038
+ const [currentList] = Editor$1.parent(editor, currentListItemPath);
8039
+ if (currentListItem === currentList.children[0])
8040
+ return;
8041
+ const currentListItemIndex = currentList.children.findIndex((item) => item === currentListItem);
8042
+ const previousNode = currentList.children[currentListItemIndex - 1];
8043
+ if (previousNode.type === "list") {
8044
+ const nodePath = ReactEditor.findPath(editor, previousNode);
8045
+ const insertAtPath = previousNode.children.length;
8046
+ Transforms.moveNodes(editor, {
8047
+ at: currentListItemPath,
8048
+ to: nodePath.concat(insertAtPath)
8049
+ });
8050
+ return;
8051
+ }
8052
+ if (!Editor$1.isEditor(currentList) && isListNode$1(currentList)) {
8053
+ Transforms.wrapNodes(editor, {
8054
+ type: "list",
8055
+ format: currentList.format,
8056
+ indentLevel: (currentList.indentLevel || 0) + 1,
8057
+ children: []
8058
+ });
8059
+ }
8060
+ };
7969
8061
  const listBlocks = {
7970
8062
  "list-ordered": {
7971
8063
  renderElement: (props) => /* @__PURE__ */ jsx(List, { ...props }),
@@ -7979,6 +8071,7 @@ const listBlocks = {
7979
8071
  handleConvert: (editor) => handleConvertToList(editor, "ordered"),
7980
8072
  handleEnterKey: handleEnterKeyOnList,
7981
8073
  handleBackspaceKey: handleBackspaceKeyOnList,
8074
+ handleTab: handleTabOnList,
7982
8075
  snippets: ["1."]
7983
8076
  },
7984
8077
  "list-unordered": {
@@ -7993,6 +8086,7 @@ const listBlocks = {
7993
8086
  handleConvert: (editor) => handleConvertToList(editor, "unordered"),
7994
8087
  handleEnterKey: handleEnterKeyOnList,
7995
8088
  handleBackspaceKey: handleBackspaceKeyOnList,
8089
+ handleTab: handleTabOnList,
7996
8090
  snippets: ["-", "*", "+"]
7997
8091
  },
7998
8092
  "list-item": {
@@ -8193,7 +8287,7 @@ const BlocksDropdown = () => {
8193
8287
  return block.isInBlocksSelector ? [...currentKeys, key] : currentKeys;
8194
8288
  }, []);
8195
8289
  const [blockSelected, setBlockSelected] = React.useState("paragraph");
8196
- const selectOption = (optionKey) => {
8290
+ const handleSelect = (optionKey) => {
8197
8291
  if (!isSelectorBlockKey(optionKey)) {
8198
8292
  return;
8199
8293
  }
@@ -8213,6 +8307,19 @@ const BlocksDropdown = () => {
8213
8307
  } else if (!editor.selection && editorIsEmpty) {
8214
8308
  Transforms.select(editor, Editor$1.start(editor, [0, 0]));
8215
8309
  }
8310
+ const currentListEntry = Editor$1.above(editor, {
8311
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list"
8312
+ });
8313
+ if (currentListEntry && ["list-ordered", "list-unordered"].includes(optionKey)) {
8314
+ const [currentList, currentListPath] = currentListEntry;
8315
+ const format = optionKey === "list-ordered" ? "ordered" : "unordered";
8316
+ if (!Editor$1.isEditor(currentList) && isListNode(currentList)) {
8317
+ if (currentList.format !== format) {
8318
+ Transforms.setNodes(editor, { format }, { at: currentListPath });
8319
+ }
8320
+ }
8321
+ return;
8322
+ }
8216
8323
  const maybeRenderModal = blocks[optionKey].handleConvert?.(editor);
8217
8324
  handleConversionResult(maybeRenderModal);
8218
8325
  setBlockSelected(optionKey);
@@ -8221,12 +8328,28 @@ const BlocksDropdown = () => {
8221
8328
  const preventSelectFocus = (e) => e.preventDefault();
8222
8329
  React.useEffect(() => {
8223
8330
  if (editor.selection) {
8224
- const [anchorNode] = Editor$1.parent(editor, editor.selection.anchor, {
8225
- edge: "start",
8226
- depth: 2
8331
+ let selectedNode;
8332
+ const currentListEntry = Editor$1.above(editor, {
8333
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list",
8334
+ at: editor.selection.anchor
8227
8335
  });
8336
+ if (currentListEntry) {
8337
+ const [currentList] = currentListEntry;
8338
+ selectedNode = currentList;
8339
+ } else {
8340
+ const [anchorNode] = Editor$1.parent(editor, editor.selection.anchor, {
8341
+ edge: "start",
8342
+ depth: 2
8343
+ });
8344
+ if (anchorNode.type === "list-item") {
8345
+ Transforms.setNodes(editor, { type: "paragraph" });
8346
+ selectedNode = { ...anchorNode, type: "paragraph" };
8347
+ } else {
8348
+ selectedNode = anchorNode;
8349
+ }
8350
+ }
8228
8351
  const anchorBlockKey = getKeys(blocks).find(
8229
- (blockKey) => !Editor$1.isEditor(anchorNode) && blocks[blockKey].matchNode(anchorNode)
8352
+ (blockKey) => !Editor$1.isEditor(selectedNode) && blocks[blockKey].matchNode(selectedNode)
8230
8353
  );
8231
8354
  if (anchorBlockKey && anchorBlockKey !== blockSelected) {
8232
8355
  setBlockSelected(anchorBlockKey);
@@ -8238,7 +8361,7 @@ const BlocksDropdown = () => {
8238
8361
  SingleSelect,
8239
8362
  {
8240
8363
  startIcon: /* @__PURE__ */ jsx(Icon, { as: blocks[blockSelected].icon }),
8241
- onChange: selectOption,
8364
+ onChange: handleSelect,
8242
8365
  placeholder: formatMessage(blocks[blockSelected].label),
8243
8366
  value: blockSelected,
8244
8367
  onCloseAutoFocus: preventSelectFocus,
@@ -8277,75 +8400,57 @@ const BlockOption = ({ value, icon, label, blockSelected }) => {
8277
8400
  const isListNode = (node) => {
8278
8401
  return Node.isNode(node) && !Editor$1.isEditor(node) && node.type === "list";
8279
8402
  };
8280
- const isListActive = (editor, matchNode) => {
8281
- const { selection } = editor;
8282
- if (!selection)
8283
- return false;
8284
- const [match] = Array.from(
8285
- Editor$1.nodes(editor, {
8286
- at: Editor$1.unhangRange(editor, selection),
8287
- match: matchNode
8288
- })
8289
- );
8290
- return Boolean(match);
8291
- };
8292
- const toggleList = (editor, isActive, format) => {
8293
- if (editor.selection) {
8294
- Transforms.unwrapNodes(editor, {
8295
- match: (node) => isListNode(node) && ["ordered", "unordered"].includes(node.format),
8296
- split: true
8297
- });
8298
- Transforms.setNodes(editor, {
8299
- type: isActive ? "paragraph" : "list-item"
8403
+ const ListButton = ({ block, format }) => {
8404
+ const { editor, disabled, blocks } = useBlocksEditorContext("ListButton");
8405
+ const isListActive = () => {
8406
+ if (!editor.selection)
8407
+ return false;
8408
+ const currentListEntry = Editor$1.above(editor, {
8409
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list",
8410
+ at: editor.selection.anchor
8300
8411
  });
8301
- if (!isActive) {
8302
- const block = { type: "list", format, children: [] };
8303
- Transforms.wrapNodes(editor, block);
8412
+ if (currentListEntry) {
8413
+ const [currentList] = currentListEntry;
8414
+ if (!Editor$1.isEditor(currentList) && isListNode(currentList) && currentList.format === format)
8415
+ return true;
8304
8416
  }
8305
- } else {
8306
- const [, lastNodePath] = Editor$1.last(editor, []);
8307
- const [parentNode] = Editor$1.parent(editor, lastNodePath);
8308
- Transforms.removeNodes(editor, {
8309
- voids: true,
8310
- hanging: true,
8311
- at: {
8312
- anchor: { path: lastNodePath, offset: 0 },
8313
- focus: { path: lastNodePath, offset: 0 }
8314
- }
8315
- });
8316
- Transforms.insertNodes(
8317
- editor,
8318
- {
8319
- type: isActive ? "paragraph" : "list-item",
8320
- children: [...parentNode.children]
8321
- },
8322
- {
8323
- at: [lastNodePath[0]],
8324
- select: true
8417
+ return false;
8418
+ };
8419
+ const toggleList = (format2) => {
8420
+ let currentListEntry;
8421
+ if (editor.selection) {
8422
+ currentListEntry = Editor$1.above(editor, {
8423
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list"
8424
+ });
8425
+ } else {
8426
+ const [_, lastNodePath] = Editor$1.last(editor, []);
8427
+ currentListEntry = Editor$1.above(editor, {
8428
+ match: (node) => !Editor$1.isEditor(node) && node.type === "list",
8429
+ at: lastNodePath
8430
+ });
8431
+ }
8432
+ if (!currentListEntry) {
8433
+ blocks[`list-${format2}`].handleConvert(editor);
8434
+ return;
8435
+ }
8436
+ const [currentList, currentListPath] = currentListEntry;
8437
+ if (!Editor$1.isEditor(currentList) && isListNode(currentList)) {
8438
+ if (currentList.format !== format2) {
8439
+ Transforms.setNodes(editor, { format: format2 }, { at: currentListPath });
8440
+ } else {
8441
+ blocks["paragraph"].handleConvert(editor);
8325
8442
  }
8326
- );
8327
- if (!isActive) {
8328
- const block = { type: "list", format, children: [] };
8329
- Transforms.wrapNodes(editor, block);
8330
8443
  }
8331
- }
8332
- };
8333
- const ListButton = ({ block, format }) => {
8334
- const { editor, disabled } = useBlocksEditorContext("ListButton");
8335
- const { icon, matchNode, label } = block;
8336
- const isActive = isListActive(
8337
- editor,
8338
- (node) => !Editor$1.isEditor(node) && node.type !== "text" && matchNode(node)
8339
- );
8444
+ };
8340
8445
  return /* @__PURE__ */ jsx(
8341
8446
  ToolbarButton,
8342
8447
  {
8343
- icon,
8448
+ icon: block.icon,
8344
8449
  name: format,
8345
- label,
8346
- isActive,
8450
+ label: block.label,
8451
+ isActive: isListActive(),
8347
8452
  disabled,
8348
- handleClick: () => toggleList(editor, isActive, format)
8453
+ handleClick: () => toggleList(format)
8349
8454
  }
8350
8455
  );
8351
8456
  };
@@ -8530,8 +8635,6 @@ const DragAndDropElement = ({
8530
8635
  const [dragVisibility, setDragVisibility] = React.useState("hidden");
8531
8636
  const handleMoveBlock = React.useCallback(
8532
8637
  (newIndex, currentIndex) => {
8533
- const [newNode] = Editor$1.node(editor, newIndex);
8534
- const [draggedNode] = Editor$1.node(editor, currentIndex);
8535
8638
  Transforms.moveNodes(editor, {
8536
8639
  at: currentIndex,
8537
8640
  to: newIndex
@@ -8550,50 +8653,6 @@ const DragAndDropElement = ({
8550
8653
  }
8551
8654
  )
8552
8655
  );
8553
- if (Element.isElement(newNode) && Element.isElement(draggedNode)) {
8554
- if (newNode.type === "list-item" && draggedNode.type !== "list-item") {
8555
- Transforms.setNodes(
8556
- editor,
8557
- { ...getAttributesToClear(draggedNode), type: "list-item" },
8558
- {
8559
- at: newIndex[0] > currentIndex[0] ? [newIndex[0] - 1, ...newIndex.slice(1)] : newIndex
8560
- }
8561
- );
8562
- if (newIndex[0] > currentIndex[0]) {
8563
- Transforms.moveNodes(editor, {
8564
- at: [newIndex[0] - 1, ...newIndex.slice(1)],
8565
- to: [newIndex[0] - 1, newIndex[1] + 1, ...newIndex.slice(2)]
8566
- });
8567
- }
8568
- }
8569
- if (newNode.type !== "list-item" && draggedNode.type === "list-item") {
8570
- Transforms.setNodes(editor, { type: "paragraph" }, { at: newIndex });
8571
- if (newIndex[0] < currentIndex[0]) {
8572
- currentIndex[0] += 1;
8573
- }
8574
- if (newIndex[0] > currentIndex[0]) {
8575
- Transforms.moveNodes(editor, {
8576
- at: newIndex,
8577
- to: [newIndex[0] + 1]
8578
- });
8579
- }
8580
- }
8581
- if (newNode.type === "list-item" && draggedNode.type === "list-item") {
8582
- if (newIndex[0] > currentIndex[0]) {
8583
- Transforms.moveNodes(editor, {
8584
- at: newIndex,
8585
- to: [newIndex[0], newIndex[1] + 1, ...newIndex.slice(2)]
8586
- });
8587
- }
8588
- }
8589
- if (draggedNode.type === "list-item") {
8590
- const [listNode, listNodePath] = Editor$1.parent(editor, currentIndex);
8591
- const isListEmpty = listNode.children?.length === 1 && listNode.children?.[0].type === "text" && listNode.children?.[0].text === "";
8592
- if (isListEmpty) {
8593
- Transforms.removeNodes(editor, { at: listNodePath });
8594
- }
8595
- }
8596
- }
8597
8656
  },
8598
8657
  [editor, formatMessage, name2, setLiveText]
8599
8658
  );
@@ -8718,11 +8777,13 @@ const baseRenderElement = ({
8718
8777
  setDragDirection,
8719
8778
  dragDirection
8720
8779
  }) => {
8721
- const blockMatch = Object.values(blocks).find((block2) => block2.matchNode(props.element));
8780
+ const { element } = props;
8781
+ const blockMatch = Object.values(blocks).find((block2) => block2.matchNode(element));
8722
8782
  const block = blockMatch || blocks.paragraph;
8723
- const nodePath = ReactEditor.findPath(editor, props.element);
8724
- if (isLinkNode(props.element) || isListNode$1(props.element))
8783
+ const nodePath = ReactEditor.findPath(editor, element);
8784
+ if (isLinkNode(element) || isListNode$1(element) && element.indentLevel && element.indentLevel > 0 || element.type === "list-item") {
8725
8785
  return block.renderElement(props);
8786
+ }
8726
8787
  return /* @__PURE__ */ jsx(
8727
8788
  DragAndDropElement,
8728
8789
  {
@@ -8734,7 +8795,7 @@ const baseRenderElement = ({
8734
8795
  }
8735
8796
  );
8736
8797
  };
8737
- const BlocksContent = ({ placeholder }) => {
8798
+ const BlocksContent = ({ placeholder, ariaLabelId }) => {
8738
8799
  const { editor, disabled, blocks, modifiers: modifiers2, setLiveText, isExpandedMode } = useBlocksEditorContext("BlocksContent");
8739
8800
  const blocksRef = React.useRef(null);
8740
8801
  const { formatMessage } = useIntl();
@@ -8837,6 +8898,20 @@ const BlocksContent = ({ placeholder }) => {
8837
8898
  selectedBlock.handleBackspaceKey(editor, event);
8838
8899
  }
8839
8900
  };
8901
+ const handleTab = (event) => {
8902
+ if (!editor.selection) {
8903
+ return;
8904
+ }
8905
+ const selectedNode = editor.children[editor.selection.anchor.path[0]];
8906
+ const selectedBlock = Object.values(blocks).find((block) => block.matchNode(selectedNode));
8907
+ if (!selectedBlock) {
8908
+ return;
8909
+ }
8910
+ if (selectedBlock.handleTab) {
8911
+ event.preventDefault();
8912
+ selectedBlock.handleTab(editor);
8913
+ }
8914
+ };
8840
8915
  const handleKeyboardShortcuts = (event) => {
8841
8916
  const isCtrlOrCmd = event.metaKey || event.ctrlKey;
8842
8917
  if (isCtrlOrCmd) {
@@ -8852,12 +8927,16 @@ const BlocksContent = ({ placeholder }) => {
8852
8927
  }
8853
8928
  };
8854
8929
  const handleKeyDown = (event) => {
8855
- if (event.key === "Enter") {
8856
- event.preventDefault();
8857
- return handleEnter(event);
8858
- }
8859
- if (event.key === "Backspace") {
8860
- return handleBackspaceEvent(event);
8930
+ switch (event.key) {
8931
+ case "Enter":
8932
+ event.preventDefault();
8933
+ return handleEnter(event);
8934
+ case "Backspace":
8935
+ return handleBackspaceEvent(event);
8936
+ case "Tab":
8937
+ return handleTab(event);
8938
+ case "Escape":
8939
+ return ReactEditor.blur(editor);
8861
8940
  }
8862
8941
  handleKeyboardShortcuts(event);
8863
8942
  if (event.key === " ") {
@@ -8900,6 +8979,7 @@ const BlocksContent = ({ placeholder }) => {
8900
8979
  /* @__PURE__ */ jsx(
8901
8980
  StyledEditable,
8902
8981
  {
8982
+ "aria-labelledby": ariaLabelId,
8903
8983
  readOnly: disabled,
8904
8984
  placeholder,
8905
8985
  isExpandedMode,
@@ -9208,7 +9288,7 @@ function useResetKey(value) {
9208
9288
  }
9209
9289
  const pipe = (...fns) => (value) => fns.reduce((prev, fn) => fn(prev), value);
9210
9290
  const BlocksEditor = React.forwardRef(
9211
- ({ disabled = false, name: name2, placeholder, onChange, value, error }, forwardedRef) => {
9291
+ ({ disabled = false, name: name2, onChange, value, error, ...contentProps }, forwardedRef) => {
9212
9292
  const { formatMessage } = useIntl();
9213
9293
  const [editor] = React.useState(
9214
9294
  () => pipe(withHistory, withImages, withStrapiSchema, withReact, withLinks)(createEditor())
@@ -9216,7 +9296,6 @@ const BlocksEditor = React.forwardRef(
9216
9296
  const [liveText, setLiveText] = React.useState("");
9217
9297
  const ariaDescriptionId = React.useId();
9218
9298
  const [isExpandedMode, setIsExpandedMode] = React.useState(false);
9219
- const formattedPlaceholder = placeholder && formatMessage({ id: placeholder.id, defaultMessage: placeholder.defaultMessage });
9220
9299
  const handleToggleExpand = () => {
9221
9300
  setIsExpandedMode((prev) => !prev);
9222
9301
  };
@@ -9281,7 +9360,7 @@ const BlocksEditor = React.forwardRef(
9281
9360
  children: [
9282
9361
  /* @__PURE__ */ jsx(BlocksToolbar, {}),
9283
9362
  /* @__PURE__ */ jsx(EditorDivider, { width: "100%" }),
9284
- /* @__PURE__ */ jsx(BlocksContent, { placeholder: formattedPlaceholder }),
9363
+ /* @__PURE__ */ jsx(BlocksContent, { ...contentProps }),
9285
9364
  !isExpandedMode && /* @__PURE__ */ jsx(
9286
9365
  ExpandIconButton,
9287
9366
  {
@@ -9310,19 +9389,50 @@ const LabelAction$2 = styled(Box)`
9310
9389
  }
9311
9390
  `;
9312
9391
  const BlocksInput = React.forwardRef(
9313
- ({ intlLabel, labelAction, name: name2, required = false, error = "", hint, ...editorProps }, forwardedRef) => {
9392
+ ({
9393
+ intlLabel,
9394
+ labelAction,
9395
+ name: name2,
9396
+ required = false,
9397
+ error = "",
9398
+ hint,
9399
+ placeholder,
9400
+ ...editorProps
9401
+ }, forwardedRef) => {
9314
9402
  const { formatMessage } = useIntl();
9403
+ const uniqueId = React.useId();
9315
9404
  const label = intlLabel.id ? formatMessage(intlLabel) : name2;
9405
+ const formattedPlaceholder = placeholder && formatMessage({ id: placeholder.id, defaultMessage: placeholder.defaultMessage });
9316
9406
  return /* @__PURE__ */ jsxs(Fragment, { children: [
9317
9407
  /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 1, children: [
9318
9408
  /* @__PURE__ */ jsxs(Flex, { gap: 1, children: [
9319
- /* @__PURE__ */ jsxs(Typography, { variant: "pi", fontWeight: "bold", textColor: "neutral800", children: [
9320
- label,
9321
- required && /* @__PURE__ */ jsx(Typography, { textColor: "danger600", lineHeight: "0px", children: "*" })
9322
- ] }),
9409
+ /* @__PURE__ */ jsxs(
9410
+ Typography,
9411
+ {
9412
+ variant: "pi",
9413
+ fontWeight: "bold",
9414
+ textColor: "neutral800",
9415
+ as: "label",
9416
+ id: uniqueId,
9417
+ children: [
9418
+ label,
9419
+ required && /* @__PURE__ */ jsx(Typography, { textColor: "danger600", lineHeight: "0px", children: "*" })
9420
+ ]
9421
+ }
9422
+ ),
9323
9423
  labelAction && /* @__PURE__ */ jsx(LabelAction$2, { paddingLeft: 1, children: labelAction })
9324
9424
  ] }),
9325
- /* @__PURE__ */ jsx(BlocksEditor, { name: name2, error, ref: forwardedRef, ...editorProps }),
9425
+ /* @__PURE__ */ jsx(
9426
+ BlocksEditor,
9427
+ {
9428
+ name: name2,
9429
+ error,
9430
+ ref: forwardedRef,
9431
+ ...editorProps,
9432
+ ariaLabelId: uniqueId,
9433
+ placeholder: formattedPlaceholder
9434
+ }
9435
+ ),
9326
9436
  /* @__PURE__ */ jsx(Hint, { hint, name: name2, error })
9327
9437
  ] }),
9328
9438
  error && /* @__PURE__ */ jsx(Box, { paddingTop: 1, children: /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "danger600", "data-strapi-field-error": true, children: error }) })
@@ -14210,7 +14320,7 @@ const EditViewPage = ({
14210
14320
  const toggleNotification = useNotification();
14211
14321
  const Information2 = useEnterprise(
14212
14322
  InformationBoxCE,
14213
- async () => (await import("./InformationBoxEE-rU-_LUTN.mjs")).InformationBoxEE
14323
+ async () => (await import("./InformationBoxEE-SBgONjAA.mjs")).InformationBoxEE
14214
14324
  );
14215
14325
  useOnce(() => {
14216
14326
  if (location?.state && "error" in location.state) {
@@ -15439,6 +15549,7 @@ const usersService = adminApi.injectEndpoints({
15439
15549
  method: "POST",
15440
15550
  data: body
15441
15551
  }),
15552
+ transformResponse: (response) => response.data,
15442
15553
  invalidatesTags: ["LicenseLimits", { type: "User", id: "LIST" }]
15443
15554
  }),
15444
15555
  updateUser: builder.mutation({
@@ -15616,6 +15727,93 @@ const AdminUsersFilter = ({ value, onChange }) => {
15616
15727
  }
15617
15728
  );
15618
15729
  };
15730
+ const AutoCloneFailureModal = ({
15731
+ onClose,
15732
+ entryId,
15733
+ prohibitedFields,
15734
+ pluginQueryParams
15735
+ }) => {
15736
+ const { formatMessage } = useIntl();
15737
+ const { pathname } = useLocation();
15738
+ if (!entryId) {
15739
+ return null;
15740
+ }
15741
+ const editPath = `${pathname}/create/clone/${entryId}?${pluginQueryParams}`;
15742
+ const getDefaultErrorMessage = (reason) => {
15743
+ switch (reason) {
15744
+ case "relation":
15745
+ return "Duplicating the relation could remove it from the original entry.";
15746
+ case "unique":
15747
+ return "Identical values in a unique field are not allowed";
15748
+ default:
15749
+ return reason;
15750
+ }
15751
+ };
15752
+ return /* @__PURE__ */ jsxs(ModalLayout, { onClose, labelledBy: "title", children: [
15753
+ /* @__PURE__ */ jsx(ModalHeader, { children: /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "bold", as: "h2", id: "title", children: formatMessage({
15754
+ id: getTranslation("containers.ListPage.autoCloneModal.header"),
15755
+ defaultMessage: "Duplicate"
15756
+ }) }) }),
15757
+ /* @__PURE__ */ jsxs(ModalBody, { children: [
15758
+ /* @__PURE__ */ jsx(Typography, { variant: "beta", children: formatMessage({
15759
+ id: getTranslation("containers.ListPage.autoCloneModal.title"),
15760
+ defaultMessage: "This entry can't be duplicated directly."
15761
+ }) }),
15762
+ /* @__PURE__ */ jsx(Box, { marginTop: 2, children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral600", children: formatMessage({
15763
+ id: getTranslation("containers.ListPage.autoCloneModal.description"),
15764
+ defaultMessage: "A new entry will be created with the same content, but you'll have to change the following fields to save it."
15765
+ }) }) }),
15766
+ /* @__PURE__ */ jsx(Flex, { marginTop: 6, gap: 2, direction: "column", alignItems: "stretch", children: prohibitedFields.map(([fieldPath, reason]) => /* @__PURE__ */ jsxs(
15767
+ Flex,
15768
+ {
15769
+ direction: "column",
15770
+ gap: 2,
15771
+ alignItems: "flex-start",
15772
+ borderColor: "neutral200",
15773
+ hasRadius: true,
15774
+ padding: 6,
15775
+ children: [
15776
+ /* @__PURE__ */ jsx(Flex, { direction: "row", as: "ol", children: fieldPath.map((pathSegment, index) => /* @__PURE__ */ jsxs(Typography, { fontWeight: "semiBold", as: "li", children: [
15777
+ pathSegment,
15778
+ index !== fieldPath.length - 1 && /* @__PURE__ */ jsx(
15779
+ Icon,
15780
+ {
15781
+ as: ChevronRight,
15782
+ color: "neutral500",
15783
+ height: 2,
15784
+ width: 2,
15785
+ marginLeft: 2,
15786
+ marginRight: 2
15787
+ }
15788
+ )
15789
+ ] }, index)) }),
15790
+ /* @__PURE__ */ jsx(Typography, { as: "p", textColor: "neutral600", children: formatMessage({
15791
+ id: getTranslation(`containers.ListPage.autoCloneModal.error.${reason}`),
15792
+ defaultMessage: getDefaultErrorMessage(reason)
15793
+ }) })
15794
+ ]
15795
+ },
15796
+ fieldPath.join()
15797
+ )) })
15798
+ ] }),
15799
+ /* @__PURE__ */ jsx(
15800
+ ModalFooter,
15801
+ {
15802
+ startActions: /* @__PURE__ */ jsx(Button, { onClick: onClose, variant: "tertiary", children: formatMessage({
15803
+ id: "cancel",
15804
+ defaultMessage: "Cancel"
15805
+ }) }),
15806
+ endActions: (
15807
+ // @ts-expect-error - types are not inferred correctly through the as prop.
15808
+ /* @__PURE__ */ jsx(LinkButton$3, { as: NavLink, to: editPath, children: formatMessage({
15809
+ id: getTranslation("containers.ListPage.autoCloneModal.create"),
15810
+ defaultMessage: "Create"
15811
+ }) })
15812
+ )
15813
+ }
15814
+ )
15815
+ ] });
15816
+ };
15619
15817
  const InjectionZoneList = ({ area, ...props }) => {
15620
15818
  const injectedComponents = useInjectionZone(area);
15621
15819
  if (!injectedComponents) {
@@ -17054,7 +17252,7 @@ const ListViewPage = ({
17054
17252
  const hasReviewWorkflows = options2?.reviewWorkflows ?? false;
17055
17253
  const reviewWorkflowColumns = useEnterprise(
17056
17254
  REVIEW_WORKFLOW_COLUMNS_CE,
17057
- async () => (await import("./constants-oLogFPZi.mjs")).REVIEW_WORKFLOW_COLUMNS_EE,
17255
+ async () => (await import("./constants-V6ogbA_Q.mjs")).REVIEW_WORKFLOW_COLUMNS_EE,
17058
17256
  {
17059
17257
  enabled: !!options2?.reviewWorkflows
17060
17258
  }
@@ -17062,7 +17260,7 @@ const ListViewPage = ({
17062
17260
  const ReviewWorkflowsColumns = useEnterprise(
17063
17261
  REVIEW_WORKFLOW_COLUMNS_CELL_CE,
17064
17262
  async () => {
17065
- const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await import("./ReviewWorkflowsColumn-nO_l9SSd.mjs");
17263
+ const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await import("./ReviewWorkflowsColumn-UM9eh2AB.mjs");
17066
17264
  return { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE };
17067
17265
  },
17068
17266
  {
@@ -17071,7 +17269,7 @@ const ListViewPage = ({
17071
17269
  );
17072
17270
  const reviewWorkflowFilter = useEnterprise(
17073
17271
  REVIEW_WORKFLOW_FILTER_CE,
17074
- async () => (await import("./constants-oLogFPZi.mjs")).REVIEW_WORKFLOW_FILTERS,
17272
+ async () => (await import("./constants-V6ogbA_Q.mjs")).REVIEW_WORKFLOW_FILTERS,
17075
17273
  {
17076
17274
  combine(ceFilters, eeFilters) {
17077
17275
  return [
@@ -17328,6 +17526,8 @@ const ListViewPage = ({
17328
17526
  search: pluginsQueryParams
17329
17527
  });
17330
17528
  };
17529
+ const [clonedEntryId, setClonedEntryId] = React.useState(null);
17530
+ const [prohibitedCloningFields, setProhibitedCloningFields] = React.useState([]);
17331
17531
  const handleCloneClick = (id) => async () => {
17332
17532
  try {
17333
17533
  const { data: data2 } = await post(
@@ -17342,11 +17542,9 @@ const ListViewPage = ({
17342
17542
  }
17343
17543
  } catch (err) {
17344
17544
  if (err instanceof AxiosError) {
17345
- push({
17346
- pathname: `${pathname}/create/clone/${id}`,
17347
- state: { from: pathname, error: formatAPIError(err) },
17348
- search: pluginsQueryParams
17349
- });
17545
+ const { prohibitedFields } = err.response?.data.error.details;
17546
+ setClonedEntryId(id);
17547
+ setProhibitedCloningFields(prohibitedFields);
17350
17548
  }
17351
17549
  }
17352
17550
  };
@@ -17456,6 +17654,15 @@ const ListViewPage = ({
17456
17654
  ) : null
17457
17655
  }
17458
17656
  ),
17657
+ /* @__PURE__ */ jsx(
17658
+ AutoCloneFailureModal,
17659
+ {
17660
+ entryId: clonedEntryId,
17661
+ onClose: () => setClonedEntryId(null),
17662
+ prohibitedFields: prohibitedCloningFields,
17663
+ pluginQueryParams: pluginsQueryParams
17664
+ }
17665
+ ),
17459
17666
  /* @__PURE__ */ jsx(
17460
17667
  Table.Root,
17461
17668
  {
@@ -18177,6 +18384,11 @@ const injectReducerStoreEnhancer = (appReducers) => (next) => (...args) => {
18177
18384
  };
18178
18385
  const configureStoreImpl = (preloadedState = {}, appMiddlewares = [], injectedReducers = {}) => {
18179
18386
  const coreReducers = { ...staticReducers, ...injectedReducers };
18387
+ const defaultMiddlewareOptions = {};
18388
+ if (process.env.NODE_ENV === "test") {
18389
+ defaultMiddlewareOptions.serializableCheck = false;
18390
+ defaultMiddlewareOptions.immutableCheck = false;
18391
+ }
18180
18392
  const store = configureStore({
18181
18393
  preloadedState: {
18182
18394
  admin_app: preloadedState.admin_app
@@ -18184,7 +18396,7 @@ const configureStoreImpl = (preloadedState = {}, appMiddlewares = [], injectedRe
18184
18396
  reducer: coreReducers,
18185
18397
  devTools: process.env.NODE_ENV !== "production",
18186
18398
  middleware: (getDefaultMiddleware) => [
18187
- ...getDefaultMiddleware(),
18399
+ ...getDefaultMiddleware(defaultMiddlewareOptions),
18188
18400
  adminApi.middleware,
18189
18401
  ...appMiddlewares.map((m) => m())
18190
18402
  ],
@@ -18547,7 +18759,7 @@ class StrapiApp {
18547
18759
  */
18548
18760
  async loadAdminTrads() {
18549
18761
  const arrayOfPromises = this.configurations.locales.map((locale) => {
18550
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-jktgflyG.mjs"), "./translations/ca.json": () => import("./ca-g_TZ9Gyb.mjs"), "./translations/cs.json": () => import("./cs-pnCQlrWo.mjs"), "./translations/de.json": () => import("./de-uQFFWv6o.mjs"), "./translations/dk.json": () => import("./dk-QgYCviRU.mjs"), "./translations/en.json": () => import("./en-NIBEogzH.mjs"), "./translations/es.json": () => import("./es-h5dK2UFx.mjs"), "./translations/eu.json": () => import("./eu-7yW2eEOy.mjs"), "./translations/fr.json": () => import("./fr-xODy5_BZ.mjs"), "./translations/gu.json": () => import("./gu-k2JKO75-.mjs"), "./translations/he.json": () => import("./he-SUOZnrPI.mjs"), "./translations/hi.json": () => import("./hi-eUDhoDjK.mjs"), "./translations/hu.json": () => import("./hu-Nw7d3QWI.mjs"), "./translations/id.json": () => import("./id-xMqk-8lW.mjs"), "./translations/it.json": () => import("./it-rHB9s1La.mjs"), "./translations/ja.json": () => import("./ja-WD-v2aCc.mjs"), "./translations/ko.json": () => import("./ko-bqCJmLX_.mjs"), "./translations/ml.json": () => import("./ml-NdVWq6KA.mjs"), "./translations/ms.json": () => import("./ms-gansS54r.mjs"), "./translations/nl.json": () => import("./nl--_EbnSVw.mjs"), "./translations/no.json": () => import("./no-9cS1N6hE.mjs"), "./translations/pl.json": () => import("./pl-3EvXSIl8.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-8-G6vaMo.mjs"), "./translations/pt.json": () => import("./pt-TrdDLCZ4.mjs"), "./translations/ru.json": () => import("./ru-mivqkjAk.mjs"), "./translations/sa.json": () => import("./sa-AbTtHezl.mjs"), "./translations/sk.json": () => import("./sk-IoQ_DY_j.mjs"), "./translations/sv.json": () => import("./sv-SHJ67uau.mjs"), "./translations/th.json": () => import("./th-TrS9p5eO.mjs"), "./translations/tr.json": () => import("./tr-f8ouRTmt.mjs"), "./translations/uk.json": () => import("./uk-x2flwIlG.mjs"), "./translations/vi.json": () => import("./vi-BbeHSbqs.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-eY3IWdFB.mjs"), "./translations/zh.json": () => import("./zh-cZop7tV1.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
18762
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-jktgflyG.mjs"), "./translations/ca.json": () => import("./ca-g_TZ9Gyb.mjs"), "./translations/cs.json": () => import("./cs-pnCQlrWo.mjs"), "./translations/de.json": () => import("./de-uQFFWv6o.mjs"), "./translations/dk.json": () => import("./dk-QgYCviRU.mjs"), "./translations/en.json": () => import("./en-ZBAy2GQ0.mjs"), "./translations/es.json": () => import("./es-h5dK2UFx.mjs"), "./translations/eu.json": () => import("./eu-7yW2eEOy.mjs"), "./translations/fr.json": () => import("./fr-xODy5_BZ.mjs"), "./translations/gu.json": () => import("./gu-k2JKO75-.mjs"), "./translations/he.json": () => import("./he-SUOZnrPI.mjs"), "./translations/hi.json": () => import("./hi-eUDhoDjK.mjs"), "./translations/hu.json": () => import("./hu-Nw7d3QWI.mjs"), "./translations/id.json": () => import("./id-xMqk-8lW.mjs"), "./translations/it.json": () => import("./it-rHB9s1La.mjs"), "./translations/ja.json": () => import("./ja-WD-v2aCc.mjs"), "./translations/ko.json": () => import("./ko-bqCJmLX_.mjs"), "./translations/ml.json": () => import("./ml-NdVWq6KA.mjs"), "./translations/ms.json": () => import("./ms-gansS54r.mjs"), "./translations/nl.json": () => import("./nl--_EbnSVw.mjs"), "./translations/no.json": () => import("./no-9cS1N6hE.mjs"), "./translations/pl.json": () => import("./pl-3EvXSIl8.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-8-G6vaMo.mjs"), "./translations/pt.json": () => import("./pt-TrdDLCZ4.mjs"), "./translations/ru.json": () => import("./ru-mivqkjAk.mjs"), "./translations/sa.json": () => import("./sa-AbTtHezl.mjs"), "./translations/sk.json": () => import("./sk-IoQ_DY_j.mjs"), "./translations/sv.json": () => import("./sv-SHJ67uau.mjs"), "./translations/th.json": () => import("./th-TrS9p5eO.mjs"), "./translations/tr.json": () => import("./tr-f8ouRTmt.mjs"), "./translations/uk.json": () => import("./uk-x2flwIlG.mjs"), "./translations/vi.json": () => import("./vi-BbeHSbqs.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-eY3IWdFB.mjs"), "./translations/zh.json": () => import("./zh-cZop7tV1.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
18551
18763
  return { data, locale };
18552
18764
  }).catch(() => {
18553
18765
  return { data: null, locale };
@@ -18774,6 +18986,23 @@ function useDocument() {
18774
18986
  };
18775
18987
  return { validate };
18776
18988
  }
18989
+ function useLicenseLimits({ enabled } = { enabled: true }) {
18990
+ const { data, isError, isLoading } = useGetLicenseLimitsQuery(void 0, {
18991
+ skip: !enabled
18992
+ });
18993
+ const getFeature = React.useCallback(
18994
+ (name2) => {
18995
+ const feature = data?.data?.features.find((feature2) => feature2.name === name2);
18996
+ if (feature && "options" in feature) {
18997
+ return feature.options;
18998
+ } else {
18999
+ return {};
19000
+ }
19001
+ },
19002
+ [data]
19003
+ );
19004
+ return { license: data?.data, getFeature, isError, isLoading };
19005
+ }
18777
19006
  export {
18778
19007
  NotFoundPage$1 as $,
18779
19008
  useGetRolePermissionLayoutQuery as A,
@@ -18816,8 +19045,8 @@ export {
18816
19045
  useTypedSelector as j,
18817
19046
  useAdminUsers as k,
18818
19047
  getDisplayName as l,
18819
- adminApi as m,
18820
- useGetLicenseLimitsQuery as n,
19048
+ useLicenseLimits as m,
19049
+ adminApi as n,
18821
19050
  getTranslation as o,
18822
19051
  useEnterprise as p,
18823
19052
  useGetPluginsQuery as q,
@@ -18831,4 +19060,4 @@ export {
18831
19060
  SETTINGS_LINKS_CE as y,
18832
19061
  useGetRolesQuery as z
18833
19062
  };
18834
- //# sourceMappingURL=index-LblG7sy4.mjs.map
19063
+ //# sourceMappingURL=index-KLPMzfLn.mjs.map