passbolt-styleguide 3.3.3 → 3.4.0-alpha2

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 (485) hide show
  1. package/build/css/help.min.css +4 -4
  2. package/build/css/public.min.css +5 -6
  3. package/build/css/themes/default/api_authentication.min.css +3 -3
  4. package/build/css/themes/default/api_cloud.min.css +3 -7
  5. package/build/css/themes/default/api_main.min.css +4 -9
  6. package/build/css/themes/default/api_reports.min.css +4 -9
  7. package/build/css/themes/default/api_webinstaller.min.css +4 -9
  8. package/build/css/themes/default/ext_app.min.css +4 -9
  9. package/build/css/themes/default/ext_authentication.min.css +3 -3
  10. package/build/css/themes/default/ext_external.min.css +3 -3
  11. package/build/css/themes/default/ext_in_form_cta.min.css +9 -0
  12. package/build/css/themes/default/ext_in_form_menu.min.css +9 -0
  13. package/build/css/themes/default/ext_quickaccess.min.css +3 -3
  14. package/build/css/themes/midgar/api_authentication.min.css +9 -0
  15. package/build/css/themes/midgar/api_main.min.css +4 -9
  16. package/build/css/themes/midgar/api_reports.min.css +4 -9
  17. package/build/css/themes/midgar/ext_app.min.css +4 -9
  18. package/build/css/themes/midgar/ext_authentication.min.css +3 -3
  19. package/build/css/themes/midgar/ext_in_form_cta.min.css +9 -0
  20. package/build/css/themes/midgar/ext_in_form_menu.min.css +9 -0
  21. package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
  22. package/build/js/dist/api-app.js +1 -1
  23. package/build/js/dist/api-app.js.LICENSE.txt +5 -5
  24. package/build/js/dist/api-recover.js +1 -1
  25. package/build/js/dist/api-recover.js.LICENSE.txt +0 -28
  26. package/build/js/dist/api-setup.js +1 -1
  27. package/build/js/dist/api-setup.js.LICENSE.txt +0 -15
  28. package/build/js/dist/api-triage.js +1 -1
  29. package/build/js/dist/api-triage.js.LICENSE.txt +0 -14
  30. package/build/js/dist/api-vendors.js +1 -1
  31. package/build/js/dist/api-vendors.js.LICENSE.txt +146 -84
  32. package/package.json +31 -26
  33. package/src/img/controls/chevron-down_blue.svg +3 -0
  34. package/src/img/diagrams/functional_overview.png +0 -0
  35. package/src/img/diagrams/functional_overview.svg +4 -0
  36. package/src/img/diagrams/howitworks.svg +2797 -0
  37. package/src/img/diagrams/mobile-transfer.svg +296 -0
  38. package/src/img/diagrams/sequence_diagram_form_authenticate.png +0 -0
  39. package/src/img/diagrams/sequence_diagram_gpg_authenticate.png +0 -0
  40. package/src/img/diagrams/totp.svg +251 -0
  41. package/src/img/illustrations/pin_passbolt.gif +0 -0
  42. package/src/img/illustrations/wave-pin_my_extension.svg +1 -0
  43. package/src/img/logo/icon-32-badge-1.png +0 -0
  44. package/src/img/logo/icon-32-badge-2.png +0 -0
  45. package/src/img/logo/icon-32-badge-3.png +0 -0
  46. package/src/img/logo/icon-32-badge-4.png +0 -0
  47. package/src/img/logo/icon-32-badge-5+.png +0 -0
  48. package/src/img/logo/icon-32-badge-5.png +0 -0
  49. package/src/img/logo/icon-32-signout.png +0 -0
  50. package/src/img/logo/icon-badge-1.svg +1 -0
  51. package/src/img/logo/icon-badge-2.svg +1 -0
  52. package/src/img/logo/icon-badge-3.svg +1 -0
  53. package/src/img/logo/icon-badge-4.svg +1 -0
  54. package/src/img/logo/icon-badge-5+.svg +1 -0
  55. package/src/img/logo/icon-badge-5.svg +1 -0
  56. package/src/img/logo/icon-inactive.svg +1 -0
  57. package/src/img/logo/icon-without-badge.svg +1 -0
  58. package/src/img/third_party/ChromeWebStore_black.svg +1 -0
  59. package/src/img/third_party/ChromeWebStore_white.svg +1 -0
  60. package/src/img/third_party/edge-addon-black.svg +1 -0
  61. package/src/img/third_party/edge-addon-white.svg +1 -0
  62. package/src/locales/de-DE/common.json +820 -0
  63. package/src/locales/en-UK/common.json +86 -20
  64. package/src/locales/fr/common.json +750 -0
  65. package/src/locales/fr-FR/common.json +92 -22
  66. package/src/locales/sv-SE/common.json +820 -0
  67. package/src/react-extension/ExtApp.js +16 -10
  68. package/src/react-extension/ExtBootstrapApp.js +1 -0
  69. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -2
  70. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +2 -2
  71. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +1 -1
  72. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +1 -1
  73. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +22 -8
  74. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +3 -0
  75. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +10 -8
  76. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +21 -19
  77. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +6 -6
  78. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
  79. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
  80. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
  81. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
  82. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +20 -38
  83. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
  84. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
  85. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
  86. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
  87. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
  88. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
  89. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +34 -32
  90. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +1 -1
  91. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
  92. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
  93. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.page.js +2 -2
  94. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
  95. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
  96. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
  97. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
  98. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
  99. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +2 -1
  100. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
  101. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +1 -2
  102. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
  103. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -19
  104. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
  105. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
  106. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
  107. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
  108. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
  109. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
  110. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
  111. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
  112. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
  113. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
  114. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
  115. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
  116. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
  117. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
  118. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
  119. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
  120. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.js +107 -0
  121. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +11 -0
  122. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.js +65 -0
  123. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.page.js +73 -0
  124. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +34 -0
  125. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
  126. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +1 -1
  127. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
  128. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
  129. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
  130. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +3 -1
  131. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
  132. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +2 -1
  133. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.js +1 -1
  134. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
  135. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +5 -1
  136. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
  137. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.data.js +0 -2
  138. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +4 -5
  139. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.page.js +0 -1
  140. package/src/react-extension/components/Common/Avatar/UserAvatar.js +2 -1
  141. package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +126 -0
  142. package/src/react-extension/components/Common/Icons/AnimatedFeedback.js +58 -0
  143. package/src/react-extension/components/Common/Icons/Icon.js +16 -0
  144. package/src/react-extension/components/Common/Icons/Icon.test.stories.js +78 -0
  145. package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +4 -0
  146. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
  147. package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -4
  148. package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +1 -1
  149. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
  150. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
  151. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
  152. package/src/react-extension/components/Common/Tab/Tab.js +65 -0
  153. package/src/react-extension/components/Common/Tab/Tabs.js +87 -0
  154. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +85 -66
  155. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +80 -1
  156. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +18 -39
  157. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +27 -8
  158. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +70 -4
  159. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +1 -1
  160. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
  161. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +20 -47
  162. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
  163. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +2 -2
  164. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.data.js +1 -7
  165. package/src/react-extension/components/Resource/EditResource/EditResource.js +93 -68
  166. package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +80 -1
  167. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +10 -39
  168. package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +26 -11
  169. package/src/react-extension/components/Resource/ExportResources/ExportResources.js +1 -1
  170. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
  171. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +10 -12
  172. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
  173. package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.js +4 -4
  174. package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
  175. package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
  176. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +41 -193
  177. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
  178. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
  179. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +6 -2
  180. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
  181. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
  182. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
  183. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
  184. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
  185. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +1 -1
  186. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +7 -2
  187. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.test.js +3 -7
  188. package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +1 -1
  189. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +1 -1
  190. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.page.js +1 -1
  191. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
  192. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.js +1 -1
  193. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
  194. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
  195. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
  196. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
  197. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
  198. package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
  199. package/src/react-extension/components/Resource/ImportResources/ImportResources.js +6 -5
  200. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +10 -12
  201. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
  202. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
  203. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
  204. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
  205. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.js +1 -1
  206. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.page.object.js +1 -1
  207. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
  208. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
  209. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
  210. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +9 -8
  211. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.page.js +1 -1
  212. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
  213. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
  214. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +1 -1
  215. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
  216. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
  217. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
  218. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -2
  219. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +1 -1
  220. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
  221. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
  222. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
  223. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
  224. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +1 -1
  225. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
  226. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
  227. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
  228. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
  229. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +150 -0
  230. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +30 -0
  231. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +191 -0
  232. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +73 -0
  233. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +296 -0
  234. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +112 -0
  235. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
  236. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
  237. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +1 -1
  238. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
  239. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
  240. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.test.page.js +1 -1
  241. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +5 -1
  242. package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
  243. package/src/react-extension/components/Share/ShareDialog.test.stories.js +12 -10
  244. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
  245. package/src/react-extension/components/User/CreateUser/CreateUser.js +4 -4
  246. package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +3 -3
  247. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
  248. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
  249. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
  250. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -2
  251. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +1 -1
  252. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -2
  253. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +2 -1
  254. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +6 -0
  255. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
  256. package/src/react-extension/components/User/EditUser/EditUser.js +3 -3
  257. package/src/react-extension/components/User/EditUser/EditUser.test.page.js +2 -2
  258. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
  259. package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.js +2 -2
  260. package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.js +1 -1
  261. package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
  262. package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.js +1 -1
  263. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +1 -1
  264. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
  265. package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
  266. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
  267. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
  268. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
  269. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +1 -1
  270. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +2 -2
  271. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
  272. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
  273. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
  274. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
  275. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
  276. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +11 -3
  277. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +7 -0
  278. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +1 -1
  279. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +12 -8
  280. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +92 -21
  281. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
  282. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +2 -2
  283. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.page.js +1 -1
  284. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +12 -10
  285. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +4 -10
  286. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +65 -25
  287. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
  288. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +1 -1
  289. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +1 -1
  290. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +14 -13
  291. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
  292. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
  293. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
  294. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
  295. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
  296. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +13 -1
  297. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
  298. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
  299. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
  300. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +3 -3
  301. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
  302. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +26 -4
  303. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
  304. package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.js +749 -0
  305. package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.data.js +32 -0
  306. package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.js +60 -0
  307. package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.page.js +110 -0
  308. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +3 -2
  309. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
  310. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +2 -2
  311. package/src/react-extension/contexts/ApiAppContext.js +1 -1
  312. package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
  313. package/src/react-extension/contexts/ApiSetupContext.js +1 -1
  314. package/src/react-extension/contexts/AuthenticationContext.js +21 -2
  315. package/src/react-extension/contexts/AuthenticationContext.test.js +40 -0
  316. package/src/react-extension/contexts/DragContext.js +122 -0
  317. package/src/react-extension/contexts/DragContext.test.js +53 -0
  318. package/src/react-extension/contexts/NavigationContext.js +11 -0
  319. package/src/react-extension/contexts/ResourcePasswordGeneratorContext.js +144 -0
  320. package/src/react-extension/contexts/ResourceWorkspaceContext.js +5 -4
  321. package/src/react-extension/contexts/ResourceWorkspaceContext.test.data.js +0 -1
  322. package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +0 -1
  323. package/src/react-extension/contexts/UserWorkspaceContext.js +31 -4
  324. package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +17 -287
  325. package/src/react-extension/lib/Crypto/sha512.js +17 -0
  326. package/src/react-extension/test/fixture/Settings/siteSettings.js +6 -0
  327. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
  328. package/src/react-quickaccess/ExtQuickAccess.js +75 -28
  329. package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +22 -5
  330. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +41 -0
  331. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +23 -0
  332. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +8 -4
  333. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +7 -7
  334. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +10 -6
  335. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +9 -5
  336. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +10 -7
  337. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +7 -7
  338. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +10 -7
  339. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +7 -7
  340. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +10 -7
  341. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +7 -7
  342. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +10 -7
  343. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +9 -5
  344. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.js +150 -0
  345. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.data.js +20 -0
  346. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.js +67 -0
  347. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.page.js +109 -0
  348. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +189 -0
  349. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.data.js +40 -0
  350. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.js +67 -0
  351. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.test.page.js +121 -0
  352. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +304 -0
  353. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +102 -0
  354. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.js +76 -0
  355. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.page.js +158 -0
  356. package/src/react-quickaccess/components/Header/Header.js +10 -8
  357. package/src/react-quickaccess/components/Header/Header.test.stories.js +4 -7
  358. package/src/react-quickaccess/components/HomePage/HomePage.js +40 -11
  359. package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +14 -10
  360. package/src/react-quickaccess/components/HomePage/canSuggestUrl.js +8 -3
  361. package/src/react-quickaccess/components/HomePage/canSuggestUrl.test.js +6 -0
  362. package/src/react-quickaccess/components/LoginPage/LoginPage.js +58 -18
  363. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +4 -6
  364. package/src/react-quickaccess/components/ManageQuickAccessMode/ManageQuickAccessMode.js +103 -0
  365. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +2 -2
  366. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +4 -6
  367. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +5 -3
  368. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +6 -6
  369. package/src/react-quickaccess/components/PrivateRoute/PrivateRoute.js +1 -0
  370. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +234 -0
  371. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +28 -0
  372. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +44 -0
  373. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +166 -39
  374. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +108 -2
  375. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +28 -25
  376. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +6 -6
  377. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +6 -3
  378. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +5 -3
  379. package/src/react-quickaccess/components/Search/Search.js +13 -1
  380. package/src/react-quickaccess/components/Search/Search.test.stories.js +4 -6
  381. package/src/react-quickaccess/contexts/PrepareResourceContext.js +221 -0
  382. package/src/react-web-integration/AuthLogin/AuthLogin.js +72 -0
  383. package/src/react-web-integration/Autofill/Autofill.js +331 -0
  384. package/src/react-web-integration/BrowserIntegrationBootstrap.js +64 -0
  385. package/src/react-web-integration/Events/Quickaccess/QuickAccessEvent.js +24 -0
  386. package/src/react-web-integration/ExtInFormCallToAction.js +56 -0
  387. package/src/react-web-integration/ExtInFormMenu.js +70 -0
  388. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.js +161 -0
  389. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.data.js +39 -0
  390. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.js +48 -0
  391. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.page.js +42 -0
  392. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +91 -0
  393. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +360 -0
  394. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +198 -0
  395. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenuItem.js +103 -0
  396. package/src/react-web-integration/contexts/AppContext.js +39 -0
  397. package/src/react-web-integration/lib/Dom/DomUtils.js +94 -0
  398. package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +263 -0
  399. package/src/react-web-integration/lib/InForm/InFormCredentialsFormField.js +118 -0
  400. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +77 -0
  401. package/src/react-web-integration/lib/InForm/InFormManager.js +253 -0
  402. package/src/react-web-integration/lib/InForm/InformManager.test.data.js +46 -0
  403. package/src/react-web-integration/lib/InForm/InformManager.test.js +82 -0
  404. package/src/react-web-integration/lib/InForm/InformManager.test.page.js +116 -0
  405. package/src/react-web-integration/lib/InForm/InformMenuField.js +182 -0
  406. package/src/shared/components/Internationalisation/TranslationProvider.js +145 -0
  407. package/src/shared/lib/Browser/detectBrowserName.js +2 -1
  408. package/src/shared/lib/Secret/SecretComplexity.js +2 -2
  409. package/src/shared/lib/SecretGenerator/PassphraseGenerator.js +112 -0
  410. package/src/shared/lib/SecretGenerator/PassphraseGenerator.test.js +48 -0
  411. package/src/shared/lib/SecretGenerator/PassphraseGeneratorWords.js +7789 -0
  412. package/src/shared/lib/SecretGenerator/PasswordGenerator.js +103 -0
  413. package/src/shared/lib/SecretGenerator/SecretGenerator.js +45 -0
  414. package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.js +190 -0
  415. package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.test.js +95 -0
  416. package/src/shared/lib/Settings/SiteSettings.js +8 -0
  417. package/src/shared/lib/apiClient/apiClient.test.js +1 -1
  418. package/.babelrc +0 -11
  419. package/.editorconfig +0 -13
  420. package/.eslintrc.json +0 -197
  421. package/.gitlab-ci.yml +0 -28
  422. package/.jest.config.json +0 -6
  423. package/.jest.setup.js +0 -8
  424. package/.jest.transform.js +0 -7
  425. package/.storybook/main.js +0 -15
  426. package/.storybook/preview-body.html +0 -5
  427. package/.storybook/preview.js +0 -6
  428. package/Gruntfile.js +0 -199
  429. package/build/css/themes/default/ext_config_debug.min.css +0 -13
  430. package/build/css/themes/default/ext_legacy.min.css +0 -13
  431. package/build/css/themes/midgar/ext_legacy.min.css +0 -13
  432. package/crowdin.yml +0 -4
  433. package/docker-compose-dev.yml +0 -10
  434. package/jest.config.json +0 -6
  435. package/src/img/controls/colorpicker/marker.png +0 -0
  436. package/src/img/controls/colorpicker/mask.png +0 -0
  437. package/src/img/controls/colorpicker/wheel.png +0 -0
  438. package/src/img/controls/overlay-opacity-50.png +0 -0
  439. package/src/img/third_party/ChromeWebStore_black.png +0 -0
  440. package/src/img/third_party/ChromeWebStore_white.png +0 -0
  441. package/src/js/accordion.js +0 -10
  442. package/src/js/autocomplete.js +0 -241
  443. package/src/js/autocomplete.min.js +0 -3
  444. package/src/js/bootstrap-scrollspy.js +0 -172
  445. package/src/js/chosen.jquery.js +0 -1356
  446. package/src/js/colorpicker.js +0 -32
  447. package/src/js/download.js +0 -128
  448. package/src/js/farbtastic.js +0 -345
  449. package/src/js/swiper.min.js +0 -18
  450. package/src/react-quickaccess/components/Internationalisation/TranslationProvider.js +0 -151
  451. package/storybook-static/favicon.ico +0 -0
  452. package/storybook-static/iframe.html +0 -133
  453. package/storybook-static/index.html +0 -47
  454. package/storybook-static/main.2d01924b12554c6c15af.bundle.js +0 -1
  455. package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js +0 -3
  456. package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js.LICENSE.txt +0 -153
  457. package/storybook-static/main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
  458. package/storybook-static/runtime~main.6a9b04192e3176eff72a.bundle.js +0 -1
  459. package/storybook-static/runtime~main.b0c44c8759149ccf4f67.bundle.js +0 -2
  460. package/storybook-static/runtime~main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
  461. package/storybook-static/static/media/chosen-sprite.6768c197.png +0 -0
  462. package/storybook-static/static/media/chosen-sprite@2x.a0b7f3f1.png +0 -0
  463. package/storybook-static/static/media/dot_black.a2c44078.svg +0 -6
  464. package/storybook-static/static/media/dot_red.7b34541d.svg +0 -6
  465. package/storybook-static/static/media/dot_white.f60f7331.svg +0 -6
  466. package/storybook-static/static/media/fontawesome-webfont.1e59d233.ttf +0 -0
  467. package/storybook-static/static/media/fontawesome-webfont.20fd1704.woff2 +0 -0
  468. package/storybook-static/static/media/fontawesome-webfont.8b43027f.eot +0 -0
  469. package/storybook-static/static/media/fontawesome-webfont.c1e38fd9.svg +0 -2671
  470. package/storybook-static/static/media/fontawesome-webfont.f691f37e.woff +0 -0
  471. package/storybook-static/static/media/infinite-bar.f5327dc3.gif +0 -0
  472. package/storybook-static/static/media/loading_dark.ea474c7f.svg +0 -21
  473. package/storybook-static/static/media/loading_light.061977b5.svg +0 -15
  474. package/storybook-static/static/media/logo.e2b062a5.svg +0 -1
  475. package/storybook-static/static/media/logo_white.cb32e694.svg +0 -1
  476. package/storybook-static/static/media/opensans-bold.a6b4768c.woff +0 -0
  477. package/storybook-static/static/media/opensans-regular.7812bd0b.woff +0 -0
  478. package/storybook-static/static/media/passphrase_intro.37a1ba4e.png +0 -0
  479. package/storybook-static/vendors~main.4abf29e4f956d5befb41.bundle.js +0 -2
  480. package/storybook-static/vendors~main.4abf29e4f956d5befb41.bundle.js.LICENSE.txt +0 -105
  481. package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js +0 -3
  482. package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js.LICENSE.txt +0 -145
  483. package/storybook-static/vendors~main.b0c44c8759149ccf4f67.bundle.js.map +0 -1
  484. package/webpack-api.config.js +0 -83
  485. package/webpack-ext.config.js +0 -84
@@ -23,6 +23,7 @@ import DisplayActionFeedbacks from "./components/Common/ActionFeedback/DisplayAc
23
23
  import DialogContextProvider from "./contexts/DialogContext";
24
24
  import ManageDialogs from "./components/Common/Dialog/ManageDialogs/ManageDialogs";
25
25
  import ResourceWorkspaceContextProvider from "./contexts/ResourceWorkspaceContext";
26
+ import ResourcePasswordGeneratorContextProvider from "./contexts/ResourcePasswordGeneratorContext";
26
27
  import UserWorkspaceContextProvider from "./contexts/UserWorkspaceContext";
27
28
  import ContextualMenuContextProvider from "./contexts/ContextualMenuContext";
28
29
  import ManageContextualMenu from "./components/Common/ContextualMenu/ManageContextualMenu";
@@ -54,6 +55,7 @@ import HandleFolderMoveStrategyEvents
54
55
  import HandleProgressEvents from "./components/Common/Progress/HandleProgressEvents/HandleProgressEvents";
55
56
  import HandleErrorEvents from "./components/Common/Error/HandleErrorEvents/HandleErrorEvents";
56
57
  import DisplayResourcesWorkspace from "./components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspace";
58
+ import DragContextProvider from "./contexts/DragContext";
57
59
 
58
60
  /**
59
61
  * The passbolt application served by the browser extension.
@@ -114,17 +116,21 @@ class ExtApp extends Component {
114
116
  "/app/passwords",
115
117
  ]}>
116
118
  <ResourceWorkspaceContextProvider>
117
- <ManageDialogs/>
118
- <ManageContextualMenu/>
119
- <ManageAnnouncements/>
120
- <div id="container" className="page password">
121
- <div id="app" className="app ready" tabIndex="1000">
122
- <div className="header first">
123
- <DisplayMainMenu/>
119
+ <ResourcePasswordGeneratorContextProvider>
120
+ <ManageDialogs/>
121
+ <ManageContextualMenu/>
122
+ <ManageAnnouncements/>
123
+ <DragContextProvider>
124
+ <div id="container" className="page password">
125
+ <div id="app" className="app ready" tabIndex="1000">
126
+ <div className="header first">
127
+ <DisplayMainMenu/>
128
+ </div>
129
+ <DisplayResourcesWorkspace onMenuItemClick={this.handleWorkspaceSelect}/>
130
+ </div>
124
131
  </div>
125
- <DisplayResourcesWorkspace onMenuItemClick={this.handleWorkspaceSelect}/>
126
- </div>
127
- </div>
132
+ </DragContextProvider>
133
+ </ResourcePasswordGeneratorContextProvider>
128
134
  </ResourceWorkspaceContextProvider>
129
135
  </Route>
130
136
  {/* Users workspace */}
@@ -131,6 +131,7 @@ class ExtBootstrapApp extends Component {
131
131
  "/app/settings/profile",
132
132
  "/app/settings/passphrase",
133
133
  "/app/settings/security-token",
134
+ "/app/settings/mobile",
134
135
  "/app/settings/theme",
135
136
  "/app/users/view/:selectedUserId",
136
137
  "/app/users",
@@ -171,7 +171,7 @@ class DisplayAdministrationMenu extends React.Component {
171
171
  */
172
172
  render() {
173
173
  return (
174
- <div className="navigation first">
174
+ <div className="navigation-secondary navigation-administration">
175
175
  <ul id="administration_menu" className="clearfix menu ready">
176
176
  {this.isMfaEnabled &&
177
177
  <li id="mfa_menu">
@@ -209,7 +209,7 @@ class DisplayAdministrationMenu extends React.Component {
209
209
  <div className={`row ${this.isInternationalizationSelected() ? "selected" : ""}`}>
210
210
  <div className="main-cell-wrapper">
211
211
  <div className="main-cell">
212
- <a onClick={this.handleInternationalizationClick}><span><Trans>Internationalization</Trans></span></a>
212
+ <a onClick={this.handleInternationalizationClick}><span><Trans>Internationalisation</Trans></span></a>
213
213
  </div>
214
214
  </div>
215
215
  </div>
@@ -69,12 +69,12 @@ describe("As AD I can see the administration menu", () => {
69
69
  expect(props.navigationContext.onGoToAdministrationSubscriptionRequested).toHaveBeenCalled();
70
70
  });
71
71
 
72
- it('As AD I should be able to go to internationalization', async() => {
72
+ it('As AD I should be able to go to internationalisation', async() => {
73
73
  const props = defaultProps(AdministrationWorkspaceMenuTypes.INTERNATIONALIZATION); // The props to pass
74
74
  page = new DisplayAdministrationMenuPage(context, props);
75
75
  expect(page.exists()).toBeTruthy();
76
76
  await page.goToInternationalization();
77
- expect(page.menuSelected).toBe('Internationalization');
77
+ expect(page.menuSelected).toBe('Internationalisation');
78
78
  expect(props.navigationContext.onGoToAdministrationInternationalizationRequested).toHaveBeenCalled();
79
79
  });
80
80
  });
@@ -58,7 +58,7 @@ class DisplayAdministrationWorkspaceBreadcrumb extends Component {
58
58
  case AdministrationWorkspaceMenuTypes.SUBSCRIPTION:
59
59
  return this.translate("Subscription");
60
60
  case AdministrationWorkspaceMenuTypes.INTERNATIONALIZATION:
61
- return this.translate("Internationalization");
61
+ return this.translate("Internationalisation");
62
62
  default:
63
63
  return "";
64
64
  }
@@ -81,7 +81,7 @@ describe("As AD I can see a Breadcrumb", () => {
81
81
  page = new DisplayAdministrationWorkspaceBreadcrumbPage(context, props);
82
82
  expect(page.count).toBe(3);
83
83
  expect(page.item(1)).toBe("Administration");
84
- expect(page.item(2)).toBe("Internationalization");
84
+ expect(page.item(2)).toBe("Internationalisation");
85
85
  expect(page.item(3)).toBe("Settings");
86
86
  });
87
87
  });
@@ -17,6 +17,7 @@ import {withActionFeedback} from "../../../../react-extension/contexts/ActionFee
17
17
  import Icon from "../../Common/Icons/Icon";
18
18
  import {withAdministrationWorkspace} from "../../../contexts/AdministrationWorkspaceContext";
19
19
  import {Trans, withTranslation} from "react-i18next";
20
+ import {withAppContext} from "../../../contexts/AppContext";
20
21
 
21
22
  /**
22
23
  * This component allows to display the email notifications for the administration
@@ -321,6 +322,14 @@ class DisplayEmailNotificationsAdministration extends React.Component {
321
322
  return this.state.hasFileConfigSetting;
322
323
  }
323
324
 
325
+ /**
326
+ * Can use folders
327
+ * @returns {*}
328
+ */
329
+ canUseFolders() {
330
+ return this.props.context.siteSettings.canIUse("folders");
331
+ }
332
+
324
333
  /**
325
334
  * Get the translate function
326
335
  * @returns {function(...[*]=)}
@@ -384,6 +393,7 @@ class DisplayEmailNotificationsAdministration extends React.Component {
384
393
  <label className="toggle-switch-button" htmlFor="send-password-share-toggle-button"/>
385
394
  </span>
386
395
  </div>
396
+ {this.canUseFolders() &&
387
397
  <div className="col6 last">
388
398
  <label><Trans>Folders</Trans></label>
389
399
  <span className="input toggle-switch form-element">
@@ -411,6 +421,7 @@ class DisplayEmailNotificationsAdministration extends React.Component {
411
421
  <label className="toggle-switch-button" htmlFor="send-folder-share-toggle-button"/>
412
422
  </span>
413
423
  </div>
424
+ }
414
425
  <div className="row">
415
426
  </div>
416
427
  <div className="col6 last">
@@ -427,7 +438,7 @@ class DisplayEmailNotificationsAdministration extends React.Component {
427
438
  <div className="col6">
428
439
  <label><Trans>Group membership</Trans></label>
429
440
  <span className="input toggle-switch form-element">
430
- <label htmlFor="send-group-delete-toggle-button"><Trans>When a group is deleted, notify the users who were member of it.</Trans></label>
441
+ <label htmlFor="send-group-delete-toggle-button"><Trans>When a group is deleted, notify the users who were members of it.</Trans></label>
431
442
  <input type="checkbox" className="toggle-switch-checkbox checkbox" name="groupDelete" disabled={this.hasAllInputDisabled()}
432
443
  onChange={this.handleInputChange} checked={this.state.groupDelete} id="send-group-delete-toggle-button"/>
433
444
  <label className="toggle-switch-button" htmlFor="send-group-delete-toggle-button"/>
@@ -517,12 +528,14 @@ class DisplayEmailNotificationsAdministration extends React.Component {
517
528
  </form>
518
529
  </div>
519
530
  <div className="col4 last">
520
- <h3><Trans>Need some help?</Trans></h3>
521
- <p><Trans>For more information about email notification, checkout the dedicated page on the help website.</Trans></p>
522
- <a className="button" href="https://help.passbolt.com/configure/notification/email" target="_blank" rel="noopener noreferrer">
523
- <Icon name="life-ring"/>
524
- <span><Trans>Read documentation</Trans></span>
525
- </a>
531
+ <div className="sidebar-help">
532
+ <h3><Trans>Need some help?</Trans></h3>
533
+ <p><Trans>For more information about email notification, checkout the dedicated page on the help website.</Trans></p>
534
+ <a className="button" href="https://help.passbolt.com/configure/notification/email" target="_blank" rel="noopener noreferrer">
535
+ <Icon name="life-ring"/>
536
+ <span><Trans>Read the documentation</Trans></span>
537
+ </a>
538
+ </div>
526
539
  </div>
527
540
  </div>
528
541
  );
@@ -530,9 +543,10 @@ class DisplayEmailNotificationsAdministration extends React.Component {
530
543
  }
531
544
 
532
545
  DisplayEmailNotificationsAdministration.propTypes = {
546
+ context: PropTypes.any, // The application context
533
547
  administrationWorkspaceContext: PropTypes.object, // The administration workspace context
534
548
  actionFeedbackContext: PropTypes.any, // The action feedback context
535
549
  t: PropTypes.func, // The translation function
536
550
  };
537
551
 
538
- export default withActionFeedback(withAdministrationWorkspace(withTranslation('common')(DisplayEmailNotificationsAdministration)));
552
+ export default withAppContext(withActionFeedback(withAdministrationWorkspace(withTranslation('common')(DisplayEmailNotificationsAdministration))));
@@ -1,3 +1,5 @@
1
+ import SiteSettings from "../../../../shared/lib/Settings/SiteSettings";
2
+ import siteSettingsFixture from "../../../test/fixture/Settings/siteSettings";
1
3
 
2
4
  /**
3
5
  * Returns the default app context for the unit test
@@ -6,6 +8,7 @@
6
8
  */
7
9
  export function defaultAppContext(appContext) {
8
10
  const defaultAppContext = {
11
+ siteSettings: new SiteSettings(siteSettingsFixture)
9
12
  };
10
13
  return Object.assign(defaultAppContext, appContext || {});
11
14
  }
@@ -190,12 +190,12 @@ class DisplayInternationalizationAdministration extends React.Component {
190
190
  render() {
191
191
  return (
192
192
  <div className="row">
193
- <div className="internationalisation-settings col8">
193
+ <div className="internationalisation-settings col7">
194
194
  <h3><Trans>Internationalisation</Trans></h3>
195
195
  <form className="form">
196
196
  <div className="input select locale">
197
197
  <label htmlFor="app-locale-input"><Trans>Language</Trans></label>
198
- <select className="large" id="locale-input" name="locale" value={this.state.locale} onChange={this.handleInputChange}>
198
+ <select className="medium" id="locale-input" name="locale" value={this.state.locale} onChange={this.handleInputChange}>
199
199
  {this.supportedLocales.map(supportedLocale =>
200
200
  <option key={supportedLocale.locale} value={supportedLocale.locale}>
201
201
  {supportedLocale.label}
@@ -207,12 +207,14 @@ class DisplayInternationalizationAdministration extends React.Component {
207
207
  </form>
208
208
  </div>
209
209
  <div className="col4 last">
210
- <h3><Trans>Want to contribute?</Trans></h3>
211
- <p><Trans>Your language is missing or you discovered an error in the translation, help us to improve passbolt.</Trans></p>
212
- <a className="button" href="https://help.passbolt.com/contribute/translation" target="_blank" rel="noopener noreferrer">
213
- <Icon name="heart-o"/>
214
- <span><Trans>Contribute</Trans></span>
215
- </a>
210
+ <div className="sidebar-help">
211
+ <h3><Trans>Want to contribute?</Trans></h3>
212
+ <p><Trans>Your language is missing or you discovered an error in the translation, help us to improve passbolt.</Trans></p>
213
+ <a className="button" href="https://help.passbolt.com/contribute/translation" target="_blank" rel="noopener noreferrer">
214
+ <Icon name="heart-o"/>
215
+ <span><Trans>Contribute</Trans></span>
216
+ </a>
217
+ </div>
216
218
  </div>
217
219
  </div>
218
220
  );
@@ -409,7 +409,7 @@ class DisplayMfaAdministration extends React.Component {
409
409
  render() {
410
410
  return (
411
411
  <div className="row">
412
- <div className="mfa-settings col8">
412
+ <div className="mfa-settings col7">
413
413
  <form className="form ready">
414
414
  <div className="provider-section totp">
415
415
  <h3>
@@ -451,20 +451,20 @@ class DisplayMfaAdministration extends React.Component {
451
451
  <Trans>The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.</Trans>
452
452
  </p>
453
453
  <div className="form-content">
454
- <div className="input text required">
454
+ <div className={`input text required ${this.state.yubikeyClientIdentifierError ? "error" : ""}`}>
455
455
  <label><Trans>Client identifier</Trans></label>
456
456
  <input id="yubikeyClientIdentifier" type="text" name="yubikeyClientIdentifier" required="required" className="required fluid form-element ready" placeholder="123456789"
457
457
  onChange={this.handleInputChange} value={this.state.yubikeyClientIdentifier} disabled={this.hasAllInputDisabled()}/>
458
458
  {this.state.yubikeyClientIdentifierError &&
459
- <div className="yubikey_client_identifier message error">{this.state.yubikeyClientIdentifierError}</div>
459
+ <div className="yubikey_client_identifier error-message">{this.state.yubikeyClientIdentifierError}</div>
460
460
  }
461
461
  </div>
462
- <div className="input text required">
462
+ <div className={`input text required ${this.state.yubikeySecretKeyError ? "error" : ""}`}>
463
463
  <label><Trans>Secret key</Trans></label>
464
464
  <input id="yubikeySecretKey" name="yubikeySecretKey" required="required" className="required fluid form-element" placeholder="**********" type="password"
465
465
  onChange={this.handleInputChange} value={this.state.yubikeySecretKey} disabled={this.hasAllInputDisabled()}/>
466
466
  {this.state.yubikeySecretKeyError &&
467
- <div className="yubikey_secret_key message error">{this.state.yubikeySecretKeyError}</div>
467
+ <div className="yubikey_secret_key error-message">{this.state.yubikeySecretKeyError}</div>
468
468
  }
469
469
  </div>
470
470
  </div>
@@ -491,38 +491,38 @@ class DisplayMfaAdministration extends React.Component {
491
491
  <Trans>The Duo provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.</Trans>
492
492
  </p>
493
493
  <div className="form-content">
494
- <div className="input text required">
494
+ <div className={`input text required ${this.state.duoHostnameError ? "error" : ""}`}>
495
495
  <label><Trans>Hostname</Trans></label>
496
496
  <input id="duoHostname" type="text" name="duoHostname" required="required" className="required fluid form-element ready"
497
497
  placeholder="api-24zlkn4.duosecurity.com" value={this.state.duoHostname}
498
498
  onChange={this.handleInputChange} disabled={this.hasAllInputDisabled()}/>
499
499
  {this.state.duoHostnameError &&
500
- <div className="duo_hostname message error">{this.state.duoHostnameError}</div>
500
+ <div className="duo_hostname error-message">{this.state.duoHostnameError}</div>
501
501
  }
502
502
  </div>
503
- <div className="input text required">
503
+ <div className={`input text required ${this.state.duoIntegrationKeyError ? "error" : ""}`}>
504
504
  <label><Trans>Integration key</Trans></label>
505
505
  <input id="duoIntegrationKey" type="text" name="duoIntegrationKey" required="required" className="required fluid form-element ready"
506
506
  placeholder="HASJKDSQJO213123KQSLDF" value={this.state.duoIntegrationKey}
507
507
  onChange={this.handleInputChange} disabled={this.hasAllInputDisabled()}/>
508
508
  {this.state.duoIntegrationKeyError &&
509
- <div className="duo_integration_key message error">{this.state.duoIntegrationKeyError}</div>
509
+ <div className="duo_integration_key error-message">{this.state.duoIntegrationKeyError}</div>
510
510
  }
511
511
  </div>
512
- <div className="input text required">
512
+ <div className={`input text required ${this.state.duoSaltError ? "error" : ""}`}>
513
513
  <label><Trans>Salt</Trans></label>
514
514
  <input id="duoSalt" name="duoSalt" required="required" className="required fluid form-element ready" placeholder="**********" type="password"
515
515
  value={this.state.duoSalt} onChange={this.handleInputChange} disabled={this.hasAllInputDisabled()}/>
516
516
  {this.state.duoSaltError &&
517
- <div className="duo_salt message error">{this.state.duoSaltError}</div>
517
+ <div className="duo_salt error-message">{this.state.duoSaltError}</div>
518
518
  }
519
519
  </div>
520
- <div className="input text required">
520
+ <div className={`input text required ${this.state.duoSecretKeyError ? "error" : ""}`}>
521
521
  <label><Trans>Secret key</Trans></label>
522
522
  <input id="duoSecretKey" name="duoSecretKey" required="required" className="required fluid form-element ready" placeholder="**********" type="password"
523
523
  value={this.state.duoSecretKey} onChange={this.handleInputChange} disabled={this.hasAllInputDisabled()}/>
524
524
  {this.state.duoSecretKeyError &&
525
- <div className="duo_secret_key message error">{this.state.duoSecretKeyError}</div>
525
+ <div className="duo_secret_key error-message">{this.state.duoSecretKeyError}</div>
526
526
  }
527
527
  </div>
528
528
  </div>
@@ -532,12 +532,14 @@ class DisplayMfaAdministration extends React.Component {
532
532
  </form>
533
533
  </div>
534
534
  <div className="col4 last">
535
- <h2><Trans>Need help?</Trans></h2>
536
- <p><Trans>Check out our Multi Factor Authentication configuration guide.</Trans></p>
537
- <a className="button" href="https://help.passbolt.com/configure" target="_blank" rel="noopener noreferrer">
538
- <Icon name="life-ring"/>
539
- <span><Trans>Read documentation</Trans></span>
540
- </a>
535
+ <div className="sidebar-help">
536
+ <h3><Trans>Need help?</Trans></h3>
537
+ <p><Trans>Check out our Multi Factor Authentication configuration guide.</Trans></p>
538
+ <a className="button" href="https://help.passbolt.com/configure" target="_blank" rel="noopener noreferrer">
539
+ <Icon name="life-ring"/>
540
+ <span><Trans>Read the documentation</Trans></span>
541
+ </a>
542
+ </div>
541
543
  </div>
542
544
  </div>
543
545
  );
@@ -120,42 +120,42 @@ export default class DisplayMfaAdministrationPage {
120
120
  * Returns the yubikey client identifier error mesage input element
121
121
  */
122
122
  get yubikeyClientIdentifierErrorMessage() {
123
- return this._page.container.querySelector('.yubikey_client_identifier.error.message').textContent;
123
+ return this._page.container.querySelector('.yubikey_client_identifier.error-message').textContent;
124
124
  }
125
125
 
126
126
  /**
127
127
  * Returns the yubikey client identifier error mesage input element
128
128
  */
129
129
  get yubikeySecretKeyErrorMessage() {
130
- return this._page.container.querySelector('.yubikey_secret_key.error.message').textContent;
130
+ return this._page.container.querySelector('.yubikey_secret_key.error-message').textContent;
131
131
  }
132
132
 
133
133
  /**
134
134
  * Returns the duo hostname error mesage input element
135
135
  */
136
136
  get duoHostnameErrorMessage() {
137
- return this._page.container.querySelector('.duo_hostname.error.message').textContent;
137
+ return this._page.container.querySelector('.duo_hostname.error-message').textContent;
138
138
  }
139
139
 
140
140
  /**
141
141
  * Returns the duo integration key error mesage input element
142
142
  */
143
143
  get duoIntegrationKeyErrorMessage() {
144
- return this._page.container.querySelector('.duo_integration_key.error.message').textContent;
144
+ return this._page.container.querySelector('.duo_integration_key.error-message').textContent;
145
145
  }
146
146
 
147
147
  /**
148
148
  * Returns the duo salt error mesage input element
149
149
  */
150
150
  get duoSaltErrorMessage() {
151
- return this._page.container.querySelector('.duo_salt.error.message').textContent;
151
+ return this._page.container.querySelector('.duo_salt.error-message').textContent;
152
152
  }
153
153
 
154
154
  /**
155
155
  * Returns the duo secret key error mesage input element
156
156
  */
157
157
  get duoSecretKeyErrorMessage() {
158
- return this._page.container.querySelector('.duo_secret_key.error.message').textContent;
158
+ return this._page.container.querySelector('.duo_secret_key.error-message').textContent;
159
159
  }
160
160
 
161
161
  /**
@@ -289,7 +289,7 @@ class DisplaySimulateSynchronizeUserDirectoryAdministration extends Component {
289
289
  onClose={this.handleClose} disabled={this.isLoading()}>
290
290
  <div className="form-content" onSubmit={this.handleFormSubmit}>
291
291
  <p>
292
- <strong><Trans>The operation was successfull.</Trans></strong>
292
+ <strong><Trans>The operation was successful.</Trans></strong>
293
293
  </p>
294
294
  <p></p>
295
295
  {this.hasSuccessResource() &&
@@ -42,7 +42,7 @@ describe("See the simulate synchronize user directory administration dialog", ()
42
42
  it('As AD I should see The full report in the dialog for my simulate synchronize report', async() => {
43
43
  expect(page.title.hyperlink.textContent).toBe("Synchronize simulation report");
44
44
  expect(page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.exists()).toBeTruthy();
45
- expect(page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.resourceSynchronize).toBe(' 2 user and 60 group will be synchronized. ');
45
+ expect(page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.resourceSynchronize).toBe(' 2 users and 60 groups will be synchronized. ');
46
46
  expect(page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.error).toBe('Some resources will not be synchronized and will require your attention, see the full report.');
47
47
  expect(page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.noResource).toBeNull();
48
48
  await page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.click(page.displaySimulateSynchronizeUserDirectoryAdministrationDialog.fullReport);
@@ -4,7 +4,6 @@ import AppContext from "../../../contexts/AppContext";
4
4
  import PropTypes from "prop-types";
5
5
  import DisplaySimulateSynchronizeUserDirectoryAdministration
6
6
  from "./DisplaySimulateSynchronizeUserDirectoryAdministration";
7
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
8
7
 
9
8
  export default {
10
9
  title: 'Passbolt/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration',
@@ -15,13 +14,11 @@ const context = {};
15
14
 
16
15
 
17
16
  const Template = args =>
18
- <MockTranslationProvider>
19
- <AppContext.Provider value={context}>
20
- <MemoryRouter initialEntries={['/']}>
21
- <Route component={routerProps => <DisplaySimulateSynchronizeUserDirectoryAdministration {...args} {...routerProps}/>}></Route>
22
- </MemoryRouter>
23
- </AppContext.Provider>
24
- </MockTranslationProvider>;
17
+ <AppContext.Provider value={context}>
18
+ <MemoryRouter initialEntries={['/']}>
19
+ <Route component={routerProps => <DisplaySimulateSynchronizeUserDirectoryAdministration {...args} {...routerProps}/>}></Route>
20
+ </MemoryRouter>
21
+ </AppContext.Provider>;
25
22
 
26
23
  Template.propTypes = {
27
24
  context: PropTypes.object,
@@ -21,6 +21,7 @@ import {withDialog} from "../../../../react-extension/contexts/DialogContext";
21
21
  import EditSubscriptionKey from "../EditSubscriptionKey/EditSubscriptionKey";
22
22
  import {withNavigationContext} from "../../../contexts/NavigationContext";
23
23
  import Icon from "../../Common/Icons/Icon";
24
+ import AnimatedFeedback from "../../Common/Icons/AnimatedFeedback";
24
25
 
25
26
  /**
26
27
  * This component allows to display the subscription key for the administration
@@ -316,37 +317,16 @@ class DisplaySubscriptionKey extends React.Component {
316
317
  {!this.isLoading() &&
317
318
  <div className="subscription-key col8">
318
319
  <h3><Trans>Subscription key details</Trans></h3>
319
- <div className="message animated">
320
- <div className="illustration">
321
- {this.hasValidSubscription() && !this.hasSubscriptionKeyGoingToExpire() &&
322
- <svg id="successAnimation" className="animated" xmlns="http://www.w3.org/2000/svg" width="170"
323
- height="170" viewBox="0 0 70 70">
324
- <circle id="successAnimationCircle" cx="35" cy="35" r="24" stroke="#000000" strokeWidth="3"
325
- strokeLinecap="round" fill="transparent"/>
326
- <polyline id="successAnimationCheck" stroke="#000000" strokeWidth="3" points="23 34 34 43 47 27"
327
- linecap="round" fill="transparent"/>
328
- </svg>
329
- }
330
- {this.hasInvalidSubscription() &&
331
- <svg id="errorAnimation" className="animated" xmlns="http://www.w3.org/2000/svg" width="170"
332
- height="170" viewBox="0 0 70 70">
333
- <circle id="errorAnimationCircle" cx="35" cy="35" r="24" stroke="#000000" strokeWidth="3"
334
- strokeLinecap="round" fill="transparent"/>
335
- <polyline id="errorAnimationCross" stroke="#000000" strokeWidth="3" points="26 26 44 44"
336
- linecap="round" fill="transparent"/>
337
- <polyline id="errorAnimationCross" stroke="#000000" strokeWidth="3" points="44 26 26 44"
338
- linecap="round" fill="transparent"/>
339
- </svg>
340
- }
341
- {this.hasValidSubscription() && this.hasSubscriptionKeyGoingToExpire() &&
342
- <svg id="warningAnimation" className="animated" xmlns="http://www.w3.org/2000/svg" width="170"
343
- height="170" viewBox="0 0 70 70">
344
- <polyline id="warningAnimation" className="round" stroke="#000000" strokeWidth="3" points="35 9 10 55 60 55 35 9" linecap="round" fill="transparent"></polyline>
345
- <polyline id="warningAnimation" stroke="#000000" strokeWidth="3" points="35 23 35 42" linecap="square" fill="transparent"></polyline>
346
- <polyline id="warningAnimation" stroke="#000000" strokeWidth="3" points="35 50 35 50" linecap="square" fill="transparent"></polyline>
347
- </svg>
348
- }
349
- </div>
320
+ <div className="feedback-card">
321
+ {this.hasValidSubscription() && !this.hasSubscriptionKeyGoingToExpire() &&
322
+ <AnimatedFeedback name="success" />
323
+ }
324
+ {this.hasInvalidSubscription() &&
325
+ <AnimatedFeedback name="warning" />
326
+ }
327
+ {this.hasValidSubscription() && this.hasSubscriptionKeyGoingToExpire() &&
328
+ <AnimatedFeedback name="error" />
329
+ }
350
330
  <div className="subscription-information">
351
331
  {!this.hasSubscriptionKey() &&
352
332
  <>
@@ -383,7 +363,7 @@ class DisplaySubscriptionKey extends React.Component {
383
363
  <span
384
364
  className={`label ${this.hasLimitUsersExceeded() ? "error" : ""}`}><Trans>Users limit:</Trans></span>
385
365
  <span
386
- className={`value ${this.hasLimitUsersExceeded() ? "error" : ""}`}>{this.state.users} (<Trans>curently:</Trans> {this.state.activeUsers})</span>
366
+ className={`value ${this.hasLimitUsersExceeded() ? "error" : ""}`}>{this.state.users} (<Trans>currently:</Trans> {this.state.activeUsers})</span>
387
367
  </li>
388
368
  <li className="created">
389
369
  <span className="label"><Trans>Valid from:</Trans></span>
@@ -418,12 +398,14 @@ class DisplaySubscriptionKey extends React.Component {
418
398
  }
419
399
  {!this.isLoading() &&
420
400
  <div className="col4 last">
421
- <h2><Trans>Need help?</Trans></h2>
422
- <p><Trans>For any change or question related to your passbolt subscription, kindly contact our sales team.</Trans></p>
423
- <a className="button" target="_blank" rel="noopener noreferrer" href="https://www.passbolt.com/contact">
424
- <Icon name="envelope"/>
425
- <span><Trans>Contact Sales</Trans></span>
426
- </a>
401
+ <div className="sidebar-help">
402
+ <h3><Trans>Need help?</Trans></h3>
403
+ <p><Trans>For any change or question related to your passbolt subscription, kindly contact our sales team.</Trans></p>
404
+ <a className="button" target="_blank" rel="noopener noreferrer" href="https://www.passbolt.com/contact">
405
+ <Icon name="envelope"/>
406
+ <span><Trans>Contact Sales</Trans></span>
407
+ </a>
408
+ </div>
427
409
  </div>
428
410
  }
429
411
  </div>
@@ -40,13 +40,16 @@ export function formatDate(date) {
40
40
  }
41
41
  }
42
42
 
43
+ const expiredDate = new Date();
44
+ expiredDate.setMonth(expiredDate.getMonth() + 3);
45
+
43
46
  export const mockSubscription = {
44
47
  "customer_id": "1n6BPvHRWfizhmARz",
45
48
  "subscription_id": "1n6BPvHRWfizhmARz",
46
49
  "users": 5,
47
50
  "email": "ada@passbolt.com",
48
51
  "created": "2020-12-01",
49
- "expiry": "2021-12-01",
52
+ "expiry": formatDate(expiredDate.toISOString()),
50
53
  "data": "data"
51
54
  };
52
55
 
@@ -61,7 +61,7 @@ describe("As AD I should see the subscription", () => {
61
61
  expect(page.customerId).toBe(mockSubscription.customer_id);
62
62
  expect(page.subscriptionId).toBe(mockSubscription.subscription_id);
63
63
  expect(page.email).toBe(mockSubscription.email);
64
- expect(page.users).toBe(`${mockSubscription.users} (curently: ${mockUsers.length})`);
64
+ expect(page.users).toBe(`${mockSubscription.users} (currently: ${mockUsers.length})`);
65
65
  expect(page.created).toBe(`${formatDate(mockSubscription.created)}`);
66
66
  expect(page.expiry).toBe(`${formatDate(mockSubscription.expiry)} (${DateTime.fromISO(mockSubscription.expiry).toRelative()})`);
67
67
  expect(page.help).toBeTruthy();
@@ -81,7 +81,7 @@ describe("As AD I should see the subscription", () => {
81
81
  expect(page.customerId).toBe(mockSubscriptionUsersExceeded.customer_id);
82
82
  expect(page.subscriptionId).toBe(mockSubscriptionUsersExceeded.subscription_id);
83
83
  expect(page.email).toBe(mockSubscriptionUsersExceeded.email);
84
- expect(page.users).toBe(`${mockSubscriptionUsersExceeded.users} (curently: ${mockUsers.length})`);
84
+ expect(page.users).toBe(`${mockSubscriptionUsersExceeded.users} (currently: ${mockUsers.length})`);
85
85
  expect(page.created).toBe(`${formatDate(mockSubscriptionUsersExceeded.created)}`);
86
86
  expect(page.expiry).toBe(`${formatDate(mockSubscriptionUsersExceeded.expiry)} (${DateTime.fromISO(mockSubscriptionUsersExceeded.expiry).toRelative()})`);
87
87
 
@@ -102,7 +102,7 @@ describe("As AD I should see the subscription", () => {
102
102
  expect(page.customerId).toBe(mockSubscriptionExpired.customer_id);
103
103
  expect(page.subscriptionId).toBe(mockSubscriptionExpired.subscription_id);
104
104
  expect(page.email).toBe(mockSubscriptionExpired.email);
105
- expect(page.users).toBe(`${mockSubscriptionExpired.users} (curently: ${mockUsers.length})`);
105
+ expect(page.users).toBe(`${mockSubscriptionExpired.users} (currently: ${mockUsers.length})`);
106
106
  expect(page.created).toBe(`${formatDate(mockSubscriptionExpired.created)}`);
107
107
  expect(page.expiry).toBe(`${formatDate(mockSubscriptionExpired.expiry)} (expired ${DateTime.fromISO(mockSubscriptionExpired.expiry).toRelative()})`);
108
108
 
@@ -183,7 +183,7 @@ describe("As AD I should see the subscription", () => {
183
183
  expect(page.customerId).toBe(mockSubscriptionUpdated.customer_id);
184
184
  expect(page.subscriptionId).toBe(mockSubscriptionUpdated.subscription_id);
185
185
  expect(page.email).toBe(mockSubscriptionUpdated.email);
186
- expect(page.users).toBe(`${mockSubscriptionUpdated.users} (curently: ${mockUsers.length})`);
186
+ expect(page.users).toBe(`${mockSubscriptionUpdated.users} (currently: ${mockUsers.length})`);
187
187
  expect(page.created).toBe(`${formatDate(mockSubscriptionUpdated.created)}`);
188
188
  expect(page.expiry).toBe(`${formatDate(mockSubscriptionUpdated.expiry)} (${DateTime.fromISO(mockSubscriptionUpdated.expiry).toRelative()})`);
189
189
  expect(propsUpdated.administrationWorkspaceContext.onResetActionsSettings).toHaveBeenCalled();
@@ -287,7 +287,7 @@ class DisplaySynchronizeUserDirectoryAdministration extends Component {
287
287
  onClose={this.handleClose} disabled={this.isLoading()}>
288
288
  <div className="form-content" onSubmit={this.handleFormSubmit}>
289
289
  <p>
290
- <strong><Trans>The operation was successfull.</Trans></strong>
290
+ <strong><Trans>The operation was successful.</Trans></strong>
291
291
  </p>
292
292
  <p></p>
293
293
  {this.hasSuccessResource() &&