@agent-native/toolkit 0.14.0 → 0.14.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ChatHistoryList.d.ts","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatHistoryList.d.ts","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryList.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2
3
  import { IconDots, IconPencil, IconPinned, IconPinnedOff, IconSearch, IconTrash, } from "@tabler/icons-react";
3
- import React, { useEffect, useMemo, useRef, useState } from "react";
4
+ import React, { useMemo, useRef, useState } from "react";
4
5
  import { cn } from "../utils.js";
5
6
  const DEFAULT_LABELS = {
6
7
  options: "Chat options",
@@ -49,31 +50,11 @@ const ChatHistoryRow = React.memo(function ChatHistoryRow({ item, active, onSele
49
50
  const [draftTitle, setDraftTitle] = useState("");
50
51
  const [menuOpen, setMenuOpen] = useState(false);
51
52
  const renameInputRef = useRef(null);
52
- const menuRef = useRef(null);
53
53
  const hasMenu = Boolean(onTogglePin ||
54
54
  onRename ||
55
55
  onDelete ||
56
56
  renderRowActions ||
57
57
  renderAdditionalRowActions);
58
- useEffect(() => {
59
- if (!menuOpen)
60
- return;
61
- function handlePointerDown(event) {
62
- if (menuRef.current && !menuRef.current.contains(event.target)) {
63
- setMenuOpen(false);
64
- }
65
- }
66
- function handleKeyDown(event) {
67
- if (event.key === "Escape")
68
- setMenuOpen(false);
69
- }
70
- document.addEventListener("pointerdown", handlePointerDown);
71
- document.addEventListener("keydown", handleKeyDown);
72
- return () => {
73
- document.removeEventListener("pointerdown", handlePointerDown);
74
- document.removeEventListener("keydown", handleKeyDown);
75
- };
76
- }, [menuOpen]);
77
58
  function startRename() {
78
59
  setDraftTitle(item.titleText ?? "");
79
60
  setIsRenaming(true);
@@ -110,12 +91,12 @@ const ChatHistoryRow = React.memo(function ChatHistoryRow({ item, active, onSele
110
91
  return;
111
92
  event.preventDefault();
112
93
  setMenuOpen(true);
113
- }, children: [isRenaming ? (_jsx("div", { className: "an-chat-history-row__rename", children: _jsx("input", { ref: renameInputRef, className: "an-chat-history-row__rename-input", value: draftTitle, maxLength: renameMaxLength, onChange: (event) => setDraftTitle(event.target.value), onKeyDown: handleRenameKeyDown, onBlur: commitRename, autoFocus: true, "aria-label": renameInputLabel }) })) : (_jsxs("button", { type: "button", className: "an-chat-history-row__button", onClick: () => !item.disabled && onSelect(item.id), onDoubleClick: () => !item.disabled && onOpen?.(item.id), disabled: item.disabled, children: [_jsxs("div", { className: "an-chat-history-row__topline", children: [_jsx("span", { className: "an-chat-history-row__title", children: item.title }), item.timestamp != null && (_jsx("span", { className: "an-chat-history-row__timestamp", children: item.timestamp }))] }), item.subtitle != null && (_jsx("div", { className: "an-chat-history-row__subtitle", children: item.subtitle })), item.detail != null && (_jsx("div", { className: "an-chat-history-row__detail", children: item.detail }))] })), !isRenaming && hasMenu && (_jsxs("div", { className: "an-chat-history-row__menu", ref: menuRef, children: [_jsx("button", { type: "button", className: cn("an-chat-history-row__menu-trigger", item.pinned && "an-chat-history-row__menu-trigger--pinned"), "aria-label": optionsLabel, "aria-haspopup": "menu", "aria-expanded": menuOpen, onClick: () => setMenuOpen((open) => !open), children: item.pinned ? (_jsx(IconPinned, { size: 13, strokeWidth: 1.8 })) : (_jsx(IconDots, { size: 14, strokeWidth: 1.8 })) }), menuOpen && (_jsx("div", { className: "an-chat-history-row__menu-content", role: "menu", children: renderRowActions ? (renderRowActions(item)) : (_jsxs(_Fragment, { children: [onRename && (_jsxs("button", { type: "button", role: "menuitem", className: "an-chat-history-row__menu-item", onClick: startRename, children: [_jsx(IconPencil, { size: 13, strokeWidth: 1.8 }), _jsx("span", { children: labels.rename })] })), onTogglePin && (_jsxs("button", { type: "button", role: "menuitem", className: "an-chat-history-row__menu-item", onClick: () => {
114
- setMenuOpen(false);
115
- onTogglePin(item.id);
116
- }, children: [item.pinned ? (_jsx(IconPinnedOff, { size: 13, strokeWidth: 1.8 })) : (_jsx(IconPinned, { size: 13, strokeWidth: 1.8 })), _jsx("span", { children: item.pinned ? labels.unpin : labels.pin })] })), renderAdditionalRowActions?.(item, () => setMenuOpen(false)), onDelete && (_jsxs("button", { type: "button", role: "menuitem", className: "an-chat-history-row__menu-item an-chat-history-row__menu-item--danger", onClick: () => {
117
- setMenuOpen(false);
118
- onDelete(item.id);
119
- }, children: [_jsx(IconTrash, { size: 13, strokeWidth: 1.8 }), _jsx("span", { children: labels.delete })] }))] })) }))] }))] }));
94
+ }, children: [isRenaming ? (_jsx("div", { className: "an-chat-history-row__rename", children: _jsx("input", { ref: renameInputRef, className: "an-chat-history-row__rename-input", value: draftTitle, maxLength: renameMaxLength, onChange: (event) => setDraftTitle(event.target.value), onKeyDown: handleRenameKeyDown, onBlur: commitRename, autoFocus: true, "aria-label": renameInputLabel }) })) : (_jsxs("button", { type: "button", className: "an-chat-history-row__button", onClick: () => !item.disabled && onSelect(item.id), onDoubleClick: () => !item.disabled && onOpen?.(item.id), disabled: item.disabled, children: [_jsxs("div", { className: "an-chat-history-row__topline", children: [_jsx("span", { className: "an-chat-history-row__title", children: item.title }), item.timestamp != null && (_jsx("span", { className: "an-chat-history-row__timestamp", children: item.timestamp }))] }), item.subtitle != null && (_jsx("div", { className: "an-chat-history-row__subtitle", children: item.subtitle })), item.detail != null && (_jsx("div", { className: "an-chat-history-row__detail", children: item.detail }))] })), !isRenaming && hasMenu && (_jsx(DropdownMenuPrimitive.Root, { open: menuOpen, onOpenChange: setMenuOpen, children: _jsxs("div", { className: "an-chat-history-row__menu", children: [_jsx(DropdownMenuPrimitive.Trigger, { asChild: true, children: _jsx("button", { type: "button", className: cn("an-chat-history-row__menu-trigger", item.pinned && "an-chat-history-row__menu-trigger--pinned"), "aria-label": optionsLabel, "aria-haspopup": "menu", "aria-expanded": menuOpen, children: item.pinned ? (_jsx(IconPinned, { size: 13, strokeWidth: 1.8 })) : (_jsx(IconDots, { size: 14, strokeWidth: 1.8 })) }) }), _jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { className: "an-chat-history-row__menu-content", align: "end", collisionPadding: 8, side: "bottom", sideOffset: 4, children: renderRowActions ? (renderRowActions(item)) : (_jsxs(_Fragment, { children: [onRename && (_jsxs("button", { type: "button", role: "menuitem", className: "an-chat-history-row__menu-item", onClick: startRename, children: [_jsx(IconPencil, { size: 13, strokeWidth: 1.8 }), _jsx("span", { children: labels.rename })] })), onTogglePin && (_jsxs("button", { type: "button", role: "menuitem", className: "an-chat-history-row__menu-item", onClick: () => {
95
+ setMenuOpen(false);
96
+ onTogglePin(item.id);
97
+ }, children: [item.pinned ? (_jsx(IconPinnedOff, { size: 13, strokeWidth: 1.8 })) : (_jsx(IconPinned, { size: 13, strokeWidth: 1.8 })), _jsx("span", { children: item.pinned ? labels.unpin : labels.pin })] })), renderAdditionalRowActions?.(item, () => setMenuOpen(false)), onDelete && (_jsxs("button", { type: "button", role: "menuitem", className: "an-chat-history-row__menu-item an-chat-history-row__menu-item--danger", onClick: () => {
98
+ setMenuOpen(false);
99
+ onDelete(item.id);
100
+ }, children: [_jsx(IconTrash, { size: 13, strokeWidth: 1.8 }), _jsx("span", { children: labels.delete })] }))] })) }) })] }) }))] }));
120
101
  });
121
102
  //# sourceMappingURL=ChatHistoryList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatHistoryList.js","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatHistoryList.js","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryList.tsx"],"names":[],"mappings":"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"}
@@ -20,6 +20,19 @@ function typeIntoInput(input, value) {
20
20
  input.dispatchEvent(new Event("input", { bubbles: true }));
21
21
  input.dispatchEvent(new Event("change", { bubbles: true }));
22
22
  }
23
+ async function openMenu(trigger) {
24
+ await act(async () => {
25
+ trigger.dispatchEvent(new PointerEvent("pointerdown", {
26
+ bubbles: true,
27
+ button: 0,
28
+ pointerType: "mouse",
29
+ }));
30
+ await Promise.resolve();
31
+ });
32
+ }
33
+ function getMenuItems() {
34
+ return Array.from(document.body.querySelectorAll(".an-chat-history-row__menu-item"));
35
+ }
23
36
  describe("ChatHistoryList", () => {
24
37
  let container;
25
38
  let root;
@@ -140,7 +153,7 @@ describe("ChatHistoryList", () => {
140
153
  });
141
154
  expect(container.querySelector(".an-chat-history-row__menu")).toBeNull();
142
155
  });
143
- it("supports pin toggling via the row action menu", () => {
156
+ it("supports pin toggling via the row action menu", async () => {
144
157
  const onTogglePin = vi.fn();
145
158
  const items = [
146
159
  item({ id: "thread-1", title: "First chat" }),
@@ -150,17 +163,26 @@ describe("ChatHistoryList", () => {
150
163
  });
151
164
  const trigger = container.querySelector(".an-chat-history-row__menu-trigger");
152
165
  expect(trigger).not.toBeNull();
153
- act(() => {
154
- trigger.click();
155
- });
156
- const pinItem = Array.from(container.querySelectorAll(".an-chat-history-row__menu-item")).find((el) => el.textContent?.includes("Pin to top"));
166
+ await openMenu(trigger);
167
+ const pinItem = getMenuItems().find((el) => el.textContent?.includes("Pin to top"));
157
168
  expect(pinItem).toBeDefined();
158
169
  act(() => {
159
170
  pinItem.click();
160
171
  });
161
172
  expect(onTogglePin).toHaveBeenCalledWith("thread-1");
162
173
  });
163
- it("uses custom labels for localized row actions", () => {
174
+ it("ports rail row menus outside the scroll container", async () => {
175
+ act(() => {
176
+ root.render(_jsx(ChatHistoryList, { variant: "rail", items: [item({ id: "thread-1" })], onSelect: () => { }, onDelete: () => { } }));
177
+ });
178
+ const trigger = container.querySelector(".an-chat-history-row__menu-trigger");
179
+ await openMenu(trigger);
180
+ const menu = document.body.querySelector(".an-chat-history-row__menu-content");
181
+ expect(menu).not.toBeNull();
182
+ expect(menu?.closest(".an-chat-history__list")).toBeNull();
183
+ expect(menu?.getAttribute("role")).toBe("menu");
184
+ });
185
+ it("uses custom labels for localized row actions", async () => {
164
186
  const onTogglePin = vi.fn();
165
187
  const onDelete = vi.fn();
166
188
  const labels = {
@@ -179,23 +201,19 @@ describe("ChatHistoryList", () => {
179
201
  render();
180
202
  const trigger = container.querySelector(".an-chat-history-row__menu-trigger");
181
203
  expect(trigger?.getAttribute("aria-label")).toBe(labels.options);
182
- act(() => {
183
- trigger.click();
184
- });
185
- expect(container.textContent).toContain(labels.rename);
186
- expect(container.textContent).toContain(labels.pin);
187
- expect(container.textContent).toContain(labels.delete);
188
- const archiveItem = Array.from(container.querySelectorAll(".an-chat-history-row__menu-item")).find((element) => element.textContent?.includes(labels.delete));
204
+ await openMenu(trigger);
205
+ expect(document.body.textContent).toContain(labels.rename);
206
+ expect(document.body.textContent).toContain(labels.pin);
207
+ expect(document.body.textContent).toContain(labels.delete);
208
+ const archiveItem = getMenuItems().find((element) => element.textContent?.includes(labels.delete));
189
209
  act(() => {
190
210
  archiveItem.click();
191
211
  });
192
212
  expect(onDelete).toHaveBeenCalledWith("thread-1");
193
213
  render();
194
214
  const renameTrigger = container.querySelector(".an-chat-history-row__menu-trigger");
195
- act(() => {
196
- renameTrigger.click();
197
- });
198
- const renameItem = Array.from(container.querySelectorAll(".an-chat-history-row__menu-item")).find((element) => element.textContent?.includes(labels.rename));
215
+ await openMenu(renameTrigger);
216
+ const renameItem = getMenuItems().find((element) => element.textContent?.includes(labels.rename));
199
217
  act(() => {
200
218
  renameItem.click();
201
219
  });
@@ -204,12 +222,10 @@ describe("ChatHistoryList", () => {
204
222
  ?.getAttribute("aria-label")).toBe(labels.renameInput);
205
223
  render(true);
206
224
  const pinnedTrigger = container.querySelector(".an-chat-history-row__menu-trigger");
207
- act(() => {
208
- pinnedTrigger.click();
209
- });
210
- expect(container.textContent).toContain(labels.unpin);
225
+ await openMenu(pinnedTrigger);
226
+ expect(document.body.textContent).toContain(labels.unpin);
211
227
  });
212
- it("supports inline rename via the row action menu", () => {
228
+ it("supports inline rename via the row action menu", async () => {
213
229
  const onRename = vi.fn();
214
230
  const items = [
215
231
  item({ id: "thread-1", title: "Old title", titleText: "Old title" }),
@@ -218,10 +234,8 @@ describe("ChatHistoryList", () => {
218
234
  root.render(_jsx(ChatHistoryList, { items: items, onSelect: () => { }, onRename: onRename, renameMaxLength: 160 }));
219
235
  });
220
236
  const trigger = container.querySelector(".an-chat-history-row__menu-trigger");
221
- act(() => {
222
- trigger.click();
223
- });
224
- const renameItem = Array.from(container.querySelectorAll(".an-chat-history-row__menu-item")).find((el) => el.textContent?.includes("Rename"));
237
+ await openMenu(trigger);
238
+ const renameItem = getMenuItems().find((el) => el.textContent?.includes("Rename"));
225
239
  act(() => {
226
240
  renameItem.click();
227
241
  });
@@ -237,7 +251,7 @@ describe("ChatHistoryList", () => {
237
251
  });
238
252
  expect(onRename).toHaveBeenCalledWith("thread-1", "New title");
239
253
  });
240
- it("supports item-aware labels and app-specific actions", () => {
254
+ it("supports item-aware labels and app-specific actions", async () => {
241
255
  const onShare = vi.fn();
242
256
  const items = [
243
257
  item({ id: "thread-1", title: "Campaign", titleText: "Campaign" }),
@@ -253,19 +267,15 @@ describe("ChatHistoryList", () => {
253
267
  });
254
268
  const trigger = container.querySelector(".an-chat-history-row__menu-trigger");
255
269
  expect(trigger?.getAttribute("aria-label")).toBe("Options for Campaign");
256
- act(() => {
257
- trigger.click();
258
- });
259
- const shareItem = Array.from(container.querySelectorAll(".an-chat-history-row__menu-item")).find((element) => element.textContent === "Share");
270
+ await openMenu(trigger);
271
+ const shareItem = getMenuItems().find((element) => element.textContent === "Share");
260
272
  act(() => {
261
273
  shareItem.click();
262
274
  });
263
275
  expect(onShare).toHaveBeenCalledWith("thread-1");
264
- expect(container.querySelector(".an-chat-history-row__menu-content")).toBeNull();
265
- act(() => {
266
- trigger.click();
267
- });
268
- const renameItem = Array.from(container.querySelectorAll(".an-chat-history-row__menu-item")).find((element) => element.textContent === "Rename");
276
+ expect(document.body.querySelector(".an-chat-history-row__menu-content")).toBeNull();
277
+ await openMenu(trigger);
278
+ const renameItem = getMenuItems().find((element) => element.textContent === "Rename");
269
279
  act(() => {
270
280
  renameItem.click();
271
281
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChatHistoryList.spec.js","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryList.spec.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatHistoryList.spec.js","sourceRoot":"","sources":["../../src/chat-history/ChatHistoryList.spec.tsx"],"names":[],"mappings":"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"}
@@ -293,22 +293,14 @@
293
293
  transition: opacity 100ms ease;
294
294
  }
295
295
 
296
- .an-chat-history--rail
297
- .an-chat-history-row--has-menu
298
- .an-chat-history-row__timestamp {
299
- display: inline-flex;
300
- min-width: 24px;
301
- justify-content: flex-end;
302
- }
303
-
304
296
  .an-chat-history--rail
305
297
  .an-chat-history-row--active
306
298
  .an-chat-history-row__timestamp {
307
299
  color: hsl(var(--accent-foreground));
308
300
  }
309
301
 
310
- /* The menu overlays this fixed trailing slot so its hover state never changes
311
- the title's available width or moves the rest of the rail. */
302
+ /* Hide trailing metadata while the absolute menu takes its place so hover
303
+ never changes the title's available width or moves the rest of the rail. */
312
304
  .an-chat-history--rail
313
305
  .an-chat-history-row--has-menu:hover
314
306
  .an-chat-history-row__timestamp,
@@ -375,10 +367,11 @@
375
367
  position: absolute;
376
368
  top: 4px;
377
369
  inset-inline-end: 4px;
370
+ z-index: 1;
378
371
  }
379
372
 
380
373
  .an-chat-history--rail .an-chat-history-row__menu {
381
- inset-inline-end: 10px;
374
+ inset-inline-end: 8px;
382
375
  }
383
376
 
384
377
  .an-chat-history-row__menu-trigger {
@@ -428,10 +421,7 @@
428
421
  }
429
422
 
430
423
  .an-chat-history-row__menu-content {
431
- position: absolute;
432
- top: calc(100% + 4px);
433
- inset-inline-end: 0;
434
- z-index: 30;
424
+ z-index: 290;
435
425
  min-width: 160px;
436
426
  padding: 4px;
437
427
  border: 1px solid hsl(var(--border));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/toolkit",
3
- "version": "0.14.0",
3
+ "version": "0.14.1",
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": {
@@ -33,6 +33,27 @@ function typeIntoInput(input: HTMLInputElement, value: string) {
33
33
  input.dispatchEvent(new Event("change", { bubbles: true }));
34
34
  }
35
35
 
36
+ async function openMenu(trigger: HTMLButtonElement) {
37
+ await act(async () => {
38
+ trigger.dispatchEvent(
39
+ new PointerEvent("pointerdown", {
40
+ bubbles: true,
41
+ button: 0,
42
+ pointerType: "mouse",
43
+ }),
44
+ );
45
+ await Promise.resolve();
46
+ });
47
+ }
48
+
49
+ function getMenuItems() {
50
+ return Array.from(
51
+ document.body.querySelectorAll<HTMLElement>(
52
+ ".an-chat-history-row__menu-item",
53
+ ),
54
+ );
55
+ }
56
+
36
57
  describe("ChatHistoryList", () => {
37
58
  let container: HTMLDivElement;
38
59
  let root: Root;
@@ -216,7 +237,7 @@ describe("ChatHistoryList", () => {
216
237
  expect(container.querySelector(".an-chat-history-row__menu")).toBeNull();
217
238
  });
218
239
 
219
- it("supports pin toggling via the row action menu", () => {
240
+ it("supports pin toggling via the row action menu", async () => {
220
241
  const onTogglePin = vi.fn();
221
242
  const items: ChatHistoryItem[] = [
222
243
  item({ id: "thread-1", title: "First chat" }),
@@ -235,13 +256,11 @@ describe("ChatHistoryList", () => {
235
256
  ".an-chat-history-row__menu-trigger",
236
257
  );
237
258
  expect(trigger).not.toBeNull();
238
- act(() => {
239
- trigger!.click();
240
- });
259
+ await openMenu(trigger!);
241
260
 
242
- const pinItem = Array.from(
243
- container.querySelectorAll(".an-chat-history-row__menu-item"),
244
- ).find((el) => el.textContent?.includes("Pin to top"));
261
+ const pinItem = getMenuItems().find((el) =>
262
+ el.textContent?.includes("Pin to top"),
263
+ );
245
264
  expect(pinItem).toBeDefined();
246
265
  act(() => {
247
266
  (pinItem as HTMLButtonElement).click();
@@ -249,7 +268,32 @@ describe("ChatHistoryList", () => {
249
268
  expect(onTogglePin).toHaveBeenCalledWith("thread-1");
250
269
  });
251
270
 
252
- it("uses custom labels for localized row actions", () => {
271
+ it("ports rail row menus outside the scroll container", async () => {
272
+ act(() => {
273
+ root.render(
274
+ <ChatHistoryList
275
+ variant="rail"
276
+ items={[item({ id: "thread-1" })]}
277
+ onSelect={() => {}}
278
+ onDelete={() => {}}
279
+ />,
280
+ );
281
+ });
282
+
283
+ const trigger = container.querySelector<HTMLButtonElement>(
284
+ ".an-chat-history-row__menu-trigger",
285
+ );
286
+ await openMenu(trigger!);
287
+
288
+ const menu = document.body.querySelector<HTMLElement>(
289
+ ".an-chat-history-row__menu-content",
290
+ );
291
+ expect(menu).not.toBeNull();
292
+ expect(menu?.closest(".an-chat-history__list")).toBeNull();
293
+ expect(menu?.getAttribute("role")).toBe("menu");
294
+ });
295
+
296
+ it("uses custom labels for localized row actions", async () => {
253
297
  const onTogglePin = vi.fn();
254
298
  const onDelete = vi.fn();
255
299
  const labels = {
@@ -281,16 +325,14 @@ describe("ChatHistoryList", () => {
281
325
  ".an-chat-history-row__menu-trigger",
282
326
  );
283
327
  expect(trigger?.getAttribute("aria-label")).toBe(labels.options);
284
- act(() => {
285
- trigger!.click();
286
- });
287
- expect(container.textContent).toContain(labels.rename);
288
- expect(container.textContent).toContain(labels.pin);
289
- expect(container.textContent).toContain(labels.delete);
328
+ await openMenu(trigger!);
329
+ expect(document.body.textContent).toContain(labels.rename);
330
+ expect(document.body.textContent).toContain(labels.pin);
331
+ expect(document.body.textContent).toContain(labels.delete);
290
332
 
291
- const archiveItem = Array.from(
292
- container.querySelectorAll(".an-chat-history-row__menu-item"),
293
- ).find((element) => element.textContent?.includes(labels.delete));
333
+ const archiveItem = getMenuItems().find((element) =>
334
+ element.textContent?.includes(labels.delete),
335
+ );
294
336
  act(() => {
295
337
  (archiveItem as HTMLButtonElement).click();
296
338
  });
@@ -300,12 +342,10 @@ describe("ChatHistoryList", () => {
300
342
  const renameTrigger = container.querySelector<HTMLButtonElement>(
301
343
  ".an-chat-history-row__menu-trigger",
302
344
  );
303
- act(() => {
304
- renameTrigger!.click();
305
- });
306
- const renameItem = Array.from(
307
- container.querySelectorAll(".an-chat-history-row__menu-item"),
308
- ).find((element) => element.textContent?.includes(labels.rename));
345
+ await openMenu(renameTrigger!);
346
+ const renameItem = getMenuItems().find((element) =>
347
+ element.textContent?.includes(labels.rename),
348
+ );
309
349
  act(() => {
310
350
  (renameItem as HTMLButtonElement).click();
311
351
  });
@@ -319,13 +359,11 @@ describe("ChatHistoryList", () => {
319
359
  const pinnedTrigger = container.querySelector<HTMLButtonElement>(
320
360
  ".an-chat-history-row__menu-trigger",
321
361
  );
322
- act(() => {
323
- pinnedTrigger!.click();
324
- });
325
- expect(container.textContent).toContain(labels.unpin);
362
+ await openMenu(pinnedTrigger!);
363
+ expect(document.body.textContent).toContain(labels.unpin);
326
364
  });
327
365
 
328
- it("supports inline rename via the row action menu", () => {
366
+ it("supports inline rename via the row action menu", async () => {
329
367
  const onRename = vi.fn();
330
368
  const items: ChatHistoryItem[] = [
331
369
  item({ id: "thread-1", title: "Old title", titleText: "Old title" }),
@@ -344,12 +382,10 @@ describe("ChatHistoryList", () => {
344
382
  const trigger = container.querySelector<HTMLButtonElement>(
345
383
  ".an-chat-history-row__menu-trigger",
346
384
  );
347
- act(() => {
348
- trigger!.click();
349
- });
350
- const renameItem = Array.from(
351
- container.querySelectorAll(".an-chat-history-row__menu-item"),
352
- ).find((el) => el.textContent?.includes("Rename"));
385
+ await openMenu(trigger!);
386
+ const renameItem = getMenuItems().find((el) =>
387
+ el.textContent?.includes("Rename"),
388
+ );
353
389
  act(() => {
354
390
  (renameItem as HTMLButtonElement).click();
355
391
  });
@@ -372,7 +408,7 @@ describe("ChatHistoryList", () => {
372
408
  expect(onRename).toHaveBeenCalledWith("thread-1", "New title");
373
409
  });
374
410
 
375
- it("supports item-aware labels and app-specific actions", () => {
411
+ it("supports item-aware labels and app-specific actions", async () => {
376
412
  const onShare = vi.fn();
377
413
  const items: ChatHistoryItem[] = [
378
414
  item({ id: "thread-1", title: "Campaign", titleText: "Campaign" }),
@@ -407,27 +443,23 @@ describe("ChatHistoryList", () => {
407
443
  ".an-chat-history-row__menu-trigger",
408
444
  );
409
445
  expect(trigger?.getAttribute("aria-label")).toBe("Options for Campaign");
410
- act(() => {
411
- trigger!.click();
412
- });
446
+ await openMenu(trigger!);
413
447
 
414
- const shareItem = Array.from(
415
- container.querySelectorAll(".an-chat-history-row__menu-item"),
416
- ).find((element) => element.textContent === "Share");
448
+ const shareItem = getMenuItems().find(
449
+ (element) => element.textContent === "Share",
450
+ );
417
451
  act(() => {
418
452
  (shareItem as HTMLButtonElement).click();
419
453
  });
420
454
  expect(onShare).toHaveBeenCalledWith("thread-1");
421
455
  expect(
422
- container.querySelector(".an-chat-history-row__menu-content"),
456
+ document.body.querySelector(".an-chat-history-row__menu-content"),
423
457
  ).toBeNull();
424
458
 
425
- act(() => {
426
- trigger!.click();
427
- });
428
- const renameItem = Array.from(
429
- container.querySelectorAll(".an-chat-history-row__menu-item"),
430
- ).find((element) => element.textContent === "Rename");
459
+ await openMenu(trigger!);
460
+ const renameItem = getMenuItems().find(
461
+ (element) => element.textContent === "Rename",
462
+ );
431
463
  act(() => {
432
464
  (renameItem as HTMLButtonElement).click();
433
465
  });
@@ -1,3 +1,4 @@
1
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1
2
  import {
2
3
  IconDots,
3
4
  IconPencil,
@@ -6,7 +7,7 @@ import {
6
7
  IconSearch,
7
8
  IconTrash,
8
9
  } from "@tabler/icons-react";
9
- import React, { useEffect, useMemo, useRef, useState } from "react";
10
+ import React, { useMemo, useRef, useState } from "react";
10
11
 
11
12
  import { cn } from "../utils.js";
12
13
 
@@ -288,7 +289,6 @@ const ChatHistoryRow = React.memo(function ChatHistoryRow({
288
289
  const [draftTitle, setDraftTitle] = useState("");
289
290
  const [menuOpen, setMenuOpen] = useState(false);
290
291
  const renameInputRef = useRef<HTMLInputElement | null>(null);
291
- const menuRef = useRef<HTMLDivElement | null>(null);
292
292
 
293
293
  const hasMenu = Boolean(
294
294
  onTogglePin ||
@@ -298,24 +298,6 @@ const ChatHistoryRow = React.memo(function ChatHistoryRow({
298
298
  renderAdditionalRowActions,
299
299
  );
300
300
 
301
- useEffect(() => {
302
- if (!menuOpen) return;
303
- function handlePointerDown(event: PointerEvent) {
304
- if (menuRef.current && !menuRef.current.contains(event.target as Node)) {
305
- setMenuOpen(false);
306
- }
307
- }
308
- function handleKeyDown(event: KeyboardEvent) {
309
- if (event.key === "Escape") setMenuOpen(false);
310
- }
311
- document.addEventListener("pointerdown", handlePointerDown);
312
- document.addEventListener("keydown", handleKeyDown);
313
- return () => {
314
- document.removeEventListener("pointerdown", handlePointerDown);
315
- document.removeEventListener("keydown", handleKeyDown);
316
- };
317
- }, [menuOpen]);
318
-
319
301
  function startRename() {
320
302
  setDraftTitle(item.titleText ?? "");
321
303
  setIsRenaming(true);
@@ -409,79 +391,90 @@ const ChatHistoryRow = React.memo(function ChatHistoryRow({
409
391
  )}
410
392
 
411
393
  {!isRenaming && hasMenu && (
412
- <div className="an-chat-history-row__menu" ref={menuRef}>
413
- <button
414
- type="button"
415
- className={cn(
416
- "an-chat-history-row__menu-trigger",
417
- item.pinned && "an-chat-history-row__menu-trigger--pinned",
418
- )}
419
- aria-label={optionsLabel}
420
- aria-haspopup="menu"
421
- aria-expanded={menuOpen}
422
- onClick={() => setMenuOpen((open) => !open)}
423
- >
424
- {item.pinned ? (
425
- <IconPinned size={13} strokeWidth={1.8} />
426
- ) : (
427
- <IconDots size={14} strokeWidth={1.8} />
428
- )}
429
- </button>
430
- {menuOpen && (
431
- <div className="an-chat-history-row__menu-content" role="menu">
432
- {renderRowActions ? (
433
- renderRowActions(item)
434
- ) : (
435
- <>
436
- {onRename && (
437
- <button
438
- type="button"
439
- role="menuitem"
440
- className="an-chat-history-row__menu-item"
441
- onClick={startRename}
442
- >
443
- <IconPencil size={13} strokeWidth={1.8} />
444
- <span>{labels.rename}</span>
445
- </button>
446
- )}
447
- {onTogglePin && (
448
- <button
449
- type="button"
450
- role="menuitem"
451
- className="an-chat-history-row__menu-item"
452
- onClick={() => {
453
- setMenuOpen(false);
454
- onTogglePin(item.id);
455
- }}
456
- >
457
- {item.pinned ? (
458
- <IconPinnedOff size={13} strokeWidth={1.8} />
459
- ) : (
460
- <IconPinned size={13} strokeWidth={1.8} />
461
- )}
462
- <span>{item.pinned ? labels.unpin : labels.pin}</span>
463
- </button>
464
- )}
465
- {renderAdditionalRowActions?.(item, () => setMenuOpen(false))}
466
- {onDelete && (
467
- <button
468
- type="button"
469
- role="menuitem"
470
- className="an-chat-history-row__menu-item an-chat-history-row__menu-item--danger"
471
- onClick={() => {
472
- setMenuOpen(false);
473
- onDelete(item.id);
474
- }}
475
- >
476
- <IconTrash size={13} strokeWidth={1.8} />
477
- <span>{labels.delete}</span>
478
- </button>
479
- )}
480
- </>
481
- )}
482
- </div>
483
- )}
484
- </div>
394
+ <DropdownMenuPrimitive.Root open={menuOpen} onOpenChange={setMenuOpen}>
395
+ <div className="an-chat-history-row__menu">
396
+ <DropdownMenuPrimitive.Trigger asChild>
397
+ <button
398
+ type="button"
399
+ className={cn(
400
+ "an-chat-history-row__menu-trigger",
401
+ item.pinned && "an-chat-history-row__menu-trigger--pinned",
402
+ )}
403
+ aria-label={optionsLabel}
404
+ aria-haspopup="menu"
405
+ aria-expanded={menuOpen}
406
+ >
407
+ {item.pinned ? (
408
+ <IconPinned size={13} strokeWidth={1.8} />
409
+ ) : (
410
+ <IconDots size={14} strokeWidth={1.8} />
411
+ )}
412
+ </button>
413
+ </DropdownMenuPrimitive.Trigger>
414
+ <DropdownMenuPrimitive.Portal>
415
+ <DropdownMenuPrimitive.Content
416
+ className="an-chat-history-row__menu-content"
417
+ align="end"
418
+ collisionPadding={8}
419
+ side="bottom"
420
+ sideOffset={4}
421
+ >
422
+ {renderRowActions ? (
423
+ renderRowActions(item)
424
+ ) : (
425
+ <>
426
+ {onRename && (
427
+ <button
428
+ type="button"
429
+ role="menuitem"
430
+ className="an-chat-history-row__menu-item"
431
+ onClick={startRename}
432
+ >
433
+ <IconPencil size={13} strokeWidth={1.8} />
434
+ <span>{labels.rename}</span>
435
+ </button>
436
+ )}
437
+ {onTogglePin && (
438
+ <button
439
+ type="button"
440
+ role="menuitem"
441
+ className="an-chat-history-row__menu-item"
442
+ onClick={() => {
443
+ setMenuOpen(false);
444
+ onTogglePin(item.id);
445
+ }}
446
+ >
447
+ {item.pinned ? (
448
+ <IconPinnedOff size={13} strokeWidth={1.8} />
449
+ ) : (
450
+ <IconPinned size={13} strokeWidth={1.8} />
451
+ )}
452
+ <span>{item.pinned ? labels.unpin : labels.pin}</span>
453
+ </button>
454
+ )}
455
+ {renderAdditionalRowActions?.(item, () =>
456
+ setMenuOpen(false),
457
+ )}
458
+ {onDelete && (
459
+ <button
460
+ type="button"
461
+ role="menuitem"
462
+ className="an-chat-history-row__menu-item an-chat-history-row__menu-item--danger"
463
+ onClick={() => {
464
+ setMenuOpen(false);
465
+ onDelete(item.id);
466
+ }}
467
+ >
468
+ <IconTrash size={13} strokeWidth={1.8} />
469
+ <span>{labels.delete}</span>
470
+ </button>
471
+ )}
472
+ </>
473
+ )}
474
+ </DropdownMenuPrimitive.Content>
475
+ </DropdownMenuPrimitive.Portal>
476
+ </div>
477
+ </DropdownMenuPrimitive.Root>
485
478
  )}
486
479
  </div>
487
480
  );
@@ -293,22 +293,14 @@
293
293
  transition: opacity 100ms ease;
294
294
  }
295
295
 
296
- .an-chat-history--rail
297
- .an-chat-history-row--has-menu
298
- .an-chat-history-row__timestamp {
299
- display: inline-flex;
300
- min-width: 24px;
301
- justify-content: flex-end;
302
- }
303
-
304
296
  .an-chat-history--rail
305
297
  .an-chat-history-row--active
306
298
  .an-chat-history-row__timestamp {
307
299
  color: hsl(var(--accent-foreground));
308
300
  }
309
301
 
310
- /* The menu overlays this fixed trailing slot so its hover state never changes
311
- the title's available width or moves the rest of the rail. */
302
+ /* Hide trailing metadata while the absolute menu takes its place so hover
303
+ never changes the title's available width or moves the rest of the rail. */
312
304
  .an-chat-history--rail
313
305
  .an-chat-history-row--has-menu:hover
314
306
  .an-chat-history-row__timestamp,
@@ -375,10 +367,11 @@
375
367
  position: absolute;
376
368
  top: 4px;
377
369
  inset-inline-end: 4px;
370
+ z-index: 1;
378
371
  }
379
372
 
380
373
  .an-chat-history--rail .an-chat-history-row__menu {
381
- inset-inline-end: 10px;
374
+ inset-inline-end: 8px;
382
375
  }
383
376
 
384
377
  .an-chat-history-row__menu-trigger {
@@ -428,10 +421,7 @@
428
421
  }
429
422
 
430
423
  .an-chat-history-row__menu-content {
431
- position: absolute;
432
- top: calc(100% + 4px);
433
- inset-inline-end: 0;
434
- z-index: 30;
424
+ z-index: 290;
435
425
  min-width: 160px;
436
426
  padding: 4px;
437
427
  border: 1px solid hsl(var(--border));