@tangle-network/sandbox-ui 0.30.0 → 0.32.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/dist/chat.js +3 -3
- package/dist/{chunk-DNZ4DTNA.js → chunk-2XNT74ZX.js} +2 -2
- package/dist/{chunk-AUFV7766.js → chunk-6NDOA4SB.js} +11 -8
- package/dist/{chunk-YPBFIETY.js → chunk-CI6RWXWY.js} +831 -734
- package/dist/{chunk-BJFWPP5T.js → chunk-E267TDZP.js} +12 -12
- package/dist/{chunk-ELGN7DPS.js → chunk-JC7GMQK7.js} +1 -1
- package/dist/{chunk-6NQBODYV.js → chunk-NMR2CTGP.js} +6 -6
- package/dist/dashboard.d.ts +92 -7
- package/dist/dashboard.js +12 -4
- package/dist/globals.css +90 -55
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -6
- package/dist/pages.js +14 -14
- package/dist/styles.css +90 -55
- package/dist/workspace.js +1 -1
- package/package.json +1 -1
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
HARNESS_OPTIONS,
|
|
3
3
|
HarnessLogo,
|
|
4
4
|
chatCapableHarnesses
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JC7GMQK7.js";
|
|
6
6
|
import {
|
|
7
7
|
ModelPicker,
|
|
8
8
|
canonicalModelId
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NMR2CTGP.js";
|
|
10
10
|
import {
|
|
11
11
|
cn
|
|
12
12
|
} from "./chunk-EI44GEQ5.js";
|
|
@@ -91,8 +91,8 @@ function ReasoningLevelPicker({
|
|
|
91
91
|
className: cn(
|
|
92
92
|
"inline-flex h-8 items-center gap-1.5 rounded-lg border border-border bg-card px-2.5",
|
|
93
93
|
"text-xs font-medium text-foreground shadow-sm transition-colors",
|
|
94
|
-
"hover:border-
|
|
95
|
-
"data-[state=open]:border-
|
|
94
|
+
"hover:border-border hover:bg-muted/40 focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
95
|
+
"data-[state=open]:border-border data-[state=open]:bg-muted/40",
|
|
96
96
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
97
97
|
className,
|
|
98
98
|
triggerClassName
|
|
@@ -242,8 +242,8 @@ function HarnessDropdown({
|
|
|
242
242
|
className: cn(
|
|
243
243
|
"inline-flex h-8 items-center gap-1.5 rounded-lg border border-border bg-card px-2.5",
|
|
244
244
|
"text-xs font-medium text-foreground shadow-sm transition-colors",
|
|
245
|
-
"hover:border-
|
|
246
|
-
"data-[state=open]:border-
|
|
245
|
+
"hover:border-border hover:bg-muted/40 focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
246
|
+
"data-[state=open]:border-border data-[state=open]:bg-muted/40",
|
|
247
247
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
248
248
|
),
|
|
249
249
|
"aria-label": "Agent harness",
|
|
@@ -408,8 +408,8 @@ function GearControls({
|
|
|
408
408
|
className: cn(
|
|
409
409
|
"inline-flex h-8 w-8 items-center justify-center rounded-lg border border-border bg-card",
|
|
410
410
|
"text-foreground shadow-sm transition-colors",
|
|
411
|
-
"hover:border-
|
|
412
|
-
"data-[state=open]:border-
|
|
411
|
+
"hover:border-border hover:bg-muted/40 focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
412
|
+
"data-[state=open]:border-border data-[state=open]:bg-muted/40"
|
|
413
413
|
),
|
|
414
414
|
children: /* @__PURE__ */ jsx2(SlidersHorizontal, { className: "h-4 w-4 text-muted-foreground" })
|
|
415
415
|
}
|
|
@@ -631,14 +631,14 @@ function ArtifactAgentDock({
|
|
|
631
631
|
"aside",
|
|
632
632
|
{
|
|
633
633
|
className: cn(
|
|
634
|
-
"flex h-full w-[420px] min-w-[360px] max-w-[480px] flex-col border-l border-border bg-card/95 shadow-
|
|
634
|
+
"flex h-full w-[420px] min-w-[360px] max-w-[480px] flex-col border-l border-border bg-card/95 shadow-[var(--shadow-dropdown)]",
|
|
635
635
|
className
|
|
636
636
|
),
|
|
637
637
|
"aria-label": `Agent chat about ${heading}`,
|
|
638
638
|
children: [
|
|
639
639
|
/* @__PURE__ */ jsxs3("header", { className: "flex items-center justify-between border-b border-border bg-background/60 px-4 py-3", children: [
|
|
640
640
|
/* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
641
|
-
/* @__PURE__ */ jsx3(Sparkles2, { className: "h-4 w-4 shrink-0 text-
|
|
641
|
+
/* @__PURE__ */ jsx3(Sparkles2, { className: "h-4 w-4 shrink-0 text-muted-foreground" }),
|
|
642
642
|
/* @__PURE__ */ jsxs3("div", { className: "min-w-0", children: [
|
|
643
643
|
/* @__PURE__ */ jsx3("div", { className: "text-[10px] font-medium uppercase tracking-wider text-muted-foreground", children: "Discussing" }),
|
|
644
644
|
/* @__PURE__ */ jsx3("div", { className: "truncate text-sm font-semibold text-foreground", children: heading })
|
|
@@ -690,7 +690,7 @@ function ArtifactAgentDock({
|
|
|
690
690
|
placeholder: `Ask about ${heading}\u2026`,
|
|
691
691
|
rows: 2,
|
|
692
692
|
disabled: !threadId,
|
|
693
|
-
className: "min-h-[44px] flex-1 resize-none rounded-
|
|
693
|
+
className: "min-h-[44px] flex-1 resize-none rounded-[20px] border border-border bg-background px-3.5 py-2 text-sm text-foreground placeholder:text-muted-foreground transition-colors focus:outline-none focus:border-[var(--border-accent)] disabled:opacity-50"
|
|
694
694
|
}
|
|
695
695
|
),
|
|
696
696
|
sending ? /* @__PURE__ */ jsx3(
|
|
@@ -708,7 +708,7 @@ function ArtifactAgentDock({
|
|
|
708
708
|
type: "submit",
|
|
709
709
|
disabled: !composer.trim() || !threadId,
|
|
710
710
|
"aria-label": "Send",
|
|
711
|
-
className: "inline-flex h-9 w-9 items-center justify-center rounded-
|
|
711
|
+
className: "inline-flex h-9 w-9 items-center justify-center rounded-full bg-primary text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-50",
|
|
712
712
|
children: /* @__PURE__ */ jsx3(Send, { className: "h-4 w-4" })
|
|
713
713
|
}
|
|
714
714
|
)
|
|
@@ -331,9 +331,9 @@ function ModelPicker({
|
|
|
331
331
|
"inline-flex h-8 items-center gap-1.5 rounded-lg border border-border bg-card",
|
|
332
332
|
"px-2.5 text-xs font-medium text-foreground shadow-sm",
|
|
333
333
|
"transition-colors duration-[var(--transition-fast)]",
|
|
334
|
-
"hover:border-
|
|
335
|
-
"focus:outline-none focus:
|
|
336
|
-
"data-[state=open]:border-
|
|
334
|
+
"hover:border-border hover:bg-muted/40",
|
|
335
|
+
"focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
336
|
+
"data-[state=open]:border-border data-[state=open]:bg-muted/40",
|
|
337
337
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
338
338
|
className,
|
|
339
339
|
triggerClassName
|
|
@@ -354,9 +354,9 @@ function ModelPicker({
|
|
|
354
354
|
"flex w-full items-center justify-between gap-2 rounded-[var(--radius-md)]",
|
|
355
355
|
"border border-border bg-card px-3 py-2.5 text-sm text-left",
|
|
356
356
|
"transition-colors duration-[var(--transition-fast)]",
|
|
357
|
-
"hover:border-
|
|
358
|
-
"focus:outline-none focus:
|
|
359
|
-
"data-[state=open]:border-
|
|
357
|
+
"hover:border-border hover:bg-muted/40",
|
|
358
|
+
"focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
359
|
+
"data-[state=open]:border-border data-[state=open]:bg-muted/40",
|
|
360
360
|
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
361
361
|
className,
|
|
362
362
|
triggerClassName
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -11,6 +11,18 @@ interface SidebarUser {
|
|
|
11
11
|
tier?: string;
|
|
12
12
|
avatarUrl?: string;
|
|
13
13
|
}
|
|
14
|
+
declare function RailThemeToggle({ className }: {
|
|
15
|
+
className?: string;
|
|
16
|
+
}): react_jsx_runtime.JSX.Element;
|
|
17
|
+
interface RailCollapseToggleProps {
|
|
18
|
+
/** Whether the rail is currently collapsed (icon-only). */
|
|
19
|
+
collapsed: boolean;
|
|
20
|
+
/** Render with a label beside the chevron (expanded/labeled rail) vs. icon-only. */
|
|
21
|
+
showLabel?: boolean;
|
|
22
|
+
onToggle: () => void;
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
declare function RailCollapseToggle({ collapsed, showLabel, onToggle, className }: RailCollapseToggleProps): react_jsx_runtime.JSX.Element;
|
|
14
26
|
interface SidebarProps {
|
|
15
27
|
children: React.ReactNode;
|
|
16
28
|
className?: string;
|
|
@@ -140,6 +152,28 @@ interface ProfileAvatarProps {
|
|
|
140
152
|
}
|
|
141
153
|
declare function ProfileAvatar({ user, isLoading, onLogout, onSettingsClick, settingsHref, children, className, showDetails, LinkComponent, }: ProfileAvatarProps): react_jsx_runtime.JSX.Element;
|
|
142
154
|
|
|
155
|
+
interface RailTooltipProps {
|
|
156
|
+
/** Tooltip text shown to the right of the trigger. */
|
|
157
|
+
label: string;
|
|
158
|
+
/** The trigger element (icon button / link). */
|
|
159
|
+
children: React.ReactNode;
|
|
160
|
+
/** Disable the tooltip (e.g. when the rail is expanded and the label is inline). */
|
|
161
|
+
disabled?: boolean;
|
|
162
|
+
className?: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Quiet, instant-ish styled tooltip for the icon-only rail. CSS-only (no
|
|
166
|
+
* portal, no extra deps): the trigger wraps in a `group` and the label is an
|
|
167
|
+
* absolutely-positioned sibling to the RIGHT, revealed on `group-hover` /
|
|
168
|
+
* `group-focus-within` after a short delay. Matches the `--popover` / border
|
|
169
|
+
* tokens so it reads as Tangle Quiet chrome rather than a native `title`.
|
|
170
|
+
*
|
|
171
|
+
* Replaces reliance on the native `title` attribute for the collapsed rail
|
|
172
|
+
* (no ~1.5s delay, themeable, keyboard-focus reachable). Hidden via
|
|
173
|
+
* `aria-hidden` since the trigger already carries an accessible name.
|
|
174
|
+
*/
|
|
175
|
+
declare function RailTooltip({ label, children, disabled, className }: RailTooltipProps): react_jsx_runtime.JSX.Element;
|
|
176
|
+
|
|
143
177
|
/** Width constants (px) — Tangle Quiet density (ChatGPT-minimal) */
|
|
144
178
|
declare const SIDEBAR_RAIL_WIDTH = 56;
|
|
145
179
|
declare const SIDEBAR_PANEL_WIDTH = 268;
|
|
@@ -150,6 +184,12 @@ declare const SIDEBAR_TOTAL_WIDTH: number;
|
|
|
150
184
|
* wide enough for icons; labels need a wider container to avoid truncation.
|
|
151
185
|
*/
|
|
152
186
|
declare const SIDEBAR_MOBILE_WIDTH = 256;
|
|
187
|
+
/**
|
|
188
|
+
* Rail width when labels are shown beside icons on desktop. The default rail is
|
|
189
|
+
* icon-only at {@link SIDEBAR_RAIL_WIDTH}; a labeled rail needs room for the
|
|
190
|
+
* longest nav label plus its badge.
|
|
191
|
+
*/
|
|
192
|
+
declare const SIDEBAR_RAIL_LABELED_WIDTH = 248;
|
|
153
193
|
interface SidebarContextValue {
|
|
154
194
|
/** Whether the content panel beside the rail is open */
|
|
155
195
|
panelOpen: boolean;
|
|
@@ -167,15 +207,34 @@ interface SidebarContextValue {
|
|
|
167
207
|
contentMargin: number;
|
|
168
208
|
/** Whether there are panels at all */
|
|
169
209
|
hasPanels: boolean;
|
|
170
|
-
/**
|
|
210
|
+
/**
|
|
211
|
+
* Whether the labeled nav rail is collapsed to the icon-only width. Independent
|
|
212
|
+
* of {@link panelOpen} (the slide-out content panel) — two separate collapses.
|
|
213
|
+
* Only meaningful when the rail is label-capable; an icon-only rail stays
|
|
214
|
+
* icon-only regardless.
|
|
215
|
+
*/
|
|
216
|
+
railCollapsed: boolean;
|
|
217
|
+
setRailCollapsed: (collapsed: boolean) => void;
|
|
218
|
+
toggleRail: () => void;
|
|
219
|
+
/**
|
|
220
|
+
* Rail width in px — derived from {@link railCollapsed}: the icon-only width
|
|
221
|
+
* when collapsed (or when the rail is not label-capable), the labeled width
|
|
222
|
+
* when expanded.
|
|
223
|
+
*/
|
|
171
224
|
railWidth: number;
|
|
172
225
|
}
|
|
173
226
|
interface SidebarProviderProps {
|
|
174
227
|
defaultPanelOpen?: boolean;
|
|
175
228
|
defaultMode?: string;
|
|
176
229
|
hasPanels?: boolean;
|
|
177
|
-
/**
|
|
178
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Whether the rail can show labels beside icons. When `true`, the expanded
|
|
232
|
+
* rail renders at {@link SIDEBAR_RAIL_LABELED_WIDTH} and the user can collapse
|
|
233
|
+
* it to the icon-only {@link SIDEBAR_RAIL_WIDTH} via {@link toggleRail}. When
|
|
234
|
+
* `false` (default) the rail is permanently icon-only and `railCollapsed` has
|
|
235
|
+
* no width effect.
|
|
236
|
+
*/
|
|
237
|
+
labeledRail?: boolean;
|
|
179
238
|
/**
|
|
180
239
|
* Controlled panel-open state. When provided, the provider treats panel
|
|
181
240
|
* visibility as controlled: it never reads or writes localStorage and
|
|
@@ -186,9 +245,19 @@ interface SidebarProviderProps {
|
|
|
186
245
|
*/
|
|
187
246
|
panelOpen?: boolean;
|
|
188
247
|
onPanelOpenChange?: (open: boolean) => void;
|
|
248
|
+
/**
|
|
249
|
+
* Controlled rail-collapsed state. Parallels {@link panelOpen}: when provided
|
|
250
|
+
* the provider never touches localStorage for the rail and reports changes
|
|
251
|
+
* through {@link onRailCollapsedChange}. Seed it from a cookie in SSR apps so
|
|
252
|
+
* the rail width survives reload without a hydration mismatch.
|
|
253
|
+
*/
|
|
254
|
+
railCollapsed?: boolean;
|
|
255
|
+
onRailCollapsedChange?: (collapsed: boolean) => void;
|
|
256
|
+
/** Initial rail-collapsed state for the uncontrolled path. Default: expanded. */
|
|
257
|
+
defaultRailCollapsed?: boolean;
|
|
189
258
|
children: React.ReactNode;
|
|
190
259
|
}
|
|
191
|
-
declare function SidebarProvider({ defaultPanelOpen, defaultMode, hasPanels,
|
|
260
|
+
declare function SidebarProvider({ defaultPanelOpen, defaultMode, hasPanels, labeledRail, panelOpen: controlledPanelOpen, onPanelOpenChange, railCollapsed: controlledRailCollapsed, onRailCollapsedChange, defaultRailCollapsed, children, }: SidebarProviderProps): react_jsx_runtime.JSX.Element;
|
|
192
261
|
declare function useSidebar(): SidebarContextValue;
|
|
193
262
|
|
|
194
263
|
interface CreditBalanceProps {
|
|
@@ -633,8 +702,24 @@ interface SidebarLayoutProps {
|
|
|
633
702
|
defaultPanelOpen?: boolean;
|
|
634
703
|
/** Hide the whole sidebar below this breakpoint (content spans full width). */
|
|
635
704
|
hideBelow?: "md" | "lg";
|
|
636
|
-
/**
|
|
705
|
+
/**
|
|
706
|
+
* Make the rail label-capable: it renders labels beside the icons on a wider
|
|
707
|
+
* rail and gains a collapse/expand control that toggles between the labeled
|
|
708
|
+
* width and the icon-only rail (icons + hover tooltips). When omitted the rail
|
|
709
|
+
* is permanently icon-only with no collapse control.
|
|
710
|
+
*/
|
|
637
711
|
railLabels?: boolean;
|
|
712
|
+
/**
|
|
713
|
+
* Controlled rail-collapsed state. Provide it (seeded from a server-readable
|
|
714
|
+
* source such as a cookie) in SSR apps so the collapsed/expanded rail survives
|
|
715
|
+
* reload without a hydration mismatch. Omit to let the rail persist to
|
|
716
|
+
* localStorage. Independent of `panelOpen` — the nav rail and the slide-out
|
|
717
|
+
* panel collapse separately. Only meaningful with `railLabels`.
|
|
718
|
+
*/
|
|
719
|
+
railCollapsed?: boolean;
|
|
720
|
+
onRailCollapsedChange?: (collapsed: boolean) => void;
|
|
721
|
+
/** Initial rail-collapsed state when uncontrolled (default: expanded). */
|
|
722
|
+
defaultRailCollapsed?: boolean;
|
|
638
723
|
/**
|
|
639
724
|
* Close the panel when a link nav item is clicked. Useful when the panel is
|
|
640
725
|
* contextual to one section (e.g. a chat thread list) rather than a global
|
|
@@ -653,7 +738,7 @@ interface SidebarLayoutProps {
|
|
|
653
738
|
* hide all live here. Pair `panelOpen`/`onPanelOpenChange` with a cookie for
|
|
654
739
|
* SSR-safe persistence.
|
|
655
740
|
*/
|
|
656
|
-
declare function SidebarLayout({ panelOpen, onPanelOpenChange, defaultPanelOpen, ...props }: SidebarLayoutProps): react_jsx_runtime.JSX.Element;
|
|
741
|
+
declare function SidebarLayout({ panelOpen, onPanelOpenChange, defaultPanelOpen, railCollapsed, onRailCollapsedChange, defaultRailCollapsed, ...props }: SidebarLayoutProps): react_jsx_runtime.JSX.Element;
|
|
657
742
|
|
|
658
743
|
interface Profile {
|
|
659
744
|
id: string;
|
|
@@ -898,4 +983,4 @@ interface InfoPanelProps {
|
|
|
898
983
|
}
|
|
899
984
|
declare function InfoPanel({ label, title, description, className }: InfoPanelProps): react_jsx_runtime.JSX.Element;
|
|
900
985
|
|
|
901
|
-
export { ActivityFeed, type ActivityFeedProps, type ActivityItem, BackendConfig, type BackendConfigProps, type BackendStatusData, ClusterStatusBar, type ClusterStatusBarProps, type ClusterStatusItem, CreditBalance, type CreditBalanceProps, DashboardLayout, type DashboardLayoutProps, type Profile as DashboardProfile, type SnapshotInfo as DashboardSnapshotInfo, type DashboardUser, type ExposedPort, type GitCommitData, GitPanel, type GitPanelProps, type GitStatusData, HARNESS_BRAND, type HarnessBrand, HarnessLogo, type HarnessLogoProps, HarnessType, INSUFFICIENT_BALANCE_CODE, InfoPanel, type InfoPanelProps, type InsufficientBalance, type Invoice, InvoiceTable, type InvoiceTableProps, type McpServer, MetricAreaChart, type MetricAreaChartProps, type MetricChartPoint, type MetricChartTone, type NavItem, NetworkConfig, type NetworkConfigData, type NetworkConfigProps, NewSandboxCard, type NewSandboxCardProps, OutOfCreditsModal, type OutOfCreditsModalProps, type PlanCardData, PlanCards, type PlanCardsProps, type PlanFeature, PortsList, type PortsListProps, type ProcessInfo, ProcessList, type ProcessListProps, type ProductVariant, ProfileAvatar, type ProfileAvatarProps, ProfileComparison, type ProfileComparisonProps, ProfileSelector, type ProfileSelectorProps, PromoBanner, type PromoBannerProps, RailButton, type RailButtonProps, RailFlyout, type RailFlyoutProps, RailModeButton, type RailModeButtonProps, RailSeparator, type RailSeparatorProps, ResourceMeter, type ResourceMeterProps, ResourceSnapshot, type ResourceSnapshotItem, type ResourceSnapshotProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, type SandboxCardData, type SandboxCardProps, type SandboxStatus, SandboxTable, type SandboxTableProps, Sidebar, SidebarContent, type SidebarContentProps, SidebarLayout, type SidebarLayoutFlyoutItem, type SidebarLayoutNavItem, type SidebarLayoutProps, SidebarPanel, SidebarPanelContent, type SidebarPanelContentProps, SidebarPanelHeader, type SidebarPanelHeaderProps, type SidebarPanelProps, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, SidebarRailFooter, type SidebarRailFooterProps, SidebarRailHeader, type SidebarRailHeaderProps, SidebarRailNav, type SidebarRailNavProps, type SidebarRailProps, type SidebarUser, SnapshotList, type SnapshotListProps, SystemLogsViewer, type SystemLogsViewerProps, type TeamRole, UsageSummary, type UsageSummaryData, type UsageSummaryProps, type Variant, VariantList, type VariantListProps, type VariantOutcome, type VariantStatus, canAdminSandbox, parseInsufficientBalance, useSidebar };
|
|
986
|
+
export { ActivityFeed, type ActivityFeedProps, type ActivityItem, BackendConfig, type BackendConfigProps, type BackendStatusData, ClusterStatusBar, type ClusterStatusBarProps, type ClusterStatusItem, CreditBalance, type CreditBalanceProps, DashboardLayout, type DashboardLayoutProps, type Profile as DashboardProfile, type SnapshotInfo as DashboardSnapshotInfo, type DashboardUser, type ExposedPort, type GitCommitData, GitPanel, type GitPanelProps, type GitStatusData, HARNESS_BRAND, type HarnessBrand, HarnessLogo, type HarnessLogoProps, HarnessType, INSUFFICIENT_BALANCE_CODE, InfoPanel, type InfoPanelProps, type InsufficientBalance, type Invoice, InvoiceTable, type InvoiceTableProps, type McpServer, MetricAreaChart, type MetricAreaChartProps, type MetricChartPoint, type MetricChartTone, type NavItem, NetworkConfig, type NetworkConfigData, type NetworkConfigProps, NewSandboxCard, type NewSandboxCardProps, OutOfCreditsModal, type OutOfCreditsModalProps, type PlanCardData, PlanCards, type PlanCardsProps, type PlanFeature, PortsList, type PortsListProps, type ProcessInfo, ProcessList, type ProcessListProps, type ProductVariant, ProfileAvatar, type ProfileAvatarProps, ProfileComparison, type ProfileComparisonProps, ProfileSelector, type ProfileSelectorProps, PromoBanner, type PromoBannerProps, RailButton, type RailButtonProps, RailCollapseToggle, type RailCollapseToggleProps, RailFlyout, type RailFlyoutProps, RailModeButton, type RailModeButtonProps, RailSeparator, type RailSeparatorProps, RailThemeToggle, RailTooltip, type RailTooltipProps, ResourceMeter, type ResourceMeterProps, ResourceSnapshot, type ResourceSnapshotItem, type ResourceSnapshotProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, type SandboxCardData, type SandboxCardProps, type SandboxStatus, SandboxTable, type SandboxTableProps, Sidebar, SidebarContent, type SidebarContentProps, SidebarLayout, type SidebarLayoutFlyoutItem, type SidebarLayoutNavItem, type SidebarLayoutProps, SidebarPanel, SidebarPanelContent, type SidebarPanelContentProps, SidebarPanelHeader, type SidebarPanelHeaderProps, type SidebarPanelProps, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, SidebarRailFooter, type SidebarRailFooterProps, SidebarRailHeader, type SidebarRailHeaderProps, SidebarRailNav, type SidebarRailNavProps, type SidebarRailProps, type SidebarUser, SnapshotList, type SnapshotListProps, SystemLogsViewer, type SystemLogsViewerProps, type TeamRole, UsageSummary, type UsageSummaryData, type UsageSummaryProps, type Variant, VariantList, type VariantListProps, type VariantOutcome, type VariantStatus, canAdminSandbox, parseInsufficientBalance, useSidebar };
|
package/dist/dashboard.js
CHANGED
|
@@ -19,13 +19,17 @@ import {
|
|
|
19
19
|
ProfileSelector,
|
|
20
20
|
PromoBanner,
|
|
21
21
|
RailButton,
|
|
22
|
+
RailCollapseToggle,
|
|
22
23
|
RailFlyout,
|
|
23
24
|
RailModeButton,
|
|
24
25
|
RailSeparator,
|
|
26
|
+
RailThemeToggle,
|
|
27
|
+
RailTooltip,
|
|
25
28
|
ResourceMeter,
|
|
26
29
|
ResourceSnapshot,
|
|
27
30
|
SIDEBAR_MOBILE_WIDTH,
|
|
28
31
|
SIDEBAR_PANEL_WIDTH,
|
|
32
|
+
SIDEBAR_RAIL_LABELED_WIDTH,
|
|
29
33
|
SIDEBAR_RAIL_WIDTH,
|
|
30
34
|
SIDEBAR_TOTAL_WIDTH,
|
|
31
35
|
SandboxCard,
|
|
@@ -48,7 +52,7 @@ import {
|
|
|
48
52
|
canAdminSandbox,
|
|
49
53
|
parseInsufficientBalance,
|
|
50
54
|
useSidebar
|
|
51
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-CI6RWXWY.js";
|
|
52
56
|
import {
|
|
53
57
|
BillingDashboard,
|
|
54
58
|
InfoPanel,
|
|
@@ -56,7 +60,7 @@ import {
|
|
|
56
60
|
TemplateCard,
|
|
57
61
|
UsageChart,
|
|
58
62
|
formatPrice
|
|
59
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-2XNT74ZX.js";
|
|
60
64
|
import "./chunk-7ZA5SEK3.js";
|
|
61
65
|
import {
|
|
62
66
|
BackendSelector,
|
|
@@ -65,7 +69,7 @@ import {
|
|
|
65
69
|
HarnessLogo,
|
|
66
70
|
HarnessPicker,
|
|
67
71
|
chatCapableHarnesses
|
|
68
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-JC7GMQK7.js";
|
|
69
73
|
import {
|
|
70
74
|
DEFAULT_FEATURED_MODEL_IDS,
|
|
71
75
|
ModelPicker,
|
|
@@ -74,7 +78,7 @@ import {
|
|
|
74
78
|
formatContext,
|
|
75
79
|
formatPricing,
|
|
76
80
|
modelDedupKey
|
|
77
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-NMR2CTGP.js";
|
|
78
82
|
import "./chunk-EI44GEQ5.js";
|
|
79
83
|
export {
|
|
80
84
|
ActivityFeed,
|
|
@@ -107,13 +111,17 @@ export {
|
|
|
107
111
|
ProfileSelector,
|
|
108
112
|
PromoBanner,
|
|
109
113
|
RailButton,
|
|
114
|
+
RailCollapseToggle,
|
|
110
115
|
RailFlyout,
|
|
111
116
|
RailModeButton,
|
|
112
117
|
RailSeparator,
|
|
118
|
+
RailThemeToggle,
|
|
119
|
+
RailTooltip,
|
|
113
120
|
ResourceMeter,
|
|
114
121
|
ResourceSnapshot,
|
|
115
122
|
SIDEBAR_MOBILE_WIDTH,
|
|
116
123
|
SIDEBAR_PANEL_WIDTH,
|
|
124
|
+
SIDEBAR_RAIL_LABELED_WIDTH,
|
|
117
125
|
SIDEBAR_RAIL_WIDTH,
|
|
118
126
|
SIDEBAR_TOTAL_WIDTH,
|
|
119
127
|
SandboxCard,
|
package/dist/globals.css
CHANGED
|
@@ -301,9 +301,6 @@
|
|
|
301
301
|
.end {
|
|
302
302
|
inset-inline-end: var(--spacing);
|
|
303
303
|
}
|
|
304
|
-
.-top-1 {
|
|
305
|
-
top: calc(var(--spacing) * -1);
|
|
306
|
-
}
|
|
307
304
|
.-top-1\.5 {
|
|
308
305
|
top: calc(var(--spacing) * -1.5);
|
|
309
306
|
}
|
|
@@ -346,9 +343,6 @@
|
|
|
346
343
|
.top-full {
|
|
347
344
|
top: 100%;
|
|
348
345
|
}
|
|
349
|
-
.-right-1 {
|
|
350
|
-
right: calc(var(--spacing) * -1);
|
|
351
|
-
}
|
|
352
346
|
.-right-1\.5 {
|
|
353
347
|
right: calc(var(--spacing) * -1.5);
|
|
354
348
|
}
|
|
@@ -2268,6 +2262,9 @@
|
|
|
2268
2262
|
.py-8 {
|
|
2269
2263
|
padding-block: calc(var(--spacing) * 8);
|
|
2270
2264
|
}
|
|
2265
|
+
.py-10 {
|
|
2266
|
+
padding-block: calc(var(--spacing) * 10);
|
|
2267
|
+
}
|
|
2271
2268
|
.py-12 {
|
|
2272
2269
|
padding-block: calc(var(--spacing) * 12);
|
|
2273
2270
|
}
|
|
@@ -2904,10 +2901,6 @@
|
|
|
2904
2901
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2905
2902
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2906
2903
|
}
|
|
2907
|
-
.shadow-xl {
|
|
2908
|
-
--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
2909
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
2910
|
-
}
|
|
2911
2904
|
.ring {
|
|
2912
2905
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
2913
2906
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -2977,6 +2970,11 @@
|
|
|
2977
2970
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2978
2971
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2979
2972
|
}
|
|
2973
|
+
.transition-\[opacity\,transform\] {
|
|
2974
|
+
transition-property: opacity,transform;
|
|
2975
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
2976
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
2977
|
+
}
|
|
2980
2978
|
.transition-\[opacity\] {
|
|
2981
2979
|
transition-property: opacity;
|
|
2982
2980
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -3064,6 +3062,17 @@
|
|
|
3064
3062
|
rotate: 180deg;
|
|
3065
3063
|
}
|
|
3066
3064
|
}
|
|
3065
|
+
.group-focus-within\/tip\:translate-x-0 {
|
|
3066
|
+
&:is(:where(.group\/tip):focus-within *) {
|
|
3067
|
+
--tw-translate-x: calc(var(--spacing) * 0);
|
|
3068
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
3069
|
+
}
|
|
3070
|
+
}
|
|
3071
|
+
.group-focus-within\/tip\:opacity-100 {
|
|
3072
|
+
&:is(:where(.group\/tip):focus-within *) {
|
|
3073
|
+
opacity: 100%;
|
|
3074
|
+
}
|
|
3075
|
+
}
|
|
3067
3076
|
.group-hover\:translate-x-0\.5 {
|
|
3068
3077
|
&:is(:where(.group):hover *) {
|
|
3069
3078
|
@media (hover: hover) {
|
|
@@ -3079,6 +3088,28 @@
|
|
|
3079
3088
|
}
|
|
3080
3089
|
}
|
|
3081
3090
|
}
|
|
3091
|
+
.group-hover\/tip\:translate-x-0 {
|
|
3092
|
+
&:is(:where(.group\/tip):hover *) {
|
|
3093
|
+
@media (hover: hover) {
|
|
3094
|
+
--tw-translate-x: calc(var(--spacing) * 0);
|
|
3095
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
3096
|
+
}
|
|
3097
|
+
}
|
|
3098
|
+
}
|
|
3099
|
+
.group-hover\/tip\:opacity-100 {
|
|
3100
|
+
&:is(:where(.group\/tip):hover *) {
|
|
3101
|
+
@media (hover: hover) {
|
|
3102
|
+
opacity: 100%;
|
|
3103
|
+
}
|
|
3104
|
+
}
|
|
3105
|
+
}
|
|
3106
|
+
.group-hover\/tip\:delay-300 {
|
|
3107
|
+
&:is(:where(.group\/tip):hover *) {
|
|
3108
|
+
@media (hover: hover) {
|
|
3109
|
+
transition-delay: 300ms;
|
|
3110
|
+
}
|
|
3111
|
+
}
|
|
3112
|
+
}
|
|
3082
3113
|
.peer-disabled\:cursor-not-allowed {
|
|
3083
3114
|
&:is(:where(.peer):disabled ~ *) {
|
|
3084
3115
|
cursor: not-allowed;
|
|
@@ -3402,14 +3433,6 @@
|
|
|
3402
3433
|
}
|
|
3403
3434
|
}
|
|
3404
3435
|
}
|
|
3405
|
-
.hover\:shadow-md {
|
|
3406
|
-
&:hover {
|
|
3407
|
-
@media (hover: hover) {
|
|
3408
|
-
--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
3409
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3410
|
-
}
|
|
3411
|
-
}
|
|
3412
|
-
}
|
|
3413
3436
|
.hover\:shadow-sm {
|
|
3414
3437
|
&:hover {
|
|
3415
3438
|
@media (hover: hover) {
|
|
@@ -3433,6 +3456,11 @@
|
|
|
3433
3456
|
}
|
|
3434
3457
|
}
|
|
3435
3458
|
}
|
|
3459
|
+
.focus\:border-\[var\(--border-accent\)\] {
|
|
3460
|
+
&:focus {
|
|
3461
|
+
border-color: var(--border-accent);
|
|
3462
|
+
}
|
|
3463
|
+
}
|
|
3436
3464
|
.focus\:border-\[var\(--border-accent-hover\)\] {
|
|
3437
3465
|
&:focus {
|
|
3438
3466
|
border-color: var(--border-accent-hover);
|
|
@@ -3494,6 +3522,16 @@
|
|
|
3494
3522
|
outline-style: none;
|
|
3495
3523
|
}
|
|
3496
3524
|
}
|
|
3525
|
+
.focus-visible\:border-\[var\(--border-accent\)\] {
|
|
3526
|
+
&:focus-visible {
|
|
3527
|
+
border-color: var(--border-accent);
|
|
3528
|
+
}
|
|
3529
|
+
}
|
|
3530
|
+
.focus-visible\:bg-transparent {
|
|
3531
|
+
&:focus-visible {
|
|
3532
|
+
background-color: transparent;
|
|
3533
|
+
}
|
|
3534
|
+
}
|
|
3497
3535
|
.focus-visible\:opacity-100 {
|
|
3498
3536
|
&:focus-visible {
|
|
3499
3537
|
opacity: 100%;
|
|
@@ -4455,7 +4493,7 @@
|
|
|
4455
4493
|
"ss01" 1;
|
|
4456
4494
|
}
|
|
4457
4495
|
::selection {
|
|
4458
|
-
background:
|
|
4496
|
+
background: var(--bg-selection);
|
|
4459
4497
|
color: hsl(var(--hsl-foreground));
|
|
4460
4498
|
}
|
|
4461
4499
|
::-webkit-scrollbar {
|
|
@@ -4466,12 +4504,16 @@
|
|
|
4466
4504
|
background: transparent;
|
|
4467
4505
|
}
|
|
4468
4506
|
::-webkit-scrollbar-thumb {
|
|
4469
|
-
background: hsl(var(--border) / 0.
|
|
4470
|
-
border-radius:
|
|
4507
|
+
background: hsl(var(--border) / 0.6);
|
|
4508
|
+
border-radius: 9999px;
|
|
4471
4509
|
}
|
|
4472
4510
|
::-webkit-scrollbar-thumb:hover {
|
|
4473
4511
|
background: hsl(var(--muted-foreground) / 0.4);
|
|
4474
4512
|
}
|
|
4513
|
+
* {
|
|
4514
|
+
scrollbar-width: thin;
|
|
4515
|
+
scrollbar-color: hsl(var(--border) / 0.6) transparent;
|
|
4516
|
+
}
|
|
4475
4517
|
}
|
|
4476
4518
|
@layer utilities {
|
|
4477
4519
|
.text-gradient-sandbox {
|
|
@@ -4481,7 +4523,7 @@
|
|
|
4481
4523
|
color: transparent;
|
|
4482
4524
|
}
|
|
4483
4525
|
.glow-sandbox {
|
|
4484
|
-
box-shadow:
|
|
4526
|
+
box-shadow: none;
|
|
4485
4527
|
}
|
|
4486
4528
|
.glass-card {
|
|
4487
4529
|
background: hsl(var(--card));
|
|
@@ -4496,31 +4538,26 @@
|
|
|
4496
4538
|
border: 1px solid hsl(var(--border));
|
|
4497
4539
|
}
|
|
4498
4540
|
.glass-panel {
|
|
4499
|
-
background: hsl(var(--card)
|
|
4500
|
-
|
|
4501
|
-
-
|
|
4502
|
-
border: 1px solid hsl(var(--primary) / 0.1);
|
|
4503
|
-
box-shadow: 0 4px 30px hsl(var(--background) / 0.3);
|
|
4541
|
+
background: hsl(var(--card));
|
|
4542
|
+
border: 1px solid hsl(var(--border));
|
|
4543
|
+
box-shadow: var(--shadow-card);
|
|
4504
4544
|
}
|
|
4505
4545
|
.glass-panel-heavy {
|
|
4506
|
-
background: hsl(var(--card)
|
|
4507
|
-
|
|
4508
|
-
-
|
|
4509
|
-
border: 1px solid hsl(var(--primary) / 0.12);
|
|
4510
|
-
box-shadow: 0 8px 32px hsl(var(--background) / 0.5);
|
|
4546
|
+
background: hsl(var(--card));
|
|
4547
|
+
border: 1px solid hsl(var(--border));
|
|
4548
|
+
box-shadow: var(--shadow-card);
|
|
4511
4549
|
}
|
|
4512
4550
|
.glass-panel:hover {
|
|
4513
|
-
border-color: hsl(var(--
|
|
4551
|
+
border-color: hsl(var(--border));
|
|
4514
4552
|
}
|
|
4515
4553
|
.glow-primary {
|
|
4516
|
-
box-shadow:
|
|
4517
|
-
transition: box-shadow 0.4s ease-in-out;
|
|
4554
|
+
box-shadow: none;
|
|
4518
4555
|
}
|
|
4519
4556
|
.glow-primary:hover {
|
|
4520
|
-
box-shadow:
|
|
4557
|
+
box-shadow: none;
|
|
4521
4558
|
}
|
|
4522
4559
|
.text-glow {
|
|
4523
|
-
text-shadow:
|
|
4560
|
+
text-shadow: none;
|
|
4524
4561
|
}
|
|
4525
4562
|
.gradient-text {
|
|
4526
4563
|
background: linear-gradient(135deg, hsl(var(--primary) / 0.7) 0%, hsl(var(--primary)) 100%);
|
|
@@ -4532,12 +4569,7 @@
|
|
|
4532
4569
|
background: linear-gradient(135deg, hsl(var(--primary) / 0.1) 0%, hsl(var(--primary) / 0.05) 100%);
|
|
4533
4570
|
}
|
|
4534
4571
|
.neural-mesh {
|
|
4535
|
-
background-image:
|
|
4536
|
-
circle at 2px 2px,
|
|
4537
|
-
hsl(var(--primary) / 0.07) 1px,
|
|
4538
|
-
transparent 0
|
|
4539
|
-
);
|
|
4540
|
-
background-size: 32px 32px;
|
|
4572
|
+
background-image: none;
|
|
4541
4573
|
}
|
|
4542
4574
|
.nav-active-indicator {
|
|
4543
4575
|
position: relative;
|
|
@@ -4552,7 +4584,6 @@
|
|
|
4552
4584
|
width: 3px;
|
|
4553
4585
|
background-color: hsl(var(--primary));
|
|
4554
4586
|
border-radius: 0 4px 4px 0;
|
|
4555
|
-
box-shadow: 0 0 10px hsl(var(--primary));
|
|
4556
4587
|
}
|
|
4557
4588
|
.glass {
|
|
4558
4589
|
background-color: var(--depth-2);
|
|
@@ -4562,17 +4593,10 @@
|
|
|
4562
4593
|
position: relative;
|
|
4563
4594
|
}
|
|
4564
4595
|
.bg-mesh::before {
|
|
4565
|
-
content:
|
|
4566
|
-
position: absolute;
|
|
4567
|
-
inset: 0;
|
|
4568
|
-
background: radial-gradient(ellipse 80% 50% at 20% 40%, var(--mesh-teal), transparent),
|
|
4569
|
-
radial-gradient(ellipse 60% 40% at 80% 20%, var(--mesh-violet), transparent),
|
|
4570
|
-
radial-gradient(ellipse 50% 60% at 50% 80%, var(--mesh-blue), transparent);
|
|
4571
|
-
pointer-events: none;
|
|
4572
|
-
z-index: 0;
|
|
4596
|
+
content: none;
|
|
4573
4597
|
}
|
|
4574
4598
|
.noise {
|
|
4575
|
-
background-image:
|
|
4599
|
+
background-image: none;
|
|
4576
4600
|
pointer-events: none;
|
|
4577
4601
|
}
|
|
4578
4602
|
.status-dot {
|
|
@@ -4584,7 +4608,6 @@
|
|
|
4584
4608
|
}
|
|
4585
4609
|
.status-dot-running {
|
|
4586
4610
|
background: var(--status-running);
|
|
4587
|
-
box-shadow: var(--shadow-status-running);
|
|
4588
4611
|
}
|
|
4589
4612
|
.status-dot-creating {
|
|
4590
4613
|
background: var(--status-creating);
|
|
@@ -4601,7 +4624,6 @@
|
|
|
4601
4624
|
}
|
|
4602
4625
|
.status-dot-error {
|
|
4603
4626
|
background: var(--status-error);
|
|
4604
|
-
box-shadow: var(--shadow-status-error);
|
|
4605
4627
|
}
|
|
4606
4628
|
.status-dot-deleted {
|
|
4607
4629
|
background: var(--status-deleted);
|
|
@@ -4627,6 +4649,19 @@
|
|
|
4627
4649
|
.animate-in {
|
|
4628
4650
|
animation: fade-in 0.25s ease-out;
|
|
4629
4651
|
}
|
|
4652
|
+
.animate-row-in {
|
|
4653
|
+
animation: row-in 0.18s ease-out;
|
|
4654
|
+
}
|
|
4655
|
+
@keyframes row-in {
|
|
4656
|
+
from {
|
|
4657
|
+
opacity: 0;
|
|
4658
|
+
transform: translateY(-4px);
|
|
4659
|
+
}
|
|
4660
|
+
to {
|
|
4661
|
+
opacity: 1;
|
|
4662
|
+
transform: translateY(0);
|
|
4663
|
+
}
|
|
4664
|
+
}
|
|
4630
4665
|
.pulse-ring {
|
|
4631
4666
|
position: relative;
|
|
4632
4667
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { AgentSessionControls, AgentSessionControlsProps, AgentSessionHarnessCon
|
|
|
8
8
|
export { ExpandedToolDetail, ExpandedToolDetailProps, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps } from '@tangle-network/ui/run';
|
|
9
9
|
export { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview } from '@tangle-network/ui/tool-previews';
|
|
10
10
|
export { FileArtifactPane, FileArtifactPaneProps, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, filterFileTree } from '@tangle-network/ui/files';
|
|
11
|
-
export { ActivityFeed, ActivityFeedProps, ActivityItem, BackendConfig, BackendConfigProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser, ExposedPort, GitCommitData, GitPanel, GitPanelProps, GitStatusData, HARNESS_BRAND, HarnessBrand, HarnessLogo, HarnessLogoProps, INSUFFICIENT_BALANCE_CODE, InfoPanel, InfoPanelProps, InsufficientBalance, Invoice, InvoiceTable, InvoiceTableProps, McpServer, MetricAreaChart, MetricAreaChartProps, MetricChartPoint, MetricChartTone, NavItem, NetworkConfig, NetworkConfigData, NetworkConfigProps, NewSandboxCard, NewSandboxCardProps, OutOfCreditsModal, OutOfCreditsModalProps, PlanCardData, PlanCards, PlanCardsProps, PlanFeature, PortsList, PortsListProps, ProcessInfo, ProcessList, ProcessListProps, ProductVariant, ProfileAvatar, ProfileAvatarProps, ProfileComparison, ProfileComparisonProps, ProfileSelector, ProfileSelectorProps, PromoBanner, PromoBannerProps, RailButton, RailButtonProps, RailFlyout, RailFlyoutProps, RailModeButton, RailModeButtonProps, RailSeparator, RailSeparatorProps, ResourceMeter, ResourceMeterProps, ResourceSnapshot, ResourceSnapshotItem, ResourceSnapshotProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxCardData, SandboxCardProps, SandboxStatus, SandboxTable, SandboxTableProps, Sidebar, SidebarContent, SidebarContentProps, SidebarLayout, SidebarLayoutFlyoutItem, SidebarLayoutNavItem, SidebarLayoutProps, SidebarPanel, SidebarPanelContent, SidebarPanelContentProps, SidebarPanelHeader, SidebarPanelHeaderProps, SidebarPanelProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailFooter, SidebarRailFooterProps, SidebarRailHeader, SidebarRailHeaderProps, SidebarRailNav, SidebarRailNavProps, SidebarRailProps, SidebarUser, SnapshotList, SnapshotListProps, SystemLogsViewer, SystemLogsViewerProps, TeamRole, UsageSummary, UsageSummaryData, UsageSummaryProps, Variant, VariantList, VariantListProps, VariantOutcome, VariantStatus, canAdminSandbox, parseInsufficientBalance, useSidebar } from './dashboard.js';
|
|
11
|
+
export { ActivityFeed, ActivityFeedProps, ActivityItem, BackendConfig, BackendConfigProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser, ExposedPort, GitCommitData, GitPanel, GitPanelProps, GitStatusData, HARNESS_BRAND, HarnessBrand, HarnessLogo, HarnessLogoProps, INSUFFICIENT_BALANCE_CODE, InfoPanel, InfoPanelProps, InsufficientBalance, Invoice, InvoiceTable, InvoiceTableProps, McpServer, MetricAreaChart, MetricAreaChartProps, MetricChartPoint, MetricChartTone, NavItem, NetworkConfig, NetworkConfigData, NetworkConfigProps, NewSandboxCard, NewSandboxCardProps, OutOfCreditsModal, OutOfCreditsModalProps, PlanCardData, PlanCards, PlanCardsProps, PlanFeature, PortsList, PortsListProps, ProcessInfo, ProcessList, ProcessListProps, ProductVariant, ProfileAvatar, ProfileAvatarProps, ProfileComparison, ProfileComparisonProps, ProfileSelector, ProfileSelectorProps, PromoBanner, PromoBannerProps, RailButton, RailButtonProps, RailCollapseToggle, RailCollapseToggleProps, RailFlyout, RailFlyoutProps, RailModeButton, RailModeButtonProps, RailSeparator, RailSeparatorProps, RailThemeToggle, RailTooltip, RailTooltipProps, ResourceMeter, ResourceMeterProps, ResourceSnapshot, ResourceSnapshotItem, ResourceSnapshotProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxCardData, SandboxCardProps, SandboxStatus, SandboxTable, SandboxTableProps, Sidebar, SidebarContent, SidebarContentProps, SidebarLayout, SidebarLayoutFlyoutItem, SidebarLayoutNavItem, SidebarLayoutProps, SidebarPanel, SidebarPanelContent, SidebarPanelContentProps, SidebarPanelHeader, SidebarPanelHeaderProps, SidebarPanelProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailFooter, SidebarRailFooterProps, SidebarRailHeader, SidebarRailHeaderProps, SidebarRailNav, SidebarRailNavProps, SidebarRailProps, SidebarUser, SnapshotList, SnapshotListProps, SystemLogsViewer, SystemLogsViewerProps, TeamRole, UsageSummary, UsageSummaryData, UsageSummaryProps, Variant, VariantList, VariantListProps, VariantOutcome, VariantStatus, canAdminSandbox, parseInsufficientBalance, useSidebar } from './dashboard.js';
|
|
12
12
|
export { B as Backend, a as BackendSelector, b as BackendSelectorProps, H as HARNESS_OPTIONS, c as HarnessPicker, d as HarnessPickerProps, e as HarnessType, f as chatCapableHarnesses } from './harness-picker-lyeEncN4.js';
|
|
13
13
|
export { D as DEFAULT_FEATURED_MODEL_IDS, M as ModelInfo, a as ModelPicker, b as ModelPickerProps, c as ModelPickerVariant, d as canonicalModelId, e as dedupeModels, f as formatContext, g as formatPricing, m as modelDedupKey } from './model-picker-Cmisf9Y8.js';
|
|
14
14
|
export { B as BillingBalance, a as BillingDashboard, b as BillingDashboardProps, c as BillingSubscription, d as BillingUsage, P as PricingPage, e as PricingPageProps, f as PricingTier, T as TemplateCard, g as TemplateCardData, h as TemplateCardProps, U as UsageChart, i as UsageChartProps, j as UsageDataPoint, k as formatPrice } from './template-card-UhV3pmRC.js';
|