@@ -161,10 +174,15 @@ export const TopBar: React.FC = ({ device, onDeviceChange }) => {
setTemplateModalOpen(true)}>
Templates
- setHeadCodeModalOpen(true)}>
- Code
+ setHeadCodeModalOpen(true)}
+ >
+
- {
+ {
try {
const serialized = query.serialize();
import('../../utils/html-export').then(({ exportToHtml, exportBodyHtml }) => {
@@ -218,7 +236,7 @@ export const TopBar: React.FC = ({ device, onDeviceChange }) => {
console.error('Preview failed:', e);
}
}}>
- Preview
+
{/* Draft/Published status badge */}
diff --git a/craft/src/state/PageContext.tsx b/craft/src/state/PageContext.tsx
index 946b890..b18e3bd 100644
--- a/craft/src/state/PageContext.tsx
+++ b/craft/src/state/PageContext.tsx
@@ -119,6 +119,13 @@ export function treeToCraftState(tree: SerializedTreeNode): string {
// Container), so there was no menu to edit and the empty zone rendered as a
// stray band above the page. Seeding a real Navbar gives every new site an
// editable menu-with-links out of the box (and removes the empty-header gap).
+//
+// Item 15: the nav used to link Home/About/Services/Contact, but a brand
+// new site only has a "Home" page -- About/Services/Contact were dead links
+// on first click. Rather than seeding three empty placeholder pages nobody
+// asked for, the simpler default is a nav with just the one real page (Home)
+// plus a CTA button, which is inert (`href: '#'`) rather than pointing at a
+// page that doesn't exist. Users add pages/links as their site grows.
// Node shape matches treeToCraftState() / Craft's actions.deserialize().
export const DEFAULT_HEADER_STATE = JSON.stringify({
ROOT: {
@@ -144,9 +151,7 @@ export const DEFAULT_HEADER_STATE = JSON.stringify({
logoFontSize: '20px',
links: [
{ text: 'Home', href: '/' },
- { text: 'About', href: '#about' },
- { text: 'Services', href: '#services' },
- { text: 'Contact', href: '#contact', isCta: true },
+ { text: 'Get Started', href: '#', isCta: true },
],
backgroundColor: '#ffffff',
textColor: '#3f3f46',
diff --git a/craft/src/state/default-header.test.ts b/craft/src/state/default-header.test.ts
index bd325b8..f28bcaf 100644
--- a/craft/src/state/default-header.test.ts
+++ b/craft/src/state/default-header.test.ts
@@ -23,8 +23,14 @@ describe('DEFAULT_HEADER_STATE seed', () => {
const { html } = exportBodyHtml(DEFAULT_HEADER_STATE);
expect(html).toContain('