feat(web): marketing theme toggle, site search palette, and phone dev access

- Theme toggle in the nav: follows the device until chosen, remembers the choice, sets data-theme before first paint (no flash).
- Site search: Cmd/Ctrl+K command palette on every marketing page, opened by the shortcut, a nav Search button, or the Docs search field. Searches pages, docs topics and articles that have a page.
- Docs topics move to content.ts so the page and the search index share one source.
- next.config: allowedDevOrigins for private network ranges so a phone on the same Wi-Fi hydrates the dev site. Dev only.
- Sun and moon icons added by hand (not Figma exports); noted in the icons README.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
SinachPat
2026-10-13 22:27:34 +01:00
co-authored by Claude Sonnet 5.5
parent 0cff3902b2
commit f69ce33dd0
21 changed files with 818 additions and 17 deletions
+5 -11
View File
@@ -1,10 +1,11 @@
import type { Metadata } from 'next';
import { SearchField } from '../../../src/product/SearchField.tsx';
import { ClosingCta } from '../../../src/marketing/home/ClosingCta.tsx';
import { FeatureGrid } from '../../../src/marketing/pages/FeatureGrid.tsx';
import { PageHero } from '../../../src/marketing/pages/PageHero.tsx';
import { PopularArticles } from '../../../src/marketing/pages/PopularArticles.tsx';
import { DocsSearch } from '../../../src/marketing/pages/DocsSearch.tsx';
import { Shell } from '../../../src/marketing/Shell.tsx';
import { DOCS_TOPICS } from '../../../src/marketing/content.ts';
export const metadata: Metadata = { title: 'Docs' };
@@ -17,20 +18,13 @@ export default function DocsPage() {
subtitle="Guides for starting or connecting a site, moving between hosts, asking for changes and staying in control."
>
<div className="m-docs-search">
{/* Search is shown as in the design but not usable until the docs exist. */}
<SearchField label="Search the docs" shortcut="⌘K" disabled />
{/* Opens the site search; it covers pages and topics until the articles are written. */}
<DocsSearch />
</div>
</PageHero>
<FeatureGrid
title="Browse by topic"
cards={[
{ icon: 'rocket', title: 'Getting started', body: 'Start or connect your site and make your first change.' },
{ icon: 'plug', title: 'Start or connect a site', body: 'Start on Wursor Cloud, link WordPress, move between hosts and manage access.' },
{ icon: 'sparkles', title: 'Asking for changes', body: 'Write a request, point at the page and follow the work.' },
{ icon: 'shield-check', title: 'Review and approve', body: 'Compare before and after, read the checks and publish.' },
{ icon: 'credit-card', title: 'Team and billing', body: 'Invite people, set roles and manage your plan.' },
{ icon: 'help', title: 'Troubleshooting', body: 'Fixes for the most common connection and preview problems.' },
]}
cards={DOCS_TOPICS}
/>
<PopularArticles />
<ClosingCta />