passbolt-styleguide 3.3.2 → 3.4.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 (203) hide show
  1. package/build/css/help.min.css +2 -2
  2. package/build/css/public.min.css +2 -2
  3. package/build/css/themes/default/api_authentication.min.css +3 -3
  4. package/build/css/themes/default/api_cloud.min.css +3 -3
  5. package/build/css/themes/default/api_main.min.css +4 -4
  6. package/build/css/themes/default/api_reports.min.css +4 -4
  7. package/build/css/themes/default/api_webinstaller.min.css +3 -3
  8. package/build/css/themes/default/ext_app.min.css +4 -4
  9. package/build/css/themes/default/ext_authentication.min.css +3 -3
  10. package/build/css/themes/default/ext_external.min.css +2 -2
  11. package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
  12. package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
  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 -4
  16. package/build/css/themes/midgar/api_reports.min.css +4 -4
  17. package/build/css/themes/midgar/ext_app.min.css +4 -4
  18. package/build/css/themes/midgar/ext_authentication.min.css +3 -3
  19. package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
  20. package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
  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-recover.js +1 -1
  24. package/build/js/dist/api-setup.js +1 -1
  25. package/build/js/dist/api-triage.js +1 -1
  26. package/build/js/dist/api-vendors.js +1 -1
  27. package/build/js/dist/api-vendors.js.LICENSE.txt +40 -4
  28. package/package.json +7 -6
  29. package/src/img/third_party/ChromeWebStore_black.svg +1 -0
  30. package/src/img/third_party/ChromeWebStore_white.svg +1 -0
  31. package/src/img/third_party/edge-addon-black.svg +1 -0
  32. package/src/img/third_party/edge-addon-white.svg +1 -0
  33. package/src/locales/de-DE/common.json +11 -11
  34. package/src/locales/en-UK/common.json +11 -12
  35. package/src/locales/fr/common.json +750 -0
  36. package/src/locales/fr-FR/common.json +11 -11
  37. package/src/locales/sv-SE/common.json +11 -11
  38. package/src/react-extension/ExtApp.js +9 -6
  39. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -1
  40. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
  41. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
  42. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
  43. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
  44. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +1 -1
  45. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
  46. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
  47. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
  48. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
  49. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
  50. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
  51. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +2 -2
  52. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
  53. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
  54. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
  55. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
  56. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
  57. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
  58. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
  59. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
  60. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
  61. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
  62. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
  63. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
  64. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
  65. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
  66. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
  67. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
  68. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
  69. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
  70. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
  71. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
  72. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
  73. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
  74. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
  75. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
  76. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +12 -15
  77. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
  78. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
  79. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
  80. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
  81. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
  82. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
  83. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +1 -1
  84. package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +1 -1
  85. package/src/react-extension/components/Common/Icons/Icon.test.stories.js +3 -1
  86. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
  87. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
  88. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
  89. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
  90. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +14 -4
  91. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
  92. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +9 -42
  93. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
  94. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
  95. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +6 -10
  96. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
  97. package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
  98. package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
  99. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +40 -192
  100. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
  101. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
  102. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +5 -1
  103. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
  104. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
  105. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
  106. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
  107. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
  108. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
  109. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
  110. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
  111. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
  112. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
  113. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
  114. package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
  115. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +6 -10
  116. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
  117. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
  118. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
  119. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
  120. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
  121. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
  122. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
  123. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
  124. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
  125. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
  126. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
  127. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
  128. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
  129. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
  130. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
  131. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
  132. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
  133. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
  134. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
  135. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +0 -1
  136. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
  137. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
  138. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +1 -1
  139. package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -9
  140. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
  141. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
  142. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
  143. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
  144. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
  145. package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
  146. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
  147. package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
  148. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
  149. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
  150. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
  151. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
  152. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
  153. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
  154. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
  155. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
  156. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -8
  157. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +55 -2
  158. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
  159. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +54 -6
  160. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
  161. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
  162. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
  163. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
  164. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
  165. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
  166. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
  167. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
  168. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
  169. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
  170. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -2
  171. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
  172. package/src/react-extension/contexts/ApiAppContext.js +1 -1
  173. package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
  174. package/src/react-extension/contexts/ApiSetupContext.js +1 -1
  175. package/src/react-extension/contexts/DragContext.js +122 -0
  176. package/src/react-extension/contexts/DragContext.test.js +53 -0
  177. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
  178. package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +3 -3
  179. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +3 -4
  180. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +6 -6
  181. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +7 -3
  182. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +6 -6
  183. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +6 -6
  184. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +6 -6
  185. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +7 -3
  186. package/src/react-quickaccess/components/Header/Header.test.stories.js +3 -6
  187. package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +13 -9
  188. package/src/react-quickaccess/components/LoginPage/LoginPage.js +41 -5
  189. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +3 -5
  190. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +3 -5
  191. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -5
  192. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +5 -5
  193. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +5 -5
  194. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +4 -2
  195. package/src/react-quickaccess/components/Search/Search.test.stories.js +3 -5
  196. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +6 -2
  197. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +9 -2
  198. package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +3 -3
  199. package/src/react-web-integration/lib/InForm/InFormManager.js +12 -6
  200. package/src/react-web-integration/lib/InForm/InformMenuField.js +1 -1
  201. package/src/shared/lib/Browser/detectBrowserName.js +2 -1
  202. package/src/img/third_party/ChromeWebStore_black.png +0 -0
  203. package/src/img/third_party/ChromeWebStore_white.png +0 -0
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import FilterResourcesByTagPage from "./FilterResourcesByTagPage";
6
5
  import AppContext from "../../contexts/AppContext";
@@ -24,13 +23,16 @@ Template.propTypes = {
24
23
  initialEntries: PropTypes.array
25
24
  };
26
25
 
27
-
26
+ const parameters = {
27
+ css: "ext_quickaccess"
28
+ };
28
29
 
29
30
  export const InitialLoad = Template.bind({});
30
31
  InitialLoad.args = {
31
32
  context: defaultAppContext(),
32
33
  initialEntries: ['/']
33
34
  };
35
+ InitialLoad.parameters = parameters;
34
36
 
35
37
  const contextNoTag = {
36
38
  port: {
@@ -42,6 +44,7 @@ NoTags.args = {
42
44
  context: defaultAppContext(contextNoTag),
43
45
  initialEntries: ['/']
44
46
  };
47
+ NoTags.parameters = parameters;
45
48
 
46
49
  const contextResourcesTags = {
47
50
  port: {
@@ -52,4 +55,5 @@ export const TagsResourcesMatched = Template.bind({});
52
55
  TagsResourcesMatched.args = {
53
56
  context: defaultAppContext(contextResourcesTags),
54
57
  initialEntries: ['/']
55
- };
58
+ };
59
+ TagsResourcesMatched.parameters = parameters;
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import Header from "./Header";
6
5
  import AppContext from "../../contexts/AppContext";
@@ -23,14 +22,12 @@ Template.propTypes = {
23
22
  context: PropTypes.object,
24
23
  };
25
24
 
26
-
27
-
28
25
  export const Initial = Template.bind({});
29
26
  Initial.args = {
30
27
  context: defaultAppContext(),
31
28
  logoutSuccessCallback: () => {}
32
29
  };
33
30
 
34
-
35
-
36
-
31
+ Initial.parameters = {
32
+ css: "ext_quickaccess"
33
+ };
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import HomePage from "./HomePage";
6
5
  import AppContext from "../../contexts/AppContext";
@@ -23,10 +22,15 @@ Template.propTypes = {
23
22
  context: PropTypes.object,
24
23
  };
25
24
 
25
+ const parameters = {
26
+ css: "ext_quickaccess"
27
+ };
28
+
26
29
  export const Initial = Template.bind({});
27
30
  Initial.args = {
28
31
  context: defaultAppContext()
29
32
  };
33
+ Initial.parameters = parameters;
30
34
 
31
35
  const contextNoResource = {
32
36
  storage: {
@@ -38,10 +42,11 @@ const contextNoResource = {
38
42
  }
39
43
  },
40
44
  };
41
- export const noResource = Template.bind({});
42
- noResource.args = {
45
+ export const NoResource = Template.bind({});
46
+ NoResource.args = {
43
47
  context: defaultAppContext(contextNoResource)
44
48
  };
49
+ NoResource.parameters = parameters;
45
50
 
46
51
  const contextSearchNotFoundResource = {
47
52
  storage: {
@@ -54,10 +59,11 @@ const contextSearchNotFoundResource = {
54
59
  },
55
60
  search: "apache",
56
61
  };
57
- export const noFoundResource = Template.bind({});
58
- noFoundResource.args = {
62
+ export const NoFoundResource = Template.bind({});
63
+ NoFoundResource.args = {
59
64
  context: defaultAppContext(contextSearchNotFoundResource)
60
65
  };
66
+ NoFoundResource.parameters = parameters;
61
67
 
62
68
  const contextSearchResources = {
63
69
  storage: {
@@ -74,6 +80,7 @@ export const SearchResources = Template.bind({});
74
80
  SearchResources.args = {
75
81
  context: defaultAppContext(contextSearchResources)
76
82
  };
83
+ SearchResources.parameters = parameters;
77
84
 
78
85
  const contextResources = {
79
86
  storage: {
@@ -89,7 +96,4 @@ export const SuggestedResources = Template.bind({});
89
96
  SuggestedResources.args = {
90
97
  context: defaultAppContext(contextResources)
91
98
  };
92
-
93
-
94
-
95
-
99
+ SuggestedResources.parameters = parameters;
@@ -5,6 +5,7 @@ import PropTypes from "prop-types";
5
5
  import {withRouter} from "react-router-dom";
6
6
  import {withAppContext} from "../../contexts/AppContext";
7
7
  import {Trans, withTranslation} from "react-i18next";
8
+ import Icon from "../../../react-extension/components/Common/Icons/Icon";
8
9
 
9
10
  class LoginPage extends React.Component {
10
11
  constructor(props) {
@@ -19,6 +20,7 @@ class LoginPage extends React.Component {
19
20
  this.handleInputChange = this.handleInputChange.bind(this);
20
21
  this.handleInputFocus = this.handleInputFocus.bind(this);
21
22
  this.handleInputBlur = this.handleInputBlur.bind(this);
23
+ this.handleToggleObfuscate = this.handleToggleObfuscate.bind(this);
22
24
  }
23
25
 
24
26
  initState() {
@@ -28,7 +30,8 @@ class LoginPage extends React.Component {
28
30
  passphrase: "",
29
31
  rememberMe: false,
30
32
  passphraseStyle: {},
31
- securityTokenStyle: {}
33
+ securityTokenStyle: {},
34
+ isObfuscated: true, // True if the passphrase should not be visible
32
35
  };
33
36
  }
34
37
 
@@ -105,6 +108,20 @@ class LoginPage extends React.Component {
105
108
  });
106
109
  }
107
110
 
111
+ /**
112
+ * Whenever one wants to toggle the obfuscated mode
113
+ */
114
+ handleToggleObfuscate() {
115
+ this.toggleObfuscate();
116
+ }
117
+
118
+ /**
119
+ * Toggle the obfuscate mode of the passphrase view
120
+ */
121
+ toggleObfuscate() {
122
+ this.setState({isObfuscated: !this.state.isObfuscated});
123
+ }
124
+
108
125
  render() {
109
126
  return (
110
127
  <div className="quickaccess-login">
@@ -117,10 +134,29 @@ class LoginPage extends React.Component {
117
134
  </div>
118
135
  <div className="input text passphrase required">
119
136
  <label htmlFor="passphrase"><Trans>Passphrase</Trans></label>
120
- <input type="password" name="passphrase" placeholder={this.translate('passphrase')} id="passphrase" autoFocus ref={this.passphraseInputRef}
121
- value={this.state.passphrase} onChange={this.handleInputChange} onFocus={this.handleInputFocus} onBlur={this.handleInputBlur}
122
- disabled={this.state.processing} style={this.state.passphraseStyle} autoComplete="off"/>
123
- <span className="security-token" style={this.state.securityTokenStyle}>{this.props.context.userSettings.getSecurityTokenCode()}</span>
137
+ <div className="password with-token">
138
+ <input
139
+ type={this.state.isObfuscated ? "password" : "text"}
140
+ name="passphrase" placeholder={this.translate('passphrase')}
141
+ id="passphrase"
142
+ autoFocus
143
+ ref={this.passphraseInputRef}
144
+ value={this.state.passphrase}
145
+ onChange={this.handleInputChange}
146
+ onFocus={this.handleInputFocus}
147
+ onBlur={this.handleInputBlur}
148
+ disabled={this.state.processing}
149
+ style={this.state.passphraseStyle}
150
+ autoComplete="off"/>
151
+ <a
152
+ className={`password-view button-icon button button-toggle ${this.state.isObfuscated ? "" : "selected"}`}
153
+ role="button"
154
+ onClick={this.handleToggleObfuscate}>
155
+ <Icon name="eye-open"/>
156
+ <span className="visually-hidden">view</span>
157
+ </a>
158
+ <span className="security-token" style={this.state.securityTokenStyle}>{this.props.context.userSettings.getSecurityTokenCode()}</span>
159
+ </div>
124
160
  {this.state.error &&
125
161
  <div className="error-message">{this.state.error}</div>
126
162
  }
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import AppContext from "../../contexts/AppContext";
6
5
  import LoginPage from "./LoginPage";
@@ -23,13 +22,12 @@ Template.propTypes = {
23
22
  };
24
23
 
25
24
 
26
-
27
25
  export const Initial = Template.bind({});
28
26
  Initial.args = {
29
27
  context: defaultAppContext(),
30
28
  loginSuccessCallback: () => {},
31
29
  canRememberMe: true,
32
30
  };
33
-
34
-
35
-
31
+ Initial.parameters = {
32
+ css: "ext_quickaccess"
33
+ };
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import MoreFiltersPage from "./MoreFiltersPage";
5
4
 
6
5
  export default {
@@ -14,10 +13,9 @@ const Template = () =>
14
13
  </MemoryRouter>;
15
14
 
16
15
 
17
-
18
16
  export const Initial = Template.bind({});
19
17
  Initial.args = {
20
18
  };
21
-
22
-
23
-
19
+ Initial.parameters = {
20
+ css: "ext_quickaccess"
21
+ };
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import AppContext from "../../contexts/AppContext";
6
5
  import PassphraseDialog from "./PassphraseDialog";
@@ -22,7 +21,9 @@ Template.propTypes = {
22
21
  context: PropTypes.object,
23
22
  };
24
23
 
25
-
24
+ const parameters = {
25
+ css: "ext_quickaccess"
26
+ };
26
27
 
27
28
  export const Initial = Template.bind({});
28
29
  Initial.args = {
@@ -31,6 +32,7 @@ Initial.args = {
31
32
  classname: "",
32
33
  onComplete: () => {},
33
34
  };
35
+ Initial.parameters = parameters;
34
36
 
35
37
  const contextRequestError = {
36
38
  port: {
@@ -44,6 +46,4 @@ ErrorPassphrase.args = {
44
46
  classname: "",
45
47
  onComplete: () => {},
46
48
  };
47
-
48
-
49
-
49
+ ErrorPassphrase.parameters = parameters;
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import AppContext from "../../contexts/AppContext";
6
5
  import SaveResource from "./SaveResource";
@@ -23,12 +22,15 @@ Template.propTypes = {
23
22
  context: PropTypes.object,
24
23
  };
25
24
 
26
-
25
+ const parameters = {
26
+ css: "ext_quickaccess"
27
+ };
27
28
 
28
29
  export const Initial = Template.bind({});
29
30
  Initial.args = {
30
31
  context: defaultAppContext(),
31
32
  };
33
+ Initial.parameters = parameters;
32
34
 
33
35
  const contextMock = {
34
36
  port: {
@@ -39,6 +41,4 @@ export const SaveResourceFromTab = Template.bind({});
39
41
  SaveResourceFromTab.args = {
40
42
  context: defaultAppContext(contextMock)
41
43
  };
42
-
43
-
44
-
44
+ SaveResourceFromTab.parameters = parameters;
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import AppContext from "../../contexts/AppContext";
6
5
  import ResourceCreatePage from "./ResourceCreatePage";
@@ -22,12 +21,15 @@ Template.propTypes = {
22
21
  context: PropTypes.object,
23
22
  };
24
23
 
25
-
24
+ const parameters = {
25
+ css: "ext_quickaccess"
26
+ };
26
27
 
27
28
  export const Initial = Template.bind({});
28
29
  Initial.args = {
29
30
  context: defaultAppContext(),
30
31
  };
32
+ Initial.parameters = parameters;
31
33
 
32
34
  const contextMock = {
33
35
  port: {
@@ -38,6 +40,4 @@ export const CreateResourceFromTab = Template.bind({});
38
40
  CreateResourceFromTab.args = {
39
41
  context: defaultAppContext(contextMock)
40
42
  };
41
-
42
-
43
-
43
+ CreateResourceFromTab.parameters = parameters;
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import ResourceViewPage from "./ResourceViewPage";
6
5
  import AppContext from "../../contexts/AppContext";
@@ -27,4 +26,7 @@ export const ResourceView = Template.bind({});
27
26
  ResourceView.args = {
28
27
  context: defaultAppContext(),
29
28
  initialEntries: ['/8e3874ae-4b40-590b-968a-418f704b9d9a']
30
- };
29
+ };
30
+ ResourceView.parameters = {
31
+ css: "ext_quickaccess"
32
+ };
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../css/themes/default/ext_quickaccess.css";
4
3
  import PropTypes from "prop-types";
5
4
  import AppContext from "../../contexts/AppContext";
6
5
  import Search from "./Search";
@@ -23,11 +22,10 @@ Template.propTypes = {
23
22
  };
24
23
 
25
24
 
26
-
27
25
  export const Initial = Template.bind({});
28
26
  Initial.args = {
29
27
  context: defaultAppContext(),
30
28
  };
31
-
32
-
33
-
29
+ Initial.parameters = {
30
+ css: "ext_quickaccess"
31
+ };
@@ -15,7 +15,6 @@
15
15
  import React, {useEffect} from "react";
16
16
  import AskInFormMenuDisplay from "./AskInFormMenuDisplay";
17
17
  import ReactDOM from "react-dom";
18
- import "../../../css/themes/default/ext_in_form_cta.css";
19
18
  import AppContext from "../../contexts/AppContext";
20
19
 
21
20
  export default {
@@ -57,7 +56,9 @@ const Template = ({context}) =>
57
56
  <InFormAnchor context={context}/>
58
57
  </div>;
59
58
 
60
-
59
+ const parameters = {
60
+ css: "ext_in_form_cta"
61
+ };
61
62
 
62
63
  export const Inactive = Template.bind({});
63
64
  Inactive.args = {
@@ -67,6 +68,7 @@ Inactive.args = {
67
68
  }
68
69
  }
69
70
  };
71
+ Inactive.parameters = parameters;
70
72
 
71
73
  export const ActiveWithNoSuggestion = Template.bind({});
72
74
  ActiveWithNoSuggestion.args = {
@@ -76,6 +78,7 @@ ActiveWithNoSuggestion.args = {
76
78
  }
77
79
  }
78
80
  };
81
+ ActiveWithNoSuggestion.parameters = parameters;
79
82
 
80
83
  export const ActiveWithOneSuggestion = Template.bind({});
81
84
  ActiveWithOneSuggestion.args = {
@@ -85,3 +88,4 @@ ActiveWithOneSuggestion.args = {
85
88
  }
86
89
  }
87
90
  };
91
+ ActiveWithOneSuggestion.parameters = parameters;
@@ -15,7 +15,6 @@
15
15
  import React from "react";
16
16
  import DisplayInFormMenu from "./DisplayInFormMenu";
17
17
  import DisplayInFormMenuItem from "./DisplayInFormMenuItem";
18
- import "../../../css/themes/default/ext_in_form_menu.css";
19
18
 
20
19
  export default {
21
20
  title: 'Passbolt/WebIntegration/InFormMenu',
@@ -186,6 +185,14 @@ const TemplateWithScroll = () => {
186
185
  );
187
186
  }
188
187
 
188
+ const parameters = {
189
+ css: "ext_in_form_menu"
190
+ };
191
+
189
192
  export const AllMenuItems = TemplateAllItemsMenu.bind({});
190
193
  export const NoScrollItems = TemplateNoScroll.bind({});
191
- export const ScrollableMenu = TemplateWithScroll.bind({});
194
+ export const ScrollableMenu = TemplateWithScroll.bind({});
195
+
196
+ AllMenuItems.parameters = parameters;
197
+ NoScrollItems.parameters = parameters;
198
+ ScrollableMenu.parameters = parameters;
@@ -146,10 +146,10 @@ class InFormCallToActionField {
146
146
  let y = 0;
147
147
  let currentElement = this.field;
148
148
  const {height, width} = this.field.getBoundingClientRect();
149
- const {top: topBody, left: leftBody} = document.body.getBoundingClientRect();
149
+ const {top: topBody, left: leftBody} = document.documentElement.getBoundingClientRect();
150
150
  // We loop to calculate the cumulated position of the field
151
151
  // from its ancestors and itself differential offset / scroll position
152
- while( currentElement && !isNaN( currentElement.offsetLeft ) && !isNaN( currentElement.offsetTop ) ) {
152
+ while(currentElement && !isNaN(currentElement.offsetLeft) && !isNaN(currentElement.offsetTop)) {
153
153
  x += currentElement.offsetLeft - currentElement.scrollLeft;
154
154
  y += currentElement.offsetTop - currentElement.scrollTop;
155
155
  currentElement = currentElement.offsetParent;
@@ -157,7 +157,7 @@ class InFormCallToActionField {
157
157
  // Then we add the body offset (notably in case of window scroll) + some local adjustments (margin / vertical aligment )
158
158
  x = x + leftBody + width - 25;
159
159
  y = y + topBody + Math.floor(height / 2) - 9; // Calculate the middle position of the input, 9 is the half of the iframe height
160
- return { top: y, left: x };
160
+ return {top: y, left: x};
161
161
  }
162
162
 
163
163
 
@@ -78,16 +78,22 @@ class InFormManager {
78
78
  findAndSetUsernameAndPasswordFields() {
79
79
  /* We find the username / passwords DOM callToActionFields.
80
80
  * If it was previously found, we reuse the same InformUsernameField, otherwise we create one
81
+ * Else we clean and reset callToActionFields
81
82
  */
82
83
  const newUsernameFields = InFormCallToActionField.findAll(InFormFieldSelector.USERNAME_FIELD_SELECTOR);
83
84
  const newPasswordFields = InFormCallToActionField.findAll(InFormFieldSelector.PASSWORD_FIELD_SELECTOR);
84
85
  const newFields = newUsernameFields.concat(newPasswordFields);
85
- this.callToActionFields = newFields.map(newField => {
86
- const matchField = fieldToMatch => callToActionField => callToActionField.field === fieldToMatch;
87
- const existingField = this.callToActionFields.find(matchField(newField));
88
- const fieldType = newField.matches(InFormFieldSelector.USERNAME_FIELD_SELECTOR) ? 'username' : 'password';
89
- return existingField || new InFormCallToActionField(newField, fieldType);
90
- });
86
+ if (newFields.length > 0) {
87
+ this.callToActionFields = newFields.map(newField => {
88
+ const matchField = fieldToMatch => callToActionField => callToActionField.field === fieldToMatch;
89
+ const existingField = this.callToActionFields.find(matchField(newField));
90
+ const fieldType = newField.matches(InFormFieldSelector.USERNAME_FIELD_SELECTOR) ? 'username' : 'password';
91
+ return existingField || new InFormCallToActionField(newField, fieldType);
92
+ });
93
+ } else {
94
+ this.clean();
95
+ this.callToActionFields = [];
96
+ }
91
97
  }
92
98
 
93
99
  /**
@@ -97,7 +97,7 @@ class InFormMenuField {
97
97
  let y = 0;
98
98
  let currentElement = this.field;
99
99
  const {height, width} = this.field.getBoundingClientRect();
100
- const {top: topBody, left: leftBody} = document.body.getBoundingClientRect();
100
+ const {top: topBody, left: leftBody} = document.documentElement.getBoundingClientRect();
101
101
  // We loop to calculate the cumulated position of the field
102
102
  // from its ancestors and itself differential offset / scroll position
103
103
  while( currentElement && !isNaN( currentElement.offsetLeft ) && !isNaN( currentElement.offsetTop ) ) {
@@ -44,9 +44,10 @@ export function detectBrowserName() {
44
44
  } else if (userAgent.indexOf("trident") > -1) {
45
45
  browserName = BROWSER_NAMES.INTERNET_EXPLORER;
46
46
  // "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko"
47
- } else if (userAgent.indexOf("edge") > -1) {
47
+ } else if (userAgent.indexOf("edg") > -1) {
48
48
  browserName = BROWSER_NAMES.EDGE;
49
49
  // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
50
+ // 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.34'
50
51
  } else if (userAgent.indexOf("chrome") > -1) {
51
52
  browserName = BROWSER_NAMES.CHROME;
52
53
  // "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36"