From a92f55756cc37298ba8b87b14b9d79bfd6322188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ignacio=20Nu=C3=B1ez?= Date: Tue, 18 Nov 2025 10:00:53 -0300 Subject: [PATCH 1/2] feat(landing): New website --- .DS_Store | Bin 6148 -> 6148 bytes .github/workflows/deploy.yml | 60 + .gitignore | 47 +- Dockerfile | 17 + app/globals.css | 124 + app/layout.tsx | 43 + app/page.tsx | 24 + components.json | 21 + components/community-section.tsx | 110 + components/contact-section.tsx | 137 + components/download-section.tsx | 107 + components/features-section-old.tsx | 76 + components/features-section.tsx | 139 + components/footer.tsx | 109 + components/hero-section.tsx | 99 + components/modules-carousel.tsx | 203 + components/modules-section.tsx | 101 + components/navbar.tsx | 160 + components/section-numeral.css | 21 - components/section-numeral.html | 6 - components/speaker.css | 115 - components/speaker.html | 13 - components/supported-by-section.tsx | 135 + components/theme-provider.tsx | 11 + components/ui/accordion.tsx | 66 + components/ui/alert-dialog.tsx | 157 + components/ui/alert.tsx | 66 + components/ui/aspect-ratio.tsx | 11 + components/ui/avatar.tsx | 53 + components/ui/badge.tsx | 46 + components/ui/breadcrumb.tsx | 109 + components/ui/button-group.tsx | 83 + components/ui/button.tsx | 60 + components/ui/calendar.tsx | 213 + components/ui/card.tsx | 92 + components/ui/carousel.tsx | 241 + components/ui/chart.tsx | 353 ++ components/ui/checkbox.tsx | 32 + components/ui/collapsible.tsx | 33 + components/ui/command.tsx | 184 + components/ui/context-menu.tsx | 252 + components/ui/dialog.tsx | 143 + components/ui/drawer.tsx | 135 + components/ui/dropdown-menu.tsx | 257 + components/ui/empty.tsx | 104 + components/ui/field.tsx | 244 + components/ui/form.tsx | 167 + components/ui/hover-card.tsx | 44 + components/ui/input-group.tsx | 169 + components/ui/input-otp.tsx | 77 + components/ui/input.tsx | 21 + components/ui/item.tsx | 193 + components/ui/kbd.tsx | 28 + components/ui/label.tsx | 24 + components/ui/menubar.tsx | 276 ++ components/ui/navigation-menu.tsx | 166 + components/ui/pagination.tsx | 127 + components/ui/popover.tsx | 48 + components/ui/progress.tsx | 31 + components/ui/radio-group.tsx | 45 + components/ui/resizable.tsx | 56 + components/ui/scroll-area.tsx | 58 + components/ui/select.tsx | 185 + components/ui/separator.tsx | 28 + components/ui/sheet.tsx | 139 + components/ui/sidebar.tsx | 726 +++ components/ui/skeleton.tsx | 13 + components/ui/slider.tsx | 63 + components/ui/sonner.tsx | 25 + components/ui/spinner.tsx | 16 + components/ui/switch.tsx | 31 + components/ui/table.tsx | 116 + components/ui/tabs.tsx | 66 + components/ui/textarea.tsx | 18 + components/ui/toast.tsx | 129 + components/ui/toaster.tsx | 35 + components/ui/toggle-group.tsx | 73 + components/ui/toggle.tsx | 47 + components/ui/tooltip.tsx | 61 + components/ui/use-mobile.tsx | 19 + components/ui/use-toast.ts | 191 + docker-compose.yml | 12 + hooks/use-mobile.ts | 19 + hooks/use-toast.ts | 191 + index.css | 4315 ----------------- index.html | 1385 ------ lib/config.ts | 53 + lib/utils.ts | 6 + next.config.mjs | 16 + package.json | 73 + pnpm-lock.yaml | 5 + postcss.config.mjs | 8 + ...lainability-interface-with-shap-values.jpg | Bin 0 -> 69793 bytes public/{dai_circle1.png => apple-icon.png} | Bin public/apple-icon_old.png | Bin 0 -> 2626 bytes ...1.24.33-600h.png => config_param_600h.png} | Bin .../daish_transparent_v2-transformed-200h.png | Bin 5202 -> 0 bytes ...kground-removal_clipdrop-enhance-1300h.png | Bin 99559 -> 0 bytes ...data-analysis-dashboard-with-charts-an.jpg | Bin 0 -> 83105 bytes public/features/eda_module.png | Bin 0 -> 168285 bytes public/features/explainability_module.png | Bin 0 -> 110730 bytes public/features/generative_module.png | Bin 0 -> 342498 bytes public/features/ml_experimentation.png | Bin 0 -> 148452 bytes public/features/results.png | Bin 0 -> 42656 bytes ...i-interface-with-text-and-image-genera.jpg | Bin 0 -> 86568 bytes public/grainy-1500w.png | Bin 14384 -> 0 bytes public/icon-dark-32x32.png | Bin 0 -> 600 bytes public/icon-dark-32x32_old.png | Bin 0 -> 585 bytes public/icon-light-32x32.png | Bin 0 -> 600 bytes public/icon-light-32x32_old.png | Bin 0 -> 566 bytes public/icon.svg | 26 + public/images/dashai-logo.png | Bin 0 -> 864165 bytes public/images/dashai-logo_original.png | Bin 0 -> 491320 bytes public/instagram.svg | 3 - public/linkedin.svg | 10 - public/logos/img_3288-200h.jpg | Bin 6504 -> 0 bytes public/logos/logo-imfd-200h.png | Bin 7822 -> 0 bytes public/logos/logo-sm-500w.jpeg | Bin 15664 -> 0 bytes public/logos/untitled-500w.png | Bin 11498 -> 0 bytes ...ning-experiment-configuration-interfac.jpg | Bin 0 -> 61102 bytes ...ashboard-with-performance-metrics-and-.jpg | Bin 0 -> 79339 bytes public/placeholder-logo.png | Bin 0 -> 568 bytes public/placeholder-logo.svg | 1 + public/placeholder-user.jpg | Bin 0 -> 1635 bytes public/placeholder.jpg | Bin 0 -> 1064 bytes public/placeholder.svg | 1 + ...t 00.22.53-1200w.png => results-1200w.png} | Bin public/supported-by/cenia-logo.png | Bin 0 -> 90358 bytes public/supported-by/dcc-logo.png | Bin 0 -> 25960 bytes public/supported-by/idea-logo.png | Bin 0 -> 334410 bytes public/supported-by/imfd-logo.png | Bin 0 -> 57151 bytes public/supported-by/utfsm-logo.jpg | Bin 0 -> 121397 bytes style.css | 231 - styles/globals.css | 125 + tsconfig.json | 27 + 135 files changed, 8730 insertions(+), 6100 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 Dockerfile create mode 100644 app/globals.css create mode 100644 app/layout.tsx create mode 100644 app/page.tsx create mode 100644 components.json create mode 100644 components/community-section.tsx create mode 100644 components/contact-section.tsx create mode 100644 components/download-section.tsx create mode 100644 components/features-section-old.tsx create mode 100644 components/features-section.tsx create mode 100644 components/footer.tsx create mode 100644 components/hero-section.tsx create mode 100644 components/modules-carousel.tsx create mode 100644 components/modules-section.tsx create mode 100644 components/navbar.tsx delete mode 100644 components/section-numeral.css delete mode 100644 components/section-numeral.html delete mode 100644 components/speaker.css delete mode 100644 components/speaker.html create mode 100644 components/supported-by-section.tsx create mode 100644 components/theme-provider.tsx create mode 100644 components/ui/accordion.tsx create mode 100644 components/ui/alert-dialog.tsx create mode 100644 components/ui/alert.tsx create mode 100644 components/ui/aspect-ratio.tsx create mode 100644 components/ui/avatar.tsx create mode 100644 components/ui/badge.tsx create mode 100644 components/ui/breadcrumb.tsx create mode 100644 components/ui/button-group.tsx create mode 100644 components/ui/button.tsx create mode 100644 components/ui/calendar.tsx create mode 100644 components/ui/card.tsx create mode 100644 components/ui/carousel.tsx create mode 100644 components/ui/chart.tsx create mode 100644 components/ui/checkbox.tsx create mode 100644 components/ui/collapsible.tsx create mode 100644 components/ui/command.tsx create mode 100644 components/ui/context-menu.tsx create mode 100644 components/ui/dialog.tsx create mode 100644 components/ui/drawer.tsx create mode 100644 components/ui/dropdown-menu.tsx create mode 100644 components/ui/empty.tsx create mode 100644 components/ui/field.tsx create mode 100644 components/ui/form.tsx create mode 100644 components/ui/hover-card.tsx create mode 100644 components/ui/input-group.tsx create mode 100644 components/ui/input-otp.tsx create mode 100644 components/ui/input.tsx create mode 100644 components/ui/item.tsx create mode 100644 components/ui/kbd.tsx create mode 100644 components/ui/label.tsx create mode 100644 components/ui/menubar.tsx create mode 100644 components/ui/navigation-menu.tsx create mode 100644 components/ui/pagination.tsx create mode 100644 components/ui/popover.tsx create mode 100644 components/ui/progress.tsx create mode 100644 components/ui/radio-group.tsx create mode 100644 components/ui/resizable.tsx create mode 100644 components/ui/scroll-area.tsx create mode 100644 components/ui/select.tsx create mode 100644 components/ui/separator.tsx create mode 100644 components/ui/sheet.tsx create mode 100644 components/ui/sidebar.tsx create mode 100644 components/ui/skeleton.tsx create mode 100644 components/ui/slider.tsx create mode 100644 components/ui/sonner.tsx create mode 100644 components/ui/spinner.tsx create mode 100644 components/ui/switch.tsx create mode 100644 components/ui/table.tsx create mode 100644 components/ui/tabs.tsx create mode 100644 components/ui/textarea.tsx create mode 100644 components/ui/toast.tsx create mode 100644 components/ui/toaster.tsx create mode 100644 components/ui/toggle-group.tsx create mode 100644 components/ui/toggle.tsx create mode 100644 components/ui/tooltip.tsx create mode 100644 components/ui/use-mobile.tsx create mode 100644 components/ui/use-toast.ts create mode 100644 docker-compose.yml create mode 100644 hooks/use-mobile.ts create mode 100644 hooks/use-toast.ts delete mode 100644 index.css delete mode 100644 index.html create mode 100644 lib/config.ts create mode 100644 lib/utils.ts create mode 100644 next.config.mjs create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 postcss.config.mjs create mode 100644 public/ai-model-explainability-interface-with-shap-values.jpg rename public/{dai_circle1.png => apple-icon.png} (100%) create mode 100644 public/apple-icon_old.png rename public/{screenshot 2023-07-26 at 21.24.33-600h.png => config_param_600h.png} (100%) delete mode 100644 public/daish_transparent_v2-transformed-200h.png delete mode 100644 public/digital-dot-circle-technology-corporate-background (1)_clipdrop-background-removal_clipdrop-enhance-1300h.png create mode 100644 public/exploratory-data-analysis-dashboard-with-charts-an.jpg create mode 100644 public/features/eda_module.png create mode 100644 public/features/explainability_module.png create mode 100644 public/features/generative_module.png create mode 100644 public/features/ml_experimentation.png create mode 100644 public/features/results.png create mode 100644 public/generative-ai-interface-with-text-and-image-genera.jpg delete mode 100644 public/grainy-1500w.png create mode 100644 public/icon-dark-32x32.png create mode 100644 public/icon-dark-32x32_old.png create mode 100644 public/icon-light-32x32.png create mode 100644 public/icon-light-32x32_old.png create mode 100644 public/icon.svg create mode 100644 public/images/dashai-logo.png create mode 100644 public/images/dashai-logo_original.png delete mode 100644 public/instagram.svg delete mode 100644 public/linkedin.svg delete mode 100644 public/logos/img_3288-200h.jpg delete mode 100644 public/logos/logo-imfd-200h.png delete mode 100644 public/logos/logo-sm-500w.jpeg delete mode 100644 public/logos/untitled-500w.png create mode 100644 public/machine-learning-experiment-configuration-interfac.jpg create mode 100644 public/ml-results-dashboard-with-performance-metrics-and-.jpg create mode 100644 public/placeholder-logo.png create mode 100644 public/placeholder-logo.svg create mode 100644 public/placeholder-user.jpg create mode 100644 public/placeholder.jpg create mode 100644 public/placeholder.svg rename public/{screenshot 2023-07-26 at 00.22.53-1200w.png => results-1200w.png} (100%) create mode 100644 public/supported-by/cenia-logo.png create mode 100644 public/supported-by/dcc-logo.png create mode 100644 public/supported-by/idea-logo.png create mode 100644 public/supported-by/imfd-logo.png create mode 100644 public/supported-by/utfsm-logo.jpg delete mode 100644 style.css create mode 100644 styles/globals.css create mode 100644 tsconfig.json diff --git a/.DS_Store b/.DS_Store index 0fb5f7418856ed82c735633c0fd2678bf0dc5e21..35a3b20d9a356b54f99be3860d9c5e5a39a020df 100644 GIT binary patch delta 194 zcmZoMXfc=|#>B`mu~2NHo}vgF0|Nsi1A_oVa!yiyeh!ewz%{XO1z4P!A(5egp&+Fg zDmR&jNhN}nA%h_w2(uZA;SxYi%nUgUnG8wDLTo_Ir3^`6iDXoXVuliiN}xn4!jR35 o%*R+Z2QV*V+|16w&jEBHP~B)qu~2NHo}wrV0|Nsi1A_nqLq0) { + return ( + + + {children} + + + + ) +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..805f9f3 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,24 @@ +import { Navbar } from "@/components/navbar" +import { HeroSection } from "@/components/hero-section" +import { FeaturesSection } from "@/components/features-section" +//import { ModulesCarousel } from "@/components/modules-carousel" +import { DownloadSection } from "@/components/download-section" +import { SupportedBySection } from "@/components/supported-by-section" +import { CommunitySection } from "@/components/community-section" +import { ContactSection } from "@/components/contact-section" +import { Footer } from "@/components/footer" + +export default function Home() { + return ( +
+ + + + + + + +
+
+ ) +} diff --git a/components.json b/components.json new file mode 100644 index 0000000..4ee62ee --- /dev/null +++ b/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "", + "css": "app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/components/community-section.tsx b/components/community-section.tsx new file mode 100644 index 0000000..2f3c559 --- /dev/null +++ b/components/community-section.tsx @@ -0,0 +1,110 @@ +"use client" + +import { Button } from "@/components/ui/button" +import { Card, CardContent } from "@/components/ui/card" +import { Github, BookOpen, Code2, Package } from "lucide-react" +import { siteConfig } from "@/lib/config" + +const communityLinks = [ + { + icon: Github, + title: "GitHub", + description: "Explore the source code", + link: siteConfig.github.url, + // stats: "2.5k stars", + }, + // { + // icon: Package, + // title: "Plugin Hub", + // description: "Browse community plugins", + // link: siteConfig.resources.pluginHub, + // // stats: "100+ plugins", + // }, + { + icon: BookOpen, + title: "Docs", + description: "Visit the technical documentation", + link: siteConfig.docs.url, + // stats: "Complete guides", + }, + { + icon: Code2, + title: "Contribute", + description: "Improve the project", + link: siteConfig.github.contribute, + // stats: "Open to all", + }, +] + +export function CommunitySection() { + return ( +
+
+
+

+ {"Built and extended by the community"} +

+

+ { + "DashAI's plugin architecture enables anyone to contribute new capabilities. Build plugins, improve the core, and shape the future of open source AI tools." + } +

+
+ +
+ {communityLinks.map((item, index) => { + const Icon = item.icon + return ( + window.open(item.link, "_blank", "noopener,noreferrer")} + > + +
+ +
+

{item.title}

+

{item.description}

+ {item.stats} +
+
+ ) + })} +
+ + {/* + +

{"Ready to build your first plugin?"}

+

+ { + "Our comprehensive documentation guides you through creating plugins and contributing to the core platform" + } +

+ +
+
*/} +
+
+ ) +} diff --git a/components/contact-section.tsx b/components/contact-section.tsx new file mode 100644 index 0000000..4bce56c --- /dev/null +++ b/components/contact-section.tsx @@ -0,0 +1,137 @@ +'use client' + +import { useState } from 'react' +import { Button } from '@/components/ui/button' + +export function ContactSection() { + const [formData, setFormData] = useState({ + name: '', + email: '', + message: '', + }) + const [status, setStatus] = useState<'idle' | 'sending' | 'success' | 'error'>('idle') + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + setStatus('sending') + + try { + const formPayload = { + name: formData.name, + email: formData.email, + message: formData.message, + _subject: `Nuevo mensaje de contacto de DashAI - ${formData.name}`, + } + + console.log('Sending form data:', formPayload) + + const response = await fetch(`https://formspree.io/f/mnnwakle`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + body: JSON.stringify(formPayload), + }) + + const responseData = await response.json() + console.log('Formspree response:', response.status, responseData) + + if (response.ok) { + setStatus('success') + setFormData({ name: '', email: '', message: '' }) + setTimeout(() => setStatus('idle'), 5000) + } else { + // Mostrar error más específico + const errorMessage = responseData.error || responseData.message || 'Error al enviar el mensaje' + console.error('Formspree error:', responseData) + setStatus('error') + setTimeout(() => setStatus('idle'), 5000) + } + } catch (error) { + console.error('Form submission error:', error) + setStatus('error') + setTimeout(() => setStatus('idle'), 3000) + } + } + + const handleChange = (e: React.ChangeEvent) => { + setFormData(prev => ({ + ...prev, + [e.target.name]: e.target.value + })) + } + + return ( +
+
+
+

+ Contact Us +

+

+ Have questions or feedback about DashAI? Feel free to get in touch — we’d love to hear from you. +

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