@tangle-network/sandbox-ui 0.121.1 → 0.122.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/pages.d.ts CHANGED
@@ -314,16 +314,9 @@ interface SecretsPageProps {
314
314
  * edge-to-edge list that scrolls inside the available height.
315
315
  */
316
316
  variant?: "page" | "pane";
317
- /**
318
- * Optional hint pointing users at team-level secrets. When provided,
319
- * renders a persistent informational banner below the header clarifying
320
- * that personal secrets are NOT shared with teams and linking the
321
- * user to their team-management page to configure shared secrets
322
- * there. Omit entirely to hide the banner (e.g. in deployments
323
- * without teams).
324
- */
317
+ /** Optional navigation to team-scoped credentials, shown beside the page actions. */
325
318
  teamSecretsHint?: {
326
- /** Callback fired when the user clicks the banner's CTA. */
319
+ /** Navigate to team-scoped credentials. */
327
320
  onNavigate: () => void;
328
321
  /** CTA label. Defaults to "Manage team secrets". */
329
322
  label?: string;
package/dist/pages.js CHANGED
@@ -1,12 +1,12 @@
1
- import { $ as Select$1, C as DialogTitle$1, G as Input$1, Nt as Textarea$1, Y as PageHeader$1, _ as DialogContent$1, a as Badge$1, b as DialogHeader$1, ct as SelectValue$1, et as SelectContent$1, h as Dialog$1, ht as Switch, nt as SelectItem$1, o as Button$1, st as SelectTrigger$1, v as DialogDescription$1, y as DialogFooter$1 } from "./primitives-BQGtwZX3.js";
1
+ import { $ as Select$1, C as DialogTitle$1, G as Input$1, Nt as Textarea$1, _ as DialogContent$1, a as Badge$1, b as DialogHeader$1, ct as SelectValue$1, et as SelectContent$1, h as Dialog$1, ht as Switch, nt as SelectItem$1, o as Button$1, st as SelectTrigger$1, v as DialogDescription$1, y as DialogFooter$1 } from "./primitives-C4qn9fZ8.js";
2
2
  import { t as cn$1 } from "./utils-DzWbktWG.js";
3
- import { i as PricingPage, n as TemplateCard, o as BillingDashboard, r as UsageChart, t as InfoPanel } from "./info-panel-C9cqDzOL.js";
3
+ import { a as PricingPage, i as UsageChart, r as TemplateCard, s as BillingDashboard, t as DashboardPageHeader } from "./page-layout-Cf90DTWr.js";
4
4
  import { Badge, Button, Card, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, EmptyState, Input, Skeleton, SkeletonCard, Tabs, TabsContent, TabsList, TabsTrigger } from "@tangle-network/ui/primitives";
5
5
  import { Logo, TangleKnot } from "@tangle-network/brand";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  import * as React$1 from "react";
8
8
  import { useState } from "react";
9
- import { AlertCircle, ArrowLeft, ArrowRight, Check, CheckCircle, ChevronDown, ChevronRight, ChevronUp, Clock, Copy, Cpu, Edit2, Eye, EyeOff, GripVertical, Info, Key, Layers, Loader2, Lock, MemoryStick, Pencil, Play, Plus, Power, PowerOff, Search, Settings, Settings2, Shield, Terminal, Trash2, Upload, Users } from "lucide-react";
9
+ import { AlertCircle, ArrowLeft, Check, CheckCircle, ChevronDown, ChevronRight, ChevronUp, Clock, Copy, Cpu, Edit2, Eye, EyeOff, GripVertical, Info, Key, Layers, Loader2, Lock, MemoryStick, Pencil, Plus, Power, PowerOff, Search, Settings, Settings2, Terminal, Trash2, Upload } from "lucide-react";
10
10
  import { focusField, focusRing } from "@tangle-network/ui/utils";
11
11
  //#region src/pages/auth-page.tsx
12
12
  const C = {
@@ -339,7 +339,7 @@ async function fetchBillingDataFromApi(apiBasePath) {
339
339
  }
340
340
  function BillingPageSkeleton({ variant: _variant = "sandbox" }) {
341
341
  return /* @__PURE__ */ jsxs("div", {
342
- className: "space-y-8",
342
+ className: "w-full min-w-0 space-y-5",
343
343
  children: [/* @__PURE__ */ jsxs("div", {
344
344
  className: "grid gap-6 lg:grid-cols-3",
345
345
  children: [
@@ -500,13 +500,13 @@ function BillingPage({ variant = "sandbox", initialData, apiBasePath = "", onMan
500
500
  });
501
501
  const data = state.data || defaultBillingData;
502
502
  return /* @__PURE__ */ jsx("div", {
503
- className: "space-y-8",
503
+ className: "w-full min-w-0 space-y-5",
504
504
  children: /* @__PURE__ */ jsxs(Tabs, {
505
505
  defaultValue: "overview",
506
506
  className: "w-full",
507
507
  children: [
508
508
  /* @__PURE__ */ jsxs(TabsList, {
509
- className: "mb-6",
509
+ className: "mb-5 h-auto gap-1 rounded-xl border border-border bg-surface-container p-1.5 [&_[role=tab]]:min-h-11 [&_[role=tab]]:px-4 [&_[role=tab]]:text-sm [&_[role=tab][data-state=active]]:bg-[var(--accent-surface-strong)] [&_[role=tab][data-state=active]]:text-[var(--accent-text)] [&_[role=tab][data-state=active]]:shadow-sm",
510
510
  children: [
511
511
  /* @__PURE__ */ jsx(TabsTrigger, {
512
512
  value: "overview",
@@ -553,32 +553,25 @@ function BillingPage({ variant = "sandbox", initialData, apiBasePath = "", onMan
553
553
  title: "Credit Usage History",
554
554
  unit: "credits"
555
555
  }) : /* @__PURE__ */ jsxs("div", {
556
- className: "flex flex-col items-center justify-center rounded-xl border border-[var(--md3-outline-variant)] bg-surface-container p-12 text-center",
557
- children: [
558
- /* @__PURE__ */ jsxs("svg", {
559
- xmlns: "http://www.w3.org/2000/svg",
560
- viewBox: "0 0 24 24",
561
- fill: "none",
562
- stroke: "currentColor",
563
- strokeWidth: "2",
564
- strokeLinecap: "round",
565
- strokeLinejoin: "round",
566
- className: "mb-4 h-12 w-12 text-muted-foreground",
567
- children: [
568
- /* @__PURE__ */ jsx("title", { children: "No usage data icon" }),
569
- /* @__PURE__ */ jsx("path", { d: "M3 3v18h18" }),
570
- /* @__PURE__ */ jsx("path", { d: "m19 9-5 5-4-4-3 3" })
571
- ]
572
- }),
573
- /* @__PURE__ */ jsx("h3", {
574
- className: "font-semibold text-lg",
575
- children: "No usage data yet"
576
- }),
577
- /* @__PURE__ */ jsx("p", {
578
- className: "text-muted-foreground text-sm",
579
- children: "Start using credits to see your usage history here."
580
- })
581
- ]
556
+ className: "flex flex-col items-center justify-center rounded-xl border border-border bg-surface-container p-8 text-center",
557
+ children: [/* @__PURE__ */ jsxs("svg", {
558
+ xmlns: "http://www.w3.org/2000/svg",
559
+ viewBox: "0 0 24 24",
560
+ fill: "none",
561
+ stroke: "currentColor",
562
+ strokeWidth: "2",
563
+ strokeLinecap: "round",
564
+ strokeLinejoin: "round",
565
+ className: "mb-4 h-12 w-12 text-muted-foreground",
566
+ children: [
567
+ /* @__PURE__ */ jsx("title", { children: "No usage data icon" }),
568
+ /* @__PURE__ */ jsx("path", { d: "M3 3v18h18" }),
569
+ /* @__PURE__ */ jsx("path", { d: "m19 9-5 5-4-4-3 3" })
570
+ ]
571
+ }), /* @__PURE__ */ jsx("h3", {
572
+ className: "font-semibold text-lg",
573
+ children: "No usage data yet"
574
+ })]
582
575
  })
583
576
  })
584
577
  ]
@@ -2698,7 +2691,7 @@ function parseEnvText(text) {
2698
2691
  //#region src/pages/secrets-page.tsx
2699
2692
  /** Cap pasted/uploaded import sources so a pathological file cannot blow up the parser/UI. */
2700
2693
  const MAX_IMPORT_FILE_BYTES = 262144;
2701
- const DEFAULT_DESCRIPTION = "Secrets are securely stored and automatically exposed as environment variables across all your sandboxes.";
2694
+ const DEFAULT_DESCRIPTION = "Manage environment variables for your sandboxes.";
2702
2695
  const DEFAULT_CREATE_DESCRIPTION = "Secrets are automatically exposed as environment variables across all your new sandboxes.";
2703
2696
  const DEFAULT_EMPTY_DESCRIPTION = "Create a secret to inject into your sandboxes.";
2704
2697
  const DEFAULT_DELETE_CONSEQUENCE = "Sandboxes using this secret will lose access to it.";
@@ -2916,25 +2909,34 @@ function SecretsPage({ apiClient, className, teamSecretsHint, title = "Environme
2916
2909
  return dateStr;
2917
2910
  }
2918
2911
  };
2919
- const actions = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("button", {
2920
- type: "button",
2921
- onClick: () => setIsImportOpen(true),
2922
- className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-2 text-sm font-semibold text-foreground transition-colors hover:bg-surface-container-high active:scale-[0.97] sm:gap-2",
2923
- children: [/* @__PURE__ */ jsx(Upload, {
2924
- className: "h-4 w-4",
2925
- "aria-hidden": "true"
2926
- }), "Import .env"]
2927
- }), /* @__PURE__ */ jsxs("button", {
2928
- type: "button",
2929
- onClick: openCreate,
2930
- className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--border-accent,transparent)] bg-[var(--btn-primary-bg)] px-3 py-2 text-sm font-semibold text-[var(--btn-primary-text)] transition-colors hover:bg-[var(--btn-primary-hover)] active:scale-[0.97] sm:gap-2 sm:px-4",
2931
- children: [/* @__PURE__ */ jsx(Plus, {
2932
- className: "h-4 w-4",
2933
- "aria-hidden": "true"
2934
- }), "New Secret"]
2935
- })] });
2912
+ const actions = /* @__PURE__ */ jsxs(Fragment, { children: [
2913
+ teamSecretsHint && /* @__PURE__ */ jsx("button", {
2914
+ type: "button",
2915
+ onClick: teamSecretsHint.onNavigate,
2916
+ className: "inline-flex min-h-11 items-center justify-center rounded-lg border border-border bg-surface-container-high px-3 text-sm font-medium text-foreground shadow-sm hover:bg-surface-container-highest",
2917
+ children: teamSecretsHint.label ?? "Team secrets"
2918
+ }),
2919
+ /* @__PURE__ */ jsxs("button", {
2920
+ type: "button",
2921
+ onClick: () => setIsImportOpen(true),
2922
+ className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container-high px-3 py-2 text-sm font-semibold text-foreground transition-colors hover:bg-surface-container-high active:scale-[0.97] sm:gap-2",
2923
+ children: [/* @__PURE__ */ jsx(Upload, {
2924
+ className: "h-4 w-4",
2925
+ "aria-hidden": "true"
2926
+ }), "Import .env"]
2927
+ }),
2928
+ /* @__PURE__ */ jsxs("button", {
2929
+ type: "button",
2930
+ onClick: openCreate,
2931
+ className: "inline-flex items-center gap-1.5 whitespace-nowrap rounded-lg border border-[var(--border-accent,transparent)] bg-[var(--btn-primary-bg)] px-3 py-2 text-sm font-semibold text-[var(--btn-primary-text)] transition-colors hover:bg-[var(--btn-primary-hover)] active:scale-[0.97] sm:gap-2 sm:px-4",
2932
+ children: [/* @__PURE__ */ jsx(Plus, {
2933
+ className: "h-4 w-4",
2934
+ "aria-hidden": "true"
2935
+ }), "New Secret"]
2936
+ })
2937
+ ] });
2936
2938
  return /* @__PURE__ */ jsxs("div", {
2937
- className: cn$1(pane ? "flex h-full min-h-0 w-full flex-col" : "mx-auto w-full max-w-6xl space-y-6", className),
2939
+ className: cn$1(pane ? "flex h-full min-h-0 w-full flex-col" : "w-full min-w-0 space-y-5", className),
2938
2940
  children: [
2939
2941
  pane ? /* @__PURE__ */ jsxs("header", {
2940
2942
  className: "flex shrink-0 flex-wrap items-center justify-between gap-x-6 gap-y-3 border-b border-border px-4 py-4 sm:px-6",
@@ -2951,41 +2953,10 @@ function SecretsPage({ apiClient, className, teamSecretsHint, title = "Environme
2951
2953
  className: "flex shrink-0 items-center gap-2",
2952
2954
  children: actions
2953
2955
  })]
2954
- }) : /* @__PURE__ */ jsx(PageHeader$1, {
2956
+ }) : /* @__PURE__ */ jsx(DashboardPageHeader, {
2955
2957
  title,
2956
2958
  description,
2957
- action: actions
2958
- }),
2959
- teamSecretsHint && /* @__PURE__ */ jsxs("div", {
2960
- className: cn$1("flex flex-wrap items-center gap-3 border-[var(--md3-outline-variant)] bg-[var(--accent-surface-soft)]/40 px-4 py-3", pane ? "shrink-0 border-b sm:px-6" : "rounded-lg border"),
2961
- children: [/* @__PURE__ */ jsxs("div", {
2962
- className: "flex min-w-[min(100%,18rem)] flex-1 items-start gap-3",
2963
- children: [/* @__PURE__ */ jsx(Users, {
2964
- className: "mt-0.5 h-5 w-5 shrink-0 text-[var(--accent-text)]",
2965
- "aria-hidden": "true"
2966
- }), /* @__PURE__ */ jsxs("div", {
2967
- className: "min-w-0 text-sm",
2968
- children: [/* @__PURE__ */ jsx("p", {
2969
- className: "font-semibold text-foreground",
2970
- children: "Setting up secrets for a team?"
2971
- }), /* @__PURE__ */ jsxs("p", {
2972
- className: "mt-0.5 text-xs text-muted-foreground",
2973
- children: [
2974
- "Secrets here are ",
2975
- /* @__PURE__ */ jsx("strong", { children: "personal" }),
2976
- " and only available in sandboxes you create. Add shared credentials on the team page."
2977
- ]
2978
- })]
2979
- })]
2980
- }), /* @__PURE__ */ jsxs("button", {
2981
- type: "button",
2982
- onClick: teamSecretsHint.onNavigate,
2983
- className: "inline-flex w-full shrink-0 items-center justify-center gap-1 rounded-md border border-[var(--md3-outline-variant)] bg-surface-container px-3 py-1.5 text-xs font-semibold text-foreground transition-colors hover:bg-surface-container-high sm:w-auto",
2984
- children: [teamSecretsHint.label ?? "Manage team secrets", /* @__PURE__ */ jsx(ArrowRight, {
2985
- className: "h-3 w-3",
2986
- "aria-hidden": "true"
2987
- })]
2988
- })]
2959
+ actions
2989
2960
  }),
2990
2961
  error && (secrets.length > 0 || loading) && /* @__PURE__ */ jsxs("div", {
2991
2962
  role: "alert",
@@ -3863,60 +3834,19 @@ function StartupScriptsPage({ apiClient, className }) {
3863
3834
  environments: prev.environments.includes(env) ? prev.environments.filter((e) => e !== env) : [...prev.environments, env]
3864
3835
  }));
3865
3836
  };
3866
- const activeCount = scripts.filter((s) => s.enabled).length;
3867
3837
  return /* @__PURE__ */ jsxs("div", {
3868
- className: cn$1("mx-auto w-full max-w-6xl space-y-8", className),
3838
+ className: cn$1("w-full min-w-0 space-y-5", className),
3869
3839
  children: [
3870
- /* @__PURE__ */ jsx(PageHeader$1, {
3840
+ /* @__PURE__ */ jsx(DashboardPageHeader, {
3871
3841
  title: "Startup Scripts",
3872
- description: "Define scripts that run automatically when your sandboxes start. Scripts can access your encrypted secrets.",
3873
- action: /* @__PURE__ */ jsxs("button", {
3842
+ description: "Run scripts when your sandboxes start.",
3843
+ actions: /* @__PURE__ */ jsxs("button", {
3874
3844
  type: "button",
3875
3845
  onClick: openCreate,
3876
3846
  className: "inline-flex items-center gap-2 rounded-lg bg-[var(--btn-primary-bg)] px-4 py-2.5 text-sm font-bold text-[var(--btn-primary-text)] shadow-sm transition-colors hover:bg-[var(--btn-primary-hover)]",
3877
3847
  children: [/* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }), "New Script"]
3878
3848
  })
3879
3849
  }),
3880
- /* @__PURE__ */ jsxs("div", {
3881
- className: "grid grid-cols-1 gap-6 md:grid-cols-4",
3882
- children: [
3883
- /* @__PURE__ */ jsxs("div", {
3884
- className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]",
3885
- children: [/* @__PURE__ */ jsx("p", {
3886
- className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground",
3887
- children: "Total Scripts"
3888
- }), /* @__PURE__ */ jsx("div", {
3889
- className: "mt-2 flex items-baseline gap-2",
3890
- children: /* @__PURE__ */ jsx("span", {
3891
- className: "font-display text-2xl font-extrabold text-foreground",
3892
- children: scripts.length
3893
- })
3894
- })]
3895
- }),
3896
- /* @__PURE__ */ jsxs("div", {
3897
- className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-5 shadow-[var(--shadow-card)]",
3898
- children: [/* @__PURE__ */ jsx("p", {
3899
- className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground",
3900
- children: "Active"
3901
- }), /* @__PURE__ */ jsxs("div", {
3902
- className: "mt-2 flex items-baseline gap-2",
3903
- children: [/* @__PURE__ */ jsx("span", {
3904
- className: "font-display text-2xl font-extrabold text-foreground",
3905
- children: activeCount
3906
- }), /* @__PURE__ */ jsxs("span", {
3907
- className: "text-xs text-muted-foreground",
3908
- children: ["of ", scripts.length]
3909
- })]
3910
- })]
3911
- }),
3912
- /* @__PURE__ */ jsx(InfoPanel, {
3913
- className: "md:col-span-2",
3914
- label: "Execution",
3915
- title: "Scripts run before your agent starts.",
3916
- description: "They execute in order, with full access to injected secrets as environment variables."
3917
- })
3918
- ]
3919
- }),
3920
3850
  error && /* @__PURE__ */ jsxs("div", {
3921
3851
  className: "flex items-center gap-3 rounded-lg border border-destructive/30 bg-destructive/10 p-4",
3922
3852
  children: [/* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 shrink-0 text-destructive" }), /* @__PURE__ */ jsx("p", {
@@ -4417,40 +4347,6 @@ function StartupScriptsPage({ apiClient, className }) {
4417
4347
  ]
4418
4348
  }, script.id))
4419
4349
  })]
4420
- }),
4421
- /* @__PURE__ */ jsxs("div", {
4422
- className: "grid grid-cols-1 gap-6 md:grid-cols-2",
4423
- children: [/* @__PURE__ */ jsxs("div", {
4424
- className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]",
4425
- children: [/* @__PURE__ */ jsxs("div", {
4426
- className: "flex items-center gap-3 mb-3",
4427
- children: [/* @__PURE__ */ jsx("div", {
4428
- className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]",
4429
- children: /* @__PURE__ */ jsx(Play, { className: "h-5 w-5" })
4430
- }), /* @__PURE__ */ jsx("h3", {
4431
- className: "text-sm font-bold text-foreground",
4432
- children: "How Scripts Run"
4433
- })]
4434
- }), /* @__PURE__ */ jsx("p", {
4435
- className: "text-sm text-muted-foreground",
4436
- children: "Scripts execute in order after the container starts but before the AI agent. They run as bash scripts with full access to mounted tools (Nix profile) and workspace. Failed scripts abort sandbox creation unless \"continue on failure\" is enabled."
4437
- })]
4438
- }), /* @__PURE__ */ jsxs("div", {
4439
- className: "rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container p-6 shadow-[var(--shadow-card)]",
4440
- children: [/* @__PURE__ */ jsxs("div", {
4441
- className: "flex items-center gap-3 mb-3",
4442
- children: [/* @__PURE__ */ jsx("div", {
4443
- className: "flex h-9 w-9 items-center justify-center rounded-md bg-[var(--brand-primary,hsl(var(--primary)))] text-[var(--btn-primary-text)]",
4444
- children: /* @__PURE__ */ jsx(Shield, { className: "h-5 w-5" })
4445
- }), /* @__PURE__ */ jsx("h3", {
4446
- className: "text-sm font-bold text-foreground",
4447
- children: "Security & Secrets"
4448
- })]
4449
- }), /* @__PURE__ */ jsx("p", {
4450
- className: "text-sm text-muted-foreground",
4451
- children: "Selected secrets are injected as environment variables at execution time. Secret values are never stored in the script itself — they are decrypted and injected only when the sandbox starts. Scripts can use conditions to restrict execution to specific environments or resource tiers."
4452
- })]
4453
- })]
4454
4350
  })
4455
4351
  ]
4456
4352
  });
@@ -1,4 +1,4 @@
1
- import { ArtifactPane as ArtifactPane$1, Avatar as Avatar$1, AvatarFallback as AvatarFallback$1, AvatarImage as AvatarImage$1, Badge as Badge$1, Button as Button$1, Card as Card$1, CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CodeBlock, CopyButton, Dialog as Dialog$1, DialogClose, DialogContent as DialogContent$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1, DialogHeader as DialogHeader$1, DialogOverlay, DialogPortal, DialogTitle as DialogTitle$1, DialogTrigger, DropZone, DropdownMenu as DropdownMenu$1, DropdownMenuCheckboxItem, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuGroup, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuLabel as DropdownMenuLabel$1, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator as DropdownMenuSeparator$1, DropdownMenuShortcut, DropdownMenuSub as DropdownMenuSub$1, DropdownMenuSubContent as DropdownMenuSubContent$1, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuTrigger as DropdownMenuTrigger$1, EmptyState as EmptyState$1, FilterField, Heading, InlineCode, Input as Input$1, Label as Label$1, Metric, MetricStrip, PageHeader, PageHeader as PageHeader$1, PageShell, Progress as Progress$1, SegmentedControl, Select as Select$1, SelectContent as SelectContent$1, SelectGroup, SelectItem as SelectItem$1, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger as SelectTrigger$1, SelectValue as SelectValue$1, SidebarDropZone, Skeleton as Skeleton$1, SkeletonCard as SkeletonCard$1, SkeletonTable, StatCard as StatCard$1, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs as Tabs$1, TabsContent as TabsContent$1, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea as Textarea$1, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme as useTheme$1, useToast } from "@tangle-network/ui/primitives";
1
+ import { ArtifactPane as ArtifactPane$1, Avatar as Avatar$1, AvatarFallback as AvatarFallback$1, AvatarImage as AvatarImage$1, Badge as Badge$1, Button as Button$1, Card as Card$1, CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter, CardHeader as CardHeader$1, CardTitle as CardTitle$1, CodeBlock, CopyButton, Dialog as Dialog$1, DialogClose, DialogContent as DialogContent$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1, DialogHeader as DialogHeader$1, DialogOverlay, DialogPortal, DialogTitle as DialogTitle$1, DialogTrigger, DropZone, DropdownMenu as DropdownMenu$1, DropdownMenuCheckboxItem, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuGroup, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuLabel as DropdownMenuLabel$1, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator as DropdownMenuSeparator$1, DropdownMenuShortcut, DropdownMenuSub as DropdownMenuSub$1, DropdownMenuSubContent as DropdownMenuSubContent$1, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuTrigger as DropdownMenuTrigger$1, EmptyState as EmptyState$1, FilterField, Heading, InlineCode, Input as Input$1, Label as Label$1, Metric, MetricStrip, PageHeader, PageHeader as PageHeader$1, PageShell as PageShell$1, Progress as Progress$1, SegmentedControl, Select as Select$1, SelectContent as SelectContent$1, SelectGroup, SelectItem as SelectItem$1, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger as SelectTrigger$1, SelectValue as SelectValue$1, SidebarDropZone, Skeleton as Skeleton$1, SkeletonCard as SkeletonCard$1, SkeletonTable, StatCard as StatCard$1, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs as Tabs$1, TabsContent as TabsContent$1, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea as Textarea$1, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme as useTheme$1, useToast } from "@tangle-network/ui/primitives";
2
2
  import { Logo, TangleKnot as TangleKnot$1 } from "@tangle-network/brand";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/primitives/logo.tsx
@@ -22,4 +22,4 @@ function SectionTitle(props) {
22
22
  });
23
23
  }
24
24
  //#endregion
25
- export { Select$1 as $, DropdownMenuItem$1 as A, TerminalInput as At, DropdownMenuTrigger$1 as B, buttonVariants as Bt, DialogTitle$1 as C, TableRow as Ct, DropdownMenuCheckboxItem as D, TabsTrigger$1 as Dt, DropdownMenu$1 as E, TabsList$1 as Et, DropdownMenuSeparator$1 as F, ToastContainer as Ft, Input$1 as G, TangleKnot$1 as Gt, FilterField as H, useToast as Ht, DropdownMenuShortcut as I, ToastProvider as It, MetricStrip as J, Label$1 as K, DropdownMenuSub$1 as L, Toolbar as Lt, DropdownMenuPortal as M, TextShimmer as Mt, DropdownMenuRadioGroup as N, Textarea$1 as Nt, DropdownMenuContent$1 as O, TerminalCursor as Ot, DropdownMenuRadioItem as P, ThemeToggle as Pt, SegmentedControl as Q, DropdownMenuSubContent$1 as R, UploadProgress as Rt, DialogPortal as S, TableHeader as St, DropZone as T, TabsContent$1 as Tt, Heading as U, SectionTitle as Ut, EmptyState$1 as V, useTheme$1 as Vt, InlineCode as W, Logo$1 as Wt, PageShell as X, PageHeader$1 as Y, Progress$1 as Z, DialogContent$1 as _, TableBody as _t, Badge$1 as a, SelectScrollUpButton as at, DialogHeader$1 as b, TableFooter as bt, CardContent$1 as c, SelectValue$1 as ct, CardHeader$1 as d, SkeletonCard$1 as dt, SelectContent$1 as et, CardTitle$1 as f, SkeletonTable as ft, DialogClose as g, Table as gt, Dialog$1 as h, Switch as ht, AvatarImage$1 as i, SelectScrollDownButton as it, DropdownMenuLabel$1 as j, TerminalLine as jt, DropdownMenuGroup as k, TerminalDisplay as kt, CardDescription$1 as l, SidebarDropZone as lt, CopyButton as m, StatusPill as mt, Avatar$1 as n, SelectItem$1 as nt, Button$1 as o, SelectSeparator as ot, CodeBlock as p, StatCard$1 as pt, Metric as q, AvatarFallback$1 as r, SelectLabel as rt, Card$1 as s, SelectTrigger$1 as st, ArtifactPane$1 as t, SelectGroup as tt, CardFooter as u, Skeleton$1 as ut, DialogDescription$1 as v, TableCaption as vt, DialogTrigger as w, Tabs$1 as wt, DialogOverlay as x, TableHead as xt, DialogFooter$1 as y, TableCell as yt, DropdownMenuSubTrigger$1 as z, badgeVariants as zt };
25
+ export { Select$1 as $, DropdownMenuItem$1 as A, TerminalInput as At, DropdownMenuTrigger$1 as B, buttonVariants as Bt, DialogTitle$1 as C, TableRow as Ct, DropdownMenuCheckboxItem as D, TabsTrigger$1 as Dt, DropdownMenu$1 as E, TabsList$1 as Et, DropdownMenuSeparator$1 as F, ToastContainer as Ft, Input$1 as G, TangleKnot$1 as Gt, FilterField as H, useToast as Ht, DropdownMenuShortcut as I, ToastProvider as It, MetricStrip as J, Label$1 as K, DropdownMenuSub$1 as L, Toolbar as Lt, DropdownMenuPortal as M, TextShimmer as Mt, DropdownMenuRadioGroup as N, Textarea$1 as Nt, DropdownMenuContent$1 as O, TerminalCursor as Ot, DropdownMenuRadioItem as P, ThemeToggle as Pt, SegmentedControl as Q, DropdownMenuSubContent$1 as R, UploadProgress as Rt, DialogPortal as S, TableHeader as St, DropZone as T, TabsContent$1 as Tt, Heading as U, SectionTitle as Ut, EmptyState$1 as V, useTheme$1 as Vt, InlineCode as W, Logo$1 as Wt, PageShell$1 as X, PageHeader$1 as Y, Progress$1 as Z, DialogContent$1 as _, TableBody as _t, Badge$1 as a, SelectScrollUpButton as at, DialogHeader$1 as b, TableFooter as bt, CardContent$1 as c, SelectValue$1 as ct, CardHeader$1 as d, SkeletonCard$1 as dt, SelectContent$1 as et, CardTitle$1 as f, SkeletonTable as ft, DialogClose as g, Table as gt, Dialog$1 as h, Switch as ht, AvatarImage$1 as i, SelectScrollDownButton as it, DropdownMenuLabel$1 as j, TerminalLine as jt, DropdownMenuGroup as k, TerminalDisplay as kt, CardDescription$1 as l, SidebarDropZone as lt, CopyButton as m, StatusPill as mt, Avatar$1 as n, SelectItem$1 as nt, Button$1 as o, SelectSeparator as ot, CodeBlock as p, StatCard$1 as pt, Metric as q, AvatarFallback$1 as r, SelectLabel as rt, Card$1 as s, SelectTrigger$1 as st, ArtifactPane$1 as t, SelectGroup as tt, CardFooter as u, Skeleton$1 as ut, DialogDescription$1 as v, TableCaption as vt, DialogTrigger as w, Tabs$1 as wt, DialogOverlay as x, TableHead as xt, DialogFooter$1 as y, TableCell as yt, DropdownMenuSubTrigger$1 as z, badgeVariants as zt };
@@ -1,2 +1,2 @@
1
- import { $ as InlineCode, $t as TerminalLine, A as DropZone, At as SkeletonTable, B as DropdownMenuRadioItem, Bt as TableCell, C as DialogDescription, Ct as SelectSeparator, D as DialogPortal, Dt as SidebarDropZoneProps, E as DialogOverlay, Et as SidebarDropZone, F as DropdownMenuGroup, Ft as StatusTone, G as DropdownMenuSubTrigger, Gt as TableRow, H as DropdownMenuShortcut, Ht as TableHead, I as DropdownMenuItem, It as Switch, J as EmptyStateProps, Jt as TabsList, K as DropdownMenuTrigger, Kt as Tabs, L as DropdownMenuLabel, Lt as Table, M as DropdownMenu, Mt as StatCardProps, N as DropdownMenuCheckboxItem, Nt as StatusPill, O as DialogTitle, Ot as Skeleton, P as DropdownMenuContent, Pt as StatusPillProps, Q as HeadingVariant, Qt as TerminalInput, R as DropdownMenuPortal, Rt as TableBody, S as DialogContent, Sn as TangleKnot, St as SelectScrollUpButton, T as DialogHeader, Tt as SelectValue, U as DropdownMenuSub, Ut as TableHeader, V as DropdownMenuSeparator, Vt as TableFooter, W as DropdownMenuSubContent, Wt as TableProps, X as FilterFieldProps, Xt as TerminalCursor, Y as FilterField, Yt as TabsTrigger, Z as Heading, Zt as TerminalDisplay, _ as CodeBlock, _n as HeadingProps, _t as SelectContent, a as AvatarImage, an as Toast, at as MetricProps, b as Dialog, bn as Logo, bt as SelectLabel, c as Button, cn as Toolbar, ct as PageHeader, d as CardContent, dn as UploadProgress, dt as PageShellProps, en as TextShimmer, et as InlineCodeProps, f as CardDescription, fn as UploadProgressProps, ft as Progress, g as CardTitleProps, gn as useToast, gt as Select, h as CardTitle, hn as useTheme, ht as SegmentedControlProps, i as AvatarFallback, in as ThemeToggle, it as Metric, j as DropZoneProps, jt as StatCard, k as DialogTrigger, kt as SkeletonCard, l as ButtonProps, ln as ToolbarProps, lt as PageHeaderProps, m as CardHeader, mn as buttonVariants, mt as SegmentedControlOption, n as ArtifactPaneProps, nn as Textarea, nt as InputProps, o as Badge, on as ToastContainer, ot as MetricStrip, p as CardFooter, pn as badgeVariants, pt as SegmentedControl, q as EmptyState, qt as TabsContent, r as Avatar, rn as TextareaProps, rt as Label, s as BadgeProps, sn as ToastProvider, st as MetricStripProps, t as ArtifactPane, tn as TextShimmerProps, tt as Input, u as Card, un as UploadFile, ut as PageShell, v as CodeBlockProps, vn as SectionTitle, vt as SelectGroup, w as DialogFooter, wt as SelectTrigger, x as DialogClose, xn as LogoProps, xt as SelectScrollDownButton, y as CopyButton, yn as SectionTitleProps, yt as SelectItem, z as DropdownMenuRadioGroup, zt as TableCaption } from "./index-SJKueyy4.js";
1
+ import { $ as InlineCode, $t as TerminalLine, A as DropZone, At as SkeletonTable, B as DropdownMenuRadioItem, Bt as TableCell, C as DialogDescription, Ct as SelectSeparator, D as DialogPortal, Dt as SidebarDropZoneProps, E as DialogOverlay, Et as SidebarDropZone, F as DropdownMenuGroup, Ft as StatusTone, G as DropdownMenuSubTrigger, Gt as TableRow, H as DropdownMenuShortcut, Ht as TableHead, I as DropdownMenuItem, It as Switch, J as EmptyStateProps, Jt as TabsList, K as DropdownMenuTrigger, Kt as Tabs, L as DropdownMenuLabel, Lt as Table, M as DropdownMenu, Mt as StatCardProps, N as DropdownMenuCheckboxItem, Nt as StatusPill, O as DialogTitle, Ot as Skeleton, P as DropdownMenuContent, Pt as StatusPillProps, Q as HeadingVariant, Qt as TerminalInput, R as DropdownMenuPortal, Rt as TableBody, S as DialogContent, Sn as TangleKnot, St as SelectScrollUpButton, T as DialogHeader, Tt as SelectValue, U as DropdownMenuSub, Ut as TableHeader, V as DropdownMenuSeparator, Vt as TableFooter, W as DropdownMenuSubContent, Wt as TableProps, X as FilterFieldProps, Xt as TerminalCursor, Y as FilterField, Yt as TabsTrigger, Z as Heading, Zt as TerminalDisplay, _ as CodeBlock, _n as HeadingProps, _t as SelectContent, a as AvatarImage, an as Toast, at as MetricProps, b as Dialog, bn as Logo, bt as SelectLabel, c as Button, cn as Toolbar, ct as PageHeader, d as CardContent, dn as UploadProgress, dt as PageShellProps, en as TextShimmer, et as InlineCodeProps, f as CardDescription, fn as UploadProgressProps, ft as Progress, g as CardTitleProps, gn as useToast, gt as Select, h as CardTitle, hn as useTheme, ht as SegmentedControlProps, i as AvatarFallback, in as ThemeToggle, it as Metric, j as DropZoneProps, jt as StatCard, k as DialogTrigger, kt as SkeletonCard, l as ButtonProps, ln as ToolbarProps, lt as PageHeaderProps, m as CardHeader, mn as buttonVariants, mt as SegmentedControlOption, n as ArtifactPaneProps, nn as Textarea, nt as InputProps, o as Badge, on as ToastContainer, ot as MetricStrip, p as CardFooter, pn as badgeVariants, pt as SegmentedControl, q as EmptyState, qt as TabsContent, r as Avatar, rn as TextareaProps, rt as Label, s as BadgeProps, sn as ToastProvider, st as MetricStripProps, t as ArtifactPane, tn as TextShimmerProps, tt as Input, u as Card, un as UploadFile, ut as PageShell, v as CodeBlockProps, vn as SectionTitle, vt as SelectGroup, w as DialogFooter, wt as SelectTrigger, x as DialogClose, xn as LogoProps, xt as SelectScrollDownButton, y as CopyButton, yn as SectionTitleProps, yt as SelectItem, z as DropdownMenuRadioGroup, zt as TableCaption } from "./index-wLVwzOsB.js";
2
2
  export { ArtifactPane, type ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, CodeBlock, type CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, FilterField, type FilterFieldProps, Heading, type HeadingProps, type HeadingVariant, InlineCode, type InlineCodeProps, Input, type InputProps, Label, Logo, type LogoProps, Metric, type MetricProps, MetricStrip, type MetricStripProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, Progress, SectionTitle, type SectionTitleProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, type SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, type StatCardProps, StatusPill, type StatusPillProps, type StatusTone, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, ThemeToggle, type Toast, ToastContainer, ToastProvider, Toolbar, type ToolbarProps, type UploadFile, UploadProgress, type UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast };
@@ -1,2 +1,2 @@
1
- import { $ as Select, A as DropdownMenuItem, At as TerminalInput, B as DropdownMenuTrigger, Bt as buttonVariants, C as DialogTitle, Ct as TableRow, D as DropdownMenuCheckboxItem, Dt as TabsTrigger, E as DropdownMenu, Et as TabsList, F as DropdownMenuSeparator, Ft as ToastContainer, G as Input, Gt as TangleKnot, H as FilterField, Ht as useToast, I as DropdownMenuShortcut, It as ToastProvider, J as MetricStrip, K as Label, L as DropdownMenuSub, Lt as Toolbar, M as DropdownMenuPortal, Mt as TextShimmer, N as DropdownMenuRadioGroup, Nt as Textarea, O as DropdownMenuContent, Ot as TerminalCursor, P as DropdownMenuRadioItem, Pt as ThemeToggle, Q as SegmentedControl, R as DropdownMenuSubContent, Rt as UploadProgress, S as DialogPortal, St as TableHeader, T as DropZone, Tt as TabsContent, U as Heading, Ut as SectionTitle, V as EmptyState, Vt as useTheme, W as InlineCode, Wt as Logo, X as PageShell, Y as PageHeader, Z as Progress, _ as DialogContent, _t as TableBody, a as Badge, at as SelectScrollUpButton, b as DialogHeader, bt as TableFooter, c as CardContent, ct as SelectValue, d as CardHeader, dt as SkeletonCard, et as SelectContent, f as CardTitle, ft as SkeletonTable, g as DialogClose, gt as Table, h as Dialog, ht as Switch, i as AvatarImage, it as SelectScrollDownButton, j as DropdownMenuLabel, jt as TerminalLine, k as DropdownMenuGroup, kt as TerminalDisplay, l as CardDescription, lt as SidebarDropZone, m as CopyButton, mt as StatusPill, n as Avatar, nt as SelectItem, o as Button, ot as SelectSeparator, p as CodeBlock, pt as StatCard, q as Metric, r as AvatarFallback, rt as SelectLabel, s as Card, st as SelectTrigger, t as ArtifactPane, tt as SelectGroup, u as CardFooter, ut as Skeleton, v as DialogDescription, vt as TableCaption, w as DialogTrigger, wt as Tabs, x as DialogOverlay, xt as TableHead, y as DialogFooter, yt as TableCell, z as DropdownMenuSubTrigger, zt as badgeVariants } from "./primitives-BQGtwZX3.js";
1
+ import { $ as Select, A as DropdownMenuItem, At as TerminalInput, B as DropdownMenuTrigger, Bt as buttonVariants, C as DialogTitle, Ct as TableRow, D as DropdownMenuCheckboxItem, Dt as TabsTrigger, E as DropdownMenu, Et as TabsList, F as DropdownMenuSeparator, Ft as ToastContainer, G as Input, Gt as TangleKnot, H as FilterField, Ht as useToast, I as DropdownMenuShortcut, It as ToastProvider, J as MetricStrip, K as Label, L as DropdownMenuSub, Lt as Toolbar, M as DropdownMenuPortal, Mt as TextShimmer, N as DropdownMenuRadioGroup, Nt as Textarea, O as DropdownMenuContent, Ot as TerminalCursor, P as DropdownMenuRadioItem, Pt as ThemeToggle, Q as SegmentedControl, R as DropdownMenuSubContent, Rt as UploadProgress, S as DialogPortal, St as TableHeader, T as DropZone, Tt as TabsContent, U as Heading, Ut as SectionTitle, V as EmptyState, Vt as useTheme, W as InlineCode, Wt as Logo, X as PageShell, Y as PageHeader, Z as Progress, _ as DialogContent, _t as TableBody, a as Badge, at as SelectScrollUpButton, b as DialogHeader, bt as TableFooter, c as CardContent, ct as SelectValue, d as CardHeader, dt as SkeletonCard, et as SelectContent, f as CardTitle, ft as SkeletonTable, g as DialogClose, gt as Table, h as Dialog, ht as Switch, i as AvatarImage, it as SelectScrollDownButton, j as DropdownMenuLabel, jt as TerminalLine, k as DropdownMenuGroup, kt as TerminalDisplay, l as CardDescription, lt as SidebarDropZone, m as CopyButton, mt as StatusPill, n as Avatar, nt as SelectItem, o as Button, ot as SelectSeparator, p as CodeBlock, pt as StatCard, q as Metric, r as AvatarFallback, rt as SelectLabel, s as Card, st as SelectTrigger, t as ArtifactPane, tt as SelectGroup, u as CardFooter, ut as Skeleton, v as DialogDescription, vt as TableCaption, w as DialogTrigger, wt as Tabs, x as DialogOverlay, xt as TableHead, y as DialogFooter, yt as TableCell, z as DropdownMenuSubTrigger, zt as badgeVariants } from "./primitives-C4qn9fZ8.js";
2
2
  export { ArtifactPane, Avatar, AvatarFallback, AvatarImage, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FilterField, Heading, InlineCode, Input, Label, Logo, Metric, MetricStrip, PageHeader, PageShell, Progress, SectionTitle, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatusPill, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea, ThemeToggle, ToastContainer, ToastProvider, Toolbar, UploadProgress, badgeVariants, buttonVariants, useTheme, useToast };
package/dist/styles.css CHANGED
@@ -858,6 +858,9 @@
858
858
  .h-\[72\%\] {
859
859
  height: 72%;
860
860
  }
861
+ .h-\[72px\] {
862
+ height: 72px;
863
+ }
861
864
  .h-\[220px\] {
862
865
  height: 220px;
863
866
  }
@@ -1533,15 +1536,15 @@
1533
1536
  .min-w-\[180px\] {
1534
1537
  min-width: 180px;
1535
1538
  }
1539
+ .min-w-\[200px\] {
1540
+ min-width: 200px;
1541
+ }
1536
1542
  .min-w-\[240px\] {
1537
1543
  min-width: 240px;
1538
1544
  }
1539
1545
  .min-w-\[360px\] {
1540
1546
  min-width: 360px;
1541
1547
  }
1542
- .min-w-\[min\(100\%\,18rem\)\] {
1543
- min-width: min(100%, 18rem);
1544
- }
1545
1548
  .min-w-\[var\(--radix-select-trigger-width\)\] {
1546
1549
  min-width: var(--radix-select-trigger-width);
1547
1550
  }
@@ -2353,12 +2356,6 @@
2353
2356
  .bg-\[var\(--accent-surface-soft\)\] {
2354
2357
  background-color: var(--accent-surface-soft);
2355
2358
  }
2356
- .bg-\[var\(--accent-surface-soft\)\]\/40 {
2357
- background-color: var(--accent-surface-soft);
2358
- @supports (color: color-mix(in lab, red, red)) {
2359
- background-color: color-mix(in oklab, var(--accent-surface-soft) 40%, transparent);
2360
- }
2361
- }
2362
2359
  .bg-\[var\(--accent-surface-strong\)\] {
2363
2360
  background-color: var(--accent-surface-strong);
2364
2361
  }
@@ -2392,9 +2389,6 @@
2392
2389
  .bg-\[var\(--brand-glow\)\] {
2393
2390
  background-color: var(--brand-glow);
2394
2391
  }
2395
- .bg-\[var\(--brand-primary\,hsl\(var\(--primary\)\)\)\] {
2396
- background-color: var(--brand-primary,hsl(var(--primary)));
2397
- }
2398
2392
  .bg-\[var\(--brand-strong\)\] {
2399
2393
  background-color: var(--brand-strong);
2400
2394
  }
@@ -4038,9 +4032,6 @@
4038
4032
  background-color: color-mix(in oklab, hsl(var(--primary)) 20%, transparent);
4039
4033
  }
4040
4034
  }
4041
- .group-hover\:text-\[var\(--accent-text\)\]:is(:where(.group):hover *) {
4042
- color: var(--accent-text);
4043
- }
4044
4035
  .group-hover\:text-foreground:is(:where(.group):hover *) {
4045
4036
  color: hsl(var(--foreground));
4046
4037
  }
@@ -4267,9 +4258,6 @@
4267
4258
  background-color: color-mix(in oklab, var(--surface-container-high) 40%, transparent);
4268
4259
  }
4269
4260
  }
4270
- .hover\:bg-\[var\(--surface-danger-bg\)\]:hover {
4271
- background-color: var(--surface-danger-bg);
4272
- }
4273
4261
  .hover\:bg-\[var\(--surface-danger-border\)\]:hover {
4274
4262
  background-color: var(--surface-danger-border);
4275
4263
  }
@@ -4653,12 +4641,6 @@
4653
4641
  .focus-visible\:ring-inset:focus-visible {
4654
4642
  --tw-ring-inset: inset;
4655
4643
  }
4656
- .active\:scale-90:active {
4657
- --tw-scale-x: 90%;
4658
- --tw-scale-y: 90%;
4659
- --tw-scale-z: 90%;
4660
- scale: var(--tw-scale-x) var(--tw-scale-y);
4661
- }
4662
4644
  .active\:scale-95:active {
4663
4645
  --tw-scale-x: 95%;
4664
4646
  --tw-scale-y: 95%;
@@ -4950,6 +4932,9 @@
4950
4932
  .sm\:table-cell {
4951
4933
  display: table-cell;
4952
4934
  }
4935
+ .sm\:w-48 {
4936
+ width: calc(var(--spacing) * 48);
4937
+ }
4953
4938
  .sm\:w-auto {
4954
4939
  width: auto;
4955
4940
  }
@@ -5074,9 +5059,6 @@
5074
5059
  .md\:grid-cols-3 {
5075
5060
  grid-template-columns: repeat(3, minmax(0, 1fr));
5076
5061
  }
5077
- .md\:grid-cols-4 {
5078
- grid-template-columns: repeat(4, minmax(0, 1fr));
5079
- }
5080
5062
  .md\:grid-cols-5 {
5081
5063
  grid-template-columns: repeat(5, minmax(0, 1fr));
5082
5064
  }
@@ -5114,6 +5096,9 @@
5114
5096
  .lg\:hidden {
5115
5097
  display: none;
5116
5098
  }
5099
+ .lg\:table-cell {
5100
+ display: table-cell;
5101
+ }
5117
5102
  .lg\:max-w-sm {
5118
5103
  max-width: var(--container-sm);
5119
5104
  }
@@ -5174,12 +5159,6 @@
5174
5159
  .xl\:table-cell {
5175
5160
  display: table-cell;
5176
5161
  }
5177
- .xl\:w-36 {
5178
- width: calc(var(--spacing) * 36);
5179
- }
5180
- .xl\:w-72 {
5181
- width: calc(var(--spacing) * 72);
5182
- }
5183
5162
  .xl\:grid-cols-2 {
5184
5163
  grid-template-columns: repeat(2, minmax(0, 1fr));
5185
5164
  }
@@ -5192,15 +5171,6 @@
5192
5171
  .xl\:grid-cols-5 {
5193
5172
  grid-template-columns: repeat(5, minmax(0, 1fr));
5194
5173
  }
5195
- .xl\:px-4 {
5196
- padding-inline: calc(var(--spacing) * 4);
5197
- }
5198
- .xl\:px-6 {
5199
- padding-inline: calc(var(--spacing) * 6);
5200
- }
5201
- .xl\:py-5 {
5202
- padding-block: calc(var(--spacing) * 5);
5203
- }
5204
5174
  }
5205
5175
  @media (prefers-color-scheme: dark) {
5206
5176
  .dark\:text-neutral-500 {
@@ -5232,6 +5202,54 @@
5232
5202
  }
5233
5203
  }
5234
5204
  }
5205
+ .\[\&_\[role\=menuitem\]\]\:min-h-10 [role=menuitem] {
5206
+ min-height: calc(var(--spacing) * 10);
5207
+ }
5208
+ .\[\&_\[role\=menuitem\]\]\:text-sm [role=menuitem] {
5209
+ font-size: var(--text-sm);
5210
+ line-height: var(--tw-leading, var(--text-sm--line-height));
5211
+ }
5212
+ .\[\&_\[role\=tab\]\]\:min-h-11 [role=tab] {
5213
+ min-height: calc(var(--spacing) * 11);
5214
+ }
5215
+ .\[\&_\[role\=tab\]\]\:px-4 [role=tab] {
5216
+ padding-inline: calc(var(--spacing) * 4);
5217
+ }
5218
+ .\[\&_\[role\=tab\]\]\:text-sm [role=tab] {
5219
+ font-size: var(--text-sm);
5220
+ line-height: var(--tw-leading, var(--text-sm--line-height));
5221
+ }
5222
+ .\[\&_\[role\=tab\]\[data-state\=active\]\]\:bg-\[var\(--accent-surface-strong\)\] [role=tab][data-state=active] {
5223
+ background-color: var(--accent-surface-strong);
5224
+ }
5225
+ .\[\&_\[role\=tab\]\[data-state\=active\]\]\:text-\[var\(--accent-text\)\] [role=tab][data-state=active] {
5226
+ color: var(--accent-text);
5227
+ }
5228
+ .\[\&_\[role\=tab\]\[data-state\=active\]\]\:shadow-sm [role=tab][data-state=active] {
5229
+ --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));
5230
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
5231
+ }
5232
+ .\[\&_h1\]\:text-2xl h1 {
5233
+ font-size: var(--text-2xl);
5234
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
5235
+ }
5236
+ .\[\&_h1\]\:font-semibold h1 {
5237
+ --tw-font-weight: var(--font-weight-semibold);
5238
+ font-weight: var(--font-weight-semibold);
5239
+ }
5240
+ @media (width >= 40rem) {
5241
+ .sm\:\[\&_h1\]\:text-\[28px\] h1 {
5242
+ font-size: 28px;
5243
+ }
5244
+ }
5245
+ .\[\&_p\]\:text-base p {
5246
+ font-size: var(--text-base);
5247
+ line-height: var(--tw-leading, var(--text-base--line-height));
5248
+ }
5249
+ .\[\&_p\]\:leading-relaxed p {
5250
+ --tw-leading: var(--leading-relaxed);
5251
+ line-height: var(--leading-relaxed);
5252
+ }
5235
5253
  .\[\&_svg\]\:pointer-events-none svg {
5236
5254
  pointer-events: none;
5237
5255
  }
@@ -1,5 +1,5 @@
1
1
  import { t as cn$1 } from "./utils-DzWbktWG.js";
2
- import { o as PortsList } from "./dashboard-CESeH2xQ.js";
2
+ import { s as PortsList } from "./dashboard-BpEeXRo1.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";
@@ -1,3 +1,3 @@
1
- import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-DF2rZgf7.js";
1
+ import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-D1YmTvf3.js";
2
2
  import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-B_vMTtJn.js";
3
3
  export { type ArtifactView, BRAND_PRISM_THEME, type ChangedFile, ChangesPane, type ChangesPaneProps, CodeSurface, type CodeSurfaceProps, CodeView, type CodeViewProps, type DiffStats, DiffStatsBadge, DiffView, type DiffViewProps, type EmbeddedApp, EmbeddedAppView, type EmbeddedAppViewProps, FileBreadcrumb, type FileBreadcrumbProps, GitStatusBadge, PanelHeader, type PanelHeaderProps, type PillTabItem, PillTabs, type PillTabsProps, type PreviewAccess, type PreviewReadiness, PreviewView, type PreviewViewProps, type SandboxArtifact, SandboxArtifactPane, type SandboxArtifactPaneProps, type SandboxArtifactTerminal, buildUnifiedPatch, computeDiffStats, resolveLanguage };
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-BYTo--31.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-CggAsIMv.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.121.1",
3
+ "version": "0.122.0",
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",