@agent-native/toolkit 0.227.0 → 0.228.0-nightly-20261110212400

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.
@@ -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":"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"}
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, _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { type: "button", size: "sm", variant: "default", className: cn("w-8 shrink-0 px-0 shadow-none", 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 })] })] }));
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":"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"}
1
+ {"version":3,"file":"ShareControls.js","sourceRoot":"","sources":["../../src/sharing/ShareControls.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/toolkit",
3
- "version": "0.227.0",
3
+ "version": "0.228.0-nightly-20261110212400",
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.227.0"
719
+ "@agent-native/agentkit": "^0.228.0-nightly-20261110212400"
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.227.0"
743
+ "@agent-native/core": "^0.228.0-nightly-20261110212400"
744
744
  },
745
745
  "peerDependencies": {
746
- "@agent-native/core": ">=0.227.0-0",
746
+ "@agent-native/core": "0.228.0-nightly-20261110212400",
747
747
  "@excalidraw/excalidraw": ">=0.18",
748
748
  "@excalidraw/mermaid-to-excalidraw": ">=2",
749
749
  "@tanstack/react-query": "^5.99.2",
@@ -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
- expect(source).toContain("showCollapseButton={showCollapseButton}");
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?: (input: { id: string; active: boolean }) => React.ReactNode;
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?: import("@agent-native/core/client/agent-chat").ChatThreadScope | null;
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}
@@ -2296,6 +2302,108 @@ describe("AgentSidebar panel", () => {
2296
2302
  expect(container?.querySelector("textarea")).toBeTruthy();
2297
2303
  });
2298
2304
 
2305
+ describe("in a host's element", () => {
2306
+ function renderHosted(attached = true) {
2307
+ const host = document.createElement("div");
2308
+ if (attached) document.body.appendChild(host);
2309
+ renderSidebar(
2310
+ true,
2311
+ undefined,
2312
+ false,
2313
+ true,
2314
+ true,
2315
+ false,
2316
+ false,
2317
+ undefined,
2318
+ false,
2319
+ undefined,
2320
+ host,
2321
+ );
2322
+ return host;
2323
+ }
2324
+
2325
+ const press = (init: KeyboardEventInit) =>
2326
+ act(async () => {
2327
+ document.dispatchEvent(
2328
+ new KeyboardEvent("keydown", {
2329
+ bubbles: true,
2330
+ cancelable: true,
2331
+ ...init,
2332
+ }),
2333
+ );
2334
+ });
2335
+
2336
+ it("draws the chat there and keeps it mounted after it closes", async () => {
2337
+ mockPanel.resolveImport();
2338
+ const host = renderHosted();
2339
+ await act(async () => {});
2340
+
2341
+ expect(
2342
+ host.querySelector("[data-agent-sidebar-layout='hosted']"),
2343
+ ).toBeTruthy();
2344
+ expect(container?.querySelector(".agent-sidebar-panel")).toBeNull();
2345
+ expect(host.querySelector("textarea")).toBeTruthy();
2346
+
2347
+ await act(async () => {
2348
+ window.dispatchEvent(new CustomEvent("agent-panel:close"));
2349
+ });
2350
+ expect(
2351
+ host.querySelector("[data-agent-sidebar-state='closed']"),
2352
+ ).toBeTruthy();
2353
+ expect(host.querySelector("textarea")).toBeTruthy();
2354
+ host.remove();
2355
+ });
2356
+
2357
+ it("does not take focus from the tab that opened it", async () => {
2358
+ mockPanel.resolveImport();
2359
+ const host = renderHosted();
2360
+ await act(async () => {});
2361
+
2362
+ expect(mockPanel.composerAutoFocus).toBe(false);
2363
+ host.remove();
2364
+ });
2365
+
2366
+ it("leaves its panel keys to the host", async () => {
2367
+ mockPanel.resolveImport();
2368
+ const host = renderHosted();
2369
+ await act(async () => {});
2370
+ await act(async () => {
2371
+ window.dispatchEvent(new CustomEvent("agent-panel:close"));
2372
+ });
2373
+
2374
+ await press({ code: "Backslash", key: "\\", ctrlKey: true });
2375
+ await press({ key: "i", metaKey: true, shiftKey: true });
2376
+ expect(
2377
+ host.querySelector("[data-agent-sidebar-state='open']"),
2378
+ ).toBeNull();
2379
+
2380
+ await press({ key: "i", metaKey: true });
2381
+ expect(
2382
+ host.querySelector("[data-agent-sidebar-state='open']"),
2383
+ ).toBeTruthy();
2384
+ host.remove();
2385
+ });
2386
+
2387
+ it("answers ⌘\\ itself while the host's element isn't on the page", async () => {
2388
+ mockPanel.resolveImport();
2389
+ const host = renderHosted(false);
2390
+ await act(async () => {});
2391
+ await act(async () => {
2392
+ window.dispatchEvent(new CustomEvent("agent-panel:close"));
2393
+ });
2394
+
2395
+ await press({ key: "i", metaKey: true, shiftKey: true });
2396
+ expect(
2397
+ host.querySelector("[data-agent-sidebar-state='open']"),
2398
+ ).toBeNull();
2399
+
2400
+ await press({ code: "Backslash", key: "\\", ctrlKey: true });
2401
+ expect(
2402
+ host.querySelector("[data-agent-sidebar-state='open']"),
2403
+ ).toBeTruthy();
2404
+ });
2405
+ });
2406
+
2299
2407
  it("pauses screen refresh until the panel is active", () => {
2300
2408
  renderSidebar(false);
2301
2409