@tai42/studio-sdk 16.0.0 → 17.0.0

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 (486) hide show
  1. package/dist/components/code-block.js +1 -1
  2. package/dist/components/code-block.js.map +1 -1
  3. package/dist/components/confirm-dialog.js +1 -1
  4. package/dist/components/confirm-dialog.js.map +1 -1
  5. package/dist/components/copy-field.js +1 -1
  6. package/dist/components/copy-field.js.map +1 -1
  7. package/dist/components/date-range-picker.d.ts.map +1 -1
  8. package/dist/components/date-range-picker.js.map +1 -1
  9. package/dist/components/dialog.d.ts.map +1 -1
  10. package/dist/components/dialog.js.map +1 -1
  11. package/dist/components/dirty-guard.d.ts.map +1 -1
  12. package/dist/components/dirty-guard.js +1 -1
  13. package/dist/components/dirty-guard.js.map +1 -1
  14. package/dist/components/explorer-body.d.ts +49 -0
  15. package/dist/components/explorer-body.d.ts.map +1 -0
  16. package/dist/components/explorer-body.js +67 -0
  17. package/dist/components/explorer-body.js.map +1 -0
  18. package/dist/components/explorer-page-size.d.ts +4 -0
  19. package/dist/components/explorer-page-size.d.ts.map +1 -0
  20. package/dist/components/explorer-page-size.js +36 -0
  21. package/dist/components/explorer-page-size.js.map +1 -0
  22. package/dist/components/explorer-tag-filter.d.ts +17 -0
  23. package/dist/components/explorer-tag-filter.d.ts.map +1 -0
  24. package/dist/components/explorer-tag-filter.js +29 -0
  25. package/dist/components/explorer-tag-filter.js.map +1 -0
  26. package/dist/components/explorer-tags.d.ts +22 -0
  27. package/dist/components/explorer-tags.d.ts.map +1 -0
  28. package/dist/components/explorer-tags.js +51 -0
  29. package/dist/components/explorer-tags.js.map +1 -0
  30. package/dist/components/explorer-view.d.ts +3 -17
  31. package/dist/components/explorer-view.d.ts.map +1 -1
  32. package/dist/components/explorer-view.js +53 -170
  33. package/dist/components/explorer-view.js.map +1 -1
  34. package/dist/components/extension-combo-builder.d.ts +1 -6
  35. package/dist/components/extension-combo-builder.d.ts.map +1 -1
  36. package/dist/components/extension-combo-builder.js +4 -79
  37. package/dist/components/extension-combo-builder.js.map +1 -1
  38. package/dist/components/extension-combo-parts.d.ts +44 -0
  39. package/dist/components/extension-combo-parts.d.ts.map +1 -0
  40. package/dist/components/extension-combo-parts.js +52 -0
  41. package/dist/components/extension-combo-parts.js.map +1 -0
  42. package/dist/components/field.d.ts +8 -0
  43. package/dist/components/field.d.ts.map +1 -1
  44. package/dist/components/field.js +0 -8
  45. package/dist/components/field.js.map +1 -1
  46. package/dist/components/fleet-report.d.ts +1 -1
  47. package/dist/components/fleet-report.d.ts.map +1 -1
  48. package/dist/components/fleet-report.js +51 -37
  49. package/dist/components/fleet-report.js.map +1 -1
  50. package/dist/components/folder-nav.d.ts.map +1 -1
  51. package/dist/components/folder-nav.js +1 -1
  52. package/dist/components/folder-nav.js.map +1 -1
  53. package/dist/components/form-dialog.d.ts.map +1 -1
  54. package/dist/components/form-dialog.js +1 -1
  55. package/dist/components/form-dialog.js.map +1 -1
  56. package/dist/components/icons/chrome-marks.d.ts +50 -0
  57. package/dist/components/icons/chrome-marks.d.ts.map +1 -0
  58. package/dist/components/icons/chrome-marks.js +51 -0
  59. package/dist/components/icons/chrome-marks.js.map +1 -0
  60. package/dist/components/icons/icon-frame.d.ts +29 -0
  61. package/dist/components/icons/icon-frame.d.ts.map +1 -0
  62. package/dist/components/icons/icon-frame.js +19 -0
  63. package/dist/components/icons/icon-frame.js.map +1 -0
  64. package/dist/components/icons/index.d.ts +40 -0
  65. package/dist/components/icons/index.d.ts.map +1 -0
  66. package/dist/components/icons/index.js +39 -0
  67. package/dist/components/icons/index.js.map +1 -0
  68. package/dist/components/icons/nav-map.d.ts +14 -0
  69. package/dist/components/icons/nav-map.d.ts.map +1 -0
  70. package/dist/components/icons/nav-map.js +28 -0
  71. package/dist/components/icons/nav-map.js.map +1 -0
  72. package/dist/components/icons/nav-marks.d.ts +44 -0
  73. package/dist/components/icons/nav-marks.d.ts.map +1 -0
  74. package/dist/components/icons/nav-marks.js +45 -0
  75. package/dist/components/icons/nav-marks.js.map +1 -0
  76. package/dist/components/icons/status-marks.d.ts +21 -0
  77. package/dist/components/icons/status-marks.d.ts.map +1 -0
  78. package/dist/components/icons/status-marks.js +22 -0
  79. package/dist/components/icons/status-marks.js.map +1 -0
  80. package/dist/components/icons/theme-marks.d.ts +9 -0
  81. package/dist/components/icons/theme-marks.d.ts.map +1 -0
  82. package/dist/components/icons/theme-marks.js +10 -0
  83. package/dist/components/icons/theme-marks.js.map +1 -0
  84. package/dist/components/inputs.js.map +1 -1
  85. package/dist/components/json-diff.d.ts.map +1 -1
  86. package/dist/components/json-diff.js +1 -3
  87. package/dist/components/json-diff.js.map +1 -1
  88. package/dist/components/json-tree-context.d.ts +13 -0
  89. package/dist/components/json-tree-context.d.ts.map +1 -0
  90. package/dist/components/json-tree-context.js +15 -0
  91. package/dist/components/json-tree-context.js.map +1 -0
  92. package/dist/components/json-tree-model.d.ts +56 -0
  93. package/dist/components/json-tree-model.d.ts.map +1 -0
  94. package/dist/components/json-tree-model.js +125 -0
  95. package/dist/components/json-tree-model.js.map +1 -0
  96. package/dist/components/json-tree-nodes.d.ts +35 -0
  97. package/dist/components/json-tree-nodes.d.ts.map +1 -0
  98. package/dist/components/json-tree-nodes.js +113 -0
  99. package/dist/components/json-tree-nodes.js.map +1 -0
  100. package/dist/components/json-tree.d.ts +20 -0
  101. package/dist/components/json-tree.d.ts.map +1 -1
  102. package/dist/components/json-tree.js +7 -315
  103. package/dist/components/json-tree.js.map +1 -1
  104. package/dist/components/json-value-format.d.ts +20 -0
  105. package/dist/components/json-value-format.d.ts.map +1 -0
  106. package/dist/components/json-value-format.js +63 -0
  107. package/dist/components/json-value-format.js.map +1 -0
  108. package/dist/components/markdown-blocks.d.ts +38 -0
  109. package/dist/components/markdown-blocks.d.ts.map +1 -0
  110. package/dist/components/markdown-blocks.js +168 -0
  111. package/dist/components/markdown-blocks.js.map +1 -0
  112. package/dist/components/markdown-inline.d.ts +24 -0
  113. package/dist/components/markdown-inline.d.ts.map +1 -0
  114. package/dist/components/markdown-inline.js +257 -0
  115. package/dist/components/markdown-inline.js.map +1 -0
  116. package/dist/components/markdown.d.ts +3 -52
  117. package/dist/components/markdown.d.ts.map +1 -1
  118. package/dist/components/markdown.js +4 -376
  119. package/dist/components/markdown.js.map +1 -1
  120. package/dist/components/observer-registry.d.ts +38 -0
  121. package/dist/components/observer-registry.d.ts.map +1 -0
  122. package/dist/components/observer-registry.js +131 -0
  123. package/dist/components/observer-registry.js.map +1 -0
  124. package/dist/components/overflow-measure.d.ts +38 -0
  125. package/dist/components/overflow-measure.d.ts.map +1 -0
  126. package/dist/components/overflow-measure.js +54 -0
  127. package/dist/components/overflow-measure.js.map +1 -0
  128. package/dist/components/page-fill.d.ts.map +1 -1
  129. package/dist/components/page-fill.js.map +1 -1
  130. package/dist/components/prose-regions.d.ts +81 -0
  131. package/dist/components/prose-regions.d.ts.map +1 -0
  132. package/dist/components/prose-regions.js +128 -0
  133. package/dist/components/prose-regions.js.map +1 -0
  134. package/dist/components/radio-group.d.ts.map +1 -1
  135. package/dist/components/radio-group.js.map +1 -1
  136. package/dist/components/scroll-region.d.ts +24 -0
  137. package/dist/components/scroll-region.d.ts.map +1 -1
  138. package/dist/components/scroll-region.js +3 -322
  139. package/dist/components/scroll-region.js.map +1 -1
  140. package/dist/components/tab-stop-parse.d.ts +53 -0
  141. package/dist/components/tab-stop-parse.d.ts.map +1 -0
  142. package/dist/components/tab-stop-parse.js +202 -0
  143. package/dist/components/tab-stop-parse.js.map +1 -0
  144. package/dist/components/table.d.ts +1 -1
  145. package/dist/components/table.d.ts.map +1 -1
  146. package/dist/components/tags.d.ts.map +1 -1
  147. package/dist/components/tags.js +1 -1
  148. package/dist/components/tags.js.map +1 -1
  149. package/dist/components/templated-text-field.d.ts +1 -1
  150. package/dist/components/templated-text-field.d.ts.map +1 -1
  151. package/dist/components/templated-text-field.js +10 -174
  152. package/dist/components/templated-text-field.js.map +1 -1
  153. package/dist/components/templated-text-kwargs-editor.d.ts +24 -0
  154. package/dist/components/templated-text-kwargs-editor.d.ts.map +1 -0
  155. package/dist/components/templated-text-kwargs-editor.js +48 -0
  156. package/dist/components/templated-text-kwargs-editor.js.map +1 -0
  157. package/dist/components/templated-text-kwargs.d.ts +37 -0
  158. package/dist/components/templated-text-kwargs.d.ts.map +1 -0
  159. package/dist/components/templated-text-kwargs.js +66 -0
  160. package/dist/components/templated-text-kwargs.js.map +1 -0
  161. package/dist/components/templated-text-source.d.ts +33 -0
  162. package/dist/components/templated-text-source.d.ts.map +1 -0
  163. package/dist/components/templated-text-source.js +53 -0
  164. package/dist/components/templated-text-source.js.map +1 -0
  165. package/dist/components/tool-picker-parts.d.ts +39 -0
  166. package/dist/components/tool-picker-parts.d.ts.map +1 -0
  167. package/dist/components/tool-picker-parts.js +87 -0
  168. package/dist/components/tool-picker-parts.js.map +1 -0
  169. package/dist/components/tool-picker.d.ts +1 -2
  170. package/dist/components/tool-picker.d.ts.map +1 -1
  171. package/dist/components/tool-picker.js +4 -66
  172. package/dist/components/tool-picker.js.map +1 -1
  173. package/dist/components/version-history-panel.d.ts.map +1 -1
  174. package/dist/components/version-history-panel.js +7 -34
  175. package/dist/components/version-history-panel.js.map +1 -1
  176. package/dist/components/version-history-rows.d.ts +48 -0
  177. package/dist/components/version-history-rows.d.ts.map +1 -0
  178. package/dist/components/version-history-rows.js +51 -0
  179. package/dist/components/version-history-rows.js.map +1 -0
  180. package/dist/components/view-toggle.d.ts.map +1 -1
  181. package/dist/components/view-toggle.js.map +1 -1
  182. package/dist/element-slot.d.ts +11 -0
  183. package/dist/element-slot.d.ts.map +1 -1
  184. package/dist/element-slot.js +0 -11
  185. package/dist/element-slot.js.map +1 -1
  186. package/dist/guards.d.ts +6 -0
  187. package/dist/guards.d.ts.map +1 -0
  188. package/dist/guards.js +8 -0
  189. package/dist/guards.js.map +1 -0
  190. package/dist/hooks/interactions-connection.d.ts +43 -0
  191. package/dist/hooks/interactions-connection.d.ts.map +1 -0
  192. package/dist/hooks/interactions-connection.js +171 -0
  193. package/dist/hooks/interactions-connection.js.map +1 -0
  194. package/dist/hooks/interactions-stream.d.ts +80 -0
  195. package/dist/hooks/interactions-stream.d.ts.map +1 -0
  196. package/dist/hooks/interactions-stream.js +233 -0
  197. package/dist/hooks/interactions-stream.js.map +1 -0
  198. package/dist/hooks/useApi.d.ts +2259 -2189
  199. package/dist/hooks/useApi.d.ts.map +1 -1
  200. package/dist/hooks/useApi.js +0 -11
  201. package/dist/hooks/useApi.js.map +1 -1
  202. package/dist/hooks/useAuth.d.ts +6 -0
  203. package/dist/hooks/useAuth.d.ts.map +1 -1
  204. package/dist/hooks/useAuth.js +0 -6
  205. package/dist/hooks/useAuth.js.map +1 -1
  206. package/dist/hooks/useCapabilities.d.ts +18 -2
  207. package/dist/hooks/useCapabilities.d.ts.map +1 -1
  208. package/dist/hooks/useCapabilities.js +1 -17
  209. package/dist/hooks/useCapabilities.js.map +1 -1
  210. package/dist/hooks/useSse.d.ts +34 -6
  211. package/dist/hooks/useSse.d.ts.map +1 -1
  212. package/dist/hooks/useSse.js +27 -471
  213. package/dist/hooks/useSse.js.map +1 -1
  214. package/dist/hooks/useSystemKinds.d.ts +1 -1
  215. package/dist/hooks/useSystemKinds.d.ts.map +1 -1
  216. package/dist/hooks/useSystemKinds.js +0 -18
  217. package/dist/hooks/useSystemKinds.js.map +1 -1
  218. package/dist/hooks/useTheme.d.ts +15 -0
  219. package/dist/hooks/useTheme.d.ts.map +1 -1
  220. package/dist/hooks/useTheme.js +0 -15
  221. package/dist/hooks/useTheme.js.map +1 -1
  222. package/dist/hooks/useToolDisplayNames.d.ts +0 -14
  223. package/dist/hooks/useToolDisplayNames.d.ts.map +1 -1
  224. package/dist/hooks/useToolDisplayNames.js +0 -14
  225. package/dist/hooks/useToolDisplayNames.js.map +1 -1
  226. package/dist/host.d.ts +3 -3
  227. package/dist/host.d.ts.map +1 -1
  228. package/dist/host.js +2 -9
  229. package/dist/host.js.map +1 -1
  230. package/dist/index.d.ts +103 -103
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +49 -62
  233. package/dist/index.js.map +1 -1
  234. package/dist/navigation/app-link.d.ts +25 -0
  235. package/dist/navigation/app-link.d.ts.map +1 -0
  236. package/dist/navigation/app-link.js +33 -0
  237. package/dist/navigation/app-link.js.map +1 -0
  238. package/dist/navigation/context.d.ts +3 -20
  239. package/dist/navigation/context.d.ts.map +1 -1
  240. package/dist/navigation/context.js +7 -267
  241. package/dist/navigation/context.js.map +1 -1
  242. package/dist/navigation/entry-state.d.ts +23 -0
  243. package/dist/navigation/entry-state.d.ts.map +1 -0
  244. package/dist/navigation/entry-state.js +39 -0
  245. package/dist/navigation/entry-state.js.map +1 -0
  246. package/dist/navigation/guard-registry.d.ts +30 -0
  247. package/dist/navigation/guard-registry.d.ts.map +1 -0
  248. package/dist/navigation/guard-registry.js +46 -0
  249. package/dist/navigation/guard-registry.js.map +1 -0
  250. package/dist/navigation/guarded-navigation.d.ts +24 -0
  251. package/dist/navigation/guarded-navigation.d.ts.map +1 -0
  252. package/dist/navigation/guarded-navigation.js +102 -0
  253. package/dist/navigation/guarded-navigation.js.map +1 -0
  254. package/dist/navigation/index.d.ts +5 -4
  255. package/dist/navigation/index.d.ts.map +1 -1
  256. package/dist/navigation/index.js +2 -1
  257. package/dist/navigation/index.js.map +1 -1
  258. package/dist/navigation/types.d.ts +8 -11
  259. package/dist/navigation/types.d.ts.map +1 -1
  260. package/dist/navigation/use-back-forward-guard.d.ts +12 -0
  261. package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
  262. package/dist/navigation/use-back-forward-guard.js +75 -0
  263. package/dist/navigation/use-back-forward-guard.js.map +1 -0
  264. package/dist/navigation/use-search-commit.d.ts.map +1 -1
  265. package/dist/navigation/use-search-commit.js.map +1 -1
  266. package/dist/plugin/host-state.d.ts.map +1 -1
  267. package/dist/plugin/host-state.js.map +1 -1
  268. package/dist/plugin/registry.d.ts +6 -15
  269. package/dist/plugin/registry.d.ts.map +1 -1
  270. package/dist/plugin/registry.js +83 -75
  271. package/dist/plugin/registry.js.map +1 -1
  272. package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
  273. package/dist/schema-editor/SchemaEditor.js.map +1 -1
  274. package/dist/schema-editor/index.d.ts +3 -3
  275. package/dist/schema-editor/index.d.ts.map +1 -1
  276. package/dist/schema-editor/index.js +1 -6
  277. package/dist/schema-editor/index.js.map +1 -1
  278. package/dist/schema-form/SecretRefField.d.ts +18 -3
  279. package/dist/schema-form/SecretRefField.d.ts.map +1 -1
  280. package/dist/schema-form/SecretRefField.js +21 -26
  281. package/dist/schema-form/SecretRefField.js.map +1 -1
  282. package/dist/schema-form/classify.d.ts +1 -113
  283. package/dist/schema-form/classify.d.ts.map +1 -1
  284. package/dist/schema-form/classify.js +174 -246
  285. package/dist/schema-form/classify.js.map +1 -1
  286. package/dist/schema-form/context.d.ts +6 -0
  287. package/dist/schema-form/context.d.ts.map +1 -1
  288. package/dist/schema-form/context.js +0 -6
  289. package/dist/schema-form/context.js.map +1 -1
  290. package/dist/schema-form/default-value.d.ts.map +1 -1
  291. package/dist/schema-form/default-value.js +42 -19
  292. package/dist/schema-form/default-value.js.map +1 -1
  293. package/dist/schema-form/enum-field.d.ts +1 -1
  294. package/dist/schema-form/enum-field.d.ts.map +1 -1
  295. package/dist/schema-form/field-group.d.ts +6 -0
  296. package/dist/schema-form/field-group.d.ts.map +1 -1
  297. package/dist/schema-form/field-group.js +0 -6
  298. package/dist/schema-form/field-group.js.map +1 -1
  299. package/dist/schema-form/field-model.d.ts +121 -0
  300. package/dist/schema-form/field-model.d.ts.map +1 -0
  301. package/dist/schema-form/field-model.js +2 -0
  302. package/dist/schema-form/field-model.js.map +1 -0
  303. package/dist/schema-form/field-node.d.ts.map +1 -1
  304. package/dist/schema-form/field-node.js +25 -14
  305. package/dist/schema-form/field-node.js.map +1 -1
  306. package/dist/schema-form/index.d.ts +8 -8
  307. package/dist/schema-form/index.d.ts.map +1 -1
  308. package/dist/schema-form/index.js +3 -34
  309. package/dist/schema-form/index.js.map +1 -1
  310. package/dist/schema-form/json-field.d.ts +19 -0
  311. package/dist/schema-form/json-field.d.ts.map +1 -1
  312. package/dist/schema-form/json-field.js +0 -19
  313. package/dist/schema-form/json-field.js.map +1 -1
  314. package/dist/schema-form/media-field.d.ts +1 -1
  315. package/dist/schema-form/media-field.d.ts.map +1 -1
  316. package/dist/schema-form/media-field.js +49 -30
  317. package/dist/schema-form/media-field.js.map +1 -1
  318. package/dist/schema-form/record-field.d.ts +12 -0
  319. package/dist/schema-form/record-field.d.ts.map +1 -1
  320. package/dist/schema-form/record-field.js +1 -13
  321. package/dist/schema-form/record-field.js.map +1 -1
  322. package/dist/schema-form/string-annotations.d.ts +20 -0
  323. package/dist/schema-form/string-annotations.d.ts.map +1 -0
  324. package/dist/schema-form/string-annotations.js +105 -0
  325. package/dist/schema-form/string-annotations.js.map +1 -0
  326. package/dist/schema-form/string-field.d.ts +1 -1
  327. package/dist/schema-form/string-field.d.ts.map +1 -1
  328. package/dist/schema-form/string-field.js +1 -1
  329. package/dist/schema-form/string-field.js.map +1 -1
  330. package/dist/schema-form/union-field.d.ts +1 -1
  331. package/dist/schema-form/union-field.d.ts.map +1 -1
  332. package/dist/schema-form/union-field.js.map +1 -1
  333. package/dist/schema-form/union.d.ts +8 -1
  334. package/dist/schema-form/union.d.ts.map +1 -1
  335. package/dist/schema-form/union.js +0 -7
  336. package/dist/schema-form/union.js.map +1 -1
  337. package/dist/schema-form/validate.d.ts.map +1 -1
  338. package/dist/schema-form/validate.js +126 -105
  339. package/dist/schema-form/validate.js.map +1 -1
  340. package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
  341. package/dist/state-binding/AdapterMapping.js +0 -0
  342. package/dist/state-binding/AdapterMapping.js.map +1 -1
  343. package/dist/state-binding/BindingJqField.d.ts.map +1 -1
  344. package/dist/state-binding/BindingJqField.js +2 -2
  345. package/dist/state-binding/BindingJqField.js.map +1 -1
  346. package/dist/state-binding/InputInjectionRow.d.ts.map +1 -1
  347. package/dist/state-binding/InputInjectionRow.js +3 -3
  348. package/dist/state-binding/InputInjectionRow.js.map +1 -1
  349. package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
  350. package/dist/state-binding/StateAttachRow.js +57 -41
  351. package/dist/state-binding/StateAttachRow.js.map +1 -1
  352. package/dist/state-binding/StateBindingSection.d.ts.map +1 -1
  353. package/dist/state-binding/StateBindingSection.js.map +1 -1
  354. package/dist/state-binding/SubjectScopeFields.d.ts.map +1 -1
  355. package/dist/state-binding/SubjectScopeFields.js.map +1 -1
  356. package/dist/state-binding/UpdateRow.d.ts.map +1 -1
  357. package/dist/state-binding/UpdateRow.js +2 -2
  358. package/dist/state-binding/UpdateRow.js.map +1 -1
  359. package/dist/state-binding/adapter-mapping-row.d.ts +17 -0
  360. package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -0
  361. package/dist/state-binding/adapter-mapping-row.js +87 -0
  362. package/dist/state-binding/adapter-mapping-row.js.map +1 -0
  363. package/dist/state-binding/index.d.ts +21 -21
  364. package/dist/state-binding/index.d.ts.map +1 -1
  365. package/dist/state-binding/index.js +9 -15
  366. package/dist/state-binding/index.js.map +1 -1
  367. package/dist/state-binding/templated-text-catalog.d.ts.map +1 -1
  368. package/dist/state-binding/templated-text-catalog.js.map +1 -1
  369. package/dist/state-binding/types.d.ts +2 -2
  370. package/dist/state-binding/types.d.ts.map +1 -1
  371. package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
  372. package/dist/structured-output/StructuredOutput.js +1 -3
  373. package/dist/structured-output/StructuredOutput.js.map +1 -1
  374. package/package.json +2 -2
  375. package/src/components/code-block.tsx +1 -1
  376. package/src/components/confirm-dialog.tsx +1 -1
  377. package/src/components/copy-field.tsx +1 -1
  378. package/src/components/date-range-picker.tsx +1 -1
  379. package/src/components/dialog.tsx +1 -1
  380. package/src/components/dirty-guard.tsx +3 -3
  381. package/src/components/explorer-body.tsx +239 -0
  382. package/src/components/explorer-page-size.ts +39 -0
  383. package/src/components/explorer-tag-filter.tsx +80 -0
  384. package/src/components/explorer-tags.ts +64 -0
  385. package/src/components/explorer-view.tsx +115 -367
  386. package/src/components/extension-combo-builder.tsx +35 -153
  387. package/src/components/extension-combo-parts.tsx +236 -0
  388. package/src/components/field.tsx +1 -1
  389. package/src/components/fleet-report.tsx +98 -55
  390. package/src/components/folder-nav.tsx +2 -2
  391. package/src/components/form-dialog.tsx +2 -2
  392. package/src/components/icons/chrome-marks.tsx +195 -0
  393. package/src/components/icons/icon-frame.tsx +50 -0
  394. package/src/components/icons/index.ts +84 -0
  395. package/src/components/icons/nav-map.ts +55 -0
  396. package/src/components/icons/nav-marks.tsx +205 -0
  397. package/src/components/icons/status-marks.tsx +46 -0
  398. package/src/components/icons/theme-marks.tsx +33 -0
  399. package/src/components/inputs.tsx +1 -1
  400. package/src/components/json-diff.tsx +1 -4
  401. package/src/components/json-tree-context.ts +26 -0
  402. package/src/components/json-tree-model.ts +139 -0
  403. package/src/components/json-tree-nodes.tsx +224 -0
  404. package/src/components/json-tree.tsx +15 -434
  405. package/src/components/json-value-format.ts +64 -0
  406. package/src/components/markdown-blocks.ts +198 -0
  407. package/src/components/markdown-inline.tsx +365 -0
  408. package/src/components/markdown.tsx +6 -472
  409. package/src/components/observer-registry.ts +139 -0
  410. package/src/components/overflow-measure.ts +69 -0
  411. package/src/components/page-fill.tsx +1 -1
  412. package/src/components/prose-regions.ts +153 -0
  413. package/src/components/radio-group.tsx +1 -1
  414. package/src/components/scroll-region.tsx +22 -361
  415. package/src/components/tab-stop-parse.ts +217 -0
  416. package/src/components/table.tsx +1 -1
  417. package/src/components/tags.tsx +2 -2
  418. package/src/components/templated-text-field.tsx +39 -332
  419. package/src/components/templated-text-kwargs-editor.tsx +147 -0
  420. package/src/components/templated-text-kwargs.ts +92 -0
  421. package/src/components/templated-text-source.tsx +226 -0
  422. package/src/components/tool-picker-parts.tsx +184 -0
  423. package/src/components/tool-picker.tsx +22 -114
  424. package/src/components/version-history-panel.tsx +39 -143
  425. package/src/components/version-history-rows.tsx +220 -0
  426. package/src/components/view-toggle.tsx +1 -1
  427. package/src/element-slot.ts +1 -1
  428. package/src/guards.ts +7 -0
  429. package/src/hooks/interactions-connection.ts +227 -0
  430. package/src/hooks/interactions-stream.ts +274 -0
  431. package/src/hooks/useApi.ts +1 -1
  432. package/src/hooks/useAuth.ts +1 -1
  433. package/src/hooks/useCapabilities.ts +3 -3
  434. package/src/hooks/useSse.ts +51 -478
  435. package/src/hooks/useSystemKinds.tsx +2 -2
  436. package/src/hooks/useTheme.ts +1 -1
  437. package/src/hooks/useToolDisplayNames.tsx +2 -2
  438. package/src/host.ts +7 -7
  439. package/src/index.ts +292 -292
  440. package/src/navigation/app-link.tsx +70 -0
  441. package/src/navigation/context.tsx +12 -331
  442. package/src/navigation/entry-state.ts +42 -0
  443. package/src/navigation/guard-registry.ts +65 -0
  444. package/src/navigation/guarded-navigation.ts +147 -0
  445. package/src/navigation/index.ts +14 -14
  446. package/src/navigation/types.ts +8 -11
  447. package/src/navigation/use-back-forward-guard.ts +90 -0
  448. package/src/navigation/use-search-commit.ts +1 -1
  449. package/src/plugin/host-state.ts +1 -1
  450. package/src/plugin/registry.ts +111 -90
  451. package/src/schema-editor/SchemaEditor.tsx +1 -1
  452. package/src/schema-editor/index.ts +3 -3
  453. package/src/schema-form/SecretRefField.tsx +122 -72
  454. package/src/schema-form/classify.ts +245 -396
  455. package/src/schema-form/context.ts +1 -1
  456. package/src/schema-form/default-value.ts +48 -17
  457. package/src/schema-form/enum-field.tsx +1 -1
  458. package/src/schema-form/field-group.tsx +1 -1
  459. package/src/schema-form/field-model.ts +133 -0
  460. package/src/schema-form/field-node.tsx +95 -39
  461. package/src/schema-form/index.ts +10 -10
  462. package/src/schema-form/json-field.tsx +1 -1
  463. package/src/schema-form/media-field.tsx +136 -67
  464. package/src/schema-form/record-field.tsx +2 -2
  465. package/src/schema-form/string-annotations.ts +111 -0
  466. package/src/schema-form/string-field.tsx +2 -2
  467. package/src/schema-form/union-field.tsx +3 -2
  468. package/src/schema-form/union.ts +1 -1
  469. package/src/schema-form/validate.ts +185 -104
  470. package/src/state-binding/AdapterMapping.tsx +0 -0
  471. package/src/state-binding/BindingJqField.tsx +3 -3
  472. package/src/state-binding/InputInjectionRow.tsx +4 -4
  473. package/src/state-binding/StateAttachRow.tsx +229 -154
  474. package/src/state-binding/StateBindingSection.tsx +1 -1
  475. package/src/state-binding/SubjectScopeFields.tsx +1 -1
  476. package/src/state-binding/UpdateRow.tsx +3 -3
  477. package/src/state-binding/adapter-mapping-row.tsx +232 -0
  478. package/src/state-binding/index.ts +43 -43
  479. package/src/state-binding/templated-text-catalog.ts +0 -1
  480. package/src/state-binding/types.ts +2 -2
  481. package/src/structured-output/StructuredOutput.tsx +1 -4
  482. package/dist/components/icons.d.ts +0 -160
  483. package/dist/components/icons.d.ts.map +0 -1
  484. package/dist/components/icons.js +0 -160
  485. package/dist/components/icons.js.map +0 -1
  486. package/src/components/icons.tsx +0 -586
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Field } from './field';
3
+ import { Textarea } from './inputs';
4
+ import { ErrorState, Skeleton } from './primitives';
5
+ import { RadioGroup } from './radio-group';
6
+ import { Select } from './select';
7
+ /** A labeled read-only reference to a stored template id, plus the note that
8
+ * stored templates are unavailable here — NOT an editable field. */
9
+ function ReadOnlyStoredReference({ id }) {
10
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--tai-space-1)' }, children: [_jsx("span", { style: { fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Stored template" }), _jsx("code", { style: { fontFamily: 'var(--tai-font-mono)', wordBreak: 'break-all' }, children: id })] }), _jsx("p", { style: { margin: 0, fontSize: 'var(--tai-text-sm)', color: 'var(--tai-color-text-muted)' }, children: "Stored templates are unavailable \u2014 this deployment has no storage backend." })] }));
11
+ }
12
+ /** The inline/stored toggle, the mode's editor, and the unresolved-id note, for
13
+ * the storage-present configuration. */
14
+ function PresentStorageSource({ label, mode, disabled, inlineEditor, error, storedDraft, templates, templateOptions, templatesLoading, templatesError, onTemplatesRetry, unresolvedId, resolveError, onModeChange, onStoredChange, }) {
15
+ return (_jsxs(_Fragment, { children: [_jsx(RadioGroup, { "aria-label": `${label} source`, variant: "segmented", value: mode, disabled: disabled, options: [
16
+ { value: 'inline', label: 'Inline text' },
17
+ { value: 'stored', label: 'Stored template' },
18
+ ], onValueChange: (next) => {
19
+ onModeChange(next);
20
+ } }), mode === 'inline' ? (inlineEditor) : templatesError !== undefined ? (_jsx(ErrorState, { message: templatesError, onRetry: onTemplatesRetry })) : templatesLoading ? (_jsx(Skeleton, { height: 36 })) : (_jsx(Field, { label: label, hideLabel: true, error: error, children: _jsx(Select, { placeholder: templates.length === 0 ? 'No templates available' : 'Select a template', value: storedDraft, disabled: disabled || templates.length === 0, options: templateOptions, onValueChange: onStoredChange }) })), unresolvedId !== undefined ? (_jsx("p", { role: "alert", style: { margin: 0, color: 'var(--tai-color-err-text)' }, children: resolveError ?? `The stored template "${unresolvedId}" is not available.` })) : null] }));
21
+ }
22
+ export function TemplatedTextSource({ label, mode, inlineDraft, storedDraft, error, disabled, placeholder, renderInline, templates, templatesLoading, templatesError, onTemplatesRetry, resolveError, storageAbsent, storagePresenceLoading, authoredStoredId, onModeChange, onInlineChange, onStoredChange, }) {
23
+ const templateOptions = templates.map((template) => ({
24
+ value: template.id,
25
+ label: template.label ?? template.id,
26
+ }));
27
+ // A stored id the catalog does not offer cannot be picked from the list; it is
28
+ // shown as an unresolved note rather than silently blanked.
29
+ const unresolvedId = mode === 'stored' &&
30
+ storedDraft.trim() !== '' &&
31
+ !templatesLoading &&
32
+ templatesError === undefined &&
33
+ !templates.some((template) => template.id === storedDraft.trim())
34
+ ? storedDraft.trim()
35
+ : undefined;
36
+ // The inline editor, shared by the present-storage inline mode and the
37
+ // absent-storage inline-only rendering: the caller's rich editor when supplied,
38
+ // else a plain textarea.
39
+ const inlineEditor = renderInline !== undefined ? (renderInline({ label, value: inlineDraft, onChange: onInlineChange, error, hideLabel: true })) : (_jsx(Field, { label: label, hideLabel: true, error: error, children: _jsx(Textarea, { value: inlineDraft, placeholder: placeholder, disabled: disabled, onChange: (event) => {
40
+ onInlineChange(event.target.value);
41
+ } }) }));
42
+ // While presence is unknown a placeholder stands in, so the toggle is never
43
+ // shown and then removed. With storage absent the stored source cannot work and
44
+ // is not offered: an inline or empty value edits inline; a value carrying an
45
+ // `id` is shown read-only. With storage present the full toggle and picker render.
46
+ if (storagePresenceLoading)
47
+ return _jsx(Skeleton, { height: 36 });
48
+ if (storageAbsent) {
49
+ return authoredStoredId !== undefined ? (_jsx(ReadOnlyStoredReference, { id: authoredStoredId })) : (inlineEditor);
50
+ }
51
+ return (_jsx(PresentStorageSource, { label: label, mode: mode, disabled: disabled, inlineEditor: inlineEditor, error: error, storedDraft: storedDraft, templates: templates, templateOptions: templateOptions, templatesLoading: templatesLoading, templatesError: templatesError, onTemplatesRetry: onTemplatesRetry, unresolvedId: unresolvedId, resolveError: resolveError, onModeChange: onModeChange, onStoredChange: onStoredChange }));
52
+ }
53
+ //# sourceMappingURL=templated-text-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templated-text-source.js","sourceRoot":"","sources":["../../src/components/templated-text-source.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The pieces of `ToolPicker`: the tool `Select` itself (grouped or flat), the tag
3
+ * filter field, and the selected tool's capability badges. The picker owns the
4
+ * state and composes these; the option-label and grouping helpers live here too.
5
+ */
6
+ import type { ReactNode } from 'react';
7
+ /** The shared informational note every badge surface carries: declared, never enforced. */
8
+ export declare const BADGES_NOTE = "Declared capability labels \u2014 informational only. They describe what the tool touches; the server never enforces them.";
9
+ export declare const ALL_TAGS = "__all_tags__";
10
+ interface ToolSelectProps {
11
+ readonly tagsByTool: Readonly<Record<string, readonly string[]>> | undefined;
12
+ readonly filtered: readonly string[];
13
+ readonly value: string | null;
14
+ readonly onChange: (toolName: string) => void;
15
+ readonly placeholder: string;
16
+ readonly ariaLabel: string | undefined;
17
+ readonly disabled: boolean | undefined;
18
+ readonly displayNames: Readonly<Record<string, string>> | undefined;
19
+ readonly agentToolNames: ReadonlySet<string> | undefined;
20
+ }
21
+ /** The tool select: grouped by tag when `tagsByTool` is present, else a flat list.
22
+ * Either branch is a `Select`, which claims the enclosing `Field`'s control id. */
23
+ export declare function ToolSelect({ tagsByTool, filtered, value, onChange, placeholder, ariaLabel, disabled, displayNames, agentToolNames, }: ToolSelectProps): ReactNode;
24
+ /** The tag filter: an "All tags" sentinel plus one option per distinct tag. */
25
+ export declare function TagFilterField({ allTags, tagFilter, onTagFilterChange, disabled, }: {
26
+ readonly allTags: readonly string[];
27
+ readonly tagFilter: string;
28
+ readonly onTagFilterChange: (value: string) => void;
29
+ readonly disabled: boolean | undefined;
30
+ }): ReactNode;
31
+ /** The selected tool's DECLARED capability badges, read-only and informational.
32
+ * Renders nothing unless the selected tool carries badges. */
33
+ export declare function SelectedToolBadges({ value, badgesByTool, idPrefix, }: {
34
+ readonly value: string | null;
35
+ readonly badgesByTool: Readonly<Record<string, readonly string[]>> | undefined;
36
+ readonly idPrefix: string;
37
+ }): ReactNode;
38
+ export {};
39
+ //# sourceMappingURL=tool-picker-parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-picker-parts.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker-parts.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,2FAA2F;AAC3F,eAAO,MAAM,WAAW,+HACiG,CAAC;AAO1H,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AAkDvC,UAAU,eAAe;IACvB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CAC1D;AAED;oFACoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,EAAE,eAAe,GAAG,SAAS,CA6B7B;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC,GAAG,SAAS,CAcZ;AAED;+DAC+D;AAC/D,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,SAAS,CAmBZ"}
@@ -0,0 +1,87 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
3
+ import { Badge } from './badge';
4
+ import { Field } from './field';
5
+ import { Select } from './select';
6
+ import { Tooltip } from './tooltip';
7
+ /** The shared informational note every badge surface carries: declared, never enforced. */
8
+ export const BADGES_NOTE = 'Declared capability labels — informational only. They describe what the tool touches; the server never enforces them.';
9
+ const NO_DISPLAY_NAMES = {};
10
+ const UNTAGGED = 'Untagged';
11
+ // Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
12
+ // uses a sentinel rather than ''. A tool literally tagged this string would just
13
+ // never be filtered out — harmless for a UI convenience whose authority is the server.
14
+ export const ALL_TAGS = '__all_tags__';
15
+ /** The group a tool sorts into: its alphabetically-first tag, else "Untagged". */
16
+ function groupFor(name, tagsByTool) {
17
+ const tags = [...(tagsByTool[name] ?? [])].sort((a, b) => a.localeCompare(b));
18
+ return tags[0] ?? UNTAGGED;
19
+ }
20
+ /**
21
+ * The option label: `Display Name (raw)` when a distinct non-empty display name maps
22
+ * the name, else the bare name; either way suffixed " (agent)" for an agent run tool.
23
+ */
24
+ function optionLabel(name, displayNames, agentToolNames) {
25
+ const base = toolDisplayLabel(displayNames ?? NO_DISPLAY_NAMES, name);
26
+ return agentToolNames?.has(name) === true ? `${base} (agent)` : base;
27
+ }
28
+ /** Build the grouped option clusters (sorted group labels, "Untagged" last). */
29
+ function buildGroups(names, tagsByTool, displayNames, agentToolNames) {
30
+ const byGroup = new Map();
31
+ for (const name of names) {
32
+ const group = groupFor(name, tagsByTool);
33
+ const bucket = byGroup.get(group) ?? [];
34
+ bucket.push(name);
35
+ byGroup.set(group, bucket);
36
+ }
37
+ return [...byGroup.entries()]
38
+ .sort(([a], [b]) => {
39
+ if (a === UNTAGGED)
40
+ return 1;
41
+ if (b === UNTAGGED)
42
+ return -1;
43
+ return a.localeCompare(b);
44
+ })
45
+ .map(([label, groupNames]) => ({
46
+ label,
47
+ options: groupNames.map((name) => ({
48
+ value: name,
49
+ label: optionLabel(name, displayNames, agentToolNames),
50
+ })),
51
+ }));
52
+ }
53
+ /** The tool select: grouped by tag when `tagsByTool` is present, else a flat list.
54
+ * Either branch is a `Select`, which claims the enclosing `Field`'s control id. */
55
+ export function ToolSelect({ tagsByTool, filtered, value, onChange, placeholder, ariaLabel, disabled, displayNames, agentToolNames, }) {
56
+ if (tagsByTool !== undefined) {
57
+ return (_jsx(Select, { groups: buildGroups(filtered, tagsByTool, displayNames, agentToolNames), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
58
+ }
59
+ return (_jsx(Select
60
+ // Keep Radix controlled even when the caller's value is null: `''` matches no
61
+ // item (placeholder still shows) and avoids the uncontrolled→controlled warning
62
+ // a subsequent selection would otherwise trigger.
63
+ , {
64
+ // Keep Radix controlled even when the caller's value is null: `''` matches no
65
+ // item (placeholder still shows) and avoids the uncontrolled→controlled warning
66
+ // a subsequent selection would otherwise trigger.
67
+ options: filtered.map((name) => ({
68
+ value: name,
69
+ label: optionLabel(name, displayNames, agentToolNames),
70
+ })), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
71
+ }
72
+ /** The tag filter: an "All tags" sentinel plus one option per distinct tag. */
73
+ export function TagFilterField({ allTags, tagFilter, onTagFilterChange, disabled, }) {
74
+ return (_jsx(Field, { label: "Filter by tag", children: _jsx(Select, { options: [
75
+ { value: ALL_TAGS, label: 'All tags' },
76
+ ...allTags.map((tag) => ({ value: tag, label: tag })),
77
+ ], value: tagFilter, onValueChange: onTagFilterChange, disabled: disabled }) }));
78
+ }
79
+ /** The selected tool's DECLARED capability badges, read-only and informational.
80
+ * Renders nothing unless the selected tool carries badges. */
81
+ export function SelectedToolBadges({ value, badgesByTool, idPrefix, }) {
82
+ if (value === null || badgesByTool === undefined || (badgesByTool[value]?.length ?? 0) === 0) {
83
+ return null;
84
+ }
85
+ return (_jsx(Tooltip, { content: BADGES_NOTE, children: _jsx("span", { className: "tai-row", "data-testid": `${idPrefix}-badges`, style: { gap: 'var(--tai-space-1)' }, children: (badgesByTool[value] ?? []).map((badge) => (_jsx(Badge, { variant: "neutral", children: badge }, badge))) }) }));
86
+ }
87
+ //# sourceMappingURL=tool-picker-parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-picker-parts.js","sourceRoot":"","sources":["../../src/components/tool-picker-parts.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- /** The shared informational note every badge surface carries: declared, never enforced. */
2
- export declare const BADGES_NOTE = "Declared capability labels \u2014 informational only. They describe what the tool touches; the server never enforces them.";
1
+ export { BADGES_NOTE } from './tool-picker-parts';
3
2
  export interface ToolPickerProps {
4
3
  readonly toolNames: readonly string[];
5
4
  readonly value: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-picker.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"AAyCA,2FAA2F;AAC3F,eAAO,MAAM,WAAW,+HACiG,CAAC;AAE1H,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACrE;AAyDD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAA8B,EAC9B,QAAwB,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,GACb,EAAE,eAAe,+BA+EjB"}
1
+ {"version":3,"file":"tool-picker.d.ts","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":"AAsCA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAClE,wFAAwF;IACxF,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACrE;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAA8B,EAC9B,QAAwB,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,GACb,EAAE,eAAe,+BA+CjB"}
@@ -33,57 +33,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
33
33
  * every one renders as TEXT (React escapes it) — never an HTML sink. Pinned by a test.
34
34
  */
35
35
  import { useState } from 'react';
36
- import { toolDisplayLabel } from '../hooks/useToolDisplayNames';
37
- import { Badge } from './badge';
38
36
  import { Field } from './field';
39
- import { Select } from './select';
40
- import { Tooltip } from './tooltip';
41
- /** The shared informational note every badge surface carries: declared, never enforced. */
42
- export const BADGES_NOTE = 'Declared capability labels — informational only. They describe what the tool touches; the server never enforces them.';
43
- const NO_DISPLAY_NAMES = {};
44
- const UNTAGGED = 'Untagged';
45
- // Radix `Select.Item` forbids an empty-string value, so the "no filter" choice
46
- // uses a sentinel rather than ''. A tool literally tagged this string would just
47
- // never be filtered out — harmless for a UI convenience whose authority is the server.
48
- const ALL_TAGS = '__all_tags__';
49
- /** The group a tool sorts into: its alphabetically-first tag, else "Untagged". */
50
- function groupFor(name, tagsByTool) {
51
- const tags = [...(tagsByTool[name] ?? [])].sort((a, b) => a.localeCompare(b));
52
- return tags[0] ?? UNTAGGED;
53
- }
54
- /**
55
- * The option label: `Display Name (raw)` when a distinct non-empty display name maps
56
- * the name, else the bare name; either way suffixed " (agent)" for an agent run tool.
57
- */
58
- function optionLabel(name, displayNames, agentToolNames) {
59
- const base = toolDisplayLabel(displayNames ?? NO_DISPLAY_NAMES, name);
60
- return agentToolNames?.has(name) === true ? `${base} (agent)` : base;
61
- }
62
- /** Build the grouped option clusters (sorted group labels, "Untagged" last). */
63
- function buildGroups(names, tagsByTool, displayNames, agentToolNames) {
64
- const byGroup = new Map();
65
- for (const name of names) {
66
- const group = groupFor(name, tagsByTool);
67
- const bucket = byGroup.get(group) ?? [];
68
- bucket.push(name);
69
- byGroup.set(group, bucket);
70
- }
71
- return [...byGroup.entries()]
72
- .sort(([a], [b]) => {
73
- if (a === UNTAGGED)
74
- return 1;
75
- if (b === UNTAGGED)
76
- return -1;
77
- return a.localeCompare(b);
78
- })
79
- .map(([label, groupNames]) => ({
80
- label,
81
- options: groupNames.map((name) => ({
82
- value: name,
83
- label: optionLabel(name, displayNames, agentToolNames),
84
- })),
85
- }));
86
- }
37
+ import { ALL_TAGS, SelectedToolBadges, TagFilterField, ToolSelect } from './tool-picker-parts';
38
+ export { BADGES_NOTE } from './tool-picker-parts';
87
39
  export function ToolPicker({ toolNames, value, onChange, disabled, placeholder = 'Select a tool…', idPrefix = 'tool-picker', label, 'aria-label': ariaLabel, excludeNames, tagsByTool, agentToolNames, displayNames, badgesByTool, }) {
88
40
  const [tagFilter, setTagFilter] = useState(ALL_TAGS);
89
41
  const excluded = new Set(excludeNames ?? []);
@@ -95,21 +47,7 @@ export function ToolPicker({ toolNames, value, onChange, disabled, placeholder =
95
47
  const filtered = tagsByTool !== undefined && tagFilter !== ALL_TAGS
96
48
  ? available.filter((name) => (tagsByTool[name] ?? []).includes(tagFilter))
97
49
  : available;
98
- const toolSelect = tagsByTool !== undefined ? (_jsx(Select, { groups: buildGroups(filtered, tagsByTool, displayNames, agentToolNames), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled })) : (_jsx(Select
99
- // Keep Radix controlled even when the caller's value is null: `''` matches no
100
- // item (placeholder still shows) and avoids the uncontrolled→controlled warning
101
- // a subsequent selection would otherwise trigger.
102
- , {
103
- // Keep Radix controlled even when the caller's value is null: `''` matches no
104
- // item (placeholder still shows) and avoids the uncontrolled→controlled warning
105
- // a subsequent selection would otherwise trigger.
106
- options: filtered.map((name) => ({
107
- value: name,
108
- label: optionLabel(name, displayNames, agentToolNames),
109
- })), value: value ?? '', onValueChange: onChange, placeholder: placeholder, "aria-label": ariaLabel, disabled: disabled }));
110
- return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack tai-stack-2", children: [tagsByTool !== undefined && allTags.length > 0 ? (_jsx(Field, { label: "Filter by tag", children: _jsx(Select, { options: [
111
- { value: ALL_TAGS, label: 'All tags' },
112
- ...allTags.map((tag) => ({ value: tag, label: tag })),
113
- ], value: tagFilter, onValueChange: setTagFilter, disabled: disabled }) })) : null, label !== undefined ? _jsx(Field, { label: label, children: toolSelect }) : toolSelect, value !== null && badgesByTool !== undefined && (badgesByTool[value]?.length ?? 0) > 0 ? (_jsx(Tooltip, { content: BADGES_NOTE, children: _jsx("span", { className: "tai-row", "data-testid": `${idPrefix}-badges`, style: { gap: 'var(--tai-space-1)' }, children: (badgesByTool[value] ?? []).map((badge) => (_jsx(Badge, { variant: "neutral", children: badge }, badge))) }) })) : null] }));
50
+ const toolSelect = (_jsx(ToolSelect, { tagsByTool: tagsByTool, filtered: filtered, value: value, onChange: onChange, placeholder: placeholder, ariaLabel: ariaLabel, disabled: disabled, displayNames: displayNames, agentToolNames: agentToolNames }));
51
+ return (_jsxs("div", { "data-testid": idPrefix, className: "tai-stack tai-stack-2", children: [tagsByTool !== undefined && allTags.length > 0 ? (_jsx(TagFilterField, { allTags: allTags, tagFilter: tagFilter, onTagFilterChange: setTagFilter, disabled: disabled })) : null, label !== undefined ? _jsx(Field, { label: label, children: toolSelect }) : toolSelect, _jsx(SelectedToolBadges, { value: value, badgesByTool: badgesByTool, idPrefix: idPrefix })] }));
114
52
  }
115
53
  //# sourceMappingURL=tool-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-picker.js","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAoB,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,2FAA2F;AAC3F,MAAM,CAAC,MAAM,WAAW,GACtB,uHAAuH,CAAC;AAsC1H,MAAM,gBAAgB,GAAqC,EAAE,CAAC;AAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,+EAA+E;AAC/E,iFAAiF;AACjF,uFAAuF;AACvF,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,kFAAkF;AAClF,SAAS,QAAQ,CAAC,IAAY,EAAE,UAAuD;IACrF,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,IAAY,EACZ,YAA0D,EAC1D,cAA+C;IAE/C,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,IAAI,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAClB,KAAwB,EACxB,UAAuD,EACvD,YAA0D,EAC1D,cAA+C;IAE/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,KAAK;QACL,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC;SACvD,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,gBAAgB,EAC9B,QAAQ,GAAG,aAAa,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,GACI;IAChB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,gFAAgF;IAChF,MAAM,OAAO,GACX,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9E,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IAER,MAAM,QAAQ,GACZ,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ;QAChD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,UAAU,GACd,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,KAAC,MAAM,IACL,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,EACvE,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,aAAa,EAAE,QAAQ,EACvB,WAAW,EAAE,WAAW,gBACZ,SAAS,EACrB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,MAAM;IACL,8EAA8E;IAC9E,gFAAgF;IAChF,kDAAkD;;QAFlD,8EAA8E;QAC9E,gFAAgF;QAChF,kDAAkD;QAClD,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC;SACvD,CAAC,CAAC,EACH,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,aAAa,EAAE,QAAQ,EACvB,WAAW,EAAE,WAAW,gBACZ,SAAS,EACrB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;IAEJ,OAAO,CACL,8BAAkB,QAAQ,EAAE,SAAS,EAAC,uBAAuB,aAC1D,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChD,KAAC,KAAK,IAAC,KAAK,EAAC,eAAe,YAC1B,KAAC,MAAM,IACL,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;wBACtC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;qBACtD,EACD,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,QAAQ,GAClB,GACI,CACT,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,YAAG,UAAU,GAAS,CAAC,CAAC,CAAC,UAAU,EAC5E,KAAK,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACxF,KAAC,OAAO,IAAC,OAAO,EAAE,WAAW,YAC3B,eACE,SAAS,EAAC,SAAS,iBACN,GAAG,QAAQ,SAAS,EACjC,KAAK,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAEnC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC1C,KAAC,KAAK,IAAa,OAAO,EAAC,SAAS,YACjC,KAAK,IADI,KAAK,CAET,CACT,CAAC,GACG,GACC,CACX,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tool-picker.js","sourceRoot":"","sources":["../../src/components/tool-picker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsClD,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,gBAAgB,EAC9B,QAAQ,GAAG,aAAa,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,YAAY,GACI;IAChB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAElE,gFAAgF;IAChF,MAAM,OAAO,GACX,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9E,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IAER,MAAM,QAAQ,GACZ,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ;QAChD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,UAAU,GAAG,CACjB,KAAC,UAAU,IACT,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;IAEF,OAAO,CACL,8BAAkB,QAAQ,EAAE,SAAS,EAAC,uBAAuB,aAC1D,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChD,KAAC,cAAc,IACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,YAAY,EAC/B,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,YAAG,UAAU,GAAS,CAAC,CAAC,CAAC,UAAU,EAC7E,KAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAI,IAChF,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version-history-panel.d.ts","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAapE,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,qDAAqD;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AA6ED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,UAAU,EACV,MAAM,EACN,eAAe,EACf,aAAa,EACb,QAAgB,EAChB,0BAA0B,EAC1B,UAAU,GACX,EAAE,wBAAwB,GAAG,SAAS,CA+OtC"}
1
+ {"version":3,"file":"version-history-panel.d.ts","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAgBpE,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,qDAAqD;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AA6ED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,UAAU,EACV,MAAM,EACN,eAAe,EACf,aAAa,EACb,QAAgB,EAChB,0BAA0B,EAC1B,UAAU,GACX,EAAE,wBAAwB,GAAG,SAAS,CAoItC"}
@@ -30,13 +30,11 @@ import { useEffect, useRef, useState } from 'react';
30
30
  import { errorMessage } from '../errors';
31
31
  import { Dialog } from './dialog';
32
32
  import { Field } from './field';
33
- import { CheckCircleIcon, PendingIcon } from './icons';
34
- import { JsonDiff } from './json-diff';
35
- import { JsonTree } from './json-tree';
36
33
  import { Button, Card, ErrorState, Spinner } from './primitives';
37
34
  import { ScrollRegion } from './scroll-region';
38
- import { Table, TBody, TD, TH, THead, TR } from './table';
39
- import { TagChips, TagsInput } from './tags';
35
+ import { Table, TBody, TH, THead, TR } from './table';
36
+ import { TagsInput } from './tags';
37
+ import { CompareDialog, RollbackConfirmDialog, SelectedVersionBody, VersionRow, } from './version-history-rows';
40
38
  /** The initially-selected version: the current one, else the first listed. */
41
39
  function initialSelection(versions) {
42
40
  const current = versions.find((entry) => entry.is_current);
@@ -114,35 +112,10 @@ export function VersionHistoryPanel({ versions, onRollback, onView, rollbackPend
114
112
  const editingEntry = versions.find((entry) => entry.version === editingTags);
115
113
  const fromBody = versions.find((entry) => entry.version === comparePair?.from)?.body;
116
114
  const toBody = versions.find((entry) => entry.version === comparePair?.to)?.body;
117
- return (_jsxs("div", { className: "tai-stack", children: [_jsx(Card, { children: _jsx(ScrollRegion, { label: "Version history", children: _jsxs(Table, { children: [_jsx(THead, { children: _jsxs(TR, { children: [_jsx(TH, { numeric: true, children: "Version" }), _jsx(TH, { children: "Created" }), _jsx(TH, { children: "Status" }), showTags ? _jsx(TH, { children: "Tags" }) : null, _jsx(TH, { children: "Actions" })] }) }), _jsx(TBody, { children: versions.map((entry) => (_jsxs(TR, { "data-testid": `version-row-${String(entry.version)}`, children: [_jsx(TD, { className: "tai-table-id", numeric: true, children: entry.version }), _jsx(TD, { className: "tai-mono", children: entry.created_at }), _jsx(TD, { children: entry.is_current ? (_jsxs("span", { className: "tai-status tai-status-ok", children: [_jsx(CheckCircleIcon, {}), "Current"] })) : (_jsxs("span", { className: "tai-status tai-status-pending", children: [_jsx(PendingIcon, {}), "Historical"] })) }), showTags ? (_jsx(TD, { children: (entry.tags ?? []).length > 0 ? (_jsx(TagChips, { tags: entry.tags ?? [] })) : (_jsx("span", { className: "tai-muted", children: "\u2014" })) })) : null, _jsx(TD, { children: _jsxs("div", { className: "tai-row", children: [_jsx(Button, { "aria-label": `View version ${String(entry.version)}`, onClick: () => {
118
- view(entry.version);
119
- }, children: "View" }), canCompare ? (_jsx(Button
120
- // The name starts with the word the button is SHOWING,
121
- // which is what WCAG 2.5.3 (Label in Name) asks: a constant
122
- // "Compare …" would leave a button reading "Comparing…"
123
- // named "Compare", and a voice-control user naming a control
124
- // they cannot see. The button stays ENABLED while armed —
125
- // unlike an Edit action, a second click on the armed row is
126
- // the disarm, so there is nothing to take away.
127
- , { "aria-label": `${compareFrom === entry.version ? 'Comparing' : 'Compare'} version ${String(entry.version)}`, onClick: () => {
128
- compare(entry.version);
129
- }, children: compareFrom === entry.version ? 'Comparing…' : 'Compare' })) : null, onEditTags !== undefined && !readOnly ? (_jsx(Button, { "aria-label": `Edit tags for version ${String(entry.version)}`, onClick: () => {
130
- setEditingTags(entry.version);
131
- }, children: "Edit tags" })) : null, readOnly ? null : (_jsx(Button, { variant: "secondary", "aria-label": `Roll back to version ${String(entry.version)}`, disabled: entry.is_current, onClick: () => {
132
- setConfirming(entry.version);
133
- }, children: "Roll back" }))] }) })] }, entry.version))) })] }) }) }), compareFrom !== null && comparePair === null ? (_jsxs("p", { role: "status", className: "tai-muted", children: ["Comparing from version ", compareFrom, " \u2014 pick another version, or Compare again to cancel."] })) : null, selectedEntry !== undefined ? (_jsxs("section", { className: "tai-stack tai-stack-2", children: [_jsxs("h3", { className: "tai-section-title", children: ["Version ", selectedEntry.version, " body"] }), _jsx(Card, { children: _jsx(JsonTree, { data: selectedEntry.body, label: `Version ${String(selectedEntry.version)} body` }) })] })) : null, comparePair !== null ? (_jsxs(Dialog, { title: `v${String(comparePair.from)} compared with v${String(comparePair.to)}`, description: "A structural diff of the two version bodies. Arrays compare whole.", open: true, onOpenChange: (next) => {
134
- if (!next)
135
- closeCompare();
136
- }, children: [_jsx(ScrollRegion, { label: "Version diff", children: _jsx(JsonDiff, { before: fromBody, after: toBody }) }), _jsx("div", { className: "tai-dialog-actions", children: _jsx(Button, { onClick: closeCompare, children: "Close" }) })] })) : null, editingEntry !== undefined && onEditTags !== undefined ? (_jsx(EditTagsDialog, { version: editingEntry.version, initialTags: editingEntry.tags ?? [], onSave: onEditTags, onClose: () => {
115
+ return (_jsxs("div", { className: "tai-stack", children: [_jsx(Card, { children: _jsx(ScrollRegion, { label: "Version history", children: _jsxs(Table, { children: [_jsx(THead, { children: _jsxs(TR, { children: [_jsx(TH, { numeric: true, children: "Version" }), _jsx(TH, { children: "Created" }), _jsx(TH, { children: "Status" }), showTags ? _jsx(TH, { children: "Tags" }) : null, _jsx(TH, { children: "Actions" })] }) }), _jsx(TBody, { children: versions.map((entry) => (_jsx(VersionRow, { entry: entry, showTags: showTags, canCompare: canCompare, compareArmed: compareFrom === entry.version, readOnly: readOnly, canEditTags: onEditTags !== undefined, onView: view, onCompare: compare, onEditTags: setEditingTags, onRollback: setConfirming }, entry.version))) })] }) }) }), compareFrom !== null && comparePair === null ? (_jsxs("p", { role: "status", className: "tai-muted", children: ["Comparing from version ", compareFrom, " \u2014 pick another version, or Compare again to cancel."] })) : null, selectedEntry !== undefined ? _jsx(SelectedVersionBody, { entry: selectedEntry }) : null, comparePair !== null ? (_jsx(CompareDialog, { from: comparePair.from, to: comparePair.to, fromBody: fromBody, toBody: toBody, onClose: closeCompare })) : null, editingEntry !== undefined && onEditTags !== undefined ? (_jsx(EditTagsDialog, { version: editingEntry.version, initialTags: editingEntry.tags ?? [], onSave: onEditTags, onClose: () => {
137
116
  setEditingTags(null);
138
- } })) : null, confirming !== null ? (_jsxs(Dialog, { title: "Roll back version", description: `Make version ${String(confirming)} the active version? The version history is preserved.` +
139
- (rollbackConfirmDescription !== undefined ? ` ${rollbackConfirmDescription}` : ''), open: true, onOpenChange: (next) => {
140
- if (!next)
141
- setConfirming(null);
142
- }, children: [rollbackError !== undefined ? _jsx(ErrorState, { message: rollbackError }) : null, _jsxs("div", { className: "tai-dialog-actions", children: [_jsx(Button, { onClick: () => {
143
- setConfirming(null);
144
- }, children: "Cancel" }), _jsxs(Button, { variant: "primary", disabled: rollbackPending, onClick: () => {
145
- onRollback(confirming);
146
- }, children: [rollbackPending ? _jsx(Spinner, { label: "Rolling back" }) : null, "Roll back"] })] })] })) : null] }));
117
+ } })) : null, confirming !== null ? (_jsx(RollbackConfirmDialog, { version: confirming, rollbackPending: rollbackPending, rollbackError: rollbackError, extraDescription: rollbackConfirmDescription, onCancel: () => {
118
+ setConfirming(null);
119
+ }, onConfirm: onRollback })) : null] }));
147
120
  }
148
121
  //# sourceMappingURL=version-history-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-history-panel.js","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-history-panel.js","sourceRoot":"","sources":["../../src/components/version-history-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The row and dialog pieces of `VersionHistoryPanel`: one version's table row and
3
+ * action cluster (`VersionRow`), the selected version's body (`SelectedVersionBody`),
4
+ * the two-version compare dialog (`CompareDialog`), and the rollback confirm
5
+ * dialog (`RollbackConfirmDialog`). All generic and kind-agnostic.
6
+ */
7
+ import type { ReactNode } from 'react';
8
+ import type { VersionHistoryEntry } from './version-history-panel';
9
+ interface VersionRowProps {
10
+ readonly entry: VersionHistoryEntry;
11
+ readonly showTags: boolean;
12
+ readonly canCompare: boolean;
13
+ /** This row is the armed Compare source. */
14
+ readonly compareArmed: boolean;
15
+ readonly readOnly: boolean;
16
+ /** An edit-tags affordance is available (the consumer supplied `onEditTags`). */
17
+ readonly canEditTags: boolean;
18
+ readonly onView: (version: number) => void;
19
+ readonly onCompare: (version: number) => void;
20
+ readonly onEditTags: (version: number) => void;
21
+ readonly onRollback: (version: number) => void;
22
+ }
23
+ /** One version's row: its number, timestamp, status mark, optional tags, and the
24
+ * View / Compare / Edit tags / Roll back action cluster. */
25
+ export declare function VersionRow({ entry, showTags, canCompare, compareArmed, readOnly, canEditTags, onView, onCompare, onEditTags, onRollback, }: VersionRowProps): ReactNode;
26
+ /** The selected version's opaque body, rendered through `JsonTree`. */
27
+ export declare function SelectedVersionBody({ entry }: {
28
+ readonly entry: VersionHistoryEntry;
29
+ }): ReactNode;
30
+ /** A structural diff of two version bodies, in a dialog. */
31
+ export declare function CompareDialog({ from, to, fromBody, toBody, onClose, }: {
32
+ readonly from: number;
33
+ readonly to: number;
34
+ readonly fromBody: unknown;
35
+ readonly toBody: unknown;
36
+ readonly onClose: () => void;
37
+ }): ReactNode;
38
+ /** The rollback confirmation, surfacing any rollback failure verbatim. */
39
+ export declare function RollbackConfirmDialog({ version, rollbackPending, rollbackError, extraDescription, onCancel, onConfirm, }: {
40
+ readonly version: number;
41
+ readonly rollbackPending: boolean | undefined;
42
+ readonly rollbackError: string | undefined;
43
+ readonly extraDescription: string | undefined;
44
+ readonly onCancel: () => void;
45
+ readonly onConfirm: (version: number) => void;
46
+ }): ReactNode;
47
+ export {};
48
+ //# sourceMappingURL=version-history-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-history-rows.d.ts","sourceRoot":"","sources":["../../src/components/version-history-rows.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED;6DAC6D;AAC7D,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,GACX,EAAE,eAAe,GAAG,SAAS,CAiF7B;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GAAG,SAAS,CASjG;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,GAAG,SAAS,CAmBZ;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,GAAG,SAAS,CA6BZ"}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Dialog } from './dialog';
3
+ import { CheckCircleIcon, PendingIcon } from './icons';
4
+ import { JsonDiff } from './json-diff';
5
+ import { JsonTree } from './json-tree';
6
+ import { Button, Card, ErrorState, Spinner } from './primitives';
7
+ import { ScrollRegion } from './scroll-region';
8
+ import { TD, TR } from './table';
9
+ import { TagChips } from './tags';
10
+ /** One version's row: its number, timestamp, status mark, optional tags, and the
11
+ * View / Compare / Edit tags / Roll back action cluster. */
12
+ export function VersionRow({ entry, showTags, canCompare, compareArmed, readOnly, canEditTags, onView, onCompare, onEditTags, onRollback, }) {
13
+ return (_jsxs(TR, { "data-testid": `version-row-${String(entry.version)}`, children: [_jsx(TD, { className: "tai-table-id", numeric: true, children: entry.version }), _jsx(TD, { className: "tai-mono", children: entry.created_at }), _jsx(TD, { children: entry.is_current ? (_jsxs("span", { className: "tai-status tai-status-ok", children: [_jsx(CheckCircleIcon, {}), "Current"] })) : (_jsxs("span", { className: "tai-status tai-status-pending", children: [_jsx(PendingIcon, {}), "Historical"] })) }), showTags ? (_jsx(TD, { children: (entry.tags ?? []).length > 0 ? (_jsx(TagChips, { tags: entry.tags ?? [] })) : (_jsx("span", { className: "tai-muted", children: "\u2014" })) })) : null, _jsx(TD, { children: _jsxs("div", { className: "tai-row", children: [_jsx(Button, { "aria-label": `View version ${String(entry.version)}`, onClick: () => {
14
+ onView(entry.version);
15
+ }, children: "View" }), canCompare ? (_jsx(Button
16
+ // The name starts with the word the button is SHOWING, which is what
17
+ // WCAG 2.5.3 (Label in Name) asks: a constant "Compare …" would leave a
18
+ // button reading "Comparing…" named "Compare", and a voice-control user
19
+ // naming a control they cannot see. The button stays ENABLED while armed
20
+ // — unlike an Edit action, a second click on the armed row is the disarm,
21
+ // so there is nothing to take away.
22
+ , { "aria-label": `${compareArmed ? 'Comparing' : 'Compare'} version ${String(entry.version)}`, onClick: () => {
23
+ onCompare(entry.version);
24
+ }, children: compareArmed ? 'Comparing…' : 'Compare' })) : null, canEditTags && !readOnly ? (_jsx(Button, { "aria-label": `Edit tags for version ${String(entry.version)}`, onClick: () => {
25
+ onEditTags(entry.version);
26
+ }, children: "Edit tags" })) : null, readOnly ? null : (_jsx(Button, { variant: "secondary", "aria-label": `Roll back to version ${String(entry.version)}`, disabled: entry.is_current, onClick: () => {
27
+ onRollback(entry.version);
28
+ }, children: "Roll back" }))] }) })] }));
29
+ }
30
+ /** The selected version's opaque body, rendered through `JsonTree`. */
31
+ export function SelectedVersionBody({ entry }) {
32
+ return (_jsxs("section", { className: "tai-stack tai-stack-2", children: [_jsxs("h3", { className: "tai-section-title", children: ["Version ", entry.version, " body"] }), _jsx(Card, { children: _jsx(JsonTree, { data: entry.body, label: `Version ${String(entry.version)} body` }) })] }));
33
+ }
34
+ /** A structural diff of two version bodies, in a dialog. */
35
+ export function CompareDialog({ from, to, fromBody, toBody, onClose, }) {
36
+ return (_jsxs(Dialog, { title: `v${String(from)} compared with v${String(to)}`, description: "A structural diff of the two version bodies. Arrays compare whole.", open: true, onOpenChange: (next) => {
37
+ if (!next)
38
+ onClose();
39
+ }, children: [_jsx(ScrollRegion, { label: "Version diff", children: _jsx(JsonDiff, { before: fromBody, after: toBody }) }), _jsx("div", { className: "tai-dialog-actions", children: _jsx(Button, { onClick: onClose, children: "Close" }) })] }));
40
+ }
41
+ /** The rollback confirmation, surfacing any rollback failure verbatim. */
42
+ export function RollbackConfirmDialog({ version, rollbackPending, rollbackError, extraDescription, onCancel, onConfirm, }) {
43
+ return (_jsxs(Dialog, { title: "Roll back version", description: `Make version ${String(version)} the active version? The version history is preserved.` +
44
+ (extraDescription !== undefined ? ` ${extraDescription}` : ''), open: true, onOpenChange: (next) => {
45
+ if (!next)
46
+ onCancel();
47
+ }, children: [rollbackError !== undefined ? _jsx(ErrorState, { message: rollbackError }) : null, _jsxs("div", { className: "tai-dialog-actions", children: [_jsx(Button, { onClick: onCancel, children: "Cancel" }), _jsxs(Button, { variant: "primary", disabled: rollbackPending, onClick: () => {
48
+ onConfirm(version);
49
+ }, children: [rollbackPending ? _jsx(Spinner, { label: "Rolling back" }) : null, "Roll back"] })] })] }));
50
+ }
51
+ //# sourceMappingURL=version-history-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-history-rows.js","sourceRoot":"","sources":["../../src/components/version-history-rows.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-toggle.d.ts","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAyB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK9D,qCAAqC;AACrC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAOxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjD,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,aAAa,EACb,YAAY,EAAE,SAAS,EACvB,QAAQ,GACT,EAAE,eAAe,GAAG,SAAS,CAgB7B;AAcD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,QAAiB,GAC1B,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAc/C"}
1
+ {"version":3,"file":"view-toggle.d.ts","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAK9D,qCAAqC;AACrC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAOxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjD,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,aAAa,EACb,YAAY,EAAE,SAAS,EACvB,QAAQ,GACT,EAAE,eAAe,GAAG,SAAS,CAgB7B;AAcD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,QAAiB,GAC1B,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,CAc/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-toggle.js","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,MAAM,OAAO,GAAG;IACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;IACpF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;CAC7E,CAAC;AAUX,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,aAAa,EACb,YAAY,EAAE,SAAS,EACvB,QAAQ,GACQ;IAChB,OAAO,CACL,KAAC,UAAU,IACT,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,YAAY,gBACZ,SAAS,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,0EAA0E;YAC1E,2EAA2E;YAC3E,aAAa,CAAC,IAAgB,CAAC,CAAC;QAClC,CAAC,EACD,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAE/C,SAAS,cAAc,CAAC,OAAe,EAAE,QAAkB;IACzD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;QACtE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,GAAG,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,WAAqB,MAAM;IAE3B,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,IAAc,EAAE,EAAE;QACjB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"view-toggle.js","sourceRoot":"","sources":["../../src/components/view-toggle.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAkB,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,MAAM,OAAO,GAAG;IACd,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;IACpF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAC,QAAQ,KAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE;CAC7E,CAAC;AAUX,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,aAAa,EACb,YAAY,EAAE,SAAS,EACvB,QAAQ,GACQ;IAChB,OAAO,CACL,KAAC,UAAU,IACT,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,YAAY,gBACZ,SAAS,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,0EAA0E;YAC1E,2EAA2E;YAC3E,aAAa,CAAC,IAAgB,CAAC,CAAC;QAClC,CAAC,EACD,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAE/C,SAAS,cAAc,CAAC,OAAe,EAAE,QAAkB;IACzD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;QACtE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,GAAG,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,WAAqB,MAAM;IAE3B,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,IAAc,EAAE,EAAE;QACjB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzB,CAAC"}