diff --git a/web/satellite/vuetify-poc/src/assets/icon-plus.svg b/web/satellite/vuetify-poc/src/assets/icon-plus.svg
deleted file mode 100644
index 84e0f3046..000000000
--- a/web/satellite/vuetify-poc/src/assets/icon-plus.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/CreateAccessDialog.vue b/web/satellite/vuetify-poc/src/components/dialogs/CreateAccessDialog.vue
index bc0e7b232..47a5d65a3 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/CreateAccessDialog.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/CreateAccessDialog.vue
@@ -74,7 +74,10 @@
:ref="stepInfos[CreateAccessStep.EnterNewPassphrase].ref"
:passphrase-type="CreateAccessStep.EnterNewPassphrase"
@passphrase-changed="newPass => passphrase = newPass"
- />
+ >
+ This passphrase will be used to encrypt all the files you upload using this access grant.
+ You will need it to access these files in the future.
+
@@ -82,7 +85,10 @@
:ref="stepInfos[CreateAccessStep.PassphraseGenerated].ref"
:name="name"
@passphrase-changed="newPass => passphrase = newPass"
- />
+ >
+ This passphrase will be used to encrypt all the files you upload using this access grant.
+ You will need it to access these files in the future.
+
@@ -164,14 +170,13 @@
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/EnterPassphraseStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/EnterPassphraseStep.vue
new file mode 100644
index 000000000..6ecac50a7
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/EnterPassphraseStep.vue
@@ -0,0 +1,86 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/PassphraseGeneratedStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/PassphraseGeneratedStep.vue
similarity index 75%
rename from web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/PassphraseGeneratedStep.vue
rename to web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/PassphraseGeneratedStep.vue
index 2d4e8f033..e8111edc0 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/PassphraseGeneratedStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/PassphraseGeneratedStep.vue
@@ -4,11 +4,10 @@
-
- This passphrase will be used to encrypt all the files you upload using this access grant.
- You will need it to access these files in the future.
+
+
-
+
@@ -38,11 +37,12 @@ import { ref } from 'vue';
import { generateMnemonic } from 'bip39-english';
import { VForm, VRow, VCol, VCheckbox, VDivider } from 'vuetify/components';
-import { RequiredRule } from '@poc/types/common';
-import { CreateAccessStepComponent } from '@poc/types/createAccessGrant';
+import { RequiredRule, DialogStepComponent } from '@poc/types/common';
import TextOutputArea from '@poc/components/dialogs/createAccessSteps/TextOutputArea.vue';
-import SaveButtons from '@poc/components/dialogs/createAccessSteps/SaveButtons.vue';
+import SaveButtons from '@poc/components/dialogs/commonPassphraseSteps/SaveButtons.vue';
+
+import Icon from '@/../static/images/accessGrants/newCreateFlow/passphraseGenerated.svg';
const props = defineProps<{
name: string;
@@ -57,8 +57,9 @@ const isTooltipDisabled = ref(false);
const passphrase: string = generateMnemonic();
-defineExpose({
+defineExpose({
title: 'Passphrase Generated',
+ iconSrc: Icon,
onEnter: () => {
emit('passphraseChanged', passphrase);
isTooltipDisabled.value = false;
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/SaveButtons.vue b/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/SaveButtons.vue
similarity index 92%
rename from web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/SaveButtons.vue
rename to web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/SaveButtons.vue
index 510526837..7daa695c5 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/SaveButtons.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/commonPassphraseSteps/SaveButtons.vue
@@ -32,15 +32,15 @@
import { ref, computed } from 'vue';
import { VCol, VBtn } from 'vuetify/components';
-import { SaveButtonsItem } from '@poc/types/createAccessGrant';
+import { SaveButtonsItem } from '@poc/types/common';
import { Download } from '@/utils/download';
import { useAnalyticsStore } from '@/store/modules/analyticsStore';
import { AnalyticsEvent } from '@/utils/constants/analyticsEventNames';
const props = defineProps<{
items: SaveButtonsItem[];
- accessName: string;
- fileNameBase: string;
+ name: string;
+ type: string;
}>();
const successDuration = 2000;
@@ -71,7 +71,7 @@ function onCopy(): void {
function onDownload(): void {
Download.file(
props.items.map(item => typeof item === 'string' ? item : `${item.name}:\n${item.value}`).join('\n\n'),
- `Storj-${props.fileNameBase}-${props.accessName}-${new Date().toISOString()}.txt`,
+ `Storj-${props.type}-${props.name}-${new Date().toISOString()}.txt`,
);
analyticsStore.eventTriggered(AnalyticsEvent.DOWNLOAD_TXT_CLICKED);
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessCreatedStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessCreatedStep.vue
index 7355ef31b..2ffb5e51b 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessCreatedStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessCreatedStep.vue
@@ -7,7 +7,7 @@
Copy or save the Access Grant as it will only appear once.
-
+
@@ -21,10 +21,10 @@
import { ref } from 'vue';
import { VRow, VCol, VDivider } from 'vuetify/components';
-import { CreateAccessStepComponent } from '@poc/types/createAccessGrant';
+import { DialogStepComponent } from '@poc/types/common';
import TextOutputArea from '@poc/components/dialogs/createAccessSteps/TextOutputArea.vue';
-import SaveButtons from '@poc/components/dialogs/createAccessSteps/SaveButtons.vue';
+import SaveButtons from '@poc/components/dialogs/commonPassphraseSteps/SaveButtons.vue';
const props = defineProps<{
name: string;
@@ -34,7 +34,7 @@ const props = defineProps<{
const output = ref | null>(null);
const isTooltipDisabled = ref(false);
-defineExpose({
+defineExpose({
title: 'Access Created',
onEnter: () => isTooltipDisabled.value = false,
onExit: () => isTooltipDisabled.value = true,
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessEncryptionStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessEncryptionStep.vue
index 3e17931be..ac0fbfba1 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessEncryptionStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/AccessEncryptionStep.vue
@@ -102,9 +102,8 @@ import {
} from 'vuetify/components';
import { PassphraseOption } from '@/types/createAccessGrant';
-import { CreateAccessStepComponent } from '@poc/types/createAccessGrant';
import { useBucketsStore } from '@/store/modules/bucketsStore';
-import { RequiredRule, ValidationRule } from '@poc/types/common';
+import { ValidationRule, DialogStepComponent } from '@poc/types/common';
import InfoTooltip from '@poc/components/dialogs/createAccessSteps/InfoTooltip.vue';
@@ -141,7 +140,7 @@ const passphraseRules = computed[]>(() => {
return [ v => !required || !!v || 'Required' ];
});
-defineExpose({
+defineExpose({
title: 'Access Encryption',
validate: () => {
form.value?.validate();
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CLIAccessCreatedStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CLIAccessCreatedStep.vue
index fcab2941c..9875c5bba 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CLIAccessCreatedStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CLIAccessCreatedStep.vue
@@ -7,7 +7,7 @@
Copy or save the satellite address and API key as they will only appear once.
-
+
@@ -35,10 +35,10 @@ import { ref, computed } from 'vue';
import { VRow, VCol, VDivider } from 'vuetify/components';
import { useConfigStore } from '@/store/modules/configStore';
-import { CreateAccessStepComponent, SaveButtonsItem } from '@poc/types/createAccessGrant';
+import { SaveButtonsItem, DialogStepComponent } from '@poc/types/common';
import TextOutputArea from '@poc/components/dialogs/createAccessSteps/TextOutputArea.vue';
-import SaveButtons from '@poc/components/dialogs/createAccessSteps/SaveButtons.vue';
+import SaveButtons from '@poc/components/dialogs/commonPassphraseSteps/SaveButtons.vue';
const props = defineProps<{
name: string;
@@ -56,7 +56,7 @@ const saveItems = computed(() => [
{ name: 'API Key', value: props.apiKey },
]);
-defineExpose({
+defineExpose({
title: 'CLI Access Created',
onEnter: () => isTooltipDisabled.value = false,
onExit: () => isTooltipDisabled.value = true,
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue
index 53a4a8c88..fd3140a87 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ChoosePermissionsStep.vue
@@ -147,10 +147,10 @@ import {
import { VDatePicker } from 'vuetify/labs/components';
import { Permission } from '@/types/createAccessGrant';
-import { AccessGrantEndDate, CreateAccessStepComponent } from '@poc/types/createAccessGrant';
+import { AccessGrantEndDate } from '@poc/types/createAccessGrant';
import { useBucketsStore } from '@/store/modules/bucketsStore';
import { SHORT_MONTHS_NAMES } from '@/utils/constants/date';
-import { ValidationRule, RequiredRule } from '@poc/types/common';
+import { ValidationRule, RequiredRule, DialogStepComponent } from '@poc/types/common';
type EndDateListItem = AccessGrantEndDate | { divider: true };
@@ -267,7 +267,7 @@ function onDatePickerSubmit(): void {
isDatePicker.value = false;
}
-defineExpose({
+defineExpose({
title: 'Access Permissions',
validate: () => {
form.value?.validate();
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ConfirmDetailsStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ConfirmDetailsStep.vue
index 78e816681..43ad906b0 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ConfirmDetailsStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/ConfirmDetailsStep.vue
@@ -27,7 +27,8 @@ import { computed } from 'vue';
import { VRow, VCol, VDivider } from 'vuetify/components';
import { Permission, AccessType } from '@/types/createAccessGrant';
-import { AccessGrantEndDate, CreateAccessStepComponent } from '@poc/types/createAccessGrant';
+import { AccessGrantEndDate } from '@poc/types/createAccessGrant';
+import { DialogStepComponent } from '@poc/types/common';
interface Item {
title: string;
@@ -55,7 +56,7 @@ const items = computed(() => {
];
});
-defineExpose({
+defineExpose({
title: 'Confirm Details',
});
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CreateNewAccessStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CreateNewAccessStep.vue
index efebf8dca..730d51c37 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CreateNewAccessStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/CreateNewAccessStep.vue
@@ -51,9 +51,9 @@ import { computed, ref, watch, WritableComputedRef } from 'vue';
import { VForm, VRow, VCol, VTextField, VCheckbox, VInput } from 'vuetify/components';
import { AccessType } from '@/types/createAccessGrant';
-import { ACCESS_TYPE_LINKS, CreateAccessStepComponent } from '@poc/types/createAccessGrant';
+import { ACCESS_TYPE_LINKS } from '@poc/types/createAccessGrant';
import { useAccessGrantsStore } from '@/store/modules/accessGrantsStore';
-import { RequiredRule, ValidationRule } from '@poc/types/common';
+import { RequiredRule, ValidationRule, DialogStepComponent } from '@poc/types/common';
import InfoTooltip from '@poc/components/dialogs/createAccessSteps/InfoTooltip.vue';
@@ -127,7 +127,7 @@ const nameRules: ValidationRule[] = [
v => !agStore.state.allAGNames.includes(v) || 'This name is already in use',
];
-defineExpose({
+defineExpose({
title: 'Create New Access',
validate: () => {
form.value?.validate();
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EncryptionInfoStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EncryptionInfoStep.vue
index a3fa83b50..0616fe3fa 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EncryptionInfoStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EncryptionInfoStep.vue
@@ -28,12 +28,11 @@ import { ref } from 'vue';
import { VForm, VRow, VCol, VCheckbox } from 'vuetify/components';
import { LocalData } from '@/utils/localData';
-import { RequiredRule } from '@poc/types/common';
-import { CreateAccessStepComponent } from '@poc/types/createAccessGrant';
+import { RequiredRule, DialogStepComponent } from '@poc/types/common';
const form = ref(null);
-defineExpose({
+defineExpose({
title: 'Encryption Information',
validate: () => {
form.value?.validate();
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EnterPassphraseStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EnterPassphraseStep.vue
deleted file mode 100644
index 0d9c22674..000000000
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/EnterPassphraseStep.vue
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (C) 2023 Storj Labs, Inc.
-// See LICENSE for copying information.
-
-
-
-
-
- This passphrase will be used to encrypt all the files you upload using this access grant.
- You will need it to access these files in the future.
-
-
-
-
-
-
-
-
-
-
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/S3CredentialsCreatedStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/S3CredentialsCreatedStep.vue
index 501d55127..97e6b7985 100644
--- a/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/S3CredentialsCreatedStep.vue
+++ b/web/satellite/vuetify-poc/src/components/dialogs/createAccessSteps/S3CredentialsCreatedStep.vue
@@ -7,7 +7,7 @@
Copy or save the S3 credentials as they will only appear once.
-
+
@@ -27,10 +27,10 @@
import { ref, computed } from 'vue';
import { VRow, VCol, VDivider } from 'vuetify/components';
-import { SaveButtonsItem } from '@poc/types/createAccessGrant';
+import { SaveButtonsItem } from '@poc/types/common';
import TextOutputArea from '@poc/components/dialogs/createAccessSteps/TextOutputArea.vue';
-import SaveButtons from '@poc/components/dialogs/createAccessSteps/SaveButtons.vue';
+import SaveButtons from '@poc/components/dialogs/commonPassphraseSteps/SaveButtons.vue';
const props = defineProps<{
name: string;
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/ClearStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/ClearStep.vue
new file mode 100644
index 000000000..e8b4f0892
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/ClearStep.vue
@@ -0,0 +1,27 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+ By choosing to clear your passphrase for this session, your data will become locked
+ while you can use the rest of the dashboard.
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/CreateStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/CreateStep.vue
new file mode 100644
index 000000000..86396654f
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/CreateStep.vue
@@ -0,0 +1,17 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+ Creating a new passphrase allows you to upload data separately from
+ the data uploaded with the current encryption passphrase.
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/EncryptionPassphraseStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/EncryptionPassphraseStep.vue
new file mode 100644
index 000000000..852f6f674
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/EncryptionPassphraseStep.vue
@@ -0,0 +1,44 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+
+
+ The encryption passphrase will be used to encrypt the files you upload in this project.
+ You can generate a new encryption passphrase, or enter your own.
+
+
+
Encryption Passphrase
+
+
+
+
+
+
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/ManageOptionsStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/ManageOptionsStep.vue
new file mode 100644
index 000000000..cdce6751a
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/ManageOptionsStep.vue
@@ -0,0 +1,66 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+
+
+
+
+
+
{{ item.title }}
+
{{ item.subtitle }}
+
+
+
+
+
+
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/SuccessStep.vue b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/SuccessStep.vue
new file mode 100644
index 000000000..d49a5e56e
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/dialogs/managePassphraseSteps/SuccessStep.vue
@@ -0,0 +1,42 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+ Your encryption passphrase is ready to use.
+ Now you can upload files into your buckets securely using an encryption passphrase only you know.
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/icons/IconCirclePlus.vue b/web/satellite/vuetify-poc/src/components/icons/IconCirclePlus.vue
new file mode 100644
index 000000000..c4f88b4eb
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/icons/IconCirclePlus.vue
@@ -0,0 +1,8 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/icons/IconLock.vue b/web/satellite/vuetify-poc/src/components/icons/IconLock.vue
new file mode 100644
index 000000000..c7293cf7d
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/icons/IconLock.vue
@@ -0,0 +1,8 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/components/icons/IconSwitch.vue b/web/satellite/vuetify-poc/src/components/icons/IconSwitch.vue
new file mode 100644
index 000000000..c74e43aaa
--- /dev/null
+++ b/web/satellite/vuetify-poc/src/components/icons/IconSwitch.vue
@@ -0,0 +1,8 @@
+// Copyright (C) 2023 Storj Labs, Inc.
+// See LICENSE for copying information.
+
+
+
+
diff --git a/web/satellite/vuetify-poc/src/layouts/default/ProjectNav.vue b/web/satellite/vuetify-poc/src/layouts/default/ProjectNav.vue
index 4e2f0a6c2..5215b6d45 100644
--- a/web/satellite/vuetify-poc/src/layouts/default/ProjectNav.vue
+++ b/web/satellite/vuetify-poc/src/layouts/default/ProjectNav.vue
@@ -110,7 +110,7 @@
-
+
@@ -261,6 +261,7 @@
+