From f288df5b9c9323c52a8baacf8caf95c3b78041f9 Mon Sep 17 00:00:00 2001 From: JCEEE <0xjceee@proton.me> Date: Wed, 2 Sep 2026 11:50:51 +0100 Subject: [PATCH] Add FamDone Brand component --- AGENTS.md | 2 +- ARCHITECTURE.md | 2 +- MEMORY.md | 4 +- RULES.md | 2 +- TODO.md | 2 +- frontend/icons/check-circle.svg | 1 + frontend/src/lib/components/AuthShell.svelte | 19 +- frontend/src/lib/components/FamDone.svelte | 33 + frontend/src/lib/components/Footer.svelte | 6 +- frontend/src/lib/components/Sidebar.svelte | 3 +- frontend/src/lib/components/index.ts | 1 + frontend/src/lib/server/email.ts | 2 +- frontend/src/routes/+page.svelte | 7 +- frontend/src/routes/[fam]/+layout.svelte | 4 +- frontend/src/routes/admin/+page.svelte | 1051 ++++++++++-------- frontend/src/routes/api/email/+server.ts | 4 +- frontend/src/routes/login/+page.svelte | 2 +- frontend/src/routes/pricing/+page.svelte | 5 +- 18 files changed, 657 insertions(+), 493 deletions(-) create mode 100644 frontend/icons/check-circle.svg create mode 100644 frontend/src/lib/components/FamDone.svelte diff --git a/AGENTS.md b/AGENTS.md index 06405ba..3e014d4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ --- -# FamChore v2 — AI Agent Reference +# FamDone v2 — AI Agent Reference ## Stack diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index a78b04e..ea1b8e6 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -1,4 +1,4 @@ -# FamChore v2 — Architecture & Developer Reference +# FamDone v2 — Architecture & Developer Reference ## Overview diff --git a/MEMORY.md b/MEMORY.md index 5e41a49..00b6da6 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -1,4 +1,4 @@ -# FamChore v2 — Development Memory +# FamDone v2 — Development Memory ## 2026-08-17 — Schema collapse to single source of truth (Option 1) @@ -34,7 +34,7 @@ ``` ### Sidebar (collapsible to mini-mode) -- Header: app name (FamChore) +- Header: app name (FamDone) - Admin CTAs: Dashboard, Chores, Rewards (badge count), Bonuses - Member CTAs: Dashboard, Preferences - Footer: family name, Settings (admin only), Log out diff --git a/RULES.md b/RULES.md index 2510fa6..af6d5a1 100644 --- a/RULES.md +++ b/RULES.md @@ -1,4 +1,4 @@ -# FamChore v2 — Rules +# FamDone v2 — Rules ## Auth - Every collection query includes `famId = @request.auth.famId` filter diff --git a/TODO.md b/TODO.md index e5a3c85..48b1ee3 100644 --- a/TODO.md +++ b/TODO.md @@ -1,4 +1,4 @@ -# FamChore — TODO +# FamDone — TODO (Completed work is tracked in MEMORY.md / git history.) diff --git a/frontend/icons/check-circle.svg b/frontend/icons/check-circle.svg new file mode 100644 index 0000000..f2f4fd1 --- /dev/null +++ b/frontend/icons/check-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/lib/components/AuthShell.svelte b/frontend/src/lib/components/AuthShell.svelte index e687038..14b3e85 100644 --- a/frontend/src/lib/components/AuthShell.svelte +++ b/frontend/src/lib/components/AuthShell.svelte @@ -1,5 +1,11 @@
- FamChore +

{title}

{#if subtitle} @@ -26,7 +32,10 @@ justify-content: center; padding: 2rem 1rem; background: linear-gradient(135deg, #eef2ff 0%, #ffffff 55%, #eef2ff 100%); - font-family: system-ui, -apple-system, sans-serif; + font-family: + system-ui, + -apple-system, + sans-serif; color: #1f2937; } .brand { @@ -56,6 +65,8 @@ line-height: 1.5; } @media (max-width: 480px) { - .card { padding: 1.5rem; } + .card { + padding: 1.5rem; + } } diff --git a/frontend/src/lib/components/FamDone.svelte b/frontend/src/lib/components/FamDone.svelte new file mode 100644 index 0000000..04e5901 --- /dev/null +++ b/frontend/src/lib/components/FamDone.svelte @@ -0,0 +1,33 @@ + + + + FamDone + + diff --git a/frontend/src/lib/components/Footer.svelte b/frontend/src/lib/components/Footer.svelte index af932e7..5a570c4 100644 --- a/frontend/src/lib/components/Footer.svelte +++ b/frontend/src/lib/components/Footer.svelte @@ -1,5 +1,9 @@ + +
- FamChore +
diff --git a/frontend/src/routes/api/email/+server.ts b/frontend/src/routes/api/email/+server.ts index d352950..d09e02c 100644 --- a/frontend/src/routes/api/email/+server.ts +++ b/frontend/src/routes/api/email/+server.ts @@ -45,9 +45,9 @@ export async function POST({ request, url }) { await resend.emails.send({ from: 'no-reply@famchamp.ai', to: email, - subject: 'Reset your FamChore password', + subject: 'Reset your FamDone password', html: ` -

You requested a password reset for your FamChore account.

+

You requested a password reset for your FamDone account.

Click here to reset your password

This link expires in 1 hour.

If you didn't request this, you can ignore this email.

diff --git a/frontend/src/routes/login/+page.svelte b/frontend/src/routes/login/+page.svelte index 1d09042..272dcd2 100644 --- a/frontend/src/routes/login/+page.svelte +++ b/frontend/src/routes/login/+page.svelte @@ -27,7 +27,7 @@ } - + {#if showForgot} {#if forgotSuccess}

diff --git a/frontend/src/routes/pricing/+page.svelte b/frontend/src/routes/pricing/+page.svelte index 4640fa9..c5f3517 100644 --- a/frontend/src/routes/pricing/+page.svelte +++ b/frontend/src/routes/pricing/+page.svelte @@ -5,6 +5,7 @@ import { PUBLIC_STRIPE_PUBLISHABLE_KEY } from '$app/env/public'; import { loadStripe, type StripeEmbeddedCheckout } from '@stripe/stripe-js'; import { Button, PricingPlans } from '$lib/components'; + import FamDone from '$lib/components/FamDone.svelte'; import Footer from '$lib/components/Footer.svelte'; import { homeIcon, chevronLeftIcon, chevronRightIcon } from '$lib/components/icons'; @@ -56,12 +57,12 @@ } -Pricing — FamChore +Pricing — FamDone