@eshal-bot/chat-widget 0.1.0
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 +99 -0
- package/dist/chat-widget.css +853 -0
- package/dist/chat-widget.css.map +1 -0
- package/dist/chat-widget.esm.js +918 -0
- package/dist/chat-widget.esm.js.map +1 -0
- package/dist/chat-widget.js +35757 -0
- package/dist/chat-widget.js.map +1 -0
- package/dist/chat-widget.standalone.css +853 -0
- package/dist/chat-widget.standalone.css.map +1 -0
- package/dist/chat-widget.umd.js +923 -0
- package/dist/chat-widget.umd.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/package.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-widget.esm.js","sources":["../src/utils/api.js","../src/hooks/useChatState.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/bot.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/message-circle.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/minimize-2.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/moon.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/send.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/sun.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/user.js","../node_modules/.pnpm/lucide-react@0.303.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/x.js","../src/components/ChatHeader.jsx","../src/components/MessageBubble.jsx","../src/components/MessageList.jsx","../src/components/ChatInput.jsx","../src/components/QuickQuestions.jsx","../src/components/ChatWindow.jsx","../src/components/ToggleButton.jsx","../src/components/ChatWidget.jsx"],"sourcesContent":["/**\r\n * API utility functions\r\n */\r\n\r\nexport const sendMessage = async (message, config) => {\r\n if (!config.apiUrl) {\r\n throw new Error(\"API URL not configured\");\r\n }\r\n\r\n try {\r\n const response = await fetch(config.apiUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n ...(config.apiKey && { Authorization: `Bearer ${config.apiKey}` }),\r\n ...(config.userId && { \"X-User-ID\": config.userId }),\r\n },\r\n body: JSON.stringify({\r\n message,\r\n userId: config.userId,\r\n userName: config.userName,\r\n userEmail: config.userEmail,\r\n timestamp: new Date().toISOString(),\r\n }),\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n\r\n const data = await response.json();\r\n return data.reply || data.message || data.response;\r\n } catch (error) {\r\n console.error(\"Chat API error:\", error);\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * Stream a support reply via Server-Sent Events\r\n * Expects backend to emit JSON SSE events like:\r\n * {\"type\":\"processing_start\", ...} | {\"type\":\"text_chunk\",\"content\":\"...\"} | {\"type\":\"complete\", ...}\r\n * Falls back to raw text if not JSON.\r\n */\r\nexport const streamSupportReply = async ({\r\n apiBaseUrl,\r\n query,\r\n organizationId,\r\n apiKey,\r\n headers = {},\r\n onProcessingStart,\r\n onProcessingEnd,\r\n onTextChunk,\r\n onDone,\r\n onError,\r\n}) => {\r\n if (!apiBaseUrl) {\r\n throw new Error(\"apiBaseUrl is required\");\r\n }\r\n\r\n const controller = new AbortController();\r\n const url = `${apiBaseUrl.replace(/\\/$/, \"\")}/api/v1/widget/chat`;\r\n\r\n try {\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"x-eshal-org\": organizationId,\r\n ...(apiKey && { Authorization: `Bearer ${apiKey}` }),\r\n ...headers,\r\n },\r\n body: JSON.stringify({ message: query }),\r\n signal: controller.signal,\r\n credentials: \"include\",\r\n });\r\n\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n\r\n // Expect text/event-stream but some servers omit header while still streaming\r\n const reader = response.body.getReader();\r\n const decoder = new TextDecoder();\r\n let buffer = \"\";\r\n\r\n const pump = async () => {\r\n while (true) {\r\n const { value, done } = await reader.read();\r\n if (done) break;\r\n buffer += decoder.decode(value, { stream: true });\r\n\r\n // Parse SSE lines\r\n let lineEnd;\r\n while ((lineEnd = buffer.indexOf(\"\\n\")) !== -1) {\r\n const line = buffer.slice(0, lineEnd).trim();\r\n buffer = buffer.slice(lineEnd + 1);\r\n\r\n if (!line) continue;\r\n if (line.startsWith(\"data:\")) {\r\n const raw = line.slice(5).trim();\r\n if (raw === \"[DONE]\") {\r\n if (onDone) onDone();\r\n controller.abort();\r\n return;\r\n }\r\n try {\r\n const evt = JSON.parse(raw);\r\n if (evt && evt.type === \"processing_start\") {\r\n if (onProcessingStart) onProcessingStart(evt);\r\n } else if (evt && evt.type === \"processing_end\") {\r\n if (onProcessingEnd) onProcessingEnd(evt);\r\n } else if (\r\n evt &&\r\n evt.type === \"text_chunk\" &&\r\n typeof evt.content === \"string\"\r\n ) {\r\n if (onTextChunk) onTextChunk(evt.content, evt);\r\n } else if (evt && evt.type === \"complete\") {\r\n if (onDone) onDone(evt);\r\n } else {\r\n if (onTextChunk) onTextChunk(raw);\r\n }\r\n } catch (_) {\r\n // Only treat as text chunk if it's not a known control message\r\n if (raw !== \"processing_end\" && raw !== \"processing_start\") {\r\n if (onTextChunk) onTextChunk(raw);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Flush remaining buffer (non-SSE servers may just stream text)\r\n if (buffer && onTextChunk) onTextChunk(buffer);\r\n if (onDone) onDone();\r\n };\r\n\r\n pump().catch((err) => {\r\n if (onError) onError(err);\r\n });\r\n\r\n return controller;\r\n } catch (error) {\r\n if (onError) onError(error);\r\n throw error;\r\n }\r\n};\r\n\r\nexport const createSession = async (config) => {\r\n // Initialize chat session if needed\r\n if (config.sessionUrl) {\r\n try {\r\n const response = await fetch(config.sessionUrl, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n ...(config.apiKey && { Authorization: `Bearer ${config.apiKey}` }),\r\n },\r\n body: JSON.stringify({\r\n userId: config.userId,\r\n userName: config.userName,\r\n userEmail: config.userEmail,\r\n }),\r\n credentials: \"include\",\r\n });\r\n\r\n const data = await response.json();\r\n return data.sessionId;\r\n } catch (error) {\r\n console.error(\"Session creation error:\", error);\r\n return null;\r\n }\r\n }\r\n return null;\r\n};\r\n","import { useState, useEffect, useRef } from \"react\";\r\nimport { streamSupportReply } from \"../utils/api.js\";\r\n\r\nexport const useChatState = ({\r\n welcomeMessage,\r\n companyLogo,\r\n quickQuestions,\r\n apiBaseUrl,\r\n organizationId,\r\n autoOpen,\r\n openDelay,\r\n darkMode,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(autoOpen);\r\n const [isMinimized, setIsMinimized] = useState(false);\r\n const [isDark, setIsDark] = useState(darkMode);\r\n const [messages, setMessages] = useState([\r\n {\r\n id: 1,\r\n text: welcomeMessage,\r\n sender: \"bot\",\r\n timestamp: new Date(),\r\n avatar: null,\r\n },\r\n ]);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [isTyping, setIsTyping] = useState(false);\r\n const widgetRef = useRef(null);\r\n\r\n // Auto open with delay\r\n useEffect(() => {\r\n if (autoOpen && openDelay > 0) {\r\n const timer = setTimeout(() => setIsOpen(true), openDelay);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoOpen, openDelay]);\r\n\r\n // Sync dark mode prop\r\n useEffect(() => {\r\n setIsDark(darkMode);\r\n }, [darkMode]);\r\n\r\n const handleSend = async () => {\r\n if (!inputValue.trim()) return;\r\n\r\n const newMessage = {\r\n id: messages.length + 1,\r\n text: inputValue,\r\n sender: \"user\",\r\n timestamp: new Date(),\r\n };\r\n\r\n setMessages([...messages, newMessage]);\r\n const messageText = inputValue;\r\n setInputValue(\"\");\r\n setIsTyping(true);\r\n\r\n try {\r\n // Create placeholder bot message for streaming\r\n const botMessageId = messages.length + 2;\r\n setMessages((prev) => [\r\n ...prev,\r\n {\r\n id: botMessageId,\r\n text: \"\",\r\n sender: \"bot\",\r\n timestamp: new Date(),\r\n avatar: null,\r\n },\r\n ]);\r\n\r\n await streamSupportReply({\r\n apiBaseUrl,\r\n organizationId,\r\n query: messageText,\r\n onProcessingStart: () => {\r\n setIsTyping(true);\r\n },\r\n onProcessingEnd: () => {\r\n setIsTyping(true);\r\n },\r\n onTextChunk: (chunk) => {\r\n if(isTyping) {\r\n setIsTyping(false);\r\n };\r\n setMessages((prev) =>\r\n prev.map((m) =>\r\n m.id === botMessageId ? { ...m, text: (m.text || \"\") + chunk } : m\r\n )\r\n );\r\n },\r\n onDone: () => {\r\n setIsTyping(false);\r\n },\r\n onError: (error) => {\r\n console.error(\"SSE error:\", error);\r\n setIsTyping(false);\r\n setMessages((prev) =>\r\n prev.map((m) =>\r\n m.id === botMessageId\r\n ? {\r\n ...m,\r\n text: \"Sorry, I'm having trouble connecting right now. Please try again.\",\r\n }\r\n : m\r\n )\r\n );\r\n },\r\n });\r\n } catch (error) {\r\n setIsTyping(false);\r\n console.error(\"Error:\", error);\r\n }\r\n };\r\n\r\n const toggleChat = () => {\r\n setIsOpen(!isOpen);\r\n setIsMinimized(false);\r\n };\r\n\r\n const toggleTheme = () => {\r\n setIsDark(!isDark);\r\n };\r\n\r\n const toggleMinimize = () => {\r\n setIsMinimized(!isMinimized);\r\n };\r\n\r\n const closeChat = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n const handleQuickQuestion = (question) => {\r\n setInputValue(question);\r\n handleSend();\r\n };\r\n\r\n return {\r\n // State\r\n isOpen,\r\n isMinimized,\r\n isDark,\r\n messages,\r\n inputValue,\r\n isTyping,\r\n widgetRef,\r\n quickQuestions,\r\n // Actions\r\n setInputValue,\r\n handleSend,\r\n handleQuickQuestion,\r\n toggleChat,\r\n toggleTheme,\r\n toggleMinimize,\r\n closeChat,\r\n };\r\n};\r\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase().trim();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: [\"lucide\", `lucide-${toKebabCase(iconName)}`, className].join(\" \"),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Bot = createLucideIcon(\"Bot\", [\n [\"path\", { d: \"M12 8V4H8\", key: \"hb8ula\" }],\n [\"rect\", { width: \"16\", height: \"12\", x: \"4\", y: \"8\", rx: \"2\", key: \"enze0r\" }],\n [\"path\", { d: \"M2 14h2\", key: \"vft8re\" }],\n [\"path\", { d: \"M20 14h2\", key: \"4cs60a\" }],\n [\"path\", { d: \"M15 13v2\", key: \"1xurst\" }],\n [\"path\", { d: \"M9 13v2\", key: \"rq6x2g\" }]\n]);\n\nexport { Bot as default };\n//# sourceMappingURL=bot.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MessageCircle = createLucideIcon(\"MessageCircle\", [\n [\"path\", { d: \"M7.9 20A9 9 0 1 0 4 16.1L2 22Z\", key: \"vv11sd\" }]\n]);\n\nexport { MessageCircle as default };\n//# sourceMappingURL=message-circle.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Minimize2 = createLucideIcon(\"Minimize2\", [\n [\"polyline\", { points: \"4 14 10 14 10 20\", key: \"11kfnr\" }],\n [\"polyline\", { points: \"20 10 14 10 14 4\", key: \"rlmsce\" }],\n [\"line\", { x1: \"14\", x2: \"21\", y1: \"10\", y2: \"3\", key: \"o5lafz\" }],\n [\"line\", { x1: \"3\", x2: \"10\", y1: \"21\", y2: \"14\", key: \"1atl0r\" }]\n]);\n\nexport { Minimize2 as default };\n//# sourceMappingURL=minimize-2.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Moon = createLucideIcon(\"Moon\", [\n [\"path\", { d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\", key: \"a7tn18\" }]\n]);\n\nexport { Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Send = createLucideIcon(\"Send\", [\n [\"path\", { d: \"m22 2-7 20-4-9-9-4Z\", key: \"1q3vgg\" }],\n [\"path\", { d: \"M22 2 11 13\", key: \"nzbqef\" }]\n]);\n\nexport { Send as default };\n//# sourceMappingURL=send.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Sun = createLucideIcon(\"Sun\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n]);\n\nexport { Sun as default };\n//# sourceMappingURL=sun.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst User = createLucideIcon(\"User\", [\n [\"path\", { d: \"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\", key: \"975kel\" }],\n [\"circle\", { cx: \"12\", cy: \"7\", r: \"4\", key: \"17ys0d\" }]\n]);\n\nexport { User as default };\n//# sourceMappingURL=user.js.map\n","/**\n * @license lucide-react v0.303.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst X = createLucideIcon(\"X\", [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n]);\n\nexport { X as default };\n//# sourceMappingURL=x.js.map\n","import React from \"react\";\r\nimport { MessageCircle, X, Minimize2, Moon, Sun } from \"lucide-react\";\r\n\r\nconst ChatHeader = ({\r\n companyName,\r\n companyLogo,\r\n primaryColor,\r\n isDark,\r\n onToggleTheme,\r\n onMinimize,\r\n onClose,\r\n}) => {\r\n return (\r\n <div\r\n className=\"text-white px-5 py-4 flex items-center justify-between relative overflow-hidden\"\r\n style={{\r\n background: `linear-gradient(135deg, ${primaryColor} 0%, ${primaryColor}dd 100%)`,\r\n }}\r\n >\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-white/10 to-transparent pointer-events-none\"></div>\r\n\r\n <div className=\"flex items-center gap-3 relative z-10\">\r\n <div className=\"relative\">\r\n <div className={`w-11 h-11 rounded-xl flex items-center justify-center ${\r\n companyLogo \r\n ? \"bg-transparent\" \r\n : \"bg-white/20 backdrop-blur-sm\"\r\n }`}>\r\n {companyLogo ? (\r\n <img\r\n src={companyLogo}\r\n alt=\"Logo\"\r\n className=\"w-6 h-6 object-cover rounded\"\r\n />\r\n ) : (\r\n <MessageCircle className=\"w-6 h-6\" />\r\n )}\r\n </div>\r\n <div className=\"absolute -bottom-0.5 -right-0.5 w-3.5 h-3.5 bg-green-400 rounded-full border-2 border-white\"></div>\r\n </div>\r\n <div>\r\n <h3 className=\"font-semibold text-[15px] leading-tight\">\r\n {companyName}\r\n </h3>\r\n <p className=\"text-xs text-white/90 flex items-center gap-1.5 mt-0.5\">\r\n <span className=\"w-1.5 h-1.5 bg-green-400 rounded-full animate-pulse\"></span>\r\n Typically replies instantly\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <div className=\"flex items-center gap-1 relative z-10\">\r\n <button\r\n onClick={onToggleTheme}\r\n className=\"hover:bg-white/20 p-2 rounded-lg transition-all duration-200\"\r\n aria-label=\"Toggle theme\"\r\n >\r\n {isDark ? <Sun className=\"w-4 h-4\" /> : <Moon className=\"w-4 h-4\" />}\r\n </button>\r\n <button\r\n onClick={onMinimize}\r\n className=\"hover:bg-white/20 p-2 rounded-lg transition-all duration-200\"\r\n aria-label=\"Minimize\"\r\n >\r\n <Minimize2 className=\"w-4 h-4\" />\r\n </button>\r\n <button\r\n onClick={onClose}\r\n className=\"hover:bg-white/20 p-2 rounded-lg transition-all duration-200\"\r\n aria-label=\"Close\"\r\n >\r\n <X className=\"w-4 h-4\" />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChatHeader;\r\n","import React from \"react\";\r\nimport { User, Bot } from \"lucide-react\";\r\n\r\nconst MessageBubble = ({\r\n message,\r\n isDark,\r\n primaryColor,\r\n isTyping,\r\n companyLogo,\r\n}) => {\r\n const isUser = message.sender === \"user\";\r\n const isBot = message.sender === \"bot\";\r\n const isTypingMessage = isBot && isTyping && (!message.text || message.text.length === 0);\r\n\r\n return (\r\n <div\r\n className={`flex gap-3 ${\r\n isUser ? \"flex-row-reverse\" : \"flex-row\"\r\n } animate-in`}\r\n >\r\n {isBot && (\r\n <div className=\"flex-shrink-0 mt-1\">\r\n {message.avatar ? (\r\n <img\r\n src={message.avatar}\r\n alt=\"Bot\"\r\n className=\"w-8 h-8 rounded-full object-cover\"\r\n />\r\n ) : (\r\n <div\r\n className={`w-8 h-8 rounded-full flex items-center justify-center ${\r\n isDark ? \"bg-gray-700\" : \"bg-gray-200\"\r\n }`}\r\n >\r\n <Bot\r\n className=\"w-4 h-4\"\r\n style={{ color: primaryColor }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div\r\n className={`flex flex-col ${\r\n isUser ? \"items-end\" : \"items-start\"\r\n } max-w-[75%]`}\r\n >\r\n <div\r\n className={`rounded-2xl px-4 py-2.5 ${\r\n isUser\r\n ? `text-white shadow-lg`\r\n : `${\r\n isDark\r\n ? \"bg-gray-800 text-gray-100 border-gray-700\"\r\n : \"bg-white text-gray-800 border-gray-200\"\r\n } shadow-sm border`\r\n } ${\r\n isUser\r\n ? \"rounded-tr-sm\"\r\n : \"rounded-tl-sm\"\r\n }`}\r\n style={\r\n isUser\r\n ? {\r\n background: `linear-gradient(135deg, ${primaryColor} 0%, ${primaryColor}dd 100%)`,\r\n }\r\n : {}\r\n }\r\n >\r\n {isTypingMessage ? (\r\n <div className=\"flex gap-1.5\">\r\n <div\r\n className=\"w-2 h-2 rounded-full bg-gray-400 animate-bounce\"\r\n style={{ animationDelay: \"0ms\" }}\r\n ></div>\r\n <div\r\n className=\"w-2 h-2 rounded-full bg-gray-400 animate-bounce\"\r\n style={{ animationDelay: \"150ms\" }}\r\n ></div>\r\n <div\r\n className=\"w-2 h-2 rounded-full bg-gray-400 animate-bounce\"\r\n style={{ animationDelay: \"300ms\" }}\r\n ></div>\r\n </div>\r\n ) : (\r\n <p className={`text-[14px] leading-relaxed whitespace-pre-wrap break-words ${\r\n isUser \r\n ? \"text-white\" \r\n : isDark \r\n ? \"text-gray-100\" \r\n : \"text-gray-800\"\r\n }`}>\r\n {message.text}\r\n </p>\r\n )}\r\n </div>\r\n <p\r\n className={`text-[11px] mt-1.5 px-1 ${\r\n isDark ? \"text-gray-500\" : \"text-gray-400\"\r\n }`}\r\n >\r\n {message.timestamp.toLocaleTimeString([], {\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n })}\r\n </p>\r\n </div>\r\n\r\n {isUser && (\r\n <div className=\"flex-shrink-0 mt-1\">\r\n <div\r\n className={`w-8 h-8 rounded-full flex items-center justify-center ${\r\n isDark ? \"bg-gray-700\" : \"bg-gray-200\"\r\n }`}\r\n >\r\n <User className=\"w-4 h-4 text-gray-500\" />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default MessageBubble;\r\n","import React, { useRef, useEffect } from \"react\";\r\nimport MessageBubble from \"./MessageBubble\";\r\n\r\nconst MessageList = ({\r\n messages,\r\n isDark,\r\n primaryColor,\r\n isTyping,\r\n companyLogo,\r\n}) => {\r\n const messagesEndRef = useRef(null);\r\n\r\n const scrollToBottom = () => {\r\n messagesEndRef.current?.scrollIntoView({ behavior: \"smooth\" });\r\n };\r\n\r\n useEffect(() => {\r\n scrollToBottom();\r\n }, [messages, isTyping]);\r\n\r\n return (\r\n <div\r\n className={`chat-messages flex-1 overflow-y-auto px-5 py-4 space-y-4 ${\r\n isDark ? \"bg-gray-900\" : \"bg-gradient-to-b from-gray-50/50 to-white\"\r\n } break-words`}\r\n >\r\n {messages.map((message) => (\r\n <MessageBubble\r\n key={message.id}\r\n message={message}\r\n isDark={isDark}\r\n primaryColor={primaryColor}\r\n isTyping={isTyping}\r\n companyLogo={companyLogo}\r\n />\r\n ))}\r\n <div ref={messagesEndRef} />\r\n </div>\r\n );\r\n};\r\n\r\nexport default MessageList;\r\n","import React, { useRef, useEffect } from \"react\";\r\nimport { Send } from \"lucide-react\";\r\n\r\nconst ChatInput = ({\r\n inputValue,\r\n setInputValue,\r\n onSend,\r\n isDark,\r\n primaryColor,\r\n isOpen,\r\n isMinimized,\r\n}) => {\r\n const inputRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (isOpen && !isMinimized) {\r\n inputRef.current?.focus();\r\n }\r\n }, [isOpen, isMinimized]);\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === \"Enter\" && !e.shiftKey) {\r\n e.preventDefault();\r\n onSend();\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className={`px-5 py-4 border-t ${\r\n isDark\r\n ? \"border-gray-700 bg-gray-900\"\r\n : \"border-gray-200 bg-white\"\r\n }`}\r\n >\r\n <div className=\"flex gap-2.5 items-end\">\r\n <div\r\n className={`flex-1 flex items-center min-h-[48px] ${\r\n isDark ? \"bg-gray-800\" : \"bg-gray-50\"\r\n } rounded-2xl border transition-all duration-200`}\r\n style={{\r\n borderColor: inputValue\r\n ? primaryColor\r\n : isDark\r\n ? \"#374151\"\r\n : \"#e5e7eb\",\r\n borderWidth: inputValue ? \"2px\" : \"1px\",\r\n }}\r\n >\r\n <textarea\r\n id=\"chat-widget-input\"\r\n ref={inputRef}\r\n value={inputValue}\r\n onChange={(e) => setInputValue(e.target.value)}\r\n onKeyDown={handleKeyPress}\r\n placeholder=\"Type your message...\"\r\n rows=\"1\"\r\n className={`w-full px-4 py-0 bg-transparent rounded-xl leading-normal ${\r\n isDark ? \"text-gray-100\" : \"text-gray-900\"\r\n } placeholder-gray-400 text-[14px] resize-none outline-none`}\r\n style={{ maxHeight: \"120px\" }}\r\n />\r\n </div>\r\n <button\r\n onClick={onSend}\r\n disabled={!inputValue.trim()}\r\n className={`h-12 w-12 p-0 rounded-xl transition-all duration-200 flex items-center justify-center shadow-lg disabled:opacity-40 disabled:cursor-not-allowed disabled:shadow-none ${\r\n inputValue.trim() ? \"scale-100\" : \"scale-95\"\r\n }`}\r\n style={{\r\n backgroundColor: inputValue.trim()\r\n ? primaryColor\r\n : isDark\r\n ? \"#374151\"\r\n : \"#e5e7eb\",\r\n color: inputValue.trim() ? \"white\" : \"#9ca3af\",\r\n }}\r\n aria-label=\"Send message\"\r\n >\r\n <Send className=\"w-5 h-5\" />\r\n </button>\r\n </div>\r\n <p\r\n className={`text-[11px] mt-2 px-1 ${\r\n isDark ? \"text-gray-600\" : \"text-gray-400\"\r\n } flex items-center gap-1`}\r\n >\r\n <span className=\"w-1 h-1 rounded-full bg-green-500\"></span>\r\n We're online now\r\n </p>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChatInput;\r\n","import React from \"react\";\r\n\r\nconst QuickQuestions = ({\r\n questions = [],\r\n isDark,\r\n primaryColor,\r\n onQuestionClick,\r\n isTyping = false,\r\n}) => {\r\n // Don't render if no questions or if typing/streaming\r\n if (!questions.length || isTyping) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"px-4 py-3 border-t border-gray-200 dark:border-gray-700\">\r\n <div className=\"text-xs text-gray-500 dark:text-gray-400 mb-2 font-medium\">\r\n Quick questions:\r\n </div>\r\n <div className=\"flex gap-2 overflow-x-auto scrollbar-hide pb-1\">\r\n {questions.map((question, index) => (\r\n <button\r\n key={index}\r\n onClick={() => onQuestionClick(question)}\r\n className=\"text-xs px-4 py-2 rounded-lg border-2 font-medium transition-all duration-200 hover:scale-105 active:scale-95 whitespace-nowrap flex-shrink-0 shadow-sm\"\r\n style={{\r\n backgroundColor: isDark ? \"rgba(59, 130, 246, 0.15)\" : \"rgba(59, 130, 246, 0.08)\",\r\n borderColor: isDark ? \"rgba(59, 130, 246, 0.4)\" : \"rgba(59, 130, 246, 0.3)\",\r\n color: isDark ? \"rgba(147, 197, 253, 0.95)\" : \"rgba(30, 64, 175, 0.9)\",\r\n }}\r\n onMouseEnter={(e) => {\r\n e.target.style.backgroundColor = isDark \r\n ? \"rgba(59, 130, 246, 0.25)\" \r\n : \"rgba(59, 130, 246, 0.15)\";\r\n e.target.style.borderColor = isDark \r\n ? \"rgba(59, 130, 246, 0.6)\" \r\n : \"rgba(59, 130, 246, 0.5)\";\r\n }}\r\n onMouseLeave={(e) => {\r\n e.target.style.backgroundColor = isDark \r\n ? \"rgba(59, 130, 246, 0.15)\" \r\n : \"rgba(59, 130, 246, 0.08)\";\r\n e.target.style.borderColor = isDark \r\n ? \"rgba(59, 130, 246, 0.4)\" \r\n : \"rgba(59, 130, 246, 0.3)\";\r\n }}\r\n >\r\n {question}\r\n </button>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default QuickQuestions;\r\n","import React from \"react\";\r\nimport ChatHeader from \"./ChatHeader\";\r\nimport MessageList from \"./MessageList\";\r\nimport ChatInput from \"./ChatInput\";\r\nimport QuickQuestions from \"./QuickQuestions\";\r\n\r\nconst ChatWindow = ({\r\n isOpen,\r\n isMinimized,\r\n isDark,\r\n primaryColor,\r\n companyName,\r\n companyLogo,\r\n messages,\r\n isTyping,\r\n inputValue,\r\n setInputValue,\r\n onSend,\r\n onToggleTheme,\r\n onMinimize,\r\n onClose,\r\n quickQuestions,\r\n onQuickQuestion,\r\n}) => {\r\n if (!isOpen) return null;\r\n\r\n return (\r\n <div\r\n className={`mb-4 ${\r\n isDark ? \"bg-gray-900 border-gray-700\" : \"bg-white border-gray-200\"\r\n } rounded-2xl shadow-2xl border transition-all duration-300 ${\r\n isMinimized ? \"w-80 h-16\" : \"w-[380px] h-[650px]\"\r\n } flex flex-col overflow-hidden`}\r\n >\r\n <ChatHeader\r\n companyName={companyName}\r\n companyLogo={companyLogo}\r\n primaryColor={primaryColor}\r\n isDark={isDark}\r\n onToggleTheme={onToggleTheme}\r\n onMinimize={onMinimize}\r\n onClose={onClose}\r\n />\r\n\r\n {!isMinimized && (\r\n <>\r\n <MessageList\r\n messages={messages}\r\n isDark={isDark}\r\n primaryColor={primaryColor}\r\n isTyping={isTyping}\r\n companyLogo={companyLogo}\r\n />\r\n <QuickQuestions\r\n questions={quickQuestions}\r\n isDark={isDark}\r\n primaryColor={primaryColor}\r\n onQuestionClick={onQuickQuestion}\r\n isTyping={isTyping}\r\n />\r\n <ChatInput\r\n inputValue={inputValue}\r\n setInputValue={setInputValue}\r\n onSend={onSend}\r\n isDark={isDark}\r\n primaryColor={primaryColor}\r\n isOpen={isOpen}\r\n isMinimized={isMinimized}\r\n />\r\n </>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChatWindow;\r\n","import React from \"react\";\r\nimport { MessageCircle, X } from \"lucide-react\";\r\n\r\nconst ToggleButton = ({\r\n isOpen,\r\n isDark,\r\n primaryColor,\r\n onToggle,\r\n}) => {\r\n return (\r\n <button\r\n onClick={onToggle}\r\n className={`group relative w-16 h-16 rounded-full shadow-2xl transition-all duration-300 flex items-center justify-center text-white overflow-hidden ${\r\n isOpen ? \"rotate-0 scale-100\" : \"hover:scale-110\"\r\n }`}\r\n style={{\r\n background: isOpen\r\n ? isDark\r\n ? \"#1f2937\"\r\n : \"#374151\"\r\n : `linear-gradient(135deg, ${primaryColor} 0%, ${primaryColor}dd 100%)`,\r\n boxShadow: isOpen\r\n ? \"0 10px 30px rgba(0,0,0,0.3)\"\r\n : `0 10px 30px ${primaryColor}40`,\r\n }}\r\n aria-label={isOpen ? \"Close chat\" : \"Open chat\"}\r\n >\r\n <div className=\"absolute inset-0 rounded-full bg-white/20 scale-0 group-hover:scale-100 transition-transform duration-500\"></div>\r\n\r\n <div className=\"relative z-10 transition-transform duration-300\">\r\n {isOpen ? (\r\n <X className=\"w-7 h-7\" />\r\n ) : (\r\n <>\r\n <MessageCircle className=\"w-7 h-7\" />\r\n <div className=\"absolute -top-1 -right-1 w-5 h-5 bg-red-500 rounded-full flex items-center justify-center text-[10px] font-bold border-2 border-white animate-pulse\">\r\n 1\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n </button>\r\n );\r\n};\r\n\r\nexport default ToggleButton;\r\n","import React, { useEffect } from \"react\";\r\nimport \"../styles/tailwind.css\";\r\nimport \"../styles/custom.css\";\r\nimport { useChatState } from \"../hooks/useChatState.js\";\r\nimport ChatWindow from \"./ChatWindow\";\r\nimport ToggleButton from \"./ToggleButton\";\r\n\r\nconst ChatWidget = ({\r\n darkMode = false,\r\n primaryColor = \"#2563eb\",\r\n position = \"bottom-right\",\r\n companyName = \"Support Team\",\r\n companyLogo = null,\r\n welcomeMessage = \"Hi! How can we help?\",\r\n quickQuestions = [],\r\n apiBaseUrl,\r\n organizationId,\r\n autoOpen = false,\r\n openDelay = 0,\r\n locale = \"en\",\r\n className = \"\",\r\n}) => {\r\n const {\r\n isOpen,\r\n isMinimized,\r\n isDark,\r\n messages,\r\n inputValue,\r\n isTyping,\r\n widgetRef,\r\n setInputValue,\r\n handleSend,\r\n handleQuickQuestion,\r\n toggleChat,\r\n toggleTheme,\r\n toggleMinimize,\r\n closeChat,\r\n } = useChatState({\r\n welcomeMessage,\r\n companyLogo,\r\n quickQuestions,\r\n apiBaseUrl,\r\n organizationId,\r\n autoOpen,\r\n openDelay,\r\n darkMode,\r\n });\r\n\r\n // Set CSS variables for theming\r\n useEffect(() => {\r\n if (widgetRef.current) {\r\n widgetRef.current.style.setProperty(\"--cw-primary\", primaryColor);\r\n }\r\n }, [primaryColor, widgetRef]);\r\n\r\n const positionClasses = {\r\n \"bottom-right\": \"bottom-5 right-5\",\r\n \"bottom-left\": \"bottom-5 left-5\",\r\n \"top-right\": \"top-5 right-5\",\r\n \"top-left\": \"top-5 left-5\",\r\n };\r\n\r\n return (\r\n <div\r\n ref={widgetRef}\r\n className={`chat-widget-root fixed flex flex-col items-end z-[999999] ${\r\n isDark ? \"dark\" : \"\"\r\n } ${className} ${\r\n positionClasses[position] || positionClasses[\"bottom-right\"]\r\n }`}\r\n >\r\n <ChatWindow\r\n isOpen={isOpen}\r\n isMinimized={isMinimized}\r\n isDark={isDark}\r\n primaryColor={primaryColor}\r\n companyName={companyName}\r\n companyLogo={companyLogo}\r\n messages={messages}\r\n isTyping={isTyping}\r\n inputValue={inputValue}\r\n setInputValue={setInputValue}\r\n onSend={handleSend}\r\n onToggleTheme={toggleTheme}\r\n onMinimize={toggleMinimize}\r\n onClose={closeChat}\r\n quickQuestions={quickQuestions}\r\n onQuickQuestion={handleQuickQuestion}\r\n />\r\n\r\n <ToggleButton\r\n isOpen={isOpen}\r\n isDark={isDark}\r\n primaryColor={primaryColor}\r\n onToggle={toggleChat}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChatWidget;\r\n"],"names":["streamSupportReply","_ref","apiBaseUrl","query","organizationId","apiKey","headers","onProcessingStart","onProcessingEnd","onTextChunk","onDone","onError","Error","controller","AbortController","url","concat","replace","response","fetch","method","_objectSpread","Authorization","body","JSON","stringify","message","signal","credentials","ok","status","reader","getReader","decoder","TextDecoder","buffer","pump","value","done","read","decode","stream","lineEnd","indexOf","line","slice","trim","startsWith","raw","abort","evt","parse","type","content","_","catch","err","error","useChatState","welcomeMessage","companyLogo","quickQuestions","autoOpen","openDelay","darkMode","isOpen","setIsOpen","useState","isMinimized","setIsMinimized","isDark","setIsDark","messages","setMessages","id","text","sender","timestamp","Date","avatar","inputValue","setInputValue","isTyping","setIsTyping","widgetRef","useRef","useEffect","timer","setTimeout","clearTimeout","handleSend","newMessage","length","messageText","botMessageId","prev","chunk","map","m","console","toggleChat","toggleTheme","toggleMinimize","closeChat","handleQuickQuestion","question","ChatHeader","companyName","primaryColor","onToggleTheme","onMinimize","onClose","_jsxs","className","style","background","children","_jsx","src","alt","MessageCircle","onClick","Sun","Moon","Minimize2","X","MessageBubble","isUser","isBot","isTypingMessage","Bot","color","animationDelay","toLocaleTimeString","hour","minute","User","MessageList","messagesEndRef","scrollToBottom","_messagesEndRef$curre","current","scrollIntoView","behavior","ref","ChatInput","onSend","inputRef","_inputRef$current","focus","handleKeyPress","e","key","shiftKey","preventDefault","borderColor","borderWidth","onChange","target","onKeyDown","placeholder","rows","maxHeight","disabled","backgroundColor","Send","QuickQuestions","questions","onQuestionClick","index","onMouseEnter","onMouseLeave","ChatWindow","onQuickQuestion","_Fragment","ToggleButton","onToggle","boxShadow","ChatWidget","position","locale","setProperty","positionClasses"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6,7,8,9,10,11]}
|