Restore the original modal popup (卡片预览/编辑 tabs) instead of
the inline detail panel, and bring back category carousel, personal
recipes, and favorites sections on the search page.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- RecipeCard: simple card with name, tags, oil names, price (matching
original .recipe-card style with hover translateY and warm shadows)
- RecipeDetailOverlay: inline panel (not modal) with editable ingredients
table, add ingredient row, total cost bar, and card preview section
matching the original detail-panel + #recipe-card-export layout
- RecipeSearch: simplified layout with search box and grid, detail panel
appears inline below grid when a card is clicked
- Updated Cypress tests to match new component structure
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replaced horizontal scroll tags with original-style carousel:
- Full-width slides with background image + gradient overlay
- translateX transform animation (0.4s ease)
- Left/right arrow buttons (semi-transparent, blur backdrop)
- Dot indicators with active state (elongated pill)
- Category filter banner when a category is selected
- Click slide to filter recipes by category tag
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Endpoint fixes:
- AuditLog: /api/audit-logs → /api/audit-log
- BugTracker: /api/bugs → /api/bug-reports, create → /api/bug-report
- BugTracker: fix create body (content+priority, not title/description)
- MyDiary: /api/brand-settings → /api/brand
- MyDiary: /api/me/display-name → PUT /api/me
- RecipeSearch: /api/category-modules → /api/categories
Test improvements:
- Remove blanket uncaught:exception swallow (only ignore ResizeObserver)
- Add endpoint-parity.cy.js: intercept-based test that verifies correct
API endpoints are called and wrong ones are NOT called
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>