@tagit/ai-client-react 0.6.1 → 0.8.0-beta.10.1

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.
Files changed (37) hide show
  1. package/README.md +185 -11
  2. package/dist/chat-conversation.d.ts +2 -1
  3. package/dist/chat-conversation.d.ts.map +1 -1
  4. package/dist/chat-conversation.js +30 -5
  5. package/dist/chat-conversation.js.map +1 -1
  6. package/dist/chat-history.d.ts +6 -0
  7. package/dist/chat-history.d.ts.map +1 -0
  8. package/dist/chat-history.js +53 -0
  9. package/dist/chat-history.js.map +1 -0
  10. package/dist/chat-tooltip.d.ts +8 -0
  11. package/dist/chat-tooltip.d.ts.map +1 -0
  12. package/dist/chat-tooltip.js +5 -0
  13. package/dist/chat-tooltip.js.map +1 -0
  14. package/dist/chat-widget.d.ts +17 -1
  15. package/dist/chat-widget.d.ts.map +1 -1
  16. package/dist/chat-widget.js +47 -21
  17. package/dist/chat-widget.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/provider.d.ts +25 -3
  23. package/dist/provider.d.ts.map +1 -1
  24. package/dist/provider.js +156 -1
  25. package/dist/provider.js.map +1 -1
  26. package/dist/renderers/ChartRenderer.d.ts +1 -1
  27. package/dist/renderers/ChartRenderer.d.ts.map +1 -1
  28. package/dist/renderers/ChartRenderer.js +20 -1
  29. package/dist/renderers/ChartRenderer.js.map +1 -1
  30. package/dist/renderers/ContentBlockRenderer.d.ts +1 -1
  31. package/dist/renderers/ContentBlockRenderer.d.ts.map +1 -1
  32. package/dist/renderers/MarkdownRenderer.d.ts +2 -2
  33. package/dist/renderers/MarkdownRenderer.d.ts.map +1 -1
  34. package/dist/renderers/MarkdownRenderer.js +6 -4
  35. package/dist/renderers/MarkdownRenderer.js.map +1 -1
  36. package/package.json +5 -5
  37. package/src/chat-widget.css +456 -31
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef, useState } from 'react';
3
- import { SquareArrowOutUpRight, X } from 'lucide-react';
3
+ import { History, SquareArrowOutUpRight, X } from 'lucide-react';
4
4
  import { ChatConversation } from './chat-conversation.js';
5
+ import { ChatHistoryPanel } from './chat-history.js';
6
+ import { ChatTooltip } from './chat-tooltip.js';
5
7
  import { useAIClient } from './provider.js';
6
8
  function resolveTheme(theme) {
7
9
  if (theme === 'light' || theme === 'dark') {
@@ -12,17 +14,34 @@ function resolveTheme(theme) {
12
14
  }
13
15
  return 'light';
14
16
  }
15
- export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right', title = 'Ask TagIt', titleIconUrl, open, defaultOpen = false, onOpenChange, theme = 'system', colorScheme, colorSchemes, tabIcon, tabLabel = 'Chat', tabTooltipOpen, tabTooltipClose, tabIconUrl, tabHeightPercent = 40, width = 420, resizable = true, minWidthPx = 280, maxWidthPx, onWidthChange, showBackdrop = false, closeOnOutsideClick = false, onNewChat, className, children, }) {
17
+ export function ChatWidget({ presentation, mode = 'overlay', dockMode = 'page', side = 'right', title = 'Ask TagIt', titleIconUrl, open, defaultOpen = false, onOpenChange, theme = 'system', colorScheme, colorSchemes, tabIcon, tabLabel = 'Chat', tabTooltipOpen, tabTooltipClose, tabIconUrl, tabHeightPercent = 40, width = 420, resizable = true, minWidthPx = 280, maxWidthPx, onWidthChange, mobileBreakpointPx = 720, mobilePresentation = 'fullscreen', showBackdrop = false, closeOnOutsideClick = false, onNewChat, className, children, }) {
16
18
  const [internalOpen, setInternalOpen] = useState(defaultOpen);
17
19
  const [internalWidth, setInternalWidth] = useState(typeof width === 'number' ? `${width}px` : String(width));
18
20
  const [resolvedTheme, setResolvedTheme] = useState(() => resolveTheme(theme));
21
+ const [isMobileViewport, setIsMobileViewport] = useState(false);
22
+ const [historyOpen, setHistoryOpen] = useState(false);
19
23
  const panelRef = useRef(null);
20
24
  const client = useAIClient();
21
25
  const isControlled = typeof open === 'boolean';
22
26
  const isOpen = isControlled ? Boolean(open) : internalOpen;
27
+ const effectivePresentation = presentation ?? (mode === 'inline' ? (dockMode === 'viewport' ? 'sidePanel' : 'inline') : 'overlay');
28
+ const effectiveMode = effectivePresentation === 'overlay' ? 'overlay' : 'inline';
29
+ const effectiveDockMode = effectivePresentation === 'inline' ? dockMode : 'viewport';
30
+ const isFullscreenMobile = isMobileViewport && mobilePresentation === 'fullscreen';
31
+ const canResize = resizable && !isFullscreenMobile;
23
32
  useEffect(() => {
24
33
  setInternalWidth(typeof width === 'number' ? `${width}px` : String(width));
25
34
  }, [width]);
35
+ useEffect(() => {
36
+ if (typeof window === 'undefined') {
37
+ return;
38
+ }
39
+ const mql = window.matchMedia(`(max-width: ${Math.max(1, mobileBreakpointPx)}px)`);
40
+ const onChange = () => setIsMobileViewport(mql.matches);
41
+ onChange();
42
+ mql.addEventListener('change', onChange);
43
+ return () => mql.removeEventListener('change', onChange);
44
+ }, [mobileBreakpointPx]);
26
45
  useEffect(() => {
27
46
  setResolvedTheme(resolveTheme(theme));
28
47
  if (theme !== 'system' || typeof window === 'undefined') {
@@ -34,7 +53,7 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
34
53
  return () => mql.removeEventListener('change', onChange);
35
54
  }, [theme]);
36
55
  useEffect(() => {
37
- if (!isOpen || mode !== 'overlay') {
56
+ if (!isOpen || effectivePresentation !== 'overlay') {
38
57
  return;
39
58
  }
40
59
  const onKeyDown = (event) => {
@@ -44,7 +63,7 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
44
63
  };
45
64
  window.addEventListener('keydown', onKeyDown);
46
65
  return () => window.removeEventListener('keydown', onKeyDown);
47
- }, [isOpen, mode]);
66
+ }, [effectivePresentation, isOpen]);
48
67
  const setOpen = (nextOpen) => {
49
68
  if (!isControlled) {
50
69
  setInternalOpen(nextOpen);
@@ -66,7 +85,7 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
66
85
  onWidthChange?.(next);
67
86
  };
68
87
  const startResize = (event) => {
69
- if (!resizable || !isOpen) {
88
+ if (!canResize || !isOpen) {
70
89
  return;
71
90
  }
72
91
  event.preventDefault();
@@ -74,11 +93,8 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
74
93
  const startWidth = panelRef.current?.getBoundingClientRect().width ?? 0;
75
94
  const onMove = (moveEvent) => {
76
95
  const delta = side === 'right' ? startX - moveEvent.clientX : moveEvent.clientX - startX;
77
- const root = panelRef.current?.closest('.tagIt-chat-widget');
78
- const containerMaxPx = mode === 'inline'
79
- ? dockMode === 'viewport'
80
- ? window.innerWidth
81
- : (root?.parentElement?.getBoundingClientRect().width ?? window.innerWidth)
96
+ const containerMaxPx = effectivePresentation === 'inline' && effectiveDockMode === 'page'
97
+ ? (panelRef.current?.closest('.tagIt-chat-widget')?.parentElement?.getBoundingClientRect().width ?? window.innerWidth)
82
98
  : window.innerWidth;
83
99
  setWidthFromResize(startWidth + delta, containerMaxPx);
84
100
  };
@@ -89,6 +105,21 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
89
105
  window.addEventListener('mousemove', onMove);
90
106
  window.addEventListener('mouseup', onUp);
91
107
  };
108
+ const startNewChat = () => {
109
+ if (onNewChat) {
110
+ onNewChat();
111
+ return;
112
+ }
113
+ client.cancel();
114
+ void client.startNewConversation().catch(() => {
115
+ try {
116
+ client.clearHistory();
117
+ }
118
+ catch {
119
+ // The request may still be settling after cancel; state will sync when it finishes.
120
+ }
121
+ });
122
+ };
92
123
  const cssVars = useMemo(() => {
93
124
  const vars = {
94
125
  ['--tagIt-chat-bg']: activeColorScheme?.bg,
@@ -117,13 +148,15 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
117
148
  }, [activeColorScheme, internalWidth, normalizedTabHeightPercent]);
118
149
  return (_jsxs("div", { className: [
119
150
  'tagIt-chat-widget',
120
- `tagIt-chat-widget-${mode}`,
121
- `tagIt-chat-widget-dock-${dockMode}`,
151
+ `tagIt-chat-widget-${effectiveMode}`,
152
+ `tagIt-chat-widget-presentation-${effectivePresentation}`,
153
+ `tagIt-chat-widget-dock-${effectiveDockMode}`,
122
154
  isOpen ? 'tagIt-chat-widget-open' : 'tagIt-chat-widget-closed',
155
+ isFullscreenMobile ? 'tagIt-chat-widget-mobile-fullscreen' : '',
123
156
  `tagIt-chat-side-${side}`,
124
157
  `tagIt-chat-theme-${resolvedTheme}`,
125
158
  className || '',
126
- ].join(' ').trim(), style: cssVars, children: [mode === 'overlay' && (showBackdrop || closeOnOutsideClick) && (_jsx("div", { className: [
159
+ ].join(' ').trim(), style: cssVars, children: [effectivePresentation === 'overlay' && (showBackdrop || closeOnOutsideClick) && (_jsx("div", { className: [
127
160
  'tagIt-chat-scrim',
128
161
  isOpen ? 'tagIt-chat-scrim-open' : '',
129
162
  showBackdrop ? '' : 'tagIt-chat-scrim-transparent',
@@ -136,13 +169,6 @@ export function ChatWidget({ mode = 'overlay', dockMode = 'page', side = 'right'
136
169
  'tagIt-chat-tab',
137
170
  tabLabel?.trim() ? '' : 'tagIt-chat-tab-icon-only',
138
171
  isOpen ? 'tagIt-chat-tab-open' : '',
139
- ].join(' ').trim(), "aria-expanded": isOpen, "aria-label": isOpen ? `Close ${accessibleLabel}` : `Open ${accessibleLabel}`, title: hoverTitle, onClick: () => setOpen(!isOpen), children: [_jsx("span", { className: "tagIt-chat-tab-icon", "aria-hidden": true, children: isOpen ? collapseIcon : tabIconUrl ? _jsx("img", { src: tabIconUrl, alt: "" }) : tabIcon || 'AI' }), tabLabel?.trim() ? _jsx("span", { className: "tagIt-chat-tab-label", children: tabLabel }) : null] }), _jsxs("aside", { ref: panelRef, className: `tagIt-chat-panel ${isOpen ? 'tagIt-chat-panel-open' : ''}`, children: [resizable ? (_jsx("button", { type: "button", className: "tagIt-chat-resize-handle", "aria-label": "Resize chat panel", onMouseDown: startResize })) : null, _jsxs("header", { className: "tagIt-chat-panel-header", children: [_jsxs("div", { className: "tagIt-chat-panel-title-wrap", children: [titleIconUrl?.trim() ? (_jsx("img", { src: titleIconUrl, alt: "", "aria-hidden": true, className: "tagIt-chat-panel-title-icon" })) : null, _jsx("h2", { children: title })] }), _jsxs("div", { className: "tagIt-chat-panel-header-actions", children: [_jsx("button", { type: "button", className: "tagIt-chat-header-btn", "aria-label": "New chat", title: "New chat", onClick: () => {
140
- if (onNewChat) {
141
- onNewChat();
142
- return;
143
- }
144
- client.cancel();
145
- client.clearHistory();
146
- }, children: _jsx(SquareArrowOutUpRight, { size: 22 }) }), _jsx("button", { type: "button", className: "tagIt-chat-close", "aria-label": "Close chat", onClick: () => setOpen(false), children: _jsx(X, { size: 22 }) })] })] }), _jsx("div", { className: "tagIt-chat-panel-body", children: children === undefined ? _jsx(ChatConversation, {}) : children })] })] }));
172
+ ].join(' ').trim(), "data-tooltip": hoverTitle, "data-tooltip-side": side === 'left' ? 'right' : 'left', "aria-expanded": isOpen, "aria-label": isOpen ? `Close ${accessibleLabel}` : `Open ${accessibleLabel}`, onClick: () => setOpen(!isOpen), children: [_jsx("span", { className: "tagIt-chat-tab-icon", "aria-hidden": true, children: isOpen ? collapseIcon : tabIconUrl ? _jsx("img", { src: tabIconUrl, alt: "" }) : tabIcon || 'AI' }), tabLabel?.trim() ? _jsx("span", { className: "tagIt-chat-tab-label", children: tabLabel }) : null] }), _jsxs("aside", { ref: panelRef, className: `tagIt-chat-panel ${isOpen ? 'tagIt-chat-panel-open' : ''}`, children: [canResize ? (_jsx("button", { type: "button", className: "tagIt-chat-resize-handle", "aria-label": "Resize chat panel", onMouseDown: startResize })) : null, _jsxs("header", { className: "tagIt-chat-panel-header", children: [_jsxs("div", { className: "tagIt-chat-panel-title-wrap", children: [titleIconUrl?.trim() ? (_jsx("img", { src: titleIconUrl, alt: "", "aria-hidden": true, className: "tagIt-chat-panel-title-icon" })) : null, _jsx("h2", { children: title })] }), _jsxs("div", { className: "tagIt-chat-panel-header-actions", children: [_jsx(ChatTooltip, { label: "Conversation history", children: _jsx("button", { type: "button", className: "tagIt-chat-header-btn", "aria-label": "Conversation history", onClick: () => setHistoryOpen((value) => !value), children: _jsx(History, { size: 22 }) }) }), _jsx(ChatTooltip, { label: "New chat", children: _jsx("button", { type: "button", className: "tagIt-chat-header-btn", "aria-label": "New chat", onClick: startNewChat, children: _jsx(SquareArrowOutUpRight, { size: 22 }) }) }), _jsx(ChatTooltip, { label: "Close chat", children: _jsx("button", { type: "button", className: "tagIt-chat-close", "aria-label": "Close chat", onClick: () => setOpen(false), children: _jsx(X, { size: 22 }) }) })] })] }), _jsxs("div", { className: "tagIt-chat-panel-body", children: [children === undefined ? _jsx(ChatConversation, {}) : children, historyOpen ? _jsx(ChatHistoryPanel, { onClose: () => setHistoryOpen(false) }) : null] })] })] }));
147
173
  }
148
174
  //# sourceMappingURL=chat-widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-widget.js","sourceRoot":"","sources":["../src/chat-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-widget.js","sourceRoot":"","sources":["../src/chat-widget.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -21,7 +21,8 @@
21
21
  * }
22
22
  * ```
23
23
  */
24
- export { AIClientProvider, useAIClient, useConversation, useClientEvents, } from './provider.js';
25
- export { ChatWidget, type ChatWidgetProps, type ChatWidgetMode, type ChatWidgetSide, type ChatWidgetTheme, type ChatColorScheme, } from './chat-widget.js';
24
+ export { AIClientProvider, useAIClient, useConversation, useConversationHistory, useClientEvents, type ConversationHistoryState, } from './provider.js';
25
+ export { ChatWidget, type ChatWidgetProps, type ChatWidgetMode, type ChatWidgetPresentation, type ChatWidgetMobilePresentation, type ChatWidgetSide, type ChatWidgetTheme, type ChatColorScheme, } from './chat-widget.js';
26
26
  export { ChatConversation, type ChatConversationProps, } from './chat-conversation.js';
27
+ export { ChatHistoryPanel, type ChatHistoryPanelProps, } from './chat-history.js';
27
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,8 @@
21
21
  * }
22
22
  * ```
23
23
  */
24
- export { AIClientProvider, useAIClient, useConversation, useClientEvents, } from './provider.js';
24
+ export { AIClientProvider, useAIClient, useConversation, useConversationHistory, useClientEvents, } from './provider.js';
25
25
  export { ChatWidget, } from './chat-widget.js';
26
26
  export { ChatConversation, } from './chat-conversation.js';
27
+ export { ChatHistoryPanel, } from './chat-history.js';
27
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,GAMX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,eAAe,GAEhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,GAQX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
- import { ReactNode } from 'react';
2
- import type { AIClient, ClientEvent, SendMessageOptions } from '@tagit/ai-client-core';
1
+ import React, { ReactNode } from 'react';
2
+ import type { AIClient, ClientEvent, ConversationHistoryListOptions, ConversationSummary, SendMessageOptions } from '@tagit/ai-client-core';
3
3
  interface AIClientProviderProps {
4
4
  client: AIClient;
5
5
  children: ReactNode;
@@ -7,7 +7,7 @@ interface AIClientProviderProps {
7
7
  /**
8
8
  * Provider that exposes the AI client to React components
9
9
  */
10
- export declare function AIClientProvider({ client, children }: AIClientProviderProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function AIClientProvider({ client, children }: AIClientProviderProps): React.JSX.Element;
11
11
  /**
12
12
  * Hook to access the AI client
13
13
  */
@@ -32,6 +32,28 @@ export declare function useConversation(): {
32
32
  workflowStatus?: string;
33
33
  checkpointPrompt?: string;
34
34
  };
35
+ export interface ConversationHistoryState {
36
+ enabled: boolean;
37
+ conversations: ConversationSummary[];
38
+ isLoading: boolean;
39
+ loadingConversationId: string | null;
40
+ error: string | null;
41
+ nextPageToken?: string;
42
+ activeConversationId: string;
43
+ refresh: (options?: ConversationHistoryListOptions) => Promise<void>;
44
+ loadConversation: (conversationId: string) => Promise<void>;
45
+ cancelLoadConversation: () => void;
46
+ startNewConversation: (title?: string) => Promise<void>;
47
+ renameConversation: (conversationId: string, title: string) => Promise<void>;
48
+ archiveConversation: (conversationId: string) => Promise<void>;
49
+ }
50
+ /**
51
+ * Hook for durable conversation history UX.
52
+ *
53
+ * This is intentionally UI-state focused: core owns transport behavior,
54
+ * while React components can render loading/error/list state consistently.
55
+ */
56
+ export declare function useConversationHistory(options?: ConversationHistoryListOptions): ConversationHistoryState;
35
57
  /**
36
58
  * Hook to listen for specific client events
37
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAqB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAO1G,UAAU,qBAAqB;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CAM3E;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAMtC;AAED;;GAEG;AACH,wBAAgB,eAAe;2BAaX,MAAM,YAAY,kBAAkB;;sBAWnC,kBAAkB;;+BAgBS,MAAM,KAAG,MAAM,GAAG,IAAI;;;;;;;;;;;EAcrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,QAMrE"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAwD,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,8BAA8B,EAE9B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAO/B,UAAU,qBAAqB;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAM3E;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAMtC;AAED;;GAEG;AACH,wBAAgB,eAAe;2BAaX,MAAM,YAAY,kBAAkB;;sBAWnC,kBAAkB;;+BAgBS,MAAM,KAAG,MAAM,GAAG,IAAI;;;;;;;;;;;EAcrE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,8BAA8B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,mBAAmB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,wBAAwB,CAmKzG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,QAMrE"}
package/dist/provider.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { useCallback, useContext, useEffect, useState } from 'react';
2
+ import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
3
3
  /**
4
4
  * AI Client context
5
5
  */
@@ -64,6 +64,161 @@ export function useConversation() {
64
64
  reEditMessage,
65
65
  };
66
66
  }
67
+ /**
68
+ * Hook for durable conversation history UX.
69
+ *
70
+ * This is intentionally UI-state focused: core owns transport behavior,
71
+ * while React components can render loading/error/list state consistently.
72
+ */
73
+ export function useConversationHistory(options) {
74
+ const client = useAIClient();
75
+ const [activeConversationId, setActiveConversationId] = useState(() => client.getState().id);
76
+ const [conversations, setConversations] = useState([]);
77
+ const [nextPageToken, setNextPageToken] = useState();
78
+ const [isLoading, setIsLoading] = useState(false);
79
+ const [loadingConversationId, setLoadingConversationId] = useState(null);
80
+ const [error, setError] = useState(null);
81
+ const [enabled, setEnabled] = useState(true);
82
+ const loadAbortRef = useRef(null);
83
+ useEffect(() => {
84
+ return client.on(() => {
85
+ setActiveConversationId(client.getState().id);
86
+ });
87
+ }, [client]);
88
+ const refresh = useCallback(async (refreshOptions) => {
89
+ setIsLoading(true);
90
+ setError(null);
91
+ try {
92
+ const result = await client.listConversations({
93
+ ...options,
94
+ ...refreshOptions,
95
+ });
96
+ setConversations(result.conversations);
97
+ setNextPageToken(result.nextPageToken);
98
+ setEnabled(true);
99
+ }
100
+ catch (err) {
101
+ const message = err instanceof Error ? err.message : 'Unable to load conversations.';
102
+ setError(message);
103
+ if (message.toLowerCase().includes('conversation history')) {
104
+ setEnabled(false);
105
+ }
106
+ }
107
+ finally {
108
+ setIsLoading(false);
109
+ }
110
+ }, [client, options?.limit, options?.pageToken, options?.status, options?.surface, options?.useCaseId, options?.userId]);
111
+ const loadConversation = useCallback(async (conversationId) => {
112
+ loadAbortRef.current?.abort();
113
+ const controller = new AbortController();
114
+ loadAbortRef.current = controller;
115
+ setIsLoading(true);
116
+ setLoadingConversationId(conversationId);
117
+ setError(null);
118
+ try {
119
+ await client.loadConversation(conversationId, {
120
+ useCaseId: options?.useCaseId,
121
+ userId: options?.userId,
122
+ signal: controller.signal,
123
+ });
124
+ await refresh();
125
+ }
126
+ catch (err) {
127
+ if (!controller.signal.aborted) {
128
+ setError(err instanceof Error ? err.message : 'Unable to load conversation.');
129
+ }
130
+ }
131
+ finally {
132
+ if (loadAbortRef.current === controller) {
133
+ loadAbortRef.current = null;
134
+ setLoadingConversationId(null);
135
+ setIsLoading(false);
136
+ }
137
+ }
138
+ }, [client, options?.useCaseId, options?.userId, refresh]);
139
+ const cancelLoadConversation = useCallback(() => {
140
+ loadAbortRef.current?.abort();
141
+ loadAbortRef.current = null;
142
+ setLoadingConversationId(null);
143
+ setIsLoading(false);
144
+ }, []);
145
+ const startNewConversation = useCallback(async (title) => {
146
+ setIsLoading(true);
147
+ setError(null);
148
+ try {
149
+ await client.startNewConversation({
150
+ title,
151
+ useCaseId: options?.useCaseId,
152
+ userId: options?.userId,
153
+ surface: options?.surface,
154
+ });
155
+ await refresh();
156
+ }
157
+ catch (err) {
158
+ setError(err instanceof Error ? err.message : 'Unable to start a new conversation.');
159
+ }
160
+ finally {
161
+ setIsLoading(false);
162
+ }
163
+ }, [client, options?.surface, options?.useCaseId, options?.userId, refresh]);
164
+ const renameConversation = useCallback(async (conversationId, title) => {
165
+ setIsLoading(true);
166
+ setError(null);
167
+ try {
168
+ await client.renameConversation(conversationId, title, {
169
+ useCaseId: options?.useCaseId,
170
+ userId: options?.userId,
171
+ });
172
+ await refresh();
173
+ }
174
+ catch (err) {
175
+ setError(err instanceof Error ? err.message : 'Unable to rename conversation.');
176
+ }
177
+ finally {
178
+ setIsLoading(false);
179
+ }
180
+ }, [client, options?.useCaseId, options?.userId, refresh]);
181
+ const archiveConversation = useCallback(async (conversationId) => {
182
+ setIsLoading(true);
183
+ setError(null);
184
+ try {
185
+ await client.archiveConversation(conversationId, {
186
+ useCaseId: options?.useCaseId,
187
+ userId: options?.userId,
188
+ });
189
+ await refresh();
190
+ }
191
+ catch (err) {
192
+ setError(err instanceof Error ? err.message : 'Unable to archive conversation.');
193
+ }
194
+ finally {
195
+ setIsLoading(false);
196
+ }
197
+ }, [client, options?.useCaseId, options?.userId, refresh]);
198
+ useEffect(() => {
199
+ void refresh();
200
+ }, [refresh]);
201
+ useEffect(() => {
202
+ return () => {
203
+ loadAbortRef.current?.abort();
204
+ };
205
+ }, []);
206
+ return {
207
+ enabled,
208
+ conversations,
209
+ isLoading,
210
+ loadingConversationId,
211
+ error,
212
+ nextPageToken,
213
+ activeConversationId,
214
+ refresh,
215
+ loadConversation,
216
+ cancelLoadConversation,
217
+ startNewConversation,
218
+ renameConversation,
219
+ archiveConversation,
220
+ };
221
+ }
67
222
  /**
68
223
  * Hook to listen for specific client events
69
224
  */
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAa,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAU/F;;GAEG;AACH,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB,IAAI,CAAC,CAAC;AAOnE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAyB;IAC1E,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YACpC,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EAAE,OAAe,EAAE,OAA4B,EAAE,EAAE;QACtD,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,OAA4B,EAAE,EAAE;QACrC,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACjG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CACzB,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,MAAM,CAAC,YAAY,EAAE,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAiB,EAAE;QACrE,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,IAAI;YAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO;QACL,GAAG,KAAK;QACR,WAAW;QACX,MAAM;QACN,KAAK;QACL,YAAY;QACZ,aAAa;KACd,CAAC;AACJ,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAwC;IAC7E,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAC7B,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7F,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAsB,CAAC;IACzE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE;YACpB,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,WAAW,CACzB,KAAK,EAAE,cAA+C,EAAE,EAAE;QACxD,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC;gBAC5C,GAAG,OAAO;gBACV,GAAG,cAAc;aAClB,CAAC,CAAC;YACH,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC;YACrF,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CACrH,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EAAE,cAAsB,EAAE,EAAE;QAC/B,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC;QAClC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,wBAAwB,CAAC,cAAc,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBAC5C,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACxC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CACvD,CAAC;IAEF,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9C,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9B,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,WAAW,CACtC,KAAK,EAAE,KAAc,EAAE,EAAE;QACvB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,oBAAoB,CAAC;gBAChC,KAAK;gBACL,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,OAAO,EAAE,OAAO,EAAE,OAAO;aAC1B,CAAC,CAAC;YACH,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACvF,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CACzE,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,KAAK,EAAE,cAAsB,EAAE,KAAa,EAAE,EAAE;QAC9C,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE;gBACrD,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,MAAM,EAAE,OAAO,EAAE,MAAM;aACxB,CAAC,CAAC;YACH,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAClF,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CACvD,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CACrC,KAAK,EAAE,cAAsB,EAAE,EAAE;QAC/B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE;gBAC/C,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,MAAM,EAAE,OAAO,EAAE,MAAM;aACxB,CAAC,CAAC;YACH,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC;QACnF,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CACvD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,OAAO,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,OAAO;QACP,aAAa;QACb,SAAS;QACT,qBAAqB;QACrB,KAAK;QACL,aAAa;QACb,oBAAoB;QACpB,OAAO;QACP,gBAAgB;QAChB,sBAAsB;QACtB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAsC;IACpE,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzB,CAAC"}
@@ -2,6 +2,6 @@ import React from 'react';
2
2
  interface ChartRendererProps {
3
3
  rawJson: string;
4
4
  }
5
- export declare const ChartRenderer: React.MemoExoticComponent<({ rawJson }: ChartRendererProps) => import("react/jsx-runtime").JSX.Element>;
5
+ export declare const ChartRenderer: React.MemoExoticComponent<({ rawJson }: ChartRendererProps) => React.JSX.Element>;
6
6
  export {};
7
7
  //# sourceMappingURL=ChartRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ChartRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6E1B,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,0CAAkD,kBAAkB,6CAwH5F,CAAC"}
1
+ {"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ChartRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6E1B,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,0CAAkD,kBAAkB,uBAyI5F,CAAC"}
@@ -47,6 +47,25 @@ export const ChartRenderer = React.memo(function ChartRenderer({ rawJson }) {
47
47
  const nameKey = payload.nameKey || xKey;
48
48
  const valueKey = payload.valueKey || yKey;
49
49
  const colors = payload.colors && payload.colors.length > 0 ? payload.colors : DEFAULT_COLORS;
50
- return (_jsx("div", { className: "tagIt-chat-chart-wrap", role: "img", "aria-label": `${payload.type} visualization`, children: _jsxs(ResponsiveContainer, { width: "100%", height: chartHeight, children: [payload.type === 'BarChart' ? (_jsxs(BarChart, { data: data, margin: { top: 8, right: 16, left: 0, bottom: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3" }), _jsx(XAxis, { dataKey: xKey }), _jsx(YAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Bar, { dataKey: item.dataKey, fill: item.fill || colors[index % colors.length], name: item.name || item.dataKey }, `${item.dataKey}-${index}`)))] })) : null, payload.type === 'LineChart' ? (_jsxs(LineChart, { data: data, margin: { top: 8, right: 16, left: 0, bottom: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3" }), _jsx(XAxis, { dataKey: xKey }), _jsx(YAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Line, { type: "monotone", dataKey: item.dataKey, stroke: item.stroke || colors[index % colors.length], name: item.name || item.dataKey, dot: false }, `${item.dataKey}-${index}`)))] })) : null, payload.type === 'AreaChart' ? (_jsxs(AreaChart, { data: data, margin: { top: 8, right: 16, left: 0, bottom: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3" }), _jsx(XAxis, { dataKey: xKey }), _jsx(YAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Area, { type: "monotone", dataKey: item.dataKey, stroke: item.stroke || colors[index % colors.length], fill: item.fill || colors[index % colors.length], fillOpacity: 0.25, name: item.name || item.dataKey }, `${item.dataKey}-${index}`)))] })) : null, payload.type === 'PieChart' ? (_jsxs(PieChart, { children: [_jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), _jsx(Pie, { data: data, dataKey: valueKey, nameKey: nameKey, outerRadius: 95, children: data.map((_, index) => (_jsx(Cell, { fill: colors[index % colors.length] }, `cell-${index}`))) })] })) : null, payload.type === 'RadarChart' ? (_jsxs(RadarChart, { data: data, outerRadius: 100, children: [_jsx(PolarGrid, {}), _jsx(PolarAngleAxis, { dataKey: xKey }), _jsx(PolarRadiusAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Radar, { dataKey: item.dataKey, stroke: item.stroke || colors[index % colors.length], fill: item.fill || colors[index % colors.length], fillOpacity: 0.2, name: item.name || item.dataKey }, `${item.dataKey}-${index}`)))] })) : null] }) }));
50
+ let chartElement = null;
51
+ if (payload.type === 'BarChart') {
52
+ chartElement = (_jsxs(BarChart, { data: data, margin: { top: 8, right: 16, left: 0, bottom: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3" }), _jsx(XAxis, { dataKey: xKey }), _jsx(YAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Bar, { dataKey: item.dataKey, fill: item.fill || colors[index % colors.length], name: item.name || item.dataKey }, `${item.dataKey}-${index}`)))] }));
53
+ }
54
+ if (payload.type === 'LineChart') {
55
+ chartElement = (_jsxs(LineChart, { data: data, margin: { top: 8, right: 16, left: 0, bottom: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3" }), _jsx(XAxis, { dataKey: xKey }), _jsx(YAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Line, { type: "monotone", dataKey: item.dataKey, stroke: item.stroke || colors[index % colors.length], name: item.name || item.dataKey, dot: false }, `${item.dataKey}-${index}`)))] }));
56
+ }
57
+ if (payload.type === 'AreaChart') {
58
+ chartElement = (_jsxs(AreaChart, { data: data, margin: { top: 8, right: 16, left: 0, bottom: 8 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3" }), _jsx(XAxis, { dataKey: xKey }), _jsx(YAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Area, { type: "monotone", dataKey: item.dataKey, stroke: item.stroke || colors[index % colors.length], fill: item.fill || colors[index % colors.length], fillOpacity: 0.25, name: item.name || item.dataKey }, `${item.dataKey}-${index}`)))] }));
59
+ }
60
+ if (payload.type === 'PieChart') {
61
+ chartElement = (_jsxs(PieChart, { children: [_jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), _jsx(Pie, { data: data, dataKey: valueKey, nameKey: nameKey, outerRadius: 95, children: data.map((_, index) => (_jsx(Cell, { fill: colors[index % colors.length] }, `cell-${index}`))) })] }));
62
+ }
63
+ if (payload.type === 'RadarChart') {
64
+ chartElement = (_jsxs(RadarChart, { data: data, outerRadius: 100, children: [_jsx(PolarGrid, {}), _jsx(PolarAngleAxis, { dataKey: xKey }), _jsx(PolarRadiusAxis, {}), _jsx(Tooltip, {}), _jsx(Legend, { wrapperStyle: legendStyle }), series.map((item, index) => (_jsx(Radar, { dataKey: item.dataKey, stroke: item.stroke || colors[index % colors.length], fill: item.fill || colors[index % colors.length], fillOpacity: 0.2, name: item.name || item.dataKey }, `${item.dataKey}-${index}`)))] }));
65
+ }
66
+ if (!chartElement) {
67
+ return fallbackCode(rawJson);
68
+ }
69
+ return (_jsx("div", { className: "tagIt-chat-chart-wrap", role: "img", "aria-label": `${payload.type} visualization`, children: _jsx(ResponsiveContainer, { width: "100%", height: chartHeight, children: chartElement }) }));
51
70
  });
52
71
  //# sourceMappingURL=ChartRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartRenderer.js","sourceRoot":"","sources":["../../src/renderers/ChartRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartRenderer.js","sourceRoot":"","sources":["../../src/renderers/ChartRenderer.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ interface ContentBlockRendererProps {
5
5
  content: string;
6
6
  showStreamingCursor?: boolean;
7
7
  }
8
- export declare const ContentBlockRenderer: React.MemoExoticComponent<({ role, content, showStreamingCursor, }: ContentBlockRendererProps) => import("react/jsx-runtime").JSX.Element>;
8
+ export declare const ContentBlockRenderer: React.MemoExoticComponent<({ role, content, showStreamingCursor, }: ContentBlockRendererProps) => React.JSX.Element>;
9
9
  export {};
10
10
  //# sourceMappingURL=ContentBlockRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentBlockRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ContentBlockRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,UAAU,yBAAyB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,oBAAoB,sEAI9B,yBAAyB,6CAe1B,CAAC"}
1
+ {"version":3,"file":"ContentBlockRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ContentBlockRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,UAAU,yBAAyB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,oBAAoB,sEAI9B,yBAAyB,uBAe1B,CAAC"}
@@ -1,8 +1,8 @@
1
- import 'highlight.js/styles/github-dark.css';
1
+ import React from 'react';
2
2
  interface MarkdownRendererProps {
3
3
  markdown: string;
4
4
  showStreamingCursor?: boolean;
5
5
  }
6
- export declare function MarkdownRenderer({ markdown, showStreamingCursor }: MarkdownRendererProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function MarkdownRenderer({ markdown, showStreamingCursor }: MarkdownRendererProps): React.JSX.Element;
7
7
  export {};
8
8
  //# sourceMappingURL=MarkdownRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/MarkdownRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,qCAAqC,CAAC;AAE7C,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA6CD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,mBAA2B,EAAE,EAAE,qBAAqB,2CA4ChG"}
1
+ {"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/MarkdownRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA+DD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,mBAA2B,EAAE,EAAE,qBAAqB,qBA4ChG"}
@@ -1,11 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useRef, useState } from 'react';
2
+ import { Suspense, lazy, useRef, useState } from 'react';
3
3
  import { Check, Copy } from 'lucide-react';
4
4
  import ReactMarkdown from 'react-markdown';
5
5
  import remarkGfm from 'remark-gfm';
6
6
  import rehypeHighlight from 'rehype-highlight';
7
- import { ChartRenderer } from './ChartRenderer.js';
8
- import 'highlight.js/styles/github-dark.css';
7
+ const LazyChartRenderer = lazy(() => import('./ChartRenderer.js').then((module) => ({ default: module.ChartRenderer })));
9
8
  function extractText(children) {
10
9
  if (typeof children === 'string') {
11
10
  return children;
@@ -33,6 +32,9 @@ function CodeBlock({ className, children }) {
33
32
  }
34
33
  return (_jsxs("pre", { className: "tagIt-chat-md-code-block", children: [_jsx("button", { type: "button", className: "tagIt-chat-md-copy-btn", onClick: handleCopy, "aria-label": copied ? 'Copied' : 'Copy code', "data-copied": copied ? '' : undefined, children: copied ? _jsx(Check, { size: 14 }) : _jsx(Copy, { size: 14 }) }), _jsx("code", { className: className, children: children })] }));
35
34
  }
35
+ function ChartBlock({ rawJson }) {
36
+ return (_jsx(Suspense, { fallback: _jsx("pre", { className: "tagIt-chat-md-code-block", children: _jsx("code", { children: rawJson }) }), children: _jsx(LazyChartRenderer, { rawJson: rawJson }) }));
37
+ }
36
38
  export function MarkdownRenderer({ markdown, showStreamingCursor = false }) {
37
39
  const components = {
38
40
  code({ className, children, ...props }) {
@@ -40,7 +42,7 @@ export function MarkdownRenderer({ markdown, showStreamingCursor = false }) {
40
42
  const match = /language-(\w+)/.exec(className || '');
41
43
  const language = match?.[1];
42
44
  if (language === 'chart') {
43
- return _jsx(ChartRenderer, { rawJson: text });
45
+ return _jsx(ChartBlock, { rawJson: text });
44
46
  }
45
47
  const inline = !(className && className.includes('language-'));
46
48
  if (inline) {