@stigmer/react 3.12.0 → 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.
Files changed (738) hide show
  1. package/access/ManageAccessDialog.d.ts.map +1 -1
  2. package/access/ManageAccessDialog.js +7 -2
  3. package/access/ManageAccessDialog.js.map +1 -1
  4. package/activity/format-relative-time.d.ts +11 -9
  5. package/activity/format-relative-time.d.ts.map +1 -1
  6. package/activity/format-relative-time.js +11 -9
  7. package/activity/format-relative-time.js.map +1 -1
  8. package/agent/steps/CapabilitiesStep.js +5 -2
  9. package/agent/steps/CapabilitiesStep.js.map +1 -1
  10. package/agent/steps/IdentityStep.d.ts.map +1 -1
  11. package/agent/steps/IdentityStep.js +6 -5
  12. package/agent/steps/IdentityStep.js.map +1 -1
  13. package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -1
  14. package/agent-instance/CreateAgentInstanceDialog.js +10 -2
  15. package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
  16. package/api-key/ApiKeyCreatedAlert.d.ts.map +1 -1
  17. package/api-key/ApiKeyCreatedAlert.js +12 -20
  18. package/api-key/ApiKeyCreatedAlert.js.map +1 -1
  19. package/api-key/ApiKeyListPanel.d.ts.map +1 -1
  20. package/api-key/ApiKeyListPanel.js +3 -23
  21. package/api-key/ApiKeyListPanel.js.map +1 -1
  22. package/api-key/CreateApiKeyForm.d.ts.map +1 -1
  23. package/api-key/CreateApiKeyForm.js +6 -10
  24. package/api-key/CreateApiKeyForm.js.map +1 -1
  25. package/approval-defaults-context.d.ts +47 -0
  26. package/approval-defaults-context.d.ts.map +1 -0
  27. package/approval-defaults-context.js +27 -0
  28. package/approval-defaults-context.js.map +1 -0
  29. package/attachment/index.d.ts +2 -0
  30. package/attachment/index.d.ts.map +1 -1
  31. package/attachment/index.js +1 -0
  32. package/attachment/index.js.map +1 -1
  33. package/attachment/vision-preflight.d.ts +113 -0
  34. package/attachment/vision-preflight.d.ts.map +1 -0
  35. package/attachment/vision-preflight.js +143 -0
  36. package/attachment/vision-preflight.js.map +1 -0
  37. package/billing/AutoRechargeCard.d.ts.map +1 -1
  38. package/billing/AutoRechargeCard.js +3 -2
  39. package/billing/AutoRechargeCard.js.map +1 -1
  40. package/billing/BillingSection.d.ts.map +1 -1
  41. package/billing/BillingSection.js +3 -2
  42. package/billing/BillingSection.js.map +1 -1
  43. package/channel/ChannelConversationsDialog.d.ts.map +1 -1
  44. package/channel/ChannelConversationsDialog.js +5 -4
  45. package/channel/ChannelConversationsDialog.js.map +1 -1
  46. package/channel/ChannelCredentialsDialog.d.ts.map +1 -1
  47. package/channel/ChannelCredentialsDialog.js +9 -4
  48. package/channel/ChannelCredentialsDialog.js.map +1 -1
  49. package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
  50. package/channel/ChannelTemplatesDialog.js +5 -4
  51. package/channel/ChannelTemplatesDialog.js.map +1 -1
  52. package/channel/ConnectSlackDialog.d.ts.map +1 -1
  53. package/channel/ConnectSlackDialog.js +9 -4
  54. package/channel/ConnectSlackDialog.js.map +1 -1
  55. package/channel/ConnectWhatsAppDialog.d.ts.map +1 -1
  56. package/channel/ConnectWhatsAppDialog.js +9 -4
  57. package/channel/ConnectWhatsAppDialog.js.map +1 -1
  58. package/channel/useChannelSessions.d.ts.map +1 -1
  59. package/channel/useChannelSessions.js.map +1 -1
  60. package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -1
  61. package/channel-app/ChannelAppDetailPanel.js +8 -5
  62. package/channel-app/ChannelAppDetailPanel.js.map +1 -1
  63. package/channel-app/CreateChannelAppForm.d.ts.map +1 -1
  64. package/channel-app/CreateChannelAppForm.js +12 -7
  65. package/channel-app/CreateChannelAppForm.js.map +1 -1
  66. package/channel-app/internal.d.ts +0 -1
  67. package/channel-app/internal.d.ts.map +1 -1
  68. package/channel-app/internal.js +5 -10
  69. package/channel-app/internal.js.map +1 -1
  70. package/composer/ComposerToolbar.js +2 -1
  71. package/composer/ComposerToolbar.js.map +1 -1
  72. package/composer/SessionComposer.d.ts +1 -1
  73. package/composer/SessionComposer.d.ts.map +1 -1
  74. package/composer/SessionComposer.js +120 -13
  75. package/composer/SessionComposer.js.map +1 -1
  76. package/composer/icons.d.ts +0 -1
  77. package/composer/icons.d.ts.map +1 -1
  78. package/composer/icons.js +0 -3
  79. package/composer/icons.js.map +1 -1
  80. package/conversation/ConversationComposer.js +1 -1
  81. package/conversation/ConversationComposer.js.map +1 -1
  82. package/conversation/ConversationListPane.d.ts.map +1 -1
  83. package/conversation/ConversationListPane.js +3 -2
  84. package/conversation/ConversationListPane.js.map +1 -1
  85. package/cursor-accounts/MemberCoverageTable.js +3 -14
  86. package/cursor-accounts/MemberCoverageTable.js.map +1 -1
  87. package/dashboard/DashboardFailedRuns.d.ts.map +1 -1
  88. package/dashboard/DashboardFailedRuns.js +2 -14
  89. package/dashboard/DashboardFailedRuns.js.map +1 -1
  90. package/environment/CreateEnvironmentForm.d.ts.map +1 -1
  91. package/environment/CreateEnvironmentForm.js +4 -8
  92. package/environment/CreateEnvironmentForm.js.map +1 -1
  93. package/environment/EnvVarForm.d.ts.map +1 -1
  94. package/environment/EnvVarForm.js +2 -4
  95. package/environment/EnvVarForm.js.map +1 -1
  96. package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
  97. package/environment/EnvironmentVariableEditor.js +5 -7
  98. package/environment/EnvironmentVariableEditor.js.map +1 -1
  99. package/execution/ArtifactApplyButton.d.ts.map +1 -1
  100. package/execution/ArtifactApplyButton.js +2 -4
  101. package/execution/ArtifactApplyButton.js.map +1 -1
  102. package/execution/ExecutionErrorNotice.d.ts +36 -0
  103. package/execution/ExecutionErrorNotice.d.ts.map +1 -0
  104. package/execution/ExecutionErrorNotice.js +39 -0
  105. package/execution/ExecutionErrorNotice.js.map +1 -0
  106. package/execution/FilePathLink.d.ts.map +1 -1
  107. package/execution/FilePathLink.js +5 -8
  108. package/execution/FilePathLink.js.map +1 -1
  109. package/execution/FileReviewCard.d.ts.map +1 -1
  110. package/execution/FileReviewCard.js +1 -6
  111. package/execution/FileReviewCard.js.map +1 -1
  112. package/execution/FollowUpInput.d.ts.map +1 -1
  113. package/execution/FollowUpInput.js +1 -3
  114. package/execution/FollowUpInput.js.map +1 -1
  115. package/execution/LivenessStatusLine.d.ts +40 -0
  116. package/execution/LivenessStatusLine.d.ts.map +1 -0
  117. package/execution/LivenessStatusLine.js +34 -0
  118. package/execution/LivenessStatusLine.js.map +1 -0
  119. package/execution/MessageEntry.d.ts.map +1 -1
  120. package/execution/MessageEntry.js +31 -3
  121. package/execution/MessageEntry.js.map +1 -1
  122. package/execution/MessageThread.d.ts +25 -0
  123. package/execution/MessageThread.d.ts.map +1 -1
  124. package/execution/MessageThread.js +51 -36
  125. package/execution/MessageThread.js.map +1 -1
  126. package/execution/SetupProgress.d.ts.map +1 -1
  127. package/execution/SetupProgress.js +1 -1
  128. package/execution/SetupProgress.js.map +1 -1
  129. package/execution/SubAgentSection.d.ts.map +1 -1
  130. package/execution/SubAgentSection.js +9 -7
  131. package/execution/SubAgentSection.js.map +1 -1
  132. package/execution/TerminalSession.d.ts +30 -0
  133. package/execution/TerminalSession.d.ts.map +1 -1
  134. package/execution/TerminalSession.js +37 -1
  135. package/execution/TerminalSession.js.map +1 -1
  136. package/execution/ToolCallDetail.d.ts +9 -0
  137. package/execution/ToolCallDetail.d.ts.map +1 -1
  138. package/execution/ToolCallDetail.js +16 -0
  139. package/execution/ToolCallDetail.js.map +1 -1
  140. package/execution/ToolCallItem.d.ts +20 -6
  141. package/execution/ToolCallItem.d.ts.map +1 -1
  142. package/execution/ToolCallItem.js +102 -29
  143. package/execution/ToolCallItem.js.map +1 -1
  144. package/execution/ToolRunGroup.d.ts.map +1 -1
  145. package/execution/ToolRunGroup.js +11 -11
  146. package/execution/ToolRunGroup.js.map +1 -1
  147. package/execution/WriteBackCard.d.ts.map +1 -1
  148. package/execution/WriteBackCard.js +5 -20
  149. package/execution/WriteBackCard.js.map +1 -1
  150. package/execution/index.d.ts +6 -2
  151. package/execution/index.d.ts.map +1 -1
  152. package/execution/index.js +3 -1
  153. package/execution/index.js.map +1 -1
  154. package/execution/tool-categories.d.ts +42 -7
  155. package/execution/tool-categories.d.ts.map +1 -1
  156. package/execution/tool-categories.js +38 -4
  157. package/execution/tool-categories.js.map +1 -1
  158. package/execution/tool-presenter.d.ts +17 -1
  159. package/execution/tool-presenter.d.ts.map +1 -1
  160. package/execution/tool-presenter.js +4 -1
  161. package/execution/tool-presenter.js.map +1 -1
  162. package/execution/useArtifactInspection.d.ts.map +1 -1
  163. package/execution/useArtifactInspection.js +4 -7
  164. package/execution/useArtifactInspection.js.map +1 -1
  165. package/execution/useCreateAgentExecution.d.ts +3 -2
  166. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  167. package/execution/useCreateAgentExecution.js.map +1 -1
  168. package/iam-policy/GrantAccessForm.d.ts.map +1 -1
  169. package/iam-policy/GrantAccessForm.js +2 -4
  170. package/iam-policy/GrantAccessForm.js.map +1 -1
  171. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  172. package/iam-policy/OrgMembersPanel.js +3 -5
  173. package/iam-policy/OrgMembersPanel.js.map +1 -1
  174. package/iam-policy/RoleSelector.d.ts.map +1 -1
  175. package/iam-policy/RoleSelector.js +7 -1
  176. package/iam-policy/RoleSelector.js.map +1 -1
  177. package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -1
  178. package/identity-provider/CreateIdentityProviderForm.js +6 -9
  179. package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
  180. package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
  181. package/identity-provider/IdentityProviderDetailPanel.js +17 -26
  182. package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
  183. package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
  184. package/identity-provider/IdentityProviderListPanel.js +2 -4
  185. package/identity-provider/IdentityProviderListPanel.js.map +1 -1
  186. package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
  187. package/identity-provider/IdentityProviderWizard.js +8 -7
  188. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  189. package/identity-provider/SsoLoginPrompt.js +5 -6
  190. package/identity-provider/SsoLoginPrompt.js.map +1 -1
  191. package/index.d.ts +9 -8
  192. package/index.d.ts.map +1 -1
  193. package/index.js +4 -4
  194. package/index.js.map +1 -1
  195. package/internal/DecisionButton.d.ts.map +1 -1
  196. package/internal/DecisionButton.js +1 -6
  197. package/internal/DecisionButton.js.map +1 -1
  198. package/internal/SpinnerIcon.d.ts +22 -0
  199. package/internal/SpinnerIcon.d.ts.map +1 -0
  200. package/internal/SpinnerIcon.js +23 -0
  201. package/internal/SpinnerIcon.js.map +1 -0
  202. package/internal/isUnimplemented.d.ts +17 -0
  203. package/internal/isUnimplemented.d.ts.map +1 -0
  204. package/internal/isUnimplemented.js +26 -0
  205. package/internal/isUnimplemented.js.map +1 -0
  206. package/internal/select-element-text.d.ts +11 -0
  207. package/internal/select-element-text.d.ts.map +1 -0
  208. package/internal/select-element-text.js +19 -0
  209. package/internal/select-element-text.js.map +1 -0
  210. package/internal/thread-card/ThreadCardShell.d.ts +27 -10
  211. package/internal/thread-card/ThreadCardShell.d.ts.map +1 -1
  212. package/internal/thread-card/ThreadCardShell.js +11 -5
  213. package/internal/thread-card/ThreadCardShell.js.map +1 -1
  214. package/internal/thread-card/glyphs.d.ts +11 -2
  215. package/internal/thread-card/glyphs.d.ts.map +1 -1
  216. package/internal/thread-card/glyphs.js +9 -3
  217. package/internal/thread-card/glyphs.js.map +1 -1
  218. package/internal/thread-card/index.d.ts +1 -1
  219. package/internal/thread-card/index.d.ts.map +1 -1
  220. package/internal/thread-card/index.js.map +1 -1
  221. package/internal/useCopyFeedback.d.ts +28 -0
  222. package/internal/useCopyFeedback.d.ts.map +1 -0
  223. package/internal/useCopyFeedback.js +40 -0
  224. package/internal/useCopyFeedback.js.map +1 -0
  225. package/invitation/InvitationCreatedAlert.d.ts.map +1 -1
  226. package/invitation/InvitationCreatedAlert.js +12 -19
  227. package/invitation/InvitationCreatedAlert.js.map +1 -1
  228. package/invitation/InvitationManager.d.ts.map +1 -1
  229. package/invitation/InvitationManager.js +14 -21
  230. package/invitation/InvitationManager.js.map +1 -1
  231. package/invitation/InvitationRedemption.d.ts.map +1 -1
  232. package/invitation/InvitationRedemption.js +2 -4
  233. package/invitation/InvitationRedemption.js.map +1 -1
  234. package/library/useExportResource.d.ts.map +1 -1
  235. package/library/useExportResource.js +16 -27
  236. package/library/useExportResource.js.map +1 -1
  237. package/manifest/ApplyManifestDialog.js +1 -1
  238. package/manifest/EditResourceYamlDialog.js +1 -1
  239. package/mcp-server/DefinitionDriftNotice.d.ts +42 -0
  240. package/mcp-server/DefinitionDriftNotice.d.ts.map +1 -0
  241. package/mcp-server/DefinitionDriftNotice.js +52 -0
  242. package/mcp-server/DefinitionDriftNotice.js.map +1 -0
  243. package/mcp-server/McpServerConnectDialog.js +8 -4
  244. package/mcp-server/McpServerConnectDialog.js.map +1 -1
  245. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  246. package/mcp-server/McpServerDetailView.js +47 -14
  247. package/mcp-server/McpServerDetailView.js.map +1 -1
  248. package/mcp-server/OAuthAppForm.d.ts.map +1 -1
  249. package/mcp-server/OAuthAppForm.js +2 -4
  250. package/mcp-server/OAuthAppForm.js.map +1 -1
  251. package/mcp-server/internal/definitionDrift.d.ts +39 -0
  252. package/mcp-server/internal/definitionDrift.d.ts.map +1 -0
  253. package/mcp-server/internal/definitionDrift.js +122 -0
  254. package/mcp-server/internal/definitionDrift.js.map +1 -0
  255. package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -1
  256. package/mcp-server/internal/mcpServerToInput.js +3 -0
  257. package/mcp-server/internal/mcpServerToInput.js.map +1 -1
  258. package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -1
  259. package/mcp-server/steps/EnvironmentAuthStep.js +8 -4
  260. package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
  261. package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -1
  262. package/mcp-server/steps/IdentityTransportStep.js +5 -4
  263. package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
  264. package/mcp-server/useMcpServerConnect.d.ts +1 -1
  265. package/mcp-server/useMcpServerCredentials.d.ts +38 -10
  266. package/mcp-server/useMcpServerCredentials.d.ts.map +1 -1
  267. package/mcp-server/useMcpServerCredentials.js +50 -7
  268. package/mcp-server/useMcpServerCredentials.js.map +1 -1
  269. package/mcp-server/useMcpServerDefinitionDrift.d.ts +44 -0
  270. package/mcp-server/useMcpServerDefinitionDrift.d.ts.map +1 -0
  271. package/mcp-server/useMcpServerDefinitionDrift.js +61 -0
  272. package/mcp-server/useMcpServerDefinitionDrift.js.map +1 -0
  273. package/mcp-server/useOrgOAuthApp.d.ts +22 -0
  274. package/mcp-server/useOrgOAuthApp.d.ts.map +1 -1
  275. package/mcp-server/useOrgOAuthApp.js +39 -7
  276. package/mcp-server/useOrgOAuthApp.js.map +1 -1
  277. package/models/ModelRegistryContext.d.ts +7 -1
  278. package/models/ModelRegistryContext.d.ts.map +1 -1
  279. package/models/ModelRegistryContext.js.map +1 -1
  280. package/models/ModelSelector.js +9 -1
  281. package/models/ModelSelector.js.map +1 -1
  282. package/models/index.d.ts +2 -2
  283. package/models/index.d.ts.map +1 -1
  284. package/models/index.js +1 -1
  285. package/models/index.js.map +1 -1
  286. package/models/registry.d.ts +88 -6
  287. package/models/registry.d.ts.map +1 -1
  288. package/models/registry.js +133 -27
  289. package/models/registry.js.map +1 -1
  290. package/models/useModelRegistry.d.ts +7 -1
  291. package/models/useModelRegistry.d.ts.map +1 -1
  292. package/models/useModelRegistry.js +3 -2
  293. package/models/useModelRegistry.js.map +1 -1
  294. package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -1
  295. package/oauth-app/CreateOAuthAppForm.js +4 -5
  296. package/oauth-app/CreateOAuthAppForm.js.map +1 -1
  297. package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -1
  298. package/oauth-app/OAuthAppDetailPanel.js +5 -6
  299. package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
  300. package/organization/CreateOrganizationForm.d.ts.map +1 -1
  301. package/organization/CreateOrganizationForm.js +5 -9
  302. package/organization/CreateOrganizationForm.js.map +1 -1
  303. package/organization/OrgProfilePanel.d.ts.map +1 -1
  304. package/organization/OrgProfilePanel.js +7 -16
  305. package/organization/OrgProfilePanel.js.map +1 -1
  306. package/package.json +4 -4
  307. package/platform-client/CreatePlatformClientForm.d.ts.map +1 -1
  308. package/platform-client/CreatePlatformClientForm.js +5 -6
  309. package/platform-client/CreatePlatformClientForm.js.map +1 -1
  310. package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
  311. package/platform-client/PlatformClientDetailPanel.js +6 -7
  312. package/platform-client/PlatformClientDetailPanel.js.map +1 -1
  313. package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
  314. package/platform-client/PlatformClientListPanel.js +2 -4
  315. package/platform-client/PlatformClientListPanel.js.map +1 -1
  316. package/platform-client/PlatformClientSecretAlert.d.ts.map +1 -1
  317. package/platform-client/PlatformClientSecretAlert.js +18 -25
  318. package/platform-client/PlatformClientSecretAlert.js.map +1 -1
  319. package/provider.d.ts +34 -1
  320. package/provider.d.ts.map +1 -1
  321. package/provider.js +14 -7
  322. package/provider.js.map +1 -1
  323. package/resource-creation/WizardNav.d.ts.map +1 -1
  324. package/resource-creation/WizardNav.js +2 -4
  325. package/resource-creation/WizardNav.js.map +1 -1
  326. package/resource-detail/ConfirmDialog.js +1 -1
  327. package/resource-detail/useCopyResource.d.ts +4 -3
  328. package/resource-detail/useCopyResource.d.ts.map +1 -1
  329. package/resource-detail/useCopyResource.js +10 -19
  330. package/resource-detail/useCopyResource.js.map +1 -1
  331. package/schedule/ScheduleDetailView.d.ts.map +1 -1
  332. package/schedule/ScheduleDetailView.js +2 -4
  333. package/schedule/ScheduleDetailView.js.map +1 -1
  334. package/schedule/ScheduleForm.d.ts.map +1 -1
  335. package/schedule/ScheduleForm.js +6 -7
  336. package/schedule/ScheduleForm.js.map +1 -1
  337. package/session/NewSessionViewer.d.ts +52 -2
  338. package/session/NewSessionViewer.d.ts.map +1 -1
  339. package/session/NewSessionViewer.js +21 -6
  340. package/session/NewSessionViewer.js.map +1 -1
  341. package/session/SessionViewer.d.ts +63 -2
  342. package/session/SessionViewer.d.ts.map +1 -1
  343. package/session/SessionViewer.js +43 -17
  344. package/session/SessionViewer.js.map +1 -1
  345. package/session/audience.d.ts +17 -0
  346. package/session/audience.d.ts.map +1 -1
  347. package/session/index.d.ts +2 -1
  348. package/session/index.d.ts.map +1 -1
  349. package/session/index.js.map +1 -1
  350. package/session/run-config.d.ts +50 -0
  351. package/session/run-config.d.ts.map +1 -0
  352. package/session/run-config.js +15 -0
  353. package/session/run-config.js.map +1 -0
  354. package/session/useNewSessionFlow.d.ts +11 -0
  355. package/session/useNewSessionFlow.d.ts.map +1 -1
  356. package/session/useNewSessionFlow.js +29 -2
  357. package/session/useNewSessionFlow.js.map +1 -1
  358. package/session/useSessionConversation.d.ts +11 -9
  359. package/session/useSessionConversation.d.ts.map +1 -1
  360. package/session/useSessionConversation.js +2 -0
  361. package/session/useSessionConversation.js.map +1 -1
  362. package/session/useSessionPageFlow.d.ts +18 -4
  363. package/session/useSessionPageFlow.d.ts.map +1 -1
  364. package/session/useSessionPageFlow.js +33 -6
  365. package/session/useSessionPageFlow.js.map +1 -1
  366. package/session/useSessionPanel.d.ts +37 -2
  367. package/session/useSessionPanel.d.ts.map +1 -1
  368. package/session/useSessionPanel.js +44 -10
  369. package/session/useSessionPanel.js.map +1 -1
  370. package/settings/ApiKeysSection.d.ts.map +1 -1
  371. package/settings/ApiKeysSection.js +3 -2
  372. package/settings/ApiKeysSection.js.map +1 -1
  373. package/settings/ChannelAppsSection.d.ts.map +1 -1
  374. package/settings/ChannelAppsSection.js +3 -2
  375. package/settings/ChannelAppsSection.js.map +1 -1
  376. package/settings/EnvironmentsSection.js +5 -3
  377. package/settings/EnvironmentsSection.js.map +1 -1
  378. package/settings/IdentityProvidersSection.d.ts.map +1 -1
  379. package/settings/IdentityProvidersSection.js +3 -2
  380. package/settings/IdentityProvidersSection.js.map +1 -1
  381. package/settings/InvitationsSection.d.ts.map +1 -1
  382. package/settings/InvitationsSection.js +3 -1
  383. package/settings/InvitationsSection.js.map +1 -1
  384. package/settings/MembersSection.d.ts.map +1 -1
  385. package/settings/MembersSection.js +3 -1
  386. package/settings/MembersSection.js.map +1 -1
  387. package/settings/OAuthAppsSection.d.ts.map +1 -1
  388. package/settings/OAuthAppsSection.js +3 -2
  389. package/settings/OAuthAppsSection.js.map +1 -1
  390. package/settings/OrgProfileSection.d.ts.map +1 -1
  391. package/settings/OrgProfileSection.js +3 -2
  392. package/settings/OrgProfileSection.js.map +1 -1
  393. package/settings/PlatformClientsSection.d.ts.map +1 -1
  394. package/settings/PlatformClientsSection.js +3 -2
  395. package/settings/PlatformClientsSection.js.map +1 -1
  396. package/settings/UsageSection.d.ts.map +1 -1
  397. package/settings/UsageSection.js +3 -1
  398. package/settings/UsageSection.js.map +1 -1
  399. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  400. package/sharing/ShareAgentDialog.js +18 -7
  401. package/sharing/ShareAgentDialog.js.map +1 -1
  402. package/sidebar/chrome.d.ts +3 -4
  403. package/sidebar/chrome.d.ts.map +1 -1
  404. package/sidebar/chrome.js +5 -4
  405. package/sidebar/chrome.js.map +1 -1
  406. package/skill/SkillDiffDialog.js +1 -1
  407. package/skill/useSkillVersions.d.ts.map +1 -1
  408. package/skill/useSkillVersions.js +1 -9
  409. package/skill/useSkillVersions.js.map +1 -1
  410. package/src/access/ManageAccessDialog.tsx +10 -4
  411. package/src/activity/format-relative-time.ts +11 -9
  412. package/src/agent/steps/CapabilitiesStep.tsx +6 -3
  413. package/src/agent/steps/IdentityStep.tsx +19 -12
  414. package/src/agent-instance/CreateAgentInstanceDialog.tsx +17 -8
  415. package/src/api-key/ApiKeyCreatedAlert.tsx +10 -19
  416. package/src/api-key/ApiKeyListPanel.tsx +3 -39
  417. package/src/api-key/CreateApiKeyForm.tsx +12 -26
  418. package/src/approval-defaults-context.ts +56 -0
  419. package/src/attachment/__tests__/vision-preflight.test.ts +311 -0
  420. package/src/attachment/index.ts +12 -0
  421. package/src/attachment/vision-preflight.ts +236 -0
  422. package/src/billing/AutoRechargeCard.tsx +5 -4
  423. package/src/billing/BillingSection.tsx +4 -3
  424. package/src/channel/ChannelConversationsDialog.tsx +8 -4
  425. package/src/channel/ChannelCredentialsDialog.tsx +14 -4
  426. package/src/channel/ChannelTemplatesDialog.tsx +8 -4
  427. package/src/channel/ConnectSlackDialog.tsx +14 -4
  428. package/src/channel/ConnectWhatsAppDialog.tsx +14 -4
  429. package/src/channel/useChannelSessions.ts +3 -0
  430. package/src/channel-app/ChannelAppDetailPanel.tsx +15 -12
  431. package/src/channel-app/CreateChannelAppForm.tsx +17 -12
  432. package/src/channel-app/internal.tsx +5 -25
  433. package/src/composer/ComposerToolbar.tsx +1 -1
  434. package/src/composer/SessionComposer.tsx +160 -13
  435. package/src/composer/__tests__/SessionComposer-modelCoherence.test.tsx +220 -0
  436. package/src/composer/__tests__/SessionComposer-visionPreflight.test.tsx +222 -0
  437. package/src/composer/icons.tsx +0 -18
  438. package/src/conversation/ConversationComposer.tsx +1 -1
  439. package/src/conversation/ConversationListPane.tsx +4 -3
  440. package/src/cursor-accounts/MemberCoverageTable.tsx +3 -14
  441. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +2 -10
  442. package/src/dashboard/DashboardFailedRuns.tsx +2 -12
  443. package/src/environment/CreateEnvironmentForm.tsx +8 -27
  444. package/src/environment/EnvVarForm.tsx +2 -18
  445. package/src/environment/EnvironmentVariableEditor.tsx +5 -21
  446. package/src/execution/ArtifactApplyButton.tsx +2 -17
  447. package/src/execution/ExecutionErrorNotice.tsx +99 -0
  448. package/src/execution/FilePathLink.tsx +5 -9
  449. package/src/execution/FileReviewCard.tsx +1 -20
  450. package/src/execution/FollowUpInput.tsx +1 -16
  451. package/src/execution/LivenessStatusLine.tsx +59 -0
  452. package/src/execution/MessageEntry.tsx +136 -25
  453. package/src/execution/MessageThread.tsx +84 -83
  454. package/src/execution/SetupProgress.tsx +5 -1
  455. package/src/execution/SubAgentSection.tsx +9 -20
  456. package/src/execution/TerminalSession.tsx +97 -10
  457. package/src/execution/ToolCallDetail.tsx +19 -0
  458. package/src/execution/ToolCallItem.tsx +157 -37
  459. package/src/execution/ToolRunGroup.tsx +30 -32
  460. package/src/execution/WriteBackCard.tsx +5 -24
  461. package/src/execution/__tests__/MessageEntry-copy.test.tsx +125 -0
  462. package/src/execution/__tests__/MessageThread.test.tsx +97 -0
  463. package/src/execution/__tests__/TerminalSession.test.tsx +71 -1
  464. package/src/execution/__tests__/ToolCallDetail.test.tsx +33 -1
  465. package/src/execution/__tests__/ToolCallItem.test.tsx +299 -11
  466. package/src/execution/__tests__/ToolRunGroup.test.tsx +41 -9
  467. package/src/execution/__tests__/message-thread-slots.test.tsx +92 -0
  468. package/src/execution/__tests__/tool-presenter.test.tsx +41 -4
  469. package/src/execution/index.ts +8 -2
  470. package/src/execution/tool-categories.ts +72 -8
  471. package/src/execution/tool-presenter.ts +22 -1
  472. package/src/execution/useArtifactInspection.ts +4 -8
  473. package/src/execution/useCreateAgentExecution.ts +3 -2
  474. package/src/iam-policy/GrantAccessForm.tsx +2 -18
  475. package/src/iam-policy/OrgMembersPanel.tsx +3 -19
  476. package/src/iam-policy/RoleSelector.tsx +8 -1
  477. package/src/identity-provider/CreateIdentityProviderForm.tsx +13 -31
  478. package/src/identity-provider/IdentityProviderDetailPanel.tsx +24 -49
  479. package/src/identity-provider/IdentityProviderListPanel.tsx +2 -18
  480. package/src/identity-provider/IdentityProviderWizard.tsx +15 -32
  481. package/src/identity-provider/SsoLoginPrompt.tsx +6 -21
  482. package/src/index.ts +23 -1
  483. package/src/internal/DecisionButton.tsx +1 -20
  484. package/src/internal/SpinnerIcon.tsx +42 -0
  485. package/src/internal/__tests__/ThreadCardShell.test.tsx +43 -7
  486. package/src/internal/__tests__/useCopyFeedback.test.ts +92 -0
  487. package/src/internal/isUnimplemented.ts +26 -0
  488. package/src/internal/select-element-text.ts +17 -0
  489. package/src/internal/thread-card/ThreadCardShell.tsx +53 -21
  490. package/src/internal/thread-card/glyphs.tsx +24 -3
  491. package/src/internal/thread-card/index.ts +1 -0
  492. package/src/internal/useCopyFeedback.ts +61 -0
  493. package/src/invitation/InvitationCreatedAlert.tsx +10 -18
  494. package/src/invitation/InvitationManager.tsx +23 -34
  495. package/src/invitation/InvitationRedemption.tsx +2 -18
  496. package/src/library/useExportResource.ts +15 -29
  497. package/src/manifest/ApplyManifestDialog.tsx +1 -1
  498. package/src/manifest/EditResourceYamlDialog.tsx +1 -1
  499. package/src/mcp-server/DefinitionDriftNotice.tsx +120 -0
  500. package/src/mcp-server/McpServerConnectDialog.tsx +30 -12
  501. package/src/mcp-server/McpServerDetailView.tsx +58 -26
  502. package/src/mcp-server/OAuthAppForm.tsx +2 -18
  503. package/src/mcp-server/__tests__/DefinitionDriftNotice.test.tsx +57 -0
  504. package/src/mcp-server/__tests__/VendorApprovalBlocked.surfaces.test.tsx +103 -5
  505. package/src/mcp-server/__tests__/byoaEditionDegradation.test.tsx +323 -0
  506. package/src/mcp-server/__tests__/definitionDrift.test.ts +245 -0
  507. package/src/mcp-server/__tests__/mcpServerToInput.test.ts +201 -0
  508. package/src/mcp-server/__tests__/useMcpServerCredentials.test.tsx +306 -0
  509. package/src/mcp-server/__tests__/useMcpServerDefinitionDrift.test.tsx +173 -0
  510. package/src/mcp-server/internal/definitionDrift.ts +158 -0
  511. package/src/mcp-server/internal/mcpServerToInput.ts +3 -0
  512. package/src/mcp-server/steps/EnvironmentAuthStep.tsx +19 -19
  513. package/src/mcp-server/steps/IdentityTransportStep.tsx +24 -23
  514. package/src/mcp-server/useMcpServerConnect.ts +1 -1
  515. package/src/mcp-server/useMcpServerCredentials.ts +87 -19
  516. package/src/mcp-server/useMcpServerDefinitionDrift.ts +95 -0
  517. package/src/mcp-server/useOrgOAuthApp.ts +54 -8
  518. package/src/models/ModelRegistryContext.ts +7 -1
  519. package/src/models/ModelSelector.tsx +37 -0
  520. package/src/models/__tests__/ModelSelector-visionIndicator.test.tsx +129 -0
  521. package/src/models/__tests__/resolveDefaultModel.test.ts +115 -0
  522. package/src/models/__tests__/useModelRegistry.test.tsx +99 -4
  523. package/src/models/index.ts +2 -2
  524. package/src/models/registry.ts +196 -29
  525. package/src/models/useModelRegistry.ts +10 -2
  526. package/src/oauth-app/CreateOAuthAppForm.tsx +16 -31
  527. package/src/oauth-app/OAuthAppDetailPanel.tsx +16 -31
  528. package/src/organization/CreateOrganizationForm.tsx +10 -29
  529. package/src/organization/OrgProfilePanel.tsx +13 -44
  530. package/src/platform-client/CreatePlatformClientForm.tsx +9 -29
  531. package/src/platform-client/PlatformClientDetailPanel.tsx +10 -30
  532. package/src/platform-client/PlatformClientListPanel.tsx +2 -18
  533. package/src/platform-client/PlatformClientSecretAlert.tsx +26 -55
  534. package/src/provider.tsx +76 -33
  535. package/src/resource-creation/WizardNav.tsx +2 -18
  536. package/src/resource-detail/ConfirmDialog.tsx +1 -1
  537. package/src/resource-detail/useCopyResource.ts +17 -23
  538. package/src/schedule/ScheduleDetailView.tsx +2 -18
  539. package/src/schedule/ScheduleForm.tsx +19 -34
  540. package/src/session/NewSessionViewer.tsx +85 -7
  541. package/src/session/SessionViewer.tsx +120 -17
  542. package/src/session/__tests__/audienceWiring.test.tsx +76 -0
  543. package/src/session/__tests__/panelNegotiation.test.tsx +302 -0
  544. package/src/session/__tests__/useNewSessionFlow.test.tsx +134 -5
  545. package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +74 -0
  546. package/src/session/__tests__/useSessionPageFlow.runConfig.test.tsx +157 -0
  547. package/src/session/__tests__/useSessionPanel.test.ts +114 -0
  548. package/src/session/audience.ts +18 -0
  549. package/src/session/index.ts +2 -1
  550. package/src/session/run-config.ts +59 -0
  551. package/src/session/useNewSessionFlow.ts +39 -2
  552. package/src/session/useSessionConversation.ts +14 -10
  553. package/src/session/useSessionPageFlow.ts +51 -10
  554. package/src/session/useSessionPanel.ts +91 -10
  555. package/src/settings/ApiKeysSection.tsx +4 -3
  556. package/src/settings/ChannelAppsSection.tsx +4 -3
  557. package/src/settings/EnvironmentsSection.tsx +8 -5
  558. package/src/settings/IdentityProvidersSection.tsx +4 -3
  559. package/src/settings/InvitationsSection.tsx +4 -2
  560. package/src/settings/MembersSection.tsx +4 -2
  561. package/src/settings/OAuthAppsSection.tsx +4 -3
  562. package/src/settings/OrgProfileSection.tsx +4 -3
  563. package/src/settings/PlatformClientsSection.tsx +4 -3
  564. package/src/settings/UsageSection.tsx +4 -2
  565. package/src/sharing/ShareAgentDialog.tsx +28 -10
  566. package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -1
  567. package/src/sidebar/chrome.tsx +6 -6
  568. package/src/skill/SkillDiffDialog.tsx +1 -1
  569. package/src/skill/useSkillVersions.ts +1 -11
  570. package/src/styles.css +43 -0
  571. package/src/version-history/VersionTimelineEntry.tsx +1 -21
  572. package/src/workflow/FailedRunsWidget.tsx +2 -9
  573. package/src/workflow/PendingApprovalsWidget.tsx +2 -9
  574. package/src/workflow/ViewYamlDialog.tsx +7 -22
  575. package/src/workflow/WorkflowArchitectDialog.tsx +8 -27
  576. package/src/workflow/WorkflowArtifactDocument.tsx +5 -9
  577. package/src/workflow/WorkflowCanvasEditor.tsx +39 -7
  578. package/src/workflow/WorkflowCanvasInner.tsx +14 -1
  579. package/src/workflow/WorkflowDiffGraph.tsx +7 -1
  580. package/src/workflow/WorkflowExecutionGraph.tsx +26 -1
  581. package/src/workflow/WorkflowExecutionViewer.tsx +115 -24
  582. package/src/workflow/WorkflowExplainDialog.tsx +8 -24
  583. package/src/workflow/WorkflowNode.tsx +5 -2
  584. package/src/workflow/WorkflowOverviewGraph.tsx +9 -1
  585. package/src/workflow/WorkflowRefinePanel.tsx +2 -18
  586. package/src/workflow/WorkflowRepairCard.tsx +2 -18
  587. package/src/workflow/WorkflowRunDialog.tsx +31 -24
  588. package/src/workflow/WorkflowTaskApprovalSummary.tsx +2 -17
  589. package/src/workflow/WorkflowVersionBadge.tsx +4 -13
  590. package/src/workflow/WorkflowVersionTimeline.tsx +1 -25
  591. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +48 -1
  592. package/src/workflow/__tests__/WorkflowNode.test.tsx +93 -0
  593. package/src/workflow/__tests__/WorkflowRunDialog.test.tsx +127 -0
  594. package/src/workflow/__tests__/graph-history.test.ts +103 -0
  595. package/src/workflow/__tests__/overview-graph.test.ts +17 -0
  596. package/src/workflow/__tests__/panelNegotiation.test.tsx +230 -0
  597. package/src/workflow/__tests__/useCanvasKeyboardShortcuts.undo.test.ts +115 -0
  598. package/src/workflow/__tests__/useWorkflowCanvas.dirty.test.tsx +178 -0
  599. package/src/workflow/__tests__/useWorkflowCanvas.drag.test.tsx +224 -0
  600. package/src/workflow/__tests__/useWorkflowCanvas.undo.test.tsx +133 -0
  601. package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +100 -0
  602. package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +7 -11
  603. package/src/workflow/execution-history/ExecutionHistoryTable.tsx +1 -25
  604. package/src/workflow/index.ts +1 -0
  605. package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +17 -8
  606. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -1
  607. package/src/workflow/instance/useDeleteWorkflowInstance.ts +9 -4
  608. package/src/workflow/layout/registry-dimensions.ts +2 -5
  609. package/src/workflow/node-shell/NodeShell.tsx +4 -0
  610. package/src/workflow/picker/BranchAddPopover.tsx +4 -3
  611. package/src/workflow/task-type-visual-registry.ts +5 -3
  612. package/src/workflow/templates/WorkflowTemplatePreview.tsx +1 -1
  613. package/src/workflow/useApprovalBoundary.ts +1 -1
  614. package/src/workflow/useCanvasKeyboardShortcuts.ts +33 -3
  615. package/src/workflow/useGraphHistory.ts +22 -41
  616. package/src/workflow/useWorkflowCanvas.ts +126 -21
  617. package/src/workflow/useWorkflowExecutionPanel.ts +95 -13
  618. package/src/workflow/useWorkflowSave.ts +2 -15
  619. package/src/workflow/workflow-graph-conversions.ts +25 -3
  620. package/styles.css +1 -1
  621. package/version-history/VersionTimelineEntry.d.ts.map +1 -1
  622. package/version-history/VersionTimelineEntry.js +1 -23
  623. package/version-history/VersionTimelineEntry.js.map +1 -1
  624. package/workflow/CanvasTransitionEdge.d.ts +1 -1
  625. package/workflow/FailedRunsWidget.d.ts.map +1 -1
  626. package/workflow/FailedRunsWidget.js +2 -11
  627. package/workflow/FailedRunsWidget.js.map +1 -1
  628. package/workflow/PendingApprovalsWidget.d.ts.map +1 -1
  629. package/workflow/PendingApprovalsWidget.js +2 -11
  630. package/workflow/PendingApprovalsWidget.js.map +1 -1
  631. package/workflow/ViewYamlDialog.d.ts.map +1 -1
  632. package/workflow/ViewYamlDialog.js +7 -23
  633. package/workflow/ViewYamlDialog.js.map +1 -1
  634. package/workflow/WorkflowArchitectDialog.d.ts.map +1 -1
  635. package/workflow/WorkflowArchitectDialog.js +7 -11
  636. package/workflow/WorkflowArchitectDialog.js.map +1 -1
  637. package/workflow/WorkflowArtifactDocument.d.ts.map +1 -1
  638. package/workflow/WorkflowArtifactDocument.js +5 -8
  639. package/workflow/WorkflowArtifactDocument.js.map +1 -1
  640. package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
  641. package/workflow/WorkflowCanvasEditor.js +31 -6
  642. package/workflow/WorkflowCanvasEditor.js.map +1 -1
  643. package/workflow/WorkflowCanvasInner.d.ts +4 -2
  644. package/workflow/WorkflowCanvasInner.d.ts.map +1 -1
  645. package/workflow/WorkflowCanvasInner.js +7 -3
  646. package/workflow/WorkflowCanvasInner.js.map +1 -1
  647. package/workflow/WorkflowDiffGraph.js +6 -2
  648. package/workflow/WorkflowDiffGraph.js.map +1 -1
  649. package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
  650. package/workflow/WorkflowExecutionGraph.js +27 -1
  651. package/workflow/WorkflowExecutionGraph.js.map +1 -1
  652. package/workflow/WorkflowExecutionViewer.d.ts +51 -0
  653. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
  654. package/workflow/WorkflowExecutionViewer.js +49 -18
  655. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  656. package/workflow/WorkflowExplainDialog.d.ts.map +1 -1
  657. package/workflow/WorkflowExplainDialog.js +6 -8
  658. package/workflow/WorkflowExplainDialog.js.map +1 -1
  659. package/workflow/WorkflowNode.d.ts.map +1 -1
  660. package/workflow/WorkflowNode.js +2 -2
  661. package/workflow/WorkflowNode.js.map +1 -1
  662. package/workflow/WorkflowOverviewGraph.js +8 -2
  663. package/workflow/WorkflowOverviewGraph.js.map +1 -1
  664. package/workflow/WorkflowRefinePanel.d.ts.map +1 -1
  665. package/workflow/WorkflowRefinePanel.js +2 -4
  666. package/workflow/WorkflowRefinePanel.js.map +1 -1
  667. package/workflow/WorkflowRepairCard.d.ts.map +1 -1
  668. package/workflow/WorkflowRepairCard.js +2 -4
  669. package/workflow/WorkflowRepairCard.js.map +1 -1
  670. package/workflow/WorkflowRunDialog.d.ts +11 -1
  671. package/workflow/WorkflowRunDialog.d.ts.map +1 -1
  672. package/workflow/WorkflowRunDialog.js +18 -9
  673. package/workflow/WorkflowRunDialog.js.map +1 -1
  674. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  675. package/workflow/WorkflowTaskApprovalSummary.js +2 -4
  676. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  677. package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
  678. package/workflow/WorkflowVersionBadge.js +4 -13
  679. package/workflow/WorkflowVersionBadge.js.map +1 -1
  680. package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
  681. package/workflow/WorkflowVersionTimeline.js +1 -26
  682. package/workflow/WorkflowVersionTimeline.js.map +1 -1
  683. package/workflow/execution-comparison/ExecutionComparisonPicker.d.ts.map +1 -1
  684. package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -15
  685. package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
  686. package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
  687. package/workflow/execution-history/ExecutionHistoryTable.js +1 -24
  688. package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
  689. package/workflow/index.d.ts +1 -1
  690. package/workflow/index.d.ts.map +1 -1
  691. package/workflow/index.js.map +1 -1
  692. package/workflow/instance/CreateWorkflowInstanceDialog.d.ts.map +1 -1
  693. package/workflow/instance/CreateWorkflowInstanceDialog.js +10 -2
  694. package/workflow/instance/CreateWorkflowInstanceDialog.js.map +1 -1
  695. package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
  696. package/workflow/instance/WorkflowInstanceDetailPanel.js +1 -1
  697. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  698. package/workflow/instance/useDeleteWorkflowInstance.d.ts +9 -4
  699. package/workflow/instance/useDeleteWorkflowInstance.d.ts.map +1 -1
  700. package/workflow/instance/useDeleteWorkflowInstance.js +4 -2
  701. package/workflow/instance/useDeleteWorkflowInstance.js.map +1 -1
  702. package/workflow/layout/registry-dimensions.d.ts.map +1 -1
  703. package/workflow/layout/registry-dimensions.js +2 -5
  704. package/workflow/layout/registry-dimensions.js.map +1 -1
  705. package/workflow/node-shell/NodeShell.js +1 -1
  706. package/workflow/node-shell/NodeShell.js.map +1 -1
  707. package/workflow/picker/BranchAddPopover.d.ts.map +1 -1
  708. package/workflow/picker/BranchAddPopover.js +3 -2
  709. package/workflow/picker/BranchAddPopover.js.map +1 -1
  710. package/workflow/task-type-visual-registry.d.ts.map +1 -1
  711. package/workflow/task-type-visual-registry.js +5 -3
  712. package/workflow/task-type-visual-registry.js.map +1 -1
  713. package/workflow/templates/WorkflowTemplatePreview.js +1 -1
  714. package/workflow/useApprovalBoundary.d.ts +1 -1
  715. package/workflow/useApprovalBoundary.js +1 -1
  716. package/workflow/useCanvasKeyboardShortcuts.d.ts +15 -4
  717. package/workflow/useCanvasKeyboardShortcuts.d.ts.map +1 -1
  718. package/workflow/useCanvasKeyboardShortcuts.js +25 -4
  719. package/workflow/useCanvasKeyboardShortcuts.js.map +1 -1
  720. package/workflow/useGraphHistory.d.ts +16 -9
  721. package/workflow/useGraphHistory.d.ts.map +1 -1
  722. package/workflow/useGraphHistory.js +19 -33
  723. package/workflow/useGraphHistory.js.map +1 -1
  724. package/workflow/useWorkflowCanvas.d.ts +6 -4
  725. package/workflow/useWorkflowCanvas.d.ts.map +1 -1
  726. package/workflow/useWorkflowCanvas.js +115 -23
  727. package/workflow/useWorkflowCanvas.js.map +1 -1
  728. package/workflow/useWorkflowExecutionPanel.d.ts +38 -2
  729. package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -1
  730. package/workflow/useWorkflowExecutionPanel.js +46 -13
  731. package/workflow/useWorkflowExecutionPanel.js.map +1 -1
  732. package/workflow/useWorkflowSave.d.ts.map +1 -1
  733. package/workflow/useWorkflowSave.js +2 -15
  734. package/workflow/useWorkflowSave.js.map +1 -1
  735. package/workflow/workflow-graph-conversions.d.ts +19 -1
  736. package/workflow/workflow-graph-conversions.d.ts.map +1 -1
  737. package/workflow/workflow-graph-conversions.js +17 -3
  738. package/workflow/workflow-graph-conversions.js.map +1 -1
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useState, type FormEvent } from "react";
3
+ import { type FormEvent, useCallback, useId, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import { getUserMessage } from "@stigmer/sdk";
6
6
  import type { OAuthApp } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/api_pb";
@@ -8,6 +8,7 @@ import { VendorApprovalStatus } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1
8
8
  import { timestampDate, type Timestamp } from "@bufbuild/protobuf/wkt";
9
9
  import { useUpdateOAuthApp } from "./useUpdateOAuthApp.js";
10
10
  import { useDeleteOAuthApp } from "./useDeleteOAuthApp.js";
11
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
11
12
 
12
13
  // ---------------------------------------------------------------------------
13
14
  // Public API
@@ -61,6 +62,7 @@ export function OAuthAppDetailPanel({
61
62
  onBack,
62
63
  className,
63
64
  }: OAuthAppDetailPanelProps) {
65
+ const baseId = useId();
64
66
  const spec = oauthApp.spec;
65
67
  const meta = oauthApp.metadata;
66
68
 
@@ -265,7 +267,7 @@ export function OAuthAppDetailPanel({
265
267
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
266
268
  )}
267
269
  >
268
- {isDeleting && <SpinnerIcon />}
270
+ {isDeleting && <SpinnerIcon size={12} />}
269
271
  Delete permanently
270
272
  </button>
271
273
  <button
@@ -297,7 +299,7 @@ export function OAuthAppDetailPanel({
297
299
  ) : (
298
300
  <form onSubmit={handleSave} className="stg:space-y-3">
299
301
  <FieldInput
300
- id="stgm-oauth-edit-provider"
302
+ id={`${baseId}-provider`}
301
303
  label="Provider"
302
304
  value={provider}
303
305
  onChange={setProvider}
@@ -306,7 +308,7 @@ export function OAuthAppDetailPanel({
306
308
  required
307
309
  />
308
310
  <FieldInput
309
- id="stgm-oauth-edit-client-id"
311
+ id={`${baseId}-client-id`}
310
312
  label="Client ID"
311
313
  value={clientId}
312
314
  onChange={setClientId}
@@ -315,7 +317,7 @@ export function OAuthAppDetailPanel({
315
317
  required
316
318
  />
317
319
  <FieldInput
318
- id="stgm-oauth-edit-client-secret"
320
+ id={`${baseId}-client-secret`}
319
321
  label="Client secret"
320
322
  value={clientSecret}
321
323
  onChange={setClientSecret}
@@ -325,7 +327,7 @@ export function OAuthAppDetailPanel({
325
327
  disabled={isUpdating}
326
328
  />
327
329
  <FieldInput
328
- id="stgm-oauth-edit-auth-url"
330
+ id={`${baseId}-auth-url`}
329
331
  label="Authorization URL"
330
332
  value={authorizationUrl}
331
333
  onChange={setAuthorizationUrl}
@@ -334,7 +336,7 @@ export function OAuthAppDetailPanel({
334
336
  required
335
337
  />
336
338
  <FieldInput
337
- id="stgm-oauth-edit-token-url"
339
+ id={`${baseId}-token-url`}
338
340
  label="Token URL"
339
341
  value={tokenUrl}
340
342
  onChange={setTokenUrl}
@@ -343,7 +345,7 @@ export function OAuthAppDetailPanel({
343
345
  required
344
346
  />
345
347
  <FieldInput
346
- id="stgm-oauth-edit-scopes"
348
+ id={`${baseId}-scopes`}
347
349
  label="Scopes"
348
350
  value={scopes}
349
351
  onChange={setScopes}
@@ -352,7 +354,7 @@ export function OAuthAppDetailPanel({
352
354
  disabled={isUpdating}
353
355
  />
354
356
  <FieldInput
355
- id="stgm-oauth-edit-userinfo-url"
357
+ id={`${baseId}-userinfo-url`}
356
358
  label="Userinfo URL"
357
359
  value={userinfoUrl}
358
360
  onChange={setUserinfoUrl}
@@ -361,7 +363,7 @@ export function OAuthAppDetailPanel({
361
363
  disabled={isUpdating}
362
364
  />
363
365
  <FieldInput
364
- id="stgm-oauth-edit-scope-param"
366
+ id={`${baseId}-scope-param`}
365
367
  label="Scope parameter name"
366
368
  value={scopeParameterName}
367
369
  onChange={setScopeParameterName}
@@ -372,13 +374,13 @@ export function OAuthAppDetailPanel({
372
374
 
373
375
  <div className="stg:space-y-1">
374
376
  <label
375
- htmlFor="stgm-oauth-edit-approval-status"
377
+ htmlFor={`${baseId}-approval-status`}
376
378
  className="stg:text-xs stg:font-medium stg:text-foreground"
377
379
  >
378
380
  Vendor approval status
379
381
  </label>
380
382
  <select
381
- id="stgm-oauth-edit-approval-status"
383
+ id={`${baseId}-approval-status`}
382
384
  value={vendorApprovalStatus}
383
385
  onChange={(e) =>
384
386
  setVendorApprovalStatus(
@@ -400,7 +402,7 @@ export function OAuthAppDetailPanel({
400
402
  </div>
401
403
 
402
404
  <FieldInput
403
- id="stgm-oauth-edit-approval-docs"
405
+ id={`${baseId}-approval-docs`}
404
406
  label="Vendor approval docs URL"
405
407
  value={vendorApprovalDocsUrl}
406
408
  onChange={setVendorApprovalDocsUrl}
@@ -425,7 +427,7 @@ export function OAuthAppDetailPanel({
425
427
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
426
428
  )}
427
429
  >
428
- {isUpdating && <SpinnerIcon />}
430
+ {isUpdating && <SpinnerIcon size={12} />}
429
431
  Save changes
430
432
  </button>
431
433
  <button
@@ -652,20 +654,3 @@ function ArrowLeftIcon() {
652
654
  );
653
655
  }
654
656
 
655
- function SpinnerIcon() {
656
- return (
657
- <svg
658
- width="12"
659
- height="12"
660
- viewBox="0 0 16 16"
661
- fill="none"
662
- stroke="currentColor"
663
- strokeWidth="2"
664
- strokeLinecap="round"
665
- className="stg:animate-spin"
666
- aria-hidden="true"
667
- >
668
- <path d="M8 2a6 6 0 1 0 6 6" />
669
- </svg>
670
- );
671
- }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useRef, useState, type FormEvent } from "react";
3
+ import { type FormEvent, useCallback, useId, useRef, useState } from "react";
4
4
  import { create as createMessage } from "@bufbuild/protobuf";
5
5
  import { cn } from "@stigmer/theme";
6
6
  import { getUserMessage } from "@stigmer/sdk";
@@ -9,6 +9,7 @@ import { ApiResourceMetadataSchema } from "@stigmer/protos/ai/stigmer/commons/ap
9
9
  import { useCreateOrganization } from "./useCreateOrganization.js";
10
10
  import { generateSlug } from "../internal/slug.js";
11
11
  import { validateMessage, getFieldError } from "../internal/validate.js";
12
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
12
13
 
13
14
  // ---------------------------------------------------------------------------
14
15
  // Public API
@@ -47,6 +48,7 @@ export function CreateOrganizationForm({
47
48
  onCancel,
48
49
  className,
49
50
  }: CreateOrganizationFormProps) {
51
+ const baseId = useId();
50
52
  const { create, isCreating, error, clearError } = useCreateOrganization();
51
53
 
52
54
  const [name, setName] = useState("");
@@ -120,13 +122,13 @@ export function CreateOrganizationForm({
120
122
  {/* ---- Name ---- */}
121
123
  <div className="stg:space-y-1">
122
124
  <label
123
- htmlFor="stgm-new-org-name"
125
+ htmlFor={`${baseId}-name`}
124
126
  className="stg:text-xs stg:font-medium stg:text-foreground"
125
127
  >
126
128
  Name
127
129
  </label>
128
130
  <input
129
- id="stgm-new-org-name"
131
+ id={`${baseId}-name`}
130
132
  type="text"
131
133
  value={name}
132
134
  onChange={(e) => handleNameChange(e.target.value)}
@@ -157,13 +159,13 @@ export function CreateOrganizationForm({
157
159
  {/* ---- Slug ---- */}
158
160
  <div className="stg:space-y-1">
159
161
  <label
160
- htmlFor="stgm-new-org-slug"
162
+ htmlFor={`${baseId}-slug`}
161
163
  className="stg:text-xs stg:font-medium stg:text-foreground"
162
164
  >
163
165
  Slug
164
166
  </label>
165
167
  <input
166
- id="stgm-new-org-slug"
168
+ id={`${baseId}-slug`}
167
169
  type="text"
168
170
  value={slug}
169
171
  onChange={(e) => handleSlugChange(e.target.value)}
@@ -195,14 +197,14 @@ export function CreateOrganizationForm({
195
197
  {/* ---- Description ---- */}
196
198
  <div className="stg:space-y-1">
197
199
  <label
198
- htmlFor="stgm-new-org-desc"
200
+ htmlFor={`${baseId}-desc`}
199
201
  className="stg:text-xs stg:font-medium stg:text-muted-foreground"
200
202
  >
201
203
  Description{" "}
202
204
  <span className="stg:text-muted-foreground-subtle">(optional)</span>
203
205
  </label>
204
206
  <input
205
- id="stgm-new-org-desc"
207
+ id={`${baseId}-desc`}
206
208
  type="text"
207
209
  value={description}
208
210
  onChange={(e) => setDescription(e.target.value)}
@@ -234,7 +236,7 @@ export function CreateOrganizationForm({
234
236
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
235
237
  )}
236
238
  >
237
- {isCreating && <SpinnerIcon />}
239
+ {isCreating && <SpinnerIcon size={12} />}
238
240
  Create organization
239
241
  </button>
240
242
 
@@ -257,24 +259,3 @@ export function CreateOrganizationForm({
257
259
  );
258
260
  }
259
261
 
260
- // ---------------------------------------------------------------------------
261
- // Icons
262
- // ---------------------------------------------------------------------------
263
-
264
- function SpinnerIcon() {
265
- return (
266
- <svg
267
- width="12"
268
- height="12"
269
- viewBox="0 0 16 16"
270
- fill="none"
271
- stroke="currentColor"
272
- strokeWidth="2"
273
- strokeLinecap="round"
274
- className="stg:animate-spin"
275
- aria-hidden="true"
276
- >
277
- <path d="M8 2a6 6 0 1 0 6 6" />
278
- </svg>
279
- );
280
- }
@@ -1,12 +1,6 @@
1
1
  "use client";
2
2
 
3
- import {
4
- useCallback,
5
- useEffect,
6
- useMemo,
7
- useState,
8
- type FormEvent,
9
- } from "react";
3
+ import { type FormEvent, useCallback, useEffect, useId, useMemo, useState } from "react";
10
4
  import { cn } from "@stigmer/theme";
11
5
  import { getUserMessage } from "@stigmer/sdk";
12
6
  import type { Organization } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/api_pb";
@@ -14,6 +8,8 @@ import { useOrganization } from "./useOrganization.js";
14
8
  import { useUpdateOrganization } from "./useUpdateOrganization.js";
15
9
  import { useIdentityProviderList } from "../identity-provider/useIdentityProviderList.js";
16
10
  import { useResourceAvailable, ApiResourceKind } from "../deployment-mode.js";
11
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
12
+ import { useCopyFeedback } from "../internal/useCopyFeedback.js";
17
13
 
18
14
  // ---------------------------------------------------------------------------
19
15
  // Constants
@@ -60,6 +56,7 @@ export function OrgProfilePanel({
60
56
  onUpdated,
61
57
  className,
62
58
  }: OrgProfilePanelProps) {
59
+ const baseId = useId();
63
60
  const {
64
61
  organization,
65
62
  isLoading: isFetching,
@@ -223,13 +220,13 @@ export function OrgProfilePanel({
223
220
  {/* Name */}
224
221
  <div className="stg:space-y-1">
225
222
  <label
226
- htmlFor="stgm-org-profile-name"
223
+ htmlFor={`${baseId}-name`}
227
224
  className="stg:text-xs stg:font-medium stg:text-foreground"
228
225
  >
229
226
  Name
230
227
  </label>
231
228
  <input
232
- id="stgm-org-profile-name"
229
+ id={`${baseId}-name`}
233
230
  type="text"
234
231
  value={name}
235
232
  onChange={(e) => setName(e.target.value)}
@@ -250,13 +247,13 @@ export function OrgProfilePanel({
250
247
  {/* Description */}
251
248
  <div className="stg:space-y-1">
252
249
  <label
253
- htmlFor="stgm-org-profile-desc"
250
+ htmlFor={`${baseId}-desc`}
254
251
  className="stg:text-xs stg:font-medium stg:text-foreground"
255
252
  >
256
253
  Description
257
254
  </label>
258
255
  <textarea
259
- id="stgm-org-profile-desc"
256
+ id={`${baseId}-desc`}
260
257
  value={description}
261
258
  onChange={(e) => setDescription(e.target.value)}
262
259
  maxLength={DESCRIPTION_MAX_LEN}
@@ -278,13 +275,13 @@ export function OrgProfilePanel({
278
275
  {/* Logo URL */}
279
276
  <div className="stg:space-y-1">
280
277
  <label
281
- htmlFor="stgm-org-profile-logo"
278
+ htmlFor={`${baseId}-logo`}
282
279
  className="stg:text-xs stg:font-medium stg:text-foreground"
283
280
  >
284
281
  Logo URL
285
282
  </label>
286
283
  <input
287
- id="stgm-org-profile-logo"
284
+ id={`${baseId}-logo`}
288
285
  type="url"
289
286
  value={logoUrl}
290
287
  onChange={(e) => setLogoUrl(e.target.value)}
@@ -323,7 +320,7 @@ export function OrgProfilePanel({
323
320
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
324
321
  )}
325
322
  >
326
- {isUpdating && <SpinnerIcon />}
323
+ {isUpdating && <SpinnerIcon size={12} />}
327
324
  Save changes
328
325
  </button>
329
326
 
@@ -453,14 +450,7 @@ function ReadOnlyField({
453
450
  value: string;
454
451
  mono?: boolean;
455
452
  }) {
456
- const [copied, setCopied] = useState(false);
457
-
458
- const handleCopy = useCallback(() => {
459
- navigator.clipboard.writeText(value).then(() => {
460
- setCopied(true);
461
- setTimeout(() => setCopied(false), 1500);
462
- });
463
- }, [value]);
453
+ const { copy, copied } = useCopyFeedback();
464
454
 
465
455
  if (!value) return null;
466
456
 
@@ -480,7 +470,7 @@ function ReadOnlyField({
480
470
  </span>
481
471
  <button
482
472
  type="button"
483
- onClick={handleCopy}
473
+ onClick={() => void copy(value)}
484
474
  className={cn(
485
475
  "stg:rounded stg:px-1.5 stg:py-0.5 stg:text-[0.6rem]",
486
476
  "stg:text-muted-foreground stg:hover:text-foreground stg:hover:bg-accent-hover",
@@ -525,24 +515,3 @@ function LogoPreview({ url }: { url: string }) {
525
515
  );
526
516
  }
527
517
 
528
- // ---------------------------------------------------------------------------
529
- // SpinnerIcon
530
- // ---------------------------------------------------------------------------
531
-
532
- function SpinnerIcon() {
533
- return (
534
- <svg
535
- width="12"
536
- height="12"
537
- viewBox="0 0 16 16"
538
- fill="none"
539
- stroke="currentColor"
540
- strokeWidth="2"
541
- strokeLinecap="round"
542
- className="stg:animate-spin"
543
- aria-hidden="true"
544
- >
545
- <path d="M8 2a6 6 0 1 0 6 6" />
546
- </svg>
547
- );
548
- }
@@ -1,16 +1,12 @@
1
1
  "use client";
2
2
 
3
- import {
4
- useCallback,
5
- useState,
6
- type FormEvent,
7
- type KeyboardEvent,
8
- } from "react";
3
+ import { type FormEvent, type KeyboardEvent, useCallback, useId, useState } from "react";
9
4
  import { cn } from "@stigmer/theme";
10
5
  import { getUserMessage } from "@stigmer/sdk";
11
6
  import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
12
7
  import type { PlatformClientCreateResponse } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/io_pb";
13
8
  import { useCreatePlatformClient } from "./useCreatePlatformClient.js";
9
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
14
10
 
15
11
  /** Props for {@link CreatePlatformClientForm}. */
16
12
  export interface CreatePlatformClientFormProps {
@@ -58,6 +54,7 @@ export function CreatePlatformClientForm({
58
54
  onCancel,
59
55
  className,
60
56
  }: CreatePlatformClientFormProps) {
57
+ const baseId = useId();
61
58
  const { create, isCreating, error, clearError } =
62
59
  useCreatePlatformClient();
63
60
 
@@ -160,7 +157,7 @@ export function CreatePlatformClientForm({
160
157
  return (
161
158
  <form onSubmit={handleSubmit} className={cn("stg:space-y-3", className)}>
162
159
  <FormField
163
- id="stgm-pc-name"
160
+ id={`${baseId}-name`}
164
161
  label="Name"
165
162
  value={name}
166
163
  onChange={setName}
@@ -183,13 +180,13 @@ export function CreatePlatformClientForm({
183
180
  {!neverExpires && (
184
181
  <div className="stg:space-y-1">
185
182
  <label
186
- htmlFor="stgm-pc-expires-at"
183
+ htmlFor={`${baseId}-expires-at`}
187
184
  className="stg:text-xs stg:font-medium stg:text-foreground"
188
185
  >
189
186
  Expires at
190
187
  </label>
191
188
  <input
192
- id="stgm-pc-expires-at"
189
+ id={`${baseId}-expires-at`}
193
190
  type="datetime-local"
194
191
  value={expiresAt}
195
192
  onChange={(e) => setExpiresAt(e.target.value)}
@@ -234,13 +231,13 @@ export function CreatePlatformClientForm({
234
231
  {autoGrant && (
235
232
  <div className="stg:space-y-1">
236
233
  <label
237
- htmlFor="stgm-pc-grant-role"
234
+ htmlFor={`${baseId}-grant-role`}
238
235
  className="stg:text-xs stg:font-medium stg:text-foreground"
239
236
  >
240
237
  Auto-grant role
241
238
  </label>
242
239
  <select
243
- id="stgm-pc-grant-role"
240
+ id={`${baseId}-grant-role`}
244
241
  value={String(autoGrantRole)}
245
242
  onChange={(e) =>
246
243
  setAutoGrantRole(Number(e.target.value) as IamRole)
@@ -348,7 +345,7 @@ export function CreatePlatformClientForm({
348
345
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
349
346
  )}
350
347
  >
351
- {isCreating && <SpinnerIcon />}
348
+ {isCreating && <SpinnerIcon size={12} />}
352
349
  Create platform client
353
350
  </button>
354
351
 
@@ -500,20 +497,3 @@ function XIcon() {
500
497
  );
501
498
  }
502
499
 
503
- function SpinnerIcon() {
504
- return (
505
- <svg
506
- width="12"
507
- height="12"
508
- viewBox="0 0 16 16"
509
- fill="none"
510
- stroke="currentColor"
511
- strokeWidth="2"
512
- strokeLinecap="round"
513
- className="stg:animate-spin"
514
- aria-hidden="true"
515
- >
516
- <path d="M8 2a6 6 0 1 0 6 6" />
517
- </svg>
518
- );
519
- }
@@ -1,11 +1,6 @@
1
1
  "use client";
2
2
 
3
- import {
4
- useCallback,
5
- useState,
6
- type FormEvent,
7
- type KeyboardEvent,
8
- } from "react";
3
+ import { type FormEvent, type KeyboardEvent, useCallback, useId, useState } from "react";
9
4
  import { cn } from "@stigmer/theme";
10
5
  import { getUserMessage } from "@stigmer/sdk";
11
6
  import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
@@ -15,6 +10,7 @@ import type { PlatformClientCreateResponse } from "@stigmer/protos/ai/stigmer/ia
15
10
  import { useUpdatePlatformClient } from "./useUpdatePlatformClient.js";
16
11
  import { useRotatePlatformClientSecret } from "./useRotatePlatformClientSecret.js";
17
12
  import { useDeletePlatformClient } from "./useDeletePlatformClient.js";
13
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
18
14
 
19
15
  /** Props for {@link PlatformClientDetailPanel}. */
20
16
  export interface PlatformClientDetailPanelProps {
@@ -74,6 +70,7 @@ export function PlatformClientDetailPanel({
74
70
  onBack,
75
71
  className,
76
72
  }: PlatformClientDetailPanelProps) {
73
+ const baseId = useId();
77
74
  const spec = platformClient.spec;
78
75
  const meta = platformClient.metadata;
79
76
 
@@ -318,13 +315,13 @@ export function PlatformClientDetailPanel({
318
315
  {!neverExpires && (
319
316
  <div className="stg:space-y-1">
320
317
  <label
321
- htmlFor="stgm-pc-edit-expires-at"
318
+ htmlFor={`${baseId}-expires-at`}
322
319
  className="stg:text-xs stg:font-medium stg:text-foreground"
323
320
  >
324
321
  Expires at
325
322
  </label>
326
323
  <input
327
- id="stgm-pc-edit-expires-at"
324
+ id={`${baseId}-expires-at`}
328
325
  type="datetime-local"
329
326
  value={expiresAt}
330
327
  onChange={(e) => setExpiresAt(e.target.value)}
@@ -365,13 +362,13 @@ export function PlatformClientDetailPanel({
365
362
  {autoGrant && (
366
363
  <div className="stg:space-y-1">
367
364
  <label
368
- htmlFor="stgm-pc-edit-grant-role"
365
+ htmlFor={`${baseId}-grant-role`}
369
366
  className="stg:text-xs stg:font-medium stg:text-foreground"
370
367
  >
371
368
  Auto-grant role
372
369
  </label>
373
370
  <select
374
- id="stgm-pc-edit-grant-role"
371
+ id={`${baseId}-grant-role`}
375
372
  value={String(autoGrantRole)}
376
373
  onChange={(e) =>
377
374
  setAutoGrantRole(
@@ -478,7 +475,7 @@ export function PlatformClientDetailPanel({
478
475
  "stg:disabled:pointer-events-none stg:disabled:opacity-40",
479
476
  )}
480
477
  >
481
- {isUpdating && <SpinnerIcon />}
478
+ {isUpdating && <SpinnerIcon size={12} />}
482
479
  Save changes
483
480
  </button>
484
481
  <button
@@ -520,7 +517,7 @@ export function PlatformClientDetailPanel({
520
517
  "stg:disabled:pointer-events-none stg:disabled:opacity-50",
521
518
  )}
522
519
  >
523
- {isRotating && <SpinnerIcon />}
520
+ {isRotating && <SpinnerIcon size={12} />}
524
521
  Rotate
525
522
  </button>
526
523
  <button
@@ -587,7 +584,7 @@ export function PlatformClientDetailPanel({
587
584
  "stg:disabled:pointer-events-none stg:disabled:opacity-50",
588
585
  )}
589
586
  >
590
- {isDeleting && <SpinnerIcon />}
587
+ {isDeleting && <SpinnerIcon size={12} />}
591
588
  Delete
592
589
  </button>
593
590
  <button
@@ -879,20 +876,3 @@ function ArrowLeftIcon() {
879
876
  );
880
877
  }
881
878
 
882
- function SpinnerIcon() {
883
- return (
884
- <svg
885
- width="12"
886
- height="12"
887
- viewBox="0 0 16 16"
888
- fill="none"
889
- stroke="currentColor"
890
- strokeWidth="2"
891
- strokeLinecap="round"
892
- className="stg:animate-spin"
893
- aria-hidden="true"
894
- >
895
- <path d="M8 2a6 6 0 1 0 6 6" />
896
- </svg>
897
- );
898
- }
@@ -8,6 +8,7 @@ import type { PlatformClient } from "@stigmer/protos/ai/stigmer/iam/platformclie
8
8
  import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js";
9
9
  import { usePlatformClientList } from "./usePlatformClientList.js";
10
10
  import { useDeletePlatformClient } from "./useDeletePlatformClient.js";
11
+ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
11
12
 
12
13
  /** Props for {@link PlatformClientListPanel}. */
13
14
  export interface PlatformClientListPanelProps {
@@ -200,7 +201,7 @@ function PlatformClientRow({
200
201
  "stg:disabled:pointer-events-none stg:disabled:opacity-50",
201
202
  )}
202
203
  >
203
- {isDeleting && <SpinnerIcon />}
204
+ {isDeleting && <SpinnerIcon size={12} />}
204
205
  Delete
205
206
  </button>
206
207
  <button
@@ -411,20 +412,3 @@ function TrashIcon() {
411
412
  );
412
413
  }
413
414
 
414
- function SpinnerIcon() {
415
- return (
416
- <svg
417
- width="12"
418
- height="12"
419
- viewBox="0 0 16 16"
420
- fill="none"
421
- stroke="currentColor"
422
- strokeWidth="2"
423
- strokeLinecap="round"
424
- className="stg:animate-spin"
425
- aria-hidden="true"
426
- >
427
- <path d="M8 2a6 6 0 1 0 6 6" />
428
- </svg>
429
- );
430
- }