Enh: nav LinkPicker (link-to-page) + page-sync + download + box-model/anim/vis #20
Reference in New Issue
Block a user
Delete Branch "enh-nav"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
LinkPicker control (site-page dropdown via usePages + Custom URL/#anchor/tel/mailto) wired into Logo href, Navbar logoUrl, and every Navbar/Menu link href. Sync-links-with-Pages rebuilds from pages while preserving CTA links. Per-link download toggle (boolean attr). Box-model + animation/visibility across Navbar/Menu/Logo/Footer. hrefs stay safeUrl-guarded. 683 tests.
🤖 Generated with Claude Code
NavStylePanel (Navbar/Menu/Logo/Footer): - LinkPicker: dropdown of the site's pages (read-only via usePages()) plus manual URL / #anchor / tel: / mailto: entry, wired into every link-href field (standalone Logo href, Navbar logoUrl, Navbar/Menu link items). - "Sync links with Pages" button in the Links section: repopulates the links array from the current pages list (label = page name, href = '/' for the landing page else '/{slug}'), preserving any existing CTA link. Regression-fix vs the legacy GrapesJS builder, which had this. - `download` checkbox per link (Navbar/Menu links, standalone Logo href) emits the `download` attribute on export for links to files. - Links/Colors sections now gate on the component actually carrying a `links`/color prop, so Footer (no links array) no longer shows a dead "Add Link" editor. - Box-model (Margin/Padding via SpacingControl, Border & Effects via BorderControl + box-shadow presets + opacity), AnimationControl, and VisibilityControl added for all four owned components, backed by new animation/animationDelay/hideOnDesktop/hideOnTablet/hideOnMobile props (with blank/default values in each component's .craft.props). Tests: NavStylePanel.test.tsx (new, 17 tests: LinkPicker modes, sync preserves CTA, download toggle, box-model/animation/visibility wiring) + extended Navbar/Menu/Logo/Footer .toHtml.test.ts (download attribute, craft.props defaults). Full suite: 683/683 passing. `npm run build` green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>