diff --git a/index.html b/index.html index 0795b05..3b041b8 100644 --- a/index.html +++ b/index.html @@ -3,12 +3,12 @@ - hgtx-nova-era - - + HGTX Codex - AI Interface System + + - - + + diff --git a/src/components/ChatHeader.tsx b/src/components/ChatHeader.tsx new file mode 100644 index 0000000..c088fb4 --- /dev/null +++ b/src/components/ChatHeader.tsx @@ -0,0 +1,48 @@ +import { ChevronDown } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; + +export const ChatHeader = () => { + const models = [ + "ChatGPT 4.1", + "GPT-5 Mini", + "Claude 3.5 Sonnet", + "Gemini 2.5 Flash", + ]; + + return ( +
+
+
+
+ Online +
+ + + + + + + {models.map((model) => ( + + {model} + + ))} + + +
+ +
+ Modelo de linguagem avançado +
+
+ ); +}; diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx new file mode 100644 index 0000000..a92a3e7 --- /dev/null +++ b/src/components/Layout.tsx @@ -0,0 +1,90 @@ +import { MessageSquare, Image, Mic, Settings, Plus } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { Separator } from "@/components/ui/separator"; + +interface LayoutProps { + children: React.ReactNode; + activeTab: "chat" | "images" | "audio"; + onTabChange: (tab: "chat" | "images" | "audio") => void; +} + +type TabType = "chat" | "images" | "audio"; + +export const Layout = ({ children, activeTab, onTabChange }: LayoutProps) => { + + const tabs = [ + { id: "chat" as TabType, label: "Bate-papo", icon: MessageSquare }, + { id: "images" as TabType, label: "Imagens", icon: Image }, + { id: "audio" as TabType, label: "Áudio", icon: Mic }, + ]; + + return ( +
+ {/* Sidebar */} + + + {/* Main Content */} +
+ {children} +
+
+ ); +}; diff --git a/src/components/audio/AudioView.tsx b/src/components/audio/AudioView.tsx new file mode 100644 index 0000000..4a4ba2c --- /dev/null +++ b/src/components/audio/AudioView.tsx @@ -0,0 +1,222 @@ +import { useState } from "react"; +import { ChatHeader } from "@/components/ChatHeader"; +import { Button } from "@/components/ui/button"; +import { Textarea } from "@/components/ui/textarea"; +import { Upload, Mic, Play, Download, Copy, Trash2 } from "lucide-react"; +import { ScrollArea } from "@/components/ui/scroll-area"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; + +export const AudioView = () => { + const [textToSpeech, setTextToSpeech] = useState(""); + const [isProcessing, setIsProcessing] = useState(false); + + const handleGenerateAudio = () => { + setIsProcessing(true); + setTimeout(() => setIsProcessing(false), 2000); + }; + + return ( +
+ + + +
+ + + + Transcrição de Áudio + + Geração de Voz + + + {/* Transcription Tab */} + +
+

+ Converter Áudio em Texto +

+

+ Envie um arquivo de áudio (.mp3, .wav) para transcrição +

+ +
+
+ +
+
+

+ Clique para selecionar ou arraste o arquivo +

+

+ Suporta MP3, WAV (máx. 25MB) +

+
+ +
+
+ + {/* Sample Transcription Result */} +
+
+
+

audio_sample.mp3

+

+ Transcrito há 5 minutos +

+
+
+ + + +
+
+
+

+ Esta é uma transcrição de exemplo do áudio enviado. O + sistema utilizará modelos de IA avançados para converter + sua fala em texto com alta precisão. +

+
+
+
+ + {/* Generation Tab */} + +
+

+ Converter Texto em Voz +

+ +
+ +