Commit Graph

10 Commits

Author SHA1 Message Date
Thomas Richter
fed184828e feat(02-02): add QuickCapture component and integrate main page
- QuickCapture fixed at bottom with type selector and submit button
- Uses enhance for progressive form enhancement
- Persists last used type via preferences store
- Clears form on successful submit
- Main page composes EntryList and QuickCapture
- Adequate bottom padding (pb-40) for capture bar clearance
- Sticky header with app title

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:07:51 +01:00
Thomas Richter
7c3a8b024d feat(02-02): add EntryCard and EntryList components
- EntryCard displays entry with type indicator (checkbox/badge)
- Tasks have checkbox for toggle completion via form action
- Thoughts show purple "T" badge indicator
- Completed tasks show strikethrough styling
- EntryList renders entries with mobile compact/desktop card layout
- Type badge shows blue for task, purple for thought

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:06:51 +01:00
Thomas Richter
ed6659f266 feat(02-02): add preferences store with svelte-persisted-store
- Install svelte-persisted-store for localStorage persistence
- Create preferences store with lastEntryType and showCompleted
- Sticky type preference across sessions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:06:19 +01:00
Thomas Richter
234d765749 feat(02-01): add accessible base styling
- Set html font-size to 100% (respects browser settings)
- Set body font-size to 1rem (16px minimum)
- Add font smoothing for better readability
- Add safe-bottom class for mobile notch support
- Add touch-target utility for WCAG 44x44px minimum
2026-01-29 11:03:07 +01:00
Thomas Richter
9a449228b7 feat(02-01): add CRUD form actions
- Add create action with content validation (title optional, type defaults to thought)
- Add update action with field-by-field updates and validation
- Add delete action with existence check
- Add toggleComplete action to toggle between open/done
- Use getOrdered() in load function for tasks-first ordering
- Update page component to use new data structure
2026-01-29 11:02:43 +01:00
Thomas Richter
87bf928c12 feat(02-01): add getOrdered method to repository
- Add getOrdered(options?) method to EntryRepository interface
- Implement filtering for completed entries (showCompleted option)
- Order by type ASC (task before thought), then createdAt DESC
- Import asc, ne operators from drizzle-orm
2026-01-29 11:01:59 +01:00
Thomas Richter
d7c7e9448d feat(01-02): add data directory, server hooks, and verification page
- Create data/ directory with attachments/ subdirectory and .gitkeep files
- Update .gitignore to track .gitkeep but ignore database files
- Server hooks initialize database on first request
- Page server load fetches entries and creates test entry if none exist
- Verification page shows database status, entry count, and recent entries
2026-01-29 04:38:44 +01:00
Thomas Richter
a15dbfd3d8 feat(01-02): create EntryRepository with typed CRUD operations
- Implement EntryRepository interface with create, getById, getAll, update, delete, count
- SQLiteEntryRepository class using Drizzle ORM
- Automatic ID generation with nanoid
- Automatic timestamp management (createdAt, updatedAt)
- Pagination support via limit/offset
- Singleton pattern for consistent access
2026-01-29 04:37:37 +01:00
Thomas Richter
63c5e4bddc feat(01-01): configure Drizzle schema with entries table
- Schema with unified entries table (task/thought types)
- Fields: id, title, content, type, status, pinned, dueDate, timestamps
- Database connection with WAL mode
- Drizzle kit scripts (db:generate, db:migrate, db:push, db:studio)
- Database file at ./data/taskplaner.db
2026-01-29 04:34:14 +01:00
Thomas Richter
3a2e0f2e01 feat(01-01): create SvelteKit project with dependencies
- SvelteKit minimal template with TypeScript
- Tailwind CSS v4 with @tailwindcss/vite plugin
- ESLint and Prettier for code quality
- Dependencies: better-sqlite3, drizzle-orm, nanoid, zod
- Dev server runs on localhost:5173
2026-01-29 04:32:54 +01:00