@strapi/admin 4.0.2 → 4.0.6

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 (316) hide show
  1. package/admin/src/components/LeftMenu/index.js +13 -5
  2. package/admin/src/components/UpgradePlanModal/index.js +7 -2
  3. package/admin/src/content-manager/components/DynamicTable/CellContent/CellValue.js +12 -2
  4. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/getNumberOfDecimals.js +8 -0
  5. package/admin/src/content-manager/components/DynamicZone/components/DzLabel/index.js +24 -7
  6. package/admin/src/content-manager/components/DynamicZone/index.js +6 -10
  7. package/admin/src/content-manager/components/InputUID/index.js +4 -0
  8. package/admin/src/content-manager/components/PreviewWysiwyg/Wrapper.js +8 -0
  9. package/admin/src/content-manager/components/PreviewWysiwyg/utils/mdRenderer.js +1 -1
  10. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/IconButtonCustoms.js +0 -4
  11. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +36 -14
  12. package/admin/src/content-manager/components/RepeatableComponent/index.js +2 -2
  13. package/admin/src/content-manager/components/Wysiwyg/Editor.js +6 -4
  14. package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +2 -0
  15. package/admin/src/content-manager/components/Wysiwyg/EditorStylesContainer.js +2 -1
  16. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
  17. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +79 -68
  18. package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +1 -0
  19. package/admin/src/content-manager/components/Wysiwyg/index.js +17 -5
  20. package/admin/src/content-manager/pages/App/index.js +9 -3
  21. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +1 -1
  22. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +1 -3
  23. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +1 -1
  24. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +6 -7
  25. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFieldButton.js +1 -1
  26. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +1 -0
  27. package/admin/src/pages/Admin/index.js +2 -0
  28. package/admin/src/pages/AuthPage/components/Register/index.js +4 -1
  29. package/admin/src/pages/AuthPage/utils/forms.js +2 -0
  30. package/admin/src/pages/InternalErrorPage/index.js +53 -0
  31. package/admin/src/pages/NotFoundPage/index.js +45 -2
  32. package/admin/src/pages/ProfilePage/index.js +2 -0
  33. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +1 -0
  34. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js +2 -0
  35. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/layout.js +2 -0
  36. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +1 -0
  37. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +1 -9
  38. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +2 -0
  39. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/schema.js +1 -4
  40. package/admin/src/translations/dk.json +300 -110
  41. package/admin/src/translations/en.json +4 -0
  42. package/admin/src/translations/es.json +204 -4
  43. package/admin/src/translations/hu.json +672 -0
  44. package/admin/src/translations/ja.json +327 -7
  45. package/admin/src/translations/languageNativeNames.js +1 -0
  46. package/admin/src/translations/nl.json +512 -125
  47. package/admin/src/translations/pt-BR.json +398 -19
  48. package/admin/src/translations/uk.json +40 -40
  49. package/admin/src/translations/zh-Hans.json +554 -204
  50. package/admin/src/translations/zh.json +7 -0
  51. package/build/{1024.1b15fbb5.chunk.js → 1024.595f3e01.chunk.js} +1 -1
  52. package/build/{1856.0a6992d6.chunk.js → 1856.cc060f4a.chunk.js} +1 -1
  53. package/build/{5881.deb18c91.chunk.js → 3215.03a0bf5d.chunk.js} +2 -2
  54. package/build/{5881.deb18c91.chunk.js.LICENSE.txt → 3215.03a0bf5d.chunk.js.LICENSE.txt} +0 -0
  55. package/build/4261.061aed35.chunk.js +1 -0
  56. package/build/4362.1b2440be.chunk.js +1 -0
  57. package/build/4672.68466ddc.chunk.js +1 -0
  58. package/build/{4715.f134f37a.chunk.js → 4715.a5e6716c.chunk.js} +1 -1
  59. package/build/4741.18bf386b.chunk.js +2 -0
  60. package/build/{4741.1fb6ad6e.chunk.js.LICENSE.txt → 4741.18bf386b.chunk.js.LICENSE.txt} +0 -0
  61. package/build/4801.44382ab3.chunk.js +2 -0
  62. package/build/{2664.f33f619d.chunk.js.LICENSE.txt → 4801.44382ab3.chunk.js.LICENSE.txt} +0 -0
  63. package/build/{497.726adbfa.chunk.js → 497.a28b7510.chunk.js} +1 -1
  64. package/build/{4982.a7f87e6c.chunk.js → 4982.4666f610.chunk.js} +1 -1
  65. package/build/6060.72f9dda2.chunk.js +2 -0
  66. package/build/{3226.1a4b5cd1.chunk.js.LICENSE.txt → 6060.72f9dda2.chunk.js.LICENSE.txt} +1 -1
  67. package/build/{6250.11ba8b50.chunk.js → 6250.6c7a86f7.chunk.js} +1 -1
  68. package/build/849.2f8d8ef9.chunk.js +1 -0
  69. package/build/9235.63b1528f.chunk.js +1 -0
  70. package/build/Admin-authenticatedApp.b9ff71df.chunk.js +1 -0
  71. package/build/Admin_homePage.964f59a3.chunk.js +1 -0
  72. package/build/Admin_marketplace.1cf20eeb.chunk.js +1 -0
  73. package/build/{Admin_pluginsPage.22390055.chunk.js → Admin_pluginsPage.0d59d86e.chunk.js} +1 -1
  74. package/build/Admin_profilePage.c08119de.chunk.js +1 -0
  75. package/build/Admin_settingsPage.23cd984a.chunk.js +1 -0
  76. package/build/admin-edit-roles-page.57fa787d.chunk.js +1 -0
  77. package/build/admin-edit-users.572c68f8.chunk.js +1 -0
  78. package/build/admin-users.fa7573b6.chunk.js +1 -0
  79. package/build/{api-tokens-create-page.ab33d46d.chunk.js → api-tokens-create-page.ef71291c.chunk.js} +1 -1
  80. package/build/{api-tokens-edit-page.749496cc.chunk.js → api-tokens-edit-page.1486974f.chunk.js} +1 -1
  81. package/build/api-tokens-list-page.05f53943.chunk.js +1 -0
  82. package/build/{ar-json.9805489e.chunk.js → ar-json.d79e4709.chunk.js} +1 -1
  83. package/build/codemirror-css.17bc19d4.chunk.js +1 -0
  84. package/build/codemirror-theme.b5559efc.chunk.js +1 -0
  85. package/build/content-manager.006dc634.chunk.js +1 -0
  86. package/build/{content-type-builder-translation-ar-json.bce4d624.chunk.js → content-type-builder-translation-ar-json.f1fedc12.chunk.js} +1 -1
  87. package/build/{content-type-builder-translation-cs-json.785866b6.chunk.js → content-type-builder-translation-cs-json.2f7e2289.chunk.js} +1 -1
  88. package/build/{content-type-builder-translation-de-json.6faa019a.chunk.js → content-type-builder-translation-de-json.46017754.chunk.js} +1 -1
  89. package/build/content-type-builder-translation-dk-json.098bd218.chunk.js +1 -0
  90. package/build/{content-type-builder-translation-en-json.81257d0d.chunk.js → content-type-builder-translation-en-json.d70fc3af.chunk.js} +1 -1
  91. package/build/content-type-builder-translation-es-json.20c177ee.chunk.js +1 -0
  92. package/build/{content-type-builder-translation-fr-json.2156f48c.chunk.js → content-type-builder-translation-fr-json.8f66eb66.chunk.js} +1 -1
  93. package/build/content-type-builder-translation-id-json.aab2f426.chunk.js +1 -0
  94. package/build/{content-type-builder-translation-it-json.dc154c62.chunk.js → content-type-builder-translation-it-json.4c91e895.chunk.js} +1 -1
  95. package/build/{content-type-builder-translation-ja-json.9f8695a0.chunk.js → content-type-builder-translation-ja-json.c239ba90.chunk.js} +1 -1
  96. package/build/{content-type-builder-translation-ko-json.0288cb2b.chunk.js → content-type-builder-translation-ko-json.2a5e0769.chunk.js} +1 -1
  97. package/build/{content-type-builder-translation-ms-json.cfc21fb6.chunk.js → content-type-builder-translation-ms-json.124be88c.chunk.js} +1 -1
  98. package/build/{content-type-builder-translation-nl-json.4d742025.chunk.js → content-type-builder-translation-nl-json.98a240b8.chunk.js} +1 -1
  99. package/build/{content-type-builder-translation-pl-json.1b701a76.chunk.js → content-type-builder-translation-pl-json.2abc61bd.chunk.js} +1 -1
  100. package/build/{content-type-builder-translation-pt-BR-json.2c514ada.chunk.js → content-type-builder-translation-pt-BR-json.c0415545.chunk.js} +1 -1
  101. package/build/{content-type-builder-translation-pt-json.a3c4315c.chunk.js → content-type-builder-translation-pt-json.ab3e086d.chunk.js} +1 -1
  102. package/build/{content-type-builder-translation-ru-json.72173619.chunk.js → content-type-builder-translation-ru-json.1a6779fd.chunk.js} +1 -1
  103. package/build/{content-type-builder-translation-sk-json.e654be3b.chunk.js → content-type-builder-translation-sk-json.5c82f020.chunk.js} +1 -1
  104. package/build/{content-type-builder-translation-th-json.403aa6a4.chunk.js → content-type-builder-translation-th-json.24ee19eb.chunk.js} +1 -1
  105. package/build/{content-type-builder-translation-tr-json.72027971.chunk.js → content-type-builder-translation-tr-json.30434835.chunk.js} +1 -1
  106. package/build/{content-type-builder-translation-uk-json.a1b9f71b.chunk.js → content-type-builder-translation-uk-json.771662ef.chunk.js} +1 -1
  107. package/build/{content-type-builder-translation-zh-Hans-json.4c242866.chunk.js → content-type-builder-translation-zh-Hans-json.070020ae.chunk.js} +1 -1
  108. package/build/{content-type-builder-translation-zh-json.3b3eb4e8.chunk.js → content-type-builder-translation-zh-json.9708310d.chunk.js} +1 -1
  109. package/build/content-type-builder.2e3a53f1.chunk.js +1 -0
  110. package/build/cropper-css.ace19575.chunk.js +1 -0
  111. package/build/{cs-json.ff08076e.chunk.js → cs-json.b8ba75b8.chunk.js} +1 -1
  112. package/build/de-json.e01bdeae.chunk.js +1 -0
  113. package/build/dk-json.7356ea4b.chunk.js +1 -0
  114. package/build/email-settings-page.8f22f49c.chunk.js +1 -0
  115. package/build/email-translation-ar-json.95d90eb4.chunk.js +1 -0
  116. package/build/email-translation-cs-json.dfd1f3f2.chunk.js +1 -0
  117. package/build/email-translation-de-json.559a7d5f.chunk.js +1 -0
  118. package/build/email-translation-dk-json.f8a595bf.chunk.js +1 -0
  119. package/build/{email-translation-en-json.ef8208e3.chunk.js → email-translation-en-json.fa0dc92b.chunk.js} +1 -1
  120. package/build/email-translation-es-json.eb303dea.chunk.js +1 -0
  121. package/build/email-translation-fr-json.49c3c888.chunk.js +1 -0
  122. package/build/email-translation-id-json.e3c2101d.chunk.js +1 -0
  123. package/build/email-translation-it-json.3de61cb6.chunk.js +1 -0
  124. package/build/{email-translation-ja-json.66b21ec1.chunk.js → email-translation-ja-json.66337e44.chunk.js} +1 -1
  125. package/build/{email-translation-ko-json.e383ad57.chunk.js → email-translation-ko-json.52bbd7b4.chunk.js} +1 -1
  126. package/build/email-translation-ms-json.e39256df.chunk.js +1 -0
  127. package/build/email-translation-nl-json.12d28adb.chunk.js +1 -0
  128. package/build/email-translation-pl-json.9585a84e.chunk.js +1 -0
  129. package/build/email-translation-pt-BR-json.6c04b3ef.chunk.js +1 -0
  130. package/build/email-translation-pt-json.0239be04.chunk.js +1 -0
  131. package/build/email-translation-ru-json.f3b4fecc.chunk.js +1 -0
  132. package/build/email-translation-sk-json.76dbaaa6.chunk.js +1 -0
  133. package/build/email-translation-th-json.25ad73e7.chunk.js +1 -0
  134. package/build/email-translation-tr-json.ae04a9f2.chunk.js +1 -0
  135. package/build/email-translation-uk-json.03b27b08.chunk.js +1 -0
  136. package/build/email-translation-vi-json.3e1dd5b3.chunk.js +1 -0
  137. package/build/email-translation-zh-Hans-json.0df4ca59.chunk.js +1 -0
  138. package/build/email-translation-zh-json.82978eb0.chunk.js +1 -0
  139. package/build/en-json.ec998c8f.chunk.js +1 -0
  140. package/build/es-json.ed9c8bef.chunk.js +1 -0
  141. package/build/fontawesome-css-all.3b89f909.chunk.js +1 -0
  142. package/build/fontawesome-css.ef93ee2a.chunk.js +1 -0
  143. package/build/fr-json.bae03a2c.chunk.js +1 -0
  144. package/build/{he-json.fafa8569.chunk.js → he-json.86f9e663.chunk.js} +1 -1
  145. package/build/highlight.js.6321cb45.chunk.js +1 -0
  146. package/build/hu-json.a741d263.chunk.js +1 -0
  147. package/build/i18n-translation-dk-json.932d3cc2.chunk.js +1 -0
  148. package/build/{i18n-translation-en-json.a90b9dc5.chunk.js → i18n-translation-en-json.239b740f.chunk.js} +1 -1
  149. package/build/i18n-translation-es-json.347904f3.chunk.js +1 -0
  150. package/build/i18n-translation-fr-json.b52474fc.chunk.js +1 -0
  151. package/build/{i18n-translation-ko-json.f0628aff.chunk.js → i18n-translation-ko-json.e88e11ef.chunk.js} +1 -1
  152. package/build/{i18n-translation-zh-Hans-json.670b4940.chunk.js → i18n-translation-zh-Hans-json.4c17fed0.chunk.js} +1 -1
  153. package/build/{id-json.3372dadc.chunk.js → id-json.0b0c9731.chunk.js} +1 -1
  154. package/build/index.html +1 -1
  155. package/build/{it-json.0e5d5fdb.chunk.js → it-json.939916bc.chunk.js} +1 -1
  156. package/build/ja-json.52581a2a.chunk.js +1 -0
  157. package/build/{ko-json.35832b30.chunk.js → ko-json.29633034.chunk.js} +1 -1
  158. package/build/main.815f1087.js +2 -0
  159. package/build/{main.dfa22c7a.js.LICENSE.txt → main.815f1087.js.LICENSE.txt} +0 -0
  160. package/build/{ms-json.a66beabc.chunk.js → ms-json.5e5d12f9.chunk.js} +1 -1
  161. package/build/nl-json.ac661b7f.chunk.js +1 -0
  162. package/build/{no-json.25f63ee7.chunk.js → no-json.ff46b126.chunk.js} +1 -1
  163. package/build/{pl-json.3d7884e1.chunk.js → pl-json.6bff1d54.chunk.js} +1 -1
  164. package/build/pt-BR-json.8b3f799d.chunk.js +1 -0
  165. package/build/{pt-json.21a66a61.chunk.js → pt-json.b23d9a79.chunk.js} +1 -1
  166. package/build/{ru-json.ca2b6c3c.chunk.js → ru-json.bff93229.chunk.js} +1 -1
  167. package/build/runtime~main.85d349af.js +1 -0
  168. package/build/{sk-json.7f750e28.chunk.js → sk-json.a40bc2c8.chunk.js} +1 -1
  169. package/build/{sso-settings-page.bd7a8fd7.chunk.js → sso-settings-page.36c35df0.chunk.js} +1 -1
  170. package/build/{sv-json.3b5cc7f9.chunk.js → sv-json.8ac61ecf.chunk.js} +1 -1
  171. package/build/{th-json.694b4038.chunk.js → th-json.6e4502a3.chunk.js} +1 -1
  172. package/build/{tr-json.a842843a.chunk.js → tr-json.eaca955b.chunk.js} +1 -1
  173. package/build/uk-json.da2ed14e.chunk.js +1 -0
  174. package/build/{upload-translation-de-json.b4ff3c56.chunk.js → upload-translation-de-json.00f90715.chunk.js} +1 -1
  175. package/build/{upload-translation-dk-json.f37ae5c0.chunk.js → upload-translation-dk-json.bc6af8b4.chunk.js} +1 -1
  176. package/build/upload-translation-en-json.6b529046.chunk.js +1 -0
  177. package/build/upload-translation-es-json.b53d6641.chunk.js +1 -0
  178. package/build/{upload-translation-fr-json.0f4b3839.chunk.js → upload-translation-fr-json.ccb4ad8b.chunk.js} +1 -1
  179. package/build/{upload-translation-he-json.4b5e48bc.chunk.js → upload-translation-he-json.5dc34ea8.chunk.js} +1 -1
  180. package/build/upload-translation-it-json.c1809a47.chunk.js +1 -0
  181. package/build/{upload-translation-ja-json.9e1193c7.chunk.js → upload-translation-ja-json.71aa85eb.chunk.js} +1 -1
  182. package/build/{upload-translation-ko-json.b6602572.chunk.js → upload-translation-ko-json.da369eef.chunk.js} +1 -1
  183. package/build/{upload-translation-ms-json.bfb86c2e.chunk.js → upload-translation-ms-json.be669f81.chunk.js} +1 -1
  184. package/build/{upload-translation-pl-json.e0282fa4.chunk.js → upload-translation-pl-json.67685825.chunk.js} +1 -1
  185. package/build/{upload-translation-pt-BR-json.ad6bb9f8.chunk.js → upload-translation-pt-BR-json.f7b1133d.chunk.js} +1 -1
  186. package/build/{upload-translation-ru-json.4303b6a0.chunk.js → upload-translation-ru-json.54c031aa.chunk.js} +1 -1
  187. package/build/{upload-translation-sk-json.90a0bc6c.chunk.js → upload-translation-sk-json.f643dfc2.chunk.js} +1 -1
  188. package/build/{upload-translation-th-json.cf0d62e0.chunk.js → upload-translation-th-json.88ee2090.chunk.js} +1 -1
  189. package/build/{upload-translation-uk-json.ec345d61.chunk.js → upload-translation-uk-json.1a90e73c.chunk.js} +1 -1
  190. package/build/{upload-translation-zh-Hans-json.f320fa39.chunk.js → upload-translation-zh-Hans-json.ac1dc0b9.chunk.js} +1 -1
  191. package/build/{upload-translation-zh-json.9ad30216.chunk.js → upload-translation-zh-json.164ac601.chunk.js} +1 -1
  192. package/build/{upload.1e3e2685.chunk.js → upload.6f33785e.chunk.js} +1 -1
  193. package/build/users-email-settings-page.678794aa.chunk.js +1 -0
  194. package/build/{users-permissions-translation-ar-json.6fe0dcf5.chunk.js → users-permissions-translation-ar-json.bdddd0d7.chunk.js} +1 -1
  195. package/build/{users-permissions-translation-cs-json.dd4bb452.chunk.js → users-permissions-translation-cs-json.7881d3ff.chunk.js} +1 -1
  196. package/build/{users-permissions-translation-de-json.1505b462.chunk.js → users-permissions-translation-de-json.8d53c619.chunk.js} +1 -1
  197. package/build/{users-permissions-translation-dk-json.6b47229f.chunk.js → users-permissions-translation-dk-json.3e0295e5.chunk.js} +1 -1
  198. package/build/{users-permissions-translation-en-json.3e650c44.chunk.js → users-permissions-translation-en-json.1993655e.chunk.js} +1 -1
  199. package/build/users-permissions-translation-es-json.a4f81eaa.chunk.js +1 -0
  200. package/build/users-permissions-translation-fr-json.a2172545.chunk.js +1 -0
  201. package/build/users-permissions-translation-id-json.8f17982a.chunk.js +1 -0
  202. package/build/{users-permissions-translation-it-json.baa4f859.chunk.js → users-permissions-translation-it-json.87952a24.chunk.js} +1 -1
  203. package/build/{users-permissions-translation-ja-json.3ddd4418.chunk.js → users-permissions-translation-ja-json.5915d9ef.chunk.js} +1 -1
  204. package/build/users-permissions-translation-ko-json.f1ca6cc4.chunk.js +1 -0
  205. package/build/{users-permissions-translation-ms-json.dc405667.chunk.js → users-permissions-translation-ms-json.2268324c.chunk.js} +1 -1
  206. package/build/{users-permissions-translation-nl-json.2d8e847a.chunk.js → users-permissions-translation-nl-json.4e1231dd.chunk.js} +1 -1
  207. package/build/{users-permissions-translation-pl-json.b150dfb0.chunk.js → users-permissions-translation-pl-json.107638b5.chunk.js} +1 -1
  208. package/build/{users-permissions-translation-pt-BR-json.0c494c69.chunk.js → users-permissions-translation-pt-BR-json.8dafc053.chunk.js} +1 -1
  209. package/build/{users-permissions-translation-pt-json.0fccc389.chunk.js → users-permissions-translation-pt-json.3322464f.chunk.js} +1 -1
  210. package/build/users-permissions-translation-ru-json.5709c5a0.chunk.js +1 -0
  211. package/build/{users-permissions-translation-sk-json.2602e768.chunk.js → users-permissions-translation-sk-json.fe7cc044.chunk.js} +1 -1
  212. package/build/users-permissions-translation-sv-json.e7e1684b.chunk.js +1 -0
  213. package/build/{users-permissions-translation-th-json.abe0558b.chunk.js → users-permissions-translation-th-json.bb544ee3.chunk.js} +1 -1
  214. package/build/{users-permissions-translation-tr-json.269ee593.chunk.js → users-permissions-translation-tr-json.30f3ca90.chunk.js} +1 -1
  215. package/build/{users-permissions-translation-uk-json.ffd9a4ee.chunk.js → users-permissions-translation-uk-json.634f2569.chunk.js} +1 -1
  216. package/build/{users-permissions-translation-vi-json.c2cd19d5.chunk.js → users-permissions-translation-vi-json.605d88bc.chunk.js} +1 -1
  217. package/build/{users-permissions-translation-zh-Hans-json.2d909528.chunk.js → users-permissions-translation-zh-Hans-json.85480dab.chunk.js} +1 -1
  218. package/build/{users-permissions-translation-zh-json.7f3027c5.chunk.js → users-permissions-translation-zh-json.99932731.chunk.js} +1 -1
  219. package/build/users-providers-settings-page.fa21d558.chunk.js +1 -0
  220. package/build/users-roles-settings-page.e65d4d62.chunk.js +1 -0
  221. package/build/{vi-json.c25f42fe.chunk.js → vi-json.e993857a.chunk.js} +1 -1
  222. package/build/webhook-edit-page.640e85eb.chunk.js +1 -0
  223. package/build/{webhook-list-page.8abf0b5f.chunk.js → webhook-list-page.93432566.chunk.js} +1 -1
  224. package/build/zh-Hans-json.fcc53388.chunk.js +1 -0
  225. package/build/zh-json.2e4c9ef4.chunk.js +1 -0
  226. package/ee/admin/pages/App/utils/customRoutes.js +1 -1
  227. package/ee/server/controllers/authentication/utils.js +1 -1
  228. package/index.html +1 -1
  229. package/index.js +43 -26
  230. package/package.json +30 -37
  231. package/server/bootstrap.js +16 -0
  232. package/server/controllers/webhooks.js +6 -10
  233. package/server/services/api-token.js +1 -1
  234. package/server/services/metrics.js +6 -0
  235. package/server/services/permission/permissions-manager/sanitize.js +13 -5
  236. package/server/services/user.js +10 -0
  237. package/server/strategies/api-token.js +0 -3
  238. package/webpack.alias.js +0 -6
  239. package/webpack.config.js +1 -3
  240. package/build/2664.f33f619d.chunk.js +0 -2
  241. package/build/3226.1a4b5cd1.chunk.js +0 -2
  242. package/build/4064.2683bcce.chunk.js +0 -1
  243. package/build/4261.b7b7ac00.chunk.js +0 -1
  244. package/build/4362.c65ab24b.chunk.js +0 -1
  245. package/build/4741.1fb6ad6e.chunk.js +0 -2
  246. package/build/849.35b7e7af.chunk.js +0 -1
  247. package/build/9238.63386655.chunk.js +0 -1
  248. package/build/Admin-authenticatedApp.5e99b423.chunk.js +0 -1
  249. package/build/Admin_homePage.74b48134.chunk.js +0 -1
  250. package/build/Admin_marketplace.8d0028cc.chunk.js +0 -1
  251. package/build/Admin_profilePage.f276f571.chunk.js +0 -1
  252. package/build/Admin_settingsPage.1947fe0c.chunk.js +0 -1
  253. package/build/admin-edit-roles-page.2bccaf76.chunk.js +0 -1
  254. package/build/admin-edit-users.1632dcf7.chunk.js +0 -1
  255. package/build/admin-users.1f0533e6.chunk.js +0 -1
  256. package/build/api-tokens-list-page.d451255e.chunk.js +0 -1
  257. package/build/codemirror-css.d09c79d2.chunk.js +0 -1
  258. package/build/codemirror-theme.4a209ed5.chunk.js +0 -1
  259. package/build/content-manager.363a1bad.chunk.js +0 -1
  260. package/build/content-type-builder-translation-dk-json.215eca36.chunk.js +0 -1
  261. package/build/content-type-builder-translation-es-json.5a4f519b.chunk.js +0 -1
  262. package/build/content-type-builder-translation-id-json.e66f4e0a.chunk.js +0 -1
  263. package/build/content-type-builder.aa13e7a4.chunk.js +0 -1
  264. package/build/cropper-css.b71d1229.chunk.js +0 -1
  265. package/build/de-json.93987708.chunk.js +0 -1
  266. package/build/dk-json.97f8f309.chunk.js +0 -1
  267. package/build/email-settings-page.d3ce077f.chunk.js +0 -1
  268. package/build/email-translation-ar-json.536b0217.chunk.js +0 -1
  269. package/build/email-translation-cs-json.8f533c9b.chunk.js +0 -1
  270. package/build/email-translation-de-json.89f5373e.chunk.js +0 -1
  271. package/build/email-translation-dk-json.9c95cf96.chunk.js +0 -1
  272. package/build/email-translation-es-json.fec78330.chunk.js +0 -1
  273. package/build/email-translation-fr-json.76afb1c3.chunk.js +0 -1
  274. package/build/email-translation-id-json.1b3e055a.chunk.js +0 -1
  275. package/build/email-translation-it-json.7273fee2.chunk.js +0 -1
  276. package/build/email-translation-ms-json.af7c5861.chunk.js +0 -1
  277. package/build/email-translation-nl-json.10fec023.chunk.js +0 -1
  278. package/build/email-translation-pl-json.ebda42d5.chunk.js +0 -1
  279. package/build/email-translation-pt-BR-json.338d8b7c.chunk.js +0 -1
  280. package/build/email-translation-pt-json.1cd0fedf.chunk.js +0 -1
  281. package/build/email-translation-ru-json.2c369331.chunk.js +0 -1
  282. package/build/email-translation-sk-json.ba2e026d.chunk.js +0 -1
  283. package/build/email-translation-th-json.16457076.chunk.js +0 -1
  284. package/build/email-translation-tr-json.92e0a5d9.chunk.js +0 -1
  285. package/build/email-translation-uk-json.d00dd5b1.chunk.js +0 -1
  286. package/build/email-translation-vi-json.ed425dde.chunk.js +0 -1
  287. package/build/email-translation-zh-Hans-json.e2c630b6.chunk.js +0 -1
  288. package/build/email-translation-zh-json.2a06ebac.chunk.js +0 -1
  289. package/build/en-json.4c3c1c95.chunk.js +0 -1
  290. package/build/es-json.060b658c.chunk.js +0 -1
  291. package/build/fontawesome-css-all.90be2358.chunk.js +0 -1
  292. package/build/fontawesome-css.32df0f91.chunk.js +0 -1
  293. package/build/fr-json.c75e1a2e.chunk.js +0 -1
  294. package/build/highlight.js.3f31aed7.chunk.js +0 -1
  295. package/build/i18n-translation-fr-json.482f6933.chunk.js +0 -1
  296. package/build/ja-json.14eaee93.chunk.js +0 -1
  297. package/build/main.dfa22c7a.js +0 -2
  298. package/build/nl-json.9e55cf9c.chunk.js +0 -1
  299. package/build/pt-BR-json.e21cd994.chunk.js +0 -1
  300. package/build/runtime~main.2d8596f7.js +0 -1
  301. package/build/uk-json.3b8f967b.chunk.js +0 -1
  302. package/build/upload-translation-en-json.d205cecd.chunk.js +0 -1
  303. package/build/upload-translation-es-json.f9e9ffdf.chunk.js +0 -1
  304. package/build/upload-translation-it-json.fb24c332.chunk.js +0 -1
  305. package/build/users-email-settings-page.36142cd7.chunk.js +0 -1
  306. package/build/users-permissions-translation-es-json.768cc00e.chunk.js +0 -1
  307. package/build/users-permissions-translation-fr-json.12f3c930.chunk.js +0 -1
  308. package/build/users-permissions-translation-id-json.ec3deaf0.chunk.js +0 -1
  309. package/build/users-permissions-translation-ko-json.4677f640.chunk.js +0 -1
  310. package/build/users-permissions-translation-ru-json.4389c542.chunk.js +0 -1
  311. package/build/users-permissions-translation-sv-json.438e46f7.chunk.js +0 -1
  312. package/build/users-providers-settings-page.2c0685d3.chunk.js +0 -1
  313. package/build/users-roles-settings-page.61c9b376.chunk.js +0 -1
  314. package/build/webhook-edit-page.36755ae4.chunk.js +0 -1
  315. package/build/zh-Hans-json.e5041b18.chunk.js +0 -1
  316. package/build/zh-json.3b683748.chunk.js +0 -1
@@ -80,12 +80,20 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }) => {
80
80
  }
81
81
  };
82
82
 
83
+ const menuTitle = formatMessage({
84
+ id: 'app.components.LeftMenu.navbrand.title',
85
+ defaultMessage: 'Strapi Dashboard',
86
+ });
87
+
83
88
  return (
84
89
  <MainNav condensed={condensed}>
85
90
  <NavBrand
86
- workplace="Workplace"
87
- title="Strapi Dashboard"
88
- icon={<img src={menuLogo} alt="Strapi Dashboard" />}
91
+ workplace={formatMessage({
92
+ id: 'app.components.LeftMenu.navbrand.workplace',
93
+ defaultMessage: 'Workplace',
94
+ })}
95
+ title={menuTitle}
96
+ icon={<img src={menuLogo} alt={menuTitle} />}
89
97
  />
90
98
 
91
99
  <Divider />
@@ -149,7 +157,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }) => {
149
157
  >
150
158
  <FocusTrap onEscape={handleToggleUserLinks}>
151
159
  <Stack size={0}>
152
- <LinkUser onClick={handleToggleUserLinks} to="/me">
160
+ <LinkUser tabIndex={0} onClick={handleToggleUserLinks} to="/me">
153
161
  <Typography>
154
162
  {formatMessage({
155
163
  id: 'app.components.LeftMenu.profile',
@@ -157,7 +165,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }) => {
157
165
  })}
158
166
  </Typography>
159
167
  </LinkUser>
160
- <LinkUser onClick={handleLogout} logout="logout" to="/auth/login">
168
+ <LinkUser tabIndex={0} onClick={handleLogout} logout="logout" to="/auth/login">
161
169
  <Typography textColor="danger600">
162
170
  {formatMessage({
163
171
  id: 'app.components.LeftMenu.logout',
@@ -70,9 +70,14 @@ const UpgradePlanModal = ({ onClose, isOpen }) => {
70
70
 
71
71
  return (
72
72
  <Portal>
73
- <UpgradeWrapper>
73
+ <UpgradeWrapper onClick={onClose}>
74
74
  <FocusTrap onEscape={onClose}>
75
- <UpgradeContainer aria-labelledby="upgrade-plan" background="neutral0" hasRadius>
75
+ <UpgradeContainer
76
+ onClick={e => e.stopPropagation()}
77
+ aria-labelledby="upgrade-plan"
78
+ background="neutral0"
79
+ hasRadius
80
+ >
76
81
  <img src={AirBalloon} alt="air-balloon" />
77
82
  <CloseButtonContainer>
78
83
  <IconButton onClick={onClose} aria-label="Close" icon={<Cross />} />
@@ -1,6 +1,7 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import { useIntl } from 'react-intl';
3
3
  import toString from 'lodash/toString';
4
+ import { getNumberOfDecimals } from './utils/getNumberOfDecimals';
4
5
 
5
6
  const CellValue = ({ type, value }) => {
6
7
  const { formatDate, formatTime, formatNumber } = useIntl();
@@ -27,8 +28,17 @@ const CellValue = ({ type, value }) => {
27
28
  });
28
29
  }
29
30
 
30
- if (['float', 'integer', 'biginteger', 'decimal'].includes(type)) {
31
- formattedValue = formatNumber(value);
31
+ if (['float', 'decimal'].includes(type)) {
32
+ const numberOfDecimals = getNumberOfDecimals(value);
33
+
34
+ formattedValue = formatNumber(value, {
35
+ minimumFractionDigits: numberOfDecimals,
36
+ maximumFractionDigits: numberOfDecimals,
37
+ });
38
+ }
39
+
40
+ if (['integer', 'biginteger'].includes(type)) {
41
+ formattedValue = formatNumber(value, { maximumFractionDigits: 0 });
32
42
  }
33
43
 
34
44
  return toString(formattedValue);
@@ -0,0 +1,8 @@
1
+ export const getNumberOfDecimals = value => {
2
+ if (value % 1 !== 0) {
3
+ // value has decimals
4
+ return value.toString().split('.')[1].length;
5
+ }
6
+
7
+ return 0;
8
+ };
@@ -17,7 +17,7 @@ const StyledBox = styled(Box)`
17
17
  border-radius: ${pxToRem(26)};
18
18
  `;
19
19
 
20
- const DzLabel = ({ label, labelAction, name, numberOfComponents, required }) => {
20
+ const DzLabel = ({ label, labelAction, name, numberOfComponents, required, intlDescription }) => {
21
21
  const { formatMessage } = useIntl();
22
22
  const intlLabel = formatMessage({ id: label || name, defaultMessage: label || name });
23
23
 
@@ -33,12 +33,24 @@ const DzLabel = ({ label, labelAction, name, numberOfComponents, required }) =>
33
33
  shadow="filterShadow"
34
34
  color="neutral500"
35
35
  >
36
- <Flex>
37
- <Typography fontSize={0} lineHeight={0} textColor="neutral600" fontWeight="bold">
38
- {intlLabel}&nbsp;({numberOfComponents})
39
- </Typography>
40
- {required && <Typography textColor="danger600">*</Typography>}
41
- {labelAction && <Box paddingLeft={1}>{labelAction}</Box>}
36
+ <Flex direction="column" justifyContent="center">
37
+ <Flex maxWidth={pxToRem(356)}>
38
+ <Typography variant="pi" textColor="neutral600" fontWeight="bold" ellipsis>
39
+ {intlLabel}&nbsp;
40
+ </Typography>
41
+ <Typography variant="pi" textColor="neutral600" fontWeight="bold">
42
+ ({numberOfComponents})
43
+ </Typography>
44
+ {required && <Typography textColor="danger600">*</Typography>}
45
+ {labelAction && <Box paddingLeft={1}>{labelAction}</Box>}
46
+ </Flex>
47
+ {intlDescription && (
48
+ <Box paddingTop={1} maxWidth={pxToRem(356)}>
49
+ <Typography variant="pi" textColor="neutral600" ellipsis>
50
+ {formatMessage(intlDescription)}
51
+ </Typography>
52
+ </Box>
53
+ )}
42
54
  </Flex>
43
55
  </StyledBox>
44
56
  </Box>
@@ -47,12 +59,17 @@ const DzLabel = ({ label, labelAction, name, numberOfComponents, required }) =>
47
59
  };
48
60
 
49
61
  DzLabel.defaultProps = {
62
+ intlDescription: undefined,
50
63
  label: '',
51
64
  labelAction: undefined,
52
65
  required: false,
53
66
  };
54
67
 
55
68
  DzLabel.propTypes = {
69
+ intlDescription: PropTypes.shape({
70
+ id: PropTypes.string.isRequired,
71
+ defaultMessage: PropTypes.string.isRequired,
72
+ }),
56
73
  label: PropTypes.string,
57
74
  labelAction: PropTypes.element,
58
75
  name: PropTypes.string.isRequired,
@@ -39,6 +39,9 @@ const DynamicZone = ({
39
39
  const [isOpen, setIsOpen] = useState(false);
40
40
  const [shouldOpenAddedComponent, setShouldOpenAddedComponent] = useState(false);
41
41
  const dynamicDisplayedComponentsLength = dynamicDisplayedComponents.length;
42
+ const intlDescription = metadatas.description
43
+ ? { id: metadatas.description, defaultMessage: metadatas.description }
44
+ : null;
42
45
 
43
46
  const [componentCollapses, setComponentsCollapses] = useState(
44
47
  createCollapses(dynamicDisplayedComponentsLength)
@@ -159,11 +162,7 @@ const DynamicZone = ({
159
162
  if (!isFieldAllowed && isCreatingEntry) {
160
163
  return (
161
164
  <NotAllowedInput
162
- description={
163
- metadatas.description
164
- ? { id: metadatas.description, defaultMessage: metadatas.description }
165
- : null
166
- }
165
+ description={intlDescription}
167
166
  intlLabel={{ id: metadatas.label, defaultMessage: metadatas.label }}
168
167
  labelAction={labelAction}
169
168
  name={name}
@@ -174,11 +173,7 @@ const DynamicZone = ({
174
173
  if (!isFieldAllowed && !isFieldReadable && !isCreatingEntry) {
175
174
  return (
176
175
  <NotAllowedInput
177
- description={
178
- metadatas.description
179
- ? { id: metadatas.description, defaultMessage: metadatas.description }
180
- : null
181
- }
176
+ description={intlDescription}
182
177
  intlLabel={{ id: metadatas.label, defaultMessage: metadatas.label }}
183
178
  labelAction={labelAction}
184
179
  name={name}
@@ -191,6 +186,7 @@ const DynamicZone = ({
191
186
  {dynamicDisplayedComponentsLength > 0 && (
192
187
  <Box>
193
188
  <DzLabel
189
+ intlDescription={intlDescription}
194
190
  label={metadatas.label}
195
191
  labelAction={labelAction}
196
192
  name={name}
@@ -32,6 +32,7 @@ const InputUID = ({
32
32
  onChange,
33
33
  value,
34
34
  placeholder,
35
+ required,
35
36
  }) => {
36
37
  const { modifiedData, initialData, layout } = useCMEditViewDataManager();
37
38
  const [isLoading, setIsLoading] = useState(false);
@@ -244,6 +245,7 @@ const InputUID = ({
244
245
  onChange={handleChange}
245
246
  placeholder={formattedPlaceholder}
246
247
  value={value || ''}
248
+ required={required}
247
249
  />
248
250
  );
249
251
  };
@@ -275,6 +277,7 @@ InputUID.propTypes = {
275
277
  defaultMessage: PropTypes.string.isRequired,
276
278
  values: PropTypes.object,
277
279
  }),
280
+ required: PropTypes.bool,
278
281
  };
279
282
 
280
283
  InputUID.defaultProps = {
@@ -284,6 +287,7 @@ InputUID.defaultProps = {
284
287
  labelAction: undefined,
285
288
  placeholder: undefined,
286
289
  value: '',
290
+ required: false,
287
291
  };
288
292
 
289
293
  export default InputUID;
@@ -23,6 +23,10 @@ const Wrapper = styled.div`
23
23
  margin-block-end: 10px;
24
24
  }
25
25
 
26
+ p {
27
+ margin-bottom: 10px;
28
+ }
29
+
26
30
  h1 {
27
31
  font-size: ${36 / 16}rem;
28
32
  font-weight: 600;
@@ -47,6 +51,10 @@ const Wrapper = styled.div`
47
51
  font-weight: 800;
48
52
  }
49
53
 
54
+ em {
55
+ font-style: italic;
56
+ }
57
+
50
58
  blockquote {
51
59
  margin-top: 41px;
52
60
  margin-bottom: 34px;
@@ -20,7 +20,7 @@ loadCss();
20
20
  const md = new Markdown({
21
21
  html: true, // Enable HTML tags in source
22
22
  xhtmlOut: false,
23
- breaks: false,
23
+ breaks: true,
24
24
  langPrefix: 'language-',
25
25
  linkify: true,
26
26
  typographer: true,
@@ -20,10 +20,6 @@ export const CustomIconButton = styled(IconButton)`
20
20
  }
21
21
  `;
22
22
 
23
- export const DragHandleWrapper = styled(CustomIconButton)`
24
- cursor: move;
25
- `;
26
-
27
23
  export const CustomIconButtonSibling = styled(IconButton)`
28
24
  background-color: transparent;
29
25
 
@@ -3,12 +3,14 @@ import React, { memo, useEffect, useRef, useState } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { useDrag, useDrop } from 'react-dnd';
5
5
  import { getEmptyImage } from 'react-dnd-html5-backend';
6
+ import styled from 'styled-components';
6
7
  import { useIntl } from 'react-intl';
7
8
  import toString from 'lodash/toString';
8
9
  import { Accordion, AccordionToggle, AccordionContent } from '@strapi/design-system/Accordion';
9
10
  import { Grid, GridItem } from '@strapi/design-system/Grid';
10
11
  import { Stack } from '@strapi/design-system/Stack';
11
12
  import { Box } from '@strapi/design-system/Box';
13
+ import { Tooltip } from '@strapi/design-system/Tooltip';
12
14
  import Trash from '@strapi/icons/Trash';
13
15
  import Drag from '@strapi/icons/Drag';
14
16
  import ItemTypes from '../../../utils/ItemTypes';
@@ -17,9 +19,23 @@ import Inputs from '../../Inputs';
17
19
  import FieldComponent from '../../FieldComponent';
18
20
  import Preview from './Preview';
19
21
  import DraggingSibling from './DraggingSibling';
20
- import { CustomIconButton, DragHandleWrapper } from './IconButtonCustoms';
22
+ import { CustomIconButton } from './IconButtonCustoms';
21
23
  import { connect, select } from './utils';
22
24
 
25
+ const DragButton = styled.span`
26
+ display: flex;
27
+ align-items: center;
28
+ height: ${({ theme }) => theme.spaces[7]};
29
+
30
+ padding: 0 ${({ theme }) => theme.spaces[3]};
31
+ cursor: all-scroll;
32
+
33
+ svg {
34
+ width: ${12 / 16}rem;
35
+ height: ${12 / 16}rem;
36
+ }
37
+ `;
38
+
23
39
  /* eslint-disable react/no-array-index-key */
24
40
 
25
41
  // Issues:
@@ -40,7 +56,7 @@ const DraggedItem = ({
40
56
  // Retrieved from the select function
41
57
  moveComponentField,
42
58
  removeRepeatableField,
43
- setIsDraggingSiblig,
59
+ setIsDraggingSibling,
44
60
  triggerFormValidation,
45
61
  // checkFormErrors,
46
62
  displayedValue,
@@ -125,7 +141,7 @@ const DraggedItem = ({
125
141
  end: () => {
126
142
  // Update the errors
127
143
  triggerFormValidation();
128
- setIsDraggingSiblig(false);
144
+ setIsDraggingSibling(false);
129
145
  },
130
146
  collect: monitor => ({
131
147
  isDragging: monitor.isDragging(),
@@ -138,9 +154,9 @@ const DraggedItem = ({
138
154
 
139
155
  useEffect(() => {
140
156
  if (isDragging) {
141
- setIsDraggingSiblig(true);
157
+ setIsDraggingSibling(true);
142
158
  }
143
- }, [isDragging, setIsDraggingSiblig]);
159
+ }, [isDragging, setIsDraggingSibling]);
144
160
 
145
161
  // Effect in order to force a rerender after reordering the components
146
162
  // Since we are removing the Accordion when doing the DnD we are losing the dragRef, therefore the replaced element cannot be dragged
@@ -195,16 +211,22 @@ const DraggedItem = ({
195
211
  })}
196
212
  icon={<Trash />}
197
213
  />
198
- <DragHandleWrapper
199
- expanded={isOpen}
200
- icon={<Drag />}
201
- label={formatMessage({
214
+ {/* react-dnd is broken in firefox with our IconButton, maybe a ref issue */}
215
+ <Tooltip
216
+ description={formatMessage({
202
217
  id: getTrad('components.DragHandle-label'),
203
218
  defaultMessage: 'Drag',
204
219
  })}
205
- noBorder
206
- ref={refs.dragRef}
207
- />
220
+ >
221
+ <DragButton
222
+ role="button"
223
+ tabIndex={-1}
224
+ ref={refs.dragRef}
225
+ onClick={e => e.stopPropagation()}
226
+ >
227
+ <Drag />
228
+ </DragButton>
229
+ </Tooltip>
208
230
  </Stack>
209
231
  )
210
232
  }
@@ -268,7 +290,7 @@ const DraggedItem = ({
268
290
  DraggedItem.defaultProps = {
269
291
  isDraggingSibling: false,
270
292
  isOpen: false,
271
- setIsDraggingSiblig: () => {},
293
+ setIsDraggingSibling: () => {},
272
294
  toggleCollapses: () => {},
273
295
  };
274
296
 
@@ -284,7 +306,7 @@ DraggedItem.propTypes = {
284
306
  toggleCollapses: PropTypes.func,
285
307
  moveComponentField: PropTypes.func.isRequired,
286
308
  removeRepeatableField: PropTypes.func.isRequired,
287
- setIsDraggingSiblig: PropTypes.func,
309
+ setIsDraggingSibling: PropTypes.func,
288
310
  triggerFormValidation: PropTypes.func.isRequired,
289
311
  // checkFormErrors: PropTypes.func.isRequired,
290
312
  displayedValue: PropTypes.string.isRequired,
@@ -47,7 +47,7 @@ const RepeatableComponent = ({
47
47
  const toggleNotification = useNotification();
48
48
  const { formatMessage } = useIntl();
49
49
  const [collapseToOpen, setCollapseToOpen] = useState('');
50
- const [isDraggingSibling, setIsDraggingSiblig] = useState(false);
50
+ const [isDraggingSibling, setIsDraggingSibling] = useState(false);
51
51
  const [, drop] = useDrop({ accept: ItemTypes.COMPONENT });
52
52
  const { getComponentLayout } = useContentTypeLayout();
53
53
  const componentLayoutData = useMemo(() => getComponentLayout(componentUid), [
@@ -173,7 +173,7 @@ const RepeatableComponent = ({
173
173
  }}
174
174
  parentName={name}
175
175
  schema={componentLayoutData}
176
- setIsDraggingSiblig={setIsDraggingSiblig}
176
+ setIsDraggingSibling={setIsDraggingSibling}
177
177
  toggleCollapses={toggleCollapses}
178
178
  />
179
179
  );
@@ -12,6 +12,7 @@ const Editor = ({
12
12
  editorRef,
13
13
  error,
14
14
  isPreviewMode,
15
+ isExpandMode,
15
16
  name,
16
17
  onChange,
17
18
  placeholder,
@@ -25,9 +26,8 @@ const Editor = ({
25
26
  lineWrapping: true,
26
27
  extraKeys: {
27
28
  Enter: 'newlineAndIndentContinueMarkdownList',
28
- // Leaving this commented for now
29
- // Tab: false,
30
- // 'Shift-Tab': false,
29
+ Tab: false,
30
+ 'Shift-Tab': false,
31
31
  },
32
32
  readOnly: false,
33
33
  smartIndent: false,
@@ -65,7 +65,7 @@ const Editor = ({
65
65
 
66
66
  return (
67
67
  <EditorAndPreviewWrapper>
68
- <EditorStylesContainer disabled={disabled || isPreviewMode}>
68
+ <EditorStylesContainer isExpandMode={isExpandMode} disabled={disabled || isPreviewMode}>
69
69
  <textarea ref={textareaRef} />
70
70
  </EditorStylesContainer>
71
71
  {isPreviewMode && <PreviewWysiwyg data={value} />}
@@ -77,6 +77,7 @@ Editor.defaultProps = {
77
77
  disabled: false,
78
78
  error: undefined,
79
79
  isPreviewMode: false,
80
+ isExpandMode: false,
80
81
  placeholder: '',
81
82
  value: '',
82
83
  };
@@ -86,6 +87,7 @@ Editor.propTypes = {
86
87
  editorRef: PropTypes.shape({ current: PropTypes.any }).isRequired,
87
88
  error: PropTypes.string,
88
89
  isPreviewMode: PropTypes.bool,
90
+ isExpandMode: PropTypes.bool,
89
91
  name: PropTypes.string.isRequired,
90
92
  onChange: PropTypes.func.isRequired,
91
93
  placeholder: PropTypes.string,
@@ -68,6 +68,7 @@ export const EditorLayout = ({ children, isExpandMode, error, previewContent, on
68
68
  bottom={0}
69
69
  zIndex={4}
70
70
  justifyContent="center"
71
+ onClick={onCollapse}
71
72
  >
72
73
  <Box
73
74
  id="wysiwyg-expand"
@@ -77,6 +78,7 @@ export const EditorLayout = ({ children, isExpandMode, error, previewContent, on
77
78
  overflow="hidden"
78
79
  width="70%"
79
80
  height="70%"
81
+ onClick={e => e.stopPropagation()}
80
82
  >
81
83
  <Flex height="100%" alignItems="flex-start">
82
84
  <BoxWithBorder flex="1" height="100%">
@@ -4,6 +4,7 @@ import styled from 'styled-components';
4
4
  /* stylelint-disable */
5
5
  export const EditorStylesContainer = styled.div`
6
6
  cursor: ${({ disabled }) => (disabled ? 'not-allowed !important' : 'auto')};
7
+ height: 100%;
7
8
  /* BASICS */
8
9
  .CodeMirror-placeholder {
9
10
  color: ${({ theme }) => theme.colors.neutral600} !important;
@@ -12,7 +13,7 @@ export const EditorStylesContainer = styled.div`
12
13
  .CodeMirror {
13
14
  /* Set height, width, borders, and global font properties here */
14
15
  font-size: ${14 / 16}rem;
15
- height: 290px;
16
+ height: ${({ isExpandMode }) => (isExpandMode ? '100%' : '290px')};
16
17
  color: ${({ theme }) => theme.colors.neutral800};
17
18
  direction: ltr;
18
19
  font-family: --apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
@@ -7,13 +7,13 @@ import { Typography } from '@strapi/design-system/Typography';
7
7
  import Expand from '@strapi/icons/Expand';
8
8
  import { ExpandButton } from './WysiwygStyles';
9
9
 
10
- const WysiwygFooter = ({ isPreviewMode, onToggleExpand }) => {
10
+ const WysiwygFooter = ({ onToggleExpand }) => {
11
11
  const { formatMessage } = useIntl();
12
12
 
13
13
  return (
14
14
  <Box padding={2} background="neutral100" hasRadius>
15
15
  <Flex justifyContent="flex-end" alignItems="flex-end">
16
- <ExpandButton id="expand" disabled={isPreviewMode} onClick={onToggleExpand}>
16
+ <ExpandButton id="expand" onClick={onToggleExpand}>
17
17
  <Typography>
18
18
  {formatMessage({
19
19
  id: 'components.WysiwygBottomControls.fullscreen',
@@ -29,12 +29,10 @@ const WysiwygFooter = ({ isPreviewMode, onToggleExpand }) => {
29
29
 
30
30
  WysiwygFooter.defaultProps = {
31
31
  onToggleExpand: () => {},
32
- isPreviewMode: false,
33
32
  };
34
33
 
35
34
  WysiwygFooter.propTypes = {
36
35
  onToggleExpand: PropTypes.func,
37
- isPreviewMode: PropTypes.bool,
38
36
  };
39
37
 
40
38
  export default WysiwygFooter;