@tangle-network/sandbox-ui 0.125.2 → 0.126.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/dist/assets.d.ts +1 -27
- package/dist/assets.js +2 -76
- package/dist/{dashboard-Ce1Qy0Yv.js → dashboard-TI-fPoih.js} +43 -1024
- package/dist/dashboard.d.ts +3 -3
- package/dist/dashboard.js +3 -3
- package/dist/globals.css +0 -253
- package/dist/{index-B_Ae4rdp.d.ts → index-Bww3rzEG.d.ts} +1 -41
- package/dist/{index-CV-BKrDF.d.ts → index-DPTVn2nS.d.ts} +1 -1
- package/dist/{index-Qm_yQvZh.d.ts → index-DXxi5EtM.d.ts} +26 -208
- package/dist/{index-DloDwgbc.d.ts → index-Du0ovoHu.d.ts} +2 -2
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/{page-layout-DJV7cbxx.js → page-layout-2IRtfx51.js} +2 -38
- package/dist/pages.d.ts +20 -139
- package/dist/pages.js +28 -2073
- package/dist/{primitives-DLE_MCwZ.js → primitives-WP3v1yf0.js} +2 -2
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +1 -1
- package/dist/styles.css +0 -253
- package/dist/{template-card-L-4gmjx2.d.ts → usage-chart-BjM8ShvX.d.ts} +1 -16
- package/dist/{workbench-DLQ07SoM.js → workbench-BJlDJ8Cj.js} +16 -16
- package/dist/workbench.d.ts +1 -1
- package/dist/workbench.js +1 -1
- package/dist/{workspace-CjeZTLPQ.js → workspace-C68fk9qa.js} +3 -194
- package/dist/workspace.d.ts +2 -2
- package/dist/workspace.js +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-
|
|
2
|
-
import { $ as PageShell, A as DropdownMenuContent, At as TabsList, B as DropdownMenuSubContent, Bt as ToastContainer, C as DialogOverlay, Ct as TableCell, D as DropZone, Dt as TableRow, E as DialogTrigger, Et as TableHeader, F as DropdownMenuRadioGroup, G as Heading, Gt as buttonVariants, H as DropdownMenuTrigger, Ht as Toolbar, I as DropdownMenuRadioItem, J as Input, Jt as useTheme, K as IconTile, Kt as initialsOf, L as DropdownMenuSeparator, Lt as TextShimmer, M as DropdownMenuItem, Mt as Tag, N as DropdownMenuLabel, O as DropdownMenu, Ot as Tabs, P as DropdownMenuPortal, Pt as TerminalDisplay, Q as PageHeader, Qt as TangleKnot, R as DropdownMenuShortcut, Rt as Textarea, S as DialogHeader, St as TableCaption, T as DialogTitle, Tt as TableHead, U as EmptyState, Ut as UploadProgress, V as DropdownMenuSubTrigger, Vt as ToastProvider, W as FilterField, Wt as badgeVariants, X as Metric, Xt as SectionTitle, Y as Label, Yt as useToast, Z as MetricStrip, Zt as Logo, _ as Dialog, _t as StatusPill, a as Badge, at as SelectItem, b as DialogDescription, bt as Table, c as Card, ct as SelectScrollUpButton, d as CardFooter, dt as SelectValue, et as Progress, f as CardHeader, ft as SidebarDropZone, g as CopyButton, gt as StatCard, h as CodeBlock, ht as SkeletonTable, i as AvatarImage, it as SelectGroup, j as DropdownMenuGroup, jt as TabsTrigger, k as DropdownMenuCheckboxItem, kt as TabsContent, l as CardContent, lt as SelectSeparator, m as Chip, mt as SkeletonCard, n as Avatar, nt as Select, o as Button, ot as SelectLabel, p as CardTitle, pt as Skeleton, q as InlineCode, qt as toneFor, r as AvatarFallback, rt as SelectContent, s as CATEGORY_TONES, st as SelectScrollDownButton, tt as SegmentedControl, u as CardDescription, ut as SelectTrigger, v as DialogClose, vt as Switch, w as DialogPortal, wt as TableFooter, x as DialogFooter, xt as TableBody, y as DialogContent, yt as TONE_CLASSES, z as DropdownMenuSub, zt as ThemeToggle } from "./primitives-
|
|
1
|
+
import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-BJlDJ8Cj.js";
|
|
2
|
+
import { $ as PageShell, A as DropdownMenuContent, At as TabsList, B as DropdownMenuSubContent, Bt as ToastContainer, C as DialogOverlay, Ct as TableCell, D as DropZone, Dt as TableRow, E as DialogTrigger, Et as TableHeader, F as DropdownMenuRadioGroup, G as Heading, Gt as buttonVariants, H as DropdownMenuTrigger, Ht as Toolbar, I as DropdownMenuRadioItem, J as Input, Jt as useTheme, K as IconTile, Kt as initialsOf, L as DropdownMenuSeparator, Lt as TextShimmer, M as DropdownMenuItem, Mt as Tag, N as DropdownMenuLabel, O as DropdownMenu, Ot as Tabs, P as DropdownMenuPortal, Pt as TerminalDisplay, Q as PageHeader, Qt as TangleKnot, R as DropdownMenuShortcut, Rt as Textarea, S as DialogHeader, St as TableCaption, T as DialogTitle, Tt as TableHead, U as EmptyState, Ut as UploadProgress, V as DropdownMenuSubTrigger, Vt as ToastProvider, W as FilterField, Wt as badgeVariants, X as Metric, Xt as SectionTitle, Y as Label, Yt as useToast, Z as MetricStrip, Zt as Logo, _ as Dialog, _t as StatusPill, a as Badge, at as SelectItem, b as DialogDescription, bt as Table, c as Card, ct as SelectScrollUpButton, d as CardFooter, dt as SelectValue, et as Progress, f as CardHeader, ft as SidebarDropZone, g as CopyButton, gt as StatCard, h as CodeBlock, ht as SkeletonTable, i as AvatarImage, it as SelectGroup, j as DropdownMenuGroup, jt as TabsTrigger, k as DropdownMenuCheckboxItem, kt as TabsContent, l as CardContent, lt as SelectSeparator, m as Chip, mt as SkeletonCard, n as Avatar, nt as Select, o as Button, ot as SelectLabel, p as CardTitle, pt as Skeleton, q as InlineCode, qt as toneFor, r as AvatarFallback, rt as SelectContent, s as CATEGORY_TONES, st as SelectScrollDownButton, tt as SegmentedControl, u as CardDescription, ut as SelectTrigger, v as DialogClose, vt as Switch, w as DialogPortal, wt as TableFooter, x as DialogFooter, xt as TableBody, y as DialogContent, yt as TONE_CLASSES, z as DropdownMenuSub, zt as ThemeToggle } from "./primitives-WP3v1yf0.js";
|
|
3
3
|
import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
|
|
4
|
-
import {
|
|
5
|
-
import { $ as
|
|
4
|
+
import { _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, y as DirectoryPane } from "./workspace-C68fk9qa.js";
|
|
5
|
+
import { $ as useSidebar, A as parseInsufficientBalance, B as SidebarPanel, C as SandboxStatusPill, D as ResourceMeter, E as ResourceSnapshot, F as RailHeader, G as SidebarRailNav, H as SidebarPanelHeader, I as RailModeButton, J as SIDEBAR_PANEL_WIDTH, K as RailTooltip, L as RailSeparator, M as RailButton, N as RailExpandable, O as INSUFFICIENT_BALANCE_CODE, P as RailFlyout, Q as SidebarProvider, R as Sidebar, S as SANDBOX_STATUS, T as ActivityFeed, U as SidebarRail, V as SidebarPanelContent, W as SidebarRailFooter, X as SIDEBAR_RAIL_WIDTH, Y as SIDEBAR_RAIL_LABELED_WIDTH, Z as SIDEBAR_TOTAL_WIDTH, _ as BackendSelector, a as PortsList, b as SandboxCard, c as SystemLogsViewer, d as DashboardLayout, f as HARNESS_OPTIONS, g as HarnessLogo, h as HARNESS_BRAND, i as TemplateCard, j as ProfileAvatar, k as OutOfCreditsModal, l as MetricAreaChart, m as chatCapableHarnesses, n as SnapshotList, o as GitPanel, p as HarnessPicker, q as SIDEBAR_MOBILE_WIDTH, r as ProcessList, s as UsageSummary, t as PromoBanner, u as SidebarLayout, v as SandboxTable, w as sandboxStatus, x as canAdminSandbox, y as NewSandboxCard, z as SidebarContent } from "./dashboard-TI-fPoih.js";
|
|
6
6
|
import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
|
|
7
|
-
import { a as
|
|
7
|
+
import { a as formatPrice, i as PricingPage, n as SandboxPageShell, o as BillingDashboard, r as UsageChart, t as DashboardPageHeader } from "./page-layout-2IRtfx51.js";
|
|
8
8
|
import { t as usePtySession } from "./use-pty-session-Bf4hBLXJ.js";
|
|
9
9
|
import { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane, FilePreview, FileTabs, FileTree, RichFileTree, detectFileFormat, fileExtension, filterFileTree, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind } from "./files.js";
|
|
10
10
|
import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-CMRPEvon.js";
|
|
@@ -21,4 +21,4 @@ import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focus
|
|
|
21
21
|
import { TerminalCursor as TerminalDisplayCursor, TerminalInput as TerminalDisplayInput, TerminalLine as TerminalDisplayLine } from "@tangle-network/ui/primitives";
|
|
22
22
|
import { CodeBlock as CodeBlockDisplay, Markdown, getSanitizedMarkdownHeadingIdFromRawFragment } from "@tangle-network/ui/markdown";
|
|
23
23
|
import { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview } from "@tangle-network/ui/tool-previews";
|
|
24
|
-
export { ActivityFeed, AgentMessagingConnection, AgentProfilePicker, AgentTimeline,
|
|
24
|
+
export { ActivityFeed, AgentMessagingConnection, AgentProfilePicker, AgentTimeline, ApprovalQueue, ArtifactAgentDock, ArtifactPane, AuthHeader, Avatar, AvatarFallback, AvatarImage, BRAND_PRISM_THEME, BackendSelector, Badge, BillingDashboard, Button, CATEGORY_TONES, CSV_PREVIEW_ROW_LIMIT, CalendarView, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChangesPane, ChatContainer, ChatMessage, Chip, CodeBlock, CodeBlockDisplay, CodeSurface, CodeView, CommandPreview, CopyButton, DEFAULT_REASONING_LEVEL_OPTIONS, DashboardLayout, DashboardPageHeader, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, DiffStatsBadge, DiffView, DirectoryPane, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbeddedAppView, EmptyState, ExpandedToolDetail, FileArtifactPane, FileBreadcrumb, FilePreview, FileTabs, FileTree, FilterField, GitHubLoginButton, GitPanel, GitStatusBadge, GlobResultsPreview, GrepResultsPreview, HARNESS_BRAND, HARNESS_OPTIONS, HARNESS_REASONING_OPTIONS, HarnessLogo, HarnessPicker, Heading, INSUFFICIENT_BALANCE_CODE, IconTile, InlineCode, InlineThinkingItem, InlineToolItem, Input, Label, LiveDuration, LoginLayout, Logo, Markdown, MessageList, Metric, MetricAreaChart, MetricStrip, ModelBrandStack, NewSandboxCard, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, OutOfCreditsModal, PageHeader, PageShell, PanelHeader, PillTabs, PortsList, PreviewView, PricingPage, ProcessList, ProfileAvatar, Progress, PromoBanner, QuestionPreview, RailButton, RailExpandable, RailFlyout, RailHeader, RailModeButton, RailSeparator, RailTooltip, RealtimeSessionRegistry, ReasoningLevelPicker, ResourceMeter, ResourceSnapshot, RichFileTree, RunGroup, RunRowShell, RunRowStatusDot, RuntimePane, SANDBOX_STATUS, SESSION_CREATED_EVENT, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxArtifactPane, SandboxCard, SandboxPageShell, SandboxStatusPill, SandboxTable, SandboxWorkbench, SectionTitle, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SessionSidebar, Sidebar, SidebarContent, SidebarDropZone, SidebarLayout, SidebarPanel, SidebarPanelContent, SidebarPanelHeader, SidebarProvider, SidebarRail, SidebarRailFooter, SidebarRailNav, Skeleton, SkeletonCard, SkeletonTable, SnapshotList, StatCard, StatusBanner, StatusBar, StatusPill, Switch, SystemLogsViewer, TONE_CLASSES, TOOL_CATEGORY_ICONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TangleKnot, TangleLoginButton, TaskBoard, TemplateCard, TerminalDisplay, TerminalDisplayCursor, TerminalDisplayInput, TerminalDisplayLine, TerminalPanel, TextShimmer, Textarea, ThemeToggle, ThinkingIndicator, ToastContainer, ToastProvider, ToolCallFeed, Toolbar, UploadProgress, UsageChart, UsageSummary, UserMenu, UserMessage, WebSearchPreview, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, WriteFilePreview, activeSessionsAtom, addMessage, addParts, badgeVariants, buildUnifiedPatch, bumpActiveSessionActivity, buttonVariants, canAdminSandbox, canonicalModelId, chatCapableHarnesses, clearChat, cn, computeDiffStats, connectSession, copyText, createAuthFetcher, createFetchTransport, createShellShouldRevalidate, detectFileFormat, disconnectSession, dispatchSessionCreated, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatPrice, formatRelativeAge, formatUptime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, initialsOf, isStreamingAtom, messagesAtom, modelBrandFor, modelProvider, parseCsv, parseInsufficientBalance, parseToolEvent, partMapAtom, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, resolveLanguage, sandboxStatus, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, shellShouldRevalidate, snapHarnessToModel, timeAgo, toneFor, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useOptimisticSessionItems, useProjectActivity, useProjectSessions, usePtySession, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessionStream, useSessions, useSessionsByActivity, useSidebar, useSidecarAuth, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
|
|
@@ -2,7 +2,7 @@ import { t as cn } from "./utils-DzWbktWG.js";
|
|
|
2
2
|
import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, PageHeader, PageShell, Progress } from "@tangle-network/ui/primitives";
|
|
3
3
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
|
-
import {
|
|
5
|
+
import { Check, Zap } from "lucide-react";
|
|
6
6
|
//#region src/dashboard/billing-dashboard.tsx
|
|
7
7
|
const variantColors = { sandbox: {
|
|
8
8
|
accent: "text-[var(--accent-text)]",
|
|
@@ -531,42 +531,6 @@ function UsageChart({ data, title, unit, className }) {
|
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
533
|
//#endregion
|
|
534
|
-
//#region src/dashboard/template-card.tsx
|
|
535
|
-
function TemplateCard({ template, onUseTemplate, className }) {
|
|
536
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
537
|
-
className: cn("group relative flex flex-col justify-between rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-6 transition-colors hover:border-[var(--border-accent)]", className),
|
|
538
|
-
children: [/* @__PURE__ */ jsxs("div", { children: [
|
|
539
|
-
/* @__PURE__ */ jsx("div", {
|
|
540
|
-
className: "mb-4 flex h-12 w-12 items-center justify-center rounded-xl bg-surface-container-high border border-[var(--md3-outline-variant)]",
|
|
541
|
-
children: template.icon ?? /* @__PURE__ */ jsx("span", {
|
|
542
|
-
className: "text-lg font-bold text-primary",
|
|
543
|
-
children: template.name.charAt(0).toUpperCase()
|
|
544
|
-
})
|
|
545
|
-
}),
|
|
546
|
-
/* @__PURE__ */ jsx("h3", {
|
|
547
|
-
className: "mb-1 text-base font-bold text-foreground",
|
|
548
|
-
children: template.name
|
|
549
|
-
}),
|
|
550
|
-
/* @__PURE__ */ jsx("p", {
|
|
551
|
-
className: "text-sm text-muted-foreground leading-relaxed line-clamp-2",
|
|
552
|
-
children: template.description
|
|
553
|
-
}),
|
|
554
|
-
template.tags && template.tags.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
555
|
-
className: "mt-3 flex flex-wrap gap-1.5",
|
|
556
|
-
children: template.tags.map((tag, i) => /* @__PURE__ */ jsx("span", {
|
|
557
|
-
className: "rounded-full bg-surface-container-high px-2 py-0.5 text-[10px] font-medium text-muted-foreground",
|
|
558
|
-
children: tag
|
|
559
|
-
}, `${tag}-${i}`))
|
|
560
|
-
})
|
|
561
|
-
] }), /* @__PURE__ */ jsxs("button", {
|
|
562
|
-
type: "button",
|
|
563
|
-
onClick: () => onUseTemplate(template.id),
|
|
564
|
-
className: "mt-5 inline-flex w-full items-center justify-center gap-2 rounded-xl bg-primary/10 border border-primary/20 px-4 py-2.5 text-sm font-bold text-primary transition-colors hover:bg-primary hover:text-primary-foreground active:scale-[0.98]",
|
|
565
|
-
children: ["Use Template", /* @__PURE__ */ jsx(ArrowRight, { className: "h-4 w-4 transition-transform group-hover:translate-x-0.5" })]
|
|
566
|
-
})]
|
|
567
|
-
});
|
|
568
|
-
}
|
|
569
|
-
//#endregion
|
|
570
534
|
//#region src/dashboard/page-layout.tsx
|
|
571
535
|
/** Product page spacing; the generic UI PageShell remains an exact re-export. */
|
|
572
536
|
function SandboxPageShell({ children, className }) {
|
|
@@ -584,4 +548,4 @@ function DashboardPageHeader({ title, description, actions, className }) {
|
|
|
584
548
|
});
|
|
585
549
|
}
|
|
586
550
|
//#endregion
|
|
587
|
-
export {
|
|
551
|
+
export { formatPrice as a, PricingPage as i, SandboxPageShell as n, BillingDashboard as o, UsageChart as r, DashboardPageHeader as t };
|
package/dist/pages.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { r as ModelInfo } from "./model-brand-B9A4H9pJ.js";
|
|
2
|
-
import {
|
|
3
|
-
import * as React$
|
|
2
|
+
import { c as BillingBalance, d as BillingSubscription, f as BillingUsage, o as PricingTier, r as UsageDataPoint } from "./usage-chart-BjM8ShvX.js";
|
|
3
|
+
import * as React$2 from "react";
|
|
4
4
|
import { CSSProperties, ReactNode } from "react";
|
|
5
5
|
//#region src/pages/auth-page.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Shared, self-contained sign-in / sign-up page for every Tangle vertical app.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* `className`/`style`).
|
|
9
|
+
* Paints from Brand's semantic tokens, so it follows the app's light, dark or
|
|
10
|
+
* named theme, and every token carries a light fallback, so an app that loads
|
|
11
|
+
* no token sheet still renders a complete light page (the bug that made per-app
|
|
12
|
+
* hand-rolled logins drift was a Tangle button rendering dark-on-dark when an
|
|
13
|
+
* app didn't load the expected token sheet). Everything is overridable via props
|
|
14
|
+
* for per-app customization (`accent`, `providers`, copy, `className`/`style`).
|
|
15
15
|
*
|
|
16
16
|
* Each app's login route becomes a thin wrapper:
|
|
17
17
|
* export default () => <AuthPage product="Legal" tangleAuthUrl="/auth/tangle/start" />
|
|
@@ -47,10 +47,12 @@ interface AuthPageProps {
|
|
|
47
47
|
collectName?: boolean;
|
|
48
48
|
/** Footer link target for the opposite mode (signup from signin, vice versa). */
|
|
49
49
|
altHref?: string;
|
|
50
|
-
/** Primary (Tangle) button background. Default
|
|
50
|
+
/** Primary (Tangle) button background. Default the theme's ink (`--foreground`), which inverts in dark mode. */
|
|
51
51
|
accent?: string;
|
|
52
|
-
/** Primary button hover background. Default
|
|
52
|
+
/** Primary button hover background. Default the ink, or `accent`, at 88%. */
|
|
53
53
|
accentHover?: string;
|
|
54
|
+
/** Primary button label colour. Default the theme's canvas (`--background`) on the default ink, white on a custom `accent`. */
|
|
55
|
+
accentForeground?: string;
|
|
54
56
|
/** Optional brand-mark size in the lockup. Default "lg". */
|
|
55
57
|
logoSize?: "sm" | "md" | "lg" | "xl";
|
|
56
58
|
/** Escape hatch: extra class on the card. */
|
|
@@ -60,7 +62,7 @@ interface AuthPageProps {
|
|
|
60
62
|
/** Optional node rendered above the footer (legal copy, SSO notice, etc.). */
|
|
61
63
|
children?: ReactNode;
|
|
62
64
|
}
|
|
63
|
-
export declare function AuthPage({ product, tagline, mode, tangleAuthUrl, providers, socialHref, onEmailSubmit, collectName, altHref, accent, accentHover, logoSize, className, style, children }: AuthPageProps): import("react").JSX.Element;
|
|
65
|
+
export declare function AuthPage({ product, tagline, mode, tangleAuthUrl, providers, socialHref, onEmailSubmit, collectName, altHref, accent, accentHover, accentForeground, logoSize, className, style, children }: AuthPageProps): import("react").JSX.Element;
|
|
64
66
|
//#endregion
|
|
65
67
|
//#region src/pages/billing-page.d.ts
|
|
66
68
|
type ProductVariant = "sandbox";
|
|
@@ -80,14 +82,14 @@ interface BillingPageProps {
|
|
|
80
82
|
onSelectTier?: (tierId: string) => void;
|
|
81
83
|
fetchBillingData?: () => Promise<BillingPageData>;
|
|
82
84
|
}
|
|
83
|
-
export declare function BillingPage({ variant, initialData, apiBasePath, onManageSubscription, onAddCredits, onSelectTier, fetchBillingData }: BillingPageProps): React$
|
|
85
|
+
export declare function BillingPage({ variant, initialData, apiBasePath, onManageSubscription, onAddCredits, onSelectTier, fetchBillingData }: BillingPageProps): React$2.JSX.Element;
|
|
84
86
|
//#endregion
|
|
85
|
-
//#region src/pages/provisioning-
|
|
87
|
+
//#region src/pages/provisioning-types.d.ts
|
|
86
88
|
interface EnvironmentOption {
|
|
87
89
|
id: string;
|
|
88
90
|
name: string;
|
|
89
91
|
description: string;
|
|
90
|
-
icon: React
|
|
92
|
+
icon: React.ReactNode;
|
|
91
93
|
color: string;
|
|
92
94
|
}
|
|
93
95
|
interface EnvironmentEntry {
|
|
@@ -106,12 +108,6 @@ interface PricingRates {
|
|
|
106
108
|
diskPerGbHr: number;
|
|
107
109
|
minChargePerHr?: number;
|
|
108
110
|
}
|
|
109
|
-
/**
|
|
110
|
-
* Describes one selectable plan tier for the purpose of badging locked
|
|
111
|
-
* presets with the *correct* upgrade target. Without this, every locked
|
|
112
|
-
* preset shows "Pro" — wrong for a user who is already on Pro and whose
|
|
113
|
-
* next step up is Enterprise.
|
|
114
|
-
*/
|
|
115
111
|
interface PlanTierInfo {
|
|
116
112
|
/** Stable id (e.g. "free" | "pro" | "enterprise") */
|
|
117
113
|
id: string;
|
|
@@ -150,40 +146,6 @@ interface SshAccessConfig {
|
|
|
150
146
|
*/
|
|
151
147
|
onRefreshKeys?: () => Promise<SshKeyOption[] | void>;
|
|
152
148
|
}
|
|
153
|
-
interface ProvisioningWizardProps {
|
|
154
|
-
environments?: EnvironmentOption[];
|
|
155
|
-
onLoadEnvironments?: () => Promise<EnvironmentEntry[]>;
|
|
156
|
-
onSubmit?: (config: ProvisioningConfig) => void | Promise<void>;
|
|
157
|
-
onBack?: () => void;
|
|
158
|
-
className?: string;
|
|
159
|
-
/**
|
|
160
|
-
* @deprecated The wizard now always renders as a single scrolling page.
|
|
161
|
-
* Kept for backwards compatibility — no longer changes the layout.
|
|
162
|
-
*/
|
|
163
|
-
variant?: "flat" | "multistep";
|
|
164
|
-
/** Pre-select an environment by ID (e.g. from a template link) */
|
|
165
|
-
defaultEnvironment?: string;
|
|
166
|
-
/** Pre-fill all form fields from a template preset */
|
|
167
|
-
defaultConfig?: Partial<ProvisioningConfig>;
|
|
168
|
-
/**
|
|
169
|
-
* @deprecated No-op. The wizard no longer uses steps. Kept for
|
|
170
|
-
* backwards compatibility.
|
|
171
|
-
*/
|
|
172
|
-
skipToReview?: boolean;
|
|
173
|
-
/** Load user's startup scripts for the advanced options selector */
|
|
174
|
-
onLoadStartupScripts?: () => Promise<StartupScriptEntry[]>;
|
|
175
|
-
/** Plan-based resource limits — caps the slider maximums */
|
|
176
|
-
resourceLimits?: ResourceLimits;
|
|
177
|
-
sshAccess?: SshAccessConfig;
|
|
178
|
-
/** Real pricing rates from the API for accurate cost calculation */
|
|
179
|
-
pricingRates?: PricingRates;
|
|
180
|
-
/**
|
|
181
|
-
* Ordered list of plan tiers (smallest to largest). When provided,
|
|
182
|
-
* locked presets are badged with the label of the smallest tier that
|
|
183
|
-
* would unlock them. Falls back to a generic "Pro" badge when omitted.
|
|
184
|
-
*/
|
|
185
|
-
planTiers?: PlanTierInfo[];
|
|
186
|
-
}
|
|
187
149
|
interface StartupScriptEntry {
|
|
188
150
|
id: string;
|
|
189
151
|
name: string;
|
|
@@ -206,78 +168,6 @@ interface ProvisioningConfig {
|
|
|
206
168
|
bare: boolean;
|
|
207
169
|
startupScriptIds?: string[];
|
|
208
170
|
}
|
|
209
|
-
export declare function resolveEnvironment(env: EnvironmentEntry): EnvironmentOption;
|
|
210
|
-
export declare function ProvisioningWizard({ environments: environmentsProp, onLoadEnvironments, onSubmit, onBack, className, defaultEnvironment, defaultConfig, onLoadStartupScripts, resourceLimits, sshAccess, pricingRates, planTiers }: ProvisioningWizardProps): React$1.JSX.Element;
|
|
211
|
-
//#endregion
|
|
212
|
-
//#region src/pages/standalone-pricing-page.d.ts
|
|
213
|
-
type ProductVariant$1 = "sandbox";
|
|
214
|
-
interface StandalonePricingPageProps {
|
|
215
|
-
variant?: ProductVariant$1;
|
|
216
|
-
initialTiers?: PricingTier[];
|
|
217
|
-
apiBasePath?: string;
|
|
218
|
-
onSelectTier?: (tierId: string, billingPeriod: "monthly" | "yearly") => void;
|
|
219
|
-
fetchTiers?: () => Promise<PricingTier[]>;
|
|
220
|
-
title?: string;
|
|
221
|
-
subtitle?: string;
|
|
222
|
-
eyebrow?: string;
|
|
223
|
-
className?: string;
|
|
224
|
-
}
|
|
225
|
-
export declare function StandalonePricingPage({ variant, initialTiers, apiBasePath, onSelectTier, fetchTiers, title, subtitle, eyebrow, className }: StandalonePricingPageProps): React$1.JSX.Element;
|
|
226
|
-
//#endregion
|
|
227
|
-
//#region src/pages/profiles-page.d.ts
|
|
228
|
-
interface ProfileMetrics {
|
|
229
|
-
total_runs: number;
|
|
230
|
-
success_rate: number;
|
|
231
|
-
avg_duration_ms: number;
|
|
232
|
-
avg_tokens_used?: number;
|
|
233
|
-
last_run_at?: string;
|
|
234
|
-
}
|
|
235
|
-
interface Profile {
|
|
236
|
-
id: string;
|
|
237
|
-
name: string;
|
|
238
|
-
description?: string;
|
|
239
|
-
extends?: string;
|
|
240
|
-
model?: string;
|
|
241
|
-
system_prompt?: string;
|
|
242
|
-
instructions?: string[];
|
|
243
|
-
tags?: string[];
|
|
244
|
-
is_builtin?: boolean;
|
|
245
|
-
is_public?: boolean;
|
|
246
|
-
metrics?: ProfileMetrics;
|
|
247
|
-
created_at?: string;
|
|
248
|
-
updated_at?: string;
|
|
249
|
-
}
|
|
250
|
-
interface ProfileFormData {
|
|
251
|
-
name: string;
|
|
252
|
-
description?: string;
|
|
253
|
-
extends?: string;
|
|
254
|
-
model?: string;
|
|
255
|
-
system_prompt?: string;
|
|
256
|
-
instructions?: string[];
|
|
257
|
-
tags?: string[];
|
|
258
|
-
is_public?: boolean;
|
|
259
|
-
}
|
|
260
|
-
interface ProfilesPageProps {
|
|
261
|
-
/** API client for profile operations */
|
|
262
|
-
apiClient: {
|
|
263
|
-
listProfiles: () => Promise<{
|
|
264
|
-
builtin: Profile[];
|
|
265
|
-
custom: Profile[];
|
|
266
|
-
}>;
|
|
267
|
-
createProfile: (data: ProfileFormData) => Promise<Profile>;
|
|
268
|
-
updateProfile: (id: string, data: Partial<ProfileFormData>) => Promise<Profile>;
|
|
269
|
-
deleteProfile: (id: string) => Promise<void>;
|
|
270
|
-
};
|
|
271
|
-
/** User's subscription tier for limit enforcement */
|
|
272
|
-
tier?: "free" | "starter" | "pro" | "enterprise";
|
|
273
|
-
/** Maximum profiles allowed for current tier */
|
|
274
|
-
maxProfiles?: number;
|
|
275
|
-
/** Callback when navigating to profile comparison */
|
|
276
|
-
onCompareClick?: (profiles: Profile[]) => void;
|
|
277
|
-
/** Custom page title */
|
|
278
|
-
title?: string;
|
|
279
|
-
}
|
|
280
|
-
export declare function ProfilesPage({ apiClient, tier, maxProfiles, onCompareClick, title }: ProfilesPageProps): React$1.JSX.Element;
|
|
281
171
|
//#endregion
|
|
282
172
|
//#region src/pages/secrets-page.d.ts
|
|
283
173
|
interface Secret {
|
|
@@ -301,7 +191,7 @@ interface SecretsPageProps {
|
|
|
301
191
|
/** Page title. Defaults to "Environment Secrets". */
|
|
302
192
|
title?: string;
|
|
303
193
|
/** Text below the title. Defaults to the Sandbox environment-variable description. */
|
|
304
|
-
description?: React$
|
|
194
|
+
description?: React$2.ReactNode;
|
|
305
195
|
/** Explains where a new secret is used, in the create dialog. */
|
|
306
196
|
createDescription?: string;
|
|
307
197
|
/** Text in the empty state. */
|
|
@@ -322,16 +212,7 @@ interface SecretsPageProps {
|
|
|
322
212
|
label?: string;
|
|
323
213
|
};
|
|
324
214
|
}
|
|
325
|
-
export declare function SecretsPage({ apiClient, className, teamSecretsHint, title, description, createDescription, emptyDescription, deleteConsequence, variant }: SecretsPageProps): React$
|
|
326
|
-
//#endregion
|
|
327
|
-
//#region src/pages/templates-page.d.ts
|
|
328
|
-
interface TemplatesPageProps {
|
|
329
|
-
templates: TemplateCardData[] | null;
|
|
330
|
-
loading?: boolean;
|
|
331
|
-
onUseTemplate: (templateId: string) => void;
|
|
332
|
-
className?: string;
|
|
333
|
-
}
|
|
334
|
-
export declare function TemplatesPage({ templates, loading, onUseTemplate, className }: TemplatesPageProps): React$1.JSX.Element;
|
|
215
|
+
export declare function SecretsPage({ apiClient, className, teamSecretsHint, title, description, createDescription, emptyDescription, deleteConsequence, variant }: SecretsPageProps): React$2.JSX.Element;
|
|
335
216
|
//#endregion
|
|
336
217
|
//#region src/pages/startup-scripts-page.d.ts
|
|
337
218
|
type ScriptType = "bash" | "python" | "node" | "ruby" | "custom";
|
|
@@ -386,11 +267,11 @@ interface StartupScriptsPageProps {
|
|
|
386
267
|
apiClient: StartupScriptsApiClient;
|
|
387
268
|
className?: string;
|
|
388
269
|
}
|
|
389
|
-
export declare function StartupScriptsPage({ apiClient, className }: StartupScriptsPageProps): React$
|
|
270
|
+
export declare function StartupScriptsPage({ apiClient, className }: StartupScriptsPageProps): React$2.JSX.Element;
|
|
390
271
|
//#endregion
|
|
391
272
|
//#region src/lib/template-presets.d.ts
|
|
392
273
|
type TemplateCategory = "blockchain" | "ai-ml" | "frontend" | "infrastructure" | "general";
|
|
393
274
|
type TemplatePreset = Omit<ProvisioningConfig, "name" | "gitUrl" | "envVars" | "driver" | "startupScriptIds">;
|
|
394
275
|
export declare function getPresetForTemplate(id: string): TemplatePreset;
|
|
395
276
|
//#endregion
|
|
396
|
-
export type { AuthPageProps, BillingPageData, BillingPageProps, EnvironmentEntry, EnvironmentOption, ModelInfo, PlanTierInfo, PricingRates, PricingTier, ProductVariant,
|
|
277
|
+
export type { AuthPageProps, BillingPageData, BillingPageProps, EnvironmentEntry, EnvironmentOption, ModelInfo, PlanTierInfo, PricingRates, PricingTier, ProductVariant, ProvisioningConfig, ResourceLimits, ScriptType, Secret, SecretsApiClient, SecretsPageProps, SocialProvider, SshAccessConfig, SshKeyOption, StartupScript, StartupScriptEntry, StartupScriptFormData, StartupScriptsApiClient, StartupScriptsPageProps, TemplateCategory, TemplatePreset };
|