@convai/web-sdk 1.7.0-beta.0 → 1.7.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -6
- package/dist/core/AudioManager.js.map +1 -1
- package/dist/core/BlendshapeQueue.js.map +1 -1
- package/dist/core/ConnectionStateHandler.js.map +1 -1
- package/dist/core/ConvaiClient.d.ts +1 -31
- package/dist/core/ConvaiClient.d.ts.map +1 -1
- package/dist/core/ConvaiClient.js +8 -200
- package/dist/core/ConvaiClient.js.map +1 -1
- package/dist/core/EventEmitter.js.map +1 -1
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/MessageHandler.d.ts.map +1 -1
- package/dist/core/MessageHandler.js +4 -26
- package/dist/core/MessageHandler.js.map +1 -1
- package/dist/core/ScreenShareManager.js.map +1 -1
- package/dist/core/VideoManager.js.map +1 -1
- package/dist/core/connectRequest.d.ts +2 -2
- package/dist/core/connectRequest.js +3 -3
- package/dist/core/connectRequest.js.map +1 -1
- package/dist/core/contextUpdateRequest.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/types.d.ts +9 -163
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/videoSourceState.js.map +1 -1
- package/dist/core/visionRequest.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lipsync-helpers/arkitOrder61.js.map +1 -1
- package/dist/lipsync-helpers/createBlendshapeQueue.js.map +1 -1
- package/dist/lipsync-helpers/declarativeMapping.js.map +1 -1
- package/dist/lipsync-helpers/index.js.map +1 -1
- package/dist/lipsync-helpers/mappingTypes.js.map +1 -1
- package/dist/lipsync-helpers/metahumanOrder251.js.map +1 -1
- package/dist/lipsync-helpers/mhaLimitDrivers.js.map +1 -1
- package/dist/lipsync-helpers/naturalness/processor.js.map +1 -1
- package/dist/lipsync-helpers/naturalness/profiles/mha.js.map +1 -1
- package/dist/lipsync-helpers/naturalness/types.js.map +1 -1
- package/dist/lipsync-helpers/presetMappers.js.map +1 -1
- package/dist/react/components/ConvaiWidget.js.map +1 -1
- package/dist/react/components/index.js.map +1 -1
- package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js.map +1 -1
- package/dist/react/components/rtc-widget/components/AudioVisualizer.js.map +1 -1
- package/dist/react/components/rtc-widget/components/ConviMessage.js.map +1 -1
- package/dist/react/components/rtc-widget/components/FloatingVideo.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MarkdownRenderer.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MessageBubble.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MessageList.js.map +1 -1
- package/dist/react/components/rtc-widget/components/UserMessage.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/index.js.map +1 -1
- package/dist/react/components/rtc-widget/components/index.js.map +1 -1
- package/dist/react/components/rtc-widget/index.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/framerConfig.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/icons.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/index.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/styledComponents.js.map +1 -1
- package/dist/react/components/rtc-widget/styles/theme.js.map +1 -1
- package/dist/react/components/rtc-widget/types/index.js.map +1 -1
- package/dist/react/hooks/index.js.map +1 -1
- package/dist/react/hooks/useCharacterInfo.js.map +1 -1
- package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
- package/dist/react/hooks/useConvaiClient.js +0 -3
- package/dist/react/hooks/useConvaiClient.js.map +1 -1
- package/dist/react/hooks/useLocalCameraTrack.js.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/vanilla/AudioRenderer.js.map +1 -1
- package/dist/vanilla/ConvaiWidget.js.map +1 -1
- package/dist/vanilla/WebSocketSession.js.map +1 -1
- package/dist/vanilla/icons.js.map +1 -1
- package/dist/vanilla/index.js.map +1 -1
- package/dist/vanilla/styles.js.map +1 -1
- package/dist/vanilla/types.d.ts +2 -2
- package/dist/vanilla/types.d.ts.map +1 -1
- package/dist/vanilla/types.js.map +1 -1
- package/dist/vanilla/websocket.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/package.json +13 -6
- package/dist/core/CharacterRoster.d.ts +0 -68
- package/dist/core/CharacterRoster.d.ts.map +0 -1
- package/dist/core/CharacterRoster.js +0 -235
- package/dist/core/CharacterRoster.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvaiWidget.js","sourceRoot":"","sources":["../../src/vanilla/ConvaiWidget.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConvaiWidget.js","sourceRoot":"","sources":["../../src/vanilla/ConvaiWidget.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Vanilla ConvaiWidget - Complete UI widget for Convai conversations\n * Ports the React ConvaiWidget to vanilla TypeScript with DOM manipulation\n */\n\nimport { AudioRenderer } from \"./AudioRenderer\";\nimport { aeroTheme, injectGlobalStyles } from \"./styles\";\nimport { Icons } from \"./icons\";\nimport { ConvaiClient } from \"../core/ConvaiClient\";\nimport type { VanillaWidgetOptions, VanillaWidget } from \"./types\";\nimport type { ChatMessage, IConvaiClient } from \"../core/types\";\n\ninterface RTCChatMessage {\n id: string;\n text: string;\n isUser: boolean;\n timestamp: string;\n sender?: string;\n showLogo: boolean;\n}\n\n/**\n * Create a Convai chat widget in the specified container\n *\n * @param container - HTML element to attach the widget to\n * @param options - Widget configuration options\n * @returns VanillaWidget instance with destroy method\n *\n * @example Simple usage with config\n * ```typescript\n * import { createConvaiWidget } from '@convai/web-sdk/vanilla';\n *\n * const widget = createConvaiWidget(document.body, {\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * enableVideo: false\n * });\n * ```\n *\n * @example Advanced usage with client instance\n * ```typescript\n * import { ConvaiClient, createConvaiWidget } from '@convai/web-sdk/vanilla';\n *\n * const client = new ConvaiClient({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id'\n * });\n *\n * const widget = createConvaiWidget(document.body, {\n * convaiClient: client,\n * showVideo: true,\n * showScreenShare: true,\n * defaultVoiceMode: true\n * });\n * ```\n */\nexport function createConvaiWidget(\n container: HTMLElement,\n options: VanillaWidgetOptions,\n): VanillaWidget {\n // Create client if not provided - guarantee it's defined\n const client: IConvaiClient & {\n activity?: string;\n chatMessages: ChatMessage[];\n } =\n options.convaiClient ||\n (() => {\n const hasAuth = Boolean(options.apiKey || options.authToken);\n if (!hasAuth || !options.characterId) {\n throw new Error(\n \"Either convaiClient or (apiKey or authToken) and characterId must be provided\",\n );\n }\n\n return new ConvaiClient({\n apiKey: options?.apiKey || undefined,\n authToken: options?.authToken || undefined,\n characterId: options.characterId,\n enableVideo: options.enableVideo ?? false,\n startWithVideoOn: options.startWithVideoOn ?? false,\n enableLipsync: options.enableLipsync ?? false,\n enableEmotion: options.enableEmotion,\n blendshapeConfig: options.blendshapeConfig,\n });\n })();\n\n const {\n showVideo = true,\n showScreenShare = true,\n defaultVoiceMode = true,\n onConnect,\n onDisconnect,\n onMessage,\n } = options;\n\n // Inject global styles\n injectGlobalStyles();\n\n // State\n let isOpen = false;\n let isSettingsOpen = false;\n let isVoiceMode = defaultVoiceMode;\n let isMuted = false;\n let isVideoVisible = false;\n let inputValue = \"\";\n let characterName = \"Character\";\n let characterImage = \"\";\n let audioRenderer: AudioRenderer | null = null;\n let hasEnteredDefaultVoiceMode = false;\n /** True after we have connected at least once; used to call reconnect() instead of connect() when opening after disconnect */\n let hasConnectedBefore = false;\n\n // DOM elements (will be created below)\n let rootElement!: HTMLDivElement;\n let morphingContainer!: HTMLDivElement;\n let buttonContent!: HTMLDivElement;\n let chatContent!: HTMLDivElement;\n let headerElement!: HTMLDivElement;\n let contentElement!: HTMLDivElement;\n let footerElement!: HTMLDivElement;\n let inputElement!: HTMLInputElement;\n let messageListElement!: HTMLDivElement;\n let settingsTray!: HTMLDivElement;\n let floatingVideo!: HTMLDivElement;\n let voiceModeOverlay!: HTMLDivElement;\n\n // Audio Analysis State\n let audioContext: AudioContext | null = null;\n let analyzer: AnalyserNode | null = null;\n let dataArray: Uint8Array<ArrayBuffer> | null = null;\n let rafId: number | null = null;\n let source: MediaStreamAudioSourceNode | null = null;\n\n // Fetch character info - matches React useCharacterInfo hook\n const fetchCharacterInfo = async () => {\n if (!client.apiKey || !client.characterId) return;\n\n try {\n const response = await fetch(\"https://api.convai.com/character/get\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"API-AUTH-TOKEN\": client.apiKey,\n },\n body: JSON.stringify({ charID: client.characterId }),\n });\n\n if (response.ok) {\n const data = await response.json();\n\n // Extract character name and image with fallbacks - matches React version\n characterName = data.character_name || \"Convi\";\n characterImage =\n data.model_details?.METAHUMAN?.avatar_image_square ||\n data.model_details?.METAHUMAN?.avatar_image ||\n data.model_details?.modelPlaceholder ||\n \"\";\n\n updateHeader();\n }\n } catch (error) {\n console.error(\"Failed to fetch character info:\", error);\n }\n };\n\n // Create root structure\n const createDOM = () => {\n rootElement = document.createElement(\"div\");\n rootElement.className = \"convai-widget\";\n rootElement.style.cssText = `\n position: fixed;\n bottom: 1.5rem;\n right: 1.5rem;\n z-index: ${aeroTheme.zIndex.modal};\n font-family: ${aeroTheme.typography.fontFamily.primary};\n `;\n\n // Morphing container\n morphingContainer = document.createElement(\"div\");\n morphingContainer.style.cssText = `\n position: relative;\n width: 4rem;\n height: 4rem;\n background: ${aeroTheme.colors.glass.backdrop};\n backdrop-filter: ${aeroTheme.glass.backdrop};\n border: ${aeroTheme.glass.border};\n border-radius: 50%;\n box-shadow: ${aeroTheme.shadows.glass};\n transition: all 0.3s ease-in-out;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n `;\n\n // Button content (logo)\n buttonContent = document.createElement(\"div\");\n buttonContent.style.cssText = `\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: opacity 0.3s, transform 0.3s;\n opacity: 1;\n transform: scale(1);\n `;\n const convaiLogo = Icons.ConvaiLogo(\"xl\", \"idle\");\n convaiLogo.style.color = aeroTheme.colors.convai.light;\n buttonContent.appendChild(convaiLogo);\n\n // Chat content\n chatContent = document.createElement(\"div\");\n chatContent.style.cssText = `\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n opacity: 0;\n transform: scale(0.8);\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n `;\n\n // Voice Mode Overlay\n voiceModeOverlay = createVoiceModeOverlay();\n chatContent.appendChild(voiceModeOverlay);\n\n // Header\n headerElement = createHeader();\n\n // Content area\n contentElement = document.createElement(\"div\");\n contentElement.style.cssText = `\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n background: transparent;\n `;\n messageListElement = createMessageList();\n contentElement.appendChild(messageListElement);\n\n // Footer\n footerElement = createFooter();\n\n chatContent.appendChild(headerElement);\n chatContent.appendChild(contentElement);\n chatContent.appendChild(footerElement);\n\n morphingContainer.appendChild(buttonContent);\n morphingContainer.appendChild(chatContent);\n rootElement.appendChild(morphingContainer);\n\n // Settings tray\n settingsTray = createSettingsTray();\n rootElement.appendChild(settingsTray);\n\n // Floating video\n floatingVideo = createFloatingVideo();\n container.appendChild(floatingVideo);\n\n container.appendChild(rootElement);\n\n // Event listeners\n morphingContainer.addEventListener(\"click\", handleToggle);\n };\n\n // Create Voice Mode Overlay\n const createVoiceModeOverlay = (): HTMLDivElement => {\n const overlay = document.createElement(\"div\");\n overlay.style.cssText = `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n padding: 1rem;\n z-index: 10;\n pointer-events: auto;\n display: none;\n flex-direction: column;\n align-items: center;\n gap: 1.5rem;\n `;\n\n // Bars Container\n const barsContainer = document.createElement(\"div\");\n barsContainer.id = \"voice-bars-container\";\n barsContainer.style.cssText = `\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 2px;\n height: 80px;\n max-width: 300px;\n `;\n\n // Create 40 bars\n for (let i = 0; i < 40; i++) {\n const bar = document.createElement(\"div\");\n bar.className = \"voice-bar\";\n bar.style.cssText = `\n width: 3px;\n height: 15px;\n background-color: ${aeroTheme.colors.neutral[400]};\n border-radius: 1.5px;\n transition: height 0.08s ease-out, background-color 0.2s;\n transform-origin: center;\n `;\n barsContainer.appendChild(bar);\n }\n overlay.appendChild(barsContainer);\n\n // Status Text\n const statusContainer = document.createElement(\"div\");\n\n const statusTitle = document.createElement(\"div\");\n statusTitle.id = \"voice-mode-title\";\n statusTitle.style.cssText = `\n font-size: 14px;\n font-weight: 500;\n color: ${aeroTheme.colors.text.primary};\n margin-bottom: 0.5rem;\n `;\n statusTitle.textContent = \"Voice Only Mode\";\n\n const statusSubtitle = document.createElement(\"div\");\n statusSubtitle.id = \"voice-mode-subtitle\";\n statusSubtitle.style.cssText = `\n font-size: 12px;\n color: ${aeroTheme.colors.text.secondary};\n `;\n statusSubtitle.textContent = \"Press and hold the microphone to talk\";\n\n statusContainer.appendChild(statusTitle);\n statusContainer.appendChild(statusSubtitle);\n overlay.appendChild(statusContainer);\n\n return overlay;\n };\n\n // Audio Analysis State for Voice Mode\n let audioLevels: number[] = Array(40).fill(0);\n let targetLevels: number[] = Array(40).fill(0.05);\n let currentLevels: number[] = Array(40).fill(0.05);\n let startTime = 0;\n\n // Audio Analysis Logic\n const updateAudioBars = () => {\n if (!voiceModeOverlay) return;\n\n const bars = voiceModeOverlay.querySelectorAll(\".voice-bar\");\n const isTalking = client.state.isSpeaking;\n const isListening = client.state.isListening; // User is speaking (from user-started-speaking)\n const isAnimating = isListening || isTalking;\n\n // Update colors based on state\n bars.forEach((bar) => {\n (bar as HTMLElement).style.backgroundColor = isTalking\n ? aeroTheme.colors.convai.light\n : isListening\n ? aeroTheme.colors.text.primary\n : aeroTheme.colors.neutral[400];\n });\n\n // Update Text\n const title = document.getElementById(\"voice-mode-title\");\n const subtitle = document.getElementById(\"voice-mode-subtitle\");\n if (title) {\n title.textContent = isTalking\n ? \"Character Speaking...\"\n : isListening\n ? \"Listening...\"\n : \"Voice Only Mode\";\n }\n if (subtitle) {\n subtitle.textContent =\n isListening || isTalking\n ? \"Audio active\"\n : \"Press and hold the microphone to talk\";\n }\n\n // Animation Logic - Matches React version (animate when user or bot is active)\n if ((isListening || !client.audioControls.isAudioMuted) && analyzer && dataArray) {\n // Use time domain data (waveform) instead of frequency\n // @ts-ignore - TypeScript strict mode issue with Uint8Array type\n analyzer.getByteTimeDomainData(dataArray);\n\n // Calculate RMS (Root Mean Square) for volume\n let sum = 0;\n for (let i = 0; i < dataArray.length; i++) {\n const normalized = (dataArray[i] - 128) / 128; // Center around 0\n sum += normalized * normalized;\n }\n const rms = Math.sqrt(sum / dataArray.length);\n\n // Apply some scaling and clamping\n const volume = Math.min(1, rms * 3); // Boost sensitivity\n\n // Create left-to-right wave effect\n const minHeight = 8;\n const maxHeight = 70;\n\n bars.forEach((bar, i) => {\n // Progressive wave from left to right\n const position = i / 40; // 0 to 1 from left to right\n const wavePhase = Date.now() / 300 + position * Math.PI * 2;\n const waveVariation = Math.sin(wavePhase) * 0.15 + 0.85; // 0.7 to 1.0\n const level = volume * waveVariation;\n const height = minHeight + level * (maxHeight - minHeight);\n (bar as HTMLElement).style.height = `${Math.max(minHeight, height)}px`;\n });\n } else if (isTalking) {\n // Simulate speaking bars with natural speech patterns\n const elapsed = (Date.now() - startTime) / 1000; // seconds\n\n // Generate new random target levels occasionally (simulating syllables/words)\n if (Math.random() < 0.08) {\n // 8% chance per frame = ~5 times per second\n targetLevels = Array(40)\n .fill(0)\n .map((_, i) => {\n // More variation in the middle bars, less on edges for natural spread\n const position = i / 40;\n const centerWeight = 1 - Math.abs(position - 0.5) * 0.5;\n\n // Random peaks and valleys like speech patterns\n const randomPeak = 0.2 + Math.random() * 0.7; // 0.2 to 0.9\n\n // Add some neighbor correlation so bars don't jump independently\n const prevTarget = targetLevels[i] || 0.3;\n const correlation = prevTarget * 0.4 + randomPeak * 0.6;\n\n return correlation * centerWeight;\n });\n }\n\n // Smoothly interpolate current levels toward targets (organic movement)\n currentLevels = currentLevels.map((current, i) => {\n const target = targetLevels[i];\n const speed = 0.2; // Smooth but responsive\n return current + (target - current) * speed;\n });\n\n // Apply a gentle fade-in for the first 0.3 seconds\n const fadeIn = Math.min(1, elapsed / 0.3);\n\n const minHeight = 8;\n const maxHeight = 70;\n\n bars.forEach((bar, i) => {\n // Small random jitter for micro-variation\n const microJitter = 0.95 + Math.random() * 0.1; // 0.95 to 1.05\n const level = Math.max(\n 0.05,\n Math.min(1, currentLevels[i] * fadeIn * microJitter),\n );\n const height = minHeight + level * (maxHeight - minHeight);\n (bar as HTMLElement).style.height = `${Math.max(minHeight, height)}px`;\n });\n } else {\n // Reset to idle state\n bars.forEach((bar) => {\n (bar as HTMLElement).style.height = \"15px\";\n });\n }\n\n rafId = requestAnimationFrame(updateAudioBars);\n };\n\n const startAudioAnalysis = async () => {\n try {\n if (!audioContext) {\n audioContext = new (window.AudioContext ||\n (window as any).webkitAudioContext)();\n }\n\n if (audioContext.state === \"suspended\") {\n await audioContext.resume();\n }\n\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n analyzer = audioContext.createAnalyser();\n analyzer.fftSize = 256;\n analyzer.smoothingTimeConstant = 0.7;\n\n source = audioContext.createMediaStreamSource(stream);\n source.connect(analyzer);\n\n dataArray = new Uint8Array(analyzer.fftSize);\n updateAudioBars();\n } catch (e) {\n console.error(\"Audio analysis setup failed:\", e);\n }\n };\n\n const stopAudioAnalysis = () => {\n if (rafId) cancelAnimationFrame(rafId);\n if (source) {\n source.disconnect();\n source.mediaStream.getTracks().forEach((t) => t.stop());\n source = null;\n }\n // Keep context alive if possible, or close it? React component closes it.\n // We can keep it for reuse or close. Let's keep it simple.\n };\n\n // Create header\n const createHeader = (): HTMLDivElement => {\n const header = document.createElement(\"div\");\n header.style.cssText = `\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid ${aeroTheme.colors.neutral[200]};\n background: white;\n position: relative;\n `;\n\n // Close button on the left\n const closeButton = document.createElement(\"button\");\n const chevronIcon = Icons.ChevronDown(\"md\");\n closeButton.appendChild(chevronIcon);\n closeButton.style.cssText = `\n font-size: 1.25rem;\n color: ${aeroTheme.colors.text.secondary};\n cursor: pointer;\n padding: 0.25rem;\n transition: ${aeroTheme.transitions.fast};\n background: transparent;\n border: none;\n `;\n closeButton.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n handleClose();\n });\n\n // Title section centered - matches React version\n const titleSection = document.createElement(\"div\");\n titleSection.style.cssText = `\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: ${aeroTheme.typography.fontSize.base};\n font-weight: ${aeroTheme.typography.fontWeight.semibold};\n color: ${aeroTheme.colors.text.primary};\n `;\n titleSection.id = \"convai-widget-title\";\n\n // Settings button on the right\n const settingsButton = document.createElement(\"button\");\n const moreIcon = Icons.MoreVertical(\"md\");\n settingsButton.appendChild(moreIcon);\n settingsButton.style.cssText = `\n font-size: 1.5rem;\n color: ${aeroTheme.colors.text.secondary};\n cursor: pointer;\n padding: 0.25rem;\n transition: ${aeroTheme.transitions.fast};\n background: transparent;\n border: none;\n margin-left: auto;\n `;\n settingsButton.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n handleSettingsToggle();\n });\n\n header.appendChild(closeButton);\n header.appendChild(titleSection);\n header.appendChild(settingsButton);\n\n return header;\n };\n\n // Update header with character info\n const updateHeader = () => {\n const titleSection = document.getElementById(\"convai-widget-title\");\n if (!titleSection) return;\n\n titleSection.innerHTML = \"\";\n\n if (characterImage) {\n const img = document.createElement(\"img\");\n img.src = characterImage;\n img.alt = characterName;\n img.style.cssText = `\n width: 1.5rem;\n height: 1.5rem;\n border-radius: 50%;\n object-fit: cover;\n border: 1.5px solid ${getBotStatusColor().color};\n box-shadow: 0 0 6px ${getBotStatusColor().color}40;\n transition: all 0.3s ease;\n `;\n titleSection.appendChild(img);\n }\n\n const nameSpan = document.createElement(\"span\");\n nameSpan.textContent = characterName;\n titleSection.appendChild(nameSpan);\n\n // Mute button\n const muteButton = document.createElement(\"button\");\n muteButton.innerHTML = \"\";\n const volumeIcon = isMuted\n ? Icons.VolumeMute(\"sm\")\n : Icons.VolumeHigh(\"sm\");\n volumeIcon.style.color = isMuted ? \"#919EABA6\" : \"#0E7360\";\n muteButton.appendChild(volumeIcon);\n muteButton.style.cssText = `\n cursor: pointer;\n background: transparent;\n border: none;\n box-shadow: none;\n width: auto;\n height: auto;\n padding: 0;\n display: inline-flex;\n align-items: center;\n margin-left: 0.5rem;\n outline: none;\n transition: transform 0.1s ease-out;\n `;\n muteButton.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n handleToggleMute();\n });\n muteButton.addEventListener(\"mouseenter\", () => {\n muteButton.style.transform = \"scale(1.1)\";\n });\n muteButton.addEventListener(\"mouseleave\", () => {\n muteButton.style.transform = \"scale(1)\";\n });\n titleSection.appendChild(muteButton);\n\n // Voice Mode Badge\n if (isVoiceMode) {\n const voiceBadge = document.createElement(\"span\");\n voiceBadge.textContent = \"VOICE\";\n voiceBadge.style.cssText = `\n font-size: 10px;\n color: ${aeroTheme.colors.convai.light};\n font-weight: 500;\n margin-left: 8px;\n padding: 2px 6px;\n border-radius: 4px;\n background-color: ${aeroTheme.colors.convai.light}20;\n `;\n titleSection.appendChild(voiceBadge);\n }\n\n // Speaking tag (top bar, same style as React)\n if (client.state.isSpeaking) {\n const speakingTag = document.createElement(\"span\");\n speakingTag.textContent = \"SPEAKING\";\n speakingTag.style.cssText = `\n font-size: 10px;\n color: #10b981;\n font-weight: 600;\n margin-left: 8px;\n padding: 3px 8px;\n border-radius: 6px;\n background-color: #10b98120;\n border: 1px solid #10b98140;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n `;\n const dot = document.createElement(\"span\");\n dot.style.cssText = `\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #10b981;\n display: inline-block;\n `;\n speakingTag.insertBefore(dot, speakingTag.firstChild);\n titleSection.appendChild(speakingTag);\n }\n\n // Listening tag (top bar, when user is speaking)\n if (client.state.isListening && !client.state.isSpeaking) {\n const listeningTag = document.createElement(\"span\");\n listeningTag.textContent = \"LISTENING\";\n listeningTag.style.cssText = `\n font-size: 10px;\n color: #3b82f6;\n font-weight: 600;\n margin-left: 8px;\n padding: 3px 8px;\n border-radius: 6px;\n background-color: #3b82f620;\n border: 1px solid #3b82f640;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n `;\n const dot = document.createElement(\"span\");\n dot.style.cssText = `\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #3b82f6;\n display: inline-block;\n `;\n listeningTag.insertBefore(dot, listeningTag.firstChild);\n titleSection.appendChild(listeningTag);\n }\n };\n\n // Create message list\n const createMessageList = (): HTMLDivElement => {\n const list = document.createElement(\"div\");\n list.id = \"convai-message-list\";\n list.style.cssText = `\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n min-height: 100%;\n `;\n return list;\n };\n\n // Create footer\n const createFooter = (): HTMLDivElement => {\n const footer = document.createElement(\"div\");\n footer.style.cssText = `\n padding: 1rem;\n border-top: 1px solid ${aeroTheme.colors.neutral[200]};\n background: white;\n display: flex;\n gap: 0.5rem;\n align-items: center;\n position: relative;\n `;\n\n // Voice Mode Exit Button (Initially hidden)\n const voiceExitButton = document.createElement(\"button\");\n voiceExitButton.id = \"convai-voice-exit-btn\";\n const exitIcon = Icons.PhoneOff(\"md\");\n voiceExitButton.appendChild(exitIcon);\n voiceExitButton.style.cssText = `\n width: 2.25rem;\n height: 2.25rem;\n border-radius: 50%;\n background: ${aeroTheme.colors.error[500]};\n color: white;\n display: none; /* Hidden by default */\n align-items: center;\n justify-content: center;\n cursor: pointer;\n margin: 0 auto;\n border: none;\n `;\n voiceExitButton.addEventListener(\"click\", async () => {\n client.sendInterruptMessage();\n await client.audioControls.muteAudio(); // Mute on exit\n isVoiceMode = false;\n updateVoiceMode();\n });\n footer.appendChild(voiceExitButton);\n\n // Standard Footer Content (Mic + Input)\n const standardContent = document.createElement(\"div\");\n standardContent.id = \"convai-footer-standard\";\n standardContent.style.cssText = `\n display: flex;\n gap: 0.5rem;\n align-items: center;\n width: 100%;\n `;\n\n // Input container (microphone button removed from text mode)\n const inputContainer = document.createElement(\"div\");\n inputContainer.style.cssText = `\n flex: 1;\n position: relative;\n display: flex;\n align-items: center;\n `;\n\n inputElement = document.createElement(\"input\");\n inputElement.type = \"text\";\n inputElement.placeholder = \"Conversation\";\n inputElement.style.cssText = `\n width: 100%;\n padding: 0.75rem 2.75rem 0.75rem 1rem;\n border-radius: ${aeroTheme.borderRadius.full};\n border: 1px solid ${aeroTheme.colors.neutral[300]};\n background: ${aeroTheme.colors.glass.medium};\n color: ${aeroTheme.colors.text.primary};\n font-size: ${aeroTheme.typography.fontSize.sm};\n transition: ${aeroTheme.transitions.fast};\n outline: none;\n `;\n inputElement.addEventListener(\"input\", (e) => {\n inputValue = (e.target as HTMLInputElement).value;\n updateSendButton();\n });\n inputElement.addEventListener(\"keypress\", (e) => {\n if (e.key === \"Enter\") handleSend();\n });\n\n // Send button\n const sendButton = document.createElement(\"button\");\n sendButton.id = \"convai-send-button\";\n const sendIcon = Icons.Send(\"md\");\n sendButton.appendChild(sendIcon);\n sendButton.style.cssText = `\n position: absolute;\n right: 0.375rem;\n width: 2.25rem;\n height: 2.25rem;\n border-radius: 50%;\n background: transparent; /* Initial transparent for voice toggle */\n color: ${aeroTheme.colors.text.primary};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: ${aeroTheme.transitions.fast};\n border: none;\n `;\n sendButton.addEventListener(\"click\", async () => {\n if (inputValue.length > 0) {\n handleSend();\n } else {\n // Toggle Voice Mode\n client.sendInterruptMessage();\n await client.audioControls.unmuteAudio(); // Unmute on enter\n isVoiceMode = true;\n updateVoiceMode();\n }\n });\n\n inputContainer.appendChild(inputElement);\n inputContainer.appendChild(sendButton);\n standardContent.appendChild(inputContainer);\n footer.appendChild(standardContent);\n\n return footer;\n };\n\n // Create settings tray - Matches React SettingsTray component exactly\n const createSettingsTray = (): HTMLDivElement => {\n const tray = document.createElement(\"div\");\n tray.setAttribute(\"data-settings-tray\", \"true\");\n tray.style.cssText = `\n position: absolute;\n top: 60px;\n right: 16px;\n background: white;\n border-radius: ${aeroTheme.borderRadius.xl};\n box-shadow: ${aeroTheme.shadows.xl};\n padding: 0;\n display: none;\n flex-direction: row;\n align-items: center;\n gap: 0;\n z-index: 9999;\n min-width: auto;\n transform-origin: top right;\n animation: popIn 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n overflow: hidden;\n `;\n\n // Add animation keyframes if not present\n if (!document.getElementById(\"convai-widget-keyframes\")) {\n const style = document.createElement(\"style\");\n style.id = \"convai-widget-keyframes\";\n style.textContent = `\n @keyframes popIn {\n from { opacity: 0; transform: scale(0.95) translateY(-10px); }\n to { opacity: 1; transform: scale(1) translateY(0); }\n }\n `;\n document.head.appendChild(style);\n }\n\n // Horizontal Settings Row Container\n const settingsRow = document.createElement(\"div\");\n settingsRow.style.cssText = `\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 8px;\n gap: 4px;\n `;\n\n const createOption = (\n icon: HTMLElement | SVGSVGElement,\n label: string,\n onClick: () => void,\n isActive: boolean = false,\n isDestructive: boolean = false,\n ) => {\n const btn = document.createElement(\"div\");\n btn.style.cssText = `\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n cursor: pointer;\n border-radius: ${aeroTheme.borderRadius.md};\n background-color: ${\n isActive\n ? \"rgba(16, 185, 129, 0.15)\"\n : isDestructive\n ? \"rgba(239, 68, 68, 0.1)\"\n : \"transparent\"\n };\n color: ${\n isActive\n ? \"#10b981\"\n : isDestructive\n ? \"#ef4444\"\n : aeroTheme.colors.text.primary\n };\n transition: ${aeroTheme.transitions.fast};\n min-width: 50px;\n `;\n\n // Icon container\n const iconContainer = document.createElement(\"div\");\n iconContainer.appendChild(icon);\n btn.appendChild(iconContainer);\n\n const span = document.createElement(\"span\");\n span.textContent = label;\n span.style.cssText = `\n font-size: 10px;\n font-weight: 500;\n `;\n btn.appendChild(span);\n\n btn.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n onClick();\n });\n\n btn.addEventListener(\"mouseover\", () => {\n btn.style.transform = \"scale(1.02)\";\n if (!isActive && !isDestructive) {\n btn.style.backgroundColor = aeroTheme.colors.neutral[100];\n }\n });\n btn.addEventListener(\"mouseout\", () => {\n btn.style.transform = \"scale(1)\";\n btn.style.backgroundColor = isActive\n ? \"rgba(16, 185, 129, 0.15)\"\n : isDestructive\n ? \"rgba(239, 68, 68, 0.1)\"\n : \"transparent\";\n });\n\n return btn;\n };\n\n // Reset\n const resetIcon = Icons.Redo(\"md\");\n resetIcon.style.width = \"18px\";\n resetIcon.style.height = \"18px\";\n settingsRow.appendChild(createOption(resetIcon, \"Reset\", handleReset));\n\n // Video - only show if connection type is video\n const connectionType = client.connectionType;\n if (connectionType === \"video\" && showVideo) {\n const videoIcon = isVideoVisible\n ? Icons.Video(\"md\")\n : Icons.VideoOff(\"md\");\n videoIcon.style.width = \"18px\";\n videoIcon.style.height = \"18px\";\n const videoBtn = createOption(\n videoIcon,\n \"Video\",\n handleToggleVideo,\n isVideoVisible,\n );\n videoBtn.id = \"convai-settings-video-btn\";\n settingsRow.appendChild(videoBtn);\n }\n\n // Screen Share - only show if connection type is video\n if (connectionType === \"video\" && showScreenShare) {\n const isSharing = client.screenShareControls.isScreenShareActive;\n const shareIcon = isSharing\n ? Icons.StopScreenShare(\"md\")\n : Icons.ScreenShare(\"md\");\n shareIcon.style.width = \"18px\";\n shareIcon.style.height = \"18px\";\n const shareBtn = createOption(\n shareIcon,\n \"Screen\",\n handleToggleScreenShare,\n isSharing,\n );\n shareBtn.id = \"convai-settings-share-btn\";\n settingsRow.appendChild(shareBtn);\n }\n\n // Disconnect\n const disconnectIcon = document.createElement(\"span\");\n disconnectIcon.innerHTML = \"⏻\";\n disconnectIcon.style.fontSize = \"18px\";\n settingsRow.appendChild(\n createOption(disconnectIcon, \"Disconnect\", handleDisconnect, false, true),\n );\n\n tray.appendChild(settingsRow);\n return tray;\n };\n\n // Update settings tray content to reflect current connection state\n const updateSettingsTray = () => {\n const settingsRow = settingsTray.querySelector(\"div\");\n if (!settingsRow) return;\n\n // Clear existing content\n settingsRow.innerHTML = \"\";\n\n const createOption = (\n icon: HTMLElement | SVGSVGElement,\n label: string,\n onClick: () => void,\n isActive: boolean = false,\n isDestructive: boolean = false,\n ) => {\n const btn = document.createElement(\"div\");\n btn.style.cssText = `\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n cursor: pointer;\n border-radius: ${aeroTheme.borderRadius.md};\n background-color: ${\n isActive\n ? \"rgba(16, 185, 129, 0.15)\"\n : isDestructive\n ? \"rgba(239, 68, 68, 0.1)\"\n : \"transparent\"\n };\n color: ${\n isActive\n ? \"#10b981\"\n : isDestructive\n ? \"#ef4444\"\n : aeroTheme.colors.text.primary\n };\n transition: ${aeroTheme.transitions.fast};\n min-width: 50px;\n `;\n\n // Icon container\n const iconContainer = document.createElement(\"div\");\n iconContainer.appendChild(icon);\n btn.appendChild(iconContainer);\n\n const span = document.createElement(\"span\");\n span.textContent = label;\n span.style.cssText = `\n font-size: 10px;\n font-weight: 500;\n `;\n btn.appendChild(span);\n\n btn.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n onClick();\n });\n\n btn.addEventListener(\"mouseover\", () => {\n btn.style.transform = \"scale(1.02)\";\n if (!isActive && !isDestructive) {\n btn.style.backgroundColor = aeroTheme.colors.neutral[100];\n }\n });\n btn.addEventListener(\"mouseout\", () => {\n btn.style.transform = \"scale(1)\";\n btn.style.backgroundColor = isActive\n ? \"rgba(16, 185, 129, 0.15)\"\n : isDestructive\n ? \"rgba(239, 68, 68, 0.1)\"\n : \"transparent\";\n });\n\n return btn;\n };\n\n // Reset\n const resetIcon = Icons.Redo(\"md\");\n resetIcon.style.width = \"18px\";\n resetIcon.style.height = \"18px\";\n settingsRow.appendChild(createOption(resetIcon, \"Reset\", handleReset));\n\n // Video - Always show if showVideo is true and connection type is video\n const connectionType = client.connectionType;\n if (connectionType === \"video\" && showVideo) {\n const videoIcon = isVideoVisible\n ? Icons.Video(\"md\")\n : Icons.VideoOff(\"md\");\n videoIcon.style.width = \"18px\";\n videoIcon.style.height = \"18px\";\n const videoBtn = createOption(\n videoIcon,\n \"Video\",\n handleToggleVideo,\n isVideoVisible,\n );\n videoBtn.id = \"convai-settings-video-btn\";\n settingsRow.appendChild(videoBtn);\n }\n\n // Screen Share - Always show if showScreenShare is true and connection type is video\n if (connectionType === \"video\" && showScreenShare) {\n const isSharing = client.screenShareControls.isScreenShareActive;\n const shareIcon = isSharing\n ? Icons.StopScreenShare(\"md\")\n : Icons.ScreenShare(\"md\");\n shareIcon.style.width = \"18px\";\n shareIcon.style.height = \"18px\";\n const shareBtn = createOption(\n shareIcon,\n \"Screen\",\n handleToggleScreenShare,\n isSharing,\n );\n shareBtn.id = \"convai-settings-share-btn\";\n settingsRow.appendChild(shareBtn);\n }\n\n // Disconnect\n const disconnectIcon = document.createElement(\"span\");\n disconnectIcon.innerHTML = \"⏻\";\n disconnectIcon.style.fontSize = \"18px\";\n settingsRow.appendChild(\n createOption(disconnectIcon, \"Disconnect\", handleDisconnect, false, true),\n );\n };\n\n // Create floating video - Matches React FloatingVideo component\n const createFloatingVideo = (): HTMLDivElement => {\n const container = document.createElement(\"div\");\n container.id = \"floating-video-container\";\n container.style.cssText = `\n position: fixed;\n left: 20px;\n top: 20px;\n z-index: 10000;\n width: 320px;\n border-radius: ${aeroTheme.borderRadius.lg};\n overflow: hidden;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n cursor: grab;\n display: none;\n transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n `;\n\n const wrapper = document.createElement(\"div\");\n wrapper.style.cssText = `\n background: rgba(15, 23, 42, 0.95);\n backdrop-filter: blur(20px);\n border: 1px solid ${aeroTheme.colors.neutral[700]};\n border-radius: ${aeroTheme.borderRadius.lg};\n overflow: hidden;\n `;\n\n // Header\n const header = document.createElement(\"div\");\n header.style.cssText = `\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: rgba(0, 0, 0, 0.3);\n border-bottom: 1px solid ${aeroTheme.colors.neutral[700]};\n `;\n\n const headerLeft = document.createElement(\"div\");\n headerLeft.style.cssText = `\n display: flex;\n align-items: center;\n gap: 8px;\n color: ${aeroTheme.colors.neutral[300]};\n font-size: 12px;\n font-weight: 500;\n `;\n\n const dragIcon = Icons.DragIndicator(\"sm\");\n dragIcon.style.width = \"16px\";\n dragIcon.style.height = \"16px\";\n headerLeft.appendChild(dragIcon);\n\n const label = document.createElement(\"span\");\n label.textContent = \"Your Camera\";\n headerLeft.appendChild(label);\n\n const closeButton = document.createElement(\"button\");\n closeButton.innerHTML = \"\";\n const closeIcon = Icons.Close(\"md\");\n closeIcon.style.width = \"20px\";\n closeIcon.style.height = \"20px\";\n closeButton.appendChild(closeIcon);\n closeButton.style.cssText = `\n background: transparent;\n border: none;\n color: ${aeroTheme.colors.neutral[400]};\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px;\n transition: transform 0.1s ease-out;\n `;\n closeButton.addEventListener(\"click\", (e) => {\n e.stopPropagation();\n client.videoControls.disableVideo();\n });\n closeButton.addEventListener(\"mouseenter\", () => {\n closeButton.style.transform = \"scale(1.1)\";\n });\n closeButton.addEventListener(\"mouseleave\", () => {\n closeButton.style.transform = \"scale(1)\";\n });\n\n header.appendChild(headerLeft);\n header.appendChild(closeButton);\n\n // Video Container\n const videoContainer = document.createElement(\"div\");\n videoContainer.style.cssText = `\n position: relative;\n width: 100%;\n padding-bottom: 75%;\n background: #000;\n `;\n\n const videoWrapper = document.createElement(\"div\");\n videoWrapper.id = \"floating-video-wrapper\";\n videoWrapper.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n `;\n\n const videoElement = document.createElement(\"video\");\n videoElement.id = \"floating-video-element\";\n videoElement.autoplay = true;\n videoElement.playsInline = true;\n videoElement.muted = true;\n videoElement.style.cssText = `\n width: 100%;\n height: 100%;\n object-fit: cover;\n transform: scaleX(-1);\n `;\n\n // Camera off placeholder\n const cameraOffPlaceholder = document.createElement(\"div\");\n cameraOffPlaceholder.id = \"camera-off-placeholder\";\n cameraOffPlaceholder.style.cssText = `\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: ${aeroTheme.colors.neutral[400]};\n gap: 12px;\n background: #000;\n `;\n const cameraOffIcon = Icons.VideoOff(\"lg\");\n cameraOffIcon.style.width = \"48px\";\n cameraOffIcon.style.height = \"48px\";\n cameraOffPlaceholder.appendChild(cameraOffIcon);\n const cameraOffText = document.createElement(\"span\");\n cameraOffText.textContent = \"Camera is off\";\n cameraOffText.style.cssText = `\n font-size: 14px;\n text-align: center;\n `;\n cameraOffPlaceholder.appendChild(cameraOffText);\n\n videoWrapper.appendChild(videoElement);\n videoWrapper.appendChild(cameraOffPlaceholder);\n videoContainer.appendChild(videoWrapper);\n\n wrapper.appendChild(header);\n wrapper.appendChild(videoContainer);\n container.appendChild(wrapper);\n\n // Add drag functionality\n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let startLeft = 20;\n let startTop = 20;\n\n const handleMouseDown = (e: MouseEvent) => {\n if ((e.target as HTMLElement).closest(\"button\")) return;\n isDragging = true;\n startX = e.clientX;\n startY = e.clientY;\n const style = window.getComputedStyle(container);\n startLeft = parseInt(style.left);\n startTop = parseInt(style.top);\n container.style.cursor = \"grabbing\";\n e.preventDefault();\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging) return;\n const deltaX = e.clientX - startX;\n const deltaY = e.clientY - startY;\n const newLeft = startLeft + deltaX;\n const newTop = startTop + deltaY;\n\n // Keep within bounds\n const maxX = window.innerWidth - 320;\n const maxY = window.innerHeight - 240;\n const boundedLeft = Math.max(0, Math.min(newLeft, maxX));\n const boundedTop = Math.max(0, Math.min(newTop, maxY));\n\n container.style.left = `${boundedLeft}px`;\n container.style.top = `${boundedTop}px`;\n };\n\n const handleMouseUp = () => {\n if (isDragging) {\n isDragging = false;\n container.style.cursor = \"grab\";\n }\n };\n\n container.addEventListener(\"mousedown\", handleMouseDown);\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n\n return container;\n };\n\n // Event handlers\n const handleToggle = async () => {\n if (isOpen) {\n // Just close if already open\n return;\n }\n\n // Connect on first click if not already connected/connecting\n if (!client.state.isConnected && !client.state.isConnecting) {\n try {\n // Use reconnect when opening again after a disconnect (reuses stored config)\n if (hasConnectedBefore && typeof client.reconnect === \"function\") {\n await client.reconnect();\n } else {\n await client.connect();\n }\n setIsOpen(true);\n } catch (error) {\n console.error(\"Failed to connect:\", error);\n }\n } else {\n // Just toggle open/close if already connected\n setIsOpen(!isOpen);\n }\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleSend = () => {\n if (inputValue.trim() && client.state.isConnected) {\n client.sendUserTextMessage(inputValue);\n inputValue = \"\";\n inputElement.value = \"\";\n updateSendButton();\n }\n };\n\n // Microphone toggle removed - only controlled via voice mode now\n\n const handleToggleMute = () => {\n isMuted = !isMuted;\n\n if (client.room) {\n const remoteParticipants = Array.from(\n client.room.remoteParticipants.values(),\n );\n remoteParticipants.forEach((participant: any) => {\n participant.audioTrackPublications.forEach((publication: any) => {\n if (publication.track) {\n publication.track.setMuted(isMuted);\n }\n });\n });\n }\n\n updateHeader();\n };\n\n const handleReset = async () => {\n setIsSettingsOpen(false);\n try {\n await client.disconnect();\n client.resetSession();\n isMuted = false;\n isVoiceMode = false;\n hasEnteredDefaultVoiceMode = false;\n updateHeader();\n updateVoiceMode();\n updateSendButton();\n } catch (error) {\n console.error(\"Failed to reset:\", error);\n }\n };\n\n const handleDisconnect = async () => {\n setIsSettingsOpen(false);\n await client.disconnect();\n isMuted = false;\n isVoiceMode = false;\n hasEnteredDefaultVoiceMode = false;\n updateHeader();\n updateVoiceMode();\n updateSendButton();\n };\n\n const handleToggleVideo = async () => {\n if (client.connectionType !== \"video\") return;\n\n try {\n if (isVideoVisible) {\n await client.videoControls.disableVideo();\n } else {\n await client.videoControls.enableVideo();\n }\n // State will be updated via event listener below\n } catch (e) {\n console.error(\"Failed to toggle video:\", e);\n }\n };\n\n const handleToggleScreenShare = async () => {\n try {\n await client.screenShareControls.toggleScreenShare();\n // State will be updated via event listener above\n } catch (e) {\n console.error(\"Failed to toggle screen share:\", e);\n }\n };\n\n const handleSettingsToggle = () => {\n // Regenerate settings tray content BEFORE opening to reflect current connection type\n if (!isSettingsOpen) {\n updateSettingsTray();\n }\n\n setIsSettingsOpen(!isSettingsOpen);\n };\n\n // Update functions\n const setIsOpen = async (open: boolean) => {\n isOpen = open;\n\n if (open) {\n morphingContainer.style.width = \"400px\";\n morphingContainer.style.height = \"600px\";\n morphingContainer.style.borderRadius = aeroTheme.borderRadius.xl;\n morphingContainer.style.cursor = \"default\";\n\n buttonContent.style.opacity = \"0\";\n buttonContent.style.transform = \"scale(0.8)\";\n buttonContent.style.pointerEvents = \"none\";\n\n chatContent.style.opacity = \"1\";\n chatContent.style.transform = \"scale(1)\";\n chatContent.style.pointerEvents = \"auto\";\n\n // Auto-enter voice mode if defaultVoiceMode is true and not already entered\n if (\n defaultVoiceMode &&\n !hasEnteredDefaultVoiceMode &&\n client.state.isConnected\n ) {\n setTimeout(async () => {\n try {\n await client.audioControls.unmuteAudio();\n isVoiceMode = true;\n hasEnteredDefaultVoiceMode = true;\n updateVoiceMode();\n } catch (error) {\n console.error(\"Failed to enter voice mode on open:\", error);\n }\n }, 100);\n }\n } else {\n morphingContainer.style.width = \"4rem\";\n morphingContainer.style.height = \"4rem\";\n morphingContainer.style.borderRadius = \"50%\";\n morphingContainer.style.cursor = \"pointer\";\n\n buttonContent.style.opacity = \"1\";\n buttonContent.style.transform = \"scale(1)\";\n buttonContent.style.pointerEvents = \"auto\";\n\n chatContent.style.opacity = \"0\";\n chatContent.style.transform = \"scale(0.8)\";\n chatContent.style.pointerEvents = \"none\";\n }\n };\n\n const setIsSettingsOpen = (open: boolean) => {\n isSettingsOpen = open;\n settingsTray.style.display = open ? \"flex\" : \"none\";\n };\n\n const updateSendButton = () => {\n const sendButton = document.getElementById(\"convai-send-button\");\n if (!sendButton) return;\n\n // Clear previous content\n sendButton.innerHTML = \"\";\n\n if (inputValue.length > 0) {\n // Show Send Button\n sendButton.appendChild(Icons.Send(\"md\"));\n sendButton.style.background = aeroTheme.colors.text.primary;\n sendButton.style.color = \"white\";\n sendButton.style.border = \"none\";\n sendButton.title = \"Send\";\n } else {\n // Show Voice Mode Toggle\n sendButton.appendChild(Icons.Waveform(\"md\"));\n sendButton.style.background = \"transparent\";\n sendButton.style.color = aeroTheme.colors.text.primary;\n sendButton.style.border = `1px solid ${aeroTheme.colors.neutral[300]}`;\n sendButton.title = \"Voice Mode\";\n }\n };\n\n const updateVideoTrack = () => {\n if (!floatingVideo || !client.room || !client.room.localParticipant) return;\n\n const videoEl = floatingVideo.querySelector(\n \"#floating-video-element\",\n ) as HTMLVideoElement;\n const placeholder = floatingVideo.querySelector(\n \"#camera-off-placeholder\",\n ) as HTMLElement;\n\n if (!videoEl || !placeholder) return;\n\n if (isVideoVisible && !isVoiceMode) {\n const tracks = Array.from(\n client.room.localParticipant.videoTrackPublications.values(),\n );\n const videoPub = tracks.find((t: any) => t.kind === \"video\");\n\n if (videoPub && videoPub.track) {\n videoPub.track.attach(videoEl);\n videoEl.style.display = \"block\";\n placeholder.style.display = \"none\";\n } else {\n videoEl.style.display = \"none\";\n placeholder.style.display = \"flex\";\n }\n } else {\n videoEl.style.display = \"none\";\n placeholder.style.display = \"flex\";\n }\n };\n\n const updateVoiceMode = async () => {\n const standardFooter = document.getElementById(\"convai-footer-standard\");\n const voiceExitBtn = document.getElementById(\"convai-voice-exit-btn\");\n\n if (isVoiceMode) {\n // Show Voice Overlay\n if (voiceModeOverlay) voiceModeOverlay.style.display = \"flex\";\n if (messageListElement) messageListElement.style.display = \"none\";\n if (floatingVideo) floatingVideo.style.display = \"none\";\n\n // Footer: Show Exit Button, Hide Standard\n if (standardFooter) standardFooter.style.display = \"none\";\n if (voiceExitBtn) voiceExitBtn.style.display = \"flex\";\n if (footerElement) footerElement.style.justifyContent = \"center\";\n\n // Update header to show VOICE badge\n updateHeader();\n\n // Reset animation state for voice mode\n startTime = Date.now();\n currentLevels = Array(40).fill(0.05);\n targetLevels = Array(40).fill(0.05);\n\n // Start Audio Analysis\n startAudioAnalysis();\n } else {\n // Ensure microphone is muted when not in voice mode\n if (!client.audioControls.isAudioMuted) {\n await client.audioControls.muteAudio();\n }\n\n // Hide Overlay\n if (voiceModeOverlay) voiceModeOverlay.style.display = \"none\";\n\n // Show Video or Message List\n if (isVideoVisible) {\n if (messageListElement) messageListElement.style.display = \"none\";\n if (floatingVideo) floatingVideo.style.display = \"block\";\n updateVideoTrack();\n } else {\n if (messageListElement) messageListElement.style.display = \"flex\";\n if (floatingVideo) floatingVideo.style.display = \"none\";\n }\n\n // Footer: Show Standard, Hide Exit\n if (standardFooter) standardFooter.style.display = \"flex\";\n if (voiceExitBtn) voiceExitBtn.style.display = \"none\";\n if (footerElement) footerElement.style.justifyContent = \"flex-start\";\n\n // Update header to hide VOICE badge\n updateHeader();\n\n // Stop Audio Analysis\n stopAudioAnalysis();\n }\n };\n\n // Microphone button removed - only controlled via voice mode now\n\n // Helper for Markdown - matches React MarkdownRenderer.tsx\n const renderMarkdown = (text: string, container: HTMLElement) => {\n if (!text) return;\n\n // Handle both actual newlines and \\n escape sequences\n const normalizedText = text.replace(/\\\\n/g, \"\\n\");\n const lines = normalizedText.split(\"\\n\");\n\n lines.forEach((line, lineIndex) => {\n // Process markdown within each line\n const processLine = (text: string): (HTMLElement | Text)[] => {\n const parts: (HTMLElement | Text)[] = [];\n let remaining = text;\n\n // Process bold and italic markdown\n // Bold: **text** or __text__\n // Italic: *text* or _text_\n const markdownRegex = /(\\*\\*|__)(.*?)\\1|\\*([^*]+)\\*|_([^_]+)_/g;\n let lastIndex = 0;\n let match;\n\n while ((match = markdownRegex.exec(remaining)) !== null) {\n // Add text before the match\n if (match.index > lastIndex) {\n const textBefore = remaining.substring(lastIndex, match.index);\n if (textBefore) {\n parts.push(document.createTextNode(textBefore));\n }\n }\n\n // Determine if it's bold or italic\n if (match[1] && match[2]) {\n // Bold text (** or __) - matches React UserBubble styling\n const strong = document.createElement(\"strong\");\n strong.textContent = match[2];\n strong.style.cssText = `\n font-weight: 600;\n color: ${aeroTheme.colors.text.primary};\n `;\n parts.push(strong);\n } else if (match[3]) {\n // Italic text (*) - matches React UserBubble styling\n const em = document.createElement(\"em\");\n em.textContent = match[3];\n em.style.cssText = `\n font-style: italic;\n `;\n parts.push(em);\n } else if (match[4]) {\n // Italic text (_) - matches React UserBubble styling\n const em = document.createElement(\"em\");\n em.textContent = match[4];\n em.style.cssText = `\n font-style: italic;\n `;\n parts.push(em);\n }\n\n lastIndex = match.index + match[0].length;\n }\n\n // Add remaining text\n if (lastIndex < remaining.length) {\n const textAfter = remaining.substring(lastIndex);\n if (textAfter) {\n parts.push(document.createTextNode(textAfter));\n }\n }\n\n return parts;\n };\n\n const processedLine = processLine(line);\n\n // Handle empty lines (creates paragraph spacing)\n if (line.trim() === \"\" && lineIndex > 0) {\n container.appendChild(document.createElement(\"br\"));\n return;\n }\n\n // Append the processed line\n if (processedLine.length > 0) {\n processedLine.forEach((part) => container.appendChild(part));\n } else {\n container.appendChild(document.createTextNode(line));\n }\n\n // Add line break between lines\n if (lineIndex < lines.length - 1) {\n container.appendChild(document.createElement(\"br\"));\n }\n });\n };\n\n const updateMessageList = () => {\n if (!messageListElement) return;\n\n const messages = formatMessages();\n messageListElement.innerHTML = \"\";\n\n if (messages.length === 0) {\n const emptyState = document.createElement(\"div\");\n emptyState.style.cssText = `\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: ${aeroTheme.colors.text.secondary};\n text-align: center;\n padding: 2rem;\n `;\n emptyState.innerHTML = `\n <p style=\"font-weight: 500; margin-bottom: 8px;\">Start a conversation</p>\n <p style=\"font-size: 12px;\">Type a message below to begin chatting</p>\n `;\n messageListElement.appendChild(emptyState);\n return;\n }\n\n messages.forEach((msg) => {\n // MessageWrapper - matches React UserMessageContainer\n const messageWrapper = document.createElement(\"div\");\n messageWrapper.style.cssText = `\n display: flex;\n flex-direction: column;\n max-width: ${msg.isUser ? \"70%\" : \"70%\"};\n margin-left: ${msg.isUser ? \"auto\" : \"0\"};\n width: 100%;\n isolation: isolate;\n contain: layout style paint;\n `;\n\n const bubble = document.createElement(\"div\");\n // Add data attribute to identify user messages for debugging/styling\n if (msg.isUser) {\n bubble.setAttribute(\"data-message-type\", \"user\");\n }\n\n // Set base styles first - explicitly set background to match React UserBubble exactly\n // CRITICAL: Use the exact same background for both user and bot messages\n const backgroundColor = \"rgba(252, 252, 253, 0.95)\";\n bubble.style.cssText = `\n padding: 12px;\n border-radius: ${msg.isUser ? \"12px 12px 4px 12px\" : \"12px 12px 12px 4px\"};\n background: ${backgroundColor};\n background-color: ${backgroundColor};\n backdrop-filter: blur(20px) saturate(180%);\n border: 1px solid rgba(0, 0, 0, 0.06);\n box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.8) inset, 0 2px 8px rgba(0, 0, 0, 0.08);\n color: ${aeroTheme.colors.text.primary};\n font-family: ${aeroTheme.typography.fontFamily.body};\n font-size: 14px;\n line-height: 1.5;\n word-wrap: break-word;\n max-width: 100%;\n display: flex;\n flex-direction: column;\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -webkit-text-size-adjust: 100%;\n isolation: isolate;\n contain: layout style paint;\n `;\n // Set background with !important to override any other styles (this is critical)\n bubble.style.setProperty(\"background\", backgroundColor, \"important\");\n bubble.style.setProperty(\n \"background-color\",\n backgroundColor,\n \"important\",\n );\n\n // Header (Logo/Icon + Name) inside bubble - matches React MessageHeader\n if (msg.sender) {\n const header = document.createElement(\"div\");\n header.style.cssText = `\n display: flex;\n align-items: center;\n gap: ${aeroTheme.spacing.xs};\n margin-bottom: ${aeroTheme.spacing.xs};\n isolation: isolate;\n contain: layout style paint;\n `;\n\n // Logo/Icon - matches React LogoWrapper\n const logoContainer = document.createElement(\"div\");\n logoContainer.style.cssText = `\n width: 1rem;\n height: 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n isolation: isolate;\n contain: layout style paint;\n `;\n\n if (msg.isUser) {\n // User Icon - FaUser from react-icons/fa, matches React exactly\n const userIcon = Icons.User(\"sm\");\n userIcon.style.width = \"16px\";\n userIcon.style.height = \"16px\";\n userIcon.style.color = aeroTheme.colors.convai.dark;\n logoContainer.appendChild(userIcon);\n } else {\n // Bot Logo - ConvaiLogo sm size with connected state\n const botLogo = Icons.ConvaiLogo(\"sm\", \"connected\");\n botLogo.style.width = \"16px\";\n botLogo.style.height = \"16px\";\n botLogo.style.color = \"#10b981\";\n logoContainer.appendChild(botLogo);\n }\n\n // Name Label - matches React UserLabel exactly\n const nameLabel = document.createElement(\"span\");\n nameLabel.textContent = msg.sender === \"User\" ? \"You\" : msg.sender;\n nameLabel.style.cssText = `\n font-size: 0.75rem;\n color: ${msg.isUser ? aeroTheme.colors.convai.dark : \"#10b981\"};\n font-weight: 500;\n font-family: ${aeroTheme.typography.fontFamily.body};\n isolation: isolate;\n contain: layout style paint;\n `;\n\n header.appendChild(logoContainer);\n header.appendChild(nameLabel);\n bubble.appendChild(header);\n }\n\n // Message Content\n const contentDiv = document.createElement(\"div\");\n contentDiv.style.cssText = `\n white-space: pre-wrap;\n word-wrap: break-word;\n `;\n renderMarkdown(msg.text, contentDiv);\n bubble.appendChild(contentDiv);\n\n messageWrapper.appendChild(bubble);\n\n // Timestamp - matches React exactly\n if (msg.timestamp) {\n const timestamp = document.createElement(\"span\");\n timestamp.textContent = msg.timestamp;\n timestamp.style.cssText = `\n font-size: 0.75rem;\n color: ${aeroTheme.colors.text.secondary};\n margin-top: 4px;\n align-self: ${msg.isUser ? \"flex-end\" : \"flex-start\"};\n font-family: ${aeroTheme.typography.fontFamily.body};\n `;\n messageWrapper.appendChild(timestamp);\n }\n\n messageListElement.appendChild(messageWrapper);\n });\n\n // Scroll to bottom\n messageListElement.scrollTop = messageListElement.scrollHeight;\n };\n\n const getBotStatusColor = () => {\n if (!client.state.isConnected) {\n return { color: \"#ef4444\", label: \"Disconnected\" };\n }\n if (client.state.isConnecting || !client.isBotReady) {\n return { color: \"#f59e0b\", label: \"Connecting\" };\n }\n if (client.state.isListening) {\n return { color: \"#3b82f6\", label: \"Listening\" };\n }\n return { color: \"#10b981\", label: \"Connected\" };\n };\n\n const formatMessages = (): RTCChatMessage[] => {\n const filteredMessages = client.chatMessages.filter(\n (msg: ChatMessage) =>\n (msg.type === \"user-transcription\" ||\n msg.type === \"user-llm-text\" ||\n msg.type === \"bot-llm-text\" ||\n msg.type === \"bot-output\" ||\n msg.type === \"bot-emotion\") &&\n msg.content &&\n msg.content.trim().length > 0,\n );\n\n return filteredMessages.map((msg: ChatMessage) => ({\n id: msg.id,\n text: msg.content,\n isUser: msg.type.includes(\"user\"),\n timestamp: new Date(msg.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n }),\n sender: msg.type.includes(\"user\") ? \"You\" : characterName,\n showLogo: msg.type.includes(\"bot\"),\n }));\n };\n\n // Setup event listeners for client state changes\n const setupClientListeners = () => {\n client.on(\"stateChange\", () => {\n updateHeader();\n\n // Update pulse animation based on connecting state\n if (client.state.isConnecting) {\n morphingContainer.style.animation =\n \"convai-pulse 2s ease-in-out infinite\";\n } else {\n morphingContainer.style.animation = \"none\";\n }\n\n // Update speaking animation state\n if (client.state.isSpeaking) {\n if (!startTime) {\n startTime = Date.now();\n }\n } else {\n // Reset when not speaking\n if (startTime && !client.state.isSpeaking) {\n startTime = 0;\n currentLevels = Array(40).fill(0.05);\n targetLevels = Array(40).fill(0.05);\n }\n }\n\n // Auto-collapse when disconnected\n if (!client.state.isConnected && !client.state.isConnecting) {\n if (isOpen) {\n setIsOpen(false);\n }\n isMuted = false;\n isVoiceMode = false;\n isVideoVisible = false;\n hasEnteredDefaultVoiceMode = false;\n updateHeader();\n updateVoiceMode();\n }\n\n // Auto-enter voice mode on first connection if defaultVoiceMode is true\n if (\n client.state.isConnected &&\n defaultVoiceMode &&\n isOpen &&\n !hasEnteredDefaultVoiceMode &&\n !isVoiceMode\n ) {\n setTimeout(async () => {\n try {\n await client.audioControls.unmuteAudio();\n isVoiceMode = true;\n hasEnteredDefaultVoiceMode = true;\n updateVoiceMode();\n } catch (error) {\n console.error(\"Failed to enter voice mode:\", error);\n }\n }, 100);\n }\n });\n\n // Audio state changes now only affect voice mode (microphone button removed)\n\n // Video state change listener\n client.videoControls.on(\"videoStateChange\", (videoState: any) => {\n if (videoState.isVideoEnabled !== undefined) {\n isVideoVisible = videoState.isVideoEnabled;\n updateVoiceMode();\n\n // Update tray button state\n const videoBtn = document.getElementById(\"convai-settings-video-btn\");\n if (videoBtn) {\n const isActive = isVideoVisible;\n videoBtn.style.backgroundColor = isActive\n ? \"rgba(16, 185, 129, 0.15)\"\n : \"transparent\";\n videoBtn.style.color = isActive\n ? \"#10b981\"\n : aeroTheme.colors.text.primary;\n // Update Icon - first child is icon container\n const iconContainer = videoBtn.querySelector(\"div\");\n if (iconContainer) {\n iconContainer.innerHTML = \"\";\n const icon = isActive ? Icons.Video(\"md\") : Icons.VideoOff(\"md\");\n icon.style.width = \"18px\";\n icon.style.height = \"18px\";\n iconContainer.appendChild(icon);\n }\n }\n }\n });\n\n // Screen share state change listener\n client.screenShareControls.on(\n \"screenShareStateChange\",\n (screenShareState: any) => {\n if (screenShareState.isScreenShareActive !== undefined) {\n const isSharing = screenShareState.isScreenShareActive;\n const shareBtn = document.getElementById(\"convai-settings-share-btn\");\n if (shareBtn) {\n const isActive = isSharing;\n shareBtn.style.backgroundColor = isActive\n ? \"rgba(16, 185, 129, 0.15)\"\n : \"transparent\";\n shareBtn.style.color = isActive\n ? \"#10b981\"\n : aeroTheme.colors.text.primary;\n // Update Icon - first child is icon container\n const iconContainer = shareBtn.querySelector(\"div\");\n if (iconContainer) {\n iconContainer.innerHTML = \"\";\n const icon = isActive\n ? Icons.StopScreenShare(\"md\")\n : Icons.ScreenShare(\"md\");\n icon.style.width = \"18px\";\n icon.style.height = \"18px\";\n iconContainer.appendChild(icon);\n }\n }\n }\n },\n );\n\n client.on(\"messagesChange\", () => {\n updateMessageList();\n\n // Call onMessage callback if provided\n if (onMessage && client.chatMessages.length > 0) {\n const lastMessage = client.chatMessages[client.chatMessages.length - 1];\n onMessage(lastMessage);\n }\n });\n\n // Bot ready listener - updates UI when bot becomes ready\n client.on(\"botReady\", () => {\n updateHeader(); // Update header to show green status\n });\n\n client.on(\"connect\", () => {\n hasConnectedBefore = true;\n\n // Initialize audio renderer on connection\n if (client.room && !audioRenderer) {\n audioRenderer = new AudioRenderer(client.room);\n }\n\n // Fetch character info\n fetchCharacterInfo();\n\n // Call onConnect callback if provided\n if (onConnect) {\n onConnect();\n }\n });\n\n client.on(\"disconnect\", () => {\n // Cleanup audio renderer\n if (audioRenderer) {\n audioRenderer.destroy();\n audioRenderer = null;\n }\n\n updateMessageList();\n\n // Call onDisconnect callback if provided\n if (onDisconnect) {\n onDisconnect();\n }\n });\n };\n\n // Initialize\n createDOM();\n setupClientListeners();\n\n // Set initial button state\n updateSendButton(); // Show voice mode button initially since input is empty\n\n // Set initial voice mode UI if defaultVoiceMode is true\n if (defaultVoiceMode) {\n updateVoiceMode();\n }\n\n // If already connected, initialize audio renderer and fetch character info\n if (client.state.isConnected && client.room) {\n audioRenderer = new AudioRenderer(client.room);\n fetchCharacterInfo();\n }\n\n // Return widget instance\n const widget: VanillaWidget = {\n element: rootElement,\n client: client,\n destroy: () => {\n // Cleanup audio renderer\n if (audioRenderer) {\n audioRenderer.destroy();\n audioRenderer = null;\n }\n\n // Remove event listeners\n morphingContainer.removeEventListener(\"click\", handleToggle);\n\n // Remove DOM elements\n if (rootElement.parentElement) {\n rootElement.remove();\n }\n if (floatingVideo.parentElement) {\n floatingVideo.remove();\n }\n\n // Unsubscribe from client events\n client.off(\"stateChange\", () => {});\n client.off(\"messagesChange\", () => {});\n client.off(\"botReady\", () => {});\n client.off(\"connect\", () => {});\n client.off(\"disconnect\", () => {});\n },\n };\n\n return widget;\n}\n\n/**\n * Destroy a Convai widget instance\n * @param widget - Widget instance to destroy\n */\nexport function destroyConvaiWidget(widget: VanillaWidget): void {\n widget.destroy();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketSession.js","sourceRoot":"","sources":["../../src/vanilla/WebSocketSession.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebSocketSession.js","sourceRoot":"","sources":["../../src/vanilla/WebSocketSession.ts"],"names":[],"mappings":"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","sourcesContent":["import { PipecatClient, RTVIEvent } from \"@pipecat-ai/client-js\";\nimport { WebSocketTransport } from \"@pipecat-ai/websocket-transport\";\nimport { EventEmitter } from \"../core/EventEmitter\";\n\n/**\n * Adapter that wraps PipecatClient + WebSocketTransport for use in ConvaiClient.\n *\n * Responsibilities:\n * - Manage PipecatClient lifecycle (connect, disconnect)\n * - Forward all RTVI events back to MessageHandler by re-encoding them as {type, data} payloads\n * - Send outgoing messages via PipecatClient.sendClientMessage (Pipecat wraps to {t, d} envelope)\n * - Expose mic control and bot audio track\n *\n * The caller is responsible for making the HTTP /connect request.\n * Pass the parsed response object to connect() — WebSocketTransport extracts\n * wsUrl/ws_url automatically.\n */\nexport class WebSocketSession extends EventEmitter {\n private _pcClient: PipecatClient;\n private _isConnected = false;\n private readonly _onMessage: (payload: Uint8Array) => void;\n\n constructor(onMessage: (payload: Uint8Array) => void, enableMic = true) {\n super();\n this._onMessage = onMessage;\n\n this._pcClient = new PipecatClient({\n transport: new WebSocketTransport(),\n enableMic,\n enableCam: false,\n callbacks: {\n onConnected: () => {\n this._isConnected = true;\n this.emit(\"connected\");\n },\n onDisconnected: () => {\n this._isConnected = false;\n this.emit(\"disconnected\");\n },\n onError: (err: unknown) => {\n this.emit(\"error\", err);\n },\n },\n });\n\n this._setupMessageForwarding();\n }\n\n get isConnected(): boolean {\n return this._isConnected;\n }\n\n /**\n * Initialize devices and connect the WebSocket transport using the WS URL.\n * The server returns the WebSocket URL in connectionData.room_url.\n * Fires \"connected\" event when the transport is up (before bot-ready).\n */\n async connectWithUrl(wsUrl: string): Promise<void> {\n // initDevices must be called before connect per Pipecat docs\n await this._pcClient.initDevices();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._pcClient.connect({ wsUrl } as any).catch((err: unknown) => this.emit(\"error\", err));\n }\n\n async disconnect(): Promise<void> {\n this._isConnected = false;\n await this._pcClient.disconnect();\n }\n\n sendMessage(type: string, data: unknown): void {\n if (!this._isConnected) return;\n this._pcClient.sendClientMessage(type, data);\n }\n\n /**\n * Toggle the local mic. We avoid pcClient.enableMic() because Pipecat's\n * DailyMediaManager.enableMic() triggers Daily state changes (setLocalAudio\n * + recorder pause/resume + track-stopped/started events) that produce\n * \"track-started for current track and already recording\" warnings and\n * \"Error when starting local audio level observer!\" on every toggle.\n *\n * Instead, flip the underlying MediaStreamTrack.enabled — the browser then\n * emits silent samples through Daily's existing recorder, the server sees\n * silence (no speech), and Daily's internal state never changes.\n */\n enableMic(enable: boolean): void {\n const track = this._getLocalAudioTrack();\n if (track) {\n track.enabled = enable;\n } else {\n // Fallback: track not yet available (e.g. called before first connect).\n this._pcClient.enableMic(enable);\n }\n }\n\n getBotAudioTrack(): MediaStreamTrack | null {\n return this._pcClient.tracks().bot?.audio ?? null;\n }\n\n private _getLocalAudioTrack(): MediaStreamTrack | null {\n const tracks = this._pcClient.tracks() as { local?: { audio?: MediaStreamTrack | null } };\n return tracks?.local?.audio ?? null;\n }\n\n private _setupMessageForwarding(): void {\n const encoder = new TextEncoder();\n const fwd = (type: string, data: unknown): void => {\n this._onMessage(encoder.encode(JSON.stringify({ type, data })));\n };\n\n // Standard RTVI events — reconstruct {type, data} for MessageHandler\n this._pcClient.on(RTVIEvent.BotReady, (data) => {\n fwd(\"bot-ready\", data ?? {});\n // Also check for audio track now that bot is ready\n const track = this._pcClient.tracks().bot?.audio;\n if (track) this.emit(\"botAudioTrack\", track);\n });\n\n this._pcClient.on(RTVIEvent.BotLlmStarted, () => fwd(\"bot-llm-started\", {}));\n this._pcClient.on(RTVIEvent.BotLlmText, (data) => fwd(\"bot-llm-text\", data ?? {}));\n this._pcClient.on(RTVIEvent.BotLlmStopped, () => fwd(\"bot-llm-stopped\", {}));\n this._pcClient.on(RTVIEvent.BotOutput, (data) => fwd(\"bot-output\", data ?? {}));\n this._pcClient.on(RTVIEvent.BotTtsText, (data) => fwd(\"bot-tts-text\", data ?? {}));\n this._pcClient.on(RTVIEvent.BotTtsStarted, () => fwd(\"bot-tts-started\", {}));\n this._pcClient.on(RTVIEvent.BotTtsStopped, () => fwd(\"bot-tts-stopped\", {}));\n this._pcClient.on(RTVIEvent.UserStartedSpeaking, () => fwd(\"user-started-speaking\", {}));\n this._pcClient.on(RTVIEvent.UserStoppedSpeaking, () => fwd(\"user-stopped-speaking\", {}));\n this._pcClient.on(RTVIEvent.BotStartedSpeaking, () => fwd(\"bot-started-speaking\", {}));\n this._pcClient.on(RTVIEvent.BotStoppedSpeaking, () => fwd(\"bot-stopped-speaking\", {}));\n this._pcClient.on(RTVIEvent.UserTranscript, (data) => fwd(\"user-transcription\", data ?? {}));\n this._pcClient.on(RTVIEvent.UserMuteStarted, () => fwd(\"user-mute-started\", {}));\n this._pcClient.on(RTVIEvent.UserMuteStopped, () => fwd(\"user-mute-stopped\", {}));\n this._pcClient.on(RTVIEvent.Metrics, (data) => fwd(\"metrics\", data ?? {}));\n\n // Convai-specific messages arrive as RTVI \"server-message\" type.\n // ev.data is the inner payload — wrap it back so MessageHandler's\n // \"server-message\" case can process it with its nested switch.\n this._pcClient.on(RTVIEvent.ServerMessage, (data: unknown) =>\n fwd(\"server-message\", data)\n );\n\n // Bot audio track starts during or after connection\n this._pcClient.on(RTVIEvent.TrackStarted, (track, participant) => {\n if (!(participant as { local?: boolean })?.local && track.kind === \"audio\") {\n this.emit(\"botAudioTrack\", track as MediaStreamTrack);\n }\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/vanilla/icons.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/vanilla/icons.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Vanilla JS Icons\n * Reuses the same icons from the React example\n * Uses inline SVG for consistency and no external dependencies\n */\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\nexport type LogoState =\n | 'idle'\n | 'connecting'\n | 'connected'\n | 'disconnected'\n | 'typing'\n | 'listening'\n | 'processing';\n\nconst iconSizes: Record<IconSize, string> = {\n xs: '0.75rem',\n sm: '1rem',\n md: '1.25rem',\n lg: '1.5rem',\n xl: '2rem',\n '2xl': '2.5rem',\n};\n\nconst secondStripColors: Record<LogoState, string> = {\n idle: '#1EB453',\n connecting: '#f59e0b',\n connected: '#1EB453',\n disconnected: '#ef4444',\n typing: '#8b5cf6',\n listening: '#3b82f6',\n processing: '#6366f1',\n};\n\n/**\n * Create an SVG element with common attributes\n */\nfunction createSVG(\n size: IconSize,\n viewBox: string,\n paths: string[],\n className?: string\n): SVGSVGElement {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const sizeValue = iconSizes[size];\n \n svg.setAttribute('width', sizeValue);\n svg.setAttribute('height', sizeValue);\n svg.setAttribute('viewBox', viewBox);\n svg.setAttribute('fill', 'none');\n svg.setAttribute('stroke', 'currentColor');\n svg.setAttribute('stroke-width', '2');\n svg.setAttribute('stroke-linecap', 'round');\n svg.setAttribute('stroke-linejoin', 'round');\n \n if (className) {\n svg.className.baseVal = className;\n }\n \n paths.forEach(pathData => {\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', pathData);\n svg.appendChild(path);\n });\n \n return svg;\n}\n\n/**\n * Create a filled SVG element\n */\nfunction createFilledSVG(\n size: IconSize,\n viewBox: string,\n paths: Array<{ d: string; fill?: string; transform?: string }>,\n className?: string\n): SVGSVGElement {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const sizeValue = iconSizes[size];\n \n svg.setAttribute('width', sizeValue);\n svg.setAttribute('height', sizeValue);\n svg.setAttribute('viewBox', viewBox);\n svg.setAttribute('fill', 'currentColor');\n \n if (className) {\n svg.className.baseVal = className;\n }\n \n paths.forEach(pathConfig => {\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', pathConfig.d);\n if (pathConfig.fill) {\n path.setAttribute('fill', pathConfig.fill);\n }\n if (pathConfig.transform) {\n path.setAttribute('transform', pathConfig.transform);\n }\n svg.appendChild(path);\n });\n \n return svg;\n}\n\n/**\n * Icons object with all icon creation functions\n * Matches the icons from react-icons used in the React example\n */\nexport const Icons = {\n // Convai Logo - exact copy from React example\n ConvaiLogo: (size: IconSize = 'md', state: LogoState = 'idle', className?: string): SVGSVGElement => {\n return createFilledSVG(\n size,\n '0 0 384 384',\n [\n // First strip - Main body (always original green)\n {\n d: 'M0 0 C0.69959839 -0.0065712 1.39919678 -0.0131424 2.11999512 -0.01991272 C4.43522251 -0.03962096 6.75038501 -0.05130455 9.06567383 -0.0612793 C9.85831446 -0.06535482 10.65095509 -0.06943035 11.46761513 -0.07362938 C15.66541914 -0.0944825 19.86319057 -0.10878583 24.06103516 -0.11816406 C28.38410215 -0.12920936 32.70665171 -0.16358924 37.02953625 -0.20333576 C40.36427221 -0.22956171 43.69888619 -0.23786131 47.0337162 -0.24144554 C48.62643224 -0.24629839 50.21914331 -0.2578751 51.81175804 -0.27648354 C69.26930263 -0.46773456 69.26930263 -0.46773456 75.58610535 5.6245575 C80.21645647 10.85588298 81.33540199 14.49016989 81.35986328 21.4206543 C81.36497421 22.14311844 81.37008514 22.86558258 81.37535095 23.60993958 C81.38923214 25.99435754 81.38829113 28.37848592 81.38598633 30.76293945 C81.38987448 32.42436836 81.39420939 34.08579627 81.39897156 35.7472229 C81.40643089 39.22905703 81.40614488 42.71078976 81.40087891 46.19262695 C81.39508893 50.64694813 81.41200506 55.10085286 81.43522358 59.55510521 C81.44998192 62.98670871 81.4508297 66.41821245 81.44771385 69.84984207 C81.44822615 71.49163258 81.45344672 73.1334288 81.46352577 74.77518845 C81.47591195 77.07525124 81.46908575 79.37450987 81.45751953 81.67456055 C81.45814896 82.981539 81.45877838 84.28851746 81.45942688 85.63510132 C80.84254452 91.47371365 78.52732357 95.26249723 74.08520508 98.98950195 C73.40458008 99.57344727 72.72395508 100.15739258 72.02270508 100.7590332 C68.47350615 103.35653161 65.36290965 103.30519544 61.10424805 103.31884766 C59.87221649 103.32588211 58.64018494 103.33291656 57.37081909 103.34016418 C56.7124493 103.34198008 56.05407951 103.34379597 55.37575912 103.34566689 C53.30624131 103.35285669 51.23695729 103.36854441 49.16751099 103.38700867 C43.28366424 103.43934056 37.3999433 103.4873775 31.51586914 103.50292969 C27.91355676 103.5130737 24.3118307 103.54256243 20.70975113 103.5842495 C19.34402042 103.59647838 17.97820656 103.60169572 16.61242294 103.59945107 C8.73090231 103.58969075 1.87263728 103.81383569 -4.91479492 108.17700195 C-7.72384754 111.13052013 -9.15477197 114.52324306 -10.91479492 118.17700195 C-11.28512344 118.93435638 -11.65545197 119.69171082 -12.03700256 120.47201538 C-16.07726993 130.41632989 -15.43823163 140.76281367 -15.37008476 151.32646561 C-15.34801891 154.90096301 -15.35197296 158.47462262 -15.36256409 162.04916382 C-15.38412577 170.92003422 -15.36687668 179.79071265 -15.34106445 188.66156006 C-15.31962039 196.17710783 -15.31776573 203.69211414 -15.34398079 211.20765305 C-15.34831203 214.71647808 -15.32375642 218.22434564 -15.29844666 221.73306274 C-15.30371999 223.89748554 -15.31044419 226.06190545 -15.31884766 228.22631836 C-15.30393784 229.19074356 -15.28902802 230.15516876 -15.27366638 231.14881897 C-15.34508206 238.01141921 -16.9480351 243.5040945 -20.91479492 249.17700195 C-26.0538927 253.49142781 -30.93587496 255.28530317 -37.61843872 255.3309021 C-38.56028519 255.33950256 -39.50213165 255.34810303 -40.47251892 255.35696411 C-41.49906082 255.36122406 -42.52560272 255.36548401 -43.58325195 255.36987305 C-44.66992661 255.37805054 -45.75660126 255.38622803 -46.87620544 255.39465332 C-50.47500054 255.41947905 -54.07375621 255.43601739 -57.67260742 255.45043945 C-58.90313717 255.45576313 -60.13366692 255.46108681 -61.40148544 255.46657181 C-67.24488135 255.49053877 -73.08826109 255.5097802 -78.93169224 255.52259386 C-84.98841103 255.53614167 -91.04475988 255.56242227 -97.10131836 255.60913086 C-103.60933706 255.65850314 -110.11701183 255.68322666 -116.62520981 255.69032669 C-119.10105009 255.69703038 -121.57688297 255.71222923 -124.05261612 255.7362175 C-127.52547148 255.76794397 -130.99700762 255.7678936 -134.4699707 255.76049805 C-135.48436722 255.77690338 -136.49876373 255.79330872 -137.54389954 255.81021118 C-144.58516525 255.74911945 -150.0594436 254.18666177 -155.91479492 250.17700195 C-160.11922437 245.7740819 -162.02935988 241.44006577 -162.06869507 235.39033508 C-162.08159576 233.91218575 -162.08159576 233.91218575 -162.09475708 232.4041748 C-162.09901703 231.32414185 -162.10327698 230.24410889 -162.10766602 229.13134766 C-162.11584351 227.99283859 -162.124021 226.85432953 -162.13244629 225.68132019 C-162.15730395 221.90514656 -162.17381777 218.12901055 -162.18823242 214.3527832 C-162.1935561 213.06367727 -162.19887978 211.77457134 -162.20436478 210.4464016 C-162.22559522 205.02735272 -162.24472449 199.60831609 -162.25598717 194.18923664 C-162.27221051 186.43543753 -162.30535181 178.68214076 -162.36238801 170.92853099 C-162.40584504 164.81123062 -162.42174109 158.6941264 -162.42811966 152.57668114 C-162.43483541 149.9791729 -162.45006568 147.38167207 -162.47401047 144.78426552 C-162.50563862 141.14566586 -162.50570126 137.50833002 -162.49829102 133.86962891 C-162.51469635 132.7997171 -162.53110168 131.7298053 -162.54800415 130.62747192 C-162.49171427 123.86379339 -161.30224231 119.40867493 -156.91479492 114.17700195 C-150.70048633 108.27340879 -145.09496666 107.88810653 -136.89892578 107.9375 C-135.89334625 107.93548584 -134.88776672 107.93347168 -133.85171509 107.93139648 C-131.67026481 107.92785441 -129.48880427 107.92861384 -127.30735588 107.93317223 C-123.84643147 107.93877446 -120.38584111 107.92958995 -116.92494202 107.91596985 C-107.08536336 107.87889048 -97.24589659 107.86026615 -87.40625 107.87158203 C-81.38322548 107.87745814 -75.36066903 107.85904709 -69.33773994 107.82569313 C-67.05060701 107.81777476 -64.76342257 107.81896733 -62.47630119 107.82971764 C-43.45245929 108.09017669 -43.45245929 108.09017669 -26.78979492 99.73950195 C-23.10917107 94.70931602 -22.66695746 89.8832171 -22.67529297 83.76977539 C-22.67327881 83.05344437 -22.67126465 82.33711334 -22.66918945 81.59907532 C-22.66565984 80.05224746 -22.66639133 78.50540513 -22.67096519 76.95858002 C-22.67659236 74.50202502 -22.66734352 72.0459363 -22.65376282 69.5894165 C-22.61678347 62.60801088 -22.59805845 55.62676468 -22.609375 48.64526367 C-22.61525918 44.36517663 -22.59680667 40.08574677 -22.5634861 35.80579376 C-22.55558359 34.18408293 -22.55673851 32.56229947 -22.5675106 30.94060516 C-22.62477994 21.92945939 -22.61028477 13.70058716 -16.91479492 6.17700195 C-11.68775031 1.25109893 -7.03157131 0.05467437 0 0 Z',\n fill: '#1EB453',\n transform: 'translate(275.914794921875,92.822998046875)',\n },\n // Second strip - Accent (dynamic colors based on state)\n {\n d: 'M0 0 C0.70949799 -0.0065712 1.41899597 -0.0131424 2.1499939 -0.01991272 C4.49224974 -0.03958252 6.83444162 -0.05129463 9.17675781 -0.0612793 C9.97951393 -0.06535482 10.78227005 -0.06943035 11.60935211 -0.07362938 C15.85903157 -0.09446397 20.10867901 -0.10877652 24.35839844 -0.11816406 C28.73412049 -0.12921848 33.10933265 -0.16361435 37.48487473 -0.20333576 C40.86164252 -0.22955602 44.23828982 -0.2378607 47.61515045 -0.24144554 C49.22740367 -0.24629814 50.83965199 -0.25787412 52.45180511 -0.27648354 C61.87754315 -0.37851798 69.22600258 -0.40722527 76.90332031 5.81762695 C77.34933594 6.3487207 77.79535156 6.87981445 78.25488281 7.42700195 C78.94710937 8.20817383 78.94710937 8.20817383 79.65332031 9.00512695 C84.02596265 16.74776753 83.1900497 25.91727112 83.18066406 34.5168457 C83.18455855 36.00842913 83.18889475 37.50001147 83.19364929 38.99159241 C83.20108066 42.10738735 83.20084254 45.22306892 83.19555664 48.33886719 C83.189763 52.31076588 83.20670518 56.28219809 83.22990131 60.25401974 C83.24470727 63.33145309 83.24550113 66.40877581 83.24239159 69.48623848 C83.24290125 70.94971198 83.24807164 72.41319226 83.25820351 73.87663078 C83.37438765 93.0006229 83.37438765 93.0006229 77.12988281 100.05200195 C76.68128906 100.58567383 76.23269531 101.1193457 75.77050781 101.66918945 C70.71771348 105.69889733 65.71373184 106.5516213 59.38745117 106.56176758 C58.67430252 106.56714035 57.96115387 106.57251312 57.22639465 106.57804871 C55.69051241 106.58777157 54.15457559 106.5907876 52.6186657 106.58769226 C50.18403577 106.58318589 47.75012185 106.59729184 45.31556702 106.61608887 C39.27289347 106.65895188 33.23023785 106.67011114 27.18743896 106.68231201 C22.07081894 106.69385979 16.95452773 106.71746947 11.83804512 106.75700378 C9.4460817 106.7705322 7.05456878 106.76641182 4.6625824 106.76159668 C3.1893558 106.77094038 1.71613413 106.78110998 0.24291992 106.79223633 C-1.03724503 106.79429077 -2.31740997 106.79634521 -3.6363678 106.79846191 C-7.41637293 107.20919275 -9.82064532 108.34953123 -13.12011719 110.17700195 C-13.78011719 110.17700195 -14.44011719 110.17700195 -15.12011719 110.17700195 C-17.52280099 115.83889015 -17.41598579 121.16057712 -17.42871094 127.20043945 C-17.45386958 129.37752548 -17.47926763 131.55460875 -17.50488281 133.73168945 C-17.53360338 137.14379163 -17.55763834 140.55584604 -17.57641602 143.96801758 C-17.59814672 147.27490607 -17.63758849 150.58124339 -17.67871094 153.88793945 C-17.67882675 154.89964203 -17.67894257 155.9113446 -17.67906189 156.95370483 C-17.7841159 164.52274898 -19.03497091 169.98795471 -23.24511719 176.42700195 C-29.45623238 182.36806866 -36.31490332 183.78705333 -44.68652344 183.6730957 C-46.00401833 183.67527855 -46.00401833 183.67527855 -47.34812927 183.67750549 C-49.19102319 183.67585714 -51.03393241 183.66441631 -52.87670898 183.64355469 C-55.67914918 183.61453786 -58.47969965 183.62298099 -61.28222656 183.63598633 C-63.08366794 183.62974909 -64.88510341 183.62135826 -66.68652344 183.6105957 C-67.51382462 183.61353134 -68.34112579 183.61646698 -69.1934967 183.61949158 C-75.59165864 183.51691869 -81.40132888 182.53204156 -86.39746094 178.2043457 C-86.9453125 177.51469727 -87.49316406 176.82504883 -88.05761719 176.11450195 C-88.62351562 175.42227539 -89.18941406 174.73004883 -89.77246094 174.0168457 C-91.95579877 171.03611492 -92.25725067 169.22772898 -92.31298828 165.57885742 C-92.32905121 164.62381317 -92.34511414 163.66876892 -92.36166382 162.68478394 C-92.40618833 158.30003565 -92.44720831 153.91543939 -92.47021484 149.53051758 C-92.48674024 147.22214655 -92.51398466 144.91382596 -92.55224609 142.60571289 C-92.60721123 139.27243575 -92.62892302 135.94035974 -92.64355469 132.60668945 C-92.66622406 131.58243866 -92.68889343 130.55818787 -92.71224976 129.50289917 C-92.69275809 122.84191599 -91.55490715 118.27254494 -87.12011719 113.17700195 C-82.85713484 109.85187572 -79.42315905 108.06794719 -74.01928711 108.01928711 C-73.19800827 108.00902496 -72.37672943 107.99876282 -71.53056335 107.9881897 C-70.64617081 107.98088837 -69.76177826 107.97358704 -68.85058594 107.96606445 C-66.97362414 107.93799282 -65.09667113 107.90932834 -63.21972656 107.88012695 C-60.26391881 107.83890024 -57.30827464 107.80200782 -54.35229492 107.77563477 C-51.49721474 107.74795955 -48.64287792 107.70208605 -45.78808594 107.65356445 C-44.47060616 107.64868515 -44.47060616 107.64868515 -43.12651062 107.64370728 C-38.07403193 107.54295109 -34.47561603 107.02250373 -30.12011719 104.17700195 C-28.38692337 101.61731491 -28.38692337 101.61731491 -27.30761719 98.67700195 C-26.90929687 97.71793945 -26.51097656 96.75887695 -26.10058594 95.77075195 C-24.41267145 91.30551203 -23.99587525 87.9866657 -23.99414062 83.20214844 C-23.99227249 82.49600906 -23.99040436 81.78986969 -23.98847961 81.06233215 C-23.9844771 79.52854718 -23.98240091 77.99475626 -23.98201752 76.46096611 C-23.97859338 73.18930997 -23.95721325 69.91785101 -23.93678665 66.64626408 C-23.89884548 60.55842138 -23.86749302 54.47078699 -23.86962891 48.3828125 C-23.87042015 44.14504806 -23.84687404 39.90800348 -23.80774689 35.67042732 C-23.79734392 34.06268623 -23.79572049 32.45486145 -23.80339813 30.84710503 C-23.84202858 21.8556044 -23.77030332 13.69524181 -18.12011719 6.17700195 C-12.50415323 0.77468343 -7.52615394 0.05781024 0 0 Z',\n fill: secondStripColors[state],\n transform: 'translate(92.1201171875,53.822998046875)',\n },\n // Additional detail paths\n {\n d: 'M0 0 C0.66 0.33 1.32 0.66 2 1 C0.90033225 2.29549899 -0.20491801 3.58626071 -1.3125 4.875 C-1.92738281 5.59429687 -2.54226563 6.31359375 -3.17578125 7.0546875 C-5 9 -5 9 -8 11 C-6.60366572 6.55711819 -4.39598172 4.13475236 -1 1 C-0.67 0.67 -0.34 0.34 0 0 Z',\n fill: 'currentColor',\n transform: 'translate(264,95)',\n },\n {\n d: 'M0 0 C0.66 0.33 1.32 0.66 2 1 C-0.64 3.64 -3.28 6.28 -6 9 C-6 6 -6 6 -3.5625 3.375 C-2.716875 2.59125 -1.87125 1.8075 -1 1 C-0.67 0.67 -0.34 0.34 0 0 Z',\n fill: 'currentColor',\n transform: 'translate(79,56)',\n },\n ],\n className\n );\n },\n\n // ChevronDown - from Feather Icons (react-icons/fi)\n ChevronDown: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(size, '0 0 24 24', ['M6 9l6 6 6-6'], className);\n },\n\n // Close - IoClose from react-icons/io5\n Close: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(size, '0 0 24 24', ['M18 6L6 18M6 6l12 12'], className);\n },\n\n // Send - FiSend from react-icons/fi\n Send: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(size, '0 0 24 24', ['M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'], className);\n },\n\n // Microphone - FiMic from react-icons/fi\n Mic: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z',\n 'M19 10v2a7 7 0 0 1-14 0v-2',\n 'M12 19v4M8 23h8',\n ],\n className\n );\n },\n\n // Waveform - PiWaveform from react-icons/pi\n Waveform: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M2 12h2M6 8v8M10 4v16M14 8v8M18 6v12M22 12h-2',\n ],\n className\n );\n },\n\n // Phone Off - FiPhoneOff from react-icons/fi\n PhoneOff: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91',\n 'M23 1L1 23',\n ],\n className\n );\n },\n\n // Video Camera - IoVideocam from react-icons/io5\n Video: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n ['M23 7l-7 5 7 5V7zM16 5H2C.9 5 0 5.9 0 7v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z'],\n className\n );\n },\n\n // Video Camera Off - IoVideocamOff from react-icons/io5\n VideoOff: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M1 1l22 22M16 16v1a2 2 0 01-2 2H3a2 2 0 01-2-2V7a2 2 0 012-2h2m5.66 0H14a2 2 0 012 2v3.34l1 1L23 7v10',\n ],\n className\n );\n },\n\n // Volume Mute - IoVolumeMute from react-icons/io5\n VolumeMute: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n ['M11 5L6 9H2v6h4l5 4V5zM23 9l-6 6M17 9l6 6'],\n className\n );\n },\n\n // Volume High - IoVolumeHigh from react-icons/io5\n VolumeHigh: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M11 5L6 9H2v6h4l5 4V5z',\n 'M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07',\n ],\n className\n );\n },\n\n // More Vertical - FiMoreVertical from react-icons/fi\n MoreVertical: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n const svg = createSVG(size, '0 0 24 24', [], className);\n // Add circles for dots\n for (let cy of [12, 5, 19]) {\n const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n circle.setAttribute('cx', '12');\n circle.setAttribute('cy', cy.toString());\n circle.setAttribute('r', '1');\n circle.setAttribute('fill', 'currentColor');\n svg.appendChild(circle);\n }\n return svg;\n },\n\n // Screen Share - MdScreenShare from react-icons/md\n ScreenShare: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.11-.9-2-2-2H4c-1.11 0-2 .89-2 2v10c0 1.1.89 2 2 2H0v2h24v-2h-4zM13 14.47v-2.19c-2.78 0-4.61.85-6 2.72.56-2.67 2.11-5.33 6-5.87V7l4 3.73-4 3.74z',\n ],\n className\n );\n },\n\n // Stop Screen Share - MdStopScreenShare from react-icons/md\n StopScreenShare: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n [\n 'M21.22 18.02l2 2H24v-2h-2.78zm-1.13-1.13l1.54 1.54c.15-.34.24-.72.24-1.12L21.88 7c0-1.11-.9-2-2-2H7.8l5.88 5.88L13 12 6.97 6.97 2.39 2.39 1.11 3.67l.8.8c-.01.01-.01.02-.01.02L2 17.33c0 1.11.89 2 1.99 2H0v2h18.13l2.71 2.71 1.27-1.27L2.39 2.39zM7 15.13c.96-1.29 2.13-2.08 3.67-2.46l3.46 3.46H7v-1z',\n ],\n className\n );\n },\n\n // Redo/Refresh - LiaRedoAltSolid from react-icons/lia\n Redo: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n ['M21.5 2v6h-6M2.5 22v-6h6M2 11.5a10 10 0 0118.8-4.3M22 12.5a10 10 0 01-18.8 4.2'],\n className\n );\n },\n\n // Drag Indicator - MdDragIndicator from react-icons/md\n DragIndicator: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n const svg = createFilledSVG(\n size,\n '0 0 24 24',\n [\n { d: 'M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z' },\n ],\n className\n );\n svg.removeAttribute('stroke');\n svg.removeAttribute('stroke-width');\n return svg;\n },\n\n // User - FaUser from react-icons/fa\n User: (size: IconSize = 'md', className?: string): SVGSVGElement => {\n return createSVG(\n size,\n '0 0 24 24',\n ['M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2', 'M12 11a4 4 0 100-8 4 4 0 000 8z'],\n className\n );\n },\n};\n\n/**\n * Helper to create icon wrapper div\n */\nexport function createIconWrapper(\n icon: SVGSVGElement,\n size: IconSize = 'md',\n color?: string,\n className?: string\n): HTMLDivElement {\n const wrapper = document.createElement('div');\n wrapper.className = `icon-wrapper ${className || ''}`;\n wrapper.style.cssText = `\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${iconSizes[size]};\n height: ${iconSizes[size]};\n color: ${color || 'currentColor'};\n transition: color 0.2s ease;\n `;\n wrapper.appendChild(icon);\n return wrapper;\n}\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vanilla/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,0DAA0D;AAC1D,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vanilla/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wCAAwC;AACxC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,0DAA0D;AAC1D,cAAc,eAAe,CAAC","sourcesContent":["/**\n * Convai Web SDK - Vanilla JavaScript/TypeScript Export\n * \n * This module provides vanilla JS/TS exports for the Convai SDK.\n * Use this for non-React applications.\n * \n * @example\n * ```typescript\n * import { ConvaiClient, createConvaiWidget } from '@convai/web-sdk/vanilla';\n * \n * // Pass config to constructor (same pattern as React's useConvaiClient)\n * const client = new ConvaiClient({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * enableVideo: true,\n * });\n * \n * // Create widget - auto-connects on first click\n * const widget = createConvaiWidget(document.body, {\n * convaiClient: client\n * });\n * \n * // Client has all functions for advanced usage:\n * // - client.connect() - manual connection\n * // - client.disconnect() - disconnect\n * // - client.reconnect() - reconnect\n * // - client.sendUserTextMessage() - send messages\n * // - client.audioControls, videoControls, etc.\n * ```\n */\n\n// Main client for managing connections\nexport { ConvaiClient } from '../core/ConvaiClient';\n\n// AudioRenderer for custom UI builders (handles audio playback)\nexport { AudioRenderer } from './AudioRenderer';\n\n// Vanilla widget - complete UI solution\nexport { createConvaiWidget, destroyConvaiWidget } from './ConvaiWidget';\n\n// Re-export ALL core types for complete parity with React\nexport * from '../core/types';\n\n// Widget-specific types\nexport type {\n VanillaWidget,\n VanillaWidgetOptions,\n} from './types';\n\n\n"]}
|