@stigmer/react 3.12.1 → 3.12.2
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/ManageAccessDialog.d.ts.map +1 -1
- package/access/ManageAccessDialog.js +7 -2
- package/access/ManageAccessDialog.js.map +1 -1
- package/activity/format-relative-time.d.ts +11 -9
- package/activity/format-relative-time.d.ts.map +1 -1
- package/activity/format-relative-time.js +11 -9
- package/activity/format-relative-time.js.map +1 -1
- package/agent/steps/CapabilitiesStep.js +5 -2
- package/agent/steps/CapabilitiesStep.js.map +1 -1
- package/agent/steps/IdentityStep.d.ts.map +1 -1
- package/agent/steps/IdentityStep.js +6 -5
- package/agent/steps/IdentityStep.js.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.js +10 -2
- package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
- package/api-key/ApiKeyCreatedAlert.d.ts.map +1 -1
- package/api-key/ApiKeyCreatedAlert.js +12 -20
- package/api-key/ApiKeyCreatedAlert.js.map +1 -1
- package/api-key/ApiKeyListPanel.d.ts.map +1 -1
- package/api-key/ApiKeyListPanel.js +3 -23
- package/api-key/ApiKeyListPanel.js.map +1 -1
- package/api-key/CreateApiKeyForm.d.ts.map +1 -1
- package/api-key/CreateApiKeyForm.js +6 -10
- package/api-key/CreateApiKeyForm.js.map +1 -1
- package/approval-defaults-context.d.ts +47 -0
- package/approval-defaults-context.d.ts.map +1 -0
- package/approval-defaults-context.js +27 -0
- package/approval-defaults-context.js.map +1 -0
- package/attachment/index.d.ts +2 -0
- package/attachment/index.d.ts.map +1 -1
- package/attachment/index.js +1 -0
- package/attachment/index.js.map +1 -1
- package/attachment/vision-preflight.d.ts +113 -0
- package/attachment/vision-preflight.d.ts.map +1 -0
- package/attachment/vision-preflight.js +143 -0
- package/attachment/vision-preflight.js.map +1 -0
- package/billing/AutoRechargeCard.d.ts.map +1 -1
- package/billing/AutoRechargeCard.js +3 -2
- package/billing/AutoRechargeCard.js.map +1 -1
- package/billing/BillingSection.d.ts.map +1 -1
- package/billing/BillingSection.js +3 -2
- package/billing/BillingSection.js.map +1 -1
- package/channel/ChannelConversationsDialog.d.ts.map +1 -1
- package/channel/ChannelConversationsDialog.js +5 -4
- package/channel/ChannelConversationsDialog.js.map +1 -1
- package/channel/ChannelCredentialsDialog.d.ts.map +1 -1
- package/channel/ChannelCredentialsDialog.js +9 -4
- package/channel/ChannelCredentialsDialog.js.map +1 -1
- package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
- package/channel/ChannelTemplatesDialog.js +5 -4
- package/channel/ChannelTemplatesDialog.js.map +1 -1
- package/channel/ConnectSlackDialog.d.ts.map +1 -1
- package/channel/ConnectSlackDialog.js +9 -4
- package/channel/ConnectSlackDialog.js.map +1 -1
- package/channel/ConnectWhatsAppDialog.d.ts.map +1 -1
- package/channel/ConnectWhatsAppDialog.js +9 -4
- package/channel/ConnectWhatsAppDialog.js.map +1 -1
- package/channel/useChannelSessions.d.ts.map +1 -1
- package/channel/useChannelSessions.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -1
- package/channel-app/ChannelAppDetailPanel.js +8 -5
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/channel-app/CreateChannelAppForm.d.ts.map +1 -1
- package/channel-app/CreateChannelAppForm.js +12 -7
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/channel-app/internal.d.ts +0 -1
- package/channel-app/internal.d.ts.map +1 -1
- package/channel-app/internal.js +5 -10
- package/channel-app/internal.js.map +1 -1
- package/composer/ComposerToolbar.js +2 -1
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/SessionComposer.d.ts +1 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +120 -13
- package/composer/SessionComposer.js.map +1 -1
- package/composer/icons.d.ts +0 -1
- package/composer/icons.d.ts.map +1 -1
- package/composer/icons.js +0 -3
- package/composer/icons.js.map +1 -1
- package/conversation/ConversationComposer.js +1 -1
- package/conversation/ConversationComposer.js.map +1 -1
- package/conversation/ConversationListPane.d.ts.map +1 -1
- package/conversation/ConversationListPane.js +3 -2
- package/conversation/ConversationListPane.js.map +1 -1
- package/cursor-accounts/MemberCoverageTable.js +3 -14
- package/cursor-accounts/MemberCoverageTable.js.map +1 -1
- package/dashboard/DashboardFailedRuns.d.ts.map +1 -1
- package/dashboard/DashboardFailedRuns.js +2 -14
- package/dashboard/DashboardFailedRuns.js.map +1 -1
- package/environment/CreateEnvironmentForm.d.ts.map +1 -1
- package/environment/CreateEnvironmentForm.js +4 -8
- package/environment/CreateEnvironmentForm.js.map +1 -1
- package/environment/EnvVarForm.d.ts.map +1 -1
- package/environment/EnvVarForm.js +2 -4
- package/environment/EnvVarForm.js.map +1 -1
- package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
- package/environment/EnvironmentVariableEditor.js +5 -7
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/execution/ArtifactApplyButton.d.ts.map +1 -1
- package/execution/ArtifactApplyButton.js +2 -4
- package/execution/ArtifactApplyButton.js.map +1 -1
- package/execution/ExecutionErrorNotice.d.ts +36 -0
- package/execution/ExecutionErrorNotice.d.ts.map +1 -0
- package/execution/ExecutionErrorNotice.js +39 -0
- package/execution/ExecutionErrorNotice.js.map +1 -0
- package/execution/FilePathLink.d.ts.map +1 -1
- package/execution/FilePathLink.js +5 -8
- package/execution/FilePathLink.js.map +1 -1
- package/execution/FileReviewCard.d.ts.map +1 -1
- package/execution/FileReviewCard.js +1 -6
- package/execution/FileReviewCard.js.map +1 -1
- package/execution/FollowUpInput.d.ts.map +1 -1
- package/execution/FollowUpInput.js +1 -3
- package/execution/FollowUpInput.js.map +1 -1
- package/execution/LivenessStatusLine.d.ts +40 -0
- package/execution/LivenessStatusLine.d.ts.map +1 -0
- package/execution/LivenessStatusLine.js +34 -0
- package/execution/LivenessStatusLine.js.map +1 -0
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +31 -3
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.d.ts +25 -0
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +51 -36
- package/execution/MessageThread.js.map +1 -1
- package/execution/SetupProgress.d.ts.map +1 -1
- package/execution/SetupProgress.js +1 -1
- package/execution/SetupProgress.js.map +1 -1
- package/execution/SubAgentSection.d.ts.map +1 -1
- package/execution/SubAgentSection.js +9 -7
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/TerminalSession.d.ts +30 -0
- package/execution/TerminalSession.d.ts.map +1 -1
- package/execution/TerminalSession.js +37 -1
- package/execution/TerminalSession.js.map +1 -1
- package/execution/ToolCallDetail.d.ts +9 -0
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +16 -0
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallItem.d.ts +20 -6
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +102 -29
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/ToolRunGroup.d.ts.map +1 -1
- package/execution/ToolRunGroup.js +11 -11
- package/execution/ToolRunGroup.js.map +1 -1
- package/execution/WriteBackCard.d.ts.map +1 -1
- package/execution/WriteBackCard.js +5 -20
- package/execution/WriteBackCard.js.map +1 -1
- package/execution/index.d.ts +6 -2
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +3 -1
- package/execution/index.js.map +1 -1
- package/execution/tool-categories.d.ts +42 -7
- package/execution/tool-categories.d.ts.map +1 -1
- package/execution/tool-categories.js +38 -4
- package/execution/tool-categories.js.map +1 -1
- package/execution/tool-presenter.d.ts +17 -1
- package/execution/tool-presenter.d.ts.map +1 -1
- package/execution/tool-presenter.js +4 -1
- package/execution/tool-presenter.js.map +1 -1
- package/execution/useArtifactInspection.d.ts.map +1 -1
- package/execution/useArtifactInspection.js +4 -7
- package/execution/useArtifactInspection.js.map +1 -1
- package/iam-policy/GrantAccessForm.d.ts.map +1 -1
- package/iam-policy/GrantAccessForm.js +2 -4
- package/iam-policy/GrantAccessForm.js.map +1 -1
- package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
- package/iam-policy/OrgMembersPanel.js +3 -5
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/iam-policy/RoleSelector.d.ts.map +1 -1
- package/iam-policy/RoleSelector.js +7 -1
- package/iam-policy/RoleSelector.js.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.js +6 -9
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +17 -26
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderListPanel.js +2 -4
- package/identity-provider/IdentityProviderListPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +8 -7
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/identity-provider/SsoLoginPrompt.js +5 -6
- package/identity-provider/SsoLoginPrompt.js.map +1 -1
- package/index.d.ts +9 -8
- package/index.d.ts.map +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/internal/DecisionButton.d.ts.map +1 -1
- package/internal/DecisionButton.js +1 -6
- package/internal/DecisionButton.js.map +1 -1
- package/internal/SpinnerIcon.d.ts +22 -0
- package/internal/SpinnerIcon.d.ts.map +1 -0
- package/internal/SpinnerIcon.js +23 -0
- package/internal/SpinnerIcon.js.map +1 -0
- package/internal/select-element-text.d.ts +11 -0
- package/internal/select-element-text.d.ts.map +1 -0
- package/internal/select-element-text.js +19 -0
- package/internal/select-element-text.js.map +1 -0
- package/internal/thread-card/ThreadCardShell.d.ts +27 -10
- package/internal/thread-card/ThreadCardShell.d.ts.map +1 -1
- package/internal/thread-card/ThreadCardShell.js +11 -5
- package/internal/thread-card/ThreadCardShell.js.map +1 -1
- package/internal/thread-card/glyphs.d.ts +11 -2
- package/internal/thread-card/glyphs.d.ts.map +1 -1
- package/internal/thread-card/glyphs.js +9 -3
- package/internal/thread-card/glyphs.js.map +1 -1
- package/internal/thread-card/index.d.ts +1 -1
- package/internal/thread-card/index.d.ts.map +1 -1
- package/internal/thread-card/index.js.map +1 -1
- package/internal/useCopyFeedback.d.ts +28 -0
- package/internal/useCopyFeedback.d.ts.map +1 -0
- package/internal/useCopyFeedback.js +40 -0
- package/internal/useCopyFeedback.js.map +1 -0
- package/invitation/InvitationCreatedAlert.d.ts.map +1 -1
- package/invitation/InvitationCreatedAlert.js +12 -19
- package/invitation/InvitationCreatedAlert.js.map +1 -1
- package/invitation/InvitationManager.d.ts.map +1 -1
- package/invitation/InvitationManager.js +14 -21
- package/invitation/InvitationManager.js.map +1 -1
- package/invitation/InvitationRedemption.d.ts.map +1 -1
- package/invitation/InvitationRedemption.js +2 -4
- package/invitation/InvitationRedemption.js.map +1 -1
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +16 -27
- package/library/useExportResource.js.map +1 -1
- package/manifest/ApplyManifestDialog.js +1 -1
- package/manifest/EditResourceYamlDialog.js +1 -1
- package/mcp-server/DefinitionDriftNotice.d.ts +42 -0
- package/mcp-server/DefinitionDriftNotice.d.ts.map +1 -0
- package/mcp-server/DefinitionDriftNotice.js +52 -0
- package/mcp-server/DefinitionDriftNotice.js.map +1 -0
- package/mcp-server/McpServerConnectDialog.js +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +47 -14
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/OAuthAppForm.d.ts.map +1 -1
- package/mcp-server/OAuthAppForm.js +2 -4
- package/mcp-server/OAuthAppForm.js.map +1 -1
- package/mcp-server/internal/definitionDrift.d.ts +39 -0
- package/mcp-server/internal/definitionDrift.d.ts.map +1 -0
- package/mcp-server/internal/definitionDrift.js +122 -0
- package/mcp-server/internal/definitionDrift.js.map +1 -0
- package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -1
- package/mcp-server/internal/mcpServerToInput.js +3 -0
- package/mcp-server/internal/mcpServerToInput.js.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.js +8 -4
- package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.js +5 -4
- package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
- package/mcp-server/useMcpServerConnect.d.ts +1 -1
- package/mcp-server/useMcpServerDefinitionDrift.d.ts +44 -0
- package/mcp-server/useMcpServerDefinitionDrift.d.ts.map +1 -0
- package/mcp-server/useMcpServerDefinitionDrift.js +61 -0
- package/mcp-server/useMcpServerDefinitionDrift.js.map +1 -0
- package/models/ModelRegistryContext.d.ts +7 -1
- package/models/ModelRegistryContext.d.ts.map +1 -1
- package/models/ModelRegistryContext.js.map +1 -1
- package/models/ModelSelector.js +9 -1
- package/models/ModelSelector.js.map +1 -1
- package/models/index.d.ts +2 -2
- package/models/index.d.ts.map +1 -1
- package/models/index.js +1 -1
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +88 -6
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +133 -27
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts +7 -1
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +3 -2
- package/models/useModelRegistry.js.map +1 -1
- package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -1
- package/oauth-app/CreateOAuthAppForm.js +4 -5
- package/oauth-app/CreateOAuthAppForm.js.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.js +5 -6
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
- package/organization/CreateOrganizationForm.d.ts.map +1 -1
- package/organization/CreateOrganizationForm.js +5 -9
- package/organization/CreateOrganizationForm.js.map +1 -1
- package/organization/OrgProfilePanel.d.ts.map +1 -1
- package/organization/OrgProfilePanel.js +7 -16
- package/organization/OrgProfilePanel.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/CreatePlatformClientForm.d.ts.map +1 -1
- package/platform-client/CreatePlatformClientForm.js +5 -6
- package/platform-client/CreatePlatformClientForm.js.map +1 -1
- package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +6 -7
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientListPanel.js +2 -4
- package/platform-client/PlatformClientListPanel.js.map +1 -1
- package/platform-client/PlatformClientSecretAlert.d.ts.map +1 -1
- package/platform-client/PlatformClientSecretAlert.js +18 -25
- package/platform-client/PlatformClientSecretAlert.js.map +1 -1
- package/provider.d.ts +34 -1
- package/provider.d.ts.map +1 -1
- package/provider.js +14 -7
- package/provider.js.map +1 -1
- package/resource-creation/WizardNav.d.ts.map +1 -1
- package/resource-creation/WizardNav.js +2 -4
- package/resource-creation/WizardNav.js.map +1 -1
- package/resource-detail/ConfirmDialog.js +1 -1
- package/resource-detail/useCopyResource.d.ts +4 -3
- package/resource-detail/useCopyResource.d.ts.map +1 -1
- package/resource-detail/useCopyResource.js +10 -19
- package/resource-detail/useCopyResource.js.map +1 -1
- package/schedule/ScheduleDetailView.d.ts.map +1 -1
- package/schedule/ScheduleDetailView.js +2 -4
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/schedule/ScheduleForm.d.ts.map +1 -1
- package/schedule/ScheduleForm.js +6 -7
- package/schedule/ScheduleForm.js.map +1 -1
- package/session/NewSessionViewer.d.ts +52 -2
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +21 -6
- package/session/NewSessionViewer.js.map +1 -1
- package/session/SessionViewer.d.ts +63 -2
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +43 -17
- package/session/SessionViewer.js.map +1 -1
- package/session/audience.d.ts +17 -0
- package/session/audience.d.ts.map +1 -1
- package/session/index.d.ts +2 -1
- package/session/index.d.ts.map +1 -1
- package/session/index.js.map +1 -1
- package/session/run-config.d.ts +50 -0
- package/session/run-config.d.ts.map +1 -0
- package/session/run-config.js +15 -0
- package/session/run-config.js.map +1 -0
- package/session/useNewSessionFlow.d.ts +11 -0
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +29 -2
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +7 -7
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +2 -0
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +18 -4
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +33 -6
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionPanel.d.ts +37 -2
- package/session/useSessionPanel.d.ts.map +1 -1
- package/session/useSessionPanel.js +44 -10
- package/session/useSessionPanel.js.map +1 -1
- package/settings/ApiKeysSection.d.ts.map +1 -1
- package/settings/ApiKeysSection.js +3 -2
- package/settings/ApiKeysSection.js.map +1 -1
- package/settings/ChannelAppsSection.d.ts.map +1 -1
- package/settings/ChannelAppsSection.js +3 -2
- package/settings/ChannelAppsSection.js.map +1 -1
- package/settings/EnvironmentsSection.js +5 -3
- package/settings/EnvironmentsSection.js.map +1 -1
- package/settings/IdentityProvidersSection.d.ts.map +1 -1
- package/settings/IdentityProvidersSection.js +3 -2
- package/settings/IdentityProvidersSection.js.map +1 -1
- package/settings/InvitationsSection.d.ts.map +1 -1
- package/settings/InvitationsSection.js +3 -1
- package/settings/InvitationsSection.js.map +1 -1
- package/settings/MembersSection.d.ts.map +1 -1
- package/settings/MembersSection.js +3 -1
- package/settings/MembersSection.js.map +1 -1
- package/settings/OAuthAppsSection.d.ts.map +1 -1
- package/settings/OAuthAppsSection.js +3 -2
- package/settings/OAuthAppsSection.js.map +1 -1
- package/settings/OrgProfileSection.d.ts.map +1 -1
- package/settings/OrgProfileSection.js +3 -2
- package/settings/OrgProfileSection.js.map +1 -1
- package/settings/PlatformClientsSection.d.ts.map +1 -1
- package/settings/PlatformClientsSection.js +3 -2
- package/settings/PlatformClientsSection.js.map +1 -1
- package/settings/UsageSection.d.ts.map +1 -1
- package/settings/UsageSection.js +3 -1
- package/settings/UsageSection.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +18 -7
- package/sharing/ShareAgentDialog.js.map +1 -1
- package/sidebar/chrome.d.ts +3 -4
- package/sidebar/chrome.d.ts.map +1 -1
- package/sidebar/chrome.js +5 -4
- package/sidebar/chrome.js.map +1 -1
- package/skill/SkillDiffDialog.js +1 -1
- package/src/access/ManageAccessDialog.tsx +10 -4
- package/src/activity/format-relative-time.ts +11 -9
- package/src/agent/steps/CapabilitiesStep.tsx +6 -3
- package/src/agent/steps/IdentityStep.tsx +19 -12
- package/src/agent-instance/CreateAgentInstanceDialog.tsx +17 -8
- package/src/api-key/ApiKeyCreatedAlert.tsx +10 -19
- package/src/api-key/ApiKeyListPanel.tsx +3 -39
- package/src/api-key/CreateApiKeyForm.tsx +12 -26
- package/src/approval-defaults-context.ts +56 -0
- package/src/attachment/__tests__/vision-preflight.test.ts +311 -0
- package/src/attachment/index.ts +12 -0
- package/src/attachment/vision-preflight.ts +236 -0
- package/src/billing/AutoRechargeCard.tsx +5 -4
- package/src/billing/BillingSection.tsx +4 -3
- package/src/channel/ChannelConversationsDialog.tsx +8 -4
- package/src/channel/ChannelCredentialsDialog.tsx +14 -4
- package/src/channel/ChannelTemplatesDialog.tsx +8 -4
- package/src/channel/ConnectSlackDialog.tsx +14 -4
- package/src/channel/ConnectWhatsAppDialog.tsx +14 -4
- package/src/channel/useChannelSessions.ts +3 -0
- package/src/channel-app/ChannelAppDetailPanel.tsx +15 -12
- package/src/channel-app/CreateChannelAppForm.tsx +17 -12
- package/src/channel-app/internal.tsx +5 -25
- package/src/composer/ComposerToolbar.tsx +1 -1
- package/src/composer/SessionComposer.tsx +160 -13
- package/src/composer/__tests__/SessionComposer-modelCoherence.test.tsx +220 -0
- package/src/composer/__tests__/SessionComposer-visionPreflight.test.tsx +222 -0
- package/src/composer/icons.tsx +0 -18
- package/src/conversation/ConversationComposer.tsx +1 -1
- package/src/conversation/ConversationListPane.tsx +4 -3
- package/src/cursor-accounts/MemberCoverageTable.tsx +3 -14
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +2 -10
- package/src/dashboard/DashboardFailedRuns.tsx +2 -12
- package/src/environment/CreateEnvironmentForm.tsx +8 -27
- package/src/environment/EnvVarForm.tsx +2 -18
- package/src/environment/EnvironmentVariableEditor.tsx +5 -21
- package/src/execution/ArtifactApplyButton.tsx +2 -17
- package/src/execution/ExecutionErrorNotice.tsx +99 -0
- package/src/execution/FilePathLink.tsx +5 -9
- package/src/execution/FileReviewCard.tsx +1 -20
- package/src/execution/FollowUpInput.tsx +1 -16
- package/src/execution/LivenessStatusLine.tsx +59 -0
- package/src/execution/MessageEntry.tsx +136 -25
- package/src/execution/MessageThread.tsx +84 -83
- package/src/execution/SetupProgress.tsx +5 -1
- package/src/execution/SubAgentSection.tsx +9 -20
- package/src/execution/TerminalSession.tsx +97 -10
- package/src/execution/ToolCallDetail.tsx +19 -0
- package/src/execution/ToolCallItem.tsx +157 -37
- package/src/execution/ToolRunGroup.tsx +30 -32
- package/src/execution/WriteBackCard.tsx +5 -24
- package/src/execution/__tests__/MessageEntry-copy.test.tsx +125 -0
- package/src/execution/__tests__/MessageThread.test.tsx +97 -0
- package/src/execution/__tests__/TerminalSession.test.tsx +71 -1
- package/src/execution/__tests__/ToolCallDetail.test.tsx +33 -1
- package/src/execution/__tests__/ToolCallItem.test.tsx +299 -11
- package/src/execution/__tests__/ToolRunGroup.test.tsx +41 -9
- package/src/execution/__tests__/message-thread-slots.test.tsx +92 -0
- package/src/execution/__tests__/tool-presenter.test.tsx +41 -4
- package/src/execution/index.ts +8 -2
- package/src/execution/tool-categories.ts +72 -8
- package/src/execution/tool-presenter.ts +22 -1
- package/src/execution/useArtifactInspection.ts +4 -8
- package/src/iam-policy/GrantAccessForm.tsx +2 -18
- package/src/iam-policy/OrgMembersPanel.tsx +3 -19
- package/src/iam-policy/RoleSelector.tsx +8 -1
- package/src/identity-provider/CreateIdentityProviderForm.tsx +13 -31
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +24 -49
- package/src/identity-provider/IdentityProviderListPanel.tsx +2 -18
- package/src/identity-provider/IdentityProviderWizard.tsx +15 -32
- package/src/identity-provider/SsoLoginPrompt.tsx +6 -21
- package/src/index.ts +23 -1
- package/src/internal/DecisionButton.tsx +1 -20
- package/src/internal/SpinnerIcon.tsx +42 -0
- package/src/internal/__tests__/ThreadCardShell.test.tsx +43 -7
- package/src/internal/__tests__/useCopyFeedback.test.ts +92 -0
- package/src/internal/select-element-text.ts +17 -0
- package/src/internal/thread-card/ThreadCardShell.tsx +53 -21
- package/src/internal/thread-card/glyphs.tsx +24 -3
- package/src/internal/thread-card/index.ts +1 -0
- package/src/internal/useCopyFeedback.ts +61 -0
- package/src/invitation/InvitationCreatedAlert.tsx +10 -18
- package/src/invitation/InvitationManager.tsx +23 -34
- package/src/invitation/InvitationRedemption.tsx +2 -18
- package/src/library/useExportResource.ts +15 -29
- package/src/manifest/ApplyManifestDialog.tsx +1 -1
- package/src/manifest/EditResourceYamlDialog.tsx +1 -1
- package/src/mcp-server/DefinitionDriftNotice.tsx +120 -0
- package/src/mcp-server/McpServerConnectDialog.tsx +1 -1
- package/src/mcp-server/McpServerDetailView.tsx +58 -26
- package/src/mcp-server/OAuthAppForm.tsx +2 -18
- package/src/mcp-server/__tests__/DefinitionDriftNotice.test.tsx +57 -0
- package/src/mcp-server/__tests__/definitionDrift.test.ts +245 -0
- package/src/mcp-server/__tests__/mcpServerToInput.test.ts +201 -0
- package/src/mcp-server/__tests__/useMcpServerDefinitionDrift.test.tsx +173 -0
- package/src/mcp-server/internal/definitionDrift.ts +158 -0
- package/src/mcp-server/internal/mcpServerToInput.ts +3 -0
- package/src/mcp-server/steps/EnvironmentAuthStep.tsx +19 -19
- package/src/mcp-server/steps/IdentityTransportStep.tsx +24 -23
- package/src/mcp-server/useMcpServerConnect.ts +1 -1
- package/src/mcp-server/useMcpServerDefinitionDrift.ts +95 -0
- package/src/models/ModelRegistryContext.ts +7 -1
- package/src/models/ModelSelector.tsx +37 -0
- package/src/models/__tests__/ModelSelector-visionIndicator.test.tsx +129 -0
- package/src/models/__tests__/resolveDefaultModel.test.ts +115 -0
- package/src/models/__tests__/useModelRegistry.test.tsx +99 -4
- package/src/models/index.ts +2 -2
- package/src/models/registry.ts +196 -29
- package/src/models/useModelRegistry.ts +10 -2
- package/src/oauth-app/CreateOAuthAppForm.tsx +16 -31
- package/src/oauth-app/OAuthAppDetailPanel.tsx +16 -31
- package/src/organization/CreateOrganizationForm.tsx +10 -29
- package/src/organization/OrgProfilePanel.tsx +13 -44
- package/src/platform-client/CreatePlatformClientForm.tsx +9 -29
- package/src/platform-client/PlatformClientDetailPanel.tsx +10 -30
- package/src/platform-client/PlatformClientListPanel.tsx +2 -18
- package/src/platform-client/PlatformClientSecretAlert.tsx +26 -55
- package/src/provider.tsx +76 -33
- package/src/resource-creation/WizardNav.tsx +2 -18
- package/src/resource-detail/ConfirmDialog.tsx +1 -1
- package/src/resource-detail/useCopyResource.ts +17 -23
- package/src/schedule/ScheduleDetailView.tsx +2 -18
- package/src/schedule/ScheduleForm.tsx +19 -34
- package/src/session/NewSessionViewer.tsx +85 -7
- package/src/session/SessionViewer.tsx +120 -17
- package/src/session/__tests__/audienceWiring.test.tsx +76 -0
- package/src/session/__tests__/panelNegotiation.test.tsx +302 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +134 -5
- package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +74 -0
- package/src/session/__tests__/useSessionPageFlow.runConfig.test.tsx +157 -0
- package/src/session/__tests__/useSessionPanel.test.ts +114 -0
- package/src/session/audience.ts +18 -0
- package/src/session/index.ts +2 -1
- package/src/session/run-config.ts +59 -0
- package/src/session/useNewSessionFlow.ts +39 -2
- package/src/session/useSessionConversation.ts +10 -8
- package/src/session/useSessionPageFlow.ts +51 -10
- package/src/session/useSessionPanel.ts +91 -10
- package/src/settings/ApiKeysSection.tsx +4 -3
- package/src/settings/ChannelAppsSection.tsx +4 -3
- package/src/settings/EnvironmentsSection.tsx +8 -5
- package/src/settings/IdentityProvidersSection.tsx +4 -3
- package/src/settings/InvitationsSection.tsx +4 -2
- package/src/settings/MembersSection.tsx +4 -2
- package/src/settings/OAuthAppsSection.tsx +4 -3
- package/src/settings/OrgProfileSection.tsx +4 -3
- package/src/settings/PlatformClientsSection.tsx +4 -3
- package/src/settings/UsageSection.tsx +4 -2
- package/src/sharing/ShareAgentDialog.tsx +28 -10
- package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -1
- package/src/sidebar/chrome.tsx +6 -6
- package/src/skill/SkillDiffDialog.tsx +1 -1
- package/src/styles.css +43 -0
- package/src/version-history/VersionTimelineEntry.tsx +1 -21
- package/src/workflow/FailedRunsWidget.tsx +2 -9
- package/src/workflow/PendingApprovalsWidget.tsx +2 -9
- package/src/workflow/ViewYamlDialog.tsx +7 -22
- package/src/workflow/WorkflowArchitectDialog.tsx +8 -27
- package/src/workflow/WorkflowArtifactDocument.tsx +5 -9
- package/src/workflow/WorkflowCanvasEditor.tsx +2 -0
- package/src/workflow/WorkflowCanvasInner.tsx +14 -1
- package/src/workflow/WorkflowDiffGraph.tsx +7 -1
- package/src/workflow/WorkflowExecutionViewer.tsx +88 -11
- package/src/workflow/WorkflowExplainDialog.tsx +8 -24
- package/src/workflow/WorkflowOverviewGraph.tsx +9 -1
- package/src/workflow/WorkflowRefinePanel.tsx +2 -18
- package/src/workflow/WorkflowRepairCard.tsx +2 -18
- package/src/workflow/WorkflowRunDialog.tsx +3 -23
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +2 -17
- package/src/workflow/WorkflowVersionBadge.tsx +4 -13
- package/src/workflow/WorkflowVersionTimeline.tsx +1 -25
- package/src/workflow/__tests__/panelNegotiation.test.tsx +230 -0
- package/src/workflow/__tests__/useWorkflowCanvas.dirty.test.tsx +178 -0
- package/src/workflow/__tests__/useWorkflowCanvas.drag.test.tsx +224 -0
- package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +100 -0
- package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +7 -11
- package/src/workflow/execution-history/ExecutionHistoryTable.tsx +1 -25
- package/src/workflow/index.ts +1 -0
- package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +1 -1
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -1
- package/src/workflow/picker/BranchAddPopover.tsx +4 -3
- package/src/workflow/templates/WorkflowTemplatePreview.tsx +1 -1
- package/src/workflow/useApprovalBoundary.ts +1 -1
- package/src/workflow/useWorkflowCanvas.ts +114 -11
- package/src/workflow/useWorkflowExecutionPanel.ts +95 -13
- package/styles.css +1 -1
- package/version-history/VersionTimelineEntry.d.ts.map +1 -1
- package/version-history/VersionTimelineEntry.js +1 -23
- package/version-history/VersionTimelineEntry.js.map +1 -1
- package/workflow/CanvasTransitionEdge.d.ts +1 -1
- package/workflow/FailedRunsWidget.d.ts.map +1 -1
- package/workflow/FailedRunsWidget.js +2 -11
- package/workflow/FailedRunsWidget.js.map +1 -1
- package/workflow/PendingApprovalsWidget.d.ts.map +1 -1
- package/workflow/PendingApprovalsWidget.js +2 -11
- package/workflow/PendingApprovalsWidget.js.map +1 -1
- package/workflow/ViewYamlDialog.d.ts.map +1 -1
- package/workflow/ViewYamlDialog.js +7 -23
- package/workflow/ViewYamlDialog.js.map +1 -1
- package/workflow/WorkflowArchitectDialog.d.ts.map +1 -1
- package/workflow/WorkflowArchitectDialog.js +7 -11
- package/workflow/WorkflowArchitectDialog.js.map +1 -1
- package/workflow/WorkflowArtifactDocument.d.ts.map +1 -1
- package/workflow/WorkflowArtifactDocument.js +5 -8
- package/workflow/WorkflowArtifactDocument.js.map +1 -1
- package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
- package/workflow/WorkflowCanvasEditor.js +1 -1
- package/workflow/WorkflowCanvasEditor.js.map +1 -1
- package/workflow/WorkflowCanvasInner.d.ts +4 -2
- package/workflow/WorkflowCanvasInner.d.ts.map +1 -1
- package/workflow/WorkflowCanvasInner.js +7 -3
- package/workflow/WorkflowCanvasInner.js.map +1 -1
- package/workflow/WorkflowDiffGraph.js +6 -2
- package/workflow/WorkflowDiffGraph.js.map +1 -1
- package/workflow/WorkflowExecutionViewer.d.ts +51 -0
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
- package/workflow/WorkflowExecutionViewer.js +23 -6
- package/workflow/WorkflowExecutionViewer.js.map +1 -1
- package/workflow/WorkflowExplainDialog.d.ts.map +1 -1
- package/workflow/WorkflowExplainDialog.js +6 -8
- package/workflow/WorkflowExplainDialog.js.map +1 -1
- package/workflow/WorkflowOverviewGraph.js +8 -2
- package/workflow/WorkflowOverviewGraph.js.map +1 -1
- package/workflow/WorkflowRefinePanel.d.ts.map +1 -1
- package/workflow/WorkflowRefinePanel.js +2 -4
- package/workflow/WorkflowRefinePanel.js.map +1 -1
- package/workflow/WorkflowRepairCard.d.ts.map +1 -1
- package/workflow/WorkflowRepairCard.js +2 -4
- package/workflow/WorkflowRepairCard.js.map +1 -1
- package/workflow/WorkflowRunDialog.d.ts.map +1 -1
- package/workflow/WorkflowRunDialog.js +2 -7
- package/workflow/WorkflowRunDialog.js.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.js +2 -4
- package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
- package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
- package/workflow/WorkflowVersionBadge.js +4 -13
- package/workflow/WorkflowVersionBadge.js.map +1 -1
- package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowVersionTimeline.js +1 -26
- package/workflow/WorkflowVersionTimeline.js.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.d.ts.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -15
- package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.js +1 -24
- package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
- package/workflow/index.d.ts +1 -1
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js.map +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.js +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/picker/BranchAddPopover.d.ts.map +1 -1
- package/workflow/picker/BranchAddPopover.js +3 -2
- package/workflow/picker/BranchAddPopover.js.map +1 -1
- package/workflow/templates/WorkflowTemplatePreview.js +1 -1
- package/workflow/useApprovalBoundary.d.ts +1 -1
- package/workflow/useApprovalBoundary.js +1 -1
- package/workflow/useWorkflowCanvas.d.ts +5 -1
- package/workflow/useWorkflowCanvas.d.ts.map +1 -1
- package/workflow/useWorkflowCanvas.js +99 -13
- package/workflow/useWorkflowCanvas.js.map +1 -1
- package/workflow/useWorkflowExecutionPanel.d.ts +38 -2
- package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionPanel.js +46 -13
- package/workflow/useWorkflowExecutionPanel.js.map +1 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useCallback,
|
|
3
|
+
import { type FormEvent, useCallback, useId, useRef, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
6
|
import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
|
|
7
7
|
import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
8
8
|
import { timestampDate, type Timestamp } from "@bufbuild/protobuf/wkt";
|
|
9
9
|
import { useUpdateIdentityProvider } from "./useUpdateIdentityProvider.js";
|
|
10
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
11
|
+
import { selectElementText } from "../internal/select-element-text.js";
|
|
12
|
+
import { useCopyFeedback } from "../internal/useCopyFeedback.js";
|
|
10
13
|
|
|
11
14
|
/** Props for {@link IdentityProviderDetailPanel}. */
|
|
12
15
|
export interface IdentityProviderDetailPanelProps {
|
|
@@ -55,6 +58,7 @@ export function IdentityProviderDetailPanel({
|
|
|
55
58
|
ssoLoginUrl,
|
|
56
59
|
className,
|
|
57
60
|
}: IdentityProviderDetailPanelProps) {
|
|
61
|
+
const baseId = useId();
|
|
58
62
|
const spec = identityProvider.spec;
|
|
59
63
|
const meta = identityProvider.metadata;
|
|
60
64
|
|
|
@@ -230,7 +234,7 @@ export function IdentityProviderDetailPanel({
|
|
|
230
234
|
) : (
|
|
231
235
|
<form onSubmit={handleSave} className="stg:space-y-3">
|
|
232
236
|
<FieldInput
|
|
233
|
-
id=
|
|
237
|
+
id={`${baseId}-name`}
|
|
234
238
|
label="Display name"
|
|
235
239
|
value={displayName}
|
|
236
240
|
onChange={setDisplayName}
|
|
@@ -239,7 +243,7 @@ export function IdentityProviderDetailPanel({
|
|
|
239
243
|
required
|
|
240
244
|
/>
|
|
241
245
|
<FieldInput
|
|
242
|
-
id=
|
|
246
|
+
id={`${baseId}-jwks`}
|
|
243
247
|
label="JWKS URI"
|
|
244
248
|
value={jwksUri}
|
|
245
249
|
onChange={setJwksUri}
|
|
@@ -248,7 +252,7 @@ export function IdentityProviderDetailPanel({
|
|
|
248
252
|
required
|
|
249
253
|
/>
|
|
250
254
|
<FieldInput
|
|
251
|
-
id=
|
|
255
|
+
id={`${baseId}-issuers`}
|
|
252
256
|
label="Allowed issuers"
|
|
253
257
|
value={issuers}
|
|
254
258
|
onChange={setIssuers}
|
|
@@ -258,7 +262,7 @@ export function IdentityProviderDetailPanel({
|
|
|
258
262
|
required
|
|
259
263
|
/>
|
|
260
264
|
<FieldInput
|
|
261
|
-
id=
|
|
265
|
+
id={`${baseId}-audience`}
|
|
262
266
|
label="Expected audience"
|
|
263
267
|
value={audience}
|
|
264
268
|
onChange={setAudience}
|
|
@@ -267,7 +271,7 @@ export function IdentityProviderDetailPanel({
|
|
|
267
271
|
required
|
|
268
272
|
/>
|
|
269
273
|
<FieldInput
|
|
270
|
-
id=
|
|
274
|
+
id={`${baseId}-userinfo`}
|
|
271
275
|
label="Userinfo endpoint"
|
|
272
276
|
value={userinfoEndpoint}
|
|
273
277
|
onChange={setUserinfoEndpoint}
|
|
@@ -304,7 +308,7 @@ export function IdentityProviderDetailPanel({
|
|
|
304
308
|
|
|
305
309
|
{isSso && (
|
|
306
310
|
<FieldInput
|
|
307
|
-
id=
|
|
311
|
+
id={`${baseId}-client-id`}
|
|
308
312
|
label="OIDC client ID"
|
|
309
313
|
value={oidcClientId}
|
|
310
314
|
onChange={setOidcClientId}
|
|
@@ -345,7 +349,7 @@ export function IdentityProviderDetailPanel({
|
|
|
345
349
|
"stg:disabled:pointer-events-none stg:disabled:opacity-40",
|
|
346
350
|
)}
|
|
347
351
|
>
|
|
348
|
-
{isUpdating && <SpinnerIcon />}
|
|
352
|
+
{isUpdating && <SpinnerIcon size={12} />}
|
|
349
353
|
Save changes
|
|
350
354
|
</button>
|
|
351
355
|
<button
|
|
@@ -488,8 +492,6 @@ function Field({
|
|
|
488
492
|
// View mode — copyable field
|
|
489
493
|
// ---------------------------------------------------------------------------
|
|
490
494
|
|
|
491
|
-
const COPIED_FEEDBACK_MS = 2000;
|
|
492
|
-
|
|
493
495
|
function CopyableField({
|
|
494
496
|
label,
|
|
495
497
|
value,
|
|
@@ -499,25 +501,14 @@ function CopyableField({
|
|
|
499
501
|
value: string;
|
|
500
502
|
hint?: string;
|
|
501
503
|
}) {
|
|
502
|
-
const
|
|
503
|
-
const
|
|
504
|
+
const { copy, copied } = useCopyFeedback();
|
|
505
|
+
const revealRef = useRef<HTMLElement>(null);
|
|
504
506
|
|
|
505
507
|
const handleCopy = useCallback(async () => {
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
} catch {
|
|
511
|
-
const el = document.getElementById(valueId);
|
|
512
|
-
if (el) {
|
|
513
|
-
const selection = window.getSelection();
|
|
514
|
-
const range = document.createRange();
|
|
515
|
-
range.selectNodeContents(el);
|
|
516
|
-
selection?.removeAllRanges();
|
|
517
|
-
selection?.addRange(range);
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
}, [value]);
|
|
508
|
+
if (await copy(value)) return;
|
|
509
|
+
// Rejected write: select the revealed value so the user can copy manually.
|
|
510
|
+
if (revealRef.current) selectElementText(revealRef.current);
|
|
511
|
+
}, [copy, value]);
|
|
521
512
|
|
|
522
513
|
return (
|
|
523
514
|
<div>
|
|
@@ -527,14 +518,14 @@ function CopyableField({
|
|
|
527
518
|
<dd className="stg:mt-0.5">
|
|
528
519
|
<div className="stg:flex stg:items-center stg:gap-2">
|
|
529
520
|
<span
|
|
530
|
-
|
|
521
|
+
ref={revealRef}
|
|
531
522
|
className="stg:text-foreground stg:break-all stg:font-mono stg:text-xs stg:select-all"
|
|
532
523
|
>
|
|
533
524
|
{value}
|
|
534
525
|
</span>
|
|
535
526
|
<button
|
|
536
527
|
type="button"
|
|
537
|
-
onClick={handleCopy}
|
|
528
|
+
onClick={() => void handleCopy()}
|
|
538
529
|
className={cn(
|
|
539
530
|
"stg:shrink-0 stg:rounded stg:px-1.5 stg:py-0.5 stg:text-[0.6rem]",
|
|
540
531
|
"stg:text-muted-foreground stg:hover:text-foreground stg:hover:bg-accent-hover",
|
|
@@ -669,6 +660,7 @@ function JitEditSection({
|
|
|
669
660
|
onTenantOrgClaimChange: (v: string) => void;
|
|
670
661
|
disabled?: boolean;
|
|
671
662
|
}) {
|
|
663
|
+
const baseId = useId();
|
|
672
664
|
if (isSso) {
|
|
673
665
|
return (
|
|
674
666
|
<div className="stg:rounded-md stg:border stg:border-border-muted stg:bg-muted-faint stg:px-3 stg:py-2">
|
|
@@ -712,13 +704,13 @@ function JitEditSection({
|
|
|
712
704
|
<>
|
|
713
705
|
<div className="stg:space-y-1">
|
|
714
706
|
<label
|
|
715
|
-
htmlFor=
|
|
707
|
+
htmlFor={`${baseId}-grant-role`}
|
|
716
708
|
className="stg:text-xs stg:font-medium stg:text-foreground"
|
|
717
709
|
>
|
|
718
710
|
Auto-grant role
|
|
719
711
|
</label>
|
|
720
712
|
<select
|
|
721
|
-
id=
|
|
713
|
+
id={`${baseId}-grant-role`}
|
|
722
714
|
value={String(autoGrantRole)}
|
|
723
715
|
onChange={(e) => onAutoGrantRoleChange(Number(e.target.value) as IamRole)}
|
|
724
716
|
disabled={disabled}
|
|
@@ -740,7 +732,7 @@ function JitEditSection({
|
|
|
740
732
|
</div>
|
|
741
733
|
|
|
742
734
|
<FieldInput
|
|
743
|
-
id=
|
|
735
|
+
id={`${baseId}-tenant-claim`}
|
|
744
736
|
label="Tenant org claim"
|
|
745
737
|
value={tenantOrgClaim}
|
|
746
738
|
onChange={onTenantOrgClaimChange}
|
|
@@ -846,20 +838,3 @@ function ArrowLeftIcon() {
|
|
|
846
838
|
);
|
|
847
839
|
}
|
|
848
840
|
|
|
849
|
-
function SpinnerIcon() {
|
|
850
|
-
return (
|
|
851
|
-
<svg
|
|
852
|
-
width="12"
|
|
853
|
-
height="12"
|
|
854
|
-
viewBox="0 0 16 16"
|
|
855
|
-
fill="none"
|
|
856
|
-
stroke="currentColor"
|
|
857
|
-
strokeWidth="2"
|
|
858
|
-
strokeLinecap="round"
|
|
859
|
-
className="stg:animate-spin"
|
|
860
|
-
aria-hidden="true"
|
|
861
|
-
>
|
|
862
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
863
|
-
</svg>
|
|
864
|
-
);
|
|
865
|
-
}
|
|
@@ -8,6 +8,7 @@ import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identitypr
|
|
|
8
8
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js";
|
|
9
9
|
import { useIdentityProviderList } from "./useIdentityProviderList.js";
|
|
10
10
|
import { useDeleteIdentityProvider } from "./useDeleteIdentityProvider.js";
|
|
11
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
11
12
|
|
|
12
13
|
/** Props for {@link IdentityProviderListPanel}. */
|
|
13
14
|
export interface IdentityProviderListPanelProps {
|
|
@@ -197,7 +198,7 @@ function IdpRow({
|
|
|
197
198
|
"stg:disabled:pointer-events-none stg:disabled:opacity-50",
|
|
198
199
|
)}
|
|
199
200
|
>
|
|
200
|
-
{isDeleting && <SpinnerIcon />}
|
|
201
|
+
{isDeleting && <SpinnerIcon size={12} />}
|
|
201
202
|
Delete
|
|
202
203
|
</button>
|
|
203
204
|
<button
|
|
@@ -366,20 +367,3 @@ function TrashIcon() {
|
|
|
366
367
|
);
|
|
367
368
|
}
|
|
368
369
|
|
|
369
|
-
function SpinnerIcon() {
|
|
370
|
-
return (
|
|
371
|
-
<svg
|
|
372
|
-
width="12"
|
|
373
|
-
height="12"
|
|
374
|
-
viewBox="0 0 16 16"
|
|
375
|
-
fill="none"
|
|
376
|
-
stroke="currentColor"
|
|
377
|
-
strokeWidth="2"
|
|
378
|
-
strokeLinecap="round"
|
|
379
|
-
className="stg:animate-spin"
|
|
380
|
-
aria-hidden="true"
|
|
381
|
-
>
|
|
382
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
383
|
-
</svg>
|
|
384
|
-
);
|
|
385
|
-
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
useCallback,
|
|
5
|
-
useState,
|
|
6
|
-
type FormEvent,
|
|
7
|
-
} from "react";
|
|
3
|
+
import { type FormEvent, useCallback, useId, useState } from "react";
|
|
8
4
|
import { cn } from "@stigmer/theme";
|
|
9
5
|
import { getUserMessage } from "@stigmer/sdk";
|
|
10
6
|
import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
|
|
@@ -13,6 +9,7 @@ import { ProviderPicker } from "./ProviderPicker.js";
|
|
|
13
9
|
import { useCreateIdentityProvider } from "./useCreateIdentityProvider.js";
|
|
14
10
|
import { useOidcDiscovery } from "./useOidcDiscovery.js";
|
|
15
11
|
import type { ProviderPreset, ProviderConfig } from "./presets.js";
|
|
12
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
16
13
|
|
|
17
14
|
/** Props for {@link IdentityProviderWizard}. */
|
|
18
15
|
export interface IdentityProviderWizardProps {
|
|
@@ -365,6 +362,7 @@ function ConfigureStep({
|
|
|
365
362
|
onContinue: () => void;
|
|
366
363
|
onCancel?: () => void;
|
|
367
364
|
}) {
|
|
365
|
+
const baseId = useId();
|
|
368
366
|
const allVarsFilled = preset.variables.every(
|
|
369
367
|
(v) => (vars[v.key] ?? "").trim() !== "",
|
|
370
368
|
);
|
|
@@ -402,7 +400,7 @@ function ConfigureStep({
|
|
|
402
400
|
|
|
403
401
|
{/* Common fields */}
|
|
404
402
|
<FieldInput
|
|
405
|
-
id=
|
|
403
|
+
id={`${baseId}-name`}
|
|
406
404
|
label="Display name"
|
|
407
405
|
value={name}
|
|
408
406
|
onChange={onNameChange}
|
|
@@ -412,7 +410,7 @@ function ConfigureStep({
|
|
|
412
410
|
/>
|
|
413
411
|
|
|
414
412
|
<FieldInput
|
|
415
|
-
id=
|
|
413
|
+
id={`${baseId}-audience`}
|
|
416
414
|
label="Expected audience"
|
|
417
415
|
value={audience}
|
|
418
416
|
onChange={onAudienceChange}
|
|
@@ -438,7 +436,7 @@ function ConfigureStep({
|
|
|
438
436
|
"stg:disabled:pointer-events-none stg:disabled:opacity-40",
|
|
439
437
|
)}
|
|
440
438
|
>
|
|
441
|
-
{isLoading && <SpinnerIcon />}
|
|
439
|
+
{isLoading && <SpinnerIcon size={12} />}
|
|
442
440
|
Continue
|
|
443
441
|
</button>
|
|
444
442
|
<TextButton onClick={onBack} disabled={isLoading}>
|
|
@@ -507,6 +505,7 @@ function ReviewStep({
|
|
|
507
505
|
onSubmit: (e: FormEvent) => void;
|
|
508
506
|
onCancel?: () => void;
|
|
509
507
|
}) {
|
|
508
|
+
const baseId = useId();
|
|
510
509
|
const canSubmit =
|
|
511
510
|
jwksUri.trim() !== "" &&
|
|
512
511
|
issuers.trim() !== "" &&
|
|
@@ -530,7 +529,7 @@ function ReviewStep({
|
|
|
530
529
|
</p>
|
|
531
530
|
|
|
532
531
|
<FieldInput
|
|
533
|
-
id=
|
|
532
|
+
id={`${baseId}-jwks`}
|
|
534
533
|
label="JWKS URI"
|
|
535
534
|
value={jwksUri}
|
|
536
535
|
onChange={onJwksUriChange}
|
|
@@ -540,7 +539,7 @@ function ReviewStep({
|
|
|
540
539
|
/>
|
|
541
540
|
|
|
542
541
|
<FieldInput
|
|
543
|
-
id=
|
|
542
|
+
id={`${baseId}-issuers`}
|
|
544
543
|
label="Allowed issuers"
|
|
545
544
|
value={issuers}
|
|
546
545
|
onChange={onIssuersChange}
|
|
@@ -551,7 +550,7 @@ function ReviewStep({
|
|
|
551
550
|
/>
|
|
552
551
|
|
|
553
552
|
<FieldInput
|
|
554
|
-
id=
|
|
553
|
+
id={`${baseId}-userinfo`}
|
|
555
554
|
label="Userinfo endpoint"
|
|
556
555
|
value={userinfoEndpoint}
|
|
557
556
|
onChange={onUserinfoEndpointChange}
|
|
@@ -570,7 +569,7 @@ function ReviewStep({
|
|
|
570
569
|
|
|
571
570
|
{isSso && (
|
|
572
571
|
<FieldInput
|
|
573
|
-
id=
|
|
572
|
+
id={`${baseId}-client-id`}
|
|
574
573
|
label="OIDC client ID"
|
|
575
574
|
value={oidcClientId}
|
|
576
575
|
onChange={onOidcClientIdChange}
|
|
@@ -611,7 +610,7 @@ function ReviewStep({
|
|
|
611
610
|
"stg:disabled:pointer-events-none stg:disabled:opacity-40",
|
|
612
611
|
)}
|
|
613
612
|
>
|
|
614
|
-
{isCreating && <SpinnerIcon />}
|
|
613
|
+
{isCreating && <SpinnerIcon size={12} />}
|
|
615
614
|
Create identity provider
|
|
616
615
|
</button>
|
|
617
616
|
<TextButton onClick={onBack} disabled={isCreating}>
|
|
@@ -825,6 +824,7 @@ function JitProvisioningSection({
|
|
|
825
824
|
onTenantOrgClaimChange: (v: string) => void;
|
|
826
825
|
disabled?: boolean;
|
|
827
826
|
}) {
|
|
827
|
+
const baseId = useId();
|
|
828
828
|
if (isSso) {
|
|
829
829
|
return (
|
|
830
830
|
<div className="stg:rounded-md stg:border stg:border-border-muted stg:bg-muted-faint stg:px-3 stg:py-2">
|
|
@@ -867,7 +867,7 @@ function JitProvisioningSection({
|
|
|
867
867
|
{autoGrant && (
|
|
868
868
|
<>
|
|
869
869
|
<FieldInput
|
|
870
|
-
id=
|
|
870
|
+
id={`${baseId}-grant-role`}
|
|
871
871
|
label="Auto-grant role"
|
|
872
872
|
value={String(autoGrantRole)}
|
|
873
873
|
onChange={(v) => onAutoGrantRoleChange(Number(v) as IamRole)}
|
|
@@ -879,7 +879,7 @@ function JitProvisioningSection({
|
|
|
879
879
|
/>
|
|
880
880
|
|
|
881
881
|
<FieldInput
|
|
882
|
-
id=
|
|
882
|
+
id={`${baseId}-tenant-claim`}
|
|
883
883
|
label="Tenant org claim"
|
|
884
884
|
value={tenantOrgClaim}
|
|
885
885
|
onChange={onTenantOrgClaimChange}
|
|
@@ -980,20 +980,3 @@ function CancelButton({
|
|
|
980
980
|
);
|
|
981
981
|
}
|
|
982
982
|
|
|
983
|
-
function SpinnerIcon() {
|
|
984
|
-
return (
|
|
985
|
-
<svg
|
|
986
|
-
width="12"
|
|
987
|
-
height="12"
|
|
988
|
-
viewBox="0 0 16 16"
|
|
989
|
-
fill="none"
|
|
990
|
-
stroke="currentColor"
|
|
991
|
-
strokeWidth="2"
|
|
992
|
-
strokeLinecap="round"
|
|
993
|
-
className="stg:animate-spin"
|
|
994
|
-
aria-hidden="true"
|
|
995
|
-
>
|
|
996
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
997
|
-
</svg>
|
|
998
|
-
);
|
|
999
|
-
}
|
|
@@ -184,7 +184,8 @@ function resolvePhase(
|
|
|
184
184
|
// Sub-components
|
|
185
185
|
// ---------------------------------------------------------------------------
|
|
186
186
|
|
|
187
|
-
import { forwardRef } from "react";
|
|
187
|
+
import { forwardRef, useId } from "react";
|
|
188
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
188
189
|
|
|
189
190
|
interface OrgInputFormProps {
|
|
190
191
|
readonly value: string;
|
|
@@ -194,17 +195,18 @@ interface OrgInputFormProps {
|
|
|
194
195
|
|
|
195
196
|
const OrgInputForm = forwardRef<HTMLInputElement, OrgInputFormProps>(
|
|
196
197
|
function OrgInputForm({ value, onChange, onSubmit }, ref) {
|
|
198
|
+
const inputId = useId();
|
|
197
199
|
return (
|
|
198
200
|
<form onSubmit={onSubmit} className="stg:space-y-3">
|
|
199
201
|
<label
|
|
200
|
-
htmlFor=
|
|
202
|
+
htmlFor={inputId}
|
|
201
203
|
className="stg:block stg:text-sm stg:font-medium stg:text-foreground"
|
|
202
204
|
>
|
|
203
205
|
Organization
|
|
204
206
|
</label>
|
|
205
207
|
<input
|
|
206
208
|
ref={ref}
|
|
207
|
-
id=
|
|
209
|
+
id={inputId}
|
|
208
210
|
type="text"
|
|
209
211
|
value={value}
|
|
210
212
|
onChange={(e) => onChange(e.target.value)}
|
|
@@ -244,7 +246,7 @@ function LoadingState({ org }: { org: string }) {
|
|
|
244
246
|
aria-busy="true"
|
|
245
247
|
aria-label={`Looking up SSO provider for ${org}`}
|
|
246
248
|
>
|
|
247
|
-
<SpinnerIcon />
|
|
249
|
+
<SpinnerIcon size={20} className="stg:text-muted-foreground" />
|
|
248
250
|
<p className="stg:text-sm stg:text-muted-foreground">
|
|
249
251
|
Looking up <span className="stg:font-medium stg:text-foreground">{org}</span>…
|
|
250
252
|
</p>
|
|
@@ -366,23 +368,6 @@ function ErrorState({
|
|
|
366
368
|
// Icons
|
|
367
369
|
// ---------------------------------------------------------------------------
|
|
368
370
|
|
|
369
|
-
function SpinnerIcon() {
|
|
370
|
-
return (
|
|
371
|
-
<svg
|
|
372
|
-
width="20"
|
|
373
|
-
height="20"
|
|
374
|
-
viewBox="0 0 16 16"
|
|
375
|
-
fill="none"
|
|
376
|
-
stroke="currentColor"
|
|
377
|
-
strokeWidth="2"
|
|
378
|
-
strokeLinecap="round"
|
|
379
|
-
className="stg:animate-spin stg:text-muted-foreground"
|
|
380
|
-
aria-hidden="true"
|
|
381
|
-
>
|
|
382
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
383
|
-
</svg>
|
|
384
|
-
);
|
|
385
|
-
}
|
|
386
371
|
|
|
387
372
|
function SsoShieldIcon() {
|
|
388
373
|
return (
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Provider and context
|
|
2
2
|
export { StigmerProvider, type StigmerProviderProps } from "./provider.js";
|
|
3
|
+
export { type ApprovalDefaults } from "./approval-defaults-context.js";
|
|
3
4
|
export { StigmerContext } from "./context.js";
|
|
4
5
|
|
|
5
6
|
// Runner adapter
|
|
@@ -39,7 +40,9 @@ export {
|
|
|
39
40
|
modelKey,
|
|
40
41
|
parseModelKey,
|
|
41
42
|
fetchModelRegistry,
|
|
43
|
+
fetchModelRegistryDocument,
|
|
42
44
|
parseRegistryJson,
|
|
45
|
+
parseRegistryDocument,
|
|
43
46
|
useModelRegistry,
|
|
44
47
|
ModelRegistryContext,
|
|
45
48
|
ModelSelector,
|
|
@@ -51,6 +54,7 @@ export {
|
|
|
51
54
|
} from "./models/index.js";
|
|
52
55
|
export type {
|
|
53
56
|
ModelInfo,
|
|
57
|
+
ModelRegistryDocument,
|
|
54
58
|
ModelRegistryState,
|
|
55
59
|
ParsedModelKey,
|
|
56
60
|
Provider,
|
|
@@ -60,6 +64,7 @@ export type {
|
|
|
60
64
|
ModelSelectorProps,
|
|
61
65
|
HarnessSelectorProps,
|
|
62
66
|
HarnessOption,
|
|
67
|
+
VisionLimits,
|
|
63
68
|
} from "./models/index.js";
|
|
64
69
|
|
|
65
70
|
// Workspace — behavior hooks and styled components
|
|
@@ -215,6 +220,7 @@ export type {
|
|
|
215
220
|
ExecutionTargetOption,
|
|
216
221
|
RuntimeEnvProvider,
|
|
217
222
|
SessionAudience,
|
|
223
|
+
SessionPanelMode,
|
|
218
224
|
SetupTabProps,
|
|
219
225
|
SetupTabMutationCallbacks,
|
|
220
226
|
} from "./session/index.js";
|
|
@@ -257,6 +263,7 @@ export {
|
|
|
257
263
|
ExecutionPhaseBadge,
|
|
258
264
|
InteractionModeBadge,
|
|
259
265
|
SetupProgress,
|
|
266
|
+
LivenessStatusLine,
|
|
260
267
|
ExecutionProgress,
|
|
261
268
|
TodoList,
|
|
262
269
|
TodoCard,
|
|
@@ -279,6 +286,7 @@ export {
|
|
|
279
286
|
ResultView,
|
|
280
287
|
summarizeResultView,
|
|
281
288
|
TerminalSession,
|
|
289
|
+
TerminalTail,
|
|
282
290
|
useToolPresentation,
|
|
283
291
|
registerToolPresenter,
|
|
284
292
|
getToolPresenter,
|
|
@@ -296,6 +304,7 @@ export {
|
|
|
296
304
|
SubAgentSection,
|
|
297
305
|
MessageEntry,
|
|
298
306
|
MessageThread,
|
|
307
|
+
ExecutionErrorNotice,
|
|
299
308
|
ThreadSkeleton,
|
|
300
309
|
FollowUpInput,
|
|
301
310
|
ApprovalCard,
|
|
@@ -380,6 +389,7 @@ export type {
|
|
|
380
389
|
ExecutionPhaseBadgeProps,
|
|
381
390
|
InteractionModeBadgeProps,
|
|
382
391
|
SetupProgressProps,
|
|
392
|
+
LivenessStatusLineProps,
|
|
383
393
|
ExecutionProgressProps,
|
|
384
394
|
TodoListProps,
|
|
385
395
|
TodoCardProps,
|
|
@@ -398,6 +408,7 @@ export type {
|
|
|
398
408
|
ToolCallDetailProps,
|
|
399
409
|
ResultViewProps,
|
|
400
410
|
TerminalSessionProps,
|
|
411
|
+
TerminalTailProps,
|
|
401
412
|
ToolPresentation,
|
|
402
413
|
ToolPresenter,
|
|
403
414
|
ToolDisclosure,
|
|
@@ -409,6 +420,8 @@ export type {
|
|
|
409
420
|
SubAgentSectionProps,
|
|
410
421
|
MessageEntryProps,
|
|
411
422
|
MessageThreadProps,
|
|
423
|
+
MessageThreadSlots,
|
|
424
|
+
ExecutionErrorNoticeProps,
|
|
412
425
|
ThreadContentColumn,
|
|
413
426
|
ThreadSkeletonProps,
|
|
414
427
|
FollowUpInputProps,
|
|
@@ -466,13 +479,14 @@ export type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agent
|
|
|
466
479
|
export { ExecutionArtifactKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
467
480
|
|
|
468
481
|
// Attachment — file upload behavior hook, styled chip list, clipboard paste,
|
|
469
|
-
//
|
|
482
|
+
// vision-resolution image preparation, and vision preflight warnings
|
|
470
483
|
export {
|
|
471
484
|
useAttachments,
|
|
472
485
|
AttachmentChipList,
|
|
473
486
|
MAX_ATTACHMENT_BYTES,
|
|
474
487
|
MAX_VISION_LONG_EDGE_PX,
|
|
475
488
|
MAX_VISION_PIXELS,
|
|
489
|
+
assessVisionPreflight,
|
|
476
490
|
detectContentType,
|
|
477
491
|
exceedsVisionResolution,
|
|
478
492
|
extractClipboardFiles,
|
|
@@ -481,15 +495,22 @@ export {
|
|
|
481
495
|
prepareImageForVision,
|
|
482
496
|
uniquifyFilename,
|
|
483
497
|
validateAttachmentSize,
|
|
498
|
+
visionPreflightMessage,
|
|
484
499
|
} from "./attachment/index.js";
|
|
485
500
|
export type {
|
|
486
501
|
AttachmentPhase,
|
|
487
502
|
AttachmentEntry,
|
|
503
|
+
AssessVisionPreflightOptions,
|
|
488
504
|
ClipboardFilesSource,
|
|
489
505
|
UseAttachmentsOptions,
|
|
490
506
|
UseAttachmentsReturn,
|
|
491
507
|
AttachmentChipListProps,
|
|
492
508
|
VisionFitSize,
|
|
509
|
+
VisionPreflight,
|
|
510
|
+
VisionPreflightAttachment,
|
|
511
|
+
VisionPreflightMessageOptions,
|
|
512
|
+
VisionPreflightReason,
|
|
513
|
+
VisionPreflightWarning,
|
|
493
514
|
} from "./attachment/index.js";
|
|
494
515
|
|
|
495
516
|
// File Reference — workspace file-reference behavior hook and styled chip list
|
|
@@ -1868,6 +1889,7 @@ export type {
|
|
|
1868
1889
|
WorkflowTaskListProps,
|
|
1869
1890
|
WorkflowDetailViewProps,
|
|
1870
1891
|
WorkflowExecutionViewerProps,
|
|
1892
|
+
WorkflowExecutionPanelMode,
|
|
1871
1893
|
WorkflowExecutionHeaderProps,
|
|
1872
1894
|
WorkflowExecutionPanelController,
|
|
1873
1895
|
UseWorkflowExecutionPanelOptions,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { cn } from "@stigmer/theme";
|
|
4
|
+
import { SpinnerIcon } from "../internal/thread-card/glyphs.js";
|
|
4
5
|
|
|
5
6
|
/** The visual weight of a {@link DecisionButton}. */
|
|
6
7
|
export type DecisionVariant = "primary" | "ghost" | "danger";
|
|
@@ -106,23 +107,3 @@ export function DecisionButton({
|
|
|
106
107
|
);
|
|
107
108
|
}
|
|
108
109
|
|
|
109
|
-
// ---------------------------------------------------------------------------
|
|
110
|
-
// Inline SVG icon
|
|
111
|
-
// ---------------------------------------------------------------------------
|
|
112
|
-
|
|
113
|
-
function SpinnerIcon() {
|
|
114
|
-
return (
|
|
115
|
-
<svg
|
|
116
|
-
width="10"
|
|
117
|
-
height="10"
|
|
118
|
-
viewBox="0 0 12 12"
|
|
119
|
-
fill="none"
|
|
120
|
-
stroke="currentColor"
|
|
121
|
-
strokeWidth="1.5"
|
|
122
|
-
className="stg:animate-spin"
|
|
123
|
-
aria-hidden="true"
|
|
124
|
-
>
|
|
125
|
-
<path d="M6 1.5A4.5 4.5 0 1 1 1.5 6" strokeLinecap="round" />
|
|
126
|
-
</svg>
|
|
127
|
-
);
|
|
128
|
-
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { cn } from "@stigmer/theme";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The SDK's canonical in-flight spinner: a three-quarter arc on a 16×16
|
|
5
|
+
* grid, colored by `currentColor` so the consumer's text token drives it
|
|
6
|
+
* (never hardcoded values — Dont-Do #3). Extracted from ~33 identical
|
|
7
|
+
* per-component copies (stigmer-cloud#270); new busy states import this
|
|
8
|
+
* instead of pasting another one.
|
|
9
|
+
*
|
|
10
|
+
* `size` is the rendered box; the glyph scales from the same viewBox, so
|
|
11
|
+
* every size renders the identical shape. Decorative by contract
|
|
12
|
+
* (`aria-hidden`) — pair it with visible or `sr-only` text when the busy
|
|
13
|
+
* state itself must be announced.
|
|
14
|
+
*
|
|
15
|
+
* The thread-card rows deliberately use a finer quarter-arc micro-glyph
|
|
16
|
+
* instead — see `internal/thread-card/glyphs.tsx`.
|
|
17
|
+
*
|
|
18
|
+
* @internal Not part of the public API.
|
|
19
|
+
*/
|
|
20
|
+
export function SpinnerIcon({
|
|
21
|
+
size = 16,
|
|
22
|
+
className,
|
|
23
|
+
}: {
|
|
24
|
+
readonly size?: number;
|
|
25
|
+
readonly className?: string;
|
|
26
|
+
} = {}) {
|
|
27
|
+
return (
|
|
28
|
+
<svg
|
|
29
|
+
width={size}
|
|
30
|
+
height={size}
|
|
31
|
+
viewBox="0 0 16 16"
|
|
32
|
+
fill="none"
|
|
33
|
+
stroke="currentColor"
|
|
34
|
+
strokeWidth="2"
|
|
35
|
+
strokeLinecap="round"
|
|
36
|
+
className={cn("stg:animate-spin", className)}
|
|
37
|
+
aria-hidden="true"
|
|
38
|
+
>
|
|
39
|
+
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
40
|
+
</svg>
|
|
41
|
+
);
|
|
42
|
+
}
|