@stigmer/react 0.0.71 → 0.0.73
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/agent/AgentEnvForm.d.ts +2 -0
- package/agent/AgentEnvForm.d.ts.map +1 -1
- package/agent/AgentEnvForm.js.map +1 -1
- package/agent/AgentPicker.d.ts +2 -0
- package/agent/AgentPicker.d.ts.map +1 -1
- package/agent/AgentPicker.js.map +1 -1
- package/agent/agentSetupReducer.d.ts +69 -7
- package/agent/agentSetupReducer.d.ts.map +1 -1
- package/agent/agentSetupReducer.js.map +1 -1
- package/agent/useAgentCount.d.ts +2 -0
- package/agent/useAgentCount.d.ts.map +1 -1
- package/agent/useAgentCount.js.map +1 -1
- package/attachment/AttachmentChipList.d.ts +15 -0
- package/attachment/AttachmentChipList.d.ts.map +1 -1
- package/attachment/AttachmentChipList.js +15 -0
- package/attachment/AttachmentChipList.js.map +1 -1
- package/attachment/useAttachments.d.ts +14 -0
- package/attachment/useAttachments.d.ts.map +1 -1
- package/attachment/useAttachments.js.map +1 -1
- package/composer/useComposer.d.ts +5 -0
- package/composer/useComposer.d.ts.map +1 -1
- package/composer/useComposer.js.map +1 -1
- package/execution/ExecutionPhaseBadge.d.ts +1 -1
- package/execution/ExecutionPhaseBadge.js +1 -1
- package/execution/McpToolDetail.d.ts +16 -8
- package/execution/McpToolDetail.d.ts.map +1 -1
- package/execution/McpToolDetail.js +0 -6
- package/execution/McpToolDetail.js.map +1 -1
- package/execution/TodoList.d.ts +8 -0
- package/execution/TodoList.d.ts.map +1 -1
- package/execution/TodoList.js +8 -0
- package/execution/TodoList.js.map +1 -1
- package/execution/ToolArgsView.d.ts +1 -0
- package/execution/ToolArgsView.d.ts.map +1 -1
- package/execution/ToolArgsView.js.map +1 -1
- package/execution/UsageWidget.d.ts +1 -1
- package/execution/UsageWidget.js +1 -1
- package/execution/file-path-resolver.d.ts +10 -0
- package/execution/file-path-resolver.d.ts.map +1 -1
- package/execution/file-path-resolver.js.map +1 -1
- package/execution/index.d.ts +1 -1
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js.map +1 -1
- package/execution/useArtifactContent.d.ts +33 -0
- package/execution/useArtifactContent.d.ts.map +1 -1
- package/execution/useArtifactContent.js +33 -0
- package/execution/useArtifactContent.js.map +1 -1
- package/execution/useSubmitApproval.d.ts +2 -0
- package/execution/useSubmitApproval.d.ts.map +1 -1
- package/execution/useSubmitApproval.js.map +1 -1
- package/github/GitHubRepoPicker.d.ts +13 -0
- package/github/GitHubRepoPicker.d.ts.map +1 -1
- package/github/GitHubRepoPicker.js +13 -0
- package/github/GitHubRepoPicker.js.map +1 -1
- package/github/useGitHubConnection.d.ts +29 -1
- package/github/useGitHubConnection.d.ts.map +1 -1
- package/github/useGitHubConnection.js +29 -1
- package/github/useGitHubConnection.js.map +1 -1
- package/github/useGitHubRepos.d.ts +31 -0
- package/github/useGitHubRepos.d.ts.map +1 -1
- package/github/useGitHubRepos.js +31 -0
- package/github/useGitHubRepos.js.map +1 -1
- package/github/useGitHubSearch.d.ts +25 -0
- package/github/useGitHubSearch.d.ts.map +1 -1
- package/github/useGitHubSearch.js +25 -0
- package/github/useGitHubSearch.js.map +1 -1
- package/iam-policy/GrantAccessForm.d.ts +39 -0
- package/iam-policy/GrantAccessForm.d.ts.map +1 -0
- package/iam-policy/GrantAccessForm.js +75 -0
- package/iam-policy/GrantAccessForm.js.map +1 -0
- package/iam-policy/OrgMembersPanel.d.ts +28 -0
- package/iam-policy/OrgMembersPanel.d.ts.map +1 -0
- package/iam-policy/OrgMembersPanel.js +192 -0
- package/iam-policy/OrgMembersPanel.js.map +1 -0
- package/iam-policy/RoleSelector.d.ts +37 -0
- package/iam-policy/RoleSelector.d.ts.map +1 -0
- package/iam-policy/RoleSelector.js +42 -0
- package/iam-policy/RoleSelector.js.map +1 -0
- package/iam-policy/index.d.ts +12 -0
- package/iam-policy/index.d.ts.map +1 -0
- package/iam-policy/index.js +12 -0
- package/iam-policy/index.js.map +1 -0
- package/iam-policy/useCreateIamPolicy.d.ts +35 -0
- package/iam-policy/useCreateIamPolicy.d.ts.map +1 -0
- package/iam-policy/useCreateIamPolicy.js +46 -0
- package/iam-policy/useCreateIamPolicy.js.map +1 -0
- package/iam-policy/useDeleteIamPolicy.d.ts +34 -0
- package/iam-policy/useDeleteIamPolicy.d.ts.map +1 -0
- package/iam-policy/useDeleteIamPolicy.js +45 -0
- package/iam-policy/useDeleteIamPolicy.js.map +1 -0
- package/iam-policy/useGrantableRoles.d.ts +28 -0
- package/iam-policy/useGrantableRoles.d.ts.map +1 -0
- package/iam-policy/useGrantableRoles.js +32 -0
- package/iam-policy/useGrantableRoles.js.map +1 -0
- package/iam-policy/usePrincipalsCount.d.ts +31 -0
- package/iam-policy/usePrincipalsCount.d.ts.map +1 -0
- package/iam-policy/usePrincipalsCount.js +72 -0
- package/iam-policy/usePrincipalsCount.js.map +1 -0
- package/iam-policy/useResourceAccess.d.ts +51 -0
- package/iam-policy/useResourceAccess.d.ts.map +1 -0
- package/iam-policy/useResourceAccess.js +85 -0
- package/iam-policy/useResourceAccess.js.map +1 -0
- package/iam-policy/useRevokeOrgAccess.d.ts +36 -0
- package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -0
- package/iam-policy/useRevokeOrgAccess.js +48 -0
- package/iam-policy/useRevokeOrgAccess.js.map +1 -0
- package/iam-policy/useRoleSelector.d.ts +52 -0
- package/iam-policy/useRoleSelector.d.ts.map +1 -0
- package/iam-policy/useRoleSelector.js +50 -0
- package/iam-policy/useRoleSelector.js.map +1 -0
- package/iam-policy/useWhoAmI.d.ts +30 -0
- package/iam-policy/useWhoAmI.d.ts.map +1 -0
- package/iam-policy/useWhoAmI.js +56 -0
- package/iam-policy/useWhoAmI.js.map +1 -0
- package/identity-provider/CreateIdentityProviderForm.d.ts +39 -0
- package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -0
- package/identity-provider/CreateIdentityProviderForm.js +102 -0
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -0
- package/identity-provider/IdentityProviderDetailPanel.d.ts +42 -0
- package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -0
- package/identity-provider/IdentityProviderDetailPanel.js +156 -0
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -0
- package/identity-provider/IdentityProviderListPanel.d.ts +41 -0
- package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -0
- package/identity-provider/IdentityProviderListPanel.js +110 -0
- package/identity-provider/IdentityProviderListPanel.js.map +1 -0
- package/identity-provider/IdentityProviderWizard.d.ts +40 -0
- package/identity-provider/IdentityProviderWizard.d.ts.map +1 -0
- package/identity-provider/IdentityProviderWizard.js +180 -0
- package/identity-provider/IdentityProviderWizard.js.map +1 -0
- package/identity-provider/ProviderPicker.d.ts +28 -0
- package/identity-provider/ProviderPicker.d.ts.map +1 -0
- package/identity-provider/ProviderPicker.js +64 -0
- package/identity-provider/ProviderPicker.js.map +1 -0
- package/identity-provider/SsoLoginPrompt.d.ts +51 -0
- package/identity-provider/SsoLoginPrompt.d.ts.map +1 -0
- package/identity-provider/SsoLoginPrompt.js +119 -0
- package/identity-provider/SsoLoginPrompt.js.map +1 -0
- package/identity-provider/index.d.ts +14 -0
- package/identity-provider/index.d.ts.map +1 -0
- package/identity-provider/index.js +14 -0
- package/identity-provider/index.js.map +1 -0
- package/identity-provider/presets.d.ts +65 -0
- package/identity-provider/presets.d.ts.map +1 -0
- package/identity-provider/presets.js +200 -0
- package/identity-provider/presets.js.map +1 -0
- package/identity-provider/useCreateIdentityProvider.d.ts +37 -0
- package/identity-provider/useCreateIdentityProvider.d.ts.map +1 -0
- package/identity-provider/useCreateIdentityProvider.js +48 -0
- package/identity-provider/useCreateIdentityProvider.js.map +1 -0
- package/identity-provider/useDeleteIdentityProvider.d.ts +34 -0
- package/identity-provider/useDeleteIdentityProvider.d.ts.map +1 -0
- package/identity-provider/useDeleteIdentityProvider.js +45 -0
- package/identity-provider/useDeleteIdentityProvider.js.map +1 -0
- package/identity-provider/useIdentityProvider.d.ts +37 -0
- package/identity-provider/useIdentityProvider.d.ts.map +1 -0
- package/identity-provider/useIdentityProvider.js +62 -0
- package/identity-provider/useIdentityProvider.js.map +1 -0
- package/identity-provider/useIdentityProviderList.d.ts +48 -0
- package/identity-provider/useIdentityProviderList.d.ts.map +1 -0
- package/identity-provider/useIdentityProviderList.js +75 -0
- package/identity-provider/useIdentityProviderList.js.map +1 -0
- package/identity-provider/useOidcDiscovery.d.ts +39 -0
- package/identity-provider/useOidcDiscovery.d.ts.map +1 -0
- package/identity-provider/useOidcDiscovery.js +76 -0
- package/identity-provider/useOidcDiscovery.js.map +1 -0
- package/identity-provider/useSsoProvider.d.ts +50 -0
- package/identity-provider/useSsoProvider.d.ts.map +1 -0
- package/identity-provider/useSsoProvider.js +83 -0
- package/identity-provider/useSsoProvider.js.map +1 -0
- package/identity-provider/useUpdateIdentityProvider.d.ts +38 -0
- package/identity-provider/useUpdateIdentityProvider.d.ts.map +1 -0
- package/identity-provider/useUpdateIdentityProvider.js +49 -0
- package/identity-provider/useUpdateIdentityProvider.js.map +1 -0
- package/index.d.ts +14 -5
- package/index.d.ts.map +1 -1
- package/index.js +10 -2
- package/index.js.map +1 -1
- package/internal/CloudFeatureNotice.d.ts +12 -0
- package/internal/CloudFeatureNotice.d.ts.map +1 -1
- package/internal/CloudFeatureNotice.js +12 -0
- package/internal/CloudFeatureNotice.js.map +1 -1
- package/invitation/InvitationCreatedAlert.d.ts +35 -0
- package/invitation/InvitationCreatedAlert.d.ts.map +1 -0
- package/invitation/InvitationCreatedAlert.js +60 -0
- package/invitation/InvitationCreatedAlert.js.map +1 -0
- package/invitation/InvitationManager.d.ts +44 -0
- package/invitation/InvitationManager.d.ts.map +1 -0
- package/invitation/InvitationManager.js +248 -0
- package/invitation/InvitationManager.js.map +1 -0
- package/invitation/InvitationRedemption.d.ts +69 -0
- package/invitation/InvitationRedemption.d.ts.map +1 -0
- package/invitation/InvitationRedemption.js +140 -0
- package/invitation/InvitationRedemption.js.map +1 -0
- package/invitation/index.d.ts +17 -0
- package/invitation/index.d.ts.map +1 -0
- package/invitation/index.js +9 -0
- package/invitation/index.js.map +1 -0
- package/invitation/useCreateInvitation.d.ts +52 -0
- package/invitation/useCreateInvitation.d.ts.map +1 -0
- package/invitation/useCreateInvitation.js +55 -0
- package/invitation/useCreateInvitation.js.map +1 -0
- package/invitation/useInvitationPreview.d.ts +51 -0
- package/invitation/useInvitationPreview.d.ts.map +1 -0
- package/invitation/useInvitationPreview.js +80 -0
- package/invitation/useInvitationPreview.js.map +1 -0
- package/invitation/useOrgInvitations.d.ts +36 -0
- package/invitation/useOrgInvitations.d.ts.map +1 -0
- package/invitation/useOrgInvitations.js +65 -0
- package/invitation/useOrgInvitations.js.map +1 -0
- package/invitation/useRedeemInvitation.d.ts +47 -0
- package/invitation/useRedeemInvitation.d.ts.map +1 -0
- package/invitation/useRedeemInvitation.js +53 -0
- package/invitation/useRedeemInvitation.js.map +1 -0
- package/invitation/useRevokeInvitation.d.ts +35 -0
- package/invitation/useRevokeInvitation.d.ts.map +1 -0
- package/invitation/useRevokeInvitation.js +47 -0
- package/invitation/useRevokeInvitation.js.map +1 -0
- package/library/detect-skill-package.d.ts +1 -0
- package/library/detect-skill-package.d.ts.map +1 -1
- package/library/detect-skill-package.js.map +1 -1
- package/library/detect-stigmer-resource.d.ts +1 -0
- package/library/detect-stigmer-resource.d.ts.map +1 -1
- package/library/detect-stigmer-resource.js.map +1 -1
- package/library/parse-resource-yaml.d.ts +4 -0
- package/library/parse-resource-yaml.d.ts.map +1 -1
- package/library/parse-resource-yaml.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts +2 -2
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/index.d.ts +1 -1
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/mcpServerSetupReducer.d.ts +54 -0
- package/mcp-server/mcpServerSetupReducer.d.ts.map +1 -1
- package/mcp-server/mcpServerSetupReducer.js.map +1 -1
- package/models/ModelSelector.d.ts +9 -0
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +9 -0
- package/models/ModelSelector.js.map +1 -1
- package/models/registry.d.ts +11 -1
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts +20 -0
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +20 -0
- package/models/useModelRegistry.js.map +1 -1
- package/organization/OrgProfilePanel.d.ts +31 -0
- package/organization/OrgProfilePanel.d.ts.map +1 -0
- package/organization/OrgProfilePanel.js +147 -0
- package/organization/OrgProfilePanel.js.map +1 -0
- package/organization/index.d.ts +6 -0
- package/organization/index.d.ts.map +1 -1
- package/organization/index.js +3 -0
- package/organization/index.js.map +1 -1
- package/organization/useOrganization.d.ts +31 -0
- package/organization/useOrganization.d.ts.map +1 -0
- package/organization/useOrganization.js +56 -0
- package/organization/useOrganization.js.map +1 -0
- package/organization/useUpdateOrganization.d.ts +40 -0
- package/organization/useUpdateOrganization.d.ts.map +1 -0
- package/organization/useUpdateOrganization.js +51 -0
- package/organization/useUpdateOrganization.js.map +1 -0
- package/package.json +4 -4
- package/provider.d.ts +1 -0
- package/provider.d.ts.map +1 -1
- package/provider.js.map +1 -1
- package/search/useResourceList.d.ts +4 -2
- package/search/useResourceList.d.ts.map +1 -1
- package/search/useResourceList.js +2 -1
- package/search/useResourceList.js.map +1 -1
- package/search/useResourceSearch.d.ts +10 -2
- package/search/useResourceSearch.d.ts.map +1 -1
- package/search/useResourceSearch.js +2 -1
- package/search/useResourceSearch.js.map +1 -1
- package/session/group-sessions.d.ts +23 -0
- package/session/group-sessions.d.ts.map +1 -1
- package/session/group-sessions.js +23 -0
- package/session/group-sessions.js.map +1 -1
- package/session/index.d.ts +1 -1
- package/session/index.d.ts.map +1 -1
- package/session/index.js.map +1 -1
- package/session/useCreateSession.d.ts +11 -2
- package/session/useCreateSession.d.ts.map +1 -1
- package/session/useCreateSession.js.map +1 -1
- package/session/useSession.d.ts +24 -0
- package/session/useSession.d.ts.map +1 -1
- package/session/useSession.js +24 -0
- package/session/useSession.js.map +1 -1
- package/session/useSessionArtifacts.d.ts +1 -0
- package/session/useSessionArtifacts.d.ts.map +1 -1
- package/session/useSessionArtifacts.js.map +1 -1
- package/session/useSessionConversation.d.ts +7 -0
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionExecutions.d.ts +23 -0
- package/session/useSessionExecutions.d.ts.map +1 -1
- package/session/useSessionExecutions.js +23 -0
- package/session/useSessionExecutions.js.map +1 -1
- package/session/useSessionList.d.ts +19 -0
- package/session/useSessionList.d.ts.map +1 -1
- package/session/useSessionList.js +19 -0
- package/session/useSessionList.js.map +1 -1
- package/session/useSessionWriteBacks.d.ts +1 -0
- package/session/useSessionWriteBacks.d.ts.map +1 -1
- package/session/useSessionWriteBacks.js.map +1 -1
- package/session/useUpdateSession.d.ts +22 -0
- package/session/useUpdateSession.d.ts.map +1 -1
- package/session/useUpdateSession.js +22 -0
- package/session/useUpdateSession.js.map +1 -1
- package/skill/SkillPicker.d.ts +15 -0
- package/skill/SkillPicker.d.ts.map +1 -1
- package/skill/SkillPicker.js +15 -0
- package/skill/SkillPicker.js.map +1 -1
- package/src/agent/AgentEnvForm.tsx +2 -0
- package/src/agent/AgentPicker.tsx +2 -0
- package/src/agent/agentSetupReducer.ts +109 -20
- package/src/agent/useAgentCount.ts +2 -0
- package/src/attachment/AttachmentChipList.tsx +15 -0
- package/src/attachment/useAttachments.ts +14 -0
- package/src/composer/useComposer.ts +5 -0
- package/src/execution/ExecutionPhaseBadge.tsx +1 -1
- package/src/execution/McpToolDetail.tsx +18 -6
- package/src/execution/TodoList.tsx +8 -0
- package/src/execution/ToolArgsView.tsx +1 -0
- package/src/execution/UsageWidget.tsx +1 -1
- package/src/execution/file-path-resolver.ts +28 -4
- package/src/execution/index.ts +5 -1
- package/src/execution/useArtifactContent.ts +33 -0
- package/src/execution/useSubmitApproval.ts +2 -0
- package/src/github/GitHubRepoPicker.tsx +13 -0
- package/src/github/useGitHubConnection.ts +29 -1
- package/src/github/useGitHubRepos.ts +31 -0
- package/src/github/useGitHubSearch.ts +25 -0
- package/src/iam-policy/GrantAccessForm.tsx +198 -0
- package/src/iam-policy/OrgMembersPanel.tsx +572 -0
- package/src/iam-policy/RoleSelector.tsx +105 -0
- package/src/iam-policy/index.ts +51 -0
- package/src/iam-policy/useCreateIamPolicy.ts +66 -0
- package/src/iam-policy/useDeleteIamPolicy.ts +65 -0
- package/src/iam-policy/useGrantableRoles.ts +45 -0
- package/src/iam-policy/usePrincipalsCount.ts +96 -0
- package/src/iam-policy/useResourceAccess.ts +128 -0
- package/src/iam-policy/useRevokeOrgAccess.ts +74 -0
- package/src/iam-policy/useRoleSelector.ts +97 -0
- package/src/iam-policy/useWhoAmI.ts +78 -0
- package/src/identity-provider/CreateIdentityProviderForm.tsx +308 -0
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +583 -0
- package/src/identity-provider/IdentityProviderListPanel.tsx +370 -0
- package/src/identity-provider/IdentityProviderWizard.tsx +684 -0
- package/src/identity-provider/ProviderPicker.tsx +152 -0
- package/src/identity-provider/SsoLoginPrompt.tsx +404 -0
- package/src/identity-provider/index.ts +67 -0
- package/src/identity-provider/presets.ts +262 -0
- package/src/identity-provider/useCreateIdentityProvider.ts +68 -0
- package/src/identity-provider/useDeleteIdentityProvider.ts +65 -0
- package/src/identity-provider/useIdentityProvider.ts +86 -0
- package/src/identity-provider/useIdentityProviderList.ts +100 -0
- package/src/identity-provider/useOidcDiscovery.ts +124 -0
- package/src/identity-provider/useSsoProvider.ts +99 -0
- package/src/identity-provider/useUpdateIdentityProvider.ts +69 -0
- package/src/index.ts +121 -1
- package/src/internal/CloudFeatureNotice.tsx +12 -0
- package/src/invitation/InvitationCreatedAlert.tsx +185 -0
- package/src/invitation/InvitationManager.tsx +842 -0
- package/src/invitation/InvitationRedemption.tsx +434 -0
- package/src/invitation/index.ts +16 -0
- package/src/invitation/useCreateInvitation.ts +83 -0
- package/src/invitation/useInvitationPreview.ts +103 -0
- package/src/invitation/useOrgInvitations.ts +88 -0
- package/src/invitation/useRedeemInvitation.ts +82 -0
- package/src/invitation/useRevokeInvitation.ts +66 -0
- package/src/library/detect-skill-package.ts +4 -1
- package/src/library/detect-stigmer-resource.ts +4 -1
- package/src/library/parse-resource-yaml.ts +12 -2
- package/src/mcp-server/McpServerDetailView.tsx +2 -1
- package/src/mcp-server/index.ts +4 -1
- package/src/mcp-server/mcpServerSetupReducer.ts +86 -8
- package/src/models/ModelSelector.tsx +9 -0
- package/src/models/registry.ts +11 -1
- package/src/models/useModelRegistry.ts +20 -0
- package/src/organization/OrgProfilePanel.tsx +451 -0
- package/src/organization/index.ts +6 -0
- package/src/organization/useOrganization.ts +79 -0
- package/src/organization/useUpdateOrganization.ts +71 -0
- package/src/provider.tsx +1 -0
- package/src/search/useResourceList.ts +6 -3
- package/src/search/useResourceSearch.ts +12 -3
- package/src/session/group-sessions.ts +23 -0
- package/src/session/index.ts +1 -0
- package/src/session/useCreateSession.ts +19 -3
- package/src/session/useSession.ts +24 -0
- package/src/session/useSessionArtifacts.ts +1 -0
- package/src/session/useSessionConversation.ts +7 -0
- package/src/session/useSessionExecutions.ts +23 -0
- package/src/session/useSessionList.ts +19 -0
- package/src/session/useSessionWriteBacks.ts +1 -0
- package/src/session/useUpdateSession.ts +22 -0
- package/src/skill/SkillPicker.tsx +15 -0
- package/src/usage/OrgUsagePanel.tsx +465 -0
- package/src/usage/date-range.ts +86 -0
- package/src/usage/index.ts +13 -0
- package/src/usage/useOrgUsageReport.ts +110 -0
- package/src/workspace/FolderBrowser.tsx +9 -0
- package/src/workspace/WorkspaceEditor.tsx +17 -0
- package/src/workspace/useFolderListing.ts +24 -0
- package/src/workspace/useWorkspaceEntries.ts +38 -0
- package/styles.css +1 -1
- package/usage/OrgUsagePanel.d.ts +24 -0
- package/usage/OrgUsagePanel.d.ts.map +1 -0
- package/usage/OrgUsagePanel.js +134 -0
- package/usage/OrgUsagePanel.js.map +1 -0
- package/usage/date-range.d.ts +36 -0
- package/usage/date-range.d.ts.map +1 -0
- package/usage/date-range.js +69 -0
- package/usage/date-range.js.map +1 -0
- package/usage/index.d.ts +7 -0
- package/usage/index.d.ts.map +1 -0
- package/usage/index.js +4 -0
- package/usage/index.js.map +1 -0
- package/usage/useOrgUsageReport.d.ts +48 -0
- package/usage/useOrgUsageReport.d.ts.map +1 -0
- package/usage/useOrgUsageReport.js +72 -0
- package/usage/useOrgUsageReport.js.map +1 -0
- package/workspace/FolderBrowser.d.ts +9 -0
- package/workspace/FolderBrowser.d.ts.map +1 -1
- package/workspace/FolderBrowser.js +9 -0
- package/workspace/FolderBrowser.js.map +1 -1
- package/workspace/WorkspaceEditor.d.ts +17 -0
- package/workspace/WorkspaceEditor.d.ts.map +1 -1
- package/workspace/WorkspaceEditor.js +17 -0
- package/workspace/WorkspaceEditor.js.map +1 -1
- package/workspace/useFolderListing.d.ts +24 -0
- package/workspace/useFolderListing.d.ts.map +1 -1
- package/workspace/useFolderListing.js +24 -0
- package/workspace/useFolderListing.js.map +1 -1
- package/workspace/useWorkspaceEntries.d.ts +38 -0
- package/workspace/useWorkspaceEntries.d.ts.map +1 -1
- package/workspace/useWorkspaceEntries.js +25 -0
- package/workspace/useWorkspaceEntries.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGitHubConnection.js","sourceRoot":"","sources":["../../src/github/useGitHubConnection.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AAC5G,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AACvD,MAAM,eAAe,GAAG,6BAA6B,CAAC;AACtD,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAExC,qEAAqE;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAAG,iCAAiC,CAAC;AAE9E,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,mBAAmB,GAAG,GAAG,CAAC;AA6DhC,KAAK,UAAU,eAAe,CAAC,KAAa;IAC1C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;YACxC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;SACxB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,GAAyD,EACzD,GAAW;IAEX,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACzD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"useGitHubConnection.js","sourceRoot":"","sources":["../../src/github/useGitHubConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,37 @@ export interface UseGitHubReposReturn {
|
|
|
53
53
|
* Loads the first page immediately, then eagerly background-fetches
|
|
54
54
|
* remaining pages so client-side search covers the full repo set.
|
|
55
55
|
* Provides client-side search filtering and branch fetching.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* function RepoList({ token }: { token: string }) {
|
|
60
|
+
* const { repos, isLoading, search, setSearch, fetchBranches } =
|
|
61
|
+
* useGitHubRepos(token);
|
|
62
|
+
*
|
|
63
|
+
* if (isLoading) return <Skeleton />;
|
|
64
|
+
*
|
|
65
|
+
* return (
|
|
66
|
+
* <div>
|
|
67
|
+
* <input
|
|
68
|
+
* value={search}
|
|
69
|
+
* onChange={(e) => setSearch(e.target.value)}
|
|
70
|
+
* placeholder="Filter repositories…"
|
|
71
|
+
* />
|
|
72
|
+
* <ul>
|
|
73
|
+
* {repos.map((repo) => (
|
|
74
|
+
* <li key={repo.id}>{repo.fullName}</li>
|
|
75
|
+
* ))}
|
|
76
|
+
* </ul>
|
|
77
|
+
* </div>
|
|
78
|
+
* );
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```tsx
|
|
84
|
+
* // Skip fetching until a token is available
|
|
85
|
+
* const { repos } = useGitHubRepos(token ?? null);
|
|
86
|
+
* ```
|
|
56
87
|
*/
|
|
57
88
|
export declare function useGitHubRepos(token: string | null): UseGitHubReposReturn;
|
|
58
89
|
//# sourceMappingURL=useGitHubRepos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGitHubRepos.d.ts","sourceRoot":"","sources":["../../src/github/useGitHubRepos.ts"],"names":[],"mappings":"AAQA,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;IAC5C,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,oCAAoC;AACpC,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC9B;AAqCD
|
|
1
|
+
{"version":3,"file":"useGitHubRepos.d.ts","sourceRoot":"","sources":["../../src/github/useGitHubRepos.ts"],"names":[],"mappings":"AAQA,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC;IAC5C,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,oCAAoC;AACpC,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC9B;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB,CA8GzE"}
|
package/github/useGitHubRepos.js
CHANGED
|
@@ -36,6 +36,37 @@ async function fetchRepoPage(token, page) {
|
|
|
36
36
|
* Loads the first page immediately, then eagerly background-fetches
|
|
37
37
|
* remaining pages so client-side search covers the full repo set.
|
|
38
38
|
* Provides client-side search filtering and branch fetching.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* function RepoList({ token }: { token: string }) {
|
|
43
|
+
* const { repos, isLoading, search, setSearch, fetchBranches } =
|
|
44
|
+
* useGitHubRepos(token);
|
|
45
|
+
*
|
|
46
|
+
* if (isLoading) return <Skeleton />;
|
|
47
|
+
*
|
|
48
|
+
* return (
|
|
49
|
+
* <div>
|
|
50
|
+
* <input
|
|
51
|
+
* value={search}
|
|
52
|
+
* onChange={(e) => setSearch(e.target.value)}
|
|
53
|
+
* placeholder="Filter repositories…"
|
|
54
|
+
* />
|
|
55
|
+
* <ul>
|
|
56
|
+
* {repos.map((repo) => (
|
|
57
|
+
* <li key={repo.id}>{repo.fullName}</li>
|
|
58
|
+
* ))}
|
|
59
|
+
* </ul>
|
|
60
|
+
* </div>
|
|
61
|
+
* );
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* // Skip fetching until a token is available
|
|
68
|
+
* const { repos } = useGitHubRepos(token ?? null);
|
|
69
|
+
* ```
|
|
39
70
|
*/
|
|
40
71
|
export function useGitHubRepos(token) {
|
|
41
72
|
const [allRepos, setAllRepos] = useState([]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGitHubRepos.js","sourceRoot":"","sources":["../../src/github/useGitHubRepos.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC;AAyDrB,SAAS,iBAAiB,CAAC,CAA0B;IACnD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAgC,CAAC;IACpD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAY;QAClB,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAc;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAe;QAC/B,SAAS,EACN,QAAQ,CAAC,IAAe,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QACxE,OAAO,EAAE,CAAC,CAAC,QAAkB;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,aAAa,EAAE,CAAC,CAAC,cAAwB;QACzC,SAAS,EAAE,CAAC,CAAC,OAAkB;QAC/B,SAAS,EAAE,CAAC,CAAC,UAAoB;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,KAAa,EACb,IAAY;IAEZ,MAAM,GAAG,GAAG,GAAG,gBAAgB,wCAAwC,QAAQ,SAAS,IAAI,EAAE,CAAC;IAC/F,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC5B,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAI,IAAkC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;AACvD,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"useGitHubRepos.js","sourceRoot":"","sources":["../../src/github/useGitHubRepos.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,31 @@ export interface UseGitHubSearchReturn {
|
|
|
24
24
|
* Uses the GitHub Search API (`/search/repositories`) with debounced input.
|
|
25
25
|
* Finds repositories across all of GitHub, not just the user's own repos.
|
|
26
26
|
* Works with or without an auth token (auth: 30 req/min; unauth: 10 req/min).
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* function GitHubSearch({ token }: { token: string | null }) {
|
|
31
|
+
* const { results, isSearching, query, setQuery, hasMore, loadMore } =
|
|
32
|
+
* useGitHubSearch(token);
|
|
33
|
+
*
|
|
34
|
+
* return (
|
|
35
|
+
* <div>
|
|
36
|
+
* <input
|
|
37
|
+
* value={query}
|
|
38
|
+
* onChange={(e) => setQuery(e.target.value)}
|
|
39
|
+
* placeholder="Search all of GitHub…"
|
|
40
|
+
* />
|
|
41
|
+
* {isSearching && <Spinner />}
|
|
42
|
+
* <ul>
|
|
43
|
+
* {results.map((repo) => (
|
|
44
|
+
* <li key={repo.id}>{repo.fullName}</li>
|
|
45
|
+
* ))}
|
|
46
|
+
* </ul>
|
|
47
|
+
* {hasMore && <button onClick={loadMore}>Load more</button>}
|
|
48
|
+
* </div>
|
|
49
|
+
* );
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
27
52
|
*/
|
|
28
53
|
export declare function useGitHubSearch(token: string | null): UseGitHubSearchReturn;
|
|
29
54
|
//# sourceMappingURL=useGitHubSearch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGitHubSearch.d.ts","sourceRoot":"","sources":["../../src/github/useGitHubSearch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B;AA4DD
|
|
1
|
+
{"version":3,"file":"useGitHubSearch.d.ts","sourceRoot":"","sources":["../../src/github/useGitHubSearch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,qBAAqB,CA0EvB"}
|
|
@@ -51,6 +51,31 @@ async function searchRepos(query, page, token) {
|
|
|
51
51
|
* Uses the GitHub Search API (`/search/repositories`) with debounced input.
|
|
52
52
|
* Finds repositories across all of GitHub, not just the user's own repos.
|
|
53
53
|
* Works with or without an auth token (auth: 30 req/min; unauth: 10 req/min).
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```tsx
|
|
57
|
+
* function GitHubSearch({ token }: { token: string | null }) {
|
|
58
|
+
* const { results, isSearching, query, setQuery, hasMore, loadMore } =
|
|
59
|
+
* useGitHubSearch(token);
|
|
60
|
+
*
|
|
61
|
+
* return (
|
|
62
|
+
* <div>
|
|
63
|
+
* <input
|
|
64
|
+
* value={query}
|
|
65
|
+
* onChange={(e) => setQuery(e.target.value)}
|
|
66
|
+
* placeholder="Search all of GitHub…"
|
|
67
|
+
* />
|
|
68
|
+
* {isSearching && <Spinner />}
|
|
69
|
+
* <ul>
|
|
70
|
+
* {results.map((repo) => (
|
|
71
|
+
* <li key={repo.id}>{repo.fullName}</li>
|
|
72
|
+
* ))}
|
|
73
|
+
* </ul>
|
|
74
|
+
* {hasMore && <button onClick={loadMore}>Load more</button>}
|
|
75
|
+
* </div>
|
|
76
|
+
* );
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
54
79
|
*/
|
|
55
80
|
export function useGitHubSearch(token) {
|
|
56
81
|
const [query, setQuery] = useState("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGitHubSearch.js","sourceRoot":"","sources":["../../src/github/useGitHubSearch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE,MAAM,iBAAiB,GAAG,4CAA4C,CAAC;AACvE,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;AAsBpB,SAAS,eAAe,CAAC,CAA0B;IACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAgC,CAAC;IACpD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAY;QAClB,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAc;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAe;QAC/B,SAAS,EACN,QAAQ,CAAC,IAAe,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QACxE,OAAO,EAAE,CAAC,CAAC,QAAkB;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,aAAa,EAAE,CAAC,CAAC,cAAwB;QACzC,SAAS,EAAE,CAAC,CAAC,OAAkB;QAC/B,SAAS,EAAE,CAAC,CAAC,UAAoB;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,IAAY,EACZ,KAAoB;IAEpB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,CAAC,EAAE,KAAK;QACR,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,6BAA6B;KACtC,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAExE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAG9B,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC;IAE7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"useGitHubSearch.js","sourceRoot":"","sources":["../../src/github/useGitHubSearch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE,MAAM,iBAAiB,GAAG,4CAA4C,CAAC;AACvE,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,QAAQ,GAAG,EAAE,CAAC;AAsBpB,SAAS,eAAe,CAAC,CAA0B;IACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAgC,CAAC;IACpD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAY;QAClB,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAc;QACtB,KAAK,EAAE,QAAQ,CAAC,KAAe;QAC/B,SAAS,EACN,QAAQ,CAAC,IAAe,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QACxE,OAAO,EAAE,CAAC,CAAC,QAAkB;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAmB;QAC/B,aAAa,EAAE,CAAC,CAAC,cAAwB;QACzC,SAAS,EAAE,CAAC,CAAC,OAAkB;QAC/B,SAAS,EAAE,CAAC,CAAC,UAAoB;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,IAAY,EACZ,KAAoB;IAEpB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,CAAC,EAAE,KAAK;QACR,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,6BAA6B;KACtC,CAAC;IACF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAExE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAG9B,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC;IAE7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAoB;IAEpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,CAAgC,SAAS,CAAC,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,EAAE,WAAW,CAAC,CAAC;QAChB,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAErC,KAAK,UAAU,GAAG;YAChB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9D,IAAI,SAAS,CAAC,OAAO;oBAAE,OAAO;gBAC9B,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;gBACF,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,SAAS,CAAC,OAAO;oBAAE,OAAO;gBAC9B,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC7D,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS,CAAC,OAAO;oBAAE,cAAc,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,GAAG,EAAE,CAAC;QACN,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3B,OAAO;QACL,OAAO;QACP,WAAW;QACX,KAAK;QACL,KAAK;QACL,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
2
|
+
import type { IamPolicy } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/api_pb";
|
|
3
|
+
/** Props for {@link GrantAccessForm}. */
|
|
4
|
+
export interface GrantAccessFormProps {
|
|
5
|
+
/** Resource kind being granted access to. Determines which roles appear. */
|
|
6
|
+
readonly resourceKind: ApiResourceKind;
|
|
7
|
+
/** Resource kind string (e.g. "organization") for the API resource ref. */
|
|
8
|
+
readonly resourceKindString: string;
|
|
9
|
+
/** ID of the resource being granted access to. */
|
|
10
|
+
readonly resourceId: string;
|
|
11
|
+
/** Fired after a policy is successfully created. */
|
|
12
|
+
readonly onGranted?: (policy: IamPolicy) => void;
|
|
13
|
+
/** Fired when the user cancels. */
|
|
14
|
+
readonly onCancel?: () => void;
|
|
15
|
+
/** Additional CSS class names for the root container. */
|
|
16
|
+
readonly className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Form for granting a principal access to a resource.
|
|
20
|
+
*
|
|
21
|
+
* Collects a **principal ID** (identity account), lets the user pick
|
|
22
|
+
* a **role** from the resource's grantable roles, and creates the IAM
|
|
23
|
+
* policy binding.
|
|
24
|
+
*
|
|
25
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* <GrantAccessForm
|
|
30
|
+
* resourceKind={ApiResourceKind.organization}
|
|
31
|
+
* resourceKindString="organization"
|
|
32
|
+
* resourceId="org-abc123"
|
|
33
|
+
* onGranted={(policy) => refetchAccessList()}
|
|
34
|
+
* onCancel={() => setShowForm(false)}
|
|
35
|
+
* />
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function GrantAccessForm({ resourceKind, resourceKindString, resourceId, onGranted, onCancel, className, }: GrantAccessFormProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=GrantAccessForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrantAccessForm.d.ts","sourceRoot":"","sources":["../../src/iam-policy/GrantAccessForm.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAE3H,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AASpF,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,2CA0HtB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import { create } from "@bufbuild/protobuf";
|
|
5
|
+
import { IamPolicySpecSchema } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
|
|
6
|
+
import { ApiResourceRefSchema } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
|
|
7
|
+
import { cn } from "@stigmer/theme";
|
|
8
|
+
import { getUserMessage, iamRoleToString } from "@stigmer/sdk";
|
|
9
|
+
import { useCreateIamPolicy } from "./useCreateIamPolicy";
|
|
10
|
+
import { RoleSelector } from "./RoleSelector";
|
|
11
|
+
/**
|
|
12
|
+
* Form for granting a principal access to a resource.
|
|
13
|
+
*
|
|
14
|
+
* Collects a **principal ID** (identity account), lets the user pick
|
|
15
|
+
* a **role** from the resource's grantable roles, and creates the IAM
|
|
16
|
+
* policy binding.
|
|
17
|
+
*
|
|
18
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <GrantAccessForm
|
|
23
|
+
* resourceKind={ApiResourceKind.organization}
|
|
24
|
+
* resourceKindString="organization"
|
|
25
|
+
* resourceId="org-abc123"
|
|
26
|
+
* onGranted={(policy) => refetchAccessList()}
|
|
27
|
+
* onCancel={() => setShowForm(false)}
|
|
28
|
+
* />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export function GrantAccessForm({ resourceKind, resourceKindString, resourceId, onGranted, onCancel, className, }) {
|
|
32
|
+
const { create: createPolicy, isCreating, error, clearError } = useCreateIamPolicy();
|
|
33
|
+
const [principalId, setPrincipalId] = useState("");
|
|
34
|
+
const [selectedRole, setSelectedRole] = useState(null);
|
|
35
|
+
const trimmedPrincipalId = principalId.trim();
|
|
36
|
+
const canSubmit = trimmedPrincipalId !== "" && selectedRole !== null && !isCreating;
|
|
37
|
+
const handleSubmit = useCallback(async (e) => {
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
if (!canSubmit || selectedRole === null)
|
|
40
|
+
return;
|
|
41
|
+
clearError();
|
|
42
|
+
try {
|
|
43
|
+
const spec = create(IamPolicySpecSchema, {
|
|
44
|
+
principal: create(ApiResourceRefSchema, {
|
|
45
|
+
kind: "identity_account",
|
|
46
|
+
id: trimmedPrincipalId,
|
|
47
|
+
}),
|
|
48
|
+
resource: create(ApiResourceRefSchema, {
|
|
49
|
+
kind: resourceKindString,
|
|
50
|
+
id: resourceId,
|
|
51
|
+
}),
|
|
52
|
+
relation: iamRoleToString(selectedRole),
|
|
53
|
+
});
|
|
54
|
+
const policy = await createPolicy(spec);
|
|
55
|
+
onGranted?.(policy);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// error state is managed by useCreateIamPolicy
|
|
59
|
+
}
|
|
60
|
+
}, [
|
|
61
|
+
canSubmit,
|
|
62
|
+
selectedRole,
|
|
63
|
+
trimmedPrincipalId,
|
|
64
|
+
resourceKindString,
|
|
65
|
+
resourceId,
|
|
66
|
+
createPolicy,
|
|
67
|
+
clearError,
|
|
68
|
+
onGranted,
|
|
69
|
+
]);
|
|
70
|
+
return (_jsxs("form", { onSubmit: handleSubmit, className: cn("space-y-3", className), children: [_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: "stgm-grant-principal", className: "text-xs font-medium text-foreground", children: "Account ID" }), _jsx("input", { id: "stgm-grant-principal", type: "text", value: principalId, onChange: (e) => setPrincipalId(e.target.value), placeholder: "e.g. ia-01HQUSER123", disabled: isCreating, autoFocus: true, required: true, className: cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-xs text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50") })] }), _jsx(RoleSelector, { kind: resourceKind, selected: selectedRole, onSelect: setSelectedRole, disabled: isCreating })] }), error && (_jsx("p", { className: "text-destructive text-[0.65rem]", role: "alert", children: getUserMessage(error) })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "submit", disabled: !canSubmit, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium", "bg-primary text-primary-foreground hover:bg-primary/90", "disabled:pointer-events-none disabled:opacity-40"), children: [isCreating && _jsx(SpinnerIcon, {}), "Grant access"] }), onCancel && (_jsx("button", { type: "button", onClick: onCancel, disabled: isCreating, className: cn("rounded-md px-3 py-1.5 text-xs", "text-muted-foreground hover:text-foreground hover:bg-accent/50", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" }))] })] }));
|
|
71
|
+
}
|
|
72
|
+
function SpinnerIcon() {
|
|
73
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", className: "animate-spin", "aria-hidden": "true", children: _jsx("path", { d: "M8 2a6 6 0 1 0 6 6" }) }));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=GrantAccessForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrantAccessForm.js","sourceRoot":"","sources":["../../src/iam-policy/GrantAccessForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Props for {@link OrgMembersPanel}. */
|
|
2
|
+
export interface OrgMembersPanelProps {
|
|
3
|
+
/** Organization ID (`metadata.id`) whose members to manage. */
|
|
4
|
+
readonly orgId: string;
|
|
5
|
+
/** Exposed refetch for parent-triggered refresh. */
|
|
6
|
+
readonly onRefetchRef?: (refetch: () => void) => void;
|
|
7
|
+
/** Additional CSS class names for the root container. */
|
|
8
|
+
readonly className?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Self-contained panel for managing organization members.
|
|
12
|
+
*
|
|
13
|
+
* Displays all principals with access to the organization, their
|
|
14
|
+
* role grants, and provides actions to change roles and remove
|
|
15
|
+
* members. New members are added through the invitation flow.
|
|
16
|
+
* The current user is identified via
|
|
17
|
+
* `identityAccount.whoAmI()` for self-protection (disabling
|
|
18
|
+
* destructive actions on yourself).
|
|
19
|
+
*
|
|
20
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <OrgMembersPanel orgId={activeOrg.metadata.id} />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function OrgMembersPanel({ orgId, onRefetchRef, className, }: OrgMembersPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=OrgMembersPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgMembersPanel.d.ts","sourceRoot":"","sources":["../../src/iam-policy/OrgMembersPanel.tsx"],"names":[],"mappings":"AA6BA,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtD,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE,oBAAoB,2CAiFtB"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import { create } from "@bufbuild/protobuf";
|
|
5
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
6
|
+
import { IamPolicySpecSchema, ApiResourceRefSchema, } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
|
|
7
|
+
import { cn } from "@stigmer/theme";
|
|
8
|
+
import { getUserMessage, iamRoleFromString, iamRoleToString, } from "@stigmer/sdk";
|
|
9
|
+
import { useResourceAccess } from "./useResourceAccess";
|
|
10
|
+
import { usePrincipalsCount } from "./usePrincipalsCount";
|
|
11
|
+
import { useWhoAmI } from "./useWhoAmI";
|
|
12
|
+
import { useRevokeOrgAccess } from "./useRevokeOrgAccess";
|
|
13
|
+
import { useCreateIamPolicy } from "./useCreateIamPolicy";
|
|
14
|
+
import { useDeleteIamPolicy } from "./useDeleteIamPolicy";
|
|
15
|
+
import { RoleSelector } from "./RoleSelector";
|
|
16
|
+
/**
|
|
17
|
+
* Self-contained panel for managing organization members.
|
|
18
|
+
*
|
|
19
|
+
* Displays all principals with access to the organization, their
|
|
20
|
+
* role grants, and provides actions to change roles and remove
|
|
21
|
+
* members. New members are added through the invitation flow.
|
|
22
|
+
* The current user is identified via
|
|
23
|
+
* `identityAccount.whoAmI()` for self-protection (disabling
|
|
24
|
+
* destructive actions on yourself).
|
|
25
|
+
*
|
|
26
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <OrgMembersPanel orgId={activeOrg.metadata.id} />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function OrgMembersPanel({ orgId, onRefetchRef, className, }) {
|
|
34
|
+
const resource = orgId ? { kind: "organization", id: orgId } : null;
|
|
35
|
+
const { members, isLoading, error, refetch } = useResourceAccess(resource);
|
|
36
|
+
const { count, refetch: refetchCount } = usePrincipalsCount(orgId || null);
|
|
37
|
+
const { account: currentAccount } = useWhoAmI();
|
|
38
|
+
const currentAccountId = currentAccount?.metadata?.id ?? null;
|
|
39
|
+
const [actionMemberId, setActionMemberId] = useState(null);
|
|
40
|
+
const handleRefetch = useCallback(() => {
|
|
41
|
+
refetch();
|
|
42
|
+
refetchCount();
|
|
43
|
+
}, [refetch, refetchCount]);
|
|
44
|
+
if (onRefetchRef) {
|
|
45
|
+
onRefetchRef(handleRefetch);
|
|
46
|
+
}
|
|
47
|
+
if (isLoading) {
|
|
48
|
+
return (_jsx("div", { className: cn("space-y-2", className), "aria-busy": "true", "aria-label": "Loading members", children: Array.from({ length: 3 }, (_, i) => (_jsx("div", { className: "bg-muted/40 h-14 animate-pulse rounded-lg" }, i))) }));
|
|
49
|
+
}
|
|
50
|
+
if (error) {
|
|
51
|
+
return (_jsx("p", { className: cn("text-destructive text-xs", className), role: "alert", children: getUserMessage(error) }));
|
|
52
|
+
}
|
|
53
|
+
return (_jsxs("div", { className: cn("space-y-3", className), children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm font-semibold text-foreground", children: "Members" }), count > 0 && (_jsx("span", { className: "inline-flex items-center rounded-full bg-muted px-2 py-0.5 text-[0.65rem] font-medium text-muted-foreground", children: count }))] }), members.length === 0 ? (_jsx("p", { className: "text-muted-foreground py-4 text-center text-xs", children: "No members found." })) : (_jsx("div", { role: "list", "aria-label": "Organization members", className: "space-y-2", children: members.map((entry) => {
|
|
54
|
+
const memberId = entry.principal?.id ?? "";
|
|
55
|
+
return (_jsx(MemberRow, { entry: entry, orgId: orgId, isSelf: memberId === currentAccountId, isActioning: actionMemberId === memberId, onStartAction: () => setActionMemberId(memberId), onEndAction: () => setActionMemberId(null), onMutated: handleRefetch }, memberId));
|
|
56
|
+
}) }))] }));
|
|
57
|
+
}
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
// MemberRow (internal)
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
function MemberRow({ entry, orgId, isSelf, isActioning, onStartAction, onEndAction, onMutated, }) {
|
|
62
|
+
const [actionType, setActionType] = useState(null);
|
|
63
|
+
const principal = entry.principal;
|
|
64
|
+
const memberId = principal?.id ?? "";
|
|
65
|
+
const name = principal?.name || principal?.email || memberId;
|
|
66
|
+
const email = principal?.email ?? "";
|
|
67
|
+
const initial = name.charAt(0).toUpperCase();
|
|
68
|
+
const directRoles = entry.roles.filter((r) => !r.isInherited);
|
|
69
|
+
const startAction = (type) => {
|
|
70
|
+
setActionType(type);
|
|
71
|
+
onStartAction();
|
|
72
|
+
};
|
|
73
|
+
const cancelAction = () => {
|
|
74
|
+
setActionType(null);
|
|
75
|
+
onEndAction();
|
|
76
|
+
};
|
|
77
|
+
if (isActioning && actionType === "remove") {
|
|
78
|
+
return (_jsx(RemoveConfirmation, { memberId: memberId, memberName: name, orgId: orgId, onDone: () => {
|
|
79
|
+
cancelAction();
|
|
80
|
+
onMutated();
|
|
81
|
+
}, onCancel: cancelAction }));
|
|
82
|
+
}
|
|
83
|
+
if (isActioning && actionType === "change-role") {
|
|
84
|
+
return (_jsx(ChangeRoleRow, { entry: entry, orgId: orgId, onDone: () => {
|
|
85
|
+
cancelAction();
|
|
86
|
+
onMutated();
|
|
87
|
+
}, onCancel: cancelAction }));
|
|
88
|
+
}
|
|
89
|
+
return (_jsxs("div", { role: "listitem", className: "flex items-center gap-3 rounded-lg border border-border/60 px-3 py-2.5 hover:border-border transition-colors", children: [_jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-xs font-medium text-muted-foreground", children: initial }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "truncate text-sm font-medium text-foreground", children: name }), isSelf && (_jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[0.6rem] font-medium text-muted-foreground", children: "You" }))] }), email && email !== name && (_jsx("span", { className: "block truncate text-xs text-muted-foreground", children: email }))] }), _jsx("div", { className: "hidden sm:flex shrink-0 items-center gap-1.5", children: directRoles.map((grant) => (_jsx(RoleBadge, { grant: grant }, grant.role?.code ?? ""))) }), !isSelf && (_jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [_jsx("button", { type: "button", onClick: () => startAction("change-role"), "aria-label": `Change role for ${name}`, className: "shrink-0 rounded p-1 text-muted-foreground hover:text-foreground hover:bg-accent/50 transition-colors", children: _jsx(EditIcon, {}) }), _jsx("button", { type: "button", onClick: () => startAction("remove"), "aria-label": `Remove ${name}`, className: "shrink-0 rounded p-1 text-muted-foreground hover:text-destructive hover:bg-destructive/10 transition-colors", children: _jsx(TrashIcon, {}) })] }))] }));
|
|
90
|
+
}
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
// RoleBadge (internal)
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
function RoleBadge({ grant }) {
|
|
95
|
+
const roleName = grant.role?.name || grant.role?.code || "Unknown";
|
|
96
|
+
return (_jsxs("span", { className: cn("inline-flex items-center rounded-md border px-2 py-0.5 text-[0.65rem] font-medium", grant.isInherited
|
|
97
|
+
? "border-border/50 text-muted-foreground bg-muted/50 italic"
|
|
98
|
+
: "border-border bg-muted text-foreground"), title: grant.isInherited
|
|
99
|
+
? `Inherited from ${grant.ownerResource?.kind ?? "parent"}`
|
|
100
|
+
: `Directly assigned`, children: [roleName, grant.isInherited && (_jsx("span", { className: "ml-1 text-[0.55rem] text-muted-foreground", children: "(inherited)" }))] }));
|
|
101
|
+
}
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
// RemoveConfirmation (internal)
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
function RemoveConfirmation({ memberId, memberName, orgId, onDone, onCancel, }) {
|
|
106
|
+
const { revoke, isRevoking, error } = useRevokeOrgAccess();
|
|
107
|
+
const handleConfirm = useCallback(async () => {
|
|
108
|
+
try {
|
|
109
|
+
await revoke(memberId, orgId);
|
|
110
|
+
onDone();
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// error state is surfaced via the hook
|
|
114
|
+
}
|
|
115
|
+
}, [memberId, orgId, revoke, onDone]);
|
|
116
|
+
return (_jsxs("div", { role: "listitem", className: "flex items-center justify-between rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2.5", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("p", { className: "text-xs text-foreground", children: ["Remove ", _jsx("span", { className: "font-medium", children: memberName }), " from this organization? This revokes all their access."] }), error && (_jsx("p", { className: "mt-0.5 text-[0.65rem] text-destructive", children: getUserMessage(error) }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5 ml-3", children: [_jsxs("button", { type: "button", onClick: handleConfirm, disabled: isRevoking, className: cn("inline-flex items-center gap-1 rounded-md px-2.5 py-1 text-xs font-medium", "bg-destructive text-destructive-foreground hover:bg-destructive/90", "disabled:pointer-events-none disabled:opacity-50"), children: [isRevoking && _jsx(SpinnerIcon, {}), "Remove"] }), _jsx("button", { type: "button", onClick: onCancel, disabled: isRevoking, className: cn("rounded-md px-2.5 py-1 text-xs", "text-muted-foreground hover:text-foreground hover:bg-accent/50", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" })] })] }));
|
|
117
|
+
}
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
// ChangeRoleRow (internal)
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
function ChangeRoleRow({ entry, orgId, onDone, onCancel, }) {
|
|
122
|
+
const { create: createPolicy, isCreating } = useCreateIamPolicy();
|
|
123
|
+
const { remove: deletePolicy, isDeleting } = useDeleteIamPolicy();
|
|
124
|
+
const memberId = entry.principal?.id ?? "";
|
|
125
|
+
const memberName = entry.principal?.name || entry.principal?.email || memberId;
|
|
126
|
+
const directRoles = entry.roles.filter((r) => !r.isInherited);
|
|
127
|
+
const currentRoleCode = directRoles[0]?.role?.code;
|
|
128
|
+
const currentRole = currentRoleCode
|
|
129
|
+
? iamRoleFromString(currentRoleCode) ?? null
|
|
130
|
+
: null;
|
|
131
|
+
const [selectedRole, setSelectedRole] = useState(null);
|
|
132
|
+
const [error, setError] = useState(null);
|
|
133
|
+
const isWorking = isCreating || isDeleting;
|
|
134
|
+
const canConfirm = selectedRole !== null && selectedRole !== currentRole && !isWorking;
|
|
135
|
+
const handleConfirm = useCallback(async () => {
|
|
136
|
+
if (!selectedRole || !currentRoleCode)
|
|
137
|
+
return;
|
|
138
|
+
setError(null);
|
|
139
|
+
try {
|
|
140
|
+
const deleteSpec = create(IamPolicySpecSchema, {
|
|
141
|
+
principal: create(ApiResourceRefSchema, {
|
|
142
|
+
kind: "identity_account",
|
|
143
|
+
id: memberId,
|
|
144
|
+
}),
|
|
145
|
+
resource: create(ApiResourceRefSchema, {
|
|
146
|
+
kind: "organization",
|
|
147
|
+
id: orgId,
|
|
148
|
+
}),
|
|
149
|
+
relation: currentRoleCode,
|
|
150
|
+
});
|
|
151
|
+
await deletePolicy(deleteSpec);
|
|
152
|
+
const createSpec = create(IamPolicySpecSchema, {
|
|
153
|
+
principal: create(ApiResourceRefSchema, {
|
|
154
|
+
kind: "identity_account",
|
|
155
|
+
id: memberId,
|
|
156
|
+
}),
|
|
157
|
+
resource: create(ApiResourceRefSchema, {
|
|
158
|
+
kind: "organization",
|
|
159
|
+
id: orgId,
|
|
160
|
+
}),
|
|
161
|
+
relation: iamRoleToString(selectedRole),
|
|
162
|
+
});
|
|
163
|
+
await createPolicy(createSpec);
|
|
164
|
+
onDone();
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
setError(err instanceof Error ? err : new Error("Failed to change role"));
|
|
168
|
+
}
|
|
169
|
+
}, [
|
|
170
|
+
selectedRole,
|
|
171
|
+
currentRoleCode,
|
|
172
|
+
memberId,
|
|
173
|
+
orgId,
|
|
174
|
+
deletePolicy,
|
|
175
|
+
createPolicy,
|
|
176
|
+
onDone,
|
|
177
|
+
]);
|
|
178
|
+
return (_jsxs("div", { role: "listitem", className: "rounded-lg border border-primary/30 bg-primary/5 px-3 py-2.5 space-y-2", children: [_jsxs("p", { className: "text-xs text-foreground", children: ["Change role for ", _jsx("span", { className: "font-medium", children: memberName })] }), _jsx(RoleSelector, { kind: ApiResourceKind.organization, selected: selectedRole ?? currentRole, onSelect: setSelectedRole, disabled: isWorking }), error && (_jsx("p", { className: "text-[0.65rem] text-destructive", role: "alert", children: getUserMessage(error) })), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsxs("button", { type: "button", onClick: handleConfirm, disabled: !canConfirm, className: cn("inline-flex items-center gap-1 rounded-md px-2.5 py-1 text-xs font-medium", "bg-primary text-primary-foreground hover:bg-primary/90", "disabled:pointer-events-none disabled:opacity-40"), children: [isWorking && _jsx(SpinnerIcon, {}), isWorking ? "Changing role…" : "Confirm"] }), _jsx("button", { type: "button", onClick: onCancel, disabled: isWorking, className: cn("rounded-md px-2.5 py-1 text-xs", "text-muted-foreground hover:text-foreground hover:bg-accent/50", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" })] })] }));
|
|
179
|
+
}
|
|
180
|
+
// ---------------------------------------------------------------------------
|
|
181
|
+
// Icons
|
|
182
|
+
// ---------------------------------------------------------------------------
|
|
183
|
+
function EditIcon() {
|
|
184
|
+
return (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "M11.5 1.5l3 3L5 14H2v-3L11.5 1.5z" }) }));
|
|
185
|
+
}
|
|
186
|
+
function TrashIcon() {
|
|
187
|
+
return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M2.5 4h11M5.5 4V2.5a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1V4" }), _jsx("path", { d: "M12.5 4v9a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1V4" }), _jsx("line", { x1: "6.5", y1: "7", x2: "6.5", y2: "11" }), _jsx("line", { x1: "9.5", y1: "7", x2: "9.5", y2: "11" })] }));
|
|
188
|
+
}
|
|
189
|
+
function SpinnerIcon() {
|
|
190
|
+
return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", className: "animate-spin", "aria-hidden": "true", children: _jsx("path", { d: "M8 2a6 6 0 1 0 6 6" }) }));
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=OrgMembersPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgMembersPanel.js","sourceRoot":"","sources":["../../src/iam-policy/OrgMembersPanel.tsx"],"names":[],"mappings":"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"}
|