@agent-native/toolkit 0.19.2 → 0.19.3-nightly-20260902220623

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.
@@ -84,9 +84,17 @@ export interface DataGridProps<Row> extends Omit<React.HTMLAttributes<HTMLDivEle
84
84
  contentClassName?: string;
85
85
  rowClassName?: string | ((row: Row, rowIndex: number) => string);
86
86
  scrollContainerProps?: DataGridScrollContainerProps;
87
+ horizontalOverflowAffordance?: "edges";
87
88
  }
89
+ export type DataGridRtlScrollType = "default" | "negative" | "reverse";
90
+ export declare function dataGridDistanceFromStart({ direction, scrollLeft, maxScroll, rtlScrollType, }: {
91
+ direction: string;
92
+ scrollLeft: number;
93
+ maxScroll: number;
94
+ rtlScrollType: DataGridRtlScrollType;
95
+ }): number;
88
96
  export declare function clampDataGridColumnWidth<Row>(width: number, column: DataGridColumn<Row>): number;
89
97
  export declare function dataGridColumnTemplate<Row>(columns: readonly DataGridColumn<Row>[], columnWidths?: Readonly<Record<string, number>>, selection?: DataGridSelectionMode): string;
90
- export declare function DataGrid<Row>({ rows, columns, getRowId, columnWidths, onColumnWidthsChange, selection, selectedRowIds, onSelectedRowIdsChange, activeCell, onActiveCellChange, onCellCommit, renderHeader, renderBody, renderRow, renderFooter, emptyState, loading, loadingRowCount, contentClassName, rowClassName, scrollContainerProps, className, ...gridProps }: DataGridProps<Row>): React.JSX.Element;
98
+ export declare function DataGrid<Row>({ rows, columns, getRowId, columnWidths, onColumnWidthsChange, selection, selectedRowIds, onSelectedRowIdsChange, activeCell, onActiveCellChange, onCellCommit, renderHeader, renderBody, renderRow, renderFooter, emptyState, loading, loadingRowCount, contentClassName, rowClassName, scrollContainerProps, horizontalOverflowAffordance, className, ...gridProps }: DataGridProps<Row>): React.JSX.Element;
91
99
  export {};
92
100
  //# sourceMappingURL=DataGrid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/data-grid/DataGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/data-grid/DataGrid.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,42 @@ const DEFAULT_COLUMN_WIDTH = 160;
5
5
  const DEFAULT_MIN_COLUMN_WIDTH = 96;
6
6
  const DEFAULT_MAX_COLUMN_WIDTH = 640;
7
7
  const SELECTION_COLUMN_WIDTH = 40;
8
+ let rtlScrollType;
9
+ function detectRtlScrollType() {
10
+ if (rtlScrollType)
11
+ return rtlScrollType;
12
+ if (typeof document === "undefined" || !document.body)
13
+ return "negative";
14
+ const viewport = document.createElement("div");
15
+ const content = document.createElement("div");
16
+ viewport.dir = "rtl";
17
+ viewport.style.cssText =
18
+ "position:absolute;top:-1000px;width:4px;height:1px;overflow:scroll";
19
+ content.style.width = "8px";
20
+ viewport.appendChild(content);
21
+ document.body.appendChild(viewport);
22
+ if (viewport.scrollLeft > 0) {
23
+ rtlScrollType = "default";
24
+ }
25
+ else {
26
+ viewport.scrollLeft = 1;
27
+ rtlScrollType = viewport.scrollLeft === 0 ? "negative" : "reverse";
28
+ }
29
+ viewport.remove();
30
+ return rtlScrollType;
31
+ }
32
+ export function dataGridDistanceFromStart({ direction, scrollLeft, maxScroll, rtlScrollType, }) {
33
+ if (direction !== "rtl")
34
+ return scrollLeft;
35
+ switch (rtlScrollType) {
36
+ case "negative":
37
+ return -scrollLeft;
38
+ case "reverse":
39
+ return scrollLeft;
40
+ case "default":
41
+ return maxScroll - scrollLeft;
42
+ }
43
+ }
8
44
  function columnWidth(column, requestedWidth) {
9
45
  const fallback = column.width ?? DEFAULT_COLUMN_WIDTH;
10
46
  const width = requestedWidth !== undefined && Number.isFinite(requestedWidth)
@@ -123,8 +159,9 @@ function DataGridDefaultRow({ row, rowIndex, rowId, columns, gridTemplateColumns
123
159
  : defaultCellText(value) }, column.id));
124
160
  })] }));
125
161
  }
126
- export function DataGrid({ rows, columns, getRowId, columnWidths, onColumnWidthsChange, selection = "none", selectedRowIds, onSelectedRowIdsChange, activeCell, onActiveCellChange, onCellCommit, renderHeader, renderBody, renderRow, renderFooter, emptyState, loading = false, loadingRowCount = 4, contentClassName, rowClassName, scrollContainerProps, className, ...gridProps }) {
162
+ export function DataGrid({ rows, columns, getRowId, columnWidths, onColumnWidthsChange, selection = "none", selectedRowIds, onSelectedRowIdsChange, activeCell, onActiveCellChange, onCellCommit, renderHeader, renderBody, renderRow, renderFooter, emptyState, loading = false, loadingRowCount = 4, contentClassName, rowClassName, scrollContainerProps, horizontalOverflowAffordance, className, ...gridProps }) {
127
163
  const gridRef = React.useRef(null);
164
+ const scrollContainerRef = React.useRef(null);
128
165
  const hasMountedActiveCellRef = React.useRef(false);
129
166
  const [internalColumnWidths, setInternalColumnWidths] = React.useState({});
130
167
  const [internalSelectedRowIds, setInternalSelectedRowIds] = React.useState(() => new Set());
@@ -135,6 +172,56 @@ export function DataGrid({ rows, columns, getRowId, columnWidths, onColumnWidths
135
172
  editing: false,
136
173
  }
137
174
  : null);
175
+ const [overflowEdges, setOverflowEdges] = React.useState({
176
+ start: false,
177
+ end: false,
178
+ });
179
+ const updateOverflowEdges = React.useCallback(() => {
180
+ if (horizontalOverflowAffordance !== "edges")
181
+ return;
182
+ const container = scrollContainerRef.current;
183
+ if (!container)
184
+ return;
185
+ const maxScroll = Math.max(0, container.scrollWidth - container.clientWidth);
186
+ const distanceFromStart = dataGridDistanceFromStart({
187
+ direction: getComputedStyle(container).direction,
188
+ scrollLeft: container.scrollLeft,
189
+ maxScroll,
190
+ rtlScrollType: container.scrollLeft < 0 ? "negative" : detectRtlScrollType(),
191
+ });
192
+ const nextEdges = {
193
+ start: maxScroll > 1 && distanceFromStart > 1,
194
+ end: maxScroll > 1 && distanceFromStart < maxScroll - 1,
195
+ };
196
+ setOverflowEdges((currentEdges) => currentEdges.start === nextEdges.start &&
197
+ currentEdges.end === nextEdges.end
198
+ ? currentEdges
199
+ : nextEdges);
200
+ }, [horizontalOverflowAffordance]);
201
+ React.useEffect(() => {
202
+ if (horizontalOverflowAffordance !== "edges") {
203
+ setOverflowEdges((currentEdges) => currentEdges.start || currentEdges.end
204
+ ? { start: false, end: false }
205
+ : currentEdges);
206
+ return;
207
+ }
208
+ updateOverflowEdges();
209
+ const container = scrollContainerRef.current;
210
+ if (!container)
211
+ return;
212
+ const content = container.firstElementChild;
213
+ const resizeObserver = typeof ResizeObserver === "undefined"
214
+ ? null
215
+ : new ResizeObserver(updateOverflowEdges);
216
+ resizeObserver?.observe(container);
217
+ if (content instanceof HTMLElement)
218
+ resizeObserver?.observe(content);
219
+ window.addEventListener("resize", updateOverflowEdges);
220
+ return () => {
221
+ resizeObserver?.disconnect();
222
+ window.removeEventListener("resize", updateOverflowEdges);
223
+ };
224
+ }, [columns, horizontalOverflowAffordance, rows, updateOverflowEdges]);
138
225
  const resolvedColumnWidths = columnWidths ?? internalColumnWidths;
139
226
  const resolvedSelectedRowIds = selectedRowIds ?? internalSelectedRowIds;
140
227
  const resolvedActiveCell = activeCell === undefined ? internalActiveCell : activeCell;
@@ -287,35 +374,40 @@ export function DataGrid({ rows, columns, getRowId, columnWidths, onColumnWidths
287
374
  toggleRowSelection,
288
375
  resizeColumn: setColumnWidth,
289
376
  };
290
- const { className: scrollClassName, ...restScrollContainerProps } = scrollContainerProps ?? {};
377
+ const { className: scrollClassName, onScroll, ...restScrollContainerProps } = scrollContainerProps ?? {};
291
378
  const loadingCount = Number.isFinite(loadingRowCount)
292
379
  ? Math.max(1, Math.floor(loadingRowCount))
293
380
  : 1;
294
- return (_jsx("div", { ...gridProps, ref: gridRef, role: gridProps.role ?? "grid", className: cn("w-full min-w-0", className), "aria-busy": loading || undefined, children: _jsx("div", { ...restScrollContainerProps, "data-data-grid-scroll-container": "true", className: cn("w-full min-w-0 max-w-full overflow-x-auto overscroll-x-contain", scrollClassName), children: _jsxs("div", { className: cn("w-max min-w-full", contentClassName), children: [renderHeader ? (renderHeader(slotContext)) : (_jsx(DataGridHeader, { columns: columns, gridTemplateColumns: gridTemplateColumns, selection: selection, rows: rows, getRowId: getRowId, selectedRowIds: resolvedSelectedRowIds, onToggleAll: toggleAllRows, onStartResize: startResize })), renderBody
295
- ? renderBody(slotContext)
296
- : loading
297
- ? loadingRows({
298
- count: loadingCount,
299
- columns,
300
- gridTemplateColumns,
301
- selection,
302
- })
303
- : rows.length > 0
304
- ? rows.map((row, rowIndex) => {
305
- const rowId = getRowId(row, rowIndex);
306
- const rowContext = {
307
- ...slotContext,
308
- row,
309
- rowIndex,
310
- rowId,
311
- selected: resolvedSelectedRowIds.has(rowId),
312
- };
313
- if (renderRow)
314
- return renderRow(rowContext);
315
- return (_jsx(DataGridDefaultRow, { row: row, rowIndex: rowIndex, rowId: rowId, columns: columns, gridTemplateColumns: gridTemplateColumns, selection: selection, selected: rowContext.selected, rowClassName: typeof rowClassName === "function"
316
- ? rowClassName(row, rowIndex)
317
- : rowClassName, activeCell: resolvedActiveCell, setActiveCell: setActive, toggleRowSelection: toggleRowSelection, moveActiveCell: moveActiveCell, commitCell: commitCell }, rowId));
318
- })
319
- : emptyState, renderFooter ? renderFooter(slotContext) : null] }) }) }));
381
+ return (_jsx("div", { ...gridProps, ref: gridRef, role: gridProps.role ?? "grid", className: cn("w-full min-w-0", className), "aria-busy": loading || undefined, children: _jsxs("div", { className: "relative min-w-0 max-w-full", children: [_jsxs("div", { ...restScrollContainerProps, ref: scrollContainerRef, "data-data-grid-scroll-container": "true", className: cn("w-full min-w-0 max-w-full overflow-x-auto overscroll-x-contain", scrollClassName), onScroll: (event) => {
382
+ if (horizontalOverflowAffordance === "edges") {
383
+ updateOverflowEdges();
384
+ }
385
+ onScroll?.(event);
386
+ }, children: [_jsxs("div", { className: cn("w-max min-w-full", contentClassName), children: [renderHeader ? (renderHeader(slotContext)) : (_jsx(DataGridHeader, { columns: columns, gridTemplateColumns: gridTemplateColumns, selection: selection, rows: rows, getRowId: getRowId, selectedRowIds: resolvedSelectedRowIds, onToggleAll: toggleAllRows, onStartResize: startResize })), renderBody
387
+ ? renderBody(slotContext)
388
+ : loading
389
+ ? loadingRows({
390
+ count: loadingCount,
391
+ columns,
392
+ gridTemplateColumns,
393
+ selection,
394
+ })
395
+ : rows.length > 0
396
+ ? rows.map((row, rowIndex) => {
397
+ const rowId = getRowId(row, rowIndex);
398
+ const rowContext = {
399
+ ...slotContext,
400
+ row,
401
+ rowIndex,
402
+ rowId,
403
+ selected: resolvedSelectedRowIds.has(rowId),
404
+ };
405
+ if (renderRow)
406
+ return renderRow(rowContext);
407
+ return (_jsx(DataGridDefaultRow, { row: row, rowIndex: rowIndex, rowId: rowId, columns: columns, gridTemplateColumns: gridTemplateColumns, selection: selection, selected: rowContext.selected, rowClassName: typeof rowClassName === "function"
408
+ ? rowClassName(row, rowIndex)
409
+ : rowClassName, activeCell: resolvedActiveCell, setActiveCell: setActive, toggleRowSelection: toggleRowSelection, moveActiveCell: moveActiveCell, commitCell: commitCell }, rowId));
410
+ })
411
+ : emptyState] }), renderFooter ? renderFooter(slotContext) : null] }), overflowEdges.start ? (_jsx("div", { "aria-hidden": "true", "data-data-grid-overflow-edge": "start", className: "pointer-events-none absolute inset-y-0 start-0 w-8 bg-gradient-to-r from-background to-transparent rtl:bg-gradient-to-l" })) : null, overflowEdges.end ? (_jsx("div", { "aria-hidden": "true", "data-data-grid-overflow-edge": "end", className: "pointer-events-none absolute inset-y-0 end-0 w-8 bg-gradient-to-l from-background to-transparent rtl:bg-gradient-to-r" })) : null] }) }));
320
412
  }
321
413
  //# sourceMappingURL=DataGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../../src/data-grid/DataGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.js","sourceRoot":"","sources":["../../src/data-grid/DataGrid.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { act } from "react";
4
4
  import { createRoot } from "react-dom/client";
5
5
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
6
- import { DataGrid, dataGridColumnTemplate, } from "./index.js";
6
+ import { DataGrid, dataGridColumnTemplate, dataGridDistanceFromStart, } from "./index.js";
7
7
  const columns = [
8
8
  {
9
9
  id: "name",
@@ -29,6 +29,26 @@ const rows = [
29
29
  { id: "row-2", name: "Second", status: "Closed" },
30
30
  ];
31
31
  describe("data-grid", () => {
32
+ it("normalizes distance from the RTL start across browser scroll models", () => {
33
+ expect(dataGridDistanceFromStart({
34
+ direction: "rtl",
35
+ scrollLeft: -75,
36
+ maxScroll: 200,
37
+ rtlScrollType: "negative",
38
+ })).toBe(75);
39
+ expect(dataGridDistanceFromStart({
40
+ direction: "rtl",
41
+ scrollLeft: 75,
42
+ maxScroll: 200,
43
+ rtlScrollType: "reverse",
44
+ })).toBe(75);
45
+ expect(dataGridDistanceFromStart({
46
+ direction: "rtl",
47
+ scrollLeft: 125,
48
+ maxScroll: 200,
49
+ rtlScrollType: "default",
50
+ })).toBe(75);
51
+ });
32
52
  it("builds a bounded template and includes the selection column only when requested", () => {
33
53
  expect(dataGridColumnTemplate(columns, { name: 40 }, "none")).toBe("96px 120px");
34
54
  expect(dataGridColumnTemplate(columns, { name: 220 }, "multiple")).toBe("40px 220px 120px");
@@ -129,6 +149,78 @@ describe("data-grid", () => {
129
149
  expect(renderHeader).toHaveBeenCalledWith(expect.objectContaining({ gridTemplateColumns: "180px 120px" }));
130
150
  expect(renderBody).toHaveBeenCalledWith(expect.objectContaining({ rows, columns }));
131
151
  });
152
+ it("shows opt-in overflow edges without replacing the scroll surface", () => {
153
+ act(() => {
154
+ root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, horizontalOverflowAffordance: "edges" }));
155
+ });
156
+ const scrollContainer = container.querySelector("[data-data-grid-scroll-container=true]");
157
+ expect(scrollContainer).not.toBeNull();
158
+ if (!scrollContainer)
159
+ return;
160
+ Object.defineProperties(scrollContainer, {
161
+ clientWidth: { configurable: true, value: 200 },
162
+ scrollWidth: { configurable: true, value: 400 },
163
+ scrollLeft: { configurable: true, writable: true, value: 0 },
164
+ });
165
+ act(() => window.dispatchEvent(new Event("resize")));
166
+ expect(container.querySelector("[data-data-grid-overflow-edge=start]")).toBeNull();
167
+ const endEdge = container.querySelector("[data-data-grid-overflow-edge=end]");
168
+ expect(endEdge?.getAttribute("aria-hidden")).toBe("true");
169
+ expect(endEdge?.className).toContain("pointer-events-none");
170
+ expect(scrollContainer.className).toContain("overflow-x-auto");
171
+ scrollContainer.scrollLeft = 200;
172
+ act(() => scrollContainer.dispatchEvent(new Event("scroll")));
173
+ expect(container.querySelector("[data-data-grid-overflow-edge=end]")).toBeNull();
174
+ expect(container.querySelector("[data-data-grid-overflow-edge=start]")).not.toBeNull();
175
+ });
176
+ it("does not render overflow edges unless an app opts in", () => {
177
+ act(() => {
178
+ root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id }));
179
+ });
180
+ act(() => window.dispatchEvent(new Event("resize")));
181
+ expect(container.querySelector("[data-data-grid-overflow-edge]")).toBeNull();
182
+ });
183
+ it("tracks logical overflow edges in RTL", () => {
184
+ act(() => {
185
+ root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, horizontalOverflowAffordance: "edges" }));
186
+ });
187
+ const scrollContainer = container.querySelector("[data-data-grid-scroll-container=true]");
188
+ expect(scrollContainer).not.toBeNull();
189
+ if (!scrollContainer)
190
+ return;
191
+ scrollContainer.style.direction = "rtl";
192
+ Object.defineProperties(scrollContainer, {
193
+ clientWidth: { configurable: true, value: 200 },
194
+ scrollWidth: { configurable: true, value: 400 },
195
+ scrollLeft: { configurable: true, writable: true, value: -100 },
196
+ });
197
+ act(() => scrollContainer.dispatchEvent(new Event("scroll")));
198
+ expect(container.querySelector("[data-data-grid-overflow-edge=start]")).not.toBeNull();
199
+ expect(container.querySelector("[data-data-grid-overflow-edge=end]")).not.toBeNull();
200
+ scrollContainer.scrollLeft = -200;
201
+ act(() => scrollContainer.dispatchEvent(new Event("scroll")));
202
+ expect(container.querySelector("[data-data-grid-overflow-edge=start]")).not.toBeNull();
203
+ expect(container.querySelector("[data-data-grid-overflow-edge=end]")).toBeNull();
204
+ });
205
+ it("cleans up overflow resize observers and listeners", () => {
206
+ const observe = vi.fn();
207
+ const disconnect = vi.fn();
208
+ const addEventListener = vi.spyOn(window, "addEventListener");
209
+ const removeEventListener = vi.spyOn(window, "removeEventListener");
210
+ vi.stubGlobal("ResizeObserver", class {
211
+ observe = observe;
212
+ disconnect = disconnect;
213
+ });
214
+ act(() => {
215
+ root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, horizontalOverflowAffordance: "edges" }));
216
+ });
217
+ expect(observe).toHaveBeenCalledTimes(2);
218
+ expect(addEventListener).toHaveBeenCalledWith("resize", expect.any(Function));
219
+ act(() => root.unmount());
220
+ expect(disconnect).toHaveBeenCalledOnce();
221
+ expect(removeEventListener).toHaveBeenCalledWith("resize", expect.any(Function));
222
+ root = createRoot(container);
223
+ });
132
224
  });
133
225
  });
134
226
  //# sourceMappingURL=DataGrid.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.spec.js","sourceRoot":"","sources":["../../src/data-grid/DataGrid.spec.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid.spec.js","sourceRoot":"","sources":["../../src/data-grid/DataGrid.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { DataGrid, clampDataGridColumnWidth, dataGridColumnTemplate, type DataGridActiveCell, type DataGridCellContext, type DataGridColumn, type DataGridCommitContext, type DataGridDirection, type DataGridEditorContext, type DataGridProps, type DataGridRowContext, type DataGridSelectionMode, type DataGridSlotContext, } from "./DataGrid.js";
1
+ export { DataGrid, clampDataGridColumnWidth, dataGridColumnTemplate, dataGridDistanceFromStart, type DataGridActiveCell, type DataGridCellContext, type DataGridColumn, type DataGridCommitContext, type DataGridDirection, type DataGridEditorContext, type DataGridProps, type DataGridRtlScrollType, type DataGridRowContext, type DataGridSelectionMode, type DataGridSlotContext, } from "./DataGrid.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC"}
@@ -1,2 +1,2 @@
1
- export { DataGrid, clampDataGridColumnWidth, dataGridColumnTemplate, } from "./DataGrid.js";
1
+ export { DataGrid, clampDataGridColumnWidth, dataGridColumnTemplate, dataGridDistanceFromStart, } from "./DataGrid.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,GAWvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-grid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,GAY1B,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/toolkit",
3
- "version": "0.19.2",
3
+ "version": "0.19.3-nightly-20260902220623",
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": {
@@ -7,6 +7,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
7
7
  import {
8
8
  DataGrid,
9
9
  dataGridColumnTemplate,
10
+ dataGridDistanceFromStart,
10
11
  type DataGridColumn,
11
12
  } from "./index.js";
12
13
 
@@ -48,6 +49,33 @@ const rows: readonly Row[] = [
48
49
  ];
49
50
 
50
51
  describe("data-grid", () => {
52
+ it("normalizes distance from the RTL start across browser scroll models", () => {
53
+ expect(
54
+ dataGridDistanceFromStart({
55
+ direction: "rtl",
56
+ scrollLeft: -75,
57
+ maxScroll: 200,
58
+ rtlScrollType: "negative",
59
+ }),
60
+ ).toBe(75);
61
+ expect(
62
+ dataGridDistanceFromStart({
63
+ direction: "rtl",
64
+ scrollLeft: 75,
65
+ maxScroll: 200,
66
+ rtlScrollType: "reverse",
67
+ }),
68
+ ).toBe(75);
69
+ expect(
70
+ dataGridDistanceFromStart({
71
+ direction: "rtl",
72
+ scrollLeft: 125,
73
+ maxScroll: 200,
74
+ rtlScrollType: "default",
75
+ }),
76
+ ).toBe(75);
77
+ });
78
+
51
79
  it("builds a bounded template and includes the selection column only when requested", () => {
52
80
  expect(dataGridColumnTemplate(columns, { name: 40 }, "none")).toBe(
53
81
  "96px 120px",
@@ -239,5 +267,142 @@ describe("data-grid", () => {
239
267
  expect.objectContaining({ rows, columns }),
240
268
  );
241
269
  });
270
+
271
+ it("shows opt-in overflow edges without replacing the scroll surface", () => {
272
+ act(() => {
273
+ root.render(
274
+ <DataGrid
275
+ rows={rows}
276
+ columns={columns}
277
+ getRowId={(row) => row.id}
278
+ horizontalOverflowAffordance="edges"
279
+ />,
280
+ );
281
+ });
282
+
283
+ const scrollContainer = container.querySelector<HTMLElement>(
284
+ "[data-data-grid-scroll-container=true]",
285
+ );
286
+ expect(scrollContainer).not.toBeNull();
287
+ if (!scrollContainer) return;
288
+ Object.defineProperties(scrollContainer, {
289
+ clientWidth: { configurable: true, value: 200 },
290
+ scrollWidth: { configurable: true, value: 400 },
291
+ scrollLeft: { configurable: true, writable: true, value: 0 },
292
+ });
293
+
294
+ act(() => window.dispatchEvent(new Event("resize")));
295
+ expect(
296
+ container.querySelector("[data-data-grid-overflow-edge=start]"),
297
+ ).toBeNull();
298
+ const endEdge = container.querySelector<HTMLElement>(
299
+ "[data-data-grid-overflow-edge=end]",
300
+ );
301
+ expect(endEdge?.getAttribute("aria-hidden")).toBe("true");
302
+ expect(endEdge?.className).toContain("pointer-events-none");
303
+ expect(scrollContainer.className).toContain("overflow-x-auto");
304
+
305
+ scrollContainer.scrollLeft = 200;
306
+ act(() => scrollContainer.dispatchEvent(new Event("scroll")));
307
+ expect(
308
+ container.querySelector("[data-data-grid-overflow-edge=end]"),
309
+ ).toBeNull();
310
+ expect(
311
+ container.querySelector("[data-data-grid-overflow-edge=start]"),
312
+ ).not.toBeNull();
313
+ });
314
+
315
+ it("does not render overflow edges unless an app opts in", () => {
316
+ act(() => {
317
+ root.render(
318
+ <DataGrid rows={rows} columns={columns} getRowId={(row) => row.id} />,
319
+ );
320
+ });
321
+
322
+ act(() => window.dispatchEvent(new Event("resize")));
323
+ expect(
324
+ container.querySelector("[data-data-grid-overflow-edge]"),
325
+ ).toBeNull();
326
+ });
327
+
328
+ it("tracks logical overflow edges in RTL", () => {
329
+ act(() => {
330
+ root.render(
331
+ <DataGrid
332
+ rows={rows}
333
+ columns={columns}
334
+ getRowId={(row) => row.id}
335
+ horizontalOverflowAffordance="edges"
336
+ />,
337
+ );
338
+ });
339
+
340
+ const scrollContainer = container.querySelector<HTMLElement>(
341
+ "[data-data-grid-scroll-container=true]",
342
+ );
343
+ expect(scrollContainer).not.toBeNull();
344
+ if (!scrollContainer) return;
345
+ scrollContainer.style.direction = "rtl";
346
+ Object.defineProperties(scrollContainer, {
347
+ clientWidth: { configurable: true, value: 200 },
348
+ scrollWidth: { configurable: true, value: 400 },
349
+ scrollLeft: { configurable: true, writable: true, value: -100 },
350
+ });
351
+
352
+ act(() => scrollContainer.dispatchEvent(new Event("scroll")));
353
+ expect(
354
+ container.querySelector("[data-data-grid-overflow-edge=start]"),
355
+ ).not.toBeNull();
356
+ expect(
357
+ container.querySelector("[data-data-grid-overflow-edge=end]"),
358
+ ).not.toBeNull();
359
+
360
+ scrollContainer.scrollLeft = -200;
361
+ act(() => scrollContainer.dispatchEvent(new Event("scroll")));
362
+ expect(
363
+ container.querySelector("[data-data-grid-overflow-edge=start]"),
364
+ ).not.toBeNull();
365
+ expect(
366
+ container.querySelector("[data-data-grid-overflow-edge=end]"),
367
+ ).toBeNull();
368
+ });
369
+
370
+ it("cleans up overflow resize observers and listeners", () => {
371
+ const observe = vi.fn();
372
+ const disconnect = vi.fn();
373
+ const addEventListener = vi.spyOn(window, "addEventListener");
374
+ const removeEventListener = vi.spyOn(window, "removeEventListener");
375
+ vi.stubGlobal(
376
+ "ResizeObserver",
377
+ class {
378
+ observe = observe;
379
+ disconnect = disconnect;
380
+ },
381
+ );
382
+
383
+ act(() => {
384
+ root.render(
385
+ <DataGrid
386
+ rows={rows}
387
+ columns={columns}
388
+ getRowId={(row) => row.id}
389
+ horizontalOverflowAffordance="edges"
390
+ />,
391
+ );
392
+ });
393
+ expect(observe).toHaveBeenCalledTimes(2);
394
+ expect(addEventListener).toHaveBeenCalledWith(
395
+ "resize",
396
+ expect.any(Function),
397
+ );
398
+
399
+ act(() => root.unmount());
400
+ expect(disconnect).toHaveBeenCalledOnce();
401
+ expect(removeEventListener).toHaveBeenCalledWith(
402
+ "resize",
403
+ expect.any(Function),
404
+ );
405
+ root = createRoot(container);
406
+ });
242
407
  });
243
408
  });
@@ -109,6 +109,7 @@ export interface DataGridProps<Row> extends Omit<
109
109
  contentClassName?: string;
110
110
  rowClassName?: string | ((row: Row, rowIndex: number) => string);
111
111
  scrollContainerProps?: DataGridScrollContainerProps;
112
+ horizontalOverflowAffordance?: "edges";
112
113
  }
113
114
 
114
115
  const DEFAULT_COLUMN_WIDTH = 160;
@@ -116,6 +117,53 @@ const DEFAULT_MIN_COLUMN_WIDTH = 96;
116
117
  const DEFAULT_MAX_COLUMN_WIDTH = 640;
117
118
  const SELECTION_COLUMN_WIDTH = 40;
118
119
 
120
+ export type DataGridRtlScrollType = "default" | "negative" | "reverse";
121
+
122
+ let rtlScrollType: DataGridRtlScrollType | undefined;
123
+
124
+ function detectRtlScrollType(): DataGridRtlScrollType {
125
+ if (rtlScrollType) return rtlScrollType;
126
+ if (typeof document === "undefined" || !document.body) return "negative";
127
+ const viewport = document.createElement("div");
128
+ const content = document.createElement("div");
129
+ viewport.dir = "rtl";
130
+ viewport.style.cssText =
131
+ "position:absolute;top:-1000px;width:4px;height:1px;overflow:scroll";
132
+ content.style.width = "8px";
133
+ viewport.appendChild(content);
134
+ document.body.appendChild(viewport);
135
+ if (viewport.scrollLeft > 0) {
136
+ rtlScrollType = "default";
137
+ } else {
138
+ viewport.scrollLeft = 1;
139
+ rtlScrollType = viewport.scrollLeft === 0 ? "negative" : "reverse";
140
+ }
141
+ viewport.remove();
142
+ return rtlScrollType;
143
+ }
144
+
145
+ export function dataGridDistanceFromStart({
146
+ direction,
147
+ scrollLeft,
148
+ maxScroll,
149
+ rtlScrollType,
150
+ }: {
151
+ direction: string;
152
+ scrollLeft: number;
153
+ maxScroll: number;
154
+ rtlScrollType: DataGridRtlScrollType;
155
+ }) {
156
+ if (direction !== "rtl") return scrollLeft;
157
+ switch (rtlScrollType) {
158
+ case "negative":
159
+ return -scrollLeft;
160
+ case "reverse":
161
+ return scrollLeft;
162
+ case "default":
163
+ return maxScroll - scrollLeft;
164
+ }
165
+ }
166
+
119
167
  function columnWidth<Row>(
120
168
  column: DataGridColumn<Row>,
121
169
  requestedWidth: number | undefined,
@@ -455,10 +503,12 @@ export function DataGrid<Row>({
455
503
  contentClassName,
456
504
  rowClassName,
457
505
  scrollContainerProps,
506
+ horizontalOverflowAffordance,
458
507
  className,
459
508
  ...gridProps
460
509
  }: DataGridProps<Row>) {
461
510
  const gridRef = React.useRef<HTMLDivElement>(null);
511
+ const scrollContainerRef = React.useRef<HTMLDivElement>(null);
462
512
  const hasMountedActiveCellRef = React.useRef(false);
463
513
  const [internalColumnWidths, setInternalColumnWidths] = React.useState<
464
514
  Record<string, number>
@@ -476,6 +526,63 @@ export function DataGrid<Row>({
476
526
  }
477
527
  : null,
478
528
  );
529
+ const [overflowEdges, setOverflowEdges] = React.useState({
530
+ start: false,
531
+ end: false,
532
+ });
533
+
534
+ const updateOverflowEdges = React.useCallback(() => {
535
+ if (horizontalOverflowAffordance !== "edges") return;
536
+ const container = scrollContainerRef.current;
537
+ if (!container) return;
538
+ const maxScroll = Math.max(
539
+ 0,
540
+ container.scrollWidth - container.clientWidth,
541
+ );
542
+ const distanceFromStart = dataGridDistanceFromStart({
543
+ direction: getComputedStyle(container).direction,
544
+ scrollLeft: container.scrollLeft,
545
+ maxScroll,
546
+ rtlScrollType:
547
+ container.scrollLeft < 0 ? "negative" : detectRtlScrollType(),
548
+ });
549
+ const nextEdges = {
550
+ start: maxScroll > 1 && distanceFromStart > 1,
551
+ end: maxScroll > 1 && distanceFromStart < maxScroll - 1,
552
+ };
553
+ setOverflowEdges((currentEdges) =>
554
+ currentEdges.start === nextEdges.start &&
555
+ currentEdges.end === nextEdges.end
556
+ ? currentEdges
557
+ : nextEdges,
558
+ );
559
+ }, [horizontalOverflowAffordance]);
560
+
561
+ React.useEffect(() => {
562
+ if (horizontalOverflowAffordance !== "edges") {
563
+ setOverflowEdges((currentEdges) =>
564
+ currentEdges.start || currentEdges.end
565
+ ? { start: false, end: false }
566
+ : currentEdges,
567
+ );
568
+ return;
569
+ }
570
+ updateOverflowEdges();
571
+ const container = scrollContainerRef.current;
572
+ if (!container) return;
573
+ const content = container.firstElementChild;
574
+ const resizeObserver =
575
+ typeof ResizeObserver === "undefined"
576
+ ? null
577
+ : new ResizeObserver(updateOverflowEdges);
578
+ resizeObserver?.observe(container);
579
+ if (content instanceof HTMLElement) resizeObserver?.observe(content);
580
+ window.addEventListener("resize", updateOverflowEdges);
581
+ return () => {
582
+ resizeObserver?.disconnect();
583
+ window.removeEventListener("resize", updateOverflowEdges);
584
+ };
585
+ }, [columns, horizontalOverflowAffordance, rows, updateOverflowEdges]);
479
586
 
480
587
  const resolvedColumnWidths = columnWidths ?? internalColumnWidths;
481
588
  const resolvedSelectedRowIds = selectedRowIds ?? internalSelectedRowIds;
@@ -671,8 +778,11 @@ export function DataGrid<Row>({
671
778
  resizeColumn: setColumnWidth,
672
779
  };
673
780
 
674
- const { className: scrollClassName, ...restScrollContainerProps } =
675
- scrollContainerProps ?? {};
781
+ const {
782
+ className: scrollClassName,
783
+ onScroll,
784
+ ...restScrollContainerProps
785
+ } = scrollContainerProps ?? {};
676
786
  const loadingCount = Number.isFinite(loadingRowCount)
677
787
  ? Math.max(1, Math.floor(loadingRowCount))
678
788
  : 1;
@@ -685,75 +795,98 @@ export function DataGrid<Row>({
685
795
  className={cn("w-full min-w-0", className)}
686
796
  aria-busy={loading || undefined}
687
797
  >
688
- <div
689
- {...restScrollContainerProps}
690
- data-data-grid-scroll-container="true"
691
- className={cn(
692
- "w-full min-w-0 max-w-full overflow-x-auto overscroll-x-contain",
693
- scrollClassName,
694
- )}
695
- >
696
- <div className={cn("w-max min-w-full", contentClassName)}>
697
- {renderHeader ? (
698
- renderHeader(slotContext)
699
- ) : (
700
- <DataGridHeader
701
- columns={columns}
702
- gridTemplateColumns={gridTemplateColumns}
703
- selection={selection}
704
- rows={rows}
705
- getRowId={getRowId}
706
- selectedRowIds={resolvedSelectedRowIds}
707
- onToggleAll={toggleAllRows}
708
- onStartResize={startResize}
709
- />
798
+ <div className="relative min-w-0 max-w-full">
799
+ <div
800
+ {...restScrollContainerProps}
801
+ ref={scrollContainerRef}
802
+ data-data-grid-scroll-container="true"
803
+ className={cn(
804
+ "w-full min-w-0 max-w-full overflow-x-auto overscroll-x-contain",
805
+ scrollClassName,
710
806
  )}
711
- {renderBody
712
- ? renderBody(slotContext)
713
- : loading
714
- ? loadingRows({
715
- count: loadingCount,
716
- columns,
717
- gridTemplateColumns,
718
- selection,
719
- })
720
- : rows.length > 0
721
- ? rows.map((row, rowIndex) => {
722
- const rowId = getRowId(row, rowIndex);
723
- const rowContext: DataGridRowContext<Row> = {
724
- ...slotContext,
725
- row,
726
- rowIndex,
727
- rowId,
728
- selected: resolvedSelectedRowIds.has(rowId),
729
- };
730
- if (renderRow) return renderRow(rowContext);
731
- return (
732
- <DataGridDefaultRow
733
- key={rowId}
734
- row={row}
735
- rowIndex={rowIndex}
736
- rowId={rowId}
737
- columns={columns}
738
- gridTemplateColumns={gridTemplateColumns}
739
- selection={selection}
740
- selected={rowContext.selected}
741
- rowClassName={
742
- typeof rowClassName === "function"
743
- ? rowClassName(row, rowIndex)
744
- : rowClassName
745
- }
746
- activeCell={resolvedActiveCell}
747
- setActiveCell={setActive}
748
- toggleRowSelection={toggleRowSelection}
749
- moveActiveCell={moveActiveCell}
750
- commitCell={commitCell}
751
- />
752
- );
807
+ onScroll={(event) => {
808
+ if (horizontalOverflowAffordance === "edges") {
809
+ updateOverflowEdges();
810
+ }
811
+ onScroll?.(event);
812
+ }}
813
+ >
814
+ <div className={cn("w-max min-w-full", contentClassName)}>
815
+ {renderHeader ? (
816
+ renderHeader(slotContext)
817
+ ) : (
818
+ <DataGridHeader
819
+ columns={columns}
820
+ gridTemplateColumns={gridTemplateColumns}
821
+ selection={selection}
822
+ rows={rows}
823
+ getRowId={getRowId}
824
+ selectedRowIds={resolvedSelectedRowIds}
825
+ onToggleAll={toggleAllRows}
826
+ onStartResize={startResize}
827
+ />
828
+ )}
829
+ {renderBody
830
+ ? renderBody(slotContext)
831
+ : loading
832
+ ? loadingRows({
833
+ count: loadingCount,
834
+ columns,
835
+ gridTemplateColumns,
836
+ selection,
753
837
  })
754
- : emptyState}
838
+ : rows.length > 0
839
+ ? rows.map((row, rowIndex) => {
840
+ const rowId = getRowId(row, rowIndex);
841
+ const rowContext: DataGridRowContext<Row> = {
842
+ ...slotContext,
843
+ row,
844
+ rowIndex,
845
+ rowId,
846
+ selected: resolvedSelectedRowIds.has(rowId),
847
+ };
848
+ if (renderRow) return renderRow(rowContext);
849
+ return (
850
+ <DataGridDefaultRow
851
+ key={rowId}
852
+ row={row}
853
+ rowIndex={rowIndex}
854
+ rowId={rowId}
855
+ columns={columns}
856
+ gridTemplateColumns={gridTemplateColumns}
857
+ selection={selection}
858
+ selected={rowContext.selected}
859
+ rowClassName={
860
+ typeof rowClassName === "function"
861
+ ? rowClassName(row, rowIndex)
862
+ : rowClassName
863
+ }
864
+ activeCell={resolvedActiveCell}
865
+ setActiveCell={setActive}
866
+ toggleRowSelection={toggleRowSelection}
867
+ moveActiveCell={moveActiveCell}
868
+ commitCell={commitCell}
869
+ />
870
+ );
871
+ })
872
+ : emptyState}
873
+ </div>
755
874
  {renderFooter ? renderFooter(slotContext) : null}
756
875
  </div>
876
+ {overflowEdges.start ? (
877
+ <div
878
+ aria-hidden="true"
879
+ data-data-grid-overflow-edge="start"
880
+ className="pointer-events-none absolute inset-y-0 start-0 w-8 bg-gradient-to-r from-background to-transparent rtl:bg-gradient-to-l"
881
+ />
882
+ ) : null}
883
+ {overflowEdges.end ? (
884
+ <div
885
+ aria-hidden="true"
886
+ data-data-grid-overflow-edge="end"
887
+ className="pointer-events-none absolute inset-y-0 end-0 w-8 bg-gradient-to-l from-background to-transparent rtl:bg-gradient-to-r"
888
+ />
889
+ ) : null}
757
890
  </div>
758
891
  </div>
759
892
  );
@@ -2,6 +2,7 @@ export {
2
2
  DataGrid,
3
3
  clampDataGridColumnWidth,
4
4
  dataGridColumnTemplate,
5
+ dataGridDistanceFromStart,
5
6
  type DataGridActiveCell,
6
7
  type DataGridCellContext,
7
8
  type DataGridColumn,
@@ -9,6 +10,7 @@ export {
9
10
  type DataGridDirection,
10
11
  type DataGridEditorContext,
11
12
  type DataGridProps,
13
+ type DataGridRtlScrollType,
12
14
  type DataGridRowContext,
13
15
  type DataGridSelectionMode,
14
16
  type DataGridSlotContext,