passbolt-styleguide 3.6.0 → 3.7.0-alpha1

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/README.md +9 -6
  2. package/build/css/help.min.css +3 -7
  3. package/build/css/public.min.css +3 -16
  4. package/build/css/themes/default/api_authentication.min.css +3 -3
  5. package/build/css/themes/default/api_cloud.min.css +3 -3
  6. package/build/css/themes/default/api_main.min.css +3 -12
  7. package/build/css/themes/default/api_reports.min.css +3 -12
  8. package/build/css/themes/default/api_webinstaller.min.css +3 -12
  9. package/build/css/themes/default/ext_app.min.css +3 -12
  10. package/build/css/themes/default/ext_authentication.min.css +3 -3
  11. package/build/css/themes/default/ext_external.min.css +2 -2
  12. package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
  13. package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
  14. package/build/css/themes/default/ext_quickaccess.min.css +3 -3
  15. package/build/css/themes/midgar/api_authentication.min.css +3 -3
  16. package/build/css/themes/midgar/api_main.min.css +3 -12
  17. package/build/css/themes/midgar/api_reports.min.css +3 -12
  18. package/build/css/themes/midgar/ext_app.min.css +3 -12
  19. package/build/css/themes/midgar/ext_authentication.min.css +3 -3
  20. package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
  21. package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
  22. package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
  23. package/build/js/dist/api-account-recovery.js +1 -1
  24. package/build/js/dist/api-app.js +1 -1
  25. package/build/js/dist/api-app.js.LICENSE.txt +25 -1
  26. package/build/js/dist/api-recover.js +1 -1
  27. package/build/js/dist/api-setup.js +1 -1
  28. package/build/js/dist/api-triage.js +1 -1
  29. package/build/js/dist/api-vendors.js +1 -1
  30. package/build/js/dist/api-vendors.js.LICENSE.txt +64 -10
  31. package/i18next-parser.config.js +22 -0
  32. package/jest.config.json +19 -1
  33. package/package.json +18 -13
  34. package/src/img/og/og_image.png +0 -0
  35. package/src/locales/de-DE/common.json +308 -173
  36. package/src/locales/en-UK/common.json +170 -184
  37. package/src/locales/es-ES/common.json +955 -0
  38. package/src/locales/fr-FR/common.json +308 -174
  39. package/src/locales/ja-JP/common.json +292 -172
  40. package/src/locales/lt-LT/common.json +985 -0
  41. package/src/locales/nl-NL/common.json +329 -194
  42. package/src/locales/pl-PL/common.json +337 -172
  43. package/src/locales/sv-SE/common.json +307 -172
  44. package/src/public-website-sign-in/PublicWebsiteSignInBootstrap.js +25 -0
  45. package/src/public-website-sign-in/lib/SignIn/SignInManager.js +85 -0
  46. package/src/public-website-sign-in/lib/SignIn/SignInManager.test.data.js +45 -0
  47. package/src/public-website-sign-in/lib/SignIn/SignInManager.test.js +59 -0
  48. package/src/public-website-sign-in/lib/SignIn/SignInManager.test.page.js +67 -0
  49. package/src/react-extension/ExtBootstrapAccountRecovery.js +17 -0
  50. package/src/react-extension/ExtBootstrapApp.js +17 -0
  51. package/src/react-extension/ExtBootstrapLogin.js +17 -0
  52. package/src/react-extension/ExtBootstrapRecover.js +17 -0
  53. package/src/react-extension/ExtBootstrapSetup.js +17 -0
  54. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.js +3 -7
  55. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.page.js +1 -1
  56. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +1 -1
  57. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.js +1 -1
  58. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +1 -9
  59. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +2 -10
  60. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +3 -4
  61. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +1 -1
  62. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +1 -1
  63. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +1 -1
  64. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +1 -1
  65. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +6 -3
  66. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +10 -7
  67. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +1 -1
  68. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +2 -12
  69. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +2 -12
  70. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +2 -11
  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 +72 -28
  74. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +81 -58
  75. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +3 -1
  76. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +1 -9
  77. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +1 -1
  78. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +12 -6
  79. package/src/react-extension/components/Administration/DisplayLoadingDialog/DisplayLoadingDialog.js +2 -11
  80. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +6 -6
  81. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +1 -1
  82. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +25 -1
  83. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
  84. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +1 -1
  85. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +1 -1
  86. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +25 -1
  87. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
  88. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +1 -1
  89. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.js +12 -2
  90. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +1 -1
  91. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +1 -1
  92. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +24 -24
  93. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +1 -1
  94. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +1 -1
  95. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.stories.js +1 -1
  96. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +9 -6
  97. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +20 -5
  98. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.page.js +1 -1
  99. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +1 -1
  100. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +10 -14
  101. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +1 -1
  102. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +1 -9
  103. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +1 -1
  104. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +96 -47
  105. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +61 -17
  106. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +1 -1
  107. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +1 -9
  108. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +14 -0
  109. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +1 -1
  110. package/src/react-extension/components/Announcement/AnnouncementWrapper/AnnouncementWrapper.js +3 -2
  111. package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayExpiredSubscriptionAnnouncement.js +3 -3
  112. package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayGoingToExpireSubscriptionAnnouncement.js +3 -2
  113. package/src/react-extension/components/Announcement/HandleSubscriptionAnnouncement/DisplayInvalidSubscriptionAnnouncement.js +3 -3
  114. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +2 -2
  115. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +1 -1
  116. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +2 -2
  117. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +1 -1
  118. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -12
  119. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +1 -1
  120. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +88 -41
  121. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +1 -1
  122. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +2 -2
  123. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +11 -1
  124. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +2 -2
  125. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +1 -1
  126. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +86 -62
  127. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +2 -2
  128. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +1 -1
  129. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.js +2 -2
  130. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.stories.js +1 -1
  131. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +2 -2
  132. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +1 -1
  133. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
  134. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
  135. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +2 -2
  136. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +1 -1
  137. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +3 -3
  138. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +1 -1
  139. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +2 -2
  140. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +1 -1
  141. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.js +6 -6
  142. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +1 -1
  143. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.js +1 -1
  144. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +1 -1
  145. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +34 -7
  146. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +2 -1
  147. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +20 -1
  148. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +4 -0
  149. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +1 -1
  150. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +2 -2
  151. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +4 -1
  152. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.js +2 -2
  153. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +1 -1
  154. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.js +1 -9
  155. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +1 -1
  156. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +2 -2
  157. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +6 -1
  158. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +2 -2
  159. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +1 -1
  160. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +2 -2
  161. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +1 -1
  162. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +2 -2
  163. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +2 -2
  164. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +1 -1
  165. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +1 -9
  166. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +1 -1
  167. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +2 -2
  168. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -2
  169. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +1 -1
  170. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
  171. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +3 -2
  172. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +3 -3
  173. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.stories.js +1 -1
  174. package/src/react-extension/components/Common/ActionFeedback/ShareActionFeedback.js +2 -2
  175. package/src/react-extension/components/Common/Autocomplete/Autocomplete.js +8 -2
  176. package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +6 -4
  177. package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +3 -2
  178. package/src/react-extension/components/Common/Button/Button.test.stories.js +5 -5
  179. package/src/react-extension/components/Common/Checkbox/Checkbox.test.stories.js +1 -1
  180. package/src/react-extension/components/Common/ContextualMenu/ContextualMenu.test.stories.js +1 -1
  181. package/src/react-extension/components/Common/ContextualMenu/ContextualMenuWrapper.js +10 -8
  182. package/src/react-extension/components/Common/Dialog/DialogCloseButton/DialogCloseButton.js +2 -1
  183. package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogFooter.test.stories.js +2 -2
  184. package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.js +2 -2
  185. package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.test.stories.js +1 -1
  186. package/src/react-extension/components/Common/DragInfo/DragInfo.test.stories.js +10 -8
  187. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +3 -11
  188. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.test.stories.js +6 -1
  189. package/src/react-extension/components/Common/Footer/Footer.js +15 -15
  190. package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.js +16 -7
  191. package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItemLoading.js +4 -0
  192. package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormCancelButton.js +3 -12
  193. package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +2 -2
  194. package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +0 -1
  195. package/src/react-extension/components/Common/Link/Link.test.stories.js +1 -1
  196. package/src/react-extension/components/Common/Loading/LoadingBar/LoadingBar.test.stories.js +1 -1
  197. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +1 -1
  198. package/src/react-extension/components/Common/Menu/DisplayMainMenu.js +2 -11
  199. package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +7 -7
  200. package/src/react-extension/components/Common/Navigation/Search/SearchBar.test.stories.js +1 -1
  201. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +2 -11
  202. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +1 -1
  203. package/src/react-extension/components/Common/RadioButton/RadioButton.test.stories.js +1 -1
  204. package/src/react-extension/components/Common/Select/Select.js +44 -12
  205. package/src/react-extension/components/Common/Select/Select.test.stories.js +1 -1
  206. package/src/react-extension/components/Common/Text/Text.test.stories.js +1 -1
  207. package/src/react-extension/components/Common/TextField/TextField.test.stories.js +1 -1
  208. package/src/react-extension/components/Common/Toggle/Toggle.test.stories.js +1 -1
  209. package/src/react-extension/components/Common/Tooltip/Tooltip.test.stories.js +2 -2
  210. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.test.page.js +1 -1
  211. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +22 -14
  212. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +1 -1
  213. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +3 -3
  214. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.page.js +1 -1
  215. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +1 -1
  216. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +4 -4
  217. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +1 -1
  218. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspace.js +1 -9
  219. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.js +8 -17
  220. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.js +2 -2
  221. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.stories.js +1 -1
  222. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +6 -6
  223. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.stories.js +1 -1
  224. package/src/react-extension/components/Resource/EditResource/EditResource.js +21 -13
  225. package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +1 -1
  226. package/src/react-extension/components/Resource/ExportResources/ExportResources.js +9 -10
  227. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +1 -1
  228. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +1 -1
  229. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +1 -1
  230. package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +1 -1
  231. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +2 -11
  232. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +1 -1
  233. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +2 -11
  234. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +2 -11
  235. package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +2 -11
  236. package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.test.stories.js +1 -1
  237. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +4 -13
  238. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.js +1 -1
  239. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +1 -1
  240. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +1 -1
  241. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +1 -1
  242. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsContextualMenu.js +2 -11
  243. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -11
  244. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsListContextualMenu.js +3 -12
  245. package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +1 -1
  246. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.stories.js +1 -1
  247. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +1 -1
  248. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +1 -1
  249. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +1 -1
  250. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +5 -3
  251. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.js +1 -1
  252. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +1 -1
  253. package/src/react-extension/components/ResourceComment/DeleteResourceComment/DeleteComment.js +2 -1
  254. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.js +1 -9
  255. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +5 -3
  256. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +2 -2
  257. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +5 -3
  258. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +3 -3
  259. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +2 -2
  260. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsComment.js +2 -11
  261. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +2 -10
  262. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
  263. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +1 -1
  264. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +1 -1
  265. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsPermission.js +2 -10
  266. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.js +3 -12
  267. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +1 -1
  268. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +1 -1
  269. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +1 -1
  270. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +1 -1
  271. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +1 -1
  272. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +1 -1
  273. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +1 -1
  274. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +1 -1
  275. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +1 -1
  276. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +1 -1
  277. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.js +1 -9
  278. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +1 -1
  279. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +1 -1
  280. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +10 -7
  281. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +1 -1
  282. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +12 -9
  283. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +1 -1
  284. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +10 -7
  285. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +1 -1
  286. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -2
  287. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +1 -1
  288. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +1 -1
  289. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +1 -1
  290. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +2 -2
  291. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +2 -11
  292. package/src/react-extension/components/Share/ShareDialog.js +124 -22
  293. package/src/react-extension/components/Share/ShareDialog.test.data.js +25 -1
  294. package/src/react-extension/components/Share/ShareDialog.test.js +87 -36
  295. package/src/react-extension/components/Share/ShareDialog.test.page.js +1 -1
  296. package/src/react-extension/components/Share/ShareDialog.test.stories.js +1 -1
  297. package/src/react-extension/components/Share/SharePermissionDeleteButton.js +2 -1
  298. package/src/react-extension/components/Share/SharePermissionItem.js +56 -0
  299. package/src/react-extension/components/Share/ShareVariesDetails.js +2 -11
  300. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +1 -1
  301. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +1 -1
  302. package/src/react-extension/components/User/CreateUser/CreateUser.js +10 -10
  303. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +1 -1
  304. package/src/react-extension/components/User/DeleteUser/DeleteUser.js +1 -1
  305. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +1 -1
  306. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +3 -3
  307. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +1 -1
  308. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +1 -9
  309. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +1 -1
  310. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +16 -24
  311. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +1 -1
  312. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +3 -3
  313. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +1 -1
  314. package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.js +8 -17
  315. package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.test.js +4 -4
  316. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +2 -2
  317. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +1 -1
  318. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +12 -1
  319. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +1 -1
  320. package/src/react-extension/components/User/EditUser/EditUser.js +10 -10
  321. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +1 -1
  322. package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +1 -1
  323. package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -11
  324. package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.test.stories.js +1 -1
  325. package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroupContextualMenu.js +2 -11
  326. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +3 -12
  327. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +1 -1
  328. package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.js +1 -9
  329. package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +1 -1
  330. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +4 -4
  331. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +1 -9
  332. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +1 -1
  333. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +1 -1
  334. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +1 -9
  335. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +1 -1
  336. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
  337. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.js +5 -4
  338. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +22 -83
  339. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +8 -1
  340. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +20 -2
  341. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.js +25 -1
  342. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +28 -26
  343. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +85 -57
  344. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +21 -6
  345. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +1 -1
  346. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +1 -1
  347. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +1 -1
  348. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -2
  349. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +1 -1
  350. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +1 -1
  351. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +1 -1
  352. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.js +4 -13
  353. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +1 -1
  354. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembersGroupMember.js +1 -9
  355. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +132 -151
  356. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -1
  357. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +37 -14
  358. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -2
  359. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroupItem.js +209 -0
  360. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
  361. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +2 -3
  362. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +2 -2
  363. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +85 -52
  364. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +5 -1
  365. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +7 -0
  366. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +4 -11
  367. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +1 -1
  368. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +4 -4
  369. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +1 -1
  370. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +9 -2
  371. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +58 -35
  372. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +1 -1
  373. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
  374. package/src/react-extension/components/UserSetting/DisplayUserSettingWorkspaceActions/DisplayUserSettingWorkspaceActions.js +2 -11
  375. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -2
  376. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +1 -1
  377. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +1 -9
  378. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +1 -1
  379. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +8 -8
  380. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +1 -1
  381. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +5 -14
  382. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +2 -2
  383. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +1 -1
  384. package/src/react-extension/contexts/AccountRecoveryUserContext.js +22 -4
  385. package/src/react-extension/contexts/AccountRecoveryUserContext.test.data.js +2 -0
  386. package/src/react-extension/contexts/AccountRecoveryUserContext.test.js +2 -2
  387. package/src/react-extension/contexts/AdminAccountRecoveryContext.js +5 -2
  388. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.data.js +4 -1
  389. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +14 -1
  390. package/src/react-extension/contexts/ResourceWorkspaceContext.js +1 -1
  391. package/src/react-extension/contexts/UserWorkspaceContext.js +1 -1
  392. package/src/react-extension/test/fixture/Settings/siteSettings.js +20 -14
  393. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +8 -1
  394. package/src/react-quickaccess/ExtQuickAccess.js +23 -9
  395. package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +68 -113
  396. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgress.js +2 -5
  397. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +1 -1
  398. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +2 -2
  399. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +1 -1
  400. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +4 -4
  401. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +1 -1
  402. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +1 -1
  403. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +1 -1
  404. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +1 -1
  405. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +1 -1
  406. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +2 -2
  407. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +1 -1
  408. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +2 -2
  409. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +1 -1
  410. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +2 -3
  411. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -3
  412. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +2 -2
  413. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.stories.js +1 -1
  414. package/src/react-quickaccess/components/Header/Header.js +0 -1
  415. package/src/react-quickaccess/components/Header/Header.test.stories.js +1 -1
  416. package/src/react-quickaccess/components/HomePage/HomePage.js +0 -8
  417. package/src/react-quickaccess/components/HomePage/HomePage.test.data.js +1 -1
  418. package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +1 -1
  419. package/src/react-quickaccess/components/HomePage/canSuggestUrl.js +4 -4
  420. package/src/react-quickaccess/components/HomePage/canSuggestUrl.test.js +4 -3
  421. package/src/react-quickaccess/components/LoginPage/LoginPage.js +1 -9
  422. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -1
  423. package/src/react-quickaccess/components/ManageQuickAccessMode/ManageQuickAccessMode.js +0 -7
  424. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +1 -1
  425. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +1 -1
  426. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +8 -9
  427. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.js +0 -2
  428. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +2 -2
  429. package/src/react-quickaccess/components/PrivateRoute/PrivateRoute.js +8 -2
  430. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +1 -1
  431. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +1 -1
  432. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +1 -1
  433. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +8 -8
  434. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +3 -3
  435. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +4 -8
  436. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +1 -1
  437. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -3
  438. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +1 -1
  439. package/src/react-quickaccess/components/Search/Search.js +6 -7
  440. package/src/react-quickaccess/components/Search/Search.test.js +0 -1
  441. package/src/react-quickaccess/components/Search/Search.test.stories.js +1 -1
  442. package/src/react-web-integration/AuthLogin/AuthLogin.js +9 -9
  443. package/src/react-web-integration/Autofill/Autofill.js +61 -43
  444. package/src/react-web-integration/BrowserIntegrationBootstrap.js +1 -18
  445. package/src/react-web-integration/Events/Quickaccess/QuickAccessEvent.js +2 -2
  446. package/src/react-web-integration/ExtInFormCallToAction.js +2 -2
  447. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.js +1 -2
  448. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.data.js +3 -7
  449. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.page.js +1 -1
  450. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +15 -6
  451. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +20 -22
  452. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +3 -3
  453. package/src/react-web-integration/lib/Dom/DomUtils.js +5 -6
  454. package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +2 -2
  455. package/src/react-web-integration/lib/InForm/InFormCredentialsFormField.js +1 -3
  456. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +12 -2
  457. package/src/react-web-integration/lib/InForm/InFormManager.js +20 -18
  458. package/src/react-web-integration/lib/InForm/InformManager.test.data.js +62 -2
  459. package/src/react-web-integration/lib/InForm/InformManager.test.js +186 -8
  460. package/src/react-web-integration/lib/InForm/InformManager.test.page.js +40 -1
  461. package/src/react-web-integration/lib/InForm/InformMenuField.js +2 -2
  462. package/src/shared/components/Icons/Icon.test.stories.js +1 -1
  463. package/src/shared/components/Internationalisation/TranslationProvider.js +1 -2
  464. package/src/shared/components/Password/Password.js +3 -2
  465. package/src/shared/components/Password/Password.test.page.js +4 -1
  466. package/src/shared/components/Password/Password.test.stories.js +1 -1
  467. package/src/shared/components/PasswordComplexity/PasswordComplexity.js +3 -3
  468. package/src/shared/components/PasswordComplexity/PasswordComplexity.test.stories.js +5 -5
  469. package/src/shared/lib/Browser/detectBrowserName.js +4 -2
  470. package/src/shared/lib/Error/ExternalServiceError.js +23 -0
  471. package/src/shared/lib/Error/ExternalServiceUnavailableError.js +23 -0
  472. package/src/shared/lib/Secret/PwnedPasswords.js +10 -2
  473. package/src/shared/lib/Secret/SecretComplexity.js +1 -1
  474. package/src/shared/lib/SecretGenerator/PassphraseGenerator.js +12 -8
  475. package/src/shared/lib/SecretGenerator/PassphraseGeneratorWords.js +1 -1
  476. package/src/shared/lib/SecretGenerator/SecretGenerator.js +2 -2
  477. package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.js +10 -12
  478. package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.test.js +75 -76
  479. package/src/shared/lib/apiClient/csrfToken.js +1 -1
  480. package/src/shared/services/accountRecovery/ApiAppAccountRecoveryUserService.js +0 -1
  481. package/src/shared/services/accountRecovery/ExtAppAccountRecoveryUserService.js +0 -1
  482. package/src/stories/assets/intro/hero.png +0 -0
  483. package/src/stories/assets/intro/intro.css +47 -0
  484. package/test/jest.setup.js +2 -0
  485. package/src/fonts/opensans-semibold.woff +0 -0
@@ -39,6 +39,17 @@ class SharePermissionItem extends Component {
39
39
  this.bindEventHandlers();
40
40
  }
41
41
 
42
+ /**
43
+ * Component did mount
44
+ * @returns {Promise<void>}
45
+ */
46
+ async componentDidMount() {
47
+ if (this.isUser()) {
48
+ const gpgKey = await this.findUserGpgKey(this.props.aro.profile.user_id);
49
+ this.setState({gpgKey});
50
+ }
51
+ }
52
+
42
53
  /**
43
54
  * Invoked immediately after updating occurs. This method is not called for the initial render.
44
55
  * @param prevProps
@@ -54,6 +65,15 @@ class SharePermissionItem extends Component {
54
65
  this.handleDelete = this.handleDelete.bind(this);
55
66
  }
56
67
 
68
+ /**
69
+ * Find a user gpg key
70
+ * @param {string} userId
71
+ * @returns {Promise<object>}
72
+ */
73
+ async findUserGpgKey(userId) {
74
+ return await this.props.context.port.request('passbolt.keyring.get-public-key-info-by-user', userId);
75
+ }
76
+
57
77
  /**
58
78
  * R
59
79
  * @returns {string} Group or User name
@@ -86,6 +106,27 @@ class SharePermissionItem extends Component {
86
106
  }
87
107
  }
88
108
 
109
+ /**
110
+ * Get the tooltip message
111
+ * @returns {JSX.Element}
112
+ */
113
+ get tooltipMessage() {
114
+ return <>
115
+ <div className="email"><strong>{this.props.aro.username}</strong></div>
116
+ <div className="fingerprint">{this.formatFingerprint(this.state.gpgKey.fingerprint)}</div>
117
+ </>;
118
+ }
119
+
120
+ /**
121
+ * Format fingerprint
122
+ * @param {string} fingerprint An user finger print
123
+ * @returns {JSX.Element}
124
+ */
125
+ formatFingerprint(fingerprint) {
126
+ const result = fingerprint.toUpperCase().replace(/.{4}/g, '$& ');
127
+ return <>{result.substr(0, 24)}<br/>{result.substr(25)}</>;
128
+ }
129
+
89
130
  /**
90
131
  * Return true if aro in props is a user
91
132
  * @returns {boolean}
@@ -102,6 +143,14 @@ class SharePermissionItem extends Component {
102
143
  return !(this.props.aro && this.props.aro.profile);
103
144
  }
104
145
 
146
+ /**
147
+ * Has a gpg key fingerprint
148
+ * @returns {*}
149
+ */
150
+ hasGpgKey() {
151
+ return this.state.gpgKey && this.state.gpgKey.fingerprint;
152
+ }
153
+
105
154
  getClassName() {
106
155
  let className = 'row';
107
156
  if (this.props.updated) {
@@ -156,6 +205,11 @@ class SharePermissionItem extends Component {
156
205
  <div className="aro">
157
206
  <div className="aro-name">
158
207
  <span className="ellipsis">{this.getAroName()}</span>
208
+ {this.hasGpgKey() &&
209
+ <Tooltip message={this.tooltipMessage}>
210
+ <Icon name="info-circle"/>
211
+ </Tooltip>
212
+ }
159
213
  </div>
160
214
  <div className="aro-details">
161
215
  <span className="ellipsis">{this.getAroDetails()}</span>
@@ -175,6 +229,7 @@ class SharePermissionItem extends Component {
175
229
  value={this.state.permissionType.toString()}
176
230
  disabled={this.isInputDisabled()}
177
231
  onChange={this.handleUpdate}
232
+ direction={this.props.isLastItemDisplayed ? "top" : "bottom"}
178
233
  />
179
234
  </div>
180
235
 
@@ -196,6 +251,7 @@ SharePermissionItem.propTypes = {
196
251
  onUpdate: PropTypes.func,
197
252
  onDelete: PropTypes.func,
198
253
  permissionType: PropTypes.number,
254
+ isLastItemDisplayed: PropTypes.bool,
199
255
  t: PropTypes.func, // The translation function
200
256
  };
201
257
 
@@ -13,17 +13,9 @@
13
13
  */
14
14
  import React, {Component} from "react";
15
15
  import PropTypes from "prop-types";
16
- import {Trans, withTranslation} from "react-i18next";
16
+ import {Trans} from "react-i18next";
17
17
 
18
18
  class ShareVariesDetails extends Component {
19
- /**
20
- * Get the translate function
21
- * @returns {function(...[*]=)}
22
- */
23
- get translate() {
24
- return this.props.t;
25
- }
26
-
27
19
  render() {
28
20
  return (
29
21
  <span className="share-varies-details">
@@ -46,7 +38,6 @@ class ShareVariesDetails extends Component {
46
38
 
47
39
  ShareVariesDetails.propTypes = {
48
40
  variesDetails: PropTypes.object,
49
- t: PropTypes.func, // The translation function
50
41
  };
51
42
 
52
- export default withTranslation('common')(ShareVariesDetails);
43
+ export default ShareVariesDetails;
@@ -156,7 +156,7 @@ class ConfirmDisableUserMFA extends Component {
156
156
  You are about to disable second-factor authentication (MFA) for the user <strong>{{name}} ({{username}})</strong>.
157
157
  </Trans>
158
158
  </p>
159
- <p><Trans>Warning: Existing settings will be lost. This action cannot be undone.</Trans></p>
159
+ <p><Trans>Existing settings will be lost. This action cannot be undone.</Trans></p>
160
160
  </div>
161
161
 
162
162
  <div className="submit-wrapper clearfix">
@@ -7,7 +7,7 @@ import MockPort from "../../../test/mock/MockPort";
7
7
 
8
8
 
9
9
  export default {
10
- title: 'Passbolt/User/ConfirmDisableUserMFA',
10
+ title: 'Passbolt Component/User/ConfirmDisableUserMFA',
11
11
  component: ConfirmDisableUserMFA
12
12
  };
13
13
 
@@ -370,11 +370,11 @@ class CreateUser extends Component {
370
370
  onClose={this.handleClose} disabled={this.hasAllInputDisabled()}>
371
371
  <form className="user-create-form" onSubmit={this.handleFormSubmit} noValidate>
372
372
  <div className="form-content">
373
- <div className={`input text required ${this.state.first_nameError ? "error" : ""}`}>
374
- <label htmlFor="user-first-name-input"><Trans>First Name</Trans></label>
373
+ <div className={`input text required ${this.state.first_nameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
374
+ <label htmlFor="user-first-name-input"><Trans>First name</Trans></label>
375
375
  <input id="user-first-name-input" name="first_name"
376
376
  ref={this.firstNameRef}
377
- type="text" value={this.state.first_name} placeholder={this.translate("first name")}
377
+ type="text" value={this.state.first_name} placeholder={this.translate("First name")}
378
378
  required="required" disabled={this.hasAllInputDisabled()}
379
379
  onKeyUp={this.handleFirstNameInputKeyUp} onChange={this.handleInputChange}
380
380
  autoComplete='off' autoFocus={true}
@@ -383,11 +383,11 @@ class CreateUser extends Component {
383
383
  <div className="first_name error-message">{this.state.first_nameError}</div>
384
384
  }
385
385
  </div>
386
- <div className={`input text required ${this.state.last_nameError ? "error" : ""}`}>
387
- <label htmlFor="user-last-name-input"><Trans>Last Name</Trans></label>
386
+ <div className={`input text required ${this.state.last_nameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
387
+ <label htmlFor="user-last-name-input"><Trans>Last name</Trans></label>
388
388
  <input id="user-last-name-input" name="last_name"
389
389
  ref={this.lastNameRef}
390
- type="text" value={this.state.last_name} placeholder={this.translate("last name")}
390
+ type="text" value={this.state.last_name} placeholder={this.translate("Last name")}
391
391
  required="required" disabled={this.hasAllInputDisabled()}
392
392
  onKeyUp={this.handleLastNameInputOnKeyUp} onChange={this.handleInputChange}
393
393
  autoComplete='off' autoFocus={true}
@@ -396,10 +396,10 @@ class CreateUser extends Component {
396
396
  <div className="last_name error-message">{this.state.last_nameError}</div>
397
397
  }
398
398
  </div>
399
- <div className={`input text required ${this.state.usernameError ? "error" : ""}`}>
399
+ <div className={`input text required ${this.state.usernameError ? "error" : ""} ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
400
400
  <label htmlFor="user-username-input"><Trans>Username / Email</Trans></label>
401
401
  <input id="user-username-input" name="username"
402
- ref={this.usernameRef} type="text" value={this.state.username} placeholder={this.translate("email")}
402
+ ref={this.usernameRef} type="text" value={this.state.username} placeholder={this.translate("Email")}
403
403
  required="required" disabled={this.hasAllInputDisabled()}
404
404
  onKeyUp={this.handleUsernameInputOnKeyUp} onChange={this.handleInputChange}
405
405
  autoComplete='off' autoFocus={true}
@@ -408,7 +408,7 @@ class CreateUser extends Component {
408
408
  <div className="username error-message">{this.state.usernameError}</div>
409
409
  }
410
410
  </div>
411
- <div className="input checkbox-wrapper">
411
+ <div className={`input checkbox-wrapper ${this.hasAllInputDisabled() ? 'disabled' : ''}`}>
412
412
  <label htmlFor="is_admin_checkbox"><Trans>Role</Trans></label>
413
413
  <div className="input checkbox">
414
414
  <input id="is_admin_checkbox" name="is_admin" onChange={this.handleCheckboxClick}
@@ -416,7 +416,7 @@ class CreateUser extends Component {
416
416
  <label htmlFor="is_admin_checkbox"> <Trans>This user is an administrator</Trans></label>
417
417
  </div>
418
418
  <div className="help-message">
419
- <Trans>Note: Administrators can add and delete users; They can also create groups and assign group managers; Admin can not see all passwords.</Trans>
419
+ <Trans>Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.</Trans>
420
420
  </div>
421
421
  </div>
422
422
  </div>
@@ -7,7 +7,7 @@ import MockPort from "../../../test/mock/MockPort";
7
7
 
8
8
 
9
9
  export default {
10
- title: 'Passbolt/User/CreateUser',
10
+ title: 'Passbolt Component/User/CreateUser',
11
11
  component: CreateUser
12
12
  };
13
13
 
@@ -140,7 +140,7 @@ class DeleteUser extends Component {
140
140
  Are you sure you want to delete <strong>{{user: this.getUser()}}</strong>?
141
141
  </Trans>
142
142
  </p>
143
- <p><Trans>Warning: This action can’t be undone. All the data associated with this user will be permanently deleted.</Trans></p>
143
+ <p><Trans>This action can’t be undone. All the data associated with this user will be permanently deleted.</Trans></p>
144
144
  </div>
145
145
  <div className="submit-wrapper clearfix">
146
146
  <FormCancelButton disabled={this.hasAllInputDisabled()} onClick={this.handleCloseClick}/>
@@ -7,7 +7,7 @@ import MockPort from "../../../test/mock/MockPort";
7
7
 
8
8
 
9
9
  export default {
10
- title: 'Passbolt/User/DeleteUser',
10
+ title: 'Passbolt Component/User/DeleteUser',
11
11
  component: DeleteUser
12
12
  };
13
13
 
@@ -513,7 +513,7 @@ class DeleteUserWithConflicts extends Component {
513
513
  <ul className="ownership-transfer-items">
514
514
  {this.foldersErrors.map(folderError =>
515
515
  <li key={folderError.id}>
516
- <div className="select-wrapper input required">
516
+ <div className={`select-wrapper input required ${this.state.processing ? 'disabled' : ''}`}>
517
517
  <label htmlFor="transfer_folder_owner">{folderError.name} (<Trans>Folder</Trans>) <Trans>new owner</Trans>:</label>
518
518
  <Select className="form-element" value={this.state.owners[folderError.id]} items={this.getAcoPermissionsList(folderError.id)} onChange={event => this.handleOnChangeOwner(event, folderError.id)}/>
519
519
  </div>
@@ -528,7 +528,7 @@ class DeleteUserWithConflicts extends Component {
528
528
  <ul className="ownership-transfer-items">
529
529
  {this.resourcesErrors.map(resourceError =>
530
530
  <li key={resourceError.id}>
531
- <div className="select-wrapper input required">
531
+ <div className={`select-wrapper input required ${this.state.processing ? 'disabled' : ''}`}>
532
532
  <label htmlFor="transfer_resource_owner">{resourceError.name} (<Trans>Password</Trans>) <Trans>new owner</Trans>:</label>
533
533
  <Select className="form-element" value={this.state.owners[resourceError.id]} items={this.getAcoPermissionsList(resourceError.id)} onChange={event => this.handleOnChangeOwner(event, resourceError.id)}/>
534
534
  </div>
@@ -543,7 +543,7 @@ class DeleteUserWithConflicts extends Component {
543
543
  <ul className="ownership-transfer-items">
544
544
  {this.groupsErrors.map(groupError =>
545
545
  <li key={groupError.id}>
546
- <div className="select-wrapper input required">
546
+ <div className={`select-wrapper input required ${this.state.processing ? 'disabled' : ''}`}>
547
547
  <label htmlFor="transfer_group_manager">{groupError.name} (<Trans>Group</Trans>) <Trans>new manager</Trans>:</label>
548
548
  <Select className="form-element" value={this.state.managers[groupError.id]} items={this.getGroupUsersList(groupError.id)} onChange={event => this.handleOnChangeManager(event, groupError.id)}/>
549
549
  </div>
@@ -7,7 +7,7 @@ import MockPort from "../../../test/mock/MockPort";
7
7
 
8
8
 
9
9
  export default {
10
- title: 'Passbolt/User/DeleteUserWithConflicts',
10
+ title: 'Passbolt Component/User/DeleteUserWithConflicts',
11
11
  component: DeleteUserWithConflicts
12
12
  };
13
13
 
@@ -40,21 +40,13 @@ class DisplayExpiredAccountRecovery extends Component {
40
40
  this.props.onClose();
41
41
  }
42
42
 
43
- /**
44
- * Get the translate function
45
- * @returns {function(...[*]=)}
46
- */
47
- get translate() {
48
- return this.props.t;
49
- }
50
-
51
43
  /**
52
44
  * Render the component
53
45
  * @returns {JSX}
54
46
  */
55
47
  render() {
56
48
  return (
57
- <DialogWrapper className="expired-account-recover-dialog" title={this.translate("Account recovery error")}
49
+ <DialogWrapper className="expired-account-recover-dialog" title={this.props.t("Account recovery error")}
58
50
  onClose={this.handleClose}>
59
51
  <div className="form-content">
60
52
  <p>
@@ -18,7 +18,7 @@ import MockTranslationProvider from "../../../test/mock/components/International
18
18
  import DisplayExpiredAccountRecovery from "./DisplayExpiredAccountRecovery";
19
19
 
20
20
  export default {
21
- title: 'Passbolt/User/DisplayExpiredAccountRecovery',
21
+ title: 'Passbolt Component/User/DisplayExpiredAccountRecovery',
22
22
  component: DisplayExpiredAccountRecovery
23
23
  };
24
24
 
@@ -18,7 +18,7 @@ import {withNavigationContext} from "../../../contexts/NavigationContext";
18
18
  import {withAccountRecovery} from "../../../contexts/AccountRecoveryUserContext";
19
19
  import UserAvatar from "../../Common/Avatar/UserAvatar";
20
20
  import Icon from "../../../../shared/components/Icons/Icon";
21
- import {Trans, withTranslation} from "react-i18next";
21
+ import {Trans} from "react-i18next";
22
22
 
23
23
  class DisplayUserBadgeMenu extends Component {
24
24
  /**
@@ -54,19 +54,19 @@ class DisplayUserBadgeMenu extends Component {
54
54
  this.handleToggleMenuClick = this.handleToggleMenuClick.bind(this);
55
55
  this.handleProfileClick = this.handleProfileClick.bind(this);
56
56
  this.handleThemeClick = this.handleThemeClick.bind(this);
57
- this.handleLogoutClick = this.handleLogoutClick.bind(this);
57
+ this.handleMobileAppsClick = this.handleMobileAppsClick.bind(this);
58
58
  }
59
59
 
60
60
  componentDidMount() {
61
- document.addEventListener('click', this.handleDocumentClickEvent);
62
- document.addEventListener('contextmenu', this.handleDocumentContextualMenuEvent);
63
- document.addEventListener('dragstart', this.handleDocumentDragStartEvent);
61
+ document.addEventListener('click', this.handleDocumentClickEvent, {capture: true});
62
+ document.addEventListener('contextmenu', this.handleDocumentContextualMenuEvent, {capture: true});
63
+ document.addEventListener('dragstart', this.handleDocumentDragStartEvent, {capture: true});
64
64
  }
65
65
 
66
66
  componentWillUnmount() {
67
- document.removeEventListener('click', this.handleDocumentClickEvent);
68
- document.removeEventListener('contextmenu', this.handleDocumentContextualMenuEvent);
69
- document.removeEventListener('dragstart', this.handleDocumentDragStartEvent);
67
+ document.removeEventListener('click', this.handleDocumentClickEvent, {capture: true});
68
+ document.removeEventListener('contextmenu', this.handleDocumentContextualMenuEvent, {capture: true});
69
+ document.removeEventListener('dragstart', this.handleDocumentDragStartEvent, {capture: true});
70
70
  }
71
71
 
72
72
  /**
@@ -172,11 +172,11 @@ class DisplayUserBadgeMenu extends Component {
172
172
  }
173
173
 
174
174
  /**
175
- * Handle logout click
175
+ * Handle mobile apps click
176
176
  * @return {void}
177
177
  */
178
- handleLogoutClick() {
179
- this.props.context.onLogoutRequested();
178
+ handleMobileAppsClick() {
179
+ this.props.navigationContext.onGoToUserSettingsMobileRequested();
180
180
  this.closeUserBadgeMenu();
181
181
  }
182
182
 
@@ -188,14 +188,6 @@ class DisplayUserBadgeMenu extends Component {
188
188
  return this.props.accountRecoveryContext.isAccountRecoveryChoiceRequired();
189
189
  }
190
190
 
191
- /**
192
- * Get the translate function
193
- * @returns {function(...[*]=)}
194
- */
195
- get translate() {
196
- return this.props.t;
197
- }
198
-
199
191
  /**
200
192
  * Render the component
201
193
  * @return {JSX}
@@ -221,7 +213,7 @@ class DisplayUserBadgeMenu extends Component {
221
213
  <li key="profile">
222
214
  <div className="row">
223
215
  <a role="button" tabIndex="1" onClick={this.handleProfileClick}>
224
- <span><Trans>Profile</Trans></span>{this.attentionRequired && <Icon name="exclamation"/>}
216
+ <span><Trans>Profile</Trans></span>{this.attentionRequired && <Icon name="exclamation" baseline={true}/>}
225
217
  </a>
226
218
  </div>
227
219
  </li>
@@ -236,8 +228,9 @@ class DisplayUserBadgeMenu extends Component {
236
228
  }
237
229
  <li key="logout">
238
230
  <div className="row">
239
- <a role="button" tabIndex="3" onClick={this.handleLogoutClick}>
240
- <span><Trans>Sign out</Trans></span>
231
+ <a role="button" tabIndex="3" onClick={this.handleMobileAppsClick}>
232
+ <span><Trans>Mobile Apps</Trans></span>
233
+ <span className="chips new">new</span>
241
234
  </a>
242
235
  </div>
243
236
  </li>
@@ -255,7 +248,6 @@ DisplayUserBadgeMenu.propTypes = {
255
248
  accountRecoveryContext: PropTypes.object, // The account recovery context
256
249
  baseUrl: PropTypes.string,
257
250
  user: PropTypes.object,
258
- t: PropTypes.func, // The translation function
259
251
  };
260
252
 
261
- export default withAppContext(withNavigationContext(withAccountRecovery(withTranslation('common')(DisplayUserBadgeMenu))));
253
+ export default withAppContext(withNavigationContext(withAccountRecovery(DisplayUserBadgeMenu)));
@@ -6,7 +6,7 @@ import {defaultProps} from "./DisplayUserBadgeMenu.test.data";
6
6
 
7
7
 
8
8
  export default {
9
- title: 'Passbolt/User/DisplayUserBadgeMenu',
9
+ title: 'Passbolt Component/User/DisplayUserBadgeMenu',
10
10
  component: DisplayUserBadgeMenu
11
11
  };
12
12
 
@@ -79,14 +79,14 @@ class DisplayUserWorkspaceActions extends React.Component {
79
79
  * Whenever the component is mounted
80
80
  */
81
81
  componentDidMount() {
82
- document.addEventListener('click', this.handleDocumentClickEvent);
82
+ document.addEventListener('click', this.handleDocumentClickEvent, {capture: true});
83
83
  }
84
84
 
85
85
  /**
86
86
  * Whenever the component will unmount
87
87
  */
88
88
  componentWillUnmount() {
89
- document.removeEventListener('click', this.handleDocumentClickEvent);
89
+ document.removeEventListener('click', this.handleDocumentClickEvent, {capture: true});
90
90
  }
91
91
 
92
92
  /**
@@ -486,7 +486,7 @@ class DisplayUserWorkspaceActions extends React.Component {
486
486
  className={`button button-toggle info ${this.hasDetailsLocked() ? "selected" : ""}`}
487
487
  onClick={this.handleDetailsLockedEvent}>
488
488
  <Icon name="info-circle" big={true}/>
489
- <span className="visuallyhidden">View detail</span>
489
+ <span className="visuallyhidden"><Trans>View detail</Trans></span>
490
490
  </a>
491
491
  </li>
492
492
  </ul>
@@ -24,7 +24,7 @@ import {
24
24
 
25
25
 
26
26
  export default {
27
- title: 'Passbolt/User/DisplayUserWorkspaceActions',
27
+ title: 'Passbolt Component/User/DisplayUserWorkspaceActions',
28
28
  component: DisplayUserWorkspaceActions
29
29
  };
30
30
 
@@ -19,7 +19,7 @@ import Icon from "../../../../shared/components/Icons/Icon";
19
19
  import CreateUser from "../CreateUser/CreateUser";
20
20
  import {withDialog} from "../../../contexts/DialogContext";
21
21
  import CreateUserGroup from "../../UserGroup/CreateUserGroup/CreateUserGroup";
22
- import {Trans, withTranslation} from "react-i18next";
22
+ import {Trans} from "react-i18next";
23
23
 
24
24
  /**
25
25
  * This component is a container of multiple actions applicable on user
@@ -59,15 +59,15 @@ class DisplayUserWorkspaceMainActions extends React.Component {
59
59
  }
60
60
 
61
61
  componentDidMount() {
62
- document.addEventListener('click', this.handleDocumentClickEvent);
63
- document.addEventListener('contextmenu', this.handleDocumentContextualMenuEvent);
64
- document.addEventListener('dragstart', this.handleDocumentDragStartEvent);
62
+ document.addEventListener('click', this.handleDocumentClickEvent, {capture: true});
63
+ document.addEventListener('contextmenu', this.handleDocumentContextualMenuEvent, {capture: true});
64
+ document.addEventListener('dragstart', this.handleDocumentDragStartEvent, {capture: true});
65
65
  }
66
66
 
67
67
  componentWillUnmount() {
68
- document.removeEventListener('click', this.handleDocumentClickEvent);
69
- document.removeEventListener('contextmenu', this.handleDocumentContextualMenuEvent);
70
- document.removeEventListener('dragstart', this.handleDocumentDragStartEvent);
68
+ document.removeEventListener('click', this.handleDocumentClickEvent, {capture: true});
69
+ document.removeEventListener('contextmenu', this.handleDocumentContextualMenuEvent, {capture: true});
70
+ document.removeEventListener('dragstart', this.handleDocumentDragStartEvent, {capture: true});
71
71
  }
72
72
 
73
73
  /**
@@ -169,14 +169,6 @@ class DisplayUserWorkspaceMainActions extends React.Component {
169
169
  return this.props.context.loggedInUser && this.props.context.loggedInUser.role.name === 'admin';
170
170
  }
171
171
 
172
- /**
173
- * Get the translate function
174
- * @returns {function(...[*]=)}
175
- */
176
- get translate() {
177
- return this.props.t;
178
- }
179
-
180
172
  /**
181
173
  * Render the component
182
174
  * @returns {JSX}
@@ -224,7 +216,6 @@ class DisplayUserWorkspaceMainActions extends React.Component {
224
216
  DisplayUserWorkspaceMainActions.propTypes = {
225
217
  context: PropTypes.any, // The application context
226
218
  dialogContext: PropTypes.any, // the dialog context
227
- t: PropTypes.func, // The translation function
228
219
  };
229
220
 
230
- export default withAppContext(withDialog(withTranslation('common')(DisplayUserWorkspaceMainActions)));
221
+ export default withAppContext(withDialog(DisplayUserWorkspaceMainActions));
@@ -49,17 +49,17 @@ describe("See Workspace Main Menu", () => {
49
49
  page = new DisplayUserWorkspaceMainActionsTestPage(context, props);
50
50
  });
51
51
 
52
- it('As AD I can adding a user via the create menu', () => {
52
+ it('As AD I can adding a user via the create menu', async() => {
53
53
  expect(page.displayUserWorkspaceMainActions.exists()).toBeTruthy();
54
54
  expect(page.displayUserWorkspaceMainActions.createMenu).not.toBeNull();
55
- page.displayUserWorkspaceMainActions.clickOnMenu(page.displayUserWorkspaceMainActions.createMenu);
55
+ await page.displayUserWorkspaceMainActions.clickOnMenu(page.displayUserWorkspaceMainActions.createMenu);
56
56
  expect(page.displayUserWorkspaceMainActions.newUserMenu).not.toBeNull();
57
57
  });
58
58
 
59
- it('As AD I can adding a group via the create menu', () => {
59
+ it('As AD I can adding a group via the create menu', async() => {
60
60
  expect(page.displayUserWorkspaceMainActions.exists()).toBeTruthy();
61
61
  expect(page.displayUserWorkspaceMainActions.createMenu).not.toBeNull();
62
- page.displayUserWorkspaceMainActions.clickOnMenu(page.displayUserWorkspaceMainActions.createMenu);
62
+ await page.displayUserWorkspaceMainActions.clickOnMenu(page.displayUserWorkspaceMainActions.createMenu);
63
63
  expect(page.displayUserWorkspaceMainActions.newGroupMenu).not.toBeNull();
64
64
  });
65
65
  });
@@ -72,7 +72,7 @@ class DisplayUsers extends React.Component {
72
72
  * @return {void}
73
73
  */
74
74
  componentDidMount() {
75
- this.props.accountRecoveryContext.findAccountRecoveryPolicy();
75
+ this.props.accountRecoveryContext.loadAccountRecoveryPolicy();
76
76
  }
77
77
 
78
78
  /**
@@ -407,7 +407,7 @@ class DisplayUsers extends React.Component {
407
407
  <th className="cell-multiple-select selections s-cell">
408
408
  <div className="input checkbox">
409
409
  <input type="checkbox" name="select all" checked={false} readOnly={true}/>
410
- <span className="visually-hidden">select all</span>
410
+ <span className="visually-hidden"><Trans>Select all</Trans></span>
411
411
  </div>
412
412
  </th>
413
413
  {this.hasAttentionRequiredColumn() &&
@@ -18,7 +18,7 @@ import {defaultContext, defaultProps, propsWithFirstUserAttentionRequired} from
18
18
 
19
19
 
20
20
  export default {
21
- title: 'Passbolt/User/DisplayUsers',
21
+ title: 'Passbolt Component/User/DisplayUsers',
22
22
  component: DisplayUsers
23
23
  };
24
24
 
@@ -235,6 +235,15 @@ class DisplayUsersContextualMenu extends React.Component {
235
235
  return this.props.context.loggedInUser.id !== this.user.id;
236
236
  }
237
237
 
238
+ /**
239
+ * Check if the public key of the user could be copied.
240
+ * It's not the case if users are inactive as they don't have public key at this stage.
241
+ * @return {boolean}
242
+ */
243
+ canCopyPublicKey() {
244
+ return this.user.active;
245
+ }
246
+
238
247
  /**
239
248
  * Has a pending account recovery for the user.
240
249
  * @returns {boolean}
@@ -325,7 +334,9 @@ class DisplayUsersContextualMenu extends React.Component {
325
334
  <div className="row">
326
335
  <div className="main-cell-wrapper">
327
336
  <div className="main-cell">
328
- <a onClick={this.handlePublicKeyCopy}>
337
+ <a
338
+ onClick={this.handlePublicKeyCopy}
339
+ className={this.canCopyPublicKey() ? '' : 'disabled'}>
329
340
  <span><Trans>Copy public key</Trans></span>
330
341
  </a>
331
342
  </div>
@@ -24,7 +24,7 @@ import {
24
24
 
25
25
 
26
26
  export default {
27
- title: 'Passbolt/User/DisplayUsersContextualMenu',
27
+ title: 'Passbolt Component/User/DisplayUsersContextualMenu',
28
28
  component: DisplayUsersContextualMenu
29
29
  };
30
30