@tangle-network/sandbox-ui 0.13.0 → 0.15.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/dist/auth.d.ts +1 -74
- package/dist/auth.js +1 -4
- package/dist/chat.d.ts +1 -136
- package/dist/chat.js +2 -15
- package/dist/chunk-2BUPSB7O.js +0 -0
- package/dist/chunk-3J6FG3FJ.js +18 -0
- package/dist/chunk-76IQLPW2.js +206 -0
- package/dist/chunk-7ZA5SEK3.js +239 -0
- package/dist/{chunk-ESVYBDGA.js → chunk-AG7QDC2Q.js} +182 -2
- package/dist/chunk-AHBZCBDO.js +2960 -0
- package/dist/chunk-AZ3AWMTM.js +8 -0
- package/dist/chunk-CMY7W45U.js +380 -0
- package/dist/{chunk-QMU2PWOU.js → chunk-DNZ4DTNA.js} +71 -17
- package/dist/chunk-EI44GEQ5.js +6 -0
- package/dist/{chunk-5OQ27N57.js → chunk-GPT7VKK6.js} +34 -38
- package/dist/chunk-JBGKGLD7.js +16 -0
- package/dist/chunk-NJNME4J4.js +14 -0
- package/dist/chunk-QPAJR74X.js +20 -0
- package/dist/chunk-TK46XFLM.js +28 -0
- package/dist/chunk-WID73FPH.js +89 -0
- package/dist/chunk-YVXK4XRO.js +30 -0
- package/dist/dashboard.d.ts +538 -4
- package/dist/dashboard.js +15 -886
- package/dist/editor.d.ts +1 -120
- package/dist/editor.js +1 -5
- package/dist/files.d.ts +1 -129
- package/dist/files.js +2 -7
- package/dist/globals.css +5 -1265
- package/dist/hooks.d.ts +114 -11
- package/dist/hooks.js +17 -88
- package/dist/index.d.ts +24 -99
- package/dist/index.js +247 -252
- package/dist/markdown.d.ts +1 -29
- package/dist/markdown.js +2 -2
- package/dist/openui.d.ts +8 -115
- package/dist/openui.js +1 -6
- package/dist/pages.d.ts +1 -2
- package/dist/pages.js +68 -66
- package/dist/primitives.d.ts +14 -49
- package/dist/primitives.js +69 -77
- package/dist/run.d.ts +1 -14
- package/dist/run.js +2 -22
- package/dist/sdk-hooks.d.ts +3 -283
- package/dist/sdk-hooks.js +10 -14
- package/dist/stores.d.ts +2 -14
- package/dist/stores.js +11 -39
- package/dist/styles.css +5 -1265
- package/dist/{usage-chart-CPTcNlGs.d.ts → template-card-UhV3pmRC.d.ts} +16 -1
- package/dist/terminal.js +39 -2
- package/dist/types.d.ts +11 -8
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +1 -44
- package/dist/utils.js +6 -12
- package/dist/workspace.d.ts +5 -10
- package/dist/workspace.js +3 -19
- package/package.json +23 -54
- package/dist/active-sessions-store-CeOmXgv5.d.ts +0 -85
- package/dist/artifact-pane-Bh45Ssco.d.ts +0 -24
- package/dist/branding-DCi5VEik.d.ts +0 -13
- package/dist/button-CMQuQEW_.d.ts +0 -17
- package/dist/chat-container-f4yEs6KN.d.ts +0 -106
- package/dist/chunk-34A66VBG.js +0 -214
- package/dist/chunk-34I7UFSX.js +0 -92
- package/dist/chunk-36QY2W5G.js +0 -802
- package/dist/chunk-4CLN43XT.js +0 -45
- package/dist/chunk-54SQQMMM.js +0 -156
- package/dist/chunk-66EZOYZR.js +0 -102
- package/dist/chunk-BX6AQMUS.js +0 -183
- package/dist/chunk-DI3NZ5ZX.js +0 -192
- package/dist/chunk-DPGIXDAI.js +0 -220
- package/dist/chunk-DXMIEK4K.js +0 -1426
- package/dist/chunk-GSZA3TSY.js +0 -79
- package/dist/chunk-HB5Y37YU.js +0 -54
- package/dist/chunk-LQNEZDRM.js +0 -109
- package/dist/chunk-MA7YKRUP.js +0 -131
- package/dist/chunk-MKTSMWVD.js +0 -109
- package/dist/chunk-MQXABZTB.js +0 -1348
- package/dist/chunk-MT5FJ3ZT.js +0 -186
- package/dist/chunk-NKUPJC34.js +0 -2070
- package/dist/chunk-OEX7NZE3.js +0 -321
- package/dist/chunk-OKLQVY3Y.js +0 -139
- package/dist/chunk-Q56BYXQF.js +0 -61
- package/dist/chunk-QD4QE5P5.js +0 -40
- package/dist/chunk-QDH5GEGY.js +0 -630
- package/dist/chunk-QID2OOMG.js +0 -133
- package/dist/chunk-RQHJBTEU.js +0 -10
- package/dist/chunk-T7HMZEVO.js +0 -216
- package/dist/chunk-U6QTHMY6.js +0 -1290
- package/dist/chunk-US6JKJKH.js +0 -124
- package/dist/chunk-VX3XOUEB.js +0 -63
- package/dist/chunk-XLG757B6.js +0 -933
- package/dist/chunk-ZMNSRDMH.js +0 -127
- package/dist/chunk-ZNCEM5CD.js +0 -316
- package/dist/document-editor-pane-A70-EhdQ.d.ts +0 -124
- package/dist/document-editor-pane-TLPVRBBU.js +0 -11
- package/dist/expanded-tool-detail-Dh99mcbY.d.ts +0 -63
- package/dist/file-tabs-BLfxfmAH.d.ts +0 -51
- package/dist/parts-CyGkM6Fp.d.ts +0 -50
- package/dist/run-CtFZ6s-D.d.ts +0 -41
- package/dist/sidebar-drop-zone-tDBsuOH5.d.ts +0 -301
- package/dist/sidecar-CFU2W9j1.d.ts +0 -8
- package/dist/template-card-BAtvcAkU.d.ts +0 -18
- package/dist/tool-call-feed-Bs3MyQMT.d.ts +0 -68
- package/dist/tool-display-Ct9nFAzJ.d.ts +0 -32
- package/dist/use-sandbox-metrics-B64diPqN.d.ts +0 -141
- package/dist/variant-list-BrHYcBCk.d.ts +0 -540
package/dist/markdown.d.ts
CHANGED
|
@@ -1,29 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { HTMLAttributes, ReactNode } from 'react';
|
|
3
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
interface CodeBlockProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
code: string;
|
|
7
|
-
language?: string;
|
|
8
|
-
showLineNumbers?: boolean;
|
|
9
|
-
/** Force light theme; defaults to dark */
|
|
10
|
-
light?: boolean;
|
|
11
|
-
children?: ReactNode;
|
|
12
|
-
}
|
|
13
|
-
declare const CodeBlock: React.MemoExoticComponent<({ code, language, showLineNumbers, light: lightProp, className, children, ...props }: CodeBlockProps) => react_jsx_runtime.JSX.Element>;
|
|
14
|
-
/** Copy-to-clipboard button for use inside CodeBlock. */
|
|
15
|
-
declare const CopyButton: React.MemoExoticComponent<({ text }: {
|
|
16
|
-
text: string;
|
|
17
|
-
}) => react_jsx_runtime.JSX.Element>;
|
|
18
|
-
|
|
19
|
-
interface MarkdownProps {
|
|
20
|
-
children: string;
|
|
21
|
-
className?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Renders Markdown content with GFM support, XSS sanitisation, and
|
|
25
|
-
* custom code block rendering via our CodeBlock component.
|
|
26
|
-
*/
|
|
27
|
-
declare const Markdown: React.MemoExoticComponent<({ children, className }: MarkdownProps) => react_jsx_runtime.JSX.Element>;
|
|
28
|
-
|
|
29
|
-
export { CodeBlock, type CodeBlockProps, CopyButton, Markdown, type MarkdownProps };
|
|
1
|
+
export { CodeBlock, CodeBlockProps, CopyButton, Markdown, MarkdownProps } from '@tangle-network/ui/markdown';
|
package/dist/markdown.js
CHANGED
package/dist/openui.d.ts
CHANGED
|
@@ -1,115 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
onPress?: () => void;
|
|
11
|
-
}
|
|
12
|
-
interface OpenUIBaseNode {
|
|
13
|
-
id?: string;
|
|
14
|
-
}
|
|
15
|
-
interface OpenUIHeadingNode extends OpenUIBaseNode {
|
|
16
|
-
type: "heading";
|
|
17
|
-
text: string;
|
|
18
|
-
level?: 1 | 2 | 3 | 4;
|
|
19
|
-
kicker?: string;
|
|
20
|
-
meta?: string;
|
|
21
|
-
}
|
|
22
|
-
interface OpenUITextNode extends OpenUIBaseNode {
|
|
23
|
-
type: "text";
|
|
24
|
-
text: string;
|
|
25
|
-
tone?: "default" | "muted" | "success" | "warning" | "error";
|
|
26
|
-
mono?: boolean;
|
|
27
|
-
}
|
|
28
|
-
interface OpenUIBadgeNode extends OpenUIBaseNode {
|
|
29
|
-
type: "badge";
|
|
30
|
-
label: string;
|
|
31
|
-
tone?: "default" | "secondary" | "success" | "warning" | "error" | "info" | "sandbox";
|
|
32
|
-
}
|
|
33
|
-
interface OpenUIStatNode extends OpenUIBaseNode {
|
|
34
|
-
type: "stat";
|
|
35
|
-
label: string;
|
|
36
|
-
value: string;
|
|
37
|
-
change?: string;
|
|
38
|
-
tone?: "default" | "success" | "warning" | "error" | "info";
|
|
39
|
-
}
|
|
40
|
-
interface OpenUIKeyValueNode extends OpenUIBaseNode {
|
|
41
|
-
type: "key_value";
|
|
42
|
-
items: Array<{
|
|
43
|
-
id?: string;
|
|
44
|
-
label: string;
|
|
45
|
-
value: ReactNode | OpenUIPrimitive;
|
|
46
|
-
tone?: "default" | "muted";
|
|
47
|
-
}>;
|
|
48
|
-
}
|
|
49
|
-
interface OpenUICodeNode extends OpenUIBaseNode {
|
|
50
|
-
type: "code";
|
|
51
|
-
code: string;
|
|
52
|
-
language?: string;
|
|
53
|
-
title?: string;
|
|
54
|
-
showLineNumbers?: boolean;
|
|
55
|
-
}
|
|
56
|
-
interface OpenUIMarkdownNode extends OpenUIBaseNode {
|
|
57
|
-
type: "markdown";
|
|
58
|
-
content: string;
|
|
59
|
-
}
|
|
60
|
-
interface OpenUITableNode extends OpenUIBaseNode {
|
|
61
|
-
type: "table";
|
|
62
|
-
columns: Array<{
|
|
63
|
-
key: string;
|
|
64
|
-
header: string;
|
|
65
|
-
align?: "left" | "right";
|
|
66
|
-
}>;
|
|
67
|
-
rows: Array<Record<string, ReactNode | OpenUIPrimitive>>;
|
|
68
|
-
caption?: string;
|
|
69
|
-
}
|
|
70
|
-
interface OpenUIActionsNode extends OpenUIBaseNode {
|
|
71
|
-
type: "actions";
|
|
72
|
-
actions: OpenUIAction[];
|
|
73
|
-
}
|
|
74
|
-
interface OpenUISeparatorNode extends OpenUIBaseNode {
|
|
75
|
-
type: "separator";
|
|
76
|
-
label?: string;
|
|
77
|
-
}
|
|
78
|
-
interface OpenUIStackNode extends OpenUIBaseNode {
|
|
79
|
-
type: "stack";
|
|
80
|
-
direction?: "row" | "column";
|
|
81
|
-
gap?: "sm" | "md" | "lg";
|
|
82
|
-
align?: "start" | "center" | "end" | "stretch";
|
|
83
|
-
wrap?: boolean;
|
|
84
|
-
children: OpenUIComponentNode[];
|
|
85
|
-
}
|
|
86
|
-
interface OpenUIGridNode extends OpenUIBaseNode {
|
|
87
|
-
type: "grid";
|
|
88
|
-
columns?: 1 | 2 | 3 | 4;
|
|
89
|
-
gap?: "sm" | "md" | "lg";
|
|
90
|
-
children: OpenUIComponentNode[];
|
|
91
|
-
}
|
|
92
|
-
interface OpenUICardNode extends OpenUIBaseNode {
|
|
93
|
-
type: "card";
|
|
94
|
-
title?: string;
|
|
95
|
-
description?: string;
|
|
96
|
-
eyebrow?: string;
|
|
97
|
-
badge?: OpenUIBadgeNode;
|
|
98
|
-
actions?: OpenUIAction[];
|
|
99
|
-
children?: OpenUIComponentNode[];
|
|
100
|
-
}
|
|
101
|
-
type OpenUIComponentNode = OpenUIActionsNode | OpenUIBadgeNode | OpenUICardNode | OpenUICodeNode | OpenUIGridNode | OpenUIHeadingNode | OpenUIKeyValueNode | OpenUIMarkdownNode | OpenUISeparatorNode | OpenUIStackNode | OpenUIStatNode | OpenUITableNode | OpenUITextNode;
|
|
102
|
-
interface OpenUIArtifactRendererProps {
|
|
103
|
-
schema: OpenUIComponentNode | OpenUIComponentNode[];
|
|
104
|
-
onAction?: (action: OpenUIAction) => void;
|
|
105
|
-
className?: string;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* OpenUIArtifactRenderer — contained renderer for OpenUI-like structured
|
|
109
|
-
* artifact payloads using sandbox-ui primitives and theme tokens. This is an
|
|
110
|
-
* extension surface for generated inspectors/results, not a replacement for
|
|
111
|
-
* the sandbox shell.
|
|
112
|
-
*/
|
|
113
|
-
declare function OpenUIArtifactRenderer({ schema, onAction, className, }: OpenUIArtifactRendererProps): react_jsx_runtime.JSX.Element;
|
|
114
|
-
|
|
115
|
-
export { type OpenUIAction, type OpenUIActionsNode, OpenUIArtifactRenderer, type OpenUIArtifactRendererProps, type OpenUIBadgeNode, type OpenUICardNode, type OpenUICodeNode, type OpenUIComponentNode, type OpenUIGridNode, type OpenUIHeadingNode, type OpenUIKeyValueNode, type OpenUIMarkdownNode, type OpenUIPrimitive, type OpenUISeparatorNode, type OpenUIStackNode, type OpenUIStatNode, type OpenUITableNode, type OpenUITextNode };
|
|
1
|
+
export { OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode } from '@tangle-network/ui/openui';
|
|
2
|
+
import '@tangle-network/ui/chat';
|
|
3
|
+
import '@tangle-network/ui/editor';
|
|
4
|
+
import '@tangle-network/ui/run';
|
|
5
|
+
import '@tangle-network/ui/files';
|
|
6
|
+
import '@tangle-network/ui/auth';
|
|
7
|
+
import '@tangle-network/ui/utils';
|
|
8
|
+
import '@tangle-network/ui/markdown';
|
package/dist/openui.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OpenUIArtifactRenderer
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-34I7UFSX.js";
|
|
5
|
-
import "./chunk-T7HMZEVO.js";
|
|
6
|
-
import "./chunk-ZMNSRDMH.js";
|
|
7
|
-
import "./chunk-MKTSMWVD.js";
|
|
8
|
-
import "./chunk-RQHJBTEU.js";
|
|
3
|
+
} from "./chunk-AZ3AWMTM.js";
|
|
9
4
|
export {
|
|
10
5
|
OpenUIArtifactRenderer
|
|
11
6
|
};
|
package/dist/pages.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { c as BillingSubscription, B as BillingBalance, d as BillingUsage, j as UsageDataPoint, f as PricingTier, g as TemplateCardData } from './template-card-UhV3pmRC.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { T as TemplateCardData } from './template-card-BAtvcAkU.js';
|
|
5
4
|
|
|
6
5
|
type ProductVariant$1 = "sandbox";
|
|
7
6
|
interface BillingPageData {
|
package/dist/pages.js
CHANGED
|
@@ -1,47 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Dialog,
|
|
3
|
-
DialogContent,
|
|
4
|
-
DialogDescription,
|
|
5
|
-
DialogFooter,
|
|
6
|
-
DialogHeader,
|
|
7
|
-
DialogTitle
|
|
8
|
-
} from "./chunk-US6JKJKH.js";
|
|
9
|
-
import {
|
|
10
|
-
Tabs,
|
|
11
|
-
TabsContent,
|
|
12
|
-
TabsList,
|
|
13
|
-
TabsTrigger
|
|
14
|
-
} from "./chunk-Q56BYXQF.js";
|
|
15
|
-
import {
|
|
16
|
-
EmptyState,
|
|
17
|
-
Input
|
|
18
|
-
} from "./chunk-MA7YKRUP.js";
|
|
19
|
-
import {
|
|
20
|
-
InfoPanel,
|
|
21
|
-
TemplateCard
|
|
22
|
-
} from "./chunk-VX3XOUEB.js";
|
|
23
1
|
import {
|
|
24
2
|
BillingDashboard,
|
|
3
|
+
InfoPanel,
|
|
25
4
|
PricingPage,
|
|
5
|
+
TemplateCard,
|
|
26
6
|
UsageChart
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import {
|
|
29
|
-
Skeleton,
|
|
30
|
-
SkeletonCard
|
|
31
|
-
} from "./chunk-66EZOYZR.js";
|
|
32
|
-
import {
|
|
33
|
-
Badge,
|
|
34
|
-
Card
|
|
35
|
-
} from "./chunk-ZMNSRDMH.js";
|
|
36
|
-
import {
|
|
37
|
-
Button
|
|
38
|
-
} from "./chunk-MKTSMWVD.js";
|
|
7
|
+
} from "./chunk-DNZ4DTNA.js";
|
|
39
8
|
import {
|
|
40
9
|
cn
|
|
41
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EI44GEQ5.js";
|
|
42
11
|
|
|
43
12
|
// src/pages/billing-page.tsx
|
|
44
13
|
import * as React from "react";
|
|
14
|
+
import { Skeleton, SkeletonCard } from "@tangle-network/ui/primitives";
|
|
15
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@tangle-network/ui/primitives";
|
|
45
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
46
17
|
var defaultBillingData = {
|
|
47
18
|
subscription: null,
|
|
@@ -1400,6 +1371,7 @@ function ProvisioningWizard({
|
|
|
1400
1371
|
|
|
1401
1372
|
// src/pages/pricing-page.tsx
|
|
1402
1373
|
import * as React3 from "react";
|
|
1374
|
+
import { Skeleton as Skeleton2, SkeletonCard as SkeletonCard2 } from "@tangle-network/ui/primitives";
|
|
1403
1375
|
import { ChevronDown } from "lucide-react";
|
|
1404
1376
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1405
1377
|
async function fetchTiersFromApi(apiBasePath) {
|
|
@@ -1493,13 +1465,13 @@ function StandalonePricingPage({
|
|
|
1493
1465
|
] }),
|
|
1494
1466
|
state.loading ? /* @__PURE__ */ jsxs3("div", { className: "space-y-8", children: [
|
|
1495
1467
|
/* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-center gap-4", children: [
|
|
1496
|
-
/* @__PURE__ */ jsx3(
|
|
1497
|
-
/* @__PURE__ */ jsx3(
|
|
1468
|
+
/* @__PURE__ */ jsx3(Skeleton2, { className: "h-10 w-24" }),
|
|
1469
|
+
/* @__PURE__ */ jsx3(Skeleton2, { className: "h-10 w-24" })
|
|
1498
1470
|
] }),
|
|
1499
1471
|
/* @__PURE__ */ jsxs3("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-3", children: [
|
|
1500
|
-
/* @__PURE__ */ jsx3(
|
|
1501
|
-
/* @__PURE__ */ jsx3(
|
|
1502
|
-
/* @__PURE__ */ jsx3(
|
|
1472
|
+
/* @__PURE__ */ jsx3(SkeletonCard2, { className: "h-[500px]" }),
|
|
1473
|
+
/* @__PURE__ */ jsx3(SkeletonCard2, { className: "h-[500px]" }),
|
|
1474
|
+
/* @__PURE__ */ jsx3(SkeletonCard2, { className: "h-[500px]" })
|
|
1503
1475
|
] })
|
|
1504
1476
|
] }) : state.error ? /* @__PURE__ */ jsxs3("div", { className: "flex flex-col items-center justify-center space-y-4 rounded-xl border border-destructive/20 bg-destructive/5 p-8 text-center", children: [
|
|
1505
1477
|
/* @__PURE__ */ jsx3("p", { className: "text-destructive text-sm font-medium", children: state.error }),
|
|
@@ -1549,6 +1521,19 @@ import {
|
|
|
1549
1521
|
Trash2 as Trash22
|
|
1550
1522
|
} from "lucide-react";
|
|
1551
1523
|
import * as React4 from "react";
|
|
1524
|
+
import { Button } from "@tangle-network/ui/primitives";
|
|
1525
|
+
import { Badge } from "@tangle-network/ui/primitives";
|
|
1526
|
+
import { Card } from "@tangle-network/ui/primitives";
|
|
1527
|
+
import {
|
|
1528
|
+
Dialog,
|
|
1529
|
+
DialogContent,
|
|
1530
|
+
DialogDescription,
|
|
1531
|
+
DialogFooter,
|
|
1532
|
+
DialogHeader,
|
|
1533
|
+
DialogTitle
|
|
1534
|
+
} from "@tangle-network/ui/primitives";
|
|
1535
|
+
import { EmptyState } from "@tangle-network/ui/primitives";
|
|
1536
|
+
import { Input } from "@tangle-network/ui/primitives";
|
|
1552
1537
|
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1553
1538
|
var TIER_LIMITS = {
|
|
1554
1539
|
free: 3,
|
|
@@ -2177,6 +2162,14 @@ function ProfileDetailDialog({
|
|
|
2177
2162
|
// src/pages/secrets-page.tsx
|
|
2178
2163
|
import * as React5 from "react";
|
|
2179
2164
|
import { Lock, Plus as Plus3, Trash2 as Trash23, Eye, EyeOff, AlertCircle as AlertCircle2, Key, Shield, CheckCircle, Users, ArrowRight } from "lucide-react";
|
|
2165
|
+
import {
|
|
2166
|
+
Dialog as Dialog2,
|
|
2167
|
+
DialogContent as DialogContent2,
|
|
2168
|
+
DialogDescription as DialogDescription2,
|
|
2169
|
+
DialogFooter as DialogFooter2,
|
|
2170
|
+
DialogHeader as DialogHeader2,
|
|
2171
|
+
DialogTitle as DialogTitle2
|
|
2172
|
+
} from "@tangle-network/ui/primitives";
|
|
2180
2173
|
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2181
2174
|
function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
2182
2175
|
const [secrets, setSecrets] = React5.useState([]);
|
|
@@ -2318,7 +2311,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2318
2311
|
/* @__PURE__ */ jsx5(AlertCircle2, { className: "h-5 w-5 text-destructive shrink-0" }),
|
|
2319
2312
|
/* @__PURE__ */ jsx5("p", { className: "text-destructive text-sm font-medium", children: error })
|
|
2320
2313
|
] }),
|
|
2321
|
-
/* @__PURE__ */ jsx5(
|
|
2314
|
+
/* @__PURE__ */ jsx5(Dialog2, { open: isCreateOpen, onOpenChange: (open) => {
|
|
2322
2315
|
if (!open) {
|
|
2323
2316
|
setIsCreateOpen(false);
|
|
2324
2317
|
setNewName("");
|
|
@@ -2326,10 +2319,10 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2326
2319
|
setCreateError(null);
|
|
2327
2320
|
setShowValue(false);
|
|
2328
2321
|
}
|
|
2329
|
-
}, children: /* @__PURE__ */ jsxs5(
|
|
2330
|
-
/* @__PURE__ */ jsxs5(
|
|
2331
|
-
/* @__PURE__ */ jsx5(
|
|
2332
|
-
/* @__PURE__ */ jsx5(
|
|
2322
|
+
}, children: /* @__PURE__ */ jsxs5(DialogContent2, { className: "max-w-md", children: [
|
|
2323
|
+
/* @__PURE__ */ jsxs5(DialogHeader2, { children: [
|
|
2324
|
+
/* @__PURE__ */ jsx5(DialogTitle2, { children: "Create Secret" }),
|
|
2325
|
+
/* @__PURE__ */ jsx5(DialogDescription2, { children: "Secrets are automatically exposed as environment variables across all your new sandboxes." })
|
|
2333
2326
|
] }),
|
|
2334
2327
|
/* @__PURE__ */ jsxs5(
|
|
2335
2328
|
"form",
|
|
@@ -2390,7 +2383,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2390
2383
|
}
|
|
2391
2384
|
),
|
|
2392
2385
|
createError && /* @__PURE__ */ jsx5("p", { className: "mt-3 text-sm text-destructive", children: createError }),
|
|
2393
|
-
/* @__PURE__ */ jsxs5(
|
|
2386
|
+
/* @__PURE__ */ jsxs5(DialogFooter2, { children: [
|
|
2394
2387
|
/* @__PURE__ */ jsx5(
|
|
2395
2388
|
"button",
|
|
2396
2389
|
{
|
|
@@ -2417,18 +2410,18 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2417
2410
|
)
|
|
2418
2411
|
] })
|
|
2419
2412
|
] }) }),
|
|
2420
|
-
/* @__PURE__ */ jsx5(
|
|
2413
|
+
/* @__PURE__ */ jsx5(Dialog2, { open: !!deleteTarget, onOpenChange: (open) => {
|
|
2421
2414
|
if (!open) setDeleteTarget(null);
|
|
2422
|
-
}, children: /* @__PURE__ */ jsxs5(
|
|
2423
|
-
/* @__PURE__ */ jsxs5(
|
|
2424
|
-
/* @__PURE__ */ jsx5(
|
|
2425
|
-
/* @__PURE__ */ jsxs5(
|
|
2415
|
+
}, children: /* @__PURE__ */ jsxs5(DialogContent2, { className: "max-w-sm", children: [
|
|
2416
|
+
/* @__PURE__ */ jsxs5(DialogHeader2, { children: [
|
|
2417
|
+
/* @__PURE__ */ jsx5(DialogTitle2, { children: "Delete Secret?" }),
|
|
2418
|
+
/* @__PURE__ */ jsxs5(DialogDescription2, { children: [
|
|
2426
2419
|
"This will permanently delete ",
|
|
2427
2420
|
/* @__PURE__ */ jsx5("span", { className: "font-mono font-bold text-foreground", children: deleteTarget }),
|
|
2428
2421
|
". Sandboxes using this secret will lose access to it."
|
|
2429
2422
|
] })
|
|
2430
2423
|
] }),
|
|
2431
|
-
/* @__PURE__ */ jsxs5(
|
|
2424
|
+
/* @__PURE__ */ jsxs5(DialogFooter2, { children: [
|
|
2432
2425
|
/* @__PURE__ */ jsx5(
|
|
2433
2426
|
"button",
|
|
2434
2427
|
{
|
|
@@ -2524,6 +2517,7 @@ function SecretsPage({ apiClient, className, teamSecretsHint }) {
|
|
|
2524
2517
|
|
|
2525
2518
|
// src/pages/templates-page.tsx
|
|
2526
2519
|
import { Layers as Layers2 } from "lucide-react";
|
|
2520
|
+
import { Skeleton as Skeleton3 } from "@tangle-network/ui/primitives";
|
|
2527
2521
|
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2528
2522
|
function TemplatesPage({ templates, loading = false, onUseTemplate, className }) {
|
|
2529
2523
|
return /* @__PURE__ */ jsxs6("div", { className: cn("space-y-8", className), children: [
|
|
@@ -2531,7 +2525,7 @@ function TemplatesPage({ templates, loading = false, onUseTemplate, className })
|
|
|
2531
2525
|
/* @__PURE__ */ jsx6("h1", { className: "font-bold text-3xl text-foreground", children: "Templates" }),
|
|
2532
2526
|
/* @__PURE__ */ jsx6("p", { className: "mt-1 text-muted-foreground", children: "Pre-configured environments to get started quickly" })
|
|
2533
2527
|
] }),
|
|
2534
|
-
loading || !templates ? /* @__PURE__ */ jsx6("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx6(
|
|
2528
|
+
loading || !templates ? /* @__PURE__ */ jsx6("div", { className: "grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx6(Skeleton3, { className: "h-56 rounded-2xl" }, i)) }) : templates.length === 0 ? /* @__PURE__ */ jsxs6("div", { className: "rounded-2xl border border-border bg-card p-16 text-center", children: [
|
|
2535
2529
|
/* @__PURE__ */ jsx6(Layers2, { className: "mx-auto mb-3 h-10 w-10 text-muted-foreground" }),
|
|
2536
2530
|
/* @__PURE__ */ jsx6("p", { className: "text-sm font-medium text-foreground mb-1", children: "No templates available" }),
|
|
2537
2531
|
/* @__PURE__ */ jsx6("p", { className: "text-sm text-muted-foreground", children: "Check back later for pre-configured environments." })
|
|
@@ -2567,6 +2561,14 @@ import {
|
|
|
2567
2561
|
MemoryStick,
|
|
2568
2562
|
Layers as Layers3
|
|
2569
2563
|
} from "lucide-react";
|
|
2564
|
+
import {
|
|
2565
|
+
Dialog as Dialog3,
|
|
2566
|
+
DialogContent as DialogContent3,
|
|
2567
|
+
DialogDescription as DialogDescription3,
|
|
2568
|
+
DialogFooter as DialogFooter3,
|
|
2569
|
+
DialogHeader as DialogHeader3,
|
|
2570
|
+
DialogTitle as DialogTitle3
|
|
2571
|
+
} from "@tangle-network/ui/primitives";
|
|
2570
2572
|
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2571
2573
|
var SCRIPT_TYPE_META = {
|
|
2572
2574
|
bash: {
|
|
@@ -2937,7 +2939,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
2937
2939
|
/* @__PURE__ */ jsx7(AlertCircle3, { className: "h-5 w-5 shrink-0 text-destructive" }),
|
|
2938
2940
|
/* @__PURE__ */ jsx7("p", { className: "text-sm font-medium text-destructive", children: error })
|
|
2939
2941
|
] }),
|
|
2940
|
-
/* @__PURE__ */ jsx7(
|
|
2942
|
+
/* @__PURE__ */ jsx7(Dialog3, { open: isDialogOpen, onOpenChange: setIsDialogOpen, children: /* @__PURE__ */ jsxs7(DialogContent3, { className: "max-w-2xl max-h-[90vh] overflow-y-auto", children: [
|
|
2941
2943
|
dialogStep === "picker" && /* @__PURE__ */ jsxs7(
|
|
2942
2944
|
"div",
|
|
2943
2945
|
{
|
|
@@ -2946,9 +2948,9 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
2946
2948
|
transitionDir === "back" ? "slide-in-from-left-4" : "slide-in-from-right-4"
|
|
2947
2949
|
),
|
|
2948
2950
|
children: [
|
|
2949
|
-
/* @__PURE__ */ jsxs7(
|
|
2950
|
-
/* @__PURE__ */ jsx7(
|
|
2951
|
-
/* @__PURE__ */ jsx7(
|
|
2951
|
+
/* @__PURE__ */ jsxs7(DialogHeader3, { children: [
|
|
2952
|
+
/* @__PURE__ */ jsx7(DialogTitle3, { children: "New Startup Script" }),
|
|
2953
|
+
/* @__PURE__ */ jsx7(DialogDescription3, { children: "Start from a template or create a blank script." })
|
|
2952
2954
|
] }),
|
|
2953
2955
|
/* @__PURE__ */ jsxs7("div", { className: "space-y-4 py-2", children: [
|
|
2954
2956
|
/* @__PURE__ */ jsxs7("div", { children: [
|
|
@@ -3002,9 +3004,9 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3002
3004
|
transitionDir === "forward" ? "slide-in-from-right-4" : "slide-in-from-left-4"
|
|
3003
3005
|
),
|
|
3004
3006
|
children: [
|
|
3005
|
-
/* @__PURE__ */ jsxs7(
|
|
3006
|
-
/* @__PURE__ */ jsx7(
|
|
3007
|
-
/* @__PURE__ */ jsx7(
|
|
3007
|
+
/* @__PURE__ */ jsxs7(DialogHeader3, { children: [
|
|
3008
|
+
/* @__PURE__ */ jsx7(DialogTitle3, { children: editingScript ? "Edit Script" : "Create Startup Script" }),
|
|
3009
|
+
/* @__PURE__ */ jsx7(DialogDescription3, { children: editingScript ? "Modify your startup script configuration." : "Define a shell script that runs when sandboxes start. Scripts execute before the AI agent." })
|
|
3008
3010
|
] }),
|
|
3009
3011
|
/* @__PURE__ */ jsxs7("div", { className: "space-y-5 py-2", children: [
|
|
3010
3012
|
/* @__PURE__ */ jsxs7("div", { children: [
|
|
@@ -3280,7 +3282,7 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3280
3282
|
/* @__PURE__ */ jsx7("p", { className: "text-sm text-destructive", children: formError })
|
|
3281
3283
|
] })
|
|
3282
3284
|
] }),
|
|
3283
|
-
/* @__PURE__ */ jsxs7(
|
|
3285
|
+
/* @__PURE__ */ jsxs7(DialogFooter3, { className: "flex items-center justify-between sm:justify-between", children: [
|
|
3284
3286
|
/* @__PURE__ */ jsx7("div", { children: !editingScript && /* @__PURE__ */ jsxs7(
|
|
3285
3287
|
"button",
|
|
3286
3288
|
{
|
|
@@ -3320,16 +3322,16 @@ function StartupScriptsPage({ apiClient, className }) {
|
|
|
3320
3322
|
`form-${stepKey}`
|
|
3321
3323
|
)
|
|
3322
3324
|
] }) }),
|
|
3323
|
-
/* @__PURE__ */ jsx7(
|
|
3324
|
-
/* @__PURE__ */ jsxs7(
|
|
3325
|
-
/* @__PURE__ */ jsx7(
|
|
3326
|
-
/* @__PURE__ */ jsxs7(
|
|
3325
|
+
/* @__PURE__ */ jsx7(Dialog3, { open: !!deleteTarget, onOpenChange: () => setDeleteTarget(null), children: /* @__PURE__ */ jsxs7(DialogContent3, { className: "max-w-md", children: [
|
|
3326
|
+
/* @__PURE__ */ jsxs7(DialogHeader3, { children: [
|
|
3327
|
+
/* @__PURE__ */ jsx7(DialogTitle3, { children: "Delete Startup Script" }),
|
|
3328
|
+
/* @__PURE__ */ jsxs7(DialogDescription3, { children: [
|
|
3327
3329
|
"Are you sure you want to delete \u201C",
|
|
3328
3330
|
deleteTarget?.name,
|
|
3329
3331
|
"\u201D? This action cannot be undone."
|
|
3330
3332
|
] })
|
|
3331
3333
|
] }),
|
|
3332
|
-
/* @__PURE__ */ jsxs7(
|
|
3334
|
+
/* @__PURE__ */ jsxs7(DialogFooter3, { children: [
|
|
3333
3335
|
/* @__PURE__ */ jsx7(
|
|
3334
3336
|
"button",
|
|
3335
3337
|
{
|
package/dist/primitives.d.ts
CHANGED
|
@@ -1,54 +1,19 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { A as Avatar, a as AvatarFallback, b as AvatarImage, B as Badge, c as BadgeProps, C as Card, d as CardContent, e as CardDescription, f as CardFooter, g as CardHeader, h as CardTitle, D as Dialog, i as DialogClose, j as DialogContent, k as DialogDescription, l as DialogFooter, m as DialogHeader, n as DialogOverlay, o as DialogPortal, p as DialogTitle, q as DialogTrigger, r as DropZone, s as DropZoneProps, t as DropdownMenu, u as DropdownMenuCheckboxItem, v as DropdownMenuContent, w as DropdownMenuGroup, x as DropdownMenuItem, y as DropdownMenuLabel, z as DropdownMenuPortal, E as DropdownMenuRadioGroup, F as DropdownMenuRadioItem, G as DropdownMenuSeparator, H as DropdownMenuShortcut, I as DropdownMenuSub, J as DropdownMenuSubContent, K as DropdownMenuSubTrigger, L as DropdownMenuTrigger, M as EmptyState, N as EmptyStateProps, O as Input, P as InputProps, Q as Label, R as Logo, S as LogoProps, T as Progress, U as Select, V as SelectContent, W as SelectGroup, X as SelectItem, Y as SelectLabel, Z as SelectScrollDownButton, _ as SelectScrollUpButton, $ as SelectSeparator, a0 as SelectTrigger, a1 as SelectValue, a2 as SidebarDropZone, a3 as SidebarDropZoneProps, a4 as Skeleton, a5 as SkeletonCard, a6 as SkeletonTable, a7 as StatCard, a8 as StatCardProps, a9 as Switch, aa as Table, ab as TableBody, ac as TableCaption, ad as TableCell, ae as TableFooter, af as TableHead, ag as TableHeader, ah as TableRow, ai as Tabs, aj as TabsContent, ak as TabsList, al as TabsTrigger, am as TangleKnot, an as TerminalCursor, ao as TerminalDisplay, ap as TerminalInput, aq as TerminalLine, ar as Textarea, as as TextareaProps, at as Toast, au as ToastContainer, av as ToastProvider, aw as UploadFile, ax as UploadProgress, ay as UploadProgressProps, az as badgeVariants, aA as useToast } from './sidebar-drop-zone-tDBsuOH5.js';
|
|
1
|
+
export { Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
|
|
3
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import 'class-variance-authority/types';
|
|
6
|
-
import '@radix-ui/react-dialog';
|
|
7
|
-
import 'class-variance-authority';
|
|
8
|
-
import '@radix-ui/react-avatar';
|
|
9
|
-
import '@radix-ui/react-dropdown-menu';
|
|
10
|
-
import '@radix-ui/react-select';
|
|
11
|
-
import '@radix-ui/react-tabs';
|
|
12
|
-
import '@radix-ui/react-progress';
|
|
13
|
-
import '@radix-ui/react-switch';
|
|
14
|
-
import '@radix-ui/react-label';
|
|
15
3
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
* between options (with wrapping), Home/End jump to first/last.
|
|
22
|
-
*
|
|
23
|
-
* **Accessibility:** Provide either `aria-label` or `aria-labelledby` — the
|
|
24
|
-
* ARIA spec requires every radiogroup to have an accessible name. A dev-mode
|
|
25
|
-
* console warning fires when both are omitted.
|
|
26
|
-
*
|
|
27
|
-
* Design rules baked into the default variant:
|
|
28
|
-
* - Only the SELECTED segment shows a surface colour + accent text.
|
|
29
|
-
* - Unselected segments have NO background — they're plain-text labels
|
|
30
|
-
* that darken on hover. This keeps the selected segment as the
|
|
31
|
-
* single visual anchor instead of the whole group competing with
|
|
32
|
-
* itself.
|
|
33
|
-
*/
|
|
34
|
-
interface SegmentedControlOption<T extends string = string> {
|
|
35
|
-
value: T;
|
|
36
|
-
label: React.ReactNode;
|
|
37
|
-
/** Rendered right of the label, typically a count or status pill. */
|
|
38
|
-
adornment?: React.ReactNode;
|
|
4
|
+
interface LogoProps {
|
|
5
|
+
variant?: "sandbox";
|
|
6
|
+
size?: "sm" | "md" | "lg" | "xl";
|
|
7
|
+
className?: string;
|
|
8
|
+
iconOnly?: boolean;
|
|
39
9
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* - "tabs" — horizontal with a bottom border so the selected pill
|
|
48
|
-
* reads as a classic tab (used on the Team page)
|
|
49
|
-
*/
|
|
50
|
-
variant?: "row" | "tabs";
|
|
10
|
+
declare function TangleKnot({ size, className }: {
|
|
11
|
+
size: number;
|
|
12
|
+
className?: string;
|
|
13
|
+
}): react_jsx_runtime.JSX.Element;
|
|
14
|
+
declare function Logo({ variant, size, className, iconOnly }: LogoProps): react_jsx_runtime.JSX.Element;
|
|
15
|
+
declare namespace Logo {
|
|
16
|
+
var displayName: string;
|
|
51
17
|
}
|
|
52
|
-
declare function SegmentedControl<T extends string = string>({ value, onValueChange, options, variant, className, ...rest }: SegmentedControlProps<T>): react_jsx_runtime.JSX.Element;
|
|
53
18
|
|
|
54
|
-
export {
|
|
19
|
+
export { Logo, type LogoProps, TangleKnot };
|