@tangle-network/ui 11.51.16 → 11.51.18
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/CHANGELOG.md +12 -0
- package/dist/chat/thinking-indicator.js +9 -15
- package/dist/editor/tiptap-editor.js +4 -4
- package/dist/files/file-preview.js +1 -1
- package/dist/hooks/use-phone.d.ts +4 -0
- package/dist/hooks/use-phone.js +14 -0
- package/dist/hooks.d.ts +2 -1
- package/dist/hooks.js +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/openui/openui-artifact-renderer.js +7 -7
- package/dist/presentation.d.ts +1 -1
- package/dist/presentation.js +1 -1
- package/dist/primitives/artifact-pane.js +1 -1
- package/dist/primitives/heading.js +1 -1
- package/dist/primitives/progress.js +1 -1
- package/dist/primitives/sidebar-drop-zone.js +1 -1
- package/dist/primitives/stat-card.js +1 -1
- package/dist/primitives/toast.js +1 -1
- package/dist/primitives/upload-progress.js +2 -2
- package/dist/primitives/wizard.js +2 -2
- package/dist/run/expandable-content.js +1 -1
- package/dist/run/expanded-tool-detail.js +3 -3
- package/dist/run/run-group.js +11 -14
- package/dist/run/run-item-primitives.js +1 -1
- package/dist/tool-previews/command-preview.js +3 -3
- package/dist/tool-previews/diff-preview.js +2 -2
- package/dist/tool-previews/question-preview.js +1 -1
- package/dist/utils/time-ago.js +2 -1
- package/package.json +2 -2
- package/src/chat/thinking-indicator.tsx +2 -4
- package/src/editor/document-editor-pane.stories.tsx +1 -1
- package/src/editor/tiptap-editor.tsx +4 -4
- package/src/files/file-preview.tsx +1 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-phone.ts +18 -0
- package/src/markdown/markdown.stories.tsx +1 -1
- package/src/openui/openui-artifact-renderer.tsx +7 -7
- package/src/presentation.ts +1 -1
- package/src/primitives/artifact-pane.tsx +1 -1
- package/src/primitives/avatar.stories.tsx +3 -3
- package/src/primitives/badge.stories.tsx +3 -3
- package/src/primitives/card.stories.tsx +1 -1
- package/src/primitives/compliance-badge.stories.tsx +3 -3
- package/src/primitives/dropdown-menu.stories.tsx +1 -1
- package/src/primitives/heading.tsx +1 -1
- package/src/primitives/input.stories.tsx +2 -2
- package/src/primitives/label.stories.tsx +3 -3
- package/src/primitives/progress.stories.tsx +5 -5
- package/src/primitives/progress.tsx +1 -1
- package/src/primitives/select.stories.tsx +3 -3
- package/src/primitives/sidebar-drop-zone.stories.tsx +1 -1
- package/src/primitives/sidebar-drop-zone.tsx +1 -1
- package/src/primitives/skeleton.stories.tsx +4 -4
- package/src/primitives/stat-card.stories.tsx +22 -33
- package/src/primitives/stat-card.tsx +1 -1
- package/src/primitives/switch.stories.tsx +2 -2
- package/src/primitives/tabs.stories.tsx +3 -3
- package/src/primitives/toast.tsx +1 -1
- package/src/primitives/upload-progress.tsx +2 -2
- package/src/primitives/wizard.tsx +1 -1
- package/src/run/expandable-content.tsx +1 -1
- package/src/run/expanded-tool-detail.tsx +3 -3
- package/src/run/inline-thinking-item.stories.tsx +3 -3
- package/src/run/inline-tool-item.stories.tsx +3 -3
- package/src/run/run-group.tsx +9 -9
- package/src/run/run-item-primitives.tsx +1 -1
- package/src/styles/presentation.css +1 -1
- package/src/tool-previews/command-preview.tsx +3 -3
- package/src/tool-previews/diff-preview.tsx +2 -2
- package/src/tool-previews/question-preview.tsx +1 -1
- package/src/utils/time-ago.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## 11.51.18
|
|
2
|
+
|
|
3
|
+
### Patch Changes
|
|
4
|
+
|
|
5
|
+
- df719a3: `timeAgo` counts days past 24 hours (`3d ago`) instead of hours.
|
|
6
|
+
|
|
7
|
+
## 11.51.17
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- f84605b: Add `usePhone` and `PHONE_MEDIA` to `@tangle-network/ui/hooks`: the one phone breakpoint (767 px) a workspace switches to one region at a time on. sandbox-ui's `agent-inspector.tsx` and the Discovery viewer's `use-phone.ts` carried their own copies at 767 px and 1023 px; both move to this one.
|
|
12
|
+
|
|
1
13
|
## 11.51.16
|
|
2
14
|
|
|
3
15
|
### Patch Changes
|
|
@@ -12,22 +12,16 @@ function ThinkingIndicator({ className }) {
|
|
|
12
12
|
role: "status",
|
|
13
13
|
"aria-label": "Agent is thinking",
|
|
14
14
|
className: cn("flex items-center gap-2 px-3 py-1.5", className),
|
|
15
|
-
children: [/* @__PURE__ */
|
|
16
|
-
className: "flex gap-
|
|
15
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: "flex gap-1",
|
|
17
17
|
children: [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}),
|
|
26
|
-
/* @__PURE__ */ jsx("span", {
|
|
27
|
-
className: "h-[var(--indicator-dot-size)] w-[var(--indicator-dot-size)] animate-bounce rounded-full bg-[var(--brand-glow)]",
|
|
28
|
-
style: { animationDelay: "300ms" }
|
|
29
|
-
})
|
|
30
|
-
]
|
|
18
|
+
0,
|
|
19
|
+
200,
|
|
20
|
+
400
|
|
21
|
+
].map((delay) => /* @__PURE__ */ jsx("span", {
|
|
22
|
+
className: "h-[var(--indicator-dot-size)] w-[var(--indicator-dot-size)] animate-[tangle-breathe_var(--motion-ambient)_infinite] rounded-full bg-[var(--brand-glow)] motion-reduce:animate-none",
|
|
23
|
+
style: { animationDelay: `${delay}ms` }
|
|
24
|
+
}, delay))
|
|
31
25
|
}), elapsed > 3 && /* @__PURE__ */ jsxs("span", {
|
|
32
26
|
className: "text-[length:var(--font-size-xs)] tabular-nums text-muted-foreground",
|
|
33
27
|
children: [elapsed, "s"]
|
|
@@ -227,19 +227,19 @@ function TiptapEditor(props) {
|
|
|
227
227
|
function ConnectionIndicator({ state }) {
|
|
228
228
|
const config = {
|
|
229
229
|
disconnected: {
|
|
230
|
-
color: "bg-
|
|
230
|
+
color: "bg-[var(--surface-danger-text)]",
|
|
231
231
|
label: "Disconnected"
|
|
232
232
|
},
|
|
233
233
|
connecting: {
|
|
234
|
-
color: "bg-
|
|
234
|
+
color: "bg-[var(--surface-warning-text)] animate-pulse motion-reduce:animate-none",
|
|
235
235
|
label: "Connecting..."
|
|
236
236
|
},
|
|
237
237
|
connected: {
|
|
238
|
-
color: "bg-
|
|
238
|
+
color: "bg-[var(--surface-info-text)]",
|
|
239
239
|
label: "Connected"
|
|
240
240
|
},
|
|
241
241
|
synced: {
|
|
242
|
-
color: "bg-
|
|
242
|
+
color: "bg-[var(--surface-success-text)]",
|
|
243
243
|
label: "Synced"
|
|
244
244
|
}
|
|
245
245
|
}[state];
|
|
@@ -275,7 +275,7 @@ function FilePreview({ filename, content, blobUrl, mimeType, size, urlTransform,
|
|
|
275
275
|
className: "truncate text-sm font-medium text-foreground",
|
|
276
276
|
children: filename
|
|
277
277
|
}), /* @__PURE__ */ jsx("div", {
|
|
278
|
-
className: "mt-0.5 text-
|
|
278
|
+
className: "mt-0.5 text-xs text-muted-foreground",
|
|
279
279
|
children: previewLabel
|
|
280
280
|
})]
|
|
281
281
|
}),
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Below the tablet breakpoint a workspace shows one region at a time and an agent opens as a full-screen sheet. */
|
|
2
|
+
export declare const PHONE_MEDIA = "(max-width: 767px)";
|
|
3
|
+
/** Whether the page is phone-width. The server renders the desktop shape; the client corrects it on hydration. */
|
|
4
|
+
export declare function usePhone(media?: string): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
|
+
// src/hooks/use-phone.ts
|
|
4
|
+
/** Below the tablet breakpoint a workspace shows one region at a time and an agent opens as a full-screen sheet. */
|
|
5
|
+
const PHONE_MEDIA = "(max-width: 767px)";
|
|
6
|
+
/** Whether the page is phone-width. The server renders the desktop shape; the client corrects it on hydration. */
|
|
7
|
+
function usePhone(media = PHONE_MEDIA) {
|
|
8
|
+
return useSyncExternalStore((notify) => {
|
|
9
|
+
const query = window.matchMedia(media);
|
|
10
|
+
query.addEventListener("change", notify);
|
|
11
|
+
return () => query.removeEventListener("change", notify);
|
|
12
|
+
}, () => window.matchMedia(media).matches, () => false);
|
|
13
|
+
}
|
|
14
|
+
export { PHONE_MEDIA, usePhone };
|
package/dist/hooks.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ import { RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistr
|
|
|
10
10
|
import { AgentStreamEvent, AutomationStreamEvent, BotStreamEvent, ConnectionState, SSEEvent, TaskStreamEvent, TerminalStreamEvent, UseSSEStreamOptions, UseSSEStreamResult, useSSEStream } from "./hooks/use-sse-stream.js";
|
|
11
11
|
import { EventStreamHandlers, EventStreamOpener, EventStreamSource, useEventStream } from "./hooks/use-event-stream.js";
|
|
12
12
|
import { useFollowTail } from "./hooks/use-follow-tail.js";
|
|
13
|
-
|
|
13
|
+
import { PHONE_MEDIA, usePhone } from "./hooks/use-phone.js";
|
|
14
|
+
export { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AuthUser, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, ConnectionState, type EventStreamHandlers, type EventStreamOpener, type EventStreamSource, PHONE_MEDIA, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, TaskStreamEvent, TerminalStreamEvent, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useEventStream, useFollowTail, useLiveTime, usePhone, useRealtimeSession, useRunCollapseState, useRunGroups, useRunNow, useSSEStream, useSdkSession, useToolCallStream };
|
package/dist/hooks.js
CHANGED
|
@@ -10,4 +10,5 @@ import { RealtimeSessionRegistry, useRealtimeSession } from "./hooks/use-realtim
|
|
|
10
10
|
import { useSdkSession } from "./hooks/use-sdk-session.js";
|
|
11
11
|
import { useEventStream } from "./hooks/use-event-stream.js";
|
|
12
12
|
import { useSSEStream } from "./hooks/use-sse-stream.js";
|
|
13
|
-
|
|
13
|
+
import { PHONE_MEDIA, usePhone } from "./hooks/use-phone.js";
|
|
14
|
+
export { PHONE_MEDIA, RealtimeSessionRegistry, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useEventStream, useFollowTail, useLiveTime, usePhone, useRealtimeSession, useRunCollapseState, useRunGroups, useRunNow, useSSEStream, useSdkSession, useToolCallStream };
|
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ import { RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistr
|
|
|
51
51
|
import { AgentStreamEvent, AutomationStreamEvent, BotStreamEvent, ConnectionState, SSEEvent, TaskStreamEvent, TerminalStreamEvent, UseSSEStreamOptions, UseSSEStreamResult, useSSEStream } from "./hooks/use-sse-stream.js";
|
|
52
52
|
import { EventStreamHandlers, EventStreamOpener, EventStreamSource, useEventStream } from "./hooks/use-event-stream.js";
|
|
53
53
|
import { useFollowTail } from "./hooks/use-follow-tail.js";
|
|
54
|
+
import { PHONE_MEDIA, usePhone } from "./hooks/use-phone.js";
|
|
54
55
|
import "./hooks.js";
|
|
55
56
|
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardTitleProps } from "./primitives/card.js";
|
|
56
57
|
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./primitives/dialog.js";
|
|
@@ -148,4 +149,4 @@ import { QuestionPreview, QuestionPreviewProps } from "./tool-previews/question-
|
|
|
148
149
|
import { DiffPreview, DiffPreviewProps } from "./tool-previews/diff-preview.js";
|
|
149
150
|
import { RedactedDocSegment, RedactedDocument, RedactedDocumentData, RedactedDocumentProps, RevealResult } from "./redaction/redacted-document.js";
|
|
150
151
|
import "./redaction.js";
|
|
151
|
-
export { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, AgentBranding, AgentStreamEvent, AgentTimeline, type AgentTimelineArtifactItem, AgentTimelineColumn, type AgentTimelineCustomItem, type AgentTimelineFoldItem, type AgentTimelineItem, type AgentTimelineMessageItem, type AgentTimelineProps, type AgentTimelineStatusItem, AgentTimelineStep, type AgentTimelineStepKind, type AgentTimelineStepProps, type AgentTimelineTone, type AgentTimelineToolGroupItem, type AgentTimelineToolItem, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTone, ApiSchema, type ApiSchemaProps, AppendUserMessageOptions, ApplySdkEventOptions, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, ArtifactPane, type ArtifactPaneProps, AuthHeader, type AuthHeaderProps, AuthUser, AutomationStreamEvent, Avatar, AvatarFallback, AvatarImage, type AvatarProps, Badge, type BadgeProps, BeginAssistantMessageOptions, BotStreamEvent, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, CATEGORY_TONES, CSV_PREVIEW_ROW_LIMIT, Calendar, type CalendarDate, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, type CategoryTone, type ChartReferenceLine, ChatAuthor, ChatContainer, type ChatContainerProps, ChatMessage, type ChatMessageProps, Checkbox, Chip, type ChipProps, CodeBlock, type CodeBlockProps, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandPreview, type CommandPreviewProps, CompleteAssistantMessageOptions, ComplianceBadge, type ComplianceBadgeProps, type ComplianceProduct, type ComplianceStatus, ConnectionState, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, CustomToolRenderer, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, type DiffPreviewProps, DisplayVariant, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type EventStreamHandlers, type EventStreamOpener, type EventStreamSource, ExpandablePanel, type ExpandablePanelProps, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, Field, type FieldProps, FileArtifactPane, type FileArtifactPaneProps, FileCard, type FileCardProps, type FileDetails, type FileFormat, FileList, type FileListItem, type FileListProps, type FileNode, FilePreview, type FilePreviewKind, type FilePreviewProps, type FileTabData, FileTabs, type FileTabsProps, FileTree, type FileTreeProps, type FileTreeVisibilityOptions, type FileUploader, FilterField, type FilterFieldProps, FinalTextPart, GitHubLoginButton, type GitHubLoginButtonProps, GlobResultsPreview, type GlobResultsPreviewProps, GrepResultsPreview, type GrepResultsPreviewProps, GroupedMessage, Heading, type HeadingProps, type HeadingVariant, HelpText, type HelpTextProps, HoverCard, HoverCardContent, HoverCardDescription, HoverCardHeader, HoverCardTitle, HoverCardTrigger, IconTile, type IconTileProps, InlineCode, type InlineCodeProps, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, Input, type InputProps, Label, LiveDuration, LoginLayout, type LoginLayoutProps, Logo, type LogoProps, Markdown, type MarkdownLinkChip, type MarkdownLinkChipResolver, type MarkdownProps, MessageAuthor, type MessageAuthorProps, MessageList, type MessageListProps, type MessageRole, MessageRun, MessageUser, Metric, MetricChart, type MetricChartProps, type MetricProps, MetricStrip, type MetricStripProps, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, type OpenUIAction, type OpenUIActionsNode, OpenUIArtifactRenderer, type OpenUIArtifactRendererProps, type OpenUIBadgeNode, type OpenUICardNode, type OpenUICodeNode, type OpenUIComponentNode, type OpenUIGridNode, type OpenUIHeadingNode, type OpenUIKeyValueNode, type OpenUIMarkdownNode, type OpenUIPrimitive, type OpenUISchemaIssue, type OpenUISchemaValidation, type OpenUISeparatorNode, type OpenUIStackNode, type OpenUIStatNode, type OpenUITableNode, type OpenUITextNode, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, Pagination, type PaginationProps, PdfViewer, type PdfViewerConfig, type PdfViewerProps, type PeriodDelta, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress, QuestionPreview, type QuestionPreviewProps, RadioGroup, RadioGroupItem, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, ReasoningPart, type RedactedDocSegment, RedactedDocument, type RedactedDocumentData, type RedactedDocumentProps, RegisterActiveSessionOptions, type RevealResult, RichFileTree, type RichFileTreeGitEntry, type RichFileTreeGitStatus, type RichFileTreeProps, type RichFileTreeThemeVars, Run, RunGroup, type RunGroupProps, type RunPhase, RunPhaseList, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, RunStats, type RunStatus, RunStatusIcon, type RunStatusIconProps, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeriesExtent, type SeriesPoint, type SeriesPointInput, type SeriesScale, SeriesSparkline, type SeriesSparklineProps, SessionMessage, SessionPart, SessionProjectKey, type SessionUser, SettingsList, type SettingsListAction, type SettingsListColumns, SettingsListItem, type SettingsListItemProps, type SettingsListMenuItem, type SettingsListProps, SettingsNote, type SettingsNoteProps, SettingsRow, type SettingsRowLayout, type SettingsRowProps, SettingsSection, type SettingsSectionProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarDropZone, type SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, Slider, type Speaker, SpeakerHeader, type SpeakerHeaderProps, type SpeakerPart, type SpeakerSection, type SpeakerState, StatCard, type StatCardProps, type StatusMeta, StatusPill, type StatusPillProps, type StatusTone, Switch, TONE_CLASSES, TOOL_CATEGORY_ICONS, TRANSCRIPT_TEXT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, type TagProps, TangleKnot, TaskList, type TaskListItem, type TaskListProps, type TaskStatus, TaskStreamEvent, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TerminalStreamEvent, TextPart, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, ThemeToggle, ThinkingIndicator, type ThinkingIndicatorProps, TimeSelect, type TimeSelectProps, type Toast, ToastContainer, ToastProvider, type Tone, type ToneClasses, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, ToolCategory, ToolDisplayMetadata, ToolPart, ToolState, ToolStatus, ToolTime, Toolbar, type ToolbarProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UploadFile, UploadProgress, type UploadProgressProps, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, UserMenu, type UserMenuProps, UserMessage, type UserMessageProps, WebSearchPreview, type WebSearchPreviewProps, Wizard, type WizardProps, WizardStep, type WizardStepProps, WriteFilePreview, type WriteFilePreviewProps, activeSessionsAtom, addMessage, addParts, agentTimelineStepKind, badgeVariants, bumpActiveSessionActivity, buttonVariants, clearChat, cn, codeBlockGrammar, configurePdfViewer, copyText, createAuthFetcher, detectFileFormat, fenceInfo, fieldMessageId, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, foldSummary, formatAxisDuration, formatBytes, formatCalendarDate, formatClock, formatCompact, formatCost, formatCount, formatSpanDuration as formatDuration, formatSpanDuration, formatSpanDuration as formatUptime, formatUtcTime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, initialsOf, isOpen, isStreamingAtom, isViewerMessage, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, localToday, messagesAtom, normalizeSeries, numericColumns, parseCalendarDate, parseCsv, parseToolEvent, partMapAtom, partitionBySpeaker, periodDelta, plainTextFromMarkdown, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, runStatus, seriesAreaPath, seriesExtent, seriesLinePath, seriesMean, seriesScale, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, showsTaskPriority, statusMeta, tableCsv, taskProgress, taskStatus, timeAgo, toneFor, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useEventStream, useFollowTail, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useProjectActivity, useProjectSessions, useRealtimeSession, useRunCollapseState, useRunGroups, useRunNow, useSSEStream, useSdkSession, useSessionsByActivity, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
|
|
152
|
+
export { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, AgentBranding, AgentStreamEvent, AgentTimeline, type AgentTimelineArtifactItem, AgentTimelineColumn, type AgentTimelineCustomItem, type AgentTimelineFoldItem, type AgentTimelineItem, type AgentTimelineMessageItem, type AgentTimelineProps, type AgentTimelineStatusItem, AgentTimelineStep, type AgentTimelineStepKind, type AgentTimelineStepProps, type AgentTimelineTone, type AgentTimelineToolGroupItem, type AgentTimelineToolItem, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTone, ApiSchema, type ApiSchemaProps, AppendUserMessageOptions, ApplySdkEventOptions, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, ArtifactPane, type ArtifactPaneProps, AuthHeader, type AuthHeaderProps, AuthUser, AutomationStreamEvent, Avatar, AvatarFallback, AvatarImage, type AvatarProps, Badge, type BadgeProps, BeginAssistantMessageOptions, BotStreamEvent, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, CATEGORY_TONES, CSV_PREVIEW_ROW_LIMIT, Calendar, type CalendarDate, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, type CategoryTone, type ChartReferenceLine, ChatAuthor, ChatContainer, type ChatContainerProps, ChatMessage, type ChatMessageProps, Checkbox, Chip, type ChipProps, CodeBlock, type CodeBlockProps, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandPreview, type CommandPreviewProps, CompleteAssistantMessageOptions, ComplianceBadge, type ComplianceBadgeProps, type ComplianceProduct, type ComplianceStatus, ConnectionState, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, CustomToolRenderer, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, type DiffPreviewProps, DisplayVariant, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type EventStreamHandlers, type EventStreamOpener, type EventStreamSource, ExpandablePanel, type ExpandablePanelProps, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, Field, type FieldProps, FileArtifactPane, type FileArtifactPaneProps, FileCard, type FileCardProps, type FileDetails, type FileFormat, FileList, type FileListItem, type FileListProps, type FileNode, FilePreview, type FilePreviewKind, type FilePreviewProps, type FileTabData, FileTabs, type FileTabsProps, FileTree, type FileTreeProps, type FileTreeVisibilityOptions, type FileUploader, FilterField, type FilterFieldProps, FinalTextPart, GitHubLoginButton, type GitHubLoginButtonProps, GlobResultsPreview, type GlobResultsPreviewProps, GrepResultsPreview, type GrepResultsPreviewProps, GroupedMessage, Heading, type HeadingProps, type HeadingVariant, HelpText, type HelpTextProps, HoverCard, HoverCardContent, HoverCardDescription, HoverCardHeader, HoverCardTitle, HoverCardTrigger, IconTile, type IconTileProps, InlineCode, type InlineCodeProps, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, Input, type InputProps, Label, LiveDuration, LoginLayout, type LoginLayoutProps, Logo, type LogoProps, Markdown, type MarkdownLinkChip, type MarkdownLinkChipResolver, type MarkdownProps, MessageAuthor, type MessageAuthorProps, MessageList, type MessageListProps, type MessageRole, MessageRun, MessageUser, Metric, MetricChart, type MetricChartProps, type MetricProps, MetricStrip, type MetricStripProps, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, type OpenUIAction, type OpenUIActionsNode, OpenUIArtifactRenderer, type OpenUIArtifactRendererProps, type OpenUIBadgeNode, type OpenUICardNode, type OpenUICodeNode, type OpenUIComponentNode, type OpenUIGridNode, type OpenUIHeadingNode, type OpenUIKeyValueNode, type OpenUIMarkdownNode, type OpenUIPrimitive, type OpenUISchemaIssue, type OpenUISchemaValidation, type OpenUISeparatorNode, type OpenUIStackNode, type OpenUIStatNode, type OpenUITableNode, type OpenUITextNode, PHONE_MEDIA, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, Pagination, type PaginationProps, PdfViewer, type PdfViewerConfig, type PdfViewerProps, type PeriodDelta, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress, QuestionPreview, type QuestionPreviewProps, RadioGroup, RadioGroupItem, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, ReasoningPart, type RedactedDocSegment, RedactedDocument, type RedactedDocumentData, type RedactedDocumentProps, RegisterActiveSessionOptions, type RevealResult, RichFileTree, type RichFileTreeGitEntry, type RichFileTreeGitStatus, type RichFileTreeProps, type RichFileTreeThemeVars, Run, RunGroup, type RunGroupProps, type RunPhase, RunPhaseList, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, RunStats, type RunStatus, RunStatusIcon, type RunStatusIconProps, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeriesExtent, type SeriesPoint, type SeriesPointInput, type SeriesScale, SeriesSparkline, type SeriesSparklineProps, SessionMessage, SessionPart, SessionProjectKey, type SessionUser, SettingsList, type SettingsListAction, type SettingsListColumns, SettingsListItem, type SettingsListItemProps, type SettingsListMenuItem, type SettingsListProps, SettingsNote, type SettingsNoteProps, SettingsRow, type SettingsRowLayout, type SettingsRowProps, SettingsSection, type SettingsSectionProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarDropZone, type SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, Slider, type Speaker, SpeakerHeader, type SpeakerHeaderProps, type SpeakerPart, type SpeakerSection, type SpeakerState, StatCard, type StatCardProps, type StatusMeta, StatusPill, type StatusPillProps, type StatusTone, Switch, TONE_CLASSES, TOOL_CATEGORY_ICONS, TRANSCRIPT_TEXT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, type TagProps, TangleKnot, TaskList, type TaskListItem, type TaskListProps, type TaskStatus, TaskStreamEvent, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TerminalStreamEvent, TextPart, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, ThemeToggle, ThinkingIndicator, type ThinkingIndicatorProps, TimeSelect, type TimeSelectProps, type Toast, ToastContainer, ToastProvider, type Tone, type ToneClasses, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, ToolCategory, ToolDisplayMetadata, ToolPart, ToolState, ToolStatus, ToolTime, Toolbar, type ToolbarProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UploadFile, UploadProgress, type UploadProgressProps, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, UserMenu, type UserMenuProps, UserMessage, type UserMessageProps, WebSearchPreview, type WebSearchPreviewProps, Wizard, type WizardProps, WizardStep, type WizardStepProps, WriteFilePreview, type WriteFilePreviewProps, activeSessionsAtom, addMessage, addParts, agentTimelineStepKind, badgeVariants, bumpActiveSessionActivity, buttonVariants, clearChat, cn, codeBlockGrammar, configurePdfViewer, copyText, createAuthFetcher, detectFileFormat, fenceInfo, fieldMessageId, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, foldSummary, formatAxisDuration, formatBytes, formatCalendarDate, formatClock, formatCompact, formatCost, formatCount, formatSpanDuration as formatDuration, formatSpanDuration, formatSpanDuration as formatUptime, formatUtcTime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, initialsOf, isOpen, isStreamingAtom, isViewerMessage, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, localToday, messagesAtom, normalizeSeries, numericColumns, parseCalendarDate, parseCsv, parseToolEvent, partMapAtom, partitionBySpeaker, periodDelta, plainTextFromMarkdown, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, runStatus, seriesAreaPath, seriesExtent, seriesLinePath, seriesMean, seriesScale, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, showsTaskPriority, statusMeta, tableCsv, taskProgress, taskStatus, timeAgo, toneFor, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useEventStream, useFollowTail, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, usePhone, useProjectActivity, useProjectSessions, useRealtimeSession, useRunCollapseState, useRunGroups, useRunNow, useSSEStream, useSdkSession, useSessionsByActivity, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
|
package/dist/index.js
CHANGED
|
@@ -128,8 +128,9 @@ import { RealtimeSessionRegistry, useRealtimeSession } from "./hooks/use-realtim
|
|
|
128
128
|
import { useSdkSession } from "./hooks/use-sdk-session.js";
|
|
129
129
|
import { useEventStream } from "./hooks/use-event-stream.js";
|
|
130
130
|
import { useSSEStream } from "./hooks/use-sse-stream.js";
|
|
131
|
+
import { PHONE_MEDIA, usePhone } from "./hooks/use-phone.js";
|
|
131
132
|
import { addMessage, addParts, clearChat, isStreamingAtom, messagesAtom, partMapAtom, updatePart } from "./stores/chat-store.js";
|
|
132
133
|
import { copyText } from "./utils/copy-text.js";
|
|
133
134
|
import { timeAgo } from "./utils/time-ago.js";
|
|
134
135
|
import { RedactedDocument } from "./redaction/redacted-document.js";
|
|
135
|
-
export { AgentTimeline, AgentTimelineColumn, AgentTimelineStep, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, ApiSchema, ApprovalCard, ApprovalDiffSummary, ArtifactPane, AuthHeader, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CATEGORY_TONES, CSV_PREVIEW_ROW_LIMIT, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatContainer, ChatMessage, Checkbox, Chip, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandPreview, ComplianceBadge, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, ExpandablePanel, ExpandedToolDetail, Field, FileArtifactPane, FileCard, FileList, FilePreview, FileTabs, FileTree, FilterField, GitHubLoginButton, GlobResultsPreview, GrepResultsPreview, Heading, HelpText, HoverCard, HoverCardContent, HoverCardDescription, HoverCardHeader, HoverCardTitle, HoverCardTrigger, IconTile, InlineCode, InlineThinkingItem, InlineToolItem, Input, Label, LiveDuration, LoginLayout, Logo, Markdown, MessageAuthor, MessageList, Metric, MetricChart, MetricStrip, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, PageHeader, PageShell, Pagination, PdfViewer, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress, QuestionPreview, RadioGroup, RadioGroupItem, RealtimeSessionRegistry, RedactedDocument, RichFileTree, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, RunStatusIcon, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SeriesSparkline, SettingsList, SettingsListItem, SettingsNote, SettingsRow, SettingsSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarDropZone, Skeleton, SkeletonCard, SkeletonTable, Slider, SpeakerHeader, StatCard, StatusPill, Switch, TONE_CLASSES, TOOL_CATEGORY_ICONS, TRANSCRIPT_TEXT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TangleKnot, TaskList, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea, ThemeToggle, ThinkingIndicator, TimeSelect, ToastContainer, ToastProvider, ToolCallFeed, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UploadProgress, UserMenu, UserMessage, WebSearchPreview, Wizard, WizardStep, WriteFilePreview, activeSessionsAtom, addMessage, addParts, agentTimelineStepKind, badgeVariants, bumpActiveSessionActivity, buttonVariants, clearChat, cn, codeBlockGrammar, configurePdfViewer, copyText, createAuthFetcher, detectFileFormat, fenceInfo, fieldMessageId, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, foldSummary, formatAxisDuration, formatBytes, formatCalendarDate, formatClock, formatCompact, formatCost, formatCount, formatSpanDuration as formatDuration, formatSpanDuration, formatSpanDuration as formatUptime, formatUtcTime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, initialsOf, isOpen, isStreamingAtom, isViewerMessage, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, localToday, messagesAtom, normalizeSeries, numericColumns, parseCalendarDate, parseCsv, parseToolEvent, partMapAtom, partitionBySpeaker, periodDelta, plainTextFromMarkdown, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, runStatus, seriesAreaPath, seriesExtent, seriesLinePath, seriesMean, seriesScale, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, showsTaskPriority, statusMeta, tableCsv, taskProgress, taskStatus, timeAgo, toneFor, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useEventStream, useFollowTail, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useProjectActivity, useProjectSessions, useRealtimeSession, useRunCollapseState, useRunGroups, useRunNow, useSSEStream, useSdkSession, useSessionsByActivity, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
|
|
136
|
+
export { AgentTimeline, AgentTimelineColumn, AgentTimelineStep, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, ApiSchema, ApprovalCard, ApprovalDiffSummary, ArtifactPane, AuthHeader, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CATEGORY_TONES, CSV_PREVIEW_ROW_LIMIT, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatContainer, ChatMessage, Checkbox, Chip, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandPreview, ComplianceBadge, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, ExpandablePanel, ExpandedToolDetail, Field, FileArtifactPane, FileCard, FileList, FilePreview, FileTabs, FileTree, FilterField, GitHubLoginButton, GlobResultsPreview, GrepResultsPreview, Heading, HelpText, HoverCard, HoverCardContent, HoverCardDescription, HoverCardHeader, HoverCardTitle, HoverCardTrigger, IconTile, InlineCode, InlineThinkingItem, InlineToolItem, Input, Label, LiveDuration, LoginLayout, Logo, Markdown, MessageAuthor, MessageList, Metric, MetricChart, MetricStrip, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, PHONE_MEDIA, PageHeader, PageShell, Pagination, PdfViewer, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress, QuestionPreview, RadioGroup, RadioGroupItem, RealtimeSessionRegistry, RedactedDocument, RichFileTree, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, RunStatusIcon, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SeriesSparkline, SettingsList, SettingsListItem, SettingsNote, SettingsRow, SettingsSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarDropZone, Skeleton, SkeletonCard, SkeletonTable, Slider, SpeakerHeader, StatCard, StatusPill, Switch, TONE_CLASSES, TOOL_CATEGORY_ICONS, TRANSCRIPT_TEXT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TangleKnot, TaskList, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea, ThemeToggle, ThinkingIndicator, TimeSelect, ToastContainer, ToastProvider, ToolCallFeed, Toolbar, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UploadProgress, UserMenu, UserMessage, WebSearchPreview, Wizard, WizardStep, WriteFilePreview, activeSessionsAtom, addMessage, addParts, agentTimelineStepKind, badgeVariants, bumpActiveSessionActivity, buttonVariants, clearChat, cn, codeBlockGrammar, configurePdfViewer, copyText, createAuthFetcher, detectFileFormat, fenceInfo, fieldMessageId, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, foldSummary, formatAxisDuration, formatBytes, formatCalendarDate, formatClock, formatCompact, formatCost, formatCount, formatSpanDuration as formatDuration, formatSpanDuration, formatSpanDuration as formatUptime, formatUtcTime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, initialsOf, isOpen, isStreamingAtom, isViewerMessage, ixControl, ixControlAfter, ixControlSoft, ixField, ixRow, ixSelected, ixTabUnderline, localToday, messagesAtom, normalizeSeries, numericColumns, parseCalendarDate, parseCsv, parseToolEvent, partMapAtom, partitionBySpeaker, periodDelta, plainTextFromMarkdown, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, runStatus, seriesAreaPath, seriesExtent, seriesLinePath, seriesMean, seriesScale, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, showsTaskPriority, statusMeta, tableCsv, taskProgress, taskStatus, timeAgo, toneFor, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useEventStream, useFollowTail, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, usePhone, useProjectActivity, useProjectSessions, useRealtimeSession, useRunCollapseState, useRunGroups, useRunNow, useSSEStream, useSdkSession, useSessionsByActivity, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
|
|
@@ -64,7 +64,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
64
64
|
className: "space-y-1",
|
|
65
65
|
children: [
|
|
66
66
|
node.kicker && /* @__PURE__ */ jsx("div", {
|
|
67
|
-
className: "text-
|
|
67
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
68
68
|
children: node.kicker
|
|
69
69
|
}),
|
|
70
70
|
/* @__PURE__ */ jsx(HeadingTag, {
|
|
@@ -93,7 +93,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
93
93
|
className: "space-y-2 p-4",
|
|
94
94
|
children: [
|
|
95
95
|
/* @__PURE__ */ jsx("div", {
|
|
96
|
-
className: "text-xs
|
|
96
|
+
className: "text-xs text-muted-foreground",
|
|
97
97
|
children: node.label
|
|
98
98
|
}),
|
|
99
99
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -114,7 +114,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
114
114
|
children: asArray(node.items).map((item, index) => /* @__PURE__ */ jsxs("div", {
|
|
115
115
|
className: "rounded-[var(--radius-lg)] border border-border bg-card px-4 py-3",
|
|
116
116
|
children: [/* @__PURE__ */ jsx("dt", {
|
|
117
|
-
className: "text-
|
|
117
|
+
className: "text-xs text-muted-foreground",
|
|
118
118
|
children: item.label
|
|
119
119
|
}), /* @__PURE__ */ jsx("dd", {
|
|
120
120
|
className: cn("mt-1 text-sm font-medium text-foreground", item.tone === "muted" && "text-foreground"),
|
|
@@ -125,7 +125,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
125
125
|
case "code": return /* @__PURE__ */ jsxs("div", {
|
|
126
126
|
className: "space-y-2",
|
|
127
127
|
children: [node.title && /* @__PURE__ */ jsx("div", {
|
|
128
|
-
className: "text-xs
|
|
128
|
+
className: "text-xs text-muted-foreground",
|
|
129
129
|
children: node.title
|
|
130
130
|
}), /* @__PURE__ */ jsx(CodeBlock, {
|
|
131
131
|
code: node.code,
|
|
@@ -149,7 +149,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
149
149
|
children: [/* @__PURE__ */ jsxs(Table, { children: [/* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsx(TableRow, {
|
|
150
150
|
className: "border-border",
|
|
151
151
|
children: asArray(node.columns).map((column) => /* @__PURE__ */ jsx(TableHead, {
|
|
152
|
-
className: cn("h-10 text-
|
|
152
|
+
className: cn("h-10 text-xs text-muted-foreground", column.align === "right" && "text-right"),
|
|
153
153
|
children: column.header
|
|
154
154
|
}, column.key))
|
|
155
155
|
}) }), /* @__PURE__ */ jsx(TableBody, { children: asArray(node.rows).map((row, rowIndex) => /* @__PURE__ */ jsx(TableRow, {
|
|
@@ -169,7 +169,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
169
169
|
children: [
|
|
170
170
|
/* @__PURE__ */ jsx("div", { className: "h-px flex-1 bg-border" }),
|
|
171
171
|
node.label && /* @__PURE__ */ jsx("span", {
|
|
172
|
-
className: "text-
|
|
172
|
+
className: "text-xs text-muted-foreground",
|
|
173
173
|
children: node.label
|
|
174
174
|
}),
|
|
175
175
|
/* @__PURE__ */ jsx("div", { className: "h-px flex-1 bg-border" })
|
|
@@ -198,7 +198,7 @@ function renderNode(node, onAction, urlTransform) {
|
|
|
198
198
|
className: "min-w-0 flex-1 space-y-1",
|
|
199
199
|
children: [
|
|
200
200
|
node.eyebrow && /* @__PURE__ */ jsx("div", {
|
|
201
|
-
className: "text-
|
|
201
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
202
202
|
children: node.eyebrow
|
|
203
203
|
}),
|
|
204
204
|
node.title && /* @__PURE__ */ jsx(CardTitle, {
|
package/dist/presentation.d.ts
CHANGED
|
@@ -91,7 +91,7 @@ export declare const cardPresentation: {
|
|
|
91
91
|
readonly variants: {
|
|
92
92
|
readonly default: "bg-card border-border shadow-[var(--edge-highlight),var(--shadow-card)]";
|
|
93
93
|
readonly elevated: "bg-muted/50 border-border shadow-[var(--shadow-card)]";
|
|
94
|
-
readonly glass: "bg-card
|
|
94
|
+
readonly glass: "bg-card border-border shadow-[var(--shadow-card)]";
|
|
95
95
|
readonly sandbox: "bg-muted/50 border-primary/20 shadow-[var(--shadow-accent)]";
|
|
96
96
|
};
|
|
97
97
|
};
|
package/dist/presentation.js
CHANGED
|
@@ -260,7 +260,7 @@ const cardPresentation = {
|
|
|
260
260
|
variants: {
|
|
261
261
|
default: "bg-card border-border shadow-[var(--edge-highlight),var(--shadow-card)]",
|
|
262
262
|
elevated: "bg-muted/50 border-border shadow-[var(--shadow-card)]",
|
|
263
|
-
glass: "bg-card
|
|
263
|
+
glass: "bg-card border-border shadow-[var(--shadow-card)]",
|
|
264
264
|
sandbox: "bg-muted/50 border-primary/20 shadow-[var(--shadow-accent)]"
|
|
265
265
|
}
|
|
266
266
|
};
|
|
@@ -22,7 +22,7 @@ function ArtifactPane({ eyebrow, title, subtitle, meta, headerActions, tabs, too
|
|
|
22
22
|
className: "min-w-0 flex-1",
|
|
23
23
|
children: !hideTitleBlock && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
24
24
|
eyebrow && /* @__PURE__ */ jsx("div", {
|
|
25
|
-
className: "mb-1 inline-flex max-w-full items-center px-1 py-0.5 text-
|
|
25
|
+
className: "mb-1 inline-flex max-w-full items-center px-1 py-0.5 text-xs font-medium text-muted-foreground",
|
|
26
26
|
children: eyebrow
|
|
27
27
|
}),
|
|
28
28
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -8,7 +8,7 @@ const VARIANT_CLASS = {
|
|
|
8
8
|
page: "font-display font-semibold text-foreground text-[length:var(--font-size-3xl,1.875rem)] leading-[var(--line-height-heading,1.15)] tracking-[var(--tracking-tight,-0.02em)]",
|
|
9
9
|
section: "font-display font-semibold text-foreground text-[length:var(--font-size-xl,1.25rem)] leading-[1.3] tracking-[var(--tracking-snug,-0.01em)]",
|
|
10
10
|
subsection: "font-semibold text-foreground text-[length:var(--font-size-base,1rem)] leading-[1.4]",
|
|
11
|
-
eyebrow: "font-
|
|
11
|
+
eyebrow: "font-medium text-muted-foreground text-[length:var(--font-size-xs,0.75rem)] leading-4"
|
|
12
12
|
};
|
|
13
13
|
const DEFAULT_TAG = {
|
|
14
14
|
display: "h1",
|
|
@@ -22,7 +22,7 @@ const Progress = React.forwardRef(({ className, value, variant = "default", tone
|
|
|
22
22
|
className: cn("relative h-2 w-full overflow-hidden rounded-full bg-muted", className),
|
|
23
23
|
...props,
|
|
24
24
|
children: /* @__PURE__ */ jsx(ProgressPrimitive.Indicator, {
|
|
25
|
-
className: cn("h-full w-full flex-1 transition-
|
|
25
|
+
className: cn("h-full w-full flex-1 transition-transform duration-300 ease-out", tone ? TONE_FILL[tone] : indicatorVariants[variant]),
|
|
26
26
|
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
27
27
|
})
|
|
28
28
|
}), showValue && /* @__PURE__ */ jsxs("span", {
|
|
@@ -64,7 +64,7 @@ function SidebarDropZone({ onDrop, accept, disabled, title = "Drop files here",
|
|
|
64
64
|
onDragLeave: handleDragLeave,
|
|
65
65
|
onDragOver: handleDragOver,
|
|
66
66
|
onDrop: handleDrop,
|
|
67
|
-
className: cn("rounded-lg border-2 border-dashed transition-
|
|
67
|
+
className: cn("rounded-lg border-2 border-dashed transition-colors duration-150", isVisible ? "p-4" : "p-0 border-transparent", dragOver ? "border-[var(--brand-cool,hsl(var(--ring)))] bg-[var(--accent-surface-soft)]" : persistent ? "border-[var(--border-subtle,hsl(var(--border)))] bg-transparent hover:border-[var(--border-strong)] hover:bg-[var(--bg-hover,hsl(var(--accent)))]" : "", disabled && "opacity-50 pointer-events-none", className),
|
|
68
68
|
children: isVisible && /* @__PURE__ */ jsxs("div", {
|
|
69
69
|
className: "flex flex-col items-center gap-2 text-center",
|
|
70
70
|
children: [
|
|
@@ -29,7 +29,7 @@ const StatCard = React.forwardRef(({ className, variant = "default", title, valu
|
|
|
29
29
|
children: title
|
|
30
30
|
}),
|
|
31
31
|
/* @__PURE__ */ jsx("p", {
|
|
32
|
-
className: "font-
|
|
32
|
+
className: "font-medium text-3xl tabular-nums tracking-tight",
|
|
33
33
|
children: value
|
|
34
34
|
}),
|
|
35
35
|
subtitle && /* @__PURE__ */ jsx("p", {
|
package/dist/primitives/toast.js
CHANGED
|
@@ -6,7 +6,7 @@ import * as React from "react";
|
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { AlertCircle, AlertTriangle, CheckCircle2, Info, X } from "lucide-react";
|
|
8
8
|
// src/primitives/toast.tsx
|
|
9
|
-
const toastVariants = cva("pointer-events-auto relative flex w-full items-center justify-between gap-3 overflow-hidden rounded-lg border p-4 shadow-lg transition-
|
|
9
|
+
const toastVariants = cva("pointer-events-auto relative flex w-full items-center justify-between gap-3 overflow-hidden rounded-lg border p-4 shadow-lg transition-[transform,opacity]", {
|
|
10
10
|
variants: { variant: {
|
|
11
11
|
default: "border-border bg-background text-foreground",
|
|
12
12
|
success: "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]",
|
|
@@ -37,8 +37,8 @@ function UploadProgress({ files, onRemove, onRetry, className }) {
|
|
|
37
37
|
file.status === "uploading" && file.progress !== void 0 && /* @__PURE__ */ jsx("div", {
|
|
38
38
|
className: "mt-1 h-1 w-full overflow-hidden rounded-full bg-muted/50",
|
|
39
39
|
children: /* @__PURE__ */ jsx("div", {
|
|
40
|
-
className: "h-full rounded-full bg-primary transition-
|
|
41
|
-
style: {
|
|
40
|
+
className: "h-full w-full rounded-full bg-primary transition-transform duration-300 ease-out",
|
|
41
|
+
style: { transform: `translateX(-${100 - file.progress}%)` }
|
|
42
42
|
})
|
|
43
43
|
}),
|
|
44
44
|
file.status === "error" && file.error && /* @__PURE__ */ jsx("p", {
|
|
@@ -100,8 +100,8 @@ function Wizard({ children, step, defaultStep = 0, onStepChange, onFinished, cla
|
|
|
100
100
|
"aria-valuenow": current + 1,
|
|
101
101
|
"aria-label": `Step ${current + 1} of ${total}`,
|
|
102
102
|
children: /* @__PURE__ */ jsx("div", {
|
|
103
|
-
className: "h-full rounded-full bg-primary transition-
|
|
104
|
-
style: {
|
|
103
|
+
className: "h-full w-full rounded-full bg-primary transition-transform duration-300 ease-out",
|
|
104
|
+
style: { transform: `translateX(-${100 - (current + 1) / total * 100}%)` }
|
|
105
105
|
})
|
|
106
106
|
})]
|
|
107
107
|
}),
|
|
@@ -32,7 +32,7 @@ function ExpandableContent({ children, collapsedMaxPx = 180, fadeClassName = "fr
|
|
|
32
32
|
}), overflowing ? /* @__PURE__ */ jsx("button", {
|
|
33
33
|
type: "button",
|
|
34
34
|
onClick: () => setExpanded((value) => !value),
|
|
35
|
-
className: cn("mt-1 text-
|
|
35
|
+
className: cn("mt-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground", toggleClassName),
|
|
36
36
|
children: expanded ? "Show less" : "Show more"
|
|
37
37
|
}) : null]
|
|
38
38
|
});
|
|
@@ -113,7 +113,7 @@ const ExpandedToolDetail = memo(({ part }) => {
|
|
|
113
113
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
114
114
|
className: "flex items-center gap-2 border-b border-border bg-background px-3 py-2",
|
|
115
115
|
children: [/* @__PURE__ */ jsx(ArrowRight, { className: "h-3 w-3 text-primary" }), /* @__PURE__ */ jsx("span", {
|
|
116
|
-
className: "text-xs font-medium
|
|
116
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
117
117
|
children: "Input"
|
|
118
118
|
})]
|
|
119
119
|
}), /* @__PURE__ */ jsx(CodeBlock, {
|
|
@@ -127,7 +127,7 @@ const ExpandedToolDetail = memo(({ part }) => {
|
|
|
127
127
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
128
128
|
className: "flex items-center gap-2 border-b border-border bg-background px-3 py-2",
|
|
129
129
|
children: [/* @__PURE__ */ jsx(ArrowLeft, { className: "h-3 w-3 text-primary" }), /* @__PURE__ */ jsx("span", {
|
|
130
|
-
className: "text-xs font-medium
|
|
130
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
131
131
|
children: "Output"
|
|
132
132
|
})]
|
|
133
133
|
}), /* @__PURE__ */ jsx(ExpandableContent, {
|
|
@@ -149,7 +149,7 @@ const ExpandedToolDetail = memo(({ part }) => {
|
|
|
149
149
|
"aria-hidden": true,
|
|
150
150
|
className: "size-3"
|
|
151
151
|
}), /* @__PURE__ */ jsx("span", {
|
|
152
|
-
className: "text-xs font-medium
|
|
152
|
+
className: "text-xs font-medium text-[var(--surface-danger-text)]",
|
|
153
153
|
children: "Error"
|
|
154
154
|
})]
|
|
155
155
|
}), /* @__PURE__ */ jsx(ExpandableContent, {
|
package/dist/run/run-group.js
CHANGED
|
@@ -39,7 +39,7 @@ const DEFAULT_BRANDING = {
|
|
|
39
39
|
iconClass: "",
|
|
40
40
|
textClass: "text-primary"
|
|
41
41
|
};
|
|
42
|
-
const ASSISTANT_SHELL = "min-w-0 flex-1 space-y-3 rounded-[
|
|
42
|
+
const ASSISTANT_SHELL = "min-w-0 flex-1 space-y-3 rounded-[var(--radius-panel)] border border-[var(--border-subtle)] bg-[color:color-mix(in_srgb,var(--bg-card)_94%,transparent)] px-5 py-4 shadow-[0_1px_2px_rgba(15,23,42,0.04)]";
|
|
43
43
|
function AssistantShell({ branding, isStreaming, children }) {
|
|
44
44
|
return /* @__PURE__ */ jsxs("div", {
|
|
45
45
|
className: "flex flex-col gap-1",
|
|
@@ -145,7 +145,7 @@ function CategoryBadges({ categories }) {
|
|
|
145
145
|
const Icon = CATEGORY_ICON_MAP[cat] ?? Settings;
|
|
146
146
|
return /* @__PURE__ */ jsx("span", {
|
|
147
147
|
title: cat,
|
|
148
|
-
className: "flex h-5 w-5 items-center justify-center
|
|
148
|
+
className: "flex h-5 w-5 items-center justify-center text-muted-foreground",
|
|
149
149
|
children: /* @__PURE__ */ jsx(Icon, { className: "h-3 w-3" })
|
|
150
150
|
}, cat);
|
|
151
151
|
})
|
|
@@ -185,19 +185,16 @@ const RunGroup = memo(({ run, partMap, collapsed, onToggle, branding = DEFAULT_B
|
|
|
185
185
|
children: /* @__PURE__ */ jsx("div", {
|
|
186
186
|
className: "flex items-center gap-2 px-0.5 py-0.5 text-sm text-[var(--text-muted)]",
|
|
187
187
|
children: /* @__PURE__ */ jsxs("span", {
|
|
188
|
-
className: "flex gap-
|
|
188
|
+
className: "flex gap-1",
|
|
189
189
|
children: [
|
|
190
|
+
/* @__PURE__ */ jsx("span", { className: "h-2 w-2 animate-[tangle-breathe_var(--motion-ambient)_infinite] motion-reduce:animate-none rounded-full bg-[var(--brand-glow)]" }),
|
|
190
191
|
/* @__PURE__ */ jsx("span", {
|
|
191
|
-
className: "h-2 w-2 animate-
|
|
192
|
-
style: { animationDelay: "
|
|
192
|
+
className: "h-2 w-2 animate-[tangle-breathe_var(--motion-ambient)_infinite] motion-reduce:animate-none rounded-full bg-[var(--brand-glow)]",
|
|
193
|
+
style: { animationDelay: "200ms" }
|
|
193
194
|
}),
|
|
194
195
|
/* @__PURE__ */ jsx("span", {
|
|
195
|
-
className: "h-2 w-2 animate-
|
|
196
|
-
style: { animationDelay: "
|
|
197
|
-
}),
|
|
198
|
-
/* @__PURE__ */ jsx("span", {
|
|
199
|
-
className: "h-2 w-2 animate-bounce rounded-full bg-[var(--brand-glow)]",
|
|
200
|
-
style: { animationDelay: "300ms" }
|
|
196
|
+
className: "h-2 w-2 animate-[tangle-breathe_var(--motion-ambient)_infinite] motion-reduce:animate-none rounded-full bg-[var(--brand-glow)]",
|
|
197
|
+
style: { animationDelay: "400ms" }
|
|
201
198
|
})
|
|
202
199
|
]
|
|
203
200
|
})
|
|
@@ -301,17 +298,17 @@ const RunGroup = memo(({ run, partMap, collapsed, onToggle, branding = DEFAULT_B
|
|
|
301
298
|
children: branding.label
|
|
302
299
|
}),
|
|
303
300
|
renderSummary(run) ? /* @__PURE__ */ jsx("span", {
|
|
304
|
-
className: "text-
|
|
301
|
+
className: "text-xs text-muted-foreground",
|
|
305
302
|
children: renderSummary(run)
|
|
306
303
|
}) : null,
|
|
307
304
|
collapsed && run.summaryText ? /* @__PURE__ */ jsx("span", {
|
|
308
|
-
className: "min-w-0 truncate text-
|
|
305
|
+
className: "min-w-0 truncate text-xs text-foreground/70",
|
|
309
306
|
children: run.summaryText
|
|
310
307
|
}) : null,
|
|
311
308
|
/* @__PURE__ */ jsxs("span", {
|
|
312
309
|
className: "ml-auto flex shrink-0 items-center gap-1.5",
|
|
313
310
|
children: [/* @__PURE__ */ jsx(CategoryBadges, { categories: stats.toolCategories }), /* @__PURE__ */ jsxs("span", {
|
|
314
|
-
className: "inline-flex items-center gap-1
|
|
311
|
+
className: "inline-flex items-center gap-1 text-xs text-muted-foreground",
|
|
315
312
|
children: [/* @__PURE__ */ jsx(RunStatusIcon, {
|
|
316
313
|
status: isStreaming ? "running" : "done",
|
|
317
314
|
"aria-hidden": true,
|
|
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
5
5
|
function LiveDuration({ startTime }) {
|
|
6
6
|
const elapsed = useLiveTime(100) - startTime;
|
|
7
7
|
return /* @__PURE__ */ jsx("span", {
|
|
8
|
-
className: "text-xs font-mono text-
|
|
8
|
+
className: "text-xs font-mono text-muted-foreground tabular-nums",
|
|
9
9
|
children: formatSpanDuration(elapsed)
|
|
10
10
|
});
|
|
11
11
|
}
|
|
@@ -107,7 +107,7 @@ function parseStructured(text) {
|
|
|
107
107
|
* prints below. A clean run stays quiet green. */
|
|
108
108
|
function ExitBadge({ output, status }) {
|
|
109
109
|
if (status === "running" || status === "pending") return /* @__PURE__ */ jsxs("span", {
|
|
110
|
-
className: "inline-flex shrink-0 items-center gap-1 text-
|
|
110
|
+
className: "inline-flex shrink-0 items-center gap-1 text-xs text-muted-foreground",
|
|
111
111
|
children: [/* @__PURE__ */ jsx(Loader2, {
|
|
112
112
|
className: "h-3 w-3 animate-spin",
|
|
113
113
|
"aria-hidden": "true"
|
|
@@ -134,7 +134,7 @@ function ExitBadge({ output, status }) {
|
|
|
134
134
|
}
|
|
135
135
|
if (label === null) return null;
|
|
136
136
|
return /* @__PURE__ */ jsx("span", {
|
|
137
|
-
className: cn("inline-flex shrink-0 items-center rounded-full border px-1.5 py-px font-sans text-
|
|
137
|
+
className: cn("inline-flex shrink-0 items-center rounded-full border px-1.5 py-px font-sans text-xs font-medium tabular-nums", tone === "danger" && "border-transparent bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]", tone === "success" && "border-transparent bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]", tone === "warning" && "border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]"),
|
|
138
138
|
children: label
|
|
139
139
|
});
|
|
140
140
|
}
|
|
@@ -177,7 +177,7 @@ function OutputRegion({ label, text, className }) {
|
|
|
177
177
|
}), clipped && !full ? /* @__PURE__ */ jsxs("button", {
|
|
178
178
|
type: "button",
|
|
179
179
|
onClick: () => setFull(true),
|
|
180
|
-
className: cn("w-full border-t border-white/10 px-3 py-1.5 text-left font-sans text-
|
|
180
|
+
className: cn("w-full border-t border-white/10 px-3 py-1.5 text-left font-sans text-xs font-medium text-muted-foreground transition-colors hover:text-foreground", focusRing),
|
|
181
181
|
children: [
|
|
182
182
|
"Show all ",
|
|
183
183
|
label,
|
|
@@ -49,7 +49,7 @@ const DiffPreview = memo(({ part }) => {
|
|
|
49
49
|
!payload.diff && payload.before ? /* @__PURE__ */ jsxs("div", {
|
|
50
50
|
className: "space-y-2",
|
|
51
51
|
children: [/* @__PURE__ */ jsx("div", {
|
|
52
|
-
className: "text-xs font-
|
|
52
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
53
53
|
children: "Before"
|
|
54
54
|
}), /* @__PURE__ */ jsx(CodeBlock, {
|
|
55
55
|
code: payload.before,
|
|
@@ -60,7 +60,7 @@ const DiffPreview = memo(({ part }) => {
|
|
|
60
60
|
!payload.diff && payload.after ? /* @__PURE__ */ jsxs("div", {
|
|
61
61
|
className: "space-y-2",
|
|
62
62
|
children: [/* @__PURE__ */ jsx("div", {
|
|
63
|
-
className: "text-xs font-
|
|
63
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
64
64
|
children: "After"
|
|
65
65
|
}), /* @__PURE__ */ jsx(CodeBlock, {
|
|
66
66
|
code: payload.after,
|
|
@@ -42,7 +42,7 @@ const QuestionPreview = memo(({ part }) => {
|
|
|
42
42
|
className: "rounded-[var(--radius-md)] border border-border bg-muted px-3 py-3",
|
|
43
43
|
children: [
|
|
44
44
|
/* @__PURE__ */ jsxs("div", {
|
|
45
|
-
className: "text-xs font-
|
|
45
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
46
46
|
children: ["Question ", index + 1]
|
|
47
47
|
}),
|
|
48
48
|
/* @__PURE__ */ jsx("div", {
|
package/dist/utils/time-ago.js
CHANGED
|
@@ -5,6 +5,7 @@ function timeAgo(ts) {
|
|
|
5
5
|
if (secs < 60) return `${secs}s ago`;
|
|
6
6
|
const mins = Math.floor(secs / 60);
|
|
7
7
|
if (mins < 60) return `${mins}m ago`;
|
|
8
|
-
|
|
8
|
+
const hrs = Math.floor(mins / 60);
|
|
9
|
+
return hrs < 24 ? `${hrs}h ago` : `${Math.floor(hrs / 24)}d ago`;
|
|
9
10
|
}
|
|
10
11
|
export { timeAgo };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/ui",
|
|
3
|
-
"version": "11.51.
|
|
3
|
+
"version": "11.51.18",
|
|
4
4
|
"description": "Generic React UI components for Tangle products — primitives, chat, run, files, editor, markdown.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"peerDependencies": {
|
|
217
217
|
"@hocuspocus/provider": ">=2.15.0 <5.0.0",
|
|
218
218
|
"@nanostores/react": ">=0.8.4 <3.0.0",
|
|
219
|
-
"@tangle-network/brand": "^1.31.
|
|
219
|
+
"@tangle-network/brand": "^1.31.4",
|
|
220
220
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
221
221
|
"@tiptap/extension-collaboration": ">=3.20.4 <4.0.0",
|
|
222
222
|
"@tiptap/extension-collaboration-caret": ">=3.7.0 <4.0.0",
|