import React, { useState, useEffect } from 'react' export function NavSpacingAdjuster() { const [rightSpacing, setRightSpacing] = useState(() => { try { const saved = localStorage.getItem('navRightSpacing') return saved ? Number(saved) || 20 : 20 } catch { return 20 } }) const [leftSpacing, setLeftSpacing] = useState(() => { try { const saved = localStorage.getItem('navLeftSpacing') return saved ? Number(saved) || 22 : 22 } catch { return 22 } }) const [containerPaddingLeft, setContainerPaddingLeft] = useState(() => { try { const saved = localStorage.getItem('containerPaddingLeft') return saved ? Number(saved) || 0 : 0 } catch { return 0 } }) const [containerPaddingRight, setContainerPaddingRight] = useState(() => { try { const saved = localStorage.getItem('containerPaddingRight') return saved ? Number(saved) || 0 : 0 } catch { return 0 } }) const [showAdjuster, setShowAdjuster] = useState(false) const [showAlignmentGuides, setShowAlignmentGuides] = useState(false) useEffect(() => { try { // Ensure all values are numbers const safeRightSpacing = Number(rightSpacing) || 0 const safeLeftSpacing = Number(leftSpacing) || 0 const safeContainerPaddingLeft = Number(containerPaddingLeft) || 0 const safeContainerPaddingRight = Number(containerPaddingRight) || 0 localStorage.setItem('navRightSpacing', safeRightSpacing.toString()) localStorage.setItem('navLeftSpacing', safeLeftSpacing.toString()) localStorage.setItem('containerPaddingLeft', safeContainerPaddingLeft.toString()) localStorage.setItem('containerPaddingRight', safeContainerPaddingRight.toString()) // Apply spacing to the navigation const navSection = document.querySelector('.nav-logo-section') const navContainer = document.querySelector('.nav-container') const spaceContainer = document.querySelector('.space-container') if (navSection) { (navSection as HTMLElement).style.marginRight = `${safeRightSpacing * 4}px` } if (navContainer) { (navContainer as HTMLElement).style.paddingLeft = `${safeLeftSpacing}px` } if (spaceContainer) { (spaceContainer as HTMLElement).style.paddingLeft = `${safeContainerPaddingLeft}px` (spaceContainer as HTMLElement).style.paddingRight = `${safeContainerPaddingRight}px` } // Show/hide alignment guides const guides = document.querySelectorAll('.alignment-guide') guides.forEach(guide => { (guide as HTMLElement).style.display = showAlignmentGuides ? 'block' : 'none' }) } catch (error) { console.error('NavSpacingAdjuster error:', error) } }, [rightSpacing, leftSpacing, containerPaddingLeft, containerPaddingRight, showAlignmentGuides]) if (!showAdjuster) { return ( ) } return (

Navigation Position

{/* Left Position Control */}
setLeftSpacing(parseInt(e.target.value))} className="w-full" />
{/* Right Spacing Control */}
setRightSpacing(parseInt(e.target.value))} className="w-full" />
{/* Container Padding Controls */}

📦 Container Padding

{/* Container Left Padding */}
setContainerPaddingLeft(parseInt(e.target.value))} className="w-full" />
{/* Container Right Padding */}
setContainerPaddingRight(parseInt(e.target.value))} className="w-full" />
{/* Visual Alignment Helper */}

💡 Use "Show Guides" to see alignment lines, then "Auto-Align" to match the Search text position.

Or manually adjust sliders for precise control.

{/* Alignment Guides - Hidden by default */} {showAlignmentGuides && ( <>
LOGO EDGE
)}
) }