voice-chat-01
elevenlabs/voice-chat-01FreeBlock
Voice chat 1
Install it
npx shadcn@latest add https://raw.githubusercontent.com/elevenlabs/ui/main/apps/www/public/r/voice-chat-01.jsonSource
1"use client"23import { useCallback, useEffect, useRef, useState } from "react"4import type { ComponentProps } from "react"5import {6 ConversationProvider,7 useConversation,8 useConversationControls,9 useConversationStatus,10} from "@elevenlabs/react"11import {12 AudioLinesIcon,13 CheckIcon,14 CopyIcon,15 PhoneOffIcon,16 SendIcon,17} from "lucide-react"1819import { cn } from "@/lib/utils"20import { Button } from "@/components/ui/button"21import {22 Card,23 CardContent,24 CardFooter,25 CardHeader,26} from "@/components/ui/card"27import {28 Conversation,29 ConversationContent,30 ConversationEmptyState,31 ConversationScrollButton,32} from "@/components/ui/conversation"33import { Input } from "@/components/ui/input"34import { Message, MessageContent } from "@/components/ui/message"35import { Orb } from "@/components/ui/orb"36import { Response } from "@/components/ui/response"37import { ShimmeringText } from "@/components/ui/shimmering-text"38import {39 Tooltip,40 TooltipContent,41 TooltipProvider,42 TooltipTrigger,43} from "@/components/ui/tooltip"4445type SystemMessageType = "initial" | "connecting" | "connected" | "error"4647interface ChatMessage {48 role: "user" | "assistant"49 content: string50 timestamp?: Date51 type?: SystemMessageType52}5354const DEFAULT_AGENT = {55 agentId: process.env.NEXT_PUBLIC_ELEVENLABS_AGENT_ID!,56 name: "Customer Support",57 description: "AI Voice Assistant",58}5960type ChatActionsProps = ComponentProps<"div">6162const ChatActions = ({ className, children, ...props }: ChatActionsProps) => (63 <div className={cn("flex items-center gap-1", className)} {...props}>64 {children}65 </div>66)6768type ChatActionProps = ComponentProps<typeof Button> & {69 tooltip?: string70 label?: string71}7273const ChatAction = ({74 tooltip,75 children,76 label,77 className,78 variant = "ghost",79 size = "sm",80 ...props81}: ChatActionProps) => {82 const button = (83 <Button84 className={cn(85 "text-muted-foreground hover:text-foreground relative size-9 p-1.5",86 className87 )}88 size={size}89 type="button"90 variant={variant}91 {...props}92 >93 {children}94 <span className="sr-only">{label || tooltip}</span>95 </Button>96 )9798 if (tooltip) {99 return (100 <TooltipProvider>101 <Tooltip>102 <TooltipTrigger asChild>{button}</TooltipTrigger>103 <TooltipContent>104 <p>{tooltip}</p>105 </TooltipContent>106 </Tooltip>107 </TooltipProvider>108 )109 }110111 return button112}113114// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from shadcn/ui
All 50 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| music-player-01music-player-01 | shadcn/ui | Blocks | Free | no deps | |
| music-player-02music-player-02 | shadcn/ui | Blocks | Free | no deps | |
| pong-01pong-01 | shadcn/ui | Blocks | Free | 1 dep · 6 files | |
| realtime-transcriber-01realtime-transcriber-01 | shadcn/ui | Blocks | Free | 2 deps · 3 files | |
| speaker-01speaker-01 | shadcn/ui | Blocks | Free | no deps · 2 files | |
| transcriber-01transcriber-01 | shadcn/ui | Blocks | Free | 2 deps · 2 files | |
| voice-chat-02voice-chat-02 | shadcn/ui | Blocks | Free | 2 deps | |
| voice-chat-03voice-chat-03 | shadcn/ui | Blocks | Free | 1 dep |
