@molecule/app-ide-react 3.0.0 → 3.0.2
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/README.md +2 -1
- package/dist/components/AutoCommitBadge.d.ts +3 -1
- package/dist/components/AutoCommitBadge.d.ts.map +1 -1
- package/dist/components/AutoCommitBadge.js +8 -4
- package/dist/components/AutoCommitBadge.js.map +1 -1
- package/dist/components/ChatPanel.d.ts +3 -1
- package/dist/components/ChatPanel.d.ts.map +1 -1
- package/dist/components/ChatPanel.js +79 -33
- package/dist/components/ChatPanel.js.map +1 -1
- package/dist/components/ContextSessionUsage.d.ts +24 -0
- package/dist/components/ContextSessionUsage.d.ts.map +1 -0
- package/dist/components/ContextSessionUsage.js +97 -0
- package/dist/components/ContextSessionUsage.js.map +1 -0
- package/dist/components/ContextUsageIndicator.d.ts +8 -3
- package/dist/components/ContextUsageIndicator.d.ts.map +1 -1
- package/dist/components/ContextUsageIndicator.js +81 -35
- package/dist/components/ContextUsageIndicator.js.map +1 -1
- package/dist/components/DockStrip.d.ts +5 -1
- package/dist/components/DockStrip.d.ts.map +1 -1
- package/dist/components/DockStrip.js +21 -14
- package/dist/components/DockStrip.js.map +1 -1
- package/dist/components/TestStatusBar.d.ts +16 -16
- package/dist/components/TestStatusBar.d.ts.map +1 -1
- package/dist/components/TestStatusBar.js +5 -22
- package/dist/components/TestStatusBar.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
|
|
|
3
3
|
Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
|
|
4
4
|
Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
|
|
5
5
|
To change this document, edit the module-level JSDoc in src/index.ts.
|
|
6
|
-
Generated: 2026-10-
|
|
6
|
+
Generated: 2026-10-29T14:19:07.765Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/app-ide-react
|
|
@@ -1947,6 +1947,7 @@ function ChatPanel({
|
|
|
1947
1947
|
isPro,
|
|
1948
1948
|
isAnonymous,
|
|
1949
1949
|
canEdit = true,
|
|
1950
|
+
canSendTeamMessages = true,
|
|
1950
1951
|
canShare,
|
|
1951
1952
|
shareLinksAllowed,
|
|
1952
1953
|
shareLinksRefreshSignal,
|
|
@@ -48,11 +48,13 @@ import type { AutoCommitState } from './chat-autocommit-utilities.js';
|
|
|
48
48
|
* floating button absolutely positioned over the input area.
|
|
49
49
|
* @returns The rendered button, or `null` when auto-commit is disabled.
|
|
50
50
|
*/
|
|
51
|
-
export declare function AutoCommitBadge({ state, onCommitNow, disabled, inline, }: {
|
|
51
|
+
export declare function AutoCommitBadge({ state, onCommitNow, disabled, inline, label, }: {
|
|
52
52
|
state: AutoCommitState;
|
|
53
53
|
onCommitNow: () => void;
|
|
54
54
|
disabled?: boolean;
|
|
55
55
|
inline?: boolean;
|
|
56
|
+
/** Combined action/info label, e.g. "Commit 2 files". */
|
|
57
|
+
label?: string;
|
|
56
58
|
}): JSX.Element | null;
|
|
57
59
|
export declare namespace AutoCommitBadge {
|
|
58
60
|
var displayName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCommitBadge.d.ts","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAOrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,MAAc,
|
|
1
|
+
{"version":3,"file":"AutoCommitBadge.d.ts","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAOrE;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,MAAc,EACd,KAAK,GACN,EAAE;IACD,KAAK,EAAE,eAAe,CAAA;IACtB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAyDrB;yBAtEe,eAAe"}
|
|
@@ -15,15 +15,15 @@ import { formatAutoCommitBadge, isAutoCommitCountdownVisible, isAutoCommitEnable
|
|
|
15
15
|
* floating button absolutely positioned over the input area.
|
|
16
16
|
* @returns The rendered button, or `null` when auto-commit is disabled.
|
|
17
17
|
*/
|
|
18
|
-
export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline = false, }) {
|
|
18
|
+
export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline = false, label, }) {
|
|
19
19
|
const cm = getClassMap();
|
|
20
20
|
if (!isAutoCommitEnabled(state))
|
|
21
21
|
return null;
|
|
22
22
|
// A held countdown is paused, not imminent — never show the countdown label
|
|
23
23
|
// while disabled, only the plain "Commit".
|
|
24
24
|
const showCountdown = !disabled && isAutoCommitCountdownVisible(state);
|
|
25
|
-
const commitLabel = t('ide.chat.commit', undefined, { defaultValue: 'Commit' });
|
|
26
|
-
const countdownLabel = t('ide.chat.autoCommit.badge', { countdown: formatAutoCommitBadge(state) }, { defaultValue: 'Auto-commit in {{countdown}}' });
|
|
25
|
+
const commitLabel = label ?? t('ide.chat.commit', undefined, { defaultValue: 'Commit' });
|
|
26
|
+
const countdownLabel = t(label ? 'ide.chat.autoCommit.countedBadge' : 'ide.chat.autoCommit.badge', { commit: commitLabel, countdown: formatAutoCommitBadge(state) }, { defaultValue: label ? '{{commit}} in {{countdown}}' : 'Auto-commit in {{countdown}}' });
|
|
27
27
|
return (_jsx("button", { type: "button", "data-mol-id": "chat-autocommit-badge", disabled: disabled,
|
|
28
28
|
// The manual commit button's exact treatment, recolored to the SUCCESS
|
|
29
29
|
// semantic. The CVA owns hover/active/focus-visible AND the disabled look
|
|
@@ -39,7 +39,11 @@ export function AutoCommitBadge({ state, onCommitNow, disabled = false, inline =
|
|
|
39
39
|
if (disabled)
|
|
40
40
|
return;
|
|
41
41
|
onCommitNow();
|
|
42
|
-
}, "aria-label": showCountdown
|
|
42
|
+
}, "aria-label": showCountdown
|
|
43
|
+
? label
|
|
44
|
+
? countdownLabel
|
|
45
|
+
: `${countdownLabel} — ${commitLabel}`
|
|
46
|
+
: commitLabel, title: showCountdown && !label ? commitLabel : undefined,
|
|
43
47
|
// ONLY what the ClassMap cannot express: where the button sits, and the
|
|
44
48
|
// tabular figures that stop the countdown label jittering as it ticks.
|
|
45
49
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCommitBadge.js","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":";AAsCA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"AutoCommitBadge.js","sourceRoot":"","sources":["../../src/components/AutoCommitBadge.tsx"],"names":[],"mappings":";AAsCA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,EACd,KAAK,GAQN;IACC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5C,4EAA4E;IAC5E,2CAA2C;IAC3C,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACtE,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,CAAC,iBAAiB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAA;IACxF,MAAM,cAAc,GAAG,CAAC,CACtB,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,2BAA2B,EACxE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAChE,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,8BAA8B,EAAE,CACzF,CAAA;IACD,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,iBACD,uBAAuB,EACnC,QAAQ,EAAE,QAAQ;QAClB,uEAAuE;QACvE,0EAA0E;QAC1E,oEAAoE;QACpE,qEAAqE;QACrE,4DAA4D;QAC5D,SAAS,EAAE,EAAE,CAAC,EAAE,CACd,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAC7D,EAAE,CAAC,kBAAkB,CACtB,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,iEAAiE;YACjE,mEAAmE;YACnE,yDAAyD;YACzD,qEAAqE;YACrE,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,IAAI,QAAQ;gBAAE,OAAM;YACpB,WAAW,EAAE,CAAA;QACf,CAAC,gBAEC,aAAa;YACX,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,GAAG,cAAc,MAAM,WAAW,EAAE;YACxC,CAAC,CAAC,WAAW,EAEjB,KAAK,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACxD,wEAAwE;QACxE,uEAAuE;QACvE,KAAK,EAAE;YACL,wEAAwE;YACxE,mDAAmD;YACnD,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE;gBAC1B,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAC7D,kBAAkB,EAAE,cAAc;SACnC,YAEA,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,GACtC,CACV,CAAA;AACH,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA"}
|
|
@@ -149,6 +149,8 @@ export interface ChatInnerProps {
|
|
|
149
149
|
isAnonymous?: boolean;
|
|
150
150
|
/** Whether the user may write shared project state — see {@link ChatPanelProps.canEdit}. */
|
|
151
151
|
canEdit?: boolean;
|
|
152
|
+
/** Whether team messages are allowed — see {@link ChatPanelProps.canSendTeamMessages}. */
|
|
153
|
+
canSendTeamMessages?: boolean;
|
|
152
154
|
/** Whether the user may manage public share links — see {@link ChatPanelProps.canShare}. */
|
|
153
155
|
canShare?: boolean;
|
|
154
156
|
/** Whether the share dialog shows its links — see {@link ChatPanelProps.shareLinksAllowed}. */
|
|
@@ -256,7 +258,7 @@ export interface ChatInnerProps {
|
|
|
256
258
|
* @param props - Component props (see {@link MessageItemProps}).
|
|
257
259
|
* @returns The rendered chat panel element.
|
|
258
260
|
*/
|
|
259
|
-
export declare function ChatPanel({ projectId, endpoint, initialMessage, onInitialMessageSent, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onActivityClick, onRenderError, onProfileClick, currentUserId, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, onRegisterHistoryReconcile, autoSubmitSignal, initialInputValue, hideConversationMenu, renderConversationHeader, conversationId: controlledConversationId, chatKey: controlledChatKey, onConversationId: controlledOnConversationId, openShareSignal: controlledShareSignal, openReportSignal: controlledReportSignal, openSettingsSignal: controlledSettingsSignal, onManageCustomModels, gitStatusTick, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, isPro, isAnonymous, canEdit, canShare, shareLinksAllowed, shareLinksRefreshSignal, shareModalContent, buildUpgradeCta, buildHelpUpgradeSection, userAvatar, agentName, productName, version, extraCommands, feedbackUrl, listTests, runTests, canRunTests, testsAvailable, skipToolCall, className, }: ChatPanelProps): JSX.Element;
|
|
261
|
+
export declare function ChatPanel({ projectId, endpoint, initialMessage, onInitialMessageSent, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onActivityClick, onRenderError, onProfileClick, currentUserId, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, onRegisterHistoryReconcile, autoSubmitSignal, initialInputValue, hideConversationMenu, renderConversationHeader, conversationId: controlledConversationId, chatKey: controlledChatKey, onConversationId: controlledOnConversationId, openShareSignal: controlledShareSignal, openReportSignal: controlledReportSignal, openSettingsSignal: controlledSettingsSignal, onManageCustomModels, gitStatusTick, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, isPro, isAnonymous, canEdit, canSendTeamMessages, canShare, shareLinksAllowed, shareLinksRefreshSignal, shareModalContent, buildUpgradeCta, buildHelpUpgradeSection, userAvatar, agentName, productName, version, extraCommands, feedbackUrl, listTests, runTests, canRunTests, testsAvailable, skipToolCall, className, }: ChatPanelProps): JSX.Element;
|
|
260
262
|
export declare namespace ChatPanel {
|
|
261
263
|
var displayName: string;
|
|
262
264
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAa3C,OAAO,KAAK,EAEV,WAAW,EAIZ,MAAM,uBAAuB,CAAA;AAyC9B,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EAIhB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAiBvD,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,oBAAoB,CAAA;AAY3B,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,gCAAgC,CAAA;AA8NnF,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAiPD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AA6TD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACjE,GAAG,MAAM,GAAG,SAAS,CAgDrB;AA8nBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CACzD,GAAG,GAAG,CAAC,OAAO,CAsPd;AAyDD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAA;IAChB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,SAAS,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,mGAAmG;IACnG,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClF,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;IACxE;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACjD,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mGAAmG;IACnG,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;IACnD,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2IAA2I;IAC3I,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACvE,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AA0tBD,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gFAAgF;IAChF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gGAAgG;IAChG,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAC7B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;IACnD,0GAA0G;IAC1G,uBAAuB,CAAC,EAAE,cAAc,CAAC,yBAAyB,CAAC,CAAA;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAC/D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iHAAiH;IACjH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC9C,gDAAgD;IAChD,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAA;IAC/C,4HAA4H;IAC5H,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACjD,6GAA6G;IAC7G,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,8IAA8I;IAC9I,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,+GAA+G;IAC/G,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAClD,kHAAkH;IAClH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,iGAAiG;IACjG,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,mHAAmH;IACnH,qBAAqB,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IAC/D,6GAA6G;IAC7G,0BAA0B,CAAC,EAAE,cAAc,CAAC,4BAA4B,CAAC,CAAA;IACzE,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qHAAqH;IACrH,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAA;IACxE,kGAAkG;IAClG,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yLAAyL;IACzL,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,uMAAuM;IACvM,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,4HAA4H;IAC5H,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yIAAyI;IACzI,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,8GAA8G;IAC9G,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oGAAoG;IACpG,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IACrC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAA;IACvC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACrC,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,wFAAwF;IACxF,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAC9C;
|
|
1
|
+
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAa3C,OAAO,KAAK,EAEV,WAAW,EAIZ,MAAM,uBAAuB,CAAA;AAyC9B,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EAIhB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAiBvD,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,oBAAoB,CAAA;AAY3B,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,gCAAgC,CAAA;AA8NnF,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAiPD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AA6TD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACjE,GAAG,MAAM,GAAG,SAAS,CAgDrB;AA8nBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;CACzD,GAAG,GAAG,CAAC,OAAO,CAsPd;AAyDD,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,WAAW,CAAA;IAChB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD,SAAS,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,mGAAmG;IACnG,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACzD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClF,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;IACxE;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACjD,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mGAAmG;IACnG,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;IACnD,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2IAA2I;IAC3I,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACvE,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AA0tBD,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gFAAgF;IAChF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0FAA0F;IAC1F,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gGAAgG;IAChG,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,4FAA4F;IAC5F,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAC7B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;IACnD,0GAA0G;IAC1G,uBAAuB,CAAC,EAAE,cAAc,CAAC,yBAAyB,CAAC,CAAA;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAC/D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAClF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iHAAiH;IACjH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC9C,gDAAgD;IAChD,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAA;IAC/C,4HAA4H;IAC5H,cAAc,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACjD,6GAA6G;IAC7G,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,8IAA8I;IAC9I,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,+GAA+G;IAC/G,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAClD,kHAAkH;IAClH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,iGAAiG;IACjG,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,mHAAmH;IACnH,qBAAqB,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;IAC/D,6GAA6G;IAC7G,0BAA0B,CAAC,EAAE,cAAc,CAAC,4BAA4B,CAAC,CAAA;IACzE,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qHAAqH;IACrH,oBAAoB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAA;IACxE,kGAAkG;IAClG,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,yLAAyL;IACzL,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,uMAAuM;IACvM,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,4HAA4H;IAC5H,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yIAAyI;IACzI,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,8GAA8G;IAC9G,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oGAAoG;IACpG,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IACrC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAA;IACvC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACrC,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gGAAgG;IAChG,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,wFAAwF;IACxF,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAC9C;AA4zSD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,wBAA+B,EAC/B,cAAc,EAAE,wBAAwB,EACxC,OAAO,EAAE,iBAAiB,EAC1B,gBAAgB,EAAE,0BAA0B,EAC5C,eAAe,EAAE,qBAAqB,EACtC,gBAAgB,EAAE,sBAAsB,EACxC,kBAAkB,EAAE,wBAAwB,EAC5C,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,OAAc,EACd,mBAA0B,EAC1B,QAAQ,EACR,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,SAAS,EACT,WAAW,EACX,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,SAAS,GACV,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAsd9B;yBAxhBe,SAAS"}
|
|
@@ -1326,7 +1326,7 @@ const MessageItem = memo(function MessageItem(props) {
|
|
|
1326
1326
|
* @param props - Component props (see {@link MessageItemProps}).
|
|
1327
1327
|
* @returns The rendered chat inner component.
|
|
1328
1328
|
*/
|
|
1329
|
-
function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent, isPro, isAnonymous, canEdit, canShare, shareLinksAllowed, shareLinksRefreshSignal, shareModalContent, buildUpgradeCta, buildHelpUpgradeSection, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onConversationId, onActivityClick, onRenderError, onProfileClick, currentUserId, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, onRegisterHistoryReconcile, autoSubmitSignal, openSettingsSignal, onManageCustomModels, modelSelectionSignal, openReportSignal, openShareSignal, initialInputValue, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, gitStatusTick: externalGitStatusTick, discovery, userAvatar, agentName = DEFAULT_AGENT_NAME, productName = DEFAULT_PRODUCT_NAME, version, extraCommands, listTests, runTests, canRunTests, testsAvailable, skipToolCall,
|
|
1329
|
+
function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent, isPro, isAnonymous, canEdit, canSendTeamMessages = true, canShare, shareLinksAllowed, shareLinksRefreshSignal, shareModalContent, buildUpgradeCta, buildHelpUpgradeSection, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onConversationId, onActivityClick, onRenderError, onProfileClick, currentUserId, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, onRegisterHistoryReconcile, autoSubmitSignal, openSettingsSignal, onManageCustomModels, modelSelectionSignal, openReportSignal, openShareSignal, initialInputValue, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, gitStatusTick: externalGitStatusTick, discovery, userAvatar, agentName = DEFAULT_AGENT_NAME, productName = DEFAULT_PRODUCT_NAME, version, extraCommands, listTests, runTests, canRunTests, testsAvailable, skipToolCall,
|
|
1330
1330
|
// feedbackUrl: prop kept for back-compat (callers still pass it), but no longer
|
|
1331
1331
|
// consumed here — its only use was the command-menu footer link removed in P3-21.
|
|
1332
1332
|
}) {
|
|
@@ -1334,6 +1334,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
1334
1334
|
// Share-link management may be gated ABOVE canEdit by the host (molecule.dev
|
|
1335
1335
|
// mints/lists/revokes at admin+) — every /share surface below uses this, so
|
|
1336
1336
|
// an editor without the capability gets no dead modal.
|
|
1337
|
+
const transcriptOnly = canEdit === false && canSendTeamMessages === false;
|
|
1337
1338
|
const shareAllowed = canShare ?? canEdit !== false;
|
|
1338
1339
|
const themeMode = useThemeMode();
|
|
1339
1340
|
const isLight = themeMode === 'light';
|
|
@@ -1737,8 +1738,6 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
1737
1738
|
const [commitState, setCommitState] = useState(null);
|
|
1738
1739
|
const [pendingFiles, setPendingFiles] = useState(null);
|
|
1739
1740
|
const [commitBarExpanded, setCommitBarExpanded] = useState(false);
|
|
1740
|
-
// The tests strip sits above the commit bar and starts collapsed, like it.
|
|
1741
|
-
const [testsBarExpanded, setTestsBarExpanded] = useState(false);
|
|
1742
1741
|
const [commitCards, setCommitCards] = useState([]);
|
|
1743
1742
|
/**
|
|
1744
1743
|
* Number of timeline items rendered in the DOM. Starts at the most recent
|
|
@@ -2412,6 +2411,18 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
2412
2411
|
}, 50);
|
|
2413
2412
|
}
|
|
2414
2413
|
}, []);
|
|
2414
|
+
// Check the unfiltered definitions at the send boundary. Removing a disabled
|
|
2415
|
+
// command from the menu must not reinterpret its raw text as an assistant send:
|
|
2416
|
+
// a host backend may still intercept that command or any of its aliases.
|
|
2417
|
+
const blockDisabledTeamMessage = useCallback((message) => {
|
|
2418
|
+
if (canSendTeamMessages !== false ||
|
|
2419
|
+
!matchesSideChannelCommand(extraCommands?.length ? [...COMMANDS, ...extraCommands] : COMMANDS, message))
|
|
2420
|
+
return false;
|
|
2421
|
+
addSystemCard(t('ide.chat.teamMessagesUnavailable', undefined, {
|
|
2422
|
+
defaultValue: 'Team messaging is unavailable in this workspace.',
|
|
2423
|
+
}));
|
|
2424
|
+
return true;
|
|
2425
|
+
}, [canSendTeamMessages, extraCommands, addSystemCard, t]);
|
|
2415
2426
|
// Apply a chat event broadcast by another project member (the chat push channel). The
|
|
2416
2427
|
// originating member's SERVER already persisted everything; this client renders the
|
|
2417
2428
|
// broadcast live and gets the durable copy on reload. EVERY frame of a remote turn
|
|
@@ -2604,7 +2615,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
2604
2615
|
// any tip and never reappears for this conversation. Resuming an existing
|
|
2605
2616
|
// conversation (conversationId set) is NOT a fresh start, so no entry tip there.
|
|
2606
2617
|
useEffect(() => {
|
|
2607
|
-
if (entryTipShownRef.current)
|
|
2618
|
+
if (transcriptOnly || entryTipShownRef.current)
|
|
2608
2619
|
return;
|
|
2609
2620
|
// No onboarding tip during the initial discovery phase (mvp B1) — discovery is
|
|
2610
2621
|
// its own guided Q&A; a blue tip there is noise.
|
|
@@ -2616,7 +2627,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
2616
2627
|
shownTipIdsRef.current = [...shownTipIdsRef.current, ENTRY_TIP.id];
|
|
2617
2628
|
const text = t(`ide.chat.tip.${ENTRY_TIP.id}`, { agentName }, { defaultValue: ENTRY_TIP.text });
|
|
2618
2629
|
setTipCards((prev) => [...prev, { id: crypto.randomUUID(), text, timestamp: Date.now() }]);
|
|
2619
|
-
}, [conversationId, messages.length, agentName, discovery]);
|
|
2630
|
+
}, [conversationId, messages.length, agentName, discovery, transcriptOnly]);
|
|
2620
2631
|
// Viewer orientation tip: a read-only member's explainer — GOLD like the
|
|
2621
2632
|
// team-only messages and led by the same `people` icon it explains, so the
|
|
2622
2633
|
// badge on a team note is self-describing. A regular dismissable tip (never a
|
|
@@ -2625,7 +2636,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
2625
2636
|
// hosts that don't do roles never see it.
|
|
2626
2637
|
const viewerTipShownRef = useRef(false);
|
|
2627
2638
|
useEffect(() => {
|
|
2628
|
-
if (canEdit !== false || discovery || viewerTipShownRef.current)
|
|
2639
|
+
if (transcriptOnly || canEdit !== false || discovery || viewerTipShownRef.current)
|
|
2629
2640
|
return;
|
|
2630
2641
|
viewerTipShownRef.current = true;
|
|
2631
2642
|
const text = t('ide.chat.tip.viewerTeamOnly', { agentName }, {
|
|
@@ -2641,13 +2652,16 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
2641
2652
|
icon: 'people',
|
|
2642
2653
|
},
|
|
2643
2654
|
]);
|
|
2644
|
-
}, [canEdit, discovery, agentName]);
|
|
2655
|
+
}, [canEdit, discovery, agentName, transcriptOnly]);
|
|
2645
2656
|
// Surface an occasional idle tip. This effect re-runs on every message change, so
|
|
2646
2657
|
// the idle timer is continually reset by activity; it only fires once the
|
|
2647
2658
|
// conversation has been quiet for TIP_IDLE_MS — and even then only when the
|
|
2648
2659
|
// cooldown + random roll allow, and never before TIP_MIN_MESSAGES (so never on the
|
|
2649
2660
|
// first prompt). Skipped entirely while a message is streaming.
|
|
2650
2661
|
useEffect(() => {
|
|
2662
|
+
// Public transcript viewers have no actionable composer onboarding.
|
|
2663
|
+
if (transcriptOnly)
|
|
2664
|
+
return;
|
|
2651
2665
|
// No idle tips during the initial discovery phase (mvp B1).
|
|
2652
2666
|
if (discovery)
|
|
2653
2667
|
return;
|
|
@@ -2671,7 +2685,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
2671
2685
|
setTipCards((prev) => [...prev, { id: crypto.randomUUID(), text, timestamp: Date.now() }]);
|
|
2672
2686
|
}, TIP_IDLE_MS);
|
|
2673
2687
|
return () => clearTimeout(timer);
|
|
2674
|
-
}, [messages, discovery]);
|
|
2688
|
+
}, [messages, discovery, transcriptOnly]);
|
|
2675
2689
|
// ── Sounds picker (shown when /sounds is executed) ────────────────────────
|
|
2676
2690
|
const [soundsPicker, setSoundsPicker] = useState(null);
|
|
2677
2691
|
// Notification sounds are a PER-DEVICE, per-user preference — localStorage,
|
|
@@ -3477,11 +3491,25 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
3477
3491
|
// so it is never retried either.
|
|
3478
3492
|
if (canEdit === false)
|
|
3479
3493
|
return;
|
|
3480
|
-
|
|
3494
|
+
if (blockDisabledTeamMessage(initialMessage)) {
|
|
3495
|
+
onInitialMessageSent?.();
|
|
3496
|
+
return;
|
|
3497
|
+
}
|
|
3498
|
+
const sideChannel = canSendTeamMessages !== false &&
|
|
3499
|
+
matchesSideChannelCommand(extraCommands?.length ? [...COMMANDS, ...extraCommands] : COMMANDS, initialMessage);
|
|
3481
3500
|
sendMessage(initialMessage, undefined, sideChannel ? { suppressUserMessage: true } : undefined);
|
|
3482
3501
|
onInitialMessageSent?.();
|
|
3483
3502
|
}
|
|
3484
|
-
}, [
|
|
3503
|
+
}, [
|
|
3504
|
+
initialMessage,
|
|
3505
|
+
hasConversation,
|
|
3506
|
+
sendMessage,
|
|
3507
|
+
onInitialMessageSent,
|
|
3508
|
+
extraCommands,
|
|
3509
|
+
canEdit,
|
|
3510
|
+
canSendTeamMessages,
|
|
3511
|
+
blockDisabledTeamMessage,
|
|
3512
|
+
]);
|
|
3485
3513
|
// ── Auto-send pending message (e.g. "Fix with AI", preview errors) ──────
|
|
3486
3514
|
// Defers sending while the AI is streaming to avoid queueing up auto-fix
|
|
3487
3515
|
// messages during active work. Messages are sent once streaming ends.
|
|
@@ -3496,7 +3524,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
3496
3524
|
// kickoffs, auto-fixes, preview-failure reports): the server 403s them
|
|
3497
3525
|
// and the denial used to surface as a red error in the viewer's chat.
|
|
3498
3526
|
// Consume the key (above) so the same message isn't retried.
|
|
3499
|
-
if (canEdit === false)
|
|
3527
|
+
if (canEdit === false || blockDisabledTeamMessage(pendingMessage))
|
|
3500
3528
|
return;
|
|
3501
3529
|
// A pending message is ALWAYS system-composed (an auto-fix prompt, a preview-failure
|
|
3502
3530
|
// report, a "Fix with AI" request) — never text the user typed. So it must NEVER
|
|
@@ -3532,6 +3560,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
3532
3560
|
sendMessage,
|
|
3533
3561
|
isLoading,
|
|
3534
3562
|
canEdit,
|
|
3563
|
+
blockDisabledTeamMessage,
|
|
3535
3564
|
]);
|
|
3536
3565
|
// When streaming ends, send any deferred message. (A user Stop also ends
|
|
3537
3566
|
// streaming, but handleAbort drops the deferred message first — and useChat's
|
|
@@ -3547,7 +3576,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
3547
3576
|
deferredPendingUserInitiatedRef.current = false;
|
|
3548
3577
|
// A viewer never dispatches platform-composed sends (same as the
|
|
3549
3578
|
// immediate path above) — the refs are already drained, so it just drops.
|
|
3550
|
-
if (canEdit === false)
|
|
3579
|
+
if (canEdit === false || blockDisabledTeamMessage(msg))
|
|
3551
3580
|
return;
|
|
3552
3581
|
// Same rule as the immediate path: a deferred pending message is system-composed —
|
|
3553
3582
|
// always `automatic` (suppressed or visible), never a plain user bubble.
|
|
@@ -3557,7 +3586,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
3557
3586
|
...(userInitiated ? { userInitiated: true } : {}),
|
|
3558
3587
|
});
|
|
3559
3588
|
}
|
|
3560
|
-
}, [isLoading, sendMessage, canEdit]);
|
|
3589
|
+
}, [isLoading, sendMessage, canEdit, blockDisabledTeamMessage]);
|
|
3561
3590
|
// ── Auto-delete queued autofix messages when user edits a relevant file ────
|
|
3562
3591
|
const lastUserEditKeyRef = useRef(userEditedFileKey);
|
|
3563
3592
|
useEffect(() => {
|
|
@@ -4105,12 +4134,12 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
4105
4134
|
// message). Once per mount, and never over text the user already has.
|
|
4106
4135
|
const viewerPrefillDoneRef = useRef(false);
|
|
4107
4136
|
useEffect(() => {
|
|
4108
|
-
if (canEdit !== false || viewerPrefillDoneRef.current)
|
|
4137
|
+
if (transcriptOnly || canEdit !== false || viewerPrefillDoneRef.current)
|
|
4109
4138
|
return;
|
|
4110
4139
|
viewerPrefillDoneRef.current = true;
|
|
4111
4140
|
if (!inputRef.current.trim())
|
|
4112
4141
|
setInputAndCursorEnd('/teamsay ');
|
|
4113
|
-
}, [canEdit, setInputAndCursorEnd, conversationId]);
|
|
4142
|
+
}, [canEdit, setInputAndCursorEnd, conversationId, transcriptOnly]);
|
|
4114
4143
|
/**
|
|
4115
4144
|
* Select and apply a model by ID. When `mode` is given the choice persists to
|
|
4116
4145
|
* that mode's per-mode field (`planModel` / `executeModel` /
|
|
@@ -4206,12 +4235,12 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
4206
4235
|
// must then list it once, with the host's label and description. Declared
|
|
4207
4236
|
// before executeCommand since it lives in that callback's dependency list.
|
|
4208
4237
|
const allCommands = useMemo(() => {
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4238
|
+
const overridden = new Set((extraCommands ?? []).map((c) => c.id));
|
|
4239
|
+
return [...COMMANDS.filter((c) => !overridden.has(c.id)), ...(extraCommands ?? [])].filter((command) => canSendTeamMessages !== false || !command.sideChannel);
|
|
4240
|
+
}, [extraCommands, canSendTeamMessages]);
|
|
4241
|
+
const extraCommandIds = useMemo(() => new Set((extraCommands ?? [])
|
|
4242
|
+
.filter((command) => canSendTeamMessages !== false || !command.sideChannel)
|
|
4243
|
+
.map((c) => c.id)), [extraCommands, canSendTeamMessages]);
|
|
4215
4244
|
const executeCommand = useCallback(async (id) => {
|
|
4216
4245
|
setCommandMenu(null);
|
|
4217
4246
|
// Any command closes every sibling popup (panel overlay, model/effort/
|
|
@@ -4663,9 +4692,13 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
4663
4692
|
else {
|
|
4664
4693
|
recognitionRef.current?.stop();
|
|
4665
4694
|
}
|
|
4695
|
+
if (transcriptOnly)
|
|
4696
|
+
return;
|
|
4666
4697
|
const trimmed = inputRef.current.trim();
|
|
4667
4698
|
if (!trimmed && attachedFiles.length === 0)
|
|
4668
4699
|
return;
|
|
4700
|
+
if (blockDisabledTeamMessage(trimmed))
|
|
4701
|
+
return;
|
|
4669
4702
|
// Read-only VIEWER guard. A viewer cannot run the assistant (the server 403s
|
|
4670
4703
|
// the chat route) or any project-mutating command, so block a plain message
|
|
4671
4704
|
// or a write-command here with a read-only note instead of a silent 403 —
|
|
@@ -5131,6 +5164,8 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
5131
5164
|
sendMessage(message, chatAttachments.length > 0 ? chatAttachments : undefined, viaDictation ? { viaDictation: true } : undefined);
|
|
5132
5165
|
}, [
|
|
5133
5166
|
applyTimestampsVisible,
|
|
5167
|
+
transcriptOnly,
|
|
5168
|
+
blockDisabledTeamMessage,
|
|
5134
5169
|
attachedFiles,
|
|
5135
5170
|
http,
|
|
5136
5171
|
projectId,
|
|
@@ -6094,7 +6129,8 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
6094
6129
|
overflowY: 'auto',
|
|
6095
6130
|
scrollbarWidth: 'thin',
|
|
6096
6131
|
overflowAnchor: 'none',
|
|
6097
|
-
}, children: [
|
|
6132
|
+
}, children: [!transcriptOnly &&
|
|
6133
|
+
timeline.length === 0 &&
|
|
6098
6134
|
!isLoading &&
|
|
6099
6135
|
!isRemoteStreaming &&
|
|
6100
6136
|
!awaitingSandboxBoot &&
|
|
@@ -7586,13 +7622,16 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
7586
7622
|
}, onMouseLeave: (e) => {
|
|
7587
7623
|
e.currentTarget.style.opacity = '0.7';
|
|
7588
7624
|
e.currentTarget.style.background = 'none';
|
|
7589
|
-
}, children: _jsx("svg", { width: "13", height: "13", viewBox: "0 0 12 12", style: { display: 'block' }, children: _jsx("path", { d: "M 2.5,6.5 L 6,3 L 9.5,6.5 M 6,3.5 L 6,10", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) }) }))] }, qm.id))) })] })), workVisible && (_jsxs(WorkCard, { children: [_jsx(PlanCard, { todos: plan, live: planLive, awaitingUser: planAwaitingUser }), _jsx(BackgroundTasksStrip, { tasks: backgroundTasks }), showTests && (_jsx(TestStatusBar, { run: testsRun, tests: testsList,
|
|
7590
|
-
|
|
7591
|
-
|
|
7592
|
-
? t('ide.chat.commitFailed')
|
|
7593
|
-
: t('ide.chat.uncommittedFileCount', { count: pendingFiles.length }, { defaultValue: '{{count}} uncommitted files' }), actions: _jsx(_Fragment, { children: isAutoCommitEnabled(autoCommit) &&
|
|
7625
|
+
}, children: _jsx("svg", { width: "13", height: "13", viewBox: "0 0 12 12", style: { display: 'block' }, children: _jsx("path", { d: "M 2.5,6.5 L 6,3 L 9.5,6.5 M 6,3.5 L 6,10", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) }) }))] }, qm.id))) })] })), workVisible && (_jsxs(WorkCard, { children: [_jsx(PlanCard, { todos: plan, live: planLive, awaitingUser: planAwaitingUser }), _jsx(BackgroundTasksStrip, { tasks: backgroundTasks }), showTests && (_jsx(TestStatusBar, { run: testsRun, tests: testsList, onOpen: () => openTestsBrowser(''), onStop: testsRun.running ? cancelTestsRun : undefined })), showFiles && pendingFiles != null && (_jsx(DockStrip, { molId: "chat-commit-bar", toggleMolId: "chat-commit-toggle", expanded: commitBarExpanded, onToggle: () => setCommitBarExpanded((v) => !v), hideLabel: true, label: t('ide.chat.showChangedFiles', undefined, {
|
|
7626
|
+
defaultValue: 'Show changed files',
|
|
7627
|
+
}), actions: _jsx(_Fragment, { children: isAutoCommitEnabled(autoCommit) &&
|
|
7594
7628
|
commitState?.status !== 'committing' &&
|
|
7595
|
-
commitState?.status !== 'committed' ? (_jsx(AutoCommitBadge, { state: autoCommit,
|
|
7629
|
+
commitState?.status !== 'committed' ? (_jsx(AutoCommitBadge, { state: autoCommit, label: t('ide.chat.commitFileCount', { count: pendingFiles.length }, {
|
|
7630
|
+
count: pendingFiles.length,
|
|
7631
|
+
defaultValue: pendingFiles.length === 1
|
|
7632
|
+
? 'Commit {{count}} file'
|
|
7633
|
+
: 'Commit {{count}} files',
|
|
7634
|
+
}), disabled: autoCommitHeld, onCommitNow: () => {
|
|
7596
7635
|
// Pause the countdown before committing so a due auto-fire
|
|
7597
7636
|
// doesn't race the manual commit onto a freshly clean tree
|
|
7598
7637
|
// (which would drop a noisy "No changes to commit" card).
|
|
@@ -7618,7 +7657,14 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
7618
7657
|
// it visibly mismatched the 13px/3px tests-bar button.
|
|
7619
7658
|
className: cm.cn(cm.button({ variant: 'solid', color: 'primary', size: 'xs' }), cm.touchTargetCompact), children: commitState?.status === 'committing'
|
|
7620
7659
|
? t('ide.chat.committing')
|
|
7621
|
-
:
|
|
7660
|
+
: commitState?.status === 'committed'
|
|
7661
|
+
? t('ide.chat.committed')
|
|
7662
|
+
: t('ide.chat.commitFileCount', { count: pendingFiles.length }, {
|
|
7663
|
+
count: pendingFiles.length,
|
|
7664
|
+
defaultValue: pendingFiles.length === 1
|
|
7665
|
+
? 'Commit {{count}} file'
|
|
7666
|
+
: 'Commit {{count}} files',
|
|
7667
|
+
}) }));
|
|
7622
7668
|
})()) }), children: _jsx("div", { style: { maxHeight: 200, overflowY: 'auto' }, children: pendingFiles.map((f) => (_jsxs("button", { type: "button", onClick: () => onFileDiff?.(f.path), onMouseEnter: (e) => {
|
|
7623
7669
|
// Theme PRIMARY token, not a literal blue — the row sits in
|
|
7624
7670
|
// the same bar as the commit button, which is now primary.
|
|
@@ -7695,7 +7741,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
7695
7741
|
opacity: 0.5,
|
|
7696
7742
|
transition: 'opacity 100ms, background 100ms',
|
|
7697
7743
|
...(!(f.additions || f.deletions) ? { marginLeft: 'auto' } : {}),
|
|
7698
|
-
}, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", width: "12", height: "12", fill: "currentColor", children: _jsx("path", { d: "M1.22 6.28a.749.749 0 0 1 0-1.06l3.5-3.5a.749.749 0 1 1 1.06 1.06L3.561 5h7.188l.001.007L10.749 5c.058 0 .116.007.171.019A4.501 4.501 0 0 1 10.5 14H8.796a.75.75 0 0 1 0-1.5H10.5a3 3 0 1 0 0-6H3.561L5.78 8.72a.749.749 0 1 1-1.06 1.06l-3.5-3.5Z" }) }) }))] }, f.path))) }) }))] })), _jsxs("div", { className: cm.surfaceSecondary, ...(canEdit === false ? { 'data-mol-viewer': '' } : {}), style: {
|
|
7744
|
+
}, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", width: "12", height: "12", fill: "currentColor", children: _jsx("path", { d: "M1.22 6.28a.749.749 0 0 1 0-1.06l3.5-3.5a.749.749 0 1 1 1.06 1.06L3.561 5h7.188l.001.007L10.749 5c.058 0 .116.007.171.019A4.501 4.501 0 0 1 10.5 14H8.796a.75.75 0 0 1 0-1.5H10.5a3 3 0 1 0 0-6H3.561L5.78 8.72a.749.749 0 1 1-1.06 1.06l-3.5-3.5Z" }) }) }))] }, f.path))) }) }))] })), _jsxs("div", { className: cm.surfaceSecondary, hidden: transcriptOnly, "data-mol-id": "chat-composer", ...(canEdit === false ? { 'data-mol-viewer': '' } : {}), style: {
|
|
7699
7745
|
// Round the TOP corners only (8px) so the composer reads as a self-contained
|
|
7700
7746
|
// input with its own border on all sides, flush at the bottom-left/right with
|
|
7701
7747
|
// the panel's bottom edge. Discovery rounds ALL FOUR corners (the centered
|
|
@@ -7962,7 +8008,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
7962
8008
|
e.currentTarget.style.opacity = '0.85';
|
|
7963
8009
|
}, onMouseLeave: (e) => {
|
|
7964
8010
|
e.currentTarget.style.opacity = '0.4';
|
|
7965
|
-
}, children: sym === 'slash' ? (_jsx("svg", { width: "9", height: "13", viewBox: "0 0 9 13", style: { display: 'block', position: 'relative', top: `${nudgeY}px` }, children: _jsx("line", { x1: "8", y1: "1", x2: "1", y2: "12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })) : (_jsx("span", { style: { position: 'relative', top: `${nudgeY}px` }, children: sym })) }, sym))), canEdit !== false && contextUsage && (_jsx(ContextUsageIndicator, { usage: contextUsage, history: contextHistory, compactions: contextCompactions })), _jsxs("div", { style: {
|
|
8011
|
+
}, children: sym === 'slash' ? (_jsx("svg", { width: "9", height: "13", viewBox: "0 0 9 13", style: { display: 'block', position: 'relative', top: `${nudgeY}px` }, children: _jsx("line", { x1: "8", y1: "1", x2: "1", y2: "12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })) : (_jsx("span", { style: { position: 'relative', top: `${nudgeY}px` }, children: sym })) }, sym))), canEdit !== false && contextUsage && (_jsx(ContextUsageIndicator, { usage: contextUsage, history: contextHistory, compactions: contextCompactions, projectId: projectId, conversationId: conversationId, onOpenSettings: () => openPanelOverlay('settings') })), _jsxs("div", { style: {
|
|
7966
8012
|
// 'auto' pins the stop/send cluster right; the context ring
|
|
7967
8013
|
// (hidden for viewers even when contextUsage exists) otherwise
|
|
7968
8014
|
// carries the auto margin and this becomes a 4px gap.
|
|
@@ -8026,7 +8072,7 @@ function ChatInner({ projectId, endpoint, initialMessage, onInitialMessageSent,
|
|
|
8026
8072
|
* @param props - Component props (see {@link MessageItemProps}).
|
|
8027
8073
|
* @returns The rendered chat panel element.
|
|
8028
8074
|
*/
|
|
8029
|
-
export function ChatPanel({ projectId, endpoint, initialMessage, onInitialMessageSent, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onActivityClick, onRenderError, onProfileClick, currentUserId, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, onRegisterHistoryReconcile, autoSubmitSignal, initialInputValue, hideConversationMenu, renderConversationHeader = true, conversationId: controlledConversationId, chatKey: controlledChatKey, onConversationId: controlledOnConversationId, openShareSignal: controlledShareSignal, openReportSignal: controlledReportSignal, openSettingsSignal: controlledSettingsSignal, onManageCustomModels, gitStatusTick, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, isPro, isAnonymous, canEdit = true, canShare, shareLinksAllowed, shareLinksRefreshSignal, shareModalContent, buildUpgradeCta, buildHelpUpgradeSection, userAvatar, agentName, productName, version, extraCommands, feedbackUrl, listTests, runTests, canRunTests, testsAvailable, skipToolCall, className, }) {
|
|
8075
|
+
export function ChatPanel({ projectId, endpoint, initialMessage, onInitialMessageSent, activeFile, openTabs, onFileOpen, onFileDoubleClick, onFileDiff, onFileRevert, onFileChange, onFileDeleted, onCommit, onActivityClick, onRenderError, onProfileClick, currentUserId, onReadyToBuild, awaitingSandboxBoot, onClientAction, onTurnComplete, onLoadingChange, onNavigatePreview, onRegisterPushHandler, onRegisterHistoryReconcile, autoSubmitSignal, initialInputValue, hideConversationMenu, renderConversationHeader = true, conversationId: controlledConversationId, chatKey: controlledChatKey, onConversationId: controlledOnConversationId, openShareSignal: controlledShareSignal, openReportSignal: controlledReportSignal, openSettingsSignal: controlledSettingsSignal, onManageCustomModels, gitStatusTick, pendingMessage, pendingMessageKey, pendingMessageSuppressUser, pendingMessageUserInitiated, userEditedFile, userEditedFileKey, isPro, isAnonymous, canEdit = true, canSendTeamMessages = true, canShare, shareLinksAllowed, shareLinksRefreshSignal, shareModalContent, buildUpgradeCta, buildHelpUpgradeSection, userAvatar, agentName, productName, version, extraCommands, feedbackUrl, listTests, runTests, canRunTests, testsAvailable, skipToolCall, className, }) {
|
|
8030
8076
|
const cm = getClassMap();
|
|
8031
8077
|
// Share management may be gated ABOVE canEdit by the host (see
|
|
8032
8078
|
// ChatPanelProps.canShare) — gates the built-in header share button here and
|
|
@@ -8241,7 +8287,7 @@ export function ChatPanel({ projectId, endpoint, initialMessage, onInitialMessag
|
|
|
8241
8287
|
textOverflow: 'ellipsis',
|
|
8242
8288
|
whiteSpace: 'nowrap',
|
|
8243
8289
|
width: '100%',
|
|
8244
|
-
}, children: conv.preview ?? 'New conversation' }), _jsx("span", { className: cm.cn(cm.textMuted, cm.textSize('xs')), style: { opacity: 0.55 }, children: relativeTime(conv.updatedAt) })] }, conv.id)))] }))] })), _jsx(ChatInner, { projectId: projectId, endpoint: chatEndpoint, initialMessage: initialMessage, onInitialMessageSent: onInitialMessageSent, isPro: isPro, isAnonymous: isAnonymous, canEdit: canEdit, canShare: shareAllowed, shareLinksAllowed: shareLinksAllowed, shareLinksRefreshSignal: shareLinksRefreshSignal, shareModalContent: shareModalContent, buildUpgradeCta: buildUpgradeCta, buildHelpUpgradeSection: buildHelpUpgradeSection, activeFile: activeFile, openTabs: openTabs, onFileOpen: onFileOpen, onFileDoubleClick: onFileDoubleClick, onFileDiff: onFileDiff, onFileRevert: onFileRevert, onFileChange: onFileChange, onFileDeleted: onFileDeleted, onCommit: onCommit, onConversationId: reportConversationId, onActivityClick: onActivityClick, onRenderError: onRenderError, onProfileClick: onProfileClick, currentUserId: currentUserId, onReadyToBuild: onReadyToBuild, awaitingSandboxBoot: awaitingSandboxBoot, onClientAction: onClientAction, onTurnComplete: onTurnComplete, onLoadingChange: onLoadingChange, onNavigatePreview: onNavigatePreview, onRegisterPushHandler: onRegisterPushHandler, onRegisterHistoryReconcile: onRegisterHistoryReconcile, autoSubmitSignal: autoSubmitSignal, openSettingsSignal: effectiveSettingsSignal, onManageCustomModels: onManageCustomModels, openReportSignal: effectiveReportSignal, openShareSignal: effectiveShareSignal, initialInputValue: initialInputValue, pendingMessage: pendingMessage, pendingMessageKey: pendingMessageKey, pendingMessageSuppressUser: pendingMessageSuppressUser, pendingMessageUserInitiated: pendingMessageUserInitiated, userEditedFile: userEditedFile, userEditedFileKey: userEditedFileKey, gitStatusTick: gitStatusTick, discovery: hideConversationMenu, userAvatar: userAvatar, agentName: agentName, productName: productName, version: version, extraCommands: extraCommands, feedbackUrl: feedbackUrl, listTests: listTests, runTests: runTests, canRunTests: canRunTests, testsAvailable: testsAvailable, skipToolCall: skipToolCall }, chatKey)] }));
|
|
8290
|
+
}, children: conv.preview ?? 'New conversation' }), _jsx("span", { className: cm.cn(cm.textMuted, cm.textSize('xs')), style: { opacity: 0.55 }, children: relativeTime(conv.updatedAt) })] }, conv.id)))] }))] })), _jsx(ChatInner, { projectId: projectId, endpoint: chatEndpoint, initialMessage: initialMessage, onInitialMessageSent: onInitialMessageSent, isPro: isPro, isAnonymous: isAnonymous, canEdit: canEdit, canSendTeamMessages: canSendTeamMessages, canShare: shareAllowed, shareLinksAllowed: shareLinksAllowed, shareLinksRefreshSignal: shareLinksRefreshSignal, shareModalContent: shareModalContent, buildUpgradeCta: buildUpgradeCta, buildHelpUpgradeSection: buildHelpUpgradeSection, activeFile: activeFile, openTabs: openTabs, onFileOpen: onFileOpen, onFileDoubleClick: onFileDoubleClick, onFileDiff: onFileDiff, onFileRevert: onFileRevert, onFileChange: onFileChange, onFileDeleted: onFileDeleted, onCommit: onCommit, onConversationId: reportConversationId, onActivityClick: onActivityClick, onRenderError: onRenderError, onProfileClick: onProfileClick, currentUserId: currentUserId, onReadyToBuild: onReadyToBuild, awaitingSandboxBoot: awaitingSandboxBoot, onClientAction: onClientAction, onTurnComplete: onTurnComplete, onLoadingChange: onLoadingChange, onNavigatePreview: onNavigatePreview, onRegisterPushHandler: onRegisterPushHandler, onRegisterHistoryReconcile: onRegisterHistoryReconcile, autoSubmitSignal: autoSubmitSignal, openSettingsSignal: effectiveSettingsSignal, onManageCustomModels: onManageCustomModels, openReportSignal: effectiveReportSignal, openShareSignal: effectiveShareSignal, initialInputValue: initialInputValue, pendingMessage: pendingMessage, pendingMessageKey: pendingMessageKey, pendingMessageSuppressUser: pendingMessageSuppressUser, pendingMessageUserInitiated: pendingMessageUserInitiated, userEditedFile: userEditedFile, userEditedFileKey: userEditedFileKey, gitStatusTick: gitStatusTick, discovery: hideConversationMenu, userAvatar: userAvatar, agentName: agentName, productName: productName, version: version, extraCommands: extraCommands, feedbackUrl: feedbackUrl, listTests: listTests, runTests: runTests, canRunTests: canRunTests, testsAvailable: testsAvailable, skipToolCall: skipToolCall }, chatKey)] }));
|
|
8245
8291
|
}
|
|
8246
8292
|
ChatPanel.displayName = 'ChatPanel';
|
|
8247
8293
|
//# sourceMappingURL=ChatPanel.js.map
|