@stigmer/react 3.10.0 → 3.11.1-dev.20260812192248
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/access/ManageAccessButton.js +1 -1
- package/access/ManageAccessButton.js.map +1 -1
- package/access/ManageAccessDialog.js +3 -3
- package/access/ManageAccessDialog.js.map +1 -1
- package/action-menu/ActionMenu.js +3 -3
- package/action-menu/ActionMenu.js.map +1 -1
- package/activity/useRecentActivity.d.ts +6 -1
- package/activity/useRecentActivity.d.ts.map +1 -1
- package/activity/useRecentActivity.js +6 -1
- package/activity/useRecentActivity.js.map +1 -1
- package/agent/AgentDetailView.js +21 -21
- package/agent/AgentDetailView.js.map +1 -1
- package/agent/AgentPicker.js +8 -8
- package/agent/AgentPicker.js.map +1 -1
- package/agent/steps/CapabilitiesStep.js +3 -3
- package/agent/steps/CapabilitiesStep.js.map +1 -1
- package/agent/steps/IdentityStep.js +6 -6
- package/agent/steps/IdentityStep.js.map +1 -1
- package/agent/steps/ReviewStep.js +3 -3
- package/agent/steps/ReviewStep.js.map +1 -1
- package/agent-instance/AgentInstanceDetailPanel.js +2 -2
- package/agent-instance/AgentInstanceDetailPanel.js.map +1 -1
- package/agent-instance/AgentInstanceList.d.ts.map +1 -1
- package/agent-instance/AgentInstanceList.js +5 -4
- package/agent-instance/AgentInstanceList.js.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.js +1 -1
- package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
- package/api-key/ApiKeyCreatedAlert.js +1 -1
- package/api-key/ApiKeyCreatedAlert.js.map +1 -1
- package/api-key/ApiKeyListPanel.d.ts.map +1 -1
- package/api-key/ApiKeyListPanel.js +10 -9
- package/api-key/ApiKeyListPanel.js.map +1 -1
- package/api-key/CreateApiKeyForm.js +5 -5
- package/api-key/CreateApiKeyForm.js.map +1 -1
- package/attachment/AttachmentChipList.d.ts.map +1 -1
- package/attachment/AttachmentChipList.js +18 -17
- package/attachment/AttachmentChipList.js.map +1 -1
- package/attachment/AttachmentImageLightbox.d.ts.map +1 -1
- package/attachment/AttachmentImageLightbox.js +1 -1
- package/attachment/AttachmentImageLightbox.js.map +1 -1
- package/attachment/attachment-utils.d.ts +8 -5
- package/attachment/attachment-utils.d.ts.map +1 -1
- package/attachment/attachment-utils.js +8 -5
- package/attachment/attachment-utils.js.map +1 -1
- package/billing/AutoRechargeCard.js +2 -2
- package/billing/AutoRechargeCard.js.map +1 -1
- package/billing/BillingSection.js +6 -6
- package/billing/BillingSection.js.map +1 -1
- package/billing/CreditBalanceCard.js +4 -4
- package/billing/CreditBalanceCard.js.map +1 -1
- package/billing/CreditLedgerTable.js +13 -13
- package/billing/CreditLedgerTable.js.map +1 -1
- package/billing/CreditPackGrid.js +2 -2
- package/billing/CreditPackGrid.js.map +1 -1
- package/billing/LowBalanceBanner.js +4 -4
- package/billing/LowBalanceBanner.js.map +1 -1
- package/billing/PaymentMethodCard.js +2 -2
- package/billing/PaymentMethodCard.js.map +1 -1
- package/button/Button.js +7 -7
- package/button/Button.js.map +1 -1
- package/channel/AgentChannelsPanel.d.ts.map +1 -1
- package/channel/AgentChannelsPanel.js +13 -12
- package/channel/AgentChannelsPanel.js.map +1 -1
- package/channel/ChannelConversationsDialog.d.ts.map +1 -1
- package/channel/ChannelConversationsDialog.js +7 -6
- package/channel/ChannelConversationsDialog.js.map +1 -1
- package/channel/ChannelCredentialsDialog.js +2 -2
- package/channel/ChannelCredentialsDialog.js.map +1 -1
- package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
- package/channel/ChannelTemplatesDialog.js +14 -13
- package/channel/ChannelTemplatesDialog.js.map +1 -1
- package/channel/ChannelToolCredentials.js +3 -3
- package/channel/ChannelToolCredentials.js.map +1 -1
- package/channel/ConnectSlackDialog.js +13 -13
- package/channel/ConnectSlackDialog.js.map +1 -1
- package/channel/ConnectWhatsAppDialog.js +8 -8
- package/channel/ConnectWhatsAppDialog.js.map +1 -1
- package/channel/connect/ServingAppSection.js +5 -5
- package/channel/connect/ServingAppSection.js.map +1 -1
- package/channel/connect/ToolCredentialsSection.js +1 -1
- package/channel/connect/ToolCredentialsSection.js.map +1 -1
- package/channel/connect/VerbatimRefusal.js +1 -1
- package/channel/connect/VerbatimRefusal.js.map +1 -1
- package/channel/connect/icons.js +1 -1
- package/channel/connect/icons.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.js +3 -3
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/channel-app/ChannelAppListPanel.js +5 -5
- package/channel-app/ChannelAppListPanel.js.map +1 -1
- package/channel-app/CreateChannelAppForm.js +6 -6
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/channel-app/internal.d.ts.map +1 -1
- package/channel-app/internal.js +8 -7
- package/channel-app/internal.js.map +1 -1
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +10 -7
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/ConfigureMenu.d.ts.map +1 -1
- package/composer/ConfigureMenu.js +5 -4
- package/composer/ConfigureMenu.js.map +1 -1
- package/composer/ContextChip.d.ts.map +1 -1
- package/composer/ContextChip.js +5 -4
- package/composer/ContextChip.js.map +1 -1
- package/composer/ContextPopover.d.ts.map +1 -1
- package/composer/ContextPopover.js +5 -4
- package/composer/ContextPopover.js.map +1 -1
- package/composer/InteractionModePicker.js +5 -5
- package/composer/InteractionModePicker.js.map +1 -1
- package/composer/SessionComposer.d.ts +13 -0
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +19 -9
- package/composer/SessionComposer.js.map +1 -1
- package/composer/icons.js +3 -3
- package/composer/icons.js.map +1 -1
- package/conversation/ConversationAttentionBanner.js +2 -2
- package/conversation/ConversationAttentionBanner.js.map +1 -1
- package/conversation/ConversationComposer.js +2 -2
- package/conversation/ConversationComposer.js.map +1 -1
- package/conversation/ConversationControlBanner.js +5 -5
- package/conversation/ConversationControlBanner.js.map +1 -1
- package/conversation/ConversationListPane.js +12 -12
- package/conversation/ConversationListPane.js.map +1 -1
- package/conversation/ConversationMediaAttachment.d.ts.map +1 -1
- package/conversation/ConversationMediaAttachment.js +5 -4
- package/conversation/ConversationMediaAttachment.js.map +1 -1
- package/conversation/ConversationTimelineView.d.ts.map +1 -1
- package/conversation/ConversationTimelineView.js +25 -15
- package/conversation/ConversationTimelineView.js.map +1 -1
- package/conversation/ConversationsWorkbench.js +3 -3
- package/conversation/ConversationsWorkbench.js.map +1 -1
- package/conversation/conversationPresentation.d.ts +28 -0
- package/conversation/conversationPresentation.d.ts.map +1 -1
- package/conversation/conversationPresentation.js +38 -1
- package/conversation/conversationPresentation.js.map +1 -1
- package/cursor-accounts/CursorAccountEditor.js +1 -1
- package/cursor-accounts/CursorAccountEditor.js.map +1 -1
- package/cursor-accounts/CursorAccountsAccessNotice.js +1 -1
- package/cursor-accounts/CursorAccountsAccessNotice.js.map +1 -1
- package/cursor-accounts/CursorAccountsConsole.js +9 -9
- package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
- package/cursor-accounts/MemberCoverageTable.d.ts.map +1 -1
- package/cursor-accounts/MemberCoverageTable.js +11 -10
- package/cursor-accounts/MemberCoverageTable.js.map +1 -1
- package/cursor-accounts/MemberKeysPanel.js +3 -3
- package/cursor-accounts/MemberKeysPanel.js.map +1 -1
- package/cursor-accounts/badges.js +1 -1
- package/cursor-accounts/badges.js.map +1 -1
- package/dashboard/DashboardFailedRuns.js +4 -4
- package/dashboard/DashboardFailedRuns.js.map +1 -1
- package/dashboard/DashboardKPICards.d.ts.map +1 -1
- package/dashboard/DashboardKPICards.js +9 -7
- package/dashboard/DashboardKPICards.js.map +1 -1
- package/dashboard/OperationalDashboard.js +1 -1
- package/dashboard/OperationalDashboard.js.map +1 -1
- package/datastore/CollectionRecordsBrowser.d.ts.map +1 -1
- package/datastore/CollectionRecordsBrowser.js +14 -11
- package/datastore/CollectionRecordsBrowser.js.map +1 -1
- package/datastore/CollectionSchemaView.js +4 -4
- package/datastore/CollectionSchemaView.js.map +1 -1
- package/datastore/DatastoreDetailView.js +4 -4
- package/datastore/DatastoreDetailView.js.map +1 -1
- package/datastore/DatastoreSyncReport.js +1 -1
- package/datastore/DatastoreSyncReport.js.map +1 -1
- package/datastore/DeleteDatastoreDialog.js +1 -1
- package/datastore/DeleteDatastoreDialog.js.map +1 -1
- package/datastore/FieldValueControl.js +2 -2
- package/datastore/FieldValueControl.js.map +1 -1
- package/datastore/RecordFilterBuilder.js +4 -4
- package/datastore/RecordFilterBuilder.js.map +1 -1
- package/datastore/RecordFormPanel.js +5 -5
- package/datastore/RecordFormPanel.js.map +1 -1
- package/dependency-graph/DependencyGraph.js +1 -1
- package/dependency-graph/DependencyGraph.js.map +1 -1
- package/dependency-graph/DependencyTreeNode.js +8 -8
- package/dependency-graph/DependencyTreeNode.js.map +1 -1
- package/empty-state/EmptyState.js +3 -3
- package/empty-state/EmptyState.js.map +1 -1
- package/empty-state/useEmptyState.js +1 -1
- package/empty-state/useEmptyState.js.map +1 -1
- package/environment/CreateEnvironmentForm.js +2 -2
- package/environment/CreateEnvironmentForm.js.map +1 -1
- package/environment/EnvVarForm.js +4 -4
- package/environment/EnvVarForm.js.map +1 -1
- package/environment/EnvironmentListPanel.js +9 -9
- package/environment/EnvironmentListPanel.js.map +1 -1
- package/environment/EnvironmentPicker.js +4 -4
- package/environment/EnvironmentPicker.js.map +1 -1
- package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
- package/environment/EnvironmentVariableEditor.js +18 -17
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/error/ErrorMessage.js +1 -1
- package/error/ErrorMessage.js.map +1 -1
- package/error/SecretFlowErrorGuide.js +1 -1
- package/error/SecretFlowErrorGuide.js.map +1 -1
- package/execution/ApprovalCard.d.ts.map +1 -1
- package/execution/ApprovalCard.js +8 -8
- package/execution/ApprovalCard.js.map +1 -1
- package/execution/ArtifactApplyButton.js +4 -4
- package/execution/ArtifactApplyButton.js.map +1 -1
- package/execution/ArtifactContentBody.js +3 -3
- package/execution/ArtifactContentBody.js.map +1 -1
- package/execution/ArtifactContentRenderer.js +19 -19
- package/execution/ArtifactContentRenderer.js.map +1 -1
- package/execution/ArtifactDocument.js +10 -10
- package/execution/ArtifactDocument.js.map +1 -1
- package/execution/ArtifactFileContent.js +4 -4
- package/execution/ArtifactFileContent.js.map +1 -1
- package/execution/ArtifactPreviewModal.js +11 -11
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/ArtifactRowView.d.ts.map +1 -1
- package/execution/ArtifactRowView.js +3 -2
- package/execution/ArtifactRowView.js.map +1 -1
- package/execution/ArtifactsWidget.js +1 -1
- package/execution/ArtifactsWidget.js.map +1 -1
- package/execution/ContextGauge.js +9 -9
- package/execution/ContextGauge.js.map +1 -1
- package/execution/EmptyChangeNotice.js +1 -1
- package/execution/EmptyChangeNotice.js.map +1 -1
- package/execution/ExecutionPhaseBadge.js +10 -10
- package/execution/ExecutionPhaseBadge.js.map +1 -1
- package/execution/ExecutionProgress.js +1 -1
- package/execution/ExecutionProgress.js.map +1 -1
- package/execution/FileChangeProgressBar.js +3 -3
- package/execution/FileChangeProgressBar.js.map +1 -1
- package/execution/FileChangesView.js +5 -5
- package/execution/FileChangesView.js.map +1 -1
- package/execution/FilePathLink.d.ts +4 -4
- package/execution/FilePathLink.d.ts.map +1 -1
- package/execution/FilePathLink.js +8 -8
- package/execution/FilePathLink.js.map +1 -1
- package/execution/FileReviewAtoms.js +7 -7
- package/execution/FileReviewAtoms.js.map +1 -1
- package/execution/FileReviewCard.js +18 -18
- package/execution/FileReviewCard.js.map +1 -1
- package/execution/FileReviewDock.js +1 -1
- package/execution/FileReviewDock.js.map +1 -1
- package/execution/FollowUpInput.js +3 -3
- package/execution/FollowUpInput.js.map +1 -1
- package/execution/InteractionModeBadge.js +1 -1
- package/execution/InteractionModeBadge.js.map +1 -1
- package/execution/McpToolDetail.d.ts.map +1 -1
- package/execution/McpToolDetail.js +13 -12
- package/execution/McpToolDetail.js.map +1 -1
- package/execution/MessageAttachments.d.ts.map +1 -1
- package/execution/MessageAttachments.js +13 -11
- package/execution/MessageAttachments.js.map +1 -1
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +9 -8
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.js +12 -12
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanArtifactCard.d.ts.map +1 -1
- package/execution/PlanArtifactCard.js +14 -11
- package/execution/PlanArtifactCard.js.map +1 -1
- package/execution/PlanCompletionCard.js +2 -2
- package/execution/PlanCompletionCard.js.map +1 -1
- package/execution/PlanDocumentMessage.js +2 -2
- package/execution/PlanDocumentMessage.js.map +1 -1
- package/execution/PlanStreamingCard.js +3 -3
- package/execution/PlanStreamingCard.js.map +1 -1
- package/execution/ResultView.js +17 -17
- package/execution/ResultView.js.map +1 -1
- package/execution/SessionVariablesInput.js +6 -6
- package/execution/SessionVariablesInput.js.map +1 -1
- package/execution/SetupProgress.js +2 -2
- package/execution/SetupProgress.js.map +1 -1
- package/execution/SubAgentSection.js +19 -19
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/SummarizationBadge.js +3 -3
- package/execution/SummarizationBadge.js.map +1 -1
- package/execution/SummarizationCard.js +2 -2
- package/execution/SummarizationCard.js.map +1 -1
- package/execution/TerminalSession.js +2 -2
- package/execution/TerminalSession.js.map +1 -1
- package/execution/ThreadSkeleton.js +1 -1
- package/execution/ThreadSkeleton.js.map +1 -1
- package/execution/TodoCard.js +3 -3
- package/execution/TodoCard.js.map +1 -1
- package/execution/TodoList.js +8 -8
- package/execution/TodoList.js.map +1 -1
- package/execution/ToolArgsView.js +4 -4
- package/execution/ToolArgsView.js.map +1 -1
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +4 -4
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallGroup.js +1 -1
- package/execution/ToolCallGroup.js.map +1 -1
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +20 -16
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/ToolRunGroup.js +9 -9
- package/execution/ToolRunGroup.js.map +1 -1
- package/execution/UsageWidget.js +3 -3
- package/execution/UsageWidget.js.map +1 -1
- package/execution/WriteBackCard.d.ts.map +1 -1
- package/execution/WriteBackCard.js +18 -16
- package/execution/WriteBackCard.js.map +1 -1
- package/execution/WriteBacksWidget.js +1 -1
- package/execution/WriteBacksWidget.js.map +1 -1
- package/execution/artifact-row-item.d.ts +1 -1
- package/execution/artifact-row-item.d.ts.map +1 -1
- package/execution/tool-rendering-primitives.js +5 -5
- package/execution/tool-rendering-primitives.js.map +1 -1
- package/feedback/StigmerToaster.d.ts.map +1 -1
- package/feedback/StigmerToaster.js +9 -5
- package/feedback/StigmerToaster.js.map +1 -1
- package/file-reference/FileReferenceChipList.d.ts.map +1 -1
- package/file-reference/FileReferenceChipList.js +8 -3
- package/file-reference/FileReferenceChipList.js.map +1 -1
- package/github/GitHubRepoPicker.js +26 -26
- package/github/GitHubRepoPicker.js.map +1 -1
- package/iam-policy/GrantAccessForm.js +2 -2
- package/iam-policy/GrantAccessForm.js.map +1 -1
- package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
- package/iam-policy/OrgMembersPanel.js +13 -12
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/iam-policy/PeopleWithAccess.js +4 -4
- package/iam-policy/PeopleWithAccess.js.map +1 -1
- package/iam-policy/PrincipalPicker.js +6 -6
- package/iam-policy/PrincipalPicker.js.map +1 -1
- package/iam-policy/ProviderBadge.d.ts.map +1 -1
- package/iam-policy/ProviderBadge.js +3 -2
- package/iam-policy/ProviderBadge.js.map +1 -1
- package/iam-policy/RoleSelector.d.ts.map +1 -1
- package/iam-policy/RoleSelector.js +4 -4
- package/iam-policy/RoleSelector.js.map +1 -1
- package/iam-policy/SharePanel.js +1 -1
- package/iam-policy/SharePanel.js.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.js +6 -6
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +11 -11
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderListPanel.js +9 -8
- package/identity-provider/IdentityProviderListPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +16 -16
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/identity-provider/ProviderPicker.js +11 -11
- package/identity-provider/ProviderPicker.js.map +1 -1
- package/identity-provider/SsoLoginPrompt.js +7 -7
- package/identity-provider/SsoLoginPrompt.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/inline-edit/InlineEditImage.js +5 -5
- package/inline-edit/InlineEditImage.js.map +1 -1
- package/inline-edit/InlineEditKeyValue.js +3 -3
- package/inline-edit/InlineEditKeyValue.js.map +1 -1
- package/inline-edit/InlineEditResourceList.js +8 -8
- package/inline-edit/InlineEditResourceList.js.map +1 -1
- package/inline-edit/InlineEditSelect.js +8 -8
- package/inline-edit/InlineEditSelect.js.map +1 -1
- package/inline-edit/InlineEditText.js +6 -6
- package/inline-edit/InlineEditText.js.map +1 -1
- package/inline-edit/InlineEditTextarea.js +4 -4
- package/inline-edit/InlineEditTextarea.js.map +1 -1
- package/internal/ApprovalPeekBar.js +3 -3
- package/internal/ApprovalPeekBar.js.map +1 -1
- package/internal/BoundedContent.d.ts +1 -1
- package/internal/BoundedContent.d.ts.map +1 -1
- package/internal/BoundedContent.js +2 -2
- package/internal/BoundedContent.js.map +1 -1
- package/internal/CloudFeatureNotice.js +1 -1
- package/internal/CloudFeatureNotice.js.map +1 -1
- package/internal/DecisionButton.js +6 -6
- package/internal/DecisionButton.js.map +1 -1
- package/internal/InCardDecisionError.js +1 -1
- package/internal/InCardDecisionError.js.map +1 -1
- package/internal/JumpToLatestButton.js +3 -3
- package/internal/JumpToLatestButton.js.map +1 -1
- package/internal/MermaidDiagram.js +2 -2
- package/internal/MermaidDiagram.js.map +1 -1
- package/internal/Pagination.js +2 -2
- package/internal/Pagination.js.map +1 -1
- package/internal/ResizableSplit.d.ts +28 -6
- package/internal/ResizableSplit.d.ts.map +1 -1
- package/internal/ResizableSplit.js +18 -4
- package/internal/ResizableSplit.js.map +1 -1
- package/internal/RevealToggle.js +2 -2
- package/internal/RevealToggle.js.map +1 -1
- package/internal/ScrollFade.js +2 -2
- package/internal/ScrollFade.js.map +1 -1
- package/internal/VirtualizedThread.js +2 -2
- package/internal/VirtualizedThread.js.map +1 -1
- package/internal/file-icons/index.js +2 -2
- package/internal/file-icons/index.js.map +1 -1
- package/internal/file-tree/FileTreeNode.js +3 -3
- package/internal/file-tree/FileTreeNode.js.map +1 -1
- package/internal/form-primitives.d.ts +12 -10
- package/internal/form-primitives.d.ts.map +1 -1
- package/internal/form-primitives.js +14 -12
- package/internal/form-primitives.js.map +1 -1
- package/internal/markdown-components.js +23 -23
- package/internal/markdown-components.js.map +1 -1
- package/internal/menu.js +5 -5
- package/internal/menu.js.map +1 -1
- package/internal/scroll-area.js +1 -1
- package/internal/scroll-area.js.map +1 -1
- package/internal/thread-card/ThreadCardShell.js +7 -7
- package/internal/thread-card/ThreadCardShell.js.map +1 -1
- package/internal/thread-card/glyphs.js +2 -2
- package/internal/thread-card/glyphs.js.map +1 -1
- package/internal/tooltip.d.ts.map +1 -1
- package/internal/tooltip.js +4 -6
- package/internal/tooltip.js.map +1 -1
- package/internal/truncated-text.d.ts +17 -0
- package/internal/truncated-text.d.ts.map +1 -0
- package/internal/truncated-text.js +27 -0
- package/internal/truncated-text.js.map +1 -0
- package/invitation/InvitationCreatedAlert.js +1 -1
- package/invitation/InvitationCreatedAlert.js.map +1 -1
- package/invitation/InvitationManager.d.ts.map +1 -1
- package/invitation/InvitationManager.js +25 -24
- package/invitation/InvitationManager.js.map +1 -1
- package/invitation/InvitationRedemption.js +12 -12
- package/invitation/InvitationRedemption.js.map +1 -1
- package/library/ResourceCountCard.js +4 -4
- package/library/ResourceCountCard.js.map +1 -1
- package/library/ScopeToggle.d.ts.map +1 -1
- package/library/ScopeToggle.js +13 -5
- package/library/ScopeToggle.js.map +1 -1
- package/library/VisibilityOptionRow.d.ts +1 -1
- package/library/VisibilityOptionRow.d.ts.map +1 -1
- package/library/VisibilityOptionRow.js +22 -22
- package/library/VisibilityOptionRow.js.map +1 -1
- package/library/VisibilitySelector.d.ts.map +1 -1
- package/library/VisibilitySelector.js +6 -5
- package/library/VisibilitySelector.js.map +1 -1
- package/manifest/ApplyManifestDialog.js +6 -6
- package/manifest/ApplyManifestDialog.js.map +1 -1
- package/manifest/EditResourceYamlDialog.js +2 -2
- package/manifest/EditResourceYamlDialog.js.map +1 -1
- package/manifest/RedactedSecretsNotice.js +1 -1
- package/manifest/RedactedSecretsNotice.js.map +1 -1
- package/manifest/YamlEditor.js +1 -1
- package/manifest/YamlEditor.js.map +1 -1
- package/mcp-server/McpServerConfigPanel.d.ts +30 -1
- package/mcp-server/McpServerConfigPanel.d.ts.map +1 -1
- package/mcp-server/McpServerConfigPanel.js +36 -26
- package/mcp-server/McpServerConfigPanel.js.map +1 -1
- package/mcp-server/McpServerConnectDialog.d.ts +12 -1
- package/mcp-server/McpServerConnectDialog.d.ts.map +1 -1
- package/mcp-server/McpServerConnectDialog.js +48 -21
- package/mcp-server/McpServerConnectDialog.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +113 -64
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +101 -20
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/McpToolSelector.d.ts.map +1 -1
- package/mcp-server/McpToolSelector.js +5 -4
- package/mcp-server/McpToolSelector.js.map +1 -1
- package/mcp-server/OAuthAppForm.js +2 -2
- package/mcp-server/OAuthAppForm.js.map +1 -1
- package/mcp-server/OAuthCallbackHandler.js +4 -4
- package/mcp-server/OAuthCallbackHandler.js.map +1 -1
- package/mcp-server/OAuthRequiredNotice.js +1 -1
- package/mcp-server/OAuthRequiredNotice.js.map +1 -1
- package/mcp-server/StdioSandboxNotice.js +1 -1
- package/mcp-server/StdioSandboxNotice.js.map +1 -1
- package/mcp-server/VendorApprovalBlockedNotice.d.ts +77 -0
- package/mcp-server/VendorApprovalBlockedNotice.d.ts.map +1 -0
- package/mcp-server/VendorApprovalBlockedNotice.js +62 -0
- package/mcp-server/VendorApprovalBlockedNotice.js.map +1 -0
- package/mcp-server/index.d.ts +1 -1
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +1 -1
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/mcpServerSetupReducer.d.ts +18 -0
- package/mcp-server/mcpServerSetupReducer.d.ts.map +1 -1
- package/mcp-server/mcpServerSetupReducer.js +6 -0
- package/mcp-server/mcpServerSetupReducer.js.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.js +4 -4
- package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.js +8 -8
- package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
- package/mcp-server/steps/ReviewStep.js +3 -3
- package/mcp-server/steps/ReviewStep.js.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.d.ts +29 -0
- package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.js +49 -10
- package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
- package/mcp-server/useMcpServerSetup.d.ts.map +1 -1
- package/mcp-server/useMcpServerSetup.js +7 -0
- package/mcp-server/useMcpServerSetup.js.map +1 -1
- package/models/HarnessSelector.js +8 -8
- package/models/HarnessSelector.js.map +1 -1
- package/models/ModelSelector.js +11 -11
- package/models/ModelSelector.js.map +1 -1
- package/oauth-app/CreateOAuthAppForm.js +4 -4
- package/oauth-app/CreateOAuthAppForm.js.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.js +8 -8
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
- package/oauth-app/OAuthAppListPanel.d.ts.map +1 -1
- package/oauth-app/OAuthAppListPanel.js +7 -6
- package/oauth-app/OAuthAppListPanel.js.map +1 -1
- package/organization/CreateOrganizationForm.js +4 -4
- package/organization/CreateOrganizationForm.js.map +1 -1
- package/organization/OrgProfilePanel.js +10 -10
- package/organization/OrgProfilePanel.js.map +1 -1
- package/organization/OrgSwitcher.js +5 -5
- package/organization/OrgSwitcher.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/CreatePlatformClientForm.js +5 -5
- package/platform-client/CreatePlatformClientForm.js.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +8 -8
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientListPanel.js +11 -10
- package/platform-client/PlatformClientListPanel.js.map +1 -1
- package/platform-client/PlatformClientSecretAlert.js +2 -2
- package/platform-client/PlatformClientSecretAlert.js.map +1 -1
- package/portal-container.d.ts +34 -9
- package/portal-container.d.ts.map +1 -1
- package/portal-container.js +33 -8
- package/portal-container.js.map +1 -1
- package/pricing-governance/BaselineEditor.d.ts.map +1 -1
- package/pricing-governance/BaselineEditor.js +11 -5
- package/pricing-governance/BaselineEditor.js.map +1 -1
- package/pricing-governance/ModelCatalogPanel.d.ts.map +1 -1
- package/pricing-governance/ModelCatalogPanel.js +6 -5
- package/pricing-governance/ModelCatalogPanel.js.map +1 -1
- package/pricing-governance/ModelGovernanceDetail.js +7 -7
- package/pricing-governance/ModelGovernanceDetail.js.map +1 -1
- package/pricing-governance/OperatorAccessNotice.js +1 -1
- package/pricing-governance/OperatorAccessNotice.js.map +1 -1
- package/pricing-governance/PricingGovernanceConsole.d.ts.map +1 -1
- package/pricing-governance/PricingGovernanceConsole.js +9 -8
- package/pricing-governance/PricingGovernanceConsole.js.map +1 -1
- package/pricing-governance/PricingGovernancePanel.d.ts.map +1 -1
- package/pricing-governance/PricingGovernancePanel.js +5 -4
- package/pricing-governance/PricingGovernancePanel.js.map +1 -1
- package/pricing-governance/RetireConfirm.js +1 -1
- package/pricing-governance/RetireConfirm.js.map +1 -1
- package/pricing-governance/governance-primitives.js +6 -6
- package/pricing-governance/governance-primitives.js.map +1 -1
- package/resource-creation/CreationPicker.js +7 -7
- package/resource-creation/CreationPicker.js.map +1 -1
- package/resource-creation/StepIndicator.js +4 -4
- package/resource-creation/StepIndicator.js.map +1 -1
- package/resource-creation/TemplateCard.js +15 -15
- package/resource-creation/TemplateCard.js.map +1 -1
- package/resource-creation/TemplateGallery.js +5 -5
- package/resource-creation/TemplateGallery.js.map +1 -1
- package/resource-creation/WizardNav.js +2 -2
- package/resource-creation/WizardNav.js.map +1 -1
- package/resource-creation/WizardShell.js +2 -2
- package/resource-creation/WizardShell.js.map +1 -1
- package/resource-detail/ConfirmDialog.js +3 -3
- package/resource-detail/ConfirmDialog.js.map +1 -1
- package/resource-detail/ResourceActionBar.js +2 -2
- package/resource-detail/ResourceActionBar.js.map +1 -1
- package/resource-detail/ResourceDetailShell.js +3 -3
- package/resource-detail/ResourceDetailShell.js.map +1 -1
- package/resource-detail/Section.js +1 -1
- package/resource-detail/Section.js.map +1 -1
- package/resource-workbench/components/BulkActionBar.js +4 -4
- package/resource-workbench/components/BulkActionBar.js.map +1 -1
- package/resource-workbench/components/ColumnHeader.js +3 -3
- package/resource-workbench/components/ColumnHeader.js.map +1 -1
- package/resource-workbench/components/FilterBar.js +3 -3
- package/resource-workbench/components/FilterBar.js.map +1 -1
- package/resource-workbench/components/ResourceAvatar.js +18 -18
- package/resource-workbench/components/ResourceAvatar.js.map +1 -1
- package/resource-workbench/components/ResourceCards.js +2 -2
- package/resource-workbench/components/ResourceCards.js.map +1 -1
- package/resource-workbench/components/ResourceInspector.js +1 -1
- package/resource-workbench/components/ResourceInspector.js.map +1 -1
- package/resource-workbench/components/ResourceList.js +2 -2
- package/resource-workbench/components/ResourceList.js.map +1 -1
- package/resource-workbench/components/ResourceTable.js +5 -5
- package/resource-workbench/components/ResourceTable.js.map +1 -1
- package/resource-workbench/components/ResourceWorkbench.js +11 -11
- package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
- package/resource-workbench/components/SelectionCheckbox.js +1 -1
- package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
- package/resource-workbench/components/StatusBadge.d.ts.map +1 -1
- package/resource-workbench/components/StatusBadge.js +17 -16
- package/resource-workbench/components/StatusBadge.js.map +1 -1
- package/resource-workbench/components/ViewSwitcher.js +4 -4
- package/resource-workbench/components/ViewSwitcher.js.map +1 -1
- package/schedule/CadenceField.d.ts.map +1 -1
- package/schedule/CadenceField.js +26 -19
- package/schedule/CadenceField.js.map +1 -1
- package/schedule/ScheduleDetailView.js +39 -39
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/schedule/ScheduleForm.js +9 -9
- package/schedule/ScheduleForm.js.map +1 -1
- package/schedule/ScheduleRowActions.js +1 -1
- package/schedule/ScheduleRowActions.js.map +1 -1
- package/schedule/ScheduleRunsTable.d.ts.map +1 -1
- package/schedule/ScheduleRunsTable.js +18 -17
- package/schedule/ScheduleRunsTable.js.map +1 -1
- package/schedule/TimeZoneField.js +5 -5
- package/schedule/TimeZoneField.js.map +1 -1
- package/schedule/scheduleColumns.js +5 -5
- package/schedule/scheduleColumns.js.map +1 -1
- package/session/NewSessionViewer.js +3 -3
- package/session/NewSessionViewer.js.map +1 -1
- package/session/PlanEditor.d.ts.map +1 -1
- package/session/PlanEditor.js +9 -11
- package/session/PlanEditor.js.map +1 -1
- package/session/PlanStreamingDocument.js +2 -2
- package/session/PlanStreamingDocument.js.map +1 -1
- package/session/SessionViewer.js +21 -21
- package/session/SessionViewer.js.map +1 -1
- package/session/SessionViewerLayout.d.ts +11 -8
- package/session/SessionViewerLayout.d.ts.map +1 -1
- package/session/SessionViewerLayout.js +1 -1
- package/session/SessionViewerLayout.js.map +1 -1
- package/session/facets/ArtifactsTab.js +2 -2
- package/session/facets/ArtifactsTab.js.map +1 -1
- package/session/facets/ChangesTab.js +3 -3
- package/session/facets/ChangesTab.js.map +1 -1
- package/session/facets/SetupTab.js +11 -11
- package/session/facets/SetupTab.js.map +1 -1
- package/session/facets/UsageTab.js +1 -1
- package/session/facets/UsageTab.js.map +1 -1
- package/settings/ApiKeysSection.js +1 -1
- package/settings/ApiKeysSection.js.map +1 -1
- package/settings/ChannelAppsSection.js +1 -1
- package/settings/ChannelAppsSection.js.map +1 -1
- package/settings/EnvironmentsSection.js +4 -4
- package/settings/EnvironmentsSection.js.map +1 -1
- package/settings/IdentityProvidersSection.js +1 -1
- package/settings/IdentityProvidersSection.js.map +1 -1
- package/settings/InvitationsSection.js +1 -1
- package/settings/InvitationsSection.js.map +1 -1
- package/settings/MembersSection.js +1 -1
- package/settings/MembersSection.js.map +1 -1
- package/settings/OAuthAppsSection.js +1 -1
- package/settings/OAuthAppsSection.js.map +1 -1
- package/settings/OrgProfileSection.js +1 -1
- package/settings/OrgProfileSection.js.map +1 -1
- package/settings/PlatformClientsSection.js +1 -1
- package/settings/PlatformClientsSection.js.map +1 -1
- package/settings/UsageSection.js +1 -1
- package/settings/UsageSection.js.map +1 -1
- package/sharing/AgentShareList.d.ts.map +1 -1
- package/sharing/AgentShareList.js +7 -5
- package/sharing/AgentShareList.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +31 -30
- package/sharing/ShareAgentDialog.js.map +1 -1
- package/sharing/SharedAgentChat.js +6 -6
- package/sharing/SharedAgentChat.js.map +1 -1
- package/sidebar/SettingsSidebar.js +5 -5
- package/sidebar/SettingsSidebar.js.map +1 -1
- package/sidebar/WorkspaceSidebar.js +13 -13
- package/sidebar/WorkspaceSidebar.js.map +1 -1
- package/sidebar/chrome.js +5 -5
- package/sidebar/chrome.js.map +1 -1
- package/skill/SkillDetailView.d.ts.map +1 -1
- package/skill/SkillDetailView.js +14 -13
- package/skill/SkillDetailView.js.map +1 -1
- package/skill/SkillDiffDialog.js +2 -2
- package/skill/SkillDiffDialog.js.map +1 -1
- package/skill/SkillFileBrowser.js +4 -4
- package/skill/SkillFileBrowser.js.map +1 -1
- package/skill/SkillPicker.js +10 -10
- package/skill/SkillPicker.js.map +1 -1
- package/skill/SkillUploader.js +8 -8
- package/skill/SkillUploader.js.map +1 -1
- package/src/__tests__/helpers/compile-sdk-styles.ts +33 -0
- package/src/__tests__/helpers/open-menu.ts +88 -0
- package/src/__tests__/portal-container.test.tsx +97 -0
- package/src/__tests__/preflight-parity.layout.test.tsx +156 -0
- package/src/__tests__/scope-unprefixed.test.ts +86 -0
- package/src/__tests__/styles-border-layer-invariant.test.ts +86 -58
- package/src/__tests__/styles-dist-isolation.test.ts +195 -0
- package/src/__tests__/styles-host-isolation.layout.test.tsx +204 -0
- package/src/access/ManageAccessButton.tsx +3 -3
- package/src/access/ManageAccessDialog.tsx +19 -19
- package/src/action-menu/ActionMenu.tsx +8 -8
- package/src/activity/useRecentActivity.ts +6 -1
- package/src/agent/AgentDetailView.tsx +112 -112
- package/src/agent/AgentPicker.tsx +26 -26
- package/src/agent/steps/CapabilitiesStep.tsx +36 -36
- package/src/agent/steps/IdentityStep.tsx +45 -45
- package/src/agent/steps/ReviewStep.tsx +18 -18
- package/src/agent-instance/AgentInstanceDetailPanel.tsx +45 -45
- package/src/agent-instance/AgentInstanceList.tsx +40 -41
- package/src/agent-instance/CreateAgentInstanceDialog.tsx +35 -35
- package/src/agent-instance/__tests__/AgentInstanceList.test.tsx +5 -10
- package/src/api-key/ApiKeyCreatedAlert.tsx +15 -15
- package/src/api-key/ApiKeyListPanel.tsx +39 -31
- package/src/api-key/CreateApiKeyForm.tsx +25 -25
- package/src/attachment/AttachmentChipList.tsx +86 -77
- package/src/attachment/AttachmentImageLightbox.tsx +13 -14
- package/src/attachment/__tests__/AttachmentChipList.test.tsx +5 -4
- package/src/attachment/attachment-utils.ts +8 -5
- package/src/billing/AutoRechargeCard.tsx +26 -26
- package/src/billing/BillingSection.tsx +14 -14
- package/src/billing/CreditBalanceCard.tsx +7 -7
- package/src/billing/CreditLedgerTable.tsx +27 -27
- package/src/billing/CreditPackGrid.tsx +13 -13
- package/src/billing/LowBalanceBanner.tsx +6 -6
- package/src/billing/PaymentMethodCard.tsx +13 -13
- package/src/button/Button.tsx +10 -10
- package/src/button/__tests__/Button.test.tsx +9 -9
- package/src/channel/AgentChannelsPanel.tsx +37 -38
- package/src/channel/ChannelConversationsDialog.tsx +25 -23
- package/src/channel/ChannelCredentialsDialog.tsx +13 -13
- package/src/channel/ChannelTemplatesDialog.tsx +38 -39
- package/src/channel/ChannelToolCredentials.tsx +5 -5
- package/src/channel/ConnectSlackDialog.tsx +48 -48
- package/src/channel/ConnectWhatsAppDialog.tsx +42 -42
- package/src/channel/__tests__/AgentChannelsPanel.test.tsx +18 -18
- package/src/channel/connect/ServingAppSection.tsx +14 -14
- package/src/channel/connect/ToolCredentialsSection.tsx +5 -5
- package/src/channel/connect/VerbatimRefusal.tsx +1 -1
- package/src/channel/connect/icons.tsx +1 -1
- package/src/channel-app/ChannelAppDetailPanel.tsx +44 -44
- package/src/channel-app/ChannelAppListPanel.tsx +15 -15
- package/src/channel-app/CreateChannelAppForm.tsx +37 -37
- package/src/channel-app/internal.tsx +25 -26
- package/src/composer/ComposerToolbar.tsx +124 -92
- package/src/composer/ConfigureMenu.tsx +49 -40
- package/src/composer/ContextChip.tsx +13 -14
- package/src/composer/ContextPopover.tsx +30 -21
- package/src/composer/InteractionModePicker.tsx +14 -14
- package/src/composer/SessionComposer.tsx +64 -32
- package/src/composer/__tests__/SessionComposer-agentSetupError.test.tsx +124 -0
- package/src/composer/__tests__/SessionComposer-lockAgent.test.tsx +13 -17
- package/src/composer/__tests__/SessionComposer-serviceTier.test.tsx +2 -7
- package/src/composer/icons.tsx +5 -5
- package/src/conversation/ConversationAttentionBanner.tsx +6 -6
- package/src/conversation/ConversationComposer.tsx +13 -13
- package/src/conversation/ConversationControlBanner.tsx +11 -11
- package/src/conversation/ConversationListPane.tsx +38 -38
- package/src/conversation/ConversationMediaAttachment.tsx +14 -14
- package/src/conversation/ConversationTimelineView.tsx +64 -47
- package/src/conversation/ConversationsWorkbench.tsx +10 -10
- package/src/conversation/__tests__/ConversationComposer.test.tsx +1 -1
- package/src/conversation/__tests__/ConversationTimelineView.test.tsx +106 -3
- package/src/conversation/conversationPresentation.ts +52 -1
- package/src/cursor-accounts/CursorAccountEditor.tsx +13 -13
- package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +3 -3
- package/src/cursor-accounts/CursorAccountsConsole.tsx +35 -35
- package/src/cursor-accounts/MemberCoverageTable.tsx +41 -39
- package/src/cursor-accounts/MemberKeysPanel.tsx +17 -17
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +4 -4
- package/src/cursor-accounts/badges.tsx +4 -4
- package/src/dashboard/DashboardFailedRuns.tsx +17 -17
- package/src/dashboard/DashboardKPICards.tsx +14 -13
- package/src/dashboard/OperationalDashboard.tsx +2 -2
- package/src/datastore/CollectionRecordsBrowser.tsx +42 -41
- package/src/datastore/CollectionSchemaView.tsx +43 -43
- package/src/datastore/DatastoreDetailView.tsx +18 -18
- package/src/datastore/DatastoreSyncReport.tsx +13 -13
- package/src/datastore/DeleteDatastoreDialog.tsx +21 -21
- package/src/datastore/FieldValueControl.tsx +7 -7
- package/src/datastore/RecordFilterBuilder.tsx +35 -35
- package/src/datastore/RecordFormPanel.tsx +35 -35
- package/src/dependency-graph/DependencyGraph.tsx +6 -6
- package/src/dependency-graph/DependencyTreeNode.tsx +21 -21
- package/src/empty-state/EmptyState.tsx +7 -7
- package/src/empty-state/useEmptyState.ts +1 -1
- package/src/environment/CreateEnvironmentForm.tsx +24 -24
- package/src/environment/EnvVarForm.tsx +40 -40
- package/src/environment/EnvironmentListPanel.tsx +19 -19
- package/src/environment/EnvironmentPicker.tsx +22 -22
- package/src/environment/EnvironmentVariableEditor.tsx +69 -58
- package/src/error/ErrorMessage.tsx +22 -22
- package/src/error/SecretFlowErrorGuide.tsx +19 -19
- package/src/execution/ApprovalCard.tsx +20 -22
- package/src/execution/ArtifactApplyButton.tsx +7 -7
- package/src/execution/ArtifactContentBody.tsx +11 -11
- package/src/execution/ArtifactContentRenderer.tsx +29 -29
- package/src/execution/ArtifactDocument.tsx +22 -22
- package/src/execution/ArtifactFileContent.tsx +6 -6
- package/src/execution/ArtifactPreviewModal.tsx +33 -33
- package/src/execution/ArtifactRowView.tsx +70 -50
- package/src/execution/ArtifactsWidget.tsx +4 -4
- package/src/execution/ContextGauge.tsx +24 -24
- package/src/execution/EmptyChangeNotice.tsx +1 -1
- package/src/execution/ExecutionPhaseBadge.tsx +12 -12
- package/src/execution/ExecutionProgress.tsx +2 -2
- package/src/execution/FileChangeProgressBar.tsx +9 -9
- package/src/execution/FileChangesView.tsx +12 -12
- package/src/execution/FilePathLink.tsx +51 -35
- package/src/execution/FileReviewAtoms.tsx +9 -9
- package/src/execution/FileReviewCard.tsx +37 -37
- package/src/execution/FileReviewDock.tsx +2 -2
- package/src/execution/FollowUpInput.tsx +9 -9
- package/src/execution/InteractionModeBadge.tsx +2 -2
- package/src/execution/McpToolDetail.tsx +33 -29
- package/src/execution/MessageAttachments.tsx +64 -48
- package/src/execution/MessageEntry.tsx +40 -33
- package/src/execution/MessageThread.tsx +28 -28
- package/src/execution/PlanArtifactCard.tsx +44 -37
- package/src/execution/PlanCompletionCard.tsx +10 -10
- package/src/execution/PlanDocumentMessage.tsx +6 -6
- package/src/execution/PlanStreamingCard.tsx +11 -11
- package/src/execution/ResultView.tsx +44 -44
- package/src/execution/SessionVariablesInput.tsx +38 -38
- package/src/execution/SetupProgress.tsx +5 -5
- package/src/execution/SubAgentSection.tsx +42 -42
- package/src/execution/SummarizationBadge.tsx +15 -15
- package/src/execution/SummarizationCard.tsx +11 -11
- package/src/execution/TerminalSession.tsx +7 -7
- package/src/execution/ThreadSkeleton.tsx +10 -10
- package/src/execution/TodoCard.tsx +11 -11
- package/src/execution/TodoList.tsx +13 -13
- package/src/execution/ToolArgsView.tsx +8 -8
- package/src/execution/ToolCallDetail.tsx +7 -10
- package/src/execution/ToolCallGroup.tsx +1 -1
- package/src/execution/ToolCallItem.tsx +45 -34
- package/src/execution/ToolRunGroup.tsx +16 -16
- package/src/execution/UsageWidget.tsx +12 -12
- package/src/execution/WriteBackCard.tsx +60 -51
- package/src/execution/WriteBacksWidget.tsx +4 -4
- package/src/execution/__tests__/ApprovalCard.test.tsx +12 -12
- package/src/execution/__tests__/ArtifactContentRenderer.test.tsx +3 -3
- package/src/execution/__tests__/ArtifactRow.test.tsx +6 -2
- package/src/execution/__tests__/ArtifactRowView.test.tsx +5 -2
- package/src/execution/__tests__/FileChangesView.test.tsx +2 -2
- package/src/execution/__tests__/FilePathLink.test.tsx +11 -7
- package/src/execution/__tests__/FileReviewCard.test.tsx +2 -1
- package/src/execution/__tests__/FileReviewDock.test.tsx +1 -1
- package/src/execution/__tests__/MessageEntry-attachments.test.tsx +5 -4
- package/src/execution/__tests__/MessageThread.test.tsx +7 -2
- package/src/execution/__tests__/TerminalSession.test.tsx +1 -1
- package/src/execution/__tests__/ToolCallDetail.test.tsx +1 -1
- package/src/execution/__tests__/ToolCallGroup.test.tsx +4 -4
- package/src/execution/__tests__/ToolCallItem.test.tsx +9 -9
- package/src/execution/__tests__/ToolRunGroup.test.tsx +6 -6
- package/src/execution/__tests__/WriteBackCard.test.tsx +4 -4
- package/src/execution/__tests__/artifact-row-tooltips.layout.test.tsx +115 -0
- package/src/execution/__tests__/message-entry.test.tsx +8 -8
- package/src/execution/__tests__/thread-memoization.test.ts +2 -2
- package/src/execution/__tests__/thread-skeleton.test.tsx +1 -1
- package/src/execution/__tests__/virtualized-thread.test.tsx +1 -1
- package/src/execution/artifact-row-item.ts +1 -1
- package/src/execution/tool-rendering-primitives.tsx +12 -12
- package/src/feedback/StigmerToaster.tsx +8 -5
- package/src/file-reference/FileReferenceChipList.tsx +31 -19
- package/src/file-reference/__tests__/FileReferenceChipList.test.tsx +5 -2
- package/src/github/GitHubRepoPicker.tsx +60 -60
- package/src/iam-policy/GrantAccessForm.tsx +11 -11
- package/src/iam-policy/OrgMembersPanel.tsx +70 -63
- package/src/iam-policy/PeopleWithAccess.tsx +23 -23
- package/src/iam-policy/PrincipalPicker.tsx +34 -34
- package/src/iam-policy/ProviderBadge.tsx +17 -10
- package/src/iam-policy/RoleSelector.tsx +9 -10
- package/src/iam-policy/SharePanel.tsx +5 -5
- package/src/identity-provider/CreateIdentityProviderForm.tsx +47 -47
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +73 -73
- package/src/identity-provider/IdentityProviderListPanel.tsx +44 -36
- package/src/identity-provider/IdentityProviderWizard.tsx +72 -72
- package/src/identity-provider/ProviderPicker.tsx +17 -17
- package/src/identity-provider/SsoLoginPrompt.tsx +39 -39
- package/src/index.ts +1 -0
- package/src/inline-edit/InlineEditImage.tsx +26 -26
- package/src/inline-edit/InlineEditKeyValue.tsx +44 -44
- package/src/inline-edit/InlineEditResourceList.tsx +48 -48
- package/src/inline-edit/InlineEditSelect.tsx +22 -22
- package/src/inline-edit/InlineEditText.tsx +29 -29
- package/src/inline-edit/InlineEditTextarea.tsx +27 -27
- package/src/internal/ApprovalPeekBar.tsx +9 -9
- package/src/internal/BoundedContent.tsx +3 -3
- package/src/internal/CloudFeatureNotice.tsx +3 -3
- package/src/internal/DecisionButton.tsx +10 -10
- package/src/internal/InCardDecisionError.tsx +1 -1
- package/src/internal/JumpToLatestButton.tsx +9 -9
- package/src/internal/MermaidDiagram.tsx +5 -5
- package/src/internal/Pagination.tsx +5 -5
- package/src/internal/ResizableSplit.tsx +61 -20
- package/src/internal/RevealToggle.tsx +5 -5
- package/src/internal/ScrollFade.tsx +2 -2
- package/src/internal/VirtualizedThread.tsx +6 -6
- package/src/internal/__tests__/BoundedContent.test.tsx +1 -1
- package/src/internal/__tests__/DecisionButton.test.tsx +14 -14
- package/src/internal/__tests__/ResizableSplit.layout.test.tsx +136 -0
- package/src/internal/__tests__/ResizableSplit.test.tsx +49 -2
- package/src/internal/__tests__/ThreadCardShell.test.tsx +4 -4
- package/src/internal/__tests__/markdown-components.test.tsx +2 -2
- package/src/internal/__tests__/thread-animation.test.tsx +6 -6
- package/src/internal/__tests__/truncated-text.layout.test.tsx +68 -0
- package/src/internal/__tests__/truncated-text.test.tsx +33 -0
- package/src/internal/file-icons/index.tsx +2 -2
- package/src/internal/file-tree/FileTreeNode.tsx +9 -9
- package/src/internal/file-tree/__tests__/FileTreeNode-explorer.test.tsx +1 -1
- package/src/internal/form-primitives.tsx +18 -16
- package/src/internal/markdown-components.tsx +24 -24
- package/src/internal/menu.tsx +18 -18
- package/src/internal/scroll-area.tsx +6 -6
- package/src/internal/thread-card/ThreadCardShell.tsx +10 -10
- package/src/internal/thread-card/glyphs.tsx +3 -3
- package/src/internal/tooltip.tsx +9 -11
- package/src/internal/truncated-text.tsx +81 -0
- package/src/invitation/InvitationCreatedAlert.tsx +15 -15
- package/src/invitation/InvitationManager.tsx +96 -83
- package/src/invitation/InvitationRedemption.tsx +49 -49
- package/src/library/ResourceCountCard.tsx +7 -7
- package/src/library/ScopeToggle.tsx +21 -9
- package/src/library/VisibilityOptionRow.tsx +30 -30
- package/src/library/VisibilitySelector.tsx +38 -31
- package/src/library/__tests__/VisibilitySelector.test.tsx +0 -6
- package/src/manifest/ApplyManifestDialog.tsx +36 -36
- package/src/manifest/EditResourceYamlDialog.tsx +32 -32
- package/src/manifest/RedactedSecretsNotice.tsx +2 -2
- package/src/manifest/YamlEditor.tsx +1 -1
- package/src/mcp-server/McpServerConfigPanel.tsx +145 -103
- package/src/mcp-server/McpServerConnectDialog.tsx +120 -57
- package/src/mcp-server/McpServerDetailView.tsx +341 -256
- package/src/mcp-server/McpServerPicker.tsx +149 -57
- package/src/mcp-server/McpToolSelector.tsx +37 -32
- package/src/mcp-server/OAuthAppForm.tsx +32 -32
- package/src/mcp-server/OAuthCallbackHandler.tsx +11 -11
- package/src/mcp-server/OAuthRequiredNotice.tsx +3 -3
- package/src/mcp-server/StdioSandboxNotice.tsx +3 -3
- package/src/mcp-server/VendorApprovalBlockedNotice.tsx +221 -0
- package/src/mcp-server/__tests__/McpServerDetailView.test.tsx +162 -7
- package/src/mcp-server/__tests__/McpServerPicker.test.tsx +504 -0
- package/src/mcp-server/__tests__/VendorApprovalBlocked.surfaces.test.tsx +321 -0
- package/src/mcp-server/__tests__/VendorApprovalBlockedNotice.test.tsx +154 -0
- package/src/mcp-server/__tests__/useMcpServerOAuthConnect.test.tsx +159 -0
- package/src/mcp-server/index.ts +4 -1
- package/src/mcp-server/mcpServerSetupReducer.ts +24 -0
- package/src/mcp-server/steps/EnvironmentAuthStep.tsx +71 -71
- package/src/mcp-server/steps/IdentityTransportStep.tsx +94 -94
- package/src/mcp-server/steps/ReviewStep.tsx +17 -17
- package/src/mcp-server/useMcpServerOAuthConnect.ts +65 -10
- package/src/mcp-server/useMcpServerSetup.ts +9 -0
- package/src/models/HarnessSelector.tsx +8 -8
- package/src/models/ModelSelector.tsx +58 -58
- package/src/models/__tests__/ModelSelector-serviceTier.test.tsx +2 -7
- package/src/oauth-app/CreateOAuthAppForm.tsx +28 -28
- package/src/oauth-app/OAuthAppDetailPanel.tsx +51 -51
- package/src/oauth-app/OAuthAppListPanel.tsx +25 -17
- package/src/organization/CreateOrganizationForm.tsx +37 -37
- package/src/organization/OrgProfilePanel.tsx +65 -65
- package/src/organization/OrgSwitcher.tsx +33 -33
- package/src/platform-client/CreatePlatformClientForm.tsx +59 -59
- package/src/platform-client/PlatformClientDetailPanel.tsx +107 -107
- package/src/platform-client/PlatformClientListPanel.tsx +70 -53
- package/src/platform-client/PlatformClientSecretAlert.tsx +18 -18
- package/src/portal-container.ts +36 -9
- package/src/pricing-governance/BaselineEditor.tsx +49 -29
- package/src/pricing-governance/ModelCatalogPanel.tsx +35 -31
- package/src/pricing-governance/ModelGovernanceDetail.tsx +35 -35
- package/src/pricing-governance/OperatorAccessNotice.tsx +3 -3
- package/src/pricing-governance/PricingGovernanceConsole.tsx +38 -34
- package/src/pricing-governance/PricingGovernancePanel.tsx +31 -22
- package/src/pricing-governance/RetireConfirm.tsx +7 -7
- package/src/pricing-governance/__tests__/ModelCatalogPanel.test.tsx +37 -0
- package/src/pricing-governance/governance-primitives.tsx +12 -12
- package/src/resource-creation/CreationPicker.tsx +23 -23
- package/src/resource-creation/StepIndicator.tsx +17 -17
- package/src/resource-creation/TemplateCard.tsx +23 -23
- package/src/resource-creation/TemplateGallery.tsx +13 -13
- package/src/resource-creation/WizardNav.tsx +19 -19
- package/src/resource-creation/WizardShell.tsx +7 -7
- package/src/resource-detail/ConfirmDialog.tsx +16 -16
- package/src/resource-detail/ResourceActionBar.tsx +6 -6
- package/src/resource-detail/ResourceDetailShell.tsx +14 -14
- package/src/resource-detail/Section.tsx +10 -10
- package/src/resource-workbench/components/BulkActionBar.tsx +13 -13
- package/src/resource-workbench/components/ColumnHeader.tsx +9 -9
- package/src/resource-workbench/components/FilterBar.tsx +9 -9
- package/src/resource-workbench/components/ResourceAvatar.tsx +19 -19
- package/src/resource-workbench/components/ResourceCards.tsx +8 -8
- package/src/resource-workbench/components/ResourceInspector.tsx +8 -8
- package/src/resource-workbench/components/ResourceList.tsx +7 -7
- package/src/resource-workbench/components/ResourceTable.tsx +12 -12
- package/src/resource-workbench/components/ResourceWorkbench.tsx +42 -42
- package/src/resource-workbench/components/SelectionCheckbox.tsx +2 -2
- package/src/resource-workbench/components/StatusBadge.tsx +23 -19
- package/src/resource-workbench/components/ViewSwitcher.tsx +7 -7
- package/src/schedule/CadenceField.tsx +68 -57
- package/src/schedule/ScheduleDetailView.tsx +105 -105
- package/src/schedule/ScheduleForm.tsx +49 -49
- package/src/schedule/ScheduleRowActions.tsx +4 -4
- package/src/schedule/ScheduleRunsTable.tsx +64 -52
- package/src/schedule/TimeZoneField.tsx +12 -12
- package/src/schedule/__tests__/cadence-tooltips.layout.test.tsx +86 -0
- package/src/schedule/__tests__/scheduleCreation.test.tsx +0 -7
- package/src/schedule/scheduleColumns.tsx +7 -7
- package/src/session/NewSessionViewer.tsx +5 -5
- package/src/session/PlanEditor.tsx +46 -45
- package/src/session/PlanStreamingDocument.tsx +8 -8
- package/src/session/SessionViewer.tsx +48 -48
- package/src/session/SessionViewerLayout.tsx +14 -11
- package/src/session/__tests__/NewSessionViewer.test.tsx +4 -4
- package/src/session/__tests__/PlanEditor.test.tsx +2 -2
- package/src/session/__tests__/SessionViewerLayout.test.tsx +20 -8
- package/src/session/facets/ArtifactsTab.tsx +3 -3
- package/src/session/facets/ChangesTab.tsx +5 -5
- package/src/session/facets/SetupTab.tsx +26 -26
- package/src/session/facets/UsageTab.tsx +2 -2
- package/src/settings/ApiKeysSection.tsx +6 -6
- package/src/settings/ChannelAppsSection.tsx +6 -6
- package/src/settings/EnvironmentsSection.tsx +15 -15
- package/src/settings/IdentityProvidersSection.tsx +7 -7
- package/src/settings/InvitationsSection.tsx +4 -4
- package/src/settings/MembersSection.tsx +5 -5
- package/src/settings/OAuthAppsSection.tsx +6 -6
- package/src/settings/OrgProfileSection.tsx +3 -3
- package/src/settings/PlatformClientsSection.tsx +7 -7
- package/src/settings/UsageSection.tsx +3 -3
- package/src/sharing/AgentShareList.tsx +62 -56
- package/src/sharing/ShareAgentDialog.tsx +153 -154
- package/src/sharing/SharedAgentChat.tsx +24 -24
- package/src/sharing/__tests__/AgentShareList.test.tsx +4 -11
- package/src/sidebar/SettingsSidebar.tsx +7 -7
- package/src/sidebar/WorkspaceSidebar.tsx +25 -25
- package/src/sidebar/__tests__/SettingsSidebar.test.tsx +3 -7
- package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -11
- package/src/sidebar/chrome.tsx +16 -16
- package/src/skill/SkillDetailView.tsx +75 -64
- package/src/skill/SkillDiffDialog.tsx +25 -25
- package/src/skill/SkillFileBrowser.tsx +22 -22
- package/src/skill/SkillPicker.tsx +28 -28
- package/src/skill/SkillUploader.tsx +67 -67
- package/src/styles.css +136 -15
- package/src/switch/Switch.tsx +9 -9
- package/src/switch/__tests__/Switch.test.tsx +3 -3
- package/src/tabs/Tabs.tsx +11 -11
- package/src/usage/AgentBreakdownList.tsx +18 -18
- package/src/usage/CreditRunwayIndicator.tsx +4 -4
- package/src/usage/ExportButton.tsx +8 -8
- package/src/usage/HarnessSplitCard.tsx +14 -14
- package/src/usage/OrgUsagePanel.tsx +71 -71
- package/src/user/UserMenu.tsx +13 -13
- package/src/version-history/DiffFileList.tsx +13 -13
- package/src/version-history/DiffSummary.tsx +3 -3
- package/src/version-history/DiffViewer.tsx +14 -14
- package/src/version-history/MultiFileDiffView.tsx +6 -6
- package/src/version-history/UnifiedDiffView.tsx +4 -4
- package/src/version-history/VersionTimeline.tsx +21 -21
- package/src/version-history/VersionTimelineEntry.tsx +48 -39
- package/src/version-history/__tests__/UnifiedDiffView.test.tsx +2 -2
- package/src/workflow/ApprovalFormBuilder.tsx +48 -48
- package/src/workflow/BranchConditionBuilder.tsx +21 -21
- package/src/workflow/CanvasContextMenu.tsx +10 -10
- package/src/workflow/CanvasTransitionEdge.tsx +36 -29
- package/src/workflow/CostByWorkflowChart.tsx +18 -18
- package/src/workflow/ExecutionActiveTaskIndicator.tsx +76 -61
- package/src/workflow/ExecutionSummaryWidget.tsx +29 -29
- package/src/workflow/ExecutionTrendChart.tsx +25 -25
- package/src/workflow/FailedRunsWidget.tsx +14 -14
- package/src/workflow/PendingApprovalsWidget.tsx +19 -19
- package/src/workflow/TaskConfigForm.tsx +32 -32
- package/src/workflow/TaskPickerPopover.tsx +22 -23
- package/src/workflow/ViewYamlDialog.tsx +12 -12
- package/src/workflow/WorkflowAgentCallTranscript.tsx +15 -15
- package/src/workflow/WorkflowApprovalList.tsx +3 -3
- package/src/workflow/WorkflowArchitectDialog.tsx +80 -80
- package/src/workflow/WorkflowArtifactDocument.tsx +17 -17
- package/src/workflow/WorkflowCanvasEditor.tsx +108 -77
- package/src/workflow/WorkflowCanvasInner.tsx +3 -3
- package/src/workflow/WorkflowCodePreviewGraph.tsx +2 -2
- package/src/workflow/WorkflowDashboard.tsx +2 -2
- package/src/workflow/WorkflowDetailView.tsx +50 -50
- package/src/workflow/WorkflowDiffGraph.tsx +5 -5
- package/src/workflow/WorkflowEditorView.tsx +58 -58
- package/src/workflow/WorkflowExecutionGraph.tsx +15 -15
- package/src/workflow/WorkflowExecutionHeader.tsx +14 -14
- package/src/workflow/WorkflowExecutionPhaseBadge.tsx +11 -11
- package/src/workflow/WorkflowExecutionViewer.tsx +39 -39
- package/src/workflow/WorkflowExplainDialog.tsx +30 -30
- package/src/workflow/WorkflowFileReviewList.tsx +3 -3
- package/src/workflow/WorkflowGraphFullscreenDialog.tsx +11 -11
- package/src/workflow/WorkflowNode.tsx +14 -7
- package/src/workflow/WorkflowNodePopover.tsx +15 -15
- package/src/workflow/WorkflowOverviewGraph.tsx +9 -9
- package/src/workflow/WorkflowOverviewSummary.tsx +12 -12
- package/src/workflow/WorkflowRefinePanel.tsx +49 -49
- package/src/workflow/WorkflowRepairCard.tsx +53 -53
- package/src/workflow/WorkflowRunDialog.tsx +20 -20
- package/src/workflow/WorkflowRunForm.tsx +19 -19
- package/src/workflow/WorkflowTaskApprovalCard.tsx +19 -19
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +39 -32
- package/src/workflow/WorkflowTaskList.tsx +13 -13
- package/src/workflow/WorkflowTaskPalette.tsx +23 -23
- package/src/workflow/WorkflowTaskReviewGate.tsx +10 -10
- package/src/workflow/WorkflowVersionBadge.tsx +35 -20
- package/src/workflow/WorkflowVersionDiffViewer.tsx +24 -24
- package/src/workflow/WorkflowVersionTimeline.tsx +39 -38
- package/src/workflow/WorkflowVersionsTab.tsx +7 -7
- package/src/workflow/__tests__/WorkflowAgentCallTranscript.test.tsx +2 -2
- package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +6 -6
- package/src/workflow/__tests__/WorkflowTaskApprovalCard.test.tsx +15 -15
- package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +4 -2
- package/src/workflow/__tests__/node-shell.test.ts +2 -0
- package/src/workflow/__tests__/structured-data-viewer.test.tsx +5 -2
- package/src/workflow/__tests__/task-type-visual-registry.test.ts +2 -0
- package/src/workflow/diff/DiffSummaryBar.tsx +5 -5
- package/src/workflow/execution-comparison/ComparisonSummaryCards.tsx +11 -11
- package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +20 -20
- package/src/workflow/execution-comparison/ExecutionComparisonView.tsx +20 -18
- package/src/workflow/execution-comparison/TaskComparisonTable.tsx +55 -48
- package/src/workflow/execution-history/ExecutionFilterBar.tsx +12 -12
- package/src/workflow/execution-history/ExecutionHistoryTable.tsx +47 -38
- package/src/workflow/execution-history/FailureAnalysisPanel.tsx +18 -18
- package/src/workflow/execution-history/HealthMetricsStrip.tsx +16 -16
- package/src/workflow/execution-history/WorkflowExecutionHistory.tsx +1 -1
- package/src/workflow/facets/WorkflowArtifactsTab.tsx +3 -3
- package/src/workflow/facets/WorkflowChangesTab.tsx +8 -8
- package/src/workflow/facets/WorkflowUsageTab.tsx +24 -24
- package/src/workflow/inspector/EdgeInspector.tsx +14 -14
- package/src/workflow/inspector/InspectorHeader.tsx +36 -27
- package/src/workflow/inspector/InspectorShell.tsx +6 -6
- package/src/workflow/inspector/NestedTaskList.tsx +28 -21
- package/src/workflow/inspector/SentinelInspector.tsx +3 -3
- package/src/workflow/inspector/WorkflowSummaryPanel.tsx +37 -35
- package/src/workflow/inspector/forms/AgentCallForm.tsx +48 -48
- package/src/workflow/inspector/forms/HttpCallForm.tsx +22 -22
- package/src/workflow/inspector/tabs/AdvancedTab.tsx +12 -12
- package/src/workflow/inspector/tabs/BranchesTab.tsx +94 -64
- package/src/workflow/inspector/tabs/CatchTab.tsx +23 -23
- package/src/workflow/inspector/tabs/ConfigureTab.tsx +3 -3
- package/src/workflow/inspector/tabs/DataTab.tsx +6 -6
- package/src/workflow/inspector/tabs/DocsTab.tsx +11 -11
- package/src/workflow/inspector/tabs/IterationTab.tsx +25 -25
- package/src/workflow/inspector/tabs/RuntimeTab.tsx +16 -16
- package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +35 -35
- package/src/workflow/instance/RunVisibilityControl.tsx +10 -10
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +45 -45
- package/src/workflow/instance/WorkflowInstanceList.tsx +36 -37
- package/src/workflow/instance/__tests__/WorkflowInstanceList.test.tsx +5 -10
- package/src/workflow/node-shell/BranchBadge.tsx +9 -9
- package/src/workflow/node-shell/DiffBadge.tsx +21 -14
- package/src/workflow/node-shell/ExecutionBadge.tsx +79 -52
- package/src/workflow/node-shell/NodeActions.tsx +132 -98
- package/src/workflow/node-shell/NodeContent.tsx +9 -9
- package/src/workflow/node-shell/NodeHandles.tsx +5 -5
- package/src/workflow/node-shell/NodeShell.tsx +27 -27
- package/src/workflow/picker/BranchAddPopover.tsx +16 -16
- package/src/workflow/task-detail/StructuredDataViewer.tsx +37 -35
- package/src/workflow/templates/WorkflowTemplateCard.tsx +32 -32
- package/src/workflow/templates/WorkflowTemplateGallery.tsx +13 -13
- package/src/workflow/templates/WorkflowTemplatePreview.tsx +29 -29
- package/src/workflow/thread/WorkflowTaskThread.tsx +36 -36
- package/src/workspace/EditorTabs.tsx +102 -85
- package/src/workspace/ExplorerTree.tsx +57 -40
- package/src/workspace/FileViewer.tsx +48 -40
- package/src/workspace/PanelChip.tsx +32 -23
- package/src/workspace/WorkspaceContentSearch.tsx +26 -26
- package/src/workspace/WorkspaceEditor.tsx +63 -51
- package/src/workspace/WorkspaceFileSearch.tsx +22 -22
- package/src/workspace/WorkspaceSummary.tsx +25 -16
- package/src/workspace/WorkspaceSurface.tsx +120 -95
- package/src/workspace/__tests__/EditorTabs.test.tsx +5 -2
- package/src/workspace/__tests__/FileViewer.test.tsx +1 -1
- package/src/workspace/__tests__/WorkspaceContentSearch.test.tsx +5 -5
- package/src/workspace/__tests__/WorkspaceFileSearch.test.tsx +3 -3
- package/src/workspace/__tests__/WorkspaceSurface.test.tsx +11 -8
- package/styles.css +1 -1
- package/switch/Switch.js +2 -2
- package/switch/Switch.js.map +1 -1
- package/tabs/Tabs.js +7 -7
- package/tabs/Tabs.js.map +1 -1
- package/usage/AgentBreakdownList.js +4 -4
- package/usage/AgentBreakdownList.js.map +1 -1
- package/usage/CreditRunwayIndicator.js +1 -1
- package/usage/CreditRunwayIndicator.js.map +1 -1
- package/usage/ExportButton.js +2 -2
- package/usage/ExportButton.js.map +1 -1
- package/usage/HarnessSplitCard.js +6 -6
- package/usage/HarnessSplitCard.js.map +1 -1
- package/usage/OrgUsagePanel.js +15 -15
- package/usage/OrgUsagePanel.js.map +1 -1
- package/user/UserMenu.js +3 -3
- package/user/UserMenu.js.map +1 -1
- package/version-history/DiffFileList.js +8 -8
- package/version-history/DiffFileList.js.map +1 -1
- package/version-history/DiffSummary.js +1 -1
- package/version-history/DiffSummary.js.map +1 -1
- package/version-history/DiffViewer.js +11 -11
- package/version-history/DiffViewer.js.map +1 -1
- package/version-history/MultiFileDiffView.js +2 -2
- package/version-history/MultiFileDiffView.js.map +1 -1
- package/version-history/UnifiedDiffView.js +1 -1
- package/version-history/UnifiedDiffView.js.map +1 -1
- package/version-history/VersionTimeline.js +4 -4
- package/version-history/VersionTimeline.js.map +1 -1
- package/version-history/VersionTimelineEntry.d.ts.map +1 -1
- package/version-history/VersionTimelineEntry.js +10 -9
- package/version-history/VersionTimelineEntry.js.map +1 -1
- package/workflow/ApprovalFormBuilder.js +15 -15
- package/workflow/ApprovalFormBuilder.js.map +1 -1
- package/workflow/BranchConditionBuilder.js +8 -8
- package/workflow/BranchConditionBuilder.js.map +1 -1
- package/workflow/CanvasContextMenu.js +6 -6
- package/workflow/CanvasContextMenu.js.map +1 -1
- package/workflow/CanvasTransitionEdge.d.ts.map +1 -1
- package/workflow/CanvasTransitionEdge.js +13 -12
- package/workflow/CanvasTransitionEdge.js.map +1 -1
- package/workflow/CostByWorkflowChart.js +4 -4
- package/workflow/CostByWorkflowChart.js.map +1 -1
- package/workflow/ExecutionActiveTaskIndicator.d.ts.map +1 -1
- package/workflow/ExecutionActiveTaskIndicator.js +12 -11
- package/workflow/ExecutionActiveTaskIndicator.js.map +1 -1
- package/workflow/ExecutionSummaryWidget.js +15 -15
- package/workflow/ExecutionSummaryWidget.js.map +1 -1
- package/workflow/ExecutionTrendChart.js +10 -10
- package/workflow/ExecutionTrendChart.js.map +1 -1
- package/workflow/FailedRunsWidget.js +3 -3
- package/workflow/FailedRunsWidget.js.map +1 -1
- package/workflow/PendingApprovalsWidget.js +3 -3
- package/workflow/PendingApprovalsWidget.js.map +1 -1
- package/workflow/TaskConfigForm.js +12 -12
- package/workflow/TaskConfigForm.js.map +1 -1
- package/workflow/TaskPickerPopover.js +5 -5
- package/workflow/TaskPickerPopover.js.map +1 -1
- package/workflow/ViewYamlDialog.js +2 -2
- package/workflow/ViewYamlDialog.js.map +1 -1
- package/workflow/WorkflowAgentCallTranscript.js +2 -2
- package/workflow/WorkflowAgentCallTranscript.js.map +1 -1
- package/workflow/WorkflowApprovalList.js +2 -2
- package/workflow/WorkflowApprovalList.js.map +1 -1
- package/workflow/WorkflowArchitectDialog.js +9 -9
- package/workflow/WorkflowArchitectDialog.js.map +1 -1
- package/workflow/WorkflowArtifactDocument.js +7 -7
- package/workflow/WorkflowArtifactDocument.js.map +1 -1
- package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
- package/workflow/WorkflowCanvasEditor.js +13 -6
- package/workflow/WorkflowCanvasEditor.js.map +1 -1
- package/workflow/WorkflowCanvasInner.js +1 -1
- package/workflow/WorkflowCanvasInner.js.map +1 -1
- package/workflow/WorkflowCodePreviewGraph.js +2 -2
- package/workflow/WorkflowCodePreviewGraph.js.map +1 -1
- package/workflow/WorkflowDashboard.js +1 -1
- package/workflow/WorkflowDashboard.js.map +1 -1
- package/workflow/WorkflowDetailView.js +15 -15
- package/workflow/WorkflowDetailView.js.map +1 -1
- package/workflow/WorkflowDiffGraph.js +3 -3
- package/workflow/WorkflowDiffGraph.js.map +1 -1
- package/workflow/WorkflowEditorView.js +13 -13
- package/workflow/WorkflowEditorView.js.map +1 -1
- package/workflow/WorkflowExecutionGraph.js +6 -6
- package/workflow/WorkflowExecutionGraph.js.map +1 -1
- package/workflow/WorkflowExecutionHeader.js +4 -4
- package/workflow/WorkflowExecutionHeader.js.map +1 -1
- package/workflow/WorkflowExecutionPhaseBadge.js +9 -9
- package/workflow/WorkflowExecutionPhaseBadge.js.map +1 -1
- package/workflow/WorkflowExecutionViewer.js +16 -16
- package/workflow/WorkflowExecutionViewer.js.map +1 -1
- package/workflow/WorkflowExplainDialog.js +2 -2
- package/workflow/WorkflowExplainDialog.js.map +1 -1
- package/workflow/WorkflowFileReviewList.js +2 -2
- package/workflow/WorkflowFileReviewList.js.map +1 -1
- package/workflow/WorkflowGraphFullscreenDialog.js +1 -1
- package/workflow/WorkflowGraphFullscreenDialog.js.map +1 -1
- package/workflow/WorkflowNode.d.ts.map +1 -1
- package/workflow/WorkflowNode.js +2 -1
- package/workflow/WorkflowNode.js.map +1 -1
- package/workflow/WorkflowNodePopover.js +2 -2
- package/workflow/WorkflowNodePopover.js.map +1 -1
- package/workflow/WorkflowOverviewGraph.js +4 -4
- package/workflow/WorkflowOverviewGraph.js.map +1 -1
- package/workflow/WorkflowOverviewSummary.js +8 -8
- package/workflow/WorkflowOverviewSummary.js.map +1 -1
- package/workflow/WorkflowRefinePanel.js +5 -5
- package/workflow/WorkflowRefinePanel.js.map +1 -1
- package/workflow/WorkflowRepairCard.js +5 -5
- package/workflow/WorkflowRepairCard.js.map +1 -1
- package/workflow/WorkflowRunDialog.js +2 -2
- package/workflow/WorkflowRunDialog.js.map +1 -1
- package/workflow/WorkflowRunForm.js +10 -10
- package/workflow/WorkflowRunForm.js.map +1 -1
- package/workflow/WorkflowTaskApprovalCard.js +1 -1
- package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.js +11 -9
- package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
- package/workflow/WorkflowTaskList.js +5 -5
- package/workflow/WorkflowTaskList.js.map +1 -1
- package/workflow/WorkflowTaskPalette.js +5 -5
- package/workflow/WorkflowTaskPalette.js.map +1 -1
- package/workflow/WorkflowTaskReviewGate.js +3 -3
- package/workflow/WorkflowTaskReviewGate.js.map +1 -1
- package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
- package/workflow/WorkflowVersionBadge.js +2 -1
- package/workflow/WorkflowVersionBadge.js.map +1 -1
- package/workflow/WorkflowVersionDiffViewer.js +12 -12
- package/workflow/WorkflowVersionDiffViewer.js.map +1 -1
- package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowVersionTimeline.js +8 -7
- package/workflow/WorkflowVersionTimeline.js.map +1 -1
- package/workflow/WorkflowVersionsTab.js +1 -1
- package/workflow/WorkflowVersionsTab.js.map +1 -1
- package/workflow/diff/DiffSummaryBar.js +2 -2
- package/workflow/diff/DiffSummaryBar.js.map +1 -1
- package/workflow/execution-comparison/ComparisonSummaryCards.js +1 -1
- package/workflow/execution-comparison/ComparisonSummaryCards.js.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -7
- package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonView.d.ts.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonView.js +5 -4
- package/workflow/execution-comparison/ExecutionComparisonView.js.map +1 -1
- package/workflow/execution-comparison/TaskComparisonTable.d.ts.map +1 -1
- package/workflow/execution-comparison/TaskComparisonTable.js +23 -22
- package/workflow/execution-comparison/TaskComparisonTable.js.map +1 -1
- package/workflow/execution-history/ExecutionFilterBar.js +5 -5
- package/workflow/execution-history/ExecutionFilterBar.js.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.js +15 -13
- package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
- package/workflow/execution-history/FailureAnalysisPanel.js +4 -4
- package/workflow/execution-history/FailureAnalysisPanel.js.map +1 -1
- package/workflow/execution-history/HealthMetricsStrip.js +8 -8
- package/workflow/execution-history/HealthMetricsStrip.js.map +1 -1
- package/workflow/execution-history/WorkflowExecutionHistory.js +1 -1
- package/workflow/execution-history/WorkflowExecutionHistory.js.map +1 -1
- package/workflow/facets/WorkflowArtifactsTab.js +2 -2
- package/workflow/facets/WorkflowArtifactsTab.js.map +1 -1
- package/workflow/facets/WorkflowChangesTab.js +5 -5
- package/workflow/facets/WorkflowChangesTab.js.map +1 -1
- package/workflow/facets/WorkflowUsageTab.js +6 -6
- package/workflow/facets/WorkflowUsageTab.js.map +1 -1
- package/workflow/inspector/EdgeInspector.js +1 -1
- package/workflow/inspector/EdgeInspector.js.map +1 -1
- package/workflow/inspector/InspectorHeader.d.ts.map +1 -1
- package/workflow/inspector/InspectorHeader.js +9 -7
- package/workflow/inspector/InspectorHeader.js.map +1 -1
- package/workflow/inspector/InspectorShell.js +2 -2
- package/workflow/inspector/InspectorShell.js.map +1 -1
- package/workflow/inspector/NestedTaskList.d.ts.map +1 -1
- package/workflow/inspector/NestedTaskList.js +3 -2
- package/workflow/inspector/NestedTaskList.js.map +1 -1
- package/workflow/inspector/SentinelInspector.js +1 -1
- package/workflow/inspector/SentinelInspector.js.map +1 -1
- package/workflow/inspector/WorkflowSummaryPanel.d.ts.map +1 -1
- package/workflow/inspector/WorkflowSummaryPanel.js +6 -5
- package/workflow/inspector/WorkflowSummaryPanel.js.map +1 -1
- package/workflow/inspector/forms/AgentCallForm.js +9 -9
- package/workflow/inspector/forms/AgentCallForm.js.map +1 -1
- package/workflow/inspector/forms/HttpCallForm.js +4 -4
- package/workflow/inspector/forms/HttpCallForm.js.map +1 -1
- package/workflow/inspector/tabs/AdvancedTab.js +2 -2
- package/workflow/inspector/tabs/AdvancedTab.js.map +1 -1
- package/workflow/inspector/tabs/BranchesTab.d.ts.map +1 -1
- package/workflow/inspector/tabs/BranchesTab.js +9 -6
- package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
- package/workflow/inspector/tabs/CatchTab.js +2 -2
- package/workflow/inspector/tabs/CatchTab.js.map +1 -1
- package/workflow/inspector/tabs/ConfigureTab.js +3 -3
- package/workflow/inspector/tabs/ConfigureTab.js.map +1 -1
- package/workflow/inspector/tabs/DataTab.js +1 -1
- package/workflow/inspector/tabs/DataTab.js.map +1 -1
- package/workflow/inspector/tabs/DocsTab.js +1 -1
- package/workflow/inspector/tabs/DocsTab.js.map +1 -1
- package/workflow/inspector/tabs/IterationTab.js +3 -3
- package/workflow/inspector/tabs/IterationTab.js.map +1 -1
- package/workflow/inspector/tabs/RuntimeTab.js +9 -9
- package/workflow/inspector/tabs/RuntimeTab.js.map +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.js +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.js.map +1 -1
- package/workflow/instance/RunVisibilityControl.js +5 -5
- package/workflow/instance/RunVisibilityControl.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +2 -2
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceList.js +5 -4
- package/workflow/instance/WorkflowInstanceList.js.map +1 -1
- package/workflow/node-shell/BranchBadge.js +3 -3
- package/workflow/node-shell/BranchBadge.js.map +1 -1
- package/workflow/node-shell/DiffBadge.d.ts.map +1 -1
- package/workflow/node-shell/DiffBadge.js +6 -5
- package/workflow/node-shell/DiffBadge.js.map +1 -1
- package/workflow/node-shell/ExecutionBadge.d.ts.map +1 -1
- package/workflow/node-shell/ExecutionBadge.js +11 -10
- package/workflow/node-shell/ExecutionBadge.js.map +1 -1
- package/workflow/node-shell/NodeActions.d.ts.map +1 -1
- package/workflow/node-shell/NodeActions.js +14 -13
- package/workflow/node-shell/NodeActions.js.map +1 -1
- package/workflow/node-shell/NodeContent.js +5 -5
- package/workflow/node-shell/NodeContent.js.map +1 -1
- package/workflow/node-shell/NodeHandles.js +5 -5
- package/workflow/node-shell/NodeHandles.js.map +1 -1
- package/workflow/node-shell/NodeShell.js +14 -14
- package/workflow/node-shell/NodeShell.js.map +1 -1
- package/workflow/picker/BranchAddPopover.js +2 -2
- package/workflow/picker/BranchAddPopover.js.map +1 -1
- package/workflow/task-detail/StructuredDataViewer.d.ts.map +1 -1
- package/workflow/task-detail/StructuredDataViewer.js +16 -12
- package/workflow/task-detail/StructuredDataViewer.js.map +1 -1
- package/workflow/templates/WorkflowTemplateCard.js +17 -17
- package/workflow/templates/WorkflowTemplateCard.js.map +1 -1
- package/workflow/templates/WorkflowTemplateGallery.js +5 -5
- package/workflow/templates/WorkflowTemplateGallery.js.map +1 -1
- package/workflow/templates/WorkflowTemplatePreview.js +5 -5
- package/workflow/templates/WorkflowTemplatePreview.js.map +1 -1
- package/workflow/thread/WorkflowTaskThread.js +16 -16
- package/workflow/thread/WorkflowTaskThread.js.map +1 -1
- package/workspace/EditorTabs.d.ts.map +1 -1
- package/workspace/EditorTabs.js +38 -37
- package/workspace/EditorTabs.js.map +1 -1
- package/workspace/ExplorerTree.d.ts.map +1 -1
- package/workspace/ExplorerTree.js +7 -6
- package/workspace/ExplorerTree.js.map +1 -1
- package/workspace/FileViewer.d.ts.map +1 -1
- package/workspace/FileViewer.js +21 -20
- package/workspace/FileViewer.js.map +1 -1
- package/workspace/PanelChip.d.ts.map +1 -1
- package/workspace/PanelChip.js +2 -1
- package/workspace/PanelChip.js.map +1 -1
- package/workspace/WorkspaceContentSearch.js +11 -11
- package/workspace/WorkspaceContentSearch.js.map +1 -1
- package/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/workspace/WorkspaceEditor.js +11 -10
- package/workspace/WorkspaceEditor.js.map +1 -1
- package/workspace/WorkspaceFileSearch.js +9 -9
- package/workspace/WorkspaceFileSearch.js.map +1 -1
- package/workspace/WorkspaceSummary.d.ts.map +1 -1
- package/workspace/WorkspaceSummary.js +8 -3
- package/workspace/WorkspaceSummary.js.map +1 -1
- package/workspace/WorkspaceSurface.d.ts.map +1 -1
- package/workspace/WorkspaceSurface.js +28 -27
- package/workspace/WorkspaceSurface.js.map +1 -1
|
@@ -18,8 +18,8 @@ export function ConversationAttentionBanner({ conversation, participation, class
|
|
|
18
18
|
return null;
|
|
19
19
|
const { clearAttention, pendingCommands, commandErrors } = participation;
|
|
20
20
|
const error = commandErrors.get("clearAttention");
|
|
21
|
-
return (_jsxs("div", { className: cn("border-b border-border bg-destructive-subtle px-4 py-2", className), role: "status", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("p", { className: "flex min-w-0 items-start gap-1.5 text-sm text-destructive", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "mt-0.5 size-4 shrink-0" }), _jsxs("span", { className: "min-w-0 break-words", children: ["The agent asked for a human", conversation.attentionReason ? (_jsxs(_Fragment, { children: [" \u2014 \u201C", conversation.attentionReason, "\u201D"] })) : (".")] })] }), _jsx(Button, { variant: "outline", size: "xs", onClick: () => void clearAttention().catch(() => {
|
|
21
|
+
return (_jsxs("div", { className: cn("stg:border-b stg:border-border stg:bg-destructive-subtle stg:px-4 stg:py-2", className), role: "status", children: [_jsxs("div", { className: "stg:flex stg:flex-wrap stg:items-center stg:justify-between stg:gap-2", children: [_jsxs("p", { className: "stg:flex stg:min-w-0 stg:items-start stg:gap-1.5 stg:text-sm stg:text-destructive", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "stg:mt-0.5 stg:size-4 stg:shrink-0" }), _jsxs("span", { className: "stg:min-w-0 stg:break-words", children: ["The agent asked for a human", conversation.attentionReason ? (_jsxs(_Fragment, { children: [" \u2014 \u201C", conversation.attentionReason, "\u201D"] })) : (".")] })] }), _jsx(Button, { variant: "outline", size: "xs", onClick: () => void clearAttention().catch(() => {
|
|
22
22
|
// Recorded in commandErrors and rendered below.
|
|
23
|
-
}), disabled: pendingCommands.has("clearAttention"), children: pendingCommands.has("clearAttention") ? "Dismissing…" : "Dismiss" })] }), error && (_jsx("p", { className: "mt-1 text-xs text-destructive", children: getUserMessage(error) }))] }));
|
|
23
|
+
}), disabled: pendingCommands.has("clearAttention"), children: pendingCommands.has("clearAttention") ? "Dismissing…" : "Dismiss" })] }), error && (_jsx("p", { className: "stg:mt-1 stg:text-xs stg:text-destructive", children: getUserMessage(error) }))] }));
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=ConversationAttentionBanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationAttentionBanner.js","sourceRoot":"","sources":["../../src/conversation/ConversationAttentionBanner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAC1C,YAAY,EACZ,aAAa,EACb,SAAS,GACwB;IACjC,IAAI,CAAC,YAAY,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IACzE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAElD,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"ConversationAttentionBanner.js","sourceRoot":"","sources":["../../src/conversation/ConversationAttentionBanner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAC1C,YAAY,EACZ,aAAa,EACb,SAAS,GACwB;IACjC,IAAI,CAAC,YAAY,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IACzE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAElD,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,4EAA4E,EAC5E,SAAS,CACV,EACD,IAAI,EAAC,QAAQ,aAEb,eAAK,SAAS,EAAC,uEAAuE,aACpF,aAAG,SAAS,EAAC,mFAAmF,aAC9F,KAAC,aAAa,mBAAa,MAAM,EAAC,SAAS,EAAC,oCAAoC,GAAG,EACnF,gBAAM,SAAS,EAAC,6BAA6B,4CAE1C,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAC9B,gDAAa,YAAY,CAAC,eAAe,cAAW,CACrD,CAAC,CAAC,CAAC,CACF,GAAG,CACJ,IACI,IACL,EACJ,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CACZ,KAAK,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;4BAC/B,gDAAgD;wBAClD,CAAC,CAAC,EAEJ,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAE9C,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,GAC3D,IACL,EACL,KAAK,IAAI,CACR,YAAG,SAAS,EAAC,2CAA2C,YAAE,cAAc,CAAC,KAAK,CAAC,GAAK,CACrF,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -50,8 +50,8 @@ export function ConversationComposer({ onSend, isSending, disabledReason, adviso
|
|
|
50
50
|
disabled: disabledReason !== null || isSending,
|
|
51
51
|
});
|
|
52
52
|
if (disabledReason !== null) {
|
|
53
|
-
return (_jsx("div", { className: cn("border-t border-border px-4 py-3", className), children: _jsx("p", { className: "text-center text-xs text-muted-foreground", children: disabledReason }) }));
|
|
53
|
+
return (_jsx("div", { className: cn("stg:border-t stg:border-border stg:px-4 stg:py-3", className), children: _jsx("p", { className: "stg:text-center stg:text-xs stg:text-muted-foreground", children: disabledReason }) }));
|
|
54
54
|
}
|
|
55
|
-
return (_jsxs("div", { className: cn("border-t border-border px-4 py-3", className), children: [hasAdvisory && (_jsxs("p", { id: advisoryId, className: "mb-2 flex items-start gap-1.5 rounded-md bg-status-degraded-subtle px-2.5 py-1.5 text-xs text-status-degraded", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "mt-0.5 size-3.5 shrink-0" }), _jsx("span", { className: "min-w-0", children: advisory })] })), notice && (_jsx("p", { className: cn("mb-2 text-xs", notice.kind === "queued" ? "text-muted-foreground" : "text-destructive"), role: "status", children: notice.text })), _jsxs("div", { className: "flex items-end gap-2", children: [_jsx("textarea", { ...composer.textareaProps, rows: 1, placeholder: "Reply as your business\u2026", "aria-label": "Reply to the customer", "aria-describedby": hasAdvisory ? advisoryId : undefined, className: cn("min-h-9 flex-1 resize-none rounded-md border border-border bg-background", "px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground-faint", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring") }), _jsxs(Button, { variant: "primary", size: "sm", onClick: composer.submit, disabled: !composer.canSubmit || isSending, "aria-label": "Send reply", children: [isSending ? _jsx(SpinnerIcon, {}) : _jsx(Send, { "aria-hidden": "true", className: "size-4" }), isSending ? "Sending…" : "Send"] })] })] }));
|
|
55
|
+
return (_jsxs("div", { className: cn("stg:border-t stg:border-border stg:px-4 stg:py-3", className), children: [hasAdvisory && (_jsxs("p", { id: advisoryId, className: "stg:mb-2 stg:flex stg:items-start stg:gap-1.5 stg:rounded-md stg:bg-status-degraded-subtle stg:px-2.5 stg:py-1.5 stg:text-xs stg:text-status-degraded", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "stg:mt-0.5 stg:size-3.5 stg:shrink-0" }), _jsx("span", { className: "stg:min-w-0", children: advisory })] })), notice && (_jsx("p", { className: cn("stg:mb-2 stg:text-xs", notice.kind === "queued" ? "stg:text-muted-foreground" : "stg:text-destructive"), role: "status", children: notice.text })), _jsxs("div", { className: "stg:flex stg:items-end stg:gap-2", children: [_jsx("textarea", { ...composer.textareaProps, rows: 1, placeholder: "Reply as your business\u2026", "aria-label": "Reply to the customer", "aria-describedby": hasAdvisory ? advisoryId : undefined, className: cn("stg:min-h-9 stg:flex-1 stg:resize-none stg:rounded-md stg:border stg:border-border stg:bg-background", "stg:px-3 stg:py-2 stg:text-sm stg:text-foreground stg:placeholder:text-muted-foreground-faint", "stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring") }), _jsxs(Button, { variant: "primary", size: "sm", onClick: composer.submit, disabled: !composer.canSubmit || isSending, "aria-label": "Send reply", children: [isSending ? _jsx(SpinnerIcon, {}) : _jsx(Send, { "aria-hidden": "true", className: "stg:size-4" }), isSending ? "Sending…" : "Send"] })] })] }));
|
|
56
56
|
}
|
|
57
57
|
//# sourceMappingURL=ConversationComposer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationComposer.js","sourceRoot":"","sources":["../../src/conversation/ConversationComposer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kEAAkE,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AA6BzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,MAAM,EACN,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,GACiB;IAC1B,MAAM,UAAU,GAAG,KAAK,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAG1B,IAAI,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACpB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAClB,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;oBAClD,0DAA0D;oBAC1D,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC7B,SAAS,CAAC;wBACR,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,oCAAoC;qBAC5D,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACxD,SAAS,CAAC;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,8EAA8E;qBACrF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC7B,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC,CACF,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,cAAc,KAAK,IAAI,IAAI,SAAS;KAC/C,CAAC,CAAC;IAEH,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ConversationComposer.js","sourceRoot":"","sources":["../../src/conversation/ConversationComposer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export function ConversationControlBanner({ conversation, participation, unanswe
|
|
|
33
33
|
// Recorded in commandErrors and rendered below.
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
|
-
return (_jsxs("div", { className: cn("border-b border-border px-4 py-2", humanHeld ? "bg-primary-subtle" : "bg-muted-faint", className), children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsx("p", { className: "flex items-center gap-1.5 text-sm text-foreground", children: humanHeld ? (_jsxs(_Fragment, { children: [_jsx(User, { "aria-hidden": "true", className: "size-4 text-muted-foreground" }), heldByMe
|
|
36
|
+
return (_jsxs("div", { className: cn("stg:border-b stg:border-border stg:px-4 stg:py-2", humanHeld ? "stg:bg-primary-subtle" : "stg:bg-muted-faint", className), children: [_jsxs("div", { className: "stg:flex stg:flex-wrap stg:items-center stg:justify-between stg:gap-2", children: [_jsx("p", { className: "stg:flex stg:items-center stg:gap-1.5 stg:text-sm stg:text-foreground", children: humanHeld ? (_jsxs(_Fragment, { children: [_jsx(User, { "aria-hidden": "true", className: "stg:size-4 stg:text-muted-foreground" }), heldByMe
|
|
37
37
|
? "You have this conversation — the agent is quiet until you hand it back."
|
|
38
38
|
: currentIdentityAccountId !== undefined
|
|
39
39
|
? "A teammate has this conversation — the agent is quiet until handback."
|
|
@@ -41,19 +41,19 @@ export function ConversationControlBanner({ conversation, participation, unanswe
|
|
|
41
41
|
// viewer themself — claiming "a teammate" would be a
|
|
42
42
|
// guess. State only what the row proves: a human
|
|
43
43
|
// holds it (channel-conversations F-01).
|
|
44
|
-
"This conversation is with a human — the agent is quiet until handback."] })) : (_jsxs(_Fragment, { children: [_jsx(Bot, { "aria-hidden": "true", className: "size-4 text-muted-foreground" }), "The agent is serving this conversation."] })) }), confirmingHandBack ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-xs text-destructive", children: "The customer's last message has no reply \u2014 the agent stays quiet until they write again." }), _jsx(Button, { variant: "outline", size: "xs", onClick: () => {
|
|
44
|
+
"This conversation is with a human — the agent is quiet until handback."] })) : (_jsxs(_Fragment, { children: [_jsx(Bot, { "aria-hidden": "true", className: "stg:size-4 stg:text-muted-foreground" }), "The agent is serving this conversation."] })) }), confirmingHandBack ? (_jsxs("div", { className: "stg:flex stg:items-center stg:gap-2", children: [_jsx("span", { className: "stg:text-xs stg:text-destructive", children: "The customer's last message has no reply \u2014 the agent stays quiet until they write again." }), _jsx(Button, { variant: "outline", size: "xs", onClick: () => {
|
|
45
45
|
setConfirmingHandBack(false);
|
|
46
46
|
void handBack().catch(() => {
|
|
47
47
|
// Recorded in commandErrors and rendered below.
|
|
48
48
|
});
|
|
49
|
-
}, disabled: pendingCommands.has("handBack"), children: "Hand back anyway" }), _jsx(Button, { variant: "primary", size: "xs", onClick: () => setConfirmingHandBack(false), children: "Keep the conversation" })] })) : humanHeld ? (_jsx(Button, { variant: "outline", size: "xs", onClick: requestHandBack, disabled: pendingCommands.has("handBack"), children: pendingCommands.has("handBack") ? "Handing back…" : "Hand back to agent" })) : (_jsxs("div", { className: "flex items-center gap-2", children: [!supportsStaffReplies && (
|
|
49
|
+
}, disabled: pendingCommands.has("handBack"), children: "Hand back anyway" }), _jsx(Button, { variant: "primary", size: "xs", onClick: () => setConfirmingHandBack(false), children: "Keep the conversation" })] })) : humanHeld ? (_jsx(Button, { variant: "outline", size: "xs", onClick: requestHandBack, disabled: pendingCommands.has("handBack"), children: pendingCommands.has("handBack") ? "Handing back…" : "Hand back to agent" })) : (_jsxs("div", { className: "stg:flex stg:items-center stg:gap-2", children: [!supportsStaffReplies && (
|
|
50
50
|
// Visible text, never a native title (F-18): a disabled
|
|
51
51
|
// Button swallows hover (disabled:pointer-events-none) and
|
|
52
52
|
// leaves the tab order, so a title on it is unreachable by
|
|
53
53
|
// every input method. Kept short — the composer's own
|
|
54
54
|
// notice already explains the missing staff reply lane.
|
|
55
|
-
_jsx("span", { className: "text-xs text-muted-foreground", children: "This channel's provider has no staff send lane yet \u2014 a takeover would silence the agent with no way to reply." })), _jsx(Button, { variant: "outline", size: "xs", onClick: () => void takeOver().catch(() => {
|
|
55
|
+
_jsx("span", { className: "stg:text-xs stg:text-muted-foreground", children: "This channel's provider has no staff send lane yet \u2014 a takeover would silence the agent with no way to reply." })), _jsx(Button, { variant: "outline", size: "xs", onClick: () => void takeOver().catch(() => {
|
|
56
56
|
// Recorded in commandErrors and rendered below.
|
|
57
|
-
}), disabled: !supportsStaffReplies || pendingCommands.has("takeOver"), children: pendingCommands.has("takeOver") ? "Taking over…" : "Take over" })] }))] }), error && (_jsx("p", { className: "mt-1 text-xs text-destructive", children: getUserMessage(error) }))] }));
|
|
57
|
+
}), disabled: !supportsStaffReplies || pendingCommands.has("takeOver"), children: pendingCommands.has("takeOver") ? "Taking over…" : "Take over" })] }))] }), error && (_jsx("p", { className: "stg:mt-1 stg:text-xs stg:text-destructive", children: getUserMessage(error) }))] }));
|
|
58
58
|
}
|
|
59
59
|
//# sourceMappingURL=ConversationControlBanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationControlBanner.js","sourceRoot":"","sources":["../../src/conversation/ConversationControlBanner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,mBAAmB,GAEpB,MAAM,uEAAuE,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA0C7C;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,SAAS,GACsB;IAC/B,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,KAAK,mBAAmB,CAAC,aAAa,CAAC;IAC7E,MAAM,QAAQ,GACZ,SAAS;QACT,wBAAwB,KAAK,SAAS;QACtC,YAAY,CAAC,YAAY,KAAK,wBAAwB,CAAC;IAEzD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IAC7E,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE7E,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,kBAAkB,EAAE,CAAC;YACvB,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACzB,gDAAgD;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"ConversationControlBanner.js","sourceRoot":"","sources":["../../src/conversation/ConversationControlBanner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,12 +29,12 @@ export function ConversationListPane({ conversations, isLoading, error, hasMore,
|
|
|
29
29
|
channel.metadata?.id ?? "",
|
|
30
30
|
channelProviderOf(channel.spec?.providerConfig?.case),
|
|
31
31
|
]));
|
|
32
|
-
return (_jsxs("div", { "aria-label": "Conversation list", className: cn("flex min-h-0 flex-col", className), children: [(onFilterChange !== undefined || channels.length > 1) && (_jsxs("div", { className: "flex flex-col gap-2 border-b border-border px-3 py-2", children: [onFilterChange !== undefined && (_jsx(ConversationFilterToggle, { value: filter, onChange: onFilterChange })), channels.length > 1 && (_jsxs(_Fragment, { children: [_jsx("label", { className: "sr-only", htmlFor: "stgm-conversation-channel-filter", children: "Filter by channel" }), _jsxs("select", { id: "stgm-conversation-channel-filter", value: channelFilter, onChange: (e) => onChannelFilterChange(e.target.value), className: cn("w-full rounded-md border border-border bg-background px-2 py-1.5", "text-sm text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"), children: [_jsx("option", { value: "", children: "All channels" }), channels.map((channel) => (_jsx("option", { value: channel.metadata?.id, children: channel.metadata?.name || channel.metadata?.slug }, channel.metadata?.id)))] })] }))] })), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: isLoading ? (_jsx(ListSkeleton, {})) : error ? (_jsx("p", { className: "px-2 py-6 text-center text-sm text-destructive", children: getUserMessage(error) })) : conversations.length === 0 ? (channels.length === 0 ? (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "size-8" }), title: "No channels to watch", description: "Conversations arrive through an agent's channels. Connect a channel \u2014 or ask a channel owner for access \u2014 and customer conversations appear here." })) : filter === ChannelConversationListFilter.filter_wants_human ? (
|
|
32
|
+
return (_jsxs("div", { "aria-label": "Conversation list", className: cn("stg:flex stg:min-h-0 stg:flex-col", className), children: [(onFilterChange !== undefined || channels.length > 1) && (_jsxs("div", { className: "stg:flex stg:flex-col stg:gap-2 stg:border-b stg:border-border stg:px-3 stg:py-2", children: [onFilterChange !== undefined && (_jsx(ConversationFilterToggle, { value: filter, onChange: onFilterChange })), channels.length > 1 && (_jsxs(_Fragment, { children: [_jsx("label", { className: "stg:sr-only", htmlFor: "stgm-conversation-channel-filter", children: "Filter by channel" }), _jsxs("select", { id: "stgm-conversation-channel-filter", value: channelFilter, onChange: (e) => onChannelFilterChange(e.target.value), className: cn("stg:w-full stg:rounded-md stg:border stg:border-border stg:bg-background stg:px-2 stg:py-1.5", "stg:text-sm stg:text-foreground", "stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring"), children: [_jsx("option", { value: "", children: "All channels" }), channels.map((channel) => (_jsx("option", { value: channel.metadata?.id, children: channel.metadata?.name || channel.metadata?.slug }, channel.metadata?.id)))] })] }))] })), _jsx("div", { className: "stg:min-h-0 stg:flex-1 stg:overflow-y-auto stg:p-2", children: isLoading ? (_jsx(ListSkeleton, {})) : error ? (_jsx("p", { className: "stg:px-2 stg:py-6 stg:text-center stg:text-sm stg:text-destructive", children: getUserMessage(error) })) : conversations.length === 0 ? (channels.length === 0 ? (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "stg:size-8" }), title: "No channels to watch", description: "Conversations arrive through an agent's channels. Connect a channel \u2014 or ask a channel owner for access \u2014 and customer conversations appear here." })) : filter === ChannelConversationListFilter.filter_wants_human ? (
|
|
33
33
|
// Its own empty state on purpose: under the filter, "No
|
|
34
34
|
// conversations yet — when a customer messages…" would lie
|
|
35
35
|
// to an org with a full inbox and nothing needing a person.
|
|
36
|
-
_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "size-8" }), title: "Nothing needs a human right now", description: "Conversations appear here when the agent asks for attention, or when a human-held conversation has a customer message awaiting a reply." })) : (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "size-8" }), title: "No conversations yet", description: "When a customer messages one of your channels, their conversation appears here." }))) : (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsx("ul", { className: "space-y-0.5", children: conversations.map((conversation) => (_jsx(ConversationRow, { conversation: conversation, label: conversationLabelOf(conversation, providerById.get(conversation.agentChannelId)?.id ?? null), contact: conversationContactOf(conversation, providerById.get(conversation.agentChannelId)?.id ?? null), isSelected: selected?.agentChannelId === conversation.agentChannelId &&
|
|
37
|
-
selected?.conversationKey === conversation.conversationKey, onSelect: onSelect, now: now }, `${conversation.agentChannelId}:${conversation.conversationKey}`))) }) }), hasMore && (_jsx("div", { className: "flex justify-center py-2", children: _jsx(Button, { variant: "ghost", size: "xs", onClick: loadMore, disabled: isLoadingMore, children: isLoadingMore ? "Loading…" : "Show more" }) }))] })) })] }));
|
|
36
|
+
_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "stg:size-8" }), title: "Nothing needs a human right now", description: "Conversations appear here when the agent asks for attention, or when a human-held conversation has a customer message awaiting a reply." })) : (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "stg:size-8" }), title: "No conversations yet", description: "When a customer messages one of your channels, their conversation appears here." }))) : (_jsxs(_Fragment, { children: [_jsx(TooltipProvider, { children: _jsx("ul", { className: "stg:space-y-0.5", children: conversations.map((conversation) => (_jsx(ConversationRow, { conversation: conversation, label: conversationLabelOf(conversation, providerById.get(conversation.agentChannelId)?.id ?? null), contact: conversationContactOf(conversation, providerById.get(conversation.agentChannelId)?.id ?? null), isSelected: selected?.agentChannelId === conversation.agentChannelId &&
|
|
37
|
+
selected?.conversationKey === conversation.conversationKey, onSelect: onSelect, now: now }, `${conversation.agentChannelId}:${conversation.conversationKey}`))) }) }), hasMore && (_jsx("div", { className: "stg:flex stg:justify-center stg:py-2", children: _jsx(Button, { variant: "ghost", size: "xs", onClick: loadMore, disabled: isLoadingMore, children: isLoadingMore ? "Loading…" : "Show more" }) }))] })) })] }));
|
|
38
38
|
}
|
|
39
39
|
const FILTER_OPTIONS = [
|
|
40
40
|
{
|
|
@@ -79,13 +79,13 @@ function ConversationFilterToggle({ value, onChange, }) {
|
|
|
79
79
|
handleSelect(FILTER_OPTIONS[nextIndex].value);
|
|
80
80
|
}
|
|
81
81
|
}, [handleSelect]);
|
|
82
|
-
return (_jsx("div", { role: "radiogroup", "aria-label": "Conversation filter", className: "inline-flex self-start rounded-md bg-muted p-0.5", children: FILTER_OPTIONS.map((option, index) => {
|
|
82
|
+
return (_jsx("div", { role: "radiogroup", "aria-label": "Conversation filter", className: "stg:inline-flex stg:self-start stg:rounded-md stg:bg-muted stg:p-0.5", children: FILTER_OPTIONS.map((option, index) => {
|
|
83
83
|
const isSelected = value === option.value;
|
|
84
84
|
return (_jsx("button", { ref: (el) => {
|
|
85
85
|
optionRefs.current[index] = el;
|
|
86
|
-
}, type: "button", role: "radio", "aria-checked": isSelected, "aria-label": option.ariaLabel, tabIndex: isSelected ? 0 : -1, onClick: () => handleSelect(option.value), onKeyDown: (e) => handleKeyDown(e, index), className: cn("inline-flex cursor-pointer items-center rounded-sm px-2 py-1 text-xs font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isSelected
|
|
87
|
-
? "bg-background text-foreground shadow-sm"
|
|
88
|
-
: "text-muted-foreground hover:text-foreground"), children: option.label }, option.value));
|
|
86
|
+
}, type: "button", role: "radio", "aria-checked": isSelected, "aria-label": option.ariaLabel, tabIndex: isSelected ? 0 : -1, onClick: () => handleSelect(option.value), onKeyDown: (e) => handleKeyDown(e, index), className: cn("stg:inline-flex stg:cursor-pointer stg:items-center stg:rounded-sm stg:px-2 stg:py-1 stg:text-xs stg:font-medium stg:transition-colors", "stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring", isSelected
|
|
87
|
+
? "stg:bg-background stg:text-foreground stg:shadow-sm"
|
|
88
|
+
: "stg:text-muted-foreground stg:hover:text-foreground"), children: option.label }, option.value));
|
|
89
89
|
}) }));
|
|
90
90
|
}
|
|
91
91
|
const ConversationRow = memo(function ConversationRow({ conversation, label, contact, isSelected, onSelect, now, }) {
|
|
@@ -94,27 +94,27 @@ const ConversationRow = memo(function ConversationRow({ conversation, label, con
|
|
|
94
94
|
const lastActivity = conversation.lastActivityAt
|
|
95
95
|
? timestampDate(conversation.lastActivityAt)
|
|
96
96
|
: null;
|
|
97
|
-
return (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => onSelect(conversation), "aria-current": isSelected ? "true" : undefined, className: cn("flex w-full items-center gap-2.5 rounded-md px-2.5 py-2 text-left", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isSelected ? "bg-primary-subtle" : "hover:bg-accent"), children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("p", { className: "truncate text-sm font-medium text-foreground", children: label }), conversation.needsAttention && (
|
|
97
|
+
return (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => onSelect(conversation), "aria-current": isSelected ? "true" : undefined, className: cn("stg:flex stg:w-full stg:items-center stg:gap-2.5 stg:rounded-md stg:px-2.5 stg:py-2 stg:text-left", "stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring", isSelected ? "stg:bg-primary-subtle" : "stg:hover:bg-accent"), children: [_jsxs("div", { className: "stg:min-w-0 stg:flex-1", children: [_jsxs("div", { className: "stg:flex stg:items-center stg:gap-1.5", children: [_jsx("p", { className: "stg:truncate stg:text-sm stg:font-medium stg:text-foreground", children: label }), conversation.needsAttention && (
|
|
98
98
|
// The reason rides the house tooltip (F-18). The trigger
|
|
99
99
|
// renders as a span — it sits INSIDE the row button, so a
|
|
100
100
|
// default (button) trigger would nest buttons — and stays
|
|
101
101
|
// out of the tab order; the sr-only text remains the
|
|
102
102
|
// accessible name. The full reason is also always visible
|
|
103
103
|
// in the open conversation's attention banner.
|
|
104
|
-
_jsxs(Tooltip, { children: [_jsxs(TooltipTrigger, { render: _jsx("span", { className: "shrink-0" }), children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "size-3.5 text-destructive" }), _jsx("span", { className: "sr-only", children: conversation.attentionReason
|
|
104
|
+
_jsxs(Tooltip, { children: [_jsxs(TooltipTrigger, { render: _jsx("span", { className: "stg:shrink-0" }), children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "stg:size-3.5 stg:text-destructive" }), _jsx("span", { className: "stg:sr-only", children: conversation.attentionReason
|
|
105
105
|
? `Needs attention: ${conversation.attentionReason}`
|
|
106
|
-
: "Needs attention" })] }), _jsx(TooltipContent, { side: "top", children: conversation.attentionReason || "Needs attention" })] }))] }), contact !== null && (_jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground-faint", children: contact })), humanHeld && (_jsxs("p", { className: "mt-0.5 flex items-center gap-1 text-xs text-muted-foreground", children: [_jsx(User, { "aria-hidden": "true", className: "size-3" }), "Human has the conversation"] }))] }), (lastActivity !== null || awaiting !== null) && (_jsxs("span", { className: "flex shrink-0 flex-col items-end gap-1", children: [lastActivity && (_jsx("span", { className: "text-xs text-muted-foreground-faint", children: formatRelativeTime(lastActivity, now) })), awaiting && (
|
|
106
|
+
: "Needs attention" })] }), _jsx(TooltipContent, { side: "top", children: conversation.attentionReason || "Needs attention" })] }))] }), contact !== null && (_jsx("p", { className: "stg:mt-0.5 stg:truncate stg:text-xs stg:text-muted-foreground-faint", children: contact })), humanHeld && (_jsxs("p", { className: "stg:mt-0.5 stg:flex stg:items-center stg:gap-1 stg:text-xs stg:text-muted-foreground", children: [_jsx(User, { "aria-hidden": "true", className: "stg:size-3" }), "Human has the conversation"] }))] }), (lastActivity !== null || awaiting !== null) && (_jsxs("span", { className: "stg:flex stg:shrink-0 stg:flex-col stg:items-end stg:gap-1", children: [lastActivity && (_jsx("span", { className: "stg:text-xs stg:text-muted-foreground-faint", children: formatRelativeTime(lastActivity, now) })), awaiting && (
|
|
107
107
|
// The WhatsApp inbox convention: an awaiting conversation
|
|
108
108
|
// carries a dot under its timestamp. Strength maps the
|
|
109
109
|
// holder (DD-011 D-a): strong when a human holds it — the
|
|
110
110
|
// agent will not answer, a person must — muted when the
|
|
111
111
|
// agent does. No tooltip and no tab stop (the F-18
|
|
112
112
|
// discipline); the sr-only text is the accessible meaning.
|
|
113
|
-
_jsxs("span", { className: "flex", children: [_jsx("span", { "aria-hidden": "true", className: cn("size-2 rounded-full", awaiting === "strong" ? "bg-primary" : "bg-muted-foreground") }), _jsx("span", { className: "sr-only", children: awaiting === "strong"
|
|
113
|
+
_jsxs("span", { className: "stg:flex", children: [_jsx("span", { "aria-hidden": "true", className: cn("stg:size-2 stg:rounded-full", awaiting === "strong" ? "stg:bg-primary" : "stg:bg-muted-foreground") }), _jsx("span", { className: "stg:sr-only", children: awaiting === "strong"
|
|
114
114
|
? "Customer awaiting reply — the conversation is human-held"
|
|
115
115
|
: "Customer awaiting reply" })] }))] }))] }) }));
|
|
116
116
|
});
|
|
117
117
|
function ListSkeleton() {
|
|
118
|
-
return (_jsx("div", { className: "space-y-1 p-1", "aria-hidden": "true", children: [1, 2, 3, 4].map((i) => (_jsx("div", { className: "h-11 animate-pulse rounded-md bg-muted-faint" }, i))) }));
|
|
118
|
+
return (_jsx("div", { className: "stg:space-y-1 stg:p-1", "aria-hidden": "true", children: [1, 2, 3, 4].map((i) => (_jsx("div", { className: "stg:h-11 stg:animate-pulse stg:rounded-md stg:bg-muted-faint" }, i))) }));
|
|
119
119
|
}
|
|
120
120
|
//# sourceMappingURL=ConversationListPane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationListPane.js","sourceRoot":"","sources":["../../src/conversation/ConversationListPane.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GAEpB,MAAM,uEAAuE,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AAwDvC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,aAAa,EACb,SAAS,EACT,KAAK,EACL,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,MAAM,GAAG,6BAA6B,CAAC,4CAA4C,EACnF,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,SAAS,GACiB;IAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACxB,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;QAC1B,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC;KACtD,CAAC,CACH,CAAC;IAEF,OAAO,CACL,6BACa,mBAAmB,EAC9B,SAAS,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ConversationListPane.js","sourceRoot":"","sources":["../../src/conversation/ConversationListPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationMediaAttachment.d.ts","sourceRoot":"","sources":["../../src/conversation/ConversationMediaAttachment.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationMediaAttachment.d.ts","sourceRoot":"","sources":["../../src/conversation/ConversationMediaAttachment.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uEAAuE,CAAC;AAUlH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,gDAAgD;IAChD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,gCAAgC;IAC/C,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,SAAS,GACV,EAAE,gCAAgC,2CAOlC"}
|
|
@@ -9,6 +9,7 @@ import { AttachmentImageLightbox } from "../attachment/AttachmentImageLightbox.j
|
|
|
9
9
|
import { formatFileSize } from "../attachment/attachment-utils.js";
|
|
10
10
|
import { UNSTYLED_BUTTON } from "../internal/form-primitives.js";
|
|
11
11
|
import { toError } from "../internal/toError.js";
|
|
12
|
+
import { TruncatedText } from "../internal/truncated-text.js";
|
|
12
13
|
import { useStigmer } from "../hooks.js";
|
|
13
14
|
import { useConversationMediaUrl } from "./useConversationMediaUrl.js";
|
|
14
15
|
/**
|
|
@@ -61,10 +62,10 @@ function MediaImageThumbnail({ media, address, className, }) {
|
|
|
61
62
|
if (error) {
|
|
62
63
|
return _jsx(MediaDocumentChip, { media: media, address: address, className: className });
|
|
63
64
|
}
|
|
64
|
-
return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => setPreviewOpen(true), "aria-label": `Preview ${name}`, className: cn(UNSTYLED_BUTTON, "block rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", className), children: _jsx("span", { className: "relative block h-40 w-56 max-w-full overflow-hidden rounded-md", children: url ? (_jsx("img", { src: url, alt: "", "aria-hidden": "true", loading: "lazy", className: "h-full w-full object-cover" })) : (
|
|
65
|
+
return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => setPreviewOpen(true), "aria-label": `Preview ${name}`, className: cn(UNSTYLED_BUTTON, "stg:block stg:rounded-md stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring", className), children: _jsx("span", { className: "stg:relative stg:block stg:h-40 stg:w-56 stg:max-w-full stg:overflow-hidden stg:rounded-md", children: url ? (_jsx("img", { src: url, alt: "", "aria-hidden": "true", loading: "lazy", className: "stg:h-full stg:w-full stg:object-cover" })) : (
|
|
65
66
|
// Pulse placeholder while the presigned URL is minted; same
|
|
66
67
|
// footprint as the image, so no layout shift.
|
|
67
|
-
_jsx("span", { className: "block h-full w-full animate-pulse bg-muted", "aria-hidden": "true" })) }) }), previewOpen && (_jsx(AttachmentImageLightbox, { src: url, filename: name, open: true, onClose: () => setPreviewOpen(false) }))] }));
|
|
68
|
+
_jsx("span", { className: "stg:block stg:h-full stg:w-full stg:animate-pulse stg:bg-muted", "aria-hidden": "true" })) }) }), previewOpen && (_jsx(AttachmentImageLightbox, { src: url, filename: name, open: true, onClose: () => setPreviewOpen(false) }))] }));
|
|
68
69
|
}
|
|
69
70
|
// ---------------------------------------------------------------------------
|
|
70
71
|
// Document — compact chip, click-to-open in a new tab
|
|
@@ -86,7 +87,7 @@ function MediaDocumentChip({ media, address, className, }) {
|
|
|
86
87
|
? // WhatsApp caps media far below 2^53 bytes, so the narrowing is exact.
|
|
87
88
|
formatFileSize(Number(media.sizeBytes))
|
|
88
89
|
: null;
|
|
89
|
-
return (_jsxs("div", { className: className, children: [_jsx("span", {
|
|
90
|
+
return (_jsxs("div", { className: className, children: [_jsx("span", { className: "stg:inline-flex stg:max-w-[240px] stg:items-center stg:rounded-md stg:bg-muted-subtle stg:px-2 stg:py-1 stg:text-xs stg:text-foreground", children: _jsxs("button", { type: "button", onClick: () => void open(), disabled: isOpening, "aria-label": `Open ${name}`, className: cn(UNSTYLED_BUTTON, "stg:flex stg:min-w-0 stg:items-center stg:gap-1.5 stg:rounded-sm stg:hover:text-accent-foreground stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring", isOpening && "stg:opacity-70"), children: [_jsx(FileGlyph, {}), _jsx(TruncatedText, { text: name, className: "stg:min-w-0" }), size !== null && (_jsx("span", { className: "stg:shrink-0 stg:text-muted-foreground", children: size }))] }) }), error !== null && (_jsx("p", { className: "stg:mt-1 stg:break-words stg:text-xs stg:text-destructive", children: getUserMessage(error) }))] }));
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
92
93
|
* Click → mint fresh URL → open in a new tab. Kept local to this file:
|
|
@@ -148,6 +149,6 @@ function openInNewTab(url) {
|
|
|
148
149
|
* icon so the surfaces read as one family.
|
|
149
150
|
*/
|
|
150
151
|
function FileGlyph() {
|
|
151
|
-
return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "shrink-0 text-muted-foreground", "aria-hidden": "true", children: [_jsx("path", { d: "M8 1H4C3.45 1 3 1.45 3 2V12C3 12.55 3.45 13 4 13H10C10.55 13 11 12.55 11 12V4L8 1Z" }), _jsx("path", { d: "M8 1V4H11" })] }));
|
|
152
|
+
return (_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "stg:shrink-0 stg:text-muted-foreground", "aria-hidden": "true", children: [_jsx("path", { d: "M8 1H4C3.45 1 3 1.45 3 2V12C3 12.55 3.45 13 4 13H10C10.55 13 11 12.55 11 12V4L8 1Z" }), _jsx("path", { d: "M8 1V4H11" })] }));
|
|
152
153
|
}
|
|
153
154
|
//# sourceMappingURL=ConversationMediaAttachment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationMediaAttachment.js","sourceRoot":"","sources":["../../src/conversation/ConversationMediaAttachment.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,0CAA0C,EAAE,MAAM,uEAAuE,CAAC;AACnI,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AA2BvE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,SAAS,GACwB;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,CAAC,CAAC,CACf,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAC9E,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAC5E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAA2B;IAC9C,OAAO,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,kEAAkE;AAClE,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,SAAS,GAKV;IACC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAC5C,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,MAAM,CACf,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEhC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;IACrF,CAAC;IAED,OAAO,CACL,8BAGE,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,gBACvB,WAAW,IAAI,EAAE,EAC7B,SAAS,EAAE,EAAE,CACX,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"ConversationMediaAttachment.js","sourceRoot":"","sources":["../../src/conversation/ConversationMediaAttachment.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationTimelineView.d.ts","sourceRoot":"","sources":["../../src/conversation/ConversationTimelineView.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationTimelineView.d.ts","sourceRoot":"","sources":["../../src/conversation/ConversationTimelineView.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uEAAuE,CAAC;AACtH,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAsBpF,kDAAkD;AAClD,MAAM,WAAW,6BAA6B;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACpD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,kEAAkE;IAClE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC5C,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IACpB,iDAAiD;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,cAAc,EACd,eAAe,EACf,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,GAAG,EACH,SAAS,GACV,EAAE,6BAA6B,2CAqF/B"}
|
|
@@ -12,7 +12,7 @@ import { JumpToLatestButton } from "../internal/JumpToLatestButton.js";
|
|
|
12
12
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "../internal/tooltip.js";
|
|
13
13
|
import { useAutoScroll } from "../internal/useAutoScroll.js";
|
|
14
14
|
import { ConversationMediaAttachment } from "./ConversationMediaAttachment.js";
|
|
15
|
-
import { authorKindOf, inboundPlaceholderOf, isInternalItem, receiptOf, sendAttemptOf, } from "./conversationPresentation.js";
|
|
15
|
+
import { attemptExplanationOf, authorKindOf, inboundPlaceholderOf, isInternalItem, receiptOf, sendAttemptOf, } from "./conversationPresentation.js";
|
|
16
16
|
/**
|
|
17
17
|
* One conversation's customer-visible thread, WhatsApp-style: customer
|
|
18
18
|
* on the left, the business (agent, teammate, platform copy) on the
|
|
@@ -37,7 +37,7 @@ export function ConversationTimelineView({ items, agentChannelId, conversationKe
|
|
|
37
37
|
return (
|
|
38
38
|
// The provider is context-only (no DOM node); one per view arms
|
|
39
39
|
// every status-glyph tooltip below (the WorkspaceSidebar precedent).
|
|
40
|
-
_jsx(TooltipProvider, { children: _jsxs("div", { "aria-label": "Conversation timeline", className: cn("relative flex min-h-0 flex-1 flex-col", className), children: [_jsxs("div", { ref: scrollRef, className: "min-h-0 flex-1 overflow-y-auto [overflow-anchor:none] px-4 py-3", children: [!showsCustomerMessages && descriptor && (_jsxs("div", { className: "mb-3 flex items-start gap-2 rounded-md border border-border bg-muted-faint px-3 py-2 text-xs text-muted-foreground", children: [_jsx(Info, { "aria-hidden": "true", className: "mt-0.5 size-3.5 shrink-0" }), _jsxs("p", { children: ["Customer messages on ", descriptor.label, " channels aren't shown here yet \u2014 this thread has replies, sends, and internal events only."] })] })), isLoading ? (_jsx(TimelineSkeleton, {})) : error ? (_jsx("p", { className: "px-2 py-6 text-center text-sm text-destructive", children: getUserMessage(error) })) : items.length === 0 ? (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "size-8" }), title: "No messages yet", description: "The conversation's messages appear here as they happen." })) : (_jsxs("div", { ref: contentRef, children: [hasOlder && (_jsx("div", { className: "flex justify-center pb-2", children: _jsx(Button, { variant: "ghost", size: "xs", onClick: loadOlder, disabled: isLoadingOlder, children: isLoadingOlder ? "Loading…" : "Load earlier messages" }) })), days.map((day) => (_jsxs("div", { children: [_jsx("div", { className: "my-2 text-center text-xs text-muted-foreground-faint", role: "separator", children: day.label }), _jsx("ul", { className: "space-y-1.5", children: day.items.map((item) => (_jsx(TimelineItemRow, { item: item, agentChannelId: agentChannelId, conversationKey: conversationKey }, item.itemId))) })] }, day.label)))] })), _jsx("div", { ref: sentinelRef, "aria-hidden": "true" })] }), _jsx(JumpToLatestButton, { visible: !isFollowing, onClick: jumpToLatest })] }) }));
|
|
40
|
+
_jsx(TooltipProvider, { children: _jsxs("div", { "aria-label": "Conversation timeline", className: cn("stg:relative stg:flex stg:min-h-0 stg:flex-1 stg:flex-col", className), children: [_jsxs("div", { ref: scrollRef, className: "stg:min-h-0 stg:flex-1 stg:overflow-y-auto stg:[overflow-anchor:none] stg:px-4 stg:py-3", children: [!showsCustomerMessages && descriptor && (_jsxs("div", { className: "stg:mb-3 stg:flex stg:items-start stg:gap-2 stg:rounded-md stg:border stg:border-border stg:bg-muted-faint stg:px-3 stg:py-2 stg:text-xs stg:text-muted-foreground", children: [_jsx(Info, { "aria-hidden": "true", className: "stg:mt-0.5 stg:size-3.5 stg:shrink-0" }), _jsxs("p", { children: ["Customer messages on ", descriptor.label, " channels aren't shown here yet \u2014 this thread has replies, sends, and internal events only."] })] })), isLoading ? (_jsx(TimelineSkeleton, {})) : error ? (_jsx("p", { className: "stg:px-2 stg:py-6 stg:text-center stg:text-sm stg:text-destructive", children: getUserMessage(error) })) : items.length === 0 ? (_jsx(EmptyState, { variant: "first-use", icon: _jsx(MessageSquare, { className: "stg:size-8" }), title: "No messages yet", description: "The conversation's messages appear here as they happen." })) : (_jsxs("div", { ref: contentRef, children: [hasOlder && (_jsx("div", { className: "stg:flex stg:justify-center stg:pb-2", children: _jsx(Button, { variant: "ghost", size: "xs", onClick: loadOlder, disabled: isLoadingOlder, children: isLoadingOlder ? "Loading…" : "Load earlier messages" }) })), days.map((day) => (_jsxs("div", { children: [_jsx("div", { className: "stg:my-2 stg:text-center stg:text-xs stg:text-muted-foreground-faint", role: "separator", children: day.label }), _jsx("ul", { className: "stg:space-y-1.5", children: day.items.map((item) => (_jsx(TimelineItemRow, { item: item, agentChannelId: agentChannelId, conversationKey: conversationKey }, item.itemId))) })] }, day.label)))] })), _jsx("div", { ref: sentinelRef, "aria-hidden": "true" })] }), _jsx(JumpToLatestButton, { visible: !isFollowing, onClick: jumpToLatest })] }) }));
|
|
41
41
|
}
|
|
42
42
|
const BUSINESS_CAPTION = {
|
|
43
43
|
agent: "Agent",
|
|
@@ -68,14 +68,24 @@ const TimelineItemRow = memo(function TimelineItemRow({ item, agentChannelId, co
|
|
|
68
68
|
// relay, never pattern-matched; the numeric twin (receipt_error_code)
|
|
69
69
|
// stays off the surface as machine vocabulary. Gated exactly like
|
|
70
70
|
// ReceiptTicks' failed arm — attempt delivered AND receipt failed —
|
|
71
|
-
// so the attempt-axis explanation (
|
|
72
|
-
// structurally never leak in here
|
|
71
|
+
// so the attempt-axis explanation (attemptExplanationOf, cloud#262's
|
|
72
|
+
// slice) can structurally never leak in here: its gate requires
|
|
73
|
+
// attempt FAILED, this one attempt delivered, so at most one of the
|
|
74
|
+
// two explanations ever renders.
|
|
73
75
|
const receiptExplanation = sendAttemptOf(item) === "delivered" &&
|
|
74
76
|
receiptOf(item) === "failed" &&
|
|
75
77
|
item.receiptDetail !== ""
|
|
76
78
|
? item.receiptDetail
|
|
77
79
|
: null;
|
|
78
|
-
|
|
80
|
+
// The attempt axis's explanation (cloud#262, closing F-25), the same
|
|
81
|
+
// R-1 visible-text treatment as the receipt explanation and for the
|
|
82
|
+
// same reason: why a send failed is decision-bearing (a closed
|
|
83
|
+
// 24h-window refusal says "the customer must write first"; a deleted
|
|
84
|
+
// channel says there is nothing to retry). The words and the gate
|
|
85
|
+
// live in attemptExplanationOf — presentation vocabulary, never
|
|
86
|
+
// computed in the view.
|
|
87
|
+
const attemptExplanation = attemptExplanationOf(item);
|
|
88
|
+
return (_jsx("li", { className: cn("stg:flex", isCustomer ? "stg:justify-start" : "stg:justify-end"), children: _jsxs("div", { className: cn("stg:max-w-[80%] stg:rounded-lg stg:px-3 stg:py-2", isCustomer ? "stg:bg-muted-subtle" : "stg:bg-primary-subtle"), children: [!isCustomer && (_jsx("p", { className: "stg:text-xs stg:font-medium stg:text-muted-foreground", children: BUSINESS_CAPTION[author] })), mediaAddress !== null && item.media !== undefined && (_jsx(ConversationMediaAttachment, { media: item.media, address: mediaAddress, className: item.text ? "stg:mb-1.5" : undefined })), (body || mediaAddress === null) && (_jsx("p", { className: cn("stg:whitespace-pre-wrap stg:break-words stg:text-sm stg:text-foreground", !item.text && "stg:italic stg:text-muted-foreground"), children: body || "Message content unavailable" })), receiptExplanation !== null && (_jsx("p", { className: "stg:mt-1 stg:break-words stg:text-xs stg:text-destructive", children: receiptExplanation })), attemptExplanation !== null && (_jsx("p", { className: "stg:mt-1 stg:break-words stg:text-xs stg:text-destructive", children: attemptExplanation })), _jsx(ItemFooter, { item: item })] }) }));
|
|
79
89
|
});
|
|
80
90
|
/**
|
|
81
91
|
* A footer status glyph with its explanation on the house tooltip
|
|
@@ -102,7 +112,7 @@ function ItemFooter({ item }) {
|
|
|
102
112
|
minute: "2-digit",
|
|
103
113
|
})
|
|
104
114
|
: "";
|
|
105
|
-
return (_jsxs("p", { className: "mt-1 flex items-center justify-end gap-1 text-xs text-muted-foreground-faint", children: [_jsx("span", { children: time }), attempt === "failed" && (_jsxs(StatusHint, { hint: "The platform could not deliver this message", className: "flex items-center gap-0.5 text-destructive", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "size-3" }), "Not delivered"] })), attempt === "suppressed" && (_jsxs(StatusHint, { hint: "Withheld because a human had the conversation when it came due", className: "flex items-center gap-0.5", children: [_jsx(Ban, { "aria-hidden": "true", className: "size-3" }), "Held"] })), (attempt === "pending" || attempt === "delivering") && (_jsxs(StatusHint, { hint: "Sending", className: "flex items-center gap-0.5", children: [_jsx(Clock, { "aria-hidden": "true", className: "size-3" }), _jsx("span", { className: "sr-only", children: "Sending" })] })), attempt === "delivered" && _jsx(ReceiptTicks, { item: item })] }));
|
|
115
|
+
return (_jsxs("p", { className: "stg:mt-1 stg:flex stg:items-center stg:justify-end stg:gap-1 stg:text-xs stg:text-muted-foreground-faint", children: [_jsx("span", { children: time }), attempt === "failed" && (_jsxs(StatusHint, { hint: "The platform could not deliver this message", className: "stg:flex stg:items-center stg:gap-0.5 stg:text-destructive", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "stg:size-3" }), "Not delivered"] })), attempt === "suppressed" && (_jsxs(StatusHint, { hint: "Withheld because a human had the conversation when it came due", className: "stg:flex stg:items-center stg:gap-0.5", children: [_jsx(Ban, { "aria-hidden": "true", className: "stg:size-3" }), "Held"] })), (attempt === "pending" || attempt === "delivering") && (_jsxs(StatusHint, { hint: "Sending", className: "stg:flex stg:items-center stg:gap-0.5", children: [_jsx(Clock, { "aria-hidden": "true", className: "stg:size-3" }), _jsx("span", { className: "stg:sr-only", children: "Sending" })] })), attempt === "delivered" && _jsx(ReceiptTicks, { item: item })] }));
|
|
106
116
|
}
|
|
107
117
|
/**
|
|
108
118
|
* The provider's receipt report, WhatsApp-tick style. Renders only on
|
|
@@ -113,16 +123,16 @@ function ItemFooter({ item }) {
|
|
|
113
123
|
function ReceiptTicks({ item }) {
|
|
114
124
|
const receipt = receiptOf(item);
|
|
115
125
|
if (receipt === "failed") {
|
|
116
|
-
return (_jsxs(StatusHint, { hint: "The provider accepted this message but could not deliver it", className: "flex items-center gap-0.5 text-destructive", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "size-3" }), "Delivery failed"] }));
|
|
126
|
+
return (_jsxs(StatusHint, { hint: "The provider accepted this message but could not deliver it", className: "stg:flex stg:items-center stg:gap-0.5 stg:text-destructive", children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "stg:size-3" }), "Delivery failed"] }));
|
|
117
127
|
}
|
|
118
128
|
if (receipt === "read") {
|
|
119
|
-
return (_jsxs(StatusHint, { hint: "Read by the customer", className: "text-primary", children: [_jsx(CheckCheck, { "aria-hidden": "true", className: "size-3.5" }), _jsx("span", { className: "sr-only", children: "Read" })] }));
|
|
129
|
+
return (_jsxs(StatusHint, { hint: "Read by the customer", className: "stg:text-primary", children: [_jsx(CheckCheck, { "aria-hidden": "true", className: "stg:size-3.5" }), _jsx("span", { className: "stg:sr-only", children: "Read" })] }));
|
|
120
130
|
}
|
|
121
131
|
if (receipt === "delivered") {
|
|
122
|
-
return (_jsxs(StatusHint, { hint: "Delivered to the customer's device", children: [_jsx(CheckCheck, { "aria-hidden": "true", className: "size-3.5" }), _jsx("span", { className: "sr-only", children: "Delivered" })] }));
|
|
132
|
+
return (_jsxs(StatusHint, { hint: "Delivered to the customer's device", children: [_jsx(CheckCheck, { "aria-hidden": "true", className: "stg:size-3.5" }), _jsx("span", { className: "stg:sr-only", children: "Delivered" })] }));
|
|
123
133
|
}
|
|
124
134
|
// Handed to the provider; no (further) receipt yet.
|
|
125
|
-
return (_jsxs(StatusHint, { hint: "Sent", children: [_jsx(Check, { "aria-hidden": "true", className: "size-3.5" }), _jsx("span", { className: "sr-only", children: "Sent" })] }));
|
|
135
|
+
return (_jsxs(StatusHint, { hint: "Sent", children: [_jsx(Check, { "aria-hidden": "true", className: "stg:size-3.5" }), _jsx("span", { className: "stg:sr-only", children: "Sent" })] }));
|
|
126
136
|
}
|
|
127
137
|
/**
|
|
128
138
|
* Internal-lane rows — org-internal events the customer never saw,
|
|
@@ -133,14 +143,14 @@ function ReceiptTicks({ item }) {
|
|
|
133
143
|
function InternalEventRow({ item }) {
|
|
134
144
|
const author = authorKindOf(item);
|
|
135
145
|
const isEscalation = author === "agent" && item.text !== "";
|
|
136
|
-
return (_jsx("li", { className: "flex justify-center", children: _jsx("div", { className: cn("flex max-w-[90%] items-start gap-1.5 rounded-md px-3 py-1.5 text-center text-xs", isEscalation
|
|
137
|
-
? "bg-destructive-subtle text-destructive"
|
|
138
|
-
: "bg-muted-faint text-muted-foreground"), children: isEscalation ? (_jsxs(_Fragment, { children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "mt-0.5 size-3.5 shrink-0" }), _jsxs("span", { className: "min-w-0 break-words", children: ["Agent escalated to a human \u2014 \u201C", item.text, "\u201D"] })] })) : item.text !== "" ? (
|
|
146
|
+
return (_jsx("li", { className: "stg:flex stg:justify-center", children: _jsx("div", { className: cn("stg:flex stg:max-w-[90%] stg:items-start stg:gap-1.5 stg:rounded-md stg:px-3 stg:py-1.5 stg:text-center stg:text-xs", isEscalation
|
|
147
|
+
? "stg:bg-destructive-subtle stg:text-destructive"
|
|
148
|
+
: "stg:bg-muted-faint stg:text-muted-foreground"), children: isEscalation ? (_jsxs(_Fragment, { children: [_jsx(TriangleAlert, { "aria-hidden": "true", className: "stg:mt-0.5 stg:size-3.5 stg:shrink-0" }), _jsxs("span", { className: "stg:min-w-0 stg:break-words", children: ["Agent escalated to a human \u2014 \u201C", item.text, "\u201D"] })] })) : item.text !== "" ? (
|
|
139
149
|
// A future internal note flows through with zero code change.
|
|
140
|
-
_jsx("span", { className: "min-w-0 break-words", children: item.text })) : (_jsx("span", { children: "A teammate resolved the attention flag" })) }) }));
|
|
150
|
+
_jsx("span", { className: "stg:min-w-0 stg:break-words", children: item.text })) : (_jsx("span", { children: "A teammate resolved the attention flag" })) }) }));
|
|
141
151
|
}
|
|
142
152
|
function TimelineSkeleton() {
|
|
143
|
-
return (_jsxs("div", { className: "space-y-2", "aria-hidden": "true", children: [_jsx("div", { className: "h-10 w-3/5 animate-pulse rounded-lg bg-muted-faint" }), _jsx("div", { className: "ml-auto h-10 w-3/5 animate-pulse rounded-lg bg-muted-faint" }), _jsx("div", { className: "h-10 w-2/5 animate-pulse rounded-lg bg-muted-faint" })] }));
|
|
153
|
+
return (_jsxs("div", { className: "stg:space-y-2", "aria-hidden": "true", children: [_jsx("div", { className: "stg:h-10 stg:w-3/5 stg:animate-pulse stg:rounded-lg stg:bg-muted-faint" }), _jsx("div", { className: "stg:ml-auto stg:h-10 stg:w-3/5 stg:animate-pulse stg:rounded-lg stg:bg-muted-faint" }), _jsx("div", { className: "stg:h-10 stg:w-2/5 stg:animate-pulse stg:rounded-lg stg:bg-muted-faint" })] }));
|
|
144
154
|
}
|
|
145
155
|
/** Group chronological items under day separators. */
|
|
146
156
|
function groupByDay(items, now) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationTimelineView.js","sourceRoot":"","sources":["../../src/conversation/ConversationTimelineView.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAA0B,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,aAAa,GAEd,MAAM,+BAA+B,CAAC;AA8CvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,wBAAwB,CAAC,EACvC,KAAK,EACL,cAAc,EACd,eAAe,EACf,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,GAAG,EACH,SAAS,GACqB;IAC9B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GACrE,aAAa,EAAE,CAAC;IAElB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,UAAU,EAAE,gCAAgC,IAAI,IAAI,CAAC;IAEnF,OAAO;IACL,gEAAgE;IAChE,qEAAqE;IACrE,KAAC,eAAe,cACd,6BACa,uBAAuB,EAClC,SAAS,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"ConversationTimelineView.js","sourceRoot":"","sources":["../../src/conversation/ConversationTimelineView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -147,7 +147,7 @@ export function ConversationsWorkbench({ org, selected, onSelectionChange, curre
|
|
|
147
147
|
const headerAccessoryNode = typeof headerAccessory === "function"
|
|
148
148
|
? headerAccessory({ channel: selectedChannel })
|
|
149
149
|
: headerAccessory;
|
|
150
|
-
return (_jsxs("div", { "aria-label": "Conversations workbench", className: cn("flex min-h-0 flex-1", className), children: [_jsx(ConversationListPane, { className: "w-80 shrink-0 border-r border-border", conversations: list.conversations, isLoading: list.isLoading, error: list.error, hasMore: list.hasMore, loadMore: list.loadMore, isLoadingMore: list.isLoadingMore, channels: channels, channelFilter: channelFilter, onChannelFilterChange: setChannelFilter, filter: listFilter, onFilterChange: setListFilter, selected: selected, onSelect: handleSelect, now: now }), selected === null ? (_jsx("div", { className: "flex min-w-0 flex-1 items-center justify-center p-6", children: _jsx(EmptyState, { variant: "first-use", icon: _jsx(MessagesSquare, { className: "size-8" }), title: "Select a conversation", description: "Pick a conversation to read its thread, reply as your business, or take over from the agent." }) })) : (
|
|
150
|
+
return (_jsxs("div", { "aria-label": "Conversations workbench", className: cn("stg:flex stg:min-h-0 stg:flex-1", className), children: [_jsx(ConversationListPane, { className: "stg:w-80 stg:shrink-0 stg:border-r stg:border-border", conversations: list.conversations, isLoading: list.isLoading, error: list.error, hasMore: list.hasMore, loadMore: list.loadMore, isLoadingMore: list.isLoadingMore, channels: channels, channelFilter: channelFilter, onChannelFilterChange: setChannelFilter, filter: listFilter, onFilterChange: setListFilter, selected: selected, onSelect: handleSelect, now: now }), selected === null ? (_jsx("div", { className: "stg:flex stg:min-w-0 stg:flex-1 stg:items-center stg:justify-center stg:p-6", children: _jsx(EmptyState, { variant: "first-use", icon: _jsx(MessagesSquare, { className: "stg:size-8" }), title: "Select a conversation", description: "Pick a conversation to read its thread, reply as your business, or take over from the agent." }) })) : (
|
|
151
151
|
// Keyed by conversation identity (DD-014: `key` remounts are the
|
|
152
152
|
// clean-reset pattern): every open starts a fresh detail column, so
|
|
153
153
|
// auto-scroll opens following at the newest message and the
|
|
@@ -156,10 +156,10 @@ export function ConversationsWorkbench({ org, selected, onSelectionChange, curre
|
|
|
156
156
|
// this column, so the remount refetches nothing; the inbox pane
|
|
157
157
|
// stays outside it so its scroll position and filter survive.
|
|
158
158
|
// Channel ids never contain ":", so the joined key is unambiguous.
|
|
159
|
-
_jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-border px-4 py-2.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "truncate text-sm font-semibold text-foreground", children: detailLabel }), (detailContact !== null || channelName) && (_jsxs("p", { className: "truncate text-xs text-muted-foreground", children: [detailContact, detailContact !== null && channelName && " · ", channelName &&
|
|
159
|
+
_jsxs("div", { className: "stg:flex stg:min-w-0 stg:flex-1 stg:flex-col", children: [_jsxs("div", { className: "stg:flex stg:items-center stg:justify-between stg:gap-2 stg:border-b stg:border-border stg:px-4 stg:py-2.5", children: [_jsxs("div", { className: "stg:min-w-0", children: [_jsx("h2", { className: "stg:truncate stg:text-sm stg:font-semibold stg:text-foreground", children: detailLabel }), (detailContact !== null || channelName) && (_jsxs("p", { className: "stg:truncate stg:text-xs stg:text-muted-foreground", children: [detailContact, detailContact !== null && channelName && " · ", channelName &&
|
|
160
160
|
// The path from a conversation to its channel (F-11):
|
|
161
161
|
// the channel name links to the host's channel surface
|
|
162
162
|
// when a route exists.
|
|
163
|
-
(selectedChannelHref ? (_jsx("a", { href: selectedChannelHref, className: "hover:text-foreground hover:underline", children: channelName })) : (channelName))] }))] }), headerAccessoryNode] }), detail.conversation && (_jsx(ConversationAttentionBanner, { conversation: detail.conversation, participation: participation })), detail.conversation && (_jsx(ConversationControlBanner, { conversation: detail.conversation, participation: participation, unansweredCustomer: unansweredCustomer, supportsStaffReplies: descriptor?.supportsStaffReplies ?? true, currentIdentityAccountId: currentIdentityAccountId })), _jsx(ConversationTimelineView, { items: timeline.items, agentChannelId: selected.agentChannelId, conversationKey: selected.conversationKey, isLoading: timeline.isLoading, error: timeline.error, hasOlder: timeline.hasOlder, loadOlder: timeline.loadOlder, isLoadingOlder: timeline.isLoadingOlder, provider: descriptor?.id ?? null, now: now }), _jsx(ConversationComposer, { onSend: handleSend, isSending: participation.pendingCommands.has("reply") || settlingItemId !== null, disabledReason: composerDisabledReason, advisory: composerAdvisory })] }, `${selected.agentChannelId}:${selected.conversationKey}`))] }));
|
|
163
|
+
(selectedChannelHref ? (_jsx("a", { href: selectedChannelHref, className: "stg:hover:text-foreground stg:hover:underline", children: channelName })) : (channelName))] }))] }), headerAccessoryNode] }), detail.conversation && (_jsx(ConversationAttentionBanner, { conversation: detail.conversation, participation: participation })), detail.conversation && (_jsx(ConversationControlBanner, { conversation: detail.conversation, participation: participation, unansweredCustomer: unansweredCustomer, supportsStaffReplies: descriptor?.supportsStaffReplies ?? true, currentIdentityAccountId: currentIdentityAccountId })), _jsx(ConversationTimelineView, { items: timeline.items, agentChannelId: selected.agentChannelId, conversationKey: selected.conversationKey, isLoading: timeline.isLoading, error: timeline.error, hasOlder: timeline.hasOlder, loadOlder: timeline.loadOlder, isLoadingOlder: timeline.isLoadingOlder, provider: descriptor?.id ?? null, now: now }), _jsx(ConversationComposer, { onSend: handleSend, isSending: participation.pendingCommands.has("reply") || settlingItemId !== null, disabledReason: composerDisabledReason, advisory: composerAdvisory })] }, `${selected.agentChannelId}:${selected.conversationKey}`))] }));
|
|
164
164
|
}
|
|
165
165
|
//# sourceMappingURL=ConversationsWorkbench.js.map
|