@rodrigocoliveira/agno-react 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/components/conversation.d.ts +5 -2
- package/dist/ui/components/conversation.d.ts.map +1 -1
- package/dist/ui/composed/agno-chat/messages.d.ts +25 -2
- package/dist/ui/composed/agno-chat/messages.d.ts.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/types.d.ts +26 -0
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ui.js +35 -9
- package/dist/ui.js.map +4 -4
- package/dist/ui.mjs +36 -10
- package/dist/ui.mjs.map +4 -4
- package/package.json +3 -3
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { Button } from '../primitives/button';
|
|
2
2
|
import type { ComponentProps, ReactNode } from 'react';
|
|
3
3
|
import { StickToBottom } from 'use-stick-to-bottom';
|
|
4
|
-
|
|
5
|
-
export
|
|
4
|
+
import type { ScrollBehaviorConfig } from '../types';
|
|
5
|
+
export type ConversationProps = ComponentProps<typeof StickToBottom> & {
|
|
6
|
+
scrollBehavior?: ScrollBehaviorConfig;
|
|
7
|
+
};
|
|
8
|
+
export declare const Conversation: ({ className, scrollBehavior, ...props }: ConversationProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
9
|
export type ConversationContentProps = ComponentProps<typeof StickToBottom.Content>;
|
|
7
10
|
export declare const ConversationContent: ({ className, ...props }: ConversationContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
11
|
export type ConversationEmptyStateProps = ComponentProps<'div'> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/ui/components/conversation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../src/ui/components/conversation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,GAAG;IACrE,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,yCAAyC,iBAAiB,4CAgBtF,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAEpF,eAAO,MAAM,mBAAmB,GAAI,yBAAyB,wBAAwB,4CAEpF,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,6DAOpC,2BAA2B,4CAe7B,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,6BAA6B,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAE1E,eAAO,MAAM,wBAAwB,GAAI,yBAAyB,6BAA6B,oDAqB9F,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ChatMessage, ToolCall } from '@rodrigocoliveira/agno-types';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
3
|
import type { ToolResultRenderer } from './context';
|
|
4
|
-
import type { AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions, SuggestedPrompt } from '../../types';
|
|
4
|
+
import type { AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions, SuggestedPrompt, ScrollBehaviorConfig } from '../../types';
|
|
5
5
|
export interface AgnoChatMessagesProps {
|
|
6
6
|
className?: string;
|
|
7
7
|
renderMessage?: (message: ChatMessage, index: number) => ReactNode;
|
|
@@ -43,6 +43,29 @@ export interface AgnoChatMessagesProps {
|
|
|
43
43
|
showThinkingIndicator?: boolean;
|
|
44
44
|
/** Custom component to render instead of the default thinking indicator */
|
|
45
45
|
renderThinkingIndicator?: ReactNode;
|
|
46
|
+
/**
|
|
47
|
+
* Customize the auto-scroll behavior (powered by `use-stick-to-bottom`).
|
|
48
|
+
* Defaults to `{ initial: 'smooth', resize: 'instant' }` — smooth initial
|
|
49
|
+
* scroll, instant snap during streaming to avoid spring oscillation on
|
|
50
|
+
* markdown/code/table reflow.
|
|
51
|
+
*/
|
|
52
|
+
scrollBehavior?: ScrollBehaviorConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Controls the floating "scroll to bottom" button that appears when the
|
|
55
|
+
* user scrolls up during streaming (the default affordance to resume
|
|
56
|
+
* following the stream).
|
|
57
|
+
*
|
|
58
|
+
* - `undefined` (default) → render the built-in button
|
|
59
|
+
* - `false` → hide the button entirely
|
|
60
|
+
* - `true` → render the built-in button (same as default; useful for clarity)
|
|
61
|
+
* - `{ className }` → render the built-in button with custom classes
|
|
62
|
+
* - `ReactNode` → render your own element instead. Your component will be
|
|
63
|
+
* placed inside `<Conversation>`, so it can use `useStickToBottomContext()`
|
|
64
|
+
* to read `isAtBottom` and call `scrollToBottom()`.
|
|
65
|
+
*/
|
|
66
|
+
scrollToBottomButton?: boolean | ReactNode | {
|
|
67
|
+
className?: string;
|
|
68
|
+
};
|
|
46
69
|
}
|
|
47
|
-
export declare function AgnoChatMessages({ className, renderMessage, avatars, actions, showReasoning, showReferences, showTimestamp, showGenerativeUI, showToolCalls, showFilePreview, showImageLightbox, renderToolCall, renderContent, renderMedia, formatTimestamp, messageClassNames, emptyState, suggestedPrompts, children, showThinkingIndicator, renderThinkingIndicator, toolResultRenderers: propToolResultRenderers, }: AgnoChatMessagesProps): import("react/jsx-runtime").JSX.Element;
|
|
70
|
+
export declare function AgnoChatMessages({ className, renderMessage, avatars, actions, showReasoning, showReferences, showTimestamp, showGenerativeUI, showToolCalls, showFilePreview, showImageLightbox, renderToolCall, renderContent, renderMedia, formatTimestamp, messageClassNames, emptyState, suggestedPrompts, children, showThinkingIndicator, renderThinkingIndicator, toolResultRenderers: propToolResultRenderers, scrollBehavior, scrollToBottomButton, }: AgnoChatMessagesProps): import("react/jsx-runtime").JSX.Element;
|
|
48
71
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../src/ui/composed/agno-chat/messages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../src/ui/composed/agno-chat/messages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAa1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAEnE,mCAAmC;IACnC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,mEAAmE;IACnE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAG7B,2CAA2C;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8CAA8C;IAC9C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9D,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC;IACpD,uCAAuC;IACvC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC;IAClD,iCAAiC;IACjC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACzC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAGzD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,+FAA+F;IAC/F,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,SAAS,CAAC;IAGpC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAGtC;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAsBD,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,aAAa,EACb,OAAO,EACP,OAAO,EAEP,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EAEjB,UAAU,EACV,gBAAkC,EAClC,QAAQ,EAER,qBAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,EAAE,uBAAuB,EAC5C,cAAc,EACd,oBAAoB,GACrB,EAAE,qBAAqB,2CAyGvB"}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { cn } from './lib/cn';
|
|
|
6
6
|
export { formatSmartTimestamp, formatFullTimestamp } from './lib/format-timestamp';
|
|
7
7
|
export { getFilePreviewType, formatFileSize, getFileExtension, isPreviewable } from './lib/file-utils';
|
|
8
8
|
export type { FilePreviewType } from './lib/file-utils';
|
|
9
|
-
export type { ToolState, FileAttachment, ChatStatus, SuggestedPrompt, FileUploadConfig, AudioConfig, AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions, AgnoActionsVisibility, } from './types';
|
|
9
|
+
export type { ToolState, FileAttachment, ChatStatus, SuggestedPrompt, FileUploadConfig, AudioConfig, AgnoMessageClassNames, AgnoMessageAvatars, AgnoMessageActions, AgnoActionsVisibility, ScrollBehaviorConfig, } from './types';
|
|
10
10
|
export { Button, buttonVariants } from './primitives/button';
|
|
11
11
|
export type { ButtonProps } from './primitives/button';
|
|
12
12
|
export { Badge, badgeVariants } from './primitives/badge';
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvG,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,YAAY,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/types.d.ts
CHANGED
|
@@ -74,6 +74,32 @@ export type AgnoMessageActions = {
|
|
|
74
74
|
/** When to show the action buttons (default: 'visible') */
|
|
75
75
|
visibility?: AgnoActionsVisibility;
|
|
76
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Configuration for the chat scroll behavior (powered by `use-stick-to-bottom`).
|
|
79
|
+
*
|
|
80
|
+
* Defaults: `{ initial: 'smooth', resize: 'instant' }`.
|
|
81
|
+
*
|
|
82
|
+
* - `initial` controls the first scroll-to-bottom on mount (e.g., when a session
|
|
83
|
+
* is loaded). Smooth gives a nice arrival animation.
|
|
84
|
+
* - `resize` controls scrolling while content grows (e.g., during streaming).
|
|
85
|
+
* `'instant'` snaps to the bottom on each chunk and avoids the spring-chase
|
|
86
|
+
* oscillation that markdown/table/code reflows can produce.
|
|
87
|
+
*
|
|
88
|
+
* Spring physics knobs (`damping`, `stiffness`, `mass`) only apply when the
|
|
89
|
+
* matching mode is `'smooth'` or a numeric duration.
|
|
90
|
+
*/
|
|
91
|
+
export type ScrollBehaviorConfig = {
|
|
92
|
+
/** How to scroll on first mount. Default: `'smooth'`. */
|
|
93
|
+
initial?: 'smooth' | 'instant' | 'auto';
|
|
94
|
+
/** How to scroll when content resizes (streaming). Default: `'instant'`. */
|
|
95
|
+
resize?: 'smooth' | 'instant' | 'auto';
|
|
96
|
+
/** Spring damping (default `0.7` in the library). */
|
|
97
|
+
damping?: number;
|
|
98
|
+
/** Spring stiffness (default `0.05` in the library). */
|
|
99
|
+
stiffness?: number;
|
|
100
|
+
/** Spring mass (default `1.25` in the library). */
|
|
101
|
+
mass?: number;
|
|
102
|
+
};
|
|
77
103
|
export type AgnoMessageClassNames = {
|
|
78
104
|
root?: string;
|
|
79
105
|
user?: {
|
package/dist/ui/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1C,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,OAAO,GACP,gBAAgB,GAChB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,8BAA8B,EAAE,WAAW,KAAK,SAAS,CAAC;IAClF,mDAAmD;IACnD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,8BAA8B,EAAE,WAAW,KAAK,SAAS,CAAC;IACvF,2DAA2D;IAC3D,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -943,12 +943,20 @@ var import_react = require("react");
|
|
|
943
943
|
var import_use_stick_to_bottom = require("use-stick-to-bottom");
|
|
944
944
|
var import_use_stick_to_bottom2 = require("use-stick-to-bottom");
|
|
945
945
|
var jsx_runtime13 = require("react/jsx-runtime");
|
|
946
|
-
var Conversation = ({ className, ...props }) =>
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
946
|
+
var Conversation = ({ className, scrollBehavior, ...props }) => {
|
|
947
|
+
const initial = scrollBehavior?.initial ?? "smooth";
|
|
948
|
+
const resize = scrollBehavior?.resize ?? "instant";
|
|
949
|
+
return /* @__PURE__ */ jsx_runtime13.jsx(import_use_stick_to_bottom.StickToBottom, {
|
|
950
|
+
className: cn("relative flex-1 overflow-y-auto", className),
|
|
951
|
+
initial,
|
|
952
|
+
resize,
|
|
953
|
+
...scrollBehavior?.damping !== undefined && { damping: scrollBehavior.damping },
|
|
954
|
+
...scrollBehavior?.stiffness !== undefined && { stiffness: scrollBehavior.stiffness },
|
|
955
|
+
...scrollBehavior?.mass !== undefined && { mass: scrollBehavior.mass },
|
|
956
|
+
role: "log",
|
|
957
|
+
...props
|
|
958
|
+
});
|
|
959
|
+
};
|
|
952
960
|
var ConversationContent = ({ className, ...props }) => /* @__PURE__ */ jsx_runtime13.jsx(import_use_stick_to_bottom.StickToBottom.Content, {
|
|
953
961
|
className: cn("p-4", className),
|
|
954
962
|
...props
|
|
@@ -3800,12 +3808,29 @@ function AgnoChatMessages({
|
|
|
3800
3808
|
children,
|
|
3801
3809
|
showThinkingIndicator = true,
|
|
3802
3810
|
renderThinkingIndicator,
|
|
3803
|
-
toolResultRenderers: propToolResultRenderers
|
|
3811
|
+
toolResultRenderers: propToolResultRenderers,
|
|
3812
|
+
scrollBehavior,
|
|
3813
|
+
scrollToBottomButton
|
|
3804
3814
|
}) {
|
|
3805
3815
|
const { messages, isStreaming, toolResultRenderers: contextToolResultRenderers } = useAgnoChatContext();
|
|
3806
3816
|
const toolResultRenderers = propToolResultRenderers ?? contextToolResultRenderers;
|
|
3807
3817
|
const lastMessage = messages[messages.length - 1];
|
|
3808
3818
|
const isThinking = showThinkingIndicator && isStreaming && (!lastMessage || lastMessage.role !== "user") && !lastMessage?.content;
|
|
3819
|
+
const resolvedScrollButton = (() => {
|
|
3820
|
+
if (scrollToBottomButton === false)
|
|
3821
|
+
return null;
|
|
3822
|
+
if (scrollToBottomButton === undefined || scrollToBottomButton === true) {
|
|
3823
|
+
return /* @__PURE__ */ jsx_runtime39.jsx(ConversationScrollButton, {});
|
|
3824
|
+
}
|
|
3825
|
+
if (import_react17.isValidElement(scrollToBottomButton))
|
|
3826
|
+
return scrollToBottomButton;
|
|
3827
|
+
if (typeof scrollToBottomButton === "object" && scrollToBottomButton !== null && "className" in scrollToBottomButton) {
|
|
3828
|
+
return /* @__PURE__ */ jsx_runtime39.jsx(ConversationScrollButton, {
|
|
3829
|
+
className: scrollToBottomButton.className
|
|
3830
|
+
});
|
|
3831
|
+
}
|
|
3832
|
+
return scrollToBottomButton;
|
|
3833
|
+
})();
|
|
3809
3834
|
let lastAssistantIndex = -1;
|
|
3810
3835
|
for (let i = messages.length - 1;i >= 0; i--) {
|
|
3811
3836
|
if (messages[i].role !== "user") {
|
|
@@ -3868,6 +3893,7 @@ function AgnoChatMessages({
|
|
|
3868
3893
|
});
|
|
3869
3894
|
return /* @__PURE__ */ jsx_runtime39.jsxs(Conversation, {
|
|
3870
3895
|
className: cn("relative flex-1 w-full", className),
|
|
3896
|
+
scrollBehavior,
|
|
3871
3897
|
children: [
|
|
3872
3898
|
/* @__PURE__ */ jsx_runtime39.jsx(ScrollOnNewUserMessage, {
|
|
3873
3899
|
messageCount: messages.length
|
|
@@ -3896,7 +3922,7 @@ function AgnoChatMessages({
|
|
|
3896
3922
|
})
|
|
3897
3923
|
]
|
|
3898
3924
|
}),
|
|
3899
|
-
|
|
3925
|
+
resolvedScrollButton
|
|
3900
3926
|
]
|
|
3901
3927
|
});
|
|
3902
3928
|
}
|
|
@@ -4043,4 +4069,4 @@ var AgnoChat = Object.assign(AgnoChatRoot, {
|
|
|
4043
4069
|
Input: AgnoChatInputArea
|
|
4044
4070
|
});
|
|
4045
4071
|
|
|
4046
|
-
//# debugId=
|
|
4072
|
+
//# debugId=81B6F63AF2B96BA664756E2164756E21
|