/* store-parts.jsx — SectionHead, Nav (cart + mobile menu), Hero (+ parallax collage & floating labels), TrustBar, Marquee. Exported to window. */ const { Button: PBtn, Tag: PTag } = window.FluvexDesignsDesignSystem_072666; const { Reveal: PReveal, CountUp: PCountUp, useParallax: pUseParallax, useTilt: pUseTilt, StoreIcon: PIcon, Magnetic: PMag } = window; const NAV_LINKS = [["Shop", "#shop"], ["Best Sellers", "#best"], ["Categories", "#categories"], ["Bundles", "#bundles"], ["Reviews", "#reviews"], ["FAQ", "#faq"]]; /* ---- shared section header ---- */ function SectionHead({ tag, title, sub, align = "center" }) { return ( {tag &&
{tag}
}

{title}

{sub &&

{sub}

}
); } /* ---- Nav ---- */ function Nav({ cartCount, onOpenCart }) { const [open, setOpen] = React.useState(false); const [scrolled, setScrolled] = React.useState(false); const [bump, setBump] = React.useState(false); const prev = React.useRef(cartCount); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 8); window.addEventListener("scroll", onScroll); return () => window.removeEventListener("scroll", onScroll); }, []); React.useEffect(() => { if (cartCount !== prev.current) { setBump(true); const t = setTimeout(() => setBump(false), 450); prev.current = cartCount; return () => clearTimeout(t); } }, [cartCount]); return (
F FluvexDesigns
View Products Shop Now →
{NAV_LINKS.map(([l, h]) => setOpen(false)} className="fx-navlink" style={{ fontSize: 16, padding: "11px 0", borderBottom: "1px solid var(--hairline)" }}>{l})} setOpen(false)} style={{ textDecoration: "none", marginTop: 14 }}>Shop Now →
); } /* ---- Hero ---- */ function FloatLabel({ text, style }) { return (
{text}
); } function HeroCollage() { const p1 = pUseParallax(22), p2 = pUseParallax(34), p3 = pUseParallax(16), p4 = pUseParallax(40), pl = pUseParallax(46); const Card = ({ pRef, pos, tilt, dur, delay, mock }) => { const Mock = window.MOCKS[mock]; return (
); }; return (
); } function Hero({ cartCount, onOpenCart }) { const avatars = ["#c9b6f5,#533afd", "#f7b986,#ea2261", "#b9b9f9,#665efd", "#9ad1c9,#533afd", "#f96bee,#533afd"]; return (
); } /* ---- Trust bar ---- */ function TrustBar() { return (
{window.TRUST.map((t, i) => (
{t.title}
{t.text}
))}
); } /* ---- Marquee ---- */ function Marquee() { const items = window.MARQUEE; const row = [...items, ...items]; return (
{row.map((t, i) => ( {t} ))}
); } Object.assign(window, { SectionHead, Nav, Hero, TrustBar, Marquee }); /* cache-bust r2 */