@stigmer/react 0.4.8 → 0.5.1

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 (709) hide show
  1. package/action-menu/ActionMenu.d.ts +64 -0
  2. package/action-menu/ActionMenu.d.ts.map +1 -0
  3. package/action-menu/ActionMenu.js +78 -0
  4. package/action-menu/ActionMenu.js.map +1 -0
  5. package/action-menu/index.d.ts +3 -0
  6. package/action-menu/index.d.ts.map +1 -0
  7. package/action-menu/index.js +2 -0
  8. package/action-menu/index.js.map +1 -0
  9. package/action-menu/types.d.ts +65 -0
  10. package/action-menu/types.d.ts.map +1 -0
  11. package/action-menu/types.js +2 -0
  12. package/action-menu/types.js.map +1 -0
  13. package/agent/AgentCreationWizard.d.ts +55 -0
  14. package/agent/AgentCreationWizard.d.ts.map +1 -0
  15. package/agent/AgentCreationWizard.js +115 -0
  16. package/agent/AgentCreationWizard.js.map +1 -0
  17. package/agent/AgentDetailView.d.ts +77 -9
  18. package/agent/AgentDetailView.d.ts.map +1 -1
  19. package/agent/AgentDetailView.js +265 -87
  20. package/agent/AgentDetailView.js.map +1 -1
  21. package/agent/index.d.ts +8 -0
  22. package/agent/index.d.ts.map +1 -1
  23. package/agent/index.js +4 -0
  24. package/agent/index.js.map +1 -1
  25. package/agent/internal/agentToInput.d.ts +12 -0
  26. package/agent/internal/agentToInput.d.ts.map +1 -0
  27. package/agent/internal/agentToInput.js +72 -0
  28. package/agent/internal/agentToInput.js.map +1 -0
  29. package/agent/steps/CapabilitiesStep.d.ts +16 -0
  30. package/agent/steps/CapabilitiesStep.d.ts.map +1 -0
  31. package/agent/steps/CapabilitiesStep.js +80 -0
  32. package/agent/steps/CapabilitiesStep.js.map +1 -0
  33. package/agent/steps/IdentityStep.d.ts +18 -0
  34. package/agent/steps/IdentityStep.d.ts.map +1 -0
  35. package/agent/steps/IdentityStep.js +43 -0
  36. package/agent/steps/IdentityStep.js.map +1 -0
  37. package/agent/steps/ReviewStep.d.ts +23 -0
  38. package/agent/steps/ReviewStep.d.ts.map +1 -0
  39. package/agent/steps/ReviewStep.js +73 -0
  40. package/agent/steps/ReviewStep.js.map +1 -0
  41. package/agent/steps/types.d.ts +35 -0
  42. package/agent/steps/types.d.ts.map +1 -0
  43. package/agent/steps/types.js +16 -0
  44. package/agent/steps/types.js.map +1 -0
  45. package/agent/useCreateAgent.d.ts +45 -0
  46. package/agent/useCreateAgent.d.ts.map +1 -0
  47. package/agent/useCreateAgent.js +50 -0
  48. package/agent/useCreateAgent.js.map +1 -0
  49. package/agent/useUpdateAgent.d.ts +24 -0
  50. package/agent/useUpdateAgent.d.ts.map +1 -0
  51. package/agent/useUpdateAgent.js +35 -0
  52. package/agent/useUpdateAgent.js.map +1 -0
  53. package/composer/ContextChip.d.ts +7 -2
  54. package/composer/ContextChip.d.ts.map +1 -1
  55. package/composer/ContextChip.js +2 -1
  56. package/composer/ContextChip.js.map +1 -1
  57. package/composer/SessionComposer.d.ts +11 -0
  58. package/composer/SessionComposer.d.ts.map +1 -1
  59. package/composer/SessionComposer.js +33 -4
  60. package/composer/SessionComposer.js.map +1 -1
  61. package/dependency-graph/DependencyGraph.d.ts +37 -0
  62. package/dependency-graph/DependencyGraph.d.ts.map +1 -0
  63. package/dependency-graph/DependencyGraph.js +88 -0
  64. package/dependency-graph/DependencyGraph.js.map +1 -0
  65. package/dependency-graph/DependencyTreeNode.d.ts +23 -0
  66. package/dependency-graph/DependencyTreeNode.d.ts.map +1 -0
  67. package/dependency-graph/DependencyTreeNode.js +99 -0
  68. package/dependency-graph/DependencyTreeNode.js.map +1 -0
  69. package/dependency-graph/index.d.ts +4 -0
  70. package/dependency-graph/index.d.ts.map +1 -0
  71. package/dependency-graph/index.js +5 -0
  72. package/dependency-graph/index.js.map +1 -0
  73. package/dependency-graph/types.d.ts +130 -0
  74. package/dependency-graph/types.d.ts.map +1 -0
  75. package/dependency-graph/types.js +2 -0
  76. package/dependency-graph/types.js.map +1 -0
  77. package/dependency-graph/useDependencyGraph.d.ts +27 -0
  78. package/dependency-graph/useDependencyGraph.d.ts.map +1 -0
  79. package/dependency-graph/useDependencyGraph.js +129 -0
  80. package/dependency-graph/useDependencyGraph.js.map +1 -0
  81. package/empty-state/EmptyState.d.ts +29 -0
  82. package/empty-state/EmptyState.d.ts.map +1 -0
  83. package/empty-state/EmptyState.js +45 -0
  84. package/empty-state/EmptyState.js.map +1 -0
  85. package/empty-state/index.d.ts +4 -0
  86. package/empty-state/index.d.ts.map +1 -0
  87. package/empty-state/index.js +3 -0
  88. package/empty-state/index.js.map +1 -0
  89. package/empty-state/types.d.ts +73 -0
  90. package/empty-state/types.d.ts.map +1 -0
  91. package/empty-state/types.js +2 -0
  92. package/empty-state/types.js.map +1 -0
  93. package/empty-state/useEmptyState.d.ts +18 -0
  94. package/empty-state/useEmptyState.d.ts.map +1 -0
  95. package/empty-state/useEmptyState.js +72 -0
  96. package/empty-state/useEmptyState.js.map +1 -0
  97. package/environment/usePersonalEnvironment.d.ts.map +1 -1
  98. package/environment/usePersonalEnvironment.js +1 -0
  99. package/environment/usePersonalEnvironment.js.map +1 -1
  100. package/feedback/StigmerToaster.d.ts +18 -0
  101. package/feedback/StigmerToaster.d.ts.map +1 -0
  102. package/feedback/StigmerToaster.js +31 -0
  103. package/feedback/StigmerToaster.js.map +1 -0
  104. package/feedback/index.d.ts +4 -0
  105. package/feedback/index.d.ts.map +1 -0
  106. package/feedback/index.js +3 -0
  107. package/feedback/index.js.map +1 -0
  108. package/feedback/toast.d.ts +14 -0
  109. package/feedback/toast.d.ts.map +1 -0
  110. package/feedback/toast.js +14 -0
  111. package/feedback/toast.js.map +1 -0
  112. package/feedback/types.d.ts +4 -0
  113. package/feedback/types.d.ts.map +1 -0
  114. package/feedback/types.js +2 -0
  115. package/feedback/types.js.map +1 -0
  116. package/index.d.ts +32 -12
  117. package/index.d.ts.map +1 -1
  118. package/index.js +30 -10
  119. package/index.js.map +1 -1
  120. package/inline-edit/InlineEditImage.d.ts +20 -0
  121. package/inline-edit/InlineEditImage.d.ts.map +1 -0
  122. package/inline-edit/InlineEditImage.js +85 -0
  123. package/inline-edit/InlineEditImage.js.map +1 -0
  124. package/inline-edit/InlineEditKeyValue.d.ts +33 -0
  125. package/inline-edit/InlineEditKeyValue.d.ts.map +1 -0
  126. package/inline-edit/InlineEditKeyValue.js +67 -0
  127. package/inline-edit/InlineEditKeyValue.js.map +1 -0
  128. package/inline-edit/InlineEditResourceList.d.ts +34 -0
  129. package/inline-edit/InlineEditResourceList.d.ts.map +1 -0
  130. package/inline-edit/InlineEditResourceList.js +99 -0
  131. package/inline-edit/InlineEditResourceList.js.map +1 -0
  132. package/inline-edit/InlineEditSelect.d.ts +18 -0
  133. package/inline-edit/InlineEditSelect.d.ts.map +1 -0
  134. package/inline-edit/InlineEditSelect.js +54 -0
  135. package/inline-edit/InlineEditSelect.js.map +1 -0
  136. package/inline-edit/InlineEditText.d.ts +23 -0
  137. package/inline-edit/InlineEditText.d.ts.map +1 -0
  138. package/inline-edit/InlineEditText.js +79 -0
  139. package/inline-edit/InlineEditText.js.map +1 -0
  140. package/inline-edit/InlineEditTextarea.d.ts +22 -0
  141. package/inline-edit/InlineEditTextarea.d.ts.map +1 -0
  142. package/inline-edit/InlineEditTextarea.js +83 -0
  143. package/inline-edit/InlineEditTextarea.js.map +1 -0
  144. package/inline-edit/index.d.ts +16 -0
  145. package/inline-edit/index.d.ts.map +1 -0
  146. package/inline-edit/index.js +8 -0
  147. package/inline-edit/index.js.map +1 -0
  148. package/inline-edit/types.d.ts +42 -0
  149. package/inline-edit/types.d.ts.map +1 -0
  150. package/inline-edit/types.js +2 -0
  151. package/inline-edit/types.js.map +1 -0
  152. package/inline-edit/useInlineFieldSave.d.ts +23 -0
  153. package/inline-edit/useInlineFieldSave.d.ts.map +1 -0
  154. package/inline-edit/useInlineFieldSave.js +44 -0
  155. package/inline-edit/useInlineFieldSave.js.map +1 -0
  156. package/internal/Tabs.d.ts +4 -38
  157. package/internal/Tabs.d.ts.map +1 -1
  158. package/internal/Tabs.js +3 -62
  159. package/internal/Tabs.js.map +1 -1
  160. package/internal/useFetch.js +2 -2
  161. package/internal/useFetch.js.map +1 -1
  162. package/library/ImportResourceDialog.d.ts +43 -0
  163. package/library/ImportResourceDialog.d.ts.map +1 -0
  164. package/library/ImportResourceDialog.js +90 -0
  165. package/library/ImportResourceDialog.js.map +1 -0
  166. package/library/index.d.ts +7 -4
  167. package/library/index.d.ts.map +1 -1
  168. package/library/index.js +4 -2
  169. package/library/index.js.map +1 -1
  170. package/library/serialize-resource-yaml.d.ts +53 -0
  171. package/library/serialize-resource-yaml.d.ts.map +1 -1
  172. package/library/serialize-resource-yaml.js +275 -0
  173. package/library/serialize-resource-yaml.js.map +1 -1
  174. package/library/useExportResource.d.ts +56 -0
  175. package/library/useExportResource.d.ts.map +1 -0
  176. package/library/useExportResource.js +137 -0
  177. package/library/useExportResource.js.map +1 -0
  178. package/library/useImportResource.d.ts +84 -0
  179. package/library/useImportResource.d.ts.map +1 -0
  180. package/library/useImportResource.js +188 -0
  181. package/library/useImportResource.js.map +1 -0
  182. package/mcp-server/McpServerCreationWizard.d.ts +55 -0
  183. package/mcp-server/McpServerCreationWizard.d.ts.map +1 -0
  184. package/mcp-server/McpServerCreationWizard.js +121 -0
  185. package/mcp-server/McpServerCreationWizard.js.map +1 -0
  186. package/mcp-server/McpServerDetailView.d.ts +21 -1
  187. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  188. package/mcp-server/McpServerDetailView.js +235 -43
  189. package/mcp-server/McpServerDetailView.js.map +1 -1
  190. package/mcp-server/index.d.ts +8 -0
  191. package/mcp-server/index.d.ts.map +1 -1
  192. package/mcp-server/index.js +4 -0
  193. package/mcp-server/index.js.map +1 -1
  194. package/mcp-server/internal/mcpServerToInput.d.ts +12 -0
  195. package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -0
  196. package/mcp-server/internal/mcpServerToInput.js +81 -0
  197. package/mcp-server/internal/mcpServerToInput.js.map +1 -0
  198. package/mcp-server/steps/EnvironmentAuthStep.d.ts +15 -0
  199. package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -0
  200. package/mcp-server/steps/EnvironmentAuthStep.js +55 -0
  201. package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -0
  202. package/mcp-server/steps/IdentityTransportStep.d.ts +19 -0
  203. package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -0
  204. package/mcp-server/steps/IdentityTransportStep.js +73 -0
  205. package/mcp-server/steps/IdentityTransportStep.js.map +1 -0
  206. package/mcp-server/steps/ReviewStep.d.ts +23 -0
  207. package/mcp-server/steps/ReviewStep.d.ts.map +1 -0
  208. package/mcp-server/steps/ReviewStep.js +137 -0
  209. package/mcp-server/steps/ReviewStep.js.map +1 -0
  210. package/mcp-server/steps/types.d.ts +56 -0
  211. package/mcp-server/steps/types.d.ts.map +1 -0
  212. package/mcp-server/steps/types.js +27 -0
  213. package/mcp-server/steps/types.js.map +1 -0
  214. package/mcp-server/useCreateMcpServer.d.ts +45 -0
  215. package/mcp-server/useCreateMcpServer.d.ts.map +1 -0
  216. package/mcp-server/useCreateMcpServer.js +50 -0
  217. package/mcp-server/useCreateMcpServer.js.map +1 -0
  218. package/mcp-server/useUpdateMcpServer.d.ts +24 -0
  219. package/mcp-server/useUpdateMcpServer.d.ts.map +1 -0
  220. package/mcp-server/useUpdateMcpServer.js +35 -0
  221. package/mcp-server/useUpdateMcpServer.js.map +1 -0
  222. package/models/ModelRegistryContext.d.ts +2 -0
  223. package/models/ModelRegistryContext.d.ts.map +1 -1
  224. package/models/ModelRegistryContext.js +1 -0
  225. package/models/ModelRegistryContext.js.map +1 -1
  226. package/models/ModelSelector.d.ts.map +1 -1
  227. package/models/ModelSelector.js +2 -2
  228. package/models/ModelSelector.js.map +1 -1
  229. package/models/__tests__/useModelRegistry.test.js +4 -3
  230. package/models/__tests__/useModelRegistry.test.js.map +1 -1
  231. package/models/useModelRegistry.d.ts +2 -0
  232. package/models/useModelRegistry.d.ts.map +1 -1
  233. package/models/useModelRegistry.js +3 -2
  234. package/models/useModelRegistry.js.map +1 -1
  235. package/package.json +8 -4
  236. package/provider.d.ts.map +1 -1
  237. package/provider.js +69 -22
  238. package/provider.js.map +1 -1
  239. package/resource-creation/CreationPicker.d.ts +60 -0
  240. package/resource-creation/CreationPicker.d.ts.map +1 -0
  241. package/resource-creation/CreationPicker.js +74 -0
  242. package/resource-creation/CreationPicker.js.map +1 -0
  243. package/resource-creation/StepIndicator.d.ts +28 -0
  244. package/resource-creation/StepIndicator.d.ts.map +1 -0
  245. package/resource-creation/StepIndicator.js +40 -0
  246. package/resource-creation/StepIndicator.js.map +1 -0
  247. package/resource-creation/TemplateCard.d.ts +24 -0
  248. package/resource-creation/TemplateCard.d.ts.map +1 -0
  249. package/resource-creation/TemplateCard.js +68 -0
  250. package/resource-creation/TemplateCard.js.map +1 -0
  251. package/resource-creation/TemplateGallery.d.ts +43 -0
  252. package/resource-creation/TemplateGallery.d.ts.map +1 -0
  253. package/resource-creation/TemplateGallery.js +78 -0
  254. package/resource-creation/TemplateGallery.js.map +1 -0
  255. package/resource-creation/WizardNav.d.ts +31 -0
  256. package/resource-creation/WizardNav.d.ts.map +1 -0
  257. package/resource-creation/WizardNav.js +29 -0
  258. package/resource-creation/WizardNav.js.map +1 -0
  259. package/resource-creation/WizardShell.d.ts +41 -0
  260. package/resource-creation/WizardShell.d.ts.map +1 -0
  261. package/resource-creation/WizardShell.js +55 -0
  262. package/resource-creation/WizardShell.js.map +1 -0
  263. package/resource-creation/index.d.ts +21 -0
  264. package/resource-creation/index.d.ts.map +1 -0
  265. package/resource-creation/index.js +14 -0
  266. package/resource-creation/index.js.map +1 -0
  267. package/resource-creation/templates/agent-templates.d.ts +15 -0
  268. package/resource-creation/templates/agent-templates.d.ts.map +1 -0
  269. package/resource-creation/templates/agent-templates.js +148 -0
  270. package/resource-creation/templates/agent-templates.js.map +1 -0
  271. package/resource-creation/templates/index.d.ts +5 -0
  272. package/resource-creation/templates/index.d.ts.map +1 -0
  273. package/resource-creation/templates/index.js +5 -0
  274. package/resource-creation/templates/index.js.map +1 -0
  275. package/resource-creation/templates/mcp-server-templates.d.ts +15 -0
  276. package/resource-creation/templates/mcp-server-templates.d.ts.map +1 -0
  277. package/resource-creation/templates/mcp-server-templates.js +92 -0
  278. package/resource-creation/templates/mcp-server-templates.js.map +1 -0
  279. package/resource-creation/templates/types.d.ts +48 -0
  280. package/resource-creation/templates/types.d.ts.map +1 -0
  281. package/resource-creation/templates/types.js +16 -0
  282. package/resource-creation/templates/types.js.map +1 -0
  283. package/resource-creation/types.d.ts +88 -0
  284. package/resource-creation/types.d.ts.map +1 -0
  285. package/resource-creation/types.js +2 -0
  286. package/resource-creation/types.js.map +1 -0
  287. package/resource-creation/useTemplateFilter.d.ts +43 -0
  288. package/resource-creation/useTemplateFilter.d.ts.map +1 -0
  289. package/resource-creation/useTemplateFilter.js +73 -0
  290. package/resource-creation/useTemplateFilter.js.map +1 -0
  291. package/resource-creation/useWizardState.d.ts +67 -0
  292. package/resource-creation/useWizardState.d.ts.map +1 -0
  293. package/resource-creation/useWizardState.js +143 -0
  294. package/resource-creation/useWizardState.js.map +1 -0
  295. package/resource-detail/ConfirmDialog.d.ts +44 -0
  296. package/resource-detail/ConfirmDialog.d.ts.map +1 -0
  297. package/resource-detail/ConfirmDialog.js +62 -0
  298. package/resource-detail/ConfirmDialog.js.map +1 -0
  299. package/resource-detail/ResourceActionBar.d.ts +42 -0
  300. package/resource-detail/ResourceActionBar.d.ts.map +1 -0
  301. package/resource-detail/ResourceActionBar.js +64 -0
  302. package/resource-detail/ResourceActionBar.js.map +1 -0
  303. package/resource-detail/ResourceDetailShell.d.ts +36 -0
  304. package/resource-detail/ResourceDetailShell.d.ts.map +1 -0
  305. package/resource-detail/ResourceDetailShell.js +65 -0
  306. package/resource-detail/ResourceDetailShell.js.map +1 -0
  307. package/resource-detail/Section.d.ts +18 -0
  308. package/resource-detail/Section.d.ts.map +1 -0
  309. package/resource-detail/Section.js +18 -0
  310. package/resource-detail/Section.js.map +1 -0
  311. package/resource-detail/index.d.ts +15 -0
  312. package/resource-detail/index.d.ts.map +1 -0
  313. package/resource-detail/index.js +10 -0
  314. package/resource-detail/index.js.map +1 -0
  315. package/resource-detail/types.d.ts +146 -0
  316. package/resource-detail/types.d.ts.map +1 -0
  317. package/resource-detail/types.js +2 -0
  318. package/resource-detail/types.js.map +1 -0
  319. package/resource-detail/useConfirmAction.d.ts +41 -0
  320. package/resource-detail/useConfirmAction.d.ts.map +1 -0
  321. package/resource-detail/useConfirmAction.js +30 -0
  322. package/resource-detail/useConfirmAction.js.map +1 -0
  323. package/resource-detail/useCopyResource.d.ts +28 -0
  324. package/resource-detail/useCopyResource.d.ts.map +1 -0
  325. package/resource-detail/useCopyResource.js +46 -0
  326. package/resource-detail/useCopyResource.js.map +1 -0
  327. package/resource-detail/useDeleteResource.d.ts +40 -0
  328. package/resource-detail/useDeleteResource.d.ts.map +1 -0
  329. package/resource-detail/useDeleteResource.js +83 -0
  330. package/resource-detail/useDeleteResource.js.map +1 -0
  331. package/resource-detail/useDetailTabs.d.ts +46 -0
  332. package/resource-detail/useDetailTabs.d.ts.map +1 -0
  333. package/resource-detail/useDetailTabs.js +47 -0
  334. package/resource-detail/useDetailTabs.js.map +1 -0
  335. package/resource-workbench/components/BulkActionBar.d.ts +36 -0
  336. package/resource-workbench/components/BulkActionBar.d.ts.map +1 -0
  337. package/resource-workbench/components/BulkActionBar.js +35 -0
  338. package/resource-workbench/components/BulkActionBar.js.map +1 -0
  339. package/resource-workbench/components/ColumnHeader.d.ts +23 -0
  340. package/resource-workbench/components/ColumnHeader.d.ts.map +1 -0
  341. package/resource-workbench/components/ColumnHeader.js +25 -0
  342. package/resource-workbench/components/ColumnHeader.js.map +1 -0
  343. package/resource-workbench/components/FilterBar.d.ts +33 -0
  344. package/resource-workbench/components/FilterBar.d.ts.map +1 -0
  345. package/resource-workbench/components/FilterBar.js +72 -0
  346. package/resource-workbench/components/FilterBar.js.map +1 -0
  347. package/resource-workbench/components/ResourceAvatar.d.ts +29 -0
  348. package/resource-workbench/components/ResourceAvatar.d.ts.map +1 -0
  349. package/resource-workbench/components/ResourceAvatar.js +51 -0
  350. package/resource-workbench/components/ResourceAvatar.js.map +1 -0
  351. package/resource-workbench/components/ResourceCards.d.ts +39 -0
  352. package/resource-workbench/components/ResourceCards.d.ts.map +1 -0
  353. package/resource-workbench/components/ResourceCards.js +41 -0
  354. package/resource-workbench/components/ResourceCards.js.map +1 -0
  355. package/resource-workbench/components/ResourceInspector.d.ts +26 -0
  356. package/resource-workbench/components/ResourceInspector.d.ts.map +1 -0
  357. package/resource-workbench/components/ResourceInspector.js +22 -0
  358. package/resource-workbench/components/ResourceInspector.js.map +1 -0
  359. package/resource-workbench/components/ResourceList.d.ts +39 -0
  360. package/resource-workbench/components/ResourceList.d.ts.map +1 -0
  361. package/resource-workbench/components/ResourceList.js +41 -0
  362. package/resource-workbench/components/ResourceList.js.map +1 -0
  363. package/resource-workbench/components/ResourceTable.d.ts +47 -0
  364. package/resource-workbench/components/ResourceTable.d.ts.map +1 -0
  365. package/resource-workbench/components/ResourceTable.js +78 -0
  366. package/resource-workbench/components/ResourceTable.js.map +1 -0
  367. package/resource-workbench/components/ResourceWorkbench.d.ts +131 -0
  368. package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -0
  369. package/resource-workbench/components/ResourceWorkbench.js +170 -0
  370. package/resource-workbench/components/ResourceWorkbench.js.map +1 -0
  371. package/resource-workbench/components/SelectionCheckbox.d.ts +24 -0
  372. package/resource-workbench/components/SelectionCheckbox.d.ts.map +1 -0
  373. package/resource-workbench/components/SelectionCheckbox.js +16 -0
  374. package/resource-workbench/components/SelectionCheckbox.js.map +1 -0
  375. package/resource-workbench/components/StatusBadge.d.ts +31 -0
  376. package/resource-workbench/components/StatusBadge.d.ts.map +1 -0
  377. package/resource-workbench/components/StatusBadge.js +75 -0
  378. package/resource-workbench/components/StatusBadge.js.map +1 -0
  379. package/resource-workbench/components/ViewSwitcher.d.ts +21 -0
  380. package/resource-workbench/components/ViewSwitcher.d.ts.map +1 -0
  381. package/resource-workbench/components/ViewSwitcher.js +37 -0
  382. package/resource-workbench/components/ViewSwitcher.js.map +1 -0
  383. package/resource-workbench/hooks/useResourceCollection.d.ts +93 -0
  384. package/resource-workbench/hooks/useResourceCollection.d.ts.map +1 -0
  385. package/resource-workbench/hooks/useResourceCollection.js +133 -0
  386. package/resource-workbench/hooks/useResourceCollection.js.map +1 -0
  387. package/resource-workbench/hooks/useResourceFilters.d.ts +73 -0
  388. package/resource-workbench/hooks/useResourceFilters.d.ts.map +1 -0
  389. package/resource-workbench/hooks/useResourceFilters.js +105 -0
  390. package/resource-workbench/hooks/useResourceFilters.js.map +1 -0
  391. package/resource-workbench/hooks/useResourceSelection.d.ts +44 -0
  392. package/resource-workbench/hooks/useResourceSelection.d.ts.map +1 -0
  393. package/resource-workbench/hooks/useResourceSelection.js +123 -0
  394. package/resource-workbench/hooks/useResourceSelection.js.map +1 -0
  395. package/resource-workbench/hooks/useViewPreference.d.ts +32 -0
  396. package/resource-workbench/hooks/useViewPreference.d.ts.map +1 -0
  397. package/resource-workbench/hooks/useViewPreference.js +60 -0
  398. package/resource-workbench/hooks/useViewPreference.js.map +1 -0
  399. package/resource-workbench/index.d.ts +34 -0
  400. package/resource-workbench/index.d.ts.map +1 -0
  401. package/resource-workbench/index.js +19 -0
  402. package/resource-workbench/index.js.map +1 -0
  403. package/resource-workbench/types.d.ts +165 -0
  404. package/resource-workbench/types.d.ts.map +1 -0
  405. package/resource-workbench/types.js +2 -0
  406. package/resource-workbench/types.js.map +1 -0
  407. package/runner/RunnerDetailView.d.ts +44 -0
  408. package/runner/RunnerDetailView.d.ts.map +1 -0
  409. package/runner/RunnerDetailView.js +154 -0
  410. package/runner/RunnerDetailView.js.map +1 -0
  411. package/runner/RunnerListPanel.d.ts +26 -1
  412. package/runner/RunnerListPanel.d.ts.map +1 -1
  413. package/runner/RunnerListPanel.js +68 -46
  414. package/runner/RunnerListPanel.js.map +1 -1
  415. package/runner/index.d.ts +7 -1
  416. package/runner/index.d.ts.map +1 -1
  417. package/runner/index.js +3 -0
  418. package/runner/index.js.map +1 -1
  419. package/runner/shared.d.ts +31 -0
  420. package/runner/shared.d.ts.map +1 -0
  421. package/runner/shared.js +55 -0
  422. package/runner/shared.js.map +1 -0
  423. package/runner/useRunner.d.ts +37 -0
  424. package/runner/useRunner.d.ts.map +1 -0
  425. package/runner/useRunner.js +24 -0
  426. package/runner/useRunner.js.map +1 -0
  427. package/session/__tests__/group-sessions.test.js +3 -3
  428. package/session/__tests__/group-sessions.test.js.map +1 -1
  429. package/session/__tests__/session-spec-converters.test.d.ts +2 -0
  430. package/session/__tests__/session-spec-converters.test.d.ts.map +1 -0
  431. package/session/__tests__/session-spec-converters.test.js +162 -0
  432. package/session/__tests__/session-spec-converters.test.js.map +1 -0
  433. package/session/__tests__/useNewSessionFlow.test.js +2 -2
  434. package/session/__tests__/useNewSessionFlow.test.js.map +1 -1
  435. package/session/__tests__/usePersistedModel.test.js +1 -1
  436. package/session/__tests__/usePersistedModel.test.js.map +1 -1
  437. package/session/group-sessions.d.ts +17 -0
  438. package/session/group-sessions.d.ts.map +1 -1
  439. package/session/group-sessions.js +46 -0
  440. package/session/group-sessions.js.map +1 -1
  441. package/session/index.d.ts +4 -2
  442. package/session/index.d.ts.map +1 -1
  443. package/session/index.js +2 -1
  444. package/session/index.js.map +1 -1
  445. package/session/session-spec-converters.d.ts +24 -0
  446. package/session/session-spec-converters.d.ts.map +1 -0
  447. package/session/session-spec-converters.js +72 -0
  448. package/session/session-spec-converters.js.map +1 -0
  449. package/session/useSessionConversation.d.ts.map +1 -1
  450. package/session/useSessionConversation.js +1 -56
  451. package/session/useSessionConversation.js.map +1 -1
  452. package/session/useSessionPageFlow.d.ts +5 -0
  453. package/session/useSessionPageFlow.d.ts.map +1 -1
  454. package/session/useSessionPageFlow.js +20 -6
  455. package/session/useSessionPageFlow.js.map +1 -1
  456. package/session/useSessionSearch.d.ts +57 -0
  457. package/session/useSessionSearch.d.ts.map +1 -0
  458. package/session/useSessionSearch.js +94 -0
  459. package/session/useSessionSearch.js.map +1 -0
  460. package/skill/SkillDetailView.d.ts +70 -7
  461. package/skill/SkillDetailView.d.ts.map +1 -1
  462. package/skill/SkillDetailView.js +107 -39
  463. package/skill/SkillDetailView.js.map +1 -1
  464. package/skill/SkillDiffDialog.d.ts +42 -0
  465. package/skill/SkillDiffDialog.d.ts.map +1 -0
  466. package/skill/SkillDiffDialog.js +72 -0
  467. package/skill/SkillDiffDialog.js.map +1 -0
  468. package/skill/SkillFileBrowser.d.ts +31 -0
  469. package/skill/SkillFileBrowser.d.ts.map +1 -0
  470. package/skill/SkillFileBrowser.js +105 -0
  471. package/skill/SkillFileBrowser.js.map +1 -0
  472. package/skill/SkillUploader.d.ts +39 -0
  473. package/skill/SkillUploader.d.ts.map +1 -0
  474. package/skill/SkillUploader.js +141 -0
  475. package/skill/SkillUploader.js.map +1 -0
  476. package/skill/index.d.ts +18 -0
  477. package/skill/index.d.ts.map +1 -1
  478. package/skill/index.js +9 -0
  479. package/skill/index.js.map +1 -1
  480. package/skill/internal/computeArtifactHash.d.ts +9 -0
  481. package/skill/internal/computeArtifactHash.d.ts.map +1 -0
  482. package/skill/internal/computeArtifactHash.js +14 -0
  483. package/skill/internal/computeArtifactHash.js.map +1 -0
  484. package/skill/internal/fetchAndUnpackArtifact.d.ts +16 -0
  485. package/skill/internal/fetchAndUnpackArtifact.d.ts.map +1 -0
  486. package/skill/internal/fetchAndUnpackArtifact.js +34 -0
  487. package/skill/internal/fetchAndUnpackArtifact.js.map +1 -0
  488. package/skill/usePushSkill.d.ts +53 -0
  489. package/skill/usePushSkill.d.ts.map +1 -0
  490. package/skill/usePushSkill.js +57 -0
  491. package/skill/usePushSkill.js.map +1 -0
  492. package/skill/useSkillArtifact.d.ts +37 -0
  493. package/skill/useSkillArtifact.d.ts.map +1 -0
  494. package/skill/useSkillArtifact.js +76 -0
  495. package/skill/useSkillArtifact.js.map +1 -0
  496. package/skill/useSkillDiff.d.ts +31 -0
  497. package/skill/useSkillDiff.d.ts.map +1 -0
  498. package/skill/useSkillDiff.js +97 -0
  499. package/skill/useSkillDiff.js.map +1 -0
  500. package/skill/useSkillDuplicateCheck.d.ts +34 -0
  501. package/skill/useSkillDuplicateCheck.d.ts.map +1 -0
  502. package/skill/useSkillDuplicateCheck.js +58 -0
  503. package/skill/useSkillDuplicateCheck.js.map +1 -0
  504. package/skill/useSkillUpload.d.ts +69 -0
  505. package/skill/useSkillUpload.d.ts.map +1 -0
  506. package/skill/useSkillUpload.js +157 -0
  507. package/skill/useSkillUpload.js.map +1 -0
  508. package/skill/useSkillVersions.d.ts +46 -0
  509. package/skill/useSkillVersions.d.ts.map +1 -0
  510. package/skill/useSkillVersions.js +104 -0
  511. package/skill/useSkillVersions.js.map +1 -0
  512. package/src/action-menu/ActionMenu.tsx +151 -0
  513. package/src/action-menu/index.ts +9 -0
  514. package/src/action-menu/types.ts +70 -0
  515. package/src/agent/AgentCreationWizard.tsx +201 -0
  516. package/src/agent/AgentDetailView.tsx +817 -321
  517. package/src/agent/index.ts +16 -0
  518. package/src/agent/internal/agentToInput.ts +95 -0
  519. package/src/agent/steps/CapabilitiesStep.tsx +363 -0
  520. package/src/agent/steps/IdentityStep.tsx +259 -0
  521. package/src/agent/steps/ReviewStep.tsx +211 -0
  522. package/src/agent/steps/types.ts +53 -0
  523. package/src/agent/useCreateAgent.ts +76 -0
  524. package/src/agent/useUpdateAgent.ts +55 -0
  525. package/src/composer/ContextChip.tsx +20 -11
  526. package/src/composer/SessionComposer.tsx +52 -3
  527. package/src/dependency-graph/DependencyGraph.tsx +153 -0
  528. package/src/dependency-graph/DependencyTreeNode.tsx +282 -0
  529. package/src/dependency-graph/index.ts +15 -0
  530. package/src/dependency-graph/types.ts +131 -0
  531. package/src/dependency-graph/useDependencyGraph.ts +158 -0
  532. package/src/empty-state/EmptyState.tsx +90 -0
  533. package/src/empty-state/index.ts +9 -0
  534. package/src/empty-state/types.ts +81 -0
  535. package/src/empty-state/useEmptyState.ts +85 -0
  536. package/src/environment/usePersonalEnvironment.ts +1 -0
  537. package/src/feedback/StigmerToaster.tsx +45 -0
  538. package/src/feedback/index.ts +3 -0
  539. package/src/feedback/toast.ts +13 -0
  540. package/src/feedback/types.ts +7 -0
  541. package/src/index.ts +275 -8
  542. package/src/inline-edit/InlineEditImage.tsx +208 -0
  543. package/src/inline-edit/InlineEditKeyValue.tsx +301 -0
  544. package/src/inline-edit/InlineEditResourceList.tsx +325 -0
  545. package/src/inline-edit/InlineEditSelect.tsx +150 -0
  546. package/src/inline-edit/InlineEditText.tsx +211 -0
  547. package/src/inline-edit/InlineEditTextarea.tsx +209 -0
  548. package/src/inline-edit/index.ts +28 -0
  549. package/src/inline-edit/types.ts +47 -0
  550. package/src/inline-edit/useInlineFieldSave.ts +62 -0
  551. package/src/internal/Tabs.tsx +4 -164
  552. package/src/internal/useFetch.ts +2 -2
  553. package/src/library/ImportResourceDialog.tsx +227 -0
  554. package/src/library/index.ts +18 -8
  555. package/src/library/serialize-resource-yaml.ts +356 -0
  556. package/src/library/useExportResource.ts +183 -0
  557. package/src/library/useImportResource.ts +253 -0
  558. package/src/mcp-server/McpServerCreationWizard.tsx +206 -0
  559. package/src/mcp-server/McpServerDetailView.tsx +816 -155
  560. package/src/mcp-server/index.ts +16 -0
  561. package/src/mcp-server/internal/mcpServerToInput.ts +95 -0
  562. package/src/mcp-server/steps/EnvironmentAuthStep.tsx +462 -0
  563. package/src/mcp-server/steps/IdentityTransportStep.tsx +531 -0
  564. package/src/mcp-server/steps/ReviewStep.tsx +297 -0
  565. package/src/mcp-server/steps/types.ts +85 -0
  566. package/src/mcp-server/useCreateMcpServer.ts +76 -0
  567. package/src/mcp-server/useUpdateMcpServer.ts +55 -0
  568. package/src/models/ModelRegistryContext.ts +3 -0
  569. package/src/models/ModelSelector.tsx +25 -2
  570. package/src/models/__tests__/useModelRegistry.test.tsx +5 -3
  571. package/src/models/useModelRegistry.ts +5 -2
  572. package/src/provider.tsx +69 -18
  573. package/src/resource-creation/CreationPicker.tsx +292 -0
  574. package/src/resource-creation/StepIndicator.tsx +156 -0
  575. package/src/resource-creation/TemplateCard.tsx +143 -0
  576. package/src/resource-creation/TemplateGallery.tsx +222 -0
  577. package/src/resource-creation/WizardNav.tsx +163 -0
  578. package/src/resource-creation/WizardShell.tsx +124 -0
  579. package/src/resource-creation/index.ts +45 -0
  580. package/src/resource-creation/templates/agent-templates.ts +160 -0
  581. package/src/resource-creation/templates/index.ts +7 -0
  582. package/src/resource-creation/templates/mcp-server-templates.ts +106 -0
  583. package/src/resource-creation/templates/types.ts +64 -0
  584. package/src/resource-creation/types.ts +105 -0
  585. package/src/resource-creation/useTemplateFilter.ts +117 -0
  586. package/src/resource-creation/useWizardState.ts +223 -0
  587. package/src/resource-detail/ConfirmDialog.tsx +127 -0
  588. package/src/resource-detail/ResourceActionBar.tsx +157 -0
  589. package/src/resource-detail/ResourceDetailShell.tsx +184 -0
  590. package/src/resource-detail/Section.tsx +78 -0
  591. package/src/resource-detail/index.ts +34 -0
  592. package/src/resource-detail/types.ts +177 -0
  593. package/src/resource-detail/useConfirmAction.ts +70 -0
  594. package/src/resource-detail/useCopyResource.ts +74 -0
  595. package/src/resource-detail/useDeleteResource.ts +110 -0
  596. package/src/resource-detail/useDetailTabs.ts +93 -0
  597. package/src/resource-workbench/components/BulkActionBar.tsx +122 -0
  598. package/src/resource-workbench/components/ColumnHeader.tsx +105 -0
  599. package/src/resource-workbench/components/FilterBar.tsx +173 -0
  600. package/src/resource-workbench/components/ResourceAvatar.tsx +109 -0
  601. package/src/resource-workbench/components/ResourceCards.tsx +126 -0
  602. package/src/resource-workbench/components/ResourceInspector.tsx +88 -0
  603. package/src/resource-workbench/components/ResourceList.tsx +121 -0
  604. package/src/resource-workbench/components/ResourceTable.tsx +222 -0
  605. package/src/resource-workbench/components/ResourceWorkbench.tsx +695 -0
  606. package/src/resource-workbench/components/SelectionCheckbox.tsx +52 -0
  607. package/src/resource-workbench/components/StatusBadge.tsx +119 -0
  608. package/src/resource-workbench/components/ViewSwitcher.tsx +135 -0
  609. package/src/resource-workbench/hooks/useResourceCollection.ts +261 -0
  610. package/src/resource-workbench/hooks/useResourceFilters.ts +216 -0
  611. package/src/resource-workbench/hooks/useResourceSelection.ts +178 -0
  612. package/src/resource-workbench/hooks/useViewPreference.ts +75 -0
  613. package/src/resource-workbench/index.ts +73 -0
  614. package/src/resource-workbench/types.ts +220 -0
  615. package/src/runner/RunnerDetailView.tsx +410 -0
  616. package/src/runner/RunnerListPanel.tsx +126 -111
  617. package/src/runner/index.ts +13 -1
  618. package/src/runner/shared.tsx +124 -0
  619. package/src/runner/useRunner.ts +59 -0
  620. package/src/session/__tests__/group-sessions.test.ts +5 -3
  621. package/src/session/__tests__/session-spec-converters.test.ts +185 -0
  622. package/src/session/__tests__/useNewSessionFlow.test.tsx +2 -2
  623. package/src/session/__tests__/usePersistedModel.test.tsx +1 -1
  624. package/src/session/group-sessions.ts +65 -0
  625. package/src/session/index.ts +8 -2
  626. package/src/session/session-spec-converters.ts +86 -0
  627. package/src/session/useSessionConversation.ts +5 -64
  628. package/src/session/useSessionPageFlow.ts +28 -7
  629. package/src/session/useSessionSearch.ts +149 -0
  630. package/src/skill/SkillDetailView.tsx +371 -165
  631. package/src/skill/SkillDiffDialog.tsx +213 -0
  632. package/src/skill/SkillFileBrowser.tsx +289 -0
  633. package/src/skill/SkillUploader.tsx +481 -0
  634. package/src/skill/index.ts +34 -0
  635. package/src/skill/internal/computeArtifactHash.ts +13 -0
  636. package/src/skill/internal/fetchAndUnpackArtifact.ts +48 -0
  637. package/src/skill/usePushSkill.ts +101 -0
  638. package/src/skill/useSkillArtifact.ts +107 -0
  639. package/src/skill/useSkillDiff.ts +128 -0
  640. package/src/skill/useSkillDuplicateCheck.ts +92 -0
  641. package/src/skill/useSkillUpload.ts +231 -0
  642. package/src/skill/useSkillVersions.ts +165 -0
  643. package/src/styles.css +28 -0
  644. package/src/tabs/Tabs.tsx +184 -0
  645. package/src/tabs/index.ts +2 -0
  646. package/src/version-history/DiffFileList.tsx +111 -0
  647. package/src/version-history/DiffSummary.tsx +61 -0
  648. package/src/version-history/DiffViewer.tsx +163 -0
  649. package/src/version-history/MultiFileDiffView.tsx +114 -0
  650. package/src/version-history/VersionTimeline.tsx +232 -0
  651. package/src/version-history/VersionTimelineEntry.tsx +254 -0
  652. package/src/version-history/computeDiff.ts +61 -0
  653. package/src/version-history/computeMultiFileDiff.ts +97 -0
  654. package/src/version-history/index.ts +22 -0
  655. package/src/version-history/types.ts +129 -0
  656. package/styles.css +1 -1
  657. package/tabs/Tabs.d.ts +58 -0
  658. package/tabs/Tabs.d.ts.map +1 -0
  659. package/tabs/Tabs.js +80 -0
  660. package/tabs/Tabs.js.map +1 -0
  661. package/tabs/index.d.ts +3 -0
  662. package/tabs/index.d.ts.map +1 -0
  663. package/tabs/index.js +2 -0
  664. package/tabs/index.js.map +1 -0
  665. package/version-history/DiffFileList.d.ts +22 -0
  666. package/version-history/DiffFileList.d.ts.map +1 -0
  667. package/version-history/DiffFileList.js +37 -0
  668. package/version-history/DiffFileList.js.map +1 -0
  669. package/version-history/DiffSummary.d.ts +21 -0
  670. package/version-history/DiffSummary.d.ts.map +1 -0
  671. package/version-history/DiffSummary.js +16 -0
  672. package/version-history/DiffSummary.js.map +1 -0
  673. package/version-history/DiffViewer.d.ts +31 -0
  674. package/version-history/DiffViewer.d.ts.map +1 -0
  675. package/version-history/DiffViewer.js +60 -0
  676. package/version-history/DiffViewer.js.map +1 -0
  677. package/version-history/MultiFileDiffView.d.ts +30 -0
  678. package/version-history/MultiFileDiffView.d.ts.map +1 -0
  679. package/version-history/MultiFileDiffView.js +40 -0
  680. package/version-history/MultiFileDiffView.js.map +1 -0
  681. package/version-history/VersionTimeline.d.ts +29 -0
  682. package/version-history/VersionTimeline.d.ts.map +1 -0
  683. package/version-history/VersionTimeline.js +87 -0
  684. package/version-history/VersionTimeline.js.map +1 -0
  685. package/version-history/VersionTimelineEntry.d.ts +22 -0
  686. package/version-history/VersionTimelineEntry.d.ts.map +1 -0
  687. package/version-history/VersionTimelineEntry.js +98 -0
  688. package/version-history/VersionTimelineEntry.js.map +1 -0
  689. package/version-history/computeDiff.d.ts +16 -0
  690. package/version-history/computeDiff.d.ts.map +1 -0
  691. package/version-history/computeDiff.js +54 -0
  692. package/version-history/computeDiff.js.map +1 -0
  693. package/version-history/computeMultiFileDiff.d.ts +15 -0
  694. package/version-history/computeMultiFileDiff.d.ts.map +1 -0
  695. package/version-history/computeMultiFileDiff.js +83 -0
  696. package/version-history/computeMultiFileDiff.js.map +1 -0
  697. package/version-history/index.d.ts +14 -0
  698. package/version-history/index.d.ts.map +1 -0
  699. package/version-history/index.js +9 -0
  700. package/version-history/index.js.map +1 -0
  701. package/version-history/types.d.ts +106 -0
  702. package/version-history/types.d.ts.map +1 -0
  703. package/version-history/types.js +2 -0
  704. package/version-history/types.js.map +1 -0
  705. package/library/ResourceListView.d.ts +0 -174
  706. package/library/ResourceListView.d.ts.map +0 -1
  707. package/library/ResourceListView.js +0 -318
  708. package/library/ResourceListView.js.map +0 -1
  709. package/src/library/ResourceListView.tsx +0 -956
@@ -0,0 +1,131 @@
1
+ import { type ReactNode } from "react";
2
+ import type { SearchResult } from "@stigmer/protos/ai/stigmer/search/v1/io_pb";
3
+ import type { ListParams, ListResult } from "@stigmer/sdk";
4
+ import type { WorkbenchColumnDef, FilterDef, FilterValue, SortValue, BulkAction, ViewMode } from "../types";
5
+ /** Props for {@link ResourceWorkbench}. */
6
+ export interface ResourceWorkbenchProps<TData = SearchResult> {
7
+ /**
8
+ * Async function that fetches a page of resources. Receives `ListParams`
9
+ * and returns `ListResult`. Pass `null` to disable fetching.
10
+ */
11
+ readonly listFn: ((params: ListParams) => Promise<ListResult>) | null;
12
+ /** Organization slug. Pass `null` to disable fetching. */
13
+ readonly org: string | null;
14
+ /** Column definitions for the table view. */
15
+ readonly columns?: readonly WorkbenchColumnDef<TData>[];
16
+ /** Available filter definitions. */
17
+ readonly filterDefs?: readonly FilterDef[];
18
+ /** Available view modes. @default ["table", "cards", "list"] */
19
+ readonly viewModes?: readonly ViewMode[];
20
+ /** Default view mode. @default "table" */
21
+ readonly defaultViewMode?: ViewMode;
22
+ /**
23
+ * localStorage key for persisting view mode preference.
24
+ * Pass `undefined` to disable persistence.
25
+ */
26
+ readonly viewModeStorageKey?: string;
27
+ /**
28
+ * Custom card renderer for card view. Receives the item and its index.
29
+ * When omitted, the workbench falls back to a default card layout.
30
+ */
31
+ readonly renderCard?: (item: TData, index: number) => ReactNode;
32
+ /**
33
+ * Custom row renderer for list view. Receives the item and its index.
34
+ * When omitted, falls back to a default row layout.
35
+ */
36
+ readonly renderRow?: (item: TData, index: number) => ReactNode;
37
+ /** Per-item action renderer (shown in table rows, card corners, list ends). */
38
+ readonly renderItemAction?: (item: TData) => ReactNode;
39
+ /**
40
+ * Inspector content renderer. When provided, clicking an item opens
41
+ * the split-panel inspector with this content. When omitted, the
42
+ * inspector is disabled.
43
+ */
44
+ readonly renderInspector?: (item: TData) => ReactNode;
45
+ /** Bulk actions available when items are selected. */
46
+ readonly bulkActions?: readonly BulkAction<TData>[];
47
+ /** Called when an item is clicked (navigates to detail, etc.). */
48
+ readonly onItemClick?: (item: TData) => void;
49
+ /** Initial filter values (e.g. restored from URL on mount). */
50
+ readonly initialFilters?: readonly FilterValue[];
51
+ /** Initial sort (e.g. restored from URL on mount). */
52
+ readonly initialSort?: SortValue | null;
53
+ /** Initial search query (e.g. restored from URL on mount). */
54
+ readonly initialQuery?: string;
55
+ /** Scope for resource visibility. @default "org" */
56
+ readonly scope?: "org" | "all";
57
+ /** Called when scope changes (for Console to persist). */
58
+ readonly onScopeChange?: (scope: "org" | "all") => void;
59
+ /** Called when any filter/sort/query state changes (for URL sync). */
60
+ readonly onStateChange?: (state: {
61
+ filters: readonly FilterValue[];
62
+ sort: SortValue | null;
63
+ query: string;
64
+ }) => void;
65
+ /** Enable selection checkboxes and bulk actions. @default false */
66
+ readonly enableSelection?: boolean;
67
+ /** Extracts a unique ID from an item (for selection tracking). */
68
+ readonly getItemId?: (item: TData) => string;
69
+ /** Icon for the empty state. */
70
+ readonly emptyIcon?: ReactNode;
71
+ /** Title for the empty state. */
72
+ readonly emptyTitle?: string;
73
+ /** Description for the empty state. */
74
+ readonly emptyDescription?: string;
75
+ /**
76
+ * Custom CTA rendered in the first-use empty state (no items, no
77
+ * active filters). Use this to provide a creation entry point that
78
+ * is visually co-located with the "no resources yet" message.
79
+ *
80
+ * Accepts any ReactNode — typically a `<Link>` or `<button>`.
81
+ */
82
+ readonly emptyAction?: ReactNode;
83
+ /** Called when the user clicks "Retry" after an error. */
84
+ readonly onRetry?: () => void;
85
+ /**
86
+ * Primary action rendered right-aligned in the toolbar, after the
87
+ * view mode switcher. Use this for the workbench's main creation
88
+ * entry point — e.g. a "Create agent" button or link.
89
+ *
90
+ * Accepts any ReactNode so consumers control routing and styling.
91
+ */
92
+ readonly headerAction?: ReactNode;
93
+ /** Search input placeholder text. @default "Search\u2026" */
94
+ readonly searchPlaceholder?: string;
95
+ /** Accessible label for the workbench region. @default "Resource workbench" */
96
+ readonly "aria-label"?: string;
97
+ /** Additional CSS classes for the root container. */
98
+ readonly className?: string;
99
+ }
100
+ /**
101
+ * Full-featured resource collection workbench that composes headless
102
+ * hooks and focused view components into a complete browsing experience.
103
+ *
104
+ * Provides:
105
+ * - Toolbar with search input, filter chips, and view mode switcher
106
+ * - Three view modes: table, cards, and compact list
107
+ * - Row/card selection with bulk action bar
108
+ * - Optional split-panel inspector for item previews
109
+ * - Empty, loading, and error states
110
+ * - Pagination
111
+ *
112
+ * The workbench is the "drop-in" tier of the resource collection
113
+ * architecture. Platform builders who want more control use the
114
+ * individual hooks and view components directly.
115
+ *
116
+ * @example
117
+ * ```tsx
118
+ * <ResourceWorkbench
119
+ * listFn={(params) => stigmer.agent.list(params)}
120
+ * org={activeOrg}
121
+ * columns={agentColumns}
122
+ * filterDefs={agentFilterDefs}
123
+ * renderItemAction={(item) => <AgentActionMenu item={item} />}
124
+ * onItemClick={(item) => navigate(`/agents/${item.slug}`)}
125
+ * emptyTitle="No agents yet"
126
+ * emptyDescription="Create an agent to get started."
127
+ * />
128
+ * ```
129
+ */
130
+ export declare function ResourceWorkbench<TData = SearchResult>({ listFn, org, columns, filterDefs, viewModes, defaultViewMode, viewModeStorageKey, renderCard, renderRow, renderItemAction, renderInspector, bulkActions, onItemClick, initialFilters, initialSort, initialQuery, scope: controlledScope, onScopeChange, onStateChange, enableSelection, getItemId, emptyIcon, emptyTitle, emptyDescription, emptyAction, onRetry, headerAction, searchPlaceholder, "aria-label": ariaLabel, className, }: ResourceWorkbenchProps<TData>): import("react/jsx-runtime").JSX.Element;
131
+ //# sourceMappingURL=ResourceWorkbench.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceWorkbench.d.ts","sourceRoot":"","sources":["../../../src/resource-workbench/components/ResourceWorkbench.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback, useRef, useState } from "react";
4
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
5
+ import { cn } from "@stigmer/theme";
6
+ import { useResourceCollection } from "../hooks/useResourceCollection";
7
+ import { useResourceFilters } from "../hooks/useResourceFilters";
8
+ import { useResourceSelection } from "../hooks/useResourceSelection";
9
+ import { useViewPreference } from "../hooks/useViewPreference";
10
+ import { ResourceTable } from "./ResourceTable";
11
+ import { ResourceCards } from "./ResourceCards";
12
+ import { ResourceList } from "./ResourceList";
13
+ import { FilterBar } from "./FilterBar";
14
+ import { ViewSwitcher } from "./ViewSwitcher";
15
+ import { BulkActionBar } from "./BulkActionBar";
16
+ import { ResourceInspector } from "./ResourceInspector";
17
+ import { EmptyState } from "../../empty-state";
18
+ import { ResourceAvatar } from "./ResourceAvatar";
19
+ // ---------------------------------------------------------------------------
20
+ // Component
21
+ // ---------------------------------------------------------------------------
22
+ const DEBOUNCE_MS = 300;
23
+ /**
24
+ * Full-featured resource collection workbench that composes headless
25
+ * hooks and focused view components into a complete browsing experience.
26
+ *
27
+ * Provides:
28
+ * - Toolbar with search input, filter chips, and view mode switcher
29
+ * - Three view modes: table, cards, and compact list
30
+ * - Row/card selection with bulk action bar
31
+ * - Optional split-panel inspector for item previews
32
+ * - Empty, loading, and error states
33
+ * - Pagination
34
+ *
35
+ * The workbench is the "drop-in" tier of the resource collection
36
+ * architecture. Platform builders who want more control use the
37
+ * individual hooks and view components directly.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <ResourceWorkbench
42
+ * listFn={(params) => stigmer.agent.list(params)}
43
+ * org={activeOrg}
44
+ * columns={agentColumns}
45
+ * filterDefs={agentFilterDefs}
46
+ * renderItemAction={(item) => <AgentActionMenu item={item} />}
47
+ * onItemClick={(item) => navigate(`/agents/${item.slug}`)}
48
+ * emptyTitle="No agents yet"
49
+ * emptyDescription="Create an agent to get started."
50
+ * />
51
+ * ```
52
+ */
53
+ export function ResourceWorkbench({ listFn, org, columns = [], filterDefs = [], viewModes = ["table", "cards", "list"], defaultViewMode = "table", viewModeStorageKey, renderCard, renderRow, renderItemAction, renderInspector, bulkActions = [], onItemClick, initialFilters, initialSort, initialQuery, scope: controlledScope = "org", onScopeChange, onStateChange, enableSelection = false, getItemId = defaultGetId, emptyIcon, emptyTitle = "No resources found", emptyDescription = "Try adjusting your search or filters.", emptyAction, onRetry, headerAction, searchPlaceholder = "Search\u2026", "aria-label": ariaLabel = "Resource workbench", className, }) {
54
+ // --- View preference ---------------------------------------------------
55
+ const { viewMode, setViewMode } = useViewPreference(viewModeStorageKey, defaultViewMode);
56
+ // --- Filter/sort/query state -------------------------------------------
57
+ const filtersHook = useResourceFilters({
58
+ filterDefs,
59
+ initialFilters,
60
+ initialSort,
61
+ initialQuery,
62
+ onStateChange,
63
+ queryDebounceMs: DEBOUNCE_MS,
64
+ });
65
+ // --- Pagination --------------------------------------------------------
66
+ const [page, setPage] = useState(1);
67
+ const prevQueryRef = useRef(filtersHook.debouncedQuery);
68
+ if (prevQueryRef.current !== filtersHook.debouncedQuery) {
69
+ prevQueryRef.current = filtersHook.debouncedQuery;
70
+ setPage(1);
71
+ }
72
+ // --- Collection data ---------------------------------------------------
73
+ const collection = useResourceCollection({
74
+ listFn: listFn,
75
+ org,
76
+ query: filtersHook.debouncedQuery,
77
+ scope: controlledScope,
78
+ page,
79
+ sort: filtersHook.sort,
80
+ onSortChange: filtersHook.setSort,
81
+ columns: columns,
82
+ enableSelection,
83
+ });
84
+ // --- Selection ---------------------------------------------------------
85
+ const selection = useResourceSelection(collection.items, getItemId);
86
+ // --- Inspector ---------------------------------------------------------
87
+ const [inspectedItem, setInspectedItem] = useState(null);
88
+ const inspectorEnabled = !!renderInspector;
89
+ const handleItemClick = useCallback((item) => {
90
+ if (inspectorEnabled) {
91
+ setInspectedItem(item);
92
+ }
93
+ onItemClick?.(item);
94
+ }, [inspectorEnabled, onItemClick]);
95
+ // --- Content resolution ------------------------------------------------
96
+ const showSkeletons = collection.isLoading && collection.items.length === 0;
97
+ const showError = !!collection.error && !collection.isLoading;
98
+ const showEmpty = !collection.isLoading && !collection.error && collection.items.length === 0;
99
+ const showContent = collection.items.length > 0;
100
+ const showPagination = collection.totalPages > 1;
101
+ // --- Selected IDs as Set for cards/list views --------------------------
102
+ const selectedIdSet = selection.selectedIds;
103
+ return (_jsxs("div", { "aria-label": ariaLabel, className: cn("flex flex-col gap-3", className), children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("div", { className: "relative flex-1", children: [_jsx(SearchIcon, { className: "pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground-subtle" }), _jsx("input", { type: "text", value: filtersHook.query, onChange: (e) => filtersHook.setQuery(e.target.value), placeholder: searchPlaceholder, "aria-label": searchPlaceholder, className: cn("w-full rounded-md border border-input bg-background py-1.5 pl-8 pr-3 text-sm", "placeholder:text-muted-foreground-subtle", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring") })] }), viewModes.length > 1 && (_jsx(ViewSwitcher, { value: viewMode, onChange: setViewMode, modes: viewModes })), headerAction] }), _jsx(FilterBar, { filters: filtersHook.filters, filterDefs: filterDefs, onRemoveFilter: filtersHook.removeFilter, onClearAll: filtersHook.clearFilters }), _jsxs("div", { className: "flex min-h-0 flex-1", children: [_jsxs("div", { className: cn("min-w-0 flex-1", collection.isRefetching &&
104
+ "pointer-events-none opacity-60 transition-opacity"), children: [showSkeletons && _jsx(SkeletonPlaceholder, { viewMode: viewMode }), showError && (_jsx(EmptyState, { variant: "error", errorMessage: collection.error.message, action: onRetry
105
+ ? { label: "Retry", onClick: onRetry ?? collection.refetch }
106
+ : undefined })), showEmpty && (_jsx(EmptyState, { variant: filtersHook.hasActiveFilters || filtersHook.debouncedQuery
107
+ ? "zero-results"
108
+ : "first-use", icon: emptyIcon, title: filtersHook.hasActiveFilters || filtersHook.debouncedQuery
109
+ ? "No results match your filters"
110
+ : emptyTitle, description: filtersHook.hasActiveFilters || filtersHook.debouncedQuery
111
+ ? "Try adjusting your search or removing some filters."
112
+ : emptyDescription, action: filtersHook.hasActiveFilters
113
+ ? {
114
+ label: "Clear filters",
115
+ onClick: filtersHook.clearFilters,
116
+ }
117
+ : undefined, children: !filtersHook.hasActiveFilters && !filtersHook.debouncedQuery
118
+ ? emptyAction
119
+ : undefined })), showContent && viewMode === "table" && collection.table && (_jsx(ResourceTable, { table: collection.table, enableSelection: enableSelection, renderRowAction: renderItemAction, onRowClick: handleItemClick })), showContent && viewMode === "cards" && (_jsx(ResourceCards, { items: collection.items, renderCard: renderCard ??
120
+ ((item) => _jsx(DefaultCardContent, { item: item })), enableSelection: enableSelection, selectedIds: selectedIdSet, onToggleSelection: selection.toggleItem, getItemId: getItemId, renderCardAction: renderItemAction, onCardClick: handleItemClick })), showContent && viewMode === "list" && (_jsx(ResourceList, { items: collection.items, renderRow: renderRow ??
121
+ ((item) => _jsx(DefaultRowContent, { item: item })), enableSelection: enableSelection, selectedIds: selectedIdSet, onToggleSelection: selection.toggleItem, getItemId: getItemId, renderRowAction: renderItemAction, onRowClick: handleItemClick })), showPagination && (_jsx(PaginationBar, { currentPage: collection.currentPage, totalPages: collection.totalPages, totalCount: collection.totalCount, onPageChange: setPage }))] }), inspectorEnabled && (_jsx(ResourceInspector, { open: inspectedItem !== null, onClose: () => setInspectedItem(null), children: inspectedItem && renderInspector(inspectedItem) }))] }), enableSelection && selection.hasSelection && (_jsx(BulkActionBar, { selectedCount: selection.selectedCount, selectedItems: selection.selectedItems, actions: bulkActions, onCancel: selection.clearSelection }))] }));
122
+ }
123
+ // ---------------------------------------------------------------------------
124
+ // Internal helpers
125
+ // ---------------------------------------------------------------------------
126
+ function defaultGetId(item) {
127
+ const r = item;
128
+ if (typeof r.id === "string")
129
+ return r.id;
130
+ if (typeof r.slug === "string")
131
+ return r.slug;
132
+ return "";
133
+ }
134
+ function DefaultCardContent({ item }) {
135
+ const isSkill = item.kind === ApiResourceKind.skill;
136
+ return (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(ResourceAvatar, { name: item.name || item.slug, slug: item.slug, iconUrl: item.iconUrl || undefined, hidden: isSkill }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: item.name || item.slug }), item.org && (_jsx("p", { className: "text-xs text-muted-foreground", children: item.org })), item.description && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-xs text-muted-foreground", children: item.description }))] })] }));
137
+ }
138
+ function DefaultRowContent({ item }) {
139
+ const isSkill = item.kind === ApiResourceKind.skill;
140
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ResourceAvatar, { name: item.name || item.slug, slug: item.slug, iconUrl: item.iconUrl || undefined, hidden: isSkill, size: "sm" }), _jsx("span", { className: "text-sm font-medium text-foreground", children: item.name || item.slug }), item.org && (_jsx("span", { className: "text-xs text-muted-foreground", children: item.org })), item.description && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground-subtle", "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { className: "truncate text-xs text-muted-foreground", children: item.description })] }))] }));
141
+ }
142
+ // ---------------------------------------------------------------------------
143
+ // Skeleton placeholder
144
+ // ---------------------------------------------------------------------------
145
+ function SkeletonPlaceholder({ viewMode, }) {
146
+ if (viewMode === "cards") {
147
+ return (_jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3", "aria-busy": "true", children: Array.from({ length: 6 }, (_, i) => (_jsxs("div", { className: "flex flex-col gap-3 rounded-lg border border-border bg-card p-4", "aria-hidden": "true", children: [_jsx("div", { className: "h-4 w-3/5 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-3 w-2/5 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-3 w-full animate-pulse rounded bg-muted" })] }, i))) }));
148
+ }
149
+ return (_jsx("div", { "aria-busy": "true", children: Array.from({ length: 5 }, (_, i) => (_jsxs("div", { className: "flex items-center gap-3 px-3 py-2.5", "aria-hidden": "true", children: [_jsx("div", { className: "h-4 w-4 shrink-0 animate-pulse rounded bg-muted" }), _jsxs("div", { className: "flex-1 space-y-2", children: [_jsx("div", { className: "h-4 animate-pulse rounded bg-muted", style: { width: `${30 + (i * 7) % 25}%` } }), _jsx("div", { className: "h-3 animate-pulse rounded bg-muted", style: { width: `${55 + (i * 5) % 20}%` } })] })] }, i))) }));
150
+ }
151
+ // ---------------------------------------------------------------------------
152
+ // Pagination
153
+ // ---------------------------------------------------------------------------
154
+ function PaginationBar({ currentPage, totalPages, totalCount, onPageChange, }) {
155
+ const navBtnClass = cn("inline-flex items-center rounded-md p-1.5", "border border-input bg-background text-foreground", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50");
156
+ return (_jsxs("nav", { "aria-label": "Pagination", className: "flex items-center justify-between border-t border-border pt-3", children: [_jsxs("span", { className: "text-xs text-muted-foreground", children: [totalCount.toLocaleString(), " ", totalCount === 1 ? "result" : "results"] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("button", { type: "button", onClick: () => onPageChange(currentPage - 1), disabled: currentPage <= 1, "aria-label": "Previous page", className: navBtnClass, children: _jsx(ChevronLeftIcon, {}) }), _jsxs("span", { className: "text-xs text-muted-foreground", children: ["Page ", currentPage, " of ", totalPages] }), _jsx("button", { type: "button", onClick: () => onPageChange(currentPage + 1), disabled: currentPage >= totalPages, "aria-label": "Next page", className: navBtnClass, children: _jsx(ChevronRightIcon, {}) })] })] }));
157
+ }
158
+ // ---------------------------------------------------------------------------
159
+ // Icons
160
+ // ---------------------------------------------------------------------------
161
+ function SearchIcon({ className }) {
162
+ return (_jsxs("svg", { className: className, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("circle", { cx: "6.5", cy: "6.5", r: "4.5" }), _jsx("path", { d: "m10 10 4 4" })] }));
163
+ }
164
+ function ChevronLeftIcon() {
165
+ return (_jsx("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "m10 3-5 5 5 5" }) }));
166
+ }
167
+ function ChevronRightIcon() {
168
+ return (_jsx("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("path", { d: "m6 3 5 5-5 5" }) }));
169
+ }
170
+ //# sourceMappingURL=ResourceWorkbench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceWorkbench.js","sourceRoot":"","sources":["../../../src/resource-workbench/components/ResourceWorkbench.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,qFAAqF,CAAC;AAEtH,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AASpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA8HlD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,iBAAiB,CAAuB,EACtD,MAAM,EACN,GAAG,EACH,OAAO,GAAG,EAAE,EACZ,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EACtC,eAAe,GAAG,OAAO,EACzB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,GAAG,EAAE,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,KAAK,EAAE,eAAe,GAAG,KAAK,EAC9B,aAAa,EACb,aAAa,EACb,eAAe,GAAG,KAAK,EACvB,SAAS,GAAG,YAAuC,EACnD,SAAS,EACT,UAAU,GAAG,oBAAoB,EACjC,gBAAgB,GAAG,uCAAuC,EAC1D,WAAW,EACX,OAAO,EACP,YAAY,EACZ,iBAAiB,GAAG,cAAc,EAClC,YAAY,EAAE,SAAS,GAAG,oBAAoB,EAC9C,SAAS,GACqB;IAC9B,0EAA0E;IAC1E,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,iBAAiB,CACjD,kBAAkB,EAClB,eAAe,CAChB,CAAC;IAEF,0EAA0E;IAC1E,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,UAAU;QACV,cAAc;QACd,WAAW;QACX,YAAY;QACZ,aAAa;QACb,eAAe,EAAE,WAAW;KAC7B,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACxD,IAAI,YAAY,CAAC,OAAO,KAAK,WAAW,CAAC,cAAc,EAAE,CAAC;QACxD,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC;QAClD,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,0EAA0E;IAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAQ;QAC9C,MAAM,EAAE,MAA8D;QACtE,GAAG;QACH,KAAK,EAAE,WAAW,CAAC,cAAc;QACjC,KAAK,EAAE,eAAe;QACtB,IAAI;QACJ,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,YAAY,EAAE,WAAW,CAAC,OAAO;QACjC,OAAO,EAAE,OAAsC;QAC/C,eAAe;KAChB,CAAC,CAAC;IAEH,0EAA0E;IAC1E,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpE,0EAA0E;IAC1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,CAAC,CAAC,eAAe,CAAC;IAE3C,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAAW,EAAE,EAAE;QACd,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAChC,CAAC;IAEF,0EAA0E;IAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IAC9D,MAAM,SAAS,GACb,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;IAEjD,0EAA0E;IAC1E,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC;IAE5C,OAAO,CACL,6BACc,SAAS,EACrB,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,aAG/C,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,iBAAiB,aAC9B,KAAC,UAAU,IAAC,SAAS,EAAC,yGAAyG,GAAG,EAClI,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACrD,WAAW,EAAE,iBAAiB,gBAClB,iBAAiB,EAC7B,SAAS,EAAE,EAAE,CACX,8EAA8E,EAC9E,0CAA0C,EAC1C,yEAAyE,CAC1E,GACD,IACE,EACL,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,SAAS,GAChB,CACH,EACA,YAAY,IACT,EAGN,KAAC,SAAS,IACR,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,WAAW,CAAC,YAAY,EACxC,UAAU,EAAE,WAAW,CAAC,YAAY,GACpC,EAGF,eAAK,SAAS,EAAC,qBAAqB,aAClC,eACE,SAAS,EAAE,EAAE,CACX,gBAAgB,EAChB,UAAU,CAAC,YAAY;4BACrB,mDAAmD,CACtD,aAEA,aAAa,IAAI,KAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAE5D,SAAS,IAAI,CACZ,KAAC,UAAU,IACT,OAAO,EAAC,OAAO,EACf,YAAY,EAAE,UAAU,CAAC,KAAM,CAAC,OAAO,EACvC,MAAM,EACJ,OAAO;oCACL,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE;oCAC5D,CAAC,CAAC,SAAS,GAEf,CACH,EAEA,SAAS,IAAI,CACZ,KAAC,UAAU,IACT,OAAO,EACL,WAAW,CAAC,gBAAgB,IAAI,WAAW,CAAC,cAAc;oCACxD,CAAC,CAAC,cAAc;oCAChB,CAAC,CAAC,WAAW,EAEjB,IAAI,EAAE,SAAS,EACf,KAAK,EACH,WAAW,CAAC,gBAAgB,IAAI,WAAW,CAAC,cAAc;oCACxD,CAAC,CAAC,+BAA+B;oCACjC,CAAC,CAAC,UAAU,EAEhB,WAAW,EACT,WAAW,CAAC,gBAAgB,IAAI,WAAW,CAAC,cAAc;oCACxD,CAAC,CAAC,qDAAqD;oCACvD,CAAC,CAAC,gBAAgB,EAEtB,MAAM,EACJ,WAAW,CAAC,gBAAgB;oCAC1B,CAAC,CAAC;wCACE,KAAK,EAAE,eAAe;wCACtB,OAAO,EAAE,WAAW,CAAC,YAAY;qCAClC;oCACH,CAAC,CAAC,SAAS,YAGd,CAAC,WAAW,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,cAAc;oCAC3D,CAAC,CAAC,WAAW;oCACb,CAAC,CAAC,SAAS,GACF,CACd,EAEA,WAAW,IAAI,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,KAAK,IAAI,CAC1D,KAAC,aAAa,IACZ,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,gBAAgB,EACjC,UAAU,EAAE,eAAe,GAC3B,CACH,EAEA,WAAW,IAAI,QAAQ,KAAK,OAAO,IAAI,CACtC,KAAC,aAAa,IACZ,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,UAAU,EACR,UAAU;oCACV,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,kBAAkB,IAAC,IAAI,EAAE,IAA+B,GAAI,CAAC,EAE3E,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,aAAa,EAC1B,iBAAiB,EAAE,SAAS,CAAC,UAAU,EACvC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,eAAe,GAC5B,CACH,EAEA,WAAW,IAAI,QAAQ,KAAK,MAAM,IAAI,CACrC,KAAC,YAAY,IACX,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,SAAS,EACP,SAAS;oCACT,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAA+B,GAAI,CAAC,EAE1E,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,aAAa,EAC1B,iBAAiB,EAAE,SAAS,CAAC,UAAU,EACvC,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,gBAAgB,EACjC,UAAU,EAAE,eAAe,GAC3B,CACH,EAEA,cAAc,IAAI,CACjB,KAAC,aAAa,IACZ,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,UAAU,EAAE,UAAU,CAAC,UAAU,EACjC,UAAU,EAAE,UAAU,CAAC,UAAU,EACjC,YAAY,EAAE,OAAO,GACrB,CACH,IACG,EAGL,gBAAgB,IAAI,CACnB,KAAC,iBAAiB,IAChB,IAAI,EAAE,aAAa,KAAK,IAAI,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAEpC,aAAa,IAAI,eAAgB,CAAC,aAAa,CAAC,GAC/B,CACrB,IACG,EAGL,eAAe,IAAI,SAAS,CAAC,YAAY,IAAI,CAC5C,KAAC,aAAa,IACZ,aAAa,EAAE,SAAS,CAAC,aAAa,EACtC,aAAa,EAAE,SAAS,CAAC,aAAa,EACtC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,SAAS,CAAC,cAAc,GAClC,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,SAAS,YAAY,CAAC,IAAa;IACjC,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC;IAC9C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,IAAI,EAAmC;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC;IACpD,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAClC,MAAM,EAAE,OAAO,GACf,EACF,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAM,SAAS,EAAC,qCAAqC,YAClD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAClB,EACN,IAAI,CAAC,GAAG,IAAI,CACX,YAAG,SAAS,EAAC,+BAA+B,YAAE,IAAI,CAAC,GAAG,GAAK,CAC5D,EACA,IAAI,CAAC,WAAW,IAAI,CACnB,YAAG,SAAS,EAAC,mDAAmD,YAC7D,IAAI,CAAC,WAAW,GACf,CACL,IACG,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAmC;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC;IACpD,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,EAClC,MAAM,EAAE,OAAO,EACf,IAAI,EAAC,IAAI,GACT,EACF,eAAM,SAAS,EAAC,qCAAqC,YAClD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAClB,EACN,IAAI,CAAC,GAAG,IAAI,CACX,eAAM,SAAS,EAAC,+BAA+B,YAAE,IAAI,CAAC,GAAG,GAAQ,CAClE,EACA,IAAI,CAAC,WAAW,IAAI,CACnB,8BACE,eAAM,SAAS,EAAC,8BAA8B,iBAAa,MAAM,YAC9D,QAAQ,GACJ,EACP,eAAM,SAAS,EAAC,wCAAwC,YACrD,IAAI,CAAC,WAAW,GACZ,IACN,CACJ,IACG,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,EAC3B,QAAQ,GAGT;IACC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CACL,cACE,SAAS,EAAC,sDAAsD,eACtD,MAAM,YAEf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnC,eAEE,SAAS,EAAC,iEAAiE,iBAC/D,MAAM,aAElB,cAAK,SAAS,EAAC,0CAA0C,GAAG,EAC5D,cAAK,SAAS,EAAC,0CAA0C,GAAG,EAC5D,cAAK,SAAS,EAAC,2CAA2C,GAAG,KANxD,CAAC,CAOF,CACP,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,2BAAe,MAAM,YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnC,eAEE,SAAS,EAAC,qCAAqC,iBACnC,MAAM,aAElB,cAAK,SAAS,EAAC,iDAAiD,GAAG,EACnE,eAAK,SAAS,EAAC,kBAAkB,aAC/B,cACE,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GACzC,EACF,cACE,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GACzC,IACE,KAdD,CAAC,CAeF,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,SAAS,aAAa,CAAC,EACrB,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,GAMb;IACC,MAAM,WAAW,GAAG,EAAE,CACpB,2CAA2C,EAC3C,mDAAmD,EACnD,8CAA8C,EAC9C,yEAAyE,EACzE,kDAAkD,CACnD,CAAC;IAEF,OAAO,CACL,6BACa,YAAY,EACvB,SAAS,EAAC,+DAA+D,aAEzE,gBAAM,SAAS,EAAC,+BAA+B,aAC5C,UAAU,CAAC,cAAc,EAAE,EAAE,GAAG,EAChC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IACnC,EACP,eAAK,SAAS,EAAC,yBAAyB,aACtC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,EAC5C,QAAQ,EAAE,WAAW,IAAI,CAAC,gBACf,eAAe,EAC1B,SAAS,EAAE,WAAW,YAEtB,KAAC,eAAe,KAAG,GACZ,EACT,gBAAM,SAAS,EAAC,+BAA+B,sBACvC,WAAW,UAAM,UAAU,IAC5B,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,EAC5C,QAAQ,EAAE,WAAW,IAAI,UAAU,gBACxB,WAAW,EACtB,SAAS,EAAE,WAAW,YAEtB,KAAC,gBAAgB,KAAG,GACb,IACL,IACF,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,SAAS,UAAU,CAAC,EAAE,SAAS,EAAmC;IAChE,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,aAElB,iBAAQ,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,GAAG,EACpC,eAAM,CAAC,EAAC,YAAY,GAAG,IACnB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CACL,cACE,SAAS,EAAC,aAAa,EACvB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,YAElB,eAAM,CAAC,EAAC,eAAe,GAAG,GACtB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,cACE,SAAS,EAAC,aAAa,EACvB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,YAElB,eAAM,CAAC,EAAC,cAAc,GAAG,GACrB,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** Props for {@link SelectionCheckbox}. */
2
+ export interface SelectionCheckboxProps {
3
+ /** Whether the checkbox is checked. */
4
+ readonly checked: boolean;
5
+ /**
6
+ * Indeterminate state (e.g. header checkbox when some but not all
7
+ * rows are selected). Overrides `checked` visually.
8
+ */
9
+ readonly indeterminate?: boolean;
10
+ /** Called when the user toggles the checkbox. */
11
+ readonly onChange: (checked: boolean) => void;
12
+ /** Accessible label for the checkbox. */
13
+ readonly "aria-label": string;
14
+ /** Additional CSS classes. */
15
+ readonly className?: string;
16
+ }
17
+ /**
18
+ * Accessible checkbox for row/card selection and "select all" headers.
19
+ *
20
+ * Uses a native `<input type="checkbox">` with the `indeterminate`
21
+ * property set via ref for proper browser + screen reader support.
22
+ */
23
+ export declare function SelectionCheckbox({ checked, indeterminate, onChange, "aria-label": ariaLabel, className, }: SelectionCheckboxProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=SelectionCheckbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionCheckbox.d.ts","sourceRoot":"","sources":["../../../src/resource-workbench/components/SelectionCheckbox.tsx"],"names":[],"mappings":"AAIA,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,aAAqB,EACrB,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,SAAS,GACV,EAAE,sBAAsB,2CAkBxB"}
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from "@stigmer/theme";
4
+ /**
5
+ * Accessible checkbox for row/card selection and "select all" headers.
6
+ *
7
+ * Uses a native `<input type="checkbox">` with the `indeterminate`
8
+ * property set via ref for proper browser + screen reader support.
9
+ */
10
+ export function SelectionCheckbox({ checked, indeterminate = false, onChange, "aria-label": ariaLabel, className, }) {
11
+ return (_jsx("input", { type: "checkbox", role: "checkbox", checked: checked, ref: (el) => {
12
+ if (el)
13
+ el.indeterminate = indeterminate;
14
+ }, onChange: (e) => onChange(e.target.checked), "aria-label": ariaLabel, className: cn("size-3.5 shrink-0 cursor-pointer rounded border border-input accent-primary", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1", className) }));
15
+ }
16
+ //# sourceMappingURL=SelectionCheckbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionCheckbox.js","sourceRoot":"","sources":["../../../src/resource-workbench/components/SelectionCheckbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAmBpC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,aAAa,GAAG,KAAK,EACrB,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,SAAS,GACc;IACvB,OAAO,CACL,gBACE,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;YACV,IAAI,EAAE;gBAAE,EAAE,CAAC,aAAa,GAAG,aAAa,CAAC;QAC3C,CAAC,EACD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAC/B,SAAS,EACrB,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,qGAAqG,EACrG,SAAS,CACV,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { StatusPhase } from "../types";
2
+ /** Props for {@link StatusBadge}. */
3
+ export interface StatusBadgeProps {
4
+ /** The status phase to display. Maps to `--stgm-status-*` tokens. */
5
+ readonly phase: StatusPhase;
6
+ /**
7
+ * Optional human-readable label override. When omitted, the phase
8
+ * name is title-cased (e.g. "ready" becomes "Ready").
9
+ */
10
+ readonly label?: string;
11
+ /** Tooltip text shown on hover. When omitted, no tooltip renders. */
12
+ readonly tooltip?: string;
13
+ /** Additional CSS classes for the root element. */
14
+ readonly className?: string;
15
+ }
16
+ /**
17
+ * Accessible status indicator that combines a color dot with a text label.
18
+ *
19
+ * Never communicates status through color alone — the text label is always
20
+ * present (WCAG 1.4.1). Colors come from `--stgm-status-*` design tokens
21
+ * defined in `@stigmer/theme`, ensuring correct appearance in both light
22
+ * and dark modes.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <StatusBadge phase="ready" />
27
+ * <StatusBadge phase="failed" label="Unreachable" tooltip="Last checked 2m ago" />
28
+ * ```
29
+ */
30
+ export declare function StatusBadge({ phase, label, tooltip, className, }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
31
+ //# sourceMappingURL=StatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/resource-workbench/components/StatusBadge.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,GACV,EAAE,gBAAgB,2CA0BlB"}
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn } from "@stigmer/theme";
4
+ const PHASE_LABELS = {
5
+ ready: "Ready",
6
+ running: "Running",
7
+ pending: "Pending",
8
+ degraded: "Degraded",
9
+ failed: "Failed",
10
+ disabled: "Disabled",
11
+ draft: "Draft",
12
+ };
13
+ /**
14
+ * Accessible status indicator that combines a color dot with a text label.
15
+ *
16
+ * Never communicates status through color alone — the text label is always
17
+ * present (WCAG 1.4.1). Colors come from `--stgm-status-*` design tokens
18
+ * defined in `@stigmer/theme`, ensuring correct appearance in both light
19
+ * and dark modes.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <StatusBadge phase="ready" />
24
+ * <StatusBadge phase="failed" label="Unreachable" tooltip="Last checked 2m ago" />
25
+ * ```
26
+ */
27
+ export function StatusBadge({ phase, label, tooltip, className, }) {
28
+ const displayLabel = label ?? PHASE_LABELS[phase];
29
+ const badge = (_jsxs("span", { className: cn("inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[11px] font-medium leading-none", statusClasses(phase), className), children: [_jsx("span", { className: cn("size-1.5 shrink-0 rounded-full", dotClasses(phase)), "aria-hidden": "true" }), displayLabel] }));
30
+ if (!tooltip)
31
+ return badge;
32
+ return (_jsx("span", { title: tooltip, className: "inline-flex", children: badge }));
33
+ }
34
+ /**
35
+ * Maps a status phase to Tailwind classes using `--stgm-status-*` tokens.
36
+ * Background uses the `-subtle` variant; text uses the main status color.
37
+ */
38
+ function statusClasses(phase) {
39
+ switch (phase) {
40
+ case "ready":
41
+ return "bg-[var(--stgm-status-ready-subtle)] text-[var(--stgm-status-ready)]";
42
+ case "running":
43
+ return "bg-[var(--stgm-status-running-subtle)] text-[var(--stgm-status-running)]";
44
+ case "pending":
45
+ return "bg-[var(--stgm-status-pending-subtle)] text-[var(--stgm-status-pending)]";
46
+ case "degraded":
47
+ return "bg-[var(--stgm-status-degraded-subtle)] text-[var(--stgm-status-degraded)]";
48
+ case "failed":
49
+ return "bg-[var(--stgm-status-failed-subtle)] text-[var(--stgm-status-failed)]";
50
+ case "disabled":
51
+ return "bg-[var(--stgm-status-disabled-subtle)] text-[var(--stgm-status-disabled)]";
52
+ case "draft":
53
+ return "bg-[var(--stgm-status-draft-subtle)] text-[var(--stgm-status-draft)]";
54
+ }
55
+ }
56
+ /** Maps a status phase to the dot's background color (the main token). */
57
+ function dotClasses(phase) {
58
+ switch (phase) {
59
+ case "ready":
60
+ return "bg-[var(--stgm-status-ready)]";
61
+ case "running":
62
+ return "bg-[var(--stgm-status-running)]";
63
+ case "pending":
64
+ return "bg-[var(--stgm-status-pending)]";
65
+ case "degraded":
66
+ return "bg-[var(--stgm-status-degraded)]";
67
+ case "failed":
68
+ return "bg-[var(--stgm-status-failed)]";
69
+ case "disabled":
70
+ return "bg-[var(--stgm-status-disabled)]";
71
+ case "draft":
72
+ return "bg-[var(--stgm-status-draft)]";
73
+ }
74
+ }
75
+ //# sourceMappingURL=StatusBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../../src/resource-workbench/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAkBpC,MAAM,YAAY,GAAgC;IAChD,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,GACQ;IACjB,MAAM,YAAY,GAAG,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,KAAK,GAAG,CACZ,gBACE,SAAS,EAAE,EAAE,CACX,gGAAgG,EAChG,aAAa,CAAC,KAAK,CAAC,EACpB,SAAS,CACV,aAED,eACE,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,iBACtD,MAAM,GAClB,EACD,YAAY,IACR,CACR,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,OAAO,CACL,eAAM,KAAK,EAAE,OAAO,EAAE,SAAS,EAAC,aAAa,YAC1C,KAAK,GACD,CACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAkB;IACvC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,sEAAsE,CAAC;QAChF,KAAK,SAAS;YACZ,OAAO,0EAA0E,CAAC;QACpF,KAAK,SAAS;YACZ,OAAO,0EAA0E,CAAC;QACpF,KAAK,UAAU;YACb,OAAO,4EAA4E,CAAC;QACtF,KAAK,QAAQ;YACX,OAAO,wEAAwE,CAAC;QAClF,KAAK,UAAU;YACb,OAAO,4EAA4E,CAAC;QACtF,KAAK,OAAO;YACV,OAAO,sEAAsE,CAAC;IAClF,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CAAC,KAAkB;IACpC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,+BAA+B,CAAC;QACzC,KAAK,SAAS;YACZ,OAAO,iCAAiC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,iCAAiC,CAAC;QAC3C,KAAK,UAAU;YACb,OAAO,kCAAkC,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO,gCAAgC,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,kCAAkC,CAAC;QAC5C,KAAK,OAAO;YACV,OAAO,+BAA+B,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ViewMode } from "../types";
2
+ /** Props for {@link ViewSwitcher}. */
3
+ export interface ViewSwitcherProps {
4
+ /** Currently active view mode. */
5
+ readonly value: ViewMode;
6
+ /** Called when the user selects a different view mode. */
7
+ readonly onChange: (mode: ViewMode) => void;
8
+ /** Which view modes to show. @default ["table", "cards", "list"] */
9
+ readonly modes?: readonly ViewMode[];
10
+ /** Additional CSS classes. */
11
+ readonly className?: string;
12
+ }
13
+ /**
14
+ * Toggle button group for switching between table, cards, and list views.
15
+ *
16
+ * Uses `role="radiogroup"` with `role="radio"` children for accessible
17
+ * view switching. Each button shows an icon and is labeled for screen
18
+ * readers.
19
+ */
20
+ export declare function ViewSwitcher({ value, onChange, modes, className, }: ViewSwitcherProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=ViewSwitcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSwitcher.d.ts","sourceRoot":"","sources":["../../../src/resource-workbench/components/ViewSwitcher.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,KAAkC,EAClC,SAAS,GACV,EAAE,iBAAiB,2CAkCnB"}
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn } from "@stigmer/theme";
4
+ const MODE_META = {
5
+ table: { label: "Table view", icon: TableIcon },
6
+ cards: { label: "Card view", icon: CardsIcon },
7
+ list: { label: "List view", icon: ListIcon },
8
+ };
9
+ /**
10
+ * Toggle button group for switching between table, cards, and list views.
11
+ *
12
+ * Uses `role="radiogroup"` with `role="radio"` children for accessible
13
+ * view switching. Each button shows an icon and is labeled for screen
14
+ * readers.
15
+ */
16
+ export function ViewSwitcher({ value, onChange, modes = ["table", "cards", "list"], className, }) {
17
+ return (_jsx("div", { role: "radiogroup", "aria-label": "View mode", className: cn("inline-flex rounded-md border border-input", className), children: modes.map((mode) => {
18
+ const { label, icon: Icon } = MODE_META[mode];
19
+ const isActive = value === mode;
20
+ return (_jsx("button", { type: "button", role: "radio", "aria-checked": isActive, "aria-label": label, onClick: () => onChange(mode), className: cn("inline-flex items-center justify-center px-2 py-1.5 transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:z-10", "first:rounded-l-[calc(var(--stgm-radius)-1px)] last:rounded-r-[calc(var(--stgm-radius)-1px)]", "border-r border-input last:border-r-0", isActive
21
+ ? "bg-accent text-accent-foreground"
22
+ : "text-muted-foreground hover:text-foreground hover:bg-accent-hover"), children: _jsx(Icon, {}) }, mode));
23
+ }) }));
24
+ }
25
+ // ---------------------------------------------------------------------------
26
+ // Icons (inline SVGs matching the SDK's icon pattern)
27
+ // ---------------------------------------------------------------------------
28
+ function TableIcon() {
29
+ return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("rect", { x: "1.5", y: "1.5", width: "11", height: "11", rx: "1.5" }), _jsx("path", { d: "M1.5 5.5h11M1.5 9h11M5.5 5.5v6" })] }));
30
+ }
31
+ function CardsIcon() {
32
+ return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("rect", { x: "1.5", y: "1.5", width: "4.5", height: "4.5", rx: "1" }), _jsx("rect", { x: "8", y: "1.5", width: "4.5", height: "4.5", rx: "1" }), _jsx("rect", { x: "1.5", y: "8", width: "4.5", height: "4.5", rx: "1" }), _jsx("rect", { x: "8", y: "8", width: "4.5", height: "4.5", rx: "1" })] }));
33
+ }
34
+ function ListIcon() {
35
+ return (_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("path", { d: "M4.5 3h8M4.5 7h8M4.5 11h8" }), _jsx("circle", { cx: "2", cy: "3", r: "0.75", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "2", cy: "7", r: "0.75", fill: "currentColor", stroke: "none" }), _jsx("circle", { cx: "2", cy: "11", r: "0.75", fill: "currentColor", stroke: "none" })] }));
36
+ }
37
+ //# sourceMappingURL=ViewSwitcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSwitcher.js","sourceRoot":"","sources":["../../../src/resource-workbench/components/ViewSwitcher.tsx"],"names":[],"mappings":"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"}