@assistrio/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 +88 -0
- package/dist/api.d.ts +3 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/assistrio-chat.css +2 -0
- package/dist/assistrio-chat.js +37 -0
- package/dist/bootstrap.d.ts +9 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/browser.d.ts +12 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/components/AdminLiveChatAdapter.d.ts +38 -0
- package/dist/components/AdminLiveChatAdapter.d.ts.map +1 -0
- package/dist/components/chat-ui/Chat.d.ts +117 -0
- package/dist/components/chat-ui/Chat.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatBubble.d.ts +36 -0
- package/dist/components/chat-ui/ChatBubble.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatComposer.d.ts +34 -0
- package/dist/components/chat-ui/ChatComposer.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatHeader.d.ts +54 -0
- package/dist/components/chat-ui/ChatHeader.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatLauncherBubble.d.ts +41 -0
- package/dist/components/chat-ui/ChatLauncherBubble.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatMessages.d.ts +45 -0
- package/dist/components/chat-ui/ChatMessages.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatSources.d.ts +12 -0
- package/dist/components/chat-ui/ChatSources.d.ts.map +1 -0
- package/dist/components/chat-ui/ChatWithLauncher.d.ts +22 -0
- package/dist/components/chat-ui/ChatWithLauncher.d.ts.map +1 -0
- package/dist/components/chat-ui/index.d.ts +19 -0
- package/dist/components/chat-ui/index.d.ts.map +1 -0
- package/dist/components/chat-ui/types.d.ts +42 -0
- package/dist/components/chat-ui/types.d.ts.map +1 -0
- package/dist/components/chat-ui/utils.d.ts +4 -0
- package/dist/components/chat-ui/utils.d.ts.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/hooks/usePreferredColorScheme.d.ts +5 -0
- package/dist/hooks/usePreferredColorScheme.d.ts.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +30 -0
- package/dist/index.mjs.map +7 -0
- package/dist/lib/apiFetch.d.ts +6 -0
- package/dist/lib/apiFetch.d.ts.map +1 -0
- package/dist/lib/preview-display-merge.d.ts +8 -0
- package/dist/lib/preview-display-merge.d.ts.map +1 -0
- package/dist/lib/welcomeMessage.d.ts +9 -0
- package/dist/lib/welcomeMessage.d.ts.map +1 -0
- package/dist/models/botChatUI.d.ts +54 -0
- package/dist/models/botChatUI.d.ts.map +1 -0
- package/dist/normalize.d.ts +3 -0
- package/dist/normalize.d.ts.map +1 -0
- package/dist/types.d.ts +128 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/widget-root.d.ts +6 -0
- package/dist/widget-root.d.ts.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EmbedChatConfig } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Singleton: one React root. If already mounted, re-renders {@link EmbedWidgetRoot} with the new
|
|
4
|
+
* `rawConfig` (e.g. preview overrides changed) instead of ignoring the call.
|
|
5
|
+
*/
|
|
6
|
+
export declare function mountEmbedWidget(rawConfig: Partial<EmbedChatConfig>): void;
|
|
7
|
+
export declare function unmountEmbedWidget(): void;
|
|
8
|
+
export declare function getMountedEmbedWidget(): boolean;
|
|
9
|
+
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAY/C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAc1E;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser entry → `dist/assistrio-chat.js`. See README for host snippet.
|
|
3
|
+
*/
|
|
4
|
+
import type { AssistrioChatGlobal, EmbedChatConfig } from "./types";
|
|
5
|
+
declare global {
|
|
6
|
+
interface Window {
|
|
7
|
+
AssistrioChatConfig?: Partial<EmbedChatConfig>;
|
|
8
|
+
AssistrioChat?: AssistrioChatGlobal;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export type { AssistrioChatGlobal };
|
|
12
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,mBAAmB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC;CACF;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { BotChatUI } from "../models/botChatUI";
|
|
3
|
+
import type { WidgetPreviewOverrides } from "../types";
|
|
4
|
+
export interface AdminLiveChatAdapterProps {
|
|
5
|
+
botId: string;
|
|
6
|
+
mode?: "runtime" | "preview";
|
|
7
|
+
botName: string;
|
|
8
|
+
avatarUrl?: string;
|
|
9
|
+
avatarEmoji?: string;
|
|
10
|
+
chatUI?: BotChatUI;
|
|
11
|
+
tagline?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
welcomeMessage?: string;
|
|
14
|
+
suggestedQuestions?: string[];
|
|
15
|
+
onClose?: () => void;
|
|
16
|
+
onBack?: () => void;
|
|
17
|
+
onMenu?: () => void;
|
|
18
|
+
expandHref?: string;
|
|
19
|
+
apiBaseUrl?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional chat endpoint override (relative or absolute URL).
|
|
22
|
+
* Primarily used when the host app proxies widget endpoints.
|
|
23
|
+
*/
|
|
24
|
+
chatPostPath?: string;
|
|
25
|
+
accessKey?: string;
|
|
26
|
+
secretKey?: string;
|
|
27
|
+
chatVisitorId: string;
|
|
28
|
+
platformVisitorId?: string;
|
|
29
|
+
authToken?: string;
|
|
30
|
+
previewOverrides?: WidgetPreviewOverrides;
|
|
31
|
+
debug?: boolean;
|
|
32
|
+
footerPrivacyText?: string;
|
|
33
|
+
useFloatingLauncher?: boolean;
|
|
34
|
+
className?: string;
|
|
35
|
+
style?: React.CSSProperties;
|
|
36
|
+
}
|
|
37
|
+
export declare function AdminLiveChatAdapter({ botId, mode, botName, avatarUrl, avatarEmoji, chatUI, tagline, description, welcomeMessage, suggestedQuestions, onClose, onBack, onMenu, expandHref, apiBaseUrl, chatPostPath, accessKey, secretKey, chatVisitorId, platformVisitorId, authToken, previewOverrides, debug, footerPrivacyText, useFloatingLauncher, className, style, }: AdminLiveChatAdapterProps): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
//# sourceMappingURL=AdminLiveChatAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminLiveChatAdapter.d.ts","sourceRoot":"","sources":["../../src/components/AdminLiveChatAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AASjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AA+DvD,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAmCD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,IAAgB,EAChB,OAAO,EACP,SAAS,EACT,WAAW,EACX,MAAM,EACN,OAAO,EACP,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,KAAY,EACZ,iBAAiB,EACjB,mBAA2B,EAC3B,SAAS,EACT,KAAK,GACN,EAAE,yBAAyB,2CAgR3B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ChatUIMessage, ChatUISource } from "./types";
|
|
3
|
+
export interface ChatProps {
|
|
4
|
+
/** Container width (default 400) */
|
|
5
|
+
width?: number | string;
|
|
6
|
+
/** Container height (default 700) */
|
|
7
|
+
height?: number | string;
|
|
8
|
+
/** Dark theme (default true) */
|
|
9
|
+
dark?: boolean;
|
|
10
|
+
/** Accent color for user bubble and send button */
|
|
11
|
+
accentColor?: string;
|
|
12
|
+
/** Message bubble border radius in px (0–32). Affects message bubbles and suggested chips; container uses fixed radius. */
|
|
13
|
+
bubbleBorderRadius?: number;
|
|
14
|
+
/** When true, show a border around the chat panel using accent color (default true). */
|
|
15
|
+
showChatBorder?: boolean;
|
|
16
|
+
showHeader?: boolean;
|
|
17
|
+
/** Show bot avatar in header (default true) */
|
|
18
|
+
showAvatarInHeader?: boolean;
|
|
19
|
+
onBack?: () => void;
|
|
20
|
+
/** Show back button in header (default false) */
|
|
21
|
+
showBackButton?: boolean;
|
|
22
|
+
avatar?: React.ReactNode;
|
|
23
|
+
title?: string;
|
|
24
|
+
subtitle?: string;
|
|
25
|
+
/** Status indicator: "live" | "active" | "none". When "none", no indicator is shown. */
|
|
26
|
+
statusIndicator?: "live" | "active" | "none";
|
|
27
|
+
/** Legacy: when statusIndicator is unset, showLive true = "live", false = "none" */
|
|
28
|
+
showLive?: boolean;
|
|
29
|
+
/** "label" = dot + label text next to title; "dot-only" = dot overlapping avatar */
|
|
30
|
+
liveIndicatorStyle?: "label" | "dot-only";
|
|
31
|
+
/** Status dot: "blinking" (animate-pulse) or "static" (default "blinking") */
|
|
32
|
+
statusDotStyle?: "blinking" | "static";
|
|
33
|
+
/** Show scroll-to-bottom button when user scrolls up (default true) */
|
|
34
|
+
showScrollToBottom?: boolean;
|
|
35
|
+
/** Show scrollbar in message area (default true). When false, scrollbar is hidden. */
|
|
36
|
+
showScrollbar?: boolean;
|
|
37
|
+
/** When true, message input is a separate box (border-top + bg). When false, no border and no bg (default true). */
|
|
38
|
+
composerAsSeparateBox?: boolean;
|
|
39
|
+
/** Message input border width in px. 0 = default 1px; 0.5–6 = custom. Focus = width × 1.5. Default 1. */
|
|
40
|
+
composerBorderWidth?: number;
|
|
41
|
+
/** When width >= 0.5: "default" = gray, "primary" = accent. Default "primary". */
|
|
42
|
+
composerBorderColor?: "default" | "primary";
|
|
43
|
+
onMenu?: () => void;
|
|
44
|
+
/** Show "Expand chat" in menu dropdown */
|
|
45
|
+
showMenuExpand?: boolean;
|
|
46
|
+
onMenuExpand?: () => void;
|
|
47
|
+
/** When true, menu shows collapse icon/label for expand option */
|
|
48
|
+
isExpanded?: boolean;
|
|
49
|
+
/** Quick links in menu (max 3): { text, route } */
|
|
50
|
+
menuQuickLinks?: Array<{
|
|
51
|
+
text: string;
|
|
52
|
+
route: string;
|
|
53
|
+
}>;
|
|
54
|
+
onClose?: () => void;
|
|
55
|
+
messages: ChatUIMessage[];
|
|
56
|
+
isSending?: boolean;
|
|
57
|
+
showMetadata?: boolean;
|
|
58
|
+
/** Display name for assistant (e.g. "Bot Name - AI") */
|
|
59
|
+
senderName?: string;
|
|
60
|
+
/** Show sender/assistant name above messages (default true) */
|
|
61
|
+
showSenderName?: boolean;
|
|
62
|
+
/** Show message time (default true) */
|
|
63
|
+
showTime?: boolean;
|
|
64
|
+
/** Where to show time: "top" (above) or "bottom" (assistant=right, user=left) */
|
|
65
|
+
timePosition?: "top" | "bottom";
|
|
66
|
+
showCopyButton?: boolean;
|
|
67
|
+
showSources?: boolean;
|
|
68
|
+
/** Render assistant messages with simple markdown (**bold**, `code`) */
|
|
69
|
+
allowMarkdown?: boolean;
|
|
70
|
+
emptyState?: React.ReactNode;
|
|
71
|
+
onSourceClick?: (source: ChatUISource) => void;
|
|
72
|
+
onSend: (message: string) => void;
|
|
73
|
+
composerPlaceholder?: string;
|
|
74
|
+
/** Max characters for input (optional) */
|
|
75
|
+
inputMaxLength?: number;
|
|
76
|
+
/** Max rows for composer textarea (default 8) */
|
|
77
|
+
maxComposerRows?: number;
|
|
78
|
+
showAttach?: boolean;
|
|
79
|
+
showEmoji?: boolean;
|
|
80
|
+
showMic?: boolean;
|
|
81
|
+
onAttach?: () => void;
|
|
82
|
+
onEmoji?: () => void;
|
|
83
|
+
onMic?: () => void;
|
|
84
|
+
suggestedQuestions?: string[];
|
|
85
|
+
/** When false, suggested chips are hidden even if suggestedQuestions is set (default true) */
|
|
86
|
+
showSuggestedChips?: boolean;
|
|
87
|
+
/** When true, show chat input together with suggested questions on first message. When false, only quick-question chips until user sends (default false). */
|
|
88
|
+
showComposerWithSuggestedQuestions?: boolean;
|
|
89
|
+
onSuggestedQuestion?: (text: string) => void;
|
|
90
|
+
showFooter?: boolean;
|
|
91
|
+
/** Footer text when showBranding (e.g. "Powered by ..."). Falls back to privacyText if unset. */
|
|
92
|
+
brandingMessage?: string;
|
|
93
|
+
privacyText?: string;
|
|
94
|
+
/** Tighter padding (default false) */
|
|
95
|
+
compact?: boolean;
|
|
96
|
+
strings?: Partial<{
|
|
97
|
+
title: string;
|
|
98
|
+
subtitle: string;
|
|
99
|
+
placeholder: string;
|
|
100
|
+
send: string;
|
|
101
|
+
copy: string;
|
|
102
|
+
copied: string;
|
|
103
|
+
sourcesLabel: string;
|
|
104
|
+
scrollToBottomLabel: string;
|
|
105
|
+
privacyText: string;
|
|
106
|
+
back: string;
|
|
107
|
+
close: string;
|
|
108
|
+
menu: string;
|
|
109
|
+
live: string;
|
|
110
|
+
active: string;
|
|
111
|
+
expandLabel: string;
|
|
112
|
+
}>;
|
|
113
|
+
className?: string;
|
|
114
|
+
style?: React.CSSProperties;
|
|
115
|
+
}
|
|
116
|
+
export declare function Chat({ width, height, dark, accentColor, bubbleBorderRadius, showChatBorder, showHeader, showAvatarInHeader, onBack, showBackButton, avatar, title, subtitle, statusIndicator, showLive, liveIndicatorStyle, statusDotStyle, showScrollToBottom, showScrollbar, composerAsSeparateBox, composerBorderWidth, composerBorderColor, onMenu, showMenuExpand, onMenuExpand, isExpanded, menuQuickLinks, onClose, messages, isSending, showMetadata, senderName, showSenderName, showTime, timePosition, showCopyButton, showSources, allowMarkdown, emptyState, onSourceClick, onSend, composerPlaceholder, inputMaxLength, maxComposerRows, showAttach, showEmoji, showMic, onAttach, onEmoji, onMic, suggestedQuestions, showSuggestedChips, showComposerWithSuggestedQuestions, onSuggestedQuestion, showFooter, brandingMessage, privacyText, compact, strings, className, style, }: ChatProps): import("react/jsx-runtime").JSX.Element;
|
|
117
|
+
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/Chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ChatUIMessage, ChatUISource } from "./types";
|
|
2
|
+
export interface ChatBubbleProps {
|
|
3
|
+
/** Dark theme (default true) */
|
|
4
|
+
dark?: boolean;
|
|
5
|
+
message: ChatUIMessage;
|
|
6
|
+
/** Accent color for user bubble (CSS value, e.g. #6366f1) */
|
|
7
|
+
accentColor?: string;
|
|
8
|
+
/** Show role + timestamp above/below bubble */
|
|
9
|
+
showMetadata?: boolean;
|
|
10
|
+
/** Display name for assistant (e.g. "Bot Name - AI"). User messages always show "User". */
|
|
11
|
+
senderName?: string;
|
|
12
|
+
/** Show sender/assistant name above messages (default true) */
|
|
13
|
+
showSenderName?: boolean;
|
|
14
|
+
/** Show message time (default true) */
|
|
15
|
+
showTime?: boolean;
|
|
16
|
+
/** Where to show time: "top" (above message) or "bottom" (below; assistant=right, user=left) */
|
|
17
|
+
timePosition?: "top" | "bottom";
|
|
18
|
+
/** Message bubble border radius in px (0–32). Only the bubble div uses this. */
|
|
19
|
+
bubbleBorderRadius?: number;
|
|
20
|
+
/** Show copy button for assistant messages (if false, parent may render it elsewhere) */
|
|
21
|
+
showCopyButton?: boolean;
|
|
22
|
+
/** Render copy button inside bubble; if false, parent renders copy in sources row */
|
|
23
|
+
renderCopyInBubble?: boolean;
|
|
24
|
+
/** Render assistant content as simple markdown (**bold**, `code`) */
|
|
25
|
+
allowMarkdown?: boolean;
|
|
26
|
+
copyLabel?: string;
|
|
27
|
+
copiedLabel?: string;
|
|
28
|
+
onCopy?: (messageId: string, text: string) => void;
|
|
29
|
+
/** Show sources section (same sources div used for both actor types) */
|
|
30
|
+
showSources?: boolean;
|
|
31
|
+
sourcesLabel?: string;
|
|
32
|
+
onSourceClick?: (source: ChatUISource) => void;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function ChatBubble({ dark, message, accentColor, showMetadata, senderName, showSenderName, showTime, timePosition, bubbleBorderRadius, showCopyButton, renderCopyInBubble, allowMarkdown, copyLabel, copiedLabel, onCopy, showSources, sourcesLabel, onSourceClick, className, }: ChatBubbleProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=ChatBubble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatBubble.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatBubble.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI3D,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gGAAgG;IAChG,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD,wBAAgB,UAAU,CAAC,EACzB,IAAW,EACX,OAAO,EACP,WAAuB,EACvB,YAAmB,EACnB,UAAU,EACV,cAAqB,EACrB,QAAe,EACf,YAAoB,EACpB,kBAAuB,EACvB,cAAqB,EACrB,kBAAyB,EACzB,aAAqB,EACrB,SAAkB,EAClB,WAAuB,EACvB,MAAM,EACN,WAAkB,EAClB,YAAwB,EACxB,aAAa,EACb,SAAS,GACV,EAAE,eAAe,2CAiMjB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface ChatComposerProps {
|
|
2
|
+
/** Dark theme (default true) */
|
|
3
|
+
dark?: boolean;
|
|
4
|
+
value: string;
|
|
5
|
+
onChange: (value: string) => void;
|
|
6
|
+
onSend: () => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
sendLabel?: string;
|
|
10
|
+
/** Accent color for send button */
|
|
11
|
+
accentColor?: string;
|
|
12
|
+
/** Max character count for input (optional) */
|
|
13
|
+
inputMaxLength?: number;
|
|
14
|
+
/** Max rows for auto-grow textarea (default 8) */
|
|
15
|
+
maxComposerRows?: number;
|
|
16
|
+
/** Show attach button */
|
|
17
|
+
showAttach?: boolean;
|
|
18
|
+
/** Show emoji button + picker (enables inserting emoji into messages) */
|
|
19
|
+
showEmoji?: boolean;
|
|
20
|
+
/** Show mic button */
|
|
21
|
+
showMic?: boolean;
|
|
22
|
+
/** When true, composer is a separate box (border-top + bg). When false, no border and no bg. */
|
|
23
|
+
asSeparateBox?: boolean;
|
|
24
|
+
/** Message input border width in px. 0 = default 1px; 0.5–6 = custom. Focus = width × 1.5. Default 1. */
|
|
25
|
+
composerBorderWidth?: number;
|
|
26
|
+
/** When width >= 0.5: "default" = gray, "primary" = accent. Default "primary". */
|
|
27
|
+
composerBorderColor?: "default" | "primary";
|
|
28
|
+
onAttach?: () => void;
|
|
29
|
+
onEmoji?: () => void;
|
|
30
|
+
onMic?: () => void;
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function ChatComposer({ dark, value, onChange, onSend, disabled, placeholder, sendLabel, accentColor, inputMaxLength, maxComposerRows, showAttach, showEmoji, showMic, asSeparateBox, composerBorderWidth, composerBorderColor, onAttach, onEmoji, onMic, className, }: ChatComposerProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
//# sourceMappingURL=ChatComposer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatComposer.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gGAAgG;IAChG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAW,EACX,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,WAA+B,EAC/B,SAAkB,EAClB,WAAuB,EACvB,cAAc,EACd,eAAkC,EAClC,UAAiB,EACjB,SAAgB,EAChB,OAAc,EACd,aAAoB,EACpB,mBAAuB,EACvB,mBAA+B,EAC/B,QAAQ,EACR,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,iBAAiB,2CAmRnB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ChatMenuQuickLink {
|
|
3
|
+
text: string;
|
|
4
|
+
route: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ChatHeaderProps {
|
|
7
|
+
/** Dark theme (default true) */
|
|
8
|
+
dark?: boolean;
|
|
9
|
+
/** Back button click; omit to hide */
|
|
10
|
+
onBack?: () => void;
|
|
11
|
+
/** Show back button (default false). When false, back button is hidden even if onBack is set. */
|
|
12
|
+
showBackButton?: boolean;
|
|
13
|
+
/** Show avatar in header (default true). When false, avatar area is hidden. */
|
|
14
|
+
showAvatar?: boolean;
|
|
15
|
+
/** Avatar (image URL, emoji, or React node) */
|
|
16
|
+
avatar?: React.ReactNode;
|
|
17
|
+
/** Bot/chat name */
|
|
18
|
+
title?: string;
|
|
19
|
+
/** Subtitle under title */
|
|
20
|
+
subtitle?: string;
|
|
21
|
+
/** Status indicator: "live" | "active" | "none". When "none", no indicator is shown. */
|
|
22
|
+
statusIndicator?: "live" | "active" | "none";
|
|
23
|
+
/** "label" = dot + label text next to title; "dot-only" = dot overlapping avatar */
|
|
24
|
+
liveIndicatorStyle?: "label" | "dot-only";
|
|
25
|
+
/** "blinking" = animate-pulse; "static" = no animation (default "blinking") */
|
|
26
|
+
statusDotStyle?: "blinking" | "static";
|
|
27
|
+
/** Menu button click (legacy: no dropdown); omit if using menu items below */
|
|
28
|
+
onMenu?: () => void;
|
|
29
|
+
/** Show "Expand chat" option in menu dropdown */
|
|
30
|
+
showMenuExpand?: boolean;
|
|
31
|
+
/** Called when user chooses Expand chat */
|
|
32
|
+
onMenuExpand?: () => void;
|
|
33
|
+
/** Label for expand option (default "Expand chat") */
|
|
34
|
+
expandLabel?: string;
|
|
35
|
+
/** When true, expand option shows collapse icon/label */
|
|
36
|
+
isExpanded?: boolean;
|
|
37
|
+
/** Quick links in menu (max 3): text + route */
|
|
38
|
+
menuQuickLinks?: ChatMenuQuickLink[];
|
|
39
|
+
/** Close button click; omit to hide */
|
|
40
|
+
onClose?: () => void;
|
|
41
|
+
/** Back button label */
|
|
42
|
+
backLabel?: string;
|
|
43
|
+
/** Close button label */
|
|
44
|
+
closeLabel?: string;
|
|
45
|
+
/** Menu button label */
|
|
46
|
+
menuLabel?: string;
|
|
47
|
+
/** Label for "Live" status (e.g. "Live") */
|
|
48
|
+
liveLabel?: string;
|
|
49
|
+
/** Label for "Active" status (e.g. "Active") */
|
|
50
|
+
activeLabel?: string;
|
|
51
|
+
className?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function ChatHeader({ dark, onBack, showBackButton, showAvatar, avatar, title, subtitle, statusIndicator, liveIndicatorStyle, statusDotStyle, onMenu, showMenuExpand, onMenuExpand, expandLabel, isExpanded, menuQuickLinks, onClose, backLabel, closeLabel, menuLabel, liveLabel, activeLabel, className, }: ChatHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
//# sourceMappingURL=ChatHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,iGAAiG;IACjG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7C,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC1C,+EAA+E;IAC/E,cAAc,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACrC,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgDD,wBAAgB,UAAU,CAAC,EACzB,IAAW,EACX,MAAM,EACN,cAAsB,EACtB,UAAiB,EACjB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,eAAwB,EACxB,kBAA4B,EAC5B,cAA2B,EAC3B,MAAM,EACN,cAAsB,EACtB,YAAY,EACZ,WAA2B,EAC3B,UAAkB,EAClB,cAAc,EACd,OAAO,EACP,SAAkB,EAClB,UAAoB,EACpB,SAAkB,EAClB,SAAkB,EAClB,WAAsB,EACtB,SAAS,GACV,EAAE,eAAe,2CAgLjB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ChatLauncherBubbleProps {
|
|
3
|
+
/** When true, chat is open; bubble shows close icon. When false, shows chat icon. */
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
/** Called when the bubble is clicked (toggle open/close). */
|
|
6
|
+
onToggle: () => void;
|
|
7
|
+
/** Accent color for the bubble (default #6366f1). */
|
|
8
|
+
accentColor?: string;
|
|
9
|
+
/** Dark theme for bubble (default true). */
|
|
10
|
+
dark?: boolean;
|
|
11
|
+
/** Position of the bubble on screen (default "bottom-right"). */
|
|
12
|
+
position?: "bottom-right" | "bottom-left" | "top-right" | "top-left";
|
|
13
|
+
/** Optional unread count badge (e.g. new messages). Hidden when 0 or undefined. */
|
|
14
|
+
unreadCount?: number;
|
|
15
|
+
/** Custom icon when closed (chat). If not provided, default chat icon is used. */
|
|
16
|
+
closedIcon?: React.ReactNode;
|
|
17
|
+
/** Custom icon when open (close). If not provided, default X icon is used. Ignored when alwaysShowSameIcon. */
|
|
18
|
+
openIcon?: React.ReactNode;
|
|
19
|
+
/** When set, shown in the bubble (e.g. bot avatar). When alwaysShowSameIcon, this or closedIcon/chat icon is always shown instead of close icon. */
|
|
20
|
+
avatar?: React.ReactNode;
|
|
21
|
+
/** When true, always show avatar or closedIcon/default chat icon; never show close (X) icon when open. */
|
|
22
|
+
alwaysShowSameIcon?: boolean;
|
|
23
|
+
/** Accessible label when closed (default "Open chat"). */
|
|
24
|
+
openLabel?: string;
|
|
25
|
+
/** Accessible label when open (default "Close chat"). */
|
|
26
|
+
closeLabel?: string;
|
|
27
|
+
/** When true, button is in-flow (no fixed positioning); use for embedding in layout (e.g. right pane). */
|
|
28
|
+
inline?: boolean;
|
|
29
|
+
/** Size in pixels (default 48). */
|
|
30
|
+
size?: number;
|
|
31
|
+
/** Shadow intensity: "none" | "low" | "medium" | "high" (default "medium"). */
|
|
32
|
+
shadowIntensity?: "none" | "low" | "medium" | "high";
|
|
33
|
+
/** When true and avatar is set, avatar is inset so button background shows as a ring (e.g. bot avatar with background). */
|
|
34
|
+
avatarWithBackground?: boolean;
|
|
35
|
+
/** When avatarWithBackground, ring width as percentage (0–30). 0 = no ring; default 18. */
|
|
36
|
+
avatarRingWidth?: number;
|
|
37
|
+
className?: string;
|
|
38
|
+
style?: React.CSSProperties;
|
|
39
|
+
}
|
|
40
|
+
export declare function ChatLauncherBubble({ isOpen, onToggle, accentColor, dark, position, unreadCount, closedIcon, openIcon, avatar, alwaysShowSameIcon, openLabel, closeLabel, inline, size, shadowIntensity, avatarWithBackground, avatarRingWidth, className, style, }: ChatLauncherBubbleProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=ChatLauncherBubble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatLauncherBubble.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatLauncherBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,uBAAuB;IACtC,qFAAqF;IACrF,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iEAAiE;IACjE,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oJAAoJ;IACpJ,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0GAA0G;IAC1G,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0GAA0G;IAC1G,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,2HAA2H;IAC3H,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AA8CD,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,WAAuB,EACvB,IAAW,EACX,QAAyB,EACzB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,MAAM,EACN,kBAA0B,EAC1B,SAAuB,EACvB,UAAyB,EACzB,MAAc,EACd,IAAS,EACT,eAA0B,EAC1B,oBAA4B,EAC5B,eAAoB,EACpB,SAAS,EACT,KAAK,GACN,EAAE,uBAAuB,2CA+DzB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ChatUIMessage, ChatUISource } from "./types";
|
|
3
|
+
export interface ChatMessagesProps {
|
|
4
|
+
/** Dark theme (default true) */
|
|
5
|
+
dark?: boolean;
|
|
6
|
+
messages: ChatUIMessage[];
|
|
7
|
+
/** Show typing indicator when true */
|
|
8
|
+
isSending?: boolean;
|
|
9
|
+
accentColor?: string;
|
|
10
|
+
showMetadata?: boolean;
|
|
11
|
+
/** Display name for assistant messages (e.g. "Bot Name - AI") */
|
|
12
|
+
senderName?: string;
|
|
13
|
+
/** Show sender/assistant name above messages (default true) */
|
|
14
|
+
showSenderName?: boolean;
|
|
15
|
+
/** Show message time (default true) */
|
|
16
|
+
showTime?: boolean;
|
|
17
|
+
/** Where to show time: top (above) or bottom (assistant=right, user=left) */
|
|
18
|
+
timePosition?: "top" | "bottom";
|
|
19
|
+
/** Message bubble border radius in px (0–32). Affects message bubbles and suggested chips. */
|
|
20
|
+
bubbleBorderRadius?: number;
|
|
21
|
+
showCopyButton?: boolean;
|
|
22
|
+
showSources?: boolean;
|
|
23
|
+
/** Render assistant messages with simple markdown (**bold**, `code`) */
|
|
24
|
+
allowMarkdown?: boolean;
|
|
25
|
+
copyLabel?: string;
|
|
26
|
+
copiedLabel?: string;
|
|
27
|
+
sourcesLabel?: string;
|
|
28
|
+
/** Label for scroll-to-bottom button */
|
|
29
|
+
scrollToBottomLabel?: string;
|
|
30
|
+
/** Show scroll-to-bottom button when user scrolls up (default true) */
|
|
31
|
+
showScrollToBottom?: boolean;
|
|
32
|
+
/** Show scrollbar in message list (default true). When false, scrollbar is hidden but content still scrolls. */
|
|
33
|
+
showScrollbar?: boolean;
|
|
34
|
+
emptyState?: React.ReactNode;
|
|
35
|
+
onSourceClick?: (source: ChatUISource) => void;
|
|
36
|
+
/** Suggested questions shown as first message when there are no messages */
|
|
37
|
+
suggestedQuestions?: string[];
|
|
38
|
+
/** Called when user selects a suggested question (sends that message) */
|
|
39
|
+
onSuggestedQuestionClick?: (text: string) => void;
|
|
40
|
+
/** Tighter padding */
|
|
41
|
+
compact?: boolean;
|
|
42
|
+
className?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function ChatMessages({ dark, messages, isSending, accentColor, showMetadata, senderName, showSenderName, showTime, timePosition, bubbleBorderRadius, showCopyButton, showSources, allowMarkdown, copyLabel, copiedLabel, sourcesLabel, scrollToBottomLabel, showScrollToBottom, showScrollbar, emptyState, onSourceClick, suggestedQuestions, onSuggestedQuestionClick, compact, className, }: ChatMessagesProps): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
//# sourceMappingURL=ChatMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatMessages.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatMessages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM3D,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAChC,8FAA8F;IAC9F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gHAAgH;IAChH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAW,EACX,QAAQ,EACR,SAAiB,EACjB,WAAuB,EACvB,YAAmB,EACnB,UAAU,EACV,cAAqB,EACrB,QAAe,EACf,YAAoB,EACpB,kBAAuB,EACvB,cAAqB,EACrB,WAAkB,EAClB,aAAqB,EACrB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,mBAAwC,EACxC,kBAAyB,EACzB,aAAoB,EACpB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,OAAe,EACf,SAAS,GACV,EAAE,iBAAiB,2CAoLnB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ChatUISource } from "./types";
|
|
2
|
+
export interface ChatSourcesProps {
|
|
3
|
+
/** Dark theme (default true) */
|
|
4
|
+
dark?: boolean;
|
|
5
|
+
sources: ChatUISource[];
|
|
6
|
+
messageId?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
onSourceClick?: (source: ChatUISource) => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function ChatSources({ dark, sources, messageId, label, onSourceClick, className, }: ChatSourcesProps): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=ChatSources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatSources.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatSources.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwCD,wBAAgB,WAAW,CAAC,EAC1B,IAAW,EACX,OAAO,EACP,SAAqB,EACrB,KAAiB,EACjB,aAAa,EACb,SAAS,GACV,EAAE,gBAAgB,kDA8ElB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ChatProps } from "./Chat";
|
|
2
|
+
import type { ChatLauncherBubbleProps } from "./ChatLauncherBubble";
|
|
3
|
+
export interface ChatWithLauncherProps extends Omit<ChatProps, "onClose"> {
|
|
4
|
+
/** Called when chat panel is closed. */
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
/** Launcher bubble position (default "bottom-right"). */
|
|
7
|
+
launcherPosition?: ChatLauncherBubbleProps["position"];
|
|
8
|
+
/** Unread count badge on bubble when chat is closed. */
|
|
9
|
+
launcherUnreadCount?: number;
|
|
10
|
+
/** Accessible label when chat is closed (default "Open chat"). */
|
|
11
|
+
launcherOpenLabel?: string;
|
|
12
|
+
/** Accessible label when chat is open (default "Close chat"). */
|
|
13
|
+
launcherCloseLabel?: string;
|
|
14
|
+
/** Initially open (default false). */
|
|
15
|
+
defaultOpen?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Renders a floating launcher bubble and a chat panel that opens/closes when the bubble is clicked.
|
|
19
|
+
* Use this for embedded or widget-style chat (e.g. bottom-right corner of a page).
|
|
20
|
+
*/
|
|
21
|
+
export declare function ChatWithLauncher({ launcherPosition, launcherUnreadCount, launcherOpenLabel, launcherCloseLabel, defaultOpen, accentColor, dark, width, height, onClose, ...chatProps }: ChatWithLauncherProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=ChatWithLauncher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatWithLauncher.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/ChatWithLauncher.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;IACvE,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACvD,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AASD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,gBAAiC,EACjC,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,WAAmB,EACnB,WAAuB,EACvB,IAAW,EACX,KAAW,EACX,MAAY,EACZ,OAAO,EACP,GAAG,SAAS,EACb,EAAE,qBAAqB,2CA+CvB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { Chat } from "./Chat";
|
|
2
|
+
export { ChatHeader } from "./ChatHeader";
|
|
3
|
+
export { ChatMessages } from "./ChatMessages";
|
|
4
|
+
export { ChatBubble } from "./ChatBubble";
|
|
5
|
+
export { ChatSources } from "./ChatSources";
|
|
6
|
+
export { ChatComposer } from "./ChatComposer";
|
|
7
|
+
export { ChatLauncherBubble } from "./ChatLauncherBubble";
|
|
8
|
+
export { ChatWithLauncher } from "./ChatWithLauncher";
|
|
9
|
+
export type { ChatProps } from "./Chat";
|
|
10
|
+
export type { ChatHeaderProps } from "./ChatHeader";
|
|
11
|
+
export type { ChatMessagesProps } from "./ChatMessages";
|
|
12
|
+
export type { ChatBubbleProps } from "./ChatBubble";
|
|
13
|
+
export type { ChatSourcesProps } from "./ChatSources";
|
|
14
|
+
export type { ChatComposerProps } from "./ChatComposer";
|
|
15
|
+
export type { ChatLauncherBubbleProps } from "./ChatLauncherBubble";
|
|
16
|
+
export type { ChatWithLauncherProps } from "./ChatWithLauncher";
|
|
17
|
+
export type { ChatUIMessage, ChatUIMessageRole, ChatUIMessageStatus, ChatUISource, ChatUITheme, ChatUIStrings, } from "./types";
|
|
18
|
+
export { mapSources } from "./types";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat UI (Intercom Fin–inspired) – shared types.
|
|
3
|
+
*/
|
|
4
|
+
export interface ChatUISource {
|
|
5
|
+
title: string;
|
|
6
|
+
snippet?: string;
|
|
7
|
+
score?: number;
|
|
8
|
+
documentId?: string;
|
|
9
|
+
chunkId?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Backend API returns sources as { documentId, chunkId, title, sourceType?, url?, text, score? }. Also accepts aliased keys used by older responses. */
|
|
12
|
+
export declare function mapSources(raw: unknown): ChatUISource[];
|
|
13
|
+
export type ChatUIMessageRole = "user" | "assistant" | "system";
|
|
14
|
+
export type ChatUIMessageStatus = "sending" | "sent" | "error";
|
|
15
|
+
export interface ChatUIMessage {
|
|
16
|
+
id: string;
|
|
17
|
+
role: ChatUIMessageRole;
|
|
18
|
+
content: string;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
sources?: ChatUISource[];
|
|
21
|
+
status?: ChatUIMessageStatus;
|
|
22
|
+
}
|
|
23
|
+
export interface ChatUITheme {
|
|
24
|
+
/** Accent for user bubble and send button (e.g. #6366f1) */
|
|
25
|
+
accentColor?: string;
|
|
26
|
+
/** Dark theme by default */
|
|
27
|
+
dark?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ChatUIStrings {
|
|
30
|
+
title?: string;
|
|
31
|
+
subtitle?: string;
|
|
32
|
+
placeholder?: string;
|
|
33
|
+
send?: string;
|
|
34
|
+
copy?: string;
|
|
35
|
+
copied?: string;
|
|
36
|
+
sourcesLabel?: string;
|
|
37
|
+
privacyText?: string;
|
|
38
|
+
back?: string;
|
|
39
|
+
close?: string;
|
|
40
|
+
menu?: string;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yJAAyJ;AACzJ,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,EAAE,CA8BvD;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/chat-ui/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,EAAE,CAChB,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GACnD,MAAM,CAER;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYzD"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EmbedChatConfig } from "./types";
|
|
2
|
+
export declare function validateEmbedConfig(input: Partial<EmbedChatConfig>): asserts input is EmbedChatConfig;
|
|
3
|
+
export declare function normalizeEmbedConfig(input: Partial<EmbedChatConfig>): EmbedChatConfig;
|
|
4
|
+
export declare function readEmbedConfig(input: unknown): EmbedChatConfig;
|
|
5
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,SAAS,CAAC;AAmD1E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,CAcrG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAuBrF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAG/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreferredColorScheme.d.ts","sourceRoot":"","sources":["../../src/hooks/usePreferredColorScheme.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,GAAG,MAAM,CAgB1D"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { readEmbedConfig, normalizeEmbedConfig, validateEmbedConfig } from "./config";
|
|
2
|
+
export { validateAndInitWidget } from "./api";
|
|
3
|
+
export { normalizeWidgetSettings } from "./normalize";
|
|
4
|
+
export { mountEmbedWidget, unmountEmbedWidget, getMountedEmbedWidget } from "./bootstrap";
|
|
5
|
+
export { EmbedWidgetRoot } from "./widget-root";
|
|
6
|
+
export type { AssistrioChatGlobal, EmbedChatConfig, EmbedPosition, EmbedRuntimeState, LauncherPosition, NormalizedWidgetSettings, WidgetInitRequest, WidgetInitResponse, WidgetInitStatus, WidgetMode, WidgetPreviewOverrides, } from "./types";
|
|
7
|
+
export type { EmbedWidgetRootProps } from "./widget-root";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|