// Config Page — visual design settings for site owners const CONFIG_ACCENT_PRESETS = [ { label: 'Gold', hex: '#C8A86B' }, { label: 'Amber', hex: '#D4A020' }, { label: 'Brass', hex: '#B8942A' }, { label: 'Rose Gold', hex: '#C0826A' }, { label: 'Sage', hex: '#7A9B76' }, { label: 'Sky', hex: '#5B8CB7' }, { label: 'Plum', hex: '#8B5E8C' }, { label: 'Silver', hex: '#9B9EA6' }, { label: 'Crimson', hex: '#B04A5A' }, { label: 'Teal', hex: '#4A9B8C' }, ]; const CONFIG_THEMES = [ { value: 'midnight', label: 'Midnight', sub: 'Deepest black', base: '#0A0A0B', elev: '#141416', fg: '#FAF8F4' }, { value: 'obsidian', label: 'Obsidian', sub: 'Warm near-black', base: '#13130F', elev: '#1C1B16', fg: '#F5EFE1' }, { value: 'graphite', label: 'Graphite', sub: 'Soft dark grey', base: '#1A1A1D', elev: '#23232A', fg: '#F5F2EB' }, { value: 'pewter', label: 'Pewter', sub: 'Lifted dark', base: '#262428', elev: '#312E33', fg: '#F7F2E8' }, { value: 'champagne', label: 'Champagne', sub: 'Warm bronze', base: '#1F1A14', elev: '#2A241B', fg: '#F5E4C1' }, { value: 'porcelain', label: 'Porcelain', sub: 'Light cream', base: '#F4EFE4', elev: '#EAE3D2', fg: '#1C1812' }, ]; const CONFIG_DISPLAY_FONTS = [ { value: 'Italiana', sample: 'Building Ludhiana.' }, { value: 'Bodoni Moda', sample: 'Building Ludhiana.' }, { value: 'Playfair Display', sample: 'Building Ludhiana.' }, { value: 'Cormorant Garamond', sample: 'Building Ludhiana.' }, { value: 'Cinzel', sample: 'BUILDING LUDHIANA' }, { value: 'Marcellus', sample: 'Building Ludhiana.' }, { value: 'Libre Caslon Text', sample: 'Building Ludhiana.' }, { value: 'Instrument Serif', sample: 'Building Ludhiana.' }, ]; const CONFIG_BODY_FONTS = [ { value: 'Jost', sample: 'Premium real estate for investors and families in Punjab.' }, { value: 'Outfit', sample: 'Premium real estate for investors and families in Punjab.' }, { value: 'Manrope', sample: 'Premium real estate for investors and families in Punjab.' }, { value: 'Tenor Sans', sample: 'Premium real estate for investors and families in Punjab.' }, { value: 'Cormorant', sample: 'Premium real estate for investors and families in Punjab.' }, { value: 'Geist', sample: 'Premium real estate for investors and families in Punjab.' }, ]; function CfgSection({ title, icon, children }) { const Ic = (Icon && Icon[icon]) || null; return (
{Ic && (
)}

{title}

{children}
); } function ConfigPage({ t, setTweak, onReset }) { const [copied, setCopied] = React.useState(false); const copyConfig = () => { try { const text = JSON.stringify(t, null, 2); if (navigator.clipboard) { navigator.clipboard.writeText(text).catch(() => {}); } setCopied(true); setTimeout(() => setCopied(false), 2000); } catch(e) {} }; const trackingLabel = t.displayTracking > 0 ? `+${t.displayTracking}` : `${t.displayTracking}`; return (
{/* ── Header ── */}
Site Settings · Changes save automatically

Design Configuration.

All changes apply instantly across the site and are saved to your browser. Reload the page — they persist.

{/* ── Left column ── */}
{/* Background Theme */}
{CONFIG_THEMES.map(th => ( ))}
{/* Accent Color */} {/* Presets */}
{CONFIG_ACCENT_PRESETS.map(p => (
{/* Custom picker */}
{t.accent.toUpperCase()}
{/* Display Font */}
{CONFIG_DISPLAY_FONTS.map(f => ( ))}
{/* Body Font */}
{CONFIG_BODY_FONTS.map(f => ( ))}
{/* ── Right column ── */}
{/* Typography fine-tuning */}
{/* Letter spacing */}
Letter Spacing {trackingLabel}
setTweak('displayTracking', Number(e.target.value))} className="w-full" style={{ accentColor: t.accent }} />
TightNormalWide
{/* Font weight */}
Heading Weight {t.displayWeight}
{[300, 400, 500, 600, 700].map(w => ( ))}
{/* Live Preview */}
Live Preview
Building Ludhiana.

Premium real estate across commercial and residential formats — designed for the long view.

Explore Projects
Learn More
{/* Current config readout */}
Current Config
{[ ['Theme', t.theme], ['Accent', t.accent.toUpperCase()], ['Display Font', t.displayFont], ['Body Font', t.bodyFont], ['Tracking', trackingLabel], ['Weight', String(t.displayWeight)], ].map(([k, v]) => (
{k} {v}
))}
{/* Actions */}
); } window.ConfigPage = ConfigPage;