@strapi/admin 4.14.3 → 4.14.5

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 (657) hide show
  1. package/.eslintrc.js +4 -1
  2. package/admin/.eslintrc.js +28 -0
  3. package/admin/custom.d.ts +28 -0
  4. package/admin/src/StrapiApp.js +14 -16
  5. package/admin/src/components/AuthenticatedApp/index.js +7 -11
  6. package/admin/src/components/AuthenticatedApp/utils/api.js +1 -39
  7. package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.ts +13 -0
  8. package/admin/src/{hooks/useReleaseNotification/utils/api.js → components/AuthenticatedApp/utils/fetchStrapiLatestRelease.ts} +2 -3
  9. package/admin/src/components/ConfigurationProvider.tsx +67 -0
  10. package/admin/src/components/{DragLayer/DragLayer.js → DragLayer.tsx} +18 -10
  11. package/admin/src/components/LanguageProvider.tsx +129 -0
  12. package/admin/src/components/{LeftMenu/index.js → LeftMenu.tsx} +23 -18
  13. package/admin/src/components/{NpsSurvey/index.js → NpsSurvey.tsx} +68 -21
  14. package/admin/src/components/PluginsInitializer.tsx +124 -0
  15. package/admin/src/components/PrivateRoute.tsx +42 -0
  16. package/admin/src/components/Providers/index.js +8 -8
  17. package/admin/src/components/Theme.tsx +39 -0
  18. package/admin/src/components/ThemeToggleProvider.tsx +50 -0
  19. package/admin/src/components/{UnauthenticatedLogo/index.js → UnauthenticatedLogo.tsx} +3 -5
  20. package/admin/src/components/{LocalesProvider/__mocks__/useLocalesProvider.js → __mocks__/LanguageProvider.js} +1 -1
  21. package/admin/src/content-manager/components/BlocksEditor/BlocksInput/index.js +68 -9
  22. package/admin/src/content-manager/components/BlocksEditor/Toolbar/index.js +374 -167
  23. package/admin/src/content-manager/components/BlocksEditor/hooks/useBlocksStore.js +405 -135
  24. package/admin/src/content-manager/components/BlocksEditor/hooks/useModifiersStore.js +23 -6
  25. package/admin/src/content-manager/components/BlocksEditor/index.js +97 -20
  26. package/admin/src/content-manager/components/BlocksEditor/plugins/index.js +4 -0
  27. package/admin/src/content-manager/components/BlocksEditor/plugins/withLinks.js +61 -0
  28. package/admin/src/content-manager/components/BlocksEditor/plugins/withStrapiSchema.js +33 -0
  29. package/admin/src/content-manager/components/BlocksEditor/utils/links.js +90 -0
  30. package/admin/src/content-manager/components/InputUID/index.js +1 -1
  31. package/admin/src/content-manager/hooks/useAllowedAttributes.js +9 -1
  32. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -0
  33. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +1 -0
  34. package/admin/src/content-manager/pages/ListSettingsView/constants.js +1 -0
  35. package/admin/src/content-manager/pages/ListView/index.js +2 -1
  36. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  37. package/admin/src/content-manager/utils/schema.js +2 -2
  38. package/admin/src/contexts/admin.ts +18 -0
  39. package/admin/src/contexts/configuration.ts +25 -0
  40. package/admin/src/contexts/themeToggle.ts +16 -0
  41. package/admin/src/hooks/{useConfigurations/__mocks__/index.js → __mocks__/useConfigurations.ts} +4 -2
  42. package/admin/src/hooks/index.js +0 -7
  43. package/admin/src/hooks/{useAdminRoles/index.js → useAdminRoles.ts} +26 -10
  44. package/admin/src/hooks/useAdminUsers.ts +64 -0
  45. package/admin/src/hooks/useConfiguration.ts +5 -0
  46. package/admin/src/hooks/useDebounce.ts +17 -0
  47. package/admin/src/hooks/{useEnterprise/useEnterprise.js → useEnterprise.ts} +15 -5
  48. package/admin/src/hooks/useLicenseLimitNotification.ts +3 -0
  49. package/admin/src/hooks/useMenu.ts +153 -0
  50. package/admin/src/hooks/useThemeToggle.ts +9 -0
  51. package/admin/src/index.js +5 -2
  52. package/admin/src/layouts/UnauthenticatedLayout/LocaleToggle/index.js +2 -2
  53. package/admin/src/pages/Admin/index.js +4 -3
  54. package/admin/src/pages/App/index.js +6 -4
  55. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -1
  56. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -1
  57. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -1
  58. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -1
  59. package/admin/src/pages/AuthPage/components/Register/index.js +29 -34
  60. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +1 -1
  61. package/admin/src/pages/AuthPage/index.js +2 -2
  62. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +0 -2
  63. package/admin/src/pages/MarketplacePage/hooks/__mocks__/useNavigatorOnline.ts +1 -0
  64. package/admin/src/{hooks/useNavigatorOnLine/index.js → pages/MarketplacePage/hooks/useNavigatorOnline.ts} +4 -6
  65. package/admin/src/pages/MarketplacePage/index.js +3 -3
  66. package/admin/src/pages/ProfilePage/index.js +3 -3
  67. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +1 -1
  68. package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +119 -87
  69. package/admin/src/{hooks/useRegenerate/index.js → pages/SettingsPage/hooks/useRegenerate.ts} +13 -7
  70. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +1 -1
  71. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/CustomizationInfos/index.js +2 -2
  72. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +2 -2
  73. package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  74. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/index.js +1 -1
  75. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/index.js +1 -1
  76. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/index.js +1 -1
  77. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/SubActionRow/index.js +1 -1
  78. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +1 -1
  79. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PermissionsDataManagerProvider/index.js +1 -1
  80. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/index.js +1 -1
  81. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/hooks/usePermissionsDataManager.ts +28 -0
  82. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +1 -1
  83. package/admin/src/{hooks/useAdminRolePermissions/index.js → pages/SettingsPage/pages/Roles/hooks/useAdminRolePermissions.ts} +13 -6
  84. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +3 -5
  85. package/admin/src/pages/UseCasePage/index.js +1 -1
  86. package/admin/src/shared/hooks/index.js +0 -1
  87. package/admin/src/shared/hooks/useInjectionZone/index.js +2 -2
  88. package/admin/src/translations/en.json +8 -0
  89. package/admin/src/types/adminAPI.ts +29 -0
  90. package/admin/src/utils/createRoute.js +4 -1
  91. package/admin/tsconfig.build.json +4 -0
  92. package/admin/tsconfig.json +11 -0
  93. package/build/1049.9236e785.chunk.js +1 -0
  94. package/build/1222.fe92c653.chunk.js +35 -0
  95. package/build/{1227.969e24e6.chunk.js → 1227.e0f7447b.chunk.js} +1 -1
  96. package/build/135.ad267b59.chunk.js +1 -0
  97. package/build/{1386.db9a2795.chunk.js → 1386.07f2bbb3.chunk.js} +2 -2
  98. package/build/1835.eaa696ba.chunk.js +1 -0
  99. package/build/2225.a2147b8f.chunk.js +79 -0
  100. package/build/2325.d705b39a.chunk.js +1 -0
  101. package/build/{2379.906334f0.chunk.js → 2379.b0bc4013.chunk.js} +1 -1
  102. package/build/{2395.f6ac2863.chunk.js → 2395.d37b1025.chunk.js} +1 -1
  103. package/build/2421.79e5b3d0.chunk.js +1 -0
  104. package/build/267.073a3bcb.chunk.js +1 -0
  105. package/build/2801.12522720.chunk.js +1 -0
  106. package/build/2878.145ebf7c.chunk.js +1 -0
  107. package/build/2953.284a63c0.chunk.js +1 -0
  108. package/build/{9832.65ed5a44.chunk.js → 3019.0d74d080.chunk.js} +4 -4
  109. package/build/{3483.f6b2439f.chunk.js → 3483.8f1b25f8.chunk.js} +1 -1
  110. package/build/{4174.3e13fb26.chunk.js → 4174.2c4f958e.chunk.js} +1 -1
  111. package/build/4429.7f044dc7.chunk.js +1 -0
  112. package/build/4555.c883d697.chunk.js +1 -0
  113. package/build/4663.b906cc10.chunk.js +1 -0
  114. package/build/4916.480053a6.chunk.js +1 -0
  115. package/build/4996.d285c30b.chunk.js +1 -0
  116. package/build/{502.9918bff7.chunk.js → 502.b845473a.chunk.js} +1 -1
  117. package/build/570.2f3b4c56.chunk.js +1 -0
  118. package/build/5858.493b31ec.chunk.js +1 -0
  119. package/build/6345.334e7678.chunk.js +1 -0
  120. package/build/6373.1a21d665.chunk.js +105 -0
  121. package/build/6453.4160b5b7.chunk.js +1 -0
  122. package/build/7448.6fd14dd3.chunk.js +1 -0
  123. package/build/7464.91341b4f.chunk.js +1 -0
  124. package/build/7735.9e7c9fdd.chunk.js +10 -0
  125. package/build/782.7243b183.chunk.js +1 -0
  126. package/build/7849.2a500ed8.chunk.js +1 -0
  127. package/build/{7897.4a39de37.chunk.js → 7897.dffa5ad5.chunk.js} +2 -2
  128. package/build/8162.7d1100a0.chunk.js +1 -0
  129. package/build/{8276.951e198e.chunk.js → 8276.e9698944.chunk.js} +3 -3
  130. package/build/8894.5ca4852a.chunk.js +26 -0
  131. package/build/8980.f0045cc1.chunk.js +1 -0
  132. package/build/9153.42c1428a.chunk.js +1 -0
  133. package/build/9218.306ad178.chunk.js +1 -0
  134. package/build/9285.5f174057.chunk.js +1 -0
  135. package/build/{6266.e8990811.chunk.js → 9302.550cf5b7.chunk.js} +4 -4
  136. package/build/9547.62987774.chunk.js +1 -0
  137. package/build/9754.b4e73779.chunk.js +1 -0
  138. package/build/Admin-authenticatedApp.e897fccb.chunk.js +79 -0
  139. package/build/{Admin_InternalErrorPage.b3163562.chunk.js → Admin_InternalErrorPage.e2431a95.chunk.js} +1 -1
  140. package/build/{Admin_homePage.6cb51f18.chunk.js → Admin_homePage.71ef8d06.chunk.js} +16 -16
  141. package/build/Admin_marketplace.0db78604.chunk.js +44 -0
  142. package/build/{Admin_pluginsPage.b9fa2947.chunk.js → Admin_pluginsPage.1083f7f0.chunk.js} +1 -1
  143. package/build/{Admin_profilePage.a4d41380.chunk.js → Admin_profilePage.61704b7d.chunk.js} +2 -2
  144. package/build/Admin_settingsPage.39cb9fca.chunk.js +111 -0
  145. package/build/{Upload_ConfigureTheView.cc7ca628.chunk.js → Upload_ConfigureTheView.3cfeb108.chunk.js} +1 -1
  146. package/build/admin-app.06f5e70a.chunk.js +69 -0
  147. package/build/admin-edit-roles-page.556fac52.chunk.js +267 -0
  148. package/build/admin-edit-users.64fd1318.chunk.js +10 -0
  149. package/build/admin-roles-list.15918328.chunk.js +22 -0
  150. package/build/admin-users.74fddc87.chunk.js +11 -0
  151. package/build/{api-tokens-create-page.2f25ddf6.chunk.js → api-tokens-create-page.c08ae118.chunk.js} +1 -1
  152. package/build/{api-tokens-edit-page.45faac16.chunk.js → api-tokens-edit-page.ce18efdc.chunk.js} +1 -1
  153. package/build/api-tokens-list-page.783b7569.chunk.js +16 -0
  154. package/build/audit-logs-settings-page.12aeea8c.chunk.js +1 -0
  155. package/build/content-manager.2e3f660b.chunk.js +1220 -0
  156. package/build/{content-type-builder-list-view.aa8a5d1a.chunk.js → content-type-builder-list-view.38ed3935.chunk.js} +7 -7
  157. package/build/{content-type-builder-translation-en-json.b9e5cacd.chunk.js → content-type-builder-translation-en-json.43f9d7bc.chunk.js} +1 -1
  158. package/build/{content-type-builder.885f2cad.chunk.js → content-type-builder.758a9d23.chunk.js} +14 -14
  159. package/build/email-settings-page.e08a587e.chunk.js +11 -0
  160. package/build/{en-json.a3973ff5.chunk.js → en-json.bd611a8e.chunk.js} +1 -1
  161. package/build/{i18n-settings-page.6c0157e7.chunk.js → i18n-settings-page.3186e3e9.chunk.js} +1 -1
  162. package/build/index.html +1 -1
  163. package/build/main.00ea6f5a.js +2665 -0
  164. package/build/{review-workflows-settings-create-view.ae369a88.chunk.js → review-workflows-settings-create-view.5cdc4d64.chunk.js} +1 -1
  165. package/build/{review-workflows-settings-edit-view.9a61c69f.chunk.js → review-workflows-settings-edit-view.53bf7865.chunk.js} +1 -1
  166. package/build/review-workflows-settings-list-view.b4a8aefb.chunk.js +56 -0
  167. package/build/runtime~main.e3bf3980.js +2 -0
  168. package/build/sso-settings-page.6a35d473.chunk.js +1 -0
  169. package/build/{transfer-tokens-create-page.6e1b8cee.chunk.js → transfer-tokens-create-page.2662d519.chunk.js} +1 -1
  170. package/build/{transfer-tokens-edit-page.10bb22e2.chunk.js → transfer-tokens-edit-page.f64d8d8c.chunk.js} +1 -1
  171. package/build/transfer-tokens-list-page.e6fd5f87.chunk.js +16 -0
  172. package/build/upload-settings.450a1de0.chunk.js +14 -0
  173. package/build/{upload.19e14c8e.chunk.js → upload.0d53e7a3.chunk.js} +1 -1
  174. package/build/{users-advanced-settings-page.ed69812f.chunk.js → users-advanced-settings-page.4a1f1f6d.chunk.js} +1 -1
  175. package/build/{users-email-settings-page.131a00fb.chunk.js → users-email-settings-page.ea81fe82.chunk.js} +1 -1
  176. package/build/{users-providers-settings-page.b3dca41d.chunk.js → users-providers-settings-page.10280cdb.chunk.js} +1 -1
  177. package/build/{users-roles-settings-page.afab5a0d.chunk.js → users-roles-settings-page.4a7158be.chunk.js} +4 -4
  178. package/build/{webhook-edit-page.4c037da4.chunk.js → webhook-edit-page.65ac30ee.chunk.js} +3 -3
  179. package/build/{webhook-list-page.56c82f4a.chunk.js → webhook-list-page.f57285ca.chunk.js} +3 -3
  180. package/ee/admin/hooks/{useLicenseLimitNotification.js → useLicenseLimitNotification.ts} +4 -4
  181. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  182. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/index.js +1 -3
  183. package/jest.config.front.js +4 -0
  184. package/package.json +25 -18
  185. package/scripts/build.js +6 -2
  186. package/server/controllers/admin.js +3 -2
  187. package/shared/entities.ts +33 -0
  188. package/shared/permissions.ts +52 -0
  189. package/webpack.config.js +1 -0
  190. package/admin/src/components/AuthenticatedApp/utils/checkLatestStrapiVersion.js +0 -11
  191. package/admin/src/components/ConfigurationsProvider/index.js +0 -66
  192. package/admin/src/components/ConfigurationsProvider/reducer.js +0 -29
  193. package/admin/src/components/DragLayer/index.js +0 -1
  194. package/admin/src/components/GlobalStyle/index.js +0 -9
  195. package/admin/src/components/LanguageProvider/index.js +0 -54
  196. package/admin/src/components/LanguageProvider/init.js +0 -13
  197. package/admin/src/components/LanguageProvider/reducer.js +0 -30
  198. package/admin/src/components/LanguageProvider/utils/localStorageKey.js +0 -3
  199. package/admin/src/components/LocalesProvider/context.js +0 -5
  200. package/admin/src/components/LocalesProvider/index.js +0 -21
  201. package/admin/src/components/LocalesProvider/useLocalesProvider.js +0 -11
  202. package/admin/src/components/NpsSurvey/hooks/useNpsSurveySettings.js +0 -17
  203. package/admin/src/components/PluginsInitializer/index.js +0 -68
  204. package/admin/src/components/PluginsInitializer/init.js +0 -11
  205. package/admin/src/components/PluginsInitializer/reducer.js +0 -22
  206. package/admin/src/components/PrivateRoute/index.js +0 -46
  207. package/admin/src/components/Theme/index.js +0 -26
  208. package/admin/src/components/ThemeToggleProvider/index.js +0 -79
  209. package/admin/src/contexts/Admin/index.js +0 -5
  210. package/admin/src/contexts/Configurations/index.js +0 -5
  211. package/admin/src/contexts/MarketPlace/index.js +0 -18
  212. package/admin/src/contexts/PermisssionsDataManagerContext/index.js +0 -5
  213. package/admin/src/contexts/ThemeToggle/index.js +0 -5
  214. package/admin/src/contexts/index.js +0 -4
  215. package/admin/src/hooks/useAdminRoles/__mocks__/index.js +0 -5
  216. package/admin/src/hooks/useAdminUsers/index.js +0 -1
  217. package/admin/src/hooks/useAdminUsers/useAdminUsers.js +0 -47
  218. package/admin/src/hooks/useConfigurations/index.js +0 -11
  219. package/admin/src/hooks/useDebounce/index.js +0 -19
  220. package/admin/src/hooks/useEnterprise/index.js +0 -1
  221. package/admin/src/hooks/useLicenseLimitNotification/index.js +0 -5
  222. package/admin/src/hooks/useMenu/index.js +0 -86
  223. package/admin/src/hooks/useMenu/utils/checkPermissions.js +0 -13
  224. package/admin/src/hooks/useMenu/utils/getGeneralLinks.js +0 -31
  225. package/admin/src/hooks/useMenu/utils/getPluginSectionLinks.js +0 -17
  226. package/admin/src/hooks/usePermissionsDataManager/index.js +0 -7
  227. package/admin/src/hooks/useReleaseNotification/index.js +0 -31
  228. package/admin/src/hooks/useReleaseNotification/utils/checkLatestStrapiVersion.js +0 -11
  229. package/admin/src/hooks/useThemeToggle/index.js +0 -11
  230. package/admin/src/shared/hooks/useAdminProvider/index.js +0 -11
  231. package/admin/src/tsconfig.json +0 -10
  232. package/build/1049.acb0e730.chunk.js +0 -1
  233. package/build/2225.78fb9b89.chunk.js +0 -79
  234. package/build/2614.3e088d3e.chunk.js +0 -35
  235. package/build/2659.cb94f1e7.chunk.js +0 -105
  236. package/build/2801.2afb4757.chunk.js +0 -1
  237. package/build/4546.1203ac95.chunk.js +0 -1
  238. package/build/5158.c85f841a.chunk.js +0 -1
  239. package/build/6715.48e37308.chunk.js +0 -1
  240. package/build/6812.00ef5b0d.chunk.js +0 -26
  241. package/build/7464.0280cf59.chunk.js +0 -1
  242. package/build/Admin-authenticatedApp.a16cdc37.chunk.js +0 -112
  243. package/build/Admin_marketplace.3eb5e132.chunk.js +0 -55
  244. package/build/Admin_settingsPage.6dc2af9f.chunk.js +0 -111
  245. package/build/admin-app.98cdf43a.chunk.js +0 -36
  246. package/build/admin-edit-roles-page.418bb1c5.chunk.js +0 -267
  247. package/build/admin-edit-users.9b42cc9e.chunk.js +0 -10
  248. package/build/admin-roles-list.cf964578.chunk.js +0 -22
  249. package/build/admin-users.8385dd73.chunk.js +0 -11
  250. package/build/api-tokens-list-page.5baabf1a.chunk.js +0 -16
  251. package/build/audit-logs-settings-page.91489670.chunk.js +0 -1
  252. package/build/content-manager.e1e49cc9.chunk.js +0 -1199
  253. package/build/email-settings-page.6bd7b280.chunk.js +0 -11
  254. package/build/email-translation-ar-json.88304564.chunk.js +0 -1
  255. package/build/email-translation-cs-json.6eaeec6a.chunk.js +0 -1
  256. package/build/email-translation-de-json.1b334230.chunk.js +0 -1
  257. package/build/email-translation-dk-json.85402492.chunk.js +0 -1
  258. package/build/email-translation-en-json.4211d4d0.chunk.js +0 -1
  259. package/build/email-translation-es-json.0b6b1006.chunk.js +0 -1
  260. package/build/email-translation-fr-json.78be2787.chunk.js +0 -1
  261. package/build/email-translation-id-json.c97239fe.chunk.js +0 -1
  262. package/build/email-translation-it-json.a2ed8c78.chunk.js +0 -1
  263. package/build/email-translation-ja-json.63eebd02.chunk.js +0 -1
  264. package/build/email-translation-ko-json.4de49b23.chunk.js +0 -1
  265. package/build/email-translation-ms-json.7390477e.chunk.js +0 -1
  266. package/build/email-translation-nl-json.377bdd9f.chunk.js +0 -1
  267. package/build/email-translation-pl-json.97d0db97.chunk.js +0 -1
  268. package/build/email-translation-pt-BR-json.81cca553.chunk.js +0 -1
  269. package/build/email-translation-pt-json.2a2a0643.chunk.js +0 -1
  270. package/build/email-translation-ru-json.6bce37dd.chunk.js +0 -1
  271. package/build/email-translation-sk-json.53da2fcd.chunk.js +0 -1
  272. package/build/email-translation-th-json.660fa9a8.chunk.js +0 -1
  273. package/build/email-translation-tr-json.e6c0f8fc.chunk.js +0 -1
  274. package/build/email-translation-uk-json.bd1fb6bf.chunk.js +0 -1
  275. package/build/email-translation-vi-json.9fb7e6d7.chunk.js +0 -1
  276. package/build/email-translation-zh-Hans-json.c6841563.chunk.js +0 -1
  277. package/build/email-translation-zh-json.7a2232ea.chunk.js +0 -1
  278. package/build/main.105dcf23.js +0 -2665
  279. package/build/review-workflows-settings-list-view.067e0c35.chunk.js +0 -56
  280. package/build/runtime~main.377a22d0.js +0 -2
  281. package/build/sso-settings-page.a29e6c38.chunk.js +0 -1
  282. package/build/transfer-tokens-list-page.0306652c.chunk.js +0 -16
  283. package/build/upload-settings.0af6edc5.chunk.js +0 -14
  284. package/dist/server/admin/server/src/bootstrap.d.ts +0 -2
  285. package/dist/server/admin/server/src/controllers/admin.d.ts +0 -42
  286. package/dist/server/admin/server/src/controllers/api-token.d.ts +0 -10
  287. package/dist/server/admin/server/src/controllers/authenticated-user.d.ts +0 -6
  288. package/dist/server/admin/server/src/controllers/authentication.d.ts +0 -12
  289. package/dist/server/admin/server/src/controllers/permission.d.ts +0 -13
  290. package/dist/server/admin/server/src/controllers/role.d.ts +0 -43
  291. package/dist/server/admin/server/src/controllers/transfer/token.d.ts +0 -9
  292. package/dist/server/admin/server/src/controllers/user.d.ts +0 -13
  293. package/dist/server/admin/server/src/destroy.d.ts +0 -2
  294. package/dist/server/admin/server/src/domain/condition/index.d.ts +0 -56
  295. package/dist/server/admin/server/src/domain/condition/index.js +0 -53
  296. package/dist/server/admin/server/src/domain/condition/index.js.map +0 -1
  297. package/dist/server/admin/server/src/domain/condition/provider.d.ts +0 -30
  298. package/dist/server/admin/server/src/domain/condition/provider.js +0 -37
  299. package/dist/server/admin/server/src/domain/condition/provider.js.map +0 -1
  300. package/dist/server/admin/server/src/index.d.ts +0 -10
  301. package/dist/server/admin/server/src/middlewares/data-transfer.d.ts +0 -2
  302. package/dist/server/admin/server/src/services/action.d.ts +0 -9
  303. package/dist/server/admin/server/src/services/auth.d.ts +0 -42
  304. package/dist/server/admin/server/src/services/condition.d.ts +0 -2
  305. package/dist/server/admin/server/src/services/content-type.d.ts +0 -51
  306. package/dist/server/admin/server/src/services/index.d.ts +0 -61
  307. package/dist/server/admin/server/src/services/metrics.d.ts +0 -7
  308. package/dist/server/admin/server/src/services/permission/engine.d.ts +0 -15
  309. package/dist/server/admin/server/src/services/permission/queries.d.ts +0 -44
  310. package/dist/server/admin/server/src/services/permission.d.ts +0 -67
  311. package/dist/server/admin/server/src/services/role.d.ts +0 -116
  312. package/dist/server/admin/server/src/services/transfer/token.d.ts +0 -103
  313. package/dist/server/admin/server/src/services/transfer/utils.d.ts +0 -19
  314. package/dist/server/admin/server/src/services/user.d.ts +0 -96
  315. package/dist/server/admin/server/src/strategies/admin.d.ts +0 -25
  316. package/dist/server/admin/server/src/strategies/api-token.d.ts +0 -60
  317. package/dist/server/admin/server/src/strategies/data-transfer.d.ts +0 -50
  318. package/dist/server/admin/server/src/validation/common-validators.d.ts +0 -59
  319. package/dist/server/admin/server/src/validation/permission.d.ts +0 -9
  320. package/dist/server/bootstrap.d.ts +0 -2
  321. package/dist/server/bootstrap.js +0 -84
  322. package/dist/server/bootstrap.js.map +0 -1
  323. package/dist/server/config/admin-actions.d.ts +0 -33
  324. package/dist/server/config/admin-actions.js +0 -219
  325. package/dist/server/config/admin-actions.js.map +0 -1
  326. package/dist/server/config/admin-conditions.d.ts +0 -46
  327. package/dist/server/config/admin-conditions.js +0 -29
  328. package/dist/server/config/admin-conditions.js.map +0 -1
  329. package/dist/server/config/email-templates/forgot-password.d.ts +0 -6
  330. package/dist/server/config/email-templates/forgot-password.js +0 -19
  331. package/dist/server/config/email-templates/forgot-password.js.map +0 -1
  332. package/dist/server/config/index.d.ts +0 -17
  333. package/dist/server/config/index.js +0 -14
  334. package/dist/server/config/index.js.map +0 -1
  335. package/dist/server/config/settings.d.ts +0 -7
  336. package/dist/server/config/settings.js +0 -11
  337. package/dist/server/config/settings.js.map +0 -1
  338. package/dist/server/content-types/Permission.d.ts +0 -62
  339. package/dist/server/content-types/Permission.js +0 -64
  340. package/dist/server/content-types/Permission.js.map +0 -1
  341. package/dist/server/content-types/Role.d.ts +0 -57
  342. package/dist/server/content-types/Role.js +0 -59
  343. package/dist/server/content-types/Role.js.map +0 -1
  344. package/dist/server/content-types/User.d.ts +0 -106
  345. package/dist/server/content-types/User.js +0 -109
  346. package/dist/server/content-types/User.js.map +0 -1
  347. package/dist/server/content-types/api-token-permission.d.ts +0 -35
  348. package/dist/server/content-types/api-token-permission.js +0 -37
  349. package/dist/server/content-types/api-token-permission.js.map +0 -1
  350. package/dist/server/content-types/api-token.d.ts +0 -73
  351. package/dist/server/content-types/api-token.js +0 -79
  352. package/dist/server/content-types/api-token.js.map +0 -1
  353. package/dist/server/content-types/index.d.ts +0 -437
  354. package/dist/server/content-types/index.js +0 -22
  355. package/dist/server/content-types/index.js.map +0 -1
  356. package/dist/server/content-types/transfer-token-permission.d.ts +0 -35
  357. package/dist/server/content-types/transfer-token-permission.js +0 -37
  358. package/dist/server/content-types/transfer-token-permission.js.map +0 -1
  359. package/dist/server/content-types/transfer-token.d.ts +0 -65
  360. package/dist/server/content-types/transfer-token.js +0 -67
  361. package/dist/server/content-types/transfer-token.js.map +0 -1
  362. package/dist/server/controllers/admin.d.ts +0 -42
  363. package/dist/server/controllers/admin.js +0 -131
  364. package/dist/server/controllers/admin.js.map +0 -1
  365. package/dist/server/controllers/api-token.d.ts +0 -10
  366. package/dist/server/controllers/api-token.js +0 -106
  367. package/dist/server/controllers/api-token.js.map +0 -1
  368. package/dist/server/controllers/authenticated-user.d.ts +0 -6
  369. package/dist/server/controllers/authenticated-user.js +0 -41
  370. package/dist/server/controllers/authenticated-user.js.map +0 -1
  371. package/dist/server/controllers/authentication.d.ts +0 -12
  372. package/dist/server/controllers/authentication.js +0 -130
  373. package/dist/server/controllers/authentication.js.map +0 -1
  374. package/dist/server/controllers/content-api.d.ts +0 -5
  375. package/dist/server/controllers/content-api.js +0 -13
  376. package/dist/server/controllers/content-api.js.map +0 -1
  377. package/dist/server/controllers/formatters/conditions.d.ts +0 -3
  378. package/dist/server/controllers/formatters/conditions.js +0 -9
  379. package/dist/server/controllers/formatters/conditions.js.map +0 -1
  380. package/dist/server/controllers/formatters/format-actions-by-sections.d.ts +0 -7
  381. package/dist/server/controllers/formatters/format-actions-by-sections.js +0 -36
  382. package/dist/server/controllers/formatters/format-actions-by-sections.js.map +0 -1
  383. package/dist/server/controllers/formatters/index.d.ts +0 -2
  384. package/dist/server/controllers/formatters/index.js +0 -11
  385. package/dist/server/controllers/formatters/index.js.map +0 -1
  386. package/dist/server/controllers/index.d.ts +0 -68
  387. package/dist/server/controllers/index.js +0 -51
  388. package/dist/server/controllers/index.js.map +0 -1
  389. package/dist/server/controllers/permission.d.ts +0 -13
  390. package/dist/server/controllers/permission.js +0 -38
  391. package/dist/server/controllers/permission.js.map +0 -1
  392. package/dist/server/controllers/role.d.ts +0 -43
  393. package/dist/server/controllers/role.js +0 -148
  394. package/dist/server/controllers/role.js.map +0 -1
  395. package/dist/server/controllers/transfer/index.d.ts +0 -4
  396. package/dist/server/controllers/transfer/index.js +0 -14
  397. package/dist/server/controllers/transfer/index.js.map +0 -1
  398. package/dist/server/controllers/transfer/runner.d.ts +0 -6
  399. package/dist/server/controllers/transfer/runner.js +0 -25
  400. package/dist/server/controllers/transfer/runner.js.map +0 -1
  401. package/dist/server/controllers/transfer/token.d.ts +0 -9
  402. package/dist/server/controllers/transfer/token.js +0 -100
  403. package/dist/server/controllers/transfer/token.js.map +0 -1
  404. package/dist/server/controllers/user.d.ts +0 -13
  405. package/dist/server/controllers/user.js +0 -105
  406. package/dist/server/controllers/user.js.map +0 -1
  407. package/dist/server/controllers/webhooks.d.ts +0 -10
  408. package/dist/server/controllers/webhooks.js +0 -100
  409. package/dist/server/controllers/webhooks.js.map +0 -1
  410. package/dist/server/destroy.d.ts +0 -2
  411. package/dist/server/destroy.js +0 -9
  412. package/dist/server/destroy.js.map +0 -1
  413. package/dist/server/domain/action/index.d.ts +0 -33
  414. package/dist/server/domain/action/index.js +0 -98
  415. package/dist/server/domain/action/index.js.map +0 -1
  416. package/dist/server/domain/action/provider.d.ts +0 -38
  417. package/dist/server/domain/action/provider.js +0 -66
  418. package/dist/server/domain/action/provider.js.map +0 -1
  419. package/dist/server/domain/condition/index.d.ts +0 -53
  420. package/dist/server/domain/condition/index.js +0 -56
  421. package/dist/server/domain/condition/index.js.map +0 -1
  422. package/dist/server/domain/condition/provider.d.ts +0 -30
  423. package/dist/server/domain/condition/provider.js +0 -37
  424. package/dist/server/domain/condition/provider.js.map +0 -1
  425. package/dist/server/domain/permission/index.d.ts +0 -77
  426. package/dist/server/domain/permission/index.js +0 -119
  427. package/dist/server/domain/permission/index.js.map +0 -1
  428. package/dist/server/domain/user.d.ts +0 -32
  429. package/dist/server/domain/user.js +0 -28
  430. package/dist/server/domain/user.js.map +0 -1
  431. package/dist/server/index.d.ts +0 -10
  432. package/dist/server/index.js +0 -27
  433. package/dist/server/index.js.map +0 -1
  434. package/dist/server/middlewares/data-transfer.d.ts +0 -2
  435. package/dist/server/middlewares/data-transfer.js +0 -21
  436. package/dist/server/middlewares/data-transfer.js.map +0 -1
  437. package/dist/server/middlewares/index.d.ts +0 -9
  438. package/dist/server/middlewares/index.js +0 -17
  439. package/dist/server/middlewares/index.js.map +0 -1
  440. package/dist/server/middlewares/rateLimit.d.ts +0 -5
  441. package/dist/server/middlewares/rateLimit.js +0 -42
  442. package/dist/server/middlewares/rateLimit.js.map +0 -1
  443. package/dist/server/policies/hasPermissions.d.ts +0 -6
  444. package/dist/server/policies/hasPermissions.js +0 -38
  445. package/dist/server/policies/hasPermissions.js.map +0 -1
  446. package/dist/server/policies/index.d.ts +0 -14
  447. package/dist/server/policies/index.js +0 -10
  448. package/dist/server/policies/index.js.map +0 -1
  449. package/dist/server/policies/isAuthenticatedAdmin.d.ts +0 -2
  450. package/dist/server/policies/isAuthenticatedAdmin.js +0 -6
  451. package/dist/server/policies/isAuthenticatedAdmin.js.map +0 -1
  452. package/dist/server/policies/isTelemetryEnabled.d.ts +0 -10
  453. package/dist/server/policies/isTelemetryEnabled.js +0 -18
  454. package/dist/server/policies/isTelemetryEnabled.js.map +0 -1
  455. package/dist/server/register.d.ts +0 -2
  456. package/dist/server/register.js +0 -18
  457. package/dist/server/register.js.map +0 -1
  458. package/dist/server/routes/admin.d.ts +0 -23
  459. package/dist/server/routes/admin.js +0 -72
  460. package/dist/server/routes/admin.js.map +0 -1
  461. package/dist/server/routes/api-tokens.d.ts +0 -14
  462. package/dist/server/routes/api-tokens.js +0 -71
  463. package/dist/server/routes/api-tokens.js.map +0 -1
  464. package/dist/server/routes/authentication.d.ts +0 -29
  465. package/dist/server/routes/authentication.js +0 -58
  466. package/dist/server/routes/authentication.js.map +0 -1
  467. package/dist/server/routes/content-api.d.ts +0 -9
  468. package/dist/server/routes/content-api.js +0 -21
  469. package/dist/server/routes/content-api.js.map +0 -1
  470. package/dist/server/routes/index.d.ts +0 -66
  471. package/dist/server/routes/index.js +0 -32
  472. package/dist/server/routes/index.js.map +0 -1
  473. package/dist/server/routes/permissions.d.ts +0 -9
  474. package/dist/server/routes/permissions.js +0 -21
  475. package/dist/server/routes/permissions.js.map +0 -1
  476. package/dist/server/routes/roles.d.ts +0 -14
  477. package/dist/server/routes/roles.js +0 -108
  478. package/dist/server/routes/roles.js.map +0 -1
  479. package/dist/server/routes/serve-admin-panel.d.ts +0 -5
  480. package/dist/server/routes/serve-admin-panel.js +0 -65
  481. package/dist/server/routes/serve-admin-panel.js.map +0 -1
  482. package/dist/server/routes/transfer.d.ts +0 -55
  483. package/dist/server/routes/transfer.js +0 -105
  484. package/dist/server/routes/transfer.js.map +0 -1
  485. package/dist/server/routes/users.d.ts +0 -14
  486. package/dist/server/routes/users.js +0 -89
  487. package/dist/server/routes/users.js.map +0 -1
  488. package/dist/server/routes/webhooks.d.ts +0 -14
  489. package/dist/server/routes/webhooks.js +0 -82
  490. package/dist/server/routes/webhooks.js.map +0 -1
  491. package/dist/server/services/action.d.ts +0 -9
  492. package/dist/server/services/action.js +0 -29
  493. package/dist/server/services/action.js.map +0 -1
  494. package/dist/server/services/api-token.d.ts +0 -102
  495. package/dist/server/services/api-token.js +0 -378
  496. package/dist/server/services/api-token.js.map +0 -1
  497. package/dist/server/services/auth.d.ts +0 -42
  498. package/dist/server/services/auth.js +0 -98
  499. package/dist/server/services/auth.js.map +0 -1
  500. package/dist/server/services/condition.d.ts +0 -2
  501. package/dist/server/services/condition.js +0 -11
  502. package/dist/server/services/condition.js.map +0 -1
  503. package/dist/server/services/constants.d.ts +0 -33
  504. package/dist/server/services/constants.js +0 -37
  505. package/dist/server/services/constants.js.map +0 -1
  506. package/dist/server/services/content-type.d.ts +0 -51
  507. package/dist/server/services/content-type.js +0 -158
  508. package/dist/server/services/content-type.js.map +0 -1
  509. package/dist/server/services/index.d.ts +0 -61
  510. package/dist/server/services/index.js +0 -57
  511. package/dist/server/services/index.js.map +0 -1
  512. package/dist/server/services/metrics.d.ts +0 -7
  513. package/dist/server/services/metrics.js +0 -37
  514. package/dist/server/services/metrics.js.map +0 -1
  515. package/dist/server/services/passport/local-strategy.d.ts +0 -3
  516. package/dist/server/services/passport/local-strategy.js +0 -28
  517. package/dist/server/services/passport/local-strategy.js.map +0 -1
  518. package/dist/server/services/passport.d.ts +0 -7
  519. package/dist/server/services/passport.js +0 -40
  520. package/dist/server/services/passport.js.map +0 -1
  521. package/dist/server/services/permission/engine.d.ts +0 -15
  522. package/dist/server/services/permission/engine.js +0 -67
  523. package/dist/server/services/permission/engine.js.map +0 -1
  524. package/dist/server/services/permission/permissions-manager/index.d.ts +0 -16
  525. package/dist/server/services/permission/permissions-manager/index.js +0 -48
  526. package/dist/server/services/permission/permissions-manager/index.js.map +0 -1
  527. package/dist/server/services/permission/permissions-manager/query-builders.d.ts +0 -3
  528. package/dist/server/services/permission/permissions-manager/query-builders.js +0 -66
  529. package/dist/server/services/permission/permissions-manager/query-builders.js.map +0 -1
  530. package/dist/server/services/permission/permissions-manager/sanitize.d.ts +0 -6
  531. package/dist/server/services/permission/permissions-manager/sanitize.js +0 -184
  532. package/dist/server/services/permission/permissions-manager/sanitize.js.map +0 -1
  533. package/dist/server/services/permission/permissions-manager/validate.d.ts +0 -5
  534. package/dist/server/services/permission/permissions-manager/validate.js +0 -134
  535. package/dist/server/services/permission/permissions-manager/validate.js.map +0 -1
  536. package/dist/server/services/permission/queries.d.ts +0 -44
  537. package/dist/server/services/permission/queries.js +0 -159
  538. package/dist/server/services/permission/queries.js.map +0 -1
  539. package/dist/server/services/permission/sections-builder/builder.d.ts +0 -39
  540. package/dist/server/services/permission/sections-builder/builder.js +0 -75
  541. package/dist/server/services/permission/sections-builder/builder.js.map +0 -1
  542. package/dist/server/services/permission/sections-builder/handlers.d.ts +0 -44
  543. package/dist/server/services/permission/sections-builder/handlers.js +0 -124
  544. package/dist/server/services/permission/sections-builder/handlers.js.map +0 -1
  545. package/dist/server/services/permission/sections-builder/index.d.ts +0 -8
  546. package/dist/server/services/permission/sections-builder/index.js +0 -39
  547. package/dist/server/services/permission/sections-builder/index.js.map +0 -1
  548. package/dist/server/services/permission/sections-builder/section.d.ts +0 -38
  549. package/dist/server/services/permission/sections-builder/section.js +0 -56
  550. package/dist/server/services/permission/sections-builder/section.js.map +0 -1
  551. package/dist/server/services/permission/sections-builder/utils.d.ts +0 -12
  552. package/dist/server/services/permission/sections-builder/utils.js +0 -23
  553. package/dist/server/services/permission/sections-builder/utils.js.map +0 -1
  554. package/dist/server/services/permission.d.ts +0 -67
  555. package/dist/server/services/permission.js +0 -33
  556. package/dist/server/services/permission.js.map +0 -1
  557. package/dist/server/services/project-settings.d.ts +0 -5
  558. package/dist/server/services/project-settings.js +0 -139
  559. package/dist/server/services/project-settings.js.map +0 -1
  560. package/dist/server/services/role.d.ts +0 -116
  561. package/dist/server/services/role.js +0 -382
  562. package/dist/server/services/role.js.map +0 -1
  563. package/dist/server/services/token.d.ts +0 -35
  564. package/dist/server/services/token.js +0 -58
  565. package/dist/server/services/token.js.map +0 -1
  566. package/dist/server/services/transfer/index.d.ts +0 -4
  567. package/dist/server/services/transfer/index.js +0 -33
  568. package/dist/server/services/transfer/index.js.map +0 -1
  569. package/dist/server/services/transfer/permission.d.ts +0 -6
  570. package/dist/server/services/transfer/permission.js +0 -20
  571. package/dist/server/services/transfer/permission.js.map +0 -1
  572. package/dist/server/services/transfer/token.d.ts +0 -84
  573. package/dist/server/services/transfer/token.js +0 -273
  574. package/dist/server/services/transfer/token.js.map +0 -1
  575. package/dist/server/services/transfer/utils.d.ts +0 -13
  576. package/dist/server/services/transfer/utils.js +0 -29
  577. package/dist/server/services/transfer/utils.js.map +0 -1
  578. package/dist/server/services/user.d.ts +0 -96
  579. package/dist/server/services/user.js +0 -311
  580. package/dist/server/services/user.js.map +0 -1
  581. package/dist/server/strategies/admin.d.ts +0 -25
  582. package/dist/server/strategies/admin.js +0 -44
  583. package/dist/server/strategies/admin.js.map +0 -1
  584. package/dist/server/strategies/api-token.d.ts +0 -60
  585. package/dist/server/strategies/api-token.js +0 -121
  586. package/dist/server/strategies/api-token.js.map +0 -1
  587. package/dist/server/strategies/data-transfer.d.ts +0 -66
  588. package/dist/server/strategies/data-transfer.js +0 -94
  589. package/dist/server/strategies/data-transfer.js.map +0 -1
  590. package/dist/server/strategies/index.d.ts +0 -17
  591. package/dist/server/strategies/index.js +0 -27
  592. package/dist/server/strategies/index.js.map +0 -1
  593. package/dist/server/types/src/types/utils/object.d.ts +0 -58
  594. package/dist/server/types/src/types/utils/object.js +0 -3
  595. package/dist/server/types/src/types/utils/object.js.map +0 -1
  596. package/dist/server/utils/index.d.ts +0 -1
  597. package/dist/server/utils/index.js +0 -9
  598. package/dist/server/utils/index.js.map +0 -1
  599. package/dist/server/utils/types.d.ts +0 -14
  600. package/dist/server/utils/types.js +0 -3
  601. package/dist/server/utils/types.js.map +0 -1
  602. package/dist/server/validation/action-provider.d.ts +0 -5
  603. package/dist/server/validation/action-provider.js +0 -58
  604. package/dist/server/validation/action-provider.js.map +0 -1
  605. package/dist/server/validation/api-tokens.d.ts +0 -7
  606. package/dist/server/validation/api-tokens.js +0 -36
  607. package/dist/server/validation/api-tokens.js.map +0 -1
  608. package/dist/server/validation/authentication/forgot-password.d.ts +0 -2
  609. package/dist/server/validation/authentication/forgot-password.js +0 -16
  610. package/dist/server/validation/authentication/forgot-password.js.map +0 -1
  611. package/dist/server/validation/authentication/index.d.ts +0 -5
  612. package/dist/server/validation/authentication/index.js +0 -17
  613. package/dist/server/validation/authentication/index.js.map +0 -1
  614. package/dist/server/validation/authentication/register.d.ts +0 -9
  615. package/dist/server/validation/authentication/register.js +0 -49
  616. package/dist/server/validation/authentication/register.js.map +0 -1
  617. package/dist/server/validation/authentication/renew-token.d.ts +0 -2
  618. package/dist/server/validation/authentication/renew-token.js +0 -6
  619. package/dist/server/validation/authentication/renew-token.js.map +0 -1
  620. package/dist/server/validation/authentication/reset-password.d.ts +0 -2
  621. package/dist/server/validation/authentication/reset-password.js +0 -17
  622. package/dist/server/validation/authentication/reset-password.js.map +0 -1
  623. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.d.ts +0 -2
  624. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js +0 -26
  625. package/dist/server/validation/common-functions/check-fields-are-correctly-nested.js.map +0 -1
  626. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.d.ts +0 -2
  627. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js +0 -18
  628. package/dist/server/validation/common-functions/check-fields-dont-have-duplicates.js.map +0 -1
  629. package/dist/server/validation/common-functions/index.d.ts +0 -3
  630. package/dist/server/validation/common-functions/index.js +0 -11
  631. package/dist/server/validation/common-functions/index.js.map +0 -1
  632. package/dist/server/validation/common-validators.d.ts +0 -59
  633. package/dist/server/validation/common-validators.js +0 -162
  634. package/dist/server/validation/common-validators.js.map +0 -1
  635. package/dist/server/validation/permission.d.ts +0 -9
  636. package/dist/server/validation/permission.js +0 -46
  637. package/dist/server/validation/permission.js.map +0 -1
  638. package/dist/server/validation/policies/hasPermissions.d.ts +0 -5
  639. package/dist/server/validation/policies/hasPermissions.js +0 -29
  640. package/dist/server/validation/policies/hasPermissions.js.map +0 -1
  641. package/dist/server/validation/project-settings.d.ts +0 -9
  642. package/dist/server/validation/project-settings.js +0 -44
  643. package/dist/server/validation/project-settings.js.map +0 -1
  644. package/dist/server/validation/role.d.ts +0 -11
  645. package/dist/server/validation/role.js +0 -62
  646. package/dist/server/validation/role.js.map +0 -1
  647. package/dist/server/validation/transfer/index.d.ts +0 -1
  648. package/dist/server/validation/transfer/index.js +0 -9
  649. package/dist/server/validation/transfer/index.js.map +0 -1
  650. package/dist/server/validation/transfer/token.d.ts +0 -7
  651. package/dist/server/validation/transfer/token.js +0 -46
  652. package/dist/server/validation/transfer/token.js.map +0 -1
  653. package/dist/server/validation/user.d.ts +0 -117
  654. package/dist/server/validation/user.js +0 -69
  655. package/dist/server/validation/user.js.map +0 -1
  656. /package/admin/src/hooks/{useAdminUsers/__mocks__/index.js → __mocks__/useAdminUsers.ts} +0 -0
  657. /package/admin/src/{hooks/useAdminRolePermissions/__mocks__/index.js → pages/SettingsPage/pages/Roles/hooks/__mocks__/useAdminRolePermissions.ts} +0 -0
@@ -3,15 +3,22 @@ import * as React from 'react';
3
3
  import * as Toolbar from '@radix-ui/react-toolbar';
4
4
  import { Flex, Icon, Tooltip, Select, Option, Box, Typography } from '@strapi/design-system';
5
5
  import { pxToRem, prefixFileUrlWithBackendUrl, useLibrary } from '@strapi/helper-plugin';
6
- import { BulletList, NumberList } from '@strapi/icons';
6
+ import { Link } from '@strapi/icons';
7
7
  import PropTypes from 'prop-types';
8
8
  import { useIntl } from 'react-intl';
9
9
  import { Editor, Transforms, Element as SlateElement } from 'slate';
10
- import { useSlate } from 'slate-react';
10
+ import { ReactEditor, useSlate } from 'slate-react';
11
11
  import styled from 'styled-components';
12
12
 
13
13
  import { useBlocksStore } from '../hooks/useBlocksStore';
14
14
  import { useModifiersStore } from '../hooks/useModifiersStore';
15
+ import { insertLink } from '../utils/links';
16
+
17
+ const ToolbarWrapper = styled(Flex)`
18
+ &[aria-disabled='true'] {
19
+ cursor: not-allowed;
20
+ }
21
+ `;
15
22
 
16
23
  const Separator = styled(Toolbar.Separator)`
17
24
  background: ${({ theme }) => theme.colors.neutral150};
@@ -20,32 +27,58 @@ const Separator = styled(Toolbar.Separator)`
20
27
  `;
21
28
 
22
29
  const FlexButton = styled(Flex).attrs({ as: 'button' })`
23
- &:hover {
24
- background: ${({ theme }) => theme.colors.primary100};
30
+ // Inherit the not-allowed cursor from ToolbarWrapper when disabled
31
+ &[aria-disabled] {
32
+ cursor: inherit;
33
+ }
34
+
35
+ &[aria-disabled='false'] {
36
+ cursor: pointer;
37
+
38
+ // Only apply hover styles if the button is enabled
39
+ &:hover {
40
+ background: ${({ theme }) => theme.colors.primary100};
41
+ }
25
42
  }
26
43
  `;
27
44
 
28
- const ToolbarButton = ({ icon, name, label, isActive, handleClick }) => {
45
+ const ToolbarButton = ({ icon, name, label, isActive, disabled, handleClick }) => {
46
+ const editor = useSlate();
29
47
  const { formatMessage } = useIntl();
30
48
  const labelMessage = formatMessage(label);
31
49
 
50
+ const enabledColor = isActive ? 'primary600' : 'neutral600';
51
+
32
52
  return (
33
53
  <Tooltip description={labelMessage}>
34
- <Toolbar.ToggleItem value={name} data-state={isActive ? 'on' : 'off'} asChild>
54
+ <Toolbar.ToggleItem
55
+ value={name}
56
+ data-state={isActive ? 'on' : 'off'}
57
+ onMouseDown={(e) => {
58
+ e.preventDefault();
59
+ handleClick();
60
+ }}
61
+ aria-disabled={disabled}
62
+ disabled={disabled}
63
+ aria-label={labelMessage}
64
+ asChild
65
+ >
35
66
  <FlexButton
67
+ disabled={disabled}
36
68
  background={isActive ? 'primary100' : ''}
37
69
  alignItems="center"
38
70
  justifyContent="center"
39
71
  width={7}
40
72
  height={7}
41
73
  hasRadius
42
- onMouseDown={(e) => {
43
- e.preventDefault();
74
+ onMouseDown={() => {
44
75
  handleClick();
76
+ // When a button is clicked it blurs the editor, restore the focus to the editor
77
+ ReactEditor.focus(editor);
45
78
  }}
46
79
  aria-label={labelMessage}
47
80
  >
48
- <Icon width={3} height={3} as={icon} color={isActive ? 'primary600' : 'neutral600'} />
81
+ <Icon width={3} height={3} as={icon} color={disabled ? 'neutral300' : enabledColor} />
49
82
  </FlexButton>
50
83
  </Toolbar.ToggleItem>
51
84
  </Tooltip>
@@ -60,74 +93,63 @@ ToolbarButton.propTypes = {
60
93
  defaultMessage: PropTypes.string.isRequired,
61
94
  }).isRequired,
62
95
  isActive: PropTypes.bool.isRequired,
96
+ disabled: PropTypes.bool.isRequired,
63
97
  handleClick: PropTypes.func.isRequired,
64
98
  };
65
99
 
66
- const ModifierButton = ({ icon, name, label }) => {
67
- const editor = useSlate();
68
-
69
- const isModifierActive = () => {
70
- const modifiers = Editor.marks(editor);
71
-
72
- if (!modifiers) return false;
73
-
74
- return Boolean(modifiers[name]);
75
- };
76
-
77
- const isActive = isModifierActive();
78
-
79
- const toggleModifier = () => {
80
- if (isActive) {
81
- Editor.removeMark(editor, name);
82
- } else {
83
- Editor.addMark(editor, name, true);
84
- }
85
- };
86
-
87
- return (
88
- <ToolbarButton
89
- icon={icon}
90
- name={name}
91
- label={label}
92
- isActive={isActive}
93
- handleClick={toggleModifier}
94
- />
95
- );
96
- };
97
-
98
- ModifierButton.propTypes = {
99
- icon: PropTypes.elementType.isRequired,
100
- name: PropTypes.string.isRequired,
101
- label: PropTypes.shape({
102
- id: PropTypes.string.isRequired,
103
- defaultMessage: PropTypes.string.isRequired,
104
- }).isRequired,
105
- };
106
-
107
- const isBlockActive = (editor, matchNode) => {
108
- const { selection } = editor;
109
-
110
- if (!selection) return false;
111
-
112
- const match = Array.from(
113
- Editor.nodes(editor, {
114
- at: Editor.unhangRange(editor, selection),
115
- match: (n) => !Editor.isEditor(n) && SlateElement.isElement(n) && matchNode(n),
116
- })
117
- );
118
-
119
- return match.length > 0;
120
- };
121
-
122
100
  const toggleBlock = (editor, value) => {
123
- const { type, level } = value;
101
+ const { type, level, format } = value;
124
102
 
125
- const newProperties = {
103
+ // Set the selected block properties received from the useBlockStore
104
+ const blockProperties = {
126
105
  type,
127
106
  level: level || null,
107
+ format: format || null,
128
108
  };
129
109
 
130
- Transforms.setNodes(editor, newProperties);
110
+ if (editor.selection) {
111
+ // If the selection is inside a list, split the list so that the modified block is outside of it
112
+ Transforms.unwrapNodes(editor, {
113
+ match: (node) => node.type === 'list',
114
+ split: true,
115
+ });
116
+
117
+ // When there is a selection, update the existing block in the tree
118
+ Transforms.setNodes(editor, blockProperties);
119
+ } else {
120
+ /**
121
+ * When there is no selection, we want to insert a new block just after
122
+ * the last node inserted and prevent the code to add an empty paragraph
123
+ * between them.
124
+ */
125
+ const [, lastNodePath] = Editor.last(editor, []);
126
+ const [parentNode] = Editor.parent(editor, lastNodePath, {
127
+ // Makes sure we get a block node, not an inline node
128
+ match: (node) => node.type !== 'text',
129
+ });
130
+ Transforms.removeNodes(editor, {
131
+ void: true,
132
+ hanging: true,
133
+ at: {
134
+ anchor: { path: lastNodePath, offset: 0 },
135
+ focus: { path: lastNodePath, offset: 0 },
136
+ },
137
+ });
138
+ Transforms.insertNodes(
139
+ editor,
140
+ {
141
+ ...blockProperties,
142
+ children: parentNode.children,
143
+ },
144
+ {
145
+ at: [lastNodePath[0]],
146
+ select: true,
147
+ }
148
+ );
149
+ }
150
+
151
+ // When the select is clicked it blurs the editor, restore the focus to the editor
152
+ ReactEditor.focus(editor);
131
153
  };
132
154
 
133
155
  const ALLOWED_MEDIA_TYPE = 'images';
@@ -167,6 +189,8 @@ const ImageDialog = ({ handleClose }) => {
167
189
  const MediaLibraryDialog = components['media-library'];
168
190
 
169
191
  const insertImages = (images) => {
192
+ // Image node created using select or existing selection node needs to be deleted before adding new image nodes
193
+ Transforms.removeNodes(editor);
170
194
  images.forEach((img) => {
171
195
  const image = { type: 'image', image: img, children: [{ type: 'text', text: '' }] };
172
196
  Transforms.insertNodes(editor, image);
@@ -175,7 +199,7 @@ const ImageDialog = ({ handleClose }) => {
175
199
 
176
200
  const handleSelectAssets = (images) => {
177
201
  const formattedImages = images.map((image) => {
178
- // create an object with imageSchema defined and exclude unnecessary props coming from media library config
202
+ // Create an object with imageSchema defined and exclude unnecessary props coming from media library config
179
203
  const expectedImage = pick(image, IMAGE_SCHEMA_FIELDS);
180
204
 
181
205
  return {
@@ -186,6 +210,12 @@ const ImageDialog = ({ handleClose }) => {
186
210
  });
187
211
 
188
212
  insertImages(formattedImages);
213
+
214
+ if (isLastBlockType(editor, 'image')) {
215
+ // Insert blank line to add new blocks below image block
216
+ insertEmptyBlockAtLast(editor);
217
+ }
218
+
189
219
  handleClose();
190
220
  };
191
221
 
@@ -202,18 +232,18 @@ ImageDialog.propTypes = {
202
232
  handleClose: PropTypes.func.isRequired,
203
233
  };
204
234
 
205
- const isLastBlockImageOrCode = (editor) => {
235
+ const isLastBlockType = (editor, type) => {
206
236
  const { selection } = editor;
207
237
 
208
238
  if (!selection) return false;
209
239
 
210
- const [currentImageORCodeBlock] = Editor.nodes(editor, {
240
+ const [currentBlock] = Editor.nodes(editor, {
211
241
  at: selection,
212
- match: (n) => n.type === 'image' || n.type === 'code',
242
+ match: (n) => n.type === type,
213
243
  });
214
244
 
215
- if (currentImageORCodeBlock) {
216
- const [, currentNodePath] = currentImageORCodeBlock;
245
+ if (currentBlock) {
246
+ const [, currentNodePath] = currentBlock;
217
247
 
218
248
  const isNodeAfter = Boolean(Editor.after(editor, currentNodePath));
219
249
 
@@ -223,7 +253,18 @@ const isLastBlockImageOrCode = (editor) => {
223
253
  return false;
224
254
  };
225
255
 
226
- export const BlocksDropdown = () => {
256
+ const insertEmptyBlockAtLast = (editor) => {
257
+ Transforms.insertNodes(
258
+ editor,
259
+ {
260
+ type: 'paragraph',
261
+ children: [{ type: 'text', text: '' }],
262
+ },
263
+ { at: [editor.children.length] }
264
+ );
265
+ };
266
+
267
+ const BlocksDropdown = ({ disabled }) => {
227
268
  const editor = useSlate();
228
269
  const { formatMessage } = useIntl();
229
270
  const [isMediaLibraryVisible, setIsMediaLibraryVisible] = React.useState(false);
@@ -241,20 +282,24 @@ export const BlocksDropdown = () => {
241
282
  * @param {string} optionKey - key of the heading selected
242
283
  */
243
284
  const selectOption = (optionKey) => {
244
- toggleBlock(editor, blocks[optionKey].value);
285
+ if (['list-ordered', 'list-unordered'].includes(optionKey)) {
286
+ // retrieve the list format
287
+ const listFormat = blocks[optionKey].value.format;
288
+
289
+ // check if the list is already active
290
+ const isActive = isListActive(editor, blocks[optionKey].matchNode);
291
+
292
+ // toggle the list
293
+ toggleList(editor, isActive, listFormat);
294
+ } else if (optionKey !== 'image') {
295
+ toggleBlock(editor, blocks[optionKey].value);
296
+ }
245
297
 
246
298
  setBlockSelected(optionKey);
247
299
 
248
- if (isLastBlockImageOrCode(editor)) {
249
- // insert blank line to add new blocks below code or image blocks
250
- Transforms.insertNodes(
251
- editor,
252
- {
253
- type: 'paragraph',
254
- children: [{ type: 'text', text: '' }],
255
- },
256
- { at: [editor.children.length] }
257
- );
300
+ if (optionKey === 'code' && isLastBlockType(editor, 'code')) {
301
+ // Insert blank line to add new blocks below code block
302
+ insertEmptyBlockAtLast(editor);
258
303
  }
259
304
 
260
305
  if (optionKey === 'image') {
@@ -262,6 +307,37 @@ export const BlocksDropdown = () => {
262
307
  }
263
308
  };
264
309
 
310
+ /**
311
+ * Prevent the select from focusing itself so ReactEditor.focus(editor) can focus the editor instead.
312
+ *
313
+ * The editor first loses focus to a blur event when clicking the select button. However,
314
+ * refocusing the editor is not enough since the select's default behavior is to refocus itself
315
+ * after an option is selected.
316
+ *
317
+ */
318
+ const preventSelectFocus = (e) => e.preventDefault();
319
+
320
+ // Listen to the selection change and update the selected block in the dropdown
321
+ React.useEffect(() => {
322
+ if (editor.selection) {
323
+ // Get the parent node of the anchor
324
+ // with a depth of two to retrieve also the list item parents
325
+ const [anchorNode] = Editor.parent(editor, editor.selection.anchor, {
326
+ edge: 'start',
327
+ depth: 2,
328
+ });
329
+ // Find the block key that matches the anchor node
330
+ const anchorBlockKey = Object.keys(blocks).find((blockKey) =>
331
+ blocks[blockKey].matchNode(anchorNode)
332
+ );
333
+
334
+ // Change the value selected in the dropdown if it doesn't match the anchor block key
335
+ if (anchorBlockKey && anchorBlockKey !== blockSelected) {
336
+ setBlockSelected(anchorBlockKey);
337
+ }
338
+ }
339
+ }, [editor.selection, editor, blocks, blockSelected]);
340
+
265
341
  return (
266
342
  <>
267
343
  <Select
@@ -269,10 +345,12 @@ export const BlocksDropdown = () => {
269
345
  onChange={selectOption}
270
346
  placeholder={blocks[blockSelected].label}
271
347
  value={blockSelected}
348
+ onCloseAutoFocus={preventSelectFocus}
272
349
  aria-label={formatMessage({
273
350
  id: 'components.Blocks.blocks.selectBlock',
274
351
  defaultMessage: 'Select a block',
275
352
  })}
353
+ disabled={disabled}
276
354
  >
277
355
  {blockKeysToInclude.map((key) => (
278
356
  <BlockOption
@@ -280,8 +358,6 @@ export const BlocksDropdown = () => {
280
358
  value={key}
281
359
  label={blocks[key].label}
282
360
  icon={blocks[key].icon}
283
- matchNode={blocks[key].matchNode}
284
- handleSelection={setBlockSelected}
285
361
  blockSelected={blockSelected}
286
362
  />
287
363
  ))}
@@ -291,19 +367,15 @@ export const BlocksDropdown = () => {
291
367
  );
292
368
  };
293
369
 
294
- const BlockOption = ({ value, icon, label, handleSelection, blockSelected, matchNode }) => {
370
+ BlocksDropdown.propTypes = {
371
+ disabled: PropTypes.bool.isRequired,
372
+ };
373
+
374
+ const BlockOption = ({ value, icon, label, blockSelected }) => {
295
375
  const { formatMessage } = useIntl();
296
- const editor = useSlate();
297
376
 
298
- const isActive = isBlockActive(editor, matchNode);
299
377
  const isSelected = value === blockSelected;
300
378
 
301
- React.useEffect(() => {
302
- if (isActive && !isSelected) {
303
- handleSelection(value);
304
- }
305
- }, [handleSelection, isActive, isSelected, value]);
306
-
307
379
  return (
308
380
  <Option
309
381
  startIcon={<Icon as={icon} color={isSelected ? 'primary600' : 'neutral600'} />}
@@ -321,58 +393,101 @@ BlockOption.propTypes = {
321
393
  id: PropTypes.string.isRequired,
322
394
  defaultMessage: PropTypes.string.isRequired,
323
395
  }).isRequired,
324
- matchNode: PropTypes.func.isRequired,
325
- handleSelection: PropTypes.func.isRequired,
326
396
  blockSelected: PropTypes.string.isRequired,
327
397
  };
328
398
 
329
- const ListButton = ({ icon, format, label }) => {
330
- const editor = useSlate();
331
-
332
- /**
333
- *
334
- * @param {import('slate').Node} node
335
- * @returns boolean
336
- */
337
- const isListNode = (node) => {
338
- return !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'list';
339
- };
340
-
341
- const isListActive = () => {
342
- const { selection } = editor;
399
+ /**
400
+ *
401
+ * @param {import('slate').Node} node
402
+ * @returns boolean
403
+ */
404
+ const isListNode = (node) => {
405
+ return !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'list';
406
+ };
343
407
 
344
- if (!selection) return false;
408
+ const isListActive = (editor, matchNode) => {
409
+ const { selection } = editor;
345
410
 
346
- const [match] = Array.from(
347
- Editor.nodes(editor, {
348
- at: Editor.unhangRange(editor, selection),
349
- match: (node) => isListNode(node) && node.format === format,
350
- })
351
- );
411
+ if (!selection) return false;
352
412
 
353
- return Boolean(match);
354
- };
413
+ const [match] = Array.from(
414
+ Editor.nodes(editor, {
415
+ at: Editor.unhangRange(editor, selection),
416
+ match: matchNode,
417
+ })
418
+ );
355
419
 
356
- const isActive = isListActive();
420
+ return Boolean(match);
421
+ };
357
422
 
358
- const toggleList = () => {
359
- // Delete the parent list so that we're left with only the list items directly
423
+ const toggleList = (editor, isActive, format) => {
424
+ // If we have selected a portion of content in the editor,
425
+ // we want to convert it to a list or if it is already a list,
426
+ // convert it back to a paragraph
427
+ if (editor.selection) {
360
428
  Transforms.unwrapNodes(editor, {
361
429
  match: (node) => isListNode(node) && ['ordered', 'unordered'].includes(node.format),
362
430
  split: true,
363
431
  });
364
432
 
365
- // Change the type of the current selection
366
433
  Transforms.setNodes(editor, {
367
434
  type: isActive ? 'paragraph' : 'list-item',
368
435
  });
369
436
 
370
- // If the selection is now a list item, wrap it inside a list
371
437
  if (!isActive) {
372
438
  const block = { type: 'list', format, children: [] };
373
439
  Transforms.wrapNodes(editor, block);
374
440
  }
375
- };
441
+ } else {
442
+ // There is no selection, convert the last inserted node to a list
443
+ // If it is already a list, convert it back to a paragraph
444
+ const [, lastNodePath] = Editor.last(editor, []);
445
+
446
+ const [parentNode] = Editor.parent(editor, lastNodePath, {
447
+ // Makes sure we get a block node, not an inline node
448
+ match: (node) => node.type !== 'text',
449
+ });
450
+
451
+ Transforms.removeNodes(editor, {
452
+ void: true,
453
+ hanging: true,
454
+ at: {
455
+ anchor: { path: lastNodePath, offset: 0 },
456
+ focus: { path: lastNodePath, offset: 0 },
457
+ },
458
+ });
459
+
460
+ Transforms.insertNodes(
461
+ editor,
462
+ {
463
+ type: isActive ? 'paragraph' : 'list-item',
464
+ children: [...parentNode.children],
465
+ },
466
+ {
467
+ at: [lastNodePath[0]],
468
+ select: true,
469
+ }
470
+ );
471
+
472
+ if (!isActive) {
473
+ // If the selection is now a list item, wrap it inside a list
474
+ const block = { type: 'list', format, children: [] };
475
+ Transforms.wrapNodes(editor, block);
476
+ }
477
+ }
478
+ };
479
+
480
+ const ListButton = ({ block, disabled }) => {
481
+ const editor = useSlate();
482
+
483
+ const {
484
+ icon,
485
+ matchNode,
486
+ value: { format },
487
+ label,
488
+ } = block;
489
+
490
+ const isActive = isListActive(editor, matchNode);
376
491
 
377
492
  return (
378
493
  <ToolbarButton
@@ -380,40 +495,140 @@ const ListButton = ({ icon, format, label }) => {
380
495
  name={format}
381
496
  label={label}
382
497
  isActive={isActive}
383
- handleClick={toggleList}
498
+ disabled={disabled}
499
+ handleClick={() => toggleList(editor, isActive, format)}
384
500
  />
385
501
  );
386
502
  };
387
503
 
388
504
  ListButton.propTypes = {
389
- icon: PropTypes.elementType.isRequired,
390
- format: PropTypes.string.isRequired,
391
- label: PropTypes.shape({
392
- id: PropTypes.string.isRequired,
393
- defaultMessage: PropTypes.string.isRequired,
505
+ block: PropTypes.shape({
506
+ icon: PropTypes.elementType.isRequired,
507
+ matchNode: PropTypes.func.isRequired,
508
+ value: PropTypes.shape({
509
+ format: PropTypes.string.isRequired,
510
+ }).isRequired,
511
+ label: PropTypes.shape({
512
+ id: PropTypes.string.isRequired,
513
+ defaultMessage: PropTypes.string.isRequired,
514
+ }).isRequired,
394
515
  }).isRequired,
516
+ disabled: PropTypes.bool.isRequired,
517
+ };
518
+
519
+ const LinkButton = ({ disabled }) => {
520
+ const editor = useSlate();
521
+
522
+ const isLinkActive = () => {
523
+ const { selection } = editor;
524
+
525
+ if (!selection) return false;
526
+
527
+ const [match] = Array.from(
528
+ Editor.nodes(editor, {
529
+ at: Editor.unhangRange(editor, selection),
530
+ match: (node) => SlateElement.isElement(node) && node.type === 'link',
531
+ })
532
+ );
533
+
534
+ return Boolean(match);
535
+ };
536
+
537
+ const isLinkDisabled = () => {
538
+ // Always disabled when the whole editor is disabled
539
+ if (disabled) {
540
+ return true;
541
+ }
542
+
543
+ // Always enabled when there's no selection
544
+ if (!editor.selection) {
545
+ return false;
546
+ }
547
+
548
+ // Get the block node closest to the anchor and focus
549
+ const anchorNodeEntry = Editor.above(editor, {
550
+ at: editor.selection.anchor,
551
+ match: (node) => node.type !== 'text',
552
+ });
553
+ const focusNodeEntry = Editor.above(editor, {
554
+ at: editor.selection.focus,
555
+ match: (node) => node.type !== 'text',
556
+ });
557
+
558
+ // Disabled if the anchor and focus are not in the same block
559
+ return anchorNodeEntry[0] !== focusNodeEntry[0];
560
+ };
561
+
562
+ const addLink = () => {
563
+ // We insert an empty anchor, so we split the DOM to have a element we can use as reference for the popover
564
+ insertLink(editor, { url: '' });
565
+ };
566
+
567
+ return (
568
+ <ToolbarButton
569
+ icon={Link}
570
+ name="link"
571
+ label={{
572
+ id: 'components.Blocks.link',
573
+ defaultMessage: 'Link',
574
+ }}
575
+ isActive={isLinkActive()}
576
+ handleClick={addLink}
577
+ disabled={isLinkDisabled()}
578
+ />
579
+ );
580
+ };
581
+
582
+ LinkButton.propTypes = {
583
+ disabled: PropTypes.bool.isRequired,
395
584
  };
396
585
 
397
- // TODO: Remove after the RTE Blocks Alpha release
398
- const AlphaTag = styled(Box)`
399
- background-color: ${({ theme }) => theme.colors.warning100};
400
- border: ${({ theme }) => `1px solid ${theme.colors.warning200}`};
586
+ // TODO: Remove after the RTE Blocks Beta release
587
+ const BetaTag = styled(Box)`
588
+ background-color: ${({ theme }) => theme.colors.secondary100};
589
+ border: ${({ theme }) => `1px solid ${theme.colors.secondary200}`};
401
590
  border-radius: ${({ theme }) => theme.borderRadius};
402
591
  font-size: ${({ theme }) => theme.fontSizes[0]};
403
592
  padding: ${({ theme }) => `${2 / 16}rem ${theme.spaces[1]}`};
404
593
  `;
405
594
 
406
- const BlocksToolbar = () => {
595
+ const BlocksToolbar = ({ disabled }) => {
407
596
  const modifiers = useModifiersStore();
597
+ const blocks = useBlocksStore();
598
+ const editor = useSlate();
599
+
600
+ /**
601
+ * The modifier buttons are disabled when an image is selected.
602
+ */
603
+
604
+ const checkButtonDisabled = () => {
605
+ // Always disabled when the whole editor is disabled
606
+ if (disabled) {
607
+ return true;
608
+ }
609
+
610
+ if (!editor.selection) {
611
+ return false;
612
+ }
613
+
614
+ const selectedNode = editor.children[editor.selection.anchor.path[0]];
615
+
616
+ if (['image', 'code'].includes(selectedNode.type)) {
617
+ return true;
618
+ }
619
+
620
+ return false;
621
+ };
622
+
623
+ const isButtonDisabled = checkButtonDisabled();
408
624
 
409
625
  return (
410
- <Toolbar.Root asChild>
411
- {/* Remove after the RTE Blocks Alpha release (paddingRight and width) */}
412
- <Flex gap={1} padding={2} paddingRight={4} width="100%">
413
- <BlocksDropdown />
414
- <Separator />
626
+ <Toolbar.Root aria-disabled={disabled} asChild>
627
+ {/* Remove after the RTE Blocks Beta release (paddingRight and width) */}
628
+ <ToolbarWrapper gap={2} padding={2} paddingRight={4} width="100%">
629
+ <BlocksDropdown disabled={disabled} />
415
630
  <Toolbar.ToggleGroup type="multiple" asChild>
416
- <Flex gap={1}>
631
+ <Flex gap={1} marginLeft={1}>
417
632
  {Object.entries(modifiers).map(([name, modifier]) => (
418
633
  <ToolbarButton
419
634
  key={name}
@@ -422,42 +637,34 @@ const BlocksToolbar = () => {
422
637
  label={modifier.label}
423
638
  isActive={modifier.checkIsActive()}
424
639
  handleClick={modifier.handleToggle}
640
+ disabled={isButtonDisabled}
425
641
  />
426
642
  ))}
643
+ <LinkButton disabled={isButtonDisabled} />
427
644
  </Flex>
428
645
  </Toolbar.ToggleGroup>
429
646
  <Separator />
430
647
  <Toolbar.ToggleGroup type="single" asChild>
431
648
  <Flex gap={1}>
432
- <ListButton
433
- label={{
434
- id: 'components.Blocks.blocks.unorderedList',
435
- defaultMessage: 'Bulleted list',
436
- }}
437
- format="unordered"
438
- icon={BulletList}
439
- />
440
- <ListButton
441
- label={{
442
- id: 'components.Blocks.blocks.orderedList',
443
- defaultMessage: 'Numbered list',
444
- }}
445
- format="ordered"
446
- icon={NumberList}
447
- />
649
+ <ListButton block={blocks['list-unordered']} disabled={disabled} />
650
+ <ListButton block={blocks['list-ordered']} disabled={disabled} />
448
651
  </Flex>
449
652
  </Toolbar.ToggleGroup>
450
- {/* TODO: Remove after the RTE Blocks Alpha release */}
653
+ {/* TODO: Remove after the RTE Blocks Beta release */}
451
654
  <Flex grow={1} justifyContent="flex-end">
452
- <AlphaTag>
453
- <Typography textColor="warning600" variant="sigma">
454
- ALPHA
655
+ <BetaTag>
656
+ <Typography textColor="secondary600" variant="sigma">
657
+ BETA
455
658
  </Typography>
456
- </AlphaTag>
659
+ </BetaTag>
457
660
  </Flex>
458
- </Flex>
661
+ </ToolbarWrapper>
459
662
  </Toolbar.Root>
460
663
  );
461
664
  };
462
665
 
666
+ BlocksToolbar.propTypes = {
667
+ disabled: PropTypes.bool.isRequired,
668
+ };
669
+
463
670
  export { BlocksToolbar };