Merge version_31_1783008052342 into main #36

Merged
bender merged 1 commits from version_31_1783008052342 into main 2026-07-02 16:02:26 +00:00
3 changed files with 39 additions and 22 deletions

View File

@@ -1,27 +1,18 @@
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import ScrollReveal from "@/components/ui/ScrollReveal";
import { Star, Loader2 } from "lucide-react";
import { cls } from "@/lib/utils";
import GridOrCarousel from "@/components/ui/GridOrCarousel";
import useProducts from "@/hooks/useProducts";
import FaqSimple from "@/components/sections/faq/FaqSimple";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in the sibling sections/ folder (one file per section).
// Edit those section files directly. Non-block content (wrappers,
// non-inlinable sections) is preserved inline; extracted section blocks
// become component refs.
export default function FishingReelsPage() {
import React from 'react';
import HeroSplitSection from './FishingReelsPage/sections/HeroSplit';
import ProductRatingCardsSection from './FishingReelsPage/sections/ProductRatingCards';
export default function FishingReelsPage(): React.JSX.Element {
return (
<>
<div data-webild-section="HeroSplit"><section aria-label="Hero section" className="relative flex items-center h-fit md:h-svh pt-25 pb-20 md:py-0"><HeroBackgroundSlot /><div className="flex flex-col md:flex-row items-center gap-12 md:gap-20 w-content-width mx-auto"><div className="w-full md:w-1/2"><div className="flex flex-col items-center md:items-start gap-3"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Premium Fishing Reels</p></div><TextAnimation text="Engineered for the Toughest Catch" variant="slide-up" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance" /><TextAnimation text="Discover our rugged, high-performance fishing reels designed for marine professionals and serious anglers. Built to withstand saltwater and deliver unmatched reliability." variant="slide-up" gradientText={false} tag="p" className="md:max-w-8/10 text-lg md:text-xl leading-snug text-center md:text-left text-balance" /><div className="flex flex-wrap max-md:justify-center gap-3 mt-2 md:mt-3"><Button text="Shop Reels" href="#products" variant="primary" /><Button text="View Specs" href="#specifications" variant="secondary" animationDelay={0.1} /></div></div></div><ScrollReveal variant="fade-blur" delay={0.2} className="w-full md:w-1/2 h-100 md:h-[65vh] md:max-h-[75svh] p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/close-up-fishing-rod-with-reel_23-2148813250.jpg" /></ScrollReveal></div></section></div>
<div data-webild-section="ProductRatingCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
<div data-webild-section="FaqSimple"><FaqSimple
tag="Expert Advice"
title="Reel Questions Answered"
description="Everything you need to know about choosing, using, and maintaining your Matos Marine fishing reels."
primaryButton={{"text":"Contact Support","href":"/contact"}}
secondaryButton={{"text":"Maintenance Guide","href":"/guides/maintenance"}}
items={[{"question":"How do I choose between spinning and baitcasting reels?","answer":"Spinning reels are versatile and beginner-friendly. Baitcasting reels offer greater accuracy and control for heavier lures and experienced anglers."},{"question":"Are Matos Marine reels saltwater safe?","answer":"Yes, our coastal series feature sealed drag systems and corrosion-resistant bearings designed specifically for harsh saltwater environments."},{"question":"How often should I clean my fishing reel?","answer":"We recommend a light freshwater rinse after every saltwater use, and a deep clean with proper lubrication at least once a season."},{"question":"What is the warranty on your fishing reels?","answer":"All Matos Marine reels come with a standard manufacturer's warranty covering defects in materials and workmanship under normal use."},{"question":"Can I upgrade the drag system on my reel?","answer":"Absolutely. Many of our models are compatible with carbon fiber drag washer upgrades for increased stopping power against heavy game fish."}]}
/></div>
<>
<HeroSplitSection />
<ProductRatingCardsSection />
</>
);
}

View File

@@ -0,0 +1,15 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "HeroSplit" section.
import React from 'react';
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import ScrollReveal from "@/components/ui/ScrollReveal";
export default function HeroSplitSection(): React.JSX.Element {
return (
<div data-webild-section="HeroSplit"><section aria-label="Hero section" className="relative flex items-center h-fit md:h-svh pt-25 pb-20 md:py-0"><HeroBackgroundSlot /><div className="flex flex-col md:flex-row items-center gap-12 md:gap-20 w-content-width mx-auto"><div className="w-full md:w-1/2"><div className="flex flex-col items-center md:items-start gap-3"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Premium Fishing Reels</p></div><TextAnimation text="Engineered for the Toughest Catch" variant="slide-up" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance" /><TextAnimation text="Discover our rugged, high-performance fishing reels designed for marine professionals and serious anglers. Built to withstand saltwater and deliver unmatched reliability." variant="slide-up" gradientText={false} tag="p" className="md:max-w-8/10 text-lg md:text-xl leading-snug text-center md:text-left text-balance" /><div className="flex flex-wrap max-md:justify-center gap-3 mt-2 md:mt-3"><Button text="Shop Reels" href="#products" variant="primary" /><Button text="View Specs" href="#specifications" variant="secondary" animationDelay={0.1} /></div></div></div><ScrollReveal variant="fade-blur" delay={0.2} className="w-full md:w-1/2 h-100 md:h-[65vh] md:max-h-[75svh] p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/close-up-fishing-rod-with-reel_23-2148813250.jpg" /></ScrollReveal></div></section></div>
);
}

View File

@@ -0,0 +1,11 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "ProductRatingCards" section.
import React from 'react';
import { Star, Loader2 } from "lucide-react";
export default function ProductRatingCardsSection(): React.JSX.Element {
return (
<div data-webild-section="ProductRatingCards"><section aria-label="Products section" className="py-20"><div className="w-content-width mx-auto flex justify-center"><Loader2 className="size-8 animate-spin text-foreground" strokeWidth={1.5} /></div></section></div>
);
}