@agent-native/toolkit 0.20.1-nightly-20260915184036 → 0.20.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.
@@ -98,6 +98,7 @@
98
98
  "targetRoot": "app/components/agent-native/toolkit",
99
99
  "dependencies": [
100
100
  "@radix-ui/react-collapsible",
101
+ "@radix-ui/react-scroll-area",
101
102
  "@radix-ui/react-tooltip",
102
103
  "@tabler/icons-react",
103
104
  "clsx",
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sidebar-overflow.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-overflow.spec.d.ts","sourceRoot":"","sources":["../../src/app-shell/sidebar-overflow.spec.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // @vitest-environment happy-dom
3
+ import { act } from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { createRoot } from "react-dom/client";
6
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
7
+ import { AppSidebar } from "./sidebar.js";
8
+ describe("AppSidebar overflow affordances", () => {
9
+ let container;
10
+ let root;
11
+ let resize;
12
+ beforeEach(() => {
13
+ const resizeCallbacks = [];
14
+ resize = () => resizeCallbacks.forEach((callback) => callback());
15
+ vi.stubGlobal("IS_REACT_ACT_ENVIRONMENT", true);
16
+ vi.stubGlobal("ResizeObserver", class {
17
+ constructor(callback) {
18
+ resizeCallbacks.push(callback);
19
+ }
20
+ observe() { }
21
+ unobserve() { }
22
+ disconnect() { }
23
+ });
24
+ container = document.createElement("div");
25
+ document.body.append(container);
26
+ root = createRoot(container);
27
+ });
28
+ afterEach(() => {
29
+ act(() => root.unmount());
30
+ container.remove();
31
+ vi.unstubAllGlobals();
32
+ });
33
+ function render(children = _jsx("button", { type: "button", children: "Calendar" })) {
34
+ act(() => {
35
+ root.render(_jsx(AppSidebar, { brandName: "Calendar", overflowAffordances: true, children: children }));
36
+ });
37
+ return container.querySelector("[data-app-sidebar-scroll-viewport]");
38
+ }
39
+ function setDimensions(viewport, height = 600, contentHeight = 1000) {
40
+ Object.defineProperties(viewport, {
41
+ clientHeight: { configurable: true, value: height },
42
+ scrollHeight: { configurable: true, value: contentHeight },
43
+ });
44
+ }
45
+ it("shows the relevant edge cues as the user scrolls", () => {
46
+ const viewport = render();
47
+ setDimensions(viewport);
48
+ act(() => resize());
49
+ expect(container.querySelector('[data-scroll-edge="top"]')).toBeNull();
50
+ expect(container.querySelector('[data-scroll-edge="bottom"]')).not.toBeNull();
51
+ act(() => {
52
+ viewport.scrollTop = 200;
53
+ viewport.dispatchEvent(new Event("scroll"));
54
+ });
55
+ expect(container.querySelectorAll("[data-scroll-edge]")).toHaveLength(2);
56
+ act(() => {
57
+ viewport.scrollTop = 399.5;
58
+ viewport.dispatchEvent(new Event("scroll"));
59
+ });
60
+ expect(container.querySelector('[data-scroll-edge="top"]')).not.toBeNull();
61
+ expect(container.querySelector('[data-scroll-edge="bottom"]')).toBeNull();
62
+ });
63
+ it("removes the cues when resized content fits", () => {
64
+ const viewport = render();
65
+ setDimensions(viewport);
66
+ act(() => resize());
67
+ setDimensions(viewport, 600, 600.5);
68
+ act(() => resize());
69
+ expect(container.querySelectorAll("[data-scroll-edge]")).toHaveLength(0);
70
+ });
71
+ it("reveals focused controls clear of an edge cue", () => {
72
+ const viewport = render();
73
+ setDimensions(viewport);
74
+ const button = container.querySelector("nav button");
75
+ vi.spyOn(viewport, "getBoundingClientRect").mockReturnValue({
76
+ top: 50,
77
+ bottom: 650,
78
+ });
79
+ vi.spyOn(button, "getBoundingClientRect").mockReturnValue({
80
+ top: 640,
81
+ bottom: 670,
82
+ });
83
+ act(() => button.focus());
84
+ expect(viewport.scrollTop).toBe(28);
85
+ });
86
+ it("does not scroll for a portaled control outside the viewport", () => {
87
+ const portal = document.createElement("div");
88
+ document.body.append(portal);
89
+ try {
90
+ const viewport = render(createPortal(_jsx("button", { type: "button", children: "Color" }), portal));
91
+ setDimensions(viewport);
92
+ const button = portal.querySelector("button");
93
+ vi.spyOn(viewport, "getBoundingClientRect").mockReturnValue({
94
+ top: 50,
95
+ bottom: 650,
96
+ });
97
+ vi.spyOn(button, "getBoundingClientRect").mockReturnValue({
98
+ top: 670,
99
+ bottom: 700,
100
+ });
101
+ act(() => button.focus());
102
+ expect(viewport.scrollTop).toBe(0);
103
+ }
104
+ finally {
105
+ portal.remove();
106
+ }
107
+ });
108
+ });
109
+ //# sourceMappingURL=sidebar-overflow.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-overflow.spec.js","sourceRoot":"","sources":["../../src/app-shell/sidebar-overflow.spec.tsx"],"names":[],"mappings":"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"}
@@ -121,6 +121,8 @@ export interface AppSidebarProps extends HTMLAttributes<HTMLElement> {
121
121
  onMobileOpenChange?: (open: boolean) => void;
122
122
  /** Router-aware link component. Defaults to a native `<a href>`. */
123
123
  linkComponent?: AppSidebarLinkComponent;
124
+ /** Show a persistent scrollbar and edge cues while the sidebar overflows. */
125
+ overflowAffordances?: boolean;
124
126
  brandName?: ReactNode;
125
127
  brandHref?: string;
126
128
  brandIcon?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/app-shell/sidebar.tsx"],"names":[],"mappings":"AAMA,OAAO,EAQL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAoBf,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,MAAM,CACP;IACC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,mBAAmB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CACvD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7E,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,aAAa,EAAE,uBAAuB,CAAC;CACxC;AAqBD,wBAAgB,aAAa,IAAI,sBAAsB,CAGtD;AAkBD,MAAM,WAAW,wBAAwB;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,kGAyE5B,CAAC;AAOF,MAAM,WAAW,sBAAuB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC5E,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnD;AAED,eAAO,MAAM,iBAAiB,mGAwI7B,CAAC;AAOF,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC7E,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,oGAuH9B,CAAC;AAOF,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAClD,cAAc,CAAC,cAAc,CAAC,EAC9B,OAAO,CACR;IACC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,mGA2B5B,CAAC;AAOH,MAAM,WAAW,6BAA6B;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACzD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,KAAyB,EACzB,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,EAAE,aAAa,GACzB,EAAE,6BAA6B,+BAqC/B;AAMD,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,gBAAgB,kGAiG5B,CAAC;AAOF,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,WAAW,CAAC;IAElE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,oEAAoE;IACpE,aAAa,CAAC,EAAE,uBAAuB,CAAC;IAGxC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,SAAS,CAAC;IAG1B,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAG5C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,yFAiPtB,CAAC"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/app-shell/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2
3
  import { IconChevronDown, IconLayoutSidebarLeftCollapse, IconLayoutSidebarLeftExpand, IconMessageCircle, } from "@tabler/icons-react";
3
- import { createContext, forwardRef, isValidElement, useCallback, useContext, useMemo, useState, } from "react";
4
+ import { createContext, forwardRef, isValidElement, useCallback, useContext, useMemo, useEffect, useRef, useState, } from "react";
4
5
  import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../ui/collapsible.js";
6
+ import { ScrollBar } from "../ui/scroll-area.js";
5
7
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "../ui/tooltip.js";
6
8
  import { cn } from "../utils.js";
7
9
  import { usePersistentSidebarCollapsed } from "./use-persistent-sidebar-collapsed.js";
@@ -114,7 +116,7 @@ export const AppSidebarFooter = forwardRef(({ feedback, orgSwitcher, footerExtra
114
116
  : "flex items-center gap-0.5"), children: [orgSwitcher, footerExtras, collapseButton] })] }));
115
117
  });
116
118
  AppSidebarFooter.displayName = "AppSidebarFooter";
117
- export const AppSidebar = forwardRef(({ collapsed: controlledCollapsed, onCollapsedChange: controlledOnCollapsedChange, defaultCollapsed = false, collapsible = true, storageKey, isMobile = false, mobileOpen, onMobileOpenChange, linkComponent, brandName, brandHref = "/", brandIcon, brandLink, badge, headerContent, items, secondaryItems, feedback, orgSwitcher, footerExtras, footerContent, expandLabel = "Expand sidebar", collapseLabel = "Collapse sidebar", className, children, ...props }, ref) => {
119
+ export const AppSidebar = forwardRef(({ collapsed: controlledCollapsed, onCollapsedChange: controlledOnCollapsedChange, defaultCollapsed = false, collapsible = true, storageKey, isMobile = false, mobileOpen, onMobileOpenChange, linkComponent, overflowAffordances = false, brandName, brandHref = "/", brandIcon, brandLink, badge, headerContent, items, secondaryItems, feedback, orgSwitcher, footerExtras, footerContent, expandLabel = "Expand sidebar", collapseLabel = "Collapse sidebar", className, children, ...props }, ref) => {
118
120
  // Persistence hook if storageKey is provided and not controlled
119
121
  const persistent = usePersistentSidebarCollapsed({
120
122
  storageKey: storageKey ?? "app-sidebar-default-key",
@@ -172,7 +174,7 @@ export const AppSidebar = forwardRef(({ collapsed: controlledCollapsed, onCollap
172
174
  : "relative md:static", showCollapsedSidebar && "md:w-14", ownsMobileDrawer &&
173
175
  (mobileOpen
174
176
  ? "translate-x-0"
175
- : "-translate-x-full rtl:translate-x-full md:translate-x-0"), className), ...props, children: [headerContent ?? (_jsx(AppSidebarHeader, { brandName: brandName, brandHref: brandHref, brandIcon: brandIcon, brandLink: brandLink, badge: badge })), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: showCollapsedSidebar ? (_jsxs("nav", { className: "flex flex-col items-center gap-1 px-2 py-3", children: [items?.map((item) => (_jsx(AppSidebarNavItem, { to: item.to, href: item.href, label: item.label, icon: item.icon, active: item.active, count: item.count, badge: item.badge, onClick: item.onClick }, item.id ?? item.to ?? item.href ?? item.label))), children, secondaryItems && secondaryItems.length > 0 && (_jsx("div", { className: "mt-2 flex flex-col items-center gap-1 border-t border-border/70 pt-2", children: secondaryItems.map((item) => (_jsx(AppSidebarNavItem, { to: item.to, href: item.href, label: item.label, icon: item.icon, active: item.active, count: item.count, badge: item.badge, onClick: item.onClick }, item.id ?? item.to ?? item.href ?? item.label))) }))] })) : (_jsxs("nav", { className: "space-y-0.5 px-2 py-3", children: [items?.map((item) => {
177
+ : "-translate-x-full rtl:translate-x-full md:translate-x-0"), className), ...props, children: [headerContent ?? (_jsx(AppSidebarHeader, { brandName: brandName, brandHref: brandHref, brandIcon: brandIcon, brandLink: brandLink, badge: badge })), _jsx(AppSidebarScrollRegion, { affordances: overflowAffordances, children: showCollapsedSidebar ? (_jsxs("nav", { className: "flex flex-col items-center gap-1 px-2 py-3", children: [items?.map((item) => (_jsx(AppSidebarNavItem, { to: item.to, href: item.href, label: item.label, icon: item.icon, active: item.active, count: item.count, badge: item.badge, onClick: item.onClick }, item.id ?? item.to ?? item.href ?? item.label))), children, secondaryItems && secondaryItems.length > 0 && (_jsx("div", { className: "mt-2 flex flex-col items-center gap-1 border-t border-border/70 pt-2", children: secondaryItems.map((item) => (_jsx(AppSidebarNavItem, { to: item.to, href: item.href, label: item.label, icon: item.icon, active: item.active, count: item.count, badge: item.badge, onClick: item.onClick }, item.id ?? item.to ?? item.href ?? item.label))) }))] })) : (_jsxs("nav", { className: "space-y-0.5 px-2 py-3", children: [items?.map((item) => {
176
178
  if (item.children) {
177
179
  return (_jsx(AppSidebarNavGroup, { to: item.to, href: item.href, label: item.label, icon: item.icon, active: item.active, count: item.count, actions: item.actions, children: item.children }, item.id ?? item.to ?? item.href ?? item.label));
178
180
  }
@@ -180,4 +182,56 @@ export const AppSidebar = forwardRef(({ collapsed: controlledCollapsed, onCollap
180
182
  }), children, secondaryItems && secondaryItems.length > 0 && (_jsx("div", { className: "mt-3 space-y-0.5 border-t border-border/70 pt-3", children: secondaryItems.map((item) => (_jsx(AppSidebarNavItem, { to: item.to, href: item.href, label: item.label, icon: item.icon, active: item.active, count: item.count, badge: item.badge, actions: item.actions, onClick: item.onClick }, item.id ?? item.to ?? item.href ?? item.label))) }))] })) }), footerContent ?? (_jsx(AppSidebarFooter, { feedback: feedback, orgSwitcher: orgSwitcher, footerExtras: footerExtras, collapsible: collapsible, expandLabel: expandLabel, collapseLabel: collapseLabel }))] }) }) }));
181
183
  });
182
184
  AppSidebar.displayName = "AppSidebar";
185
+ function AppSidebarScrollRegion({ affordances, children, }) {
186
+ const viewportRef = useRef(null);
187
+ const contentRef = useRef(null);
188
+ const [edges, setEdges] = useState({ above: false, below: false });
189
+ useEffect(() => {
190
+ if (!affordances)
191
+ return;
192
+ const viewport = viewportRef.current;
193
+ const content = contentRef.current;
194
+ if (!viewport || !content)
195
+ return;
196
+ const update = () => {
197
+ const remaining = viewport.scrollHeight - viewport.clientHeight;
198
+ const overflowing = remaining > 1;
199
+ const above = overflowing && viewport.scrollTop > 1;
200
+ const below = overflowing && viewport.scrollTop < remaining - 1;
201
+ setEdges((current) => current.above === above && current.below === below
202
+ ? current
203
+ : { above, below });
204
+ };
205
+ const observer = new ResizeObserver(update);
206
+ observer.observe(viewport);
207
+ observer.observe(content);
208
+ viewport.addEventListener("scroll", update, { passive: true });
209
+ update();
210
+ return () => {
211
+ observer.disconnect();
212
+ viewport.removeEventListener("scroll", update);
213
+ };
214
+ }, [affordances]);
215
+ if (!affordances) {
216
+ return _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: children });
217
+ }
218
+ return (_jsxs(ScrollAreaPrimitive.Root, { type: edges.above || edges.below ? "always" : "auto", className: "relative min-h-0 flex-1 overflow-hidden", "data-app-sidebar-scroll-area": true, children: [_jsx(ScrollAreaPrimitive.Viewport, { ref: viewportRef,
219
+ // Radix's intrinsic table sizing would widen truncated rows beyond the sidebar.
220
+ className: "size-full scroll-py-2 [&>div]:!block", "data-app-sidebar-scroll-viewport": true, onFocusCapture: (event) => {
221
+ const viewport = event.currentTarget;
222
+ const target = event.target;
223
+ if (!(target instanceof HTMLElement) ||
224
+ target === viewport ||
225
+ !viewport.contains(target))
226
+ return;
227
+ const bounds = viewport.getBoundingClientRect();
228
+ const focused = target.getBoundingClientRect();
229
+ if (focused.top < bounds.top + 8) {
230
+ viewport.scrollTop += focused.top - bounds.top - 8;
231
+ }
232
+ else if (focused.bottom > bounds.bottom - 8) {
233
+ viewport.scrollTop += focused.bottom - bounds.bottom + 8;
234
+ }
235
+ }, children: _jsx("div", { ref: contentRef, children: children }) }), _jsx(ScrollBar, { className: "z-10 w-1.5 border-none p-px [&>div]:bg-muted-foreground/50" }), edges.above && (_jsx("div", { "aria-hidden": "true", "data-scroll-edge": "top", className: "pointer-events-none absolute inset-x-0 top-0 h-2 bg-gradient-to-b from-sidebar to-transparent" })), edges.below && (_jsx("div", { "aria-hidden": "true", "data-scroll-edge": "bottom", className: "pointer-events-none absolute inset-x-0 bottom-0 h-2 bg-gradient-to-t from-sidebar to-transparent" }))] }));
236
+ }
183
237
  //# sourceMappingURL=sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/app-shell/sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/app-shell/sidebar.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.20.1-nightly-20260915184036",
3
+ "version": "0.20.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": {
@@ -0,0 +1,136 @@
1
+ // @vitest-environment happy-dom
2
+
3
+ import { act } from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { createRoot, type Root } from "react-dom/client";
6
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
7
+
8
+ import { AppSidebar } from "./sidebar.js";
9
+
10
+ describe("AppSidebar overflow affordances", () => {
11
+ let container: HTMLDivElement;
12
+ let root: Root;
13
+ let resize: () => void;
14
+
15
+ beforeEach(() => {
16
+ const resizeCallbacks: Array<() => void> = [];
17
+ resize = () => resizeCallbacks.forEach((callback) => callback());
18
+ vi.stubGlobal("IS_REACT_ACT_ENVIRONMENT", true);
19
+ vi.stubGlobal(
20
+ "ResizeObserver",
21
+ class {
22
+ constructor(callback: () => void) {
23
+ resizeCallbacks.push(callback);
24
+ }
25
+ observe() {}
26
+ unobserve() {}
27
+ disconnect() {}
28
+ },
29
+ );
30
+ container = document.createElement("div");
31
+ document.body.append(container);
32
+ root = createRoot(container);
33
+ });
34
+
35
+ afterEach(() => {
36
+ act(() => root.unmount());
37
+ container.remove();
38
+ vi.unstubAllGlobals();
39
+ });
40
+
41
+ function render(children = <button type="button">Calendar</button>) {
42
+ act(() => {
43
+ root.render(
44
+ <AppSidebar brandName="Calendar" overflowAffordances>
45
+ {children}
46
+ </AppSidebar>,
47
+ );
48
+ });
49
+ return container.querySelector<HTMLDivElement>(
50
+ "[data-app-sidebar-scroll-viewport]",
51
+ )!;
52
+ }
53
+
54
+ function setDimensions(
55
+ viewport: HTMLDivElement,
56
+ height = 600,
57
+ contentHeight = 1000,
58
+ ) {
59
+ Object.defineProperties(viewport, {
60
+ clientHeight: { configurable: true, value: height },
61
+ scrollHeight: { configurable: true, value: contentHeight },
62
+ });
63
+ }
64
+
65
+ it("shows the relevant edge cues as the user scrolls", () => {
66
+ const viewport = render();
67
+ setDimensions(viewport);
68
+ act(() => resize());
69
+ expect(container.querySelector('[data-scroll-edge="top"]')).toBeNull();
70
+ expect(
71
+ container.querySelector('[data-scroll-edge="bottom"]'),
72
+ ).not.toBeNull();
73
+
74
+ act(() => {
75
+ viewport.scrollTop = 200;
76
+ viewport.dispatchEvent(new Event("scroll"));
77
+ });
78
+ expect(container.querySelectorAll("[data-scroll-edge]")).toHaveLength(2);
79
+
80
+ act(() => {
81
+ viewport.scrollTop = 399.5;
82
+ viewport.dispatchEvent(new Event("scroll"));
83
+ });
84
+ expect(container.querySelector('[data-scroll-edge="top"]')).not.toBeNull();
85
+ expect(container.querySelector('[data-scroll-edge="bottom"]')).toBeNull();
86
+ });
87
+
88
+ it("removes the cues when resized content fits", () => {
89
+ const viewport = render();
90
+ setDimensions(viewport);
91
+ act(() => resize());
92
+ setDimensions(viewport, 600, 600.5);
93
+ act(() => resize());
94
+ expect(container.querySelectorAll("[data-scroll-edge]")).toHaveLength(0);
95
+ });
96
+
97
+ it("reveals focused controls clear of an edge cue", () => {
98
+ const viewport = render();
99
+ setDimensions(viewport);
100
+ const button = container.querySelector<HTMLButtonElement>("nav button")!;
101
+ vi.spyOn(viewport, "getBoundingClientRect").mockReturnValue({
102
+ top: 50,
103
+ bottom: 650,
104
+ } as DOMRect);
105
+ vi.spyOn(button, "getBoundingClientRect").mockReturnValue({
106
+ top: 640,
107
+ bottom: 670,
108
+ } as DOMRect);
109
+ act(() => button.focus());
110
+ expect(viewport.scrollTop).toBe(28);
111
+ });
112
+
113
+ it("does not scroll for a portaled control outside the viewport", () => {
114
+ const portal = document.createElement("div");
115
+ document.body.append(portal);
116
+ try {
117
+ const viewport = render(
118
+ createPortal(<button type="button">Color</button>, portal),
119
+ );
120
+ setDimensions(viewport);
121
+ const button = portal.querySelector<HTMLButtonElement>("button")!;
122
+ vi.spyOn(viewport, "getBoundingClientRect").mockReturnValue({
123
+ top: 50,
124
+ bottom: 650,
125
+ } as DOMRect);
126
+ vi.spyOn(button, "getBoundingClientRect").mockReturnValue({
127
+ top: 670,
128
+ bottom: 700,
129
+ } as DOMRect);
130
+ act(() => button.focus());
131
+ expect(viewport.scrollTop).toBe(0);
132
+ } finally {
133
+ portal.remove();
134
+ }
135
+ });
136
+ });
@@ -1,3 +1,4 @@
1
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
1
2
  import {
2
3
  IconChevronDown,
3
4
  IconLayoutSidebarLeftCollapse,
@@ -11,6 +12,8 @@ import {
11
12
  useCallback,
12
13
  useContext,
13
14
  useMemo,
15
+ useEffect,
16
+ useRef,
14
17
  useState,
15
18
  type AnchorHTMLAttributes,
16
19
  type ComponentType,
@@ -25,6 +28,7 @@ import {
25
28
  CollapsibleContent,
26
29
  CollapsibleTrigger,
27
30
  } from "../ui/collapsible.js";
31
+ import { ScrollBar } from "../ui/scroll-area.js";
28
32
  import {
29
33
  Tooltip,
30
34
  TooltipContent,
@@ -744,6 +748,8 @@ export interface AppSidebarProps extends HTMLAttributes<HTMLElement> {
744
748
  onMobileOpenChange?: (open: boolean) => void;
745
749
  /** Router-aware link component. Defaults to a native `<a href>`. */
746
750
  linkComponent?: AppSidebarLinkComponent;
751
+ /** Show a persistent scrollbar and edge cues while the sidebar overflows. */
752
+ overflowAffordances?: boolean;
747
753
 
748
754
  // Header
749
755
  brandName?: ReactNode;
@@ -778,6 +784,7 @@ export const AppSidebar = forwardRef<HTMLElement, AppSidebarProps>(
778
784
  mobileOpen,
779
785
  onMobileOpenChange,
780
786
  linkComponent,
787
+ overflowAffordances = false,
781
788
 
782
789
  brandName,
783
790
  brandHref = "/",
@@ -900,7 +907,7 @@ export const AppSidebar = forwardRef<HTMLElement, AppSidebarProps>(
900
907
  />
901
908
  )}
902
909
 
903
- <div className="min-h-0 flex-1 overflow-y-auto">
910
+ <AppSidebarScrollRegion affordances={overflowAffordances}>
904
911
  {showCollapsedSidebar ? (
905
912
  <nav className="flex flex-col items-center gap-1 px-2 py-3">
906
913
  {items?.map((item) => (
@@ -990,7 +997,7 @@ export const AppSidebar = forwardRef<HTMLElement, AppSidebarProps>(
990
997
  )}
991
998
  </nav>
992
999
  )}
993
- </div>
1000
+ </AppSidebarScrollRegion>
994
1001
 
995
1002
  {footerContent ?? (
996
1003
  <AppSidebarFooter
@@ -1009,3 +1016,96 @@ export const AppSidebar = forwardRef<HTMLElement, AppSidebarProps>(
1009
1016
  },
1010
1017
  );
1011
1018
  AppSidebar.displayName = "AppSidebar";
1019
+
1020
+ function AppSidebarScrollRegion({
1021
+ affordances,
1022
+ children,
1023
+ }: {
1024
+ affordances: boolean;
1025
+ children: ReactNode;
1026
+ }) {
1027
+ const viewportRef = useRef<HTMLDivElement>(null);
1028
+ const contentRef = useRef<HTMLDivElement>(null);
1029
+ const [edges, setEdges] = useState({ above: false, below: false });
1030
+
1031
+ useEffect(() => {
1032
+ if (!affordances) return;
1033
+ const viewport = viewportRef.current;
1034
+ const content = contentRef.current;
1035
+ if (!viewport || !content) return;
1036
+
1037
+ const update = () => {
1038
+ const remaining = viewport.scrollHeight - viewport.clientHeight;
1039
+ const overflowing = remaining > 1;
1040
+ const above = overflowing && viewport.scrollTop > 1;
1041
+ const below = overflowing && viewport.scrollTop < remaining - 1;
1042
+ setEdges((current) =>
1043
+ current.above === above && current.below === below
1044
+ ? current
1045
+ : { above, below },
1046
+ );
1047
+ };
1048
+ const observer = new ResizeObserver(update);
1049
+ observer.observe(viewport);
1050
+ observer.observe(content);
1051
+ viewport.addEventListener("scroll", update, { passive: true });
1052
+ update();
1053
+ return () => {
1054
+ observer.disconnect();
1055
+ viewport.removeEventListener("scroll", update);
1056
+ };
1057
+ }, [affordances]);
1058
+
1059
+ if (!affordances) {
1060
+ return <div className="min-h-0 flex-1 overflow-y-auto">{children}</div>;
1061
+ }
1062
+
1063
+ return (
1064
+ <ScrollAreaPrimitive.Root
1065
+ type={edges.above || edges.below ? "always" : "auto"}
1066
+ className="relative min-h-0 flex-1 overflow-hidden"
1067
+ data-app-sidebar-scroll-area
1068
+ >
1069
+ <ScrollAreaPrimitive.Viewport
1070
+ ref={viewportRef}
1071
+ // Radix's intrinsic table sizing would widen truncated rows beyond the sidebar.
1072
+ className="size-full scroll-py-2 [&>div]:!block"
1073
+ data-app-sidebar-scroll-viewport
1074
+ onFocusCapture={(event) => {
1075
+ const viewport = event.currentTarget;
1076
+ const target = event.target;
1077
+ if (
1078
+ !(target instanceof HTMLElement) ||
1079
+ target === viewport ||
1080
+ !viewport.contains(target)
1081
+ )
1082
+ return;
1083
+ const bounds = viewport.getBoundingClientRect();
1084
+ const focused = target.getBoundingClientRect();
1085
+ if (focused.top < bounds.top + 8) {
1086
+ viewport.scrollTop += focused.top - bounds.top - 8;
1087
+ } else if (focused.bottom > bounds.bottom - 8) {
1088
+ viewport.scrollTop += focused.bottom - bounds.bottom + 8;
1089
+ }
1090
+ }}
1091
+ >
1092
+ <div ref={contentRef}>{children}</div>
1093
+ </ScrollAreaPrimitive.Viewport>
1094
+ <ScrollBar className="z-10 w-1.5 border-none p-px [&>div]:bg-muted-foreground/50" />
1095
+ {edges.above && (
1096
+ <div
1097
+ aria-hidden="true"
1098
+ data-scroll-edge="top"
1099
+ className="pointer-events-none absolute inset-x-0 top-0 h-2 bg-gradient-to-b from-sidebar to-transparent"
1100
+ />
1101
+ )}
1102
+ {edges.below && (
1103
+ <div
1104
+ aria-hidden="true"
1105
+ data-scroll-edge="bottom"
1106
+ className="pointer-events-none absolute inset-x-0 bottom-0 h-2 bg-gradient-to-t from-sidebar to-transparent"
1107
+ />
1108
+ )}
1109
+ </ScrollAreaPrimitive.Root>
1110
+ );
1111
+ }