| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
- Delete action removes item from grocery list permanently
- Delete button (x) on catalog items, positioned inline with name
- Unified button heights (2rem) across list and catalog sections
|
| |
|
|
|
|
|
|
| |
- Show all items split into List (unchecked) and Catalog (checked) sections
- Tapping a catalog item unchecks it (returns to list)
- Add action now upserts: unchecks existing item instead of creating duplicate
- UNIQUE constraint on groceries.name as defense-in-depth
- Tests for dedup behavior (insert, re-add from catalog, no-op on list)
|
| | |
|
| |
|
|
|
|
|
|
| |
- Groceries DB schema (id, name, checked, created_at) with Drizzle + libsql
- /+page.server.ts: load (unchecked items, newest first), add & toggle actions
- /+page.svelte: text input + Add button, item list with toggle buttons
- Mobile-first styling with scoped CSS classes
- AGENTS.md: project-specific rules including UI validation
|
|
|
@libsql/client + Drizzle ORM for SQLite, Prettier + ESLint flat config.
Multi-stage Dockerfile (node:26-slim) for Caddy-backed deployment.
|