688d6a788f92

create-vault screen: optional back arrow that returns to Onboarding (only when hasVault=false so it doesn't appear for users with an existing locked vault); bump v2.11.13

time
2026-04-29 05:19 UTC · 6 months ago
machine
koh2
parent
ce561ac4b57e
6 files manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/App.tsx+5 −0src/popup/styles/popup.css+22 −0src/popup/views/Lock.tsx+17 −0
manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "2.11.12",4+  "version": "2.11.13",55   "description": "Zero-knowledge password manager",66   "browser_specific_settings": {77     "gecko": {

view file

manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "2.11.12",4+  "version": "2.11.13",55   "description": "Zero-knowledge password manager",66   "action": {77     "default_popup": "src/popup/index.html",

view file

package.json+1 −1
@@ -1,6 +1,6 @@11 {22   "name": "peach",3-  "version": "2.11.12",3+  "version": "2.11.13",44   "description": "Zero-knowledge password manager",55   "type": "module",66   "scripts": {

view file

src/popup/App.tsx+5 −0
@@ -891,6 +891,11 @@891891                   ready={bootState() === "ready"}892892                   isPro={proStatus()}893893                   onUnlock={handleUnlock}894+                  onBackToOnboarding={895+                    !hasVault()896+                      ? () => setOnboarded(false)897+                      : undefined898+                  }894899                 />895900               </Show>896901             }

view file

src/popup/styles/popup.css+22 −0
@@ -6039,7 +6039,29 @@60396039   z-index: 2;60406040   display: flex;60416041   align-items: center;6042+  gap: 10px;60426043   margin-bottom: 2px;6044+}6045+6046+.peach-newvault-back {6047+  display: inline-flex;6048+  align-items: center;6049+  gap: 4px;6050+  background: transparent;6051+  border: none;6052+  color: var(--peach-t2);6053+  font-family: "IBM Plex Mono", monospace;6054+  font-size: 10px;6055+  letter-spacing: 0.06em;6056+  cursor: pointer;6057+  padding: 4px 6px;6058+  border-radius: 6px;6059+  transition: color 120ms ease, background 120ms ease;6060+}6061+6062+.peach-newvault-back:hover {6063+  color: var(--peach-t0);6064+  background: rgba(240, 232, 216, 0.04);60436065 }60446066 60456067 .peach-newvault-mark {

view file

src/popup/views/Lock.tsx+17 −0
@@ -19,6 +19,10 @@1919   ready: boolean;2020   isPro?: boolean;2121   onUnlock: () => void | Promise<void>;22+  /** Optional escape hatch: rewind from the create-vault screen back to23+   *  Onboarding. Only meaningful when the user reached create-vault from24+   *  Onboarding in the first place. */25+  onBackToOnboarding?: () => void;2226 }2327 2428 // "restore" = picker, "snapshots" = vault history, "peachscript" / "file" = detail flows@@ -245,6 +249,19 @@245249           data-motion-phase="enter"246250         >247251           <header class="peach-screen-header peach-newvault-header">252+            <Show when={props.onBackToOnboarding}>253+              <button254+                class="peach-newvault-back"255+                type="button"256+                onClick={() => props.onBackToOnboarding?.()}257+                aria-label="Back to onboarding"258+              >259+                <svg width="11" height="11" viewBox="0 0 11 11" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round">260+                  <path d="M7 2L3 5.5L7 9" />261+                </svg>262+                back263+              </button>264+            </Show>248265             <div class="peach-wordmark-stack">249266               <PeachWordmark class="peach-wordmark-wrap" />250267               <Show when={props.isPro}>

view file