@agent-native/toolkit 0.8.3 → 0.9.0

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.
Files changed (53) hide show
  1. package/README.md +30 -0
  2. package/agent-native.eject.json +33 -0
  3. package/dist/dashboard/DataTable.d.ts +20 -0
  4. package/dist/dashboard/DataTable.d.ts.map +1 -0
  5. package/dist/dashboard/DataTable.js +87 -0
  6. package/dist/dashboard/DataTable.js.map +1 -0
  7. package/dist/dashboard/DateRangePicker.d.ts +15 -0
  8. package/dist/dashboard/DateRangePicker.d.ts.map +1 -0
  9. package/dist/dashboard/DateRangePicker.js +15 -0
  10. package/dist/dashboard/DateRangePicker.js.map +1 -0
  11. package/dist/dashboard/GenericChartPanel.d.ts +57 -0
  12. package/dist/dashboard/GenericChartPanel.d.ts.map +1 -0
  13. package/dist/dashboard/GenericChartPanel.js +119 -0
  14. package/dist/dashboard/GenericChartPanel.js.map +1 -0
  15. package/dist/dashboard/GenericChartPanel.spec.d.ts +2 -0
  16. package/dist/dashboard/GenericChartPanel.spec.d.ts.map +1 -0
  17. package/dist/dashboard/GenericChartPanel.spec.js +41 -0
  18. package/dist/dashboard/GenericChartPanel.spec.js.map +1 -0
  19. package/dist/dashboard/MetricCard.d.ts +14 -0
  20. package/dist/dashboard/MetricCard.d.ts.map +1 -0
  21. package/dist/dashboard/MetricCard.js +10 -0
  22. package/dist/dashboard/MetricCard.js.map +1 -0
  23. package/dist/dashboard/StatsCard.d.ts +16 -0
  24. package/dist/dashboard/StatsCard.d.ts.map +1 -0
  25. package/dist/dashboard/StatsCard.js +8 -0
  26. package/dist/dashboard/StatsCard.js.map +1 -0
  27. package/dist/dashboard/dashboard-layout.d.ts +49 -0
  28. package/dist/dashboard/dashboard-layout.d.ts.map +1 -0
  29. package/dist/dashboard/dashboard-layout.js +231 -0
  30. package/dist/dashboard/dashboard-layout.js.map +1 -0
  31. package/dist/dashboard/dashboard-layout.spec.d.ts +2 -0
  32. package/dist/dashboard/dashboard-layout.spec.d.ts.map +1 -0
  33. package/dist/dashboard/dashboard-layout.spec.js +52 -0
  34. package/dist/dashboard/dashboard-layout.spec.js.map +1 -0
  35. package/dist/dashboard/index.d.ts +7 -0
  36. package/dist/dashboard/index.d.ts.map +1 -0
  37. package/dist/dashboard/index.js +7 -0
  38. package/dist/dashboard/index.js.map +1 -0
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -0
  42. package/dist/index.js.map +1 -1
  43. package/package.json +15 -1
  44. package/src/dashboard/DataTable.tsx +273 -0
  45. package/src/dashboard/DateRangePicker.tsx +57 -0
  46. package/src/dashboard/GenericChartPanel.spec.tsx +53 -0
  47. package/src/dashboard/GenericChartPanel.tsx +461 -0
  48. package/src/dashboard/MetricCard.tsx +54 -0
  49. package/src/dashboard/StatsCard.tsx +49 -0
  50. package/src/dashboard/dashboard-layout.spec.ts +79 -0
  51. package/src/dashboard/dashboard-layout.ts +329 -0
  52. package/src/dashboard/index.ts +6 -0
  53. package/src/index.ts +1 -0
@@ -0,0 +1,49 @@
1
+ export declare const MIN_DASHBOARD_COLUMNS = 1;
2
+ export declare const MAX_DASHBOARD_COLUMNS = 6;
3
+ export declare const DEFAULT_DASHBOARD_COLUMNS = 2;
4
+ export interface DashboardLayoutPanel {
5
+ id: string;
6
+ width?: number;
7
+ columns?: number;
8
+ }
9
+ export type DashboardPanelRow<TPanel extends DashboardLayoutPanel> = {
10
+ key: string;
11
+ panels: TPanel[];
12
+ };
13
+ export type DashboardPanelGroup<TPanel extends DashboardLayoutPanel> = {
14
+ key: string;
15
+ section: TPanel | null;
16
+ panels: TPanel[];
17
+ rows: DashboardPanelRow<TPanel>[];
18
+ columns: number;
19
+ };
20
+ export type DashboardDropSlot = {
21
+ type: "row";
22
+ groupKey: string;
23
+ rowIndex: number;
24
+ } | {
25
+ type: "column";
26
+ groupKey: string;
27
+ rowIndex: number;
28
+ columnIndex: number;
29
+ };
30
+ export type DashboardColumnExpansion = {
31
+ columns: number;
32
+ sectionPanelId: string | null;
33
+ };
34
+ export type DashboardLayoutOptions<TPanel extends DashboardLayoutPanel> = {
35
+ isSection?: (panel: TPanel) => boolean;
36
+ };
37
+ export declare function clampDashboardColumns(value: unknown): number;
38
+ export declare function clampPanelWidth(value: unknown, gridColumns: number): number;
39
+ export declare function rebalanceRowWidths<TPanel extends DashboardLayoutPanel>(panels: TPanel[], columns: number): TPanel[];
40
+ export declare function buildDashboardRows<TPanel extends DashboardLayoutPanel>(panels: TPanel[], columns: number): DashboardPanelRow<TPanel>[];
41
+ export declare function buildDashboardPanelGroups<TPanel extends DashboardLayoutPanel>(panels: TPanel[], dashboardColumns: number, { isSection }?: DashboardLayoutOptions<TPanel>): DashboardPanelGroup<TPanel>[];
42
+ export declare function removePanelFromLayout<TPanel extends DashboardLayoutPanel>(panels: TPanel[], panelId: string, dashboardColumns: number, options?: DashboardLayoutOptions<TPanel>): TPanel[];
43
+ export declare function dropSlotId(slot: DashboardDropSlot): string;
44
+ export declare function readDropSlot(value: unknown): DashboardDropSlot | null;
45
+ export declare function sameDropSlot(a: DashboardDropSlot | null, b: DashboardDropSlot): boolean;
46
+ export declare function columnExpansionForDropSlot<TPanel extends DashboardLayoutPanel>(groups: DashboardPanelGroup<TPanel>[], panelId: string, slot: DashboardDropSlot): DashboardColumnExpansion | null;
47
+ /** Moves a panel by visible row/column slot and rebalances persisted widths. */
48
+ export declare function movePanelToDropSlot<TPanel extends DashboardLayoutPanel>(panels: TPanel[], panelId: string, slot: DashboardDropSlot, dashboardColumns: number, options?: DashboardLayoutOptions<TPanel>): TPanel[];
49
+ //# sourceMappingURL=dashboard-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-layout.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboard-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ export const MIN_DASHBOARD_COLUMNS = 1;
2
+ export const MAX_DASHBOARD_COLUMNS = 6;
3
+ export const DEFAULT_DASHBOARD_COLUMNS = 2;
4
+ export function clampDashboardColumns(value) {
5
+ if (typeof value !== "number" || !Number.isFinite(value))
6
+ return DEFAULT_DASHBOARD_COLUMNS;
7
+ return Math.min(MAX_DASHBOARD_COLUMNS, Math.max(MIN_DASHBOARD_COLUMNS, Math.floor(value)));
8
+ }
9
+ export function clampPanelWidth(value, gridColumns) {
10
+ if (typeof value !== "number" || !Number.isFinite(value))
11
+ return 1;
12
+ return Math.min(clampDashboardColumns(gridColumns), Math.max(1, Math.floor(value)));
13
+ }
14
+ export function rebalanceRowWidths(panels, columns) {
15
+ if (panels.length === 0)
16
+ return [];
17
+ const safeColumns = clampDashboardColumns(columns);
18
+ const base = Math.max(1, Math.floor(safeColumns / panels.length));
19
+ const remainder = safeColumns % panels.length;
20
+ return panels.map((panel, index) => ({
21
+ ...panel,
22
+ width: base + (index < remainder ? 1 : 0),
23
+ }));
24
+ }
25
+ export function buildDashboardRows(panels, columns) {
26
+ const safeColumns = clampDashboardColumns(columns);
27
+ const rows = [];
28
+ let current = [];
29
+ let usedColumns = 0;
30
+ const push = () => {
31
+ if (!current.length)
32
+ return;
33
+ rows.push({
34
+ key: current.map((panel) => panel.id).join(":") || `empty-${rows.length}`,
35
+ panels: current,
36
+ });
37
+ current = [];
38
+ usedColumns = 0;
39
+ };
40
+ for (const panel of panels) {
41
+ const width = clampPanelWidth(panel.width, safeColumns);
42
+ if (current.length &&
43
+ (usedColumns + width > safeColumns || current.length >= safeColumns))
44
+ push();
45
+ current.push(panel);
46
+ usedColumns += width;
47
+ if (usedColumns >= safeColumns || current.length >= safeColumns)
48
+ push();
49
+ }
50
+ push();
51
+ return rows;
52
+ }
53
+ export function buildDashboardPanelGroups(panels, dashboardColumns, { isSection = () => false } = {}) {
54
+ const defaultColumns = clampDashboardColumns(dashboardColumns);
55
+ const groups = [];
56
+ let current = {
57
+ key: "intro",
58
+ section: null,
59
+ panels: [],
60
+ columns: defaultColumns,
61
+ };
62
+ const push = () => {
63
+ if (!current.section && !current.panels.length)
64
+ return;
65
+ groups.push({
66
+ ...current,
67
+ rows: buildDashboardRows(current.panels, current.columns),
68
+ });
69
+ };
70
+ for (const panel of panels) {
71
+ if (isSection(panel)) {
72
+ push();
73
+ current = {
74
+ key: panel.id,
75
+ section: panel,
76
+ panels: [],
77
+ columns: clampDashboardColumns(panel.columns ?? defaultColumns),
78
+ };
79
+ }
80
+ else {
81
+ current.panels.push(panel);
82
+ }
83
+ }
84
+ push();
85
+ return groups;
86
+ }
87
+ function flattenGroups(groups) {
88
+ return groups.flatMap((group) => [
89
+ ...(group.section ? [group.section] : []),
90
+ ...group.rows.flatMap((row) => rebalanceRowWidths(row.panels, group.columns)),
91
+ ]);
92
+ }
93
+ export function removePanelFromLayout(panels, panelId, dashboardColumns, options) {
94
+ const groups = buildDashboardPanelGroups(panels, dashboardColumns, options);
95
+ return flattenGroups(groups
96
+ .map((group) => ({
97
+ ...group,
98
+ section: group.section?.id === panelId ? null : group.section,
99
+ rows: group.rows
100
+ .map((row) => ({
101
+ ...row,
102
+ panels: row.panels.filter((panel) => panel.id !== panelId),
103
+ }))
104
+ .filter((row) => row.panels.length),
105
+ }))
106
+ .filter((group) => group.section || group.rows.length));
107
+ }
108
+ export function dropSlotId(slot) {
109
+ return slot.type === "row"
110
+ ? `dashboard-drop:row:${slot.groupKey}:${slot.rowIndex}`
111
+ : `dashboard-drop:column:${slot.groupKey}:${slot.rowIndex}:${slot.columnIndex}`;
112
+ }
113
+ export function readDropSlot(value) {
114
+ if (!value || typeof value !== "object")
115
+ return null;
116
+ const slot = value.slot;
117
+ if (!slot || typeof slot !== "object")
118
+ return null;
119
+ const candidate = slot;
120
+ if (candidate.type === "row" &&
121
+ typeof candidate.groupKey === "string" &&
122
+ typeof candidate.rowIndex === "number") {
123
+ return {
124
+ type: "row",
125
+ groupKey: candidate.groupKey,
126
+ rowIndex: candidate.rowIndex,
127
+ };
128
+ }
129
+ if (candidate.type === "column" &&
130
+ typeof candidate.groupKey === "string" &&
131
+ typeof candidate.rowIndex === "number" &&
132
+ typeof candidate.columnIndex === "number") {
133
+ return {
134
+ type: "column",
135
+ groupKey: candidate.groupKey,
136
+ rowIndex: candidate.rowIndex,
137
+ columnIndex: candidate.columnIndex,
138
+ };
139
+ }
140
+ return null;
141
+ }
142
+ export function sameDropSlot(a, b) {
143
+ return (!!a &&
144
+ a.type === b.type &&
145
+ a.groupKey === b.groupKey &&
146
+ a.rowIndex === b.rowIndex &&
147
+ (a.type === "row" ||
148
+ (b.type === "column" && a.columnIndex === b.columnIndex)));
149
+ }
150
+ function findPanel(groups, panelId) {
151
+ for (const group of groups) {
152
+ for (let rowIndex = 0; rowIndex < group.rows.length; rowIndex++) {
153
+ const columnIndex = group.rows[rowIndex].panels.findIndex((panel) => panel.id === panelId);
154
+ if (columnIndex >= 0)
155
+ return { group, rowIndex, columnIndex };
156
+ }
157
+ }
158
+ return null;
159
+ }
160
+ export function columnExpansionForDropSlot(groups, panelId, slot) {
161
+ if (slot.type !== "column")
162
+ return null;
163
+ const group = groups.find((item) => item.key === slot.groupKey);
164
+ const row = group?.rows[slot.rowIndex];
165
+ if (!group || !row)
166
+ return null;
167
+ const required = row.panels.some((panel) => panel.id === panelId)
168
+ ? row.panels.length
169
+ : row.panels.length + 1;
170
+ return required > group.columns
171
+ ? {
172
+ columns: clampDashboardColumns(required),
173
+ sectionPanelId: group.section?.id ?? null,
174
+ }
175
+ : null;
176
+ }
177
+ /** Moves a panel by visible row/column slot and rebalances persisted widths. */
178
+ export function movePanelToDropSlot(panels, panelId, slot, dashboardColumns, options) {
179
+ const groups = buildDashboardPanelGroups(panels, dashboardColumns, options);
180
+ const source = findPanel(groups, panelId);
181
+ if (!source)
182
+ return panels;
183
+ const moving = source.group.rows[source.rowIndex].panels[source.columnIndex];
184
+ const sourceWasSingle = source.group.rows[source.rowIndex].panels.length === 1;
185
+ const next = groups.map((group) => ({
186
+ ...group,
187
+ rows: group.rows
188
+ .map((row) => ({
189
+ ...row,
190
+ panels: row.panels.filter((panel) => panel.id !== panelId),
191
+ }))
192
+ .filter((row) => row.panels.length),
193
+ }));
194
+ const target = next.find((group) => group.key === slot.groupKey);
195
+ if (!target)
196
+ return panels;
197
+ if (slot.type === "row") {
198
+ let rowIndex = slot.rowIndex;
199
+ if (source.group.key === target.key &&
200
+ sourceWasSingle &&
201
+ source.rowIndex < rowIndex)
202
+ rowIndex--;
203
+ if (source.group.key === target.key &&
204
+ sourceWasSingle &&
205
+ source.rowIndex === rowIndex)
206
+ return panels;
207
+ target.rows.splice(Math.max(0, rowIndex), 0, {
208
+ key: moving.id,
209
+ panels: [moving],
210
+ });
211
+ }
212
+ else {
213
+ let rowIndex = slot.rowIndex;
214
+ if (source.group.key === target.key &&
215
+ sourceWasSingle &&
216
+ source.rowIndex < rowIndex)
217
+ rowIndex--;
218
+ const targetRow = target.rows[rowIndex];
219
+ if (!targetRow)
220
+ return panels;
221
+ let columnIndex = slot.columnIndex;
222
+ if (source.group.key === target.key &&
223
+ source.rowIndex === slot.rowIndex &&
224
+ source.columnIndex < columnIndex)
225
+ columnIndex--;
226
+ targetRow.panels.splice(Math.max(0, Math.min(columnIndex, targetRow.panels.length)), 0, moving);
227
+ target.columns = Math.max(target.columns, clampDashboardColumns(targetRow.panels.length));
228
+ }
229
+ return flattenGroups(next);
230
+ }
231
+ //# sourceMappingURL=dashboard-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-layout.js","sourceRoot":"","sources":["../../src/dashboard/dashboard-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard-layout.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-layout.spec.d.ts","sourceRoot":"","sources":["../../src/dashboard/dashboard-layout.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildDashboardPanelGroups, clampDashboardColumns, columnExpansionForDropSlot, movePanelToDropSlot, removePanelFromLayout, } from "./dashboard-layout.js";
3
+ function panel(id, width = 1) {
4
+ return { id, width, kind: "chart" };
5
+ }
6
+ const options = { isSection: (item) => item.kind === "section" };
7
+ describe("dashboard layout", () => {
8
+ it("groups a section and balances persisted widths per visible row", () => {
9
+ const panels = [
10
+ panel("a"),
11
+ { id: "section", kind: "section", columns: 3 },
12
+ panel("b"),
13
+ panel("c"),
14
+ panel("d"),
15
+ ];
16
+ const groups = buildDashboardPanelGroups(panels, 2, options);
17
+ expect(groups.map((group) => group.rows.map((row) => row.panels.map((item) => item.id)))).toEqual([[["a"]], [["b", "c", "d"]]]);
18
+ expect(groups[1].columns).toBe(3);
19
+ });
20
+ it("removes without backfilling a later row", () => {
21
+ const next = removePanelFromLayout(["a", "b", "c", "d", "e"].map((id) => panel(id)), "b", 3, options);
22
+ expect(next.map((item) => [item.id, item.width])).toEqual([
23
+ ["a", 2],
24
+ ["c", 1],
25
+ ["d", 2],
26
+ ["e", 1],
27
+ ]);
28
+ });
29
+ it("moves into a column slot and grows the target group as needed", () => {
30
+ const panels = ["a", "b", "c"].map((id) => panel(id));
31
+ const slot = {
32
+ type: "column",
33
+ groupKey: "intro",
34
+ rowIndex: 0,
35
+ columnIndex: 1,
36
+ };
37
+ const groups = buildDashboardPanelGroups(panels, 2, options);
38
+ expect(columnExpansionForDropSlot(groups, "c", slot)).toEqual({
39
+ columns: 3,
40
+ sectionPanelId: null,
41
+ });
42
+ const next = movePanelToDropSlot(panels, "c", slot, 2, options);
43
+ expect(next.map((item) => item.id)).toEqual(["a", "c", "b"]);
44
+ expect(next.map((item) => item.width)).toEqual([1, 1, 1]);
45
+ });
46
+ it("clamps malformed and out-of-range column counts", () => {
47
+ expect(clampDashboardColumns("4")).toBe(2);
48
+ expect(clampDashboardColumns(-3)).toBe(1);
49
+ expect(clampDashboardColumns(99)).toBe(6);
50
+ });
51
+ });
52
+ //# sourceMappingURL=dashboard-layout.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-layout.spec.js","sourceRoot":"","sources":["../../src/dashboard/dashboard-layout.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from "./DataTable.js";
2
+ export * from "./DateRangePicker.js";
3
+ export * from "./GenericChartPanel.js";
4
+ export * from "./MetricCard.js";
5
+ export * from "./StatsCard.js";
6
+ export * from "./dashboard-layout.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./DataTable.js";
2
+ export * from "./DateRangePicker.js";
3
+ export * from "./GenericChartPanel.js";
4
+ export * from "./MetricCard.js";
5
+ export * from "./StatsCard.js";
6
+ export * from "./dashboard-layout.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./app-shell/index.js";
2
2
  export * from "./collab-ui/index.js";
3
+ export * from "./dashboard/index.js";
3
4
  export * from "./hooks/index.js";
4
5
  export * from "./onboarding/index.js";
5
6
  export * from "./provider.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./app-shell/index.js";
2
2
  export * from "./collab-ui/index.js";
3
+ export * from "./dashboard/index.js";
3
4
  export * from "./hooks/index.js";
4
5
  export * from "./onboarding/index.js";
5
6
  export * from "./provider.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/toolkit",
3
- "version": "0.8.3",
3
+ "version": "0.9.0",
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": {
@@ -61,6 +61,20 @@
61
61
  "import": "./dist/collab-ui/*.js",
62
62
  "default": "./dist/collab-ui/*.js"
63
63
  },
64
+ "./dashboard": {
65
+ "types": "./dist/dashboard/index.d.ts",
66
+ "browser": "./dist/dashboard/index.js",
67
+ "development": "./dist/dashboard/index.js",
68
+ "import": "./dist/dashboard/index.js",
69
+ "default": "./dist/dashboard/index.js"
70
+ },
71
+ "./dashboard/*": {
72
+ "types": "./dist/dashboard/*.d.ts",
73
+ "browser": "./dist/dashboard/*.js",
74
+ "development": "./dist/dashboard/*.js",
75
+ "import": "./dist/dashboard/*.js",
76
+ "default": "./dist/dashboard/*.js"
77
+ },
64
78
  "./chat-history": {
65
79
  "types": "./dist/chat-history/index.d.ts",
66
80
  "browser": "./dist/chat-history/index.js",