@agent-native/toolkit 0.15.1 → 0.16.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.
- package/README.md +26 -0
- package/agent-native.eject.json +16 -0
- package/dist/composer/ComposerPlusMenu.d.ts.map +1 -1
- package/dist/composer/ComposerPlusMenu.js +29 -19
- package/dist/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/composer/PromptComposer.d.ts +11 -1
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +2 -2
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts +30 -1
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +255 -145
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/composer/TiptapComposer.spec.js +33 -1
- package/dist/composer/TiptapComposer.spec.js.map +1 -1
- package/dist/composer/index.d.ts +1 -0
- package/dist/composer/index.d.ts.map +1 -1
- package/dist/composer/index.js +1 -0
- package/dist/composer/index.js.map +1 -1
- package/dist/composer/model-selection.d.ts +12 -0
- package/dist/composer/model-selection.d.ts.map +1 -0
- package/dist/composer/model-selection.js +31 -0
- package/dist/composer/model-selection.js.map +1 -0
- package/dist/composer/model-selection.spec.d.ts +2 -0
- package/dist/composer/model-selection.spec.d.ts.map +1 -0
- package/dist/composer/model-selection.spec.js +38 -0
- package/dist/composer/model-selection.spec.js.map +1 -0
- package/dist/data-grid/DataGrid.d.ts +92 -0
- package/dist/data-grid/DataGrid.d.ts.map +1 -0
- package/dist/data-grid/DataGrid.js +315 -0
- package/dist/data-grid/DataGrid.js.map +1 -0
- package/dist/data-grid/DataGrid.spec.d.ts +2 -0
- package/dist/data-grid/DataGrid.spec.d.ts.map +1 -0
- package/dist/data-grid/DataGrid.spec.js +134 -0
- package/dist/data-grid/DataGrid.spec.js.map +1 -0
- package/dist/data-grid/index.d.ts +2 -0
- package/dist/data-grid/index.d.ts.map +1 -0
- package/dist/data-grid/index.js +2 -0
- package/dist/data-grid/index.js.map +1 -0
- package/dist/sharing/SharePrimitives.d.ts +14 -3
- package/dist/sharing/SharePrimitives.d.ts.map +1 -1
- package/dist/sharing/SharePrimitives.js +11 -3
- package/dist/sharing/SharePrimitives.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -1
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/package.json +15 -1
- package/src/composer/ComposerPlusMenu.tsx +122 -65
- package/src/composer/PromptComposer.tsx +21 -0
- package/src/composer/TiptapComposer.spec.ts +46 -0
- package/src/composer/TiptapComposer.tsx +721 -349
- package/src/composer/index.ts +6 -0
- package/src/composer/model-selection.spec.ts +45 -0
- package/src/composer/model-selection.ts +51 -0
- package/src/data-grid/DataGrid.spec.tsx +243 -0
- package/src/data-grid/DataGrid.tsx +754 -0
- package/src/data-grid/index.ts +15 -0
- package/src/sharing/SharePrimitives.tsx +47 -8
- package/src/sharing/index.ts +4 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @vitest-environment happy-dom
|
|
3
|
+
import { act } from "react";
|
|
4
|
+
import { createRoot } from "react-dom/client";
|
|
5
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
6
|
+
import { DataGrid, dataGridColumnTemplate, } from "./index.js";
|
|
7
|
+
const columns = [
|
|
8
|
+
{
|
|
9
|
+
id: "name",
|
|
10
|
+
label: "Name",
|
|
11
|
+
width: 180,
|
|
12
|
+
getValue: (row) => row.name,
|
|
13
|
+
renderCell: ({ value }) => String(value ?? ""),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "status",
|
|
17
|
+
label: "Status",
|
|
18
|
+
width: 120,
|
|
19
|
+
getValue: (row) => row.status,
|
|
20
|
+
renderCell: ({ value }) => String(value ?? ""),
|
|
21
|
+
renderEditor: ({ value, onCommit }) => (_jsx("input", { "aria-label": "Status editor", defaultValue: String(value ?? ""), onKeyDown: (event) => {
|
|
22
|
+
if (event.key === "Enter")
|
|
23
|
+
onCommit(event.currentTarget.value);
|
|
24
|
+
} })),
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
const rows = [
|
|
28
|
+
{ id: "row-1", name: "First", status: "Open" },
|
|
29
|
+
{ id: "row-2", name: "Second", status: "Closed" },
|
|
30
|
+
];
|
|
31
|
+
describe("data-grid", () => {
|
|
32
|
+
it("builds a bounded template and includes the selection column only when requested", () => {
|
|
33
|
+
expect(dataGridColumnTemplate(columns, { name: 40 }, "none")).toBe("96px 120px");
|
|
34
|
+
expect(dataGridColumnTemplate(columns, { name: 220 }, "multiple")).toBe("40px 220px 120px");
|
|
35
|
+
});
|
|
36
|
+
describe("DataGrid", () => {
|
|
37
|
+
let container;
|
|
38
|
+
let root;
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
vi.stubGlobal("IS_REACT_ACT_ENVIRONMENT", true);
|
|
41
|
+
container = document.createElement("div");
|
|
42
|
+
document.body.appendChild(container);
|
|
43
|
+
root = createRoot(container);
|
|
44
|
+
});
|
|
45
|
+
afterEach(() => {
|
|
46
|
+
act(() => root.unmount());
|
|
47
|
+
container.remove();
|
|
48
|
+
vi.restoreAllMocks();
|
|
49
|
+
vi.unstubAllGlobals();
|
|
50
|
+
});
|
|
51
|
+
it("moves the active cell with arrows and commits an editor value", () => {
|
|
52
|
+
const onActiveCellChange = vi.fn();
|
|
53
|
+
const onCellCommit = vi.fn();
|
|
54
|
+
act(() => {
|
|
55
|
+
root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, onActiveCellChange: onActiveCellChange, onCellCommit: onCellCommit }));
|
|
56
|
+
});
|
|
57
|
+
const firstNameCell = container.querySelector('[data-data-grid-row-id="row-1"][data-data-grid-column-id="name"]');
|
|
58
|
+
expect(firstNameCell?.getAttribute("tabindex")).toBe("0");
|
|
59
|
+
act(() => {
|
|
60
|
+
firstNameCell?.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "ArrowRight" }));
|
|
61
|
+
});
|
|
62
|
+
expect(onActiveCellChange).toHaveBeenCalledWith({
|
|
63
|
+
rowId: "row-1",
|
|
64
|
+
columnId: "status",
|
|
65
|
+
editing: false,
|
|
66
|
+
});
|
|
67
|
+
const statusCell = container.querySelector('[data-data-grid-row-id="row-1"][data-data-grid-column-id="status"]');
|
|
68
|
+
act(() => {
|
|
69
|
+
statusCell?.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Enter" }));
|
|
70
|
+
});
|
|
71
|
+
expect(container.querySelector('input[aria-label="Status editor"]')).not.toBeNull();
|
|
72
|
+
const input = container.querySelector('input[aria-label="Status editor"]');
|
|
73
|
+
expect(input).not.toBeNull();
|
|
74
|
+
if (input) {
|
|
75
|
+
input.value = "In progress";
|
|
76
|
+
act(() => {
|
|
77
|
+
input.dispatchEvent(new KeyboardEvent("keydown", { bubbles: true, key: "Enter" }));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
expect(onCellCommit).toHaveBeenCalledWith({
|
|
81
|
+
row: rows[0],
|
|
82
|
+
rowIndex: 0,
|
|
83
|
+
column: columns[1],
|
|
84
|
+
previousValue: "Open",
|
|
85
|
+
value: "In progress",
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
it("supports controlled multi-row selection", () => {
|
|
89
|
+
const onSelectedRowIdsChange = vi.fn();
|
|
90
|
+
act(() => {
|
|
91
|
+
root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, selection: "multiple", onSelectedRowIdsChange: onSelectedRowIdsChange }));
|
|
92
|
+
});
|
|
93
|
+
const rowCheckbox = container.querySelector('[aria-label="Select row row-1"]');
|
|
94
|
+
act(() => rowCheckbox?.click());
|
|
95
|
+
expect(onSelectedRowIdsChange).toHaveBeenCalledTimes(1);
|
|
96
|
+
expect(Array.from(onSelectedRowIdsChange.mock.calls[0][0])).toEqual([
|
|
97
|
+
"row-1",
|
|
98
|
+
]);
|
|
99
|
+
});
|
|
100
|
+
it("reports pointer-based column resizing through the app callback", () => {
|
|
101
|
+
const onColumnWidthsChange = vi.fn();
|
|
102
|
+
act(() => {
|
|
103
|
+
root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, onColumnWidthsChange: onColumnWidthsChange }));
|
|
104
|
+
});
|
|
105
|
+
const resizeHandle = container.querySelector('[aria-label="Resize name column"]');
|
|
106
|
+
expect(resizeHandle).not.toBeNull();
|
|
107
|
+
act(() => {
|
|
108
|
+
resizeHandle?.dispatchEvent(new PointerEvent("pointerdown", {
|
|
109
|
+
bubbles: true,
|
|
110
|
+
button: 0,
|
|
111
|
+
clientX: 100,
|
|
112
|
+
}));
|
|
113
|
+
document.dispatchEvent(new PointerEvent("pointermove", {
|
|
114
|
+
bubbles: true,
|
|
115
|
+
clientX: 180,
|
|
116
|
+
}));
|
|
117
|
+
document.dispatchEvent(new PointerEvent("pointerup", { bubbles: true, clientX: 180 }));
|
|
118
|
+
});
|
|
119
|
+
expect(onColumnWidthsChange).toHaveBeenLastCalledWith({ name: 260 });
|
|
120
|
+
});
|
|
121
|
+
it("lets an app own the outer header and body while sharing the grid template", () => {
|
|
122
|
+
const renderHeader = vi.fn(({ gridTemplateColumns }) => (_jsx("div", { "data-testid": "custom-header", style: { gridTemplateColumns } })));
|
|
123
|
+
const renderBody = vi.fn(({ gridTemplateColumns }) => (_jsx("div", { "data-testid": "custom-body", style: { gridTemplateColumns } })));
|
|
124
|
+
act(() => {
|
|
125
|
+
root.render(_jsx(DataGrid, { rows: rows, columns: columns, getRowId: (row) => row.id, renderHeader: renderHeader, renderBody: renderBody }));
|
|
126
|
+
});
|
|
127
|
+
expect(container.querySelector("[data-testid=custom-header]")).not.toBeNull();
|
|
128
|
+
expect(container.querySelector("[data-testid=custom-body]")).not.toBeNull();
|
|
129
|
+
expect(renderHeader).toHaveBeenCalledWith(expect.objectContaining({ gridTemplateColumns: "180px 120px" }));
|
|
130
|
+
expect(renderBody).toHaveBeenCalledWith(expect.objectContaining({ rows, columns }));
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=DataGrid.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataGrid.spec.js","sourceRoot":"","sources":["../../src/data-grid/DataGrid.spec.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EACL,QAAQ,EACR,sBAAsB,GAEvB,MAAM,YAAY,CAAC;AAQpB,MAAM,OAAO,GAAmC;IAC9C;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;QAC3B,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;KAC/C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;QAC7B,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACrC,8BACa,eAAe,EAC1B,YAAY,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EACjC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;oBAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC,GACD,CACH;KACF;CACF,CAAC;AAEF,MAAM,IAAI,GAAmB;IAC3B,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;IAC9C,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;CAClD,CAAC;AAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAChE,YAAY,CACb,CAAC;QACF,MAAM,CAAC,sBAAsB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CACrE,kBAAkB,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,IAAI,SAAyB,CAAC;QAC9B,IAAI,IAAU,CAAC;QAEf,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,UAAU,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;YAChD,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1B,SAAS,CAAC,MAAM,EAAE,CAAC;YACnB,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAE7B,GAAG,CAAC,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,CACT,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EACzB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAC3C,kEAAkE,CACnE,CAAC;YACF,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE1D,GAAG,CAAC,GAAG,EAAE;gBACP,aAAa,EAAE,aAAa,CAC1B,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CACnE,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC;gBAC9C,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CACxC,oEAAoE,CACrE,CAAC;YACF,GAAG,CAAC,GAAG,EAAE;gBACP,UAAU,EAAE,aAAa,CACvB,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAC9D,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,CACJ,SAAS,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAC7D,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAEjB,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CACnC,mCAAmC,CACpC,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;gBAC5B,GAAG,CAAC,GAAG,EAAE;oBACP,KAAK,CAAC,aAAa,CACjB,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAC9D,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC;gBACxC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClB,aAAa,EAAE,MAAM;gBACrB,KAAK,EAAE,aAAa;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAEvC,GAAG,CAAC,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,CACT,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EACzB,SAAS,EAAC,UAAU,EACpB,sBAAsB,EAAE,sBAAsB,GAC9C,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CACzC,iCAAiC,CAClC,CAAC;YACF,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAClE,OAAO;aACR,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,oBAAoB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAErC,GAAG,CAAC,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,CACT,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EACzB,oBAAoB,EAAE,oBAAoB,GAC1C,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAC1C,mCAAmC,CACpC,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAEpC,GAAG,CAAC,GAAG,EAAE;gBACP,YAAY,EAAE,aAAa,CACzB,IAAI,YAAY,CAAC,aAAa,EAAE;oBAC9B,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,GAAG;iBACb,CAAC,CACH,CAAC;gBACF,QAAQ,CAAC,aAAa,CACpB,IAAI,YAAY,CAAC,aAAa,EAAE;oBAC9B,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,GAAG;iBACb,CAAC,CACH,CAAC;gBACF,QAAQ,CAAC,aAAa,CACpB,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAC/D,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,oBAAoB,CAAC,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CACtD,6BAAiB,eAAe,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,GAAI,CACpE,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CACpD,6BAAiB,aAAa,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,GAAI,CAClE,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,EAAE;gBACP,IAAI,CAAC,MAAM,CACT,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EACzB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACtB,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,CACJ,SAAS,CAAC,aAAa,CAAC,6BAA6B,CAAC,CACvD,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,CACJ,SAAS,CAAC,aAAa,CAAC,2BAA2B,CAAC,CACrD,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,CAChE,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +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";
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"}
|
|
@@ -17,15 +17,26 @@ export interface ShareCopyRowProps {
|
|
|
17
17
|
}
|
|
18
18
|
/** Compact copy-only row. The underlying URL is deliberately not rendered. */
|
|
19
19
|
export declare function ShareCopyRow({ value, label, description, disabled, className, copyLabel, copiedLabel, onCopy, }: ShareCopyRowProps): import("react").JSX.Element;
|
|
20
|
-
export interface
|
|
20
|
+
export interface ShareDisclosureSectionProps {
|
|
21
21
|
children: ReactNode;
|
|
22
|
-
label
|
|
22
|
+
label: ReactNode;
|
|
23
|
+
fallbackLabel?: string;
|
|
23
24
|
defaultOpen?: boolean;
|
|
24
25
|
open?: boolean;
|
|
25
26
|
onOpenChange?: (open: boolean) => void;
|
|
26
27
|
className?: string;
|
|
27
28
|
contentClassName?: string;
|
|
28
29
|
}
|
|
30
|
+
/** Shared expandable boundary for optional share-access details. */
|
|
31
|
+
export declare function ShareDisclosureSection({ children, label, fallbackLabel, defaultOpen, open, onOpenChange, className, contentClassName, }: ShareDisclosureSectionProps): import("react").JSX.Element;
|
|
32
|
+
export type ShareAgentsSectionProps = Omit<ShareDisclosureSectionProps, "label" | "fallbackLabel"> & {
|
|
33
|
+
label?: ReactNode;
|
|
34
|
+
};
|
|
29
35
|
/** Shared expandable boundary for agent-readable sharing details. */
|
|
30
|
-
export declare function ShareAgentsSection({
|
|
36
|
+
export declare function ShareAgentsSection({ label, ...props }: ShareAgentsSectionProps): import("react").JSX.Element;
|
|
37
|
+
export type SharePeopleSectionProps = Omit<ShareDisclosureSectionProps, "label" | "fallbackLabel"> & {
|
|
38
|
+
label?: ReactNode;
|
|
39
|
+
};
|
|
40
|
+
/** Shared expandable boundary for individual people access. */
|
|
41
|
+
export declare function SharePeopleSection({ label, ...props }: SharePeopleSectionProps): import("react").JSX.Element;
|
|
31
42
|
//# sourceMappingURL=SharePrimitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharePrimitives.d.ts","sourceRoot":"","sources":["../../src/sharing/SharePrimitives.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,iBAAiB,EACf,YAAY,GACZ,eAAe,GACf,eAAe,GACf,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,OAAO,CACV;IACC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,kEAAkE;AAClE,eAAO,MAAM,YAAY,iHAmBxB,CAAC;AAGF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;CACrE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,SAAS,EACT,SAAkB,EAClB,WAAsB,EACtB,MAAM,GACP,EAAE,iBAAiB,+BAyCnB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"SharePrimitives.d.ts","sourceRoot":"","sources":["../../src/sharing/SharePrimitives.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGhF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,iBAAiB,EACf,YAAY,GACZ,eAAe,GACf,eAAe,GACf,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,OAAO,CACV;IACC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,kEAAkE;AAClE,eAAO,MAAM,YAAY,iHAmBxB,CAAC;AAGF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;CACrE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,SAAS,EACT,SAAkB,EAClB,WAAsB,EACtB,MAAM,GACP,EAAE,iBAAiB,+BAyCnB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,KAAK,EACL,aAA+B,EAC/B,WAAmB,EACnB,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,GACjB,EAAE,2BAA2B,+BA+C7B;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,2BAA2B,EAC3B,OAAO,GAAG,eAAe,CAC1B,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,EACjC,KAA2B,EAC3B,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAQzB;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,2BAA2B,EAC3B,OAAO,GAAG,eAAe,CAC1B,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,EACjC,KAA4B,EAC5B,GAAG,KAAK,EACT,EAAE,uBAAuB,+BAQzB"}
|
|
@@ -30,11 +30,11 @@ export function ShareCopyRow({ value, label, description, disabled = false, clas
|
|
|
30
30
|
};
|
|
31
31
|
return (_jsxs("div", { className: cn("flex items-center justify-between gap-3", className), children: [_jsxs("div", { className: "min-w-0", children: [label ? _jsx("div", { className: "text-sm font-medium", children: label }) : null, description ? (_jsx("div", { className: "text-xs text-muted-foreground", children: description })) : null] }), _jsx(ActionButton, { type: "button", emphasis: "outline", size: "compact", disabled: disabled, "aria-label": copied ? String(copiedLabel) : String(copyLabel), onPress: () => void handleCopy(), className: "h-9 shrink-0", children: copied ? copiedLabel : copyLabel })] }));
|
|
32
32
|
}
|
|
33
|
-
/** Shared expandable boundary for
|
|
34
|
-
export function
|
|
33
|
+
/** Shared expandable boundary for optional share-access details. */
|
|
34
|
+
export function ShareDisclosureSection({ children, label, fallbackLabel = "Share details", defaultOpen = false, open, onOpenChange, className, contentClassName, }) {
|
|
35
35
|
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
36
36
|
const isOpen = open ?? internalOpen;
|
|
37
|
-
const accessibleLabel = typeof label === "string" ? label :
|
|
37
|
+
const accessibleLabel = typeof label === "string" ? label : fallbackLabel;
|
|
38
38
|
const handleOpenChange = (nextOpen) => {
|
|
39
39
|
if (open === undefined)
|
|
40
40
|
setInternalOpen(nextOpen);
|
|
@@ -42,4 +42,12 @@ export function ShareAgentsSection({ children, label = "Share with agents", defa
|
|
|
42
42
|
};
|
|
43
43
|
return (_jsxs(Collapsible, { open: isOpen, onOpenChange: handleOpenChange, className: cn("overflow-hidden rounded-md border border-border", className), children: [_jsx(CollapsibleTrigger, { asChild: true, children: _jsx(ShareTrigger, { label: _jsxs(_Fragment, { children: [_jsx("span", { className: "min-w-0 truncate", children: label }), _jsx(IconChevronDown, { "aria-hidden": "true", className: cn("size-4 shrink-0 text-muted-foreground transition-transform", isOpen && "rotate-180") })] }), emphasis: "ghost", size: "default", "aria-label": accessibleLabel, title: accessibleLabel, "aria-expanded": isOpen, className: "flex min-h-10 w-full items-center justify-between gap-3 px-3 py-2 text-left text-sm font-medium hover:bg-muted/50 focus-visible:ring-inset" }) }), _jsx(CollapsibleContent, { className: cn("border-t border-border px-3 py-3", contentClassName), children: children })] }));
|
|
44
44
|
}
|
|
45
|
+
/** Shared expandable boundary for agent-readable sharing details. */
|
|
46
|
+
export function ShareAgentsSection({ label = "Share with agents", ...props }) {
|
|
47
|
+
return (_jsx(ShareDisclosureSection, { ...props, label: label, fallbackLabel: "Share with agents" }));
|
|
48
|
+
}
|
|
49
|
+
/** Shared expandable boundary for individual people access. */
|
|
50
|
+
export function SharePeopleSection({ label = "People with access", ...props }) {
|
|
51
|
+
return (_jsx(ShareDisclosureSection, { ...props, label: label, fallbackLabel: "People with access" }));
|
|
52
|
+
}
|
|
45
53
|
//# sourceMappingURL=SharePrimitives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharePrimitives.js","sourceRoot":"","sources":["../../src/sharing/SharePrimitives.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SharePrimitives.js","sourceRoot":"","sources":["../../src/sharing/SharePrimitives.tsx"],"names":[],"mappings":"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"}
|
package/dist/sharing/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ShareAgentsSection, type ShareAgentsSectionProps, ShareCopyRow, type ShareCopyRowProps, ShareTrigger, type ShareTriggerProps, } from "./SharePrimitives.js";
|
|
1
|
+
export { ShareAgentsSection, type ShareAgentsSectionProps, ShareCopyRow, type ShareCopyRowProps, ShareDisclosureSection, type ShareDisclosureSectionProps, SharePeopleSection, type SharePeopleSectionProps, ShareTrigger, type ShareTriggerProps, } from "./SharePrimitives.js";
|
|
2
2
|
export { VisibilityBadge, type VisibilityBadgeProps, } from "./VisibilityBadge.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,YAAY,EACZ,KAAK,iBAAiB,EACtB,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,YAAY,EACZ,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
package/dist/sharing/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ShareAgentsSection, ShareCopyRow, ShareTrigger, } from "./SharePrimitives.js";
|
|
1
|
+
export { ShareAgentsSection, ShareCopyRow, ShareDisclosureSection, SharePeopleSection, ShareTrigger, } from "./SharePrimitives.js";
|
|
2
2
|
export { VisibilityBadge, } from "./VisibilityBadge.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,YAAY,EAEZ,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAElB,YAAY,EAEZ,sBAAsB,EAEtB,kBAAkB,EAElB,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.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": {
|
|
@@ -75,6 +75,20 @@
|
|
|
75
75
|
"import": "./dist/dashboard/*.js",
|
|
76
76
|
"default": "./dist/dashboard/*.js"
|
|
77
77
|
},
|
|
78
|
+
"./data-grid": {
|
|
79
|
+
"types": "./dist/data-grid/index.d.ts",
|
|
80
|
+
"browser": "./dist/data-grid/index.js",
|
|
81
|
+
"development": "./dist/data-grid/index.js",
|
|
82
|
+
"import": "./dist/data-grid/index.js",
|
|
83
|
+
"default": "./dist/data-grid/index.js"
|
|
84
|
+
},
|
|
85
|
+
"./data-grid/*": {
|
|
86
|
+
"types": "./dist/data-grid/*.d.ts",
|
|
87
|
+
"browser": "./dist/data-grid/*.js",
|
|
88
|
+
"development": "./dist/data-grid/*.js",
|
|
89
|
+
"import": "./dist/data-grid/*.js",
|
|
90
|
+
"default": "./dist/data-grid/*.js"
|
|
91
|
+
},
|
|
78
92
|
"./chat-history": {
|
|
79
93
|
"types": "./dist/chat-history/index.d.ts",
|
|
80
94
|
"browser": "./dist/chat-history/index.js",
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
IconLoader2,
|
|
12
12
|
IconArrowLeft,
|
|
13
13
|
IconX,
|
|
14
|
+
IconHelpCircle,
|
|
14
15
|
} from "@tabler/icons-react";
|
|
15
16
|
import React, {
|
|
16
17
|
useState,
|
|
@@ -196,6 +197,39 @@ function formatAttachmentError(error: unknown, fallback: string): string {
|
|
|
196
197
|
return error instanceof Error ? error.message : fallback;
|
|
197
198
|
}
|
|
198
199
|
|
|
200
|
+
function MenuItemHelp({
|
|
201
|
+
label,
|
|
202
|
+
description,
|
|
203
|
+
}: {
|
|
204
|
+
label: string;
|
|
205
|
+
description?: string;
|
|
206
|
+
}) {
|
|
207
|
+
const normalizedDescription = description?.trim();
|
|
208
|
+
if (!normalizedDescription) return null;
|
|
209
|
+
return (
|
|
210
|
+
<Tooltip>
|
|
211
|
+
<TooltipTrigger asChild>
|
|
212
|
+
<span
|
|
213
|
+
role="img"
|
|
214
|
+
tabIndex={0}
|
|
215
|
+
aria-label={`${label}: ${normalizedDescription}`}
|
|
216
|
+
onClick={(event) => event.stopPropagation()}
|
|
217
|
+
className="flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
|
218
|
+
>
|
|
219
|
+
<IconHelpCircle
|
|
220
|
+
aria-hidden="true"
|
|
221
|
+
className="size-3"
|
|
222
|
+
strokeWidth={1.8}
|
|
223
|
+
/>
|
|
224
|
+
</span>
|
|
225
|
+
</TooltipTrigger>
|
|
226
|
+
<TooltipContent side="right" className="max-w-xs">
|
|
227
|
+
{normalizedDescription}
|
|
228
|
+
</TooltipContent>
|
|
229
|
+
</Tooltip>
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
199
233
|
function UploadOnlyAttachButton({
|
|
200
234
|
onAttachmentError,
|
|
201
235
|
}: Pick<ComposerPlusMenuProps, "onAttachmentError">) {
|
|
@@ -612,7 +646,11 @@ function ComposerPlusMenuFull({
|
|
|
612
646
|
return (
|
|
613
647
|
<div
|
|
614
648
|
key={item.label}
|
|
615
|
-
className={cn(
|
|
649
|
+
className={cn(
|
|
650
|
+
"relative flex items-center hover:bg-accent/50",
|
|
651
|
+
isSkill && "group/skill",
|
|
652
|
+
isSkill && skillFlyoutOpen && "bg-accent/50",
|
|
653
|
+
)}
|
|
616
654
|
onMouseEnter={(e) => {
|
|
617
655
|
if (isSkill) {
|
|
618
656
|
openSkillFlyout(e.currentTarget);
|
|
@@ -640,25 +678,25 @@ function ComposerPlusMenuFull({
|
|
|
640
678
|
type="button"
|
|
641
679
|
onClick={item.action}
|
|
642
680
|
className={cn(
|
|
643
|
-
"flex w-
|
|
644
|
-
isSkill && skillFlyoutOpen && "bg-accent/50",
|
|
681
|
+
"flex min-w-0 flex-1 items-center gap-2.5 px-3 py-2 text-start",
|
|
645
682
|
)}
|
|
646
683
|
>
|
|
647
684
|
<span className="text-muted-foreground">{item.icon}</span>
|
|
648
|
-
<
|
|
649
|
-
<
|
|
685
|
+
<span className="flex min-w-0 items-center gap-0.5">
|
|
686
|
+
<span className="min-w-0 truncate text-[12px] font-medium text-foreground">
|
|
650
687
|
{item.label}
|
|
651
|
-
</div>
|
|
652
|
-
<div className="mt-0.5 text-[10px] text-muted-foreground/60">
|
|
653
|
-
{item.desc}
|
|
654
|
-
</div>
|
|
655
|
-
</div>
|
|
656
|
-
{isSkill && (
|
|
657
|
-
<span className="ms-auto text-muted-foreground/60">
|
|
658
|
-
›
|
|
659
688
|
</span>
|
|
660
|
-
|
|
689
|
+
<MenuItemHelp
|
|
690
|
+
label={item.label}
|
|
691
|
+
description={item.desc}
|
|
692
|
+
/>
|
|
693
|
+
</span>
|
|
661
694
|
</button>
|
|
695
|
+
{isSkill && (
|
|
696
|
+
<span className="me-3 ms-auto text-muted-foreground/60">
|
|
697
|
+
›
|
|
698
|
+
</span>
|
|
699
|
+
)}
|
|
662
700
|
{isSkill && skillFlyoutOpen && (
|
|
663
701
|
<div
|
|
664
702
|
role="menu"
|
|
@@ -671,57 +709,76 @@ function ComposerPlusMenuFull({
|
|
|
671
709
|
: "right-full mr-1",
|
|
672
710
|
)}
|
|
673
711
|
>
|
|
674
|
-
<
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
<
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
<
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
"
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
>
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
<
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
712
|
+
<div className="flex items-center hover:bg-accent/50">
|
|
713
|
+
<button
|
|
714
|
+
type="button"
|
|
715
|
+
onClick={() => {
|
|
716
|
+
onSelectMode?.("skill");
|
|
717
|
+
setSkillFlyoutOpen(false);
|
|
718
|
+
setOpen(false);
|
|
719
|
+
}}
|
|
720
|
+
className="flex min-w-0 flex-1 items-center gap-2.5 px-3 py-2 text-start"
|
|
721
|
+
>
|
|
722
|
+
<span className="text-muted-foreground">
|
|
723
|
+
<IconBulb className="h-3.5 w-3.5" />
|
|
724
|
+
</span>
|
|
725
|
+
<span className="flex min-w-0 items-center gap-0.5">
|
|
726
|
+
<span className="min-w-0 truncate text-[12px] font-medium text-foreground">
|
|
727
|
+
{t("agentChat.composer.skill.createNew", {
|
|
728
|
+
defaultValue: "Create new skill",
|
|
729
|
+
})}
|
|
730
|
+
</span>
|
|
731
|
+
<MenuItemHelp
|
|
732
|
+
label={t("agentChat.composer.skill.createNew", {
|
|
733
|
+
defaultValue: "Create new skill",
|
|
734
|
+
})}
|
|
735
|
+
description={t(
|
|
736
|
+
"agentChat.composer.skill.createDescription",
|
|
737
|
+
{
|
|
738
|
+
defaultValue:
|
|
739
|
+
"Describe a skill and let the agent draft it",
|
|
740
|
+
},
|
|
741
|
+
)}
|
|
742
|
+
/>
|
|
743
|
+
</span>
|
|
744
|
+
</button>
|
|
745
|
+
</div>
|
|
746
|
+
<div className="flex items-center hover:bg-accent/50">
|
|
747
|
+
<button
|
|
748
|
+
type="button"
|
|
749
|
+
onClick={() => {
|
|
750
|
+
setSkillFlyoutOpen(false);
|
|
751
|
+
skillFileInputRef.current?.click();
|
|
752
|
+
}}
|
|
753
|
+
className="flex min-w-0 flex-1 items-center gap-2.5 px-3 py-2 text-start"
|
|
754
|
+
>
|
|
755
|
+
<span className="text-muted-foreground">
|
|
756
|
+
<IconUpload className="h-3.5 w-3.5" />
|
|
757
|
+
</span>
|
|
758
|
+
<span className="flex min-w-0 items-center gap-0.5">
|
|
759
|
+
<span className="min-w-0 truncate text-[12px] font-medium text-foreground">
|
|
760
|
+
{t("agentChat.composer.skill.uploadFile", {
|
|
761
|
+
defaultValue: "Upload skill file",
|
|
762
|
+
})}
|
|
763
|
+
</span>
|
|
764
|
+
<MenuItemHelp
|
|
765
|
+
label={t(
|
|
766
|
+
"agentChat.composer.skill.uploadFile",
|
|
767
|
+
{
|
|
768
|
+
defaultValue: "Upload skill file",
|
|
769
|
+
},
|
|
770
|
+
)}
|
|
771
|
+
description={t(
|
|
772
|
+
"agentChat.composer.skill.uploadDescription",
|
|
773
|
+
{
|
|
774
|
+
defaultValue:
|
|
775
|
+
"Import an existing SKILL.md file",
|
|
776
|
+
},
|
|
777
|
+
)}
|
|
778
|
+
/>
|
|
779
|
+
</span>
|
|
780
|
+
</button>
|
|
781
|
+
</div>
|
|
725
782
|
</div>
|
|
726
783
|
)}
|
|
727
784
|
</div>
|
|
@@ -47,6 +47,7 @@ import {
|
|
|
47
47
|
import {
|
|
48
48
|
DEFAULT_VOICE_DICTATION_ENABLED,
|
|
49
49
|
TiptapComposer,
|
|
50
|
+
type ComposerAgentOption,
|
|
50
51
|
type ComposerSubmitIntent,
|
|
51
52
|
type TiptapComposerHandle,
|
|
52
53
|
type TiptapComposerSubmitOptions,
|
|
@@ -99,6 +100,8 @@ export interface PromptComposerProps {
|
|
|
99
100
|
preserveDraftOnSubmit?: boolean;
|
|
100
101
|
/** Show the model selector (default: true). */
|
|
101
102
|
showModelSelector?: boolean;
|
|
103
|
+
/** Controlled open state for hosts that resize around the model picker. */
|
|
104
|
+
modelSelectorOpen?: boolean;
|
|
102
105
|
/** Show the legacy provider-level Auto model option (default: true). */
|
|
103
106
|
showAutoModelOption?: boolean;
|
|
104
107
|
/** Show the voice dictation button. Defaults to DEFAULT_VOICE_DICTATION_ENABLED. */
|
|
@@ -149,6 +152,14 @@ export interface PromptComposerProps {
|
|
|
149
152
|
selectedEffort?: ReasoningEffort;
|
|
150
153
|
onModelChange?: (model: string, engine: string) => void;
|
|
151
154
|
onEffortChange?: (effort: ReasoningEffort) => void;
|
|
155
|
+
/** Local or hosted agent runtimes shown above the model list. */
|
|
156
|
+
availableAgents?: ComposerAgentOption[];
|
|
157
|
+
/** Selected agent runtime identifier. */
|
|
158
|
+
selectedAgent?: string;
|
|
159
|
+
/** Callback when the user picks an agent runtime. */
|
|
160
|
+
onAgentChange?: (agent: string) => void;
|
|
161
|
+
/** Called when the shared model picker opens or closes. */
|
|
162
|
+
onModelSelectorOpenChange?: (open: boolean) => void;
|
|
152
163
|
/**
|
|
153
164
|
* Enable server-backed model/provider status checks. Defaults off when the
|
|
154
165
|
* host supplies model state and callbacks, otherwise on.
|
|
@@ -490,6 +501,7 @@ function PromptComposerInner({
|
|
|
490
501
|
draftScope,
|
|
491
502
|
preserveDraftOnSubmit = false,
|
|
492
503
|
showModelSelector = true,
|
|
504
|
+
modelSelectorOpen,
|
|
493
505
|
showAutoModelOption = true,
|
|
494
506
|
voiceEnabled = DEFAULT_VOICE_DICTATION_ENABLED,
|
|
495
507
|
attachmentsEnabled = true,
|
|
@@ -515,6 +527,10 @@ function PromptComposerInner({
|
|
|
515
527
|
selectedEffort,
|
|
516
528
|
onModelChange,
|
|
517
529
|
onEffortChange,
|
|
530
|
+
availableAgents,
|
|
531
|
+
selectedAgent,
|
|
532
|
+
onAgentChange,
|
|
533
|
+
onModelSelectorOpenChange,
|
|
518
534
|
modelStatusChecksEnabled,
|
|
519
535
|
onTextChange,
|
|
520
536
|
onConnectProvider,
|
|
@@ -687,12 +703,17 @@ function PromptComposerInner({
|
|
|
687
703
|
onTextChange={onTextChange}
|
|
688
704
|
draftScope={draftScope}
|
|
689
705
|
selectedModel={composerModel}
|
|
706
|
+
modelSelectorOpen={modelSelectorOpen}
|
|
690
707
|
selectedEffort={composerEffort}
|
|
691
708
|
availableModels={composerModelGroups}
|
|
709
|
+
availableAgents={availableAgents}
|
|
710
|
+
selectedAgent={selectedAgent}
|
|
692
711
|
showAutoModelOption={showAutoModelOption}
|
|
693
712
|
modelListLoading={composerModelListLoading}
|
|
694
713
|
onModelChange={handleModelChange}
|
|
695
714
|
onEffortChange={handleEffortChange}
|
|
715
|
+
onAgentChange={onAgentChange}
|
|
716
|
+
onModelSelectorOpenChange={onModelSelectorOpenChange}
|
|
696
717
|
providerConnectStatusEnabled={resolvedModelStatusChecksEnabled}
|
|
697
718
|
onConnectProvider={onConnectProvider}
|
|
698
719
|
onConnectLocalRuntime={onConnectLocalRuntime}
|