Merge version_2 into main

Merge version_2 into main
This commit was merged in pull request #1.
This commit is contained in:
2026-03-26 12:46:06 +00:00
5 changed files with 295 additions and 18 deletions

View File

@@ -3,6 +3,10 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import Link from "next/link";
import TextAbout from '@/components/sections/about/TextAbout';
import TeamCardFive from '@/components/sections/team/TeamCardFive';
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import { Rocket } from 'lucide-react';
interface FooterProps {
brandName?: string;
@@ -35,6 +39,7 @@ export default function AboutPage() {
const navItems = [
{name: "Home", id: "home", href: "/"},
{name: "About us", id: "about", href: "/about"},
{name: "Services", id: "services", href: "/services"},
{name: "Products", id: "products", href: "/products"},
{name: "Achievements", id: "achievements", href: "/portfolio"},
{name: "News", id: "news", href: "/portfolio"},
@@ -62,14 +67,44 @@ export default function AboutPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay {...navbarProps} />
</div>
{/*
Due to an empty sectionRegistry, no sections can be rendered on this page.
This site will only display the Navbar and Footer.
*/}
<main className="min-h-[calc(10vh)] flex items-center justify-center">
<h1 className="text-3xl md:text-5xl font-bold text-center">About Nexsoft Australia</h1>
</main>
<div id="about-content" data-section="about-content">
<TextAbout
tag="Who We Are"
tagIcon={Rocket}
title="Driving Innovation with Passion and Expertise"
buttons={[
{ text: "Our Services", href: "/services" }
]}
useInvertedBackground={false}
/>
</div>
<div id="team" data-section="team">
<TeamCardFive
title="Meet Our Expert Team"
description="Dedicated professionals passionate about your success."
team={[
{ id: '1', name: 'John Doe', role: 'CEO & Founder', imageSrc: 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png', imageAlt: 'John Doe' },
{ id: '2', name: 'Jane Smith', role: 'Lead Developer', imageSrc: 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png', imageAlt: 'Jane Smith' },
{ id: '3', name: 'Emily White', role: 'Head of Marketing', imageSrc: 'https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png', imageAlt: 'Emily White' }
]}
animationType={'slide-up'}
useInvertedBackground={true}
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardSeven
title="Our Impact in Numbers"
description="Quantifying our commitment to excellence and client success."
metrics={[
{ id: '1', value: '10+', title: 'Years of Experience', items: ['Industry leading solutions', 'Proven track record'] },
{ id: '2', value: '100%', title: 'Client Satisfaction', items: ['Dedicated support', 'Tailored approach'] },
{ id: '3', value: '250+', title: 'Successful Projects', items: ['On-time delivery', 'Exceeding expectations'] }
]}
animationType={'blur-reveal'}
useInvertedBackground={false}
/>
</div>
<Footer brandName="Nexsoft Australia" navItems={navItems} />
</ThemeProvider>
);
}
}

88
src/app/contact/page.tsx Normal file
View File

@@ -0,0 +1,88 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import Link from "next/link";
interface FooterProps {
brandName?: string;
navItems: Array<{ name: string; href: string; }>;
}
const Footer: React.FC<FooterProps> = ({ brandName = "Nexsoft Australia", navItems }) => {
return (
<footer className="w-full py-8 bg-card text-foreground border-t border-accent mt-16">
<div className="mx-auto px-4 md:px-6 max-w-7xl flex flex-col md:flex-row justify-between items-center gap-4">
<div className="text-lg font-bold">
{brandName}
</div>
<nav className="flex flex-wrap justify-center gap-6">
{navItems.map((item) => (
<Link key={item.href} href={item.href} className="text-foreground hover:text-primary-cta">
{item.name}
</Link>
))}
</nav>
<div className="text-sm text-foreground/80">
© {new Date().getFullYear()} {brandName}. All rights reserved.
</div>
</div>
</footer>
);
};
export default function ContactPage() {
const navItems = [
{name: "Home", id: "home", href: "/"},
{name: "Contact us", id: "contact", href: "/contact"}
];
const navbarProps = {
brandName: "Nexsoft Australia", navItems: navItems,
button: {text: "Get a Quote", href: "/contact"}
};
const handleFormSubmit = (data: Record<string, string>) => {
console.log("Form submitted:", data);
alert("Thank you for your message! We will get back to you soon.");
};
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="medium"
sizing="largeSmall"
background="blurBottom"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="radial-glow"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay {...navbarProps} />
</div>
<div id="contact-form" data-section="contact-form">
<ContactSplitForm
title="Get in Touch"
description="We'd love to hear from you! Fill out the form below or find us on the map."
inputs={[
{ name: "name", type: "text", placeholder: "Your Name", required: true },
{ name: "email", type: "email", placeholder: "Your Email", required: true }
]}
textarea={{ name: "message", placeholder: "Your Message", rows: 5, required: true }}
buttonText="Send Message"
imageSrc="https://picsum.photos/id/1083/800/600?grayscale&blur=2"
imageAlt="Office location map"
mediaPosition="right"
useInvertedBackground={false}
onSubmit={handleFormSubmit}
className="pt-24 md:pt-32 pb-16"
/>
</div>
<Footer brandName="Nexsoft Australia" navItems={navItems} />
</ThemeProvider>
);
}

View File

@@ -34,10 +34,6 @@ const Footer: React.FC<FooterProps> = ({ brandName = "Nexsoft Australia", navIte
export default function HomePage() {
const navItems = [
{name: "Home", id: "home", href: "/"},
{name: "About us", id: "about", href: "/about"},
{name: "Products", id: "products", href: "/products"},
{name: "Achievements", id: "achievements", href: "/portfolio"},
{name: "News", id: "news", href: "/portfolio"},
{name: "Contact us", id: "contact", href: "/contact"}
];

View File

@@ -3,6 +3,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import Link from "next/link";
import ProductCardThree from '@/components/sections/product/ProductCardThree'; // For portfolio display
interface FooterProps {
brandName?: string;
@@ -46,6 +47,16 @@ export default function PortfolioPage() {
button: {text: "Get a Quote", href: "/contact"}
};
const productCardThreeProps = {
title: "Our Portfolio", description: "Discover the projects we've brought to life.", gridVariant: "bento-grid", // Choose a responsive grid variant
animationType: "slide-up", products: [
{ id: "1", name: "Project Alpha", price: "Case Study", imageSrc: "https://r2.webild.io/p/4e2bb7a8-1a5c-4235-9008-012903330663_img_1.webp", imageAlt: "Project Alpha screenshot" },
{ id: "2", name: "Project Beta", price: "Case Study", imageSrc: "https://r2.webild.io/p/4e2bb7a8-1a5c-4235-9008-012903330663_img_2.webp", imageAlt: "Project Beta screenshot" },
{ id: "3", name: "Project Gamma", price: "Case Study", imageSrc: "https://r2.webild.io/p/4e2bb7a8-1a5c-4235-9008-012903330663_img_3.webp", imageAlt: "Project Gamma screenshot" },
{ id: "4", name: "Project Delta", price: "Case Study", imageSrc: "https://r2.webild.io/p/4e2bb7a8-1a5c-4235-9008-012903330663_img_4.webp", imageAlt: "Project Delta screenshot" }
]
};
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
@@ -62,13 +73,18 @@ export default function PortfolioPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay {...navbarProps} />
</div>
{/*
Due to an empty sectionRegistry, no sections can be rendered on this page.
This site will only display the Navbar and Footer.
*/}
<main className="min-h-[calc(10vh)] flex items-center justify-center">
<h1 className="text-3xl md:text-5xl font-bold text-center">Our Portfolio & News</h1>
<main>
<div id="portfolio-hero" data-section="portfolio-hero" className="py-20 md:py-32 text-center">
<h1 className="text-4xl md:text-6xl font-bold text-foreground">Our Portfolio</h1>
<p className="mt-4 text-xl text-foreground/80 max-w-2xl mx-auto">Explore our diverse range of successful projects and client collaborations.</p>
</div>
<div id="product-card-three" data-section="product-card-three">
<ProductCardThree {...productCardThreeProps} />
</div>
</main>
<Footer brandName="Nexsoft Australia" navItems={navItems} />
</ThemeProvider>
);

142
src/app/services/page.tsx Normal file
View File

@@ -0,0 +1,142 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import Link from "next/link";
import FeatureCardSix from '@/components/sections/feature/FeatureCardSix';
import PricingCardFive from '@/components/sections/pricing/PricingCardFive';
import FaqSplitText from '@/components/sections/faq/FaqSplitText';
import { HardDrive, Cloud, Users, ShieldCheck } from 'lucide-react';
interface FooterProps {
brandName?: string;
navItems: Array<{ name: string; href: string; }>;
}
const Footer: React.FC<FooterProps> = ({ brandName = "Nexsoft Australia", navItems }) => {
return (
<footer className="w-full py-8 bg-card text-foreground border-t border-accent mt-16">
<div className="mx-auto px-4 md:px-6 max-w-7xl flex flex-col md:flex-row justify-between items-center gap-4">
<div className="text-lg font-bold">
{brandName}
</div>
<nav className="flex flex-wrap justify-center gap-6">
{navItems.map((item) => (
<Link key={item.href} href={item.href} className="text-foreground hover:text-primary-cta">
{item.name}
</Link>
))}
</nav>
<div className="text-sm text-foreground/80">
© {new Date().getFullYear()} {brandName}. All rights reserved.
</div>
</div>
</footer>
);
};
export default function ServicesPage() {
const navItems = [
{name: "Home", id: "home", href: "/"},
{name: "About us", id: "about", href: "/about"},
{name: "Services", id: "services", href: "/services"},
{name: "Products", id: "products", href: "/products"},
{name: "Achievements", id: "achievements", href: "/portfolio"},
{name: "News", id: "news", href: "/portfolio"},
{name: "Contact us", id: "contact", href: "/contact"}
];
const navbarProps = {
brandName: "Nexsoft Australia", navItems: navItems,
button: {text: "Get a Quote", href: "/contact"}
};
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="medium"
sizing="largeSmall"
background="blurBottom"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="radial-glow"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay {...navbarProps} />
</div>
<div id="services-features" data-section="services-features">
<FeatureCardSix
tag="What We Do"
title="Comprehensive Digital Solutions"
description="From concept to deployment, we deliver tailored services designed to meet your unique business needs."
features={[
{ id: 1, title: 'Custom Software Development', description: 'Building bespoke applications that drive efficiency.', imageSrc: 'https://cdn.pixabay.com/photo/2016/03/09/09/16/programmer-1246761_960_720.jpg', imageAlt: 'Software Development' },
{ id: 2, title: 'Cloud Solutions & Migration', description: 'Leverage the power of the cloud for scalability and security.', imageSrc: 'https://cdn.pixabay.com/photo/2016/11/19/23/00/data-1840003_960_720.jpg', imageAlt: 'Cloud Solutions' },
{ id: 3, title: 'IT Consulting & Strategy', description: 'Expert guidance to optimize your technology roadmap.', imageSrc: 'https://cdn.pixabay.com/photo/2015/07/02/10/44/laptop-828551_960_720.jpg', imageAlt: 'IT Consulting' },
{ id: 4, title: 'Cybersecurity & Data Protection', description: 'Protect your valuable assets with robust security measures.', imageSrc: 'https://cdn.pixabay.com/photo/2017/01/17/14/45/cyber-security-1987570_960_720.jpg', imageAlt: 'Cybersecurity' }
]}
useInvertedBackground={true}
textboxLayout={'default'}
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardFive
title="Flexible Service Plans"
description="Choose a plan that scales with your business, or let's create a custom solution."
plans={[
{
id: 'basic',
tag: 'Starter',
price: '$999',
period: '/month',
description: 'Ideal for small businesses and startups.',
button: { text: 'Get Started', href: '#' },
featuresTitle: 'Includes:',
features: ['Custom Dev (10 hrs)', 'Basic Cloud Setup', 'Email Support']
},
{
id: 'pro',
tag: 'Professional',
price: '$2499',
period: '/month',
description: 'For growing businesses requiring more comprehensive support.',
button: { text: 'Learn More', href: '#' },
featuresTitle: 'Includes:',
features: ['Custom Dev (30 hrs)', 'Advanced Cloud Mgmt', 'Priority Support', 'Monthly Reports']
},
{
id: 'enterprise',
tag: 'Enterprise',
price: 'Custom',
period: '',
description: 'Tailored solutions for large organizations with complex needs.',
button: { text: 'Contact Us', href: '/contact' },
featuresTitle: 'Includes:',
features: ['Dedicated Team', 'Full Cloud Suite', '24/7 Support', 'Strategic Consulting']
}
]}
animationType={'slide-up'}
useInvertedBackground={false}
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitText
sideTitle="Got Questions About Our Services?"
sideDescription="We're here to provide clarity and ensure you have all the information you need."
faqs={[
{ id: '1', title: 'How does your custom software development process work?', content: 'Our process involves discovery, design, development, testing, and deployment, ensuring a tailored solution that meets your specific needs.' },
{ id: '2', title: 'What cloud platforms do you support?', content: 'We specialize in AWS, Azure, and Google Cloud Platform, providing flexible and scalable cloud solutions.' },
{ id: '3', title: 'Can you help with legacy system migration?', content: 'Yes, we have extensive experience in migrating legacy systems to modern cloud infrastructure with minimal disruption.' },
{ id: '4', title: 'What is your approach to cybersecurity?', content: 'We implement multi-layered security strategies, including threat detection, data encryption, and regular security audits to protect your systems.' }
]}
faqsAnimation={'slide-up'}
useInvertedBackground={true}
/>
</div>
<Footer brandName="Nexsoft Australia" navItems={navItems} />
</ThemeProvider>
);
}