@assistant-ui/react-devtools 1.2.6 → 1.2.7
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/README.md +26 -8
- package/dist/DevToolsModal.d.ts +18 -2
- package/dist/DevToolsModal.d.ts.map +1 -1
- package/dist/DevToolsModal.js +25 -232
- package/dist/DevToolsModal.js.map +1 -1
- package/dist/DevToolsModalImpl.d.ts +11 -0
- package/dist/DevToolsModalImpl.d.ts.map +1 -0
- package/dist/DevToolsModalImpl.js +62 -0
- package/dist/DevToolsModalImpl.js.map +1 -0
- package/dist/data/createInProcessClient.d.ts +17 -0
- package/dist/data/createInProcessClient.d.ts.map +1 -0
- package/dist/data/createInProcessClient.js +54 -0
- package/dist/data/createInProcessClient.js.map +1 -0
- package/dist/data/projectApi.d.ts +22 -0
- package/dist/data/projectApi.d.ts.map +1 -0
- package/dist/data/projectApi.js +103 -0
- package/dist/data/projectApi.js.map +1 -0
- package/dist/data/types.d.ts +52 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +10 -0
- package/dist/data/types.js.map +1 -0
- package/dist/data/useDevToolsClient.d.ts +19 -0
- package/dist/data/useDevToolsClient.d.ts.map +1 -0
- package/dist/data/useDevToolsClient.js +70 -0
- package/dist/data/useDevToolsClient.js.map +1 -0
- package/dist/index.d.ts +9 -10
- package/dist/index.js +7 -9
- package/dist/shell/DevToolsOverlay.d.ts +23 -0
- package/dist/shell/DevToolsOverlay.d.ts.map +1 -0
- package/dist/shell/DevToolsOverlay.js +106 -0
- package/dist/shell/DevToolsOverlay.js.map +1 -0
- package/dist/shell/DevToolsPanel.d.ts +23 -0
- package/dist/shell/DevToolsPanel.d.ts.map +1 -0
- package/dist/shell/DevToolsPanel.js +256 -0
- package/dist/shell/DevToolsPanel.js.map +1 -0
- package/dist/shell/ShadowRoot.d.ts +24 -0
- package/dist/shell/ShadowRoot.d.ts.map +1 -0
- package/dist/shell/ShadowRoot.js +107 -0
- package/dist/shell/ShadowRoot.js.map +1 -0
- package/dist/shell/SplitLayout.d.ts +28 -0
- package/dist/shell/SplitLayout.d.ts.map +1 -0
- package/dist/shell/SplitLayout.js +67 -0
- package/dist/shell/SplitLayout.js.map +1 -0
- package/dist/shell/registry.d.ts +41 -0
- package/dist/shell/registry.d.ts.map +1 -0
- package/dist/shell/registry.js +36 -0
- package/dist/shell/registry.js.map +1 -0
- package/dist/shell/tabs/ActivityTab.d.ts +13 -0
- package/dist/shell/tabs/ActivityTab.d.ts.map +1 -0
- package/dist/shell/tabs/ActivityTab.js +259 -0
- package/dist/shell/tabs/ActivityTab.js.map +1 -0
- package/dist/shell/tabs/ContextTab.d.ts +11 -0
- package/dist/shell/tabs/ContextTab.d.ts.map +1 -0
- package/dist/shell/tabs/ContextTab.js +210 -0
- package/dist/shell/tabs/ContextTab.js.map +1 -0
- package/dist/shell/tabs/RawTab.d.ts +11 -0
- package/dist/shell/tabs/RawTab.d.ts.map +1 -0
- package/dist/shell/tabs/RawTab.js +238 -0
- package/dist/shell/tabs/RawTab.js.map +1 -0
- package/dist/shell/tabs/ThreadTab.d.ts +12 -0
- package/dist/shell/tabs/ThreadTab.d.ts.map +1 -0
- package/dist/shell/tabs/ThreadTab.js +426 -0
- package/dist/shell/tabs/ThreadTab.js.map +1 -0
- package/dist/shell/tabs/navSelection.d.ts +10 -0
- package/dist/shell/tabs/navSelection.d.ts.map +1 -0
- package/dist/shell/tabs/navSelection.js +37 -0
- package/dist/shell/tabs/navSelection.js.map +1 -0
- package/dist/styles/panel.generated.d.ts +5 -0
- package/dist/styles/panel.generated.d.ts.map +1 -0
- package/dist/styles/panel.generated.js +6 -0
- package/dist/styles/panel.generated.js.map +1 -0
- package/dist/types.d.ts +1 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/common.d.ts +24 -0
- package/dist/utils/common.d.ts.map +1 -0
- package/dist/utils/common.js +64 -0
- package/dist/utils/common.js.map +1 -0
- package/dist/utils/diff.d.ts +16 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +41 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/serialization.d.ts.map +1 -1
- package/dist/utils/serialization.js +4 -1
- package/dist/utils/serialization.js.map +1 -1
- package/dist/views/activity/EventLogRow.d.ts +28 -0
- package/dist/views/activity/EventLogRow.d.ts.map +1 -0
- package/dist/views/activity/EventLogRow.js +185 -0
- package/dist/views/activity/EventLogRow.js.map +1 -0
- package/dist/views/activity/EventStreamPane.d.ts +11 -0
- package/dist/views/activity/EventStreamPane.d.ts.map +1 -0
- package/dist/views/activity/EventStreamPane.js +98 -0
- package/dist/views/activity/EventStreamPane.js.map +1 -0
- package/dist/views/activity/OrphansPane.d.ts +11 -0
- package/dist/views/activity/OrphansPane.d.ts.map +1 -0
- package/dist/views/activity/OrphansPane.js +39 -0
- package/dist/views/activity/OrphansPane.js.map +1 -0
- package/dist/views/activity/RunDetailPane.d.ts +11 -0
- package/dist/views/activity/RunDetailPane.d.ts.map +1 -0
- package/dist/views/activity/RunDetailPane.js +344 -0
- package/dist/views/activity/RunDetailPane.js.map +1 -0
- package/dist/views/activity/activityNodes.d.ts +39 -0
- package/dist/views/activity/activityNodes.d.ts.map +1 -0
- package/dist/views/activity/activityNodes.js +199 -0
- package/dist/views/activity/activityNodes.js.map +1 -0
- package/dist/views/activity/index.d.ts +6 -0
- package/dist/views/activity/index.js +6 -0
- package/dist/views/attachments/AttachmentList.d.ts +15 -0
- package/dist/views/attachments/AttachmentList.d.ts.map +1 -0
- package/dist/views/attachments/AttachmentList.js +279 -0
- package/dist/views/attachments/AttachmentList.js.map +1 -0
- package/dist/views/attachments/MediaPartView.d.ts +27 -0
- package/dist/views/attachments/MediaPartView.d.ts.map +1 -0
- package/dist/views/attachments/MediaPartView.js +180 -0
- package/dist/views/attachments/MediaPartView.js.map +1 -0
- package/dist/views/attachments/formatBytes.d.ts +8 -0
- package/dist/views/attachments/formatBytes.d.ts.map +1 -0
- package/dist/views/attachments/formatBytes.js +14 -0
- package/dist/views/attachments/formatBytes.js.map +1 -0
- package/dist/views/attachments/index.d.ts +5 -0
- package/dist/views/attachments/index.js +4 -0
- package/dist/views/attachments/parseAttachment.d.ts +8 -0
- package/dist/views/attachments/parseAttachment.d.ts.map +1 -0
- package/dist/views/attachments/parseAttachment.js +58 -0
- package/dist/views/attachments/parseAttachment.js.map +1 -0
- package/dist/views/attachments/types.d.ts +18 -0
- package/dist/views/attachments/types.d.ts.map +1 -0
- package/dist/views/attachments/types.js +0 -0
- package/dist/views/context/ContextDetail.d.ts +14 -0
- package/dist/views/context/ContextDetail.d.ts.map +1 -0
- package/dist/views/context/ContextDetail.js +87 -0
- package/dist/views/context/ContextDetail.js.map +1 -0
- package/dist/views/context/ToolUIsView.d.ts +9 -0
- package/dist/views/context/ToolUIsView.d.ts.map +1 -0
- package/dist/views/context/ToolUIsView.js +80 -0
- package/dist/views/context/ToolUIsView.js.map +1 -0
- package/dist/views/context/contextNodes.d.ts +32 -0
- package/dist/views/context/contextNodes.d.ts.map +1 -0
- package/dist/views/context/contextNodes.js +49 -0
- package/dist/views/context/contextNodes.js.map +1 -0
- package/dist/views/context/index.d.ts +4 -0
- package/dist/views/context/index.js +4 -0
- package/dist/views/mcp/McpView.d.ts +11 -0
- package/dist/views/mcp/McpView.d.ts.map +1 -0
- package/dist/views/mcp/McpView.js +239 -0
- package/dist/views/mcp/McpView.js.map +1 -0
- package/dist/views/mcp/index.d.ts +2 -0
- package/dist/views/mcp/index.js +2 -0
- package/dist/views/mcp/parse.d.ts +7 -0
- package/dist/views/mcp/parse.d.ts.map +1 -0
- package/dist/views/mcp/parse.js +43 -0
- package/dist/views/mcp/parse.js.map +1 -0
- package/dist/views/mcp/types.d.ts +22 -0
- package/dist/views/mcp/types.d.ts.map +1 -0
- package/dist/views/mcp/types.js +0 -0
- package/dist/views/message/ChainOfThought.d.ts +11 -0
- package/dist/views/message/ChainOfThought.d.ts.map +1 -0
- package/dist/views/message/ChainOfThought.js +132 -0
- package/dist/views/message/ChainOfThought.js.map +1 -0
- package/dist/views/message/MessageDetailPane.d.ts +12 -0
- package/dist/views/message/MessageDetailPane.d.ts.map +1 -0
- package/dist/views/message/MessageDetailPane.js +38 -0
- package/dist/views/message/MessageDetailPane.js.map +1 -0
- package/dist/views/message/MessageItem.d.ts +13 -0
- package/dist/views/message/MessageItem.d.ts.map +1 -0
- package/dist/views/message/MessageItem.js +136 -0
- package/dist/views/message/MessageItem.js.map +1 -0
- package/dist/views/message/MessageList.d.ts +13 -0
- package/dist/views/message/MessageList.d.ts.map +1 -0
- package/dist/views/message/MessageList.js +95 -0
- package/dist/views/message/MessageList.js.map +1 -0
- package/dist/views/message/MessageMetrics.d.ts +11 -0
- package/dist/views/message/MessageMetrics.d.ts.map +1 -0
- package/dist/views/message/MessageMetrics.js +93 -0
- package/dist/views/message/MessageMetrics.js.map +1 -0
- package/dist/views/message/MessageTimeline.d.ts +16 -0
- package/dist/views/message/MessageTimeline.d.ts.map +1 -0
- package/dist/views/message/MessageTimeline.js +100 -0
- package/dist/views/message/MessageTimeline.js.map +1 -0
- package/dist/views/message/PartDisclosure.d.ts +18 -0
- package/dist/views/message/PartDisclosure.d.ts.map +1 -0
- package/dist/views/message/PartDisclosure.js +79 -0
- package/dist/views/message/PartDisclosure.js.map +1 -0
- package/dist/views/message/PartView.d.ts +13 -0
- package/dist/views/message/PartView.d.ts.map +1 -0
- package/dist/views/message/PartView.js +416 -0
- package/dist/views/message/PartView.js.map +1 -0
- package/dist/views/message/RoleLabel.d.ts +11 -0
- package/dist/views/message/RoleLabel.d.ts.map +1 -0
- package/dist/views/message/RoleLabel.js +30 -0
- package/dist/views/message/RoleLabel.js.map +1 -0
- package/dist/views/message/StatusBadge.d.ts +17 -0
- package/dist/views/message/StatusBadge.d.ts.map +1 -0
- package/dist/views/message/StatusBadge.js +58 -0
- package/dist/views/message/StatusBadge.js.map +1 -0
- package/dist/views/message/ToolCallView.d.ts +13 -0
- package/dist/views/message/ToolCallView.d.ts.map +1 -0
- package/dist/views/message/ToolCallView.js +289 -0
- package/dist/views/message/ToolCallView.js.map +1 -0
- package/dist/views/message/TtftBar.d.ts +16 -0
- package/dist/views/message/TtftBar.d.ts.map +1 -0
- package/dist/views/message/TtftBar.js +128 -0
- package/dist/views/message/TtftBar.js.map +1 -0
- package/dist/views/message/index.d.ts +6 -0
- package/dist/views/message/index.js +5 -0
- package/dist/views/message/messagePlainText.d.ts +8 -0
- package/dist/views/message/messagePlainText.d.ts.map +1 -0
- package/dist/views/message/messagePlainText.js +39 -0
- package/dist/views/message/messagePlainText.js.map +1 -0
- package/dist/views/message/parse.d.ts +10 -0
- package/dist/views/message/parse.d.ts.map +1 -0
- package/dist/views/message/parse.js +235 -0
- package/dist/views/message/parse.js.map +1 -0
- package/dist/views/message/types.d.ts +114 -0
- package/dist/views/message/types.d.ts.map +1 -0
- package/dist/views/message/types.js +0 -0
- package/dist/views/model-context/ModelContextView.d.ts +26 -0
- package/dist/views/model-context/ModelContextView.d.ts.map +1 -0
- package/dist/views/model-context/ModelContextView.js +214 -0
- package/dist/views/model-context/ModelContextView.js.map +1 -0
- package/dist/views/nav.d.ts +19 -0
- package/dist/views/nav.d.ts.map +1 -0
- package/dist/views/nav.js +8 -0
- package/dist/views/nav.js.map +1 -0
- package/dist/views/raw/RawDetail.d.ts +15 -0
- package/dist/views/raw/RawDetail.d.ts.map +1 -0
- package/dist/views/raw/RawDetail.js +79 -0
- package/dist/views/raw/RawDetail.js.map +1 -0
- package/dist/views/raw/index.d.ts +3 -0
- package/dist/views/raw/index.js +3 -0
- package/dist/views/raw/rawNodes.d.ts +20 -0
- package/dist/views/raw/rawNodes.d.ts.map +1 -0
- package/dist/views/raw/rawNodes.js +78 -0
- package/dist/views/raw/rawNodes.js.map +1 -0
- package/dist/views/raw/statePreview.d.ts +5 -0
- package/dist/views/raw/statePreview.d.ts.map +1 -0
- package/dist/views/raw/statePreview.js +213 -0
- package/dist/views/raw/statePreview.js.map +1 -0
- package/dist/views/runs/PayloadDiff.d.ts +11 -0
- package/dist/views/runs/PayloadDiff.d.ts.map +1 -0
- package/dist/views/runs/PayloadDiff.js +92 -0
- package/dist/views/runs/PayloadDiff.js.map +1 -0
- package/dist/views/runs/parse.d.ts +8 -0
- package/dist/views/runs/parse.d.ts.map +1 -0
- package/dist/views/runs/parse.js +78 -0
- package/dist/views/runs/parse.js.map +1 -0
- package/dist/views/runs/types.d.ts +25 -0
- package/dist/views/runs/types.d.ts.map +1 -0
- package/dist/views/runs/types.js +0 -0
- package/dist/views/scopes/ScopesView.d.ts +9 -0
- package/dist/views/scopes/ScopesView.d.ts.map +1 -0
- package/dist/views/scopes/ScopesView.js +235 -0
- package/dist/views/scopes/ScopesView.js.map +1 -0
- package/dist/views/scopes/index.d.ts +2 -0
- package/dist/views/scopes/index.js +2 -0
- package/dist/views/scopes/parse.d.ts +7 -0
- package/dist/views/scopes/parse.d.ts.map +1 -0
- package/dist/views/scopes/parse.js +23 -0
- package/dist/views/scopes/parse.js.map +1 -0
- package/dist/views/scopes/types.d.ts +10 -0
- package/dist/views/scopes/types.d.ts.map +1 -0
- package/dist/views/scopes/types.js +0 -0
- package/dist/views/thread/ComposerAttachments.d.ts +11 -0
- package/dist/views/thread/ComposerAttachments.d.ts.map +1 -0
- package/dist/views/thread/ComposerAttachments.js +22 -0
- package/dist/views/thread/ComposerAttachments.js.map +1 -0
- package/dist/views/thread/ComposerFlags.d.ts +11 -0
- package/dist/views/thread/ComposerFlags.d.ts.map +1 -0
- package/dist/views/thread/ComposerFlags.js +54 -0
- package/dist/views/thread/ComposerFlags.js.map +1 -0
- package/dist/views/thread/ComposerQueue.d.ts +11 -0
- package/dist/views/thread/ComposerQueue.d.ts.map +1 -0
- package/dist/views/thread/ComposerQueue.js +55 -0
- package/dist/views/thread/ComposerQueue.js.map +1 -0
- package/dist/views/thread/ConversationList.d.ts +18 -0
- package/dist/views/thread/ConversationList.d.ts.map +1 -0
- package/dist/views/thread/ConversationList.js +228 -0
- package/dist/views/thread/ConversationList.js.map +1 -0
- package/dist/views/thread/ConversationStatusDot.d.ts +29 -0
- package/dist/views/thread/ConversationStatusDot.d.ts.map +1 -0
- package/dist/views/thread/ConversationStatusDot.js +91 -0
- package/dist/views/thread/ConversationStatusDot.js.map +1 -0
- package/dist/views/thread/ThreadDetails.d.ts +13 -0
- package/dist/views/thread/ThreadDetails.d.ts.map +1 -0
- package/dist/views/thread/ThreadDetails.js +170 -0
- package/dist/views/thread/ThreadDetails.js.map +1 -0
- package/dist/views/thread/Transcript.d.ts +21 -0
- package/dist/views/thread/Transcript.d.ts.map +1 -0
- package/dist/views/thread/Transcript.js +520 -0
- package/dist/views/thread/Transcript.js.map +1 -0
- package/dist/views/thread/index.d.ts +10 -0
- package/dist/views/thread/index.js +9 -0
- package/dist/views/thread/resolve.d.ts +13 -0
- package/dist/views/thread/resolve.d.ts.map +1 -0
- package/dist/views/thread/resolve.js +29 -0
- package/dist/views/thread/resolve.js.map +1 -0
- package/dist/views/thread/types.d.ts +50 -0
- package/dist/views/thread/types.d.ts.map +1 -0
- package/dist/views/thread/types.js +0 -0
- package/dist/views/thread/utils.d.ts +10 -0
- package/dist/views/thread/utils.d.ts.map +1 -0
- package/dist/views/thread/utils.js +77 -0
- package/dist/views/thread/utils.js.map +1 -0
- package/dist/views/ui/CenteredMessage.d.ts +11 -0
- package/dist/views/ui/CenteredMessage.d.ts.map +1 -0
- package/dist/views/ui/CenteredMessage.js +21 -0
- package/dist/views/ui/CenteredMessage.js.map +1 -0
- package/dist/views/ui/Chip.d.ts +13 -0
- package/dist/views/ui/Chip.d.ts.map +1 -0
- package/dist/views/ui/Chip.js +30 -0
- package/dist/views/ui/Chip.js.map +1 -0
- package/dist/views/ui/ControlButton.d.ts +10 -0
- package/dist/views/ui/ControlButton.d.ts.map +1 -0
- package/dist/views/ui/ControlButton.js +39 -0
- package/dist/views/ui/ControlButton.js.map +1 -0
- package/dist/views/ui/CopyButton.d.ts +19 -0
- package/dist/views/ui/CopyButton.d.ts.map +1 -0
- package/dist/views/ui/CopyButton.js +125 -0
- package/dist/views/ui/CopyButton.js.map +1 -0
- package/dist/views/ui/EmptyState.d.ts +11 -0
- package/dist/views/ui/EmptyState.d.ts.map +1 -0
- package/dist/views/ui/EmptyState.js +21 -0
- package/dist/views/ui/EmptyState.js.map +1 -0
- package/dist/views/ui/InfoCard.d.ts +22 -0
- package/dist/views/ui/InfoCard.d.ts.map +1 -0
- package/dist/views/ui/InfoCard.js +44 -0
- package/dist/views/ui/InfoCard.js.map +1 -0
- package/dist/views/ui/JSONTree.d.ts +16 -0
- package/dist/views/ui/JSONTree.d.ts.map +1 -0
- package/dist/views/ui/JSONTree.js +394 -0
- package/dist/views/ui/JSONTree.js.map +1 -0
- package/dist/views/ui/PaneHeader.d.ts +27 -0
- package/dist/views/ui/PaneHeader.d.ts.map +1 -0
- package/dist/views/ui/PaneHeader.js +71 -0
- package/dist/views/ui/PaneHeader.js.map +1 -0
- package/dist/views/ui/RailTime.d.ts +12 -0
- package/dist/views/ui/RailTime.d.ts.map +1 -0
- package/dist/views/ui/RailTime.js +49 -0
- package/dist/views/ui/RailTime.js.map +1 -0
- package/dist/views/ui/SectionLabel.d.ts +11 -0
- package/dist/views/ui/SectionLabel.d.ts.map +1 -0
- package/dist/views/ui/SectionLabel.js +21 -0
- package/dist/views/ui/SectionLabel.js.map +1 -0
- package/dist/views/ui/SelectableRow.d.ts +18 -0
- package/dist/views/ui/SelectableRow.d.ts.map +1 -0
- package/dist/views/ui/SelectableRow.js +49 -0
- package/dist/views/ui/SelectableRow.js.map +1 -0
- package/dist/views/ui/Sparkline.d.ts +17 -0
- package/dist/views/ui/Sparkline.d.ts.map +1 -0
- package/dist/views/ui/Sparkline.js +96 -0
- package/dist/views/ui/Sparkline.js.map +1 -0
- package/dist/views/ui/SummaryItem.d.ts +23 -0
- package/dist/views/ui/SummaryItem.d.ts.map +1 -0
- package/dist/views/ui/SummaryItem.js +59 -0
- package/dist/views/ui/SummaryItem.js.map +1 -0
- package/dist/views/ui/ToneBadge.d.ts +18 -0
- package/dist/views/ui/ToneBadge.d.ts.map +1 -0
- package/dist/views/ui/ToneBadge.js +34 -0
- package/dist/views/ui/ToneBadge.js.map +1 -0
- package/dist/views/ui/badgeTone.d.ts +21 -0
- package/dist/views/ui/badgeTone.d.ts.map +1 -0
- package/dist/views/ui/badgeTone.js +33 -0
- package/dist/views/ui/badgeTone.js.map +1 -0
- package/dist/views/ui/index.d.ts +16 -0
- package/dist/views/ui/index.js +16 -0
- package/dist/views/ui/useCopyToClipboard.d.ts +12 -0
- package/dist/views/ui/useCopyToClipboard.d.ts.map +1 -0
- package/dist/views/ui/useCopyToClipboard.js +44 -0
- package/dist/views/ui/useCopyToClipboard.js.map +1 -0
- package/package.json +9 -5
- package/src/DevToolsModal.tsx +26 -179
- package/src/DevToolsModalImpl.tsx +60 -0
- package/src/data/createInProcessClient.ts +66 -0
- package/src/data/projectApi.test.ts +100 -0
- package/src/data/projectApi.ts +169 -0
- package/src/data/types.ts +54 -0
- package/src/data/useDevToolsClient.ts +59 -0
- package/src/index.ts +16 -13
- package/src/shell/DevToolsOverlay.tsx +84 -0
- package/src/shell/DevToolsPanel.tsx +192 -0
- package/src/shell/ShadowRoot.tsx +85 -0
- package/src/shell/SplitLayout.tsx +46 -0
- package/src/shell/registry.ts +51 -0
- package/src/shell/tabs/ActivityTab.test.tsx +34 -0
- package/src/shell/tabs/ActivityTab.tsx +161 -0
- package/src/shell/tabs/ContextTab.test.tsx +37 -0
- package/src/shell/tabs/ContextTab.tsx +157 -0
- package/src/shell/tabs/RawTab.test.tsx +43 -0
- package/src/shell/tabs/RawTab.tsx +123 -0
- package/src/shell/tabs/ThreadTab.tsx +220 -0
- package/src/shell/tabs/navSelection.ts +17 -0
- package/src/styles/panel.css +153 -0
- package/src/styles/panel.generated.ts +2 -0
- package/src/types.ts +0 -5
- package/src/utils/common.test.ts +30 -0
- package/src/utils/common.ts +101 -0
- package/src/utils/diff.test.ts +37 -0
- package/src/utils/diff.ts +41 -0
- package/src/utils/serialization.test.ts +31 -0
- package/src/utils/serialization.ts +4 -1
- package/src/views/activity/EventLogRow.tsx +108 -0
- package/src/views/activity/EventStreamPane.tsx +86 -0
- package/src/views/activity/OrphansPane.tsx +23 -0
- package/src/views/activity/RunDetailPane.tsx +128 -0
- package/src/views/activity/activityNodes.test.ts +24 -0
- package/src/views/activity/activityNodes.ts +179 -0
- package/src/views/activity/index.ts +10 -0
- package/src/views/attachments/AttachmentList.tsx +122 -0
- package/src/views/attachments/MediaPartView.tsx +77 -0
- package/src/views/attachments/formatBytes.ts +15 -0
- package/src/views/attachments/index.ts +4 -0
- package/src/views/attachments/parseAttachment.test.ts +37 -0
- package/src/views/attachments/parseAttachment.ts +85 -0
- package/src/views/attachments/types.ts +15 -0
- package/src/views/context/ContextDetail.tsx +37 -0
- package/src/views/context/ToolUIsView.tsx +44 -0
- package/src/views/context/contextNodes.test.ts +31 -0
- package/src/views/context/contextNodes.ts +66 -0
- package/src/views/context/index.ts +4 -0
- package/src/views/mcp/McpView.tsx +125 -0
- package/src/views/mcp/index.ts +1 -0
- package/src/views/mcp/parse.test.ts +63 -0
- package/src/views/mcp/parse.ts +65 -0
- package/src/views/mcp/render.test.tsx +34 -0
- package/src/views/mcp/types.ts +20 -0
- package/src/views/message/ChainOfThought.tsx +74 -0
- package/src/views/message/MessageDetailPane.tsx +26 -0
- package/src/views/message/MessageItem.tsx +94 -0
- package/src/views/message/MessageList.tsx +48 -0
- package/src/views/message/MessageMetrics.tsx +68 -0
- package/src/views/message/MessageTimeline.test.tsx +78 -0
- package/src/views/message/MessageTimeline.tsx +51 -0
- package/src/views/message/PartDisclosure.tsx +32 -0
- package/src/views/message/PartView.tsx +197 -0
- package/src/views/message/RoleLabel.tsx +22 -0
- package/src/views/message/StatusBadge.tsx +28 -0
- package/src/views/message/ToolCallView.tsx +151 -0
- package/src/views/message/TtftBar.tsx +44 -0
- package/src/views/message/index.ts +5 -0
- package/src/views/message/messagePlainText.test.ts +48 -0
- package/src/views/message/messagePlainText.ts +65 -0
- package/src/views/message/parse.test.ts +269 -0
- package/src/views/message/parse.ts +282 -0
- package/src/views/message/render.test.tsx +128 -0
- package/src/views/message/types.ts +137 -0
- package/src/views/model-context/ModelContextView.tsx +71 -0
- package/src/views/model-context/render.test.tsx +24 -0
- package/src/views/nav.ts +18 -0
- package/src/views/raw/RawDetail.tsx +39 -0
- package/src/views/raw/index.ts +3 -0
- package/src/views/raw/rawNodes.test.ts +38 -0
- package/src/views/raw/rawNodes.ts +107 -0
- package/src/views/raw/statePreview.tsx +188 -0
- package/src/views/runs/PayloadDiff.tsx +49 -0
- package/src/views/runs/parse.test.ts +152 -0
- package/src/views/runs/parse.ts +110 -0
- package/src/views/runs/types.ts +23 -0
- package/src/views/scopes/ScopesView.tsx +105 -0
- package/src/views/scopes/index.ts +1 -0
- package/src/views/scopes/parse.test.ts +35 -0
- package/src/views/scopes/parse.ts +30 -0
- package/src/views/scopes/render.test.tsx +35 -0
- package/src/views/scopes/types.ts +6 -0
- package/src/views/thread/ComposerAttachments.test.tsx +36 -0
- package/src/views/thread/ComposerAttachments.tsx +8 -0
- package/src/views/thread/ComposerFlags.test.tsx +23 -0
- package/src/views/thread/ComposerFlags.tsx +19 -0
- package/src/views/thread/ComposerQueue.test.tsx +20 -0
- package/src/views/thread/ComposerQueue.tsx +26 -0
- package/src/views/thread/ConversationList.tsx +127 -0
- package/src/views/thread/ConversationStatusDot.test.ts +86 -0
- package/src/views/thread/ConversationStatusDot.tsx +126 -0
- package/src/views/thread/ThreadDetails.tsx +85 -0
- package/src/views/thread/Transcript.test.tsx +56 -0
- package/src/views/thread/Transcript.tsx +332 -0
- package/src/views/thread/index.ts +19 -0
- package/src/views/thread/render.test.tsx +41 -0
- package/src/views/thread/resolve.ts +36 -0
- package/src/views/thread/types.ts +53 -0
- package/src/views/thread/utils.test.ts +72 -0
- package/src/views/thread/utils.ts +149 -0
- package/src/views/ui/CenteredMessage.tsx +7 -0
- package/src/views/ui/Chip.tsx +17 -0
- package/src/views/ui/ControlButton.tsx +15 -0
- package/src/views/ui/CopyButton.tsx +73 -0
- package/src/views/ui/EmptyState.tsx +7 -0
- package/src/views/ui/InfoCard.tsx +35 -0
- package/src/views/ui/JSONTree.test.tsx +29 -0
- package/src/views/ui/JSONTree.tsx +240 -0
- package/src/views/ui/PaneHeader.tsx +46 -0
- package/src/views/ui/RailTime.tsx +27 -0
- package/src/views/ui/SectionLabel.tsx +7 -0
- package/src/views/ui/SelectableRow.tsx +41 -0
- package/src/views/ui/Sparkline.tsx +49 -0
- package/src/views/ui/SummaryItem.tsx +25 -0
- package/src/views/ui/ToneBadge.tsx +26 -0
- package/src/views/ui/badgeTone.ts +40 -0
- package/src/views/ui/index.ts +20 -0
- package/src/views/ui/useCopyToClipboard.ts +27 -0
- package/dist/DevToolsFrame.d.ts +0 -11
- package/dist/DevToolsFrame.d.ts.map +0 -1
- package/dist/DevToolsFrame.js +0 -66
- package/dist/DevToolsFrame.js.map +0 -1
- package/dist/DevToolsHost.d.ts +0 -38
- package/dist/DevToolsHost.d.ts.map +0 -1
- package/dist/DevToolsHost.js +0 -93
- package/dist/DevToolsHost.js.map +0 -1
- package/dist/ExtensionHost.d.ts +0 -10
- package/dist/ExtensionHost.d.ts.map +0 -1
- package/dist/ExtensionHost.js +0 -42
- package/dist/ExtensionHost.js.map +0 -1
- package/dist/FrameClient.d.ts +0 -38
- package/dist/FrameClient.d.ts.map +0 -1
- package/dist/FrameClient.js +0 -53
- package/dist/FrameClient.js.map +0 -1
- package/dist/FrameHost.d.ts +0 -11
- package/dist/FrameHost.d.ts.map +0 -1
- package/dist/FrameHost.js +0 -26
- package/dist/FrameHost.js.map +0 -1
- package/dist/constants.d.ts +0 -6
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -7
- package/dist/constants.js.map +0 -1
- package/dist/styles/DevToolsModal.styles.d.ts +0 -18
- package/dist/styles/DevToolsModal.styles.d.ts.map +0 -1
- package/dist/styles/DevToolsModal.styles.js +0 -120
- package/dist/styles/DevToolsModal.styles.js.map +0 -1
- package/src/DevToolsFrame.tsx +0 -55
- package/src/DevToolsHost.ts +0 -178
- package/src/ExtensionHost.ts +0 -57
- package/src/FrameClient.ts +0 -99
- package/src/FrameHost.ts +0 -31
- package/src/constants.ts +0 -2
- package/src/styles/DevToolsModal.styles.ts +0 -137
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
import { CopyButton } from "./CopyButton.js";
|
|
2
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
|
+
import { useState } from "@assistant-ui/tap/react-shim";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import clsx from "clsx";
|
|
6
|
+
//#region src/views/ui/JSONTree.tsx
|
|
7
|
+
const ENTRY_LIMIT = 100;
|
|
8
|
+
const INLINE_MAX = 88;
|
|
9
|
+
const isContainer = (value) => value !== null && typeof value === "object";
|
|
10
|
+
const entriesOf = (value) => {
|
|
11
|
+
if (Array.isArray(value)) return value.map((item, index) => ({
|
|
12
|
+
key: String(index),
|
|
13
|
+
value: item
|
|
14
|
+
}));
|
|
15
|
+
return Object.entries(value).map(([key, value]) => ({
|
|
16
|
+
key,
|
|
17
|
+
value
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
const summaryOf = (value) => {
|
|
21
|
+
if (Array.isArray(value)) return `[${value.length}]`;
|
|
22
|
+
return `{${Object.keys(value).length}}`;
|
|
23
|
+
};
|
|
24
|
+
const serialize = (value, compact) => JSON.stringify(value, null, compact ? 0 : 2);
|
|
25
|
+
const isInline = (value, compact) => {
|
|
26
|
+
if (!compact) return false;
|
|
27
|
+
if (!isContainer(value)) return true;
|
|
28
|
+
return serialize(value, true).length <= INLINE_MAX;
|
|
29
|
+
};
|
|
30
|
+
const Leaf = (t0) => {
|
|
31
|
+
const $ = c(6);
|
|
32
|
+
const { value } = t0;
|
|
33
|
+
if (typeof value === "string") {
|
|
34
|
+
let t1;
|
|
35
|
+
if ($[0] !== value) {
|
|
36
|
+
t1 = /* @__PURE__ */ jsxs("span", {
|
|
37
|
+
className: "text-foreground break-all",
|
|
38
|
+
children: [
|
|
39
|
+
"\"",
|
|
40
|
+
value,
|
|
41
|
+
"\""
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
$[0] = value;
|
|
45
|
+
$[1] = t1;
|
|
46
|
+
} else t1 = $[1];
|
|
47
|
+
return t1;
|
|
48
|
+
}
|
|
49
|
+
if (value === null || value === void 0) {
|
|
50
|
+
const t1 = String(value);
|
|
51
|
+
let t2;
|
|
52
|
+
if ($[2] !== t1) {
|
|
53
|
+
t2 = /* @__PURE__ */ jsx("span", {
|
|
54
|
+
className: "text-muted-foreground italic",
|
|
55
|
+
children: t1
|
|
56
|
+
});
|
|
57
|
+
$[2] = t1;
|
|
58
|
+
$[3] = t2;
|
|
59
|
+
} else t2 = $[3];
|
|
60
|
+
return t2;
|
|
61
|
+
}
|
|
62
|
+
const t1 = String(value);
|
|
63
|
+
let t2;
|
|
64
|
+
if ($[4] !== t1) {
|
|
65
|
+
t2 = /* @__PURE__ */ jsx("span", {
|
|
66
|
+
className: "text-muted-foreground break-all",
|
|
67
|
+
children: t1
|
|
68
|
+
});
|
|
69
|
+
$[4] = t1;
|
|
70
|
+
$[5] = t2;
|
|
71
|
+
} else t2 = $[5];
|
|
72
|
+
return t2;
|
|
73
|
+
};
|
|
74
|
+
const TreeNode = (t0) => {
|
|
75
|
+
const $ = c(36);
|
|
76
|
+
const { name, value, depth, openDepth, compact } = t0;
|
|
77
|
+
const [open, setOpen] = useState(depth < openDepth);
|
|
78
|
+
const [showAll, setShowAll] = useState(false);
|
|
79
|
+
if (!isContainer(value)) {
|
|
80
|
+
const t1 = compact ? "gap-1 py-px" : "gap-1.5";
|
|
81
|
+
let t2;
|
|
82
|
+
if ($[0] !== t1) {
|
|
83
|
+
t2 = clsx("flex min-w-0", t1);
|
|
84
|
+
$[0] = t1;
|
|
85
|
+
$[1] = t2;
|
|
86
|
+
} else t2 = $[1];
|
|
87
|
+
let t3;
|
|
88
|
+
if ($[2] !== name) {
|
|
89
|
+
t3 = name !== void 0 ? /* @__PURE__ */ jsxs("span", {
|
|
90
|
+
className: "text-muted-foreground shrink-0",
|
|
91
|
+
children: [name, ":"]
|
|
92
|
+
}) : null;
|
|
93
|
+
$[2] = name;
|
|
94
|
+
$[3] = t3;
|
|
95
|
+
} else t3 = $[3];
|
|
96
|
+
let t4;
|
|
97
|
+
if ($[4] !== value) {
|
|
98
|
+
t4 = /* @__PURE__ */ jsx(Leaf, { value });
|
|
99
|
+
$[4] = value;
|
|
100
|
+
$[5] = t4;
|
|
101
|
+
} else t4 = $[5];
|
|
102
|
+
let t5;
|
|
103
|
+
if ($[6] !== t2 || $[7] !== t3 || $[8] !== t4) {
|
|
104
|
+
t5 = /* @__PURE__ */ jsxs("div", {
|
|
105
|
+
className: t2,
|
|
106
|
+
children: [t3, t4]
|
|
107
|
+
});
|
|
108
|
+
$[6] = t2;
|
|
109
|
+
$[7] = t3;
|
|
110
|
+
$[8] = t4;
|
|
111
|
+
$[9] = t5;
|
|
112
|
+
} else t5 = $[9];
|
|
113
|
+
return t5;
|
|
114
|
+
}
|
|
115
|
+
let t1;
|
|
116
|
+
if ($[10] !== compact || $[11] !== depth || $[12] !== name || $[13] !== open || $[14] !== openDepth || $[15] !== showAll || $[16] !== value) {
|
|
117
|
+
const entries = entriesOf(value);
|
|
118
|
+
const shown = showAll ? entries : entries.slice(0, ENTRY_LIMIT);
|
|
119
|
+
const hidden = entries.length - shown.length;
|
|
120
|
+
let t2;
|
|
121
|
+
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
122
|
+
t2 = () => setOpen(_temp);
|
|
123
|
+
$[18] = t2;
|
|
124
|
+
} else t2 = $[18];
|
|
125
|
+
const t3 = compact ? "gap-0.5 py-px" : "gap-1";
|
|
126
|
+
let t4;
|
|
127
|
+
if ($[19] !== t3) {
|
|
128
|
+
t4 = clsx("text-muted-foreground hover:text-foreground flex items-center", t3);
|
|
129
|
+
$[19] = t3;
|
|
130
|
+
$[20] = t4;
|
|
131
|
+
} else t4 = $[20];
|
|
132
|
+
const t5 = open && "rotate-90";
|
|
133
|
+
let t6;
|
|
134
|
+
if ($[21] !== t5) {
|
|
135
|
+
t6 = clsx("inline-block transition-transform", t5);
|
|
136
|
+
$[21] = t5;
|
|
137
|
+
$[22] = t6;
|
|
138
|
+
} else t6 = $[22];
|
|
139
|
+
let t7;
|
|
140
|
+
if ($[23] !== t6) {
|
|
141
|
+
t7 = /* @__PURE__ */ jsx("span", {
|
|
142
|
+
className: t6,
|
|
143
|
+
children: "›"
|
|
144
|
+
});
|
|
145
|
+
$[23] = t6;
|
|
146
|
+
$[24] = t7;
|
|
147
|
+
} else t7 = $[24];
|
|
148
|
+
let t8;
|
|
149
|
+
if ($[25] !== name) {
|
|
150
|
+
t8 = name !== void 0 ? /* @__PURE__ */ jsx("span", { children: name }) : null;
|
|
151
|
+
$[25] = name;
|
|
152
|
+
$[26] = t8;
|
|
153
|
+
} else t8 = $[26];
|
|
154
|
+
let t9;
|
|
155
|
+
if ($[27] !== value) {
|
|
156
|
+
t9 = summaryOf(value);
|
|
157
|
+
$[27] = value;
|
|
158
|
+
$[28] = t9;
|
|
159
|
+
} else t9 = $[28];
|
|
160
|
+
let t10;
|
|
161
|
+
if ($[29] !== t9) {
|
|
162
|
+
t10 = /* @__PURE__ */ jsx("span", {
|
|
163
|
+
className: "opacity-60",
|
|
164
|
+
children: t9
|
|
165
|
+
});
|
|
166
|
+
$[29] = t9;
|
|
167
|
+
$[30] = t10;
|
|
168
|
+
} else t10 = $[30];
|
|
169
|
+
let t11;
|
|
170
|
+
if ($[31] !== t10 || $[32] !== t4 || $[33] !== t7 || $[34] !== t8) {
|
|
171
|
+
t11 = /* @__PURE__ */ jsxs("button", {
|
|
172
|
+
type: "button",
|
|
173
|
+
onClick: t2,
|
|
174
|
+
className: t4,
|
|
175
|
+
children: [
|
|
176
|
+
t7,
|
|
177
|
+
t8,
|
|
178
|
+
t10
|
|
179
|
+
]
|
|
180
|
+
});
|
|
181
|
+
$[31] = t10;
|
|
182
|
+
$[32] = t4;
|
|
183
|
+
$[33] = t7;
|
|
184
|
+
$[34] = t8;
|
|
185
|
+
$[35] = t11;
|
|
186
|
+
} else t11 = $[35];
|
|
187
|
+
t1 = /* @__PURE__ */ jsxs("div", {
|
|
188
|
+
className: "min-w-0",
|
|
189
|
+
children: [t11, open ? /* @__PURE__ */ jsxs("div", {
|
|
190
|
+
className: clsx("border-border/60 border-s", compact ? "ms-1 ps-2" : "ms-[5px] ps-3"),
|
|
191
|
+
children: [shown.map((entry) => /* @__PURE__ */ jsx(TreeNode, {
|
|
192
|
+
name: entry.key,
|
|
193
|
+
value: entry.value,
|
|
194
|
+
depth: depth + 1,
|
|
195
|
+
openDepth,
|
|
196
|
+
compact
|
|
197
|
+
}, entry.key)), hidden > 0 ? /* @__PURE__ */ jsxs("button", {
|
|
198
|
+
type: "button",
|
|
199
|
+
onClick: () => setShowAll(true),
|
|
200
|
+
className: "text-muted-foreground hover:text-foreground text-[10px]",
|
|
201
|
+
children: [
|
|
202
|
+
"+",
|
|
203
|
+
hidden,
|
|
204
|
+
" more"
|
|
205
|
+
]
|
|
206
|
+
}) : null]
|
|
207
|
+
}) : null]
|
|
208
|
+
});
|
|
209
|
+
$[10] = compact;
|
|
210
|
+
$[11] = depth;
|
|
211
|
+
$[12] = name;
|
|
212
|
+
$[13] = open;
|
|
213
|
+
$[14] = openDepth;
|
|
214
|
+
$[15] = showAll;
|
|
215
|
+
$[16] = value;
|
|
216
|
+
$[17] = t1;
|
|
217
|
+
} else t1 = $[17];
|
|
218
|
+
return t1;
|
|
219
|
+
};
|
|
220
|
+
const InlineJson = (t0) => {
|
|
221
|
+
const $ = c(11);
|
|
222
|
+
const { serialized, copyText, compact } = t0;
|
|
223
|
+
const t1 = compact ? "text-[10px]" : "text-[11px]";
|
|
224
|
+
let t2;
|
|
225
|
+
if ($[0] !== t1) {
|
|
226
|
+
t2 = clsx("text-foreground min-w-0 flex-1 font-mono leading-snug break-all", t1);
|
|
227
|
+
$[0] = t1;
|
|
228
|
+
$[1] = t2;
|
|
229
|
+
} else t2 = $[1];
|
|
230
|
+
let t3;
|
|
231
|
+
if ($[2] !== serialized || $[3] !== t2) {
|
|
232
|
+
t3 = /* @__PURE__ */ jsx("code", {
|
|
233
|
+
className: t2,
|
|
234
|
+
title: serialized,
|
|
235
|
+
children: serialized
|
|
236
|
+
});
|
|
237
|
+
$[2] = serialized;
|
|
238
|
+
$[3] = t2;
|
|
239
|
+
$[4] = t3;
|
|
240
|
+
} else t3 = $[4];
|
|
241
|
+
const t4 = compact ? "sm" : "default";
|
|
242
|
+
let t5;
|
|
243
|
+
if ($[5] !== copyText || $[6] !== t4) {
|
|
244
|
+
t5 = /* @__PURE__ */ jsx(CopyButton, {
|
|
245
|
+
value: copyText,
|
|
246
|
+
label: "Copy JSON",
|
|
247
|
+
iconOnly: true,
|
|
248
|
+
size: t4
|
|
249
|
+
});
|
|
250
|
+
$[5] = copyText;
|
|
251
|
+
$[6] = t4;
|
|
252
|
+
$[7] = t5;
|
|
253
|
+
} else t5 = $[7];
|
|
254
|
+
let t6;
|
|
255
|
+
if ($[8] !== t3 || $[9] !== t5) {
|
|
256
|
+
t6 = /* @__PURE__ */ jsxs("div", {
|
|
257
|
+
className: "flex min-w-0 items-start gap-0.5",
|
|
258
|
+
children: [t3, t5]
|
|
259
|
+
});
|
|
260
|
+
$[8] = t3;
|
|
261
|
+
$[9] = t5;
|
|
262
|
+
$[10] = t6;
|
|
263
|
+
} else t6 = $[10];
|
|
264
|
+
return t6;
|
|
265
|
+
};
|
|
266
|
+
const TreeWithCopy = (t0) => {
|
|
267
|
+
const $ = c(15);
|
|
268
|
+
const { value, openDepth, copyText, compact } = t0;
|
|
269
|
+
const t1 = compact ? "max-h-32 text-[10px] leading-snug" : "border-border bg-muted/40 max-h-[360px] rounded-md border p-3 text-[11px] leading-relaxed";
|
|
270
|
+
let t2;
|
|
271
|
+
if ($[0] !== t1) {
|
|
272
|
+
t2 = clsx("min-w-0 flex-1 overflow-auto font-mono [font-variant-numeric:tabular-nums] [font-variant-ligatures:none]", t1);
|
|
273
|
+
$[0] = t1;
|
|
274
|
+
$[1] = t2;
|
|
275
|
+
} else t2 = $[1];
|
|
276
|
+
let t3;
|
|
277
|
+
if ($[2] !== compact || $[3] !== openDepth || $[4] !== value) {
|
|
278
|
+
t3 = /* @__PURE__ */ jsx(TreeNode, {
|
|
279
|
+
value,
|
|
280
|
+
depth: 0,
|
|
281
|
+
openDepth,
|
|
282
|
+
compact
|
|
283
|
+
});
|
|
284
|
+
$[2] = compact;
|
|
285
|
+
$[3] = openDepth;
|
|
286
|
+
$[4] = value;
|
|
287
|
+
$[5] = t3;
|
|
288
|
+
} else t3 = $[5];
|
|
289
|
+
let t4;
|
|
290
|
+
if ($[6] !== t2 || $[7] !== t3) {
|
|
291
|
+
t4 = /* @__PURE__ */ jsx("div", {
|
|
292
|
+
className: t2,
|
|
293
|
+
children: t3
|
|
294
|
+
});
|
|
295
|
+
$[6] = t2;
|
|
296
|
+
$[7] = t3;
|
|
297
|
+
$[8] = t4;
|
|
298
|
+
} else t4 = $[8];
|
|
299
|
+
const t5 = compact ? "sm" : "default";
|
|
300
|
+
let t6;
|
|
301
|
+
if ($[9] !== copyText || $[10] !== t5) {
|
|
302
|
+
t6 = /* @__PURE__ */ jsx(CopyButton, {
|
|
303
|
+
value: copyText,
|
|
304
|
+
label: "Copy JSON",
|
|
305
|
+
iconOnly: true,
|
|
306
|
+
size: t5,
|
|
307
|
+
className: "pt-px"
|
|
308
|
+
});
|
|
309
|
+
$[9] = copyText;
|
|
310
|
+
$[10] = t5;
|
|
311
|
+
$[11] = t6;
|
|
312
|
+
} else t6 = $[11];
|
|
313
|
+
let t7;
|
|
314
|
+
if ($[12] !== t4 || $[13] !== t6) {
|
|
315
|
+
t7 = /* @__PURE__ */ jsxs("div", {
|
|
316
|
+
className: "flex min-w-0 items-start gap-0.5",
|
|
317
|
+
children: [t4, t6]
|
|
318
|
+
});
|
|
319
|
+
$[12] = t4;
|
|
320
|
+
$[13] = t6;
|
|
321
|
+
$[14] = t7;
|
|
322
|
+
} else t7 = $[14];
|
|
323
|
+
return t7;
|
|
324
|
+
};
|
|
325
|
+
/**
|
|
326
|
+
* Recursive JSON view. `compact` fits tool rows; copy always provides formatted JSON.
|
|
327
|
+
*/
|
|
328
|
+
const JSONTree = (t0) => {
|
|
329
|
+
const $ = c(18);
|
|
330
|
+
const { value, openDepth: t1, compact: t2 } = t0;
|
|
331
|
+
const openDepth = t1 === void 0 ? 1 : t1;
|
|
332
|
+
const compact = t2 === void 0 ? false : t2;
|
|
333
|
+
let t3;
|
|
334
|
+
if ($[0] !== compact || $[1] !== value) {
|
|
335
|
+
t3 = isInline(value, compact) || !isContainer(value);
|
|
336
|
+
$[0] = compact;
|
|
337
|
+
$[1] = value;
|
|
338
|
+
$[2] = t3;
|
|
339
|
+
} else t3 = $[2];
|
|
340
|
+
const isLeaf = t3;
|
|
341
|
+
let t4;
|
|
342
|
+
if ($[3] !== compact || $[4] !== isLeaf || $[5] !== value) {
|
|
343
|
+
t4 = isLeaf ? serialize(value, compact) : "";
|
|
344
|
+
$[3] = compact;
|
|
345
|
+
$[4] = isLeaf;
|
|
346
|
+
$[5] = value;
|
|
347
|
+
$[6] = t4;
|
|
348
|
+
} else t4 = $[6];
|
|
349
|
+
const serialized = t4;
|
|
350
|
+
let t5;
|
|
351
|
+
if ($[7] !== value) {
|
|
352
|
+
t5 = JSON.stringify(value, null, 2);
|
|
353
|
+
$[7] = value;
|
|
354
|
+
$[8] = t5;
|
|
355
|
+
} else t5 = $[8];
|
|
356
|
+
const copyText = t5;
|
|
357
|
+
if (isLeaf) {
|
|
358
|
+
let t6;
|
|
359
|
+
if ($[9] !== compact || $[10] !== copyText || $[11] !== serialized) {
|
|
360
|
+
t6 = /* @__PURE__ */ jsx(InlineJson, {
|
|
361
|
+
serialized,
|
|
362
|
+
copyText,
|
|
363
|
+
compact
|
|
364
|
+
});
|
|
365
|
+
$[9] = compact;
|
|
366
|
+
$[10] = copyText;
|
|
367
|
+
$[11] = serialized;
|
|
368
|
+
$[12] = t6;
|
|
369
|
+
} else t6 = $[12];
|
|
370
|
+
return t6;
|
|
371
|
+
}
|
|
372
|
+
let t6;
|
|
373
|
+
if ($[13] !== compact || $[14] !== copyText || $[15] !== openDepth || $[16] !== value) {
|
|
374
|
+
t6 = /* @__PURE__ */ jsx(TreeWithCopy, {
|
|
375
|
+
value,
|
|
376
|
+
openDepth,
|
|
377
|
+
copyText,
|
|
378
|
+
compact
|
|
379
|
+
});
|
|
380
|
+
$[13] = compact;
|
|
381
|
+
$[14] = copyText;
|
|
382
|
+
$[15] = openDepth;
|
|
383
|
+
$[16] = value;
|
|
384
|
+
$[17] = t6;
|
|
385
|
+
} else t6 = $[17];
|
|
386
|
+
return t6;
|
|
387
|
+
};
|
|
388
|
+
function _temp(prev) {
|
|
389
|
+
return !prev;
|
|
390
|
+
}
|
|
391
|
+
//#endregion
|
|
392
|
+
export { JSONTree };
|
|
393
|
+
|
|
394
|
+
//# sourceMappingURL=JSONTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONTree.js","names":["useMemo","useState","clsx","CopyButton","ENTRY_LIMIT","INLINE_MAX","isContainer","value","Entry","key","entriesOf","Array","isArray","map","item","index","String","Object","entries","Record","summaryOf","length","keys","serialize","compact","JSON","stringify","isInline","Leaf","t0","$","_c","t1","undefined","t2","TreeNode","name","depth","openDepth","open","setOpen","showAll","setShowAll","t3","t4","t5","shown","slice","hidden","Symbol","for","_temp","t6","t7","t8","t9","t10","t11","entry","InlineJson","serialized","copyText","TreeWithCopy","JSONTree","isLeaf","prev"],"sources":["../../../src/views/ui/JSONTree.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { CopyButton } from \"./CopyButton\";\n\nconst ENTRY_LIMIT = 100;\nconst INLINE_MAX = 88;\n\nconst isContainer = (value: unknown): value is object =>\n value !== null && typeof value === \"object\";\n\ntype Entry = { key: string; value: unknown };\n\nconst entriesOf = (value: unknown): Entry[] => {\n if (Array.isArray(value)) {\n return value.map((item, index) => ({ key: String(index), value: item }));\n }\n return Object.entries(value as Record<string, unknown>).map(\n ([key, value]) => ({ key, value }),\n );\n};\n\nconst summaryOf = (value: unknown): string => {\n if (Array.isArray(value)) return `[${value.length}]`;\n return `{${Object.keys(value as object).length}}`;\n};\n\nconst serialize = (value: unknown, compact: boolean) =>\n JSON.stringify(value, null, compact ? 0 : 2);\n\nconst isInline = (value: unknown, compact: boolean) => {\n if (!compact) return false;\n if (!isContainer(value)) return true;\n return serialize(value, true).length <= INLINE_MAX;\n};\n\nconst Leaf = ({ value }: { value: unknown }) => {\n if (typeof value === \"string\") {\n return (\n <span className=\"text-foreground break-all\">"{value}"</span>\n );\n }\n if (value === null || value === undefined) {\n return (\n <span className=\"text-muted-foreground italic\">{String(value)}</span>\n );\n }\n return (\n <span className=\"text-muted-foreground break-all\">{String(value)}</span>\n );\n};\n\nconst TreeNode = ({\n name,\n value,\n depth,\n openDepth,\n compact,\n}: {\n name?: string;\n value: unknown;\n depth: number;\n openDepth: number;\n compact: boolean;\n}) => {\n const [open, setOpen] = useState(depth < openDepth);\n const [showAll, setShowAll] = useState(false);\n\n if (!isContainer(value)) {\n return (\n <div\n className={clsx(\"flex min-w-0\", compact ? \"gap-1 py-px\" : \"gap-1.5\")}\n >\n {name !== undefined ? (\n <span className=\"text-muted-foreground shrink-0\">{name}:</span>\n ) : null}\n <Leaf value={value} />\n </div>\n );\n }\n\n const entries = entriesOf(value);\n const shown = showAll ? entries : entries.slice(0, ENTRY_LIMIT);\n const hidden = entries.length - shown.length;\n\n return (\n <div className=\"min-w-0\">\n <button\n type=\"button\"\n onClick={() => setOpen((prev) => !prev)}\n className={clsx(\n \"text-muted-foreground hover:text-foreground flex items-center\",\n compact ? \"gap-0.5 py-px\" : \"gap-1\",\n )}\n >\n <span\n className={clsx(\n \"inline-block transition-transform\",\n open && \"rotate-90\",\n )}\n >\n ›\n </span>\n {name !== undefined ? <span>{name}</span> : null}\n <span className=\"opacity-60\">{summaryOf(value)}</span>\n </button>\n {open ? (\n <div\n className={clsx(\n \"border-border/60 border-s\",\n compact ? \"ms-1 ps-2\" : \"ms-[5px] ps-3\",\n )}\n >\n {shown.map((entry) => (\n <TreeNode\n key={entry.key}\n name={entry.key}\n value={entry.value}\n depth={depth + 1}\n openDepth={openDepth}\n compact={compact}\n />\n ))}\n {hidden > 0 ? (\n <button\n type=\"button\"\n onClick={() => setShowAll(true)}\n className=\"text-muted-foreground hover:text-foreground text-[10px]\"\n >\n +{hidden} more\n </button>\n ) : null}\n </div>\n ) : null}\n </div>\n );\n};\n\nconst InlineJson = ({\n serialized,\n copyText,\n compact,\n}: {\n serialized: string;\n copyText: string;\n compact: boolean;\n}) => (\n <div className=\"flex min-w-0 items-start gap-0.5\">\n <code\n className={clsx(\n \"text-foreground min-w-0 flex-1 font-mono leading-snug break-all\",\n compact ? \"text-[10px]\" : \"text-[11px]\",\n )}\n title={serialized}\n >\n {serialized}\n </code>\n <CopyButton\n value={copyText}\n label=\"Copy JSON\"\n iconOnly\n size={compact ? \"sm\" : \"default\"}\n />\n </div>\n);\n\nconst TreeWithCopy = ({\n value,\n openDepth,\n copyText,\n compact,\n}: {\n value: unknown;\n openDepth: number;\n copyText: string;\n compact: boolean;\n}) => (\n <div className=\"flex min-w-0 items-start gap-0.5\">\n <div\n className={clsx(\n \"min-w-0 flex-1 overflow-auto font-mono [font-variant-numeric:tabular-nums] [font-variant-ligatures:none]\",\n compact\n ? \"max-h-32 text-[10px] leading-snug\"\n : \"border-border bg-muted/40 max-h-[360px] rounded-md border p-3 text-[11px] leading-relaxed\",\n )}\n >\n <TreeNode\n value={value}\n depth={0}\n openDepth={openDepth}\n compact={compact}\n />\n </div>\n <CopyButton\n value={copyText}\n label=\"Copy JSON\"\n iconOnly\n size={compact ? \"sm\" : \"default\"}\n className=\"pt-px\"\n />\n </div>\n);\n\n/**\n * Recursive JSON view. `compact` fits tool rows; copy always provides formatted JSON.\n */\nexport const JSONTree = ({\n value,\n openDepth = 1,\n compact = false,\n}: {\n value: unknown;\n openDepth?: number;\n compact?: boolean;\n}) => {\n const isLeaf = isInline(value, compact) || !isContainer(value);\n const serialized = useMemo(\n () => (isLeaf ? serialize(value, compact) : \"\"),\n [value, compact, isLeaf],\n );\n const copyText = useMemo(() => JSON.stringify(value, null, 2), [value]);\n\n if (isLeaf) {\n return (\n <InlineJson\n serialized={serialized}\n copyText={copyText}\n compact={compact}\n />\n );\n }\n\n return (\n <TreeWithCopy\n value={value}\n openDepth={openDepth}\n copyText={copyText}\n compact={compact}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/views/ui/PaneHeader.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Fixed-height rail header. Every column in a split layout should use this so
|
|
6
|
+
* titles line up across columns.
|
|
7
|
+
*/
|
|
8
|
+
declare const PaneHeader: ({
|
|
9
|
+
children,
|
|
10
|
+
trailing,
|
|
11
|
+
borderless
|
|
12
|
+
}: {
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
trailing?: ReactNode | undefined;
|
|
15
|
+
borderless?: boolean;
|
|
16
|
+
}) => import("react").JSX.Element;
|
|
17
|
+
/** Header that grows below a {@link PaneHeader}-height title row. */
|
|
18
|
+
declare const PaneHeaderStack: ({
|
|
19
|
+
header,
|
|
20
|
+
children
|
|
21
|
+
}: {
|
|
22
|
+
header: ReactNode;
|
|
23
|
+
children?: ReactNode | undefined;
|
|
24
|
+
}) => import("react").JSX.Element;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { PaneHeader, PaneHeaderStack };
|
|
27
|
+
//# sourceMappingURL=PaneHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaneHeader.d.ts","names":[],"sources":["../../../src/views/ui/PaneHeader.tsx"],"mappings":";;;;;AAMA;;cAAa,UAAA;EAAc,QAAA;EAAA,QAAA;EAAA;AAAA;EAKzB,QAAA,EAAU,SAAA;EACV,QAAA,GAAW,SAAA;EACX,UAAA;AAAA,sBACD,GAAA,CAAA,OAAA;;cAoBY,eAAA;EAAmB,MAAA;EAAA;AAAA;EAI9B,MAAA,EAAQ,SAAA;EACR,QAAA,GAAW,SAAA;AAAA,sBACZ,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/views/ui/PaneHeader.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Fixed-height rail header. Every column in a split layout should use this so
|
|
6
|
+
* titles line up across columns.
|
|
7
|
+
*/
|
|
8
|
+
const PaneHeader = (t0) => {
|
|
9
|
+
const $ = c(8);
|
|
10
|
+
const { children, trailing, borderless: t1 } = t0;
|
|
11
|
+
const t2 = (t1 === void 0 ? false : t1) ? "bg-background flex h-8 max-h-8 min-h-8 shrink-0 items-center justify-between gap-2 overflow-hidden px-3" : "border-border bg-background flex h-8 max-h-8 min-h-8 shrink-0 items-center justify-between gap-2 overflow-hidden border-b px-3";
|
|
12
|
+
let t3;
|
|
13
|
+
if ($[0] !== children) {
|
|
14
|
+
t3 = /* @__PURE__ */ jsx("div", {
|
|
15
|
+
className: "text-muted-foreground flex min-w-0 flex-1 items-center truncate text-[11px] leading-none tabular-nums",
|
|
16
|
+
children
|
|
17
|
+
});
|
|
18
|
+
$[0] = children;
|
|
19
|
+
$[1] = t3;
|
|
20
|
+
} else t3 = $[1];
|
|
21
|
+
let t4;
|
|
22
|
+
if ($[2] !== trailing) {
|
|
23
|
+
t4 = trailing ? /* @__PURE__ */ jsx("div", {
|
|
24
|
+
className: "text-muted-foreground flex shrink-0 items-center gap-1.5 text-[10px] leading-none",
|
|
25
|
+
children: trailing
|
|
26
|
+
}) : null;
|
|
27
|
+
$[2] = trailing;
|
|
28
|
+
$[3] = t4;
|
|
29
|
+
} else t4 = $[3];
|
|
30
|
+
let t5;
|
|
31
|
+
if ($[4] !== t2 || $[5] !== t3 || $[6] !== t4) {
|
|
32
|
+
t5 = /* @__PURE__ */ jsxs("div", {
|
|
33
|
+
className: t2,
|
|
34
|
+
children: [t3, t4]
|
|
35
|
+
});
|
|
36
|
+
$[4] = t2;
|
|
37
|
+
$[5] = t3;
|
|
38
|
+
$[6] = t4;
|
|
39
|
+
$[7] = t5;
|
|
40
|
+
} else t5 = $[7];
|
|
41
|
+
return t5;
|
|
42
|
+
};
|
|
43
|
+
/** Header that grows below a {@link PaneHeader}-height title row. */
|
|
44
|
+
const PaneHeaderStack = (t0) => {
|
|
45
|
+
const $ = c(5);
|
|
46
|
+
const { header, children } = t0;
|
|
47
|
+
let t1;
|
|
48
|
+
if ($[0] !== children) {
|
|
49
|
+
t1 = children ? /* @__PURE__ */ jsx("div", {
|
|
50
|
+
className: "border-border border-t",
|
|
51
|
+
children
|
|
52
|
+
}) : null;
|
|
53
|
+
$[0] = children;
|
|
54
|
+
$[1] = t1;
|
|
55
|
+
} else t1 = $[1];
|
|
56
|
+
let t2;
|
|
57
|
+
if ($[2] !== header || $[3] !== t1) {
|
|
58
|
+
t2 = /* @__PURE__ */ jsxs("div", {
|
|
59
|
+
className: "border-border bg-background shrink-0 border-b",
|
|
60
|
+
children: [header, t1]
|
|
61
|
+
});
|
|
62
|
+
$[2] = header;
|
|
63
|
+
$[3] = t1;
|
|
64
|
+
$[4] = t2;
|
|
65
|
+
} else t2 = $[4];
|
|
66
|
+
return t2;
|
|
67
|
+
};
|
|
68
|
+
//#endregion
|
|
69
|
+
export { PaneHeader, PaneHeaderStack };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=PaneHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaneHeader.js","names":["ReactNode","PaneHeader","t0","$","_c","children","trailing","borderless","t1","undefined","t2","t3","t4","t5","PaneHeaderStack","header"],"sources":["../../../src/views/ui/PaneHeader.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\n/**\n * Fixed-height rail header. Every column in a split layout should use this so\n * titles line up across columns.\n */\nexport const PaneHeader = ({\n children,\n trailing,\n borderless = false,\n}: {\n children: ReactNode;\n trailing?: ReactNode | undefined;\n borderless?: boolean;\n}) => (\n <div\n className={\n borderless\n ? \"bg-background flex h-8 max-h-8 min-h-8 shrink-0 items-center justify-between gap-2 overflow-hidden px-3\"\n : \"border-border bg-background flex h-8 max-h-8 min-h-8 shrink-0 items-center justify-between gap-2 overflow-hidden border-b px-3\"\n }\n >\n <div className=\"text-muted-foreground flex min-w-0 flex-1 items-center truncate text-[11px] leading-none tabular-nums\">\n {children}\n </div>\n {trailing ? (\n <div className=\"text-muted-foreground flex shrink-0 items-center gap-1.5 text-[10px] leading-none\">\n {trailing}\n </div>\n ) : null}\n </div>\n);\n\n/** Header that grows below a {@link PaneHeader}-height title row. */\nexport const PaneHeaderStack = ({\n header,\n children,\n}: {\n header: ReactNode;\n children?: ReactNode | undefined;\n}) => (\n <div className=\"border-border bg-background shrink-0 border-b\">\n {header}\n {children ? <div className=\"border-border border-t\">{children}</div> : null}\n </div>\n);\n"],"mappings":";;;;;;;AAMA,MAAaC,cAAaC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,UAAAC,UAAAC,YAAAC,OAAAN;CAWrB,MAAAQ,MARJF,OAAAC,KAAAA,IAAA,QAAAD,MAQI,4GAAA;CAEoI,IAAAG;CAAA,IAAAR,EAAA,OAAAE,UAAA;EAGtIM,KAAA,oBAAA,OAAA;GAAe,WAAA;GACZN;EACG,CAAA;EAAAF,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAS;CAAA,IAAAT,EAAA,OAAAG,UAAA;EACLM,KAAAN,WACC,oBAAA,OAAA;GAAe,WAAA;aACZA;EACG,CAAA,IAHP;EAIOH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,OAAAO,MAAAP,EAAA,OAAAQ,MAAAR,EAAA,OAAAS,IAAA;EAdVC,KAAA,qBAAA,OAAA;GAEI,WAAAH;aAFJ,CAOEC,IAGCC,EAKG;;EAAAT,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAfNU;AAeM;;AAIR,MAAaC,mBAAkBZ,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAW,QAAAV,aAAAH;CAM/B,IAAAM;CAAA,IAAAL,EAAA,OAAAE,UAAA;EAGIG,KAAAH,WAAW,oBAAA,OAAA;GAAe,WAAA;GAA0BA;EAAe,CAAA,IAAnE;EAA0EF,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAY,UAAAZ,EAAA,OAAAK,IAAA;EAF7EE,KAAA,qBAAA,OAAA;GAAe,WAAA;aAAf,CACGK,QACAP,EACG;;EAAAL,EAAA,KAAAY;EAAAZ,EAAA,KAAAK;EAAAL,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,OAHNO;AAGM"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/views/ui/RailTime.d.ts
|
|
2
|
+
/** Compact timestamp for narrow rails; full value goes in the tooltip. */
|
|
3
|
+
declare const RailTime: ({
|
|
4
|
+
value,
|
|
5
|
+
className
|
|
6
|
+
}: {
|
|
7
|
+
value: string | undefined;
|
|
8
|
+
className?: string | undefined;
|
|
9
|
+
}) => import("react").JSX.Element | null;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { RailTime };
|
|
12
|
+
//# sourceMappingURL=RailTime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RailTime.d.ts","names":[],"sources":["../../../src/views/ui/RailTime.tsx"],"mappings":";;cAIa,QAAA;EAAY,KAAA;EAAA;AAAA;EAIvB,KAAA;EACA,SAAA;AAAA,sBACD,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { formatWhen, formatWhenLabel } from "../../utils/common.js";
|
|
2
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import clsx from "clsx";
|
|
5
|
+
//#region src/views/ui/RailTime.tsx
|
|
6
|
+
/** Compact timestamp for narrow rails; full value goes in the tooltip. */
|
|
7
|
+
const RailTime = (t0) => {
|
|
8
|
+
const $ = c(11);
|
|
9
|
+
const { value, className } = t0;
|
|
10
|
+
let t1;
|
|
11
|
+
if ($[0] !== value) {
|
|
12
|
+
t1 = formatWhen(value);
|
|
13
|
+
$[0] = value;
|
|
14
|
+
$[1] = t1;
|
|
15
|
+
} else t1 = $[1];
|
|
16
|
+
const when = t1;
|
|
17
|
+
if (!when) return null;
|
|
18
|
+
let t2;
|
|
19
|
+
if ($[2] !== value) {
|
|
20
|
+
t2 = formatWhenLabel(value);
|
|
21
|
+
$[2] = value;
|
|
22
|
+
$[3] = t2;
|
|
23
|
+
} else t2 = $[3];
|
|
24
|
+
let t3;
|
|
25
|
+
if ($[4] !== className) {
|
|
26
|
+
t3 = clsx("text-muted-foreground font-mono text-[10px] leading-none whitespace-nowrap tabular-nums", className);
|
|
27
|
+
$[4] = className;
|
|
28
|
+
$[5] = t3;
|
|
29
|
+
} else t3 = $[5];
|
|
30
|
+
let t4;
|
|
31
|
+
if ($[6] !== t2 || $[7] !== t3 || $[8] !== value || $[9] !== when) {
|
|
32
|
+
t4 = /* @__PURE__ */ jsx("time", {
|
|
33
|
+
dateTime: value,
|
|
34
|
+
title: t2,
|
|
35
|
+
className: t3,
|
|
36
|
+
children: when
|
|
37
|
+
});
|
|
38
|
+
$[6] = t2;
|
|
39
|
+
$[7] = t3;
|
|
40
|
+
$[8] = value;
|
|
41
|
+
$[9] = when;
|
|
42
|
+
$[10] = t4;
|
|
43
|
+
} else t4 = $[10];
|
|
44
|
+
return t4;
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { RailTime };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=RailTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RailTime.js","names":["clsx","formatWhen","formatWhenLabel","RailTime","t0","$","_c","value","className","t1","when","t2","t3","t4"],"sources":["../../../src/views/ui/RailTime.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { formatWhen, formatWhenLabel } from \"../../utils/common\";\n\n/** Compact timestamp for narrow rails; full value goes in the tooltip. */\nexport const RailTime = ({\n value,\n className,\n}: {\n value: string | undefined;\n className?: string | undefined;\n}) => {\n const when = formatWhen(value);\n if (!when) return null;\n\n return (\n <time\n dateTime={value}\n title={formatWhenLabel(value)}\n className={clsx(\n \"text-muted-foreground font-mono text-[10px] leading-none whitespace-nowrap tabular-nums\",\n className,\n )}\n >\n {when}\n </time>\n );\n};\n"],"mappings":";;;;;;AAIA,MAAaG,YAAWC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,OAAAC,cAAAJ;CAMxB,IAAAK;CAAA,IAAAJ,EAAA,OAAAE,OAAA;EACcE,KAAAR,WAAWM,KAAK;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAA9B,MAAAK,OAAaD;CACb,IAAI,CAACC,MAAI,OAAS;CAAK,IAAAC;CAAA,IAAAN,EAAA,OAAAE,OAAA;EAKZI,KAAAT,gBAAgBK,KAAK;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAO;CAAA,IAAAP,EAAA,OAAAG,WAAA;EAClBI,KAAAZ,KACT,2FACAQ,SACF;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAM,MAAAN,EAAA,OAAAO,MAAAP,EAAA,OAAAE,SAAAF,EAAA,OAAAK,MAAA;EANHG,KAAA,oBAAA,QAAA;GACYN,UAAAA;GACH,OAAAI;GACI,WAAAC;aAKVF;EACI,CAAA;EAAAL,EAAA,KAAAM;EAAAN,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;EAAAL,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OATPQ;AASO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/views/ui/SectionLabel.d.ts
|
|
4
|
+
declare const SectionLabel: ({
|
|
5
|
+
children
|
|
6
|
+
}: {
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { SectionLabel };
|
|
11
|
+
//# sourceMappingURL=SectionLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionLabel.d.ts","names":[],"sources":["../../../src/views/ui/SectionLabel.tsx"],"mappings":";;;cAEa,YAAA;EAAgB;AAAA;EAAgB,QAAA,EAAU,SAAS;AAAA,sBAAE,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/views/ui/SectionLabel.tsx
|
|
4
|
+
const SectionLabel = (t0) => {
|
|
5
|
+
const $ = c(2);
|
|
6
|
+
const { children } = t0;
|
|
7
|
+
let t1;
|
|
8
|
+
if ($[0] !== children) {
|
|
9
|
+
t1 = /* @__PURE__ */ jsx("div", {
|
|
10
|
+
className: "text-muted-foreground text-[11px] font-medium",
|
|
11
|
+
children
|
|
12
|
+
});
|
|
13
|
+
$[0] = children;
|
|
14
|
+
$[1] = t1;
|
|
15
|
+
} else t1 = $[1];
|
|
16
|
+
return t1;
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { SectionLabel };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=SectionLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionLabel.js","names":["ReactNode","SectionLabel","t0","$","_c","children","t1"],"sources":["../../../src/views/ui/SectionLabel.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nexport const SectionLabel = ({ children }: { children: ReactNode }) => (\n <div className=\"text-muted-foreground text-[11px] font-medium\">\n {children}\n </div>\n);\n"],"mappings":";;;AAEA,MAAaC,gBAAeC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,aAAAH;CAAqC,IAAAI;CAAA,IAAAH,EAAA,OAAAE,UAAA;EAChEC,KAAA,oBAAA,OAAA;GAAe,WAAA;GACZD;EACG,CAAA;EAAAF,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAFNG;AAEM"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/views/ui/SelectableRow.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A row in a master rail. The leading border + accent fill mark the current
|
|
6
|
+
* selection; the whole row is the hit target. Content is free-form so a row can
|
|
7
|
+
* be a single line or a small block (a transcript turn).
|
|
8
|
+
*/
|
|
9
|
+
declare const SelectableRow: import("react").ForwardRefExoticComponent<{
|
|
10
|
+
selected?: boolean;
|
|
11
|
+
onSelect?: (() => void) | undefined;
|
|
12
|
+
className?: string | undefined; /** Fixed-height row for uniform rails. */
|
|
13
|
+
dense?: boolean;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { SelectableRow };
|
|
18
|
+
//# sourceMappingURL=SelectableRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectableRow.d.ts","names":[],"sources":["../../../src/views/ui/SelectableRow.tsx"],"mappings":";;;;;AAQA;;;cAAa,aAAA,kBAAa,yBAAA;;;;;YAQZ,SAAA;AAAA,kCAAA,iBAAA"}
|