- Fix getNavigation() to use contracts API (no broken type filter)
- Single nav fetch in layout, pass mainMenu/footerMenu to components
- Header, Navigation, MobileMenu use CMS mainMenu schema
- Footer uses CMS footerMenu schema with linkType field
- Add pnpm-workspace.yaml for onlyBuiltDependencies allowlist
- Update payload-contracts to latest (navigation fix a0eea96)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Deploys to sv-frontend on push to develop.
Uses port-forwarding through UDM Pro SE (37.24.237.181:2204).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use rename syntax (filterCategory: _filterCategory) instead of direct rename
- Fix FavoritesBlock layout destructuring
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add server.js to ESLint globalIgnores (CJS file for Passenger)
- Prefix unused destructured vars with underscore
- Comment out unused PAYLOAD_URL constant
- Configure underscore-prefix pattern for unused vars
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Passenger loads server.js via require(), not as a shell script.
The shebang causes SyntaxError: Invalid or unexpected token.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Required by Plesk Node.js Manager to start the Next.js production server
via Phusion Passenger. Uses CommonJS for Passenger compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
git config overwrites previous insteadOf value without --add flag.
Need both git@github.com: (SCP) and ssh://git@github.com/ patterns.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pass GH_PAT via env var instead of secrets expression
in shell command for reliable git insteadOf config.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pnpm resolves github: deps via git@github.com: (SSH), which fails
without SSH keys. Rewrite to HTTPS with GH_PAT token instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Runs lint and build on push to develop/main and on PRs.
Uses GH_PAT secret for private @c2s/payload-contracts dependency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Secondary button hover: full espresso fill with white text
- Tertiary button: font-medium (500) and subtle hover background
- Primary button hover: exact 1px translateY
- Header: backdrop-blur 10px (was 4px) and z-index 100 (was 50)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add @c2s/payload-contracts as shared API client dependency
- Create src/lib/cms.ts with tenant-configured PayloadClient instance
- Replace manual fetch logic in api.ts with contracts client calls
- Add transpilePackages config for TypeScript source imports
- Local types preserved for component compatibility (bridge pattern)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Critical fixes:
- Add group class to Card component for image zoom on hover
- Create Skeleton, EmptyState, and Pagination UI components
- Add proper empty state to PostsListBlock instead of returning null
Visual consistency:
- Fix Button hover states (subtler secondary/tertiary transitions)
- Add badge variants for FavoritesBlock with German labels
- Increase overlay opacity in HeroBlock/VideoBlock for better contrast
Accessibility improvements:
- Add skip-to-content link in layout for keyboard navigation
- Add focus-visible states to FAQ accordion and Testimonials carousel
- Implement focus trap in MobileMenu with proper ARIA attributes
- Enhance 404 page with helpful navigation links
Polish:
- Fix DividerBlock text contrast
- Fix lint errors (Link component, const declaration)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Initialize Next.js 16 with React 19, TypeScript, and Tailwind CSS 4
- Add prompts/ directory for concept AI instructions
- Add docs/ directory for project documentation
- Include README files explaining workflow and conventions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>