Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0286cc1a7e | |||
| 8a02e88689 | |||
| 05b1405e58 | |||
| 93cee5d551 | |||
| db680bb977 | |||
| 48d6a19182 | |||
| bca0b08941 | |||
| 53e59d4584 | |||
| 4a1a270b29 | |||
| 48b772093d | |||
| cd6c522ec0 | |||
| 49f5117668 | |||
| ca14d6c61b | |||
| 461ed9df90 | |||
| 3c3da14fa3 | |||
| c18160484a | |||
| a4befa94f1 | |||
| 29863efb09 | |||
| 7c28681f23 | |||
| 070e48df04 | |||
| 9d52c70cb5 | |||
| 877186f6b4 | |||
| ca3dd224b9 |
42
src/app/dashboard/page.tsx
Normal file
42
src/app/dashboard/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||
import Tag from "@/tag/Tag";
|
||||
import { getVisualEditScript } from "@/utils/visual-edit-script";
|
||||
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.',
|
||||
};
|
||||
|
||||
const montserrat = Montserrat({
|
||||
variable: "--font-montserrat",
|
||||
|
||||
|
||||
const inter = Inter({
|
||||
variable: "--font-inter",
|
||||
subsets: ["latin"],
|
||||
});
|
||||
const openSans = Open_Sans({
|
||||
variable: "--font-open-sans",
|
||||
subsets: ["latin"],
|
||||
});
|
||||
|
||||
@@ -28,7 +35,7 @@ export default function RootLayout({
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<ServiceWrapper>
|
||||
<body className={`${montserrat.variable} antialiased`}>
|
||||
<body className={`${inter.variable} ${openSans.variable} antialiased`}>
|
||||
<Tag />
|
||||
{children}
|
||||
<script
|
||||
|
||||
@@ -41,15 +41,16 @@ export default function LandingPage() {
|
||||
<HeroBillboard
|
||||
background={{ variant: "plain" }}
|
||||
title="MarbleCityFC Performance Portal"
|
||||
description="The official internal dashboard for tracking matches, player stats, and club performance."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/american-football-player-professional-stadium_654080-928.jpg?_wi=1"
|
||||
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"
|
||||
mediaAnimation="slide-up"
|
||||
buttons={[{ text: "View Statistics", href: "/dashboard" }]}
|
||||
avatars={[
|
||||
{ src: "http://img.b2bpic.net/free-photo/figure-skating-girl-ice-arena_654080-1585.jpg", alt: "Staff profile 1" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/american-football-player-professional-stadium_654080-933.jpg", alt: "Staff profile 2" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/sports-center_1127-4160.jpg", alt: "Staff profile 3" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/basketball-players-big-professional-arena-game_654080-295.jpg", alt: "Staff profile 4" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/business-investor-analyzing-stock-market-trend-monitor-trading-capital-profit-exchange-investment-young-broker-investing-funds-using-financial-forex-market-sales-close-up-handheld-shot_482257-40948.jpg", alt: "Staff profile 5" },
|
||||
{ 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-stadium_1127-4160.jpg", alt: "Staff profile 3" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/soccer-player-ball_654080-295.jpg", alt: "Staff profile 4" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/coach-analyzing-data_482257-40948.jpg", alt: "Staff profile 5" },
|
||||
]}
|
||||
avatarText="Trusted by our elite staff"
|
||||
marqueeItems={[
|
||||
@@ -69,15 +70,15 @@ export default function LandingPage() {
|
||||
gridVariant="uniform-all-items-equal"
|
||||
useInvertedBackground={false}
|
||||
products={[
|
||||
{ id: "p1", name: "James Wilson", price: "12 Goals", imageSrc: "http://img.b2bpic.net/free-photo/figure-skating-girl-ice-arena_654080-1585.jpg?_wi=1" },
|
||||
{ id: "p2", name: "Marcus Rashford", price: "10 Goals", imageSrc: "http://img.b2bpic.net/free-photo/american-football-player-professional-stadium_654080-933.jpg" },
|
||||
{ id: "p3", name: "Liam Smith", price: "8 Goals", imageSrc: "http://img.b2bpic.net/free-photo/sports-center_1127-4160.jpg" },
|
||||
{ id: "p4", name: "Tom Baker", price: "7 Goals", imageSrc: "http://img.b2bpic.net/free-photo/basketball-players-big-professional-arena-game_654080-295.jpg" },
|
||||
{ id: "p5", name: "Alex Reed", price: "6 Goals", imageSrc: "http://img.b2bpic.net/free-photo/business-investor-analyzing-stock-market-trend-monitor-trading-capital-profit-exchange-investment-young-broker-investing-funds-using-financial-forex-market-sales-close-up-handheld-shot_482257-40948.jpg" },
|
||||
{ id: "p6", name: "Sam Field", price: "5 Goals", imageSrc: "http://img.b2bpic.net/free-photo/american-football-player-professional-stadium_654080-928.jpg?_wi=2" },
|
||||
{ id: "p1", name: "James Wilson", price: "12 Goals", imageSrc: "http://img.b2bpic.net/free-photo/soccer-training_654080-1585.jpg?_wi=1" },
|
||||
{ id: "p2", name: "Marcus Rashford", price: "10 Goals", imageSrc: "http://img.b2bpic.net/free-photo/soccer-match_654080-933.jpg" },
|
||||
{ id: "p3", name: "Liam Smith", price: "8 Goals", imageSrc: "http://img.b2bpic.net/free-photo/soccer-stadium_1127-4160.jpg" },
|
||||
{ id: "p4", name: "Tom Baker", price: "7 Goals", imageSrc: "http://img.b2bpic.net/free-photo/soccer-player-ball_654080-295.jpg" },
|
||||
{ id: "p5", name: "Alex Reed", price: "6 Goals", imageSrc: "http://img.b2bpic.net/free-photo/coach-analyzing-data_482257-40948.jpg" },
|
||||
{ id: "p6", name: "Sam Field", price: "5 Goals", imageSrc: "http://img.b2bpic.net/free-photo/soccer-player-stadium-professional_654080-928.jpg?_wi=2" },
|
||||
]}
|
||||
title="Player Leaderboard"
|
||||
description="Top performers based on seasonal statistics."
|
||||
description="Top soccer performers based on seasonal statistics."
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -87,12 +88,12 @@ export default function LandingPage() {
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={true}
|
||||
features={[
|
||||
{ id: "m1", title: "Oct 12 vs Tigers", descriptions: ["Score: 3-1", "Goal Scorers: Wilson, Smith, Baker"], imageSrc: "http://img.b2bpic.net/free-photo/businessman-doing-research-analysis-computer-screen-plan-financial-statistics-with-charts-graphs-data-male-employee-working-with-diagram-report-find-sales-profit-e-commerce_482257-40940.jpg", imageAlt: "dashboard admin ui" },
|
||||
{ id: "m2", title: "Oct 05 vs City Rovers", descriptions: ["Score: 2-2", "Goal Scorers: Rashford, Reed"], imageSrc: "http://img.b2bpic.net/free-photo/american-football-player-professional-stadium_654080-928.jpg?_wi=3", imageAlt: "dashboard admin ui" },
|
||||
{ id: "m3", title: "Sep 28 vs North United", descriptions: ["Score: 4-0", "Goal Scorers: Wilson, Smith, Baker, Field"], imageSrc: "http://img.b2bpic.net/free-photo/figure-skating-girl-ice-arena_654080-1585.jpg?_wi=2", imageAlt: "dashboard admin ui" },
|
||||
{ id: "m1", title: "Oct 12 vs Tigers FC", descriptions: ["Score: 3-1", "Goal Scorers: Wilson, Smith, Baker"], imageSrc: "http://img.b2bpic.net/free-photo/soccer-stats-analysis_482257-40940.jpg" },
|
||||
{ id: "m2", title: "Oct 05 vs City Rovers", descriptions: ["Score: 2-2", "Goal Scorers: Rashford, Reed"], imageSrc: "http://img.b2bpic.net/free-photo/soccer-player-stadium-professional_654080-928.jpg?_wi=3" },
|
||||
{ id: "m3", title: "Sep 28 vs North United", descriptions: ["Score: 4-0", "Goal Scorers: Wilson, Smith, Baker, Field"], imageSrc: "http://img.b2bpic.net/free-photo/soccer-training_654080-1585.jpg?_wi=2" },
|
||||
]}
|
||||
title="Recent Match Logs"
|
||||
description="Historical data of recent league matches and outcomes."
|
||||
description="Historical data of recent league soccer matches and outcomes."
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -100,7 +101,7 @@ export default function LandingPage() {
|
||||
<MetricCardFourteen
|
||||
useInvertedBackground={false}
|
||||
title="Club Performance Overview"
|
||||
tag="Live Metrics"
|
||||
tag="Live Soccer Metrics"
|
||||
metrics={[
|
||||
{ id: "stat-1", value: "18", description: "Matches Played" },
|
||||
{ id: "stat-2", value: "42", description: "Goals Scored" },
|
||||
@@ -117,7 +118,7 @@ export default function LandingPage() {
|
||||
background={{ variant: "plain" }}
|
||||
tag="Admin Tools"
|
||||
title="Match & Stats Entry"
|
||||
description="Use this secure panel to input new player data, 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"
|
||||
/>
|
||||
</div>
|
||||
@@ -127,7 +128,7 @@ export default function LandingPage() {
|
||||
columns={[
|
||||
{
|
||||
title: "Platform", items: [
|
||||
{ label: "Dashboard", href: "#home" },
|
||||
{ label: "Dashboard", href: "/dashboard" },
|
||||
{ label: "Stats", href: "#leaderboard" },
|
||||
],
|
||||
},
|
||||
@@ -141,4 +142,4 @@ export default function LandingPage() {
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ html {
|
||||
body {
|
||||
background-color: var(--background);
|
||||
color: var(--foreground);
|
||||
font-family: var(--font-montserrat), sans-serif;
|
||||
font-family: var(--font-open-sans), sans-serif;
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
overscroll-behavior: none;
|
||||
@@ -24,5 +24,5 @@ h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: var(--font-montserrat), sans-serif;
|
||||
font-family: var(--font-inter), sans-serif;
|
||||
}
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
--background: #ffffff;
|
||||
--card: #f9f9f9;
|
||||
--foreground: #000612;
|
||||
--primary-cta: #15479c;
|
||||
--foreground: #000612e6;
|
||||
--primary-cta: #106EFB;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #f9f9f9;
|
||||
--secondary-cta-text: #000612;
|
||||
--secondary-cta-text: #000612e6;
|
||||
--accent: #e2e2e2;
|
||||
--background-accent: #c4c4c4;
|
||||
--background-accent: #106EFB;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
Reference in New Issue
Block a user