diff --git a/app/click-video/layout.tsx b/app/click-video/layout.tsx new file mode 100644 index 0000000..497ce03 --- /dev/null +++ b/app/click-video/layout.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import { Poppins, Arimo, Outfit, Roboto } from 'next/font/google'; +import "../globals.css"; + +const poppins = Poppins({ + weight: ['300', '400', '500', '600', '700'], + subsets: ['latin'], +}); + +const arimo = Arimo({ + weight: ['400', '500', '600', '700'], + subsets: ['latin'], +}); + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/click-video/page.tsx b/app/click-video/page.tsx new file mode 100644 index 0000000..3c17304 --- /dev/null +++ b/app/click-video/page.tsx @@ -0,0 +1,171 @@ +"use client"; + +import React from 'react'; +import Navbar from '@/components/Navbar/navbar'; +import Features from "@/components/Features/features"; +import Footer from "@/components/footer"; +import { HoverEffect } from '@/components/ui/card-hover-effect'; +import { Marquee } from '@/components/ui/marquee'; +import { TextGenerateEffect } from "@/components/ui/text-generate-effect"; +import { FaListUl, FaSearch, FaArrowsAlt, FaPlug, FaPaste, FaRegFileAlt } from 'react-icons/fa'; + +const heading = "Click Video - Interactive Videos with Built-in Q&A functionality for increased engagement"; +const description = "Create engaging videos for any task, enhanced with integrated question-and-answer elements for increased interaction, ensuring synchronization between roadmaps, customer feedback, and sprint schedules for smooth delivery."; +const image = "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4" + +const features = [ + { + head: "Connect the apps you already love", + desc: "Everyday supports over 100 apps, so you can tame the chaos and turn your tools into processes all in one place.", + button: "Explore all apps", + link: "#" + }, + { + head: "Start quickly with these pre-built templates from other Everyday users", + desc: "Automate your tasks in just a few minutes to reclaim countless hours of your time.", + button: "Explore more", + link: "#" + } +] + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +const contents = [ + { + title: "Create engaging content", + description: + "Within Everyday, your roadmaps, customer feedback, and sprint schedules interconnect, ensuring seamless synchrony. With relevant data at their fingertips, teams can focus on delivering products that customers adore, faster.", + link: "https://stripe.com", + icon: FaListUl, // Add icon here + }, + { + title: "Questions and Answers", + description: + "Embedded Q&A related to your video at any time frame. Just pause and add a question be it a multiple choice question to keep viewers engaged or a feedback form - it's totally upto you.", + link: "https://netflix.com", + icon: FaSearch, // Add icon here + }, + { + title: "Embedded Code", + description: + "An embedded code is generated with the question so users can add it in any web page or application. Get your answers from any platform of your liking and play anywhere.", + link: "https://enterprise.everydayseries.com/", + icon: FaArrowsAlt, // Add icon here + }, +]; + +const featuresData = [ + { + title: "Create Series using Drag and Drop", + description: "Organize, connect, and track your goals using the GoalGrid. Stay aligned and in sync with your strategic objectives.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065418_xo3ezn.png", + }, + { + title: "Built for Enterprises", + description: "Everyday platform ensures enterprise-grade deployment, security, and data governance, all with the simplicity of one centrally managed platform.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065356_gbkov8.png", + }, + { + title: "Integrate your Workflows", + description: "Connect Everyday to your existing tools, integrate important business processes, and build more powerful applications.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065455_whfipm.png", + }, +]; + +const words = `“In the new era of technology we are looking to the future with a certain pride for our company and business. We consider all the drivers of two of main financial change.”` + +export default function Series() { + return ( +
+ +
+

{heading}

+

{description}

+
+
+
+ {features.map((item, index) => ( +
+ {/* Feature Heading and Description */} +

{item.head}

+

{item.desc}

+ + {item.button} + + + {/* Conditional Rendering for Marquee After First Feature */} + {index === 0 && ( + <> + +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ {/* Add gradient effects for marquee */} +
+
+ + )} + + {/* Conditional Rendering for GIF After Second Feature */} + {index === 1 && ( +
+ Workflow GIF +
+ )} +
+ ))} +
+
+ +
+ + +
+
+ ★★★★★ +
+ + {/*

+ Magic Button: Simply press the magic button to instantly generate your series automatically. +

*/} + +
+ +
+ ); +} diff --git a/app/globals.css b/app/globals.css index 6b717ad..18b62bc 100644 --- a/app/globals.css +++ b/app/globals.css @@ -2,20 +2,76 @@ @tailwind components; @tailwind utilities; -:root { - --background: #ffffff; - --foreground: #171717; +body { + font-family: Arial, Helvetica, sans-serif; } -@media (prefers-color-scheme: dark) { +@layer base { :root { - --background: #0a0a0a; - --foreground: #ededed; + --background: 0 0% 100%; + --foreground: 0 0% 3.9%; + --card: 0 0% 100%; + --card-foreground: 0 0% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; + --primary-foreground: 0 0% 98%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + .dark { + --background: 0 0% 3.9%; + --foreground: 0 0% 98%; + --card: 0 0% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 0 0% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; } } -body { - color: var(--foreground); - background: var(--background); - font-family: Arial, Helvetica, sans-serif; +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } } + +::selection { + background-color: purple; + color: white; +} \ No newline at end of file diff --git a/app/integrations/layout.tsx b/app/integrations/layout.tsx new file mode 100644 index 0000000..497ce03 --- /dev/null +++ b/app/integrations/layout.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import { Poppins, Arimo, Outfit, Roboto } from 'next/font/google'; +import "../globals.css"; + +const poppins = Poppins({ + weight: ['300', '400', '500', '600', '700'], + subsets: ['latin'], +}); + +const arimo = Arimo({ + weight: ['400', '500', '600', '700'], + subsets: ['latin'], +}); + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/integrations/page.tsx b/app/integrations/page.tsx new file mode 100644 index 0000000..0f3fa49 --- /dev/null +++ b/app/integrations/page.tsx @@ -0,0 +1,327 @@ +"use client"; + +import React from 'react'; +import Navbar from '@/components/Navbar/navbar'; +import Hero from '@/components/Hero/hero'; +import Features from "@/components/Features/features"; +import Footer from "@/components/footer"; +import { HoverEffect } from '@/components/ui/card-hover-effect'; +import { Marquee } from '@/components/ui/marquee'; +import { TextGenerateEffect } from "@/components/ui/text-generate-effect"; +import { FaListUl, FaSearch, FaArrowsAlt, FaPlug, FaPaste, FaRegFileAlt } from 'react-icons/fa'; +import { OrbitingCircles } from '@/components/magicui/orbiting-circles'; + +const heading = "Integrations - Connect Your Workflows with Everyday Integrations"; +const description = "Seamlessly unite all your tools and applications with Everyday. Our robust integration capabilities empower you to create an interconnected ecosystem, streamlining your workflows and improving productivity."; +const image = "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4" + +const features = [ + { + head: "Connect the apps you already love", + desc: "Everyday supports over 100 apps, so you can tame the chaos and turn your tools into processes all in one place.", + button: "Explore all apps", + link: "#" + }, + { + head: "Start quickly with these pre-built templates from other Everyday users", + desc: "Automate your tasks in just a few minutes to reclaim countless hours of your time.", + button: "Explore more", + link: "#" + } +] + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +const contents = [ + { + title: "Centralize Your Data", + description: + "No more switching between apps. Gather all your data in one place, simplifying your processes and ensuring you have a single, reliable source of truth.", + link: "https://stripe.com", + icon: FaListUl, // Add icon here + }, + { + title: "Automate Your Processes", + description: + "Maximize efficiency by automating actions between your integrated apps. Transfer data, trigger actions, and manage notifications effortlessly, allowing you to focus on what matters most.", + link: "https://netflix.com", + icon: FaSearch, // Add icon here + }, + { + title: "Improve Collaboration", + description: + "By integrating your favorite communication tools, you can enhance teamwork and foster a more collaborative environment. Share updates, delegate tasks, and keep everyone in the loop, all within Everyday.", + link: "https://enterprise.everydayseries.com/", + icon: FaArrowsAlt, // Add icon here + }, +]; + +const featuresData = [ + { + title: "Create Series using Drag and Drop", + description: "Organize, connect, and track your goals using the GoalGrid. Stay aligned and in sync with your strategic objectives.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065418_xo3ezn.png", + }, + { + title: "Built for Enterprises", + description: "Everyday platform ensures enterprise-grade deployment, security, and data governance, all with the simplicity of one centrally managed platform.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065356_gbkov8.png", + }, + { + title: "Integrate your Workflows", + description: "Connect Everyday to your existing tools, integrate important business processes, and build more powerful applications.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065455_whfipm.png", + }, +]; + +const words = `“Need more? Our integration capabilities are constantly expanding, with new additions regularly introduced to our platform.”` + +export default function Integrations() { + return ( +
+ + +
+

{heading}

+

{description}

+
+ +
+
+ + + + + + + + + + + + + +
+
+

Bring Your Tools Together

+

With Everyday, you can easily connect and synchronize data from thousands of applications, creating a comprehensive and efficient workflow tailored to your business needs.

+
+
+ +
+ {features.map((item, index) => ( +
+ {/* Feature Heading and Description */} +

{item.head}

+

{item.desc}

+ + {item.button} + + + {/* Conditional Rendering for Marquee After First Feature */} + {index === 0 && ( + <> + +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ {/* Add gradient effects for marquee */} +
+
+ + )} + + {/* Conditional Rendering for GIF After Second Feature */} + {index === 1 && ( +
+ Workflow GIF +
+ )} +
+ ))} +
+
+ +
+ + +
+
+ ★★★★★ +
+ + {/*

+ Magic Button: Simply press the magic button to instantly generate your series automatically. +

*/} + +
+ +
+ ); +} + + + +const Icons = { + gitHub: () => ( + + + + ), + notion: () => ( + + + + + ), + openai: () => ( + + + + ), + googleDrive: () => ( + + + + + + + + + ), + whatsapp: () => ( + + + + + + + + + + + + + + + + + ), +}; diff --git a/app/layout.tsx b/app/layout.tsx index f7fa87e..a8db0aa 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,7 +1,18 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; +import { Poppins, Arimo, Outfit, Roboto } from 'next/font/google'; import "./globals.css"; +const poppins = Poppins({ + weight: ['300', '400', '500', '600', '700'], + subsets: ['latin'], +}); + +const arimo = Arimo({ + weight: ['400', '500', '600', '700'], + subsets: ['latin'], +}); + const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin"], @@ -25,7 +36,7 @@ export default function RootLayout({ return ( {children} diff --git a/app/page.tsx b/app/page.tsx index 9007252..61c0b4c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,101 +1,36 @@ +import { Partners } from "@/components/Companies/partners"; +import DashboardView from "@/components/dashboard-view"; +import Features from "@/components/Features/features"; +import { BentoFeatures } from "@/components/Features/features-bento"; +import ClickableFeatures from "@/components/Features/features-clickable"; +import Footer from "@/components/footer"; +import Hero from "@/components/Hero/hero"; +import HeroCarousal from "@/components/Hero/hero2"; +import Navbar from "@/components/Navbar/navbar"; +import HowItWorks from "@/components/How/how"; +import WhyChooseUs from "@/components/why"; +import SampleAgents from "@/components/Agents/sample-agents"; +import BusinessVerticals from "@/components/Agents/business-verticals"; +import { Newsletter } from "@/components/Newsletter/newsletter"; import Image from "next/image"; export default function Home() { return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{" "} - - app/page.tsx - - . -
  2. -
  3. Save and see your changes instantly.
  4. -
- -
- - Vercel logomark - Deploy now - - - Read our docs - -
-
- +
+ + + {/* + */} + + + + + + + + + +
); } diff --git a/app/series/layout.tsx b/app/series/layout.tsx new file mode 100644 index 0000000..497ce03 --- /dev/null +++ b/app/series/layout.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import { Poppins, Arimo, Outfit, Roboto } from 'next/font/google'; +import "../globals.css"; + +const poppins = Poppins({ + weight: ['300', '400', '500', '600', '700'], + subsets: ['latin'], +}); + +const arimo = Arimo({ + weight: ['400', '500', '600', '700'], + subsets: ['latin'], +}); + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/series/page.tsx b/app/series/page.tsx new file mode 100644 index 0000000..451c28f --- /dev/null +++ b/app/series/page.tsx @@ -0,0 +1,193 @@ +"use client"; + +import React from 'react'; +import Navbar from '@/components/Navbar/navbar'; +import Features from "@/components/Features/features"; +import Footer from "@/components/footer"; +import { HoverEffect } from '@/components/ui/card-hover-effect'; +import { Marquee } from '@/components/ui/marquee'; +import { TextGenerateEffect } from "@/components/ui/text-generate-effect"; +import { FaListUl, FaSearch, FaArrowsAlt, FaPlug, FaPaste, FaRegFileAlt } from 'react-icons/fa'; + +const heading = "Series - Create awesome workflows and connect them to AI without a single line of code" +const description = "Help in defining, managing, and improving processes. can make any kind of flow" +const image = "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4" + +const features = [ + { + head: "Connect the apps you already love", + desc: "Everyday supports over 100 apps, so you can tame the chaos and turn your tools into processes all in one place.", + button: "Explore all apps", + link: "#" + }, + { + head: "Start quickly with these pre-built templates from other Everyday users", + desc: "Automate your tasks in just a few minutes to reclaim countless hours of your time.", + button: "Explore more", + link: "#" + } +] + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +const contents = [ + { + title: "List", + description: + "With our drag and drop feature, anyone in your enterprise can build AI products effortlessly. Make AI an integral part of your business operations, irrespective of technical expertise.", + link: "https://stripe.com", + icon: FaListUl, // Add icon here + }, + { + title: "Search and Discovery", + description: + "Users can search for series based on keywords, categories, or tags making it way easier to manage all your creations and looking for them is not a hassle at all.", + link: "https://netflix.com", + icon: FaSearch, // Add icon here + }, + { + title: "Drag and drop", + description: + "Certainly! “Drag and drop” refers to a user interface interaction where a person can click on an item, drag it to a different location, and then release it to drop it there. This action is commonly used in various applications and websites to allow users to rearrange or manipulate content more intuitively.", + link: "https://enterprise.everydayseries.com/", + icon: FaArrowsAlt, // Add icon here + }, + { + title: "Integration", + description: + "User can integrate own apis. When we talk about users integrating their own APIs, we’re referring to the ability for users to incorporate their own custom Application Programming Interfaces (APIs) into a software application or system.", + link: "https://meta.com", + icon: FaPlug, // Add icon here + }, + { + title: "Copy and Paste", + description: + "Users have the capability to duplicate the flow or item and then paste it elsewhere within the system. No need to create the same thing twice", + link: "https://amazon.com", + icon: FaPaste, // Add icon here + }, + { + title: "Template", + description: + "User can save any flow as template and can reuse it later. Don’t be limited by your series. this feature enables users to save a sequence of actions or steps as a template for future use.", + link: "https://microsoft.com", + icon: FaRegFileAlt, // Add icon here + }, + // Add more features as needed +]; + +const featuresData = [ + { + title: "Create Series using Drag and Drop", + description: "Organize, connect, and track your goals using the GoalGrid. Stay aligned and in sync with your strategic objectives.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065418_xo3ezn.png", + }, + { + title: "Built for Enterprises", + description: "Everyday platform ensures enterprise-grade deployment, security, and data governance, all with the simplicity of one centrally managed platform.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065356_gbkov8.png", + }, + { + title: "Integrate your Workflows", + description: "Connect Everyday to your existing tools, integrate important business processes, and build more powerful applications.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065455_whfipm.png", + }, +]; + +const words = `This features allows even non tech guys to figure out the platform and create awesome workflows. Now that's mind-blowing.` + +export default function Series() { + return ( +
+ +
+

{heading}

+

{description}

+
+
+
+ {features.map((item, index) => ( +
+ {/* Feature Heading and Description */} +

{item.head}

+

{item.desc}

+ + {item.button} + + + {/* Conditional Rendering for Marquee After First Feature */} + {index === 0 && ( + <> + +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ {/* Add gradient effects for marquee */} +
+
+ + )} + + {/* Conditional Rendering for GIF After Second Feature */} + {index === 1 && ( +
+ Workflow GIF +
+ )} +
+ ))} +
+
+ +
+ + +
+
+ ★★★★★ +
+ +

+ Magic Button: Simply press the magic button to instantly generate your series automatically. +

+ +
+ +
+
+ ); +} diff --git a/app/template/layout.tsx b/app/template/layout.tsx new file mode 100644 index 0000000..497ce03 --- /dev/null +++ b/app/template/layout.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import { Poppins, Arimo, Outfit, Roboto } from 'next/font/google'; +import "../globals.css"; + +const poppins = Poppins({ + weight: ['300', '400', '500', '600', '700'], + subsets: ['latin'], +}); + +const arimo = Arimo({ + weight: ['400', '500', '600', '700'], + subsets: ['latin'], +}); + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/template/page.tsx b/app/template/page.tsx new file mode 100644 index 0000000..81f9a81 --- /dev/null +++ b/app/template/page.tsx @@ -0,0 +1,199 @@ +"use client"; + +import React from 'react'; +import Navbar from '@/components/Navbar/navbar'; +import Features from "@/components/Features/features"; +import Footer from "@/components/footer"; +import { HoverEffect } from '@/components/ui/card-hover-effect'; +import { Marquee } from '@/components/ui/marquee'; +import { FaListUl, FaSearch, FaArrowsAlt, FaPlug, FaPaste, FaRegFileAlt } from 'react-icons/fa'; +import { TextGenerateEffect } from '@/components/ui/text-generate-effect'; + +const heading = "Templates - Predesigned Workflows to Streamline Processes and Connect with AI Effortlessly" +const description = "Simplify process management with customizable templates that help automate tasks, improve efficiency, and unlock AI-powered innovations for any type of workflow." +const image = "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4" + +const features = [ + { + head: "Connect the apps you already love", + desc: "Everyday supports over 100 apps, so you can tame the chaos and turn your tools into processes all in one place.", + button: "Explore all apps", + link: "#" + }, + { + head: "Start quickly with these pre-built templates from other Everyday users", + desc: "Automate your tasks in just a few minutes to reclaim countless hours of your time.", + button: "Explore more", + link: "#" + } +] + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +const contents = [ + { + title: "Series Template", + description: + "It serves as pre-designed series of steps or processes that can be saved and reused multiple times. Users can make a list of own series template or can browse through a list of templates created by other users and can use them directly from the Series Template Marketplace.", + link: "https://stripe.com", + icon: FaListUl, // Add icon here + }, + { + title: "Diverse Templates", + description: + "The marketplace offers a wide range of series templates across industries and functions, including sales, marketing, customer support, and operations, to streamline workflows and boost efficiency.", + link: "https://netflix.com", + icon: FaSearch, // Add icon here + }, + { + title: "Search and Discovery", + description: + "Accelerate your operations with our pre-built AI workflows tailored for various business functions, from sales to marketing, operations, and more.
Users can search for templates based on keywords, categories, or tags.", + link: "https://enterprise.everydayseries.com/", + icon: FaSearch, // Add icon here + }, + { + title: "Template Customization", + description: + "Users can customize templates to fit their specific requirements or preferences by modifying steps, adding new components, or integrating AI features to create tailored workflows that meet unique business needs.", + link: "https://meta.com", + icon: FaPlug, // Add icon here + }, + { + title: "Unity In Workflows", + description: + "Eliminate silos with a powerful platform that harmoniously connects every aspect of your work, enabling seamless collaboration, streamlined communication, and unified processes across teams and departments.", + link: "https://amazon.com", + icon: FaPaste, // Add icon here + }, + { + title: "Marketplace", + description: + "Improve your productivity with our smart automations, transforming repetitive tasks into streamlined processes.User can browse through a list of series templates created by other users and can use it.", + link: "https://microsoft.com", + icon: FaRegFileAlt, // Add icon here + }, + // Add more features as needed +]; + +const featuresData = [ + { + title: "Create Series using Drag and Drop", + description: "Organize, connect, and track your goals using the GoalGrid. Stay aligned and in sync with your strategic objectives.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065418_xo3ezn.png", + }, + { + title: "Built for Enterprises", + description: "Everyday platform ensures enterprise-grade deployment, security, and data governance, all with the simplicity of one centrally managed platform.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065356_gbkov8.png", + }, + { + title: "Integrate your Workflows", + description: "Connect Everyday to your existing tools, integrate important business processes, and build more powerful applications.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065455_whfipm.png", + }, +]; + +const words = `"Discover the future of AI-integrated workflow management with Everyday. Transform your enterprise operations today."` + +export default function Series() { + return ( +
+ +
+

{heading}

+

{description}

+
+
+ + + +
+ +
+ + {/* FEATURES */} +
+ {features.map((item, index) => ( +
+ {/* Feature Heading and Description */} +

{item.head}

+

{item.desc}

+ + {item.button} + + + {/* Conditional Rendering for Marquee After First Feature */} + {index === 0 && ( + <> + +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ {/* Add gradient effects for marquee */} +
+
+ + )} + + {/* Conditional Rendering for GIF After Second Feature */} + {index === 1 && ( +
+ Workflow GIF +
+ )} +
+ ))} +
+ +
+
+ ★★★★★ +
+ + {/*

+ Magic Button: Simply press the magic button to instantly generate your series automatically. +

*/} + +
+ + +
+ +
+ ); +} diff --git a/app/tools/page.tsx b/app/tools/page.tsx new file mode 100644 index 0000000..84853c2 --- /dev/null +++ b/app/tools/page.tsx @@ -0,0 +1,177 @@ +"use client"; + +import React from 'react'; +import Navbar from '@/components/Navbar/navbar'; +import Features from "@/components/Features/features"; +import Footer from "@/components/footer"; +import { HoverEffect } from '@/components/ui/card-hover-effect'; +import { Marquee } from '@/components/ui/marquee'; +import { FaListUl, FaSearch, FaArrowsAlt, FaPlug, FaPaste, FaRegFileAlt } from 'react-icons/fa'; +import { TextGenerateEffect } from '@/components/ui/text-generate-effect'; + +const heading = "Tools - Automate Task Sequences for Streamlined Workflows"; +const description = "A programmed tool designed to execute a predefined sequence of tasks systematically, automating workflows and minimizing manual intervention."; +const image = "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4" + +const features = [ + { + head: "Connect the apps you already love", + desc: "Everyday supports over 100 apps, so you can tame the chaos and turn your tools into processes all in one place.", + button: "Explore all apps", + link: "#" + }, + { + head: "Start quickly with these pre-built templates from other Everyday users", + desc: "Automate your tasks in just a few minutes to reclaim countless hours of your time.", + button: "Explore more", + link: "#" + } +] + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +const contents = [ + { + title: "List", + description: + "Our proven approach enhances operational efficiency, delivers faster results, and keeps your team ahead of the curve.", + link: "https://stripe.com", + icon: FaListUl, // Add icon here + }, + { + title: "Assign/Complete", + description: + "Assign a task to a team member, or do it on your own. Complete flow of tasks now at your fingertips without the hassle of assigning and reassigning and increasing due dates.", + link: "https://cal.com", + icon: FaSearch, // Add icon here + }, + { + title: "History", + description: + "History captures tasks submitted by users, recording all associated data for reference. This way, you can go back and look at the progress so far.", + link: "https://enterprise.everydayseries.com/", + icon: FaSearch, // Add icon here + }, +]; + +const featuresData = [ + { + title: "Create Series using Drag and Drop", + description: "Organize, connect, and track your goals using the GoalGrid. Stay aligned and in sync with your strategic objectives.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065418_xo3ezn.png", + }, + { + title: "Built for Enterprises", + description: "Everyday platform ensures enterprise-grade deployment, security, and data governance, all with the simplicity of one centrally managed platform.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065356_gbkov8.png", + }, + { + title: "Integrate your Workflows", + description: "Connect Everyday to your existing tools, integrate important business processes, and build more powerful applications.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065455_whfipm.png", + }, +]; + +const words = `Require a little more? We offer optional add-on services for developing even more solutions.` + +export default function Series() { + return ( +
+ +
+

{heading}

+

{description}

+
+
+ +
+ +
+ + + + {/* FEATURES */} +
+ {features.map((item, index) => ( +
+ {/* Feature Heading and Description */} +

{item.head}

+

{item.desc}

+ + {item.button} + + + {/* Conditional Rendering for Marquee After First Feature */} + {index === 0 && ( + <> + +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ {/* Add gradient effects for marquee */} +
+
+ + )} + + {/* Conditional Rendering for GIF After Second Feature */} + {index === 1 && ( +
+ Workflow GIF +
+ )} +
+ ))} +
+ +
+
+ ★★★★★ +
+ +

+ Add-On Professional Services +

+ +
+ + +
+ +
+ ); +} diff --git a/app/writer/layout.tsx b/app/writer/layout.tsx new file mode 100644 index 0000000..497ce03 --- /dev/null +++ b/app/writer/layout.tsx @@ -0,0 +1,45 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import { Poppins, Arimo, Outfit, Roboto } from 'next/font/google'; +import "../globals.css"; + +const poppins = Poppins({ + weight: ['300', '400', '500', '600', '700'], + subsets: ['latin'], +}); + +const arimo = Arimo({ + weight: ['400', '500', '600', '700'], + subsets: ['latin'], +}); + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/writer/page.tsx b/app/writer/page.tsx new file mode 100644 index 0000000..113549f --- /dev/null +++ b/app/writer/page.tsx @@ -0,0 +1,171 @@ +"use client"; + +import React from 'react'; +import Navbar from '@/components/Navbar/navbar'; +import Features from "@/components/Features/features"; +import Footer from "@/components/footer"; +import { HoverEffect } from '@/components/ui/card-hover-effect'; +import { Marquee } from '@/components/ui/marquee'; +import { TextGenerateEffect } from "@/components/ui/text-generate-effect"; +import { FaListUl, FaSearch, FaArrowsAlt, FaPlug, FaPaste, FaRegFileAlt } from 'react-icons/fa'; + +const heading = "Writer - Your Platform for Documentation and Textual Content"; +const description = "A feature designed to fulfill written tasks by providing a dedicated space for creating and completing documentation and other textual content."; +const image = "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4" + +const features = [ + { + head: "Connect the apps you already love", + desc: "Everyday supports over 100 apps, so you can tame the chaos and turn your tools into processes all in one place.", + button: "Explore all apps", + link: "#" + }, + { + head: "Start quickly with these pre-built templates from other Everyday users", + desc: "Automate your tasks in just a few minutes to reclaim countless hours of your time.", + button: "Explore more", + link: "#" + } +] + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +const contents = [ + { + title: "Ask AI", + description: + "Ask Me Anything is an AI-based chat interface designed to provide responses and assistance across a wide range of inquiries and topics. Helps you research extensive topics without the hassle of going over the internet.", + link: "https://stripe.com", + icon: FaListUl, // Add icon here + }, + { + title: "Magic Continue", + description: + "Don't feel like typing, relax and let AI finish the job. Just type '..continue' and AI will continue to write where you left off, with full control of flow and limit in your hands.", + link: "https://netflix.com", + icon: FaSearch, // Add icon here + }, + { + title: "Download in Pdf", + description: + "Once you are done with the write up, download it as a Pdf file and save it to your device. Later pull that up if you need any editing done. Let us know, we'll take care of the rest.", + link: "https://enterprise.everydayseries.com/", + icon: FaArrowsAlt, // Add icon here + }, +]; + +const featuresData = [ + { + title: "Create Series using Drag and Drop", + description: "Organize, connect, and track your goals using the GoalGrid. Stay aligned and in sync with your strategic objectives.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065418_xo3ezn.png", + }, + { + title: "Built for Enterprises", + description: "Everyday platform ensures enterprise-grade deployment, security, and data governance, all with the simplicity of one centrally managed platform.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065356_gbkov8.png", + }, + { + title: "Integrate your Workflows", + description: "Connect Everyday to your existing tools, integrate important business processes, and build more powerful applications.", + imgSrc: "https://res.cloudinary.com/dezd109fz/image/upload/v1737595526/Screenshot_2025-01-23_065455_whfipm.png", + }, +]; + +const words = `“In the new era of technology we are looking to the future with a certain pride for our company and business. We consider all the drivers of two of main financial change.”` + +export default function Series() { + return ( +
+ +
+

{heading}

+

{description}

+
+
+
+ {features.map((item, index) => ( +
+ {/* Feature Heading and Description */} +

{item.head}

+

{item.desc}

+ + {item.button} + + + {/* Conditional Rendering for Marquee After First Feature */} + {index === 0 && ( + <> + +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+ {/* Add gradient effects for marquee */} +
+
+ + )} + + {/* Conditional Rendering for GIF After Second Feature */} + {index === 1 && ( +
+ Workflow GIF +
+ )} +
+ ))} +
+
+ +
+ + +
+
+ ★★★★★ +
+ + {/*

+ Magic Button: Simply press the magic button to instantly generate your series automatically. +

*/} + +
+ +
+
+ ); +} diff --git a/components.json b/components.json new file mode 100644 index 0000000..bcec1f9 --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/components/Agents/business-verticals.tsx b/components/Agents/business-verticals.tsx new file mode 100644 index 0000000..4649695 --- /dev/null +++ b/components/Agents/business-verticals.tsx @@ -0,0 +1,160 @@ +"use client"; +import { useState } from 'react'; +import { + ChevronDown, + ShoppingCart, + HeartPulse, + Wallet, + GraduationCap, + Home, + Plane, + Scale, + Megaphone +} from 'lucide-react'; + +const verticals = [ + { + icon: , + title: "Retail & E-commerce", + description: "Enhance customer service with real-time chat support, personalized shopping experiences, and seamless order tracking.", + gradient: "from-pink-500/20 to-purple-500/20" + }, + { + icon: , + title: "Healthcare & Wellness", + description: "Improve patient care through virtual consultations, appointment scheduling, and instant access to health resources.", + gradient: "from-blue-500/20 to-cyan-500/20" + }, + { + icon: , + title: "Finance & Banking", + description: "Empower customers with financial insights, automated account management, and personalized advisory services.", + gradient: "from-green-500/20 to-emerald-500/20" + }, + { + icon: , + title: "Education & eLearning", + description: "Revolutionize learning with interactive tutoring, course guidance, resource recommendations, and performance tracking.", + gradient: "from-orange-500/20 to-yellow-500/20" + }, + { + icon: , + title: "Real Estate & Property Management", + description: "Streamline property listings, offer virtual tours, schedule viewings, and provide detailed market insights.", + gradient: "from-purple-500/20 to-indigo-500/20" + }, + { + icon: , + title: "Travel & Hospitality", + description: "Enhance guest experiences with AI-driven booking assistance, itinerary management, and personalized recommendations.", + gradient: "from-cyan-500/20 to-blue-500/20" + }, + { + icon: , + title: "Legal & Consulting", + description: "Simplify client communications, document management, and consultation scheduling for faster service delivery.", + gradient: "from-violet-500/20 to-purple-500/20" + }, + { + icon: , + title: "Creative & Marketing", + description: "Boost engagement through dynamic content creation, campaign management, and customer insights analytics.", + gradient: "from-rose-500/20 to-pink-500/20" + } +]; + +export default function BusinessVerticals() { + const [expandedIndex, setExpandedIndex] = useState(null); + + return ( +
+
+
+

+ Transform Your Business Verticals +

+

+ Our platform isn't one-size-fits-all—each industry can harness the power of AI to improve efficiency and drive growth. +

+
+ +
+ {verticals.map((vertical, index) => ( +
+ {/* Main row - always visible */} +
setExpandedIndex(expandedIndex === index ? null : index)} + > +
+ {/* Icon */} +
+ {vertical.icon} +
+ + {/* Title */} +

{vertical.title}

+ + {/* Expand/Collapse icon */} + +
+ + {/* Expanded content */} +
+
+
+ {vertical.description} +
+ + {/* Action button */} +
+ +
+
+
+
+
+ ))} +
+ + {/* Bottom gradient line */} +
+
+
+
+
+ ); +} \ No newline at end of file diff --git a/components/Agents/sample-agents.tsx b/components/Agents/sample-agents.tsx new file mode 100644 index 0000000..63f76c2 --- /dev/null +++ b/components/Agents/sample-agents.tsx @@ -0,0 +1,155 @@ +"use client"; +import { useState } from 'react'; +import { + ShoppingCart, + HeartPulse, + Wallet, + GraduationCap, + Home, + Briefcase, + ArrowRight, + Bot +} from 'lucide-react'; + +const agents = [ + { + title: "ShopSmart Assistant", + category: "Retail & E-commerce", + description: "Engages customers, answers FAQs, provides personalized product recommendations, and streamlines the purchase process.", + icon: , + gradient: "from-pink-500/20 to-purple-500/20" + }, + { + title: "HealthMate Advisor", + category: "Healthcare", + description: "Offers immediate healthcare information, assists in appointment scheduling, and guides patients through available services.", + icon: , + gradient: "from-blue-500/20 to-cyan-500/20" + }, + { + title: "FinGuide Bot", + category: "Finance & Banking", + description: "Provides personalized financial advice, handles customer queries, assists with account management, and schedules consultations.", + icon: , + gradient: "from-green-500/20 to-emerald-500/20" + }, + { + title: "LearnHub Tutor", + category: "Education", + description: "Facilitates course enrollment, answers academic queries, recommends learning resources, and tracks student progress.", + icon: , + gradient: "from-orange-500/20 to-yellow-500/20" + }, + { + title: "HomeFinder Agent", + category: "Real Estate", + description: "Showcases property listings, schedules viewings, offers virtual tours, and provides real-time support for potential buyers.", + icon: , + gradient: "from-purple-500/20 to-indigo-500/20" + }, + { + title: "ProConnect Advisor", + category: "Professional Services", + description: "Streamlines client interactions, manages consultation scheduling, and delivers tailored content to boost engagement.", + icon: , + gradient: "from-teal-500/20 to-blue-500/20" + } +]; + +export default function SampleAgents() { + const [activeAgent, setActiveAgent] = useState(null); + + return ( +
+
+
+

See Our AI Agents in Action

+

+ Our platform makes it easy to create AI agents that engage customers, streamline operations, and drive revenue. + Check out some sample agents built with our tools: +

+
+ +
+ {agents.map((agent, index) => ( +
setActiveAgent(index)} + onMouseLeave={() => setActiveAgent(null)} + > + {/* Card Background */} +
+ + {/* Card Content */} +
+ {/* Category Tag */} +
+ + {agent.category} +
+ + {/* Icon */} +
+ {agent.icon} +
+ + {/* Title & Description */} +

{agent.title}

+

{agent.description}

+ + {/* Try Agent Button */} + +
+ + {/* Decorative Elements */} +
+
+ ))} +
+ + {/* CTA Button */} +
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/components/Companies/partners.tsx b/components/Companies/partners.tsx new file mode 100644 index 0000000..393cca3 --- /dev/null +++ b/components/Companies/partners.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import { Marquee } from "@/components/ui/marquee"; + +const images = [ + "https://www.zarla.com/images/starbucks-logo-2400x2400-20220513.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/apple-logo-2400x2400-20220512-3.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/google-logo-2400x2400-20220519.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/mercedes-benz-logo-2400x2400-20220513-2.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/walmart-logo-2400x2400-20223105.png?crop=1:1,smart&width=150&dpr=2", + "https://www.zarla.com/images/pepsi-logo-2400x2400-20220513-1.png?crop=1:1,smart&width=150&dpr=2", +]; + +export function Partners() { + return ( +
+
+

Partners

+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+
+
+
+
+ +
+

Customers

+
+ +
+ {images.map((img, index) => ( + {`Avatar + ))} +
+
+
+
+
+
+
+ ); +} diff --git a/components/Features/features-bento.tsx b/components/Features/features-bento.tsx new file mode 100644 index 0000000..7d29a42 --- /dev/null +++ b/components/Features/features-bento.tsx @@ -0,0 +1,359 @@ +"use client"; +import { cn } from "@/lib/utils"; +import React, { useState } from "react"; +import { BentoGrid, BentoGridItem } from "../ui/bento-grid"; +import { + IconBoxAlignRightFilled, + IconClipboardCopy, + IconFileBroken, + IconSignature, + IconTableColumn, +} from "@tabler/icons-react"; +import { motion, AnimatePresence } from "framer-motion"; +import { FaPlay } from "react-icons/fa"; + +export function BentoFeatures() { + const variants = { + hidden: { opacity: 0, y: 50 }, + visible: { opacity: 1, y: 0 }, + }; + + return ( + +
+ + All-in-One Platform for AI-Powered Services + +
+ + + {items.map((item, i) => ( + p:text-lg] ", item.className)} + icon={item.icon} + /> + ))} + +
+ ); +} + +const SkeletonOne = () => { + const [isHovered, setIsHovered] = useState(false); + + return ( + setIsHovered(true)} + onHoverEnd={() => setIsHovered(false)} + > +
+ + No Coding Needed + + + + Learn more + + → + + +
+ +
+ ); +}; + +const SkeletonTwo = () => { + const [isTyping, setIsTyping] = useState(false); + + return ( + setIsTyping(true)} + onHoverEnd={() => setIsTyping(false)} + > +
+
+ + {isTyping && ( + + + console.log("Hello World!"); + + + | + + + )} + +
+ +
+
+
+ +
+ + ); +}; + +const SkeletonThree = () => { + const [isHovered, setIsHovered] = useState(false); + + return ( + setIsHovered(true)} + onHoverEnd={() => setIsHovered(false)} + > +
+ +
+
+ + $0 + +
+ +
+
+ + $499 + +
+ +
+
+ ); +}; + +const SkeletonFour = () => { + return ( + +
+ + +
+ + + + Form Builder +
+
+ + + +
+ + + + Newsletter Creator +
+
+
+
+ ); +}; + + +// const SkeletonFive = () => { +// return ( +// +//
+//
+// +//
+//
+// +//
+//
+// +//
+//
+// +//
+//
+//
+// ); +// }; + +const items = [ + { + title: "Drag & Drop No-Code Builder", + description: ( + + Easily create robust MicroSaaS applications using our intuitive drag-and-drop interface. Empower yourself to design custom workflows without writing a single line of code, streamlining operations and enhancing efficiency. + + ), + header: , + className: "md:col-span-1 md:row-span-2", + icon: , + }, + { + title: "Writing Simplified", + description: ( + + Transform your writing process with the power of AI. Use the built-in AI writer to generate, refine, or continue content effortlessly. + + ), + header: , + className: "md:col-span-1", + icon: , + }, + { + title: "Monetize Smarter", + description: ( + + Launch your own community or tap into our marketplace to sell AI subscriptions to SMBs and beyond. Transform your ideas into profitable ventures. + + ), + header: , + className: "md:col-span-1", + icon: , + }, + { + title: "Integrated Creative Tools", + description: ( + + From forms to video editors, AI writers to newsletter creators, we've got you covered. Access a comprehensive suite of tools designed to enhance your creative workflow. + + ), + header: , + className: "md:col-span-2", + icon: , + }, + // { + // title: "Smart Templates", + // description: ( + // + // Access a library of intelligent templates that adapt to your needs. Each template is powered by AI to provide personalized starting points. + // + // ), + // header: , + // className: "md:col-span-1", + // icon: , + // } +]; diff --git a/components/Features/features-clickable.tsx b/components/Features/features-clickable.tsx new file mode 100644 index 0000000..5248495 --- /dev/null +++ b/components/Features/features-clickable.tsx @@ -0,0 +1,108 @@ +"use client"; + +import React, { useState } from 'react'; +import { motion } from 'framer-motion'; + +// Define the Item interface +interface Item { + id: number; + media: string; // URL for image or video + title: string; + description: string; +} + +// Define the items array with type annotations +const items: Item[] = [ + { + id: 1, + media: "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860621/Homepage%20%E2%80%94%20Sept%202024/sc01_HP_240917_Connect_v01_edm2pd.mp4", + title: "Product Management", + description: + "Coordinate and manage product sprints in collaboration with cross-functional team members, ensuring efficient planning and execution. Work closely with partners from different teams to iterate rapidly, align goals, and drive continuous improvement throughout the development process.", + }, + { + id: 2, + media: "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860622/Homepage%20%E2%80%94%20Sept%202024/sc02_HP_240917_Automate_v01_tnxxyr.mp4", + title: "Marketing", + description: + "Develop and implement marketing strategies to promote products and services, analyze market trends, and identify target audiences. Collaborate with sales teams to create effective campaigns that drive brand awareness and customer engagement while measuring the effectiveness of marketing initiatives.", + }, + { + id: 3, + media: "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4", + title: "Sales", + description: + "Drive revenue growth by identifying potential clients, building relationships, and closing sales deals. Develop sales strategies that align with company goals, deliver presentations to prospective customers, and provide exceptional customer service to ensure client satisfaction and retention.", + }, + { + id: 4, + media: "https://res.cloudinary.com/zapier-media/video/upload/q_auto:best/f_auto/v1726860625/Homepage%20%E2%80%94%20Sept%202024/sc03_HP_240917_Power-with-AI_v02_supxar.mp4", + title: "HR", + description: + "Manage recruitment processes, employee relations, and organizational development initiatives. Ensure compliance with labor laws and regulations while fostering a positive workplace culture that promotes employee engagement and professional growth. Implement training programs to enhance workforce capabilities and performance.", + }, +]; + +export default function Cliclables() { + const [selectedItem, setSelectedItem] = useState(items[0]); + + const handleButtonClick = (item: Item) => { + setSelectedItem(item); + }; + + return ( +
+ +
+ {/* Image section */} + + +
+ + {/* Navigation buttons at the top */} +
+ {items.map((item) => ( + + ))} +
+ +
+ {/* Description section */} + +

{selectedItem.title}

+

+ {selectedItem.description} +

+
+
+ +
+ ); +} diff --git a/components/Features/features.tsx b/components/Features/features.tsx new file mode 100644 index 0000000..06971c8 --- /dev/null +++ b/components/Features/features.tsx @@ -0,0 +1,522 @@ +"use client"; +import React, { useState, useEffect } from 'react'; +import { motion } from 'framer-motion'; + +const VectorNoCode = () => { + const [step, setStep] = useState(0); + + const nodes = [ + { + icon: ( + + + + ), + label: "Input" + }, + { + icon: ( + + + + ), + label: "Process" + }, + { + icon: ( + + + + ), + label: "Output" + } + ]; + + useEffect(() => { + const timer = setTimeout(() => { + setStep((prev) => (prev + 1) % 3); + }, 3000); + return () => clearTimeout(timer); + }, [step]); + + return ( + +
+ {nodes.map((node, i) => ( + + {/* Node container */} + = i ? 1.1 : 1, + opacity: step >= i ? 1 : 0.5, + }} + transition={{ + duration: 0.5, + type: "spring", + }} + > + {/* Node */} + = i ? "rgba(139, 92, 246, 0.4)" : "rgba(139, 92, 246, 0.2)" + }} + transition={{ duration: 0.5 }} + > + {node.icon} + + + {/* Label */} + = i ? 1 : 0.5 + }} + > + {node.label} + + + + {/* Connection line */} + {i < 2 && ( + i ? 1 : 0, + }} + transition={{ + duration: 1, + ease: "easeInOut" + }} + > + {/* Moving dot */} + i ? [0, 200] : 0, + opacity: step > i ? [1, 0] : 0, + scale: step > i ? [1, 1.5, 1] : 1 + }} + transition={{ + duration: 1, + ease: "easeInOut" + }} + /> + + )} + + ))} +
+
+ ); +}; + +const VectorCreativeSuite = () => ( + +
+ {/* Editor Panel */} +
+
+ + + +
+ +
+ {[...Array(5)].map((_, i) => ( + + ))} +
+
+ + {/* Preview Panel */} +
+ + + + +
+
+
+); + +const VectorCommunity = () => { + // Reduced number of points + const gridPoints = Array.from({ length: 15 }, (_, i) => ({ + id: i, + x: (i % 5) * 100 + 80, + y: Math.floor(i / 5) * 100 + 80, + })); + + return ( + +
+ {/* Connection lines */} + + {gridPoints.map((point, i) => ( + gridPoints.slice(i + 1).map((target, j) => { + const distance = Math.sqrt( + Math.pow(point.x - target.x, 2) + + Math.pow(point.y - target.y, 2) + ); + // Increased connection distance for wider coverage + if (distance < 240) { // Increased distance to maintain connections + return ( + + ); + } + return null; + }) + ))} + + + {/* User icons */} + {gridPoints.map((point, i) => ( + +
+ + + +
+ + + ))} + + {/* Central hub - made larger */} + + + + + +
+
+); +}; + +const VectorMonetization = () => { + const subscriptionTiers = [ + { name: "Basic", price: "49", color: "from-blue-500/30 to-purple-500/30" }, + { name: "Pro", price: "199", color: "from-purple-500/30 to-pink-500/30" }, + { name: "Enterprise", price: "499", color: "from-pink-500/30 to-orange-500/30" } + ]; + + return ( + +
+
+ {/* Background rings */} + {[...Array(3)].map((_, i) => ( + + ))} + + {/* Subscription tiers */} + {subscriptionTiers.map((tier, i) => ( + + + {tier.name} + + + ${tier.price} + + + per month + + + ))} + + {/* Floating elements */} + {[...Array(5)].map((_, i) => ( + +
+ + ))} +
+
+ +); +}; + +const defaultFeaturesData = [ + { + title: "No-Code AI Builder", + description: "Design, test, and deploy AI agents effortlessly. Create powerful AI applications without any coding knowledge required.", + vector: , + }, + { + title: "Creative Suite", + description: "Access powerful forms, video editing, and content creation tools to bring your vision to life. Transform your ideas into polished, professional content.", + vector: , + }, + { + title: "Community & Marketplace", + description: "Grow your audience on your own platform or join our marketplace to reach thousands of SMBs. Build and nurture your community while expanding your reach.", + vector: , + }, + { + title: "Subscription-Based Monetization", + description: "Generate recurring revenue with our seamless subscription integration. Turn your AI solutions into a sustainable business model.", + vector: , + }, +]; + +interface Feature { + title: string; + description: string; + vector: React.ReactNode; +} + +export default function Features({ featuresData }: { featuresData?: Feature[] }) { + const dataToUse = featuresData || defaultFeaturesData; + + return ( +
+ + Everything You Need to Create, Manage, and Monetize Your AI Offerings + + +
{/* Increased spacing between features */} + {dataToUse.map((feature, index) => ( + +
+
+

{feature.title}

+

{feature.description}

+ + Learn More + +
+
+
+ {feature.vector} +
+
+ ))} +
+
+ ); +} diff --git a/components/Hero/hero.tsx b/components/Hero/hero.tsx new file mode 100644 index 0000000..feadd5e --- /dev/null +++ b/components/Hero/hero.tsx @@ -0,0 +1,60 @@ +"use client"; +import React, { useRef } from 'react'; +import AnimatedShinyText from '../ui/animated-shiny-text'; +import { ArrowRightIcon } from 'lucide-react'; +import { cn } from "@/lib/utils"; +import { motion, useInView } from 'framer-motion'; + +export default function Hero() { + // Create a ref for the container element + const ref = useRef(null); + // Use useInView hook to detect when the element is in viewport + const isInView = useInView(ref, { once: true }); + + // Left right motion variants defined for the animations + const leftVariants = { + hidden: { x: -100, opacity: 0 }, + visible: { x: 0, opacity: 1 }, + }; + + const rightVariants = { + hidden: { x: 100, opacity: 0 }, + visible: { x: 0, opacity: 1 }, + }; + + return ( +
+ +
+ + ✨ Introducing Everyday Series AI + + +
+

Automate your operations and scale businesses

+

Empower your business with Micro-SaaS applications—designed by you, no coding required. Craft powerful workflows with our intuitive drag-and-drop builder, streamline approvals, and bring your ideas to life.

+ +
+ + + Hero Image + +
+ ); +} diff --git a/components/Hero/hero2.tsx b/components/Hero/hero2.tsx new file mode 100644 index 0000000..a70815d --- /dev/null +++ b/components/Hero/hero2.tsx @@ -0,0 +1,143 @@ +"use client"; +import React from 'react'; +import { useState, useEffect } from 'react'; +import { ChevronLeft, ChevronRight } from 'lucide-react'; + +const slides = [ + { + title: "Turn Your Expertise into Intelligent AI Agents", + description: "Effortlessly convert your existing services into AI-powered agents. Empower your business with innovative, interactive tools that open new revenue streams.", + buttonText: "Get Started Today", + buttonLink: "#", + image: "https://images.unsplash.com/photo-1600880292203-757bb62b4baf?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + overlayClass: "bg-black/60" // Semi-transparent overlay for better text readability + }, + { + title: "Design Without Coding", + description: "Leverage our drag-and-drop builder to create custom AI solutions—no programming skills required. Your ideas, our platform, endless possibilities.", + buttonText: "Explore the Builder", + buttonLink: "#", + image: "https://images.unsplash.com/photo-1531497865144-0464ef8fb9a9?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + overlayClass: "bg-black/60" + }, + { + title: "Unleash Your Creative Potentialr", + description: "From forms and video editing to AI writing and newsletters, our fully integrated creative suite brings your vision to life with the power of AI.", + buttonText: "Discover Our Tools", + buttonLink: "#", + image: "https://images.unsplash.com/photo-1603201667141-5a2d4c673378?q=80&w=1796&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + overlayClass: "bg-black/60" + }, + { + title: "Monetize Your Skills & Services", + description: "Build your own community or tap into our marketplace to sell AI-powered subscriptions to SMBs. Turn your expertise into a recurring revenue engine.", + buttonText: "Learn How to Monetize", + buttonLink: "#", + image: "https://plus.unsplash.com/premium_photo-1661338826350-49e4fd1b004e?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + overlayClass: "bg-black/60" + }, + { + title: "Step Into the Future of Business", + description: "Embrace the next era of innovation. Transform, scale, and thrive with our AI-powered platform that adapts to your business needs.", + buttonText: "Start Your Free Trial", + buttonLink: "#", + image: "https://plus.unsplash.com/premium_photo-1661425631372-6f9530fc211f?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + overlayClass: "bg-black/60" + } +]; + +const HeroCarousel = () => { + const [currentSlide, setCurrentSlide] = useState(0); + + useEffect(() => { + const timer = setInterval(() => { + setCurrentSlide((prev) => (prev + 1) % slides.length); + }, 10000); + + return () => clearInterval(timer); + }, []); + + const nextSlide = () => { + setCurrentSlide((prev) => (prev + 1) % slides.length); + }; + + const prevSlide = () => { + setCurrentSlide((prev) => (prev - 1 + slides.length) % slides.length); + }; + + return ( +
+
+ {/* Slides */} +
+ {slides.map((slide, index) => ( +
+ {/* Background Image */} +
+ {/* Overlay */} +
+ + {/* Content */} +
+
+

+ {slide.title} +

+

+ {slide.description} +

+ + {slide.buttonText} + +
+
+
+ ))} +
+ + {/* Navigation Buttons */} + + + + {/* Slide Indicators */} +
+ {slides.map((_, index) => ( +
+
+
+ ); +}; + +export default HeroCarousel; \ No newline at end of file diff --git a/components/How/how.tsx b/components/How/how.tsx new file mode 100644 index 0000000..57da92f --- /dev/null +++ b/components/How/how.tsx @@ -0,0 +1,138 @@ +"use client"; +import { useState, useEffect } from 'react'; +import { ArrowRight, Wand2, Palette, Rocket } from 'lucide-react'; + +const steps = [ + { + icon: , + title: "Convert & Enhance Your Services", + description: "Use our intuitive tools to turn your current offerings into interactive AI agents", + color: "from-purple-500/30 to-blue-500/30" + }, + { + icon: , + title: "Customize Your Experience", + description: "Leverage our drag-and-drop builder and creative suite (forms, video editor, writer, newsletter) to tailor your AI solutions", + color: "from-blue-500/30 to-purple-500/30" + }, + { + icon: , + title: "Launch & Monetize", + description: "Build your community or list your AI services on our marketplace—boost your revenue by tapping into a growing market of SMBs seeking smart solutions", + color: "from-purple-500/30 to-pink-500/30" + } +]; + +export default function HowItWorks() { + const [activeStep, setActiveStep] = useState(0); + const [isHovering, setIsHovering] = useState(false); + + useEffect(() => { + if (isHovering) return; + const timer = setInterval(() => { + setActiveStep((prev) => (prev + 1) % steps.length); + }, 5000); + return () => clearInterval(timer); + }, [isHovering]); + + return ( +
+
+
+

How It Works

+

Transform your business with AI in three simple steps

+
+ +
+ {/* Connecting line */} +
+
+
+
+
+
+ +
+ {steps.map((step, index) => ( +
{ + setIsHovering(true); + setActiveStep(index); + }} + onMouseLeave={() => setIsHovering(false)} + > +
+ {/* Icon container */} +
+
+
+ {step.icon} +
+
+ + {/* Content */} +
+

{step.title}

+

{step.description}

+
+
+ + {/* Step indicator */} +
+ Step {index + 1} + {index < steps.length - 1 && ( + + )} +
+
+ ))} +
+
+ +
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/components/MouseParallax.tsx b/components/MouseParallax.tsx new file mode 100644 index 0000000..ac7564d --- /dev/null +++ b/components/MouseParallax.tsx @@ -0,0 +1,74 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import React, { useRef, useState, useEffect } from "react"; + +export const MouseParallaxImage = ({ + image, + title, + className, +}: { + image: string; + title: string; + className?: string; +}) => { + const ref = useRef(null); + const [isMouseEntered, setIsMouseEntered] = useState(false); + + const handleMouseMove = (e: React.MouseEvent) => { + if (!ref.current) return; + const { left, top, width, height } = ref.current.getBoundingClientRect(); + const x = (e.clientX - left - width / 2) / 25; // Adjust sensitivity + const y = (e.clientY - top - height / 2) / 25; // Inverted for natural feel + ref.current.style.transform = `rotateY(${x}deg) rotateX(${y}deg)`; + }; + + const handleMouseEnter = () => { + setIsMouseEntered(true); + if (ref.current) { + ref.current.style.transition = 'transform 0.2s ease-out'; + } + }; + + const handleMouseLeave = () => { + setIsMouseEntered(false); + if (ref.current) { + ref.current.style.transform = `rotateY(0deg) rotateX(0deg)`; + ref.current.style.transition = 'transform 0.2s ease-out'; + } + }; + + // Reset transform when mouse leaves + useEffect(() => { + if (!ref.current) return; + if (!isMouseEntered) { + ref.current.style.transform = `rotateY(0deg) rotateX(0deg)`; + } + }, [isMouseEntered]); + + return ( +
+
+ {title} +
+
+ ); +}; diff --git a/components/Navbar/MobileMenu.tsx b/components/Navbar/MobileMenu.tsx new file mode 100644 index 0000000..d672669 --- /dev/null +++ b/components/Navbar/MobileMenu.tsx @@ -0,0 +1,34 @@ +// MobileMenu.tsx +import React from 'react'; +import { FaAngleDown } from "react-icons/fa"; + +interface MobileMenuProps { + show: boolean; + toggle: () => void; +} + +const MobileMenu: React.FC = ({ show, toggle }) => { + return ( +
+
+ +
+
    +
  • + Product +
  • +
  • + Solutions +
  • +
  • + Pricing +
  • +
  • + Resources +
  • +
+
+ ); +}; + +export default MobileMenu; diff --git a/components/Navbar/dropdowns.tsx b/components/Navbar/dropdowns.tsx new file mode 100644 index 0000000..d090c35 --- /dev/null +++ b/components/Navbar/dropdowns.tsx @@ -0,0 +1,474 @@ +import React from 'react'; +import { CgWebsite } from 'react-icons/cg'; +import { FaBook, FaBookmark, FaMicrophone, FaMoneyBillAlt, FaPen, FaServicestack, FaStore, FaUserCog, FaUserPlus, FaVideo } from 'react-icons/fa'; +import { GiArtificialIntelligence } from 'react-icons/gi'; +import { GoWorkflow } from 'react-icons/go'; +import { GrTemplate } from 'react-icons/gr'; +import { IoIosApps, IoIosDocument, IoIosMail, IoMdAnalytics, IoMdArrowRoundForward } from 'react-icons/io'; +import { IoFlash, IoText } from 'react-icons/io5'; +import { LuWorkflow } from 'react-icons/lu'; +import { MdSecurity, MdTranslate } from 'react-icons/md'; +import { RiMoneyEuroBoxFill, RiProductHuntFill } from 'react-icons/ri'; +import { VscTools } from 'react-icons/vsc'; + +const productItems = [ + { + category: 'FEATURES', + list: [ + { + name: 'Series', + description: 'Drag - drop and create amazing workflows', + icon: , + link: '/series', + }, + { + name: 'Template', + description: 'Create awesome templates for easier integration', + icon: , + link: '/template', + }, + { + name: 'Tools', + description: 'For the non-techies, just input and output', + icon: , + link: '/tools', + }, + { + name: 'Click Video', + description: 'Create interactive videos for your clients', + icon: , + link: '/click-video', + }, + { + name: 'Writer', + description: 'Write with ease with built in AI text generator', + icon: , + link: '/writer', + }, + { + name: 'Website', + description: '', + icon: , + link: '/website', + }, + ], + }, + { + category: 'CAPABILITIES', + list: [ + { + name: 'App Integration', + description: 'Integrate your workflows in your apps', + icon: , + link: '/integrations', + }, + { + name: 'Data Syncing', + description: 'Keep your data up-to-date across platforms.', + icon: , + link: '/data-syncing', + }, + { + name: 'Analytics Dashboard', + description: 'Visualize your workflow performance.', + icon: , + link: '/analytics-dashboard', + }, + ], + }, + { + category: "WHAT'S NEW", + list: [ + { + name: 'Improved Workflow Builder', + description: 'Build smarter workflows faster with new updates.', + icon: , + link: '/workflow-builder', + }, + { + name: 'Enhanced AI Writer', + description: 'Generate better, smarter content effortlessly.', + icon: , + link: '/ai-writer', + }, + { + name: 'Marketplace Expansion', + description: 'Explore more tools and integrations today.', + icon: , + link: '/marketplace-expansion', + }, + { + name: 'Upgraded Video Interactivity', + description: 'Create dynamic, engaging videos with ease.', + icon: , + link: '/video-interactivity', + }, + ], + }, +]; + +export const ProductDropdown: React.FC = () => { + return ( +
+
+ {/* Main Content */} +
+
+

Everyday Series Workflows

+

No code automation and much more.

+
+
+ {/* Render Features and Capabilities */} + {productItems.slice(0, 2).map((itemGroup, index) => ( +
+

{itemGroup.category}

+
    + {itemGroup.list.map((item, idx) => ( +
  • + {item.icon} +
    window.location.href = item.link} // Navigate on click + > +

    {item.name}

    +

    + {item.description} +

    +
    +
  • + ))} +
+ +
+ ))} +
+
+ {/* What's New Section */} +
+

What's New!

+
    + {productItems.find(group => group.category === "WHAT'S NEW")?.list.map((item, index) => ( +
  • + {item.icon} +
    +

    {item.name}

    +

    {item.description}

    +
    +
  • + ))} +
+
+
+ + {/* Footer Links */} +
+

Explore templates

+

Explore tools

+

Join Everyday Free Access

+
+
+ ); +}; + +// Solutions Dropdown Component +export const SolutionsDropdown: React.FC = () => { + return ( +
+
+
+
+

Explore AI driven solutions.

+

Create AI solutions for your clients and enterprises.

+
+
+
+

Overview

+
    +
  • + +
    +

    Marketing

    +

    Revolutionize campaigns with AI-driven automation

    +
    +
  • +
  • + +
    +

    Product Manager

    +

    Streamline workflows and build smarter, faster products

    +
    +
  • +
  • + +
    +

    Sales

    +

    Close deals faster with seamless, automated tools

    +
    +
  • +
  • + +
    +

    Finance

    +

    Optimize processes and track budgets with ease

    +
    +
  • +
  • + +
    +

    HR

    +

    Empower your team with smarter workflow solutions

    +
    +
  • +
+
+ +
+

Enterprises

+
    +
  • + +
    +

    Services

    +

    Transform operations with AI-driven service solutions

    +
    +
  • +
  • + +
    +

    Security

    +

    Protect your data with next-gen secure workflows

    +
    +
  • +
+
+ {/* */} +
+

Users

+
    +
  • +
    +

    For Learners

    +

    Learn smarter with intuitive tools and AI support

    +
    +
  • +
  • +
    +

    For Coders

    +

    Code faster and build better with powerful tools

    +
    +
  • +
  • +
    +

    For Enterprises

    +

    Scale operations with solutions built for enterprise growth

    +
    +
  • + +
+
+
+
+
+

Latest AI tools!

+
+
    +
  • + +
    +

    Story Book

    +

    Generate a story using the power of AI.

    +
    +
  • +
  • + +
    +

    Audio Genie

    +

    Generate and modify audio content effortlessly.

    +
    +
  • +
  • + +
    +

    Custom Translator

    +

    Neural Text translation system tailored to your needs.

    +
    +
  • +
  • + +
    +

    Text Classification

    +

    Categorise text into user defined classes.

    +
    +
  • +
  • View More
  • +
+
+
+
+
+

Explore templates

+

Explore tools

+

Join Everyday Free Access

+
+
+ ); +}; + +// Resources Dropdown Component +export const ResourcesDropdown: React.FC = () => { + return ( +
+
+
+
+

Curated Resources to Get You Started.

+

Documents, videos, communities and lot more.

+
+
+
+

Learn

+
    +
  • + +
    +

    Demo

    +

    Experience the power of automation-live now

    +
    +
  • +
  • + +
    +

    Blogs

    +

    Innovative insights to empower your next move

    +
    +
  • +
  • + +
    +

    Webinars

    +

    Learn, connect, and grow with expert-led sessions

    +
    +
  • +
  • + +
    +

    Guides

    +

    Step-by-step tools to unlock your potential

    +
    +
  • + +
+
+ +
+

Build

+
    +
  • + +
    +

    API Doc

    +

    Comprehensive API docs for seamless integrations

    +
    +
  • +
  • + +
    +

    Videos

    +

    Engage with interactive, on-demand video solutions

    +
    +
  • +
+

Services

+
    +
  • + +
    +

    Documentations

    +

    Explore detailed resources to optimize your workflows

    +
    +
  • +
  • + +
    +

    Enterprise Contact

    +

    Partner with us to scale your enterprise

    +
    +
  • + +
+
+
+

Resources

+
    +
  • + +
    +

    Books

    +

    Discover knowledge to inspire and empower action

    +
    +
  • +
  • + +
    +

    Agents

    +

    Your personalized support, every step of the way

    +
    +
  • +
  • + +
    +

    Podcasts

    +

    Tune in for fresh perspectives and expert advice

    +
    +
  • +
  • + +
    +

    Newsletters

    +

    Stay updated with the latest insights and tools

    +
    +
  • +
  • + +
    +

    Bookmarks

    +

    Save and revisit your go-to resources anytime

    +
    +
  • +
+
+
+

Connect

+
    +
  • +
    +

    Developer Connect

    +

    Empower developers to create and integrate seamlessly

    +
    +
  • +
  • +
    +

    Community

    +

    Join a network of creators and innovators

    +
    +
  • +
  • +
    +

    Meetups

    +

    Collaborate, learn, and grow at local events

    +
    +
  • + +
+
+
+
+
+
+

Explore templates

+

Explore tools

+

Join Everyday Free Access

+
+
+ ); +}; diff --git a/components/Navbar/navbar.tsx b/components/Navbar/navbar.tsx new file mode 100644 index 0000000..dbbf249 --- /dev/null +++ b/components/Navbar/navbar.tsx @@ -0,0 +1,132 @@ +"use client"; + +import React, { useState } from 'react'; +import { FaAngleDown } from "react-icons/fa"; +import { ProductDropdown, SolutionsDropdown, ResourcesDropdown } from './dropdowns'; +import MobileMenu from './MobileMenu'; // Import the MobileMenu component + +const Navbar: React.FC = () => { + const [showProduct, setShowProduct] = useState(false); + const [showSolutions, setShowSolutions] = useState(false); + const [showResources, setShowResources] = useState(false); + const [activeTab, setActiveTab] = useState(''); + const [mobileMenuOpen, setMobileMenuOpen] = useState(false); // State for mobile menu + + const toggleProduct = () => { + setShowProduct(!showProduct); + setShowSolutions(false); + setShowResources(false); + setActiveTab('product'); + }; + + const toggleSolutions = () => { + setShowSolutions(!showSolutions); + setShowProduct(false); + setShowResources(false); + setActiveTab('solutions'); + }; + + const toggleResources = () => { + setShowResources(!showResources); + setShowProduct(false); + setShowSolutions(false); + setActiveTab('resources'); + }; + + const toggleMobileMenu = () => { + setMobileMenuOpen(!mobileMenuOpen); + }; + + return ( +
+
+
+ + Logo + + {/* Desktop Menu */} +
    + {/* Product Menu */} +
  • + Product + {activeTab === 'product' && ( + + + + )} +
  • + + {/* Solutions Menu */} +
  • + Solutions + {activeTab === 'solutions' && ( + + + + )} +
  • + + {/* Pricing */} +
  • Pricing
  • + + {/* Resources Menu */} +
  • + Resources + {activeTab === 'resources' && ( + + + + )} +
  • +
+ + {/* Hamburger Icon for Mobile View */} +
+ ☰ +
+
+ + {/* Action Buttons */} +
+ + + +
+
+ + {/* Dropdowns for Desktop View */} +
+ {showProduct && ( +
+ +
+ )} + {showSolutions && ( +
+ +
+ )} + {showResources && ( +
+ +
+ )} +
+ + {/* Mobile Menu */} + {mobileMenuOpen && ( + + )} +
+ ); +}; + +export default Navbar; diff --git a/components/Newsletter/faces.tsx b/components/Newsletter/faces.tsx new file mode 100644 index 0000000..1bbee00 --- /dev/null +++ b/components/Newsletter/faces.tsx @@ -0,0 +1,70 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import { Marquee } from "@/components/ui/marquee"; + +const images = [ + { + img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSV9uzErWz9EXqZDxZ5lP9aYpMz8eK6rr5X3w&s", + }, + { + img: "https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed3d547-94ff-48e1-9f20-8c14a7030a02_2000x2000.jpeg", + }, + { + img: "https://cdn.vectorstock.com/i/1000v/48/43/google-symbol-logo-black-and-white-design-vector-46334843.jpg", + }, + { + img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQADFN8_BR0poY4_U86hIDw6bB-iXS2UUXmoQ&s", + }, + { + img: "https://miro.medium.com/v2/resize:fit:1400/1*O-ClkORJkmUm1wRsApB_yQ.png", + }, + { + img: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS9R9N0XiqvtWH8Qr0zHTfYLxoPh__Hc4HayrA1AwxNwSmpLVSR9jg4HoxK4zCx5AQVdJ0&usqp=CAU", + }, +]; + +// Card Component for displaying each partner's logo +const FaceCard = ({ img }: { img: string }) => { + return ( +
+ {/* Removed alt text and made image fill the card */} +
+ ); +}; + +export function Faces() { + const firstRow = images.slice(0, Math.ceil(images.length / 2)); + const secondRow = images.slice(Math.ceil(images.length / 2)); + + return ( +
+ {/* First Vertical Marquee */} + + {firstRow.map((partner, index) => ( + + ))} + + + + {secondRow.map((partner, index) => ( + + ))} + + + + {firstRow.map((partner, index) => ( + + ))} + + + {/* Gradients for top and bottom fade effect */} +
+
+
+ ); +} diff --git a/components/Newsletter/newsletter.tsx b/components/Newsletter/newsletter.tsx new file mode 100644 index 0000000..87a422e --- /dev/null +++ b/components/Newsletter/newsletter.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { Faces } from './faces'; + +export function Newsletter() { + return ( +
+
+
+ {/* Description of Image */} + +
+ +
+

Stay Up to Date with Latest Tech Updates

+

+ Stay updated with our latest news and offers. Join our community today! +

+ +
+ + +
+
+
+
+ ); +} diff --git a/components/dashboard-view.tsx b/components/dashboard-view.tsx new file mode 100644 index 0000000..7d29a7a --- /dev/null +++ b/components/dashboard-view.tsx @@ -0,0 +1,26 @@ +"use client"; + +import React from 'react'; +import { motion } from 'framer-motion'; +import { MouseParallaxImage } from './MouseParallax'; + +export default function DashboardView() { + const imageLink = "https://res.cloudinary.com/dezd109fz/image/upload/v1737426510/Screenshot_2025-01-21_075609_ypdwbo.png"; + + const variants = { + hidden: { opacity: 0, y: 50 }, + visible: { opacity: 1, y: 0 }, + }; + + return ( + + + + ); +} diff --git a/components/footer.tsx b/components/footer.tsx new file mode 100644 index 0000000..be2ca0b --- /dev/null +++ b/components/footer.tsx @@ -0,0 +1,148 @@ +"use client"; +import React from 'react'; +import { motion } from 'framer-motion'; + +const companyLinks = [ + { text: "About", url: "/about" }, + { text: "Careers", url: "/careers" }, + { text: "Blog", url: "/blog" }, + { text: "Status", url: "/status" }, + { text: "Privacy", url: "/privacy" }, + { text: "Partner with us", url: "/partner" } +]; + +const communicationLinks = [ + { text: "Book Discovery Call", url: "/book-call" }, + { text: "Science Behind Everything", url: "/science" } +]; + +const communityLinks = [ + { text: "Customer Stories", url: "/customer-stories" }, + { text: "Community", url: "/community" }, + { text: "Support", url: "/support" }, + { text: "Reports", url: "/reports" } +]; + +const learnLinks = [ + { text: "Webinars", url: "/webinars" }, + { text: "Leadership", url: "/leadership" }, + { text: "Demos", url: "/demos" }, + { text: "Videos", url: "/videos" }, + { text: "Guides", url: "/guides" }, + { text: "Articles", url: "/articles" }, + { text: "eBooks", url: "/ebooks" }, + { text: "Quick Reads", url: "/quick-reads" } +]; + +const solutionsLinks = [ + { text: "Popular Solutions", url: "/solutions/popular" }, + { text: "Marketing", url: "/solutions/marketing" }, + { text: "Product", url: "/solutions/product" }, + { text: "Human Resources", url: "/solutions/hr" }, + { text: "Sales", url: "/solutions/sales" }, + { text: "Operations", url: "/solutions/operations" }, + { text: "Finance", url: "/solutions/finance" }, + { text: "Content", url: "/solutions/content" } +]; + +export default function Footer() { + return ( +
+ {/* Top Section */} +
+

Let's get Started

+ +
+ + {/* Middle Section with Lists */} +
+
+ {/* Company List */} +
+

Company

+
    + {companyLinks.map((link, index) => ( +
  • + {link.text} +
  • + ))} +
+
+ + {/* Communication List */} +
+

Communication

+
    + {communicationLinks.map((link, index) => ( +
  • + {link.text} +
  • + ))} +
+
+ + {/* Community List */} +
+

Community

+
    + {communityLinks.map((link, index) => ( +
  • + {link.text} +
  • + ))} +
+
+ + {/* Learn List */} +
+

Learn

+
    + {learnLinks.map((link, index) => ( +
  • + {link.text} +
  • + ))} +
+
+ + {/* Solutions List */} +
+

Solutions

+
    + {solutionsLinks.map((link, index) => ( +
  • + {link.text} +
  • + ))} +
+
+
+
+ + {/* Bottom Section with Animated Image */} +
+ {/* Animated Logo Image */} + + {/* Description Text */} +

+ In the new era of technology, we look to the future with certainty and pride for our company and business. +

+
+
+ ); +} diff --git a/components/magicui/orbiting-circles.tsx b/components/magicui/orbiting-circles.tsx new file mode 100644 index 0000000..3365c58 --- /dev/null +++ b/components/magicui/orbiting-circles.tsx @@ -0,0 +1,71 @@ +import { cn } from "@/lib/utils"; +import React from "react"; + +export interface OrbitingCirclesProps + extends React.HTMLAttributes { + className?: string; + children?: React.ReactNode; + reverse?: boolean; + duration?: number; + delay?: number; + radius?: number; + path?: boolean; + iconSize?: number; + speed?: number; +} + +export function OrbitingCircles({ + className, + children, + reverse, + duration = 20, + radius = 160, + path = true, + iconSize = 30, + speed = 1, + ...props +}: OrbitingCirclesProps) { + const calculatedDuration = duration / speed; + return ( + <> + {path && ( + + + + )} + {React.Children.map(children, (child, index) => { + const angle = (360 / React.Children.count(children)) * index; + return ( +
+ {child} +
+ ); + })} + + ); +} diff --git a/components/ui/animated-background.tsx b/components/ui/animated-background.tsx new file mode 100644 index 0000000..ae0a1ff --- /dev/null +++ b/components/ui/animated-background.tsx @@ -0,0 +1,90 @@ +'use client'; +import { cn } from '@/lib/utils'; +import { AnimatePresence, Transition, motion } from 'motion/react'; +import { + Children, + cloneElement, + ReactElement, + useEffect, + useState, + useId, +} from 'react'; + +export type AnimatedBackgroundProps = { + children: + | ReactElement<{ 'data-id': string }>[] + | ReactElement<{ 'data-id': string }>; + defaultValue?: string; + onValueChange?: (newActiveId: string | null) => void; + className?: string; + transition?: Transition; + enableHover?: boolean; +}; + +export function AnimatedBackground({ + children, + defaultValue, + onValueChange, + className, + transition, + enableHover = false, +}: AnimatedBackgroundProps) { + const [activeId, setActiveId] = useState(null); + const uniqueId = useId(); + + const handleSetActiveId = (id: string | null) => { + setActiveId(id); + + if (onValueChange) { + onValueChange(id); + } + }; + + useEffect(() => { + if (defaultValue !== undefined) { + setActiveId(defaultValue); + } + }, [defaultValue]); + + return Children.map(children, (child: any, index) => { + const id = child.props['data-id']; + + const interactionProps = enableHover + ? { + onMouseEnter: () => handleSetActiveId(id), + onMouseLeave: () => handleSetActiveId(null), + } + : { + onClick: () => handleSetActiveId(id), + }; + + return cloneElement( + child, + { + key: index, + className: cn('relative inline-flex', child.props.className), + 'data-checked': activeId === id ? 'true' : 'false', + ...interactionProps, + }, + <> + + {activeId === id && ( + + )} + +
{child.props.children}
+ + ); + }); +} diff --git a/components/ui/animated-shiny-text.tsx b/components/ui/animated-shiny-text.tsx new file mode 100644 index 0000000..f55fd20 --- /dev/null +++ b/components/ui/animated-shiny-text.tsx @@ -0,0 +1,40 @@ +import { CSSProperties, FC, ReactNode } from "react"; + +import { cn } from "@/lib/utils"; + +interface AnimatedShinyTextProps { + children: ReactNode; + className?: string; + shimmerWidth?: number; +} + +const AnimatedShinyText: FC = ({ + children, + className, + shimmerWidth = 100, +}) => { + return ( +

+ {children} +

+ ); +}; + +export default AnimatedShinyText; diff --git a/components/ui/bento-grid.tsx b/components/ui/bento-grid.tsx new file mode 100644 index 0000000..4325178 --- /dev/null +++ b/components/ui/bento-grid.tsx @@ -0,0 +1,54 @@ +import { cn } from "@/lib/utils"; + +export const BentoGrid = ({ + className, + children, +}: { + className?: string; + children?: React.ReactNode; +}) => { + return ( +
+ {children} +
+ ); +}; + +export const BentoGridItem = ({ + className, + title, + description, + header, + icon, +}: { + className?: string; + title?: string | React.ReactNode; + description?: string | React.ReactNode; + header?: React.ReactNode; + icon?: React.ReactNode; +}) => { + return ( +
+ {header} +
+ {icon} +
+ {title} +
+
+ {description} +
+
+
+ ); +}; diff --git a/components/ui/card-hover-effect.tsx b/components/ui/card-hover-effect.tsx new file mode 100644 index 0000000..e8156e1 --- /dev/null +++ b/components/ui/card-hover-effect.tsx @@ -0,0 +1,118 @@ +import { cn } from "@/lib/utils"; +import { AnimatePresence, motion } from "framer-motion"; +import Link from "next/link"; +import { useState } from "react"; +import { IconType } from 'react-icons'; + +export const HoverEffect = ({ + items, + className, +}: { + items: { + title: string; + description: string; + link: string; + icon: IconType; // adding icon type + }[]; + className?: string; +}) => { + let [hoveredIndex, setHoveredIndex] = useState(null); + + return ( +
+ {items.map((item, idx) => ( + setHoveredIndex(idx)} + onMouseLeave={() => setHoveredIndex(null)} + > + + {hoveredIndex === idx && ( + + )} + + + {item.title} + {item.description} + + + ))} +
+ ); +}; + +export const Card = ({ + className, + children, + icon +}: { + className?: string; + children: React.ReactNode; + icon: IconType; +}) => { + const Icon = icon; + return ( +
+
+
{children}
+
+ {} +
+ ); +}; +export const CardTitle = ({ + className, + children, +}: { + className?: string; + children: React.ReactNode; +}) => { + return ( +

+ {children} +

+ ); +}; +export const CardDescription = ({ + className, + children, +}: { + className?: string; + children: React.ReactNode; +}) => { + return ( +

+ {children} +

+ ); +}; diff --git a/components/ui/infinite-moving-cards.tsx b/components/ui/infinite-moving-cards.tsx new file mode 100644 index 0000000..3fa095b --- /dev/null +++ b/components/ui/infinite-moving-cards.tsx @@ -0,0 +1,104 @@ +"use client"; + +import { cn } from "@/lib/utils"; +import React, { useEffect, useState } from "react"; + +export const InfiniteMovingCards = ({ + items, + direction = "left", + speed = "fast", + pauseOnHover = true, + className, +}: { + items: { + src: string; + alt: string; + }[]; + direction?: "left" | "right"; + speed?: "fast" | "normal" | "slow"; + pauseOnHover?: boolean; + className?: string; +}) => { + const containerRef = React.useRef(null); + const scrollerRef = React.useRef(null); + + useEffect(() => { + addAnimation(); + }, []); + + const [start, setStart] = useState(false); + + function addAnimation() { + if (containerRef.current && scrollerRef.current) { + const scrollerContent = Array.from(scrollerRef.current.children); + + // Duplicate items for infinite scrolling effect + scrollerContent.forEach((item) => { + const duplicatedItem = item.cloneNode(true); + if (scrollerRef.current) { + scrollerRef.current.appendChild(duplicatedItem); + } + }); + + getDirection(); + getSpeed(); + setStart(true); + } + } + + const getDirection = () => { + if (containerRef.current) { + containerRef.current.style.setProperty( + "--animation-direction", + direction === "left" ? "forwards" : "reverse" + ); + } + }; + + const getSpeed = () => { + if (containerRef.current) { + const durationMap: Record = { + fast: "20s", + normal: "40s", + slow: "80s", + }; + containerRef.current.style.setProperty("--animation-duration", durationMap[speed]); + } + }; + + return ( +
+
    + {items.map((item, idx) => ( +
  • + {item.alt} +
  • + ))} +
+
+ ); +}; diff --git a/components/ui/marquee.tsx b/components/ui/marquee.tsx new file mode 100644 index 0000000..fa9c129 --- /dev/null +++ b/components/ui/marquee.tsx @@ -0,0 +1,73 @@ +import { cn } from "@/lib/utils"; +import { ComponentPropsWithoutRef } from "react"; + +interface MarqueeProps extends ComponentPropsWithoutRef<"div"> { + /** + * Optional CSS class name to apply custom styles + */ + className?: string; + /** + * Whether to reverse the animation direction + * @default false + */ + reverse?: boolean; + /** + * Whether to pause the animation on hover + * @default false + */ + pauseOnHover?: boolean; + /** + * Content to be displayed in the marquee + */ + children: React.ReactNode; + /** + * Whether to animate vertically instead of horizontally + * @default false + */ + vertical?: boolean; + /** + * Number of times to repeat the content + * @default 4 + */ + repeat?: number; +} + +export function Marquee({ + className, + reverse = false, + pauseOnHover = false, + children, + vertical = false, + repeat = 4, + ...props +}: MarqueeProps) { + return ( +
+ {Array(repeat) + .fill(0) + .map((_, i) => ( +
+ {children} +
+ ))} +
+ ); +} diff --git a/components/ui/text-generate-effect.tsx b/components/ui/text-generate-effect.tsx new file mode 100644 index 0000000..38cbe85 --- /dev/null +++ b/components/ui/text-generate-effect.tsx @@ -0,0 +1,69 @@ +"use client"; +import { useEffect } from "react"; +import { motion, stagger, useAnimate, useInView } from "framer-motion"; +import { cn } from "@/lib/utils"; +import { useRef } from "react"; + +export const TextGenerateEffect = ({ + words, + className, + filter = true, + duration = 1, +}: { + words: string; + className?: string; + filter?: boolean; + duration?: number; +}) => { + const [scope, animate] = useAnimate(); + const containerRef = useRef(null); + const isInView = useInView(containerRef, { once: true }); + let wordsArray = words.split(" "); + + useEffect(() => { + if (isInView) { + animate( + "span", + { + opacity: 1, + filter: filter ? "blur(0px)" : "none", + }, + { + duration: duration ? duration : 1, + delay: stagger(0.2), + ease: "easeOut", // added an ease for smoother animation + } + ); + } + }, [isInView, scope.current, animate, filter, duration]); + + const renderWords = () => { + return ( + <> + {wordsArray.map((word, idx) => { + return ( + + {word}{" "} + + ); + })} + + ); + }; + + return ( +
+
+ + {renderWords()} + +
+
+ ); +}; diff --git a/components/why.tsx b/components/why.tsx new file mode 100644 index 0000000..9631dad --- /dev/null +++ b/components/why.tsx @@ -0,0 +1,111 @@ +"use client"; +import { useState } from 'react'; +import { MousePointer, Command, Coins, HeartHandshake } from 'lucide-react'; + +const benefits = [ + { + icon: , + title: "User-Friendly", + description: "Intuitive, drag-and-drop design means you can focus on what matters—your expertise.", + gradient: "from-purple-500/10 via-purple-500/5 to-transparent" + }, + { + icon: , + title: "All-in-One Solution", + description: "No need for multiple tools; manage everything from one centralized platform.", + gradient: "from-blue-500/10 via-blue-500/5 to-transparent" + }, + { + icon: , + title: "Scalable Revenue Streams", + description: "Monetize your services through community building and our AI marketplace.", + gradient: "from-indigo-500/10 via-indigo-500/5 to-transparent" + }, + { + icon: , + title: "Dedicated Support", + description: "Our expert team is here to help you succeed every step of the way.", + gradient: "from-violet-500/10 via-violet-500/5 to-transparent" + } +]; + +export default function WhyChooseUs() { + const [hoveredIndex, setHoveredIndex] = useState(null); + + return ( +
+
+
+

Why Choose Us

+

Everything you need to succeed with AI

+
+ +
+ {benefits.map((benefit, index) => ( +
setHoveredIndex(index)} + onMouseLeave={() => setHoveredIndex(null)} + > + {/* Animated background */} +
+ + {/* Content container */} +
+
+ {/* Icon container */} +
+ {benefit.icon} +
+ + {/* Text content */} +
+

+ {benefit.title} +

+

+ {benefit.description} +

+
+
+ + {/* Decorative elements */} +
+
+
+ ))} +
+ + {/* Bottom decoration */} +
+
+
+
+
+ ); +} \ No newline at end of file diff --git a/lib/utils.ts b/lib/utils.ts new file mode 100644 index 0000000..bd0c391 --- /dev/null +++ b/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/package-lock.json b/package-lock.json index 6833c3b..ef0bd91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,10 +7,20 @@ "": { "name": "ai-website", "version": "0.1.0", + "license": "ISC", "dependencies": { + "@tabler/icons-react": "^3.28.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "framer-motion": "^12.4.2", + "lucide-react": "^0.473.0", + "motion": "^12.0.4", "next": "15.1.5", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-icons": "^5.4.0", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { "@types/node": "^20", @@ -25,7 +35,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -409,7 +418,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "license": "ISC", "dependencies": { "string-width": "^5.1.2", @@ -427,7 +435,6 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -442,7 +449,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -452,7 +458,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -462,14 +467,12 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -614,7 +617,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -628,7 +630,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -638,7 +639,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -652,7 +652,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "license": "MIT", "optional": true, "engines": { @@ -674,6 +673,32 @@ "tslib": "^2.8.0" } }, + "node_modules/@tabler/icons": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.28.1.tgz", + "integrity": "sha512-h7nqKEvFooLtFxhMOC1/2eiV+KRXhBUuDUUJrJlt6Ft6tuMw2eU/9GLQgrTk41DNmIEzp/LI83K9J9UUU8YBYQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + } + }, + "node_modules/@tabler/icons-react": { + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.28.1.tgz", + "integrity": "sha512-KNBpA2kbxr3/2YK5swt7b/kd/xpDP1FHYZCxDFIw54tX8slELRFEf95VMxsccQHZeIcUbdoojmUUuYSbt/sM5Q==", + "license": "MIT", + "dependencies": { + "@tabler/icons": "3.28.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + }, + "peerDependencies": { + "react": ">= 16" + } + }, "node_modules/@types/node": { "version": "20.17.14", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.14.tgz", @@ -708,7 +733,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -721,7 +745,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -734,14 +757,12 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -755,21 +776,18 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, "license": "MIT" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -782,7 +800,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -792,7 +809,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -816,7 +832,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -846,7 +861,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, "license": "MIT", "dependencies": { "anymatch": "~3.1.2", @@ -871,7 +885,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -880,12 +893,33 @@ "node": ">= 6" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -904,7 +938,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -917,7 +950,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true, "license": "MIT" }, "node_modules/color-string": { @@ -935,7 +967,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -945,7 +976,6 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -960,7 +990,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -990,35 +1019,30 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, "license": "Apache-2.0" }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1035,7 +1059,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -1048,7 +1071,6 @@ "version": "1.18.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -1058,7 +1080,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -1071,7 +1092,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", @@ -1084,11 +1104,37 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/framer-motion": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.2.tgz", + "integrity": "sha512-pW307cQKjDqEuO1flEoIFf6TkuJRfKr+c7qsHAJhDo4368N/5U8/7WU8J+xhd9+gjmOgJfgp+46evxRRFM39dA==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.0.0", + "motion-utils": "^12.0.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -1103,7 +1149,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1113,7 +1158,6 @@ "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -1134,7 +1178,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -1147,7 +1190,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -1167,7 +1209,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -1180,7 +1221,6 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -1196,7 +1236,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1206,7 +1245,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1216,7 +1254,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -1229,7 +1266,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -1239,14 +1275,12 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -1262,7 +1296,6 @@ "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, "license": "MIT", "bin": { "jiti": "bin/jiti.js" @@ -1272,7 +1305,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -1285,21 +1317,27 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, "license": "MIT" }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, "license": "ISC" }, + "node_modules/lucide-react": { + "version": "0.473.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.473.0.tgz", + "integrity": "sha512-KW6u5AKeIjkvrxXZ6WuCu9zHE/gEYSXCay+Gre2ZoInD0Je/e3RBtP4OHpJVJ40nDklSvjVKjgH7VU8/e2dzRw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -1309,7 +1347,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -1323,7 +1360,6 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -1339,17 +1375,56 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/motion": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.0.4.tgz", + "integrity": "sha512-ybiFFMRZfZY/4F9Pi4CSVPr2us5Q0XbOLB6NZnMNW8duYKM7gzljPbkqCTCadaSJuGxc6sx1uE6Mb2VbHEx4GA==", + "license": "MIT", + "dependencies": { + "framer-motion": "^12.0.4", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion-dom": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.0.0.tgz", + "integrity": "sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.0.0" + } + }, + "node_modules/motion-utils": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz", + "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==", + "license": "MIT" + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0", @@ -1461,7 +1536,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1471,7 +1545,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1481,7 +1554,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -1491,14 +1563,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1508,14 +1578,12 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", @@ -1538,7 +1606,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -1551,7 +1618,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -1561,7 +1627,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -1571,7 +1636,6 @@ "version": "8.5.1", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1600,7 +1664,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", @@ -1618,7 +1681,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" @@ -1638,7 +1700,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1674,7 +1735,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1700,7 +1760,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -1714,14 +1773,12 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -1759,11 +1816,19 @@ "react": "^19.0.0" } }, + "node_modules/react-icons": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz", + "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, "license": "MIT", "dependencies": { "pify": "^2.3.0" @@ -1773,7 +1838,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -1786,7 +1850,6 @@ "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", @@ -1807,7 +1870,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -1818,7 +1880,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -1901,7 +1962,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -1914,7 +1974,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1924,7 +1983,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -1964,7 +2022,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", @@ -1983,7 +2040,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -1998,7 +2054,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2008,14 +2063,12 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -2028,7 +2081,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -2045,7 +2097,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -2058,7 +2109,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2091,7 +2141,6 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", @@ -2114,7 +2163,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -2123,11 +2171,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.4.17", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -2161,11 +2218,19 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0" @@ -2175,7 +2240,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" @@ -2188,7 +2252,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -2201,7 +2264,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, "license": "Apache-2.0" }, "node_modules/tslib": { @@ -2235,14 +2297,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -2258,7 +2318,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", @@ -2277,7 +2336,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -2295,7 +2353,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2305,7 +2362,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -2321,14 +2377,12 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -2343,7 +2397,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -2356,7 +2409,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index 5edce8a..c45a8f3 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,14 @@ "name": "ai-website", "version": "0.1.0", "private": true, + "description": "This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).", + "license": "ISC", + "author": "", + "type": "commonjs", + "main": "index.js", + "directories": { + "lib": "lib" + }, "scripts": { "dev": "next dev", "build": "next build", @@ -9,16 +17,25 @@ "lint": "next lint" }, "dependencies": { + "@tabler/icons-react": "^3.28.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "framer-motion": "^12.4.2", + "lucide-react": "^0.473.0", + "motion": "^12.0.4", + "next": "15.1.5", "react": "^19.0.0", "react-dom": "^19.0.0", - "next": "15.1.5" + "react-icons": "^5.4.0", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "typescript": "^5", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "postcss": "^8", - "tailwindcss": "^3.4.1" + "tailwindcss": "^3.4.1", + "typescript": "^5" } } diff --git a/tailwind.config.ts b/tailwind.config.ts index 1362b88..0d258ef 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,18 +1,102 @@ import type { Config } from "tailwindcss"; export default { - content: [ + darkMode: ["class"], + content: [ "./pages/**/*.{js,ts,jsx,tsx,mdx}", "./components/**/*.{js,ts,jsx,tsx,mdx}", "./app/**/*.{js,ts,jsx,tsx,mdx}", ], theme: { - extend: { - colors: { - background: "var(--background)", - foreground: "var(--foreground)", - }, - }, + extend: { + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))' + } + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + }, + animation: { + 'shiny-text': 'shiny-text 8s infinite', + marquee: 'marquee var(--duration) infinite linear', + 'marquee-vertical': 'marquee-vertical var(--duration) linear infinite', + orbit: 'orbit calc(var(--duration)*1s) linear infinite' + }, + keyframes: { + 'shiny-text': { + '0%, 90%, 100%': { + 'background-position': 'calc(-100% - var(--shiny-width)) 0' + }, + '30%, 60%': { + 'background-position': 'calc(100% + var(--shiny-width)) 0' + } + }, + marquee: { + from: { + transform: 'translateX(0)' + }, + to: { + transform: 'translateX(calc(-100% - var(--gap)))' + } + }, + 'marquee-vertical': { + from: { + transform: 'translateY(0)' + }, + to: { + transform: 'translateY(calc(-100% - var(--gap)))' + } + }, + orbit: { + '0%': { + transform: 'rotate(calc(var(--angle) * 1deg)) translateY(calc(var(--radius) * 1px)) rotate(calc(var(--angle) * -1deg))' + }, + '100%': { + transform: 'rotate(calc(var(--angle) * 1deg + 360deg)) translateY(calc(var(--radius) * 1px)) rotate(calc((var(--angle) * -1deg) - 360deg))' + } + } + } + } }, - plugins: [], + plugins: [require("tailwindcss-animate")], } satisfies Config; diff --git a/tsconfig.json b/tsconfig.json index d8b9323..a9e4ae5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,6 +22,6 @@ "@/*": ["./*"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "components/Newsletter/newsletter.tsx"], "exclude": ["node_modules"] }