realtime-transcriber-01
elevenlabs/realtime-transcriber-01FreeBlock
Scribe V2 Realtime Transcriber
Install it
npx shadcn@latest add https://raw.githubusercontent.com/elevenlabs/ui/main/apps/www/public/r/realtime-transcriber-01.jsonSource
1"use client"23import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"4import Link from "next/link"5import { AnimatePresence, motion } from "framer-motion"6import { Copy } from "lucide-react"78import { cn } from "@/lib/utils"9import { useDebounce } from "@/registry/elevenlabs-ui/hooks/use-debounce"10import { usePrevious } from "@/registry/elevenlabs-ui/hooks/use-previous"11import { useScribe } from "@/registry/elevenlabs-ui/hooks/use-scribe"12import { Badge } from "@/components/ui/badge"13import { Button } from "@/components/ui/button"14import { ShimmeringText } from "@/components/ui/shimmering-text"1516import { getScribeToken } from "./actions/get-scribe-token"17import { LanguageSelector } from "./components/language-selector"1819interface RecordingState {20 error: string21 latenciesMs: number[]22}2324type ConnectionState = "idle" | "connecting" | "connected" | "disconnecting"2526const TranscriptCharacter = React.memo(27 ({ char, delay }: { char: string; delay: number }) => {28 return (29 <motion.span30 initial={{ filter: `blur(3.5px)`, opacity: 0 }}31 animate={{ filter: `none`, opacity: 1 }}32 transition={{ duration: 0.5, delay }}33 style={{ willChange: delay > 0 ? "filter, opacity" : "auto" }}34 >35 {char}36 </motion.span>37 )38 }39)40TranscriptCharacter.displayName = "TranscriptCharacter"4142// Memoize background effects to prevent re-renders43const BackgroundAura = React.memo(44 ({ status, isConnected }: { status: string; isConnected: boolean }) => {45 const isActive = status === "connecting" || isConnected4647 return (48 <div49 className={cn(50 "pointer-events-none fixed inset-0 transition-opacity duration-300 ease-out",51 isActive ? "opacity-100" : "opacity-0"52 )}53 >54 {/* Center bottom pool - main glow */}55 <div56 className="absolute bottom-0 left-1/2 -translate-x-1/2"57 style={{58 width: "130%",59 height: "20vh",60 background:61 "radial-gradient(ellipse 100% 100% at 50% 100%, rgba(34, 211, 238, 0.5) 0%, rgba(168, 85, 247, 0.4) 35%, rgba(251, 146, 60, 0.5) 70%, transparent 100%)",62 filter: "blur(80px)",63 }}64 />6566 {/* Pulsing layer */}67 <div68 className={cn(69 "absolute bottom-0 left-1/2 -translate-x-1/2 animate-pulse",70 isConnected ? "opacity-100" : "opacity-80"71 )}72 style={{73 width: "100%",74// … 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 | |
| speaker-01speaker-01 | shadcn/ui | Blocks | Free | no deps · 2 files | |
| transcriber-01transcriber-01 | shadcn/ui | Blocks | Free | 2 deps · 2 files | |
| voice-chat-01voice-chat-01 | shadcn/ui | Blocks | Free | 1 dep | |
| voice-chat-02voice-chat-02 | shadcn/ui | Blocks | Free | 2 deps | |
| voice-chat-03voice-chat-03 | shadcn/ui | Blocks | Free | 1 dep |
