From 480d771841c7c54da944b24b607bdc509d7728ce Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:40:35 +0000 Subject: [PATCH] Implement HGTX Codex interface --- index.html | 10 +- src/components/ChatHeader.tsx | 48 ++++++ src/components/Layout.tsx | 90 +++++++++++ src/components/audio/AudioView.tsx | 222 ++++++++++++++++++++++++++++ src/components/chat/ChatInput.tsx | 70 +++++++++ src/components/chat/ChatMessage.tsx | 72 +++++++++ src/components/chat/ChatView.tsx | 79 ++++++++++ src/components/images/ImageView.tsx | 146 ++++++++++++++++++ src/components/ui/button.tsx | 8 +- src/index.css | 157 ++++++++++---------- src/pages/Index.tsx | 19 ++- tailwind.config.ts | 36 +++-- 12 files changed, 854 insertions(+), 103 deletions(-) create mode 100644 src/components/ChatHeader.tsx create mode 100644 src/components/Layout.tsx create mode 100644 src/components/audio/AudioView.tsx create mode 100644 src/components/chat/ChatInput.tsx create mode 100644 src/components/chat/ChatMessage.tsx create mode 100644 src/components/chat/ChatView.tsx create mode 100644 src/components/images/ImageView.tsx 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 +

+ +
+ +