@tangle-network/sandbox-ui 0.130.0 → 0.130.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -750,7 +750,12 @@ type WorkspaceFilesSource = {
750
750
  type WorkspaceFilesPaneProps = WorkspaceFilesSource & {
751
751
  /** The open file. Its row is selected and its folders are revealed when it changes. */
752
752
  selectedPath?: string;
753
- /** Called when the reader opens a file. Folder rows expand and collapse instead. */
753
+ /**
754
+ * Called when the reader opens a file, and on every folder row click (the
755
+ * folder also expands or collapses). A folder's path carries a trailing `/`,
756
+ * as it did when this pane rendered RichFileTree; check `node.type` to tell
757
+ * them apart.
758
+ */
754
759
  onSelect?: (path: string, node?: FileNode) => void;
755
760
  preview?: WorkspaceFilesPreview;
756
761
  onBack?: () => void;
@@ -13,6 +13,11 @@ interface VaultTreeProps {
13
13
  onSelect: (path: string) => void;
14
14
  /** Called after the reader expands or collapses a folder. */
15
15
  onFolderToggle?: (path: string, expanded: boolean) => void;
16
+ /**
17
+ * Called every time the reader activates a folder row (click, Enter or
18
+ * Space), whether or not that changes its expansion, as when filtering.
19
+ */
20
+ onFolderSelect?: (path: string) => void;
16
21
  /**
17
22
  * Remembers folder expansion in this browser under this key, for example
18
23
  * `${userId}:${workspaceId}`. Omit to keep expansion for the mounted tree only.
@@ -24,7 +29,7 @@ interface VaultTreeProps {
24
29
  label?: string;
25
30
  className?: string;
26
31
  }
27
- declare function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, storageKey, expandAll, label, className }: VaultTreeProps): import("react").JSX.Element;
32
+ declare function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, onFolderSelect, storageKey, expandAll, label, className }: VaultTreeProps): import("react").JSX.Element;
28
33
  //#endregion
29
34
  //#region src/vault-tree/tree-data.d.ts
30
35
  /**
package/dist/index.d.ts CHANGED
@@ -10,12 +10,12 @@ import { t as Session } from "./sidecar-DgH_vQ6m.js";
10
10
  import { d as useSessionStream, l as UseSessionStreamOptions, n as UseSidecarAuthOptions, o as SessionDegradation, r as useSidecarAuth, s as SessionInfo, t as SidecarAuth, u as UseSessionStreamResult } from "./use-sidecar-auth-CCTJcrq7.js";
11
11
  import { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AuthUser, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SandboxMetrics, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, SidecarMetricsPayload, TaskStreamEvent, TerminalStreamEvent, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSandboxMetricsOptions, UseSandboxMetricsResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useLiveTime, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessions, useToolCallStream } from "./hooks.js";
12
12
  import { $ as ContextMenuShortcut, $n as TableProps, $t as PageShell, A as CardFooter, An as SheetPortal, Ar as badgeVariants, At as DropdownMenuSubTrigger, B as Collapsible, Bn as StatCardProps, Br as LogoProps, Bt as IconTile, C as BadgeProps, Cn as Sheet, Cr as Tooltip, Ct as DropdownMenuPortal, D as Card, Dn as SheetFooter, Dr as UploadFile, Dt as DropdownMenuShortcut, E as CATEGORY_TONES, En as SheetDescription, Er as TooltipTrigger, Et as DropdownMenuSeparator, F as Checkbox, Fn as Skeleton, Fr as useToast, Ft as FilterFieldProps, G as ContextMenuContent, Gn as TONE_CLASSES, Gt as InputProps, H as CollapsibleTrigger, Hn as StatusPillProps, Ht as InlineCode, I as Chip, In as SkeletonCard, Ir as HeadingProps, It as Heading, J as ContextMenuLabel, Jn as TableCaption, Jt as MetricProps, K as ContextMenuGroup, Kn as Table, Kt as Label, L as ChipProps, Ln as SkeletonTable, Lr as SectionTitle, Lt as HeadingVariant, M as CardTitle, Mn as SheetTrigger, Mr as initialsOf, Mt as EmptyState, N as CardTitleProps, Nn as SidebarDropZone, Nr as toneFor, Nt as EmptyStateProps, O as CardContent, On as SheetHeader, Or as UploadProgress, Ot as DropdownMenuSub, P as CategoryTone, Pn as SidebarDropZoneProps, Pr as useTheme, Pt as FilterField, Q as ContextMenuSeparator, Qn as TableHeader, Qt as PageHeaderProps, R as CodeBlock, Rn as Slider, Rr as SectionTitleProps, Rt as HelpText, S as Badge, Sn as Separator, Sr as ToolbarProps, St as DropdownMenuLabel, T as ButtonProps, Tn as SheetContent, Tr as TooltipProvider, Tt as DropdownMenuRadioItem, U as ContextMenu, Un as StatusTone, Ut as InlineCodeProps, V as CollapsibleContent, Vn as StatusPill, Vr as TangleKnot, Vt as IconTileProps, W as ContextMenuCheckboxItem, Wn as Switch, Wt as Input, X as ContextMenuRadioGroup, Xn as TableFooter, Xt as MetricStripProps, Y as ContextMenuPortal, Yn as TableCell, Yt as MetricStrip, Z as ContextMenuRadioItem, Zn as TableHead, Zt as PageHeader, _n as SelectScrollDownButton, _r as ToastContainer, _t as DropdownMenu, a as AlertDialogCancel, an as PopoverClose, ar as Tag, at as Dialog, b as AvatarFallback, bn as SelectTrigger, br as ToneClasses, bt as DropdownMenuGroup, c as AlertDialogFooter, cn as Progress, cr as TerminalDisplay, ct as DialogDescription, d as AlertDialogPortal, dn as SegmentedControlProps, dr as TextShimmer, dt as DialogOverlay, en as PageShellProps, er as TableRow, et as ContextMenuSub, f as AlertDialogTitle, fn as Select, fr as TextShimmerProps, ft as DialogPortal, g as AlertTone, gn as SelectLabel, gr as Toast, gt as DropZoneProps, h as AlertTitle, hn as SelectItem, hr as ThemeToggle, ht as DropZone, i as AlertDialogAction, in as PopoverAnchor, ir as TabsTrigger, it as CopyButton, j as CardHeader, jn as SheetTitle, jr as buttonVariants, jt as DropdownMenuTrigger, k as CardDescription, kn as SheetOverlay, kr as UploadProgressProps, kt as DropdownMenuSubContent, l as AlertDialogHeader, ln as SegmentedControl, lt as DialogFooter, m as AlertProps, mn as SelectGroup, mr as TextareaProps, mt as DialogTrigger, n as AlertDescription, nn as PaginationProps, nr as TabsContent, nt as ContextMenuSubTrigger, o as AlertDialogContent, on as PopoverContent, or as TagProps, ot as DialogClose, p as AlertDialogTrigger, pn as SelectContent, pr as Textarea, pt as DialogTitle, q as ContextMenuItem, qn as TableBody, qt as Metric, r as AlertDialog, rn as Popover, rr as TabsList, rt as ContextMenuTrigger, s as AlertDialogDescription, sn as PopoverTrigger, st as DialogContent, t as Alert, tn as Pagination, tr as Tabs, tt as ContextMenuSubContent, u as AlertDialogOverlay, un as SegmentedControlOption, ut as DialogHeader, vn as SelectScrollUpButton, vr as ToastProvider, vt as DropdownMenuCheckboxItem, w as Button, wn as SheetClose, wr as TooltipContent, wt as DropdownMenuRadioGroup, x as AvatarImage, xn as SelectValue, xr as Toolbar, xt as DropdownMenuItem, y as Avatar, yn as SelectSeparator, yr as Tone, yt as DropdownMenuContent, z as CodeBlockProps, zn as StatCard, zr as Logo, zt as HelpTextProps } from "./index-C6oItkj5.js";
13
- import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-WKvzhZvh.js";
13
+ import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-B2nE9_FN.js";
14
14
  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-DNClXEEe.js";
15
15
  import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-B_vMTtJn.js";
16
16
  import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISchemaIssue, OpenUISchemaValidation, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
17
17
  import { ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, RunRowShell, RunRowShellProps, RunRowStatus, RunRowStatusDot, ToolCallData, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent } from "./run.js";
18
- import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-DPCnMr4b.js";
18
+ import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-DGil6iqm.js";
19
19
  import { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, ChatSession, RegisterActiveSessionOptions, SessionProjectKey, activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, connectSession, disconnectSession, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions } from "./stores.js";
20
20
  import { AgentBranding, CustomToolRenderer, DisplayVariant, FinalTextPart, GroupedMessage, MessageRun, MessageUser, ReasoningPart, Run, RunStats, SessionMessage, SessionPart, TextPart, ToolCategory, ToolDisplayMetadata, ToolPart, ToolState, ToolStatus, ToolTime } from "./types.js";
21
21
  import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatUptime, getToolCategory, getToolDisplayMetadata, getToolErrorText, timeAgo, truncateText } from "./utils.js";
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
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-C2CzWiZU.js";
2
2
  import { $ as DialogDescription, $n as Logo, $t as Sheet, A as CodeBlock, An as Tag, At as Metric, B as ContextMenuPortal, Bn as Toolbar, Bt as Progress, C as CardContent, Cn as TableHead, Ct as FilterField, D as CardTitle, Dn as TabsContent, Dt as InlineCode, E as CardHeader, En as Tabs, Et as IconTile, F as ContextMenuCheckboxItem, Fn as TextShimmer, Ft as Popover, G as ContextMenuSub, Gn as UploadProgress, Gt as SelectItem, H as ContextMenuRadioItem, Hn as TooltipContent, Ht as Select, I as ContextMenuContent, In as Textarea, It as PopoverAnchor, J as ContextMenuTrigger, Jn as initialsOf, Jt as SelectScrollUpButton, K as ContextMenuSubContent, Kn as badgeVariants, Kt as SelectLabel, L as ContextMenuGroup, Ln as ThemeToggle, Lt as PopoverClose, M as CollapsibleContent, Mn as TerminalDisplay, Mt as PageHeader, N as CollapsibleTrigger, Nt as PageShell, O as Checkbox, On as TabsList, Ot as Input, P as ContextMenu, Pt as Pagination, Q as DialogContent, Qn as SectionTitle, Qt as Separator, R as ContextMenuItem, Rn as ToastContainer, Rt as PopoverContent, S as Card, Sn as TableFooter, St as EmptyState, T as CardFooter, Tn as TableRow, Tt as HelpText, U as ContextMenuSeparator, Un as TooltipProvider, Ut as SelectContent, V as ContextMenuRadioGroup, Vn as Tooltip, Vt as SegmentedControl, W as ContextMenuShortcut, Wn as TooltipTrigger, Wt as SelectGroup, X as Dialog, Xn as useTheme, Xt as SelectTrigger, Y as CopyButton, Yn as toneFor, Yt as SelectSeparator, Z as DialogClose, Zn as useToast, Zt as SelectValue, _ as AvatarFallback, _n as TONE_CLASSES, _t as DropdownMenuShortcut, a as AlertDialogCancel, an as SheetOverlay, at as DialogTrigger, b as Button, bn as TableCaption, bt as DropdownMenuSubTrigger, c as AlertDialogFooter, cn as SheetTrigger, ct as DropdownMenuCheckboxItem, d as AlertDialogPortal, dn as SkeletonCard, dt as DropdownMenuItem, en as SheetClose, er as TangleKnot, et as DialogFooter, f as AlertDialogTitle, fn as SkeletonTable, ft as DropdownMenuLabel, g as Avatar, gn as Switch, gt as DropdownMenuSeparator, hn as StatusPill, ht as DropdownMenuRadioItem, i as AlertDialogAction, in as SheetHeader, it as DialogTitle, j as Collapsible, jt as MetricStrip, k as Chip, kn as TabsTrigger, kt as Label, l as AlertDialogHeader, ln as SidebarDropZone, lt as DropdownMenuContent, m as AlertTitle, mn as StatCard, mt as DropdownMenuRadioGroup, n as AlertDescription, nn as SheetDescription, nt as DialogOverlay, o as AlertDialogContent, on as SheetPortal, ot as DropZone, p as AlertDialogTrigger, pn as Slider, pt as DropdownMenuPortal, q as ContextMenuSubTrigger, qn as buttonVariants, qt as SelectScrollDownButton, r as AlertDialog, rn as SheetFooter, rt as DialogPortal, s as AlertDialogDescription, sn as SheetTitle, st as DropdownMenu, t as Alert, tn as SheetContent, tt as DialogHeader, u as AlertDialogOverlay, un as Skeleton, ut as DropdownMenuGroup, v as AvatarImage, vn as Table, vt as DropdownMenuSub, w as CardDescription, wn as TableHeader, wt as Heading, x as CATEGORY_TONES, xn as TableCell, xt as DropdownMenuTrigger, y as Badge, yn as TableBody, yt as DropdownMenuSubContent, z as ContextMenuLabel, zn as ToastProvider, zt as PopoverTrigger } from "./primitives-JjV1ruzp.js";
3
3
  import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
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-BLFYJ6gc.js";
5
- import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-CmysecQF.js";
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-DRz3SoJc.js";
5
+ import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-DtoCNNBJ.js";
6
6
  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-BW-rPRwj.js";
7
7
  import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
8
8
  import { a as formatPrice, i as PricingPage, n as SandboxPageShell, o as BillingDashboard, r as UsageChart, t as DashboardPageHeader } from "./page-layout-2IRtfx51.js";
@@ -90,7 +90,7 @@ function fileIcon(name) {
90
90
  const dot = name.lastIndexOf(".");
91
91
  return dot > 0 && FILE_ICONS[name.slice(dot + 1).toLowerCase()] || File;
92
92
  }
93
- function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, storageKey, expandAll = false, label = "Files", className }) {
93
+ function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle, onFolderSelect, storageKey, expandAll = false, label = "Files", className }) {
94
94
  const [expansion, setExpansion] = useState(() => ({
95
95
  key: storageKey,
96
96
  expanded: readExpanded(storageKey)
@@ -221,11 +221,14 @@ function VaultTree({ root, selectedPath, activeFolder, onSelect, onFolderToggle,
221
221
  }, []);
222
222
  const activate = useCallback((node) => {
223
223
  setFocusedPath(node.path);
224
- if (node.type === "directory") setFolderOpen(node.path, !isOpen(node.path));
225
- else onSelect(node.path);
224
+ if (node.type === "directory") {
225
+ setFolderOpen(node.path, !isOpen(node.path));
226
+ onFolderSelect?.(node.path);
227
+ } else onSelect(node.path);
226
228
  }, [
227
229
  isOpen,
228
230
  onSelect,
231
+ onFolderSelect,
229
232
  setFolderOpen
230
233
  ]);
231
234
  const onKeyDown = useCallback((event, node) => {
@@ -1,2 +1,2 @@
1
- import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-DPCnMr4b.js";
1
+ import { a as VaultTreeProps, i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./index-DGil6iqm.js";
2
2
  export { VAULT_TREE_CHILD_PAGE, VaultTree, type VaultTreeProps, fileTreeFromPaths, filterFileNodes };
@@ -1,2 +1,2 @@
1
- import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-CmysecQF.js";
1
+ import { i as VaultTree, n as filterFileNodes, r as VAULT_TREE_CHILD_PAGE, t as fileTreeFromPaths } from "./tree-data-DtoCNNBJ.js";
2
2
  export { VAULT_TREE_CHILD_PAGE, VaultTree, fileTreeFromPaths, filterFileNodes };
@@ -1,7 +1,7 @@
1
1
  import { t as cn$1 } from "./utils-DzWbktWG.js";
2
2
  import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
3
3
  import { t as MOTION_CONTROL } from "./motion-DkyBRJb9.js";
4
- import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-CmysecQF.js";
4
+ import { i as VaultTree, n as filterFileNodes, t as fileTreeFromPaths } from "./tree-data-DtoCNNBJ.js";
5
5
  import { ArtifactPane, ArtifactPane as ArtifactPane$1, EmptyState, Input } from "@tangle-network/ui/primitives";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  import { Markdown } from "@tangle-network/ui/markdown";
@@ -2532,6 +2532,7 @@ function WorkspaceFilesPane({ root, paths, selectedPath, onSelect, preview, onBa
2532
2532
  if (treeRef.current) returnFocusRef.current = activeElementWithin(treeRef.current);
2533
2533
  onSelect?.(path, index.get(path));
2534
2534
  },
2535
+ onFolderSelect: (path) => onSelect?.(`${path}/`, index.get(path)),
2535
2536
  storageKey: expansionKey,
2536
2537
  expandAll: query.trim().length > 0,
2537
2538
  label
@@ -1,2 +1,2 @@
1
- import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-WKvzhZvh.js";
1
+ import { $ as StatusBar, A as createShellShouldRevalidate, B as SessionSidebarVariant, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebarFilter, G as dispatchSessionCreated, H as SessionCreatedDetail, I as SessionSidebarGroupBy, J as RuntimePaneProps, K as useOptimisticSessionItems, L as SessionSidebarItem, M as formatRelativeAge, N as SessionSidebar, O as ShellShouldRevalidateArgs, P as SessionSidebarBadge, Q as ContextBadge, R as SessionSidebarLink, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SessionOptimisticController, V as SESSION_CREATED_EVENT, W as UseOptimisticSessionItemsOptions, X as TerminalPanel, Y as TerminalLine, Z as TerminalProps, _ as TaskBoardItem, a as WorkspaceFilesPane, at as DirectoryPaneProps, b as SandboxWorkbenchArtifact, c as ApprovalConfidenceStat, ct as WorkspaceLayout, d as ApprovalQueueProps, et as StatusBarProps, f as CalendarEvent, g as TaskBoardColumn, h as TaskBoard, i as WorkspaceArtifactViewProps, it as DirectoryPane, j as shellShouldRevalidate, k as ShellShouldRevalidateOptions, l as ApprovalItem, lt as WorkspaceLayoutProps, m as CalendarViewProps, n as ArtifactPaneProps, nt as StatusBanner, o as WorkspaceFilesPaneProps, ot as WorkspacePaneHeader, p as CalendarView, q as RuntimePane, r as WorkspaceArtifactView, rt as StatusBannerProps, s as WorkspaceFilesPreview, st as WorkspacePaneHeaderProps, t as ArtifactPane, tt as BannerType, u as ApprovalQueue, v as TaskBoardProps, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarProps } from "./index-B2nE9_FN.js";
2
2
  export { type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactPane, type ArtifactPaneProps, type BannerType, type CalendarEvent, CalendarView, type CalendarViewProps, type ContextBadge, DirectoryPane, type DirectoryPaneProps, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, type SessionCreatedDetail, type SessionOptimisticController, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TerminalLine, TerminalPanel, type TerminalProps, type UseOptimisticSessionItemsOptions, WorkspaceArtifactView, type WorkspaceArtifactViewProps, WorkspaceFilesPane, type WorkspaceFilesPaneProps, type WorkspaceFilesPreview, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
package/dist/workspace.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
2
- 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-BLFYJ6gc.js";
2
+ 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-DRz3SoJc.js";
3
3
  export { ApprovalQueue, ArtifactPane, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SandboxWorkbench, SessionSidebar, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.130.0",
3
+ "version": "0.130.1",
4
4
  "license": "MIT",
5
5
  "description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
6
6
  "repository": {