@miragon/mcp-toolkit-ui 2.5.0 → 2.7.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 (348) hide show
  1. package/README.md +8 -2
  2. package/dist/app/builder/BuilderBanners.d.ts +7 -2
  3. package/dist/app/builder/BuilderBanners.d.ts.map +1 -1
  4. package/dist/app/builder/BuilderBanners.js +8 -3
  5. package/dist/app/builder/BuilderBanners.js.map +1 -1
  6. package/dist/app/builder/CanvasRow.d.ts.map +1 -1
  7. package/dist/app/builder/CanvasRow.js +12 -14
  8. package/dist/app/builder/CanvasRow.js.map +1 -1
  9. package/dist/app/builder/CatalogueSheet.d.ts.map +1 -1
  10. package/dist/app/builder/CatalogueSheet.js +6 -5
  11. package/dist/app/builder/CatalogueSheet.js.map +1 -1
  12. package/dist/app/builder/EmptyHint.d.ts +4 -0
  13. package/dist/app/builder/EmptyHint.d.ts.map +1 -1
  14. package/dist/app/builder/EmptyHint.js +6 -1
  15. package/dist/app/builder/EmptyHint.js.map +1 -1
  16. package/dist/app/builder/LayoutSurface.js +3 -3
  17. package/dist/app/builder/LayoutSurface.js.map +1 -1
  18. package/dist/app/builder/PipelineStrip.d.ts +3 -1
  19. package/dist/app/builder/PipelineStrip.d.ts.map +1 -1
  20. package/dist/app/builder/PipelineStrip.js +11 -6
  21. package/dist/app/builder/PipelineStrip.js.map +1 -1
  22. package/dist/app/builder/SaveDialog.d.ts.map +1 -1
  23. package/dist/app/builder/SaveDialog.js +2 -2
  24. package/dist/app/builder/SaveDialog.js.map +1 -1
  25. package/dist/app/builder/Toolbar.d.ts +3 -1
  26. package/dist/app/builder/Toolbar.d.ts.map +1 -1
  27. package/dist/app/builder/Toolbar.js +9 -3
  28. package/dist/app/builder/Toolbar.js.map +1 -1
  29. package/dist/app/builder/Workspace.js +2 -2
  30. package/dist/app/builder/Workspace.js.map +1 -1
  31. package/dist/app/builder/builder-model.d.ts +3 -2
  32. package/dist/app/builder/builder-model.d.ts.map +1 -1
  33. package/dist/app/builder/builder-model.js +5 -4
  34. package/dist/app/builder/builder-model.js.map +1 -1
  35. package/dist/app/builder/labels.d.ts +13 -62
  36. package/dist/app/builder/labels.d.ts.map +1 -1
  37. package/dist/app/builder/labels.js +9 -58
  38. package/dist/app/builder/labels.js.map +1 -1
  39. package/dist/app/builder/status-chip.d.ts.map +1 -1
  40. package/dist/app/builder/status-chip.js +3 -2
  41. package/dist/app/builder/status-chip.js.map +1 -1
  42. package/dist/app/builder/use-builder-catalogue.d.ts +1 -0
  43. package/dist/app/builder/use-builder-catalogue.d.ts.map +1 -1
  44. package/dist/app/builder/use-builder-catalogue.js +6 -0
  45. package/dist/app/builder/use-builder-catalogue.js.map +1 -1
  46. package/dist/app/builder/use-save-dashboard.d.ts +3 -1
  47. package/dist/app/builder/use-save-dashboard.d.ts.map +1 -1
  48. package/dist/app/builder/use-save-dashboard.js +3 -1
  49. package/dist/app/builder/use-save-dashboard.js.map +1 -1
  50. package/dist/app/index.d.ts +1 -1
  51. package/dist/app/index.d.ts.map +1 -1
  52. package/dist/app/index.js.map +1 -1
  53. package/dist/app/layout-builder.d.ts +7 -2
  54. package/dist/app/layout-builder.d.ts.map +1 -1
  55. package/dist/app/layout-builder.js +17 -5
  56. package/dist/app/layout-builder.js.map +1 -1
  57. package/dist/app/mcp-app-view-chrome.d.ts +94 -20
  58. package/dist/app/mcp-app-view-chrome.d.ts.map +1 -1
  59. package/dist/app/mcp-app-view-chrome.js +109 -40
  60. package/dist/app/mcp-app-view-chrome.js.map +1 -1
  61. package/dist/app/mcp-app-view-states.d.ts +15 -0
  62. package/dist/app/mcp-app-view-states.d.ts.map +1 -0
  63. package/dist/app/mcp-app-view-states.js +34 -0
  64. package/dist/app/mcp-app-view-states.js.map +1 -0
  65. package/dist/app/mcp-app-view.d.ts +40 -5
  66. package/dist/app/mcp-app-view.d.ts.map +1 -1
  67. package/dist/app/mcp-app-view.js +174 -128
  68. package/dist/app/mcp-app-view.js.map +1 -1
  69. package/dist/app/mcp-toolkit-app.d.ts +2 -1
  70. package/dist/app/mcp-toolkit-app.d.ts.map +1 -1
  71. package/dist/app/mcp-toolkit-app.js +25 -3
  72. package/dist/app/mcp-toolkit-app.js.map +1 -1
  73. package/dist/app/use-view-lifecycle.d.ts +38 -0
  74. package/dist/app/use-view-lifecycle.d.ts.map +1 -0
  75. package/dist/app/use-view-lifecycle.js +79 -0
  76. package/dist/app/use-view-lifecycle.js.map +1 -0
  77. package/dist/app/view-lifecycle.d.ts +109 -0
  78. package/dist/app/view-lifecycle.d.ts.map +1 -0
  79. package/dist/app/view-lifecycle.js +120 -0
  80. package/dist/app/view-lifecycle.js.map +1 -0
  81. package/dist/app/widget-props-sheet.d.ts +3 -9
  82. package/dist/app/widget-props-sheet.d.ts.map +1 -1
  83. package/dist/app/widget-props-sheet.js +6 -13
  84. package/dist/app/widget-props-sheet.js.map +1 -1
  85. package/dist/app/widget-renderer.d.ts +41 -1
  86. package/dist/app/widget-renderer.d.ts.map +1 -1
  87. package/dist/app/widget-renderer.js +82 -31
  88. package/dist/app/widget-renderer.js.map +1 -1
  89. package/dist/components/DrillButton.d.ts.map +1 -1
  90. package/dist/components/DrillButton.js +2 -1
  91. package/dist/components/DrillButton.js.map +1 -1
  92. package/dist/components/EmptyState.d.ts +33 -0
  93. package/dist/components/EmptyState.d.ts.map +1 -0
  94. package/dist/components/EmptyState.js +17 -0
  95. package/dist/components/EmptyState.js.map +1 -0
  96. package/dist/components/ErrorState.d.ts +50 -0
  97. package/dist/components/ErrorState.d.ts.map +1 -0
  98. package/dist/components/ErrorState.js +60 -0
  99. package/dist/components/ErrorState.js.map +1 -0
  100. package/dist/components/FilterBar.d.ts +1 -1
  101. package/dist/components/FilterBar.d.ts.map +1 -1
  102. package/dist/components/FilterBar.js +7 -4
  103. package/dist/components/FilterBar.js.map +1 -1
  104. package/dist/components/GroupCard.d.ts.map +1 -1
  105. package/dist/components/GroupCard.js +2 -1
  106. package/dist/components/GroupCard.js.map +1 -1
  107. package/dist/components/KpiGrid.d.ts +10 -3
  108. package/dist/components/KpiGrid.d.ts.map +1 -1
  109. package/dist/components/KpiGrid.js +31 -9
  110. package/dist/components/KpiGrid.js.map +1 -1
  111. package/dist/components/ListFooter.d.ts +3 -2
  112. package/dist/components/ListFooter.d.ts.map +1 -1
  113. package/dist/components/ListFooter.js +14 -4
  114. package/dist/components/ListFooter.js.map +1 -1
  115. package/dist/components/Pills.d.ts +10 -6
  116. package/dist/components/Pills.d.ts.map +1 -1
  117. package/dist/components/Pills.js +12 -6
  118. package/dist/components/Pills.js.map +1 -1
  119. package/dist/components/Toast.d.ts +37 -0
  120. package/dist/components/Toast.d.ts.map +1 -0
  121. package/dist/components/Toast.js +91 -0
  122. package/dist/components/Toast.js.map +1 -0
  123. package/dist/components/WidgetHeader.js +1 -1
  124. package/dist/hooks/use-tool-result-recovery.d.ts +23 -1
  125. package/dist/hooks/use-tool-result-recovery.d.ts.map +1 -1
  126. package/dist/hooks/use-tool-result-recovery.js +21 -7
  127. package/dist/hooks/use-tool-result-recovery.js.map +1 -1
  128. package/dist/hooks/use-view-data.d.ts +6 -0
  129. package/dist/hooks/use-view-data.d.ts.map +1 -1
  130. package/dist/hooks/use-view-data.js +6 -1
  131. package/dist/hooks/use-view-data.js.map +1 -1
  132. package/dist/index.d.ts +12 -5
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +14 -4
  135. package/dist/index.js.map +1 -1
  136. package/dist/lib/focus-ring.d.ts +18 -0
  137. package/dist/lib/focus-ring.d.ts.map +1 -0
  138. package/dist/lib/focus-ring.js +18 -0
  139. package/dist/lib/focus-ring.js.map +1 -0
  140. package/dist/lib/icon-stroke.d.ts +12 -0
  141. package/dist/lib/icon-stroke.d.ts.map +1 -0
  142. package/dist/lib/icon-stroke.js +12 -0
  143. package/dist/lib/icon-stroke.js.map +1 -0
  144. package/dist/lib/toast-model.d.ts +46 -0
  145. package/dist/lib/toast-model.d.ts.map +1 -0
  146. package/dist/lib/toast-model.js +36 -0
  147. package/dist/lib/toast-model.js.map +1 -0
  148. package/dist/lib/tone-utils.d.ts +43 -9
  149. package/dist/lib/tone-utils.d.ts.map +1 -1
  150. package/dist/lib/tone-utils.js +36 -7
  151. package/dist/lib/tone-utils.js.map +1 -1
  152. package/dist/locale/index.d.ts +3 -1
  153. package/dist/locale/index.d.ts.map +1 -1
  154. package/dist/locale/index.js +2 -1
  155. package/dist/locale/index.js.map +1 -1
  156. package/dist/locale/locale-provider.d.ts +42 -1
  157. package/dist/locale/locale-provider.d.ts.map +1 -1
  158. package/dist/locale/locale-provider.js +44 -3
  159. package/dist/locale/locale-provider.js.map +1 -1
  160. package/dist/locale/message-types.d.ts +223 -0
  161. package/dist/locale/message-types.d.ts.map +1 -0
  162. package/dist/locale/message-types.js +7 -0
  163. package/dist/locale/message-types.js.map +1 -0
  164. package/dist/locale/messages-de.d.ts +9 -0
  165. package/dist/locale/messages-de.d.ts.map +1 -0
  166. package/dist/locale/messages-de.js +151 -0
  167. package/dist/locale/messages-de.js.map +1 -0
  168. package/dist/locale/messages-en.d.ts +8 -0
  169. package/dist/locale/messages-en.d.ts.map +1 -0
  170. package/dist/locale/messages-en.js +150 -0
  171. package/dist/locale/messages-en.js.map +1 -0
  172. package/dist/locale/toolkit-messages.d.ts +39 -0
  173. package/dist/locale/toolkit-messages.d.ts.map +1 -0
  174. package/dist/locale/toolkit-messages.js +50 -0
  175. package/dist/locale/toolkit-messages.js.map +1 -0
  176. package/dist/primitives/alert.d.ts.map +1 -1
  177. package/dist/primitives/alert.js +4 -2
  178. package/dist/primitives/alert.js.map +1 -1
  179. package/dist/primitives/badge.d.ts +1 -1
  180. package/dist/primitives/badge.d.ts.map +1 -1
  181. package/dist/primitives/badge.js +14 -6
  182. package/dist/primitives/badge.js.map +1 -1
  183. package/dist/primitives/button.d.ts.map +1 -1
  184. package/dist/primitives/button.js +12 -8
  185. package/dist/primitives/button.js.map +1 -1
  186. package/dist/primitives/card.js +4 -4
  187. package/dist/primitives/card.js.map +1 -1
  188. package/dist/primitives/dialog.d.ts +7 -3
  189. package/dist/primitives/dialog.d.ts.map +1 -1
  190. package/dist/primitives/dialog.js +14 -7
  191. package/dist/primitives/dialog.js.map +1 -1
  192. package/dist/primitives/input.d.ts.map +1 -1
  193. package/dist/primitives/input.js +4 -1
  194. package/dist/primitives/input.js.map +1 -1
  195. package/dist/primitives/scroll-area.js +1 -1
  196. package/dist/primitives/scroll-area.js.map +1 -1
  197. package/dist/primitives/select.d.ts.map +1 -1
  198. package/dist/primitives/select.js +5 -2
  199. package/dist/primitives/select.js.map +1 -1
  200. package/dist/primitives/sheet.d.ts +3 -1
  201. package/dist/primitives/sheet.d.ts.map +1 -1
  202. package/dist/primitives/sheet.js +12 -6
  203. package/dist/primitives/sheet.js.map +1 -1
  204. package/dist/primitives/skeleton.js +1 -1
  205. package/dist/primitives/skeleton.js.map +1 -1
  206. package/dist/primitives/switch.d.ts.map +1 -1
  207. package/dist/primitives/switch.js +2 -1
  208. package/dist/primitives/switch.js.map +1 -1
  209. package/dist/primitives/tabs.d.ts.map +1 -1
  210. package/dist/primitives/tabs.js +5 -3
  211. package/dist/primitives/tabs.js.map +1 -1
  212. package/dist/render-cases.d.ts.map +1 -1
  213. package/dist/render-cases.js +20 -2
  214. package/dist/render-cases.js.map +1 -1
  215. package/dist/render-scan.d.ts +25 -0
  216. package/dist/render-scan.d.ts.map +1 -0
  217. package/dist/render-scan.js +66 -0
  218. package/dist/render-scan.js.map +1 -0
  219. package/dist/theme/cd-tokens.d.ts +66 -0
  220. package/dist/theme/cd-tokens.d.ts.map +1 -0
  221. package/dist/theme/cd-tokens.js +64 -0
  222. package/dist/theme/cd-tokens.js.map +1 -0
  223. package/dist/theme/create-theme.d.ts +196 -39
  224. package/dist/theme/create-theme.d.ts.map +1 -1
  225. package/dist/theme/create-theme.js +189 -13
  226. package/dist/theme/create-theme.js.map +1 -1
  227. package/dist/theme/fonts.d.ts +38 -0
  228. package/dist/theme/fonts.d.ts.map +1 -0
  229. package/dist/theme/fonts.js +56 -0
  230. package/dist/theme/fonts.js.map +1 -0
  231. package/dist/theme/host-fonts.d.ts +39 -0
  232. package/dist/theme/host-fonts.d.ts.map +1 -0
  233. package/dist/theme/host-fonts.js +44 -0
  234. package/dist/theme/host-fonts.js.map +1 -0
  235. package/dist/theme/index.d.ts +8 -1
  236. package/dist/theme/index.d.ts.map +1 -1
  237. package/dist/theme/index.js +5 -1
  238. package/dist/theme/index.js.map +1 -1
  239. package/dist/theme/portal-container.d.ts +16 -0
  240. package/dist/theme/portal-container.d.ts.map +1 -0
  241. package/dist/theme/portal-container.js +19 -0
  242. package/dist/theme/portal-container.js.map +1 -0
  243. package/dist/theme/presets.d.ts +24 -9
  244. package/dist/theme/presets.d.ts.map +1 -1
  245. package/dist/theme/presets.js +44 -11
  246. package/dist/theme/presets.js.map +1 -1
  247. package/dist/theme/theme-provider.d.ts +27 -9
  248. package/dist/theme/theme-provider.d.ts.map +1 -1
  249. package/dist/theme/theme-provider.js +42 -20
  250. package/dist/theme/theme-provider.js.map +1 -1
  251. package/package.json +13 -8
  252. package/src/app/builder/BuilderBanners.tsx +26 -13
  253. package/src/app/builder/CanvasRow.tsx +22 -21
  254. package/src/app/builder/CatalogueSheet.tsx +16 -14
  255. package/src/app/builder/EmptyHint.tsx +16 -11
  256. package/src/app/builder/LayoutSurface.tsx +7 -7
  257. package/src/app/builder/PipelineStrip.tsx +26 -17
  258. package/src/app/builder/SaveDialog.tsx +11 -12
  259. package/src/app/builder/Toolbar.tsx +19 -7
  260. package/src/app/builder/Workspace.tsx +5 -3
  261. package/src/app/builder/builder-feedback.test.tsx +75 -0
  262. package/src/app/builder/builder-model.test.ts +5 -0
  263. package/src/app/builder/builder-model.ts +5 -4
  264. package/src/app/builder/labels.ts +15 -121
  265. package/src/app/builder/status-chip.tsx +8 -4
  266. package/src/app/builder/use-builder-catalogue.ts +6 -0
  267. package/src/app/builder/use-save-dashboard.ts +5 -0
  268. package/src/app/index.ts +8 -1
  269. package/src/app/layout-builder.tsx +23 -3
  270. package/src/app/mcp-app-view-chrome.test.tsx +347 -14
  271. package/src/app/mcp-app-view-chrome.tsx +278 -100
  272. package/src/app/mcp-app-view-states.tsx +100 -0
  273. package/src/app/mcp-app-view.test.tsx +258 -0
  274. package/src/app/mcp-app-view.tsx +292 -185
  275. package/src/app/mcp-toolkit-app.tsx +31 -7
  276. package/src/app/use-view-lifecycle.ts +116 -0
  277. package/src/app/view-lifecycle.test.ts +227 -0
  278. package/src/app/view-lifecycle.ts +174 -0
  279. package/src/app/widget-props-sheet.tsx +13 -26
  280. package/src/app/widget-renderer.render.test.tsx +131 -0
  281. package/src/app/widget-renderer.tsx +136 -38
  282. package/src/components/DrillButton.tsx +2 -1
  283. package/src/components/EmptyState.tsx +81 -0
  284. package/src/components/ErrorState.tsx +182 -0
  285. package/src/components/FilterBar.tsx +9 -6
  286. package/src/components/GroupCard.tsx +3 -2
  287. package/src/components/KpiGrid.tsx +75 -44
  288. package/src/components/ListFooter.tsx +17 -6
  289. package/src/components/Pills.tsx +20 -11
  290. package/src/components/Toast.tsx +188 -0
  291. package/src/components/WidgetHeader.tsx +1 -1
  292. package/src/components/feedback-states.test.tsx +225 -0
  293. package/src/components/tone-figures.test.tsx +54 -0
  294. package/src/fonts.css +19 -0
  295. package/src/globals.css +9 -165
  296. package/src/hooks/use-tool-result-recovery.test.ts +25 -1
  297. package/src/hooks/use-tool-result-recovery.ts +34 -6
  298. package/src/hooks/use-view-data.test.tsx +60 -0
  299. package/src/hooks/use-view-data.ts +12 -1
  300. package/src/i18n-coverage.test.tsx +323 -0
  301. package/src/index.ts +57 -5
  302. package/src/lib/focus-ring.ts +20 -0
  303. package/src/lib/icon-stroke.test.ts +59 -0
  304. package/src/lib/icon-stroke.ts +13 -0
  305. package/src/lib/toast-model.test.ts +68 -0
  306. package/src/lib/toast-model.ts +63 -0
  307. package/src/lib/tone-utils.test.ts +47 -14
  308. package/src/lib/tone-utils.ts +61 -13
  309. package/src/locale/index.ts +13 -1
  310. package/src/locale/locale-provider.test.tsx +87 -0
  311. package/src/locale/locale-provider.tsx +90 -3
  312. package/src/locale/message-types.ts +221 -0
  313. package/src/locale/messages-de.ts +159 -0
  314. package/src/locale/messages-en.ts +157 -0
  315. package/src/locale/toolkit-messages.test.ts +216 -0
  316. package/src/locale/toolkit-messages.ts +82 -0
  317. package/src/no-hardcoded-copy.test.ts +432 -0
  318. package/src/primitives/alert.tsx +4 -2
  319. package/src/primitives/badge.tsx +14 -7
  320. package/src/primitives/button.tsx +13 -8
  321. package/src/primitives/card.tsx +4 -4
  322. package/src/primitives/dialog.tsx +32 -7
  323. package/src/primitives/input.tsx +5 -3
  324. package/src/primitives/scroll-area.tsx +1 -1
  325. package/src/primitives/select.tsx +6 -3
  326. package/src/primitives/sheet.tsx +26 -6
  327. package/src/primitives/skeleton.tsx +1 -1
  328. package/src/primitives/switch.tsx +4 -2
  329. package/src/primitives/tabs.tsx +9 -6
  330. package/src/render-cases.tsx +45 -1
  331. package/src/render-scan.ts +75 -0
  332. package/src/theme/cd-tokens.generated.css +48 -0
  333. package/src/theme/cd-tokens.test.ts +107 -0
  334. package/src/theme/cd-tokens.ts +67 -0
  335. package/src/theme/create-theme.test.ts +243 -5
  336. package/src/theme/create-theme.ts +313 -41
  337. package/src/theme/fonts.test.ts +85 -0
  338. package/src/theme/fonts.ts +72 -0
  339. package/src/theme/host-fonts.test.ts +135 -0
  340. package/src/theme/host-fonts.ts +52 -0
  341. package/src/theme/index.ts +15 -1
  342. package/src/theme/portal-container.ts +20 -0
  343. package/src/theme/presets.ts +44 -11
  344. package/src/theme/theme-css.test.ts +568 -0
  345. package/src/theme/theme-provider.test.tsx +82 -0
  346. package/src/theme/theme-provider.tsx +60 -24
  347. package/src/theme.css +314 -0
  348. package/ui-catalog.json +344 -17
@@ -1 +1 @@
1
- {"version":3,"file":"layout-builder.d.ts","sourceRoot":"","sources":["../../src/app/layout-builder.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAuB,MAAM,2BAA2B,CAAA;AAOnG,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAc9E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAO3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAM9D,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,eAAe,EAAE,CAAA;IAChC,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,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACxD;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QACjB,MAAM,EAAE,YAAY,CAAA;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;QACzB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;YACjB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;gBAAE,IAAI,EAAE,OAAO,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAClF,CAAA;YACD,MAAM,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAC7C,CAAA;KACF,KAAK,IAAI,CAAA;CACX;AAMD,wBAAgB,aAAa,CAAC,EAC5B,aAAa,EACb,KAAK,EACL,WAAW,EACX,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,iBAA2C,EAC3C,YAA+B,EAC/B,WAAW,EACX,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE,kBAAkB,+BA0XpB"}
1
+ {"version":3,"file":"layout-builder.d.ts","sourceRoot":"","sources":["../../src/app/layout-builder.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAuB,MAAM,2BAA2B,CAAA;AAOnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAgB9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAO3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAM9D,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,eAAe,EAAE,CAAA;IAChC,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,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACxD;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QACjB,MAAM,EAAE,YAAY,CAAA;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;QACzB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;YACjB,QAAQ,EAAE,MAAM,CACd,MAAM,EACN;gBAAE,IAAI,EAAE,OAAO,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAA;aAAE,CAClF,CAAA;YACD,MAAM,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAC7C,CAAA;KACF,KAAK,IAAI,CAAA;CACX;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAMtD"}
@@ -3,7 +3,6 @@ import { useCallback, useMemo, useReducer, useState } from "react";
3
3
  import { Eye, Layers, SlidersHorizontal } from "lucide-react";
4
4
  import { draftToLayout, entriesToKeys, initDraft, sizeToSpan } 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";
@@ -17,11 +16,23 @@ import { useBuilderCatalogue } from "./builder/use-builder-catalogue.js";
17
16
  import { useKeyStepEntries } from "./builder/use-key-step-entries.js";
18
17
  import { useSaveDashboard } from "./builder/use-save-dashboard.js";
19
18
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "../primitives/tabs.js";
19
+ import { ToastProvider, useToast } from "../components/Toast.js";
20
+ import { useToolkitMessages } from "../locale/locale-provider.js";
20
21
  // -------------------------------------------------------------------------- //
21
22
  // Main component
22
23
  // -------------------------------------------------------------------------- //
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]);
24
+ /**
25
+ * The visual view builder. Confirms a successful save with a toast (it mounts
26
+ * a `ToastProvider` when none is above it — inside `McpAppView` it shares the
27
+ * view's). Every caption follows the active locale (`labels` overrides).
28
+ */
29
+ export function LayoutBuilder(props) {
30
+ return (_jsx(ToastProvider, { children: _jsx(LayoutBuilderImpl, { ...props }) }));
31
+ }
32
+ function LayoutBuilderImpl({ initialLayout, title, initialKeys, initialSteps, widgets, callTool, catalogueToolName = "get-builder-catalogue", saveToolName = "save-dashboard", dashboardId, labels, onSaved, onExit, }) {
33
+ const messages = useToolkitMessages();
34
+ const L = useMemo(() => ({ ...messages.builder, ...labels }), [messages.builder, labels]);
35
+ const toast = useToast();
25
36
  // ── Draft layout (pure reducer) ─────────────────────────────────────────
26
37
  // The draft plus the UI indices coupled to draft mutations
27
38
  // (activeTabIndex / focusedRowIndex / editingTabIdx) live in a single pure
@@ -59,7 +70,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
59
70
  // ── Catalogue fetch (mount + on key/step edits) ─────────────────────────
60
71
  // The builder fetches its own catalogue from the app-only
61
72
  // `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 });
73
+ const { liveReachable, liveUnreachable, liveCatalog, liveSteps, liveContext, validationIssues, status, refreshError, retryCatalogue, widgetById, propsSchemaByWidgetId, paletteByApp, liveKeyCount, stepsByApp, } = useBuilderCatalogue({ callTool, catalogueToolName, keyEntries, stepEntries });
63
74
  // ── Save dialog ─────────────────────────────────────────────────────────
64
75
  const { isBusy, saveOpen, setSaveOpen, saveName, setSaveName, saveDescription, setSaveDescription, saveError, setSaveError, saveDraft, } = useSaveDashboard({
65
76
  callTool,
@@ -70,6 +81,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
70
81
  stepEntries,
71
82
  draft,
72
83
  onSaved,
84
+ onSuccess: (name) => toast.show({ tone: "success", title: L.saved(name) }),
73
85
  });
74
86
  // ── DnD ──────────────────────────────────────────────────────────────────
75
87
  const [dragOverRow, setDragOverRow] = useState(null);
@@ -150,7 +162,7 @@ export function LayoutBuilder({ initialLayout, title, initialKeys, initialSteps,
150
162
  errors: liveContext.errors,
151
163
  },
152
164
  })
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: {
165
+ : undefined, hasAnyCell: hasAnyCell }), _jsx(BuilderBanners, { L: L, catalogueToolName: catalogueToolName, refreshError: refreshError, validationIssues: validationIssues, onRetry: retryCatalogue }), _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: {
154
166
  L,
155
167
  paletteByApp,
156
168
  paletteCount: liveReachable.length,
@@ -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,86 @@ 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 Done. */
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>;
69
103
  }
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. */
104
+ /** Which toolbar controls render — pure, so the gates are unit-testable. */
105
+ export declare function toolbarControls(input: {
106
+ viewData: Pick<ViewData, "_refreshParams" | "layout" | "title">;
107
+ builderAvailable: boolean;
108
+ canFullscreen: boolean;
109
+ titleMode: ViewTitleMode;
110
+ }): {
111
+ title: boolean;
112
+ refresh: boolean;
113
+ edit: boolean;
114
+ fullscreen: boolean;
115
+ any: boolean;
116
+ };
117
+ /**
118
+ * The view toolbar: the title (per {@link ViewTitleMode}, so a widget that
119
+ * renders its own heading is not titled twice), then Edit, Refresh and
120
+ * Fullscreen. Refresh and Fullscreen are 32 px icon buttons named by
121
+ * `aria-label`; Fullscreen renders only when the host offers it. All three are
122
+ * chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
123
+ * hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
124
+ * edge, also in fullscreen.
125
+ */
126
+ export declare function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, }: ViewToolbarProps): import("react").JSX.Element | null;
127
+ /** Resolves a human title for a pipeline step (`{ id, step }` from the view's steps). */
128
+ export type DescribeStep = (step: {
129
+ id: string;
130
+ step?: string;
131
+ }) => string | undefined;
132
+ /**
133
+ * The failed data steps as ONE inline alert: what happened (the title), which
134
+ * data is affected (each step by its human title, else its step id), what you
135
+ * can do (retry, or ask in the chat when the view cannot refresh). The raw
136
+ * step reasons stay under "Details", out of the user copy.
137
+ */
138
+ export declare function StepErrors({ hidden, errors, steps, labels, describeStep, onRetry, }: {
139
+ /** Build mode surfaces its own diagnostics; the shell alert hides. */
73
140
  hidden: boolean;
74
141
  errors: ViewData["context"]["errors"];
142
+ /** The view's step refs (`_refreshParams.steps`), to name a failed step by its definition. */
143
+ steps?: PipelineStepRef[];
144
+ labels: Required<McpAppViewLabels>;
145
+ describeStep?: DescribeStep;
146
+ /** Re-runs the view (a refresh); omitted when the view cannot be refreshed. */
147
+ onRetry?: () => void;
75
148
  }): import("react").JSX.Element | null;
76
149
  export interface ViewBodyProps {
77
150
  buildMode: boolean;
@@ -79,6 +152,7 @@ export interface ViewBodyProps {
79
152
  widgets: Record<string, WidgetComponent>;
80
153
  callTool: (name: string, args: object) => Promise<unknown>;
81
154
  onExit: LayoutBuilderProps["onExit"];
155
+ builderLabels?: LayoutBuilderLabels;
82
156
  }
83
- export declare function ViewBody({ buildMode, viewData, widgets, callTool, onExit }: ViewBodyProps): import("react").JSX.Element | null;
157
+ export declare function ViewBody({ buildMode, viewData, widgets, callTool, onExit, builderLabels, }: ViewBodyProps): import("react").JSX.Element | null;
84
158
  //# 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":"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"}
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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"}
@@ -1,24 +1,26 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /**
3
- * Presentational chrome for `McpAppView` — the pre-payload placeholder, the
4
- * toolbar, the pipeline error list, and the build/render body — plus the
5
- * view-envelope types they share.
6
- * Split out of `mcp-app-view.tsx` so the shell component keeps only the
7
- * host-sync and state logic while this file stays hook-free.
3
+ * Presentational chrome for `McpAppView` — the toolbar, the failed-steps
4
+ * alert, and the build/render body — plus the view-envelope types they share.
5
+ * The pre-payload states (waiting / error / cancelled) live in
6
+ * `mcp-app-view-states.tsx`. Split out of `mcp-app-view.tsx` so the shell
7
+ * component keeps only the host-sync and state logic while these files stay
8
+ * hook-light.
8
9
  */
9
- import { Maximize2, Minimize2, Pencil, RefreshCw } from "lucide-react";
10
- import { Skeleton } from "../primitives/skeleton.js";
11
- import { LayoutBuilder } from "./layout-builder.js";
10
+ import { createElement } from "react";
11
+ import { LucideProvider, Maximize2, Minimize2, Pencil, RefreshCw } from "lucide-react";
12
+ import { ErrorState } from "../components/ErrorState.js";
13
+ import { DENSE_ICON_STROKE } from "../lib/icon-stroke.js";
14
+ import { TOOLKIT_MESSAGES } from "../locale/toolkit-messages.js";
15
+ import { Button } from "../primitives/button.js";
16
+ import { LayoutBuilder, } from "./layout-builder.js";
12
17
  import { WidgetRenderer } from "./widget-renderer.js";
13
- export const DEFAULT_LABELS = {
14
- loading: "Waiting for pipeline result...",
15
- cancelled: "Tool call was cancelled.",
16
- refresh: "Refresh",
17
- refreshing: "Loading...",
18
- enterFullscreen: "Fullscreen",
19
- exitFullscreen: "Collapse",
20
- build: "Build",
21
- };
18
+ /**
19
+ * English chrome strings.
20
+ * @deprecated Read the active locale's strings with `useToolkitMessages().view`
21
+ * (or `TOOLKIT_MESSAGES.en.view`); this alias stays for existing imports.
22
+ */
23
+ export const DEFAULT_LABELS = TOOLKIT_MESSAGES.en.view;
22
24
  /**
23
25
  * A renderable view payload: the envelope `render-view`/`show_*` tools emit
24
26
  * as `structuredContent`. Module-level so it is referentially stable as the
@@ -28,35 +30,102 @@ export function isCompleteViewData(value) {
28
30
  const v = value;
29
31
  return Boolean(v?.context && v?.layout);
30
32
  }
31
- // -------------------------------------------------------------------------- //
32
- // Placeholder: shown until a view payload exists
33
- // -------------------------------------------------------------------------- //
34
- export function ViewPlaceholder({ cancelled, labels, }) {
35
- if (cancelled) {
36
- return (_jsx("div", { className: "p-4", children: _jsx("p", { className: "text-muted-foreground text-sm", children: labels.cancelled }) }));
37
- }
38
- return (_jsxs("div", { className: "flex flex-col gap-4 p-4", children: [_jsx(Skeleton, { className: "h-8 w-48" }), _jsx(Skeleton, { className: "h-32 w-full" }), _jsx("p", { className: "text-muted-foreground text-sm", children: labels.loading })] }));
33
+ /**
34
+ * Commit the builder's draft into the view payload so the renderer shows the
35
+ * just-built layout and Refresh re-issues it. Exported for tests.
36
+ */
37
+ export function applyBuilderCommit(prev, commit) {
38
+ const title = commit.title ?? prev.title;
39
+ return {
40
+ ...prev,
41
+ layout: commit.layout,
42
+ title,
43
+ context: commit.context ?? prev.context,
44
+ _refreshParams: { keys: commit.keys, steps: commit.steps, layout: commit.layout, title },
45
+ };
39
46
  }
40
- export function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, isRefreshing, labels, onRefresh, onEnterBuildMode, onToggleFullscreen, }) {
41
- if (hidden)
47
+ /**
48
+ * Whether the Fullscreen toggle may render: the host offers fullscreen
49
+ * (mcp-use's negotiated `availableDisplayModes`, toolkit#178 K22), or the view
50
+ * is already there (its exit toggle must stay).
51
+ */
52
+ export function fullscreenAvailable(displayMode, availableDisplayModes) {
53
+ return displayMode === "fullscreen" || availableDisplayModes.includes("fullscreen");
54
+ }
55
+ /** The toolbar title per {@link ViewTitleMode}: a heading, the consumer's slot, or nothing. */
56
+ function ToolbarTitle({ title, mode, level, renderTitle, }) {
57
+ if (mode === "slot")
58
+ return _jsx("div", { className: "min-w-0 flex-1", children: renderTitle?.(title) });
59
+ if (mode === "hide" || !title)
42
60
  return null;
43
- return (_jsxs("div", { className: "mb-4 flex items-center justify-between", children: [viewData.title && _jsx("h2", { className: "text-xl font-bold", children: viewData.title }), _jsxs("div", { className: "ml-auto flex items-center gap-2", children: [viewData._refreshParams && viewData.layout && (_jsxs("button", { onClick: () => {
44
- void onRefresh();
45
- }, disabled: isRefreshing, className: "hover:bg-accent hover:text-accent-foreground inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors disabled:opacity-50", children: [_jsx(RefreshCw, { "aria-hidden": "true", className: `h-4 w-4 ${isRefreshing ? "animate-spin" : ""}` }), isRefreshing ? labels.refreshing : labels.refresh] })), builderAvailable && viewData._refreshParams && (_jsxs("button", { onClick: onEnterBuildMode, className: "hover:bg-accent hover:text-accent-foreground inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors", children: [_jsx(Pencil, { className: "h-4 w-4" }), labels.build] })), _jsxs("button", { onClick: () => {
46
- void onToggleFullscreen();
47
- }, className: "hover:bg-accent hover:text-accent-foreground inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors", children: [isFullscreen ? (_jsx(Minimize2, { "aria-hidden": "true", className: "h-4 w-4" })) : (_jsx(Maximize2, { "aria-hidden": "true", className: "h-4 w-4" })), isFullscreen ? labels.exitFullscreen : labels.enterFullscreen] })] })] }));
61
+ return createElement(`h${level}`, { className: "min-w-0 flex-1 truncate text-lg font-semibold tracking-tight" }, title);
48
62
  }
49
- // -------------------------------------------------------------------------- //
50
- // Pipeline error list
51
- // -------------------------------------------------------------------------- //
52
- export function StepErrors({ hidden, errors, }) {
63
+ /** Which toolbar controls render — pure, so the gates are unit-testable. */
64
+ export function toolbarControls(input) {
65
+ const refreshable = Boolean(input.viewData._refreshParams && input.viewData.layout);
66
+ const edit = input.builderAvailable && Boolean(input.viewData._refreshParams);
67
+ const title = input.titleMode === "slot" || (input.titleMode === "show" && Boolean(input.viewData.title));
68
+ return {
69
+ title,
70
+ refresh: refreshable,
71
+ edit,
72
+ fullscreen: input.canFullscreen,
73
+ any: title || refreshable || edit || input.canFullscreen,
74
+ };
75
+ }
76
+ /**
77
+ * The CI §8 chrome button (Icon-Button, Chrome): surface, `--cd-linie` border,
78
+ * shadow-1, blue on hover. The `outline` variant brings the surface, the
79
+ * border and the blue hover (it is also CI §8's secondary button, which has no
80
+ * shadow), so the chrome adds `shadow-1` on top instead of changing it.
81
+ */
82
+ const CHROME_BUTTON = { variant: "outline", className: "shadow-1" };
83
+ function RefreshButton({ isRefreshing, labels, onRefresh, }) {
84
+ const label = isRefreshing ? labels.refreshing : labels.refresh;
85
+ return (_jsx(Button, { type: "button", ...CHROME_BUTTON, size: "icon-sm", "aria-label": label, title: label, disabled: isRefreshing, onClick: () => {
86
+ void onRefresh();
87
+ }, children: _jsx(RefreshCw, { "aria-hidden": "true", className: isRefreshing ? "motion-safe:animate-spin" : undefined }) }));
88
+ }
89
+ function FullscreenButton({ isFullscreen, labels, onToggle, }) {
90
+ const label = isFullscreen ? labels.exitFullscreen : labels.enterFullscreen;
91
+ const Icon = isFullscreen ? Minimize2 : Maximize2;
92
+ return (_jsx(Button, { type: "button", ...CHROME_BUTTON, size: "icon-sm", "aria-label": label, title: label, onClick: () => {
93
+ void onToggle();
94
+ }, children: _jsx(Icon, { "aria-hidden": "true" }) }));
95
+ }
96
+ /**
97
+ * The view toolbar: the title (per {@link ViewTitleMode}, so a widget that
98
+ * renders its own heading is not titled twice), then Edit, Refresh and
99
+ * Fullscreen. Refresh and Fullscreen are 32 px icon buttons named by
100
+ * `aria-label`; Fullscreen renders only when the host offers it. All three are
101
+ * chrome buttons in the CI pattern (CI §8: surface, border, shadow-1, blue
102
+ * hover; {@link CHROME_BUTTON}). A 16 px inset keeps the bar off the frame
103
+ * edge, also in fullscreen.
104
+ */
105
+ export function ViewToolbar({ hidden, viewData, builderAvailable, isFullscreen, canFullscreen, isRefreshing, labels, titleMode, titleLevel, renderTitle, onRefresh, onEnterBuildMode, onToggleFullscreen, }) {
106
+ const show = toolbarControls({ viewData, builderAvailable, canFullscreen, titleMode });
107
+ if (hidden || !show.any)
108
+ return null;
109
+ return (_jsx(LucideProvider, { strokeWidth: DENSE_ICON_STROKE, children: _jsxs("div", { "data-slot": "view-toolbar", className: "flex min-h-12 items-center gap-2 px-4 py-2", children: [_jsx(ToolbarTitle, { title: viewData.title, mode: titleMode, level: titleLevel, renderTitle: renderTitle }), _jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-1", children: [show.edit && (_jsxs(Button, { type: "button", ...CHROME_BUTTON, size: "sm", onClick: onEnterBuildMode, children: [_jsx(Pencil, { "aria-hidden": "true" }), labels.build] })), show.refresh && (_jsx(RefreshButton, { isRefreshing: isRefreshing, labels: labels, onRefresh: onRefresh })), show.fullscreen && (_jsx(FullscreenButton, { isFullscreen: isFullscreen, labels: labels, onToggle: onToggleFullscreen }))] })] }) }));
110
+ }
111
+ /**
112
+ * The failed data steps as ONE inline alert: what happened (the title), which
113
+ * data is affected (each step by its human title, else its step id), what you
114
+ * can do (retry, or ask in the chat when the view cannot refresh). The raw
115
+ * step reasons stay under "Details", out of the user copy.
116
+ */
117
+ export function StepErrors({ hidden, errors, steps, labels, describeStep, onRetry, }) {
53
118
  if (hidden || errors.length === 0)
54
119
  return null;
55
- return (_jsx("div", { className: "mb-4 flex flex-col gap-2", children: errors.map((err) => (_jsxs("div", { className: "bg-destructive/10 text-destructive rounded-lg p-3 text-sm", children: [_jsxs("strong", { children: [err.stepId, ":"] }), " ", err.reason] }, err.stepId))) }));
120
+ const failed = errors.map((err) => {
121
+ const ref = { id: err.stepId, step: steps?.find((s) => s.id === err.stepId)?.step };
122
+ return { ref, human: describeStep?.(ref), reason: err.reason };
123
+ });
124
+ return (_jsx("div", { className: "px-4 pb-4", children: _jsx(ErrorState, { variant: "inline", title: labels.stepErrorsTitle, retryLabel: labels.retry, onRetry: onRetry, detailsLabel: labels.errorDetails, details: failed.map(({ ref, reason }) => `${ref.step ?? ref.id}: ${reason}`).join("\n"), description: _jsxs(_Fragment, { children: [_jsx("ul", { className: "flex flex-col gap-1", children: failed.map(({ ref, human }) => (_jsx("li", { className: "break-words", children: human ? (_jsx("span", { className: "font-medium", children: human })) : (_jsx("span", { className: "font-mono text-xs", children: ref.step ?? ref.id })) }, ref.id))) }), _jsx("p", { className: "mt-1", children: onRetry ? labels.stepErrorsHint : labels.errorHintNoRetry })] }) }) }));
56
125
  }
57
- export function ViewBody({ buildMode, viewData, widgets, callTool, onExit }) {
126
+ export function ViewBody({ buildMode, viewData, widgets, callTool, onExit, builderLabels, }) {
58
127
  if (buildMode) {
59
- return (_jsx(LayoutBuilder, { initialLayout: viewData.layout, title: viewData.title, initialKeys: viewData._refreshParams?.keys, initialSteps: viewData._refreshParams?.steps, widgets: widgets, callTool: callTool, onExit: onExit }));
128
+ return (_jsx(LayoutBuilder, { initialLayout: viewData.layout, title: viewData.title, initialKeys: viewData._refreshParams?.keys, initialSteps: viewData._refreshParams?.steps, widgets: widgets, callTool: callTool, labels: builderLabels, onExit: onExit }));
60
129
  }
61
130
  if (!viewData.layout)
62
131
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-app-view-chrome.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-app-view-chrome.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-chrome.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { McpAppViewLabels } from "./mcp-app-view-chrome.js";
2
+ import type { ViewLifecycle } from "./view-lifecycle.js";
3
+ /** Human text for a raw error reason (e.g. map "503" to "the engine is down"). */
4
+ export type DescribeViewError = (reason: string | undefined) => {
5
+ title?: string;
6
+ description?: string;
7
+ } | undefined;
8
+ export declare function ViewPlaceholder({ lifecycle, labels, onRetry, describeError, }: {
9
+ /** The current phase; `result` renders nothing (the view takes over). */
10
+ lifecycle: ViewLifecycle;
11
+ labels: Required<McpAppViewLabels>;
12
+ onRetry: () => void;
13
+ describeError?: DescribeViewError;
14
+ }): import("react").JSX.Element | null;
15
+ //# sourceMappingURL=mcp-app-view-states.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-app-view-states.d.ts","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,KACvB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAA;AAEzD,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,OAAO,EACP,aAAa,GACd,EAAE;IACD,yEAAyE;IACzE,SAAS,EAAE,aAAa,CAAA;IACxB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAClC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC,sCAyBA"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The pre-payload states of `McpAppView`, one per lifecycle phase
4
+ * (`view-lifecycle.ts`): waiting (skeleton + status line + slow hint),
5
+ * cancelled, and error (icon, title, what to do, raw reason under "Details",
6
+ * retry when the originating tool is known). Hook-free and SSR-renderable, so
7
+ * each phase is pinned by a test.
8
+ */
9
+ import { ErrorState } from "../components/ErrorState.js";
10
+ import { Skeleton } from "../primitives/skeleton.js";
11
+ export function ViewPlaceholder({ lifecycle, labels, onRetry, describeError, }) {
12
+ switch (lifecycle.phase) {
13
+ case "result":
14
+ return null;
15
+ case "cancelled":
16
+ return (_jsx("div", { className: "px-4 py-4", children: _jsx("p", { role: "status", className: "text-muted-foreground text-sm", children: labels.cancelled }) }));
17
+ case "error":
18
+ return (_jsx(ViewErrorState, { reason: lifecycle.reason, canRetry: lifecycle.canRetry, labels: labels, onRetry: onRetry, describeError: describeError }));
19
+ case "waiting":
20
+ return _jsx(ViewWaiting, { slow: lifecycle.slow, labels: labels });
21
+ }
22
+ }
23
+ function ViewWaiting({ slow, labels }) {
24
+ // No aria-busy on an ancestor of the live region: assistive technology may
25
+ // hold back changes inside a busy subtree, and the slow hint is one.
26
+ return (_jsxs("div", { className: "flex flex-col gap-4 px-4 py-4", children: [_jsx(Skeleton, { "aria-hidden": "true", className: "h-8 w-48" }), _jsx(Skeleton, { "aria-hidden": "true", className: "h-32 w-full" }), _jsxs("div", { role: "status", className: "text-muted-foreground flex flex-col gap-1 text-sm", children: [_jsx("p", { children: labels.loading }), slow && _jsx("p", { "data-slot": "slow-hint", children: labels.slowHint })] })] }));
27
+ }
28
+ function ViewErrorState({ reason, canRetry, labels, onRetry, describeError, }) {
29
+ const human = describeError?.(reason);
30
+ // The hint never promises a retry the state does not offer.
31
+ const hint = canRetry ? labels.errorHint : labels.errorHintNoRetry;
32
+ return (_jsx("div", { className: "px-4 py-4", children: _jsx(ErrorState, { title: human?.title ?? labels.errorTitle, description: human?.description ?? hint, details: reason, detailsLabel: labels.errorDetails, retryLabel: labels.retry, onRetry: canRetry ? onRetry : undefined }) }));
33
+ }
34
+ //# sourceMappingURL=mcp-app-view-states.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-app-view-states.js","sourceRoot":"","sources":["../../src/app/mcp-app-view-states.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AASpD,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,OAAO,EACP,aAAa,GAOd;IACC,QAAQ,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAA;QACb,KAAK,WAAW;YACd,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,+BAA+B,YACvD,MAAM,CAAC,SAAS,GACf,GACA,CACP,CAAA;QACH,KAAK,OAAO;YACV,OAAO,CACL,KAAC,cAAc,IACb,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAA;QACH,KAAK,SAAS;YACZ,OAAO,KAAC,WAAW,IAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAI,CAAA;IAChE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAyD;IAC1F,2EAA2E;IAC3E,qEAAqE;IACrE,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,QAAQ,mBAAa,MAAM,EAAC,SAAS,EAAC,UAAU,GAAG,EACpD,KAAC,QAAQ,mBAAa,MAAM,EAAC,SAAS,EAAC,aAAa,GAAG,EAEvD,eAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,mDAAmD,aAC9E,sBAAI,MAAM,CAAC,OAAO,GAAK,EACtB,IAAI,IAAI,yBAAa,WAAW,YAAE,MAAM,CAAC,QAAQ,GAAK,IACnD,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,aAAa,GAOd;IACC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,CAAA;IACrC,4DAA4D;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAA;IAClE,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,UAAU,EACxC,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI,EACvC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,CAAC,YAAY,EACjC,UAAU,EAAE,MAAM,CAAC,KAAK,EACxB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GACvC,GACE,CACP,CAAA;AACH,CAAC"}