@agi-cli/web-sdk 0.1.71 → 0.1.73

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.
@@ -4,13 +4,11 @@ export * from './ui/Input';
4
4
  export * from './ui/Textarea';
5
5
  export * from './chat/ChatInput';
6
6
  export * from './chat/ChatInputContainer';
7
- export * from './chat/ChatInputView';
8
7
  export * from './chat/ConfigModal';
9
8
  export * from './chat/ConfigSelector';
10
9
  export * from './chat/StopButton';
11
10
  export * from './messages/MessageThread';
12
11
  export * from './messages/MessageThreadContainer';
13
- export * from './messages/MessageThreadView';
14
12
  export * from './messages/AssistantMessageGroup';
15
13
  export * from './messages/UserMessageGroup';
16
14
  export * from './messages/MessagePartItem';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAG9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAG3C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAG9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAG3C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -6,14 +6,12 @@ export * from './ui/Textarea';
6
6
  // Chat Components
7
7
  export * from './chat/ChatInput';
8
8
  export * from './chat/ChatInputContainer';
9
- export * from './chat/ChatInputView';
10
9
  export * from './chat/ConfigModal';
11
10
  export * from './chat/ConfigSelector';
12
11
  export * from './chat/StopButton';
13
12
  // Message Components
14
13
  export * from './messages/MessageThread';
15
14
  export * from './messages/MessageThreadContainer';
16
- export * from './messages/MessageThreadView';
17
15
  export * from './messages/AssistantMessageGroup';
18
16
  export * from './messages/UserMessageGroup';
19
17
  export * from './messages/MessagePartItem';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAE9B,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,qBAAqB;AACrB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAE3C,oBAAoB;AACpB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,qBAAqB;AACrB,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAE9B,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,qBAAqB;AACrB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAE3C,oBAAoB;AACpB,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,qBAAqB;AACrB,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -4,15 +4,6 @@ interface MessageThreadProps {
4
4
  session?: Session;
5
5
  isGenerating?: boolean;
6
6
  }
7
- /**
8
- * MessageThread - Full-featured message thread component with session headers
9
- *
10
- * This component is designed for the AGI web app and uses absolute positioning
11
- * to fill its parent container. For a more flexible, size-agnostic component,
12
- * use MessageThreadView instead.
13
- *
14
- * @deprecated Use MessageThreadView for new projects
15
- */
16
7
  export declare const MessageThread: import("react").NamedExoticComponent<MessageThreadProps>;
17
8
  export {};
18
9
  //# sourceMappingURL=MessageThread.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageThread.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThread.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAMxD,UAAU,kBAAkB;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,0DAgKxB,CAAC"}
1
+ {"version":3,"file":"MessageThread.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThread.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAMxD,UAAU,kBAAkB;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,0DAgKxB,CAAC"}
@@ -5,15 +5,6 @@ import { AssistantMessageGroup } from './AssistantMessageGroup';
5
5
  import { UserMessageGroup } from './UserMessageGroup';
6
6
  import { SessionHeader } from '../sessions/SessionHeader';
7
7
  import { LeanHeader } from '../sessions/LeanHeader';
8
- /**
9
- * MessageThread - Full-featured message thread component with session headers
10
- *
11
- * This component is designed for the AGI web app and uses absolute positioning
12
- * to fill its parent container. For a more flexible, size-agnostic component,
13
- * use MessageThreadView instead.
14
- *
15
- * @deprecated Use MessageThreadView for new projects
16
- */
17
8
  export const MessageThread = memo(function MessageThread({ messages, session, isGenerating, }) {
18
9
  const bottomRef = useRef(null);
19
10
  const scrollContainerRef = useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"MessageThread.js","sourceRoot":"","sources":["../../../src/components/messages/MessageThread.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageThread.js","sourceRoot":"","sources":["../../../src/components/messages/MessageThread.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,UAAU,qBAAqB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB;AAGD,eAAO,MAAM,gBAAgB,6DAqE5B,CAAC"}
1
+ {"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,UAAU,qBAAqB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB;AAGD,eAAO,MAAM,gBAAgB,6DAmE5B,CAAC"}
@@ -29,7 +29,7 @@ export const UserMessageGroup = memo(function UserMessageGroup({ message }) {
29
29
  minute: '2-digit',
30
30
  });
31
31
  };
32
- return (_jsx("div", { className: "relative pb-8 pt-6", children: _jsxs("div", { className: "flex gap-4 justify-end", children: [_jsxs("div", { className: "flex flex-col items-end min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground pb-2 justify-end", children: [_jsx("span", { className: "font-medium text-emerald-700 dark:text-emerald-300", children: "You" }), message.createdAt && _jsx("span", { children: "\u00B7" }), message.createdAt && (_jsx("span", { children: formatTime(message.createdAt) }))] }), _jsx("div", { className: "text-sm text-foreground leading-relaxed bg-emerald-500/5 border border-emerald-500/20 rounded-xl px-4 py-3 max-w-full min-w-0 w-fit", children: _jsx("div", { className: "markdown-content [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: content }) }) })] }), _jsx("div", { className: "flex-shrink-0 w-8 flex items-start justify-center", children: _jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative z-10 bg-background", children: _jsx(User, { className: "h-4 w-4 text-emerald-700 dark:text-emerald-300" }) }) })] }) }));
32
+ return (_jsx("div", { className: "relative pb-8 pt-6", children: _jsxs("div", { className: "flex gap-4 justify-end", children: [_jsxs("div", { className: "flex flex-col items-end max-w-2xl", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground pb-2 justify-end", children: [_jsx("span", { className: "font-medium text-emerald-700 dark:text-emerald-300", children: "You" }), message.createdAt && _jsx("span", { children: "\u00B7" }), message.createdAt && (_jsx("span", { children: formatTime(message.createdAt) }))] }), _jsx("div", { className: "text-sm text-foreground leading-relaxed prose prose-invert prose-sm [&>*:first-child]:mt-0 [&>*:last-child]:mb-0 bg-emerald-500/5 border border-emerald-500/20 rounded-xl px-4 py-3 max-w-full break-words overflow-wrap-anywhere", children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: content }) })] }), _jsx("div", { className: "flex-shrink-0 w-8 flex items-start justify-center", children: _jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 border-emerald-500/50 bg-emerald-500/20 dark:bg-emerald-500/10 relative z-10 bg-background", children: _jsx(User, { className: "h-4 w-4 text-emerald-700 dark:text-emerald-300" }) }) })] }) }));
33
33
  }, (prevProps, nextProps) => {
34
34
  // Custom comparison function for better memoization
35
35
  // User messages don't change after creation, so we only need to check the message ID
@@ -1 +1 @@
1
- {"version":3,"file":"UserMessageGroup.js","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserMessageGroup.js","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,SAAS,MAAM,YAAY,CAAC;AAQnC,yEAAyE;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CACnC,SAAS,gBAAgB,CAAC,EAAE,OAAO,EAAyB;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,OAAO,CAAC;IACxD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACxD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,EAAW,EAAE,EAAE;QAClC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;YAClC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SACjB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACN,cAAK,SAAS,EAAC,oBAAoB,YAClC,eAAK,SAAS,EAAC,wBAAwB,aACtC,eAAK,SAAS,EAAC,mCAAmC,aACjD,eAAK,SAAS,EAAC,wEAAwE,aACtF,eAAM,SAAS,EAAC,oDAAoD,oBAE7D,EACN,OAAO,CAAC,SAAS,IAAI,oCAAc,EACnC,OAAO,CAAC,SAAS,IAAI,CACrB,yBAAO,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAQ,CAC5C,IACI,EACN,cAAK,SAAS,EAAC,mOAAmO,YACjP,KAAC,aAAa,IAAC,aAAa,EAAE,CAAC,SAAS,CAAC,YACvC,OAAO,GACO,GACX,IACD,EACN,cAAK,SAAS,EAAC,mDAAmD,YACjE,cAAK,SAAS,EAAC,oKAAoK,YAClL,KAAC,IAAI,IAAC,SAAS,EAAC,gDAAgD,GAAG,GAC9D,GACD,IACD,GACD,CACN,CAAC;AACH,CAAC,EACD,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;IACxB,oDAAoD;IACpD,qFAAqF;IACrF,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnD,OAAO,CACN,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAE;QAC7C,aAAa,EAAE,OAAO,KAAK,aAAa,EAAE,OAAO;QACjD,aAAa,EAAE,WAAW,KAAK,aAAa,EAAE,WAAW;QACzD,SAAS,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,SAAS,CAC3D,CAAC;AACH,CAAC,CACD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agi-cli/web-sdk",
3
- "version": "0.1.71",
3
+ "version": "0.1.73",
4
4
  "description": "Reusable React components, hooks, and utilities for building AGI CLI web interfaces",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -58,7 +58,7 @@
58
58
  "directory": "packages/web-sdk"
59
59
  },
60
60
  "dependencies": {
61
- "@agi-cli/api": "0.1.71",
61
+ "@agi-cli/api": "0.1.73",
62
62
  "axios": "^1.7.9"
63
63
  },
64
64
  "peerDependencies": {
@@ -1,46 +0,0 @@
1
- export interface ChatInputViewProps {
2
- /** Callback when message is sent */
3
- onSend: (message: string) => void;
4
- /** Whether input is disabled */
5
- disabled?: boolean;
6
- /** Callback for config button click */
7
- onConfigClick?: () => void;
8
- /** Placeholder text */
9
- placeholder?: string;
10
- /** Custom className for container */
11
- className?: string;
12
- /** Custom className for input wrapper */
13
- inputClassName?: string;
14
- /** Whether to auto-focus on mount */
15
- autoFocus?: boolean;
16
- /** Maximum height for textarea */
17
- maxHeight?: string;
18
- }
19
- export interface ChatInputViewRef {
20
- focus: () => void;
21
- clear: () => void;
22
- }
23
- /**
24
- * ChatInputView - A flexible, size-agnostic chat input component
25
- *
26
- * This component uses relative positioning and can be placed anywhere in your layout.
27
- * It doesn't use absolute positioning or z-index, making it safe for use in sidebars,
28
- * modals, or any container.
29
- *
30
- * @example
31
- * ```tsx
32
- * // At the bottom of a flex container
33
- * <div className="flex flex-col h-screen">
34
- * <MessageThreadView messages={messages} className="flex-1" />
35
- * <ChatInputView onSend={handleSend} className="p-4" />
36
- * </div>
37
- *
38
- * // In a fixed-width sidebar
39
- * <div className="w-96 flex flex-col">
40
- * <MessageThreadView messages={messages} className="flex-1" maxWidth="max-w-full" />
41
- * <ChatInputView onSend={handleSend} className="p-4 border-t" />
42
- * </div>
43
- * ```
44
- */
45
- export declare const ChatInputView: import("react").NamedExoticComponent<ChatInputViewProps & import("react").RefAttributes<ChatInputViewRef>>;
46
- //# sourceMappingURL=ChatInputView.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInputView.d.ts","sourceRoot":"","sources":["../../../src/components/chat/ChatInputView.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,kBAAkB;IAClC,oCAAoC;IACpC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,4GAsHzB,CAAC"}
@@ -1,84 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState, useRef, useEffect, useCallback, memo, forwardRef, useImperativeHandle, } from 'react';
3
- import { ArrowUp, MoreVertical } from 'lucide-react';
4
- import { Textarea } from '../ui/Textarea';
5
- /**
6
- * ChatInputView - A flexible, size-agnostic chat input component
7
- *
8
- * This component uses relative positioning and can be placed anywhere in your layout.
9
- * It doesn't use absolute positioning or z-index, making it safe for use in sidebars,
10
- * modals, or any container.
11
- *
12
- * @example
13
- * ```tsx
14
- * // At the bottom of a flex container
15
- * <div className="flex flex-col h-screen">
16
- * <MessageThreadView messages={messages} className="flex-1" />
17
- * <ChatInputView onSend={handleSend} className="p-4" />
18
- * </div>
19
- *
20
- * // In a fixed-width sidebar
21
- * <div className="w-96 flex flex-col">
22
- * <MessageThreadView messages={messages} className="flex-1" maxWidth="max-w-full" />
23
- * <ChatInputView onSend={handleSend} className="p-4 border-t" />
24
- * </div>
25
- * ```
26
- */
27
- export const ChatInputView = memo(forwardRef(function ChatInputView({ onSend, disabled, onConfigClick, placeholder = 'Type a message...', className = '', inputClassName = '', autoFocus = true, maxHeight = 'max-h-[200px]', }, ref) {
28
- const [message, setMessage] = useState('');
29
- const textareaRef = useRef(null);
30
- useEffect(() => {
31
- if (autoFocus) {
32
- textareaRef.current?.focus();
33
- }
34
- }, [autoFocus]);
35
- useImperativeHandle(ref, () => ({
36
- focus: () => {
37
- textareaRef.current?.focus();
38
- },
39
- clear: () => {
40
- setMessage('');
41
- if (textareaRef.current) {
42
- textareaRef.current.style.height = 'auto';
43
- }
44
- },
45
- }));
46
- // Auto-resize textarea based on content
47
- const adjustTextareaHeight = useCallback(() => {
48
- const textarea = textareaRef.current;
49
- if (textarea) {
50
- // Reset height to auto to get the correct scrollHeight
51
- textarea.style.height = 'auto';
52
- // Set height to scrollHeight (content height)
53
- textarea.style.height = `${textarea.scrollHeight}px`;
54
- }
55
- }, []);
56
- // biome-ignore lint/correctness/useExhaustiveDependencies: message dependency needed to trigger height adjustment
57
- useEffect(() => {
58
- adjustTextareaHeight();
59
- }, [adjustTextareaHeight, message]);
60
- const handleSend = useCallback(() => {
61
- if (message.trim() && !disabled) {
62
- onSend(message);
63
- setMessage('');
64
- // Reset textarea height after sending
65
- if (textareaRef.current) {
66
- textareaRef.current.style.height = 'auto';
67
- }
68
- textareaRef.current?.focus();
69
- }
70
- }, [message, disabled, onSend]);
71
- const handleChange = useCallback((e) => {
72
- setMessage(e.target.value);
73
- }, []);
74
- const handleKeyDown = useCallback((e) => {
75
- if (e.key === 'Enter' && !e.shiftKey) {
76
- e.preventDefault();
77
- handleSend();
78
- }
79
- }, [handleSend]);
80
- return (_jsx("div", { className: `w-full ${className}`, children: _jsx("div", { className: `max-w-3xl mx-auto ${inputClassName}`, children: _jsxs("div", { className: "flex items-end gap-1 bg-card rounded-3xl border border-border p-1 focus-within:border-primary/60 focus-within:ring-1 focus-within:ring-primary/40 transition-colors touch-manipulation", children: [onConfigClick && (_jsx("button", { type: "button", onClick: onConfigClick, className: "flex items-center justify-center w-10 h-10 rounded-full hover:bg-background/50 active:bg-background/70 transition-colors text-muted-foreground hover:text-foreground flex-shrink-0 touch-manipulation", children: _jsx(MoreVertical, { className: "w-4 h-4" }) })), _jsx(Textarea, { ref: textareaRef, value: message, onChange: handleChange, onKeyDown: handleKeyDown, placeholder: placeholder, disabled: disabled, rows: 1, className: `border-0 bg-transparent pl-1 pr-2 py-2 ${maxHeight} overflow-y-auto leading-normal resize-none scrollbar-hide text-base`, style: { height: '2.5rem' } }), _jsx("button", { type: "button", onClick: handleSend, disabled: disabled || !message.trim(), className: `flex items-center justify-center w-10 h-10 rounded-full transition-colors flex-shrink-0 touch-manipulation ${message.trim()
81
- ? 'bg-primary hover:bg-primary/90 active:bg-primary/80 text-primary-foreground'
82
- : 'bg-transparent text-muted-foreground'}`, children: _jsx(ArrowUp, { className: "w-4 h-4" }) })] }) }) }));
83
- }));
84
- //# sourceMappingURL=ChatInputView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatInputView.js","sourceRoot":"","sources":["../../../src/components/chat/ChatInputView.tsx"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import type { Message, Session } from '../../types/api';
2
- export interface MessageThreadViewProps {
3
- /** Array of messages to display */
4
- messages?: Message[];
5
- /** Optional session for header display */
6
- session?: Session;
7
- /** Whether the assistant is currently generating */
8
- isGenerating?: boolean;
9
- /** Custom header component (replaces default SessionHeader) */
10
- header?: React.ReactNode;
11
- /** Whether to show the lean header on scroll */
12
- showLeanHeader?: boolean;
13
- /** Custom lean header component */
14
- leanHeader?: React.ReactNode;
15
- /** Custom empty state component */
16
- emptyState?: React.ReactNode;
17
- /** Custom class name for the container */
18
- className?: string;
19
- /** Custom class name for messages wrapper */
20
- messagesClassName?: string;
21
- /** Maximum width for message content (default: 'max-w-3xl') */
22
- maxWidth?: string;
23
- /** Whether to auto-scroll to bottom on new messages (default: true) */
24
- autoScroll?: boolean;
25
- }
26
- /**
27
- * MessageThreadView - A size-agnostic, self-contained message thread component
28
- *
29
- * This component uses relative positioning and fills its parent container.
30
- * Use this when you want full control over the layout.
31
- *
32
- * @example
33
- * ```tsx
34
- * // In a flex container
35
- * <div className="flex flex-col h-screen">
36
- * <MessageThreadView messages={messages} className="flex-1" />
37
- * <ChatInput onSend={handleSend} />
38
- * </div>
39
- *
40
- * // In a fixed-height container
41
- * <div className="h-[600px]">
42
- * <MessageThreadView messages={messages} className="h-full" />
43
- * </div>
44
- *
45
- * // In a sidebar with custom width
46
- * <div className="w-96">
47
- * <MessageThreadView messages={messages} className="h-full" maxWidth="max-w-full" />
48
- * </div>
49
- * ```
50
- */
51
- export declare const MessageThreadView: import("react").NamedExoticComponent<MessageThreadViewProps>;
52
- //# sourceMappingURL=MessageThreadView.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageThreadView.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessageThreadView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAIxD,MAAM,WAAW,sBAAsB;IACtC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,mCAAmC;IACnC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,iBAAiB,8DA4K5B,CAAC"}
@@ -1,112 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState, useMemo, memo } from 'react';
3
- import { ArrowDown } from 'lucide-react';
4
- import { AssistantMessageGroup } from './AssistantMessageGroup';
5
- import { UserMessageGroup } from './UserMessageGroup';
6
- /**
7
- * MessageThreadView - A size-agnostic, self-contained message thread component
8
- *
9
- * This component uses relative positioning and fills its parent container.
10
- * Use this when you want full control over the layout.
11
- *
12
- * @example
13
- * ```tsx
14
- * // In a flex container
15
- * <div className="flex flex-col h-screen">
16
- * <MessageThreadView messages={messages} className="flex-1" />
17
- * <ChatInput onSend={handleSend} />
18
- * </div>
19
- *
20
- * // In a fixed-height container
21
- * <div className="h-[600px]">
22
- * <MessageThreadView messages={messages} className="h-full" />
23
- * </div>
24
- *
25
- * // In a sidebar with custom width
26
- * <div className="w-96">
27
- * <MessageThreadView messages={messages} className="h-full" maxWidth="max-w-full" />
28
- * </div>
29
- * ```
30
- */
31
- export const MessageThreadView = memo(function MessageThreadView({ messages: messagesProp, session: _session, isGenerating: _isGenerating, header, showLeanHeader: showLeanHeaderProp, leanHeader, emptyState, className = '', messagesClassName = '', maxWidth = 'max-w-3xl', autoScroll: autoScrollProp = true, }) {
32
- // Ensure messages is always an array
33
- const messages = messagesProp || [];
34
- const bottomRef = useRef(null);
35
- const scrollContainerRef = useRef(null);
36
- const headerRef = useRef(null);
37
- const [autoScroll, setAutoScroll] = useState(autoScrollProp);
38
- const [showLeanHeaderState, setShowLeanHeaderState] = useState(false);
39
- const lastScrollHeightRef = useRef(0);
40
- const messagesLengthRef = useRef(0);
41
- const showLeanHeaderComputed = showLeanHeaderProp !== undefined ? showLeanHeaderProp : showLeanHeaderState;
42
- // Detect if user has scrolled up manually
43
- const handleScroll = () => {
44
- const container = scrollContainerRef.current;
45
- if (!container)
46
- return;
47
- const { scrollTop, scrollHeight, clientHeight } = container;
48
- const distanceFromBottom = scrollHeight - scrollTop - clientHeight;
49
- // If user is within 100px of bottom, enable auto-scroll
50
- setAutoScroll(distanceFromBottom < 100);
51
- // Check if header is scrolled off screen
52
- if (header && headerRef.current) {
53
- const headerElement = headerRef.current;
54
- const headerRect = headerElement.getBoundingClientRect();
55
- const containerRect = container.getBoundingClientRect();
56
- setShowLeanHeaderState(headerRect.bottom < containerRect.top);
57
- }
58
- };
59
- // Re-enable auto-scroll when messages length changes
60
- useEffect(() => {
61
- if (messages.length > messagesLengthRef.current) {
62
- setAutoScroll(true);
63
- }
64
- messagesLengthRef.current = messages.length;
65
- }, [messages.length]);
66
- // Auto-scroll when messages change AND user hasn't scrolled up
67
- // biome-ignore lint/correctness/useExhaustiveDependencies: messages dependency is required for streaming content updates
68
- useEffect(() => {
69
- const container = scrollContainerRef.current;
70
- if (!container || !autoScroll)
71
- return;
72
- requestAnimationFrame(() => {
73
- if (!bottomRef.current || !container)
74
- return;
75
- const { scrollHeight } = container;
76
- const isNewContent = scrollHeight !== lastScrollHeightRef.current;
77
- const behavior = isNewContent ? 'smooth' : 'instant';
78
- bottomRef.current.scrollIntoView({
79
- behavior: behavior,
80
- });
81
- lastScrollHeightRef.current = scrollHeight;
82
- });
83
- }, [messages, autoScroll]);
84
- const scrollToBottom = () => {
85
- setAutoScroll(true);
86
- bottomRef.current?.scrollIntoView({ behavior: 'smooth' });
87
- };
88
- // Memoize filtered messages
89
- const filteredMessages = useMemo(() => {
90
- return messages.filter((message) => message.role !== 'system');
91
- }, [messages]);
92
- // Default empty state
93
- const defaultEmptyState = (_jsx("div", { className: "flex-1 flex items-center justify-center text-muted-foreground text-sm p-6", children: "No messages yet. Start a conversation below." }));
94
- if (messages.length === 0) {
95
- return (_jsx("div", { className: `flex flex-col ${className}`, children: emptyState || defaultEmptyState }));
96
- }
97
- return (_jsxs("div", { className: `relative flex flex-col ${className}`, children: [leanHeader && showLeanHeaderComputed && (_jsx("div", { className: "sticky top-0 z-30", children: leanHeader })), _jsxs("div", { ref: scrollContainerRef, className: "flex-1 overflow-y-auto overflow-x-hidden", onScroll: handleScroll, children: [header && _jsx("div", { ref: headerRef, children: header }), _jsx("div", { className: `p-6 pb-32 ${messagesClassName}`, children: _jsxs("div", { className: `${maxWidth} mx-auto space-y-6 w-full`, children: [filteredMessages.map((message, idx) => {
98
- const prevMessage = filteredMessages[idx - 1];
99
- const nextMessage = filteredMessages[idx + 1];
100
- const isLastMessage = idx === filteredMessages.length - 1;
101
- if (message.role === 'user') {
102
- return (_jsx(UserMessageGroup, { message: message, isFirst: idx === 0 }, message.id));
103
- }
104
- if (message.role === 'assistant') {
105
- const showHeader = !prevMessage || prevMessage.role !== 'assistant';
106
- const nextIsAssistant = nextMessage && nextMessage.role === 'assistant';
107
- return (_jsx(AssistantMessageGroup, { message: message, showHeader: showHeader, hasNextAssistantMessage: nextIsAssistant, isLastMessage: isLastMessage }, message.id));
108
- }
109
- return null;
110
- }), _jsx("div", { ref: bottomRef })] }) })] }), !autoScroll && (_jsxs("button", { type: "button", onClick: scrollToBottom, className: "absolute bottom-4 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 bg-background border border-border rounded-full shadow-lg hover:bg-muted/50 transition-all text-sm text-foreground z-10", children: [_jsx(ArrowDown, { className: "w-4 h-4" }), _jsx("span", { children: "Scroll to bottom" })] }))] }));
111
- });
112
- //# sourceMappingURL=MessageThreadView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MessageThreadView.js","sourceRoot":"","sources":["../../../src/components/messages/MessageThreadView.tsx"],"names":[],"mappings":"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"}