@tangle-network/sandbox-ui 0.22.0 → 0.22.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.
@@ -2,6 +2,96 @@ import {
2
2
  cn
3
3
  } from "./chunk-EI44GEQ5.js";
4
4
 
5
+ // src/primitives/index.ts
6
+ import {
7
+ Avatar,
8
+ AvatarFallback,
9
+ AvatarImage,
10
+ Badge,
11
+ badgeVariants,
12
+ Button,
13
+ buttonVariants,
14
+ Card,
15
+ CardContent,
16
+ CardDescription,
17
+ CardFooter,
18
+ CardHeader,
19
+ CardTitle,
20
+ CodeBlock,
21
+ CopyButton,
22
+ Dialog,
23
+ DialogClose,
24
+ DialogContent,
25
+ DialogDescription,
26
+ DialogFooter,
27
+ DialogHeader,
28
+ DialogOverlay,
29
+ DialogPortal,
30
+ DialogTitle,
31
+ DialogTrigger,
32
+ DropZone,
33
+ DropdownMenu,
34
+ DropdownMenuCheckboxItem,
35
+ DropdownMenuContent,
36
+ DropdownMenuGroup,
37
+ DropdownMenuItem,
38
+ DropdownMenuLabel,
39
+ DropdownMenuPortal,
40
+ DropdownMenuRadioGroup,
41
+ DropdownMenuRadioItem,
42
+ DropdownMenuSeparator,
43
+ DropdownMenuShortcut,
44
+ DropdownMenuSub,
45
+ DropdownMenuSubContent,
46
+ DropdownMenuSubTrigger,
47
+ DropdownMenuTrigger,
48
+ EmptyState,
49
+ InlineCode,
50
+ Input,
51
+ Label,
52
+ Progress,
53
+ SegmentedControl,
54
+ Select,
55
+ SelectContent,
56
+ SelectGroup,
57
+ SelectItem,
58
+ SelectLabel,
59
+ SelectScrollDownButton,
60
+ SelectScrollUpButton,
61
+ SelectSeparator,
62
+ SelectTrigger,
63
+ SelectValue,
64
+ SidebarDropZone,
65
+ Skeleton,
66
+ SkeletonCard,
67
+ SkeletonTable,
68
+ StatCard,
69
+ Switch,
70
+ Table,
71
+ TableBody,
72
+ TableCaption,
73
+ TableCell,
74
+ TableFooter,
75
+ TableHead,
76
+ TableHeader,
77
+ TableRow,
78
+ Tabs,
79
+ TabsContent,
80
+ TabsList,
81
+ TabsTrigger,
82
+ TerminalCursor,
83
+ TerminalDisplay,
84
+ TerminalInput,
85
+ TerminalLine,
86
+ Textarea,
87
+ ThemeToggle,
88
+ ToastContainer,
89
+ ToastProvider,
90
+ UploadProgress,
91
+ useTheme,
92
+ useToast
93
+ } from "@tangle-network/ui/primitives";
94
+
5
95
  // src/primitives/logo.tsx
6
96
  import * as React from "react";
7
97
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -59,5 +149,91 @@ Logo.displayName = "Logo";
59
149
 
60
150
  export {
61
151
  TangleKnot,
62
- Logo
152
+ Logo,
153
+ Avatar,
154
+ AvatarFallback,
155
+ AvatarImage,
156
+ Badge,
157
+ badgeVariants,
158
+ Button,
159
+ buttonVariants,
160
+ Card,
161
+ CardContent,
162
+ CardDescription,
163
+ CardFooter,
164
+ CardHeader,
165
+ CardTitle,
166
+ CodeBlock,
167
+ CopyButton,
168
+ Dialog,
169
+ DialogClose,
170
+ DialogContent,
171
+ DialogDescription,
172
+ DialogFooter,
173
+ DialogHeader,
174
+ DialogOverlay,
175
+ DialogPortal,
176
+ DialogTitle,
177
+ DialogTrigger,
178
+ DropZone,
179
+ DropdownMenu,
180
+ DropdownMenuCheckboxItem,
181
+ DropdownMenuContent,
182
+ DropdownMenuGroup,
183
+ DropdownMenuItem,
184
+ DropdownMenuLabel,
185
+ DropdownMenuPortal,
186
+ DropdownMenuRadioGroup,
187
+ DropdownMenuRadioItem,
188
+ DropdownMenuSeparator,
189
+ DropdownMenuShortcut,
190
+ DropdownMenuSub,
191
+ DropdownMenuSubContent,
192
+ DropdownMenuSubTrigger,
193
+ DropdownMenuTrigger,
194
+ EmptyState,
195
+ InlineCode,
196
+ Input,
197
+ Label,
198
+ Progress,
199
+ SegmentedControl,
200
+ Select,
201
+ SelectContent,
202
+ SelectGroup,
203
+ SelectItem,
204
+ SelectLabel,
205
+ SelectScrollDownButton,
206
+ SelectScrollUpButton,
207
+ SelectSeparator,
208
+ SelectTrigger,
209
+ SelectValue,
210
+ SidebarDropZone,
211
+ Skeleton,
212
+ SkeletonCard,
213
+ SkeletonTable,
214
+ StatCard,
215
+ Switch,
216
+ Table,
217
+ TableBody,
218
+ TableCaption,
219
+ TableCell,
220
+ TableFooter,
221
+ TableHead,
222
+ TableHeader,
223
+ TableRow,
224
+ Tabs,
225
+ TabsContent,
226
+ TabsList,
227
+ TabsTrigger,
228
+ TerminalCursor,
229
+ TerminalDisplay,
230
+ TerminalInput,
231
+ TerminalLine,
232
+ Textarea,
233
+ ThemeToggle,
234
+ ToastContainer,
235
+ ToastProvider,
236
+ UploadProgress,
237
+ useTheme,
238
+ useToast
63
239
  };
@@ -1,7 +1,3 @@
1
- import {
2
- TangleKnot
3
- } from "./chunk-UHFJXO24.js";
4
-
5
1
  // src/auth/index.ts
6
2
  import {
7
3
  AuthHeader,
@@ -14,6 +10,18 @@ import {
14
10
  import { Button } from "@tangle-network/ui/primitives";
15
11
  import { cn } from "@tangle-network/ui/utils";
16
12
  import { jsx, jsxs } from "react/jsx-runtime";
13
+ function TangleMark({ className }) {
14
+ return /* @__PURE__ */ jsx(
15
+ "svg",
16
+ {
17
+ className,
18
+ viewBox: "0 0 24 24",
19
+ fill: "currentColor",
20
+ "aria-hidden": "true",
21
+ children: /* @__PURE__ */ jsx("path", { d: "M4 5h16v3.2h-6.4V19h-3.2V8.2H4V5z" })
22
+ }
23
+ );
24
+ }
17
25
  function TangleLoginButton({
18
26
  authUrl = "/auth/tangle",
19
27
  variant = "default",
@@ -31,7 +39,7 @@ function TangleLoginButton({
31
39
  },
32
40
  ...props,
33
41
  children: [
34
- /* @__PURE__ */ jsx(TangleKnot, { size: 20 }),
42
+ /* @__PURE__ */ jsx(TangleMark, { className: "h-5 w-5" }),
35
43
  children ?? "Sign in with Tangle"
36
44
  ]
37
45
  }
@@ -218,9 +218,72 @@ interface ResourceMeterProps {
218
218
  max?: number;
219
219
  unit?: string;
220
220
  icon?: React.ReactNode;
221
+ /**
222
+ * Overrides the right-hand readout. Use for values the raw
223
+ * `value{unit}/max{unit}` template can't express, e.g. byte sizes
224
+ * ("1.2 GB / 4 GB"). The bar fill still derives from value/max.
225
+ */
226
+ valueLabel?: string;
227
+ className?: string;
228
+ }
229
+ declare function ResourceMeter({ label, value, max, unit, valueLabel, icon, className }: ResourceMeterProps): react_jsx_runtime.JSX.Element;
230
+
231
+ interface ResourceSnapshotItem {
232
+ /** Stable React key; falls back to `label` plus row index when omitted. */
233
+ id?: string;
234
+ label: string;
235
+ /** Current value, in the same unit as `max`. */
236
+ value: number;
237
+ /** Full-scale value. Omit to treat `value` as a 0-100 percent. */
238
+ max?: number;
239
+ /** Unit suffix for the default `value{unit}/max{unit}` readout. */
240
+ unit?: string;
241
+ /** Right-hand readout override (e.g. "1.2 GB / 4 GB"). */
242
+ valueLabel?: string;
243
+ icon?: React.ReactNode;
244
+ }
245
+ interface ResourceSnapshotProps {
246
+ title?: string;
247
+ /** Right-aligned header slot, e.g. a "View metrics" link. */
248
+ action?: React.ReactNode;
249
+ items: ResourceSnapshotItem[];
250
+ loading?: boolean;
251
+ /** When set, replaces the meters with an error line. */
252
+ error?: string | null;
221
253
  className?: string;
222
254
  }
223
- declare function ResourceMeter({ label, value, max, unit, icon, className }: ResourceMeterProps): react_jsx_runtime.JSX.Element;
255
+ /**
256
+ * Compact at-a-glance resource panel: a stack of {@link ResourceMeter}
257
+ * rows for an instantaneous CPU / memory / disk read. Time-series detail
258
+ * belongs in a dedicated metrics view; this is the snapshot.
259
+ */
260
+ declare function ResourceSnapshot({ title, action, items, loading, error, className, }: ResourceSnapshotProps): react_jsx_runtime.JSX.Element;
261
+
262
+ interface ActivityItem {
263
+ /** Stable key. */
264
+ id: string;
265
+ icon?: React.ReactNode;
266
+ title: string;
267
+ detail?: string;
268
+ /** Wall-clock ms. Drives ordering and the relative timestamp. */
269
+ timestamp?: number;
270
+ }
271
+ interface ActivityFeedProps {
272
+ title?: string;
273
+ action?: React.ReactNode;
274
+ items: ActivityItem[];
275
+ loading?: boolean;
276
+ /** Caps the rendered rows after sorting newest-first. Default 6. */
277
+ maxItems?: number;
278
+ emptyLabel?: string;
279
+ className?: string;
280
+ }
281
+ /**
282
+ * Newest-first list of recent sandbox activity (commits, snapshots,
283
+ * lifecycle events). Items are sorted by `timestamp` descending here so
284
+ * callers can merge heterogeneous sources without pre-sorting.
285
+ */
286
+ declare function ActivityFeed({ title, action, items, loading, maxItems, emptyLabel, className, }: ActivityFeedProps): react_jsx_runtime.JSX.Element;
224
287
 
225
288
  type SandboxStatus = "running" | "hibernating" | "provisioning" | "stopped" | "failed" | "archived" | "creating";
226
289
  type TeamRole = "owner" | "admin" | "member" | "viewer";
@@ -659,4 +722,4 @@ interface InfoPanelProps {
659
722
  }
660
723
  declare function InfoPanel({ label, title, description, className }: InfoPanelProps): react_jsx_runtime.JSX.Element;
661
724
 
662
- export { 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, 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, RailModeButton, type RailModeButtonProps, RailSeparator, type RailSeparatorProps, ResourceMeter, type ResourceMeterProps, 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, 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 };
725
+ 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, 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, 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, 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
@@ -1,4 +1,5 @@
1
1
  import {
2
+ ActivityFeed,
2
3
  BackendConfig,
3
4
  ClusterStatusBar,
4
5
  CreditBalance,
@@ -21,6 +22,7 @@ import {
21
22
  RailModeButton,
22
23
  RailSeparator,
23
24
  ResourceMeter,
25
+ ResourceSnapshot,
24
26
  SIDEBAR_MOBILE_WIDTH,
25
27
  SIDEBAR_PANEL_WIDTH,
26
28
  SIDEBAR_RAIL_WIDTH,
@@ -44,7 +46,7 @@ import {
44
46
  canAdminSandbox,
45
47
  parseInsufficientBalance,
46
48
  useSidebar
47
- } from "./chunk-ZNYEJERQ.js";
49
+ } from "./chunk-7X2DHDQ6.js";
48
50
  import {
49
51
  BillingDashboard,
50
52
  InfoPanel,
@@ -53,8 +55,7 @@ import {
53
55
  UsageChart,
54
56
  formatPrice
55
57
  } from "./chunk-DNZ4DTNA.js";
56
- import "./chunk-SM7IJY4I.js";
57
- import "./chunk-UHFJXO24.js";
58
+ import "./chunk-7ZA5SEK3.js";
58
59
  import {
59
60
  BackendSelector,
60
61
  HARNESS_OPTIONS,
@@ -68,6 +69,7 @@ import {
68
69
  } from "./chunk-4KAPMTPU.js";
69
70
  import "./chunk-EI44GEQ5.js";
70
71
  export {
72
+ ActivityFeed,
71
73
  BackendConfig,
72
74
  BackendSelector,
73
75
  BillingDashboard,
@@ -97,6 +99,7 @@ export {
97
99
  RailModeButton,
98
100
  RailSeparator,
99
101
  ResourceMeter,
102
+ ResourceSnapshot,
100
103
  SIDEBAR_MOBILE_WIDTH,
101
104
  SIDEBAR_PANEL_WIDTH,
102
105
  SIDEBAR_RAIL_WIDTH,
package/dist/globals.css CHANGED
@@ -365,9 +365,6 @@
365
365
  .bottom-0 {
366
366
  bottom: calc(var(--spacing) * 0);
367
367
  }
368
- .bottom-2 {
369
- bottom: calc(var(--spacing) * 2);
370
- }
371
368
  .bottom-4 {
372
369
  bottom: calc(var(--spacing) * 4);
373
370
  }
@@ -383,18 +380,12 @@
383
380
  .left-0\.5 {
384
381
  left: calc(var(--spacing) * 0.5);
385
382
  }
386
- .left-1 {
387
- left: calc(var(--spacing) * 1);
388
- }
389
383
  .left-1\/2 {
390
384
  left: calc(1 / 2 * 100%);
391
385
  }
392
386
  .left-2 {
393
387
  left: calc(var(--spacing) * 2);
394
388
  }
395
- .left-2\.5 {
396
- left: calc(var(--spacing) * 2.5);
397
- }
398
389
  .left-3 {
399
390
  left: calc(var(--spacing) * 3);
400
391
  }
@@ -611,9 +602,6 @@
611
602
  .table {
612
603
  display: table;
613
604
  }
614
- .aspect-\[9\/16\] {
615
- aspect-ratio: 9/16;
616
- }
617
605
  .aspect-square {
618
606
  aspect-ratio: 1 / 1;
619
607
  }
@@ -735,9 +723,6 @@
735
723
  .h-screen {
736
724
  height: 100vh;
737
725
  }
738
- .max-h-40 {
739
- max-height: calc(var(--spacing) * 40);
740
- }
741
726
  .max-h-48 {
742
727
  max-height: calc(var(--spacing) * 48);
743
728
  }
@@ -792,9 +777,6 @@
792
777
  .min-h-\[44px\] {
793
778
  min-height: 44px;
794
779
  }
795
- .min-h-\[60px\] {
796
- min-height: 60px;
797
- }
798
780
  .min-h-\[72px\] {
799
781
  min-height: 72px;
800
782
  }
@@ -810,9 +792,6 @@
810
792
  .min-h-\[200px\] {
811
793
  min-height: 200px;
812
794
  }
813
- .min-h-\[300px\] {
814
- min-height: 300px;
815
- }
816
795
  .min-h-full {
817
796
  min-height: 100%;
818
797
  }
@@ -1086,9 +1065,6 @@
1086
1065
  .min-w-4 {
1087
1066
  min-width: calc(var(--spacing) * 4);
1088
1067
  }
1089
- .min-w-40 {
1090
- min-width: calc(var(--spacing) * 40);
1091
- }
1092
1068
  .min-w-\[8rem\] {
1093
1069
  min-width: 8rem;
1094
1070
  }
@@ -1638,10 +1614,6 @@
1638
1614
  border-left-style: var(--tw-border-style);
1639
1615
  border-left-width: 1px;
1640
1616
  }
1641
- .border-l-2 {
1642
- border-left-style: var(--tw-border-style);
1643
- border-left-width: 2px;
1644
- }
1645
1617
  .border-dashed {
1646
1618
  --tw-border-style: dashed;
1647
1619
  border-style: dashed;
@@ -1959,9 +1931,6 @@
1959
1931
  background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
1960
1932
  }
1961
1933
  }
1962
- .bg-black {
1963
- background-color: var(--color-black);
1964
- }
1965
1934
  .bg-black\/40 {
1966
1935
  background-color: color-mix(in srgb, #000 40%, transparent);
1967
1936
  @supports (color: color-mix(in lab, red, red)) {
@@ -2070,12 +2039,6 @@
2070
2039
  background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
2071
2040
  }
2072
2041
  }
2073
- .bg-white\/40 {
2074
- background-color: color-mix(in srgb, #fff 40%, transparent);
2075
- @supports (color: color-mix(in lab, red, red)) {
2076
- background-color: color-mix(in oklab, var(--color-white) 40%, transparent);
2077
- }
2078
- }
2079
2042
  .bg-yellow-500 {
2080
2043
  background-color: var(--color-yellow-500);
2081
2044
  }
@@ -2115,9 +2078,6 @@
2115
2078
  .object-contain {
2116
2079
  object-fit: contain;
2117
2080
  }
2118
- .object-cover {
2119
- object-fit: cover;
2120
- }
2121
2081
  .p-0 {
2122
2082
  padding: calc(var(--spacing) * 0);
2123
2083
  }
@@ -2310,9 +2270,6 @@
2310
2270
  .pt-16 {
2311
2271
  padding-top: calc(var(--spacing) * 16);
2312
2272
  }
2313
- .pr-1 {
2314
- padding-right: calc(var(--spacing) * 1);
2315
- }
2316
2273
  .pr-2 {
2317
2274
  padding-right: calc(var(--spacing) * 2);
2318
2275
  }
@@ -2352,9 +2309,6 @@
2352
2309
  .pl-2 {
2353
2310
  padding-left: calc(var(--spacing) * 2);
2354
2311
  }
2355
- .pl-3 {
2356
- padding-left: calc(var(--spacing) * 3);
2357
- }
2358
2312
  .pl-4 {
2359
2313
  padding-left: calc(var(--spacing) * 4);
2360
2314
  }
@@ -2724,9 +2678,6 @@
2724
2678
  .text-blue-400 {
2725
2679
  color: var(--color-blue-400);
2726
2680
  }
2727
- .text-blue-500 {
2728
- color: var(--color-blue-500);
2729
- }
2730
2681
  .text-emerald-400 {
2731
2682
  color: var(--color-emerald-400);
2732
2683
  }
@@ -2784,9 +2735,6 @@
2784
2735
  .italic {
2785
2736
  font-style: italic;
2786
2737
  }
2787
- .not-italic {
2788
- font-style: normal;
2789
- }
2790
2738
  .tabular-nums {
2791
2739
  --tw-numeric-spacing: tabular-nums;
2792
2740
  font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
@@ -2810,9 +2758,6 @@
2810
2758
  .opacity-30 {
2811
2759
  opacity: 30%;
2812
2760
  }
2813
- .opacity-40 {
2814
- opacity: 40%;
2815
- }
2816
2761
  .opacity-50 {
2817
2762
  opacity: 50%;
2818
2763
  }
@@ -3259,16 +3204,6 @@
3259
3204
  }
3260
3205
  }
3261
3206
  }
3262
- .hover\:bg-black\/60 {
3263
- &:hover {
3264
- @media (hover: hover) {
3265
- background-color: color-mix(in srgb, #000 60%, transparent);
3266
- @supports (color: color-mix(in lab, red, red)) {
3267
- background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
3268
- }
3269
- }
3270
- }
3271
- }
3272
3207
  .hover\:bg-blue-600\/30 {
3273
3208
  &:hover {
3274
3209
  @media (hover: hover) {
@@ -3289,16 +3224,6 @@
3289
3224
  }
3290
3225
  }
3291
3226
  }
3292
- .hover\:bg-green-600\/5 {
3293
- &:hover {
3294
- @media (hover: hover) {
3295
- background-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 5%, transparent);
3296
- @supports (color: color-mix(in lab, red, red)) {
3297
- background-color: color-mix(in oklab, var(--color-green-600) 5%, transparent);
3298
- }
3299
- }
3300
- }
3301
- }
3302
3227
  .hover\:bg-green-600\/30 {
3303
3228
  &:hover {
3304
3229
  @media (hover: hover) {
@@ -3357,13 +3282,6 @@
3357
3282
  }
3358
3283
  }
3359
3284
  }
3360
- .hover\:text-green-600 {
3361
- &:hover {
3362
- @media (hover: hover) {
3363
- color: var(--color-green-600);
3364
- }
3365
- }
3366
- }
3367
3285
  .hover\:underline {
3368
3286
  &:hover {
3369
3287
  @media (hover: hover) {
@@ -3679,11 +3597,6 @@
3679
3597
  grid-template-columns: repeat(2, minmax(0, 1fr));
3680
3598
  }
3681
3599
  }
3682
- .sm\:grid-cols-3 {
3683
- @media (width >= 40rem) {
3684
- grid-template-columns: repeat(3, minmax(0, 1fr));
3685
- }
3686
- }
3687
3600
  .sm\:grid-cols-4 {
3688
3601
  @media (width >= 40rem) {
3689
3602
  grid-template-columns: repeat(4, minmax(0, 1fr));
@@ -3870,11 +3783,6 @@
3870
3783
  grid-template-columns: repeat(4, minmax(0, 1fr));
3871
3784
  }
3872
3785
  }
3873
- .xl\:grid-cols-5 {
3874
- @media (width >= 80rem) {
3875
- grid-template-columns: repeat(5, minmax(0, 1fr));
3876
- }
3877
- }
3878
3786
  .dark\:text-neutral-500 {
3879
3787
  @media (prefers-color-scheme: dark) {
3880
3788
  color: var(--color-neutral-500);
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 { BackendConfig, BackendConfigProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser, ExposedPort, GitCommitData, GitPanel, GitPanelProps, GitStatusData, 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, RailModeButton, RailModeButtonProps, RailSeparator, RailSeparatorProps, ResourceMeter, ResourceMeterProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxCardData, SandboxCardProps, SandboxStatus, SandboxTable, SandboxTableProps, Sidebar, SidebarContent, SidebarContentProps, 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, 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, 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, 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 } from './harness-picker-C1W3rTeb.js';
13
13
  export { M as ModelInfo, a as ModelPicker, b as ModelPickerProps, c as ModelPickerVariant, d as canonicalModelId, f as formatContext, e as formatPricing } from './model-picker-DUfMTQo5.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';
package/dist/index.js CHANGED
@@ -58,7 +58,7 @@ import {
58
58
  LoginLayout,
59
59
  TangleLoginButton,
60
60
  UserMenu
61
- } from "./chunk-R3ZMMCT3.js";
61
+ } from "./chunk-IOB2PW5Z.js";
62
62
  import {
63
63
  RealtimeSessionRegistry,
64
64
  createAuthFetcher,
@@ -141,6 +141,7 @@ import {
141
141
  filterFileTree
142
142
  } from "./chunk-3J6FG3FJ.js";
143
143
  import {
144
+ ActivityFeed,
144
145
  BackendConfig,
145
146
  ClusterStatusBar,
146
147
  CreditBalance,
@@ -163,6 +164,7 @@ import {
163
164
  RailModeButton,
164
165
  RailSeparator,
165
166
  ResourceMeter,
167
+ ResourceSnapshot,
166
168
  SIDEBAR_MOBILE_WIDTH,
167
169
  SIDEBAR_PANEL_WIDTH,
168
170
  SIDEBAR_RAIL_WIDTH,
@@ -186,7 +188,7 @@ import {
186
188
  canAdminSandbox,
187
189
  parseInsufficientBalance,
188
190
  useSidebar
189
- } from "./chunk-ZNYEJERQ.js";
191
+ } from "./chunk-7X2DHDQ6.js";
190
192
  import {
191
193
  BillingDashboard,
192
194
  InfoPanel,
@@ -239,6 +241,7 @@ import {
239
241
  InlineCode,
240
242
  Input,
241
243
  Label,
244
+ Logo,
242
245
  Progress,
243
246
  SegmentedControl,
244
247
  Select,
@@ -269,6 +272,7 @@ import {
269
272
  TabsContent,
270
273
  TabsList,
271
274
  TabsTrigger,
275
+ TangleKnot,
272
276
  TerminalDisplay,
273
277
  Textarea,
274
278
  ThemeToggle,
@@ -279,11 +283,7 @@ import {
279
283
  buttonVariants,
280
284
  useTheme,
281
285
  useToast
282
- } from "./chunk-SM7IJY4I.js";
283
- import {
284
- Logo,
285
- TangleKnot
286
- } from "./chunk-UHFJXO24.js";
286
+ } from "./chunk-7ZA5SEK3.js";
287
287
  import {
288
288
  BackendSelector,
289
289
  HARNESS_OPTIONS,
@@ -315,6 +315,7 @@ import {
315
315
  } from "@tangle-network/ui/tool-previews";
316
316
  import { Markdown } from "@tangle-network/ui/markdown";
317
317
  export {
318
+ ActivityFeed,
318
319
  AgentSessionControls,
319
320
  AgentTimeline,
320
321
  AgentWorkbench,
@@ -425,6 +426,7 @@ export {
425
426
  RealtimeSessionRegistry,
426
427
  ReasoningLevelPicker,
427
428
  ResourceMeter,
429
+ ResourceSnapshot,
428
430
  RichFileTree,
429
431
  RunGroup,
430
432
  RuntimePane,
package/dist/pages.js CHANGED
@@ -11,8 +11,7 @@ import {
11
11
  Input,
12
12
  Switch,
13
13
  Textarea
14
- } from "./chunk-SM7IJY4I.js";
15
- import "./chunk-UHFJXO24.js";
14
+ } from "./chunk-7ZA5SEK3.js";
16
15
  import "./chunk-4KAPMTPU.js";
17
16
  import {
18
17
  cn