feat: add UI components for card stack, world map and evervault card with theme support
This commit is contained in:
		@@ -16,7 +16,7 @@ export function HomeAurora() {
 | 
			
		||||
          duration: 1,
 | 
			
		||||
          ease: "easeInOut",
 | 
			
		||||
        }}
 | 
			
		||||
        className="relative mb-20 -top-5 flex flex-col items-center justify-center gap-4 px-4 max-w-5xl"
 | 
			
		||||
        className="relative mb-20  flex flex-col items-center justify-center gap-4 px-4 max-w-5xl"
 | 
			
		||||
      >
 | 
			
		||||
        <div className="text-center text-gray-800">
 | 
			
		||||
          <H1>Decentralized Autonomous <span className="font-neuton text-bold lg:text-8xl italic">Agentic Cloud.</span></H1>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										56
									
								
								src/pages/home/HomeFeatures.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								src/pages/home/HomeFeatures.tsx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
import { InboxIcon, TrashIcon, UsersIcon } from '@heroicons/react/24/outline'
 | 
			
		||||
import { H2, P } from '@/components/Texts'
 | 
			
		||||
import { CardStack } from '@/components/ui/card-stack'
 | 
			
		||||
 | 
			
		||||
const features = [
 | 
			
		||||
  {
 | 
			
		||||
    name: 'Network Layer',
 | 
			
		||||
    description:
 | 
			
		||||
      "A global, end-to-end encrypted overlay that simply doesn't break. Shortest-path routing moves your traffic the fastest way, every time with instant discovery.",
 | 
			
		||||
    href: '#',
 | 
			
		||||
    icon: UsersIcon,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: 'Cloud Layer',
 | 
			
		||||
    description:
 | 
			
		||||
      'An autonomous, stateless OS that enforces pre-deterministic deployments you define. Workloads are cryptographically bound to your private key—location and access are yours.',
 | 
			
		||||
    href: '#',
 | 
			
		||||
    icon: TrashIcon,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: 'Agent Layer',
 | 
			
		||||
    description:
 | 
			
		||||
      'Your sovereign agent with private memory and permissioned data access—always under your control. Choose from a wide library of open-source LLMs, paired with built-in semantic search and retrieval.',
 | 
			
		||||
    href: '#',
 | 
			
		||||
    icon: InboxIcon,
 | 
			
		||||
  },
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
export function HomeFeatures() {
 | 
			
		||||
  const cards = features.map((feature, index) => ({
 | 
			
		||||
    id: index,
 | 
			
		||||
    name: feature.name,
 | 
			
		||||
    description: feature.description,
 | 
			
		||||
    icon: <feature.icon aria-hidden="true" className="size-6 text-white" />,
 | 
			
		||||
  }));
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <div className="bg-white py-24">
 | 
			
		||||
      <div className="mx-auto max-w-7xl px-6 lg:px-8">
 | 
			
		||||
        <div className="mx-auto max-w-2xl lg:mx-0">
 | 
			
		||||
          <H2 className="">
 | 
			
		||||
            The Mycelium <span className="font-neuton font-bold italic">Stack</span>
 | 
			
		||||
          </H2>
 | 
			
		||||
          <P className="mt-6 ">
 | 
			
		||||
            Built with Mycelium technology, our AI infrastructure ensures unbreakable networks, complete data sovereignty, ultra-secure agent-human communication, and unhackable data storage systems.
 | 
			
		||||
          </P>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div className="mx-auto mt-16 max-w-2xl sm:mt-20 lg:mt-32 lg:max-w-7xl">
 | 
			
		||||
          <div className="flex items-center justify-center w-full">
 | 
			
		||||
            <CardStack items={cards} offset={80} />
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										69
									
								
								src/pages/home/HomeMap.tsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								src/pages/home/HomeMap.tsx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
"use client";
 | 
			
		||||
import WorldMap from "@/components/ui/world-map";
 | 
			
		||||
import { motion } from "motion/react";
 | 
			
		||||
import { H2, P } from "@/components/Texts";
 | 
			
		||||
 | 
			
		||||
export function HomeMapSection() {
 | 
			
		||||
  return (
 | 
			
		||||
    <div className=" py-24 dark:bg-black bg-white w-full">
 | 
			
		||||
      <div className="max-w-7xl mx-auto text-center">
 | 
			
		||||
        <H2 className="font-medium text-xl md:text-4xl dark:text-white text-gray-800">
 | 
			
		||||
          Mycelium Network is{" "}
 | 
			
		||||
          <span className="text-black font-neuton text-bold italic">
 | 
			
		||||
            {"Live.".split("").map((word, idx) => (
 | 
			
		||||
              <motion.span
 | 
			
		||||
                key={idx}
 | 
			
		||||
                className="inline-block"
 | 
			
		||||
                initial={{ x: -10, opacity: 0 }}
 | 
			
		||||
                animate={{ x: 0, opacity: 1 }}
 | 
			
		||||
                transition={{ duration: 0.5, delay: idx * 0.04 }}
 | 
			
		||||
              >
 | 
			
		||||
                {word}
 | 
			
		||||
              </motion.span>
 | 
			
		||||
            ))}
 | 
			
		||||
          </span>
 | 
			
		||||
        </H2>
 | 
			
		||||
        <P className="text-sm md:text-lg text-neutral-500 max-w-2xl mx-auto py-4">
 | 
			
		||||
          Mycelium Network's advancement technology enables anyone to deploy
 | 
			
		||||
            their own Internet infrastructure, anywhere.
 | 
			
		||||
        </P>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div className="max-w-5xl mx-auto">
 | 
			
		||||
        <WorldMap
 | 
			
		||||
        dots={[
 | 
			
		||||
          {
 | 
			
		||||
            start: {
 | 
			
		||||
              lat: 64.2008,
 | 
			
		||||
              lng: -149.4937,
 | 
			
		||||
            }, // Alaska (Fairbanks)
 | 
			
		||||
            end: {
 | 
			
		||||
              lat: 34.0522,
 | 
			
		||||
              lng: -118.2437,
 | 
			
		||||
            }, // Los Angeles
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            start: { lat: 64.2008, lng: -149.4937 }, // Alaska (Fairbanks)
 | 
			
		||||
            end: { lat: -15.7975, lng: -47.8919 }, // Brazil (Brasília)
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            start: { lat: -15.7975, lng: -47.8919 }, // Brazil (Brasília)
 | 
			
		||||
            end: { lat: 38.7223, lng: -9.1393 }, // Lisbon
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            start: { lat: 51.5074, lng: -0.1278 }, // London
 | 
			
		||||
            end: { lat: 28.6139, lng: 77.209 }, // New Delhi
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            start: { lat: 28.6139, lng: 77.209 }, // New Delhi
 | 
			
		||||
            end: { lat: 43.1332, lng: 131.9113 }, // Vladivostok
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            start: { lat: 28.6139, lng: 77.209 }, // New Delhi
 | 
			
		||||
            end: { lat: -1.2921, lng: 36.8219 }, // Nairobi
 | 
			
		||||
          },
 | 
			
		||||
        ]}
 | 
			
		||||
      />
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
@@ -5,6 +5,8 @@ import { StackSection } from './StackSection'
 | 
			
		||||
import { HomeHeroLight2 } from './HomeHeroLight2'
 | 
			
		||||
import { HomeHeroDark } from './HomeHeroDark'
 | 
			
		||||
import { HomeAurora } from './HomeAurora'
 | 
			
		||||
import { HomeMapSection } from './HomeMap'
 | 
			
		||||
import { HomeFeatures } from './HomeFeatures'
 | 
			
		||||
 | 
			
		||||
export default function HomePage() {
 | 
			
		||||
  return (
 | 
			
		||||
@@ -14,7 +16,11 @@ export default function HomePage() {
 | 
			
		||||
      </AnimatedSection>
 | 
			
		||||
 | 
			
		||||
      <AnimatedSection id="next-section">
 | 
			
		||||
        <WorldMapSection />
 | 
			
		||||
        <HomeFeatures />
 | 
			
		||||
      </AnimatedSection>
 | 
			
		||||
 | 
			
		||||
      <AnimatedSection >
 | 
			
		||||
        <HomeMapSection />
 | 
			
		||||
      </AnimatedSection>
 | 
			
		||||
 | 
			
		||||
      <AnimatedSection>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user