Merge version_2_1782062167017 into main #1

Merged
bender merged 2 commits from version_2_1782062167017 into main 2026-06-21 17:18:20 +00:00
4 changed files with 27 additions and 1 deletions

View File

@@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom';
import Layout from './components/Layout';
import HomePage from './pages/HomePage';
import PortfolioPage from "@/pages/PortfolioPage";
export default function App() {
return (
<Routes>
<Route element={<Layout />}>
<Route path="/" element={<HomePage />} />
<Route path="/portfolio" element={<PortfolioPage />} />
</Route>
</Routes>
);

View File

@@ -34,7 +34,9 @@ export default function Layout() {
{
"name": "Faq",
"href": "#faq"
}
},
{ name: "Portfolio", href: "/portfolio" },
];
return (

View File

@@ -0,0 +1,21 @@
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import ScrollReveal from "@/components/ui/ScrollReveal";
import GridOrCarousel from "@/components/ui/GridOrCarousel";
export default function PortfolioPage() {
return (
<>
<div data-webild-section="HeroSplit"><section aria-label="Hero section" className="relative flex items-center h-fit md:h-svh pt-25 pb-20 md:py-0"><HeroBackgroundSlot /><div className="flex flex-col md:flex-row items-center gap-12 md:gap-20 w-content-width mx-auto"><div className="w-full md:w-1/2"><div className="flex flex-col items-center md:items-start gap-3"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Your Portfolio</p></div><TextAnimation text="Track Your Yields and Liquidity Positions" variant="fade-blur" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance" /><TextAnimation text="Monitor your assets, track real-time yields, and manage your liquidity pools in one place. Maximize your capital efficiency on Solana with deep analytics." variant="fade-blur" gradientText={false} tag="p" className="md:max-w-8/10 text-lg md:text-xl leading-snug text-center md:text-left text-balance" /><div className="flex flex-wrap max-md:justify-center gap-3 mt-2 md:mt-3"><Button text="Connect Wallet" href="#connect" variant="primary" /><Button text="Explore Pools" href="/liquidity-pools" variant="secondary" animationDelay={0.1} /></div></div></div><ScrollReveal variant="fade-blur" delay={0.2} className="w-full md:w-1/2 h-100 md:h-[65vh] md:max-h-[75svh] p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/stock-market-exchange-economics-investment-graph_53876-43033.jpg" /></ScrollReveal></div></section></div>
<div data-webild-section="MetricsSimpleCards"><section aria-label="Metrics section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center gap-2 w-content-width mx-auto"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Portfolio Overview</p></div><TextAnimation text="Your Asset Performance" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Monitor your liquidity positions, track yields, and manage your assets across all Orca pools in real-time. Connect your wallet to view your balances." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Connect Wallet" href="#connect" variant="primary" /><Button text="Explore Pools" href="/liquidity-pools" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade-blur"><GridOrCarousel><div key="$0.00" className="flex flex-col justify-between gap-6 p-6 md:p-10 min-h-60 md:min-h-70 2xl:min-h-80 h-full card rounded"><span className="text-9xl md:text-8xl font-semibold leading-none truncate">$0.00</span><p className="text-base leading-snug text-balance">Total Value Locked</p></div>
<div key="$0.00" className="flex flex-col justify-between gap-6 p-6 md:p-10 min-h-60 md:min-h-70 2xl:min-h-80 h-full card rounded"><span className="text-9xl md:text-8xl font-semibold leading-none truncate">$0.00</span><p className="text-base leading-snug text-balance">Unclaimed Fees</p></div>
<div key="0.00%" className="flex flex-col justify-between gap-6 p-6 md:p-10 min-h-60 md:min-h-70 2xl:min-h-80 h-full card rounded"><span className="text-9xl md:text-8xl font-semibold leading-none truncate">0.00%</span><p className="text-base leading-snug text-balance">Average APY</p></div>
<div key="0" className="flex flex-col justify-between gap-6 p-6 md:p-10 min-h-60 md:min-h-70 2xl:min-h-80 h-full card rounded"><span className="text-9xl md:text-8xl font-semibold leading-none truncate">0</span><p className="text-base leading-snug text-balance">Active Pools</p></div></GridOrCarousel></ScrollReveal></div></section></div>
<div data-webild-section="FeaturesMediaCards"><section aria-label="Features section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center w-content-width mx-auto gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Your Portfolio</p></div><TextAnimation text="Track Your Yields and Assets" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Monitor your liquidity positions, track earned fees, and manage your assets across all Orca pools in one unified dashboard." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Connect Wallet" href="#connect" variant="primary" /><Button text="Explore Pools" href="/liquidity-pools" variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade"><GridOrCarousel><div key="Real-Time Analytics" className="flex flex-col gap-3 xl:gap-3.5 2xl:gap-4 p-3 xl:p-3.5 2xl:p-4 h-full card rounded"><div className="aspect-square rounded overflow-hidden button-secondary shadow shadow-foreground/5"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/financial-stock-market-graph-chart-background_53876-104930.jpg" /></div><div className="flex flex-col gap-1 p-3 xl:p-3.5 2xl:p-4"><h3 className="text-2xl font-semibold leading-snug">Real-Time Analytics</h3><p className="text-base leading-snug">View live performance metrics, including APY, TVL, and accumulated fees for your active positions.</p></div></div>
<div key="Position Management" className="flex flex-col gap-3 xl:gap-3.5 2xl:gap-4 p-3 xl:p-3.5 2xl:p-4 h-full card rounded"><div className="aspect-square rounded overflow-hidden button-secondary shadow shadow-foreground/5"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/cryptocurrency-coding-digital-black-background-open-source-blockchain-concept_53876-124640.jpg" /></div><div className="flex flex-col gap-1 p-3 xl:p-3.5 2xl:p-4"><h3 className="text-2xl font-semibold leading-snug">Position Management</h3><p className="text-base leading-snug">Easily adjust your price ranges, add or remove liquidity, and harvest your earned rewards.</p></div></div>
<div key="Capital Efficiency" className="flex flex-col gap-3 xl:gap-3.5 2xl:gap-4 p-3 xl:p-3.5 2xl:p-4 h-full card rounded"><div className="aspect-square rounded overflow-hidden button-secondary shadow shadow-foreground/5"><ImageOrVideo imageSrc="https://img.freepik.com/free-photo/business-finance-data-analytics-graph-chart-concept_53876-124615.jpg" /></div><div className="flex flex-col gap-1 p-3 xl:p-3.5 2xl:p-4"><h3 className="text-2xl font-semibold leading-snug">Capital Efficiency</h3><p className="text-base leading-snug">Analyze your concentrated liquidity performance to ensure your capital is maximizing returns.</p></div></div></GridOrCarousel></ScrollReveal></div></section></div>
</>
);
}

View File

@@ -6,4 +6,5 @@ export interface Route {
export const routes: Route[] = [
{ path: '/', label: 'Home', pageFile: 'HomePage' },
{ path: '/portfolio', label: 'Portfolio', pageFile: 'PortfolioPage' },
];