diff --git a/web/src/lib/components/OnboardingLaunchpad.svelte b/web/src/lib/components/OnboardingLaunchpad.svelte new file mode 100644 index 00000000..1ecdf9ad --- /dev/null +++ b/web/src/lib/components/OnboardingLaunchpad.svelte @@ -0,0 +1,260 @@ + + +
+
+ +

Let's set up {workspaceName}

+

+ Pad works best when your AI agent sets it up for you — it'll ask a few + questions and adapt this workspace to your project. +

+
+ +
    +
  1. + +
    +

    Connect your agent

    +

    + Add Pad to Claude Code, Cursor, Codex, or Claude Desktop — it takes a + few seconds. +

    + +
    +
  2. + +
  3. + +
    +

    Tell it to set up

    +

    Once connected, just say:

    + set up my workspace +

    + Or use the shortcut for your agent: + {#each shortcuts as s, i (s.tool)}{s.tool} + {s.cmd}{#if i < shortcuts.length - 1} · {/if}{/each} +

    +
    +
  4. + +
  5. + +
    +

    Watch it happen

    +

    + Your collections and first items will appear right here as your agent + works — no need to refresh. +

    +
    +
  6. +
+ + +
+ + diff --git a/web/src/lib/components/OnboardingNudgeBanner.svelte b/web/src/lib/components/OnboardingNudgeBanner.svelte deleted file mode 100644 index e680e2c4..00000000 --- a/web/src/lib/components/OnboardingNudgeBanner.svelte +++ /dev/null @@ -1,183 +0,0 @@ - - -
- -
- Set up your workspace -

- Your workspace is ready. Connect your agent, then just say - set up my workspace — it'll walk you through setup. -

-
- - Connect agent → - - -
- - diff --git a/web/src/routes/[username]/[workspace]/+page.svelte b/web/src/routes/[username]/[workspace]/+page.svelte index bfc7b141..055813ca 100644 --- a/web/src/routes/[username]/[workspace]/+page.svelte +++ b/web/src/routes/[username]/[workspace]/+page.svelte @@ -8,7 +8,7 @@ import { uiStore } from '$lib/stores/ui.svelte'; import { syncService } from '$lib/services/sync.svelte'; import { relativeTime } from '$lib/utils/markdown'; - import OnboardingNudgeBanner from '$lib/components/OnboardingNudgeBanner.svelte'; + import OnboardingLaunchpad from '$lib/components/OnboardingLaunchpad.svelte'; import ConnectWorkspaceModal from '$lib/components/ConnectWorkspaceModal.svelte'; import CreateCollectionModal from '$lib/components/collections/CreateCollectionModal.svelte'; import { collectionStore } from '$lib/stores/collections.svelte'; @@ -254,6 +254,21 @@ {:else if dashboard} + {#if needsOnboarding && !onboardingDismissed} + + (connectOpen = true)} + ondismiss={dismissOnboarding} + /> + {:else}
@@ -286,15 +301,11 @@ ConnectWorkspaceModal — same modal the Phase F auto-open hook and ConnectBanner use. --> - {#if needsOnboarding && !onboardingDismissed} -
- (connectOpen = true)} - ondismiss={dismissOnboarding} - /> -
- {:else if needsOnboarding && onboardingDismissed} + {#if needsOnboarding && onboardingDismissed} +
@@ -514,6 +525,7 @@
{/if} + {/if} {:else}
No dashboard data available.
{/if}