Merge version_7_1780865727775 into main #6
@@ -1,28 +1,83 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
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 AutoFillText from "@/components/ui/AutoFillText";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import LoopCarousel from "@/components/ui/LoopCarousel";
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
type HeroBillboardBrandProps = {
|
||||
brand: string;
|
||||
description: string;
|
||||
primaryButton: { text: string; href: string };
|
||||
secondaryButton: { text: string; href: string };
|
||||
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
const HeroInline = () => {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardBrand
|
||||
brand="Taste the Freshness: Your Daily Slice of Joy Awaits"
|
||||
description="Freshly Baked Goodness, Made Daily. Artisan breads, pastries, and custom cakes crafted with premium ingredients. Order online or visit us today."
|
||||
primaryButton={{
|
||||
text: "Order Now",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Menu",
|
||||
href: "#products",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273148.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
<section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30">
|
||||
<HeroBackgroundSlot />
|
||||
<div className="flex flex-col gap-10 md:gap-12 w-content-width mx-auto">
|
||||
<div className="flex flex-col items-end gap-5">
|
||||
<AutoFillText className="w-full font-semibold" paddingY="">{"Taste the Freshness: Your Daily Slice of Joy Awaits"}</AutoFillText>
|
||||
|
||||
<TextAnimation
|
||||
text={"Freshly Baked Goodness, Made Daily. Artisan breads, pastries, and custom cakes crafted with premium ingredients. Order online or visit us today."}
|
||||
variant="fade-blur"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="w-full md:w-1/2 text-lg md:text-2xl leading-snug text-balance text-right"
|
||||
/>
|
||||
|
||||
<div className="flex flex-wrap justify-end gap-3 mt-1 md:mt-2">
|
||||
<a
|
||||
href="#contact"
|
||||
className="relative inline-flex items-center justify-center px-8 py-4 font-bold text-primary-cta-text bg-primary-cta rounded-xl shadow-[0_8px_0_0_rgba(0,0,0,0.8)] hover:translate-y-1 hover:shadow-[0_4px_0_0_rgba(0,0,0,0.8)] active:translate-y-2 active:shadow-none transition-all"
|
||||
>
|
||||
Order Now
|
||||
</a>
|
||||
<a
|
||||
href="#products"
|
||||
className="relative inline-flex items-center justify-center px-8 py-4 font-bold text-secondary-cta-text bg-secondary-cta rounded-xl shadow-[0_8px_0_0_rgba(0,0,0,0.2)] hover:translate-y-1 hover:shadow-[0_4px_0_0_rgba(0,0,0,0.2)] active:translate-y-2 active:shadow-none transition-all border border-border"
|
||||
>
|
||||
Our Menu
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ScrollReveal variant="fade" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden">
|
||||
<ImageOrVideo imageSrc={"http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273148.jpg"} className="aspect-4/5 md:aspect-video" />
|
||||
</ScrollReveal>
|
||||
|
||||
<div className="w-full max-w-4xl mx-auto mt-12">
|
||||
<p className="text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-8 text-center">
|
||||
Trusted by companies we work with
|
||||
</p>
|
||||
<div className="w-full overflow-hidden">
|
||||
<LoopCarousel>
|
||||
{[
|
||||
"https://upload.wikimedia.org/wikipedia/commons/a/a9/Amazon_logo.svg",
|
||||
"https://upload.wikimedia.org/wikipedia/commons/2/2f/Google_2015_logo.svg",
|
||||
"https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
|
||||
"https://upload.wikimedia.org/wikipedia/commons/4/44/Microsoft_logo.svg",
|
||||
"https://upload.wikimedia.org/wikipedia/commons/f/fa/Apple_logo_black.svg"
|
||||
].map((logo, i) => (
|
||||
<div key={i} className="flex items-center justify-center w-40 mx-8">
|
||||
<img src={logo} alt="Company Logo" className="h-8 md:h-12 w-auto object-contain opacity-50 grayscale hover:opacity-100 hover:grayscale-0 transition-all" />
|
||||
</div>
|
||||
))}
|
||||
</LoopCarousel>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function HeroSection() {
|
||||
return (
|
||||
<div data-webild-section="hero" id="hero">
|
||||
<HeroInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user