@polpo-ai/dashboard 0.15.11 → 0.15.13
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 +43 -9
- package/dist/host.d.ts +16 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +3 -0
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +35 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/self-host-api.d.ts +3 -0
- package/dist/self-host-api.d.ts.map +1 -0
- package/dist/self-host-api.js +55 -0
- package/dist/self-host-api.js.map +1 -0
- package/dist/v2/agents/agent-detail.d.ts +58 -0
- package/dist/v2/agents/agent-detail.d.ts.map +1 -0
- package/dist/v2/agents/agent-detail.js +412 -0
- package/dist/v2/agents/agent-detail.js.map +1 -0
- package/dist/v2/agents/agent-run-panel.d.ts +5 -0
- package/dist/v2/agents/agent-run-panel.d.ts.map +1 -0
- package/dist/v2/agents/agent-run-panel.js +149 -0
- package/dist/v2/agents/agent-run-panel.js.map +1 -0
- package/dist/v2/agents/loops-tab.d.ts +6 -0
- package/dist/v2/agents/loops-tab.d.ts.map +1 -0
- package/dist/v2/agents/loops-tab.js +160 -0
- package/dist/v2/agents/loops-tab.js.map +1 -0
- package/dist/v2/agents/model-select.d.ts +24 -0
- package/dist/v2/agents/model-select.d.ts.map +1 -0
- package/dist/v2/agents/model-select.js +157 -0
- package/dist/v2/agents/model-select.js.map +1 -0
- package/dist/v2/agents/prompt-preview-dialog.d.ts +15 -0
- package/dist/v2/agents/prompt-preview-dialog.d.ts.map +1 -0
- package/dist/v2/agents/prompt-preview-dialog.js +141 -0
- package/dist/v2/agents/prompt-preview-dialog.js.map +1 -0
- package/dist/v2/agents/self-host-create-agent-dialog.d.ts +6 -0
- package/dist/v2/agents/self-host-create-agent-dialog.d.ts.map +1 -0
- package/dist/v2/agents/self-host-create-agent-dialog.js +31 -0
- package/dist/v2/agents/self-host-create-agent-dialog.js.map +1 -0
- package/dist/v2/agents/self-host-detail.d.ts +4 -0
- package/dist/v2/agents/self-host-detail.d.ts.map +1 -0
- package/dist/v2/agents/self-host-detail.js +34 -0
- package/dist/v2/agents/self-host-detail.js.map +1 -0
- package/dist/v2/agents/self-host-run-chat.d.ts +10 -0
- package/dist/v2/agents/self-host-run-chat.d.ts.map +1 -0
- package/dist/v2/agents/self-host-run-chat.js +18 -0
- package/dist/v2/agents/self-host-run-chat.js.map +1 -0
- package/dist/v2/agents/skills-tab.d.ts +6 -0
- package/dist/v2/agents/skills-tab.d.ts.map +1 -0
- package/dist/v2/agents/skills-tab.js +112 -0
- package/dist/v2/agents/skills-tab.js.map +1 -0
- package/dist/v2/agents/tools-panel.d.ts +26 -0
- package/dist/v2/agents/tools-panel.d.ts.map +1 -0
- package/dist/v2/agents/tools-panel.js +123 -0
- package/dist/v2/agents/tools-panel.js.map +1 -0
- package/dist/v2/agents/tools-tab.d.ts +6 -0
- package/dist/v2/agents/tools-tab.d.ts.map +1 -0
- package/dist/v2/agents/tools-tab.js +117 -0
- package/dist/v2/agents/tools-tab.js.map +1 -0
- package/dist/v2/agents/vault-tab.d.ts +13 -0
- package/dist/v2/agents/vault-tab.d.ts.map +1 -0
- package/dist/v2/agents/vault-tab.js +93 -0
- package/dist/v2/agents/vault-tab.js.map +1 -0
- package/dist/v2/files/file-browser-primitives.d.ts +39 -0
- package/dist/v2/files/file-browser-primitives.d.ts.map +1 -0
- package/dist/v2/files/file-browser-primitives.js +75 -0
- package/dist/v2/files/file-browser-primitives.js.map +1 -0
- package/dist/v2/files/file-directory-browser.d.ts +10 -0
- package/dist/v2/files/file-directory-browser.d.ts.map +1 -0
- package/dist/v2/files/file-directory-browser.js +57 -0
- package/dist/v2/files/file-directory-browser.js.map +1 -0
- package/dist/v2/files/files-browser.d.ts +7 -0
- package/dist/v2/files/files-browser.d.ts.map +1 -0
- package/dist/v2/files/files-browser.js +390 -0
- package/dist/v2/files/files-browser.js.map +1 -0
- package/dist/v2/files/host.d.ts +45 -0
- package/dist/v2/files/host.d.ts.map +1 -0
- package/dist/v2/files/host.js +72 -0
- package/dist/v2/files/host.js.map +1 -0
- package/dist/v2/host.d.ts +42 -0
- package/dist/v2/host.d.ts.map +1 -0
- package/dist/v2/host.js +137 -0
- package/dist/v2/host.js.map +1 -0
- package/dist/v2/playground/chat-canvas.d.ts +9 -0
- package/dist/v2/playground/chat-canvas.d.ts.map +1 -0
- package/dist/v2/playground/chat-canvas.js +88 -0
- package/dist/v2/playground/chat-canvas.js.map +1 -0
- package/dist/v2/playground/host.d.ts +116 -0
- package/dist/v2/playground/host.d.ts.map +1 -0
- package/dist/v2/playground/host.js +12 -0
- package/dist/v2/playground/host.js.map +1 -0
- package/dist/v2/playground/self-host-chat.d.ts +11 -0
- package/dist/v2/playground/self-host-chat.d.ts.map +1 -0
- package/dist/v2/playground/self-host-chat.js +85 -0
- package/dist/v2/playground/self-host-chat.js.map +1 -0
- package/dist/v2/playground/self-host.d.ts +2 -0
- package/dist/v2/playground/self-host.d.ts.map +1 -0
- package/dist/v2/playground/self-host.js +87 -0
- package/dist/v2/playground/self-host.js.map +1 -0
- package/dist/v2/sessions/host.d.ts +167 -0
- package/dist/v2/sessions/host.d.ts.map +1 -0
- package/dist/v2/sessions/host.js +12 -0
- package/dist/v2/sessions/host.js.map +1 -0
- package/dist/v2/sessions/self-host.d.ts +7 -0
- package/dist/v2/sessions/self-host.d.ts.map +1 -0
- package/dist/v2/sessions/self-host.js +120 -0
- package/dist/v2/sessions/self-host.js.map +1 -0
- package/dist/v2/sessions/trace-columns.d.ts +4 -0
- package/dist/v2/sessions/trace-columns.d.ts.map +1 -0
- package/dist/v2/sessions/trace-columns.js +102 -0
- package/dist/v2/sessions/trace-columns.js.map +1 -0
- package/dist/v2/sessions/trace-detail-view.d.ts +7 -0
- package/dist/v2/sessions/trace-detail-view.d.ts.map +1 -0
- package/dist/v2/sessions/trace-detail-view.js +346 -0
- package/dist/v2/sessions/trace-detail-view.js.map +1 -0
- package/dist/v2/sessions/trace-detail.d.ts +133 -0
- package/dist/v2/sessions/trace-detail.d.ts.map +1 -0
- package/dist/v2/sessions/trace-detail.js +210 -0
- package/dist/v2/sessions/trace-detail.js.map +1 -0
- package/dist/v2/sessions/trace-normalize.d.ts +60 -0
- package/dist/v2/sessions/trace-normalize.d.ts.map +1 -0
- package/dist/v2/sessions/trace-normalize.js +87 -0
- package/dist/v2/sessions/trace-normalize.js.map +1 -0
- package/dist/v2/sessions/trace-table.d.ts +8 -0
- package/dist/v2/sessions/trace-table.d.ts.map +1 -0
- package/dist/v2/sessions/trace-table.js +27 -0
- package/dist/v2/sessions/trace-table.js.map +1 -0
- package/dist/v2/shell/coding-agents.d.ts +21 -0
- package/dist/v2/shell/coding-agents.d.ts.map +1 -0
- package/dist/v2/shell/coding-agents.js +41 -0
- package/dist/v2/shell/coding-agents.js.map +1 -0
- package/dist/v2/shell/dashboard-shell.d.ts +6 -0
- package/dist/v2/shell/dashboard-shell.d.ts.map +1 -0
- package/dist/v2/shell/dashboard-shell.js +132 -0
- package/dist/v2/shell/dashboard-shell.js.map +1 -0
- package/dist/v2/skills/self-host-create-skill-dialog.d.ts +6 -0
- package/dist/v2/skills/self-host-create-skill-dialog.d.ts.map +1 -0
- package/dist/v2/skills/self-host-create-skill-dialog.js +27 -0
- package/dist/v2/skills/self-host-create-skill-dialog.js.map +1 -0
- package/dist/v2/skills/self-host-detail.d.ts +4 -0
- package/dist/v2/skills/self-host-detail.d.ts.map +1 -0
- package/dist/v2/skills/self-host-detail.js +31 -0
- package/dist/v2/skills/self-host-detail.js.map +1 -0
- package/dist/v2/support/agent-call-snippets.d.ts +35 -0
- package/dist/v2/support/agent-call-snippets.d.ts.map +1 -0
- package/dist/v2/support/agent-call-snippets.js +113 -0
- package/dist/v2/support/agent-call-snippets.js.map +1 -0
- package/dist/v2/support/tool-catalog.d.ts +62 -0
- package/dist/v2/support/tool-catalog.d.ts.map +1 -0
- package/dist/v2/support/tool-catalog.js +271 -0
- package/dist/v2/support/tool-catalog.js.map +1 -0
- package/dist/v2/support/vault-fields.d.ts +29 -0
- package/dist/v2/support/vault-fields.d.ts.map +1 -0
- package/dist/v2/support/vault-fields.js +74 -0
- package/dist/v2/support/vault-fields.js.map +1 -0
- package/dist/v2/tools/param-fields.d.ts +19 -0
- package/dist/v2/tools/param-fields.d.ts.map +1 -0
- package/dist/v2/tools/param-fields.js +191 -0
- package/dist/v2/tools/param-fields.js.map +1 -0
- package/dist/v2/tools/self-host.d.ts +7 -0
- package/dist/v2/tools/self-host.d.ts.map +1 -0
- package/dist/v2/tools/self-host.js +26 -0
- package/dist/v2/tools/self-host.js.map +1 -0
- package/dist/v2/tools/source-parsing.d.ts +4 -0
- package/dist/v2/tools/source-parsing.d.ts.map +1 -0
- package/dist/v2/tools/source-parsing.js +15 -0
- package/dist/v2/tools/source-parsing.js.map +1 -0
- package/dist/v2/tools/tool-detail.d.ts +7 -0
- package/dist/v2/tools/tool-detail.d.ts.map +1 -0
- package/dist/v2/tools/tool-detail.js +157 -0
- package/dist/v2/tools/tool-detail.js.map +1 -0
- package/dist/v2/tools/tool-editor-dialog.d.ts +9 -0
- package/dist/v2/tools/tool-editor-dialog.d.ts.map +1 -0
- package/dist/v2/tools/tool-editor-dialog.js +306 -0
- package/dist/v2/tools/tool-editor-dialog.js.map +1 -0
- package/dist/v2/tools/tools-view.d.ts +21 -0
- package/dist/v2/tools/tools-view.d.ts.map +1 -0
- package/dist/v2/tools/tools-view.js +77 -0
- package/dist/v2/tools/tools-view.js.map +1 -0
- package/dist/v2/ui/bits.d.ts +23 -0
- package/dist/v2/ui/bits.d.ts.map +1 -0
- package/dist/v2/ui/bits.js +18 -0
- package/dist/v2/ui/bits.js.map +1 -0
- package/dist/v2/ui/button.d.ts +9 -0
- package/dist/v2/ui/button.d.ts.map +1 -0
- package/dist/v2/ui/button.js +33 -0
- package/dist/v2/ui/button.js.map +1 -0
- package/dist/v2/ui/code-block.d.ts +20 -0
- package/dist/v2/ui/code-block.d.ts.map +1 -0
- package/dist/v2/ui/code-block.js +44 -0
- package/dist/v2/ui/code-block.js.map +1 -0
- package/dist/v2/ui/code-editor.d.ts +9 -0
- package/dist/v2/ui/code-editor.d.ts.map +1 -0
- package/dist/v2/ui/code-editor.js +25 -0
- package/dist/v2/ui/code-editor.js.map +1 -0
- package/dist/v2/ui/copy-button.d.ts +9 -0
- package/dist/v2/ui/copy-button.d.ts.map +1 -0
- package/dist/v2/ui/copy-button.js +24 -0
- package/dist/v2/ui/copy-button.js.map +1 -0
- package/dist/v2/ui/data-table.d.ts +40 -0
- package/dist/v2/ui/data-table.d.ts.map +1 -0
- package/dist/v2/ui/data-table.js +85 -0
- package/dist/v2/ui/data-table.js.map +1 -0
- package/dist/v2/ui/dialog.d.ts +16 -0
- package/dist/v2/ui/dialog.d.ts.map +1 -0
- package/dist/v2/ui/dialog.js +39 -0
- package/dist/v2/ui/dialog.js.map +1 -0
- package/dist/v2/ui/input.d.ts +2 -0
- package/dist/v2/ui/input.d.ts.map +1 -0
- package/dist/v2/ui/input.js +7 -0
- package/dist/v2/ui/input.js.map +1 -0
- package/dist/v2/ui/multi-select-filter.d.ts +18 -0
- package/dist/v2/ui/multi-select-filter.d.ts.map +1 -0
- package/dist/v2/ui/multi-select-filter.js +37 -0
- package/dist/v2/ui/multi-select-filter.js.map +1 -0
- package/dist/v2/ui/page-header.d.ts +10 -0
- package/dist/v2/ui/page-header.d.ts.map +1 -0
- package/dist/v2/ui/page-header.js +8 -0
- package/dist/v2/ui/page-header.js.map +1 -0
- package/dist/v2/ui/refresh-button.d.ts +5 -0
- package/dist/v2/ui/refresh-button.d.ts.map +1 -0
- package/dist/v2/ui/refresh-button.js +7 -0
- package/dist/v2/ui/refresh-button.js.map +1 -0
- package/dist/v2/ui/select.d.ts +16 -0
- package/dist/v2/ui/select.d.ts.map +1 -0
- package/dist/v2/ui/select.js +36 -0
- package/dist/v2/ui/select.js.map +1 -0
- package/dist/v2/ui/skeleton.d.ts +3 -0
- package/dist/v2/ui/skeleton.d.ts.map +1 -0
- package/dist/v2/ui/skeleton.js +7 -0
- package/dist/v2/ui/skeleton.js.map +1 -0
- package/dist/v2/ui/textarea.d.ts +2 -0
- package/dist/v2/ui/textarea.d.ts.map +1 -0
- package/dist/v2/ui/textarea.js +6 -0
- package/dist/v2/ui/textarea.js.map +1 -0
- package/dist/v2/utils.d.ts +3 -0
- package/dist/v2/utils.d.ts.map +1 -0
- package/dist/v2/utils.js +6 -0
- package/dist/v2/utils.js.map +1 -0
- package/dist/v2/views/agents-detail.d.ts +2 -0
- package/dist/v2/views/agents-detail.d.ts.map +1 -0
- package/dist/v2/views/agents-detail.js +2 -0
- package/dist/v2/views/agents-detail.js.map +1 -0
- package/dist/v2/views/agents.d.ts +27 -0
- package/dist/v2/views/agents.d.ts.map +1 -0
- package/dist/v2/views/agents.js +161 -0
- package/dist/v2/views/agents.js.map +1 -0
- package/dist/v2/views/files.d.ts +2 -0
- package/dist/v2/views/files.d.ts.map +1 -0
- package/dist/v2/views/files.js +10 -0
- package/dist/v2/views/files.js.map +1 -0
- package/dist/v2/views/memory-host.d.ts +10 -0
- package/dist/v2/views/memory-host.d.ts.map +1 -0
- package/dist/v2/views/memory-host.js +17 -0
- package/dist/v2/views/memory-host.js.map +1 -0
- package/dist/v2/views/memory-project.d.ts +5 -0
- package/dist/v2/views/memory-project.d.ts.map +1 -0
- package/dist/v2/views/memory-project.js +36 -0
- package/dist/v2/views/memory-project.js.map +1 -0
- package/dist/v2/views/memory.d.ts +2 -0
- package/dist/v2/views/memory.d.ts.map +1 -0
- package/dist/v2/views/memory.js +14 -0
- package/dist/v2/views/memory.js.map +1 -0
- package/dist/v2/views/playground.d.ts +13 -0
- package/dist/v2/views/playground.d.ts.map +1 -0
- package/dist/v2/views/playground.js +88 -0
- package/dist/v2/views/playground.js.map +1 -0
- package/dist/v2/views/sessions-detail.d.ts +8 -0
- package/dist/v2/views/sessions-detail.d.ts.map +1 -0
- package/dist/v2/views/sessions-detail.js +107 -0
- package/dist/v2/views/sessions-detail.js.map +1 -0
- package/dist/v2/views/sessions.d.ts +9 -0
- package/dist/v2/views/sessions.d.ts.map +1 -0
- package/dist/v2/views/sessions.js +9 -0
- package/dist/v2/views/sessions.js.map +1 -0
- package/dist/v2/views/skills-detail.d.ts +26 -0
- package/dist/v2/views/skills-detail.d.ts.map +1 -0
- package/dist/v2/views/skills-detail.js +120 -0
- package/dist/v2/views/skills-detail.js.map +1 -0
- package/dist/v2/views/skills.d.ts +18 -0
- package/dist/v2/views/skills.d.ts.map +1 -0
- package/dist/v2/views/skills.js +46 -0
- package/dist/v2/views/skills.js.map +1 -0
- package/package.json +20 -4
- package/src/v2.css +212 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ToolRow = {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string | null;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Project-level Tools. v2 port of app/(dashboard)/projects/[id]/tools/*.
|
|
7
|
+
*
|
|
8
|
+
* Kept: browse the built-in catalog (read-only reference), the project's
|
|
9
|
+
* custom-tools list from GET /v1/projects/:id/tools, and create/edit/delete.
|
|
10
|
+
*
|
|
11
|
+
* Trimmed from v1 (heaviest extras): the AI test/eval generators, the "Try it"
|
|
12
|
+
* runner + AI-example endpoints, and the raw-JSON/guided-form args builder.
|
|
13
|
+
* Authoring is a single Monaco editor + streaming deploy (see
|
|
14
|
+
* tool-editor-dialog.tsx). The runtime endpoints (/generate, /run, /example)
|
|
15
|
+
* are left untouched server-side.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ToolsView({ projectId, initialTools, }: {
|
|
18
|
+
projectId: string;
|
|
19
|
+
initialTools: ToolRow[];
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=tools-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools-view.d.ts","sourceRoot":"","sources":["../../../src/v2/tools/tools-view.tsx"],"names":[],"mappings":"AA2BA,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,YAAY,GACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,EAAE,CAAC;CACzB,2CA0LA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { Plus, Wrench, Trash, WarningCircle, } from "@phosphor-icons/react/dist/ssr";
|
|
5
|
+
import { Link, useMutation, useQuery, useQueryClient } from "../host.js";
|
|
6
|
+
import { useDashboardApi } from "../../host.js";
|
|
7
|
+
import { Button } from "../ui/button.js";
|
|
8
|
+
import { PageHeader } from "../ui/page-header.js";
|
|
9
|
+
import { DataTable } from "../ui/data-table.js";
|
|
10
|
+
import { RefreshButton } from "../ui/refresh-button.js";
|
|
11
|
+
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../ui/dialog.js";
|
|
12
|
+
import { ToolEditorDialog } from "./tool-editor-dialog.js";
|
|
13
|
+
/**
|
|
14
|
+
* Project-level Tools. v2 port of app/(dashboard)/projects/[id]/tools/*.
|
|
15
|
+
*
|
|
16
|
+
* Kept: browse the built-in catalog (read-only reference), the project's
|
|
17
|
+
* custom-tools list from GET /v1/projects/:id/tools, and create/edit/delete.
|
|
18
|
+
*
|
|
19
|
+
* Trimmed from v1 (heaviest extras): the AI test/eval generators, the "Try it"
|
|
20
|
+
* runner + AI-example endpoints, and the raw-JSON/guided-form args builder.
|
|
21
|
+
* Authoring is a single Monaco editor + streaming deploy (see
|
|
22
|
+
* tool-editor-dialog.tsx). The runtime endpoints (/generate, /run, /example)
|
|
23
|
+
* are left untouched server-side.
|
|
24
|
+
*/
|
|
25
|
+
export function ToolsView({ projectId, initialTools, }) {
|
|
26
|
+
const api = useDashboardApi();
|
|
27
|
+
const queryClient = useQueryClient();
|
|
28
|
+
const queryKey = ["custom-tools", projectId];
|
|
29
|
+
const { data: tools = initialTools, refetch, isFetching } = useQuery({
|
|
30
|
+
queryKey,
|
|
31
|
+
queryFn: () => api.fetchControlPlane(`/v1/projects/${projectId}/tools`).then((r) => r.data ?? []),
|
|
32
|
+
initialData: initialTools,
|
|
33
|
+
});
|
|
34
|
+
const [editor, setEditor] = useState(null);
|
|
35
|
+
const [confirmDelete, setConfirmDelete] = useState(null);
|
|
36
|
+
const del = useMutation({
|
|
37
|
+
mutationFn: (name) => api.mutateControlPlane(`/v1/projects/${projectId}/tools/${encodeURIComponent(name)}`, { method: "DELETE" }),
|
|
38
|
+
onSuccess: async () => {
|
|
39
|
+
await queryClient.invalidateQueries({ queryKey });
|
|
40
|
+
setConfirmDelete(null);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const refresh = () => queryClient.invalidateQueries({ queryKey });
|
|
44
|
+
const columns = useMemo(() => [
|
|
45
|
+
{
|
|
46
|
+
id: "name",
|
|
47
|
+
header: "Tool",
|
|
48
|
+
accessorFn: (t) => t.name,
|
|
49
|
+
cell: ({ row }) => (_jsxs(Link, { href: `/projects/${projectId}/tools/${encodeURIComponent(row.original.name)}`, className: "flex items-center gap-2 font-mono text-[13px] font-medium text-foreground transition-colors hover:text-brand", children: [_jsx(Wrench, { size: 13, className: "shrink-0 text-muted-foreground" }), row.original.name] })),
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: "description",
|
|
53
|
+
header: "Description",
|
|
54
|
+
enableSorting: false,
|
|
55
|
+
accessorFn: (t) => t.description ?? "",
|
|
56
|
+
cell: ({ getValue }) => {
|
|
57
|
+
const d = getValue();
|
|
58
|
+
return d ? (_jsx("span", { className: "block min-w-0 truncate text-[12px] text-muted-foreground", children: d })) : (_jsx("span", { className: "text-[12px] text-muted-foreground/40", children: "\u2014" }));
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: "actions",
|
|
63
|
+
header: "",
|
|
64
|
+
enableSorting: false,
|
|
65
|
+
cell: ({ row }) => (_jsx("div", { className: "flex items-center justify-end", children: _jsx(Button, { variant: "ghost", size: "icon-sm", "aria-label": `Delete ${row.original.name}`, className: "text-muted-foreground hover:text-destructive", onClick: () => setConfirmDelete(row.original), children: _jsx(Trash, { size: 15 }) }) })),
|
|
66
|
+
meta: { align: "right", width: 96 },
|
|
67
|
+
},
|
|
68
|
+
], [projectId]);
|
|
69
|
+
return (_jsxs("div", { className: "flex flex-col gap-6", children: [_jsx(PageHeader, { title: "Tool Functions", description: "Custom tools you author \u2014 your agents can call them. Built-in tools are enabled per agent, under Agents \u2192 Tools.", actions: _jsxs(Button, { size: "sm", onClick: () => setEditor({ mode: "create" }), children: [_jsx(Plus, { size: 15, weight: "bold" }), " New tool"] }) }), _jsx(DataTable, { columns: columns, data: tools, getRowId: (t) => t.name, searchPlaceholder: "Search tools\u2026", searchFn: (t, q) => [t.name, t.description].some((v) => (v ?? "").toLowerCase().includes(q)), rightSlot: _jsx(RefreshButton, { onClick: () => refetch(), busy: isFetching }), empty: _jsxs("div", { className: "flex flex-col items-center gap-3 py-6", children: [_jsx("span", { className: "grid h-11 w-11 place-items-center rounded-lg border border-border bg-secondary", children: _jsx(Wrench, { size: 20, className: "text-muted-foreground" }) }), _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "text-sm font-medium text-foreground", children: "No custom tools yet" }), _jsxs("div", { className: "mt-1 text-[13px] text-muted-foreground", children: ["Author a ", _jsx("code", { children: "defineTool" }), " file \u2014 your agents can call it."] })] }), _jsxs(Button, { size: "sm", onClick: () => setEditor({ mode: "create" }), children: [_jsx(Plus, { size: 15, weight: "bold" }), " New tool"] })] }) }), editor && (_jsx(ToolEditorDialog, { projectId: projectId, mode: editor.mode, initialName: editor.mode === "edit" ? editor.name : undefined, open: true, onOpenChange: (o) => {
|
|
70
|
+
if (!o)
|
|
71
|
+
setEditor(null);
|
|
72
|
+
}, onDeployed: refresh })), _jsx(Dialog, { open: !!confirmDelete, onOpenChange: (o) => {
|
|
73
|
+
if (!o)
|
|
74
|
+
setConfirmDelete(null);
|
|
75
|
+
}, children: _jsxs(DialogContent, { showCloseButton: false, className: "v2", children: [_jsxs(DialogHeader, { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(WarningCircle, { size: 16, className: "text-destructive", weight: "fill" }), _jsx(DialogTitle, { children: "Delete tool" })] }), _jsxs(DialogDescription, { children: ["Delete", " ", _jsx("span", { className: "font-mono font-medium text-foreground", children: confirmDelete?.name }), "? Agents that reference it will no longer be able to call it. This cannot be undone."] })] }), del.isError && (_jsx("p", { className: "text-[12px] text-destructive", children: del.error instanceof Error ? del.error.message : "Failed to delete" })), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { render: _jsx(Button, { variant: "ghost", size: "sm" }), children: "Cancel" }), _jsx(Button, { variant: "destructive", size: "sm", disabled: del.isPending, onClick: () => confirmDelete && del.mutate(confirmDelete.name), children: del.isPending ? "Deleting…" : "Delete tool" })] })] }) })] }));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=tools-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools-view.js","sourceRoot":"","sources":["../../../src/v2/tools/tools-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/** A labeled content block with an optional count. */
|
|
3
|
+
export declare function Section({ title, count, action, children, }: {
|
|
4
|
+
title?: string;
|
|
5
|
+
count?: number;
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function Chip({ children, brand, }: {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
brand?: boolean;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function EmptyBox({ children }: {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
/** Accessible on/off switch, brand-tinted when on. */
|
|
17
|
+
export declare function Toggle({ checked, onChange, disabled, label, }: {
|
|
18
|
+
checked: boolean;
|
|
19
|
+
onChange: () => void;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
label?: string;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=bits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bits.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/bits.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,sDAAsD;AACtD,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CA0BA;AAED,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CAYA;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAM7D;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,KAAK,GACN,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,2CAoBA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/** A labeled content block with an optional count. */
|
|
3
|
+
export function Section({ title, count, action, children, }) {
|
|
4
|
+
return (_jsxs("section", { className: "mt-7 first:mt-0", children: [(title || count !== undefined || action) && (_jsxs("div", { className: "mb-2.5 flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-baseline gap-2", children: [title && (_jsx("h2", { className: "text-[13px] font-medium text-foreground", children: title })), count !== undefined && (_jsx("span", { className: "text-[12px] text-muted-foreground/60", "data-tabular": true, children: count }))] }), action] })), children] }));
|
|
5
|
+
}
|
|
6
|
+
export function Chip({ children, brand, }) {
|
|
7
|
+
return (_jsx("span", { className: `inline-flex items-center rounded border px-2 py-0.5 font-mono text-[11px] ${brand
|
|
8
|
+
? "border-brand/30 bg-brand/10 text-brand"
|
|
9
|
+
: "border-border bg-secondary/50 text-muted-foreground"}`, children: children }));
|
|
10
|
+
}
|
|
11
|
+
export function EmptyBox({ children }) {
|
|
12
|
+
return (_jsx("div", { className: "rounded-lg border border-dashed border-border px-3.5 py-4 text-[13px] text-muted-foreground/60", children: children }));
|
|
13
|
+
}
|
|
14
|
+
/** Accessible on/off switch, brand-tinted when on. */
|
|
15
|
+
export function Toggle({ checked, onChange, disabled, label, }) {
|
|
16
|
+
return (_jsx("button", { type: "button", role: "switch", "aria-checked": checked, "aria-label": label, disabled: disabled, onClick: onChange, className: `relative inline-flex h-[18px] w-[30px] shrink-0 items-center rounded-full transition-colors disabled:opacity-40 ${checked ? "bg-brand" : "bg-secondary"}`, children: _jsx("span", { className: `inline-block h-3.5 w-3.5 transform rounded-full bg-background shadow-sm transition-transform ${checked ? "translate-x-[13px]" : "translate-x-[2px]"}` }) }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=bits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bits.js","sourceRoot":"","sources":["../../../src/v2/ui/bits.tsx"],"names":[],"mappings":";AAEA,sDAAsD;AACtD,MAAM,UAAU,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,GAMT;IACC,OAAO,CACL,mBAAS,SAAS,EAAC,iBAAiB,aACjC,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAC3C,eAAK,SAAS,EAAC,gDAAgD,aAC7D,eAAK,SAAS,EAAC,2BAA2B,aACvC,KAAK,IAAI,CACR,aAAI,SAAS,EAAC,yCAAyC,YACpD,KAAK,GACH,CACN,EACA,KAAK,KAAK,SAAS,IAAI,CACtB,eACE,SAAS,EAAC,sCAAsC,kCAG/C,KAAK,GACD,CACR,IACG,EACL,MAAM,IACH,CACP,EACA,QAAQ,IACD,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,EACnB,QAAQ,EACR,KAAK,GAIN;IACC,OAAO,CACL,eACE,SAAS,EAAE,6EACT,KAAK;YACH,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,qDACN,EAAE,YAED,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAA2B;IAC5D,OAAO,CACL,cAAK,SAAS,EAAC,gGAAgG,YAC5G,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,MAAM,CAAC,EACrB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,KAAK,GAMN;IACC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,kBACC,OAAO,gBACT,KAAK,EACjB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,mHACT,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cACzB,EAAE,YAEF,eACE,SAAS,EAAE,gGACT,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBACnC,EAAE,GACF,GACK,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "link" | "secondary" | "ghost" | "default" | "outline" | "destructive" | null | undefined;
|
|
5
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export declare function Button({ className, variant, size, ...props }: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { buttonVariants };
|
|
9
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,cAAc;;;8EAyBnB,CAAC;AAEF,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAQ7D;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { cn } from "../utils.js";
|
|
6
|
+
const buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
10
|
+
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
11
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
12
|
+
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
13
|
+
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
14
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
18
|
+
xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
19
|
+
sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
|
|
20
|
+
lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
|
|
21
|
+
icon: "size-8",
|
|
22
|
+
"icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
|
|
23
|
+
"icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
|
|
24
|
+
"icon-lg": "size-9",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
defaultVariants: { variant: "default", size: "default" },
|
|
28
|
+
});
|
|
29
|
+
export function Button({ className, variant = "default", size = "default", ...props }) {
|
|
30
|
+
return (_jsx(ButtonPrimitive, { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
|
|
31
|
+
}
|
|
32
|
+
export { buttonVariants };
|
|
33
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/v2/ui/button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,cAAc,GAAG,GAAG,CACxB,wkBAAwkB,EACxkB;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,4DAA4D;YACrE,OAAO,EAAE,iLAAiL;YAC1L,SAAS,EAAE,iIAAiI;YAC5I,KAAK,EAAE,kHAAkH;YACzH,WAAW,EAAE,6NAA6N;YAC1O,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,sFAAsF;YAC/F,EAAE,EAAE,+MAA+M;YACnN,EAAE,EAAE,yNAAyN;YAC7N,EAAE,EAAE,sFAAsF;YAC1F,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,yHAAyH;YACpI,SAAS,EAAE,oFAAoF;YAC/F,SAAS,EAAE,QAAQ;SACpB;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACzD,CACF,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACoD;IAC5D,OAAO,CACL,KAAC,eAAe,iBACJ,QAAQ,EAClB,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KACvD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Syntax-highlighted, copyable code block powered by Shiki (already a dep).
|
|
3
|
+
* Shiki is lazy-imported on mount so it stays out of the main bundle, and we
|
|
4
|
+
* emit a dual light/dark theme (CSS-variable driven — see the `.shiki` rules in
|
|
5
|
+
* v2.css) so it tracks the v2 theme toggle. Falls back to plain <pre> until the
|
|
6
|
+
* highlighter resolves (or if it fails).
|
|
7
|
+
*/
|
|
8
|
+
export declare function CodeBlock({ code, lang, className, maxHeightClass, showCopy, bare, wrap, }: {
|
|
9
|
+
code: string;
|
|
10
|
+
lang?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
maxHeightClass?: string;
|
|
13
|
+
/** Built-in top-right copy button. Turn off to place your own, non-overlapping. */
|
|
14
|
+
showCopy?: boolean;
|
|
15
|
+
/** Drop the border/rounding so the block can sit inside another container. */
|
|
16
|
+
bare?: boolean;
|
|
17
|
+
/** Wrap long lines instead of requiring horizontal scrolling. */
|
|
18
|
+
wrap?: boolean;
|
|
19
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=code-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/code-block.tsx"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAa,EACb,SAAS,EACT,cAA+B,EAC/B,QAAe,EACf,IAAY,EACZ,IAAY,GACb,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,2CAgDA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { CopyButton } from "./copy-button.js";
|
|
5
|
+
/**
|
|
6
|
+
* Syntax-highlighted, copyable code block powered by Shiki (already a dep).
|
|
7
|
+
* Shiki is lazy-imported on mount so it stays out of the main bundle, and we
|
|
8
|
+
* emit a dual light/dark theme (CSS-variable driven — see the `.shiki` rules in
|
|
9
|
+
* v2.css) so it tracks the v2 theme toggle. Falls back to plain <pre> until the
|
|
10
|
+
* highlighter resolves (or if it fails).
|
|
11
|
+
*/
|
|
12
|
+
export function CodeBlock({ code, lang = "json", className, maxHeightClass = "max-h-[60vh]", showCopy = true, bare = false, wrap = false, }) {
|
|
13
|
+
const frame = bare ? "" : "rounded-lg border border-border";
|
|
14
|
+
const overflow = wrap ? "overflow-y-auto overflow-x-hidden" : "overflow-auto";
|
|
15
|
+
const highlightedWrap = wrap
|
|
16
|
+
? "[&_pre]:whitespace-pre-wrap [&_pre]:break-words [&_code]:whitespace-pre-wrap [&_code]:break-words [&_.line]:whitespace-pre-wrap [&_.line]:break-words"
|
|
17
|
+
: "[&_pre]:whitespace-pre";
|
|
18
|
+
const fallbackWrap = wrap ? "whitespace-pre-wrap break-words" : "whitespace-pre";
|
|
19
|
+
const [html, setHtml] = useState(null);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
let cancelled = false;
|
|
22
|
+
(async () => {
|
|
23
|
+
try {
|
|
24
|
+
const { codeToHtml } = await import("shiki");
|
|
25
|
+
const out = await codeToHtml(code, {
|
|
26
|
+
lang,
|
|
27
|
+
themes: { light: "github-light", dark: "github-dark" },
|
|
28
|
+
defaultColor: false,
|
|
29
|
+
});
|
|
30
|
+
if (!cancelled)
|
|
31
|
+
setHtml(out);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
if (!cancelled)
|
|
35
|
+
setHtml(null);
|
|
36
|
+
}
|
|
37
|
+
})();
|
|
38
|
+
return () => {
|
|
39
|
+
cancelled = true;
|
|
40
|
+
};
|
|
41
|
+
}, [code, lang]);
|
|
42
|
+
return (_jsxs("div", { className: `relative min-w-0 max-w-full ${className ?? ""}`, children: [showCopy && (_jsx(CopyButton, { text: code, className: "absolute right-2 top-2 z-10" })), html ? (_jsx("div", { className: `shiki-block ${maxHeightClass} ${overflow} ${frame} bg-card p-4 text-[12.5px] leading-relaxed [&_pre]:m-0 ${highlightedWrap} [&_pre]:!bg-transparent [&_pre]:font-mono`, dangerouslySetInnerHTML: { __html: html } })) : (_jsx("pre", { className: `${maxHeightClass} ${overflow} ${frame} bg-card p-4 font-mono text-[12.5px] leading-relaxed text-foreground ${fallbackWrap}`, children: code }))] }));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=code-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../src/v2/ui/code-block.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,GAAG,MAAM,EACb,SAAS,EACT,cAAc,GAAG,cAAc,EAC/B,QAAQ,GAAG,IAAI,EACf,IAAI,GAAG,KAAK,EACZ,IAAI,GAAG,KAAK,GAYb;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9E,MAAM,eAAe,GAAG,IAAI;QAC1B,CAAC,CAAC,uJAAuJ;QACzJ,CAAC,CAAC,wBAAwB,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACjF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE;oBACjC,IAAI;oBACJ,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE;oBACtD,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS;oBAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjB,OAAO,CACL,eAAK,SAAS,EAAE,+BAA+B,SAAS,IAAI,EAAE,EAAE,aAC7D,QAAQ,IAAI,CACX,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,6BAA6B,GAAG,CACnE,EACA,IAAI,CAAC,CAAC,CAAC,CACN,cACE,SAAS,EAAE,eAAe,cAAc,IAAI,QAAQ,IAAI,KAAK,0DAA0D,eAAe,4CAA4C,EAClL,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GACzC,CACH,CAAC,CAAC,CAAC,CACF,cACE,SAAS,EAAE,GAAG,cAAc,IAAI,QAAQ,IAAI,KAAK,wEAAwE,YAAY,EAAE,YAEtI,IAAI,GACD,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function CodeEditor({ value, onChange, language, height, readOnly, placeholder, }: {
|
|
2
|
+
value: string;
|
|
3
|
+
onChange: (value: string) => void;
|
|
4
|
+
language: string;
|
|
5
|
+
height?: string | number;
|
|
6
|
+
readOnly?: boolean;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=code-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-editor.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/code-editor.tsx"],"names":[],"mappings":"AAkBA,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAY,EACZ,QAAgB,EAChB,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CA+BA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { lazy, Suspense } from "react";
|
|
4
|
+
import { useTheme } from "next-themes";
|
|
5
|
+
import { CircleNotch } from "@phosphor-icons/react/dist/ssr";
|
|
6
|
+
const Editor = lazy(() => import("@monaco-editor/react").then((module) => ({ default: module.default })));
|
|
7
|
+
function EditorLoading() {
|
|
8
|
+
return (_jsxs("div", { className: "flex h-full min-h-[80px] items-center justify-center text-sm text-muted-foreground", children: [_jsx(CircleNotch, { className: "mr-2 h-4 w-4 animate-spin" }), " Loading editor\u2026"] }));
|
|
9
|
+
}
|
|
10
|
+
export function CodeEditor({ value, onChange, language, height = 200, readOnly = false, placeholder, }) {
|
|
11
|
+
const { resolvedTheme } = useTheme();
|
|
12
|
+
return (_jsx("div", { className: "overflow-hidden rounded-lg border border-border", style: { height }, children: _jsx(Suspense, { fallback: _jsx(EditorLoading, {}), children: _jsx(Editor, { height: "100%", language: language, theme: resolvedTheme === "light" ? "vs" : "vs-dark", value: value, onChange: (next) => onChange(next ?? ""), options: {
|
|
13
|
+
readOnly,
|
|
14
|
+
placeholder,
|
|
15
|
+
minimap: { enabled: false },
|
|
16
|
+
fontSize: 12.5,
|
|
17
|
+
lineNumbers: "on",
|
|
18
|
+
scrollBeyondLastLine: false,
|
|
19
|
+
wordWrap: "on",
|
|
20
|
+
automaticLayout: true,
|
|
21
|
+
tabSize: 2,
|
|
22
|
+
padding: { top: 10, bottom: 10 },
|
|
23
|
+
} }) }) }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=code-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-editor.js","sourceRoot":"","sources":["../../../src/v2/ui/code-editor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CACvB,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAC/E,CAAC;AAEF,SAAS,aAAa;IACpB,OAAO,CACL,eAAK,SAAS,EAAC,oFAAoF,aACjG,KAAC,WAAW,IAAC,SAAS,EAAC,2BAA2B,GAAG,6BACjD,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,GAAG,GAAG,EACZ,QAAQ,GAAG,KAAK,EAChB,WAAW,GAQZ;IACC,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;IAErC,OAAO,CACL,cACE,SAAS,EAAC,iDAAiD,EAC3D,KAAK,EAAE,EAAE,MAAM,EAAE,YAEjB,KAAC,QAAQ,IAAC,QAAQ,EAAE,KAAC,aAAa,KAAG,YACnC,KAAC,MAAM,IACL,MAAM,EAAC,MAAM,EACb,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACnD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EACxC,OAAO,EAAE;oBACP,QAAQ;oBACR,WAAW;oBACX,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;oBAC3B,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,IAAI;oBACjB,oBAAoB,EAAE,KAAK;oBAC3B,QAAQ,EAAE,IAAI;oBACd,eAAe,EAAE,IAAI;oBACrB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;iBACjC,GACD,GACO,GACP,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Small quick-copy button — drop it into the top-right of any code block. */
|
|
2
|
+
export declare function CopyButton({ text, className, size, label, }: {
|
|
3
|
+
text: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: "sm" | "md";
|
|
6
|
+
/** When set, renders a labelled button (icon + text) instead of icon-only. */
|
|
7
|
+
label?: string;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=copy-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-button.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/copy-button.tsx"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,EACT,IAAW,EACX,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,2CA8CA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Copy, Check } from "@phosphor-icons/react/dist/ssr";
|
|
5
|
+
/** Small quick-copy button — drop it into the top-right of any code block. */
|
|
6
|
+
export function CopyButton({ text, className, size = "sm", label, }) {
|
|
7
|
+
const [copied, setCopied] = useState(false);
|
|
8
|
+
const icon = size === "md" ? 15 : 13;
|
|
9
|
+
const copy = async () => {
|
|
10
|
+
try {
|
|
11
|
+
await navigator.clipboard.writeText(text);
|
|
12
|
+
setCopied(true);
|
|
13
|
+
setTimeout(() => setCopied(false), 1500);
|
|
14
|
+
}
|
|
15
|
+
catch { }
|
|
16
|
+
};
|
|
17
|
+
const Glyph = copied ? (_jsx(Check, { size: icon, weight: "bold", className: "text-brand" })) : (_jsx(Copy, { size: icon }));
|
|
18
|
+
if (label) {
|
|
19
|
+
return (_jsxs("button", { type: "button", onClick: copy, className: `inline-flex h-8 shrink-0 items-center gap-1.5 rounded-md border border-border bg-card/80 px-2.5 text-[12px] font-medium text-muted-foreground backdrop-blur transition-colors hover:text-foreground ${className ?? ""}`, children: [Glyph, label] }));
|
|
20
|
+
}
|
|
21
|
+
const box = size === "md" ? "h-8 w-8" : "h-7 w-7";
|
|
22
|
+
return (_jsx("button", { type: "button", "aria-label": copied ? "Copied" : "Copy", onClick: copy, className: `grid ${box} shrink-0 place-items-center rounded-md border border-border bg-card/80 text-muted-foreground backdrop-blur transition-colors hover:text-foreground ${className ?? ""}`, children: Glyph }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=copy-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-button.js","sourceRoot":"","sources":["../../../src/v2/ui/copy-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE7D,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,EACT,IAAI,GAAG,IAAI,EACX,KAAK,GAON;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAErC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CACrB,KAAC,KAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,YAAY,GAAG,CAC3D,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,GAAI,CACrB,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,uMACT,SAAS,IAAI,EACf,EAAE,aAED,KAAK,EACL,KAAK,IACC,CACV,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,gBACD,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EACtC,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,QAAQ,GAAG,uJACpB,SAAS,IAAI,EACf,EAAE,YAED,KAAK,GACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ColumnDef, type SortingState } from "@tanstack/react-table";
|
|
3
|
+
/** Per-column presentation hints, read off `columnDef.meta`. */
|
|
4
|
+
export type ColumnMeta = {
|
|
5
|
+
align?: "left" | "right" | "center";
|
|
6
|
+
headerClassName?: string;
|
|
7
|
+
cellClassName?: string;
|
|
8
|
+
/** Fixed pixel width for this column. */
|
|
9
|
+
width?: number;
|
|
10
|
+
};
|
|
11
|
+
export type DataTableProps<T> = {
|
|
12
|
+
columns: ColumnDef<T, unknown>[];
|
|
13
|
+
data: T[];
|
|
14
|
+
/** Stable row id — defaults to index. */
|
|
15
|
+
getRowId?: (row: T) => string;
|
|
16
|
+
/** Whole-row navigation target. Rows become clickable when provided. */
|
|
17
|
+
rowHref?: (row: T) => string;
|
|
18
|
+
/** Whole-row action for in-page navigation. */
|
|
19
|
+
rowOnClick?: (row: T) => void;
|
|
20
|
+
/** Optional expanded row renderer, displayed directly below the matching row. */
|
|
21
|
+
renderExpandedRow?: (row: T) => ReactNode;
|
|
22
|
+
/** Whether a row should render its expanded content. */
|
|
23
|
+
isRowExpanded?: (row: T) => boolean;
|
|
24
|
+
/** Inline search box. Omit to hide. */
|
|
25
|
+
searchPlaceholder?: string;
|
|
26
|
+
/** Custom matcher for the search box. Defaults to substring over all cells. */
|
|
27
|
+
searchFn?: (row: T, query: string) => boolean;
|
|
28
|
+
/** Inline filter controls, rendered after the search box. */
|
|
29
|
+
filters?: ReactNode;
|
|
30
|
+
/** Right-aligned toolbar slot (e.g. a refresh control). */
|
|
31
|
+
rightSlot?: ReactNode;
|
|
32
|
+
pageSize?: number;
|
|
33
|
+
initialSorting?: SortingState;
|
|
34
|
+
/** Empty state when there is no data at all. */
|
|
35
|
+
empty?: ReactNode;
|
|
36
|
+
/** Empty state when filters/search exclude everything. */
|
|
37
|
+
emptyFiltered?: ReactNode;
|
|
38
|
+
};
|
|
39
|
+
export declare function DataTable<T>({ columns, data, getRowId, rowHref, rowOnClick, renderExpandedRow, isRowExpanded, searchPlaceholder, searchFn, filters, rightSlot, pageSize, initialSorting, empty, emptyFiltered, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
//# sourceMappingURL=data-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EAQlB,MAAM,uBAAuB,CAAC;AAW/B,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,wEAAwE;IACxE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IAC1C,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;IACpC,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,6DAA6D;IAC7D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAC3B,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAa,EACb,cAAmB,EACnB,KAAK,EACL,aAAa,GACd,EAAE,cAAc,CAAC,CAAC,CAAC,2CAsOnB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Fragment, useState } from "react";
|
|
4
|
+
import { flexRender, getCoreRowModel, getSortedRowModel, getFilteredRowModel, getPaginationRowModel, useReactTable, } from "@tanstack/react-table";
|
|
5
|
+
import { MagnifyingGlass, CaretUp, CaretDown, CaretUpDown, CaretLeft, CaretRight, } from "@phosphor-icons/react/dist/ssr";
|
|
6
|
+
import { useDashboardHost } from "../../host.js";
|
|
7
|
+
export function DataTable({ columns, data, getRowId, rowHref, rowOnClick, renderExpandedRow, isRowExpanded, searchPlaceholder, searchFn, filters, rightSlot, pageSize = 12, initialSorting = [], empty, emptyFiltered, }) {
|
|
8
|
+
const host = useDashboardHost();
|
|
9
|
+
const [sorting, setSorting] = useState(initialSorting);
|
|
10
|
+
const [globalFilter, setGlobalFilter] = useState("");
|
|
11
|
+
const globalFilterFn = (row, _columnId, value) => {
|
|
12
|
+
const q = String(value).trim().toLowerCase();
|
|
13
|
+
if (!q)
|
|
14
|
+
return true;
|
|
15
|
+
if (searchFn)
|
|
16
|
+
return searchFn(row.original, q);
|
|
17
|
+
return Object.values(row.original).some((v) => String(v ?? "").toLowerCase().includes(q));
|
|
18
|
+
};
|
|
19
|
+
const table = useReactTable({
|
|
20
|
+
data,
|
|
21
|
+
columns,
|
|
22
|
+
state: { sorting, globalFilter },
|
|
23
|
+
onSortingChange: setSorting,
|
|
24
|
+
onGlobalFilterChange: setGlobalFilter,
|
|
25
|
+
globalFilterFn,
|
|
26
|
+
getRowId: getRowId ? (row) => getRowId(row) : undefined,
|
|
27
|
+
getCoreRowModel: getCoreRowModel(),
|
|
28
|
+
getSortedRowModel: getSortedRowModel(),
|
|
29
|
+
getFilteredRowModel: getFilteredRowModel(),
|
|
30
|
+
getPaginationRowModel: getPaginationRowModel(),
|
|
31
|
+
initialState: { pagination: { pageSize } },
|
|
32
|
+
});
|
|
33
|
+
const rows = table.getRowModel().rows;
|
|
34
|
+
const filteredCount = table.getFilteredRowModel().rows.length;
|
|
35
|
+
const showToolbar = searchPlaceholder || filters || rightSlot;
|
|
36
|
+
const showPagination = table.getPageCount() > 1;
|
|
37
|
+
return (_jsxs("div", { className: "flex flex-col gap-3", children: [showToolbar && (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [searchPlaceholder && (_jsxs("div", { className: "relative", children: [_jsx(MagnifyingGlass, { size: 14, className: "pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground" }), _jsx("input", { value: globalFilter, onChange: (e) => setGlobalFilter(e.target.value), placeholder: searchPlaceholder, className: "h-8 w-56 rounded-md border border-border bg-transparent pl-8 pr-3 text-[13px] text-foreground placeholder:text-muted-foreground/50 focus:border-ring/50 focus:outline-none" })] })), filters, _jsx("div", { className: "ml-auto flex items-center gap-3", children: rightSlot })] })), _jsxs("div", { className: "overflow-hidden rounded-lg border border-border bg-card", children: [_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full border-collapse text-sm", children: [_jsx("thead", { children: table.getHeaderGroups().map((hg) => (_jsx("tr", { className: "border-b border-border", children: hg.headers.map((header) => {
|
|
38
|
+
const meta = header.column.columnDef.meta;
|
|
39
|
+
const canSort = header.column.getCanSort();
|
|
40
|
+
const sorted = header.column.getIsSorted();
|
|
41
|
+
return (_jsx("th", { style: meta?.width ? { width: meta.width } : undefined, className: `bg-muted/40 px-3.5 py-2 text-[11px] font-medium uppercase tracking-[0.06em] text-muted-foreground ${meta?.align === "right"
|
|
42
|
+
? "text-right"
|
|
43
|
+
: meta?.align === "center"
|
|
44
|
+
? "text-center"
|
|
45
|
+
: "text-left"} ${meta?.headerClassName ?? ""}`, children: header.isPlaceholder ? null : canSort ? (_jsxs("button", { type: "button", onClick: header.column.getToggleSortingHandler(), className: `inline-flex items-center gap-1 transition-colors hover:text-foreground ${meta?.align === "right"
|
|
46
|
+
? "flex-row-reverse"
|
|
47
|
+
: ""}`, children: [flexRender(header.column.columnDef.header, header.getContext()), sorted === "asc" ? (_jsx(CaretUp, { size: 11, weight: "bold", className: "text-foreground" })) : sorted === "desc" ? (_jsx(CaretDown, { size: 11, weight: "bold", className: "text-foreground" })) : (_jsx(CaretUpDown, { size: 11, className: "text-muted-foreground/40" }))] })) : (flexRender(header.column.columnDef.header, header.getContext())) }, header.id));
|
|
48
|
+
}) }, hg.id))) }), _jsxs("tbody", { children: [rows.map((row) => {
|
|
49
|
+
const href = rowHref?.(row.original);
|
|
50
|
+
const clickable = !!href || !!rowOnClick;
|
|
51
|
+
const expanded = renderExpandedRow && isRowExpanded?.(row.original);
|
|
52
|
+
return (_jsxs(Fragment, { children: [_jsx("tr", { "data-row": true, onClick: clickable
|
|
53
|
+
? () => {
|
|
54
|
+
if (href) {
|
|
55
|
+
host.navigate(href);
|
|
56
|
+
}
|
|
57
|
+
else
|
|
58
|
+
rowOnClick?.(row.original);
|
|
59
|
+
}
|
|
60
|
+
: undefined, onKeyDown: clickable
|
|
61
|
+
? (e) => {
|
|
62
|
+
if (e.key !== "Enter")
|
|
63
|
+
return;
|
|
64
|
+
if (href) {
|
|
65
|
+
host.navigate(href);
|
|
66
|
+
}
|
|
67
|
+
else
|
|
68
|
+
rowOnClick?.(row.original);
|
|
69
|
+
}
|
|
70
|
+
: undefined, tabIndex: clickable ? 0 : undefined, className: `group border-b border-border transition-colors ${clickable ? "cursor-pointer hover:bg-secondary/50" : ""} ${expanded ? "bg-secondary/30" : ""}`, children: row.getVisibleCells().map((cell) => {
|
|
71
|
+
const meta = cell.column.columnDef.meta;
|
|
72
|
+
return (_jsx("td", { className: `min-w-0 px-3.5 py-2.5 align-middle ${meta?.align === "right"
|
|
73
|
+
? "text-right"
|
|
74
|
+
: meta?.align === "center"
|
|
75
|
+
? "text-center"
|
|
76
|
+
: "text-left"} ${meta?.cellClassName ?? ""}`, children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id));
|
|
77
|
+
}) }), expanded && (_jsx("tr", { className: "border-b border-border last:border-0", children: _jsx("td", { colSpan: columns.length, className: "bg-background p-3", children: renderExpandedRow(row.original) }) }))] }, row.id));
|
|
78
|
+
}), rows.length === 0 && (_jsx("tr", { children: _jsx("td", { colSpan: columns.length, className: "px-3.5 py-14 text-center", children: data.length === 0
|
|
79
|
+
? (empty ?? (_jsx("span", { className: "text-sm text-muted-foreground", children: "Nothing here yet." })))
|
|
80
|
+
: (emptyFiltered ?? (_jsx("span", { className: "text-sm text-muted-foreground", children: "No matches." }))) }) }))] })] }) }), showPagination && (_jsxs("div", { className: "flex items-center justify-between border-t border-border px-3.5 py-2", children: [_jsxs("span", { className: "text-xs text-muted-foreground", "data-tabular": true, children: [table.getState().pagination.pageIndex * pageSize + 1, "\u2013", Math.min((table.getState().pagination.pageIndex + 1) * pageSize, filteredCount), " ", "of ", filteredCount] }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(PagerButton, { disabled: !table.getCanPreviousPage(), onClick: () => table.previousPage(), label: "Previous page", children: _jsx(CaretLeft, { size: 13 }) }), _jsx(PagerButton, { disabled: !table.getCanNextPage(), onClick: () => table.nextPage(), label: "Next page", children: _jsx(CaretRight, { size: 13 }) })] })] }))] })] }));
|
|
81
|
+
}
|
|
82
|
+
function PagerButton({ children, disabled, onClick, label, }) {
|
|
83
|
+
return (_jsx("button", { type: "button", onClick: onClick, disabled: disabled, "aria-label": label, className: "grid h-7 w-7 place-items-center rounded-md border border-border text-muted-foreground transition-colors hover:bg-secondary hover:text-foreground disabled:pointer-events-none disabled:opacity-30", children: children }));
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../src/v2/ui/data-table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
|
|
3
|
+
declare function Dialog(props: DialogPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function DialogTrigger(props: DialogPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function DialogPortal(props: DialogPrimitive.Portal.Props): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function DialogClose(props: DialogPrimitive.Close.Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function DialogOverlay({ className, ...props }: DialogPrimitive.Backdrop.Props): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function DialogContent({ className, children, showCloseButton, ...props }: DialogPrimitive.Popup.Props & {
|
|
9
|
+
showCloseButton?: boolean;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function DialogTitle({ className, ...props }: DialogPrimitive.Title.Props): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function DialogDescription({ className, ...props }: DialogPrimitive.Description.Props): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
16
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKlE,iBAAS,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,2CAEhD;AACD,iBAAS,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,2CAE1D;AACD,iBAAS,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,2CAExD;AACD,iBAAS,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,2CAEtD;AACD,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,2CAQ7E;AACD,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAsB,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,2CAmB5I;AACD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAEzE;AACD,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAEzE;AACD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,2CAExE;AACD,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,2CAEpF;AAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
|