@talk2view/sdk 0.3.2 → 0.5.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.
Files changed (164) hide show
  1. package/dist/client.d.ts +1 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +4 -4
  4. package/dist/client.js.map +1 -1
  5. package/dist/event-emitter.d.ts +7 -0
  6. package/dist/event-emitter.d.ts.map +1 -0
  7. package/dist/event-emitter.js +23 -0
  8. package/dist/event-emitter.js.map +1 -0
  9. package/dist/index.d.ts +78 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +312 -6
  12. package/dist/index.js.map +1 -1
  13. package/dist/react/T2VProvider.js +1 -1
  14. package/dist/react/T2VProvider.js.map +1 -1
  15. package/dist/react/index.d.ts +2 -1
  16. package/dist/react/index.d.ts.map +1 -1
  17. package/dist/react/useT2VChat.d.ts +6 -22
  18. package/dist/react/useT2VChat.d.ts.map +1 -1
  19. package/dist/react/useT2VChat.js +34 -218
  20. package/dist/react/useT2VChat.js.map +1 -1
  21. package/dist/sessions.d.ts.map +1 -1
  22. package/dist/sessions.js +3 -0
  23. package/dist/sessions.js.map +1 -1
  24. package/dist/tools.d.ts +5 -0
  25. package/dist/tools.d.ts.map +1 -1
  26. package/dist/tools.js +16 -2
  27. package/dist/tools.js.map +1 -1
  28. package/dist/types.d.ts +45 -0
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/ui/components/ApprovalCard.d.ts +10 -0
  31. package/dist/ui/components/ApprovalCard.d.ts.map +1 -0
  32. package/dist/ui/components/ApprovalCard.js +60 -0
  33. package/dist/ui/components/ApprovalCard.js.map +1 -0
  34. package/dist/ui/components/{T2VChatHeader.d.ts → ChatHeader.d.ts} +4 -4
  35. package/dist/ui/components/ChatHeader.d.ts.map +1 -0
  36. package/dist/ui/components/ChatHeader.js +126 -0
  37. package/dist/ui/components/ChatHeader.js.map +1 -0
  38. package/dist/ui/components/ChatPanel.d.ts +9 -0
  39. package/dist/ui/components/ChatPanel.d.ts.map +1 -0
  40. package/dist/ui/components/ChatPanel.js +37 -0
  41. package/dist/ui/components/ChatPanel.js.map +1 -0
  42. package/dist/ui/components/ChatWidget.d.ts +5 -0
  43. package/dist/ui/components/ChatWidget.d.ts.map +1 -0
  44. package/dist/ui/components/ChatWidget.js +27 -0
  45. package/dist/ui/components/ChatWidget.js.map +1 -0
  46. package/dist/ui/components/CodeBlock.d.ts +6 -0
  47. package/dist/ui/components/CodeBlock.d.ts.map +1 -0
  48. package/dist/ui/components/CodeBlock.js +79 -0
  49. package/dist/ui/components/CodeBlock.js.map +1 -0
  50. package/dist/ui/components/Composer.d.ts +14 -0
  51. package/dist/ui/components/Composer.d.ts.map +1 -0
  52. package/dist/ui/components/Composer.js +172 -0
  53. package/dist/ui/components/Composer.js.map +1 -0
  54. package/dist/ui/components/LoginForm.d.ts +5 -0
  55. package/dist/ui/components/LoginForm.d.ts.map +1 -0
  56. package/dist/ui/components/LoginForm.js +37 -0
  57. package/dist/ui/components/LoginForm.js.map +1 -0
  58. package/dist/ui/components/MarkdownRenderer.d.ts +5 -0
  59. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -0
  60. package/dist/ui/components/MarkdownRenderer.js +28 -0
  61. package/dist/ui/components/MarkdownRenderer.js.map +1 -0
  62. package/dist/ui/components/MessageActions.d.ts +6 -0
  63. package/dist/ui/components/MessageActions.d.ts.map +1 -0
  64. package/dist/ui/components/MessageActions.js +43 -0
  65. package/dist/ui/components/MessageActions.js.map +1 -0
  66. package/dist/ui/components/MessageBubble.d.ts +16 -0
  67. package/dist/ui/components/MessageBubble.d.ts.map +1 -0
  68. package/dist/ui/components/MessageBubble.js +71 -0
  69. package/dist/ui/components/MessageBubble.js.map +1 -0
  70. package/dist/ui/components/MessageList.d.ts +10 -0
  71. package/dist/ui/components/MessageList.d.ts.map +1 -0
  72. package/dist/ui/components/MessageList.js +69 -0
  73. package/dist/ui/components/MessageList.js.map +1 -0
  74. package/dist/ui/components/SettingsPanel.d.ts +11 -0
  75. package/dist/ui/components/SettingsPanel.d.ts.map +1 -0
  76. package/dist/ui/components/{SettingsView.js → SettingsPanel.js} +27 -27
  77. package/dist/ui/components/SettingsPanel.js.map +1 -0
  78. package/dist/ui/components/Shimmer.d.ts +2 -0
  79. package/dist/ui/components/Shimmer.d.ts.map +1 -0
  80. package/dist/ui/components/Shimmer.js +10 -0
  81. package/dist/ui/components/Shimmer.js.map +1 -0
  82. package/dist/ui/components/Talk2View.d.ts +21 -0
  83. package/dist/ui/components/Talk2View.d.ts.map +1 -0
  84. package/dist/ui/components/Talk2View.js +79 -0
  85. package/dist/ui/components/Talk2View.js.map +1 -0
  86. package/dist/ui/components/ThinkingBlock.d.ts +7 -0
  87. package/dist/ui/components/ThinkingBlock.d.ts.map +1 -0
  88. package/dist/ui/components/ThinkingBlock.js +64 -0
  89. package/dist/ui/components/ThinkingBlock.js.map +1 -0
  90. package/dist/ui/components/ToolDisplay.d.ts +28 -0
  91. package/dist/ui/components/ToolDisplay.d.ts.map +1 -0
  92. package/dist/ui/components/ToolDisplay.js +123 -0
  93. package/dist/ui/components/ToolDisplay.js.map +1 -0
  94. package/dist/ui/components/WelcomeScreen.d.ts +6 -0
  95. package/dist/ui/components/WelcomeScreen.d.ts.map +1 -0
  96. package/dist/ui/components/WelcomeScreen.js +18 -0
  97. package/dist/ui/components/WelcomeScreen.js.map +1 -0
  98. package/dist/ui/context.d.ts +29 -0
  99. package/dist/ui/context.d.ts.map +1 -0
  100. package/dist/ui/context.js +16 -0
  101. package/dist/ui/context.js.map +1 -0
  102. package/dist/ui/index.d.ts +24 -37
  103. package/dist/ui/index.d.ts.map +1 -1
  104. package/dist/ui/index.js +23 -35
  105. package/dist/ui/index.js.map +1 -1
  106. package/dist/ui/styles.d.ts +2 -0
  107. package/dist/ui/styles.d.ts.map +1 -0
  108. package/dist/ui/styles.js +91 -0
  109. package/dist/ui/styles.js.map +1 -0
  110. package/dist/ui/theme.d.ts +11 -0
  111. package/dist/ui/theme.d.ts.map +1 -0
  112. package/dist/ui/theme.js +70 -0
  113. package/dist/ui/theme.js.map +1 -0
  114. package/package.json +5 -10
  115. package/dist/ui/components/LoginModal.d.ts +0 -10
  116. package/dist/ui/components/LoginModal.d.ts.map +0 -1
  117. package/dist/ui/components/LoginModal.js +0 -138
  118. package/dist/ui/components/LoginModal.js.map +0 -1
  119. package/dist/ui/components/SettingsView.d.ts +0 -11
  120. package/dist/ui/components/SettingsView.d.ts.map +0 -1
  121. package/dist/ui/components/SettingsView.js.map +0 -1
  122. package/dist/ui/components/T2VAssistantModal.d.ts +0 -31
  123. package/dist/ui/components/T2VAssistantModal.d.ts.map +0 -1
  124. package/dist/ui/components/T2VAssistantModal.js +0 -151
  125. package/dist/ui/components/T2VAssistantModal.js.map +0 -1
  126. package/dist/ui/components/T2VAssistantProvider.d.ts +0 -42
  127. package/dist/ui/components/T2VAssistantProvider.d.ts.map +0 -1
  128. package/dist/ui/components/T2VAssistantProvider.js +0 -66
  129. package/dist/ui/components/T2VAssistantProvider.js.map +0 -1
  130. package/dist/ui/components/T2VChatHeader.d.ts.map +0 -1
  131. package/dist/ui/components/T2VChatHeader.js +0 -112
  132. package/dist/ui/components/T2VChatHeader.js.map +0 -1
  133. package/dist/ui/components/T2VComposer.d.ts +0 -11
  134. package/dist/ui/components/T2VComposer.d.ts.map +0 -1
  135. package/dist/ui/components/T2VComposer.js +0 -124
  136. package/dist/ui/components/T2VComposer.js.map +0 -1
  137. package/dist/ui/components/T2VDictationAdapter.d.ts +0 -18
  138. package/dist/ui/components/T2VDictationAdapter.d.ts.map +0 -1
  139. package/dist/ui/components/T2VDictationAdapter.js +0 -126
  140. package/dist/ui/components/T2VDictationAdapter.js.map +0 -1
  141. package/dist/ui/components/T2VLoginGate.d.ts +0 -23
  142. package/dist/ui/components/T2VLoginGate.d.ts.map +0 -1
  143. package/dist/ui/components/T2VLoginGate.js +0 -11
  144. package/dist/ui/components/T2VLoginGate.js.map +0 -1
  145. package/dist/ui/components/T2VThread.d.ts +0 -25
  146. package/dist/ui/components/T2VThread.d.ts.map +0 -1
  147. package/dist/ui/components/T2VThread.js +0 -66
  148. package/dist/ui/components/T2VThread.js.map +0 -1
  149. package/dist/ui/components/T2VToolFallback.d.ts +0 -11
  150. package/dist/ui/components/T2VToolFallback.d.ts.map +0 -1
  151. package/dist/ui/components/T2VToolFallback.js +0 -209
  152. package/dist/ui/components/T2VToolFallback.js.map +0 -1
  153. package/dist/ui/runtime/convertMessage.d.ts +0 -17
  154. package/dist/ui/runtime/convertMessage.d.ts.map +0 -1
  155. package/dist/ui/runtime/convertMessage.js +0 -77
  156. package/dist/ui/runtime/convertMessage.js.map +0 -1
  157. package/dist/ui/runtime/useT2VRuntime.d.ts +0 -42
  158. package/dist/ui/runtime/useT2VRuntime.d.ts.map +0 -1
  159. package/dist/ui/runtime/useT2VRuntime.js +0 -62
  160. package/dist/ui/runtime/useT2VRuntime.js.map +0 -1
  161. package/dist/ui/themes/tailwind-preset.d.ts +0 -43
  162. package/dist/ui/themes/tailwind-preset.d.ts.map +0 -1
  163. package/dist/ui/themes/tailwind-preset.js +0 -43
  164. package/dist/ui/themes/tailwind-preset.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ import type { Talk2View as Talk2ViewClass } from '../index';
2
+ import type { User, DisplayMessage, PendingApproval, HumanDecision } from '../types';
3
+ export interface Talk2ViewContextValue {
4
+ t2v: Talk2ViewClass;
5
+ user: User | null;
6
+ isAuthenticated: boolean;
7
+ }
8
+ export interface ChatContextValue {
9
+ messages: DisplayMessage[];
10
+ isLoading: boolean;
11
+ error: string | null;
12
+ pendingApproval: PendingApproval | null;
13
+ agentStatus: {
14
+ status: string;
15
+ message: string;
16
+ } | null;
17
+ threadId: string | null;
18
+ alwaysAllowedTools: ReadonlySet<string>;
19
+ sendMessage: (content: string) => Promise<void>;
20
+ approveToolCall: (decision: HumanDecision) => Promise<void>;
21
+ retryLastMessage: () => Promise<void>;
22
+ clearMessages: () => void;
23
+ clearError: () => void;
24
+ }
25
+ export declare const Talk2ViewContext: import("react").Context<Talk2ViewContextValue | null>;
26
+ export declare const ChatContext: import("react").Context<ChatContextValue | null>;
27
+ export declare function useTalk2View(): Talk2ViewContextValue;
28
+ export declare function useChat(): ChatContextValue;
29
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/ui/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAErF,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,uDAAoD,CAAC;AAClF,eAAO,MAAM,WAAW,kDAA+C,CAAC;AAExE,wBAAgB,YAAY,IAAI,qBAAqB,CAIpD;AAED,wBAAgB,OAAO,IAAI,gBAAgB,CAI1C"}
@@ -0,0 +1,16 @@
1
+ import { createContext, useContext } from 'react';
2
+ export const Talk2ViewContext = createContext(null);
3
+ export const ChatContext = createContext(null);
4
+ export function useTalk2View() {
5
+ const ctx = useContext(Talk2ViewContext);
6
+ if (!ctx)
7
+ throw new Error('useTalk2View must be used within <Talk2View>');
8
+ return ctx;
9
+ }
10
+ export function useChat() {
11
+ const ctx = useContext(ChatContext);
12
+ if (!ctx)
13
+ throw new Error('useChat must be used within <Talk2View>');
14
+ return ctx;
15
+ }
16
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/ui/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAyBlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAExE,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,38 +1,25 @@
1
- /**
2
- * Talk2View UI — pre-styled chat components powered by assistant-ui.
3
- *
4
- * Requires Tailwind CSS and @assistant-ui/react + @assistant-ui/react-ui peer dependencies.
5
- *
6
- * @example
7
- * ```tsx
8
- * import { T2VAssistantProvider, T2VThread } from '@talk2view/sdk/ui';
9
- *
10
- * function App() {
11
- * return (
12
- * <T2VAssistantProvider partnerKey="pk_live_abc" tools={myTools}>
13
- * <T2VThread />
14
- * </T2VAssistantProvider>
15
- * );
16
- * }
17
- * ```
18
- *
19
- * @packageDocumentation
20
- */
21
- export { T2VAssistantProvider, useT2VChatActions } from './components/T2VAssistantProvider';
22
- export { T2VThread } from './components/T2VThread';
23
- export { T2VAssistantModal } from './components/T2VAssistantModal';
24
- export { T2VLoginGate } from './components/T2VLoginGate';
25
- export { T2VToolFallback } from './components/T2VToolFallback';
26
- export { T2VComposer } from './components/T2VComposer';
27
- export { T2VChatHeader } from './components/T2VChatHeader';
28
- export { useT2VRuntime } from './runtime/useT2VRuntime';
29
- export { T2VDictationAdapter } from './components/T2VDictationAdapter';
30
- export { convertDisplayMessage } from './runtime/convertMessage';
31
- export { t2vPreset } from './themes/tailwind-preset';
32
- export type { T2VAssistantProviderProps } from './components/T2VAssistantProvider';
33
- export type { T2VThreadProps } from './components/T2VThread';
34
- export type { T2VAssistantModalProps } from './components/T2VAssistantModal';
35
- export type { T2VLoginGateProps } from './components/T2VLoginGate';
36
- export type { T2VChatHeaderProps } from './components/T2VChatHeader';
37
- export type { UseT2VRuntimeOptions } from './runtime/useT2VRuntime';
1
+ export { Talk2View } from './components/Talk2View';
2
+ export type { Talk2ViewProps } from './components/Talk2View';
3
+ export { ChatPanel } from './components/ChatPanel';
4
+ export type { ChatPanelProps } from './components/ChatPanel';
5
+ export { ChatWidget } from './components/ChatWidget';
6
+ export type { ChatWidgetProps } from './components/ChatWidget';
7
+ export { useChat, useTalk2View } from './context';
8
+ export type { ChatContextValue, Talk2ViewContextValue } from './context';
9
+ export { MessageList } from './components/MessageList';
10
+ export { MessageBubble } from './components/MessageBubble';
11
+ export { Composer } from './components/Composer';
12
+ export { WelcomeScreen } from './components/WelcomeScreen';
13
+ export { LoginForm } from './components/LoginForm';
14
+ export { ChatHeader } from './components/ChatHeader';
15
+ export { SettingsPanel } from './components/SettingsPanel';
16
+ export { ApprovalCard } from './components/ApprovalCard';
17
+ export { ToolDisplay, ToolStepGroup } from './components/ToolDisplay';
18
+ export type { ToolDisplayProps, ToolStepGroupProps } from './components/ToolDisplay';
19
+ export { MarkdownRenderer } from './components/MarkdownRenderer';
20
+ export { CodeBlock } from './components/CodeBlock';
21
+ export { ThinkingBlock } from './components/ThinkingBlock';
22
+ export { MessageActions } from './components/MessageActions';
23
+ export { Shimmer } from './components/Shimmer';
24
+ export { THEME_DEFAULTS, LOGOS } from './theme';
38
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
package/dist/ui/index.js CHANGED
@@ -1,36 +1,24 @@
1
- /**
2
- * Talk2View UI — pre-styled chat components powered by assistant-ui.
3
- *
4
- * Requires Tailwind CSS and @assistant-ui/react + @assistant-ui/react-ui peer dependencies.
5
- *
6
- * @example
7
- * ```tsx
8
- * import { T2VAssistantProvider, T2VThread } from '@talk2view/sdk/ui';
9
- *
10
- * function App() {
11
- * return (
12
- * <T2VAssistantProvider partnerKey="pk_live_abc" tools={myTools}>
13
- * <T2VThread />
14
- * </T2VAssistantProvider>
15
- * );
16
- * }
17
- * ```
18
- *
19
- * @packageDocumentation
20
- */
21
- // ── Components ──
22
- export { T2VAssistantProvider, useT2VChatActions } from './components/T2VAssistantProvider';
23
- export { T2VThread } from './components/T2VThread';
24
- export { T2VAssistantModal } from './components/T2VAssistantModal';
25
- export { T2VLoginGate } from './components/T2VLoginGate';
26
- export { T2VToolFallback } from './components/T2VToolFallback';
27
- export { T2VComposer } from './components/T2VComposer';
28
- export { T2VChatHeader } from './components/T2VChatHeader';
29
- // ── Hooks ──
30
- export { useT2VRuntime } from './runtime/useT2VRuntime';
31
- // ── Adapters ──
32
- export { T2VDictationAdapter } from './components/T2VDictationAdapter';
33
- // ── Utilities ──
34
- export { convertDisplayMessage } from './runtime/convertMessage';
35
- export { t2vPreset } from './themes/tailwind-preset';
1
+ // Components
2
+ export { Talk2View } from './components/Talk2View';
3
+ export { ChatPanel } from './components/ChatPanel';
4
+ export { ChatWidget } from './components/ChatWidget';
5
+ // Context hooks (for advanced custom UI)
6
+ export { useChat, useTalk2View } from './context';
7
+ // Individual components (for composition)
8
+ export { MessageList } from './components/MessageList';
9
+ export { MessageBubble } from './components/MessageBubble';
10
+ export { Composer } from './components/Composer';
11
+ export { WelcomeScreen } from './components/WelcomeScreen';
12
+ export { LoginForm } from './components/LoginForm';
13
+ export { ChatHeader } from './components/ChatHeader';
14
+ export { SettingsPanel } from './components/SettingsPanel';
15
+ export { ApprovalCard } from './components/ApprovalCard';
16
+ export { ToolDisplay, ToolStepGroup } from './components/ToolDisplay';
17
+ export { MarkdownRenderer } from './components/MarkdownRenderer';
18
+ export { CodeBlock } from './components/CodeBlock';
19
+ export { ThinkingBlock } from './components/ThinkingBlock';
20
+ export { MessageActions } from './components/MessageActions';
21
+ export { Shimmer } from './components/Shimmer';
22
+ // Theme
23
+ export { THEME_DEFAULTS, LOGOS } from './theme';
36
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGlD,0CAA0C;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,QAAQ;AACR,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function injectComponentStyles(): void;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,IAAI,IAAI,CAqF5C"}
@@ -0,0 +1,91 @@
1
+ let injected = false;
2
+ export function injectComponentStyles() {
3
+ if (injected || typeof document === 'undefined')
4
+ return;
5
+ const id = 't2v-component-styles';
6
+ if (document.getElementById(id)) {
7
+ injected = true;
8
+ return;
9
+ }
10
+ const style = document.createElement('style');
11
+ style.id = id;
12
+ style.textContent = `
13
+ [data-talk2view], [data-talk2view] * {
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ @keyframes t2v-fade-in {
18
+ from { opacity: 0; transform: translateY(6px); }
19
+ to { opacity: 1; transform: translateY(0); }
20
+ }
21
+ @keyframes t2v-spin {
22
+ to { transform: rotate(360deg); }
23
+ }
24
+ @keyframes t2v-dot-bounce {
25
+ 0%, 80%, 100% { transform: translateY(0); }
26
+ 40% { transform: translateY(-4px); }
27
+ }
28
+ @keyframes t2v-blink {
29
+ 0%, 50% { opacity: 1; }
30
+ 51%, 100% { opacity: 0; }
31
+ }
32
+ @keyframes t2v-shimmer {
33
+ 0% { background-position: -200% 0; }
34
+ 100% { background-position: 200% 0; }
35
+ }
36
+ @keyframes t2v-typing {
37
+ 0%, 60%, 100% { opacity: 0.3; transform: scale(0.8); }
38
+ 30% { opacity: 1; transform: scale(1); }
39
+ }
40
+
41
+ [data-talk2view] .t2v-scrollable::-webkit-scrollbar { width: 4px; }
42
+ [data-talk2view] .t2v-scrollable::-webkit-scrollbar-thumb {
43
+ background: var(--t2v-border); border-radius: 2px;
44
+ }
45
+ [data-talk2view] .t2v-scrollable::-webkit-scrollbar-track { background: transparent; }
46
+
47
+ [data-talk2view] .t2v-focusable:focus-visible {
48
+ outline: 2px solid var(--t2v-accent);
49
+ outline-offset: 2px;
50
+ }
51
+
52
+ [data-talk2view] .t2v-md p { margin: 0 0 0.5em; }
53
+ [data-talk2view] .t2v-md p:last-child { margin-bottom: 0; }
54
+ [data-talk2view] .t2v-md h1, [data-talk2view] .t2v-md h2, [data-talk2view] .t2v-md h3 {
55
+ margin: 0.8em 0 0.3em; font-weight: 600; line-height: 1.3;
56
+ }
57
+ [data-talk2view] .t2v-md h1 { font-size: 1.25em; }
58
+ [data-talk2view] .t2v-md h2 { font-size: 1.1em; }
59
+ [data-talk2view] .t2v-md h3 { font-size: 1em; }
60
+ [data-talk2view] .t2v-md ul, [data-talk2view] .t2v-md ol { margin: 0.3em 0; padding-left: 1.3em; }
61
+ [data-talk2view] .t2v-md li { margin: 0.15em 0; }
62
+ [data-talk2view] .t2v-md code {
63
+ font-family: var(--t2v-font-mono); font-size: 0.88em;
64
+ padding: 0.12em 0.3em; background: var(--t2v-surface-hover); border-radius: 3px;
65
+ }
66
+ [data-talk2view] .t2v-md pre { margin: 0.5em 0; padding: 0; border-radius: 6px; overflow: hidden; }
67
+ [data-talk2view] .t2v-md pre code { display: block; padding: 0.7em 0.9em; background: none; overflow-x: auto; }
68
+ [data-talk2view] .t2v-md blockquote {
69
+ margin: 0.5em 0; padding: 0.3em 0.8em;
70
+ border-left: 3px solid var(--t2v-accent); color: var(--t2v-muted);
71
+ }
72
+ [data-talk2view] .t2v-md strong { font-weight: 600; }
73
+ [data-talk2view] .t2v-md a { color: var(--t2v-accent); text-decoration: underline; }
74
+ [data-talk2view] .t2v-md table { border-collapse: collapse; width: 100%; margin: 0.5em 0; font-size: 0.92em; }
75
+ [data-talk2view] .t2v-md th, [data-talk2view] .t2v-md td {
76
+ border: 1px solid var(--t2v-border); padding: 0.3em 0.5em; text-align: left;
77
+ }
78
+ [data-talk2view] .t2v-md th { background: var(--t2v-surface); font-weight: 600; }
79
+ [data-talk2view] .t2v-md hr { border: none; border-top: 1px solid var(--t2v-border); margin: 0.6em 0; }
80
+
81
+ [data-talk2view] .shiki { margin: 0; padding: 12px 14px; overflow-x: auto; }
82
+ [data-talk2view] .shiki code { font-family: var(--t2v-font-mono); font-size: 13px; }
83
+
84
+ [data-talk2view] .t2v-btn:hover { filter: brightness(1.05); }
85
+ [data-talk2view] .t2v-btn:active { transform: scale(0.98); }
86
+ [data-talk2view] .t2v-btn-ghost:hover { background: var(--t2v-surface-hover); }
87
+ `;
88
+ document.head.appendChild(style);
89
+ injected = true;
90
+ }
91
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAAA,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,qBAAqB;IACnC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IACxD,MAAM,EAAE,GAAG,sBAAsB,CAAC;IAClC,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;QAAC,QAAQ,GAAG,IAAI,CAAC;QAAC,OAAO;IAAC,CAAC;IAE7D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ErB,CAAC;IACA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Talk2ViewTheme } from '../types';
2
+ export declare const THEME_DEFAULTS: Required<Talk2ViewTheme>;
3
+ export declare function generateThemeCSS(theme: Talk2ViewTheme): string;
4
+ export declare function injectTheme(theme: Talk2ViewTheme): void;
5
+ export declare function injectFonts(): void;
6
+ export declare const LOGOS: {
7
+ readonly icon: "https://db.talk2view.com/storage/v1/object/public/resources/talk2view_logo.png";
8
+ readonly horizontalDark: "https://db.talk2view.com/storage/v1/object/public/resources/talk2view_horizontal_dark.png";
9
+ readonly horizontalLight: "https://db.talk2view.com/storage/v1/object/public/resources/talk2view_horizontal_light.png";
10
+ };
11
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,cAAc,CAenD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAkB9D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAUvD;AAGD,wBAAgB,WAAW,IAAI,IAAI,CAUlC;AAGD,eAAO,MAAM,KAAK;;;;CAIR,CAAC"}
@@ -0,0 +1,70 @@
1
+ export const THEME_DEFAULTS = {
2
+ accent: '#40D4B6',
3
+ accentForeground: '#FFFFFF',
4
+ bg: '#F8FAFC',
5
+ foreground: '#01161E',
6
+ muted: '#9F9AA4',
7
+ border: '#E5E7EB',
8
+ userBubble: '#01161E',
9
+ userForeground: '#F8FAFC',
10
+ error: '#DC2626',
11
+ radius: 12,
12
+ font: "'IBM Plex Sans', sans-serif",
13
+ fontMono: "'IBM Plex Mono', monospace",
14
+ surface: 'rgba(0,0,0,0.02)',
15
+ surfaceHover: 'rgba(0,0,0,0.05)',
16
+ };
17
+ export function generateThemeCSS(theme) {
18
+ const t = { ...THEME_DEFAULTS, ...theme };
19
+ return `[data-talk2view] {
20
+ --t2v-accent: ${t.accent};
21
+ --t2v-accent-foreground: ${t.accentForeground};
22
+ --t2v-bg: ${t.bg};
23
+ --t2v-foreground: ${t.foreground};
24
+ --t2v-muted: ${t.muted};
25
+ --t2v-border: ${t.border};
26
+ --t2v-user-bubble: ${t.userBubble};
27
+ --t2v-user-foreground: ${t.userForeground};
28
+ --t2v-error: ${t.error};
29
+ --t2v-radius: ${t.radius}px;
30
+ --t2v-font: ${t.font};
31
+ --t2v-font-mono: ${t.fontMono};
32
+ --t2v-surface: ${t.surface};
33
+ --t2v-surface-hover: ${t.surfaceHover};
34
+ }`;
35
+ }
36
+ export function injectTheme(theme) {
37
+ if (typeof document === 'undefined')
38
+ return;
39
+ const id = 't2v-theme';
40
+ let el = document.getElementById(id);
41
+ if (!el) {
42
+ el = document.createElement('style');
43
+ el.id = id;
44
+ document.head.appendChild(el);
45
+ }
46
+ el.textContent = generateThemeCSS(theme);
47
+ }
48
+ let fontsInjected = false;
49
+ export function injectFonts() {
50
+ if (fontsInjected || typeof document === 'undefined')
51
+ return;
52
+ const id = 't2v-fonts';
53
+ if (document.getElementById(id)) {
54
+ fontsInjected = true;
55
+ return;
56
+ }
57
+ const link = document.createElement('link');
58
+ link.id = id;
59
+ link.rel = 'stylesheet';
60
+ link.href = 'https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap';
61
+ document.head.appendChild(link);
62
+ fontsInjected = true;
63
+ }
64
+ const ASSETS_BASE = 'https://db.talk2view.com/storage/v1/object/public/resources';
65
+ export const LOGOS = {
66
+ icon: `${ASSETS_BASE}/talk2view_logo.png`,
67
+ horizontalDark: `${ASSETS_BASE}/talk2view_horizontal_dark.png`,
68
+ horizontalLight: `${ASSETS_BASE}/talk2view_horizontal_light.png`,
69
+ };
70
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,SAAS;IAC3B,EAAE,EAAE,SAAS;IACb,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,SAAS;IACzB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,6BAA6B;IACnC,QAAQ,EAAE,4BAA4B;IACtC,OAAO,EAAE,kBAAkB;IAC3B,YAAY,EAAE,kBAAkB;CACjC,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,CAAC,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,EAAE,CAAC;IAC1C,OAAO;kBACS,CAAC,CAAC,MAAM;6BACG,CAAC,CAAC,gBAAgB;cACjC,CAAC,CAAC,EAAE;sBACI,CAAC,CAAC,UAAU;iBACjB,CAAC,CAAC,KAAK;kBACN,CAAC,CAAC,MAAM;uBACH,CAAC,CAAC,UAAU;2BACR,CAAC,CAAC,cAAc;iBAC1B,CAAC,CAAC,KAAK;kBACN,CAAC,CAAC,MAAM;gBACV,CAAC,CAAC,IAAI;qBACD,CAAC,CAAC,QAAQ;mBACZ,CAAC,CAAC,OAAO;yBACH,CAAC,CAAC,YAAY;EACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAqB;IAC/C,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,IAAI,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAA4B,CAAC;IAChE,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,EAAE,CAAC,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,MAAM,UAAU,WAAW;IACzB,IAAI,aAAa,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC7D,MAAM,EAAE,GAAG,WAAW,CAAC;IACvB,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;QAAC,aAAa,GAAG,IAAI,CAAC;QAAC,OAAO;IAAC,CAAC;IAClE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;IACxB,IAAI,CAAC,IAAI,GAAG,4HAA4H,CAAC;IACzI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,WAAW,GAAG,6DAA6D,CAAC;AAClF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,GAAG,WAAW,qBAAqB;IACzC,cAAc,EAAE,GAAG,WAAW,gCAAgC;IAC9D,eAAe,EAAE,GAAG,WAAW,iCAAiC;CACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talk2view/sdk",
3
- "version": "0.3.2",
3
+ "version": "0.5.0",
4
4
  "description": "Talk2View SDK — Add AI-powered natural language control to any application",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,11 +20,6 @@
20
20
  "types": "./dist/ui/index.d.ts",
21
21
  "import": "./dist/ui/index.js",
22
22
  "default": "./dist/ui/index.js"
23
- },
24
- "./assistant-ui": {
25
- "types": "./dist/ui/index.d.ts",
26
- "import": "./dist/ui/index.js",
27
- "default": "./dist/ui/index.js"
28
23
  }
29
24
  },
30
25
  "files": [
@@ -34,6 +29,7 @@
34
29
  "build": "tsc",
35
30
  "dev": "tsc --watch",
36
31
  "test": "vitest run",
32
+ "test:coverage": "vitest run --coverage",
37
33
  "test:watch": "vitest",
38
34
  "test:e2e": "playwright test --config playwright.config.ts",
39
35
  "lint": "tsc --noEmit",
@@ -41,12 +37,10 @@
41
37
  "prepublishOnly": "npm run build"
42
38
  },
43
39
  "dependencies": {
44
- "@assistant-ui/react": "^0.12.19",
45
- "@assistant-ui/react-markdown": "^0.12.6",
46
- "@assistant-ui/react-ui": "^0.2.1",
47
40
  "dompurify": "^3.2.0",
41
+ "lucide-react": "^1.8.0",
48
42
  "marked": "^15.0.0",
49
- "remark-gfm": "^4.0.1"
43
+ "shiki": "^4.0.2"
50
44
  },
51
45
  "devDependencies": {
52
46
  "@playwright/test": "^1.58.2",
@@ -54,6 +48,7 @@
54
48
  "@types/dompurify": "^3.0.5",
55
49
  "@types/react": "^19.0.0",
56
50
  "@types/react-dom": "^19.0.0",
51
+ "@vitest/coverage-v8": "^3.0.0",
57
52
  "jsdom": "^25.0.0",
58
53
  "typescript": "^5.7.0",
59
54
  "vitest": "^3.0.0"
@@ -1,10 +0,0 @@
1
- /**
2
- * LoginModal — pre-built login/signup form.
3
- */
4
- export interface LoginModalProps {
5
- signupUrl?: string;
6
- className?: string;
7
- onSuccess?: () => void;
8
- }
9
- export declare function LoginModal({ signupUrl, className, onSuccess, }: LoginModalProps): import("react/jsx-runtime").JSX.Element | null;
10
- //# sourceMappingURL=LoginModal.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,138 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * LoginModal — pre-built login/signup form.
4
- */
5
- import React, { useCallback, useState } from 'react';
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
- const { login, isLoading, error, clearError, isAuthenticated } = useT2VAuth();
10
- const [email, setEmail] = useState('');
11
- const [password, setPassword] = useState('');
12
- const [emailFocused, setEmailFocused] = useState(false);
13
- const [passwordFocused, setPasswordFocused] = useState(false);
14
- const [btnHover, setBtnHover] = useState(false);
15
- const [linkHover, setLinkHover] = useState(false);
16
- // Inject fonts and keyframes (idempotent)
17
- React.useEffect(() => {
18
- injectT2VFonts();
19
- injectT2VStyles();
20
- }, []);
21
- const handleSubmit = useCallback(async (e) => {
22
- e.preventDefault();
23
- try {
24
- await login(email, password);
25
- onSuccess?.();
26
- }
27
- catch {
28
- // Error is set by useT2VAuth
29
- }
30
- }, [email, password, login, onSuccess]);
31
- if (isAuthenticated)
32
- return null;
33
- const inputStyle = (focused) => ({
34
- width: '100%',
35
- padding: '10px 12px',
36
- borderRadius: '8px',
37
- border: `1.5px solid ${focused ? T2V_COLORS.turquoise : T2V_COLORS.lightGray}`,
38
- fontSize: '14px',
39
- fontFamily: T2V_FONTS.body,
40
- outline: 'none',
41
- boxSizing: 'border-box',
42
- color: T2V_COLORS.dark,
43
- backgroundColor: '#ffffff',
44
- boxShadow: focused ? `0 0 0 3px ${T2V_ALPHA.turquoise15}` : 'none',
45
- transition: 'border-color 0.15s ease, box-shadow 0.15s ease',
46
- });
47
- return (_jsxs("div", { className: `t2v-login-modal ${className}`, style: {
48
- display: 'flex',
49
- flexDirection: 'column',
50
- alignItems: 'center',
51
- justifyContent: 'center',
52
- flex: 1,
53
- minHeight: 0,
54
- padding: '40px 22px',
55
- width: '100%',
56
- maxWidth: '340px',
57
- margin: '0 auto',
58
- fontFamily: T2V_FONTS.body,
59
- }, children: [_jsx(T2VLogo, { size: 64 }), _jsx("h2", { style: {
60
- fontSize: '22px',
61
- fontWeight: 600,
62
- fontFamily: T2V_FONTS.heading,
63
- marginTop: '16px',
64
- marginBottom: '4px',
65
- color: T2V_COLORS.dark,
66
- }, children: "Welcome" }), _jsx("p", { style: {
67
- fontSize: '14px',
68
- color: T2V_COLORS.midGray,
69
- fontFamily: T2V_FONTS.heading,
70
- marginTop: '0',
71
- marginBottom: '28px',
72
- }, children: "Sign in to Talk2View" }), _jsxs("form", { onSubmit: handleSubmit, style: { width: '100%' }, children: [_jsxs("div", { style: { marginBottom: '16px' }, children: [_jsx("label", { htmlFor: "t2v-email", style: {
73
- display: 'block',
74
- fontSize: '13px',
75
- fontWeight: 500,
76
- fontFamily: T2V_FONTS.heading,
77
- marginBottom: '6px',
78
- color: T2V_COLORS.dark,
79
- }, children: "Email" }), _jsx("input", { id: "t2v-email", type: "email", value: email, onChange: (e) => { setEmail(e.target.value); clearError(); }, onFocus: () => setEmailFocused(true), onBlur: () => setEmailFocused(false), placeholder: "you@example.com", required: true, disabled: isLoading, style: inputStyle(emailFocused) })] }), _jsxs("div", { style: { marginBottom: '24px' }, children: [_jsx("label", { htmlFor: "t2v-password", style: {
80
- display: 'block',
81
- fontSize: '13px',
82
- fontWeight: 500,
83
- fontFamily: T2V_FONTS.heading,
84
- marginBottom: '6px',
85
- color: T2V_COLORS.dark,
86
- }, children: "Password" }), _jsx("input", { id: "t2v-password", type: "password", value: password, onChange: (e) => { setPassword(e.target.value); clearError(); }, onFocus: () => setPasswordFocused(true), onBlur: () => setPasswordFocused(false), placeholder: "Password", required: true, disabled: isLoading, style: inputStyle(passwordFocused) })] }), error && (_jsx("div", { style: {
87
- padding: '10px 12px',
88
- borderRadius: '8px',
89
- backgroundColor: T2V_COLORS.errorBg,
90
- color: T2V_COLORS.errorRed,
91
- fontSize: '13px',
92
- fontFamily: T2V_FONTS.heading,
93
- marginBottom: '16px',
94
- borderLeft: `3px solid ${T2V_COLORS.errorRed}`,
95
- }, children: error })), _jsxs("button", { type: "submit", disabled: isLoading, onMouseEnter: () => setBtnHover(true), onMouseLeave: () => setBtnHover(false), style: {
96
- width: '100%',
97
- padding: '11px',
98
- borderRadius: '8px',
99
- border: 'none',
100
- backgroundColor: isLoading
101
- ? T2V_COLORS.lightGray
102
- : btnHover
103
- ? T2V_COLORS.stormyTeal
104
- : T2V_COLORS.accent,
105
- color: isLoading ? T2V_COLORS.midGray : '#ffffff',
106
- fontSize: '15px',
107
- fontWeight: 600,
108
- fontFamily: T2V_FONTS.heading,
109
- cursor: isLoading ? 'not-allowed' : 'pointer',
110
- transition: 'background-color 0.15s ease, transform 0.15s ease',
111
- transform: !isLoading && btnHover ? 'translateY(-1px)' : 'none',
112
- display: 'flex',
113
- alignItems: 'center',
114
- justifyContent: 'center',
115
- gap: '8px',
116
- }, children: [isLoading && (_jsx("span", { style: {
117
- display: 'inline-block',
118
- width: '16px',
119
- height: '16px',
120
- border: `2px solid ${T2V_COLORS.midGray}`,
121
- borderTopColor: 'transparent',
122
- borderRadius: '50%',
123
- animation: 't2v-spin 0.6s linear infinite',
124
- } })), isLoading ? 'Signing in…' : 'Sign in'] })] }), _jsxs("p", { style: {
125
- marginTop: '20px',
126
- fontSize: '13px',
127
- fontFamily: T2V_FONTS.heading,
128
- color: T2V_COLORS.midGray,
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: {
132
- color: linkHover ? T2V_COLORS.stormyTeal : T2V_COLORS.turquoise,
133
- fontWeight: 500,
134
- textDecoration: linkHover ? 'underline' : 'none',
135
- transition: 'color 0.15s ease',
136
- }, children: "Sign up" })] })] }));
137
- }
138
- //# sourceMappingURL=LoginModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoginModal.js","sourceRoot":"","sources":["../../../src/ui/components/LoginModal.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}