@agent-native/toolkit 0.227.0 → 0.228.0-nightly-20261111004142
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/agent-native.eject.json +8 -0
- package/dist/app/agent-page/AgentTabFrame.d.ts +2 -1
- package/dist/app/agent-page/AgentTabFrame.d.ts.map +1 -1
- package/dist/app/agent-page/AgentTabFrame.js +3 -2
- package/dist/app/agent-page/AgentTabFrame.js.map +1 -1
- package/dist/app/chat/AgentPanel.d.ts +15 -15
- package/dist/app/chat/AgentPanel.d.ts.map +1 -1
- package/dist/app/chat/AgentPanel.js.map +1 -1
- package/dist/app/chat/AgentSidebar.d.ts +7 -1
- package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
- package/dist/app/chat/AgentSidebar.js +47 -16
- package/dist/app/chat/AgentSidebar.js.map +1 -1
- package/dist/app/chat/chat/surface-types.d.ts +26 -26
- package/dist/app/chat/chat/surface-types.d.ts.map +1 -1
- package/dist/app/extensions/EmbeddedExtension.d.ts.map +1 -1
- package/dist/app/extensions/EmbeddedExtension.js +6 -4
- package/dist/app/extensions/EmbeddedExtension.js.map +1 -1
- package/dist/app/extensions/ExtensionViewer.d.ts.map +1 -1
- package/dist/app/extensions/ExtensionViewer.js +6 -3
- package/dist/app/extensions/ExtensionViewer.js.map +1 -1
- package/dist/app/extensions/InlineExtensionFrame.d.ts.map +1 -1
- package/dist/app/extensions/InlineExtensionFrame.js +32 -28
- package/dist/app/extensions/InlineExtensionFrame.js.map +1 -1
- package/dist/app/extensions/use-extension-chat-submission.d.ts +14 -0
- package/dist/app/extensions/use-extension-chat-submission.d.ts.map +1 -0
- package/dist/app/extensions/use-extension-chat-submission.js +36 -0
- package/dist/app/extensions/use-extension-chat-submission.js.map +1 -0
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +16 -0
- package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.js +12 -0
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +12 -0
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +12 -0
- package/dist/app/i18n/catalogs/en-US.js.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.js +13 -0
- package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.js +13 -0
- package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.js +12 -0
- package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.js +12 -0
- package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.js +12 -0
- package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.js +13 -0
- package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.js +12 -0
- package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.js +12 -0
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/app/org/OrgSwitcher.js +3 -2
- package/dist/app/org/OrgSwitcher.js.map +1 -1
- package/dist/app/resources/McpAccessSettings.d.ts +9 -2
- package/dist/app/resources/McpAccessSettings.d.ts.map +1 -1
- package/dist/app/resources/McpAccessSettings.js +264 -86
- package/dist/app/resources/McpAccessSettings.js.map +1 -1
- package/dist/app/settings/api-keys/ApiKeyDialogs.d.ts +6 -0
- package/dist/app/settings/api-keys/ApiKeyDialogs.d.ts.map +1 -1
- package/dist/app/settings/api-keys/ApiKeyDialogs.js +74 -2
- package/dist/app/settings/api-keys/ApiKeyDialogs.js.map +1 -1
- package/dist/app/settings/api-keys/ApiKeysSettingsPage.d.ts.map +1 -1
- package/dist/app/settings/api-keys/ApiKeysSettingsPage.js +23 -9
- package/dist/app/settings/api-keys/ApiKeysSettingsPage.js.map +1 -1
- package/dist/app/settings/api-keys/api-keys-client.d.ts +10 -1
- package/dist/app/settings/api-keys/api-keys-client.d.ts.map +1 -1
- package/dist/app/settings/api-keys/api-keys-client.js +19 -1
- package/dist/app/settings/api-keys/api-keys-client.js.map +1 -1
- package/dist/app/settings/shell/pages/mcp.d.ts +1 -1
- package/dist/app/settings/shell/pages/mcp.d.ts.map +1 -1
- package/dist/app/settings/shell/pages/mcp.js +26 -20
- package/dist/app/settings/shell/pages/mcp.js.map +1 -1
- package/dist/app/sharing/ShareButton.d.ts +2 -0
- package/dist/app/sharing/ShareButton.d.ts.map +1 -1
- package/dist/app/sharing/ShareButton.js +4 -3
- package/dist/app/sharing/ShareButton.js.map +1 -1
- package/dist/composer/TiptapComposer.js +3 -0
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/sharing/ShareControls.d.ts +2 -0
- package/dist/sharing/ShareControls.d.ts.map +1 -1
- package/dist/sharing/ShareControls.js +7 -2
- package/dist/sharing/ShareControls.js.map +1 -1
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/numbered-steps.d.ts +14 -0
- package/dist/ui/numbered-steps.d.ts.map +1 -0
- package/dist/ui/numbered-steps.js +19 -0
- package/dist/ui/numbered-steps.js.map +1 -0
- package/package.json +4 -4
- package/src/app/agent-page/AgentTabFrame.tsx +21 -10
- package/src/app/chat/AgentPanel.header.spec.ts +4 -1
- package/src/app/chat/AgentPanel.tsx +19 -14
- package/src/app/chat/AgentSidebar.spec.tsx +167 -0
- package/src/app/chat/AgentSidebar.tsx +170 -101
- package/src/app/chat/chat/surface-types.ts +35 -31
- package/src/app/extensions/EmbeddedExtension.height.spec.tsx +45 -0
- package/src/app/extensions/EmbeddedExtension.tsx +6 -3
- package/src/app/extensions/ExtensionViewer.spec.tsx +28 -0
- package/src/app/extensions/ExtensionViewer.tsx +6 -2
- package/src/app/extensions/InlineExtensionFrame.spec.tsx +23 -0
- package/src/app/extensions/InlineExtensionFrame.tsx +23 -15
- package/src/app/extensions/use-extension-chat-submission.tsx +101 -0
- package/src/app/i18n/catalogs/ar-SA.ts +17 -0
- package/src/app/i18n/catalogs/de-DE.ts +15 -0
- package/src/app/i18n/catalogs/en-US.ts +13 -0
- package/src/app/i18n/catalogs/es-ES.ts +16 -0
- package/src/app/i18n/catalogs/fr-FR.ts +16 -0
- package/src/app/i18n/catalogs/hi-IN.ts +13 -0
- package/src/app/i18n/catalogs/ja-JP.ts +15 -0
- package/src/app/i18n/catalogs/ko-KR.ts +14 -0
- package/src/app/i18n/catalogs/pt-BR.ts +15 -0
- package/src/app/i18n/catalogs/zh-CN.ts +13 -0
- package/src/app/i18n/catalogs/zh-TW.ts +13 -0
- package/src/app/integrations/IntegrationsPanel.spec.tsx +1 -1
- package/src/app/org/OrgSwitcher.spec.tsx +43 -0
- package/src/app/org/OrgSwitcher.tsx +29 -24
- package/src/app/resources/McpAccessSettings.spec.tsx +354 -278
- package/src/app/resources/McpAccessSettings.tsx +1012 -323
- package/src/app/settings/api-keys/ApiKeyDialogs.tsx +148 -1
- package/src/app/settings/api-keys/ApiKeysSettingsPage.spec.tsx +190 -0
- package/src/app/settings/api-keys/ApiKeysSettingsPage.tsx +40 -1
- package/src/app/settings/api-keys/api-keys-client.spec.ts +49 -0
- package/src/app/settings/api-keys/api-keys-client.ts +32 -0
- package/src/app/settings/shell/pages/app-group-pages.spec.tsx +31 -21
- package/src/app/settings/shell/pages/mcp.tsx +50 -42
- package/src/app/sharing/ShareButton.tsx +10 -3
- package/src/composer/TiptapComposer.tsx +2 -0
- package/src/composer/TiptapComposer.voice-toolbar.spec.tsx +16 -0
- package/src/sharing/ShareControls.tsx +44 -24
- package/src/ui/index.ts +1 -0
- package/src/ui/numbered-steps.tsx +104 -0
|
@@ -5,6 +5,8 @@ export interface JoinedShareControlProps {
|
|
|
5
5
|
copiedLabel: string;
|
|
6
6
|
onCopy: () => Promise<boolean | void> | boolean | void;
|
|
7
7
|
size?: "default" | "sm";
|
|
8
|
+
/** `plain` sets the two apart, as quiet controls in a toolbar. */
|
|
9
|
+
appearance?: "joined" | "plain";
|
|
8
10
|
disabled?: boolean;
|
|
9
11
|
blocked?: boolean;
|
|
10
12
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareControls.d.ts","sourceRoot":"","sources":["../../src/sharing/ShareControls.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQhF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;IACvD,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ShareControls.d.ts","sourceRoot":"","sources":["../../src/sharing/ShareControls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs.js";
|
|
|
7
7
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip.js";
|
|
8
8
|
import { cn } from "../utils.js";
|
|
9
9
|
/** A joined share trigger and quick-copy action. Wrap with a popover anchor when needed. */
|
|
10
|
-
export const JoinedShareControl = forwardRef(function JoinedShareControl({ trigger, copyLabel, copiedLabel, onCopy, size = "default", disabled, blocked, className, }, ref) {
|
|
10
|
+
export const JoinedShareControl = forwardRef(function JoinedShareControl({ trigger, copyLabel, copiedLabel, onCopy, size = "default", appearance = "joined", disabled, blocked, className, }, ref) {
|
|
11
11
|
const [copied, setCopied] = useState(false);
|
|
12
12
|
const resetTimer = useRef(null);
|
|
13
13
|
useEffect(() => () => {
|
|
@@ -26,10 +26,15 @@ export const JoinedShareControl = forwardRef(function JoinedShareControl({ trigg
|
|
|
26
26
|
resetTimer.current = setTimeout(() => setCopied(false), 1_400);
|
|
27
27
|
};
|
|
28
28
|
const label = copied ? copiedLabel : copyLabel;
|
|
29
|
+
const plain = appearance === "plain";
|
|
30
|
+
const copyButton = (_jsxs(Tooltip, { ...(copied ? { open: true } : {}), children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { type: "button", size: "sm", variant: plain ? "ghost" : "default", className: cn("w-8 shrink-0 px-0 shadow-none", plain && "text-muted-foreground hover:text-foreground", blocked && "opacity-50"), "aria-label": label, disabled: disabled, "data-blocked": blocked ? "" : undefined, onClick: () => void copy(), children: copied ? (_jsx(IconCheck, { "aria-hidden": "true" })) : (_jsx(IconLink, { "aria-hidden": "true" })) }) }), _jsx(TooltipContent, { side: "bottom", children: label })] }));
|
|
31
|
+
if (plain) {
|
|
32
|
+
return (_jsxs("div", { ref: ref, className: cn("flex shrink-0 items-center gap-0.5", className), children: [trigger, copyButton] }));
|
|
33
|
+
}
|
|
29
34
|
const segmentHeightClass = size === "sm"
|
|
30
35
|
? "[&>*:not([data-slot=button-group-separator]):not([data-button-group-ignore]):not(select[aria-hidden=true])]:!h-8"
|
|
31
36
|
: "[&>*:not([data-slot=button-group-separator]):not([data-button-group-ignore]):not(select[aria-hidden=true])]:!h-9";
|
|
32
|
-
return (_jsxs(ButtonGroup, { ref: ref, className: cn("shrink-0 [&>*:not([data-slot=button-group-separator]):not([data-button-group-ignore]):not(select[aria-hidden=true]):not(:first-child)]:border-primary-foreground/20", segmentHeightClass, className), children: [trigger,
|
|
37
|
+
return (_jsxs(ButtonGroup, { ref: ref, className: cn("shrink-0 [&>*:not([data-slot=button-group-separator]):not([data-button-group-ignore]):not(select[aria-hidden=true]):not(:first-child)]:border-primary-foreground/20", segmentHeightClass, className), children: [trigger, copyButton] }));
|
|
33
38
|
});
|
|
34
39
|
JoinedShareControl.displayName = "JoinedShareControl";
|
|
35
40
|
/** The underline tab strip every share surface uses. Render inside `Tabs`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareControls.js","sourceRoot":"","sources":["../../src/sharing/ShareControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ShareControls.js","sourceRoot":"","sources":["../../src/sharing/ShareControls.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export * from "./label.js";
|
|
|
32
32
|
export * from "./logo.js";
|
|
33
33
|
export * from "./menubar.js";
|
|
34
34
|
export * from "./navigation-menu.js";
|
|
35
|
+
export * from "./numbered-steps.js";
|
|
35
36
|
export * from "./pagination.js";
|
|
36
37
|
export * from "./pointer-lock.js";
|
|
37
38
|
export * from "./popover.js";
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
package/dist/ui/index.js
CHANGED
|
@@ -32,6 +32,7 @@ export * from "./label.js";
|
|
|
32
32
|
export * from "./logo.js";
|
|
33
33
|
export * from "./menubar.js";
|
|
34
34
|
export * from "./navigation-menu.js";
|
|
35
|
+
export * from "./numbered-steps.js";
|
|
35
36
|
export * from "./pagination.js";
|
|
36
37
|
export * from "./pointer-lock.js";
|
|
37
38
|
export * from "./popover.js";
|
package/dist/ui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
export declare function NumberedSteps({ className, ...props }: ComponentProps<"ol">): import("react").JSX.Element;
|
|
3
|
+
export declare function NumberedStep({ number, last, showConnector, variant, contentClassName, className, children, ...props }: ComponentProps<"li"> & {
|
|
4
|
+
number: number;
|
|
5
|
+
last?: boolean;
|
|
6
|
+
showConnector?: boolean;
|
|
7
|
+
variant?: "outline" | "secondary";
|
|
8
|
+
contentClassName?: string;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
export declare function NumberedStepTitle({ asChild, className, ...props }: ComponentProps<"h3"> & {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
export declare function NumberedStepBody({ className, ...props }: ComponentProps<"div">): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=numbered-steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbered-steps.d.ts","sourceRoot":"","sources":["../../src/ui/numbered-steps.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,+BAS1E;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,IAAY,EACZ,aAAoB,EACpB,OAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,+BAyCA;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,+BAY9C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,+BAQvB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
import { cn } from "../utils.js";
|
|
4
|
+
export function NumberedSteps({ className, ...props }) {
|
|
5
|
+
return (_jsx("ol", { "data-slot": "numbered-steps", role: "list", className: cn("my-6 list-none p-0", className), ...props }));
|
|
6
|
+
}
|
|
7
|
+
export function NumberedStep({ number, last = false, showConnector = true, variant = "outline", contentClassName, className, children, ...props }) {
|
|
8
|
+
return (_jsxs("li", { "data-slot": "numbered-step", className: cn("flex items-stretch gap-4", className), ...props, children: [_jsxs("div", { "data-slot": "numbered-step-aside", className: cn("flex shrink-0 flex-col items-center", variant === "outline" && "pt-0.5"), "aria-hidden": "true", children: [_jsx("span", { "data-slot": "numbered-step-indicator", className: cn("relative z-10 flex size-[26px] shrink-0 items-center justify-center rounded-full text-xs font-semibold leading-none", variant === "secondary"
|
|
9
|
+
? "bg-secondary text-secondary-foreground"
|
|
10
|
+
: "border-[1.5px] border-primary bg-background text-primary"), children: number }), !last && showConnector && (_jsx("span", { "data-slot": "numbered-step-connector", className: "my-1.5 min-h-6 w-[1.5px] flex-1 bg-border" }))] }), _jsx("div", { "data-slot": "numbered-step-content", className: cn("min-w-0 flex-1", !last && "pb-7", contentClassName), children: children })] }));
|
|
11
|
+
}
|
|
12
|
+
export function NumberedStepTitle({ asChild = false, className, ...props }) {
|
|
13
|
+
const Comp = asChild ? Slot : "h3";
|
|
14
|
+
return (_jsx(Comp, { "data-slot": "numbered-step-title", className: cn("mt-0.5 mb-2 text-sm font-semibold leading-normal text-foreground", className), ...props }));
|
|
15
|
+
}
|
|
16
|
+
export function NumberedStepBody({ className, ...props }) {
|
|
17
|
+
return (_jsx("div", { "data-slot": "numbered-step-body", className: cn("text-sm leading-6 text-muted-foreground", className), ...props }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=numbered-steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbered-steps.js","sourceRoot":"","sources":["../../src/ui/numbered-steps.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,UAAU,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwB;IACzE,OAAO,CACL,0BACY,gBAAgB,EAC1B,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,KAC1C,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,MAAM,EACN,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,IAAI,EACpB,OAAO,GAAG,SAAS,EACnB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EAOT;IACC,OAAO,CACL,2BACY,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,CAAC,KAChD,KAAK,aAET,4BACY,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CACX,qCAAqC,EACrC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAClC,iBACW,MAAM,aAElB,4BACY,yBAAyB,EACnC,SAAS,EAAE,EAAE,CACX,qHAAqH,EACrH,OAAO,KAAK,WAAW;4BACrB,CAAC,CAAC,wCAAwC;4BAC1C,CAAC,CAAC,0DAA0D,CAC/D,YAEA,MAAM,GACF,EACN,CAAC,IAAI,IAAI,aAAa,IAAI,CACzB,4BACY,yBAAyB,EACnC,SAAS,EAAC,2CAA2C,GACrD,CACH,IACG,EACN,2BACY,uBAAuB,EACjC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,gBAAgB,CAAC,YAEjE,QAAQ,GACL,IACH,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,GAAG,KAAK,EACf,SAAS,EACT,GAAG,KAAK,EACqC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,CACL,KAAC,IAAI,iBACO,qBAAqB,EAC/B,SAAS,EAAE,EAAE,CACX,kEAAkE,EAClE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACc;IACtB,OAAO,CACL,2BACY,oBAAoB,EAC9B,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.228.0-nightly-20261111004142",
|
|
4
4
|
"description": "Reusable app-building UI and helpers for Agent-Native apps.",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -716,7 +716,7 @@
|
|
|
716
716
|
"y-protocols": "^1.0.7",
|
|
717
717
|
"yjs": "^13.6.33",
|
|
718
718
|
"zod": "^4.3.6",
|
|
719
|
-
"@agent-native/agentkit": "^0.
|
|
719
|
+
"@agent-native/agentkit": "^0.228.0-nightly-20261111004142"
|
|
720
720
|
},
|
|
721
721
|
"devDependencies": {
|
|
722
722
|
"@excalidraw/excalidraw": "0.18.1",
|
|
@@ -740,10 +740,10 @@
|
|
|
740
740
|
"typescript-7": "npm:typescript@^7.0.2",
|
|
741
741
|
"vite": "8.1.0",
|
|
742
742
|
"vitest": "^4.1.5",
|
|
743
|
-
"@agent-native/core": "^0.
|
|
743
|
+
"@agent-native/core": "^0.228.0-nightly-20261111004142"
|
|
744
744
|
},
|
|
745
745
|
"peerDependencies": {
|
|
746
|
-
"@agent-native/core": "
|
|
746
|
+
"@agent-native/core": "0.228.0-nightly-20261111004142",
|
|
747
747
|
"@excalidraw/excalidraw": ">=0.18",
|
|
748
748
|
"@excalidraw/mermaid-to-excalidraw": ">=2",
|
|
749
749
|
"@tanstack/react-query": "^5.99.2",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Button } from "@agent-native/toolkit/ui/button";
|
|
1
2
|
import { cn } from "@agent-native/toolkit/utils";
|
|
2
3
|
import { IconHelpCircle } from "@tabler/icons-react";
|
|
3
4
|
import type { ReactNode } from "react";
|
|
@@ -7,6 +8,7 @@ interface AgentTabFrameProps {
|
|
|
7
8
|
description: string;
|
|
8
9
|
helpHref?: string;
|
|
9
10
|
helpLabel?: string;
|
|
11
|
+
helpIcon?: ReactNode;
|
|
10
12
|
actions?: ReactNode;
|
|
11
13
|
children: ReactNode;
|
|
12
14
|
className?: string;
|
|
@@ -18,6 +20,7 @@ export function AgentTabFrame({
|
|
|
18
20
|
description,
|
|
19
21
|
helpHref,
|
|
20
22
|
helpLabel,
|
|
23
|
+
helpIcon,
|
|
21
24
|
actions,
|
|
22
25
|
children,
|
|
23
26
|
className,
|
|
@@ -40,17 +43,25 @@ export function AgentTabFrame({
|
|
|
40
43
|
{title}
|
|
41
44
|
</h2>
|
|
42
45
|
{helpHref && (
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
title={helpLabel ?? `Open ${title} documentation`}
|
|
49
|
-
className="inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground"
|
|
46
|
+
<Button
|
|
47
|
+
asChild
|
|
48
|
+
variant="ghost"
|
|
49
|
+
size="icon-xs"
|
|
50
|
+
className="shrink-0 text-muted-foreground [&_svg]:size-4"
|
|
50
51
|
>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
<a
|
|
53
|
+
href={helpHref}
|
|
54
|
+
target="_blank"
|
|
55
|
+
rel="noopener noreferrer"
|
|
56
|
+
aria-label={helpLabel ?? `Open ${title} documentation`}
|
|
57
|
+
title={helpLabel ?? `Open ${title} documentation`}
|
|
58
|
+
>
|
|
59
|
+
{helpIcon ?? (
|
|
60
|
+
// guard:allow-large-help-icon - heading documentation control
|
|
61
|
+
<IconHelpCircle className="size-4" aria-hidden="true" />
|
|
62
|
+
)}
|
|
63
|
+
</a>
|
|
64
|
+
</Button>
|
|
54
65
|
)}
|
|
55
66
|
</div>
|
|
56
67
|
<p className="max-w-2xl text-sm leading-relaxed text-muted-foreground">
|
|
@@ -1153,7 +1153,10 @@ describe("AgentPanel header overflow actions", () => {
|
|
|
1153
1153
|
expect(panelSource).toMatch(
|
|
1154
1154
|
/\{mode === "chat"\s*\?\s*mainTabs\.map[\s\S]*?:\s*cliTabs\.map/,
|
|
1155
1155
|
);
|
|
1156
|
-
|
|
1156
|
+
// oracle-change: a host's own panel has its own close, so the sidebar's collapse button stays out of it.
|
|
1157
|
+
expect(source).toContain(
|
|
1158
|
+
"showCollapseButton={!hostedPanel && showCollapseButton}",
|
|
1159
|
+
);
|
|
1157
1160
|
});
|
|
1158
1161
|
|
|
1159
1162
|
it("keeps host CLI tabs mounted while chat is active", () => {
|
|
@@ -590,26 +590,31 @@ export interface AgentPanelProps extends Omit<
|
|
|
590
590
|
isFullscreen?: boolean;
|
|
591
591
|
/** @deprecated Fullscreen sidebar controls are no longer rendered. */
|
|
592
592
|
onToggleFullscreen?: () => void;
|
|
593
|
-
onFullViewRequest?: (threadId?: string) => void;
|
|
594
|
-
onSnapTo75Percent?: () => void;
|
|
593
|
+
onFullViewRequest?: ((threadId?: string) => void) | undefined;
|
|
594
|
+
onSnapTo75Percent?: (() => void) | undefined;
|
|
595
595
|
isWideDrawer?: boolean;
|
|
596
|
-
onExitWideDrawer?: () => void;
|
|
597
|
-
onOpenSettings?: (section?: string) => void;
|
|
598
|
-
onNewCliTab?: () => void;
|
|
599
|
-
onNewUiTab?: () => void;
|
|
600
|
-
renderCliTab?:
|
|
596
|
+
onExitWideDrawer?: (() => void) | undefined;
|
|
597
|
+
onOpenSettings?: ((section?: string) => void) | undefined;
|
|
598
|
+
onNewCliTab?: (() => void) | undefined;
|
|
599
|
+
onNewUiTab?: (() => void) | undefined;
|
|
600
|
+
renderCliTab?:
|
|
601
|
+
| ((input: { id: string; active: boolean }) => React.ReactNode)
|
|
602
|
+
| undefined;
|
|
601
603
|
newTabMode?: "ui" | "cli";
|
|
602
|
-
newCliTabLabel?: string;
|
|
603
|
-
newUiTabLabel?: string;
|
|
604
|
-
storageKey?: string;
|
|
604
|
+
newCliTabLabel?: string | undefined;
|
|
605
|
+
newUiTabLabel?: string | undefined;
|
|
606
|
+
storageKey?: string | undefined;
|
|
605
607
|
preferEngineDefaultModel?: MultiTabAssistantChatProps["preferEngineDefaultModel"];
|
|
606
608
|
restoreActiveThread?: boolean;
|
|
607
|
-
scope?:
|
|
609
|
+
scope?:
|
|
610
|
+
| import("@agent-native/core/client/agent-chat").ChatThreadScope
|
|
611
|
+
| null
|
|
612
|
+
| undefined;
|
|
608
613
|
isolateHistoryByScope?: boolean;
|
|
609
614
|
composerAutoFocus?: MultiTabAssistantChatProps["composerAutoFocus"];
|
|
610
615
|
/** @deprecated Scope context now appears inside the composer. */
|
|
611
616
|
showScopeBadge?: MultiTabAssistantChatProps["showScopeBadge"];
|
|
612
|
-
browserTabId?: string;
|
|
617
|
+
browserTabId?: string | undefined;
|
|
613
618
|
threadUrlSync?: MultiTabAssistantChatProps["threadUrlSync"];
|
|
614
619
|
chatNotice?: React.ReactNode;
|
|
615
620
|
showTabBar?: boolean;
|
|
@@ -627,9 +632,9 @@ export interface AgentPanelProps extends Omit<
|
|
|
627
632
|
| ((actions: AgentPanelPageToolbarActions) => React.ReactNode);
|
|
628
633
|
onPageHeaderVisibilityChange?: (visible: boolean) => void;
|
|
629
634
|
chatOnly?: boolean;
|
|
630
|
-
agentPageHref?: string;
|
|
635
|
+
agentPageHref?: string | undefined;
|
|
631
636
|
codeAccess?: AgentPanelCodeAccess;
|
|
632
|
-
builderConnectTransport?: BuilderConnectTransport;
|
|
637
|
+
builderConnectTransport?: BuilderConnectTransport | undefined;
|
|
633
638
|
}
|
|
634
639
|
|
|
635
640
|
function useClientOnly() {
|
|
@@ -43,6 +43,7 @@ const mockPanel = vi.hoisted(() => {
|
|
|
43
43
|
| undefined,
|
|
44
44
|
hostedHarness: undefined as boolean | undefined,
|
|
45
45
|
emptyStateText: null as string | null | undefined,
|
|
46
|
+
composerAutoFocus: undefined as boolean | undefined,
|
|
46
47
|
composer: undefined as React.ReactNode,
|
|
47
48
|
importGate: new Promise<void>((resolve) => {
|
|
48
49
|
resolveImport = resolve;
|
|
@@ -62,6 +63,7 @@ vi.mock("./AgentSidebarPanel.js", async () => {
|
|
|
62
63
|
mcpSuggestionExcludedIntegrationIds,
|
|
63
64
|
hostedHarness,
|
|
64
65
|
emptyStateText,
|
|
66
|
+
composerAutoFocus,
|
|
65
67
|
}: {
|
|
66
68
|
onReadyChange?: (ready: boolean) => void;
|
|
67
69
|
onReferenceTargetChange?: MultiTabAssistantChatProps["onReferenceTargetChange"];
|
|
@@ -69,11 +71,13 @@ vi.mock("./AgentSidebarPanel.js", async () => {
|
|
|
69
71
|
mcpSuggestionExcludedIntegrationIds?: readonly string[];
|
|
70
72
|
hostedHarness?: boolean;
|
|
71
73
|
emptyStateText?: string;
|
|
74
|
+
composerAutoFocus?: boolean;
|
|
72
75
|
}) => {
|
|
73
76
|
mockPanel.mcpSuggestionExcludedIntegrationIds =
|
|
74
77
|
mcpSuggestionExcludedIntegrationIds;
|
|
75
78
|
mockPanel.hostedHarness = hostedHarness;
|
|
76
79
|
mockPanel.emptyStateText = emptyStateText;
|
|
80
|
+
mockPanel.composerAutoFocus = composerAutoFocus;
|
|
77
81
|
React.useEffect(() => {
|
|
78
82
|
mockPanel.onNavigationChange = onNavigationChange;
|
|
79
83
|
const record = (event: Event) => {
|
|
@@ -238,6 +242,7 @@ function renderSidebar(
|
|
|
238
242
|
storageKey?: string,
|
|
239
243
|
strictMode = false,
|
|
240
244
|
mcpSuggestionExcludedIntegrationIds?: readonly string[],
|
|
245
|
+
panelHost?: HTMLElement,
|
|
241
246
|
) {
|
|
242
247
|
const render = (nextEnabled: boolean) => {
|
|
243
248
|
flushSync(() => {
|
|
@@ -252,6 +257,7 @@ function renderSidebar(
|
|
|
252
257
|
mcpSuggestionExcludedIntegrationIds
|
|
253
258
|
}
|
|
254
259
|
openOnChatRunning={openOnChatRunning}
|
|
260
|
+
panelHost={panelHost}
|
|
255
261
|
position={position}
|
|
256
262
|
screenRefreshEnabled={screenRefreshEnabled}
|
|
257
263
|
storageKey={storageKey}
|
|
@@ -588,6 +594,65 @@ describe("AgentSidebar panel", () => {
|
|
|
588
594
|
}
|
|
589
595
|
});
|
|
590
596
|
|
|
597
|
+
it("delivers a cold new-tab send after the panel switches to its new tab", async () => {
|
|
598
|
+
mockPanel.resolveImport();
|
|
599
|
+
mockPanel.composer = (
|
|
600
|
+
<div data-agent-chat-reference-target="restored">
|
|
601
|
+
<textarea />
|
|
602
|
+
</div>
|
|
603
|
+
);
|
|
604
|
+
// The panel mounts on the chat it last showed, then opens the send's own
|
|
605
|
+
// tab before the retained send is replayed.
|
|
606
|
+
mockPanel.onReady = (notify) => {
|
|
607
|
+
notify?.("restored", []);
|
|
608
|
+
container!
|
|
609
|
+
.querySelector("textarea")!
|
|
610
|
+
.parentElement!.setAttribute(
|
|
611
|
+
"data-agent-chat-reference-target",
|
|
612
|
+
"automation-tab",
|
|
613
|
+
);
|
|
614
|
+
notify?.("automation-tab", []);
|
|
615
|
+
};
|
|
616
|
+
const chat = await import("@agent-native/core/client/agent-chat");
|
|
617
|
+
const results: unknown[] = [];
|
|
618
|
+
const record = (event: Event) =>
|
|
619
|
+
results.push((event as CustomEvent).detail);
|
|
620
|
+
window.addEventListener(chat.AGENT_CHAT_SUBMIT_RESULT_EVENT, record);
|
|
621
|
+
try {
|
|
622
|
+
renderSidebar(false);
|
|
623
|
+
await act(async () => {
|
|
624
|
+
window.dispatchEvent(
|
|
625
|
+
new MessageEvent("message", {
|
|
626
|
+
origin: window.location.origin,
|
|
627
|
+
data: {
|
|
628
|
+
type: "agentNative.submitChat",
|
|
629
|
+
data: {
|
|
630
|
+
message: "Create an automation that does this: say ok",
|
|
631
|
+
submit: true,
|
|
632
|
+
newTab: true,
|
|
633
|
+
tabId: "automation-tab",
|
|
634
|
+
submitMessageId: "cold-new-tab-send",
|
|
635
|
+
},
|
|
636
|
+
},
|
|
637
|
+
}),
|
|
638
|
+
);
|
|
639
|
+
});
|
|
640
|
+
expect(results).toEqual([]);
|
|
641
|
+
expect(mockPanel.events).toEqual([
|
|
642
|
+
{
|
|
643
|
+
type: "message",
|
|
644
|
+
detail: expect.objectContaining({
|
|
645
|
+
data: expect.objectContaining({
|
|
646
|
+
submitMessageId: "cold-new-tab-send",
|
|
647
|
+
}),
|
|
648
|
+
}),
|
|
649
|
+
},
|
|
650
|
+
]);
|
|
651
|
+
} finally {
|
|
652
|
+
window.removeEventListener(chat.AGENT_CHAT_SUBMIT_RESULT_EVENT, record);
|
|
653
|
+
}
|
|
654
|
+
});
|
|
655
|
+
|
|
591
656
|
it.each(["second", "first-again", "missing-marker"])(
|
|
592
657
|
"binds navigation references at commit before delayed acknowledgement (%s)",
|
|
593
658
|
async (selection) => {
|
|
@@ -2296,6 +2361,108 @@ describe("AgentSidebar panel", () => {
|
|
|
2296
2361
|
expect(container?.querySelector("textarea")).toBeTruthy();
|
|
2297
2362
|
});
|
|
2298
2363
|
|
|
2364
|
+
describe("in a host's element", () => {
|
|
2365
|
+
function renderHosted(attached = true) {
|
|
2366
|
+
const host = document.createElement("div");
|
|
2367
|
+
if (attached) document.body.appendChild(host);
|
|
2368
|
+
renderSidebar(
|
|
2369
|
+
true,
|
|
2370
|
+
undefined,
|
|
2371
|
+
false,
|
|
2372
|
+
true,
|
|
2373
|
+
true,
|
|
2374
|
+
false,
|
|
2375
|
+
false,
|
|
2376
|
+
undefined,
|
|
2377
|
+
false,
|
|
2378
|
+
undefined,
|
|
2379
|
+
host,
|
|
2380
|
+
);
|
|
2381
|
+
return host;
|
|
2382
|
+
}
|
|
2383
|
+
|
|
2384
|
+
const press = (init: KeyboardEventInit) =>
|
|
2385
|
+
act(async () => {
|
|
2386
|
+
document.dispatchEvent(
|
|
2387
|
+
new KeyboardEvent("keydown", {
|
|
2388
|
+
bubbles: true,
|
|
2389
|
+
cancelable: true,
|
|
2390
|
+
...init,
|
|
2391
|
+
}),
|
|
2392
|
+
);
|
|
2393
|
+
});
|
|
2394
|
+
|
|
2395
|
+
it("draws the chat there and keeps it mounted after it closes", async () => {
|
|
2396
|
+
mockPanel.resolveImport();
|
|
2397
|
+
const host = renderHosted();
|
|
2398
|
+
await act(async () => {});
|
|
2399
|
+
|
|
2400
|
+
expect(
|
|
2401
|
+
host.querySelector("[data-agent-sidebar-layout='hosted']"),
|
|
2402
|
+
).toBeTruthy();
|
|
2403
|
+
expect(container?.querySelector(".agent-sidebar-panel")).toBeNull();
|
|
2404
|
+
expect(host.querySelector("textarea")).toBeTruthy();
|
|
2405
|
+
|
|
2406
|
+
await act(async () => {
|
|
2407
|
+
window.dispatchEvent(new CustomEvent("agent-panel:close"));
|
|
2408
|
+
});
|
|
2409
|
+
expect(
|
|
2410
|
+
host.querySelector("[data-agent-sidebar-state='closed']"),
|
|
2411
|
+
).toBeTruthy();
|
|
2412
|
+
expect(host.querySelector("textarea")).toBeTruthy();
|
|
2413
|
+
host.remove();
|
|
2414
|
+
});
|
|
2415
|
+
|
|
2416
|
+
it("does not take focus from the tab that opened it", async () => {
|
|
2417
|
+
mockPanel.resolveImport();
|
|
2418
|
+
const host = renderHosted();
|
|
2419
|
+
await act(async () => {});
|
|
2420
|
+
|
|
2421
|
+
expect(mockPanel.composerAutoFocus).toBe(false);
|
|
2422
|
+
host.remove();
|
|
2423
|
+
});
|
|
2424
|
+
|
|
2425
|
+
it("leaves its panel keys to the host", async () => {
|
|
2426
|
+
mockPanel.resolveImport();
|
|
2427
|
+
const host = renderHosted();
|
|
2428
|
+
await act(async () => {});
|
|
2429
|
+
await act(async () => {
|
|
2430
|
+
window.dispatchEvent(new CustomEvent("agent-panel:close"));
|
|
2431
|
+
});
|
|
2432
|
+
|
|
2433
|
+
await press({ code: "Backslash", key: "\\", ctrlKey: true });
|
|
2434
|
+
await press({ key: "i", metaKey: true, shiftKey: true });
|
|
2435
|
+
expect(
|
|
2436
|
+
host.querySelector("[data-agent-sidebar-state='open']"),
|
|
2437
|
+
).toBeNull();
|
|
2438
|
+
|
|
2439
|
+
await press({ key: "i", metaKey: true });
|
|
2440
|
+
expect(
|
|
2441
|
+
host.querySelector("[data-agent-sidebar-state='open']"),
|
|
2442
|
+
).toBeTruthy();
|
|
2443
|
+
host.remove();
|
|
2444
|
+
});
|
|
2445
|
+
|
|
2446
|
+
it("answers ⌘\\ itself while the host's element isn't on the page", async () => {
|
|
2447
|
+
mockPanel.resolveImport();
|
|
2448
|
+
const host = renderHosted(false);
|
|
2449
|
+
await act(async () => {});
|
|
2450
|
+
await act(async () => {
|
|
2451
|
+
window.dispatchEvent(new CustomEvent("agent-panel:close"));
|
|
2452
|
+
});
|
|
2453
|
+
|
|
2454
|
+
await press({ key: "i", metaKey: true, shiftKey: true });
|
|
2455
|
+
expect(
|
|
2456
|
+
host.querySelector("[data-agent-sidebar-state='open']"),
|
|
2457
|
+
).toBeNull();
|
|
2458
|
+
|
|
2459
|
+
await press({ code: "Backslash", key: "\\", ctrlKey: true });
|
|
2460
|
+
expect(
|
|
2461
|
+
host.querySelector("[data-agent-sidebar-state='open']"),
|
|
2462
|
+
).toBeTruthy();
|
|
2463
|
+
});
|
|
2464
|
+
});
|
|
2465
|
+
|
|
2299
2466
|
it("pauses screen refresh until the panel is active", () => {
|
|
2300
2467
|
renderSidebar(false);
|
|
2301
2468
|
|