Merge version_1 into main #2

Merged
bender merged 5 commits from version_1 into main 2026-02-19 15:39:58 +00:00
5 changed files with 147 additions and 143 deletions

View File

@@ -45,15 +45,15 @@ export default function BlogPage() {
<div id="blog" data-section="blog">
<BlogCardThree
blogs={posts}
title="Roofing Insights & Updates"
description="Expert advice, industry updates, and maintenance tips from Hi Tech Roofing professionals"
tag="Blog"
title="Latest Roofing Insights"
description="Stay informed with expert advice and industry updates from Hi Tech Roofing"
textboxLayout="default"
useInvertedBackground={false}
carouselMode="buttons"
animationType="slide-up"
tagAnimation="opacity"
buttonAnimation="opacity"
carouselMode="buttons"
tag="Blog"
tagAnimation="slide-up"
uniformGridCustomHeightClasses="min-h-[600px]"
/>
</div>
)}
@@ -61,12 +61,8 @@ export default function BlogPage() {
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{
label: "Privacy Policy", href: "#"
}}
rightLink={{
label: "Terms of Service", href: "#"
}}
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ReactLenis>

View File

@@ -10,12 +10,14 @@ const karla = Karla({
export const metadata: Metadata = {
title: "Hi Tech Roofing Services Co. | Premium Roofing, Fair Pricing", description: "Fast, honest roofing solutions for homes, commercial properties & HOAs. Leak repairs, replacements, tile & flat roofing. Same-day callbacks. Fair pricing.", keywords: "roofing company, roof repair, roof replacement, tile roofing, flat roofing, commercial roofing, HOA roofing, leak detection", openGraph: {
title: "Hi Tech Roofing Services Co.", description: "Premium roofing solutions with fast turnarounds and honest pricing.", siteName: "Hi Tech Roofing Services Co.", type: "website", images: [{
url: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/a-stunning-golden-hour-photograph-of-a-l-1771515367817-2f97ca75.png", alt: "Premium residential roof installation"
}]
title: "Hi Tech Roofing Services Co.", description: "Premium roofing solutions with fast turnarounds and honest pricing.", siteName: "Hi Tech Roofing Services Co.", type: "website", images: [
{
url: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/a-stunning-golden-hour-photograph-of-a-l-1771515002192-9e4a5fe8.png", alt: "Premium residential roof installation"
}
]
},
twitter: {
card: "summary_large_image", title: "Hi Tech Roofing Services Co.", description: "Premium roofing solutions with fast turnarounds and honest pricing.", images: ["https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/a-stunning-golden-hour-photograph-of-a-l-1771515367817-2f97ca75.png"]
card: "summary_large_image", title: "Hi Tech Roofing Services Co.", description: "Premium roofing solutions with fast turnarounds and honest pricing.", images: ["https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/a-stunning-golden-hour-photograph-of-a-l-1771515002192-9e4a5fe8.png"]
}
};

View File

@@ -1,4 +1,4 @@
"use client"
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
@@ -11,7 +11,7 @@ import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import { Award, CheckCircle, Shield, Zap } from "lucide-react";
export default function RoofingPage() {
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
@@ -33,7 +33,9 @@ export default function RoofingPage() {
{ name: "Why Hi Tech", id: "why-hitech" },
{ name: "Reviews", id: "testimonials" }
]}
button={{ text: "Get a Quote", href: "contact" }}
button={{
text: "Get a Quote", href: "contact"
}}
/>
</div>
@@ -45,7 +47,7 @@ export default function RoofingPage() {
{ text: "Get a Free Estimate", href: "contact" },
{ text: "Call Now", href: "tel:+1-800-ROOFING" }
]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/a-stunning-golden-hour-photograph-of-a-l-1771515367817-2f97ca75.png"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/a-stunning-golden-hour-photograph-of-a-l-1771515002192-9e4a5fe8.png"
imageAlt="Luxury residential roof with premium tile work in golden hour lighting"
showDimOverlay={true}
/>
@@ -111,7 +113,7 @@ export default function RoofingPage() {
title: "Trusted Long-Term Partner", description: "Relied upon by property managers, HOAs, and contractors for consistent, reliable service.", icon: Shield
}
]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/professional-team-photograph-showing-a-d-1771515407671-de4afa1f.png"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/professional-team-photograph-showing-a-d-1771515042421-967c77e6.png"
imageAlt="Hi Tech Roofing professional team in branded uniforms"
mediaAnimation="slide-up"
imagePosition="right"
@@ -128,16 +130,16 @@ export default function RoofingPage() {
animationType="slide-up"
testimonials={[
{
id: "1", name: "Sarah Johnson", role: "Homeowner", testimonial: "Punctual, fast, great team, honest owner—all that work done in one day. Exactly what they promised.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-satisfied-middl-1771515419535-d62f1084.png", imageAlt: "Sarah Johnson portrait"
id: "1", name: "Sarah Johnson", role: "Homeowner", testimonial: "Punctual, fast, great team, honest owner—all that work done in one day. Exactly what they promised.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-satisfied-middl-1771515054639-dc60fdd7.png", imageAlt: "Sarah Johnson portrait"
},
{
id: "2", name: "Michael Chen", role: "Property Manager", testimonial: "Professional and efficiently takes care of our problems immediately. Honest and fair in pricing. We call them first.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-professional-pr-1771515425745-d8102a4a.png", imageAlt: "Michael Chen portrait"
id: "2", name: "Michael Chen", role: "Property Manager", testimonial: "Professional and efficiently takes care of our problems immediately. Honest and fair in pricing. We call them first.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-professional-pr-1771515060766-2f419412.png", imageAlt: "Michael Chen portrait"
},
{
id: "3", name: "David Rodriguez", role: "Contractor", testimonial: "I manage a strip mall. If there's a roof issue, I just call Jonathan. He responds quickly, does it correctly, at a reasonable price.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-satisfied-contr-1771515431387-0ef936c6.png", imageAlt: "David Rodriguez portrait"
id: "3", name: "David Rodriguez", role: "Contractor", testimonial: "I manage a strip mall. If there's a roof issue, I just call Jonathan. He responds quickly, does it correctly, at a reasonable price.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-satisfied-contr-1771515067528-c72421f7.png", imageAlt: "David Rodriguez portrait"
},
{
id: "4", name: "Jessica Martinez", role: "HOA Board Member", testimonial: "Responsive, professional, and fair. They understand the unique needs of managing multiple properties. Highly recommended.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-commercial-prop-1771515437499-00e406ff.png", imageAlt: "Jessica Martinez portrait"
id: "4", name: "Jessica Martinez", role: "HOA Board Member", testimonial: "Responsive, professional, and fair. They understand the unique needs of managing multiple properties. Highly recommended.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/portrait-photograph-of-a-commercial-prop-1771515073661-ec86f9c3.png", imageAlt: "Jessica Martinez portrait"
}
]}
carouselMode="buttons"
@@ -159,7 +161,7 @@ export default function RoofingPage() {
required: true
}}
useInvertedBackground={false}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/photograph-of-a-beautiful-residential-ho-1771515444586-7c4e9491.png"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_39pJKepCsOyl3oUi8wZV0jRLiBo/photograph-of-a-beautiful-residential-ho-1771515081101-db0af504.png"
imageAlt="Completed premium roof installation"
mediaAnimation="slide-up"
mediaPosition="right"
@@ -170,8 +172,12 @@ export default function RoofingPage() {
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
leftLink={{
text: "Privacy Policy", href: "#"
}}
rightLink={{
text: "Terms of Service", href: "#"
}}
/>
</div>
</ThemeProvider>

View File

@@ -82,27 +82,27 @@ export default function ProductPage({ params }: ProductPageProps) {
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{"name":"Home","id":"/"},
{"name":"Services","id":"services"},
{"name":"Why Hi Tech","id":"why-hitech"},
{"name":"Reviews","id":"testimonials"},
{"name":"Shop","id":"/shop"}
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "services" },
{ name: "Why Hi Tech", id: "why-hitech" },
{ name: "Reviews", id: "testimonials" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<main className="min-h-screen flex items-center justify-center pt-20">
<p className="text-foreground">Loading product...</p>
</main>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{"label":"Privacy Policy","href":"#"}}
rightLink={{"label":"Terms of Service","href":"#"}}
/>
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ReactLenis>
</ThemeProvider>
@@ -128,11 +128,11 @@ export default function ProductPage({ params }: ProductPageProps) {
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{"name":"Home","id":"/"},
{"name":"Services","id":"services"},
{"name":"Why Hi Tech","id":"why-hitech"},
{"name":"Reviews","id":"testimonials"},
{"name":"Shop","id":"/shop"}
{ name: "Home", id: "/" },
{ name: "Services", id: "services" },
{ name: "Why Hi Tech", id: "why-hitech" },
{ name: "Reviews", id: "testimonials" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
@@ -149,11 +149,11 @@ export default function ProductPage({ params }: ProductPageProps) {
</div>
</main>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{"label":"Privacy Policy","href":"#"}}
rightLink={{"label":"Terms of Service","href":"#"}}
/>
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ReactLenis>
</ThemeProvider>
@@ -175,60 +175,60 @@ export default function ProductPage({ params }: ProductPageProps) {
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{"name":"Home","id":"/"},
{"name":"Services","id":"services"},
{"name":"Why Hi Tech","id":"why-hitech"},
{"name":"Reviews","id":"testimonials"},
{"name":"Shop","id":"/shop"}
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "services" },
{ name: "Why Hi Tech", id: "why-hitech" },
{ name: "Reviews", id: "testimonials" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
/>
</div>
<div id="productDetailCard" data-section="productDetailCard">
<ProductDetailCard
layout="page"
name={product.name}
price={product.price}
salePrice={meta.salePrice}
rating={product.rating || 0}
description={product.description}
images={images}
variants={variants.length > 0 ? variants : undefined}
quantity={quantityVariant}
ribbon={meta.ribbon}
inventoryStatus={meta.inventoryStatus}
inventoryQuantity={meta.inventoryQuantity}
sku={meta.sku}
buttons={[
{ text: "Add To Cart", onClick: handleAddToCart },
{ text: "Buy Now", onClick: handleBuyNow },
]}
/>
<ProductDetailCard
layout="page"
name={product.name}
price={product.price}
salePrice={meta.salePrice}
rating={product.rating || 0}
description={product.description}
images={images}
variants={variants.length > 0 ? variants : undefined}
quantity={quantityVariant}
ribbon={meta.ribbon}
inventoryStatus={meta.inventoryStatus}
inventoryQuantity={meta.inventoryQuantity}
sku={meta.sku}
buttons={[
{ text: "Add To Cart", onClick: handleAddToCart },
{ text: "Buy Now", onClick: handleBuyNow },
]}
/>
</div>
<div id="productCart" data-section="productCart">
<ProductCart
isOpen={cartOpen}
onClose={() => setCartOpen(false)}
items={cartItems}
onQuantityChange={updateQuantity}
onRemove={removeItem}
total={`$${cartTotal}`}
buttons={[
{
text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout,
},
]}
/>
<ProductCart
isOpen={cartOpen}
onClose={() => setCartOpen(false)}
items={cartItems}
onQuantityChange={updateQuantity}
onRemove={removeItem}
total={`$${cartTotal}`}
buttons={[
{
text: isCheckoutLoading ? "Processing..." : "Check Out", onClick: handleCheckout,
},
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{"label":"Privacy Policy","href":"#"}}
rightLink={{"label":"Terms of Service","href":"#"}}
/>
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ReactLenis>
</ThemeProvider>

View File

@@ -32,27 +32,27 @@ export default function ShopPage() {
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{"name":"Home","id":"/"},
{"name":"Services","id":"services"},
{"name":"Why Hi Tech","id":"why-hitech"},
{"name":"Reviews","id":"testimonials"},
{"name":"Shop","id":"/shop"}
]}
button={{ text: "Cart", onClick: () => console.log("cart") }}
/>
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "services" },
{ name: "Why Hi Tech", id: "why-hitech" },
{ name: "Reviews", id: "testimonials" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => console.log("cart") }}
/>
</div>
<main className="min-h-screen flex items-center justify-center pt-20">
<p className="text-foreground">Loading products...</p>
</main>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{"label":"Privacy Policy","href":"#"}}
rightLink={{"label":"Terms of Service","href":"#"}}
/>
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ReactLenis>
</ThemeProvider>
@@ -74,35 +74,35 @@ export default function ShopPage() {
>
<ReactLenis root>
<div id="navbar" data-section="navbar">
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{"name":"Home","id":"/"},
{"name":"Services","id":"services"},
{"name":"Why Hi Tech","id":"why-hitech"},
{"name":"Reviews","id":"testimonials"},
{"name":"Shop","id":"/shop"}
]}
button={{ text: "Cart", onClick: () => console.log("cart") }}
/>
<NavbarLayoutFloatingInline
brandName="Hi Tech Roofing"
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "services" },
{ name: "Why Hi Tech", id: "why-hitech" },
{ name: "Reviews", id: "testimonials" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => console.log("cart") }}
/>
</div>
<div id="productCatalog" data-section="productCatalog">
<ProductCatalog
layout="page"
products={products}
searchValue={search}
onSearchChange={setSearch}
searchPlaceholder="Search products..."
filters={filters}
emptyMessage="No products found"
/>
<ProductCatalog
layout="page"
products={products}
searchValue={search}
onSearchChange={setSearch}
searchPlaceholder="Search products..."
filters={filters}
emptyMessage="No products found"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{"label":"Privacy Policy","href":"#"}}
rightLink={{"label":"Terms of Service","href":"#"}}
/>
<FooterLogoReveal
logoText="Hi Tech Roofing Services Co."
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
/>
</div>
</ReactLenis>
</ThemeProvider>