16 Commits

Author SHA1 Message Date
0286cc1a7e Merge version_6 into main
Merge version_6 into main
2026-05-02 07:43:17 +00:00
8a02e88689 Update theme colors 2026-05-02 07:43:11 +00:00
05b1405e58 Merge version_5 into main
Merge version_5 into main
2026-05-02 07:43:01 +00:00
93cee5d551 Update theme fonts 2026-05-02 07:42:58 +00:00
db680bb977 Update theme fonts 2026-05-02 07:42:58 +00:00
48d6a19182 Merge version_5 into main
Merge version_5 into main
2026-05-02 07:42:55 +00:00
bca0b08941 Update theme fonts 2026-05-02 07:42:52 +00:00
53e59d4584 Update theme fonts 2026-05-02 07:42:52 +00:00
4a1a270b29 Merge version_5 into main
Merge version_5 into main
2026-05-02 07:41:41 +00:00
48b772093d Update src/app/dashboard/page.tsx 2026-05-02 07:41:35 +00:00
cd6c522ec0 Merge version_4 into main
Merge version_4 into main
2026-05-02 07:39:58 +00:00
49f5117668 Update src/app/page.tsx 2026-05-02 07:39:55 +00:00
ca14d6c61b Add src/app/dashboard/page.tsx 2026-05-02 07:39:54 +00:00
461ed9df90 Switch to version 2: modified src/app/page.tsx 2026-05-02 07:39:19 +00:00
3c3da14fa3 Merge version_3 into main
Merge version_3 into main
2026-05-02 07:36:44 +00:00
a4befa94f1 Merge version_3 into main
Merge version_3 into main
2026-05-02 07:36:18 +00:00
5 changed files with 61 additions and 82 deletions

View File

@@ -0,0 +1,42 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
export default function DashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="bounce-effect"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "home" },
{ name: "Dashboard", id: "dashboard" },
]}
brandName="MarbleCityFC"
/>
<div className="pt-24 min-h-screen flex items-center justify-center p-8">
<div className="text-center space-y-4">
<h1 className="text-4xl font-bold">Login Required</h1>
<p>Please authenticate your credentials to access the statistics dashboard.</p>
<button className="px-6 py-3 bg-primary text-white rounded-md shadow hover:opacity-90">
Authenticate Now
</button>
</div>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -7,6 +7,7 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag"; import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Montserrat } from "next/font/google"; import { Montserrat } from "next/font/google";
import { Open_Sans } from "next/font/google";
@@ -15,8 +16,14 @@ export const metadata: Metadata = {
description: 'Manage player stats, matches, and team rankings for MarbleCityFC.', description: 'Manage player stats, matches, and team rankings for MarbleCityFC.',
}; };
const montserrat = Montserrat({
variable: "--font-montserrat",
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const openSans = Open_Sans({
variable: "--font-open-sans",
subsets: ["latin"], subsets: ["latin"],
}); });
@@ -28,7 +35,7 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${montserrat.variable} antialiased`}> <body className={`${inter.variable} ${openSans.variable} antialiased`}>
<Tag /> <Tag />
{children} {children}
<script <script

View File

@@ -31,7 +31,7 @@ export default function LandingPage() {
{ name: "Home", id: "home" }, { name: "Home", id: "home" },
{ name: "Leaderboard", id: "leaderboard" }, { name: "Leaderboard", id: "leaderboard" },
{ name: "Matches", id: "matches" }, { name: "Matches", id: "matches" },
{ name: "Dashboard", id: "/dashboard" }, { name: "Admin", id: "admin" },
]} ]}
brandName="MarbleCityFC" brandName="MarbleCityFC"
/> />
@@ -44,6 +44,7 @@ export default function LandingPage() {
description="The official internal dashboard for tracking soccer matches, player stats, and club performance." description="The official internal dashboard for tracking soccer matches, player stats, and club performance."
imageSrc="http://img.b2bpic.net/free-photo/soccer-player-stadium-professional_654080-928.jpg?_wi=1" imageSrc="http://img.b2bpic.net/free-photo/soccer-player-stadium-professional_654080-928.jpg?_wi=1"
mediaAnimation="slide-up" mediaAnimation="slide-up"
buttons={[{ text: "View Statistics", href: "/dashboard" }]}
avatars={[ avatars={[
{ src: "http://img.b2bpic.net/free-photo/soccer-training_654080-1585.jpg", alt: "Staff profile 1" }, { src: "http://img.b2bpic.net/free-photo/soccer-training_654080-1585.jpg", alt: "Staff profile 1" },
{ src: "http://img.b2bpic.net/free-photo/soccer-match_654080-933.jpg", alt: "Staff profile 2" }, { src: "http://img.b2bpic.net/free-photo/soccer-match_654080-933.jpg", alt: "Staff profile 2" },
@@ -119,11 +120,6 @@ export default function LandingPage() {
title="Match & Stats Entry" title="Match & Stats Entry"
description="Use this secure panel to input new player data, soccer match scores, and update weekly stats." description="Use this secure panel to input new player data, soccer match scores, and update weekly stats."
inputPlaceholder="Enter admin authorization code" inputPlaceholder="Enter admin authorization code"
onSubmit={(email: string) => {
if (email === "admin") {
window.location.href = "/dashboard";
}
}}
/> />
</div> </div>
@@ -146,70 +142,4 @@ export default function LandingPage() {
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
}" }
},
{
"path": "src/app/dashboard/page.tsx", "content": "\"use client\";
import { ThemeProvider } from \"@/providers/themeProvider/ThemeProvider\";
import ReactLenis from \"lenis/react\";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import MetricCardFourteen from '@/components/sections/metrics/MetricCardFourteen';
import FooterBase from '@/components/sections/footer/FooterBase';
export default function DashboardPage() {
return (
<ThemeProvider
defaultButtonVariant=\"bounce-effect\"
defaultTextAnimation=\"entrance-slide\"
borderRadius=\"rounded\"
contentWidth=\"medium\"
sizing=\"medium\"
background=\"circleGradient\"
cardStyle=\"glass-elevated\"
primaryButtonStyle=\"gradient\"
secondaryButtonStyle=\"glass\"
headingFontWeight=\"normal\"
>
<ReactLenis root>
<div id=\"nav\" data-section=\"nav\">
<NavbarStyleCentered
navItems={[
{ name: \"Home\", id: \"/\" },
{ name: \"Dashboard\", id: \"/dashboard\" },
]}
brandName=\"MarbleCityFC\"
/>
</div>
<div className=\"py-20\">
<MetricCardFourteen
useInvertedBackground={false}
title=\"Executive Dashboard\"
tag=\"System Insights\"
metrics={[
{ id: \"d1\", value: \"$1.2M\", description: \"Annual Revenue\" },
{ id: \"d2\", value: \"89%\", description: \"Player Retention\" },
{ id: \"d3\", value: \"450+\", description: \"Monthly Active Users\" },
]}
metricsAnimation=\"slide-up\"
/>
</div>
<div id=\"footer\" data-section=\"footer\">
<FooterBase
columns={[
{
title: \"Navigation\", items: [
{ label: \"Back to Home\", href: \"/\" },
],
},
]}
logoText=\"MarbleCityFC\"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}"
}
]
}

View File

@@ -11,7 +11,7 @@ html {
body { body {
background-color: var(--background); background-color: var(--background);
color: var(--foreground); color: var(--foreground);
font-family: var(--font-montserrat), sans-serif; font-family: var(--font-open-sans), sans-serif;
position: relative; position: relative;
min-height: 100vh; min-height: 100vh;
overscroll-behavior: none; overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-montserrat), sans-serif; font-family: var(--font-inter), sans-serif;
} }

View File

@@ -12,13 +12,13 @@
--background: #ffffff; --background: #ffffff;
--card: #f9f9f9; --card: #f9f9f9;
--foreground: #000612; --foreground: #000612e6;
--primary-cta: #15479c; --primary-cta: #106EFB;
--primary-cta-text: #ffffff; --primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9; --secondary-cta: #f9f9f9;
--secondary-cta-text: #000612; --secondary-cta-text: #000612e6;
--accent: #e2e2e2; --accent: #e2e2e2;
--background-accent: #c4c4c4; --background-accent: #106EFB;
/* 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);