improve setup UX: password field, setup hook, checklist banners, theme tweaks
All checks were successful
deploy / deploy (push) Successful in 1m31s

- add password field and required shop name to setup wizard
- extract SetupHook for DRY redirect to /setup when no admin exists
- add ?from=checklist param to checklist hrefs with contextual banner on
  email settings and theme pages for easy return to dashboard
- remove email warning banner from admin layout (checklist covers it)
- make email a required checklist item (no longer optional)
- add DevReset module for wiping dev data without restart
- rename "Theme Studio" to "Theme", drop subtitle
- lower theme editor side-by-side breakpoint from 64em to 48em
- clean up login/registration pages (remove dead registration_open code)
- fix settings.put_secret to invalidate cache after write

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-03 17:41:08 +00:00
parent 0853b6f528
commit 64f083d271
23 changed files with 309 additions and 118 deletions

View File

@@ -934,6 +934,25 @@
border: 1px solid var(--t-border-default);
}
/* ── Checklist banner (shown when arriving from the launch checklist) ── */
.admin-checklist-banner {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 0.75rem 1rem;
margin-bottom: 1.5rem;
font-size: 0.875rem;
line-height: 1.5;
border-radius: 0.5rem;
background-color: color-mix(in oklch, var(--t-status-info) 10%, var(--t-surface-base));
border: 1px solid color-mix(in oklch, var(--t-status-info) 20%, var(--t-surface-base));
& .admin-checklist-banner-icon { color: var(--t-status-info); flex-shrink: 0; }
& .admin-checklist-banner-text { flex: 1; color: var(--t-text-secondary); }
& .admin-checklist-banner-link { font-weight: 500; white-space: nowrap; }
}
/* ── Dashboard stats grid ── */
@@ -3422,7 +3441,7 @@
min-height: 100vh;
background: var(--t-surface-sunken);
@media (min-width: 64em) {
@media (min-width: 48em) {
flex-direction: row;
height: 100vh;
}
@@ -3434,7 +3453,7 @@
flex-shrink: 0;
transition: width 0.3s, padding 0.3s;
@media (min-width: 64em) {
@media (min-width: 48em) {
height: 100vh;
}
}
@@ -3444,7 +3463,7 @@
overflow-y: auto;
padding: 1.5rem;
@media (min-width: 64em) {
@media (min-width: 48em) {
width: 380px;
}
}
@@ -4168,6 +4187,10 @@
display: flex;
flex-direction: column;
gap: 1rem;
&[hidden] {
display: none;
}
}
.admin-adapter-link {