@tangle-network/sandbox-ui 0.127.0 → 0.127.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.
@@ -430,7 +430,7 @@ function RailButton({ icon: Icon, label, isActive, badge, onClick, className, sh
430
430
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("span", {
431
431
  className: "relative flex shrink-0 items-center justify-center",
432
432
  children: [/* @__PURE__ */ jsx(Icon, { className: "h-[17px] w-[17px] shrink-0" }), badge !== void 0 && badge > 0 && /* @__PURE__ */ jsx("span", {
433
- className: "absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-[var(--md3-on-primary)] px-1",
433
+ className: "absolute -top-1.5 -right-1.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary text-xs leading-none font-bold text-[var(--md3-on-primary)] px-1",
434
434
  children: badge > 99 ? "99+" : badge
435
435
  })]
436
436
  }), showLabel && /* @__PURE__ */ jsx("span", {
@@ -525,7 +525,7 @@ function RailFlyout({ icon: Icon, label, isActive, showLabel, title, children, c
525
525
  },
526
526
  className: cn$1("absolute left-full top-0 z-50 ml-2 min-w-[12rem] p-1.5", "agent-pop-in", "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-highest shadow-[0_8px_30px_rgba(0,0,0,0.45)] ring-1 ring-[#ffffff14]"),
527
527
  children: [/* @__PURE__ */ jsx("p", {
528
- className: "px-2 pb-1 pt-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/70 select-none",
528
+ className: "px-2 pb-1 pt-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground/70 select-none",
529
529
  children: title ?? label
530
530
  }), children]
531
531
  })]
@@ -743,7 +743,7 @@ function RailExpandable({ icon: Icon, label, href, isActive, showLabel, subItems
743
743
  },
744
744
  className: cn$1("agent-pop-in z-[70] flex w-60 flex-col overflow-hidden p-1.5", "rounded-md border border-[var(--md3-outline-variant)] bg-surface-container-highest shadow-[0_8px_30px_rgba(0,0,0,0.45)] ring-1 ring-[#ffffff14]"),
745
745
  children: [/* @__PURE__ */ jsx("p", {
746
- className: "shrink-0 px-2 pb-1 pt-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/70 select-none",
746
+ className: "shrink-0 px-2 pb-1 pt-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground/70 select-none",
747
747
  children: label
748
748
  }), /* @__PURE__ */ jsx("div", {
749
749
  className: "flex min-h-0 flex-1 flex-col gap-0.5 overflow-y-auto",
@@ -945,7 +945,7 @@ function ProfileAvatar({ user, isLoading = false, onLogout, onSettingsClick, set
945
945
  src: user.avatarUrl,
946
946
  alt: ""
947
947
  }), /* @__PURE__ */ jsx(AvatarFallback, {
948
- className: "text-[10px] bg-[var(--accent-surface-strong)] text-[var(--accent-text)]",
948
+ className: "text-xs font-medium bg-[var(--accent-surface-strong)] text-[var(--accent-text)]",
949
949
  children: getInitials(user?.name, user?.email)
950
950
  })]
951
951
  }), showDetails && /* @__PURE__ */ jsx("div", {
package/dist/dashboard.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as useSidebar, A as parseInsufficientBalance, B as SidebarPanel, C as SandboxStatusPill, D as ResourceMeter, E as ResourceSnapshot, F as RailHeader, G as SidebarRailNav, H as SidebarPanelHeader, I as RailModeButton, J as SIDEBAR_PANEL_WIDTH, K as RailTooltip, L as RailSeparator, M as RailButton, N as RailExpandable, O as INSUFFICIENT_BALANCE_CODE, P as RailFlyout, Q as SidebarProvider, R as Sidebar, S as SANDBOX_STATUS, T as ActivityFeed, U as SidebarRail, V as SidebarPanelContent, W as SidebarRailFooter, X as SIDEBAR_RAIL_WIDTH, Y as SIDEBAR_RAIL_LABELED_WIDTH, Z as SIDEBAR_TOTAL_WIDTH, _ as BackendSelector, a as PortsList, b as SandboxCard, c as SystemLogsViewer, d as DashboardLayout, f as HARNESS_OPTIONS, g as HarnessLogo, h as HARNESS_BRAND, i as TemplateCard, j as ProfileAvatar, k as OutOfCreditsModal, l as MetricAreaChart, m as chatCapableHarnesses, n as SnapshotList, o as GitPanel, p as HarnessPicker, q as SIDEBAR_MOBILE_WIDTH, r as ProcessList, s as UsageSummary, t as PromoBanner, u as SidebarLayout, v as SandboxTable, w as sandboxStatus, x as canAdminSandbox, y as NewSandboxCard, z as SidebarContent } from "./dashboard-Bms7lRpU.js";
1
+ import { $ as useSidebar, A as parseInsufficientBalance, B as SidebarPanel, C as SandboxStatusPill, D as ResourceMeter, E as ResourceSnapshot, F as RailHeader, G as SidebarRailNav, H as SidebarPanelHeader, I as RailModeButton, J as SIDEBAR_PANEL_WIDTH, K as RailTooltip, L as RailSeparator, M as RailButton, N as RailExpandable, O as INSUFFICIENT_BALANCE_CODE, P as RailFlyout, Q as SidebarProvider, R as Sidebar, S as SANDBOX_STATUS, T as ActivityFeed, U as SidebarRail, V as SidebarPanelContent, W as SidebarRailFooter, X as SIDEBAR_RAIL_WIDTH, Y as SIDEBAR_RAIL_LABELED_WIDTH, Z as SIDEBAR_TOTAL_WIDTH, _ as BackendSelector, a as PortsList, b as SandboxCard, c as SystemLogsViewer, d as DashboardLayout, f as HARNESS_OPTIONS, g as HarnessLogo, h as HARNESS_BRAND, i as TemplateCard, j as ProfileAvatar, k as OutOfCreditsModal, l as MetricAreaChart, m as chatCapableHarnesses, n as SnapshotList, o as GitPanel, p as HarnessPicker, q as SIDEBAR_MOBILE_WIDTH, r as ProcessList, s as UsageSummary, t as PromoBanner, u as SidebarLayout, v as SandboxTable, w as sandboxStatus, x as canAdminSandbox, y as NewSandboxCard, z as SidebarContent } from "./dashboard-B-ohLJrx.js";
2
2
  import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
3
3
  import { a as formatPrice, i as PricingPage, n as SandboxPageShell, o as BillingDashboard, r as UsageChart, t as DashboardPageHeader } from "./page-layout-2IRtfx51.js";
4
4
  export { ActivityFeed, BackendSelector, BillingDashboard, DashboardLayout, DashboardPageHeader, GitPanel, HARNESS_BRAND, HARNESS_OPTIONS, HarnessLogo, HarnessPicker, INSUFFICIENT_BALANCE_CODE, MetricAreaChart, ModelBrandStack, NewSandboxCard, OutOfCreditsModal, PortsList, PricingPage, ProcessList, ProfileAvatar, PromoBanner, RailButton, RailExpandable, RailFlyout, RailHeader, RailModeButton, RailSeparator, RailTooltip, ResourceMeter, ResourceSnapshot, SANDBOX_STATUS, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxPageShell, SandboxStatusPill, SandboxTable, Sidebar, SidebarContent, SidebarLayout, SidebarPanel, SidebarPanelContent, SidebarPanelHeader, SidebarProvider, SidebarRail, SidebarRailFooter, SidebarRailNav, SnapshotList, SystemLogsViewer, TemplateCard, UsageChart, UsageSummary, canAdminSandbox, canonicalModelId, chatCapableHarnesses, formatPrice, modelBrandFor, parseInsufficientBalance, sandboxStatus, useSidebar };
package/dist/globals.css CHANGED
@@ -7479,6 +7479,7 @@
7479
7479
  .tangle-prose {
7480
7480
  color: hsl(var(--foreground));
7481
7481
  line-height: 1.7;
7482
+ overflow-wrap: break-word;
7482
7483
  }
7483
7484
  .tangle-prose :where(p, ul, ol) {
7484
7485
  margin: 0;
@@ -7505,6 +7506,18 @@
7505
7506
  .tangle-prose ul, .tangle-prose ol {
7506
7507
  padding-left: 1.4em;
7507
7508
  }
7509
+ .tangle-prose ul {
7510
+ list-style-type: disc;
7511
+ }
7512
+ .tangle-prose ol {
7513
+ list-style-type: decimal;
7514
+ }
7515
+ .tangle-prose ul ul {
7516
+ list-style-type: circle;
7517
+ }
7518
+ .tangle-prose li::marker {
7519
+ color: hsl(var(--muted-foreground));
7520
+ }
7508
7521
  .tangle-prose li {
7509
7522
  margin: 0.25em 0;
7510
7523
  }
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-CF7uaTsc.js";
1
+ import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-n5ErFbgb.js";
2
2
  import { $ as PageShell, A as DropdownMenuContent, At as TabsList, B as DropdownMenuSubContent, Bt as ToastContainer, C as DialogOverlay, Ct as TableCell, D as DropZone, Dt as TableRow, E as DialogTrigger, Et as TableHeader, F as DropdownMenuRadioGroup, G as Heading, Gt as buttonVariants, H as DropdownMenuTrigger, Ht as Toolbar, I as DropdownMenuRadioItem, J as Input, Jt as useTheme, K as IconTile, Kt as initialsOf, L as DropdownMenuSeparator, Lt as TextShimmer, M as DropdownMenuItem, Mt as Tag, N as DropdownMenuLabel, O as DropdownMenu, Ot as Tabs, P as DropdownMenuPortal, Pt as TerminalDisplay, Q as PageHeader, Qt as TangleKnot, R as DropdownMenuShortcut, Rt as Textarea, S as DialogHeader, St as TableCaption, T as DialogTitle, Tt as TableHead, U as EmptyState, Ut as UploadProgress, V as DropdownMenuSubTrigger, Vt as ToastProvider, W as FilterField, Wt as badgeVariants, X as Metric, Xt as SectionTitle, Y as Label, Yt as useToast, Z as MetricStrip, Zt as Logo, _ as Dialog, _t as StatusPill, a as Badge, at as SelectItem, b as DialogDescription, bt as Table, c as Card, ct as SelectScrollUpButton, d as CardFooter, dt as SelectValue, et as Progress, f as CardHeader, ft as SidebarDropZone, g as CopyButton, gt as StatCard, h as CodeBlock, ht as SkeletonTable, i as AvatarImage, it as SelectGroup, j as DropdownMenuGroup, jt as TabsTrigger, k as DropdownMenuCheckboxItem, kt as TabsContent, l as CardContent, lt as SelectSeparator, m as Chip, mt as SkeletonCard, n as Avatar, nt as Select, o as Button, ot as SelectLabel, p as CardTitle, pt as Skeleton, q as InlineCode, qt as toneFor, r as AvatarFallback, rt as SelectContent, s as CATEGORY_TONES, st as SelectScrollDownButton, tt as SegmentedControl, u as CardDescription, ut as SelectTrigger, v as DialogClose, vt as Switch, w as DialogPortal, wt as TableFooter, x as DialogFooter, xt as TableBody, y as DialogContent, yt as TONE_CLASSES, z as DropdownMenuSub, zt as ThemeToggle } from "./primitives-WP3v1yf0.js";
3
3
  import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
4
4
  import { _ as StatusBar, a as TaskBoard, b as WorkspaceLayout, c as createShellShouldRevalidate, d as SESSION_CREATED_EVENT, f as dispatchSessionCreated, g as TerminalPanel, h as RuntimePane, i as CalendarView, l as shellShouldRevalidate, m as formatRelativeAge, n as WorkspaceFilesPane, o as SandboxWorkbench, p as useOptimisticSessionItems, r as ApprovalQueue, s as WorkspaceArtifactView, t as ArtifactPane, u as SessionSidebar, v as StatusBanner, y as DirectoryPane } from "./workspace-C68fk9qa.js";
5
- import { $ as useSidebar, A as parseInsufficientBalance, B as SidebarPanel, C as SandboxStatusPill, D as ResourceMeter, E as ResourceSnapshot, F as RailHeader, G as SidebarRailNav, H as SidebarPanelHeader, I as RailModeButton, J as SIDEBAR_PANEL_WIDTH, K as RailTooltip, L as RailSeparator, M as RailButton, N as RailExpandable, O as INSUFFICIENT_BALANCE_CODE, P as RailFlyout, Q as SidebarProvider, R as Sidebar, S as SANDBOX_STATUS, T as ActivityFeed, U as SidebarRail, V as SidebarPanelContent, W as SidebarRailFooter, X as SIDEBAR_RAIL_WIDTH, Y as SIDEBAR_RAIL_LABELED_WIDTH, Z as SIDEBAR_TOTAL_WIDTH, _ as BackendSelector, a as PortsList, b as SandboxCard, c as SystemLogsViewer, d as DashboardLayout, f as HARNESS_OPTIONS, g as HarnessLogo, h as HARNESS_BRAND, i as TemplateCard, j as ProfileAvatar, k as OutOfCreditsModal, l as MetricAreaChart, m as chatCapableHarnesses, n as SnapshotList, o as GitPanel, p as HarnessPicker, q as SIDEBAR_MOBILE_WIDTH, r as ProcessList, s as UsageSummary, t as PromoBanner, u as SidebarLayout, v as SandboxTable, w as sandboxStatus, x as canAdminSandbox, y as NewSandboxCard, z as SidebarContent } from "./dashboard-Bms7lRpU.js";
5
+ import { $ as useSidebar, A as parseInsufficientBalance, B as SidebarPanel, C as SandboxStatusPill, D as ResourceMeter, E as ResourceSnapshot, F as RailHeader, G as SidebarRailNav, H as SidebarPanelHeader, I as RailModeButton, J as SIDEBAR_PANEL_WIDTH, K as RailTooltip, L as RailSeparator, M as RailButton, N as RailExpandable, O as INSUFFICIENT_BALANCE_CODE, P as RailFlyout, Q as SidebarProvider, R as Sidebar, S as SANDBOX_STATUS, T as ActivityFeed, U as SidebarRail, V as SidebarPanelContent, W as SidebarRailFooter, X as SIDEBAR_RAIL_WIDTH, Y as SIDEBAR_RAIL_LABELED_WIDTH, Z as SIDEBAR_TOTAL_WIDTH, _ as BackendSelector, a as PortsList, b as SandboxCard, c as SystemLogsViewer, d as DashboardLayout, f as HARNESS_OPTIONS, g as HarnessLogo, h as HARNESS_BRAND, i as TemplateCard, j as ProfileAvatar, k as OutOfCreditsModal, l as MetricAreaChart, m as chatCapableHarnesses, n as SnapshotList, o as GitPanel, p as HarnessPicker, q as SIDEBAR_MOBILE_WIDTH, r as ProcessList, s as UsageSummary, t as PromoBanner, u as SidebarLayout, v as SandboxTable, w as sandboxStatus, x as canAdminSandbox, y as NewSandboxCard, z as SidebarContent } from "./dashboard-B-ohLJrx.js";
6
6
  import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
7
7
  import { a as formatPrice, i as PricingPage, n as SandboxPageShell, o as BillingDashboard, r as UsageChart, t as DashboardPageHeader } from "./page-layout-2IRtfx51.js";
8
8
  import { t as usePtySession } from "./use-pty-session-Bf4hBLXJ.js";
package/dist/styles.css CHANGED
@@ -7479,6 +7479,7 @@
7479
7479
  .tangle-prose {
7480
7480
  color: hsl(var(--foreground));
7481
7481
  line-height: 1.7;
7482
+ overflow-wrap: break-word;
7482
7483
  }
7483
7484
  .tangle-prose :where(p, ul, ol) {
7484
7485
  margin: 0;
@@ -7505,6 +7506,18 @@
7505
7506
  .tangle-prose ul, .tangle-prose ol {
7506
7507
  padding-left: 1.4em;
7507
7508
  }
7509
+ .tangle-prose ul {
7510
+ list-style-type: disc;
7511
+ }
7512
+ .tangle-prose ol {
7513
+ list-style-type: decimal;
7514
+ }
7515
+ .tangle-prose ul ul {
7516
+ list-style-type: circle;
7517
+ }
7518
+ .tangle-prose li::marker {
7519
+ color: hsl(var(--muted-foreground));
7520
+ }
7508
7521
  .tangle-prose li {
7509
7522
  margin: 0.25em 0;
7510
7523
  }
package/dist/tailwind.css CHANGED
@@ -927,6 +927,10 @@
927
927
  .tangle-prose {
928
928
  color: hsl(var(--foreground));
929
929
  line-height: 1.7;
930
+ /* A long URL, email or identifier breaks inside the column instead of
931
+ * running past the card edge. `break-word` (not `anywhere`) leaves the
932
+ * column's min-content width alone, so it cannot squeeze a table. */
933
+ overflow-wrap: break-word;
930
934
  }
931
935
  /* Zero the browser's default block margins at zero specificity (:where) so the
932
936
  * owl selector below owns all vertical rhythm — a plain `.tangle-prose p` reset
@@ -944,6 +948,13 @@
944
948
  .tangle-prose h2 { font-size: 1.25em; }
945
949
  .tangle-prose h3 { font-size: 1.1em; }
946
950
  .tangle-prose ul, .tangle-prose ol { padding-left: 1.4em; }
951
+ /* Tailwind's preflight sets `list-style: none` on every list, so without these
952
+ * a numbered list of filing dates reads as loose lines and a bulleted list as
953
+ * indented paragraphs. */
954
+ .tangle-prose ul { list-style-type: disc; }
955
+ .tangle-prose ol { list-style-type: decimal; }
956
+ .tangle-prose ul ul { list-style-type: circle; }
957
+ .tangle-prose li::marker { color: hsl(var(--muted-foreground)); }
947
958
  .tangle-prose li { margin: 0.25em 0; }
948
959
  .tangle-prose li > ul, .tangle-prose li > ol { margin-top: 0.25em; }
949
960
  .tangle-prose a {
@@ -1,5 +1,5 @@
1
1
  import { t as cn$1 } from "./utils-DzWbktWG.js";
2
- import { a as PortsList } from "./dashboard-Bms7lRpU.js";
2
+ import { a as PortsList } from "./dashboard-B-ohLJrx.js";
3
3
  import { n as TerminalView } from "./terminal-DmSUfGha.js";
4
4
  import { RichFileTree } from "./files.js";
5
5
  import { n as PreviewView } from "./embedded-app-view-CMRPEvon.js";
package/dist/workbench.js CHANGED
@@ -1,3 +1,3 @@
1
- import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-CF7uaTsc.js";
1
+ import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-n5ErFbgb.js";
2
2
  import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-CMRPEvon.js";
3
3
  export { BRAND_PRISM_THEME, ChangesPane, CodeSurface, CodeView, DiffStatsBadge, DiffView, EmbeddedAppView, FileBreadcrumb, GitStatusBadge, PanelHeader, PillTabs, PreviewView, SandboxArtifactPane, buildUnifiedPatch, computeDiffStats, resolveLanguage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.127.0",
3
+ "version": "0.127.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",
@@ -254,7 +254,8 @@
254
254
  "typecheck": "tsc --noEmit",
255
255
  "storybook": "storybook dev -p 6006",
256
256
  "build-storybook": "storybook build",
257
- "test:visual": "playwright test",
257
+ "test:visual": "pnpm build-storybook --quiet && playwright test",
258
+ "signoff": "pnpm typecheck && pnpm build && pnpm test && pnpm test:package && pnpm test:bridge && pnpm test:visual",
258
259
  "test": "vitest run",
259
260
  "test:package": "node scripts/package-smoke.mjs && PACKAGE_OMIT_OPTIONAL_PEERS='[\"@hocuspocus/provider\",\"@tiptap/core\",\"@tiptap/extension-collaboration\",\"@tiptap/extension-collaboration-caret\",\"@tiptap/react\",\"@tiptap/starter-kit\",\"yjs\"]' node scripts/package-smoke.mjs",
260
261
  "test:watch": "vitest",