@tangle-network/sandbox-ui 0.5.0 → 0.5.2
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/{chunk-ZOZX2U6I.js → chunk-STHB4N22.js} +35 -19
- package/dist/dashboard.d.ts +1 -1
- package/dist/dashboard.js +1 -1
- package/dist/{index-CDt0GE4A.d.ts → index-BT_-ecpc.d.ts} +4 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/tokens.css +20 -0
- package/package.json +2 -1
- package/tailwind.config.cjs +11 -0
|
@@ -158,7 +158,7 @@ function Sidebar({ children, className }) {
|
|
|
158
158
|
{
|
|
159
159
|
"data-sidebar": "true",
|
|
160
160
|
className: cn(
|
|
161
|
-
"fixed inset-y-0 left-0 z-40 flex bg-
|
|
161
|
+
"fixed inset-y-0 left-0 z-40 flex bg-[var(--depth-1)] border-r border-[var(--border-subtle)] transition-[transform,width] duration-200 ease-in-out",
|
|
162
162
|
hidden && "-translate-x-full",
|
|
163
163
|
className
|
|
164
164
|
),
|
|
@@ -168,10 +168,10 @@ function Sidebar({ children, className }) {
|
|
|
168
168
|
);
|
|
169
169
|
}
|
|
170
170
|
function SidebarRail({ children, className }) {
|
|
171
|
-
return /* @__PURE__ */ jsx2("div", { className: cn("flex flex-col h-full w-16 shrink-0", className), children });
|
|
171
|
+
return /* @__PURE__ */ jsx2("div", { className: cn("flex flex-col h-full w-16 shrink-0 bg-[var(--depth-2)]", className), children });
|
|
172
172
|
}
|
|
173
173
|
function SidebarRailHeader({ children, className }) {
|
|
174
|
-
return /* @__PURE__ */ jsx2("div", { className: cn("flex h-14 items-center justify-center border-b border-
|
|
174
|
+
return /* @__PURE__ */ jsx2("div", { className: cn("flex h-14 items-center justify-center border-b border-[var(--border-subtle)]", className), children });
|
|
175
175
|
}
|
|
176
176
|
function SidebarRailNav({ children, className }) {
|
|
177
177
|
return /* @__PURE__ */ jsx2("nav", { className: cn("flex flex-col items-center gap-1 py-3 flex-1", className), children });
|
|
@@ -180,7 +180,7 @@ function SidebarRailFooter({ children, className }) {
|
|
|
180
180
|
return /* @__PURE__ */ jsx2("div", { className: cn("flex flex-col items-center gap-1 pb-3", className), children });
|
|
181
181
|
}
|
|
182
182
|
function RailSeparator({ className }) {
|
|
183
|
-
return /* @__PURE__ */ jsx2("div", { className: cn("my-2 h-px w-10 bg-
|
|
183
|
+
return /* @__PURE__ */ jsx2("div", { className: cn("my-2 h-px w-10 bg-[var(--border-subtle)]", className) });
|
|
184
184
|
}
|
|
185
185
|
function RailButton({ icon: Icon2, label, isActive, badge, onClick, className }) {
|
|
186
186
|
return /* @__PURE__ */ jsxs(
|
|
@@ -190,17 +190,21 @@ function RailButton({ icon: Icon2, label, isActive, badge, onClick, className })
|
|
|
190
190
|
onClick,
|
|
191
191
|
title: label,
|
|
192
192
|
className: cn(
|
|
193
|
-
"relative flex items-center justify-center w-
|
|
194
|
-
"hover:bg-
|
|
193
|
+
"group relative flex flex-col items-center justify-center gap-0.5 w-12 h-12 rounded-lg transition-all duration-150",
|
|
194
|
+
"hover:bg-[var(--accent-surface-soft)] hover:text-[var(--accent-text)]",
|
|
195
195
|
"active:scale-95",
|
|
196
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
197
|
-
isActive && "bg-
|
|
198
|
-
!isActive && "text-
|
|
196
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]",
|
|
197
|
+
isActive && "bg-[var(--accent-surface-strong)] text-[var(--accent-text)] shadow-[0_0_12px_-2px_rgba(130,99,255,0.3)]",
|
|
198
|
+
!isActive && "text-[var(--text-muted)]",
|
|
199
199
|
className
|
|
200
200
|
),
|
|
201
201
|
children: [
|
|
202
|
-
/* @__PURE__ */ jsx2(Icon2, { className: "h-
|
|
203
|
-
|
|
202
|
+
/* @__PURE__ */ jsx2(Icon2, { className: "h-[18px] w-[18px]" }),
|
|
203
|
+
/* @__PURE__ */ jsx2("span", { className: cn(
|
|
204
|
+
"text-[9px] leading-none font-medium tracking-tight truncate max-w-[44px]",
|
|
205
|
+
isActive ? "text-[var(--accent-text)]" : "text-[var(--text-dim)] group-hover:text-[var(--accent-text)]"
|
|
206
|
+
), children: label }),
|
|
207
|
+
badge !== void 0 && badge > 0 && /* @__PURE__ */ jsx2("span", { className: "absolute -top-0.5 -right-0.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-[var(--brand-primary)] text-[8px] font-medium text-white px-0.5", children: badge > 99 ? "99+" : badge })
|
|
204
208
|
]
|
|
205
209
|
}
|
|
206
210
|
);
|
|
@@ -225,7 +229,7 @@ function SidebarPanel({ children, className }) {
|
|
|
225
229
|
"div",
|
|
226
230
|
{
|
|
227
231
|
className: cn(
|
|
228
|
-
"transition-[opacity] duration-150 h-full overflow-hidden border-l border-
|
|
232
|
+
"transition-[opacity] duration-150 h-full overflow-hidden border-l border-[var(--border-subtle)] bg-[var(--depth-1)]",
|
|
229
233
|
panelOpen ? "w-[260px] opacity-100" : "w-0 opacity-0 pointer-events-none",
|
|
230
234
|
className
|
|
231
235
|
),
|
|
@@ -234,7 +238,7 @@ function SidebarPanel({ children, className }) {
|
|
|
234
238
|
);
|
|
235
239
|
}
|
|
236
240
|
function SidebarPanelHeader({ children, title, className }) {
|
|
237
|
-
return /* @__PURE__ */ jsx2("div", { className: cn("flex h-14 items-center px-4 border-b border-
|
|
241
|
+
return /* @__PURE__ */ jsx2("div", { className: cn("flex h-14 items-center px-4 border-b border-[var(--border-subtle)] shrink-0", className), children: children ?? /* @__PURE__ */ jsx2("h2", { className: "text-sm font-semibold text-[var(--text-primary)]", children: title }) });
|
|
238
242
|
}
|
|
239
243
|
function SidebarPanelContent({ children, className }) {
|
|
240
244
|
return /* @__PURE__ */ jsx2("div", { className: cn("flex-1 overflow-y-auto px-2 py-2", className), children });
|
|
@@ -267,8 +271,8 @@ function ProfileAvatar({
|
|
|
267
271
|
{
|
|
268
272
|
type: "button",
|
|
269
273
|
className: cn(
|
|
270
|
-
"flex items-center justify-center w-
|
|
271
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
274
|
+
"flex items-center justify-center w-12 h-12 rounded-lg transition-colors hover:bg-[var(--accent-surface-soft)]",
|
|
275
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-cool)]",
|
|
272
276
|
className
|
|
273
277
|
),
|
|
274
278
|
"aria-label": "User menu",
|
|
@@ -722,7 +726,7 @@ function ResourceMeter({ label, value, max = 100, unit, icon, className }) {
|
|
|
722
726
|
}
|
|
723
727
|
|
|
724
728
|
// src/dashboard/sandbox-card.tsx
|
|
725
|
-
import { Cpu, Database, Plus as Plus2, Terminal, Power, ExternalLink, RefreshCw } from "lucide-react";
|
|
729
|
+
import { Cpu, Database, Plus as Plus2, Terminal, Power, ExternalLink, RefreshCw, Trash2 } from "lucide-react";
|
|
726
730
|
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
727
731
|
var statusConfig = {
|
|
728
732
|
running: { color: "text-[var(--surface-success-text)]", bg: "bg-[var(--surface-success-bg)]", border: "border-[var(--surface-success-border)]", dotClass: "bg-[var(--surface-success-text)] animate-pulse", label: "Running" },
|
|
@@ -732,7 +736,7 @@ var statusConfig = {
|
|
|
732
736
|
failed: { color: "text-[var(--surface-danger-text)]", bg: "bg-[var(--surface-danger-bg)]", border: "border-[var(--surface-danger-border)]", dotClass: "bg-[var(--surface-danger-text)]", label: "Failed" },
|
|
733
737
|
archived: { color: "text-[var(--text-muted)]", bg: "bg-[var(--depth-3)]", border: "border-[var(--border-subtle)]", dotClass: "bg-[var(--border-default)]", label: "Archived" }
|
|
734
738
|
};
|
|
735
|
-
function SandboxCard({ sandbox, onOpenIDE, onOpenTerminal, onWake, onRestore, className }) {
|
|
739
|
+
function SandboxCard({ sandbox, onOpenIDE, onOpenTerminal, onWake, onRestore, onDelete, className }) {
|
|
736
740
|
const status = statusConfig[sandbox.status] ?? statusConfig.stopped;
|
|
737
741
|
const isActive = sandbox.status === "running";
|
|
738
742
|
const isHibernating = sandbox.status === "hibernating";
|
|
@@ -844,6 +848,16 @@ function SandboxCard({ sandbox, onOpenIDE, onOpenTerminal, onWake, onRestore, cl
|
|
|
844
848
|
className: "w-full py-2 bg-[var(--depth-3)] hover:bg-[var(--depth-4)] text-[var(--text-muted)] hover:text-[var(--text-primary)] rounded-lg transition-all text-xs font-semibold border border-[var(--border-subtle)]",
|
|
845
849
|
children: "Restore Sandbox"
|
|
846
850
|
}
|
|
851
|
+
),
|
|
852
|
+
onDelete && !isProvisioning && /* @__PURE__ */ jsx9(
|
|
853
|
+
"button",
|
|
854
|
+
{
|
|
855
|
+
type: "button",
|
|
856
|
+
onClick: () => onDelete(sandbox.id),
|
|
857
|
+
className: "absolute bottom-4 right-4 p-1.5 rounded-md text-[var(--text-muted)] hover:text-[var(--surface-danger-text)] hover:bg-[var(--surface-danger-bg)] transition-all opacity-0 group-hover:opacity-100",
|
|
858
|
+
title: "Delete sandbox",
|
|
859
|
+
children: /* @__PURE__ */ jsx9(Trash2, { className: "h-3.5 w-3.5" })
|
|
860
|
+
}
|
|
847
861
|
)
|
|
848
862
|
]
|
|
849
863
|
}
|
|
@@ -869,7 +883,7 @@ function NewSandboxCard({ onClick, className }) {
|
|
|
869
883
|
}
|
|
870
884
|
|
|
871
885
|
// src/dashboard/sandbox-table.tsx
|
|
872
|
-
import { Terminal as Terminal2, Code2, Key,
|
|
886
|
+
import { Terminal as Terminal2, Code2, Key, Trash2 as Trash22, RefreshCw as RefreshCw2, ChevronLeft, ChevronRight } from "lucide-react";
|
|
873
887
|
import { Fragment as Fragment4, jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
874
888
|
var statusColors = {
|
|
875
889
|
running: { dot: "bg-[var(--code-success)] animate-pulse", text: "text-[var(--code-success)]", bar: "bg-[var(--code-success)]" },
|
|
@@ -902,6 +916,7 @@ function SandboxTable({
|
|
|
902
916
|
onSSH,
|
|
903
917
|
onWake,
|
|
904
918
|
onMore,
|
|
919
|
+
onDelete,
|
|
905
920
|
className
|
|
906
921
|
}) {
|
|
907
922
|
const totalCount = total ?? sandboxes.length;
|
|
@@ -950,7 +965,8 @@ function SandboxTable({
|
|
|
950
965
|
/* @__PURE__ */ jsx10("button", { type: "button", onClick: () => onSSH?.(sb.id), className: "p-2 rounded-lg hover:bg-[var(--depth-4)] text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-all active:scale-90", title: "SSH", children: /* @__PURE__ */ jsx10(Key, { className: "h-4 w-4" }) })
|
|
951
966
|
] }),
|
|
952
967
|
isHibernating && /* @__PURE__ */ jsx10("button", { type: "button", onClick: () => onWake?.(sb.id), className: "px-3 py-1.5 rounded-lg border border-[var(--border-accent)] text-[var(--brand-cool)] text-[10px] font-bold uppercase tracking-wider hover:bg-[var(--accent-surface-soft)] active:scale-95 transition-all", children: "Wake Up" }),
|
|
953
|
-
/* @__PURE__ */ jsx10("button", { type: "button", onClick: () => onMore
|
|
968
|
+
onMore && /* @__PURE__ */ jsx10("button", { type: "button", onClick: () => onMore(sb.id), className: "p-2 rounded-lg hover:bg-[var(--depth-4)] text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-all active:scale-90", children: /* @__PURE__ */ jsx10(Code2, { className: "h-4 w-4" }) }),
|
|
969
|
+
onDelete && /* @__PURE__ */ jsx10("button", { type: "button", onClick: () => onDelete(sb.id), className: "p-2 rounded-lg hover:bg-[var(--surface-danger-bg)] text-[var(--text-muted)] hover:text-[var(--surface-danger-text)] transition-all active:scale-90", title: "Delete", children: /* @__PURE__ */ jsx10(Trash22, { className: "h-4 w-4" }) })
|
|
954
970
|
] }) })
|
|
955
971
|
] }, sb.id);
|
|
956
972
|
}) })
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as Backend, a as BackendSelector, b as BackendSelectorProps, C as ClusterStatusBar, c as ClusterStatusBarProps, d as ClusterStatusItem, e as CreditBalance, f as CreditBalanceProps, D as DashboardLayout, g as DashboardLayoutProps, ag as DashboardProfile, h as DashboardUser, I as Invoice, i as InvoiceTable, j as InvoiceTableProps, N as NavItem, k as NewSandboxCard, l as NewSandboxCardProps, m as PlanCardData, n as PlanCards, o as PlanCardsProps, ah as PlanFeature, p as ProductVariant, q as ProfileAvatar, r as ProfileAvatarProps, s as ProfileComparison, t as ProfileComparisonProps, u as ProfileSelector, v as ProfileSelectorProps, R as RailButton, w as RailButtonProps, x as RailModeButton, y as RailModeButtonProps, z as RailSeparator, A as RailSeparatorProps, E as ResourceMeter, F as ResourceMeterProps, S as SIDEBAR_PANEL_WIDTH, G as SIDEBAR_RAIL_WIDTH, H as SIDEBAR_TOTAL_WIDTH, J as SandboxCard, K as SandboxCardData, L as SandboxCardProps, M as SandboxStatus, O as SandboxTable, Q as SandboxTableProps, T as Sidebar, U as SidebarContent, V as SidebarContentProps, W as SidebarPanel, X as SidebarPanelContent, Y as SidebarPanelContentProps, Z as SidebarPanelHeader, _ as SidebarPanelHeaderProps, $ as SidebarPanelProps, a0 as SidebarProps, a1 as SidebarProvider, a2 as SidebarProviderProps, a3 as SidebarRail, a4 as SidebarRailFooter, a5 as SidebarRailFooterProps, a6 as SidebarRailHeader, a7 as SidebarRailHeaderProps, a8 as SidebarRailNav, a9 as SidebarRailNavProps, aa as SidebarRailProps, ab as SidebarUser, ai as Variant, ad as VariantList, ae as VariantListProps, aj as VariantOutcome, ak as VariantStatus, af as useSidebar } from './index-
|
|
1
|
+
export { B as Backend, a as BackendSelector, b as BackendSelectorProps, C as ClusterStatusBar, c as ClusterStatusBarProps, d as ClusterStatusItem, e as CreditBalance, f as CreditBalanceProps, D as DashboardLayout, g as DashboardLayoutProps, ag as DashboardProfile, h as DashboardUser, I as Invoice, i as InvoiceTable, j as InvoiceTableProps, N as NavItem, k as NewSandboxCard, l as NewSandboxCardProps, m as PlanCardData, n as PlanCards, o as PlanCardsProps, ah as PlanFeature, p as ProductVariant, q as ProfileAvatar, r as ProfileAvatarProps, s as ProfileComparison, t as ProfileComparisonProps, u as ProfileSelector, v as ProfileSelectorProps, R as RailButton, w as RailButtonProps, x as RailModeButton, y as RailModeButtonProps, z as RailSeparator, A as RailSeparatorProps, E as ResourceMeter, F as ResourceMeterProps, S as SIDEBAR_PANEL_WIDTH, G as SIDEBAR_RAIL_WIDTH, H as SIDEBAR_TOTAL_WIDTH, J as SandboxCard, K as SandboxCardData, L as SandboxCardProps, M as SandboxStatus, O as SandboxTable, Q as SandboxTableProps, T as Sidebar, U as SidebarContent, V as SidebarContentProps, W as SidebarPanel, X as SidebarPanelContent, Y as SidebarPanelContentProps, Z as SidebarPanelHeader, _ as SidebarPanelHeaderProps, $ as SidebarPanelProps, a0 as SidebarProps, a1 as SidebarProvider, a2 as SidebarProviderProps, a3 as SidebarRail, a4 as SidebarRailFooter, a5 as SidebarRailFooterProps, a6 as SidebarRailHeader, a7 as SidebarRailHeaderProps, a8 as SidebarRailNav, a9 as SidebarRailNavProps, aa as SidebarRailProps, ab as SidebarUser, ai as Variant, ad as VariantList, ae as VariantListProps, aj as VariantOutcome, ak as VariantStatus, af as useSidebar } from './index-BT_-ecpc.js';
|
|
2
2
|
export { a as BillingBalance, c as BillingDashboard, d as BillingDashboardProps, B as BillingSubscription, b as BillingUsage, e as PricingPage, f as PricingPageProps, P as PricingTier, g as UsageChart, h as UsageChartProps, U as UsageDataPoint } from './usage-chart-XCoB_7Xu.js';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'react';
|
package/dist/dashboard.js
CHANGED
|
@@ -266,9 +266,10 @@ interface SandboxCardProps {
|
|
|
266
266
|
onOpenTerminal?: (id: string) => void;
|
|
267
267
|
onWake?: (id: string) => void;
|
|
268
268
|
onRestore?: (id: string) => void;
|
|
269
|
+
onDelete?: (id: string) => void;
|
|
269
270
|
className?: string;
|
|
270
271
|
}
|
|
271
|
-
declare function SandboxCard({ sandbox, onOpenIDE, onOpenTerminal, onWake, onRestore, className }: SandboxCardProps): react_jsx_runtime.JSX.Element;
|
|
272
|
+
declare function SandboxCard({ sandbox, onOpenIDE, onOpenTerminal, onWake, onRestore, onDelete, className }: SandboxCardProps): react_jsx_runtime.JSX.Element;
|
|
272
273
|
interface NewSandboxCardProps {
|
|
273
274
|
onClick?: () => void;
|
|
274
275
|
className?: string;
|
|
@@ -286,9 +287,10 @@ interface SandboxTableProps {
|
|
|
286
287
|
onSSH?: (id: string) => void;
|
|
287
288
|
onWake?: (id: string) => void;
|
|
288
289
|
onMore?: (id: string) => void;
|
|
290
|
+
onDelete?: (id: string) => void;
|
|
289
291
|
className?: string;
|
|
290
292
|
}
|
|
291
|
-
declare function SandboxTable({ sandboxes, page, pageSize, total, onPageChange, onOpenIDE, onOpenTerminal, onSSH, onWake, onMore, className, }: SandboxTableProps): react_jsx_runtime.JSX.Element;
|
|
293
|
+
declare function SandboxTable({ sandboxes, page, pageSize, total, onPageChange, onOpenIDE, onOpenTerminal, onSSH, onWake, onMore, onDelete, className, }: SandboxTableProps): react_jsx_runtime.JSX.Element;
|
|
292
294
|
|
|
293
295
|
interface Backend {
|
|
294
296
|
type: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { b as ToolPart } from './parts-CyGkM6Fp.js';
|
|
|
15
15
|
export { R as ReasoningPart, S as SessionMessage, a as SessionPart, T as TextPart, c as ToolState, d as ToolStatus, e as ToolTime } from './parts-CyGkM6Fp.js';
|
|
16
16
|
export { F as FileNode, a as FileTabData, b as FileTabs, c as FileTabsProps, d as FileTree, e as FileTreeProps, f as FileTreeVisibilityOptions, g as filterFileTree } from './file-tabs-BLfxfmAH.js';
|
|
17
17
|
export { FileArtifactPane, FileArtifactPaneProps, FilePreview, FilePreviewProps } from './files.js';
|
|
18
|
-
export { B as Backend, a as BackendSelector, b as BackendSelectorProps, C as ClusterStatusBar, c as ClusterStatusBarProps, d as ClusterStatusItem, e as CreditBalance, f as CreditBalanceProps, D as DashboardLayout, g as DashboardLayoutProps, h as DashboardUser, I as Invoice, i as InvoiceTable, j as InvoiceTableProps, N as NavItem, k as NewSandboxCard, l as NewSandboxCardProps, P as PanelConfig, m as PlanCardData, n as PlanCards, o as PlanCardsProps, p as ProductVariant, q as ProfileAvatar, r as ProfileAvatarProps, s as ProfileComparison, t as ProfileComparisonProps, u as ProfileSelector, v as ProfileSelectorProps, R as RailButton, w as RailButtonProps, x as RailModeButton, y as RailModeButtonProps, z as RailSeparator, A as RailSeparatorProps, E as ResourceMeter, F as ResourceMeterProps, S as SIDEBAR_PANEL_WIDTH, G as SIDEBAR_RAIL_WIDTH, H as SIDEBAR_TOTAL_WIDTH, J as SandboxCard, K as SandboxCardData, L as SandboxCardProps, M as SandboxStatus, O as SandboxTable, Q as SandboxTableProps, T as Sidebar, U as SidebarContent, V as SidebarContentProps, W as SidebarPanel, X as SidebarPanelContent, Y as SidebarPanelContentProps, Z as SidebarPanelHeader, _ as SidebarPanelHeaderProps, $ as SidebarPanelProps, a0 as SidebarProps, a1 as SidebarProvider, a2 as SidebarProviderProps, a3 as SidebarRail, a4 as SidebarRailFooter, a5 as SidebarRailFooterProps, a6 as SidebarRailHeader, a7 as SidebarRailHeaderProps, a8 as SidebarRailNav, a9 as SidebarRailNavProps, aa as SidebarRailProps, ab as SidebarUser, ac as TopNavLink, ad as VariantList, ae as VariantListProps, af as useSidebar } from './index-
|
|
18
|
+
export { B as Backend, a as BackendSelector, b as BackendSelectorProps, C as ClusterStatusBar, c as ClusterStatusBarProps, d as ClusterStatusItem, e as CreditBalance, f as CreditBalanceProps, D as DashboardLayout, g as DashboardLayoutProps, h as DashboardUser, I as Invoice, i as InvoiceTable, j as InvoiceTableProps, N as NavItem, k as NewSandboxCard, l as NewSandboxCardProps, P as PanelConfig, m as PlanCardData, n as PlanCards, o as PlanCardsProps, p as ProductVariant, q as ProfileAvatar, r as ProfileAvatarProps, s as ProfileComparison, t as ProfileComparisonProps, u as ProfileSelector, v as ProfileSelectorProps, R as RailButton, w as RailButtonProps, x as RailModeButton, y as RailModeButtonProps, z as RailSeparator, A as RailSeparatorProps, E as ResourceMeter, F as ResourceMeterProps, S as SIDEBAR_PANEL_WIDTH, G as SIDEBAR_RAIL_WIDTH, H as SIDEBAR_TOTAL_WIDTH, J as SandboxCard, K as SandboxCardData, L as SandboxCardProps, M as SandboxStatus, O as SandboxTable, Q as SandboxTableProps, T as Sidebar, U as SidebarContent, V as SidebarContentProps, W as SidebarPanel, X as SidebarPanelContent, Y as SidebarPanelContentProps, Z as SidebarPanelHeader, _ as SidebarPanelHeaderProps, $ as SidebarPanelProps, a0 as SidebarProps, a1 as SidebarProvider, a2 as SidebarProviderProps, a3 as SidebarRail, a4 as SidebarRailFooter, a5 as SidebarRailFooterProps, a6 as SidebarRailHeader, a7 as SidebarRailHeaderProps, a8 as SidebarRailNav, a9 as SidebarRailNavProps, aa as SidebarRailProps, ab as SidebarUser, ac as TopNavLink, ad as VariantList, ae as VariantListProps, af as useSidebar } from './index-BT_-ecpc.js';
|
|
19
19
|
export { c as BillingDashboard, d as BillingDashboardProps, e as PricingCards, f as PricingPageProps, g as UsageChart, h as UsageChartProps, U as UsageDataPoint } from './usage-chart-XCoB_7Xu.js';
|
|
20
20
|
export { AuthHeader, GitHubLoginButton, LoginLayout, LoginLayoutProps, UserMenu } from './auth.js';
|
|
21
21
|
export { CodeBlock, CodeBlock as CodeBlockDisplay, CopyButton, Markdown, MarkdownProps } from './markdown.js';
|
package/dist/index.js
CHANGED
package/dist/tokens.css
CHANGED
|
@@ -84,6 +84,16 @@
|
|
|
84
84
|
--error: var(--hsl-destructive);
|
|
85
85
|
--info: var(--hsl-info);
|
|
86
86
|
|
|
87
|
+
/* Sidebar tokens */
|
|
88
|
+
--sidebar-background: 248 52% 5%;
|
|
89
|
+
--sidebar-foreground: 244 20% 94%;
|
|
90
|
+
--sidebar-primary: 247 100% 61%;
|
|
91
|
+
--sidebar-primary-foreground: 0 0% 100%;
|
|
92
|
+
--sidebar-accent: 245 28% 21%;
|
|
93
|
+
--sidebar-accent-foreground: 240 16% 92%;
|
|
94
|
+
--sidebar-border: 236 16% 18%;
|
|
95
|
+
--sidebar-ring: 247 100% 61%;
|
|
96
|
+
|
|
87
97
|
/* Depth scale — Tangle deep indigo surfaces */
|
|
88
98
|
--depth-1: #08071A;
|
|
89
99
|
--depth-2: #131228;
|
|
@@ -323,6 +333,16 @@
|
|
|
323
333
|
--surface-neutral-border: var(--border-subtle);
|
|
324
334
|
--surface-neutral-text: var(--text-muted);
|
|
325
335
|
|
|
336
|
+
/* Sidebar — light */
|
|
337
|
+
--sidebar-background: 210 17% 97%;
|
|
338
|
+
--sidebar-foreground: 210 20% 10%;
|
|
339
|
+
--sidebar-primary: 248 100% 35%;
|
|
340
|
+
--sidebar-primary-foreground: 0 0% 100%;
|
|
341
|
+
--sidebar-accent: 210 20% 92%;
|
|
342
|
+
--sidebar-accent-foreground: 210 20% 10%;
|
|
343
|
+
--sidebar-border: 214 18% 88%;
|
|
344
|
+
--sidebar-ring: 248 100% 35%;
|
|
345
|
+
|
|
326
346
|
--mesh-teal: rgba(44, 140, 134, 0.04);
|
|
327
347
|
--mesh-violet: rgba(74, 58, 255, 0.03);
|
|
328
348
|
--mesh-blue: rgba(29, 111, 164, 0.03);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
},
|
|
89
89
|
"./styles": "./dist/styles.css",
|
|
90
90
|
"./globals.css": "./dist/globals.css",
|
|
91
|
+
"./tokens.css": "./dist/tokens.css",
|
|
91
92
|
"./tailwind": "./tailwind.config.cjs"
|
|
92
93
|
},
|
|
93
94
|
"files": [
|
package/tailwind.config.cjs
CHANGED
|
@@ -88,6 +88,17 @@ module.exports = {
|
|
|
88
88
|
// MD3 inverse tokens
|
|
89
89
|
"inverse-surface": "var(--md3-inverse-surface)",
|
|
90
90
|
"inverse-primary": "var(--md3-inverse-primary)",
|
|
91
|
+
// Sidebar
|
|
92
|
+
sidebar: {
|
|
93
|
+
DEFAULT: "hsl(var(--sidebar-background))",
|
|
94
|
+
foreground: "hsl(var(--sidebar-foreground))",
|
|
95
|
+
primary: "hsl(var(--sidebar-primary))",
|
|
96
|
+
"primary-foreground": "hsl(var(--sidebar-primary-foreground))",
|
|
97
|
+
accent: "hsl(var(--sidebar-accent))",
|
|
98
|
+
"accent-foreground": "hsl(var(--sidebar-accent-foreground))",
|
|
99
|
+
border: "hsl(var(--sidebar-border))",
|
|
100
|
+
ring: "hsl(var(--sidebar-ring))",
|
|
101
|
+
},
|
|
91
102
|
},
|
|
92
103
|
borderRadius: {
|
|
93
104
|
lg: "var(--radius)",
|