@stigmer/react 3.40.1 → 3.41.1-dev.20261003094357.g39d6aa748646

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 (707) hide show
  1. package/README.md +2 -1
  2. package/access/ManageAccessButton.d.ts +1 -1
  3. package/access/ManageAccessButton.js +1 -1
  4. package/access/ManageAccessDialog.d.ts +1 -1
  5. package/access/ManageAccessDialog.js +2 -2
  6. package/access/ManageAccessDialog.js.map +1 -1
  7. package/access/types.d.ts +1 -1
  8. package/agent/AgentDetailView.d.ts.map +1 -1
  9. package/agent/AgentDetailView.js +2 -1
  10. package/agent/AgentDetailView.js.map +1 -1
  11. package/api-key/ApiKeyListPanel.d.ts.map +1 -1
  12. package/api-key/ApiKeyListPanel.js +2 -1
  13. package/api-key/ApiKeyListPanel.js.map +1 -1
  14. package/attachment/AttachmentImageLightbox.d.ts.map +1 -1
  15. package/attachment/AttachmentImageLightbox.js.map +1 -1
  16. package/billing/AutoRechargeCard.d.ts +3 -3
  17. package/billing/AutoRechargeCard.d.ts.map +1 -1
  18. package/billing/AutoRechargeCard.js +4 -4
  19. package/billing/AutoRechargeCard.js.map +1 -1
  20. package/billing/BillingSection.d.ts.map +1 -1
  21. package/billing/BillingSection.js +7 -6
  22. package/billing/BillingSection.js.map +1 -1
  23. package/billing/ChangePlanDialog.d.ts.map +1 -1
  24. package/billing/ChangePlanDialog.js +13 -1
  25. package/billing/ChangePlanDialog.js.map +1 -1
  26. package/billing/CreditLedgerTable.d.ts +3 -3
  27. package/billing/CreditLedgerTable.d.ts.map +1 -1
  28. package/billing/CreditLedgerTable.js +3 -3
  29. package/billing/CreditLedgerTable.js.map +1 -1
  30. package/billing/CreditPackGrid.d.ts +1 -1
  31. package/billing/CreditPackGrid.js +1 -1
  32. package/billing/PaymentMethodCard.d.ts +1 -1
  33. package/billing/PaymentMethodCard.js +1 -1
  34. package/billing/PlanSection.d.ts +3 -3
  35. package/billing/PlanSection.d.ts.map +1 -1
  36. package/billing/PlanSection.js +4 -3
  37. package/billing/PlanSection.js.map +1 -1
  38. package/billing/ProviderKeysSection.d.ts +33 -0
  39. package/billing/ProviderKeysSection.d.ts.map +1 -0
  40. package/billing/ProviderKeysSection.js +143 -0
  41. package/billing/ProviderKeysSection.js.map +1 -0
  42. package/billing/UpgradeNotice.d.ts.map +1 -1
  43. package/billing/UpgradeNotice.js +1 -0
  44. package/billing/UpgradeNotice.js.map +1 -1
  45. package/billing/index.d.ts +4 -0
  46. package/billing/index.d.ts.map +1 -1
  47. package/billing/index.js +2 -0
  48. package/billing/index.js.map +1 -1
  49. package/billing/plan-features.d.ts +3 -2
  50. package/billing/plan-features.d.ts.map +1 -1
  51. package/billing/plan-features.js +5 -4
  52. package/billing/plan-features.js.map +1 -1
  53. package/billing/useBillingAccount.d.ts +4 -4
  54. package/billing/useBillingAccount.d.ts.map +1 -1
  55. package/billing/useBillingAccount.js +7 -7
  56. package/billing/useBillingAccount.js.map +1 -1
  57. package/billing/useBillingUsageReport.d.ts +4 -4
  58. package/billing/useBillingUsageReport.d.ts.map +1 -1
  59. package/billing/useBillingUsageReport.js +7 -7
  60. package/billing/useBillingUsageReport.js.map +1 -1
  61. package/billing/useChangePlan.d.ts +2 -2
  62. package/billing/useChangePlan.d.ts.map +1 -1
  63. package/billing/useChangePlan.js +4 -4
  64. package/billing/useChangePlan.js.map +1 -1
  65. package/billing/useCreateBillingPortalSession.d.ts +2 -2
  66. package/billing/useCreateBillingPortalSession.d.ts.map +1 -1
  67. package/billing/useCreateBillingPortalSession.js +3 -3
  68. package/billing/useCreateBillingPortalSession.js.map +1 -1
  69. package/billing/useCreateCheckoutSession.d.ts +2 -2
  70. package/billing/useCreateCheckoutSession.d.ts.map +1 -1
  71. package/billing/useCreateCheckoutSession.js +2 -2
  72. package/billing/useCreateCheckoutSession.js.map +1 -1
  73. package/billing/useCreatePaymentMethodSetupSession.d.ts +1 -1
  74. package/billing/useCreatePaymentMethodSetupSession.d.ts.map +1 -1
  75. package/billing/useCreatePaymentMethodSetupSession.js +2 -2
  76. package/billing/useCreatePaymentMethodSetupSession.js.map +1 -1
  77. package/billing/useCreditLedger.d.ts +4 -4
  78. package/billing/useCreditLedger.d.ts.map +1 -1
  79. package/billing/useCreditLedger.js +7 -7
  80. package/billing/useCreditLedger.js.map +1 -1
  81. package/billing/useCustomerModelPricing.d.ts +4 -4
  82. package/billing/useCustomerModelPricing.d.ts.map +1 -1
  83. package/billing/useCustomerModelPricing.js +6 -6
  84. package/billing/useCustomerModelPricing.js.map +1 -1
  85. package/billing/useEntitlements.d.ts +2 -2
  86. package/billing/useEntitlements.d.ts.map +1 -1
  87. package/billing/useEntitlements.js +4 -4
  88. package/billing/useEntitlements.js.map +1 -1
  89. package/billing/usePeriodEstimate.d.ts +1 -1
  90. package/billing/usePeriodEstimate.d.ts.map +1 -1
  91. package/billing/usePeriodEstimate.js +3 -3
  92. package/billing/usePeriodEstimate.js.map +1 -1
  93. package/billing/useProviderKeys.d.ts +67 -0
  94. package/billing/useProviderKeys.d.ts.map +1 -0
  95. package/billing/useProviderKeys.js +61 -0
  96. package/billing/useProviderKeys.js.map +1 -0
  97. package/billing/useSetAutoRechargeConfig.d.ts +2 -2
  98. package/billing/useSetAutoRechargeConfig.d.ts.map +1 -1
  99. package/billing/useSetAutoRechargeConfig.js +2 -2
  100. package/billing/useSetAutoRechargeConfig.js.map +1 -1
  101. package/billing/useSubscription.d.ts +3 -3
  102. package/billing/useSubscription.d.ts.map +1 -1
  103. package/billing/useSubscription.js +7 -7
  104. package/billing/useSubscription.js.map +1 -1
  105. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  106. package/channel/AgentChannelsPanel.js +11 -9
  107. package/channel/AgentChannelsPanel.js.map +1 -1
  108. package/channel/connect/ServingAppSection.js +1 -1
  109. package/channel/connect/ServingAppSection.js.map +1 -1
  110. package/channel-app/ChannelAppDetailPanel.d.ts +2 -2
  111. package/channel-app/ChannelAppDetailPanel.js +17 -10
  112. package/channel-app/ChannelAppDetailPanel.js.map +1 -1
  113. package/channel-app/ChannelAppListPanel.d.ts +2 -2
  114. package/channel-app/ChannelAppListPanel.d.ts.map +1 -1
  115. package/channel-app/ChannelAppListPanel.js +2 -1
  116. package/channel-app/ChannelAppListPanel.js.map +1 -1
  117. package/channel-app/CreateChannelAppForm.js +1 -1
  118. package/channel-app/CreateChannelAppForm.js.map +1 -1
  119. package/channel-app/copy.d.ts +3 -3
  120. package/channel-app/copy.js +3 -3
  121. package/channel-app/internal.d.ts +9 -0
  122. package/channel-app/internal.d.ts.map +1 -1
  123. package/channel-app/internal.js +9 -0
  124. package/channel-app/internal.js.map +1 -1
  125. package/channel-app/slackAppSetup.d.ts +3 -24
  126. package/channel-app/slackAppSetup.d.ts.map +1 -1
  127. package/channel-app/slackAppSetup.js +6 -3
  128. package/channel-app/slackAppSetup.js.map +1 -1
  129. package/channel-app/whatsappAppSetup.d.ts +3 -27
  130. package/channel-app/whatsappAppSetup.d.ts.map +1 -1
  131. package/channel-app/whatsappAppSetup.js +5 -2
  132. package/channel-app/whatsappAppSetup.js.map +1 -1
  133. package/composer/SessionComposer.d.ts.map +1 -1
  134. package/composer/SessionComposer.js +5 -9
  135. package/composer/SessionComposer.js.map +1 -1
  136. package/cursor-accounts/CursorAccountEditor.js +3 -3
  137. package/cursor-accounts/CursorAccountEditor.js.map +1 -1
  138. package/cursor-accounts/CursorAccountsConsole.js +3 -3
  139. package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
  140. package/dashboard/OperationalDashboard.d.ts +1 -4
  141. package/dashboard/OperationalDashboard.d.ts.map +1 -1
  142. package/dashboard/OperationalDashboard.js +1 -3
  143. package/dashboard/OperationalDashboard.js.map +1 -1
  144. package/dashboard/useDashboardSummary.d.ts +1 -3
  145. package/dashboard/useDashboardSummary.d.ts.map +1 -1
  146. package/dashboard/useDashboardSummary.js +1 -1
  147. package/dashboard/useDashboardSummary.js.map +1 -1
  148. package/environment/EnvironmentListPanel.d.ts.map +1 -1
  149. package/environment/EnvironmentListPanel.js +2 -1
  150. package/environment/EnvironmentListPanel.js.map +1 -1
  151. package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
  152. package/environment/EnvironmentVariableEditor.js +3 -2
  153. package/environment/EnvironmentVariableEditor.js.map +1 -1
  154. package/environment/index.d.ts +1 -1
  155. package/environment/index.d.ts.map +1 -1
  156. package/environment/index.js +1 -1
  157. package/environment/index.js.map +1 -1
  158. package/environment/systemEnvVars.d.ts +4 -63
  159. package/environment/systemEnvVars.d.ts.map +1 -1
  160. package/environment/systemEnvVars.js +21 -113
  161. package/environment/systemEnvVars.js.map +1 -1
  162. package/execution/ArtifactFileContent.d.ts.map +1 -1
  163. package/execution/ArtifactFileContent.js +2 -1
  164. package/execution/ArtifactFileContent.js.map +1 -1
  165. package/execution/McpToolDetail.d.ts.map +1 -1
  166. package/execution/McpToolDetail.js +2 -1
  167. package/execution/McpToolDetail.js.map +1 -1
  168. package/execution/RecalledMemoriesCard.js +1 -1
  169. package/execution/ResultView.d.ts.map +1 -1
  170. package/execution/ResultView.js +2 -1
  171. package/execution/ResultView.js.map +1 -1
  172. package/execution/TerminalSession.js +1 -1
  173. package/execution/TerminalSession.js.map +1 -1
  174. package/execution/ThreadSkeleton.d.ts.map +1 -1
  175. package/execution/ThreadSkeleton.js +2 -1
  176. package/execution/ThreadSkeleton.js.map +1 -1
  177. package/execution/file-path-resolver.d.ts.map +1 -1
  178. package/execution/file-path-resolver.js +3 -2
  179. package/execution/file-path-resolver.js.map +1 -1
  180. package/execution/sandbox-path-normalizer.d.ts +0 -11
  181. package/execution/sandbox-path-normalizer.d.ts.map +1 -1
  182. package/execution/sandbox-path-normalizer.js +2 -1
  183. package/execution/sandbox-path-normalizer.js.map +1 -1
  184. package/github/parseGitUrl.d.ts.map +1 -1
  185. package/github/parseGitUrl.js +16 -4
  186. package/github/parseGitUrl.js.map +1 -1
  187. package/iam-policy/GrantAccessForm.d.ts +3 -3
  188. package/iam-policy/GrantAccessForm.d.ts.map +1 -1
  189. package/iam-policy/GrantAccessForm.js +3 -3
  190. package/iam-policy/GrantAccessForm.js.map +1 -1
  191. package/iam-policy/OrgMembersPanel.d.ts +3 -3
  192. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  193. package/iam-policy/OrgMembersPanel.js +5 -4
  194. package/iam-policy/OrgMembersPanel.js.map +1 -1
  195. package/iam-policy/PeopleWithAccess.d.ts +2 -2
  196. package/iam-policy/PeopleWithAccess.d.ts.map +1 -1
  197. package/iam-policy/PeopleWithAccess.js +2 -2
  198. package/iam-policy/PeopleWithAccess.js.map +1 -1
  199. package/iam-policy/PrincipalPicker.d.ts +2 -2
  200. package/iam-policy/PrincipalPicker.d.ts.map +1 -1
  201. package/iam-policy/PrincipalPicker.js +2 -2
  202. package/iam-policy/PrincipalPicker.js.map +1 -1
  203. package/iam-policy/SharePanel.d.ts +3 -3
  204. package/iam-policy/SharePanel.d.ts.map +1 -1
  205. package/iam-policy/SharePanel.js +3 -3
  206. package/iam-policy/SharePanel.js.map +1 -1
  207. package/iam-policy/useCheckPermission.d.ts +4 -1
  208. package/iam-policy/useCheckPermission.d.ts.map +1 -1
  209. package/iam-policy/useCheckPermission.js +4 -1
  210. package/iam-policy/useCheckPermission.js.map +1 -1
  211. package/iam-policy/useCreateIamPolicy.d.ts +1 -1
  212. package/iam-policy/useCreateIamPolicy.js +1 -1
  213. package/iam-policy/useDeleteIamPolicy.d.ts +1 -1
  214. package/iam-policy/useDeleteIamPolicy.js +1 -1
  215. package/iam-policy/useGrantableRoles.d.ts +1 -1
  216. package/iam-policy/useGrantableRoles.js +1 -1
  217. package/iam-policy/useGranteeCandidates.d.ts +3 -3
  218. package/iam-policy/useGranteeCandidates.d.ts.map +1 -1
  219. package/iam-policy/useGranteeCandidates.js +2 -2
  220. package/iam-policy/useGranteeCandidates.js.map +1 -1
  221. package/iam-policy/useOwnerAssignment.d.ts +2 -2
  222. package/iam-policy/useOwnerAssignment.d.ts.map +1 -1
  223. package/iam-policy/useOwnerAssignment.js +3 -3
  224. package/iam-policy/useOwnerAssignment.js.map +1 -1
  225. package/iam-policy/usePrincipalsCount.d.ts +4 -4
  226. package/iam-policy/usePrincipalsCount.d.ts.map +1 -1
  227. package/iam-policy/usePrincipalsCount.js +7 -7
  228. package/iam-policy/usePrincipalsCount.js.map +1 -1
  229. package/iam-policy/useResourceAccess.d.ts +1 -1
  230. package/iam-policy/useResourceAccess.js +1 -1
  231. package/iam-policy/useRevokeOrgAccess.d.ts +11 -9
  232. package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -1
  233. package/iam-policy/useRevokeOrgAccess.js +6 -6
  234. package/iam-policy/useRevokeOrgAccess.js.map +1 -1
  235. package/identity-account/AccountPreferencesPanel.d.ts +6 -0
  236. package/identity-account/AccountPreferencesPanel.d.ts.map +1 -1
  237. package/identity-account/AccountPreferencesPanel.js +35 -3
  238. package/identity-account/AccountPreferencesPanel.js.map +1 -1
  239. package/identity-account/useAccountExecutionDefaults.d.ts +1 -1
  240. package/identity-account/useAccountExecutionDefaults.d.ts.map +1 -1
  241. package/identity-account/useAccountExecutionDefaults.js +2 -3
  242. package/identity-account/useAccountExecutionDefaults.js.map +1 -1
  243. package/identity-provider/IdentityProviderDetailPanel.js +4 -4
  244. package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
  245. package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
  246. package/identity-provider/IdentityProviderListPanel.js +2 -1
  247. package/identity-provider/IdentityProviderListPanel.js.map +1 -1
  248. package/identity-provider/IdentityProviderWizard.js +1 -1
  249. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  250. package/identity-provider/SsoLoginPrompt.js +2 -1
  251. package/identity-provider/SsoLoginPrompt.js.map +1 -1
  252. package/identity-provider/useIdentityProviderList.d.ts +2 -2
  253. package/identity-provider/useIdentityProviderList.js +2 -2
  254. package/index.d.ts +4 -4
  255. package/index.d.ts.map +1 -1
  256. package/index.js +4 -4
  257. package/index.js.map +1 -1
  258. package/inline-edit/InlineEditImage.d.ts +4 -0
  259. package/inline-edit/InlineEditImage.d.ts.map +1 -1
  260. package/inline-edit/InlineEditImage.js +12 -11
  261. package/inline-edit/InlineEditImage.js.map +1 -1
  262. package/inline-edit/InlineEditText.d.ts +4 -0
  263. package/inline-edit/InlineEditText.d.ts.map +1 -1
  264. package/inline-edit/InlineEditText.js +12 -11
  265. package/inline-edit/InlineEditText.js.map +1 -1
  266. package/inline-edit/InlineEditTextarea.d.ts +4 -0
  267. package/inline-edit/InlineEditTextarea.d.ts.map +1 -1
  268. package/inline-edit/InlineEditTextarea.js +11 -16
  269. package/inline-edit/InlineEditTextarea.js.map +1 -1
  270. package/inline-edit/useInlineDraft.d.ts +26 -0
  271. package/inline-edit/useInlineDraft.d.ts.map +1 -0
  272. package/inline-edit/useInlineDraft.js +61 -0
  273. package/inline-edit/useInlineDraft.js.map +1 -0
  274. package/internal/DialogShell.d.ts +21 -0
  275. package/internal/DialogShell.d.ts.map +1 -1
  276. package/internal/DialogShell.js +51 -4
  277. package/internal/DialogShell.js.map +1 -1
  278. package/internal/LoadingRegion.d.ts +35 -0
  279. package/internal/LoadingRegion.d.ts.map +1 -0
  280. package/internal/LoadingRegion.js +33 -0
  281. package/internal/LoadingRegion.js.map +1 -0
  282. package/internal/UnknownPublicAddressNotice.d.ts +20 -0
  283. package/internal/UnknownPublicAddressNotice.d.ts.map +1 -0
  284. package/internal/UnknownPublicAddressNotice.js +19 -0
  285. package/internal/UnknownPublicAddressNotice.js.map +1 -0
  286. package/internal/features.js +2 -2
  287. package/internal/features.js.map +1 -1
  288. package/internal/markdown-components.d.ts.map +1 -1
  289. package/internal/markdown-components.js +18 -4
  290. package/internal/markdown-components.js.map +1 -1
  291. package/internal/trim.d.ts +7 -0
  292. package/internal/trim.d.ts.map +1 -0
  293. package/internal/trim.js +12 -0
  294. package/internal/trim.js.map +1 -0
  295. package/invitation/InvitationManager.d.ts.map +1 -1
  296. package/invitation/InvitationManager.js +2 -1
  297. package/invitation/InvitationManager.js.map +1 -1
  298. package/invitation/InvitationRedemption.d.ts.map +1 -1
  299. package/invitation/InvitationRedemption.js +5 -4
  300. package/invitation/InvitationRedemption.js.map +1 -1
  301. package/invitation/useInvitationPreview.d.ts +1 -1
  302. package/invitation/useInvitationPreview.js +1 -1
  303. package/library/InstanceVisibilitySelector.d.ts +1 -1
  304. package/library/InstanceVisibilitySelector.d.ts.map +1 -1
  305. package/library/ResourceVisibilityControl.d.ts +6 -3
  306. package/library/ResourceVisibilityControl.d.ts.map +1 -1
  307. package/library/ResourceVisibilityControl.js +7 -4
  308. package/library/ResourceVisibilityControl.js.map +1 -1
  309. package/library/VisibilitySelector.d.ts +2 -2
  310. package/library/VisibilitySelector.d.ts.map +1 -1
  311. package/library/VisibilitySelector.js +1 -1
  312. package/licenses/LicenseDetail.d.ts.map +1 -1
  313. package/licenses/LicenseDetail.js +3 -3
  314. package/licenses/LicenseDetail.js.map +1 -1
  315. package/licenses/LicenseIssueForm.js +7 -7
  316. package/licenses/LicenseIssueForm.js.map +1 -1
  317. package/licenses/license-draft.d.ts +1 -1
  318. package/licenses/license-draft.d.ts.map +1 -1
  319. package/licenses/license-draft.js +3 -3
  320. package/licenses/license-draft.js.map +1 -1
  321. package/licenses/license-format.d.ts +7 -5
  322. package/licenses/license-format.d.ts.map +1 -1
  323. package/licenses/license-format.js +2 -4
  324. package/licenses/license-format.js.map +1 -1
  325. package/mcp-server/McpServerConnectDialog.js +4 -5
  326. package/mcp-server/McpServerConnectDialog.js.map +1 -1
  327. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  328. package/mcp-server/McpServerDetailView.js +5 -7
  329. package/mcp-server/McpServerDetailView.js.map +1 -1
  330. package/mcp-server/McpServerPicker.d.ts.map +1 -1
  331. package/mcp-server/McpServerPicker.js +2 -6
  332. package/mcp-server/McpServerPicker.js.map +1 -1
  333. package/mcp-server/McpToolSelector.js +1 -1
  334. package/mcp-server/McpToolSelector.js.map +1 -1
  335. package/mcp-server/useMcpServerConnect.d.ts +14 -25
  336. package/mcp-server/useMcpServerConnect.d.ts.map +1 -1
  337. package/mcp-server/useMcpServerConnect.js +7 -19
  338. package/mcp-server/useMcpServerConnect.js.map +1 -1
  339. package/mcp-server/useMcpServerOAuthConnect.d.ts +1 -3
  340. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  341. package/mcp-server/useMcpServerOAuthConnect.js +6 -19
  342. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  343. package/memory/MemoryListPanel.d.ts.map +1 -1
  344. package/memory/MemoryListPanel.js +2 -1
  345. package/memory/MemoryListPanel.js.map +1 -1
  346. package/models/HarnessSelector.d.ts.map +1 -1
  347. package/models/HarnessSelector.js +1 -2
  348. package/models/HarnessSelector.js.map +1 -1
  349. package/models/ModelSelector.d.ts +1 -1
  350. package/models/ModelSelector.d.ts.map +1 -1
  351. package/models/ModelSelector.js +1 -7
  352. package/models/ModelSelector.js.map +1 -1
  353. package/models/harness.d.ts +10 -6
  354. package/models/harness.d.ts.map +1 -1
  355. package/models/harness.js +35 -28
  356. package/models/harness.js.map +1 -1
  357. package/models/index.d.ts +1 -1
  358. package/models/index.d.ts.map +1 -1
  359. package/models/index.js +1 -1
  360. package/models/index.js.map +1 -1
  361. package/oauth-app/OAuthAppListPanel.d.ts.map +1 -1
  362. package/oauth-app/OAuthAppListPanel.js +2 -1
  363. package/oauth-app/OAuthAppListPanel.js.map +1 -1
  364. package/organization/OrgPreferencesPanel.d.ts +3 -3
  365. package/organization/OrgPreferencesPanel.d.ts.map +1 -1
  366. package/organization/OrgPreferencesPanel.js +19 -6
  367. package/organization/OrgPreferencesPanel.js.map +1 -1
  368. package/organization/OrgProfilePanel.d.ts +3 -3
  369. package/organization/OrgProfilePanel.d.ts.map +1 -1
  370. package/organization/OrgProfilePanel.js +8 -7
  371. package/organization/OrgProfilePanel.js.map +1 -1
  372. package/organization/index.d.ts +1 -0
  373. package/organization/index.d.ts.map +1 -1
  374. package/organization/index.js +1 -0
  375. package/organization/index.js.map +1 -1
  376. package/organization/useFollowSessionOrganization.d.ts +9 -0
  377. package/organization/useFollowSessionOrganization.d.ts.map +1 -0
  378. package/organization/useFollowSessionOrganization.js +52 -0
  379. package/organization/useFollowSessionOrganization.js.map +1 -0
  380. package/package.json +5 -5
  381. package/plan-catalog/plan-draft.js +3 -3
  382. package/plan-catalog/plan-draft.js.map +1 -1
  383. package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
  384. package/platform-client/PlatformClientListPanel.js +2 -1
  385. package/platform-client/PlatformClientListPanel.js.map +1 -1
  386. package/plugin/PluginDetailView.d.ts.map +1 -1
  387. package/plugin/PluginDetailView.js +2 -1
  388. package/plugin/PluginDetailView.js.map +1 -1
  389. package/plugin/useMcpServerReadiness.js +2 -2
  390. package/plugin/useMcpServerReadiness.js.map +1 -1
  391. package/portal-container.d.ts +8 -0
  392. package/portal-container.d.ts.map +1 -1
  393. package/portal-container.js +8 -0
  394. package/portal-container.js.map +1 -1
  395. package/provider-standing/ProviderStandingConsole.js +1 -1
  396. package/provider.d.ts +31 -2
  397. package/provider.d.ts.map +1 -1
  398. package/provider.js +7 -3
  399. package/provider.js.map +1 -1
  400. package/public-base-url-context.d.ts +35 -0
  401. package/public-base-url-context.d.ts.map +1 -0
  402. package/public-base-url-context.js +63 -0
  403. package/public-base-url-context.js.map +1 -0
  404. package/resource-workbench/components/SelectionCheckbox.js +1 -1
  405. package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
  406. package/schedule/ScheduleDetailView.d.ts.map +1 -1
  407. package/schedule/ScheduleDetailView.js +2 -1
  408. package/schedule/ScheduleDetailView.js.map +1 -1
  409. package/session/SessionViewer.d.ts +7 -2
  410. package/session/SessionViewer.d.ts.map +1 -1
  411. package/session/SessionViewer.js +7 -2
  412. package/session/SessionViewer.js.map +1 -1
  413. package/session/useLocalSessionWorker.d.ts +19 -3
  414. package/session/useLocalSessionWorker.d.ts.map +1 -1
  415. package/session/useLocalSessionWorker.js +37 -4
  416. package/session/useLocalSessionWorker.js.map +1 -1
  417. package/session/useSessionConversation.d.ts +10 -1
  418. package/session/useSessionConversation.d.ts.map +1 -1
  419. package/session/useSessionConversation.js +5 -3
  420. package/session/useSessionConversation.js.map +1 -1
  421. package/settings/ChannelAppsSection.d.ts +4 -4
  422. package/settings/ChannelAppsSection.js +4 -4
  423. package/settings/EnvironmentsSection.d.ts.map +1 -1
  424. package/settings/EnvironmentsSection.js +2 -1
  425. package/settings/EnvironmentsSection.js.map +1 -1
  426. package/settings/MembersSection.js +2 -2
  427. package/settings/MembersSection.js.map +1 -1
  428. package/settings/OrgPreferencesSection.js +1 -1
  429. package/settings/OrgPreferencesSection.js.map +1 -1
  430. package/settings/OrgProfileSection.js +1 -1
  431. package/settings/OrgProfileSection.js.map +1 -1
  432. package/settings/ProviderKeysSection.d.ts +3 -0
  433. package/settings/ProviderKeysSection.d.ts.map +1 -0
  434. package/settings/ProviderKeysSection.js +3 -0
  435. package/settings/ProviderKeysSection.js.map +1 -0
  436. package/settings/TeamsSection.js +1 -1
  437. package/settings/TeamsSection.js.map +1 -1
  438. package/settings/UsageSection.js +1 -1
  439. package/settings/UsageSection.js.map +1 -1
  440. package/settings/index.d.ts +2 -0
  441. package/settings/index.d.ts.map +1 -1
  442. package/settings/index.js +1 -0
  443. package/settings/index.js.map +1 -1
  444. package/settings/settings-nav.d.ts.map +1 -1
  445. package/settings/settings-nav.js +2 -1
  446. package/settings/settings-nav.js.map +1 -1
  447. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  448. package/sharing/ShareAgentDialog.js +14 -9
  449. package/sharing/ShareAgentDialog.js.map +1 -1
  450. package/sharing/SharedAgentChat.d.ts.map +1 -1
  451. package/sharing/SharedAgentChat.js +2 -1
  452. package/sharing/SharedAgentChat.js.map +1 -1
  453. package/sharing/useCanCreateAgentShare.d.ts +3 -1
  454. package/sharing/useCanCreateAgentShare.d.ts.map +1 -1
  455. package/sharing/useCanCreateAgentShare.js +5 -3
  456. package/sharing/useCanCreateAgentShare.js.map +1 -1
  457. package/sharing/useSaveAgentShare.d.ts +1 -1
  458. package/sharing/useSaveAgentShare.js +1 -1
  459. package/sidebar/WorkspaceSidebar.d.ts.map +1 -1
  460. package/sidebar/WorkspaceSidebar.js +2 -1
  461. package/sidebar/WorkspaceSidebar.js.map +1 -1
  462. package/skill/SkillDetailView.d.ts.map +1 -1
  463. package/skill/SkillDetailView.js +2 -1
  464. package/skill/SkillDetailView.js.map +1 -1
  465. package/skill/SkillDiffDialog.d.ts.map +1 -1
  466. package/skill/SkillDiffDialog.js +2 -1
  467. package/skill/SkillDiffDialog.js.map +1 -1
  468. package/skill/SkillFileBrowser.d.ts.map +1 -1
  469. package/skill/SkillFileBrowser.js +2 -1
  470. package/skill/SkillFileBrowser.js.map +1 -1
  471. package/src/access/ManageAccessButton.tsx +1 -1
  472. package/src/access/ManageAccessDialog.tsx +2 -2
  473. package/src/access/types.ts +1 -1
  474. package/src/agent/AgentDetailView.tsx +4 -4
  475. package/src/api-key/ApiKeyListPanel.tsx +4 -4
  476. package/src/attachment/AttachmentImageLightbox.tsx +3 -4
  477. package/src/billing/AutoRechargeCard.tsx +5 -5
  478. package/src/billing/BillingSection.tsx +10 -9
  479. package/src/billing/ChangePlanDialog.tsx +14 -2
  480. package/src/billing/CreditLedgerTable.tsx +4 -4
  481. package/src/billing/CreditPackGrid.tsx +1 -1
  482. package/src/billing/PaymentMethodCard.tsx +1 -1
  483. package/src/billing/PlanSection.tsx +6 -5
  484. package/src/billing/ProviderKeysSection.tsx +324 -0
  485. package/src/billing/UpgradeNotice.tsx +1 -0
  486. package/src/billing/index.ts +9 -0
  487. package/src/billing/plan-features.ts +5 -4
  488. package/src/billing/useBillingAccount.ts +7 -7
  489. package/src/billing/useBillingUsageReport.ts +7 -7
  490. package/src/billing/useChangePlan.ts +6 -6
  491. package/src/billing/useCreateBillingPortalSession.ts +4 -4
  492. package/src/billing/useCreateCheckoutSession.ts +3 -3
  493. package/src/billing/useCreatePaymentMethodSetupSession.ts +3 -3
  494. package/src/billing/useCreditLedger.ts +7 -7
  495. package/src/billing/useCustomerModelPricing.ts +7 -7
  496. package/src/billing/useEntitlements.ts +5 -5
  497. package/src/billing/usePeriodEstimate.ts +4 -4
  498. package/src/billing/useProviderKeys.ts +129 -0
  499. package/src/billing/useSetAutoRechargeConfig.ts +3 -3
  500. package/src/billing/useSubscription.ts +7 -7
  501. package/src/channel/AgentChannelsPanel.tsx +11 -9
  502. package/src/channel/connect/ServingAppSection.tsx +1 -1
  503. package/src/channel-app/ChannelAppDetailPanel.tsx +37 -20
  504. package/src/channel-app/ChannelAppListPanel.tsx +6 -6
  505. package/src/channel-app/CreateChannelAppForm.tsx +0 -1
  506. package/src/channel-app/copy.ts +3 -3
  507. package/src/channel-app/internal.tsx +21 -0
  508. package/src/channel-app/slackAppSetup.ts +6 -3
  509. package/src/channel-app/whatsappAppSetup.ts +5 -2
  510. package/src/composer/SessionComposer.tsx +5 -14
  511. package/src/cursor-accounts/CursorAccountEditor.tsx +3 -3
  512. package/src/cursor-accounts/CursorAccountsConsole.tsx +5 -5
  513. package/src/dashboard/OperationalDashboard.tsx +1 -6
  514. package/src/dashboard/useDashboardSummary.ts +2 -4
  515. package/src/environment/EnvironmentListPanel.tsx +4 -4
  516. package/src/environment/EnvironmentVariableEditor.tsx +5 -5
  517. package/src/environment/index.ts +1 -7
  518. package/src/environment/systemEnvVars.ts +21 -133
  519. package/src/execution/ArtifactFileContent.tsx +3 -2
  520. package/src/execution/McpToolDetail.tsx +3 -3
  521. package/src/execution/RecalledMemoriesCard.tsx +1 -1
  522. package/src/execution/ResultView.tsx +3 -3
  523. package/src/execution/TerminalSession.tsx +1 -1
  524. package/src/execution/ThreadSkeleton.tsx +4 -4
  525. package/src/execution/file-path-resolver.ts +3 -2
  526. package/src/execution/sandbox-path-normalizer.ts +2 -1
  527. package/src/github/parseGitUrl.ts +13 -4
  528. package/src/iam-policy/GrantAccessForm.tsx +4 -4
  529. package/src/iam-policy/OrgMembersPanel.tsx +10 -8
  530. package/src/iam-policy/PeopleWithAccess.tsx +3 -3
  531. package/src/iam-policy/PrincipalPicker.tsx +3 -3
  532. package/src/iam-policy/SharePanel.tsx +4 -4
  533. package/src/iam-policy/useCheckPermission.ts +4 -1
  534. package/src/iam-policy/useCreateIamPolicy.ts +1 -1
  535. package/src/iam-policy/useDeleteIamPolicy.ts +1 -1
  536. package/src/iam-policy/useGrantableRoles.ts +1 -1
  537. package/src/iam-policy/useGranteeCandidates.ts +3 -3
  538. package/src/iam-policy/useOwnerAssignment.ts +3 -3
  539. package/src/iam-policy/usePrincipalsCount.ts +7 -7
  540. package/src/iam-policy/useResourceAccess.ts +1 -1
  541. package/src/iam-policy/useRevokeOrgAccess.ts +13 -11
  542. package/src/identity-account/AccountPreferencesPanel.tsx +60 -13
  543. package/src/identity-account/useAccountExecutionDefaults.ts +2 -5
  544. package/src/identity-provider/IdentityProviderDetailPanel.tsx +3 -9
  545. package/src/identity-provider/IdentityProviderListPanel.tsx +4 -4
  546. package/src/identity-provider/IdentityProviderWizard.tsx +1 -1
  547. package/src/identity-provider/SsoLoginPrompt.tsx +6 -5
  548. package/src/identity-provider/useIdentityProviderList.ts +2 -2
  549. package/src/index.ts +10 -5
  550. package/src/inline-edit/InlineEditImage.tsx +13 -11
  551. package/src/inline-edit/InlineEditText.tsx +13 -11
  552. package/src/inline-edit/InlineEditTextarea.tsx +12 -16
  553. package/src/inline-edit/useInlineDraft.ts +85 -0
  554. package/src/internal/DialogShell.tsx +80 -3
  555. package/src/internal/LoadingRegion.tsx +46 -0
  556. package/src/internal/UnknownPublicAddressNotice.tsx +31 -0
  557. package/src/internal/features.ts +2 -2
  558. package/src/internal/loading-region-markup.json +71 -0
  559. package/src/internal/markdown-components.tsx +15 -4
  560. package/src/internal/trim.ts +10 -0
  561. package/src/invitation/InvitationManager.tsx +4 -4
  562. package/src/invitation/InvitationRedemption.tsx +7 -7
  563. package/src/invitation/useInvitationPreview.ts +1 -1
  564. package/src/library/InstanceVisibilitySelector.tsx +1 -1
  565. package/src/library/ResourceVisibilityControl.tsx +7 -4
  566. package/src/library/VisibilitySelector.tsx +2 -2
  567. package/src/licenses/LicenseDetail.tsx +8 -6
  568. package/src/licenses/LicenseIssueForm.tsx +7 -7
  569. package/src/licenses/license-draft.ts +4 -4
  570. package/src/licenses/license-format.ts +12 -8
  571. package/src/mcp-server/McpServerConnectDialog.tsx +4 -6
  572. package/src/mcp-server/McpServerDetailView.tsx +7 -10
  573. package/src/mcp-server/McpServerPicker.tsx +2 -12
  574. package/src/mcp-server/McpToolSelector.tsx +1 -1
  575. package/src/mcp-server/useMcpServerConnect.ts +14 -33
  576. package/src/mcp-server/useMcpServerOAuthConnect.ts +7 -23
  577. package/src/memory/MemoryListPanel.tsx +4 -4
  578. package/src/models/HarnessSelector.tsx +1 -3
  579. package/src/models/ModelSelector.tsx +2 -7
  580. package/src/models/harness.ts +41 -39
  581. package/src/models/index.ts +1 -1
  582. package/src/oauth-app/OAuthAppListPanel.tsx +4 -4
  583. package/src/organization/OrgPreferencesPanel.tsx +28 -10
  584. package/src/organization/OrgProfilePanel.tsx +12 -12
  585. package/src/organization/index.ts +1 -0
  586. package/src/organization/useFollowSessionOrganization.ts +54 -0
  587. package/src/plan-catalog/plan-draft.ts +3 -3
  588. package/src/platform-client/PlatformClientListPanel.tsx +4 -4
  589. package/src/plugin/PluginDetailView.tsx +3 -2
  590. package/src/plugin/useMcpServerReadiness.ts +2 -2
  591. package/src/portal-container.ts +8 -0
  592. package/src/provider-standing/ProviderStandingConsole.tsx +1 -1
  593. package/src/provider.tsx +60 -27
  594. package/src/public-base-url-context.ts +71 -0
  595. package/src/resource-workbench/components/SelectionCheckbox.tsx +1 -1
  596. package/src/schedule/ScheduleDetailView.tsx +4 -4
  597. package/src/session/SessionViewer.tsx +13 -3
  598. package/src/session/useLocalSessionWorker.ts +35 -4
  599. package/src/session/useSessionConversation.ts +14 -3
  600. package/src/settings/ChannelAppsSection.tsx +4 -4
  601. package/src/settings/EnvironmentsSection.tsx +3 -2
  602. package/src/settings/MembersSection.tsx +3 -3
  603. package/src/settings/OrgPreferencesSection.tsx +1 -1
  604. package/src/settings/OrgProfileSection.tsx +1 -1
  605. package/src/settings/ProviderKeysSection.tsx +4 -0
  606. package/src/settings/TeamsSection.tsx +1 -1
  607. package/src/settings/UsageSection.tsx +1 -1
  608. package/src/settings/index.ts +2 -0
  609. package/src/settings/settings-nav.ts +2 -0
  610. package/src/sharing/ShareAgentDialog.tsx +32 -15
  611. package/src/sharing/SharedAgentChat.tsx +4 -4
  612. package/src/sharing/useCanCreateAgentShare.ts +6 -4
  613. package/src/sharing/useSaveAgentShare.ts +1 -1
  614. package/src/sidebar/WorkspaceSidebar.tsx +3 -2
  615. package/src/skill/SkillDetailView.tsx +4 -4
  616. package/src/skill/SkillDiffDialog.tsx +4 -4
  617. package/src/skill/SkillFileBrowser.tsx +4 -4
  618. package/src/styles.css +14 -4
  619. package/src/team/TeamDetailPanel.tsx +3 -3
  620. package/src/team/TeamListPanel.tsx +3 -2
  621. package/src/team/TeamMembersPanel.tsx +3 -3
  622. package/src/usage/OrgUsagePanel.tsx +9 -9
  623. package/src/usage/useExportCSV.ts +9 -9
  624. package/src/usage/useOrgUsageReport.ts +7 -7
  625. package/src/version-history/VersionTimeline.tsx +4 -4
  626. package/src/workflow/WorkflowTaskApprovalSummary.tsx +14 -7
  627. package/src/workflow/WorkflowVersionDiffViewer.tsx +4 -4
  628. package/src/workflow/WorkflowVersionTimeline.tsx +4 -4
  629. package/src/workflow/inspector/tabs/BranchesTab.tsx +2 -2
  630. package/src/workflow/inspector/tabs/CatchTab.tsx +1 -1
  631. package/src/workflow/inspector/tabs/IterationTab.tsx +1 -1
  632. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +7 -6
  633. package/src/workflow/task-detail/task-approval.ts +20 -13
  634. package/src/workflow/useDiagnoseExecutionFlow.ts +23 -18
  635. package/src/workflow/useExplainWorkflowFlow.ts +7 -3
  636. package/src/workflow/useRefineWorkflowFlow.ts +17 -10
  637. package/src/workflow/useWorkflowArchitectFlow.ts +7 -3
  638. package/src/workspace/ExplorerTree.tsx +4 -8
  639. package/src/workspace/FileViewer.tsx +4 -5
  640. package/styles.css +1 -1
  641. package/team/TeamDetailPanel.d.ts +2 -2
  642. package/team/TeamDetailPanel.d.ts.map +1 -1
  643. package/team/TeamDetailPanel.js +2 -2
  644. package/team/TeamDetailPanel.js.map +1 -1
  645. package/team/TeamListPanel.d.ts.map +1 -1
  646. package/team/TeamListPanel.js +2 -1
  647. package/team/TeamListPanel.js.map +1 -1
  648. package/team/TeamMembersPanel.d.ts +2 -2
  649. package/team/TeamMembersPanel.d.ts.map +1 -1
  650. package/team/TeamMembersPanel.js +2 -2
  651. package/team/TeamMembersPanel.js.map +1 -1
  652. package/usage/OrgUsagePanel.d.ts +3 -3
  653. package/usage/OrgUsagePanel.d.ts.map +1 -1
  654. package/usage/OrgUsagePanel.js +6 -5
  655. package/usage/OrgUsagePanel.js.map +1 -1
  656. package/usage/useExportCSV.d.ts +2 -2
  657. package/usage/useExportCSV.d.ts.map +1 -1
  658. package/usage/useExportCSV.js +9 -9
  659. package/usage/useExportCSV.js.map +1 -1
  660. package/usage/useOrgUsageReport.d.ts +4 -4
  661. package/usage/useOrgUsageReport.d.ts.map +1 -1
  662. package/usage/useOrgUsageReport.js +7 -7
  663. package/usage/useOrgUsageReport.js.map +1 -1
  664. package/version-history/VersionTimeline.d.ts.map +1 -1
  665. package/version-history/VersionTimeline.js +2 -1
  666. package/version-history/VersionTimeline.js.map +1 -1
  667. package/workflow/WorkflowTaskApprovalSummary.d.ts +7 -4
  668. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  669. package/workflow/WorkflowTaskApprovalSummary.js +8 -3
  670. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  671. package/workflow/WorkflowVersionDiffViewer.d.ts.map +1 -1
  672. package/workflow/WorkflowVersionDiffViewer.js +2 -1
  673. package/workflow/WorkflowVersionDiffViewer.js.map +1 -1
  674. package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
  675. package/workflow/WorkflowVersionTimeline.js +2 -1
  676. package/workflow/WorkflowVersionTimeline.js.map +1 -1
  677. package/workflow/inspector/tabs/BranchesTab.js +1 -1
  678. package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
  679. package/workflow/inspector/tabs/CatchTab.js +1 -1
  680. package/workflow/inspector/tabs/CatchTab.js.map +1 -1
  681. package/workflow/inspector/tabs/IterationTab.js +1 -1
  682. package/workflow/inspector/tabs/IterationTab.js.map +1 -1
  683. package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
  684. package/workflow/instance/WorkflowInstanceDetailPanel.js +6 -5
  685. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  686. package/workflow/task-detail/task-approval.d.ts +13 -11
  687. package/workflow/task-detail/task-approval.d.ts.map +1 -1
  688. package/workflow/task-detail/task-approval.js +8 -4
  689. package/workflow/task-detail/task-approval.js.map +1 -1
  690. package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -1
  691. package/workflow/useDiagnoseExecutionFlow.js +23 -18
  692. package/workflow/useDiagnoseExecutionFlow.js.map +1 -1
  693. package/workflow/useExplainWorkflowFlow.d.ts.map +1 -1
  694. package/workflow/useExplainWorkflowFlow.js +7 -3
  695. package/workflow/useExplainWorkflowFlow.js.map +1 -1
  696. package/workflow/useRefineWorkflowFlow.d.ts.map +1 -1
  697. package/workflow/useRefineWorkflowFlow.js +14 -10
  698. package/workflow/useRefineWorkflowFlow.js.map +1 -1
  699. package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -1
  700. package/workflow/useWorkflowArchitectFlow.js +7 -3
  701. package/workflow/useWorkflowArchitectFlow.js.map +1 -1
  702. package/workspace/ExplorerTree.d.ts.map +1 -1
  703. package/workspace/ExplorerTree.js +2 -5
  704. package/workspace/ExplorerTree.js.map +1 -1
  705. package/workspace/FileViewer.d.ts.map +1 -1
  706. package/workspace/FileViewer.js +2 -1
  707. package/workspace/FileViewer.js.map +1 -1
@@ -186,6 +186,7 @@ function resolvePhase(
186
186
 
187
187
  import { forwardRef, useId } from "react";
188
188
  import { SpinnerIcon } from "../internal/SpinnerIcon.js";
189
+ import { LoadingRegion } from "../internal/LoadingRegion.js";
189
190
 
190
191
  interface OrgInputFormProps {
191
192
  readonly value: string;
@@ -241,16 +242,16 @@ const OrgInputForm = forwardRef<HTMLInputElement, OrgInputFormProps>(
241
242
 
242
243
  function LoadingState({ org }: { org: string }) {
243
244
  return (
244
- <div
245
+ <LoadingRegion
245
246
  className="stg:flex stg:flex-col stg:items-center stg:gap-3 stg:py-4"
246
- aria-busy="true"
247
- aria-label={`Looking up SSO provider for ${org}`}
247
+ label={`Looking up SSO provider for ${org}`}
248
248
  >
249
249
  <SpinnerIcon size={20} className="stg:text-muted-foreground" />
250
- <p className="stg:text-sm stg:text-muted-foreground">
250
+ {/* The hidden label says it in full; this is its short visible form. */}
251
+ <p className="stg:text-sm stg:text-muted-foreground" aria-hidden="true">
251
252
  Looking up <span className="stg:font-medium stg:text-foreground">{org}</span>&hellip;
252
253
  </p>
253
- </div>
254
+ </LoadingRegion>
254
255
  );
255
256
  }
256
257
 
@@ -32,8 +32,8 @@ export interface UseIdentityProviderListReturn {
32
32
  *
33
33
  * @example
34
34
  * ```tsx
35
- * function IdpSettings({ orgId }: { orgId: string }) {
36
- * const { identityProviders, isLoading, error } = useIdentityProviderList(orgId);
35
+ * function IdpSettings({ org }: { org: string }) {
36
+ * const { identityProviders, isLoading, error } = useIdentityProviderList(org);
37
37
  *
38
38
  * if (isLoading) return <Skeleton />;
39
39
  * if (error) return <ErrorMessage error={error} />;
package/src/index.ts CHANGED
@@ -948,7 +948,7 @@ export type {
948
948
  UseUpdateScheduleSpecReturn,
949
949
  } from "./schedule/index.js";
950
950
 
951
- // Environment — data hooks, list hook, personal convenience hook, secret reveal, variable management, env var form, system env vars, and styled components
951
+ // Environment — data hooks, list hook, personal convenience hook, secret reveal, variable management, env var form, the platform-filled key set, and styled components
952
952
  export {
953
953
  useEnvironment,
954
954
  useEnvironmentList,
@@ -964,10 +964,6 @@ export {
964
964
  EnvVarForm,
965
965
  useSessionEnvPool,
966
966
  SYSTEM_ENV_VAR_KEYS,
967
- toGrpcAddress,
968
- buildSystemEnvVars,
969
- resolveSystemEnvVarValues,
970
- resolveDeclaredSystemEnvVars,
971
967
  EnvironmentPicker,
972
968
  useToolCredentialsReadiness,
973
969
  } from "./environment/index.js";
@@ -1127,6 +1123,7 @@ export {
1127
1123
  useOrg,
1128
1124
  useActiveOrgSlug,
1129
1125
  useActiveOrgId,
1126
+ useFollowSessionOrganization,
1130
1127
  useOrgGate,
1131
1128
  useOrganization,
1132
1129
  useCreateOrganization,
@@ -1164,6 +1161,9 @@ export {
1164
1161
  useSubscription,
1165
1162
  useEntitlements,
1166
1163
  usePeriodEstimate,
1164
+ useProviderKeys,
1165
+ useProviderKeyActions,
1166
+ ProviderKeysSection,
1167
1167
  useChangePlan,
1168
1168
  useCancelSubscription,
1169
1169
  useCreatePaymentMethodSetupSession,
@@ -1206,6 +1206,11 @@ export type {
1206
1206
  UseEntitlementsReturn,
1207
1207
  UsePeriodEstimateOptions,
1208
1208
  UsePeriodEstimateReturn,
1209
+ ProviderKeyProvider,
1210
+ UseProviderKeysOptions,
1211
+ UseProviderKeysReturn,
1212
+ UseProviderKeyActionsReturn,
1213
+ ProviderKeysSectionProps,
1209
1214
  UseChangePlanReturn,
1210
1215
  UseCancelSubscriptionReturn,
1211
1216
  UseCreatePaymentMethodSetupSessionReturn,
@@ -1,8 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useEffect, useRef, useState } from "react";
3
+ import { useCallback, useRef, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import type { InlineEditBaseProps } from "./types.js";
6
+ import { useInlineDraft } from "./useInlineDraft.js";
6
7
 
7
8
  /** Props for {@link InlineEditImage}. */
8
9
  export interface InlineEditImageProps extends InlineEditBaseProps {
@@ -21,6 +22,10 @@ export interface InlineEditImageProps extends InlineEditBaseProps {
21
22
  *
22
23
  * Shows the current image (or fallback icon). On click, reveals
23
24
  * an input for entering a new image URL with confirm/cancel.
25
+ *
26
+ * The draft is seeded from `value` when editing opens. While the editor is
27
+ * open, a draft the user has edited keeps their text if `value` changes, and
28
+ * an untouched draft follows the new `value`.
24
29
  */
25
30
  export function InlineEditImage({
26
31
  value,
@@ -32,18 +37,15 @@ export function InlineEditImage({
32
37
  error,
33
38
  className,
34
39
  }: InlineEditImageProps) {
35
- const [isEditing, setIsEditing] = useState(false);
36
- const [draft, setDraft] = useState(value);
37
40
  const [localError, setLocalError] = useState<string | null>(null);
38
41
  const inputRef = useRef<HTMLInputElement>(null);
42
+ const { isEditing, setIsEditing, draft, setDraft, startEditing } =
43
+ useInlineDraft(value, inputRef);
39
44
 
40
- useEffect(() => {
41
- if (isEditing) {
42
- setDraft(value);
43
- setLocalError(null);
44
- requestAnimationFrame(() => inputRef.current?.focus());
45
- }
46
- }, [isEditing, value]);
45
+ const handleEdit = useCallback(() => {
46
+ setLocalError(null);
47
+ startEditing();
48
+ }, [startEditing]);
47
49
 
48
50
  const handleConfirm = useCallback(async () => {
49
51
  const trimmed = draft.trim();
@@ -81,7 +83,7 @@ export function InlineEditImage({
81
83
  <div className={cn("stg:group/inline-edit stg:inline-flex", className)}>
82
84
  <button
83
85
  type="button"
84
- onClick={() => { if (!disabled) setIsEditing(true); }}
86
+ onClick={() => { if (!disabled) handleEdit(); }}
85
87
  disabled={disabled}
86
88
  className={cn(
87
89
  "stg:relative stg:rounded-md stg:p-0.5 stg:transition-colors",
@@ -1,8 +1,9 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useEffect, useRef, useState } from "react";
3
+ import { useCallback, useRef, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import type { InlineEditBaseProps } from "./types.js";
6
+ import { useInlineDraft } from "./useInlineDraft.js";
6
7
 
7
8
  /** Props for {@link InlineEditText}. */
8
9
  export interface InlineEditTextProps extends InlineEditBaseProps {
@@ -24,6 +25,10 @@ export interface InlineEditTextProps extends InlineEditBaseProps {
24
25
  * Displays the value as styled text. On click, transitions to an input
25
26
  * with inline confirm/cancel controls. Confirm triggers `onSave`;
26
27
  * cancel reverts. Escape key also cancels.
28
+ *
29
+ * The draft is seeded from `value` when editing opens. While the editor is
30
+ * open, a draft the user has edited keeps their text if `value` changes, and
31
+ * an untouched draft follows the new `value`.
27
32
  */
28
33
  export function InlineEditText({
29
34
  value,
@@ -36,18 +41,15 @@ export function InlineEditText({
36
41
  error,
37
42
  className,
38
43
  }: InlineEditTextProps) {
39
- const [isEditing, setIsEditing] = useState(false);
40
- const [draft, setDraft] = useState(value);
41
44
  const [localError, setLocalError] = useState<string | null>(null);
42
45
  const inputRef = useRef<HTMLInputElement>(null);
46
+ const { isEditing, setIsEditing, draft, setDraft, startEditing } =
47
+ useInlineDraft(value, inputRef);
43
48
 
44
- useEffect(() => {
45
- if (isEditing) {
46
- setDraft(value);
47
- setLocalError(null);
48
- requestAnimationFrame(() => inputRef.current?.focus());
49
- }
50
- }, [isEditing, value]);
49
+ const handleEdit = useCallback(() => {
50
+ setLocalError(null);
51
+ startEditing();
52
+ }, [startEditing]);
51
53
 
52
54
  const handleConfirm = useCallback(async () => {
53
55
  const trimmed = draft.trim();
@@ -91,7 +93,7 @@ export function InlineEditText({
91
93
  <div className={cn("stg:group/inline-edit", className)}>
92
94
  <button
93
95
  type="button"
94
- onClick={() => { if (!disabled) setIsEditing(true); }}
96
+ onClick={() => { if (!disabled) handleEdit(); }}
95
97
  disabled={disabled}
96
98
  className={cn(
97
99
  "stg:inline-flex stg:w-full stg:items-center stg:gap-1.5 stg:rounded-md stg:px-1.5 stg:py-0.5 stg:text-left stg:transition-colors",
@@ -3,6 +3,7 @@
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
4
  import { cn } from "@stigmer/theme";
5
5
  import type { InlineEditBaseProps } from "./types.js";
6
+ import { useInlineDraft } from "./useInlineDraft.js";
6
7
 
7
8
  /** Props for {@link InlineEditTextarea}. */
8
9
  export interface InlineEditTextareaProps extends InlineEditBaseProps {
@@ -23,6 +24,10 @@ export interface InlineEditTextareaProps extends InlineEditBaseProps {
23
24
  *
24
25
  * In read mode, renders the value as preformatted text with expand/collapse.
25
26
  * On click, opens a textarea with confirm/cancel. Ctrl+Enter confirms.
27
+ *
28
+ * The draft is seeded from `value` when editing opens. While the editor is
29
+ * open, a draft the user has edited keeps their text if `value` changes, and
30
+ * an untouched draft follows the new `value`.
26
31
  */
27
32
  export function InlineEditTextarea({
28
33
  value,
@@ -35,24 +40,15 @@ export function InlineEditTextarea({
35
40
  error,
36
41
  className,
37
42
  }: InlineEditTextareaProps) {
38
- const [isEditing, setIsEditing] = useState(false);
39
- const [draft, setDraft] = useState(value);
40
43
  const [localError, setLocalError] = useState<string | null>(null);
41
44
  const textareaRef = useRef<HTMLTextAreaElement>(null);
45
+ const { isEditing, setIsEditing, draft, setDraft, startEditing } =
46
+ useInlineDraft(value, textareaRef, { caretAtEnd: true });
42
47
 
43
- useEffect(() => {
44
- if (isEditing) {
45
- setDraft(value);
46
- setLocalError(null);
47
- requestAnimationFrame(() => {
48
- const ta = textareaRef.current;
49
- if (ta) {
50
- ta.focus();
51
- ta.selectionStart = ta.value.length;
52
- }
53
- });
54
- }
55
- }, [isEditing, value]);
48
+ const handleEdit = useCallback(() => {
49
+ setLocalError(null);
50
+ startEditing();
51
+ }, [startEditing]);
56
52
 
57
53
  // Auto-resize textarea
58
54
  useEffect(() => {
@@ -103,7 +99,7 @@ export function InlineEditTextarea({
103
99
  <div className={cn("stg:group/inline-edit", className)}>
104
100
  <button
105
101
  type="button"
106
- onClick={() => { if (!disabled) setIsEditing(true); }}
102
+ onClick={() => { if (!disabled) handleEdit(); }}
107
103
  disabled={disabled}
108
104
  className={cn(
109
105
  "stg:w-full stg:rounded-md stg:px-2 stg:py-1.5 stg:text-left stg:transition-colors",
@@ -0,0 +1,85 @@
1
+ "use client";
2
+
3
+ /**
4
+ * The draft, focus and caret contract shared by the click-to-edit text
5
+ * editors (`InlineEditText`, `InlineEditTextarea`, `InlineEditImage`), kept in
6
+ * one place so the three cannot drift apart. Internal: not exported from the
7
+ * package.
8
+ *
9
+ * - Opening seeds the draft from the stored value and focuses the field in
10
+ * the commit that shows it, never a frame later, so a selection made right
11
+ * after opening (select-all, then type) is not collapsed afterwards
12
+ * (stigmer/stigmer#1575). A layout effect is used rather than a passive one
13
+ * because, in a browser, a passive effect may run after paint and after the
14
+ * next input.
15
+ * - An untouched draft follows the stored value, so a save never writes a
16
+ * stale copy over a change made elsewhere; once the user edits, the draft
17
+ * is theirs until they save or cancel. The follow is adjusted during render
18
+ * (the `ResizableSplit` idiom), so the field never shows the stale value.
19
+ */
20
+ import { useCallback, useLayoutEffect, useMemo, useState } from "react";
21
+ import type { RefObject } from "react";
22
+
23
+ /** Return value of {@link useInlineDraft}. */
24
+ export interface UseInlineDraftReturn {
25
+ /** `true` while the field is open for editing. */
26
+ readonly isEditing: boolean;
27
+ /** Open or close the field without reseeding the draft. */
28
+ readonly setIsEditing: (editing: boolean) => void;
29
+ /** The text in the field. */
30
+ readonly draft: string;
31
+ /** Replace the text in the field (the user typed, or a control reset it). */
32
+ readonly setDraft: (draft: string) => void;
33
+ /** Open the field with the draft seeded from the stored value. */
34
+ readonly startEditing: () => void;
35
+ }
36
+
37
+ /**
38
+ * Holds an inline editor's open state and draft, and places focus when the
39
+ * field opens (the contract in this module's header).
40
+ *
41
+ * @param value - The stored value.
42
+ * @param fieldRef - The input or textarea shown while editing.
43
+ * @param options.caretAtEnd - Place the caret after the text on opening.
44
+ */
45
+ export function useInlineDraft(
46
+ value: string,
47
+ fieldRef: RefObject<HTMLInputElement | HTMLTextAreaElement | null>,
48
+ options?: { readonly caretAtEnd?: boolean },
49
+ ): UseInlineDraftReturn {
50
+ const caretAtEnd = options?.caretAtEnd ?? false;
51
+ const [isEditing, setIsEditing] = useState(false);
52
+ const [draft, setDraft] = useState(value);
53
+ // The stored value the draft was last seeded from.
54
+ const [seed, setSeed] = useState(value);
55
+
56
+ // An untouched draft follows the stored value (see the module header).
57
+ if (value !== seed) {
58
+ setSeed(value);
59
+ if (draft === seed) setDraft(value);
60
+ }
61
+
62
+ const startEditing = useCallback(() => {
63
+ setDraft(value);
64
+ setSeed(value);
65
+ setIsEditing(true);
66
+ }, [value]);
67
+
68
+ // A layout effect, not a frame later: focus (and the caret) land in the
69
+ // commit that shows the field, before the browser handles the next input.
70
+ useLayoutEffect(() => {
71
+ if (!isEditing) return;
72
+ const field = fieldRef.current;
73
+ if (!field) return;
74
+ field.focus();
75
+ if (caretAtEnd) {
76
+ const end = field.value.length;
77
+ field.setSelectionRange(end, end);
78
+ }
79
+ }, [isEditing, fieldRef, caretAtEnd]);
80
+
81
+ return useMemo(
82
+ () => ({ isEditing, setIsEditing, draft, setDraft, startEditing }),
83
+ [isEditing, draft, startEditing],
84
+ );
85
+ }
@@ -1,8 +1,17 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useEffect, useRef } from "react";
4
- import type { MouseEvent, ReactNode, SyntheticEvent } from "react";
3
+ import { useCallback, useEffect, useRef, useState } from "react";
4
+ import type {
5
+ KeyboardEvent,
6
+ MouseEvent,
7
+ ReactNode,
8
+ SyntheticEvent,
9
+ } from "react";
5
10
  import { cn } from "@stigmer/theme";
11
+ import {
12
+ PortalContainerContext,
13
+ useStigmerPortalContainer,
14
+ } from "../portal-container.js";
6
15
 
7
16
  /**
8
17
  * Width presets for {@link DialogShell}, mapping to Tailwind `max-w-*`
@@ -79,6 +88,27 @@ export interface DialogShellProps {
79
88
  * escaped the #652 fence, and animation classes present on some dialogs and
80
89
  * missing from others.
81
90
  *
91
+ * Popups opened inside a modal shell render inside it (stigmer#1509). A
92
+ * modal `<dialog>` sits in the browser's top layer and makes the rest of
93
+ * the document inert, so a popover, menu or tooltip portaled into the
94
+ * provider's `document.body` container would paint beneath the dialog and
95
+ * refuse every click. The shell therefore owns an empty portal target as
96
+ * its last child and re-provides it through {@link PortalContainerContext}:
97
+ * every SDK popup below it lands in the top layer with the dialog, themed
98
+ * by ordinary inheritance from the provider's in-tree scope. The target is
99
+ * a zero-size fixed box, so the dialog's own scrolling box never clips a
100
+ * popup that extends past its edge. The target
101
+ * carries no `data-stgm-portal` marker; that selector keeps meaning the one
102
+ * body container. A non-modal shell is in-flow, so it keeps the provider's
103
+ * container.
104
+ *
105
+ * Because those popups now receive keys, Escape pressed while one is open
106
+ * belongs to the popup: Base UI closes it but does not prevent the
107
+ * keydown's default, which is the dialog's own close request. The shell
108
+ * notes, before any popup handler runs, whether its target held a popup,
109
+ * and keeps the dialog open for that one close request; the next Escape
110
+ * closes the dialog.
111
+ *
82
112
  * Internal on purpose — not exported from the package until a host needs it.
83
113
  * The `stigmer/no-handrolled-dialog` lint rule fences new `<dialog>`
84
114
  * elements onto this shell.
@@ -102,6 +132,19 @@ export function DialogShell({
102
132
  "aria-labelledby": ariaLabelledby,
103
133
  }: DialogShellProps) {
104
134
  const dialogRef = useRef<HTMLDialogElement>(null);
135
+ const inheritedPortalContainer = useStigmerPortalContainer();
136
+ // State, not a ref: children must re-render with the element once it
137
+ // mounts. Until then the value is `null`, which Base UI reads as "wait
138
+ // for a container" — no popup flashes into the body first.
139
+ const [portalTarget, setPortalTarget] = useState<HTMLDivElement | null>(
140
+ null,
141
+ );
142
+ // Set while one Escape keydown is in flight and a popup was open when it
143
+ // started; see the doc comment. Cleared by the cancel it guards, or by a
144
+ // task queued at keydown time when the browser sends no cancel (it may
145
+ // skip one for a repeated Escape without user activation), so it can
146
+ // never swallow a later Escape meant for the dialog.
147
+ const escapeClosesPopupRef = useRef(false);
105
148
 
106
149
  // Sync the native top-layer state to the controlled prop. Runs on mount
107
150
  // too, so a shell mounted with `open` already true shows immediately.
@@ -121,11 +164,28 @@ export function DialogShell({
121
164
  const handleCancel = useCallback(
122
165
  (e: SyntheticEvent<HTMLDialogElement>) => {
123
166
  e.preventDefault();
167
+ if (escapeClosesPopupRef.current) {
168
+ escapeClosesPopupRef.current = false;
169
+ return;
170
+ }
124
171
  onOpenChange(false);
125
172
  },
126
173
  [onOpenChange],
127
174
  );
128
175
 
176
+ // Capture phase: runs before the popup's own key handlers, which stop
177
+ // propagation, while the popup is certainly still mounted.
178
+ const handleKeyDownCapture = useCallback(
179
+ (e: KeyboardEvent<HTMLDialogElement>) => {
180
+ if (e.key !== "Escape" || !portalTarget?.hasChildNodes()) return;
181
+ escapeClosesPopupRef.current = true;
182
+ setTimeout(() => {
183
+ escapeClosesPopupRef.current = false;
184
+ }, 0);
185
+ },
186
+ [portalTarget],
187
+ );
188
+
129
189
  // A native close the effect did not perform (e.g. a `method="dialog"`
130
190
  // form submit) must not leave the controlled state stranded open.
131
191
  const handleClose = useCallback(() => {
@@ -146,6 +206,7 @@ export function DialogShell({
146
206
  ref={dialogRef}
147
207
  open={modal ? undefined : open || undefined}
148
208
  onCancel={modal ? handleCancel : undefined}
209
+ onKeyDownCapture={modal ? handleKeyDownCapture : undefined}
149
210
  onClose={modal ? handleClose : undefined}
150
211
  onClick={modal && dismissOnBackdrop ? handleClick : undefined}
151
212
  aria-label={ariaLabel}
@@ -163,7 +224,23 @@ export function DialogShell({
163
224
  className,
164
225
  )}
165
226
  >
166
- {children}
227
+ <PortalContainerContext.Provider
228
+ value={modal ? portalTarget : inheritedPortalContainer}
229
+ >
230
+ {children}
231
+ </PortalContainerContext.Provider>
232
+ {/* A zero-size fixed box at the viewport origin, not an in-flow
233
+ div: a fixed box's containing block is the viewport, so popups
234
+ positioned inside it escape the dialog's own overflow clip (a
235
+ modal dialog scrolls its content) while staying in its top layer.
236
+ An in-flow target left every popup cut off at the dialog's edge
237
+ in Chromium. */}
238
+ {modal && (
239
+ <div
240
+ ref={setPortalTarget}
241
+ className="stg:fixed stg:top-0 stg:left-0 stg:size-0"
242
+ />
243
+ )}
167
244
  </dialog>
168
245
  );
169
246
  }
@@ -0,0 +1,46 @@
1
+ import type { ReactNode } from "react";
2
+
3
+ /**
4
+ * The SDK's container for a labelled loading region: the region a skeleton
5
+ * fills while its data is in flight, marked busy and named for a screen reader
6
+ * without a role. A skeleton with no name needs none of this and stays a bare
7
+ * busy element.
8
+ *
9
+ * Why hidden text, not `aria-label`: a `div` with no role may not take
10
+ * `aria-label` (axe `aria-prohibited-attr`, WCAG 4.1.2), so a labelled
11
+ * skeleton fails any page audit it is on screen for (stigmer/stigmer#1653).
12
+ * Why no role: `status` is what this console's phase badges, empty states and
13
+ * notices carry, and `progressbar` its usage gauge, so a skeleton with either
14
+ * would answer locators meant for them.
15
+ *
16
+ * Why not a live region: a loading placeholder is not news. The content that
17
+ * replaces it is what a screen reader user reads, and an announcement per
18
+ * skeleton would talk over every panel that loads at once.
19
+ *
20
+ * `label` names a wordless skeleton ("Loading sessions"). Leave it out, or
21
+ * empty, when the children already say what is loading in visible text, so a
22
+ * screen reader does not read it twice. The hidden text comes first: the
23
+ * containers space their children with `space-y-*` and `gap-*`, and an
24
+ * absolutely positioned first child changes neither, where a trailing one
25
+ * would give the last placeholder a margin it never had. The
26
+ * `stigmer/require-loading-region` lint rule sends a busy element here when
27
+ * axe would refuse its name, or when it takes role="status".
28
+ *
29
+ * @internal Not part of the public API.
30
+ */
31
+ export function LoadingRegion({
32
+ label,
33
+ className,
34
+ children,
35
+ }: {
36
+ readonly label?: string;
37
+ readonly className?: string;
38
+ readonly children?: ReactNode;
39
+ }) {
40
+ return (
41
+ <div className={className} aria-busy="true">
42
+ {label ? <span className="stg:sr-only">{label}</span> : null}
43
+ {children}
44
+ </div>
45
+ );
46
+ }
@@ -0,0 +1,31 @@
1
+ "use client";
2
+
3
+ /** Props for {@link UnknownPublicAddressNotice}. */
4
+ export interface UnknownPublicAddressNoticeProps {
5
+ /** What cannot be shown, as it reads mid-sentence ("the callback URL"). */
6
+ readonly subject: string;
7
+ }
8
+
9
+ /**
10
+ * Shown in place of a copyable URL or snippet when the server's public
11
+ * address is unknown (`usePublicBaseUrl` answered `null`): the client talks
12
+ * to the server through a relative `baseUrl` and the host named no
13
+ * `publicBaseUrl`. One sentence, shared by every copy surface, so a user is
14
+ * told plainly why there is nothing to copy instead of being offered an
15
+ * address Slack, Meta or a backend cannot call.
16
+ *
17
+ * The surface keeps its own label above the notice, the shape the channel
18
+ * app panel already uses for a verify token it can no longer show. The
19
+ * reader is the host's user, not its developer, so the copy names no prop
20
+ * or configuration.
21
+ */
22
+ export function UnknownPublicAddressNotice({
23
+ subject,
24
+ }: UnknownPublicAddressNoticeProps) {
25
+ return (
26
+ <p className="stg:text-[0.65rem] stg:text-muted-foreground">
27
+ This app doesn&apos;t know your Stigmer server&apos;s public address, so
28
+ it can&apos;t show {subject}.
29
+ </p>
30
+ );
31
+ }
@@ -23,7 +23,7 @@ export const FEATURE_COPY: Readonly<
23
23
  },
24
24
  [Feature.byo_provider_keys]: {
25
25
  label: "Bring your own provider keys",
26
- description: "Use the customer's own LLM provider keys instead of the metered proxy.",
26
+ description: "Run agents on your own Anthropic and OpenAI keys, with no Stigmer commission on those tokens.",
27
27
  },
28
28
  [Feature.channels]: {
29
29
  label: "Channels",
@@ -31,7 +31,7 @@ export const FEATURE_COPY: Readonly<
31
31
  },
32
32
  [Feature.sharing]: {
33
33
  label: "Sharing",
34
- description: "Share agents with individuals and guests through hosted links.",
34
+ description: "Share agents through hosted links, with your organization or with anyone who has the link.",
35
35
  },
36
36
  [Feature.teams]: {
37
37
  label: "Teams",
@@ -0,0 +1,71 @@
1
+ {
2
+ "$comment": "Which elements axe-core refuses a name on, for the stigmer/require-loading-region lint rule (tools/eslint-plugin-stigmer/rules/require-loading-region.js), which reports a busy, labelled element with no role written when its tag is in namelessElements. Measured, not judged: src/internal/__tests__/a11y/loading-region-markup.browser.test.ts renders every HTML element, busy, labelled, empty and with no role, through axe's aria-prohibited-attr in Chromium, and fails, printing what axe measured, when these lists disagree. Update a list by copying that output.",
3
+ "axeCore": "4.11.4",
4
+ "namelessElements": [
5
+ "abbr",
6
+ "address",
7
+ "b",
8
+ "bdi",
9
+ "bdo",
10
+ "blockquote",
11
+ "br",
12
+ "caption",
13
+ "cite",
14
+ "code",
15
+ "col",
16
+ "colgroup",
17
+ "data",
18
+ "del",
19
+ "div",
20
+ "em",
21
+ "figcaption",
22
+ "hgroup",
23
+ "i",
24
+ "ins",
25
+ "kbd",
26
+ "legend",
27
+ "map",
28
+ "mark",
29
+ "p",
30
+ "picture",
31
+ "pre",
32
+ "q",
33
+ "rt",
34
+ "ruby",
35
+ "s",
36
+ "samp",
37
+ "small",
38
+ "span",
39
+ "strong",
40
+ "sub",
41
+ "sup",
42
+ "time",
43
+ "u",
44
+ "var",
45
+ "wbr"
46
+ ],
47
+ "elementsLeftToAxe": {
48
+ "a": {
49
+ "reason": "an a with an href is a link, which takes a name; the rule cannot see an href passed in a spread",
50
+ "accepted": "<a id=\"probe\" href=\"#x\" aria-busy=\"true\" aria-label=\"Loading\"></a>"
51
+ },
52
+ "td": {
53
+ "reason": "a table cell takes a name inside a table; axe cannot judge one alone",
54
+ "accepted": "<table><tbody><tr><td id=\"probe\" aria-busy=\"true\" aria-label=\"Loading\"></td></tr></tbody></table>"
55
+ },
56
+ "th": {
57
+ "reason": "a header cell takes a name inside a table; axe cannot judge one alone",
58
+ "accepted": "<table><tbody><tr><th id=\"probe\" aria-busy=\"true\" aria-label=\"Loading\"></th></tr></tbody></table>"
59
+ }
60
+ },
61
+ "elementsAxeSkips": {
62
+ "area": "hidden by default",
63
+ "audio": "hidden by default without controls",
64
+ "datalist": "hidden by default",
65
+ "dialog": "hidden until opened",
66
+ "noscript": "not rendered while scripting runs",
67
+ "rp": "hidden by default",
68
+ "template": "inert content",
69
+ "slot": "outside axe's tree"
70
+ }
71
+ }