Commit graph

26 commits

Author SHA1 Message Date
f288c512dd fix: update navigation fallback items to match current CMS structure
Updated hardcoded fallback navigation in layout.tsx and Footer.tsx to reflect
the current 5-item CMS navigation including Whistleblowing/Unternehmer submenus.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:07:48 +00:00
055d427ce8 chore: remove screenshots/debug artifacts and update .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:24:56 +00:00
b906cbb2b1 feat: implement CMS-driven navigation with dropdown submenus
Bypass broken contracts client navigation filter (queries non-existent
'type' field) with direct fetch to /api/navigations. Transform CMS
mainMenu structure (page/custom/submenu types) into NavItem format.
Replace JS-state dropdown (AnimatePresence) with pure CSS group-hover
to fix SSR hydration issues where both dropdowns opened simultaneously.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 23:22:04 +00:00
3f962c6668 fix: CTABlock field mapping to match Payload CMS schema
Map buttons array (text/link/style), description, and backgroundColor
instead of legacy flat fields (ctaLink, ctaLabel, backgroundImage)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 21:47:34 +00:00
6c69491c96 fix: strip quotes from icon names in DynamicIcon
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:01:30 +00:00
9fe9876de2 feat: add dynamic Lucide icon rendering to CardGridBlock
Installs lucide-react and creates DynamicIcon component that maps
icon name strings to rendered Lucide icons. CardGridBlock now supports
mediaType (none/image/icon) and iconPosition (top/left).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:57:41 +00:00
fe83855f40 feat: connect CMS content, add ISR, Lexical renderer, and hero styling
- Fix tenant ID (1→4) to match CMS content
- Change homepage slug from "home" to "startseite"
- Add ISR with 60s revalidation for automatic content updates
- Create Lexical JSON→HTML renderer for rich text blocks
- Wire up dynamic favicon from CMS site-settings
- Adjust hero block: responsive font sizes, left-aligned layout,
  subline field support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 15:01:30 +00:00
be1c169481 ci: add staging deploy workflow via SSH
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>
2026-02-15 22:24:37 +00:00
f518e20fae fix: resolve lint errors (server.js ignore, unused imports)
- Add server.js to ESLint globalIgnores (CJS file for Passenger)
- Remove unused cn import from QuoteBlock
- Configure underscore-prefix pattern for unused vars

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:49:22 +00:00
9e31c48d92 fix: remove .htaccess causing redirect loops in Apache
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 20:48:38 +00:00
fe2d2d2213 fix: add PassengerEnabled on for Apache routing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 20:21:15 +00:00
e93bdbf879 revert: remove .htaccess causing 500 errors
PassengerAppRoot and other directives are not allowed in .htaccess context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 20:20:06 +00:00
5ff127fc97 fix: add .htaccess for Apache/Passenger routing on Plesk
All non-root routes were returning Apache 500 because Passenger
was not handling them. This .htaccess enables Passenger for all
requests through Apache on Hetzner 2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 20:19:21 +00:00
101d30efeb fix: remove escaped characters from server.js
Fix bash-escaped \! in !== operator that caused SyntaxError.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:25:08 +00:00
57576eb5cb fix: remove shebang from server.js for Phusion Passenger compatibility
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>
2026-02-15 19:23:00 +00:00
ce3b73ddb8 feat: add Phusion Passenger server.js for Plesk deployment
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>
2026-02-15 19:01:24 +00:00
68145ceb7e fix(ci): use --add for multiple git insteadOf patterns
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>
2026-02-15 18:23:44 +00:00
47657ae8c2 fix(ci): use env var for git credential rewrite
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>
2026-02-15 18:20:41 +00:00
1ad83efbc3 fix(ci): rewrite git SSH to HTTPS for private dependency access
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>
2026-02-15 18:17:22 +00:00
0046dbcf65 fix(ci): add packageManager field for pnpm/action-setup
pnpm/action-setup@v4 requires pnpm version via packageManager field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 18:15:10 +00:00
fa78f033d2 ci: add GitHub Actions CI workflow
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>
2026-02-15 18:13:09 +00:00
6d32eb9b0e docs: add Definity design guidelines and update CLAUDE.md
- docs/DESIGN.md: Full design system reference (colors, typography,
  spacing, shadows, components, animation patterns)
- CLAUDE.md: Updated with design system summary, component library,
  implemented blocks (9/15), architecture overview

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:07:35 +00:00
2e8d34d917 feat: apply Definity Template design system
- Tailwind v4 theme config with Definity colors (accent #2CAADF, dark #111)
- Montserrat + Open Sans font setup via next/font/google
- UI components: Button (6 variants), Container, SectionHeader
- Navigation with transparent-to-solid scroll behavior
- Footer with social links, widgets, copyright bar
- Block components: Hero, Text, CardGrid, Quote, ImageText, CTA,
  ContactForm, Timeline, Divider
- Typography system with prose styles for rich text
- Animation library with framer-motion variants
- Page transitions via template.tsx
- cn() utility (clsx + tailwind-merge)
- Updated API layer with getSocialLinks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 11:06:05 +00:00
e998553440 docs: add CLAUDE.md with project context and contracts reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 01:11:58 +00:00
ab1e2d7094 feat: bootstrap porwoll.de with @c2s/payload-contracts
- Next.js 16 + Tailwind CSS 4 project setup
- Add @c2s/payload-contracts for shared API client (tenant: porwoll, ID: 1)
- Create src/lib/cms.ts and src/lib/api.ts with CMS integration
- Create block renderer with 15 placeholder blocks
- Create dynamic [slug] page routing with CMS pages
- Layout with CMS site settings integration
- transpilePackages configured for TypeScript source imports

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 00:56:27 +00:00
c2s
5e0f63c703
Initial commit 2025-12-18 12:31:23 +01:00