15 Commits

Author SHA1 Message Date
bb3b0af69c Merge version_8 into main
Merge version_8 into main
2026-02-18 09:11:27 +00:00
e802c81a09 Update src/app/shop/page.tsx 2026-02-18 09:11:22 +00:00
a3383233ee Update src/app/shop/[id]/page.tsx 2026-02-18 09:11:21 +00:00
007eb01e9a Update src/app/page.tsx 2026-02-18 09:11:21 +00:00
6d462bda54 Update src/app/layout.tsx 2026-02-18 09:11:20 +00:00
8f48d9dfa2 Update src/app/blog/page.tsx 2026-02-18 09:11:19 +00:00
c4eb350c3c Merge version_8 into main
Merge version_8 into main
2026-02-18 09:08:29 +00:00
72d3c76418 Update src/app/shop/page.tsx 2026-02-18 09:08:24 +00:00
1baedaa120 Update src/app/shop/[id]/page.tsx 2026-02-18 09:08:24 +00:00
a4cda7e2a4 Update src/app/page.tsx 2026-02-18 09:08:23 +00:00
1d35264bec Update src/app/layout.tsx 2026-02-18 09:08:22 +00:00
c054fbaae5 Update src/app/blog/page.tsx 2026-02-18 09:08:21 +00:00
48e3147210 Bob AI: update the hero section with Hero Split KPI 2026-02-17 17:37:30 +00:00
274b3210c7 Bob AI: change hero section to [Block: Hero Billboard] 2026-02-17 17:35:47 +00:00
7de4e9c51d Bob AI: change color theme to red and black 2026-02-17 17:34:37 +00:00
6 changed files with 57 additions and 36 deletions

View File

@@ -28,7 +28,7 @@ export default function BlogPage() {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },

View File

@@ -4,12 +4,11 @@ import "./globals.css";
import "./styles/variables.css"; import "./styles/variables.css";
import "./styles/base.css"; import "./styles/base.css";
const inter = Inter({ const inter = Inter({ subsets: ["latin"] });
variable: "--font-inter", subsets: ["latin"],
});
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Follow Trade", description: "Expert trading recommendations and market signals"}; title: "Follow Trade", description: "Expert-driven trading recommendations and market signals"
};
export default function RootLayout({ export default function RootLayout({
children, children,
@@ -18,7 +17,7 @@ export default function RootLayout({
}) { }) {
return ( return (
<html lang="en"> <html lang="en">
<body className={inter.variable}>{children} <body className={inter.className}>{children}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@@ -1233,6 +1232,31 @@ export default function RootLayout({
window.addEventListener('scroll', handleScroll, true); window.addEventListener('scroll', handleScroll, true);
window.addEventListener('message', handleMessage, true); window.addEventListener('message', handleMessage, true);
let lastPathname = window.location.pathname;
const notifyPageChange = () => {
window.parent.postMessage({
type: 'webild-page-changed',
data: { pathname: window.location.pathname }
}, '*');
};
window.addEventListener('popstate', () => {
if (lastPathname !== window.location.pathname) {
lastPathname = window.location.pathname;
notifyPageChange();
}
}, true);
const urlCheckInterval = setInterval(() => {
if (lastPathname !== window.location.pathname) {
lastPathname = window.location.pathname;
notifyPageChange();
}
}, 500);
notifyPageChange();
window.webildCleanup = () => { window.webildCleanup = () => {
isActive = false; isActive = false;
@@ -1243,6 +1267,10 @@ export default function RootLayout({
removeHoverOverlay(); removeHoverOverlay();
removeElementTypeLabel(); removeElementTypeLabel();
if (urlCheckInterval) {
clearInterval(urlCheckInterval);
}
document.removeEventListener('mouseover', handleMouseOver, true); document.removeEventListener('mouseover', handleMouseOver, true);
document.removeEventListener('mouseout', handleMouseOut, true); document.removeEventListener('mouseout', handleMouseOut, true);
document.removeEventListener('click', handleClick, true); document.removeEventListener('click', handleClick, true);

View File

@@ -2,7 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi'; import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard'; import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard';
import FeatureCardTwelve from '@/components/sections/feature/FeatureCardTwelve'; import FeatureCardTwelve from '@/components/sections/feature/FeatureCardTwelve';
import PricingCardEight from '@/components/sections/pricing/PricingCardEight'; import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
@@ -31,7 +31,7 @@ export default function LandingPage() {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },
@@ -44,16 +44,10 @@ export default function LandingPage() {
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroSplitKpi <HeroBillboard
title="The Future of Supply Chain" title="The Future of Supply Chain"
description="Ship globally within 3 days post-production with smart fulfillment" description="Ship globally within 3 days post-production with smart fulfillment"
background={{ variant: "animated-grid" }} background={{ variant: "animated-grid" }}
kpis={[
{ value: "4-10 Days", label: "Worldwide Delivery" },
{ value: "99.8%", label: "Order Accuracy" },
{ value: "10x", label: "Faster Lead Times" }
]}
enableKpiAnimation={true}
tag="Trusted by 150+ Brands" tag="Trusted by 150+ Brands"
buttons={[ buttons={[
{ text: "Get Started", href: "#pricing" }, { text: "Get Started", href: "#pricing" },
@@ -62,7 +56,6 @@ export default function LandingPage() {
imageSrc="https://img.b2bpic.net/free-photo/close-up-with-businessman-patching-something-keyboard-graphics-monitor_482257-32827.jpg" imageSrc="https://img.b2bpic.net/free-photo/close-up-with-businessman-patching-something-keyboard-graphics-monitor_482257-32827.jpg"
imageAlt="Supply chain and fulfillment" imageAlt="Supply chain and fulfillment"
mediaAnimation="opacity" mediaAnimation="opacity"
imagePosition="right"
buttonAnimation="opacity" buttonAnimation="opacity"
/> />
</div> </div>

View File

@@ -85,7 +85,7 @@ export default function ProductPage({ params }: ProductPageProps) {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },
@@ -156,7 +156,7 @@ export default function ProductPage({ params }: ProductPageProps) {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },
@@ -234,7 +234,7 @@ export default function ProductPage({ params }: ProductPageProps) {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },

View File

@@ -35,7 +35,7 @@ export default function ShopPage() {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },
@@ -105,7 +105,7 @@ export default function ShopPage() {
<NavbarLayoutFloatingOverlay <NavbarLayoutFloatingOverlay
brandName="Follow Trade" brandName="Follow Trade"
navItems={[ navItems={[
{ name: "Home", id: "/" }, { name: "Home", id: "hero" },
{ name: "About", id: "about" }, { name: "About", id: "about" },
{ name: "Features", id: "features" }, { name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" }, { name: "Pricing", id: "pricing" },

View File

@@ -4,19 +4,19 @@
/* --background: #0a0a0a;; /* --background: #0a0a0a;;
--card: #000000;; --card: #000000;;
--foreground: #ffff00;; --foreground: #ff0000;;
--primary-cta: #000000;; --primary-cta: #ff0000;;
--secondary-cta: #ffff00;; --secondary-cta: #000000;;
--accent: #000000;; --accent: #ff0000;;
--background-accent: #ffff00;; */ --background-accent: #000000;; */
--background: #000000;; --background: #000000;;
--card: #000000;; --card: #000000;;
--foreground: #ffff00;; --foreground: #ff0000;;
--primary-cta: #000000;; --primary-cta: #ff0000;;
--secondary-cta: #ffff00;; --secondary-cta: #000000;;
--accent: #000000;; --accent: #ff0000;;
--background-accent: #ffff00;; --background-accent: #000000;;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);