@miragon/mcp-toolkit-ui 2.6.0 → 2.8.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 (511) hide show
  1. package/README.md +14 -5
  2. package/dist/app/adapt-data-widget.d.ts +1 -22
  3. package/dist/app/adapt-data-widget.d.ts.map +1 -1
  4. package/dist/app/adapt-data-widget.js +1 -35
  5. package/dist/app/adapt-data-widget.js.map +1 -1
  6. package/dist/app/builder/BuilderBanners.d.ts +7 -2
  7. package/dist/app/builder/BuilderBanners.d.ts.map +1 -1
  8. package/dist/app/builder/BuilderBanners.js +8 -3
  9. package/dist/app/builder/BuilderBanners.js.map +1 -1
  10. package/dist/app/builder/CanvasRow.d.ts +4 -2
  11. package/dist/app/builder/CanvasRow.d.ts.map +1 -1
  12. package/dist/app/builder/CanvasRow.js +29 -17
  13. package/dist/app/builder/CanvasRow.js.map +1 -1
  14. package/dist/app/builder/CatalogueSheet.d.ts.map +1 -1
  15. package/dist/app/builder/CatalogueSheet.js +14 -6
  16. package/dist/app/builder/CatalogueSheet.js.map +1 -1
  17. package/dist/app/builder/CellPropsSheet.d.ts +7 -3
  18. package/dist/app/builder/CellPropsSheet.d.ts.map +1 -1
  19. package/dist/app/builder/CellPropsSheet.js +10 -3
  20. package/dist/app/builder/CellPropsSheet.js.map +1 -1
  21. package/dist/app/builder/DiscardDialog.d.ts +18 -0
  22. package/dist/app/builder/DiscardDialog.d.ts.map +1 -0
  23. package/dist/app/builder/DiscardDialog.js +18 -0
  24. package/dist/app/builder/DiscardDialog.js.map +1 -0
  25. package/dist/app/builder/EmptyHint.d.ts +4 -0
  26. package/dist/app/builder/EmptyHint.d.ts.map +1 -1
  27. package/dist/app/builder/EmptyHint.js +6 -1
  28. package/dist/app/builder/EmptyHint.js.map +1 -1
  29. package/dist/app/builder/LayoutSurface.d.ts +33 -9
  30. package/dist/app/builder/LayoutSurface.d.ts.map +1 -1
  31. package/dist/app/builder/LayoutSurface.js +74 -23
  32. package/dist/app/builder/LayoutSurface.js.map +1 -1
  33. package/dist/app/builder/PipelineStrip.d.ts +5 -2
  34. package/dist/app/builder/PipelineStrip.d.ts.map +1 -1
  35. package/dist/app/builder/PipelineStrip.js +33 -15
  36. package/dist/app/builder/PipelineStrip.js.map +1 -1
  37. package/dist/app/builder/SaveDialog.d.ts +9 -1
  38. package/dist/app/builder/SaveDialog.d.ts.map +1 -1
  39. package/dist/app/builder/SaveDialog.js +9 -3
  40. package/dist/app/builder/SaveDialog.js.map +1 -1
  41. package/dist/app/builder/Toolbar.d.ts +14 -4
  42. package/dist/app/builder/Toolbar.d.ts.map +1 -1
  43. package/dist/app/builder/Toolbar.js +24 -7
  44. package/dist/app/builder/Toolbar.js.map +1 -1
  45. package/dist/app/builder/Workspace.d.ts +23 -3
  46. package/dist/app/builder/Workspace.d.ts.map +1 -1
  47. package/dist/app/builder/Workspace.js +58 -8
  48. package/dist/app/builder/Workspace.js.map +1 -1
  49. package/dist/app/builder/builder-model.d.ts +146 -3
  50. package/dist/app/builder/builder-model.d.ts.map +1 -1
  51. package/dist/app/builder/builder-model.js +196 -5
  52. package/dist/app/builder/builder-model.js.map +1 -1
  53. package/dist/app/builder/labels.d.ts +13 -62
  54. package/dist/app/builder/labels.d.ts.map +1 -1
  55. package/dist/app/builder/labels.js +9 -58
  56. package/dist/app/builder/labels.js.map +1 -1
  57. package/dist/app/builder/reveal.d.ts +10 -0
  58. package/dist/app/builder/reveal.d.ts.map +1 -0
  59. package/dist/app/builder/reveal.js +10 -0
  60. package/dist/app/builder/reveal.js.map +1 -0
  61. package/dist/app/builder/status-chip.d.ts.map +1 -1
  62. package/dist/app/builder/status-chip.js +3 -2
  63. package/dist/app/builder/status-chip.js.map +1 -1
  64. package/dist/app/builder/use-builder-catalogue.d.ts +5 -1
  65. package/dist/app/builder/use-builder-catalogue.d.ts.map +1 -1
  66. package/dist/app/builder/use-builder-catalogue.js +50 -17
  67. package/dist/app/builder/use-builder-catalogue.js.map +1 -1
  68. package/dist/app/builder/use-builder-session.d.ts +30 -0
  69. package/dist/app/builder/use-builder-session.d.ts.map +1 -0
  70. package/dist/app/builder/use-builder-session.js +58 -0
  71. package/dist/app/builder/use-builder-session.js.map +1 -0
  72. package/dist/app/builder/use-display-resolver.d.ts +17 -0
  73. package/dist/app/builder/use-display-resolver.d.ts.map +1 -0
  74. package/dist/app/builder/use-display-resolver.js +16 -0
  75. package/dist/app/builder/use-display-resolver.js.map +1 -0
  76. package/dist/app/builder/use-save-dashboard.d.ts +3 -1
  77. package/dist/app/builder/use-save-dashboard.d.ts.map +1 -1
  78. package/dist/app/builder/use-save-dashboard.js +3 -1
  79. package/dist/app/builder/use-save-dashboard.js.map +1 -1
  80. package/dist/app/index.d.ts +8 -3
  81. package/dist/app/index.d.ts.map +1 -1
  82. package/dist/app/index.js +8 -2
  83. package/dist/app/index.js.map +1 -1
  84. package/dist/app/layout-builder.d.ts +18 -25
  85. package/dist/app/layout-builder.d.ts.map +1 -1
  86. package/dist/app/layout-builder.js +84 -78
  87. package/dist/app/layout-builder.js.map +1 -1
  88. package/dist/app/mcp-app-view-chrome.d.ts +103 -20
  89. package/dist/app/mcp-app-view-chrome.d.ts.map +1 -1
  90. package/dist/app/mcp-app-view-chrome.js +125 -40
  91. package/dist/app/mcp-app-view-chrome.js.map +1 -1
  92. package/dist/app/mcp-app-view-states.d.ts +23 -0
  93. package/dist/app/mcp-app-view-states.d.ts.map +1 -0
  94. package/dist/app/mcp-app-view-states.js +55 -0
  95. package/dist/app/mcp-app-view-states.js.map +1 -0
  96. package/dist/app/mcp-app-view.d.ts +72 -5
  97. package/dist/app/mcp-app-view.d.ts.map +1 -1
  98. package/dist/app/mcp-app-view.js +241 -141
  99. package/dist/app/mcp-app-view.js.map +1 -1
  100. package/dist/app/mcp-toolkit-app.d.ts +8 -2
  101. package/dist/app/mcp-toolkit-app.d.ts.map +1 -1
  102. package/dist/app/mcp-toolkit-app.js +33 -4
  103. package/dist/app/mcp-toolkit-app.js.map +1 -1
  104. package/dist/app/mcp-use-host-bridge.d.ts +15 -6
  105. package/dist/app/mcp-use-host-bridge.d.ts.map +1 -1
  106. package/dist/app/mcp-use-host-bridge.js +51 -22
  107. package/dist/app/mcp-use-host-bridge.js.map +1 -1
  108. package/dist/app/model-context.d.ts +71 -0
  109. package/dist/app/model-context.d.ts.map +1 -0
  110. package/dist/app/model-context.js +101 -0
  111. package/dist/app/model-context.js.map +1 -0
  112. package/dist/app/use-build-mode-focus.d.ts +33 -0
  113. package/dist/app/use-build-mode-focus.d.ts.map +1 -0
  114. package/dist/app/use-build-mode-focus.js +59 -0
  115. package/dist/app/use-build-mode-focus.js.map +1 -0
  116. package/dist/app/use-view-actions.d.ts +31 -0
  117. package/dist/app/use-view-actions.d.ts.map +1 -0
  118. package/dist/app/use-view-actions.js +81 -0
  119. package/dist/app/use-view-actions.js.map +1 -0
  120. package/dist/app/use-view-lifecycle.d.ts +42 -0
  121. package/dist/app/use-view-lifecycle.d.ts.map +1 -0
  122. package/dist/app/use-view-lifecycle.js +81 -0
  123. package/dist/app/use-view-lifecycle.js.map +1 -0
  124. package/dist/app/view-lifecycle.d.ts +185 -0
  125. package/dist/app/view-lifecycle.d.ts.map +1 -0
  126. package/dist/app/view-lifecycle.js +207 -0
  127. package/dist/app/view-lifecycle.js.map +1 -0
  128. package/dist/app/widget-fixture.d.ts +10 -3
  129. package/dist/app/widget-fixture.d.ts.map +1 -1
  130. package/dist/app/widget-fixture.js +21 -8
  131. package/dist/app/widget-fixture.js.map +1 -1
  132. package/dist/app/widget-props-sheet.d.ts +6 -10
  133. package/dist/app/widget-props-sheet.d.ts.map +1 -1
  134. package/dist/app/widget-props-sheet.js +25 -20
  135. package/dist/app/widget-props-sheet.js.map +1 -1
  136. package/dist/app/widget-renderer.d.ts +41 -1
  137. package/dist/app/widget-renderer.d.ts.map +1 -1
  138. package/dist/app/widget-renderer.js +82 -31
  139. package/dist/app/widget-renderer.js.map +1 -1
  140. package/dist/components/DrillButton.d.ts +9 -6
  141. package/dist/components/DrillButton.d.ts.map +1 -1
  142. package/dist/components/DrillButton.js +9 -6
  143. package/dist/components/DrillButton.js.map +1 -1
  144. package/dist/components/EmptyState.d.ts +33 -0
  145. package/dist/components/EmptyState.d.ts.map +1 -0
  146. package/dist/components/EmptyState.js +19 -0
  147. package/dist/components/EmptyState.js.map +1 -0
  148. package/dist/components/ErrorState.d.ts +53 -0
  149. package/dist/components/ErrorState.d.ts.map +1 -0
  150. package/dist/components/ErrorState.js +77 -0
  151. package/dist/components/ErrorState.js.map +1 -0
  152. package/dist/components/FilterBar.d.ts +16 -5
  153. package/dist/components/FilterBar.d.ts.map +1 -1
  154. package/dist/components/FilterBar.js +13 -5
  155. package/dist/components/FilterBar.js.map +1 -1
  156. package/dist/components/GroupCard.d.ts.map +1 -1
  157. package/dist/components/GroupCard.js +2 -1
  158. package/dist/components/GroupCard.js.map +1 -1
  159. package/dist/components/KpiGrid.d.ts +70 -18
  160. package/dist/components/KpiGrid.d.ts.map +1 -1
  161. package/dist/components/KpiGrid.js +112 -23
  162. package/dist/components/KpiGrid.js.map +1 -1
  163. package/dist/components/ListFooter.d.ts +32 -4
  164. package/dist/components/ListFooter.d.ts.map +1 -1
  165. package/dist/components/ListFooter.js +35 -6
  166. package/dist/components/ListFooter.js.map +1 -1
  167. package/dist/components/PagedListFooter.d.ts +57 -0
  168. package/dist/components/PagedListFooter.d.ts.map +1 -0
  169. package/dist/components/PagedListFooter.js +27 -0
  170. package/dist/components/PagedListFooter.js.map +1 -0
  171. package/dist/components/Pills.d.ts +36 -12
  172. package/dist/components/Pills.d.ts.map +1 -1
  173. package/dist/components/Pills.js +29 -8
  174. package/dist/components/Pills.js.map +1 -1
  175. package/dist/components/SectionHeading.d.ts +3 -1
  176. package/dist/components/SectionHeading.d.ts.map +1 -1
  177. package/dist/components/SectionHeading.js +6 -2
  178. package/dist/components/SectionHeading.js.map +1 -1
  179. package/dist/components/Toast.d.ts +43 -0
  180. package/dist/components/Toast.d.ts.map +1 -0
  181. package/dist/components/Toast.js +106 -0
  182. package/dist/components/Toast.js.map +1 -0
  183. package/dist/components/WidgetHeader.d.ts +34 -10
  184. package/dist/components/WidgetHeader.d.ts.map +1 -1
  185. package/dist/components/WidgetHeader.js +11 -6
  186. package/dist/components/WidgetHeader.js.map +1 -1
  187. package/dist/hooks/index.d.ts +4 -4
  188. package/dist/hooks/index.d.ts.map +1 -1
  189. package/dist/hooks/index.js +1 -1
  190. package/dist/hooks/index.js.map +1 -1
  191. package/dist/hooks/tool-result-recovery-model.d.ts +155 -0
  192. package/dist/hooks/tool-result-recovery-model.d.ts.map +1 -0
  193. package/dist/hooks/tool-result-recovery-model.js +273 -0
  194. package/dist/hooks/tool-result-recovery-model.js.map +1 -0
  195. package/dist/hooks/use-tool-query.d.ts +56 -14
  196. package/dist/hooks/use-tool-query.d.ts.map +1 -1
  197. package/dist/hooks/use-tool-query.js +102 -25
  198. package/dist/hooks/use-tool-query.js.map +1 -1
  199. package/dist/hooks/use-tool-result-recovery.d.ts +61 -44
  200. package/dist/hooks/use-tool-result-recovery.d.ts.map +1 -1
  201. package/dist/hooks/use-tool-result-recovery.js +62 -110
  202. package/dist/hooks/use-tool-result-recovery.js.map +1 -1
  203. package/dist/hooks/use-view-data.d.ts +55 -7
  204. package/dist/hooks/use-view-data.d.ts.map +1 -1
  205. package/dist/hooks/use-view-data.js +81 -11
  206. package/dist/hooks/use-view-data.js.map +1 -1
  207. package/dist/hooks/use-view-tool-query.d.ts +12 -7
  208. package/dist/hooks/use-view-tool-query.d.ts.map +1 -1
  209. package/dist/hooks/use-view-tool-query.js +15 -14
  210. package/dist/hooks/use-view-tool-query.js.map +1 -1
  211. package/dist/index.d.ts +27 -13
  212. package/dist/index.d.ts.map +1 -1
  213. package/dist/index.js +29 -7
  214. package/dist/index.js.map +1 -1
  215. package/dist/lib/focus-return.d.ts +61 -0
  216. package/dist/lib/focus-return.d.ts.map +1 -0
  217. package/dist/lib/focus-return.js +46 -0
  218. package/dist/lib/focus-return.js.map +1 -0
  219. package/dist/lib/focus-ring.d.ts +18 -0
  220. package/dist/lib/focus-ring.d.ts.map +1 -0
  221. package/dist/lib/focus-ring.js +18 -0
  222. package/dist/lib/focus-ring.js.map +1 -0
  223. package/dist/lib/icon-stroke.d.ts +12 -0
  224. package/dist/lib/icon-stroke.d.ts.map +1 -0
  225. package/dist/lib/icon-stroke.js +12 -0
  226. package/dist/lib/icon-stroke.js.map +1 -0
  227. package/dist/lib/parse-tool-result.d.ts +23 -1
  228. package/dist/lib/parse-tool-result.d.ts.map +1 -1
  229. package/dist/lib/parse-tool-result.js +38 -2
  230. package/dist/lib/parse-tool-result.js.map +1 -1
  231. package/dist/lib/toast-model.d.ts +86 -0
  232. package/dist/lib/toast-model.d.ts.map +1 -0
  233. package/dist/lib/toast-model.js +102 -0
  234. package/dist/lib/toast-model.js.map +1 -0
  235. package/dist/lib/tone-utils.d.ts +95 -9
  236. package/dist/lib/tone-utils.d.ts.map +1 -1
  237. package/dist/lib/tone-utils.js +100 -9
  238. package/dist/lib/tone-utils.js.map +1 -1
  239. package/dist/lib/tool-query.d.ts +107 -0
  240. package/dist/lib/tool-query.d.ts.map +1 -0
  241. package/dist/lib/tool-query.js +182 -0
  242. package/dist/lib/tool-query.js.map +1 -0
  243. package/dist/lib/tool-result-observer.d.ts +108 -0
  244. package/dist/lib/tool-result-observer.d.ts.map +1 -0
  245. package/dist/lib/tool-result-observer.js +158 -0
  246. package/dist/lib/tool-result-observer.js.map +1 -0
  247. package/dist/lib/typography.d.ts +37 -0
  248. package/dist/lib/typography.d.ts.map +1 -0
  249. package/dist/lib/typography.js +41 -0
  250. package/dist/lib/typography.js.map +1 -0
  251. package/dist/lib/utils.d.ts.map +1 -1
  252. package/dist/lib/utils.js +11 -1
  253. package/dist/lib/utils.js.map +1 -1
  254. package/dist/locale/index.d.ts +3 -1
  255. package/dist/locale/index.d.ts.map +1 -1
  256. package/dist/locale/index.js +2 -1
  257. package/dist/locale/index.js.map +1 -1
  258. package/dist/locale/locale-provider.d.ts +42 -1
  259. package/dist/locale/locale-provider.d.ts.map +1 -1
  260. package/dist/locale/locale-provider.js +44 -3
  261. package/dist/locale/locale-provider.js.map +1 -1
  262. package/dist/locale/message-types.d.ts +336 -0
  263. package/dist/locale/message-types.d.ts.map +1 -0
  264. package/dist/locale/message-types.js +7 -0
  265. package/dist/locale/message-types.js.map +1 -0
  266. package/dist/locale/messages-de.d.ts +9 -0
  267. package/dist/locale/messages-de.d.ts.map +1 -0
  268. package/dist/locale/messages-de.js +185 -0
  269. package/dist/locale/messages-de.js.map +1 -0
  270. package/dist/locale/messages-en.d.ts +8 -0
  271. package/dist/locale/messages-en.d.ts.map +1 -0
  272. package/dist/locale/messages-en.js +184 -0
  273. package/dist/locale/messages-en.js.map +1 -0
  274. package/dist/locale/toolkit-messages.d.ts +57 -0
  275. package/dist/locale/toolkit-messages.d.ts.map +1 -0
  276. package/dist/locale/toolkit-messages.js +103 -0
  277. package/dist/locale/toolkit-messages.js.map +1 -0
  278. package/dist/primitives/alert.d.ts +1 -1
  279. package/dist/primitives/alert.d.ts.map +1 -1
  280. package/dist/primitives/alert.js +6 -2
  281. package/dist/primitives/alert.js.map +1 -1
  282. package/dist/primitives/badge.d.ts +1 -1
  283. package/dist/primitives/badge.d.ts.map +1 -1
  284. package/dist/primitives/badge.js +19 -6
  285. package/dist/primitives/badge.js.map +1 -1
  286. package/dist/primitives/button.d.ts +1 -1
  287. package/dist/primitives/button.d.ts.map +1 -1
  288. package/dist/primitives/button.js +12 -8
  289. package/dist/primitives/button.js.map +1 -1
  290. package/dist/primitives/card.js +4 -4
  291. package/dist/primitives/card.js.map +1 -1
  292. package/dist/primitives/dialog.d.ts +7 -3
  293. package/dist/primitives/dialog.d.ts.map +1 -1
  294. package/dist/primitives/dialog.js +22 -8
  295. package/dist/primitives/dialog.js.map +1 -1
  296. package/dist/primitives/input.d.ts.map +1 -1
  297. package/dist/primitives/input.js +4 -1
  298. package/dist/primitives/input.js.map +1 -1
  299. package/dist/primitives/scroll-area.js +1 -1
  300. package/dist/primitives/scroll-area.js.map +1 -1
  301. package/dist/primitives/select.d.ts.map +1 -1
  302. package/dist/primitives/select.js +6 -3
  303. package/dist/primitives/select.js.map +1 -1
  304. package/dist/primitives/sheet.d.ts +3 -1
  305. package/dist/primitives/sheet.d.ts.map +1 -1
  306. package/dist/primitives/sheet.js +17 -7
  307. package/dist/primitives/sheet.js.map +1 -1
  308. package/dist/primitives/skeleton.js +1 -1
  309. package/dist/primitives/skeleton.js.map +1 -1
  310. package/dist/primitives/switch.d.ts.map +1 -1
  311. package/dist/primitives/switch.js +2 -1
  312. package/dist/primitives/switch.js.map +1 -1
  313. package/dist/primitives/tabs.d.ts.map +1 -1
  314. package/dist/primitives/tabs.js +5 -3
  315. package/dist/primitives/tabs.js.map +1 -1
  316. package/dist/providers/query-provider.d.ts +32 -1
  317. package/dist/providers/query-provider.d.ts.map +1 -1
  318. package/dist/providers/query-provider.js +53 -4
  319. package/dist/providers/query-provider.js.map +1 -1
  320. package/dist/render-cases-primitives.js +1 -1
  321. package/dist/render-cases-primitives.js.map +1 -1
  322. package/dist/render-cases.d.ts.map +1 -1
  323. package/dist/render-cases.js +48 -6
  324. package/dist/render-cases.js.map +1 -1
  325. package/dist/render-effects.d.ts +42 -0
  326. package/dist/render-effects.d.ts.map +1 -0
  327. package/dist/render-effects.js +81 -0
  328. package/dist/render-effects.js.map +1 -0
  329. package/dist/render-scan.d.ts +25 -0
  330. package/dist/render-scan.d.ts.map +1 -0
  331. package/dist/render-scan.js +66 -0
  332. package/dist/render-scan.js.map +1 -0
  333. package/dist/theme/cd-tokens.d.ts +66 -0
  334. package/dist/theme/cd-tokens.d.ts.map +1 -0
  335. package/dist/theme/cd-tokens.js +64 -0
  336. package/dist/theme/cd-tokens.js.map +1 -0
  337. package/dist/theme/create-theme.d.ts +214 -39
  338. package/dist/theme/create-theme.d.ts.map +1 -1
  339. package/dist/theme/create-theme.js +204 -13
  340. package/dist/theme/create-theme.js.map +1 -1
  341. package/dist/theme/fonts.d.ts +38 -0
  342. package/dist/theme/fonts.d.ts.map +1 -0
  343. package/dist/theme/fonts.js +56 -0
  344. package/dist/theme/fonts.js.map +1 -0
  345. package/dist/theme/host-fonts.d.ts +39 -0
  346. package/dist/theme/host-fonts.d.ts.map +1 -0
  347. package/dist/theme/host-fonts.js +44 -0
  348. package/dist/theme/host-fonts.js.map +1 -0
  349. package/dist/theme/index.d.ts +8 -1
  350. package/dist/theme/index.d.ts.map +1 -1
  351. package/dist/theme/index.js +5 -1
  352. package/dist/theme/index.js.map +1 -1
  353. package/dist/theme/portal-container.d.ts +16 -0
  354. package/dist/theme/portal-container.d.ts.map +1 -0
  355. package/dist/theme/portal-container.js +19 -0
  356. package/dist/theme/portal-container.js.map +1 -0
  357. package/dist/theme/presets.d.ts +24 -9
  358. package/dist/theme/presets.d.ts.map +1 -1
  359. package/dist/theme/presets.js +44 -11
  360. package/dist/theme/presets.js.map +1 -1
  361. package/dist/theme/theme-provider.d.ts +27 -9
  362. package/dist/theme/theme-provider.d.ts.map +1 -1
  363. package/dist/theme/theme-provider.js +42 -20
  364. package/dist/theme/theme-provider.js.map +1 -1
  365. package/package.json +11 -5
  366. package/src/app/adapt-data-widget.tsx +2 -42
  367. package/src/app/builder/BuilderBanners.tsx +26 -13
  368. package/src/app/builder/CanvasRow.tsx +79 -32
  369. package/src/app/builder/CatalogueSheet.tsx +58 -35
  370. package/src/app/builder/CellPropsSheet.tsx +17 -2
  371. package/src/app/builder/DiscardDialog.tsx +59 -0
  372. package/src/app/builder/EmptyHint.tsx +16 -11
  373. package/src/app/builder/LayoutSurface.tsx +207 -67
  374. package/src/app/builder/PipelineStrip.tsx +265 -156
  375. package/src/app/builder/SaveDialog.tsx +25 -14
  376. package/src/app/builder/Toolbar.tsx +154 -57
  377. package/src/app/builder/Workspace.tsx +226 -56
  378. package/src/app/builder/builder-feedback.test.tsx +75 -0
  379. package/src/app/builder/builder-model.test.ts +5 -0
  380. package/src/app/builder/builder-model.ts +346 -6
  381. package/src/app/builder/builder-model.ux.test.ts +456 -0
  382. package/src/app/builder/builder-ux.test.tsx +844 -0
  383. package/src/app/builder/labels.ts +15 -121
  384. package/src/app/builder/reveal.ts +10 -0
  385. package/src/app/builder/status-chip.tsx +8 -4
  386. package/src/app/builder/use-builder-catalogue.ts +62 -19
  387. package/src/app/builder/use-builder-session.ts +68 -0
  388. package/src/app/builder/use-display-resolver.ts +24 -0
  389. package/src/app/builder/use-save-dashboard.ts +5 -0
  390. package/src/app/index.ts +20 -3
  391. package/src/app/layout-builder.tsx +193 -186
  392. package/src/app/mcp-app-view-chrome.test.tsx +487 -14
  393. package/src/app/mcp-app-view-chrome.tsx +328 -100
  394. package/src/app/mcp-app-view-states.tsx +140 -0
  395. package/src/app/mcp-app-view.effects.test.tsx +292 -0
  396. package/src/app/mcp-app-view.test.tsx +478 -0
  397. package/src/app/mcp-app-view.tsx +447 -190
  398. package/src/app/mcp-toolkit-app.test.tsx +40 -0
  399. package/src/app/mcp-toolkit-app.tsx +39 -8
  400. package/src/app/mcp-use-host-bridge.test.tsx +180 -0
  401. package/src/app/mcp-use-host-bridge.tsx +67 -24
  402. package/src/app/model-context.test.tsx +116 -0
  403. package/src/app/model-context.tsx +125 -0
  404. package/src/app/use-build-mode-focus.ts +62 -0
  405. package/src/app/use-view-actions.ts +89 -0
  406. package/src/app/use-view-lifecycle.ts +122 -0
  407. package/src/app/view-lifecycle.test.ts +443 -0
  408. package/src/app/view-lifecycle.ts +334 -0
  409. package/src/app/widget-fixture.effects.test.tsx +51 -0
  410. package/src/app/widget-fixture.render.test.tsx +81 -0
  411. package/src/app/widget-fixture.tsx +34 -11
  412. package/src/app/widget-props-sheet.tsx +67 -39
  413. package/src/app/widget-renderer.render.test.tsx +131 -0
  414. package/src/app/widget-renderer.tsx +136 -38
  415. package/src/components/DrillButton.tsx +24 -10
  416. package/src/components/EmptyState.tsx +83 -0
  417. package/src/components/ErrorState.tsx +204 -0
  418. package/src/components/FilterBar.test.tsx +82 -0
  419. package/src/components/FilterBar.tsx +56 -27
  420. package/src/components/GroupCard.tsx +3 -2
  421. package/src/components/KpiGrid.test.tsx +279 -0
  422. package/src/components/KpiGrid.tsx +329 -91
  423. package/src/components/ListFooter.test.tsx +116 -0
  424. package/src/components/ListFooter.tsx +110 -12
  425. package/src/components/PagedListFooter.test.tsx +140 -0
  426. package/src/components/PagedListFooter.tsx +107 -0
  427. package/src/components/Pills.test.tsx +77 -0
  428. package/src/components/Pills.tsx +78 -16
  429. package/src/components/SectionHeading.tsx +9 -3
  430. package/src/components/Toast.tsx +206 -0
  431. package/src/components/WidgetHeader.test.tsx +78 -0
  432. package/src/components/WidgetHeader.tsx +63 -16
  433. package/src/components/feedback-states.test.tsx +314 -0
  434. package/src/components/tone-figures.test.tsx +58 -0
  435. package/src/fonts.css +19 -0
  436. package/src/globals.css +9 -165
  437. package/src/hooks/index.ts +6 -3
  438. package/src/hooks/tool-result-recovery-model.test.ts +744 -0
  439. package/src/hooks/tool-result-recovery-model.ts +418 -0
  440. package/src/hooks/use-tool-query.effects.test.tsx +205 -0
  441. package/src/hooks/use-tool-query.ts +156 -33
  442. package/src/hooks/use-tool-result-recovery.effects.test.tsx +141 -0
  443. package/src/hooks/use-tool-result-recovery.test.ts +28 -5
  444. package/src/hooks/use-tool-result-recovery.ts +101 -131
  445. package/src/hooks/use-view-data.test.tsx +169 -0
  446. package/src/hooks/use-view-data.ts +131 -10
  447. package/src/hooks/use-view-tool-query.ts +25 -19
  448. package/src/i18n-coverage.test.tsx +425 -0
  449. package/src/index.ts +102 -13
  450. package/src/lib/focus-return.test.ts +288 -0
  451. package/src/lib/focus-return.ts +96 -0
  452. package/src/lib/focus-ring.ts +20 -0
  453. package/src/lib/icon-stroke.test.ts +59 -0
  454. package/src/lib/icon-stroke.ts +13 -0
  455. package/src/lib/parse-tool-result.test.ts +46 -1
  456. package/src/lib/parse-tool-result.ts +40 -2
  457. package/src/lib/toast-model.test.ts +233 -0
  458. package/src/lib/toast-model.ts +165 -0
  459. package/src/lib/tone-utils.test.ts +125 -16
  460. package/src/lib/tone-utils.ts +144 -15
  461. package/src/lib/tool-query.test.ts +569 -0
  462. package/src/lib/tool-query.ts +253 -0
  463. package/src/lib/tool-result-observer.test.ts +296 -0
  464. package/src/lib/tool-result-observer.ts +211 -0
  465. package/src/lib/typography.test.ts +45 -0
  466. package/src/lib/typography.ts +47 -0
  467. package/src/lib/utils.ts +12 -1
  468. package/src/locale/index.ts +14 -1
  469. package/src/locale/locale-provider.test.tsx +87 -0
  470. package/src/locale/locale-provider.tsx +90 -3
  471. package/src/locale/message-types.ts +337 -0
  472. package/src/locale/messages-de.ts +198 -0
  473. package/src/locale/messages-en.ts +196 -0
  474. package/src/locale/toolkit-messages.test.ts +349 -0
  475. package/src/locale/toolkit-messages.ts +143 -0
  476. package/src/no-hardcoded-copy.test.ts +432 -0
  477. package/src/primitives/alert.tsx +7 -2
  478. package/src/primitives/badge.tsx +19 -7
  479. package/src/primitives/button.tsx +13 -8
  480. package/src/primitives/card.tsx +4 -4
  481. package/src/primitives/dialog.tsx +42 -8
  482. package/src/primitives/input.tsx +5 -3
  483. package/src/primitives/scroll-area.tsx +1 -1
  484. package/src/primitives/select.tsx +7 -4
  485. package/src/primitives/sheet.tsx +33 -6
  486. package/src/primitives/skeleton.tsx +1 -1
  487. package/src/primitives/switch.tsx +4 -2
  488. package/src/primitives/tabs.tsx +9 -6
  489. package/src/providers/query-provider.test.tsx +154 -0
  490. package/src/providers/query-provider.tsx +66 -5
  491. package/src/render-cases-primitives.tsx +1 -1
  492. package/src/render-cases.tsx +82 -6
  493. package/src/render-effects.tsx +96 -0
  494. package/src/render-scan.ts +75 -0
  495. package/src/theme/cd-tokens.generated.css +48 -0
  496. package/src/theme/cd-tokens.test.ts +109 -0
  497. package/src/theme/cd-tokens.ts +67 -0
  498. package/src/theme/create-theme.test.ts +253 -5
  499. package/src/theme/create-theme.ts +341 -41
  500. package/src/theme/fonts.test.ts +85 -0
  501. package/src/theme/fonts.ts +72 -0
  502. package/src/theme/host-fonts.test.ts +135 -0
  503. package/src/theme/host-fonts.ts +52 -0
  504. package/src/theme/index.ts +15 -1
  505. package/src/theme/portal-container.ts +20 -0
  506. package/src/theme/presets.ts +44 -11
  507. package/src/theme/theme-css.test.ts +619 -0
  508. package/src/theme/theme-provider.test.tsx +82 -0
  509. package/src/theme/theme-provider.tsx +60 -24
  510. package/src/theme.css +344 -0
  511. package/ui-catalog.json +783 -49
@@ -1,32 +1,63 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useMemo, useReducer, useState } from "react";
3
3
  import { Eye, Layers, SlidersHorizontal } from "lucide-react";
4
- import { draftToLayout, entriesToKeys, initDraft, sizeToSpan } from "./builder/builder-model.js";
4
+ import { builderLeave, builderSnapshot, draftHasCells, initDraft, sizeToSpan, toExitCommit, } from "./builder/builder-model.js";
5
5
  import { draftReducer, initBuilderState, } from "./builder/builder-reducer.js";
6
- import { DEFAULT_LABELS } from "./builder/labels.js";
7
6
  import { Toolbar } from "./builder/Toolbar.js";
8
7
  import { PipelineStrip } from "./builder/PipelineStrip.js";
9
8
  import { CatalogueSheet } from "./builder/CatalogueSheet.js";
10
9
  import { SaveDialog } from "./builder/SaveDialog.js";
10
+ import { DiscardDialog } from "./builder/DiscardDialog.js";
11
11
  import { PreviewPane } from "./builder/PreviewPane.js";
12
12
  import { LayoutSurface } from "./builder/LayoutSurface.js";
13
13
  import { BuilderBanners } from "./builder/BuilderBanners.js";
14
14
  import { EmptyHint } from "./builder/EmptyHint.js";
15
15
  import { CellPropsSheet } from "./builder/CellPropsSheet.js";
16
16
  import { useBuilderCatalogue } from "./builder/use-builder-catalogue.js";
17
+ import { useBuilderMode, useDraftStatus, useRenameFeedback } from "./builder/use-builder-session.js";
17
18
  import { useKeyStepEntries } from "./builder/use-key-step-entries.js";
18
19
  import { useSaveDashboard } from "./builder/use-save-dashboard.js";
19
20
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "../primitives/tabs.js";
21
+ import { ToastProvider, useToast } from "../components/Toast.js";
22
+ import { useToolkitMessages } from "../locale/locale-provider.js";
23
+ import { builderMountFocusTarget, useFocusOnMount } from "./use-build-mode-focus.js";
20
24
  // -------------------------------------------------------------------------- //
21
25
  // Main component
22
26
  // -------------------------------------------------------------------------- //
23
- export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps, widgets, callTool, catalogueToolName = "get-builder-catalogue", saveToolName = "save-dashboard", dashboardId, labels, onSaved, onExit, }) {
24
- const L = useMemo(() => ({ ...DEFAULT_LABELS, ...labels }), [labels]);
27
+ /**
28
+ * The visual view builder. People see widgets and steps by their titles
29
+ * (`title`/`titleKey` of the definitions, else the id); the data sources, the
30
+ * catalogue and the technical ids sit behind "Advanced". "Apply" shows the
31
+ * draft in the view, "Save as dashboard" stores it, "Discard" restores the
32
+ * view as it was. Confirms a successful save with a toast (it mounts a
33
+ * `ToastProvider` when none is above it — inside `McpAppView` it shares the
34
+ * view's). Every caption follows the active locale (`labels` overrides).
35
+ */
36
+ export function LayoutBuilder(props) {
37
+ // Discard without an `onExit` restores the initial props by remounting.
38
+ const [generation, setGeneration] = useState(0);
39
+ const reset = useCallback(() => setGeneration((g) => g + 1), []);
40
+ return (_jsx(ToastProvider, { children: _jsx(LayoutBuilderImpl, { ...props, onReset: reset, mountFocus: builderMountFocusTarget(generation) }, generation) }));
41
+ }
42
+ /**
43
+ * The catalog strings, overrides merged; a `labels` override of the deprecated
44
+ * `done` still labels Apply (a catalog override of it already did, in
45
+ * `resolveToolkitMessages`).
46
+ */
47
+ function useBuilderLabels(labels) {
48
+ const messages = useToolkitMessages();
49
+ return useMemo(() => ({
50
+ ...messages.builder,
51
+ ...labels,
52
+ apply: labels?.apply ?? labels?.done ?? messages.builder.apply,
53
+ }), [messages.builder, labels]);
54
+ }
55
+ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, widgets, callTool, catalogueToolName = "get-builder-catalogue", saveToolName = "save-dashboard", dashboardId, labels, onSaved, onExit, onReset, mountFocus, }) {
56
+ const L = useBuilderLabels(labels);
57
+ const toast = useToast();
58
+ // A reset remounts the builder: the element that had the focus is gone.
59
+ const rootRef = useFocusOnMount(mountFocus);
25
60
  // ── Draft layout (pure reducer) ─────────────────────────────────────────
26
- // The draft plus the UI indices coupled to draft mutations
27
- // (activeTabIndex / focusedRowIndex / editingTabIdx) live in a single pure
28
- // reducer (see ./builder/builder-reducer.ts) so every mutation is testable
29
- // and the old setState-in-updater pattern is gone.
30
61
  const [builderState, dispatch] = useReducer(draftReducer, initialLayout, (layout) => initBuilderState(initDraft(layout)));
31
62
  const { draft, activeTabIndex, focusedRowIndex, editingTabIdx, renameRejectedAt } = builderState;
32
63
  const setActiveTabIndex = useCallback((idx) => dispatch({ type: "selectTab", tabIdx: idx }), []);
@@ -34,34 +65,20 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
34
65
  const setEditingTabIdx = useCallback((idx) => {
35
66
  dispatch(idx === null ? { type: "stopEditingTab" } : { type: "startEditingTab", tabIdx: idx });
36
67
  }, []);
37
- const [view, setView] = useState("layout");
68
+ const { advanced, view, setView, toggleAdvanced, openDataSources } = useBuilderMode();
38
69
  const [catalogueOpen, setCatalogueOpen] = useState(false);
39
- // ── Inline rename feedback ──────────────────────────────────────────────
40
- // The reducer rejects duplicate tab labels and bumps `renameRejectedAt`
41
- // (Phase 1 signal). Mirror each bump into a transient flag so the rename
42
- // input can show "name already exists" inline (Finding [3]). Tracked via
43
- // the render-phase setState pattern used elsewhere in this codebase; cleared
44
- // when the inline editor closes (editingTabIdx → null).
45
- const [renameRejected, setRenameRejected] = useState(false);
46
- const [prevRenameRejectedAt, setPrevRenameRejectedAt] = useState(renameRejectedAt);
47
- if (renameRejectedAt !== prevRenameRejectedAt) {
48
- setPrevRenameRejectedAt(renameRejectedAt);
49
- setRenameRejected(true);
50
- }
51
- const [prevEditingTabIdx, setPrevEditingTabIdx] = useState(editingTabIdx);
52
- if (editingTabIdx !== prevEditingTabIdx) {
53
- setPrevEditingTabIdx(editingTabIdx);
54
- if (editingTabIdx === null)
55
- setRenameRejected(false);
56
- }
70
+ const [discardOpen, setDiscardOpen] = useState(false);
71
+ const renameRejected = useRenameFeedback(renameRejectedAt, editingTabIdx);
57
72
  // ── Keys + steps editor state ───────────────────────────────────────────
58
73
  const { keyEntries, stepEntries, addKey, updateKey, removeKey, addStep, updateStep, removeStep } = useKeyStepEntries({ initialKeys, initialSteps });
74
+ // ── Draft status: what Apply / Discard / the unsaved marker compare ─────
75
+ const snapshot = useMemo(() => builderSnapshot(draft, keyEntries, stepEntries), [draft, keyEntries, stepEntries]);
76
+ const draftState = useDraftStatus(snapshot);
59
77
  // ── Catalogue fetch (mount + on key/step edits) ─────────────────────────
60
- // The builder fetches its own catalogue from the app-only
61
- // `get-builder-catalogue` tool; the LLM never sees this data.
62
- const { liveReachable, liveUnreachable, liveCatalog, liveSteps, liveContext, validationIssues, status, refreshError, widgetById, propsSchemaByWidgetId, paletteByApp, liveKeyCount, stepsByApp, } = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
78
+ const catalogue = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
79
+ const { liveReachable, liveCatalog, liveContext, widgetById } = catalogue;
63
80
  // ── Save dialog ─────────────────────────────────────────────────────────
64
- const { isBusy, saveOpen, setSaveOpen, saveName, setSaveName, saveDescription, setSaveDescription, saveError, setSaveError, saveDraft, } = useSaveDashboard({
81
+ const save = useSaveDashboard({
65
82
  callTool,
66
83
  saveToolName,
67
84
  dashboardId,
@@ -70,14 +87,13 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
70
87
  stepEntries,
71
88
  draft,
72
89
  onSaved,
90
+ onSuccess: (name) => {
91
+ draftState.markSaved(snapshot);
92
+ toast.show({ tone: "success", title: L.saved(name) });
93
+ },
73
94
  });
74
- // ── DnD ──────────────────────────────────────────────────────────────────
95
+ // ── DnD + the cell whose props are being configured ─────────────────────
75
96
  const [dragOverRow, setDragOverRow] = useState(null);
76
- // Which cell (if any) is having its props configured. The
77
- // WidgetPropsSheet is mounted once at the LayoutBuilder root so that
78
- // exactly one editor can be open at a time across the entire workspace
79
- // — including across tabs. Stored as `{ rowIdx, cellIdx }` against the
80
- // currently active draft surface (rows or active tab's rows).
81
97
  const [configuringCell, setConfiguringCell] = useState(null);
82
98
  const activeRows = draft.kind === "tabs" ? (draft.tabs[activeTabIndex]?.rows ?? []) : draft.rows;
83
99
  // ── Layout mutations (dispatch pure actions) ────────────────────────────
@@ -97,18 +113,13 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
97
113
  const moveRow = useCallback((rowIdx, direction) => dispatch({ type: "moveRow", rowIdx, direction }), []);
98
114
  const setCellSpan = useCallback((rowIdx, cellIdx, span) => dispatch({ type: "setCellSpan", rowIdx, cellIdx, span }), []);
99
115
  const removeCell = useCallback((rowIdx, cellIdx) => dispatch({ type: "removeCell", rowIdx, cellIdx }), []);
100
- // Sets (or clears, when `next` is undefined) the per-instance `props` on
101
- // a cell. Triggered by the WidgetPropsSheet's Apply button. Storing
102
- // `undefined` rather than `{}` keeps the saved layout's wire format
103
- // identical to one a hand-coded LLM call would produce — the field is
104
- // simply absent.
116
+ // Sets (or clears, when `next` is undefined) a cell's per-instance `props`
117
+ // from the props sheet's Apply; `undefined` keeps the field absent on the wire.
105
118
  const setCellProps = useCallback((rowIdx, cellIdx, next) => dispatch({ type: "setCellProps", rowIdx, cellIdx, next }), []);
106
119
  const addTab = useCallback(() => dispatch({ type: "addTab" }), []);
107
- // Commit an inline tab rename and decide whether to close the editor.
108
- // Dispatches the rename, then keeps the input open when the trimmed label
109
- // collides with another tab so the reducer's rejection (`renameRejectedAt`)
110
- // can drive the inline "name already exists" feedback instead of the editor
111
- // silently snapping shut on the old label.
120
+ // Commit an inline tab rename. A label that collides with another tab keeps
121
+ // the editor open (the reducer's rejection drives the inline error); the
122
+ // return value tells the field whether it closed.
112
123
  const commitRename = useCallback((tabIdx, label) => {
113
124
  dispatch({ type: "renameTab", tabIdx, label });
114
125
  const trimmed = label.trim();
@@ -117,6 +128,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
117
128
  draft.tabs.some((t, i) => i !== tabIdx && t.label === trimmed);
118
129
  if (!isDuplicate)
119
130
  setEditingTabIdx(null);
131
+ return !isDuplicate;
120
132
  }, [draft, setEditingTabIdx]);
121
133
  const removeTab = useCallback((tabIdx) => dispatch({ type: "removeTab", tabIdx }), []);
122
134
  // ── Smart action: add a producing step for a missing key ────────────────
@@ -126,34 +138,23 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
126
138
  return;
127
139
  addStep(producer);
128
140
  }, [addStep, liveCatalog]);
141
+ // ── Leaving: Apply commits, Discard restores (asking first when the view loses changes) ─
142
+ const leave = builderLeave({
143
+ changed: draftState.changed,
144
+ onExit,
145
+ onReset,
146
+ commit: () => toExitCommit(draft, keyEntries, stepEntries, title, liveContext),
147
+ confirm: () => setDiscardOpen(true),
148
+ });
129
149
  const widgetProps = useMemo(() => ({ keys: liveContext.keys, context: liveContext }), [liveContext]);
130
- const hasAnyCell = activeRows.some((r) => r.row.length > 0);
131
- const liveKeysMap = liveContext.keys;
132
- return (_jsxs("div", { className: "flex min-h-[60vh] flex-col gap-4 p-1", children: [_jsx(Toolbar, { L: L, previewMode: view === "preview", isBusy: isBusy, status: status, liveKeys: liveKeyCount, reachableCount: liveReachable.length, unreachableCount: liveUnreachable.length, onOpenCatalogue: () => setCatalogueOpen(true), onOpenSave: () => setSaveOpen(true), onDone: onExit
133
- ? () => onExit({
134
- layout: draftToLayout(draft),
135
- keys: entriesToKeys(keyEntries),
136
- steps: stepEntries.filter((s) => s.step.trim().length > 0),
137
- title,
138
- context: {
139
- keys: liveContext.keys,
140
- stepIds: Object.keys(liveContext.steps),
141
- stepData: Object.fromEntries(Object.entries(liveContext.steps).map(([id, result]) => [
142
- id,
143
- {
144
- data: result.data,
145
- keys: result.keys,
146
- _app: result._app,
147
- _dataType: result._dataType,
148
- },
149
- ])),
150
- errors: liveContext.errors,
151
- },
152
- })
153
- : undefined, hasAnyCell: hasAnyCell }), _jsx(BuilderBanners, { L: L, catalogueToolName: catalogueToolName, refreshError: refreshError, validationIssues: validationIssues }), _jsxs(Tabs, { value: view, onValueChange: (v) => setView(v), children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "layout", children: [_jsx(Layers, { className: "size-3.5" }), L.viewLayoutTab] }), _jsxs(TabsTrigger, { value: "pipeline", children: [_jsx(SlidersHorizontal, { className: "size-3.5" }), L.viewPipelineTab, (keyEntries.length > 0 || stepEntries.length > 0) && (_jsxs("span", { className: "bg-muted text-muted-foreground ml-1 rounded px-1 font-mono text-[10px]", children: [keyEntries.length, "/", stepEntries.length] }))] }), _jsxs(TabsTrigger, { value: "preview", disabled: !hasAnyCell, children: [_jsx(Eye, { className: "size-3.5" }), L.viewPreviewTab] })] }), _jsx(TabsContent, { value: "layout", className: "mt-4", children: liveReachable.length === 0 && !hasAnyCell ? (_jsx(EmptyHint, { L: L, onGotoPipeline: () => setView("pipeline") })) : (_jsx(LayoutSurface, { L: L, draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, editingTabIdx: editingTabIdx, setEditingTabIdx: setEditingTabIdx, renameRejected: renameRejected, commitRename: commitRename, onAddTab: addTab, onRemoveTab: removeTab, workspace: {
150
+ const hasAnyCell = draftHasCells(draft);
151
+ return (_jsxs("div", { ref: rootRef, className: "flex min-h-[60vh] flex-col gap-4 p-1", children: [_jsx(Toolbar, { L: L, previewMode: view === "preview", isBusy: save.isBusy, status: catalogue.status, liveKeys: catalogue.liveKeyCount, reachableCount: liveReachable.length, unreachableCount: catalogue.liveUnreachable.length, advanced: advanced, onToggleAdvanced: toggleAdvanced, unsaved: draftState.unsaved, onOpenCatalogue: () => setCatalogueOpen(true), onOpenSave: () => save.setSaveOpen(true), onDiscard: leave.discard, onApply: leave.apply, hasAnyCell: hasAnyCell }), _jsx(BuilderBanners, { L: L, catalogueToolName: catalogueToolName, refreshError: catalogue.refreshError, validationIssues: catalogue.validationIssues, onRetry: catalogue.retryCatalogue }), _jsxs(Tabs, { value: view, onValueChange: (v) => setView(v), children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "layout", children: [_jsx(Layers, { "aria-hidden": "true", className: "size-3.5" }), L.viewLayoutTab] }), advanced && (_jsxs(TabsTrigger, { value: "pipeline", children: [_jsx(SlidersHorizontal, { "aria-hidden": "true", className: "size-3.5" }), L.viewPipelineTab, (keyEntries.length > 0 || stepEntries.length > 0) && (_jsxs("span", { className: "bg-muted text-muted-foreground text-small ml-1 rounded px-1 tabular-nums", children: [keyEntries.length, "/", stepEntries.length] }))] })), _jsxs(TabsTrigger, { value: "preview", disabled: !hasAnyCell, children: [_jsx(Eye, { "aria-hidden": "true", className: "size-3.5" }), L.viewPreviewTab] })] }), _jsx(TabsContent, { value: "layout", className: "mt-4", children: catalogue.loaded && liveReachable.length === 0 && !hasAnyCell ? (_jsx(EmptyHint, { L: L, onGotoPipeline: openDataSources })) : (_jsx(LayoutSurface, { L: L, draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, editingTabIdx: editingTabIdx, setEditingTabIdx: setEditingTabIdx, renameRejected: renameRejected, commitRename: commitRename, onAddTab: addTab, onRemoveTab: removeTab, workspace: {
154
152
  L,
155
- paletteByApp,
153
+ paletteByApp: catalogue.paletteByApp,
154
+ appDisplayByName: catalogue.appDisplayByName,
156
155
  paletteCount: liveReachable.length,
156
+ paletteLoading: !catalogue.loaded,
157
+ onOpenDataSources: openDataSources,
157
158
  activeRows,
158
159
  focusedRowIndex,
159
160
  setFocusedRowIndex,
@@ -166,10 +167,12 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
166
167
  onRemoveCell: removeCell,
167
168
  onAddWidget: addWidgetToRow,
168
169
  onConfigureCell: (rowIdx, cellIdx) => setConfiguringCell({ rowIdx, cellIdx }),
169
- propsSchemaByWidgetId,
170
+ propsSchemaByWidgetId: catalogue.propsSchemaByWidgetId,
171
+ displayByWidgetId: catalogue.displayByWidgetId,
172
+ advanced,
170
173
  widgets,
171
174
  widgetProps,
172
- } })) }), _jsx(TabsContent, { value: "pipeline", className: "mt-4", children: _jsx(PipelineStrip, { L: L, keyEntries: keyEntries, stepEntries: stepEntries, keyCatalog: liveCatalog, availableSteps: liveSteps, stepsByApp: stepsByApp, liveKeys: liveKeysMap, onAddKey: addKey, onUpdateKey: updateKey, onRemoveKey: removeKey, onAddStep: addStep, onUpdateStep: updateStep, onRemoveStep: removeStep, status: status }) }), _jsx(TabsContent, { value: "preview", className: "mt-4", children: _jsx(PreviewPane, { draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, widgets: widgets, widgetProps: widgetProps }) })] }), _jsx(CatalogueSheet, { L: L, open: catalogueOpen, onOpenChange: setCatalogueOpen, keyCatalog: liveCatalog, availableSteps: liveSteps, unreachableWidgets: liveUnreachable, onSeedKey: (name) => {
175
+ } })) }), advanced && (_jsx(TabsContent, { value: "pipeline", className: "mt-4", children: _jsx(PipelineStrip, { L: L, keyEntries: keyEntries, stepEntries: stepEntries, keyCatalog: liveCatalog, availableSteps: catalogue.liveSteps, stepsByApp: catalogue.stepsByApp, liveKeys: liveContext.keys, onAddKey: addKey, onUpdateKey: updateKey, onRemoveKey: removeKey, onAddStep: addStep, onUpdateStep: updateStep, onRemoveStep: removeStep, status: catalogue.status }) })), _jsx(TabsContent, { value: "preview", className: "mt-4", children: _jsx(PreviewPane, { draft: draft, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, widgets: widgets, widgetProps: widgetProps }) })] }), _jsx(CatalogueSheet, { L: L, open: catalogueOpen, onOpenChange: setCatalogueOpen, keyCatalog: liveCatalog, availableSteps: catalogue.liveSteps, unreachableWidgets: catalogue.liveUnreachable, onSeedKey: (name) => {
173
176
  addKey(name);
174
177
  setCatalogueOpen(false);
175
178
  setView("pipeline");
@@ -177,11 +180,14 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
177
180
  addProducingStepFor(key);
178
181
  setCatalogueOpen(false);
179
182
  setView("pipeline");
180
- } }), _jsx(SaveDialog, { L: L, open: saveOpen, onOpenChange: (open) => {
183
+ } }), _jsx(SaveDialog, { L: L, open: save.saveOpen, canApply: onExit !== undefined, onOpenChange: (open) => {
181
184
  // Clear any stale save error whenever the dialog is opened or
182
185
  // dismissed so a fresh attempt starts clean.
183
- setSaveError(null);
184
- setSaveOpen(open);
185
- }, name: saveName, setName: setSaveName, description: saveDescription, setDescription: setSaveDescription, onSubmit: saveDraft, busy: isBusy, error: saveError }), _jsx(CellPropsSheet, { configuringCell: configuringCell, activeRows: activeRows, propsSchemaByWidgetId: propsSchemaByWidgetId, onApply: setCellProps, onClose: () => setConfiguringCell(null) })] }));
186
+ save.setSaveError(null);
187
+ save.setSaveOpen(open);
188
+ }, name: save.saveName, setName: save.setSaveName, description: save.saveDescription, setDescription: save.setSaveDescription, onSubmit: save.saveDraft, busy: save.isBusy, error: save.saveError }), _jsx(DiscardDialog, { L: L, open: discardOpen, onOpenChange: setDiscardOpen, changesSaved: !draftState.unsaved, onConfirm: () => {
189
+ setDiscardOpen(false);
190
+ leave.discardNow();
191
+ } }), _jsx(CellPropsSheet, { configuringCell: configuringCell, activeRows: activeRows, propsSchemaByWidgetId: catalogue.propsSchemaByWidgetId, displayByWidgetId: catalogue.displayByWidgetId, onApply: setCellProps, onClose: () => setConfiguringCell(null) })] }));
186
192
  }
187
193
  //# sourceMappingURL=layout-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-builder.js","sourceRoot":"","sources":["../../src/app/layout-builder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-builder.js","sourceRoot":"","sources":["../../src/app/layout-builder.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,32 @@
1
+ /**
2
+ * Presentational chrome for `McpAppView` — the toolbar, the failed-steps
3
+ * alert, and the build/render body — plus the view-envelope types they share.
4
+ * The pre-payload states (waiting / error / cancelled) live in
5
+ * `mcp-app-view-states.tsx`. Split out of `mcp-app-view.tsx` so the shell
6
+ * component keeps only the host-sync and state logic while these files stay
7
+ * hook-light.
8
+ */
9
+ import { type ReactNode } from "react";
1
10
  import type { LayoutConfig, PipelineStepRef } from "@miragon/mcp-toolkit-core";
2
- import { type LayoutBuilderProps } from "./layout-builder.js";
11
+ import { type ViewMessages } from "../locale/toolkit-messages.js";
12
+ import { type LayoutBuilderLabels, type LayoutBuilderProps } from "./layout-builder.js";
3
13
  import { type WidgetComponent } from "./widget-renderer.js";
4
- export interface McpAppViewLabels {
5
- loading?: string;
6
- /** Shown instead of the loading skeleton when the host cancelled the rendering tool call. */
7
- cancelled?: string;
8
- refresh?: string;
9
- refreshing?: string;
10
- enterFullscreen?: string;
11
- exitFullscreen?: string;
12
- build?: string;
13
- }
14
+ /**
15
+ * Override strings of the view chrome (placeholder, error state, toolbar,
16
+ * step errors). Every field defaults to the active locale's toolkit catalog
17
+ * (`en`/`de`, see `useToolkitMessages`).
18
+ */
19
+ export type McpAppViewLabels = Partial<ViewMessages>;
20
+ /**
21
+ * English chrome strings.
22
+ * @deprecated Read the active locale's strings with `useToolkitMessages().view`
23
+ * (or `TOOLKIT_MESSAGES.en.view`); this alias stays for existing imports.
24
+ */
14
25
  export declare const DEFAULT_LABELS: Required<McpAppViewLabels>;
26
+ /** How the toolbar shows the view title — so a view has exactly ONE title. */
27
+ export type ViewTitleMode = "show" | "hide" | "slot";
28
+ /** Heading level of the toolbar title. */
29
+ export type ViewTitleLevel = 1 | 2 | 3 | 4 | 5 | 6;
15
30
  export interface RefreshParams {
16
31
  keys?: Record<string, unknown>;
17
32
  steps?: PipelineStepRef[];
@@ -50,28 +65,95 @@ export interface ViewData {
50
65
  * recovery hook's `isValid` dependency.
51
66
  */
52
67
  export declare function isCompleteViewData(value: unknown): value is ViewData;
53
- export declare function ViewPlaceholder({ cancelled, labels, }: {
54
- /** The host cancelled the rendering call — no payload will arrive. */
55
- cancelled: boolean;
56
- labels: Required<McpAppViewLabels>;
57
- }): import("react").JSX.Element;
68
+ /** What the LayoutBuilder hands back on Apply. */
69
+ export interface BuilderCommit {
70
+ layout: LayoutConfig;
71
+ keys?: Record<string, unknown>;
72
+ steps?: PipelineStepRef[];
73
+ title?: string;
74
+ context?: ViewData["context"];
75
+ }
76
+ /**
77
+ * Commit the builder's draft into the view payload so the renderer shows the
78
+ * just-built layout and Refresh re-issues it. Exported for tests.
79
+ */
80
+ export declare function applyBuilderCommit(prev: ViewData, commit: BuilderCommit): ViewData;
81
+ /**
82
+ * Whether the Fullscreen toggle may render: the host offers fullscreen
83
+ * (mcp-use's negotiated `availableDisplayModes`, toolkit#178 K22), or the view
84
+ * is already there (its exit toggle must stay).
85
+ */
86
+ export declare function fullscreenAvailable(displayMode: string, availableDisplayModes: readonly string[]): boolean;
58
87
  export interface ViewToolbarProps {
59
88
  /** The toolbar hides entirely while build mode owns the surface. */
60
89
  hidden: boolean;
61
90
  viewData: ViewData;
62
91
  builderAvailable: boolean;
63
92
  isFullscreen: boolean;
93
+ /** The host offers fullscreen (see {@link fullscreenAvailable}). */
94
+ canFullscreen: boolean;
64
95
  isRefreshing: boolean;
65
96
  labels: Required<McpAppViewLabels>;
97
+ titleMode: ViewTitleMode;
98
+ titleLevel: ViewTitleLevel;
99
+ renderTitle?: (title: string | undefined) => ReactNode;
66
100
  onRefresh: () => Promise<void>;
67
101
  onEnterBuildMode: () => void;
68
102
  onToggleFullscreen: () => Promise<void>;
103
+ /**
104
+ * The pre-formatted time of a view that loaded its data again on its own
105
+ * (toolkit#176 N23): the toolbar stamps it in a quiet line under the title,
106
+ * so the figures read as live data of that time, not the result the chat
107
+ * answered from.
108
+ */
109
+ dataAsOf?: string;
69
110
  }
70
- export declare function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, isRefreshing, labels, onRefresh, onEnterBuildMode, onToggleFullscreen, }: ViewToolbarProps): import("react").JSX.Element | null;
71
- export declare function StepErrors({ hidden, errors, }: {
72
- /** Build mode surfaces its own diagnostics; the shell list hides. */
111
+ /** Which toolbar controls render — pure, so the gates are unit-testable. */
112
+ export declare function toolbarControls(input: {
113
+ viewData: Pick<ViewData, "_refreshParams" | "layout" | "title">;
114
+ builderAvailable: boolean;
115
+ canFullscreen: boolean;
116
+ titleMode: ViewTitleMode;
117
+ }): {
118
+ title: boolean;
119
+ refresh: boolean;
120
+ edit: boolean;
121
+ fullscreen: boolean;
122
+ any: boolean;
123
+ };
124
+ /**
125
+ * The view toolbar: the title (per {@link ViewTitleMode}, so a widget that
126
+ * renders its own heading is not titled twice), then Edit, Refresh and
127
+ * Fullscreen. Refresh and Fullscreen are 32 px icon buttons named by
128
+ * `aria-label`; Fullscreen renders only when the host offers it. All three are
129
+ * chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
130
+ * hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
131
+ * edge, also in fullscreen. The controls never shrink; the stamp of re-loaded
132
+ * data sits under the title ({@link ToolbarHeading}), so neither the title
133
+ * nor the stamp competes with the controls for width.
134
+ */
135
+ export declare function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, dataAsOf, }: ViewToolbarProps): import("react").JSX.Element | null;
136
+ /** Resolves a human title for a pipeline step (`{ id, step }` from the view's steps). */
137
+ export type DescribeStep = (step: {
138
+ id: string;
139
+ step?: string;
140
+ }) => string | undefined;
141
+ /**
142
+ * The failed data steps as ONE inline alert: what happened (the title), which
143
+ * data is affected (each step by its human title, else its step id), what you
144
+ * can do (retry, or ask in the chat when the view cannot refresh). The raw
145
+ * step reasons stay under "Details", out of the user copy.
146
+ */
147
+ export declare function StepErrors({ hidden, errors, steps, labels, describeStep, onRetry, }: {
148
+ /** Build mode surfaces its own diagnostics; the shell alert hides. */
73
149
  hidden: boolean;
74
150
  errors: ViewData["context"]["errors"];
151
+ /** The view's step refs (`_refreshParams.steps`), to name a failed step by its definition. */
152
+ steps?: PipelineStepRef[];
153
+ labels: Required<McpAppViewLabels>;
154
+ describeStep?: DescribeStep;
155
+ /** Re-runs the view (a refresh); omitted when the view cannot be refreshed. */
156
+ onRetry?: () => void;
75
157
  }): import("react").JSX.Element | null;
76
158
  export interface ViewBodyProps {
77
159
  buildMode: boolean;
@@ -79,6 +161,7 @@ export interface ViewBodyProps {
79
161
  widgets: Record<string, WidgetComponent>;
80
162
  callTool: (name: string, args: object) => Promise<unknown>;
81
163
  onExit: LayoutBuilderProps["onExit"];
164
+ builderLabels?: LayoutBuilderLabels;
82
165
  }
83
- export declare function ViewBody({ buildMode, viewData, widgets, callTool, onExit }: ViewBodyProps): import("react").JSX.Element | null;
166
+ export declare function ViewBody({ buildMode, viewData, widgets, callTool, onExit, builderLabels, }: ViewBodyProps): import("react").JSX.Element | null;
84
167
  //# sourceMappingURL=mcp-app-view-chrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-app-view-chrome.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE9E,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,gBAAgB,CAQrD,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAClF,CAAA;QACD,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAC7C,CAAA;IACD,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAGpE;AAMD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,GACP,EAAE;IACD,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;CACnC,+BAeA;AAMD,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACxC;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GACnB,EAAE,gBAAgB,sCA8ClB;AAMD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,GACP,EAAE;IACD,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAA;CACtC,sCAWA;AAMD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;CACrC;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,aAAa,sCAwBzF"}
1
+ {"version":3,"file":"mcp-app-view-chrome.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"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"}