@@ -429,9 +439,42 @@ function displayProfileName(name: string): string {
return utils.stripNdnPrefixForDisplay(name);
}
+async function copyLink() {
+ await navigator.clipboard.writeText(inviteLink.value);
+ Toast.success('Invite link copied to clipboard!');
+}
+
diff --git a/src/components/home/CreateWorkspaceModal.vue b/src/components/home/CreateWorkspaceModal.vue
index ed5b0613..775a9326 100644
--- a/src/components/home/CreateWorkspaceModal.vue
+++ b/src/components/home/CreateWorkspaceModal.vue
@@ -33,7 +33,7 @@
diff --git a/src/components/home/JoinWorkspaceModal.vue b/src/components/home/JoinWorkspaceModal.vue
index c929baf3..da94851b 100644
--- a/src/components/home/JoinWorkspaceModal.vue
+++ b/src/components/home/JoinWorkspaceModal.vue
@@ -6,7 +6,7 @@
Dashboard Label
@@ -27,14 +27,14 @@
diff --git a/src/components/landing/DemoCreateWorkspaceModal.vue b/src/components/landing/DemoCreateWorkspaceModal.vue
new file mode 100644
index 00000000..f9045241
--- /dev/null
+++ b/src/components/landing/DemoCreateWorkspaceModal.vue
@@ -0,0 +1,41 @@
+
+
+
Create Workspace
+
+
+
Dashboard Label
+
+
+
+
A readable label for the workspace on your dashboard
+
+
+
+
Name Identifier
+
+
+
+
A unique identifier for the workspace, without spaces or special characters
+
+
+
+ Your workspace will have the network name –
+ /ndn/username/marketing-team
+
+
+
+
+
+
+
diff --git a/src/components/landing/DemoDashboard.vue b/src/components/landing/DemoDashboard.vue
new file mode 100644
index 00000000..078ac935
--- /dev/null
+++ b/src/components/landing/DemoDashboard.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
Don't see what you are looking for?
+
+
+
+
+
+ Create a new workspace
+
+
+ Join a workspace
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/landing/DemoJoinWorkspaceModal.vue b/src/components/landing/DemoJoinWorkspaceModal.vue
new file mode 100644
index 00000000..194f33ae
--- /dev/null
+++ b/src/components/landing/DemoJoinWorkspaceModal.vue
@@ -0,0 +1,44 @@
+
+
+
Join Workspace
+
+
+
Dashboard Label
+
+
+
+
A readable label for the workspace on your dashboard
+
+
+
+
NDN Name
+
+
+
+
Unique network identifier of the workspace
+
+
+
+
Pre-Shared Key
+
+
+
+
Ask the owner of the workspace for the key
+
+
+
+
+
+
+
diff --git a/src/components/landing/DemoModal.vue b/src/components/landing/DemoModal.vue
new file mode 100644
index 00000000..982f4eaf
--- /dev/null
+++ b/src/components/landing/DemoModal.vue
@@ -0,0 +1,85 @@
+
+
+
{{ title }}
+
{{ description }}
+
+ {{ link }}
+
+
+
+
+
{{ inputLabel }}
+
+
+
+
+
+
+
diff --git a/src/components/landing/DemoSidebarHome.vue b/src/components/landing/DemoSidebarHome.vue
new file mode 100644
index 00000000..dd0547fa
--- /dev/null
+++ b/src/components/landing/DemoSidebarHome.vue
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/landing/DemoSidebarWorkspace.vue b/src/components/landing/DemoSidebarWorkspace.vue
new file mode 100644
index 00000000..e8d541e0
--- /dev/null
+++ b/src/components/landing/DemoSidebarWorkspace.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/landing/HelpComponent.vue b/src/components/landing/HelpComponent.vue
new file mode 100644
index 00000000..69be5927
--- /dev/null
+++ b/src/components/landing/HelpComponent.vue
@@ -0,0 +1,185 @@
+
+
+
+ Creating a Workspace
+
+
+ Click on Dashboard in the sidebar to access your workspaces.
+
+
+
+
+
+
+ Click the Create a new workspace button.
+
+
+
+
+
+
+ Fill in the Dashboard Label and Name Identifier fields.
+
+
+
+
+
+
+ Your workspace is ready. Invite team members or create projects and channels.
+
+
+
+
+ Joining a Workspace
+
+
+ Click on Dashboard in the sidebar to access your workspaces.
+
+
+
+
+
+
+ Click the Join a workspace button.
+
+
+
+
+
+
+ Fill in the Dashboard Label , NDN Name , and Pre-Shared Key fields.
+
+
+
+
+
+
+ You're now part of the workspace. Create projects and channels to collaborate.
+
+
+
+
+ Inviting Others
+ Here's how to invite someone to your workspace:
+
+
+ The Invite people menu only appears when you're in a workspace.
+
+
+
+ Click Invite people in the sidebar under the Workspace section.
+
+
+
+
+
+
+ Click the Copy Invite Link button in the modal.
+
+
+
+
+
+
+ Share the link with your teammate via chat, email, or any method you prefer.
+
+
+
+ Your teammate opens the link and clicks Join on the dashboard.
+
+
+
+
+
+
+
+
diff --git a/src/components/landing/StepItem.vue b/src/components/landing/StepItem.vue
new file mode 100644
index 00000000..caefcf2f
--- /dev/null
+++ b/src/components/landing/StepItem.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
{{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/router/index.ts b/src/router/index.ts
index da7b734e..08afe89a 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -5,6 +5,7 @@ import SpaceDiscussView from '@/views/SpaceDiscussView.vue';
import SpaceProjectView from '@/views/SpaceProjectView.vue';
import ProjectFileView from '@/views/ProjectFileView.vue';
import AboutView from '@/views/AboutView.vue';
+import HelpView from '@/views/HelpView.vue';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
@@ -44,6 +45,11 @@ const router = createRouter({
name: 'about',
component: AboutView,
},
+ {
+ path: '/help',
+ name: 'help',
+ component: HelpView,
+ },
{
path: '/:pathMatch(.*)*',
redirect: '/',
diff --git a/src/services/event-bus.ts b/src/services/event-bus.ts
index 656ba433..46be6b08 100644
--- a/src/services/event-bus.ts
+++ b/src/services/event-bus.ts
@@ -47,4 +47,10 @@ export const GlobalBus = new EventEmitter() as TypedEmitter<{
* @param channels List of agent channels
*/
'agent-channels': (channels: IAgentChannel[]) => void;
+
+ /**
+ * Event when the active help section changes.
+ * @param id Section ID that is now active
+ */
+ 'help-toc-active': (id: string) => void;
}>;
diff --git a/src/views/AboutView.vue b/src/views/AboutView.vue
index b04b053c..87342e18 100644
--- a/src/views/AboutView.vue
+++ b/src/views/AboutView.vue
@@ -1,10 +1,9 @@
diff --git a/src/views/HelpView.vue b/src/views/HelpView.vue
new file mode 100644
index 00000000..b1f06430
--- /dev/null
+++ b/src/views/HelpView.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+