@admin-layout/tailwind-chat-pro 12.2.5-alpha.6 → 12.2.5-alpha.8
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/CHANGELOG.md +15 -0
- package/lib/components/messages-container-ui/MessagesContainerUI.d.ts +2 -2
- package/lib/components/messages-container-ui/MessagesContainerUI.d.ts.map +1 -1
- package/lib/components/messages-container-ui/ModernMessageGroup.d.ts +2 -0
- package/lib/components/messages-container-ui/ModernMessageGroup.d.ts.map +1 -1
- package/lib/components/messages-container-ui/ModernMessageGroup.js +7 -3
- package/lib/components/messages-container-ui/ModernMessageGroup.js.map +1 -1
- package/lib/components/messages-container-ui/PlanModeView.d.ts +2 -2
- package/lib/components/messages-container-ui/PlanModeView.d.ts.map +1 -1
- package/lib/components/messages-container-ui/PlanModeView.js +13 -4
- package/lib/components/messages-container-ui/PlanModeView.js.map +1 -1
- package/lib/components/messages-container-ui/index.d.ts +1 -1
- package/lib/components/messages-container-ui/index.d.ts.map +1 -1
- package/lib/components/messages-container-ui/modernStreaming.d.ts +2 -1
- package/lib/components/messages-container-ui/modernStreaming.d.ts.map +1 -1
- package/lib/components/messages-container-ui/modernStreaming.js +26 -9
- package/lib/components/messages-container-ui/modernStreaming.js.map +1 -1
- package/lib/components/messages-container-ui/types.d.ts +7 -0
- package/lib/components/messages-container-ui/types.d.ts.map +1 -1
- package/lib/components/messages-container-ui/useBubbleEntrance.d.ts +12 -0
- package/lib/components/messages-container-ui/useBubbleEntrance.d.ts.map +1 -0
- package/lib/components/messages-container-ui/useBubbleEntrance.js +36 -0
- package/lib/components/messages-container-ui/useBubbleEntrance.js.map +1 -0
- package/package.json +4 -4
- package/src/components/messages-container-ui/MessagesContainerUI.tsx +2 -2
- package/src/components/messages-container-ui/ModernMessageGroup.tsx +13 -3
- package/src/components/messages-container-ui/PlanModeView.tsx +26 -18
- package/src/components/messages-container-ui/index.ts +7 -1
- package/src/components/messages-container-ui/modernStreaming.tsx +20 -6
- package/src/components/messages-container-ui/types.ts +8 -0
- package/src/components/messages-container-ui/useBubbleEntrance.ts +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [12.2.5-alpha.8](https://github.com/CDEBase/admin-layout/compare/v12.2.5-alpha.7...v12.2.5-alpha.8) (2026-10-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **chat-pro:** render the stream in the finished assistant post's frame ([671fe1e](https://github.com/CDEBase/admin-layout/commit/671fe1e1d32360f2ddcd664b452a615430ef22b5))
|
|
11
|
+
- **chat-pro:** theme the plan-mode composer strip instead of hard-coding white ([a5cda8c](https://github.com/CDEBase/admin-layout/commit/a5cda8c69d9a99118cb7fb35f52fafe1ff2e7dc1))
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- **tailwind-chat-pro:** entrance motion for a just-sent user bubble ([7e0f94c](https://github.com/CDEBase/admin-layout/commit/7e0f94c06e2c78e47a7b101103f5592acd0d253f))
|
|
16
|
+
|
|
17
|
+
## [12.2.5-alpha.7](https://github.com/CDEBase/admin-layout/compare/v12.2.5-alpha.6...v12.2.5-alpha.7) (2026-10-02)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @admin-layout/tailwind-chat-pro
|
|
20
|
+
|
|
6
21
|
## [12.2.5-alpha.6](https://github.com/CDEBase/admin-layout/compare/v12.2.5-alpha.5...v12.2.5-alpha.6) (2026-10-02)
|
|
7
22
|
|
|
8
23
|
**Note:** Version bump only for package @admin-layout/tailwind-chat-pro
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PlanMessage, MessageGroupComponentType } from './types';
|
|
2
|
+
import type { PlanMessage, MessageGroupComponentType, StreamingRenderOptions } from './types';
|
|
3
3
|
import type { PlanModeViewInputToolbarProps } from './PlanModeView';
|
|
4
4
|
export interface MessagesContainerUIProps {
|
|
5
5
|
messages: PlanMessage[];
|
|
@@ -82,7 +82,7 @@ export interface MessagesContainerUIProps {
|
|
|
82
82
|
*/
|
|
83
83
|
MessageGroupComponent?: MessageGroupComponentType;
|
|
84
84
|
/** Optional: how to render the in-flight streaming assistant content (default: plain text). */
|
|
85
|
-
renderStreamingContent?: (content: string) => React.ReactNode;
|
|
85
|
+
renderStreamingContent?: (content: string, opts?: StreamingRenderOptions) => React.ReactNode;
|
|
86
86
|
/** Optional: override how a PlanMessage is mapped to the post shape handed to the renderer. */
|
|
87
87
|
mapMessageToPost?: (msg: PlanMessage, currentUser: MessagesContainerUIProps['currentUser']) => any;
|
|
88
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagesContainerUI.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/MessagesContainerUI.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MessagesContainerUI.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/MessagesContainerUI.tsx"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,8 @@ export declare const FormattedMessageContent: React.FC<{
|
|
|
41
41
|
*/
|
|
42
42
|
showCopyDownloadOnCodeBlock?: boolean;
|
|
43
43
|
}>;
|
|
44
|
+
/** Shared with the streaming frame so a landing stream doesn't shift. */
|
|
45
|
+
export declare const assistantFrameClass: (isDesktopView: boolean, isSmallScreen: boolean) => "mb-4 px-4 py-3" | "mb-2 px-2 py-1" | "mb-3 px-3 py-1";
|
|
44
46
|
export declare const ModernMessageGroupComponent: React.FC<ModernMessageGroupProps>;
|
|
45
47
|
export {};
|
|
46
48
|
//# sourceMappingURL=ModernMessageGroup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModernMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/ModernMessageGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG9D,OAAO,KAAuC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ModernMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/ModernMessageGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG9D,OAAO,KAAuC,MAAM,OAAO,CAAC;AA+B5D,wBAAgB,wBAAwB,CAAC,EACrC,QAAQ,EACR,eAAe,GAClB,EAAE;IACC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,2CAUA;AAuYD,UAAU,uBAAuB;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,iGAAiG;IACjG,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAiBD,eAAO,MAAM,0BAA0B,GAAI,UAAU,KAAK,EAAE,EAAE,6BAAwB,KAAG,KAAK,EAAE,EAgC/F,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAyDhF,CAAC;AA+VF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,CA8DA,CAAC;AAGF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC,CA4SA,CAAC;AA+CF,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAAI,eAAe,OAAO,EAAE,eAAe,OAAO,2DACQ,CAAC;AAwe3F,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA0DzE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Slot}from'@common-stack/components-pro';import {AiAgentMessageRole}from'common';import {format,differenceInMinutes}from'date-fns';import {marked}from'marked';import React,{useMemo,useEffect,useState}from'react';import ReactMarkdown from'react-markdown';import remarkBreaks from'remark-breaks';import remarkGfm from'remark-gfm';import {MessengerSlotFillNameEnum}from'./messenger-slot-fill-name-enum.js';import {FilesList}from'./FilesList.js';import {ErrorFixCard}from'./ErrorFixCard.js';// Configure marked for better markdown rendering
|
|
1
|
+
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Slot}from'@common-stack/components-pro';import {AiAgentMessageRole}from'common';import {format,differenceInMinutes}from'date-fns';import {marked}from'marked';import React,{useMemo,useEffect,useState}from'react';import ReactMarkdown from'react-markdown';import remarkBreaks from'remark-breaks';import remarkGfm from'remark-gfm';import {MessengerSlotFillNameEnum}from'./messenger-slot-fill-name-enum.js';import {FilesList}from'./FilesList.js';import {ErrorFixCard}from'./ErrorFixCard.js';import {useBubbleEntrance}from'./useBubbleEntrance.js';// Configure marked for better markdown rendering
|
|
2
2
|
marked.setOptions({
|
|
3
3
|
breaks: true,
|
|
4
4
|
// Convert line breaks to <br>
|
|
@@ -1223,6 +1223,8 @@ const tryExtractBuilderBlocks = content => {
|
|
|
1223
1223
|
return null;
|
|
1224
1224
|
}
|
|
1225
1225
|
};
|
|
1226
|
+
/** Shared with the streaming frame so a landing stream doesn't shift. */
|
|
1227
|
+
const assistantFrameClass = (isDesktopView, isSmallScreen) => isDesktopView ? 'mb-4 px-4 py-3' : isSmallScreen ? 'mb-2 px-2 py-1' : 'mb-3 px-3 py-1';
|
|
1226
1228
|
const ModernMessageGroup = ({
|
|
1227
1229
|
author,
|
|
1228
1230
|
messages,
|
|
@@ -1275,7 +1277,7 @@ const ModernMessageGroup = ({
|
|
|
1275
1277
|
}
|
|
1276
1278
|
// For other messages (non-user), show the traditional group layout
|
|
1277
1279
|
return jsx("div", {
|
|
1278
|
-
className: `group transition-all duration-300 ease-in-out ${isDesktopView
|
|
1280
|
+
className: `group transition-all duration-300 ease-in-out ${assistantFrameClass(isDesktopView, isSmallScreen)} rounded-lg`,
|
|
1279
1281
|
children: jsx("div", {
|
|
1280
1282
|
className: `flex items-start ${isDesktopView ? 'space-x-4' : isSmallScreen ? 'space-x-2' : 'space-x-3'}`,
|
|
1281
1283
|
children: jsx("div", {
|
|
@@ -1320,6 +1322,7 @@ const ModernMessageBubble = ({
|
|
|
1320
1322
|
const isPlanMode = messageMode === 'plan';
|
|
1321
1323
|
const isLongUserMessage = !isAssistantRole && (message?.message?.length ?? 0) > USER_MESSAGE_COLLAPSE_CHAR_THRESHOLD;
|
|
1322
1324
|
const isCollapsed = isLongUserMessage && !expanded;
|
|
1325
|
+
const entranceRef = useBubbleEntrance(isOwnMessage && !isAssistantRole && message?.props?.animateEntry === true);
|
|
1323
1326
|
// For user messages, create a right-aligned layout with avatar and name
|
|
1324
1327
|
if (isOwnMessage) {
|
|
1325
1328
|
const authorName = message.author?.givenName && message.author?.familyName ? `${message.author.givenName} ${message.author.familyName}` : message.author?.username || 'You';
|
|
@@ -1336,6 +1339,7 @@ const ModernMessageBubble = ({
|
|
|
1336
1339
|
children: authorName
|
|
1337
1340
|
})
|
|
1338
1341
|
}), jsxs("div", {
|
|
1342
|
+
ref: entranceRef,
|
|
1339
1343
|
className: `${isAssistantRole ? 'text-sm' : USER_MESSAGE_TEXT_SIZE_CLASS} ${isAssistantRole ? 'cursor-pointer rounded-2xl border border-border bg-muted text-foreground px-4 py-2.5' : 'user-message rounded-[22px] rounded-br-[4px] px-4 py-3 bg-muted text-foreground shadow-sm'}`,
|
|
1340
1344
|
onClick: isAssistantRole ? handleClick : undefined,
|
|
1341
1345
|
dir: detectTextDirection(message?.message || ''),
|
|
@@ -1565,4 +1569,4 @@ const ModernMessageGroupComponent = ({
|
|
|
1565
1569
|
})
|
|
1566
1570
|
}, error.id))]
|
|
1567
1571
|
});
|
|
1568
|
-
};export{AssistantResponseWrapper,CodeFormatter,FormattedMessageContent,ModernMessageGroupComponent,detectContentType,groupMessagesByUserAndTime};//# sourceMappingURL=ModernMessageGroup.js.map
|
|
1572
|
+
};export{AssistantResponseWrapper,CodeFormatter,FormattedMessageContent,ModernMessageGroupComponent,assistantFrameClass,detectContentType,groupMessagesByUserAndTime};//# sourceMappingURL=ModernMessageGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModernMessageGroup.js","sources":["../../../src/components/messages-container-ui/ModernMessageGroup.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModernMessageGroup.js","sources":["../../../src/components/messages-container-ui/ModernMessageGroup.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { MessageGroupComponentType, PlanMessage } from './types';
|
|
2
|
+
import type { MessageGroupComponentType, PlanMessage, StreamingRenderOptions } from './types';
|
|
3
3
|
export interface PlanModeViewInputToolbarProps {
|
|
4
4
|
value: string;
|
|
5
5
|
onChange: (text: string) => void;
|
|
@@ -94,7 +94,7 @@ export interface PlanModeViewProps {
|
|
|
94
94
|
* Optional: how to render the in-flight streaming assistant content. Defaults to a
|
|
95
95
|
* plain-text bubble. Inject a richer renderer (markdown / code) if desired.
|
|
96
96
|
*/
|
|
97
|
-
renderStreamingContent?: (content: string) => React.ReactNode;
|
|
97
|
+
renderStreamingContent?: (content: string, opts?: StreamingRenderOptions) => React.ReactNode;
|
|
98
98
|
/**
|
|
99
99
|
* Optional: override how a PlanMessage is mapped to the post shape handed to
|
|
100
100
|
* `MessageGroupComponent`. Defaults to {@link defaultPlanMessageToPost}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanModeView.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAGlG,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"PlanModeView.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -264,16 +264,25 @@ function PlanModeView({
|
|
|
264
264
|
onFixError: onFixError,
|
|
265
265
|
showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
|
|
266
266
|
})
|
|
267
|
-
}, post.id)), streamingContent?.trim() &&
|
|
267
|
+
}, post.id)), streamingContent?.trim() && (renderStreamingContent ?
|
|
268
|
+
// A custom renderer draws the post's own frame; this bubble belongs to the plain-text default.
|
|
269
|
+
jsx("div", {
|
|
270
|
+
className: clsx('mb-3', postContainerClassName),
|
|
271
|
+
children: renderStreamingContent(streamingContent, {
|
|
272
|
+
isDesktopView,
|
|
273
|
+
isSmallScreen,
|
|
274
|
+
showCopyDownloadOnCodeBlock
|
|
275
|
+
})
|
|
276
|
+
}) : jsx("div", {
|
|
268
277
|
className: "flex justify-start",
|
|
269
278
|
children: jsx("div", {
|
|
270
279
|
className: clsx('max-w-[85%] w-full rounded-2xl px-4 py-3 text-gray-900', ASSISTANT_BUBBLE_BG, showMessageBubbleBorder && `border ${BORDER_COLOR}`),
|
|
271
280
|
children: jsx("div", {
|
|
272
281
|
className: "min-w-0 text-[15px] leading-relaxed break-words whitespace-pre-wrap",
|
|
273
|
-
children:
|
|
282
|
+
children: streamingContent
|
|
274
283
|
})
|
|
275
284
|
})
|
|
276
|
-
}), isLoading && jsx("div", {
|
|
285
|
+
})), isLoading && jsx("div", {
|
|
277
286
|
className: "flex justify-start",
|
|
278
287
|
children: jsxs("div", {
|
|
279
288
|
className: "rounded-2xl px-4 py-3 bg-gray-100 border border-gray-200 flex items-center gap-2",
|
|
@@ -287,7 +296,7 @@ function PlanModeView({
|
|
|
287
296
|
})]
|
|
288
297
|
})
|
|
289
298
|
}), shouldRenderBottomToolbar && jsx("div", {
|
|
290
|
-
className: "border-t border-
|
|
299
|
+
className: "border-t border-border bg-background p-3",
|
|
291
300
|
children: renderToolbar(inputToolbarProps)
|
|
292
301
|
})]
|
|
293
302
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanModeView.js","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlanModeView.js","sources":["../../../src/components/messages-container-ui/PlanModeView.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
@@ -8,5 +8,5 @@ export type { DefaultInputToolBarProps } from './DefaultInputToolBar';
|
|
|
8
8
|
export { ModernMessageGroupComponent, FormattedMessageContent, CodeFormatter, detectContentType, } from './ModernMessageGroup';
|
|
9
9
|
export { renderModernStreamingContent } from './modernStreaming';
|
|
10
10
|
export { MessengerSlotFillNameEnum } from './messenger-slot-fill-name-enum';
|
|
11
|
-
export type { PlanMessage, CurrentUser, MessageGroupRenderProps, MessageGroupComponentType } from './types';
|
|
11
|
+
export type { PlanMessage, CurrentUser, MessageGroupRenderProps, MessageGroupComponentType, StreamingRenderOptions, } from './types';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EACR,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACzB,MAAM,SAAS,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { StreamingRenderOptions } from './types';
|
|
2
3
|
/**
|
|
3
4
|
* Renders in-flight streaming assistant content with the rich Modern renderer:
|
|
4
5
|
* raw-code content goes through {@link CodeFormatter}, everything else through
|
|
@@ -7,5 +8,5 @@ import React from 'react';
|
|
|
7
8
|
* Pass this as `MessagesContainerUI` / `PlanModeView`'s `renderStreamingContent` to keep
|
|
8
9
|
* markdown / code rendering while streaming (the base default is plain text).
|
|
9
10
|
*/
|
|
10
|
-
export declare function renderModernStreamingContent(content: string,
|
|
11
|
+
export declare function renderModernStreamingContent(content: string, opts?: StreamingRenderOptions): React.ReactNode;
|
|
11
12
|
//# sourceMappingURL=modernStreaming.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modernStreaming.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/modernStreaming.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"modernStreaming.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/modernStreaming.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B,GAAG,KAAK,CAAC,SAAS,CAmBhH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsx}from'react/jsx-runtime';import {detectContentType,CodeFormatter,FormattedMessageContent}from'./ModernMessageGroup.js';/**
|
|
1
|
+
import {jsx}from'react/jsx-runtime';import {detectContentType,CodeFormatter,FormattedMessageContent,assistantFrameClass}from'./ModernMessageGroup.js';/**
|
|
2
2
|
* Renders in-flight streaming assistant content with the rich Modern renderer:
|
|
3
3
|
* raw-code content goes through {@link CodeFormatter}, everything else through
|
|
4
4
|
* {@link FormattedMessageContent} (markdown + embedded code blocks).
|
|
@@ -6,12 +6,29 @@ import {jsx}from'react/jsx-runtime';import {detectContentType,CodeFormatter,Form
|
|
|
6
6
|
* Pass this as `MessagesContainerUI` / `PlanModeView`'s `renderStreamingContent` to keep
|
|
7
7
|
* markdown / code rendering while streaming (the base default is plain text).
|
|
8
8
|
*/
|
|
9
|
-
function renderModernStreamingContent(content,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
function renderModernStreamingContent(content, opts = {}) {
|
|
10
|
+
const {
|
|
11
|
+
isDesktopView = false,
|
|
12
|
+
isSmallScreen = false,
|
|
13
|
+
showCopyDownloadOnCodeBlock = true
|
|
14
|
+
} = opts;
|
|
15
|
+
return (
|
|
16
|
+
// Same frame as ModernMessageGroup's assistant post, so nothing restyles when the stream lands.
|
|
17
|
+
jsx("div", {
|
|
18
|
+
className: `group rounded-lg ${assistantFrameClass(isDesktopView, isSmallScreen)}`,
|
|
19
|
+
children: jsx("div", {
|
|
20
|
+
className: "min-w-0 overflow-hidden py-2",
|
|
21
|
+
children: jsx("div", {
|
|
22
|
+
className: "min-w-0 relative max-w-full w-full text-foreground",
|
|
23
|
+
children: detectContentType(content) === 'code' ? jsx(CodeFormatter, {
|
|
24
|
+
content: content,
|
|
25
|
+
showCopyDownload: showCopyDownloadOnCodeBlock
|
|
26
|
+
}) : jsx(FormattedMessageContent, {
|
|
27
|
+
content: content,
|
|
28
|
+
showCopyDownloadOnCodeBlock: showCopyDownloadOnCodeBlock
|
|
29
|
+
})
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
);
|
|
17
34
|
}export{renderModernStreamingContent};//# sourceMappingURL=modernStreaming.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modernStreaming.js","sources":["../../../src/components/messages-container-ui/modernStreaming.tsx"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"modernStreaming.js","sources":["../../../src/components/messages-container-ui/modernStreaming.tsx"],"sourcesContent":[null],"names":[],"mappings":"sJAIA;;;;;;;AAOG;SACa,4BAA4B,CAAC,OAAe,EAAE,OAA+B,EAAE,EAAA;AAC3F,EAAA,MAAA;IACA,aAAO,GAAA,KAAA;IACH,aAAA,GAAA,KAAA;AACA,IAAA,2BAAgB,GAAA;AAexB,GAAC,GAAA,IAAA;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -11,6 +11,7 @@ export interface PlanMessage {
|
|
|
11
11
|
createdAt?: Date | string;
|
|
12
12
|
/** Optional: pass through to the injected message-group renderer (propsConfiguration, props, files, etc.) */
|
|
13
13
|
propsConfiguration?: any;
|
|
14
|
+
/** `props.animateEntry: true` plays the just-sent entrance on a user bubble (see useBubbleEntrance). */
|
|
14
15
|
props?: any;
|
|
15
16
|
files?: any;
|
|
16
17
|
author?: any;
|
|
@@ -60,4 +61,10 @@ export interface MessageGroupRenderProps {
|
|
|
60
61
|
}
|
|
61
62
|
/** The injectable message-group renderer. Defaults to a plain-text bubble renderer. */
|
|
62
63
|
export type MessageGroupComponentType = React.ComponentType<MessageGroupRenderProps>;
|
|
64
|
+
/** What `renderStreamingContent` gets to frame the stream like the post it becomes. */
|
|
65
|
+
export interface StreamingRenderOptions {
|
|
66
|
+
isDesktopView?: boolean;
|
|
67
|
+
isSmallScreen?: boolean;
|
|
68
|
+
showCopyDownloadOnCodeBlock?: boolean;
|
|
69
|
+
}
|
|
63
70
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,6GAA6G;IAC7G,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,WAAW,6BAA6B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC,iFAAiF;IACjF,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,uFAAuF;AACvF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,6GAA6G;IAC7G,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACzB,wGAAwG;IACxG,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,WAAW,6BAA6B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC,iFAAiF;IACjF,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,uFAAuF;AACvF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;AAErF,uFAAuF;AACvF,MAAM,WAAW,sBAAsB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The entrance a message plays when the user has just sent it (a post with
|
|
3
|
+
* `props.animateEntry`). History, chat switches and re-renders never animate:
|
|
4
|
+
* the host flags only the bubble it just appended, and the decision is taken
|
|
5
|
+
* once at mount so the flag going away later cannot cut or replay it.
|
|
6
|
+
*
|
|
7
|
+
* Transform and opacity only, so it runs on the compositor and never moves the
|
|
8
|
+
* layout around it. Runs before paint, so the bubble never flashes in place
|
|
9
|
+
* first. Reduced-motion users get the bubble with no motion.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useBubbleEntrance<T extends HTMLElement>(requested: boolean): import("react").RefObject<T>;
|
|
12
|
+
//# sourceMappingURL=useBubbleEntrance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBubbleEntrance.d.ts","sourceRoot":"","sources":["../../../src/components/messages-container-ui/useBubbleEntrance.ts"],"names":[],"mappings":"AASA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,WAAW,EAAE,SAAS,EAAE,OAAO,gCAW1E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {useRef,useState,useLayoutEffect}from'react';/** Rises out of the composer toward its tail corner; ease-out so it lands softly. */
|
|
2
|
+
const KEYFRAMES = [{
|
|
3
|
+
opacity: 0,
|
|
4
|
+
transform: 'translateY(12px) scale(0.96)',
|
|
5
|
+
transformOrigin: 'right bottom'
|
|
6
|
+
}, {
|
|
7
|
+
opacity: 1,
|
|
8
|
+
transform: 'translateY(0) scale(1)',
|
|
9
|
+
transformOrigin: 'right bottom'
|
|
10
|
+
}];
|
|
11
|
+
const TIMING = {
|
|
12
|
+
duration: 320,
|
|
13
|
+
easing: 'cubic-bezier(0.22, 1, 0.36, 1)'
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The entrance a message plays when the user has just sent it (a post with
|
|
17
|
+
* `props.animateEntry`). History, chat switches and re-renders never animate:
|
|
18
|
+
* the host flags only the bubble it just appended, and the decision is taken
|
|
19
|
+
* once at mount so the flag going away later cannot cut or replay it.
|
|
20
|
+
*
|
|
21
|
+
* Transform and opacity only, so it runs on the compositor and never moves the
|
|
22
|
+
* layout around it. Runs before paint, so the bubble never flashes in place
|
|
23
|
+
* first. Reduced-motion users get the bubble with no motion.
|
|
24
|
+
*/
|
|
25
|
+
function useBubbleEntrance(requested) {
|
|
26
|
+
const ref = useRef(null);
|
|
27
|
+
const [play] = useState(requested);
|
|
28
|
+
useLayoutEffect(() => {
|
|
29
|
+
const el = ref.current;
|
|
30
|
+
if (!play || !el || typeof el.animate !== 'function') return undefined;
|
|
31
|
+
if (window.matchMedia?.('(prefers-reduced-motion: reduce)').matches) return undefined;
|
|
32
|
+
const animation = el.animate(KEYFRAMES, TIMING);
|
|
33
|
+
return () => animation.cancel();
|
|
34
|
+
}, [play]);
|
|
35
|
+
return ref;
|
|
36
|
+
}export{useBubbleEntrance};//# sourceMappingURL=useBubbleEntrance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBubbleEntrance.js","sources":["../../../src/components/messages-container-ui/useBubbleEntrance.ts"],"sourcesContent":[null],"names":[],"mappings":"oDAEA;AACA,MAAM,SAAS,GAAe,CAAA;SACxB,EAAA,CAAA;WACA,EAAO,8BAAgB;EAC3B,eAAA,EAAA;AACF,CAAA,EAAA;AAEA,EAAA,OAAA,EAAA,CAAA;;;;;;;;;AASG;AACH;AACI;;;AAGI;;AACsD;;AACe,SAAA,iBAAiB,CAAA,SAAA,EAAA;QACtF,GAAA,GAAM,MAAA,CAAA,IAAS,CAAG;AAClB,EAAA,MAAA,CAAA,IAAA,CAAA,qBAAuB,CAAA;AAC3B,EAAA,eAAW,CAAA,MAAA;AACX,IAAA,MAAA,KAAW,GAAA,CAAA,OAAA;AACf,IAAC,IAAA,CAAA,IAAA,IAAA,CAAA,EAAA,IAAA,OAAA,EAAA,CAAA,OAAA,KAAA,UAAA,EAAA,OAAA,SAAA;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@admin-layout/tailwind-chat-pro",
|
|
3
|
-
"version": "12.2.5-alpha.
|
|
3
|
+
"version": "12.2.5-alpha.8",
|
|
4
4
|
"description": "Customizable base chat / messages container UI (plan mode). The message renderer is injectable, so consumers plug in their own message-group component.",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"watch": "yarn build:lib:watch"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@admin-layout/tailwind-ui": "12.2.5-alpha.
|
|
24
|
+
"@admin-layout/tailwind-ui": "12.2.5-alpha.7",
|
|
25
25
|
"clsx": "^2.1.1",
|
|
26
26
|
"date-fns": "^4.1.0",
|
|
27
27
|
"marked": "7.0.5",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"common": "12.2.5-alpha.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@admin-layout/tailwind-ui": "12.2.5-alpha.
|
|
36
|
+
"@admin-layout/tailwind-ui": "12.2.5-alpha.7",
|
|
37
37
|
"@common-stack/components-pro": "*",
|
|
38
38
|
"common": "12.2.5-alpha.2",
|
|
39
39
|
"react": ">=18"
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"typescript": {
|
|
45
45
|
"definition": "lib/index.d.ts"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "e58c330d4db47ba6bc8df21982d189ab29a6b5bd"
|
|
48
48
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import { PlanModeView } from './PlanModeView';
|
|
4
|
-
import type { PlanMessage, MessageGroupComponentType } from './types';
|
|
4
|
+
import type { PlanMessage, MessageGroupComponentType, StreamingRenderOptions } from './types';
|
|
5
5
|
import type { PlanModeViewInputToolbarProps } from './PlanModeView';
|
|
6
6
|
|
|
7
7
|
export interface MessagesContainerUIProps {
|
|
@@ -80,7 +80,7 @@ export interface MessagesContainerUIProps {
|
|
|
80
80
|
*/
|
|
81
81
|
MessageGroupComponent?: MessageGroupComponentType;
|
|
82
82
|
/** Optional: how to render the in-flight streaming assistant content (default: plain text). */
|
|
83
|
-
renderStreamingContent?: (content: string) => React.ReactNode;
|
|
83
|
+
renderStreamingContent?: (content: string, opts?: StreamingRenderOptions) => React.ReactNode;
|
|
84
84
|
/** Optional: override how a PlanMessage is mapped to the post shape handed to the renderer. */
|
|
85
85
|
mapMessageToPost?: (msg: PlanMessage, currentUser: MessagesContainerUIProps['currentUser']) => any;
|
|
86
86
|
}
|
|
@@ -9,6 +9,7 @@ import remarkGfm from 'remark-gfm';
|
|
|
9
9
|
import { MessengerSlotFillNameEnum } from './messenger-slot-fill-name-enum';
|
|
10
10
|
import { FilesList } from './FilesList';
|
|
11
11
|
import { ErrorFixCard } from './ErrorFixCard';
|
|
12
|
+
import { useBubbleEntrance } from './useBubbleEntrance';
|
|
12
13
|
|
|
13
14
|
// Configure marked for better markdown rendering
|
|
14
15
|
marked.setOptions({
|
|
@@ -1343,6 +1344,10 @@ const tryExtractBuilderBlocks = (content?: string): any[] | null => {
|
|
|
1343
1344
|
}
|
|
1344
1345
|
};
|
|
1345
1346
|
|
|
1347
|
+
/** Shared with the streaming frame so a landing stream doesn't shift. */
|
|
1348
|
+
export const assistantFrameClass = (isDesktopView: boolean, isSmallScreen: boolean) =>
|
|
1349
|
+
isDesktopView ? 'mb-4 px-4 py-3' : isSmallScreen ? 'mb-2 px-2 py-1' : 'mb-3 px-3 py-1';
|
|
1350
|
+
|
|
1346
1351
|
const ModernMessageGroup: React.FC<MessageGroupProps> = ({
|
|
1347
1352
|
author,
|
|
1348
1353
|
messages,
|
|
@@ -1423,9 +1428,10 @@ const ModernMessageGroup: React.FC<MessageGroupProps> = ({
|
|
|
1423
1428
|
// For other messages (non-user), show the traditional group layout
|
|
1424
1429
|
return (
|
|
1425
1430
|
<div
|
|
1426
|
-
className={`group transition-all duration-300 ease-in-out ${
|
|
1427
|
-
isDesktopView
|
|
1428
|
-
|
|
1431
|
+
className={`group transition-all duration-300 ease-in-out ${assistantFrameClass(
|
|
1432
|
+
isDesktopView,
|
|
1433
|
+
isSmallScreen,
|
|
1434
|
+
)} rounded-lg`}
|
|
1429
1435
|
>
|
|
1430
1436
|
<div
|
|
1431
1437
|
className={`flex items-start ${
|
|
@@ -1523,6 +1529,9 @@ const ModernMessageBubble: React.FC<ModernMessageBubbleProps> = ({
|
|
|
1523
1529
|
const isLongUserMessage =
|
|
1524
1530
|
!isAssistantRole && ((message as any)?.message?.length ?? 0) > USER_MESSAGE_COLLAPSE_CHAR_THRESHOLD;
|
|
1525
1531
|
const isCollapsed = isLongUserMessage && !expanded;
|
|
1532
|
+
const entranceRef = useBubbleEntrance<HTMLDivElement>(
|
|
1533
|
+
isOwnMessage && !isAssistantRole && (message as any)?.props?.animateEntry === true,
|
|
1534
|
+
);
|
|
1526
1535
|
// For user messages, create a right-aligned layout with avatar and name
|
|
1527
1536
|
if (isOwnMessage) {
|
|
1528
1537
|
const authorName =
|
|
@@ -1542,6 +1551,7 @@ const ModernMessageBubble: React.FC<ModernMessageBubbleProps> = ({
|
|
|
1542
1551
|
|
|
1543
1552
|
{/* User message bubble (Image 2) */}
|
|
1544
1553
|
<div
|
|
1554
|
+
ref={entranceRef}
|
|
1545
1555
|
className={`${isAssistantRole ? 'text-sm' : USER_MESSAGE_TEXT_SIZE_CLASS} ${
|
|
1546
1556
|
isAssistantRole
|
|
1547
1557
|
? 'cursor-pointer rounded-2xl border border-border bg-muted text-foreground px-4 py-2.5'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import { AiAgentMessageRole, PostTypeEnum } from 'common';
|
|
4
|
-
import type { MessageGroupComponentType, PlanMessage } from './types';
|
|
4
|
+
import type { MessageGroupComponentType, PlanMessage, StreamingRenderOptions } from './types';
|
|
5
5
|
import { DefaultMessageGroup } from './DefaultMessageGroup';
|
|
6
6
|
import { DefaultInputToolBar } from './DefaultInputToolBar';
|
|
7
7
|
|
|
@@ -124,7 +124,7 @@ export interface PlanModeViewProps {
|
|
|
124
124
|
* Optional: how to render the in-flight streaming assistant content. Defaults to a
|
|
125
125
|
* plain-text bubble. Inject a richer renderer (markdown / code) if desired.
|
|
126
126
|
*/
|
|
127
|
-
renderStreamingContent?: (content: string) => React.ReactNode;
|
|
127
|
+
renderStreamingContent?: (content: string, opts?: StreamingRenderOptions) => React.ReactNode;
|
|
128
128
|
/**
|
|
129
129
|
* Optional: override how a PlanMessage is mapped to the post shape handed to
|
|
130
130
|
* `MessageGroupComponent`. Defaults to {@link defaultPlanMessageToPost}.
|
|
@@ -421,23 +421,31 @@ export function PlanModeView({
|
|
|
421
421
|
</div>
|
|
422
422
|
))}
|
|
423
423
|
|
|
424
|
-
{streamingContent?.trim() &&
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
424
|
+
{streamingContent?.trim() &&
|
|
425
|
+
(renderStreamingContent ? (
|
|
426
|
+
// A custom renderer draws the post's own frame; this bubble belongs to the plain-text default.
|
|
427
|
+
<div className={clsx('mb-3', postContainerClassName)}>
|
|
428
|
+
{renderStreamingContent(streamingContent, {
|
|
429
|
+
isDesktopView,
|
|
430
|
+
isSmallScreen,
|
|
431
|
+
showCopyDownloadOnCodeBlock,
|
|
432
|
+
})}
|
|
433
|
+
</div>
|
|
434
|
+
) : (
|
|
435
|
+
<div className="flex justify-start">
|
|
436
|
+
<div
|
|
437
|
+
className={clsx(
|
|
438
|
+
'max-w-[85%] w-full rounded-2xl px-4 py-3 text-gray-900',
|
|
439
|
+
ASSISTANT_BUBBLE_BG,
|
|
440
|
+
showMessageBubbleBorder && `border ${BORDER_COLOR}`,
|
|
441
|
+
)}
|
|
442
|
+
>
|
|
443
|
+
<div className="min-w-0 text-[15px] leading-relaxed break-words whitespace-pre-wrap">
|
|
444
|
+
{streamingContent}
|
|
445
|
+
</div>
|
|
437
446
|
</div>
|
|
438
447
|
</div>
|
|
439
|
-
|
|
440
|
-
)}
|
|
448
|
+
))}
|
|
441
449
|
|
|
442
450
|
{isLoading && (
|
|
443
451
|
<div className="flex justify-start">
|
|
@@ -450,7 +458,7 @@ export function PlanModeView({
|
|
|
450
458
|
</div>
|
|
451
459
|
</div>
|
|
452
460
|
{shouldRenderBottomToolbar && (
|
|
453
|
-
<div className="border-t border-
|
|
461
|
+
<div className="border-t border-border bg-background p-3">{renderToolbar(inputToolbarProps)}</div>
|
|
454
462
|
)}
|
|
455
463
|
</div>
|
|
456
464
|
);
|
|
@@ -15,4 +15,10 @@ export {
|
|
|
15
15
|
} from './ModernMessageGroup';
|
|
16
16
|
export { renderModernStreamingContent } from './modernStreaming';
|
|
17
17
|
export { MessengerSlotFillNameEnum } from './messenger-slot-fill-name-enum';
|
|
18
|
-
export type {
|
|
18
|
+
export type {
|
|
19
|
+
PlanMessage,
|
|
20
|
+
CurrentUser,
|
|
21
|
+
MessageGroupRenderProps,
|
|
22
|
+
MessageGroupComponentType,
|
|
23
|
+
StreamingRenderOptions,
|
|
24
|
+
} from './types';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { CodeFormatter, detectContentType, FormattedMessageContent } from './ModernMessageGroup';
|
|
2
|
+
import { assistantFrameClass, CodeFormatter, detectContentType, FormattedMessageContent } from './ModernMessageGroup';
|
|
3
|
+
import type { StreamingRenderOptions } from './types';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Renders in-flight streaming assistant content with the rich Modern renderer:
|
|
@@ -9,10 +10,23 @@ import { CodeFormatter, detectContentType, FormattedMessageContent } from './Mod
|
|
|
9
10
|
* Pass this as `MessagesContainerUI` / `PlanModeView`'s `renderStreamingContent` to keep
|
|
10
11
|
* markdown / code rendering while streaming (the base default is plain text).
|
|
11
12
|
*/
|
|
12
|
-
export function renderModernStreamingContent(content: string,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<
|
|
13
|
+
export function renderModernStreamingContent(content: string, opts: StreamingRenderOptions = {}): React.ReactNode {
|
|
14
|
+
const { isDesktopView = false, isSmallScreen = false, showCopyDownloadOnCodeBlock = true } = opts;
|
|
15
|
+
return (
|
|
16
|
+
// Same frame as ModernMessageGroup's assistant post, so nothing restyles when the stream lands.
|
|
17
|
+
<div className={`group rounded-lg ${assistantFrameClass(isDesktopView, isSmallScreen)}`}>
|
|
18
|
+
<div className="min-w-0 overflow-hidden py-2">
|
|
19
|
+
<div className="min-w-0 relative max-w-full w-full text-foreground">
|
|
20
|
+
{detectContentType(content) === 'code' ? (
|
|
21
|
+
<CodeFormatter content={content} showCopyDownload={showCopyDownloadOnCodeBlock} />
|
|
22
|
+
) : (
|
|
23
|
+
<FormattedMessageContent
|
|
24
|
+
content={content}
|
|
25
|
+
showCopyDownloadOnCodeBlock={showCopyDownloadOnCodeBlock}
|
|
26
|
+
/>
|
|
27
|
+
)}
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
17
31
|
);
|
|
18
32
|
}
|
|
@@ -13,6 +13,7 @@ export interface PlanMessage {
|
|
|
13
13
|
createdAt?: Date | string;
|
|
14
14
|
/** Optional: pass through to the injected message-group renderer (propsConfiguration, props, files, etc.) */
|
|
15
15
|
propsConfiguration?: any;
|
|
16
|
+
/** `props.animateEntry: true` plays the just-sent entrance on a user bubble (see useBubbleEntrance). */
|
|
16
17
|
props?: any;
|
|
17
18
|
files?: any;
|
|
18
19
|
author?: any;
|
|
@@ -66,3 +67,10 @@ export interface MessageGroupRenderProps {
|
|
|
66
67
|
|
|
67
68
|
/** The injectable message-group renderer. Defaults to a plain-text bubble renderer. */
|
|
68
69
|
export type MessageGroupComponentType = React.ComponentType<MessageGroupRenderProps>;
|
|
70
|
+
|
|
71
|
+
/** What `renderStreamingContent` gets to frame the stream like the post it becomes. */
|
|
72
|
+
export interface StreamingRenderOptions {
|
|
73
|
+
isDesktopView?: boolean;
|
|
74
|
+
isSmallScreen?: boolean;
|
|
75
|
+
showCopyDownloadOnCodeBlock?: boolean;
|
|
76
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
/** Rises out of the composer toward its tail corner; ease-out so it lands softly. */
|
|
4
|
+
const KEYFRAMES: Keyframe[] = [
|
|
5
|
+
{ opacity: 0, transform: 'translateY(12px) scale(0.96)', transformOrigin: 'right bottom' },
|
|
6
|
+
{ opacity: 1, transform: 'translateY(0) scale(1)', transformOrigin: 'right bottom' },
|
|
7
|
+
];
|
|
8
|
+
const TIMING: KeyframeAnimationOptions = { duration: 320, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' };
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The entrance a message plays when the user has just sent it (a post with
|
|
12
|
+
* `props.animateEntry`). History, chat switches and re-renders never animate:
|
|
13
|
+
* the host flags only the bubble it just appended, and the decision is taken
|
|
14
|
+
* once at mount so the flag going away later cannot cut or replay it.
|
|
15
|
+
*
|
|
16
|
+
* Transform and opacity only, so it runs on the compositor and never moves the
|
|
17
|
+
* layout around it. Runs before paint, so the bubble never flashes in place
|
|
18
|
+
* first. Reduced-motion users get the bubble with no motion.
|
|
19
|
+
*/
|
|
20
|
+
export function useBubbleEntrance<T extends HTMLElement>(requested: boolean) {
|
|
21
|
+
const ref = useRef<T>(null);
|
|
22
|
+
const [play] = useState(requested);
|
|
23
|
+
useLayoutEffect(() => {
|
|
24
|
+
const el = ref.current;
|
|
25
|
+
if (!play || !el || typeof el.animate !== 'function') return undefined;
|
|
26
|
+
if (window.matchMedia?.('(prefers-reduced-motion: reduce)').matches) return undefined;
|
|
27
|
+
const animation = el.animate(KEYFRAMES, TIMING);
|
|
28
|
+
return () => animation.cancel();
|
|
29
|
+
}, [play]);
|
|
30
|
+
return ref;
|
|
31
|
+
}
|