@talk2view/sdk 0.2.4 → 0.3.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.
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -4
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/react/index.d.ts +9 -22
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +11 -16
- package/dist/react/index.js.map +1 -1
- package/dist/react/theme.d.ts +16 -0
- package/dist/react/theme.d.ts.map +1 -1
- package/dist/react/theme.js +119 -4
- package/dist/react/theme.js.map +1 -1
- package/dist/react/useT2VChat.d.ts +24 -2
- package/dist/react/useT2VChat.d.ts.map +1 -1
- package/dist/react/useT2VChat.js +176 -38
- package/dist/react/useT2VChat.js.map +1 -1
- package/dist/react/useUserPreferences.js +2 -2
- package/dist/react/useUserPreferences.js.map +1 -1
- package/dist/sessions.d.ts +10 -1
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +71 -25
- package/dist/sessions.js.map +1 -1
- package/dist/tools.d.ts +14 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +33 -0
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +60 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/components/LoginModal.d.ts.map +1 -0
- package/dist/{react → ui/components}/LoginModal.js +11 -8
- package/dist/ui/components/LoginModal.js.map +1 -0
- package/dist/ui/components/SettingsView.d.ts +11 -0
- package/dist/ui/components/SettingsView.d.ts.map +1 -0
- package/dist/{react → ui/components}/SettingsView.js +11 -9
- package/dist/ui/components/SettingsView.js.map +1 -0
- package/dist/ui/components/T2VAssistantModal.d.ts +31 -0
- package/dist/ui/components/T2VAssistantModal.d.ts.map +1 -0
- package/dist/ui/components/T2VAssistantModal.js +151 -0
- package/dist/ui/components/T2VAssistantModal.js.map +1 -0
- package/dist/ui/components/T2VAssistantProvider.d.ts +42 -0
- package/dist/ui/components/T2VAssistantProvider.d.ts.map +1 -0
- package/dist/ui/components/T2VAssistantProvider.js +66 -0
- package/dist/ui/components/T2VAssistantProvider.js.map +1 -0
- package/dist/ui/components/T2VChatHeader.d.ts +16 -0
- package/dist/ui/components/T2VChatHeader.d.ts.map +1 -0
- package/dist/ui/components/T2VChatHeader.js +112 -0
- package/dist/ui/components/T2VChatHeader.js.map +1 -0
- package/dist/ui/components/T2VComposer.d.ts +11 -0
- package/dist/ui/components/T2VComposer.d.ts.map +1 -0
- package/dist/ui/components/T2VComposer.js +124 -0
- package/dist/ui/components/T2VComposer.js.map +1 -0
- package/dist/ui/components/T2VDictationAdapter.d.ts +18 -0
- package/dist/ui/components/T2VDictationAdapter.d.ts.map +1 -0
- package/dist/ui/components/T2VDictationAdapter.js +126 -0
- package/dist/ui/components/T2VDictationAdapter.js.map +1 -0
- package/dist/ui/components/T2VLoginGate.d.ts +23 -0
- package/dist/ui/components/T2VLoginGate.d.ts.map +1 -0
- package/dist/ui/components/T2VLoginGate.js +11 -0
- package/dist/ui/components/T2VLoginGate.js.map +1 -0
- package/dist/ui/components/T2VThread.d.ts +25 -0
- package/dist/ui/components/T2VThread.d.ts.map +1 -0
- package/dist/ui/components/T2VThread.js +66 -0
- package/dist/ui/components/T2VThread.js.map +1 -0
- package/dist/ui/components/T2VToolFallback.d.ts +11 -0
- package/dist/ui/components/T2VToolFallback.d.ts.map +1 -0
- package/dist/ui/components/T2VToolFallback.js +209 -0
- package/dist/ui/components/T2VToolFallback.js.map +1 -0
- package/dist/ui/index.d.ts +38 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +36 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/runtime/convertMessage.d.ts +17 -0
- package/dist/ui/runtime/convertMessage.d.ts.map +1 -0
- package/dist/ui/runtime/convertMessage.js +77 -0
- package/dist/ui/runtime/convertMessage.js.map +1 -0
- package/dist/ui/runtime/useT2VRuntime.d.ts +42 -0
- package/dist/ui/runtime/useT2VRuntime.d.ts.map +1 -0
- package/dist/ui/runtime/useT2VRuntime.js +62 -0
- package/dist/ui/runtime/useT2VRuntime.js.map +1 -0
- package/dist/ui/themes/tailwind-preset.d.ts +43 -0
- package/dist/ui/themes/tailwind-preset.d.ts.map +1 -0
- package/dist/ui/themes/tailwind-preset.js +43 -0
- package/dist/ui/themes/tailwind-preset.js.map +1 -0
- package/package.json +18 -2
- package/dist/react/ChatInput.d.ts +0 -14
- package/dist/react/ChatInput.d.ts.map +0 -1
- package/dist/react/ChatInput.js +0 -165
- package/dist/react/ChatInput.js.map +0 -1
- package/dist/react/ChatMessage.d.ts +0 -10
- package/dist/react/ChatMessage.d.ts.map +0 -1
- package/dist/react/ChatMessage.js +0 -53
- package/dist/react/ChatMessage.js.map +0 -1
- package/dist/react/ChatPanel.d.ts +0 -17
- package/dist/react/ChatPanel.d.ts.map +0 -1
- package/dist/react/ChatPanel.js +0 -401
- package/dist/react/ChatPanel.js.map +0 -1
- package/dist/react/LoginModal.d.ts.map +0 -1
- package/dist/react/LoginModal.js.map +0 -1
- package/dist/react/SettingsView.d.ts +0 -9
- package/dist/react/SettingsView.d.ts.map +0 -1
- package/dist/react/SettingsView.js.map +0 -1
- /package/dist/{react → ui/components}/LoginModal.d.ts +0 -0
package/dist/types.d.ts
CHANGED
|
@@ -88,6 +88,19 @@ export type ChatEvent = {
|
|
|
88
88
|
toolName: string;
|
|
89
89
|
toolCallId: string;
|
|
90
90
|
arguments: Record<string, unknown>;
|
|
91
|
+
} | {
|
|
92
|
+
type: 'approval_required';
|
|
93
|
+
toolName: string;
|
|
94
|
+
toolCallId: string;
|
|
95
|
+
arguments: Record<string, unknown>;
|
|
96
|
+
description: string;
|
|
97
|
+
} | {
|
|
98
|
+
type: 'approval_result';
|
|
99
|
+
toolName: string;
|
|
100
|
+
decision: HumanDecision['action'];
|
|
101
|
+
} | {
|
|
102
|
+
type: 'todos';
|
|
103
|
+
content: string;
|
|
91
104
|
} | {
|
|
92
105
|
type: 'done';
|
|
93
106
|
threadId: string;
|
|
@@ -98,10 +111,48 @@ export type ChatEvent = {
|
|
|
98
111
|
type: 'status';
|
|
99
112
|
status: string;
|
|
100
113
|
message: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Permission result from a ToolPermissionCallback.
|
|
117
|
+
* Mirrors Claude Agent SDK's PermissionResultAllow / PermissionResultDeny.
|
|
118
|
+
*/
|
|
119
|
+
export type PermissionResult = {
|
|
120
|
+
type: 'allow';
|
|
121
|
+
updatedInput?: Record<string, unknown>;
|
|
101
122
|
} | {
|
|
102
|
-
type: '
|
|
103
|
-
|
|
123
|
+
type: 'deny';
|
|
124
|
+
message?: string;
|
|
104
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* Async callback for programmatic per-call tool permission decisions.
|
|
128
|
+
* Equivalent to Claude Agent SDK's `can_use_tool` callback.
|
|
129
|
+
*/
|
|
130
|
+
export type ToolPermissionCallback = (toolName: string, args: Record<string, unknown>) => Promise<PermissionResult>;
|
|
131
|
+
/**
|
|
132
|
+
* Internal result from T2VTools.checkPermission().
|
|
133
|
+
*/
|
|
134
|
+
export type PermissionCheckResult = {
|
|
135
|
+
action: 'allow';
|
|
136
|
+
updatedInput?: Record<string, unknown>;
|
|
137
|
+
} | {
|
|
138
|
+
action: 'require_approval';
|
|
139
|
+
} | {
|
|
140
|
+
action: 'deny';
|
|
141
|
+
message?: string;
|
|
142
|
+
};
|
|
143
|
+
export interface PendingApproval {
|
|
144
|
+
toolCallId: string;
|
|
145
|
+
toolName: string;
|
|
146
|
+
arguments: Record<string, unknown>;
|
|
147
|
+
description: string;
|
|
148
|
+
}
|
|
149
|
+
export interface HumanDecision {
|
|
150
|
+
action: 'once' | 'always' | 'deny';
|
|
151
|
+
/** Optional corrective feedback (typically for 'deny'). */
|
|
152
|
+
feedback?: string;
|
|
153
|
+
/** Optional updated arguments (for 'once' or 'always'). */
|
|
154
|
+
updatedInput?: Record<string, unknown>;
|
|
155
|
+
}
|
|
105
156
|
export interface ClientToolParameter {
|
|
106
157
|
type: string;
|
|
107
158
|
description: string;
|
|
@@ -117,6 +168,13 @@ export interface ClientToolSchema {
|
|
|
117
168
|
additionalProperties?: boolean;
|
|
118
169
|
};
|
|
119
170
|
return_direct?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Permission check before tool execution.
|
|
173
|
+
* - `true`: always requires human approval (shows approval card)
|
|
174
|
+
* - `false` / omitted: auto-execute
|
|
175
|
+
* - callback: programmatic per-call decision (like Claude Agent SDK's can_use_tool)
|
|
176
|
+
*/
|
|
177
|
+
permission?: boolean | ToolPermissionCallback;
|
|
120
178
|
}
|
|
121
179
|
export type ToolHandler = (args: Record<string, unknown>) => Promise<string>;
|
|
122
180
|
export interface ClientTool extends ClientToolSchema {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginModal.d.ts","sourceRoot":"","sources":["../../../src/ui/components/LoginModal.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EACzB,SAA2C,EAC3C,SAAc,EACd,SAAS,GACV,EAAE,eAAe,kDA2OjB"}
|
|
@@ -3,9 +3,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
* LoginModal — pre-built login/signup form.
|
|
4
4
|
*/
|
|
5
5
|
import React, { useCallback, useState } from 'react';
|
|
6
|
-
import { useT2VAuth } from '
|
|
7
|
-
import { T2V_ALPHA, T2V_COLORS, T2V_FONTS, T2VLogo, injectT2VFonts, injectT2VStyles } from '
|
|
8
|
-
export function LoginModal({ signupUrl = 'https://talk2view.com/
|
|
6
|
+
import { useT2VAuth } from '../../react/useT2VAuth';
|
|
7
|
+
import { T2V_ALPHA, T2V_COLORS, T2V_FONTS, T2VLogo, injectT2VFonts, injectT2VStyles } from '../../react/theme';
|
|
8
|
+
export function LoginModal({ signupUrl = 'https://talk2view.com/sign-up', className = '', onSuccess, }) {
|
|
9
9
|
const { login, isLoading, error, clearError, isAuthenticated } = useT2VAuth();
|
|
10
10
|
const [email, setEmail] = useState('');
|
|
11
11
|
const [password, setPassword] = useState('');
|
|
@@ -51,8 +51,9 @@ export function LoginModal({ signupUrl = 'https://talk2view.com/auth?signup', cl
|
|
|
51
51
|
justifyContent: 'center',
|
|
52
52
|
flex: 1,
|
|
53
53
|
minHeight: 0,
|
|
54
|
-
padding: '40px
|
|
55
|
-
|
|
54
|
+
padding: '40px 22px',
|
|
55
|
+
width: '100%',
|
|
56
|
+
maxWidth: '340px',
|
|
56
57
|
margin: '0 auto',
|
|
57
58
|
fontFamily: T2V_FONTS.body,
|
|
58
59
|
}, children: [_jsx(T2VLogo, { size: 64 }), _jsx("h2", { style: {
|
|
@@ -62,7 +63,7 @@ export function LoginModal({ signupUrl = 'https://talk2view.com/auth?signup', cl
|
|
|
62
63
|
marginTop: '16px',
|
|
63
64
|
marginBottom: '4px',
|
|
64
65
|
color: T2V_COLORS.dark,
|
|
65
|
-
}, children: "Welcome
|
|
66
|
+
}, children: "Welcome" }), _jsx("p", { style: {
|
|
66
67
|
fontSize: '14px',
|
|
67
68
|
color: T2V_COLORS.midGray,
|
|
68
69
|
fontFamily: T2V_FONTS.heading,
|
|
@@ -101,7 +102,7 @@ export function LoginModal({ signupUrl = 'https://talk2view.com/auth?signup', cl
|
|
|
101
102
|
: btnHover
|
|
102
103
|
? T2V_COLORS.stormyTeal
|
|
103
104
|
: T2V_COLORS.accent,
|
|
104
|
-
color: isLoading ? T2V_COLORS.midGray :
|
|
105
|
+
color: isLoading ? T2V_COLORS.midGray : '#ffffff',
|
|
105
106
|
fontSize: '15px',
|
|
106
107
|
fontWeight: 600,
|
|
107
108
|
fontFamily: T2V_FONTS.heading,
|
|
@@ -125,7 +126,9 @@ export function LoginModal({ signupUrl = 'https://talk2view.com/auth?signup', cl
|
|
|
125
126
|
fontSize: '13px',
|
|
126
127
|
fontFamily: T2V_FONTS.heading,
|
|
127
128
|
color: T2V_COLORS.midGray,
|
|
128
|
-
}, children: ["Don't have an account?", ' ', _jsx("a", { href: signupUrl,
|
|
129
|
+
}, children: ["Don't have an account?", ' ', _jsx("a", { href: signupUrl, ...(typeof window !== 'undefined' && new URL(signupUrl, window.location.origin).origin !== window.location.origin
|
|
130
|
+
? { target: '_blank', rel: 'noopener noreferrer' }
|
|
131
|
+
: {}), onMouseEnter: () => setLinkHover(true), onMouseLeave: () => setLinkHover(false), style: {
|
|
129
132
|
color: linkHover ? T2V_COLORS.stormyTeal : T2V_COLORS.turquoise,
|
|
130
133
|
fontWeight: 500,
|
|
131
134
|
textDecoration: linkHover ? 'underline' : 'none',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginModal.js","sourceRoot":"","sources":["../../../src/ui/components/LoginModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SettingsView — full-panel settings page for user preferences.
|
|
3
|
+
*/
|
|
4
|
+
export interface SettingsViewProps {
|
|
5
|
+
onBack: () => void;
|
|
6
|
+
onModelChange?: (model: string) => void;
|
|
7
|
+
/** Hide the built-in header (use when embedding in a container with its own header). */
|
|
8
|
+
hideHeader?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function SettingsView({ onBack, onModelChange, hideHeader }: SettingsViewProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=SettingsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsView.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SettingsView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wFAAwF;IACxF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAuDD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,iBAAiB,2CA0PpF"}
|
|
@@ -3,9 +3,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
* SettingsView — full-panel settings page for user preferences.
|
|
4
4
|
*/
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
|
-
import { T2V_COLORS, T2V_FONTS } from '
|
|
7
|
-
import { useT2V } from '
|
|
8
|
-
import { useUserPreferences } from '
|
|
6
|
+
import { T2V_COLORS, T2V_FONTS } from '../../react/theme';
|
|
7
|
+
import { useT2V } from '../../react/T2VProvider';
|
|
8
|
+
import { useUserPreferences } from '../../react/useUserPreferences';
|
|
9
|
+
import { usePartnerConfig } from '../../react/usePartnerConfig';
|
|
9
10
|
const STT_LANGUAGES = [
|
|
10
11
|
{ code: '', label: 'Auto-detect' },
|
|
11
12
|
{ code: 'en', label: 'English' },
|
|
@@ -54,9 +55,10 @@ const sectionStyle = {
|
|
|
54
55
|
padding: '0 16px',
|
|
55
56
|
marginBottom: '20px',
|
|
56
57
|
};
|
|
57
|
-
export function SettingsView({ onBack, onModelChange }) {
|
|
58
|
+
export function SettingsView({ onBack, onModelChange, hideHeader }) {
|
|
58
59
|
const { t2v } = useT2V();
|
|
59
60
|
const { preferences, updatePreferences } = useUserPreferences();
|
|
61
|
+
const { config: partnerConfig } = usePartnerConfig();
|
|
60
62
|
const [models, setModels] = useState([]);
|
|
61
63
|
const [modelsLoading, setModelsLoading] = useState(true);
|
|
62
64
|
const [sttModels, setSttModels] = useState([]);
|
|
@@ -103,11 +105,11 @@ export function SettingsView({ onBack, onModelChange }) {
|
|
|
103
105
|
fetchSttModels();
|
|
104
106
|
return () => { cancelled = true; };
|
|
105
107
|
}, [t2v]);
|
|
106
|
-
const currentModel = preferences.model || t2v.config.model || '';
|
|
107
|
-
const currentSttModel = preferences.sttModel || '';
|
|
108
|
+
const currentModel = preferences.model || t2v.config.model || partnerConfig?.default_llm_model || '';
|
|
109
|
+
const currentSttModel = preferences.sttModel || partnerConfig?.default_stt_model || '';
|
|
108
110
|
const currentSttLanguage = preferences.sttLanguage ?? '';
|
|
109
111
|
const currentFontSize = preferences.fontSize || 'medium';
|
|
110
|
-
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [_jsxs("div", { style: {
|
|
112
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [!hideHeader && (_jsxs("div", { style: {
|
|
111
113
|
display: 'flex',
|
|
112
114
|
alignItems: 'center',
|
|
113
115
|
gap: '12px',
|
|
@@ -131,7 +133,7 @@ export function SettingsView({ onBack, onModelChange }) {
|
|
|
131
133
|
fontSize: '15px',
|
|
132
134
|
fontFamily: T2V_FONTS.heading,
|
|
133
135
|
fontWeight: 600,
|
|
134
|
-
}, children: "Settings" })] }), _jsxs("div", { style: { flex: 1, overflowY: 'auto', paddingTop: '20px' }, children: [_jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Language Model" }), modelsLoading ? (_jsxs("div", { style: {
|
|
136
|
+
}, children: "Settings" })] })), _jsxs("div", { style: { flex: 1, overflowY: 'auto', paddingTop: '20px' }, children: [_jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Language Model" }), modelsLoading ? (_jsxs("div", { style: {
|
|
135
137
|
display: 'flex',
|
|
136
138
|
alignItems: 'center',
|
|
137
139
|
gap: '8px',
|
|
@@ -150,7 +152,7 @@ export function SettingsView({ onBack, onModelChange }) {
|
|
|
150
152
|
} }), "Loading models..."] })) : (_jsxs("select", { value: currentModel, onChange: (e) => {
|
|
151
153
|
updatePreferences({ model: e.target.value });
|
|
152
154
|
onModelChange?.(e.target.value);
|
|
153
|
-
}, style: selectStyle, children: [!currentModel && _jsx("option", { value: "", children: "Select a model" }), models.map((m) => (_jsx("option", { value: m.id, children: m.id }, m.id)))] }))] }), _jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Speech-to-Text Model" }), sttModelsLoading ? (_jsxs("div", { style: {
|
|
155
|
+
}, style: selectStyle, children: [!currentModel && _jsx("option", { value: "", children: "Select a model" }), models.map((m) => (_jsx("option", { value: m.id, children: m.id.replace(/^openrouter\//, '') }, m.id)))] }))] }), _jsxs("div", { style: sectionStyle, children: [_jsx("div", { style: labelStyle, children: "Speech-to-Text Model" }), sttModelsLoading ? (_jsxs("div", { style: {
|
|
154
156
|
display: 'flex',
|
|
155
157
|
alignItems: 'center',
|
|
156
158
|
gap: '8px',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsView.js","sourceRoot":"","sources":["../../../src/ui/components/SettingsView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T2VAssistantModal — Floating chat widget using assistant-ui's AssistantModal.
|
|
3
|
+
*
|
|
4
|
+
* Renders a fixed-position trigger button (bottom-right by default) with the
|
|
5
|
+
* Talk2View logo that opens a chat popover. Includes a header with a
|
|
6
|
+
* settings/sign-out dropdown.
|
|
7
|
+
*
|
|
8
|
+
* All styling is self-contained — no CSS overrides needed in the consumer app.
|
|
9
|
+
*
|
|
10
|
+
* Must be used inside T2VAssistantProvider.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <T2VAssistantProvider partnerKey="pk_live_abc">
|
|
15
|
+
* <MyExistingApp />
|
|
16
|
+
* <T2VAssistantModal />
|
|
17
|
+
* </T2VAssistantProvider>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import React from 'react';
|
|
21
|
+
export interface T2VAssistantModalProps {
|
|
22
|
+
/** Welcome message shown before the first user message. */
|
|
23
|
+
welcomeMessage?: string;
|
|
24
|
+
/** Clickable suggestion prompts shown below the welcome message. */
|
|
25
|
+
suggestions?: {
|
|
26
|
+
prompt: string;
|
|
27
|
+
text?: React.ReactNode;
|
|
28
|
+
}[];
|
|
29
|
+
}
|
|
30
|
+
export declare function T2VAssistantModal({ welcomeMessage, suggestions }: T2VAssistantModalProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=T2VAssistantModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"T2VAssistantModal.d.ts","sourceRoot":"","sources":["../../../src/ui/components/T2VAssistantModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgGxC,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,EAAE,CAAC;CAC5D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,sBAAsB,2CAkGxF"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* T2VAssistantModal — Floating chat widget using assistant-ui's AssistantModal.
|
|
4
|
+
*
|
|
5
|
+
* Renders a fixed-position trigger button (bottom-right by default) with the
|
|
6
|
+
* Talk2View logo that opens a chat popover. Includes a header with a
|
|
7
|
+
* settings/sign-out dropdown.
|
|
8
|
+
*
|
|
9
|
+
* All styling is self-contained — no CSS overrides needed in the consumer app.
|
|
10
|
+
*
|
|
11
|
+
* Must be used inside T2VAssistantProvider.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <T2VAssistantProvider partnerKey="pk_live_abc">
|
|
16
|
+
* <MyExistingApp />
|
|
17
|
+
* <T2VAssistantModal />
|
|
18
|
+
* </T2VAssistantProvider>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import React, { useState } from 'react';
|
|
22
|
+
import { AssistantModal, Thread } from '@assistant-ui/react-ui';
|
|
23
|
+
import { MarkdownTextPrimitive } from '@assistant-ui/react-markdown';
|
|
24
|
+
import remarkGfm from 'remark-gfm';
|
|
25
|
+
import { T2VToolFallback } from './T2VToolFallback';
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
const MarkdownText = () => _jsx(MarkdownTextPrimitive, { remarkPlugins: [remarkGfm], smooth: true });
|
|
28
|
+
import { T2VComposer } from './T2VComposer';
|
|
29
|
+
import { T2V_LOGOS } from '../../react/theme';
|
|
30
|
+
import { T2VChatHeader } from './T2VChatHeader';
|
|
31
|
+
import { SettingsView } from './SettingsView';
|
|
32
|
+
import { LoginModal } from './LoginModal';
|
|
33
|
+
import { useT2VAuth } from '../../react/useT2VAuth';
|
|
34
|
+
import { useT2V } from '../../react/T2VProvider';
|
|
35
|
+
import { useUserPreferences } from '../../react/useUserPreferences';
|
|
36
|
+
import { useT2VChatActions } from './T2VAssistantProvider';
|
|
37
|
+
const FONT_SCALE = {
|
|
38
|
+
small: 0.875,
|
|
39
|
+
medium: 1,
|
|
40
|
+
large: 1.125,
|
|
41
|
+
};
|
|
42
|
+
/* ── Inject modal-specific CSS (idempotent) ─────────────────── */
|
|
43
|
+
let modalStylesInjected = false;
|
|
44
|
+
function injectModalStyles() {
|
|
45
|
+
if (modalStylesInjected)
|
|
46
|
+
return;
|
|
47
|
+
if (typeof document === 'undefined')
|
|
48
|
+
return;
|
|
49
|
+
const id = 't2v-modal-styles';
|
|
50
|
+
if (document.getElementById(id)) {
|
|
51
|
+
modalStylesInjected = true;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const style = document.createElement('style');
|
|
55
|
+
style.id = id;
|
|
56
|
+
style.textContent = `
|
|
57
|
+
/* T2V modal button — responsive, branded */
|
|
58
|
+
.aui-modal-anchor {
|
|
59
|
+
width: clamp(3.5rem, 5vw, 5rem);
|
|
60
|
+
height: clamp(3.5rem, 5vw, 5rem);
|
|
61
|
+
}
|
|
62
|
+
.aui-modal-button[data-state="closed"] {
|
|
63
|
+
background: transparent !important;
|
|
64
|
+
box-shadow: none !important;
|
|
65
|
+
}
|
|
66
|
+
.aui-modal-button[data-state="open"] {
|
|
67
|
+
background: hsl(var(--aui-primary, 0 0% 9.4%)) !important;
|
|
68
|
+
color: hsl(var(--aui-primary-foreground, 0 0% 98%));
|
|
69
|
+
}
|
|
70
|
+
/* Logo/chevron toggle */
|
|
71
|
+
.aui-modal-button[data-state="closed"] .t2v-modal-logo {
|
|
72
|
+
transform: scale(1) rotate(0deg);
|
|
73
|
+
}
|
|
74
|
+
.aui-modal-button[data-state="open"] .t2v-modal-logo {
|
|
75
|
+
transform: scale(0) rotate(90deg);
|
|
76
|
+
}
|
|
77
|
+
.aui-modal-button[data-state="closed"] .t2v-modal-chevron {
|
|
78
|
+
transform: scale(0) rotate(-90deg);
|
|
79
|
+
}
|
|
80
|
+
.aui-modal-button[data-state="open"] .t2v-modal-chevron {
|
|
81
|
+
transform: scale(1) rotate(0deg);
|
|
82
|
+
}
|
|
83
|
+
/* Chat popover size */
|
|
84
|
+
.aui-modal-content {
|
|
85
|
+
height: 70vh;
|
|
86
|
+
width: 400px;
|
|
87
|
+
}
|
|
88
|
+
/* Welcome suggestions — stacked vertically, don't affect logo centering */
|
|
89
|
+
.aui-thread-welcome-suggestions {
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
align-items: center;
|
|
92
|
+
gap: 0.5rem;
|
|
93
|
+
}
|
|
94
|
+
/* Streaming indicator — only shows while waiting for first text, not during streaming */
|
|
95
|
+
.aui-assistant-message-content > [data-status="running"]:empty::after {
|
|
96
|
+
animation: aui-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
97
|
+
content: '\\25CF';
|
|
98
|
+
margin-left: 0.25rem;
|
|
99
|
+
}
|
|
100
|
+
/* Prevent host app focus styles from leaking into the chat UI */
|
|
101
|
+
.aui-root *:focus-visible,
|
|
102
|
+
.aui-modal-content *:focus-visible {
|
|
103
|
+
outline: none !important;
|
|
104
|
+
}
|
|
105
|
+
`;
|
|
106
|
+
document.head.appendChild(style);
|
|
107
|
+
modalStylesInjected = true;
|
|
108
|
+
}
|
|
109
|
+
export function T2VAssistantModal({ welcomeMessage, suggestions }) {
|
|
110
|
+
const [view, setView] = useState('chat');
|
|
111
|
+
const { isAuthenticated } = useT2V();
|
|
112
|
+
const { logout } = useT2VAuth();
|
|
113
|
+
const { clearMessages } = useT2VChatActions();
|
|
114
|
+
const { preferences } = useUserPreferences();
|
|
115
|
+
const fontSize = FONT_SCALE[preferences.fontSize || 'medium'] ?? 1;
|
|
116
|
+
// Inject modal CSS on mount (idempotent)
|
|
117
|
+
React.useEffect(() => {
|
|
118
|
+
injectModalStyles();
|
|
119
|
+
}, []);
|
|
120
|
+
// Reset to chat view when auth state changes (e.g. after logout)
|
|
121
|
+
React.useEffect(() => {
|
|
122
|
+
if (!isAuthenticated)
|
|
123
|
+
setView('chat');
|
|
124
|
+
}, [isAuthenticated]);
|
|
125
|
+
return (_jsxs(AssistantModal.Root, { children: [_jsxs(AssistantModal.Trigger, { children: [_jsx("img", { src: T2V_LOGOS.icon, alt: "Talk2View", className: "t2v-modal-logo", style: {
|
|
126
|
+
position: 'absolute',
|
|
127
|
+
width: '85%',
|
|
128
|
+
height: '85%',
|
|
129
|
+
objectFit: 'contain',
|
|
130
|
+
transition: 'all 150ms ease',
|
|
131
|
+
} }), _jsx("svg", { className: "t2v-modal-chevron", xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", style: {
|
|
132
|
+
position: 'absolute',
|
|
133
|
+
width: '1.5rem',
|
|
134
|
+
height: '1.5rem',
|
|
135
|
+
transition: 'all 150ms ease',
|
|
136
|
+
}, children: _jsx("path", { d: "m6 9 6 6 6-6" }) })] }), _jsx(AssistantModal.Content, { children: isAuthenticated ? (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', height: '100%', fontSize: `${fontSize}rem` }, children: [_jsx(T2VChatHeader, { view: view, onSettingsClick: () => setView('settings'), onBackClick: () => setView('chat'), onNewChat: clearMessages, onSignOut: () => { logout().catch(console.error); } }), view === 'settings' ? (_jsx("div", { style: { flex: 1, overflow: 'auto' }, children: _jsx(SettingsView, { onBack: () => setView('chat'), hideHeader: true }) })) : (_jsx(Thread, { welcome: {
|
|
137
|
+
message: welcomeMessage ?? 'How can I help you today?',
|
|
138
|
+
suggestions,
|
|
139
|
+
}, assistantMessage: {
|
|
140
|
+
components: {
|
|
141
|
+
Text: MarkdownText,
|
|
142
|
+
ToolFallback: T2VToolFallback,
|
|
143
|
+
},
|
|
144
|
+
}, assistantAvatar: {
|
|
145
|
+
src: T2V_LOGOS.icon,
|
|
146
|
+
fallback: 'T2V',
|
|
147
|
+
}, components: {
|
|
148
|
+
Composer: T2VComposer,
|
|
149
|
+
} }))] })) : (_jsx("div", { style: { display: 'flex', flexDirection: 'column', height: '100%', justifyContent: 'center' }, children: _jsx(LoginModal, {}) })) })] }));
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=T2VAssistantModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"T2VAssistantModal.js","sourceRoot":"","sources":["../../../src/ui/components/T2VAssistantModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T2VAssistantProvider — Combined provider for Talk2View + assistant-ui.
|
|
3
|
+
*
|
|
4
|
+
* Composes:
|
|
5
|
+
* T2VProvider (auth, client) → tool registration → runtime bridge → AssistantRuntimeProvider
|
|
6
|
+
*
|
|
7
|
+
* Wrap your app (or the chat section) with this provider, then use
|
|
8
|
+
* T2VThread, T2VAssistantModal, or your own assistant-ui components as children.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <T2VAssistantProvider partnerKey="pk_live_abc" tools={myTools}>
|
|
13
|
+
* <MyExistingApp />
|
|
14
|
+
* <T2VThread />
|
|
15
|
+
* </T2VAssistantProvider>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import '@assistant-ui/react-ui/styles/index.css';
|
|
20
|
+
import '@assistant-ui/react-ui/styles/modal.css';
|
|
21
|
+
import '@assistant-ui/react-ui/styles/markdown.css';
|
|
22
|
+
import '@assistant-ui/react-ui/styles/themes/default.css';
|
|
23
|
+
/** Hook to access chat actions (e.g. clearMessages for "New chat"). */
|
|
24
|
+
export declare function useT2VChatActions(): {
|
|
25
|
+
clearMessages: () => void;
|
|
26
|
+
};
|
|
27
|
+
import type { ClientTool, ClientToolSchema } from '../../types';
|
|
28
|
+
export interface T2VAssistantProviderProps {
|
|
29
|
+
/** Talk2View partner API key. */
|
|
30
|
+
partnerKey: string;
|
|
31
|
+
/** Talk2View API base URL. Defaults to production. */
|
|
32
|
+
baseUrl?: string;
|
|
33
|
+
/** Default LLM model ID. */
|
|
34
|
+
model?: string;
|
|
35
|
+
/** System prompt passed to the Talk2View agent. */
|
|
36
|
+
systemPrompt?: string;
|
|
37
|
+
/** Client-side tools to register with the Talk2View agent. */
|
|
38
|
+
tools?: (ClientToolSchema | ClientTool)[];
|
|
39
|
+
children: React.ReactNode;
|
|
40
|
+
}
|
|
41
|
+
export declare function T2VAssistantProvider({ partnerKey, baseUrl, model, systemPrompt, tools, children, }: T2VAssistantProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
//# sourceMappingURL=T2VAssistantProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"T2VAssistantProvider.d.ts","sourceRoot":"","sources":["../../../src/ui/components/T2VAssistantProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,yCAAyC,CAAC;AACjD,OAAO,yCAAyC,CAAC;AACjD,OAAO,4CAA4C,CAAC;AACpD,OAAO,kDAAkD,CAAC;AAO1D,uEAAuE;AACvE,wBAAgB,iBAAiB;mBAL4B,MAAM,IAAI;EAOtE;AAOD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AA+CD,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,EACV,OAAO,EACP,KAAK,EACL,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE,yBAAyB,2CAQ3B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* T2VAssistantProvider — Combined provider for Talk2View + assistant-ui.
|
|
4
|
+
*
|
|
5
|
+
* Composes:
|
|
6
|
+
* T2VProvider (auth, client) → tool registration → runtime bridge → AssistantRuntimeProvider
|
|
7
|
+
*
|
|
8
|
+
* Wrap your app (or the chat section) with this provider, then use
|
|
9
|
+
* T2VThread, T2VAssistantModal, or your own assistant-ui components as children.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <T2VAssistantProvider partnerKey="pk_live_abc" tools={myTools}>
|
|
14
|
+
* <MyExistingApp />
|
|
15
|
+
* <T2VThread />
|
|
16
|
+
* </T2VAssistantProvider>
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import React, { createContext, useContext } from 'react';
|
|
20
|
+
import '@assistant-ui/react-ui/styles/index.css';
|
|
21
|
+
import '@assistant-ui/react-ui/styles/modal.css';
|
|
22
|
+
import '@assistant-ui/react-ui/styles/markdown.css';
|
|
23
|
+
import '@assistant-ui/react-ui/styles/themes/default.css';
|
|
24
|
+
import { AssistantRuntimeProvider } from '@assistant-ui/react';
|
|
25
|
+
const T2VChatActionsContext = createContext({
|
|
26
|
+
clearMessages: () => { },
|
|
27
|
+
});
|
|
28
|
+
/** Hook to access chat actions (e.g. clearMessages for "New chat"). */
|
|
29
|
+
export function useT2VChatActions() {
|
|
30
|
+
return useContext(T2VChatActionsContext);
|
|
31
|
+
}
|
|
32
|
+
import { T2VProvider, useT2V } from '../../react/T2VProvider';
|
|
33
|
+
import { useT2VTools } from '../../react/useT2VTools';
|
|
34
|
+
import { useT2VRuntime } from '../runtime/useT2VRuntime';
|
|
35
|
+
import { useUserPreferences } from '../../react/useUserPreferences';
|
|
36
|
+
import { usePartnerConfig } from '../../react/usePartnerConfig';
|
|
37
|
+
import { injectT2VFonts, injectT2VStyles } from '../../react/theme';
|
|
38
|
+
/**
|
|
39
|
+
* Inner provider that lives inside T2VProvider context.
|
|
40
|
+
* Creates the runtime bridge and registers tools.
|
|
41
|
+
*/
|
|
42
|
+
function InnerProvider({ systemPrompt, tools, children, }) {
|
|
43
|
+
const { isAuthenticated } = useT2V();
|
|
44
|
+
const { preferences } = useUserPreferences();
|
|
45
|
+
const { config: partnerConfig } = usePartnerConfig();
|
|
46
|
+
// Resolve the effective model: user preference > partner default > provider prop
|
|
47
|
+
const effectiveModel = preferences.model || partnerConfig?.default_llm_model || undefined;
|
|
48
|
+
const { runtime, clearMessages } = useT2VRuntime({ systemPrompt, model: effectiveModel });
|
|
49
|
+
const { registerTools, isRegistered } = useT2VTools();
|
|
50
|
+
// Inject T2V fonts and CSS animations (idempotent)
|
|
51
|
+
React.useEffect(() => {
|
|
52
|
+
injectT2VFonts();
|
|
53
|
+
injectT2VStyles();
|
|
54
|
+
}, []);
|
|
55
|
+
// Register tools when authenticated and tools are provided
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
if (tools && tools.length > 0 && !isRegistered && isAuthenticated) {
|
|
58
|
+
registerTools(tools).catch(console.error);
|
|
59
|
+
}
|
|
60
|
+
}, [tools, isRegistered, isAuthenticated, registerTools]);
|
|
61
|
+
return (_jsx(T2VChatActionsContext.Provider, { value: { clearMessages }, children: _jsx(AssistantRuntimeProvider, { runtime: runtime, children: children }) }));
|
|
62
|
+
}
|
|
63
|
+
export function T2VAssistantProvider({ partnerKey, baseUrl, model, systemPrompt, tools, children, }) {
|
|
64
|
+
return (_jsx(T2VProvider, { partnerKey: partnerKey, baseUrl: baseUrl, model: model, children: _jsx(InnerProvider, { systemPrompt: systemPrompt, tools: tools, children: children }) }));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=T2VAssistantProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"T2VAssistantProvider.js","sourceRoot":"","sources":["../../../src/ui/components/T2VAssistantProvider.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,yCAAyC,CAAC;AACjD,OAAO,yCAAyC,CAAC;AACjD,OAAO,4CAA4C,CAAC;AACpD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,qBAAqB,GAAG,aAAa,CAAgC;IACzE,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC;AACD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiBpE;;;GAGG;AACH,SAAS,aAAa,CAAC,EACrB,YAAY,EACZ,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAErD,iFAAiF;IACjF,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,aAAa,EAAE,iBAAiB,IAAI,SAAS,CAAC;IAE1F,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAC1F,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;IAEtD,mDAAmD;IACnD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,2DAA2D;IAC3D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC;YAClE,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1D,OAAO,CACL,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,YACxD,KAAC,wBAAwB,IAAC,OAAO,EAAE,OAAO,YACvC,QAAQ,GACgB,GACM,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,UAAU,EACV,OAAO,EACP,KAAK,EACL,YAAY,EACZ,KAAK,EACL,QAAQ,GACkB;IAC1B,OAAO,CACL,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,YACjE,KAAC,aAAa,IAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,YACpD,QAAQ,GACK,GACJ,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* T2VChatHeader — Shared header bar for T2VThread and T2VAssistantModal.
|
|
3
|
+
*
|
|
4
|
+
* Shows the Talk2View logo + title, with a three-dot dropdown menu
|
|
5
|
+
* containing Settings and Sign Out options. In settings view, shows
|
|
6
|
+
* a back button instead.
|
|
7
|
+
*/
|
|
8
|
+
export interface T2VChatHeaderProps {
|
|
9
|
+
view: 'chat' | 'settings';
|
|
10
|
+
onSettingsClick: () => void;
|
|
11
|
+
onBackClick: () => void;
|
|
12
|
+
onNewChat: () => void;
|
|
13
|
+
onSignOut: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function T2VChatHeader({ view, onSettingsClick, onBackClick, onNewChat, onSignOut }: T2VChatHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=T2VChatHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"T2VChatHeader.d.ts","sourceRoot":"","sources":["../../../src/ui/components/T2VChatHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,kBAAkB,2CAuH7G"}
|