diff --git a/extension/src/popup/components/setup-wizard.ts b/extension/src/popup/components/setup-wizard.ts
deleted file mode 100644
index 5b9b2ad..0000000
--- a/extension/src/popup/components/setup-wizard.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/// Setup prompt — directs users to the full-page setup wizard.
-///
-/// The popup is too constrained for file pickers and multi-step forms
-/// (Chrome closes it when focus shifts). All real setup happens in
-/// setup.html, which pushes config to chrome.storage.local when done.
-
-import { escapeHtml } from '../popup';
-
-export function renderSetupWizard(app: HTMLElement): void {
- app.innerHTML = `
-
-
-
relicario
-
two-factor vault
-
-
- No vault configured yet. Open the setup wizard to
- create a new vault or connect to an existing one.
-
-
-
-
- `;
-
- document.getElementById('open-setup-btn')?.addEventListener('click', () => {
- chrome.tabs.create({ url: chrome.runtime.getURL('setup.html') });
- window.close();
- });
-}
diff --git a/extension/src/popup/popup.ts b/extension/src/popup/popup.ts
index def13bc..360cb2e 100644
--- a/extension/src/popup/popup.ts
+++ b/extension/src/popup/popup.ts
@@ -10,7 +10,6 @@ import { renderUnlock } from './components/unlock';
import { renderEntryList } from './components/entry-list';
import { renderEntryDetail } from './components/entry-detail';
import { renderEntryForm } from './components/entry-form';
-import { renderSetupWizard } from './components/setup-wizard';
import { renderSettings } from './components/settings';
// --- Escape HTML to prevent XSS ---
@@ -22,7 +21,7 @@ export function escapeHtml(str: string): string {
// --- State ---
-export type View = 'setup' | 'locked' | 'list' | 'detail' | 'add' | 'edit' | 'settings';
+export type View = 'locked' | 'list' | 'detail' | 'add' | 'edit' | 'settings';
export interface PopupState {
view: View;
@@ -80,9 +79,6 @@ function render(): void {
if (!app) return;
switch (currentState.view) {
- case 'setup':
- renderSetupWizard(app);
- break;
case 'locked':
renderUnlock(app);
break;
@@ -112,7 +108,8 @@ async function init(): Promise {
if (setupResp.ok) {
const data = setupResp.data as { isConfigured: boolean };
if (!data.isConfigured) {
- navigate('setup');
+ await chrome.tabs.create({ url: chrome.runtime.getURL('setup.html') });
+ window.close();
return;
}
}