6505cb4251
test(recipes): add action tests and harden create/update form actions
...
- Add try-catch around JSON.parse with fail(400) for malformed input
- Validate effort against allowed values ['Easy','Medium','Hard']
- Fix NaN risk: Number(serves)||undefined instead of Number(serves)
- Add action tests for create/update: validation, JSON.parse crash, success, API error
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 10:27:54 +02:00
3d49e6b7bf
feat(recipes): add /recipes/[id]/edit route with update action
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 10:20:45 +02:00
4e2b0b5727
feat(recipes): add /recipes/new route with create action
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 10:19:27 +02:00
0256b4360b
fix(recipes): address B2 review — tags, sort, edit link, types, a11y, tests
...
- RecipeHero: render tag pills, min-h-[200px/240px], fix back link styling, remove font-[400]
- IngredientList: sort by sortOrder ascending
- StepList: aria-hidden on step circles
- types.ts: add Tag, Ingredient, Step, RecipeDetail shared types
- +page.svelte: add Edit link → /recipes/[id]/edit (desktop topbar)
- Tests: tag pills, sortOrder sort, edit link, image variant, 403-as-404 documented
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 10:07:19 +02:00
00c48a7c96
feat(recipes): implement B2 recipe detail page with mobile/desktop layout
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 10:02:20 +02:00
ce860d68e4
feat(recipes): add recipe detail load function with 404 handling
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 10:00:02 +02:00
9bb6293d9f
fix(recipes): address review feedback — shared type, design system tokens, test coverage
...
- Extract RecipeSummary type to $lib/recipes/types.ts (was duplicated in 3 files)
- Fix +page.svelte header link: replace Skeleton UI classes with design system tokens
- Fix h1: use font-[var(--font-display)] and correct size
- Fix FilterChipRow: text-[11px] → text-[13px] + tracking-[0.04em] per design system
- Fix RecipeCard metadata: text-[11px] → text-[12px] for readability
- Remove unused imports (vi, beforeEach, afterEach) from page.test.ts
- Add combined search + effort filter test
- Add reset-to-Alle filter test
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 09:53:32 +02:00
47c748145d
feat(recipes): implement recipe library page with search and effort filtering
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 09:49:39 +02:00
a25286e385
feat(recipes): load recipe list from API in page server
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 09:45:43 +02:00
9626bde694
feat(shell): add route groups, layout server load, redirect, and placeholder pages
...
- (app) group with AppShell layout, loads user/household from locals
- (public) group with full-viewport split layout, /login placeholder
- Root / redirects to /planner for authenticated users
- Placeholder stubs for planner, recipes, shopping, settings, members
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 13:22:34 +02:00