@miragon/pulse-widget-shell 0.24.1 → 0.25.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 (917) hide show
  1. package/README.md +134 -127
  2. package/dist/caller.d.ts +3 -0
  3. package/dist/caller.d.ts.map +1 -0
  4. package/dist/caller.js +18 -0
  5. package/dist/caller.js.map +1 -0
  6. package/dist/composed-server.d.ts +34 -66
  7. package/dist/composed-server.d.ts.map +1 -1
  8. package/dist/composed-server.js +130 -137
  9. package/dist/composed-server.js.map +1 -1
  10. package/dist/composition.d.ts +61 -111
  11. package/dist/composition.d.ts.map +1 -1
  12. package/dist/composition.js +120 -54
  13. package/dist/composition.js.map +1 -1
  14. package/dist/font-assets.d.ts +7 -28
  15. package/dist/font-assets.d.ts.map +1 -1
  16. package/dist/font-assets.js +11 -43
  17. package/dist/font-assets.js.map +1 -1
  18. package/dist/health.d.ts +9 -45
  19. package/dist/health.d.ts.map +1 -1
  20. package/dist/health.js +6 -24
  21. package/dist/health.js.map +1 -1
  22. package/dist/host-boot.d.ts +8 -38
  23. package/dist/host-boot.d.ts.map +1 -1
  24. package/dist/host-boot.js +10 -32
  25. package/dist/host-boot.js.map +1 -1
  26. package/dist/http-edge.d.ts +20 -76
  27. package/dist/http-edge.d.ts.map +1 -1
  28. package/dist/http-edge.js +17 -60
  29. package/dist/http-edge.js.map +1 -1
  30. package/dist/metrics.d.ts +6 -21
  31. package/dist/metrics.d.ts.map +1 -1
  32. package/dist/metrics.js +8 -36
  33. package/dist/metrics.js.map +1 -1
  34. package/dist/node-listener.d.ts +7 -39
  35. package/dist/node-listener.d.ts.map +1 -1
  36. package/dist/node-listener.js +6 -18
  37. package/dist/node-listener.js.map +1 -1
  38. package/dist/oauth-env.d.ts +15 -35
  39. package/dist/oauth-env.d.ts.map +1 -1
  40. package/dist/oauth-env.js +122 -62
  41. package/dist/oauth-env.js.map +1 -1
  42. package/dist/protocol/bpmn-names.d.ts +19 -0
  43. package/dist/protocol/bpmn-names.d.ts.map +1 -0
  44. package/dist/{bpmn-names.js → protocol/bpmn-names.js} +9 -38
  45. package/dist/protocol/bpmn-names.js.map +1 -0
  46. package/dist/protocol/served-fonts.d.ts +17 -0
  47. package/dist/protocol/served-fonts.d.ts.map +1 -0
  48. package/dist/protocol/served-fonts.js +30 -0
  49. package/dist/protocol/served-fonts.js.map +1 -0
  50. package/dist/protocol/tool-result.d.ts +24 -0
  51. package/dist/protocol/tool-result.d.ts.map +1 -0
  52. package/dist/protocol/tool-result.js +37 -0
  53. package/dist/protocol/tool-result.js.map +1 -0
  54. package/dist/protocol/translator.d.ts +14 -0
  55. package/dist/protocol/translator.d.ts.map +1 -0
  56. package/dist/protocol/translator.js +18 -0
  57. package/dist/protocol/translator.js.map +1 -0
  58. package/dist/protocol/view-name.d.ts +11 -0
  59. package/dist/protocol/view-name.d.ts.map +1 -0
  60. package/dist/protocol/view-name.js +23 -0
  61. package/dist/protocol/view-name.js.map +1 -0
  62. package/dist/request-context.d.ts +4 -33
  63. package/dist/request-context.d.ts.map +1 -1
  64. package/dist/request-context.js +11 -43
  65. package/dist/request-context.js.map +1 -1
  66. package/dist/server.d.ts +19 -39
  67. package/dist/server.d.ts.map +1 -1
  68. package/dist/server.js +28 -32
  69. package/dist/server.js.map +1 -1
  70. package/dist/testing/glossary.d.ts +4 -32
  71. package/dist/testing/glossary.d.ts.map +1 -1
  72. package/dist/testing/glossary.js +6 -30
  73. package/dist/testing/glossary.js.map +1 -1
  74. package/dist/testing/index.d.ts +1 -38
  75. package/dist/testing/index.d.ts.map +1 -1
  76. package/dist/testing/index.js +1 -38
  77. package/dist/testing/index.js.map +1 -1
  78. package/dist/tool-errors.d.ts +16 -0
  79. package/dist/tool-errors.d.ts.map +1 -0
  80. package/dist/tool-errors.js +23 -0
  81. package/dist/tool-errors.js.map +1 -0
  82. package/dist/tool-registrar.d.ts +29 -0
  83. package/dist/tool-registrar.d.ts.map +1 -0
  84. package/dist/tool-registrar.js +47 -0
  85. package/dist/tool-registrar.js.map +1 -0
  86. package/dist/tool-registration.d.ts +35 -0
  87. package/dist/tool-registration.d.ts.map +1 -0
  88. package/dist/tool-registration.js +80 -0
  89. package/dist/tool-registration.js.map +1 -0
  90. package/dist/tool-schema-trim.d.ts +1 -15
  91. package/dist/tool-schema-trim.d.ts.map +1 -1
  92. package/dist/tool-schema-trim.js +1 -16
  93. package/dist/tool-schema-trim.js.map +1 -1
  94. package/dist/toolsets.d.ts +10 -56
  95. package/dist/toolsets.d.ts.map +1 -1
  96. package/dist/toolsets.js +2 -10
  97. package/dist/toolsets.js.map +1 -1
  98. package/dist/ui/action-feedback.d.ts +4 -26
  99. package/dist/ui/action-feedback.d.ts.map +1 -1
  100. package/dist/ui/action-feedback.js +5 -19
  101. package/dist/ui/action-feedback.js.map +1 -1
  102. package/dist/ui/ask-ai-button.d.ts +6 -43
  103. package/dist/ui/ask-ai-button.d.ts.map +1 -1
  104. package/dist/ui/ask-ai-button.js +6 -18
  105. package/dist/ui/ask-ai-button.js.map +1 -1
  106. package/dist/ui/ask-ai-prompt.d.ts +6 -82
  107. package/dist/ui/ask-ai-prompt.d.ts.map +1 -1
  108. package/dist/ui/ask-ai-prompt.js +10 -77
  109. package/dist/ui/ask-ai-prompt.js.map +1 -1
  110. package/dist/ui/bpmn-tokens.d.ts +3 -48
  111. package/dist/ui/bpmn-tokens.d.ts.map +1 -1
  112. package/dist/ui/bpmn-tokens.js +3 -46
  113. package/dist/ui/bpmn-tokens.js.map +1 -1
  114. package/dist/ui/bpmn-zoom-controls.d.ts +4 -17
  115. package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -1
  116. package/dist/ui/bpmn-zoom-controls.js +2 -16
  117. package/dist/ui/bpmn-zoom-controls.js.map +1 -1
  118. package/dist/ui/call-observer.d.ts +35 -0
  119. package/dist/ui/call-observer.d.ts.map +1 -0
  120. package/dist/ui/call-observer.js +86 -0
  121. package/dist/ui/call-observer.js.map +1 -0
  122. package/dist/ui/confirm-dialog.d.ts +4 -31
  123. package/dist/ui/confirm-dialog.d.ts.map +1 -1
  124. package/dist/ui/confirm-dialog.js +4 -27
  125. package/dist/ui/confirm-dialog.js.map +1 -1
  126. package/dist/ui/count-tone.d.ts +3 -17
  127. package/dist/ui/count-tone.d.ts.map +1 -1
  128. package/dist/ui/count-tone.js +2 -16
  129. package/dist/ui/count-tone.js.map +1 -1
  130. package/dist/ui/declare-served-fonts.d.ts +4 -10
  131. package/dist/ui/declare-served-fonts.d.ts.map +1 -1
  132. package/dist/ui/declare-served-fonts.js +6 -13
  133. package/dist/ui/declare-served-fonts.js.map +1 -1
  134. package/dist/ui/describe-error.d.ts +5 -47
  135. package/dist/ui/describe-error.d.ts.map +1 -1
  136. package/dist/ui/describe-error.js +8 -45
  137. package/dist/ui/describe-error.js.map +1 -1
  138. package/dist/ui/display-mode-toggle.d.ts +3 -16
  139. package/dist/ui/display-mode-toggle.d.ts.map +1 -1
  140. package/dist/ui/display-mode-toggle.js +6 -15
  141. package/dist/ui/display-mode-toggle.js.map +1 -1
  142. package/dist/ui/error-labels.d.ts +3 -19
  143. package/dist/ui/error-labels.d.ts.map +1 -1
  144. package/dist/ui/error-labels.js +0 -1
  145. package/dist/ui/error-labels.js.map +1 -1
  146. package/dist/ui/hand-off-button.d.ts +3 -18
  147. package/dist/ui/hand-off-button.d.ts.map +1 -1
  148. package/dist/ui/hand-off-button.js +3 -18
  149. package/dist/ui/hand-off-button.js.map +1 -1
  150. package/dist/ui/host-context.d.ts +13 -50
  151. package/dist/ui/host-context.d.ts.map +1 -1
  152. package/dist/ui/host-context.js +20 -51
  153. package/dist/ui/host-context.js.map +1 -1
  154. package/dist/ui/host-contexts.d.ts +19 -0
  155. package/dist/ui/host-contexts.d.ts.map +1 -0
  156. package/dist/ui/host-contexts.js +31 -0
  157. package/dist/ui/host-contexts.js.map +1 -0
  158. package/dist/ui/host-document.d.ts +3 -18
  159. package/dist/ui/host-document.d.ts.map +1 -1
  160. package/dist/ui/host-document.js +7 -25
  161. package/dist/ui/host-document.js.map +1 -1
  162. package/dist/ui/host-widgets.d.ts +21 -4
  163. package/dist/ui/host-widgets.d.ts.map +1 -1
  164. package/dist/ui/host-widgets.js +19 -11
  165. package/dist/ui/host-widgets.js.map +1 -1
  166. package/dist/ui/id-text.d.ts +1 -17
  167. package/dist/ui/id-text.d.ts.map +1 -1
  168. package/dist/ui/id-text.js +5 -26
  169. package/dist/ui/id-text.js.map +1 -1
  170. package/dist/ui/index.d.ts +24 -43
  171. package/dist/ui/index.d.ts.map +1 -1
  172. package/dist/ui/index.js +36 -51
  173. package/dist/ui/index.js.map +1 -1
  174. package/dist/ui/inline-budget.d.ts +2 -16
  175. package/dist/ui/inline-budget.d.ts.map +1 -1
  176. package/dist/ui/inline-budget.js +1 -8
  177. package/dist/ui/inline-budget.js.map +1 -1
  178. package/dist/ui/inline-fit-registry.d.ts +4 -31
  179. package/dist/ui/inline-fit-registry.d.ts.map +1 -1
  180. package/dist/ui/inline-fit-registry.js +9 -27
  181. package/dist/ui/inline-fit-registry.js.map +1 -1
  182. package/dist/ui/inline-fit-solve.d.ts +5 -27
  183. package/dist/ui/inline-fit-solve.d.ts.map +1 -1
  184. package/dist/ui/inline-fit-solve.js +4 -23
  185. package/dist/ui/inline-fit-solve.js.map +1 -1
  186. package/dist/ui/inline-fit.d.ts +4 -53
  187. package/dist/ui/inline-fit.d.ts.map +1 -1
  188. package/dist/ui/inline-fit.js +16 -62
  189. package/dist/ui/inline-fit.js.map +1 -1
  190. package/dist/ui/kit-labels.d.ts +12 -51
  191. package/dist/ui/kit-labels.d.ts.map +1 -1
  192. package/dist/ui/kit-labels.js +18 -28
  193. package/dist/ui/kit-labels.js.map +1 -1
  194. package/dist/ui/list-table.d.ts +15 -69
  195. package/dist/ui/list-table.d.ts.map +1 -1
  196. package/dist/ui/list-table.js +11 -69
  197. package/dist/ui/list-table.js.map +1 -1
  198. package/dist/ui/locale-gate.d.ts +11 -0
  199. package/dist/ui/locale-gate.d.ts.map +1 -0
  200. package/dist/ui/locale-gate.js +53 -0
  201. package/dist/ui/locale-gate.js.map +1 -0
  202. package/dist/ui/mcp-use-host.d.ts +20 -0
  203. package/dist/ui/mcp-use-host.d.ts.map +1 -0
  204. package/dist/ui/mcp-use-host.js +162 -0
  205. package/dist/ui/mcp-use-host.js.map +1 -0
  206. package/dist/ui/open-in-cockpit-link.d.ts +2 -21
  207. package/dist/ui/open-in-cockpit-link.d.ts.map +1 -1
  208. package/dist/ui/open-in-cockpit-link.js +5 -20
  209. package/dist/ui/open-in-cockpit-link.js.map +1 -1
  210. package/dist/ui/paged-rows.d.ts +3 -14
  211. package/dist/ui/paged-rows.d.ts.map +1 -1
  212. package/dist/ui/paged-rows.js +4 -14
  213. package/dist/ui/paged-rows.js.map +1 -1
  214. package/dist/ui/query-fallback.d.ts +2 -16
  215. package/dist/ui/query-fallback.d.ts.map +1 -1
  216. package/dist/ui/query-fallback.js +2 -14
  217. package/dist/ui/query-fallback.js.map +1 -1
  218. package/dist/ui/shell-host.d.ts +13 -23
  219. package/dist/ui/shell-host.d.ts.map +1 -1
  220. package/dist/ui/shell-host.js +1 -46
  221. package/dist/ui/shell-host.js.map +1 -1
  222. package/dist/ui/test-view-host.d.ts +51 -0
  223. package/dist/ui/test-view-host.d.ts.map +1 -0
  224. package/dist/ui/test-view-host.js +72 -0
  225. package/dist/ui/test-view-host.js.map +1 -0
  226. package/dist/ui/tool-query.d.ts +41 -0
  227. package/dist/ui/tool-query.d.ts.map +1 -0
  228. package/dist/ui/tool-query.js +128 -0
  229. package/dist/ui/tool-query.js.map +1 -0
  230. package/dist/ui/use-apply-theme.d.ts +1 -8
  231. package/dist/ui/use-apply-theme.d.ts.map +1 -1
  232. package/dist/ui/use-apply-theme.js +1 -8
  233. package/dist/ui/use-apply-theme.js.map +1 -1
  234. package/dist/ui/use-bpmn-viewer.d.ts +39 -73
  235. package/dist/ui/use-bpmn-viewer.d.ts.map +1 -1
  236. package/dist/ui/use-bpmn-viewer.js +18 -66
  237. package/dist/ui/use-bpmn-viewer.js.map +1 -1
  238. package/dist/ui/use-detail-view.d.ts +4 -26
  239. package/dist/ui/use-detail-view.d.ts.map +1 -1
  240. package/dist/ui/use-detail-view.js +7 -28
  241. package/dist/ui/use-detail-view.js.map +1 -1
  242. package/dist/ui/use-paged-list-view.d.ts +5 -25
  243. package/dist/ui/use-paged-list-view.d.ts.map +1 -1
  244. package/dist/ui/use-paged-list-view.js +5 -14
  245. package/dist/ui/use-paged-list-view.js.map +1 -1
  246. package/dist/ui/use-paged-view-data.d.ts +11 -66
  247. package/dist/ui/use-paged-view-data.d.ts.map +1 -1
  248. package/dist/ui/use-paged-view-data.js +20 -53
  249. package/dist/ui/use-paged-view-data.js.map +1 -1
  250. package/dist/ui/view-call.d.ts +66 -0
  251. package/dist/ui/view-call.d.ts.map +1 -0
  252. package/dist/ui/view-call.js +63 -0
  253. package/dist/ui/view-call.js.map +1 -0
  254. package/dist/ui/view-data-state.d.ts +1 -31
  255. package/dist/ui/view-data-state.d.ts.map +1 -1
  256. package/dist/ui/view-data-state.js +3 -32
  257. package/dist/ui/view-data-state.js.map +1 -1
  258. package/dist/ui/view-error-boundary.d.ts +24 -0
  259. package/dist/ui/view-error-boundary.d.ts.map +1 -0
  260. package/dist/ui/view-error-boundary.js +33 -0
  261. package/dist/ui/view-error-boundary.js.map +1 -0
  262. package/dist/ui/view-frame.d.ts +15 -0
  263. package/dist/ui/view-frame.d.ts.map +1 -0
  264. package/dist/ui/view-frame.js +72 -0
  265. package/dist/ui/view-frame.js.map +1 -0
  266. package/dist/ui/view-host.d.ts +35 -0
  267. package/dist/ui/view-host.d.ts.map +1 -0
  268. package/dist/ui/view-host.js +18 -0
  269. package/dist/ui/view-host.js.map +1 -0
  270. package/dist/ui/view-meta.d.ts +6 -29
  271. package/dist/ui/view-meta.d.ts.map +1 -1
  272. package/dist/ui/view-meta.js +2 -13
  273. package/dist/ui/view-meta.js.map +1 -1
  274. package/dist/ui/view-refresh-state.d.ts +4 -18
  275. package/dist/ui/view-refresh-state.d.ts.map +1 -1
  276. package/dist/ui/view-refresh-state.js +1 -7
  277. package/dist/ui/view-refresh-state.js.map +1 -1
  278. package/dist/ui/view-root.d.ts +26 -0
  279. package/dist/ui/view-root.d.ts.map +1 -0
  280. package/dist/ui/view-root.js +48 -0
  281. package/dist/ui/view-root.js.map +1 -0
  282. package/dist/ui/views.d.ts +17 -0
  283. package/dist/ui/views.d.ts.map +1 -0
  284. package/dist/ui/views.js +11 -0
  285. package/dist/ui/views.js.map +1 -0
  286. package/dist/ui/widget-shell.d.ts +1 -13
  287. package/dist/ui/widget-shell.d.ts.map +1 -1
  288. package/dist/ui/widget-shell.js +5 -30
  289. package/dist/ui/widget-shell.js.map +1 -1
  290. package/dist/view-bundle.d.ts +15 -0
  291. package/dist/view-bundle.d.ts.map +1 -0
  292. package/dist/view-bundle.js +23 -0
  293. package/dist/view-bundle.js.map +1 -0
  294. package/dist/view-results.d.ts +12 -23
  295. package/dist/view-results.d.ts.map +1 -1
  296. package/dist/view-results.js +14 -11
  297. package/dist/view-results.js.map +1 -1
  298. package/dist/widget-tool-bindings.d.ts +19 -48
  299. package/dist/widget-tool-bindings.d.ts.map +1 -1
  300. package/dist/widget-tool-bindings.js +21 -49
  301. package/dist/widget-tool-bindings.js.map +1 -1
  302. package/package.json +24 -36
  303. package/dist/adapt-data-widget.d.ts +0 -7
  304. package/dist/adapt-data-widget.d.ts.map +0 -1
  305. package/dist/adapt-data-widget.js +0 -7
  306. package/dist/adapt-data-widget.js.map +0 -1
  307. package/dist/bpmn-names.d.ts +0 -42
  308. package/dist/bpmn-names.d.ts.map +0 -1
  309. package/dist/bpmn-names.js.map +0 -1
  310. package/dist/bpmn-names.test.d.ts +0 -2
  311. package/dist/bpmn-names.test.d.ts.map +0 -1
  312. package/dist/bpmn-names.test.js +0 -143
  313. package/dist/bpmn-names.test.js.map +0 -1
  314. package/dist/build-data-feed-result.test.d.ts +0 -2
  315. package/dist/build-data-feed-result.test.d.ts.map +0 -1
  316. package/dist/build-data-feed-result.test.js +0 -28
  317. package/dist/build-data-feed-result.test.js.map +0 -1
  318. package/dist/build-single-widget-view.test.d.ts +0 -2
  319. package/dist/build-single-widget-view.test.d.ts.map +0 -1
  320. package/dist/build-single-widget-view.test.js +0 -136
  321. package/dist/build-single-widget-view.test.js.map +0 -1
  322. package/dist/builder-texts.d.ts +0 -27
  323. package/dist/builder-texts.d.ts.map +0 -1
  324. package/dist/builder-texts.js +0 -32
  325. package/dist/builder-texts.js.map +0 -1
  326. package/dist/builder-texts.test.d.ts +0 -2
  327. package/dist/builder-texts.test.d.ts.map +0 -1
  328. package/dist/builder-texts.test.js +0 -54
  329. package/dist/builder-texts.test.js.map +0 -1
  330. package/dist/catalogue-sync.d.ts +0 -18
  331. package/dist/catalogue-sync.d.ts.map +0 -1
  332. package/dist/catalogue-sync.js +0 -31
  333. package/dist/catalogue-sync.js.map +0 -1
  334. package/dist/catalogue-sync.test.d.ts +0 -2
  335. package/dist/catalogue-sync.test.d.ts.map +0 -1
  336. package/dist/catalogue-sync.test.js +0 -22
  337. package/dist/catalogue-sync.test.js.map +0 -1
  338. package/dist/composed-server.edge.test.d.ts +0 -2
  339. package/dist/composed-server.edge.test.d.ts.map +0 -1
  340. package/dist/composed-server.edge.test.js +0 -184
  341. package/dist/composed-server.edge.test.js.map +0 -1
  342. package/dist/composed-server.fonts.test.d.ts +0 -2
  343. package/dist/composed-server.fonts.test.d.ts.map +0 -1
  344. package/dist/composed-server.fonts.test.js +0 -186
  345. package/dist/composed-server.fonts.test.js.map +0 -1
  346. package/dist/composed-server.test.d.ts +0 -2
  347. package/dist/composed-server.test.d.ts.map +0 -1
  348. package/dist/composed-server.test.js +0 -332
  349. package/dist/composed-server.test.js.map +0 -1
  350. package/dist/composition.test.d.ts +0 -2
  351. package/dist/composition.test.d.ts.map +0 -1
  352. package/dist/composition.test.js +0 -275
  353. package/dist/composition.test.js.map +0 -1
  354. package/dist/dashboard-store-postgres.d.ts +0 -43
  355. package/dist/dashboard-store-postgres.d.ts.map +0 -1
  356. package/dist/dashboard-store-postgres.js +0 -225
  357. package/dist/dashboard-store-postgres.js.map +0 -1
  358. package/dist/dashboard-store-postgres.test.d.ts +0 -2
  359. package/dist/dashboard-store-postgres.test.d.ts.map +0 -1
  360. package/dist/dashboard-store-postgres.test.js +0 -272
  361. package/dist/dashboard-store-postgres.test.js.map +0 -1
  362. package/dist/font-assets.test.d.ts +0 -2
  363. package/dist/font-assets.test.d.ts.map +0 -1
  364. package/dist/font-assets.test.js +0 -123
  365. package/dist/font-assets.test.js.map +0 -1
  366. package/dist/health.test.d.ts +0 -2
  367. package/dist/health.test.d.ts.map +0 -1
  368. package/dist/health.test.js +0 -140
  369. package/dist/health.test.js.map +0 -1
  370. package/dist/host-boot.test.d.ts +0 -2
  371. package/dist/host-boot.test.d.ts.map +0 -1
  372. package/dist/host-boot.test.js +0 -59
  373. package/dist/host-boot.test.js.map +0 -1
  374. package/dist/http-edge.test.d.ts +0 -2
  375. package/dist/http-edge.test.d.ts.map +0 -1
  376. package/dist/http-edge.test.js +0 -255
  377. package/dist/http-edge.test.js.map +0 -1
  378. package/dist/metrics.test.d.ts +0 -2
  379. package/dist/metrics.test.d.ts.map +0 -1
  380. package/dist/metrics.test.js +0 -154
  381. package/dist/metrics.test.js.map +0 -1
  382. package/dist/node-listener.test.d.ts +0 -2
  383. package/dist/node-listener.test.d.ts.map +0 -1
  384. package/dist/node-listener.test.js +0 -331
  385. package/dist/node-listener.test.js.map +0 -1
  386. package/dist/oauth-env.test.d.ts +0 -2
  387. package/dist/oauth-env.test.d.ts.map +0 -1
  388. package/dist/oauth-env.test.js +0 -76
  389. package/dist/oauth-env.test.js.map +0 -1
  390. package/dist/postgres.d.ts +0 -59
  391. package/dist/postgres.d.ts.map +0 -1
  392. package/dist/postgres.js +0 -80
  393. package/dist/postgres.js.map +0 -1
  394. package/dist/profile-advisory.d.ts +0 -19
  395. package/dist/profile-advisory.d.ts.map +0 -1
  396. package/dist/profile-advisory.js +0 -48
  397. package/dist/profile-advisory.js.map +0 -1
  398. package/dist/profile-advisory.test.d.ts +0 -2
  399. package/dist/profile-advisory.test.d.ts.map +0 -1
  400. package/dist/profile-advisory.test.js +0 -53
  401. package/dist/profile-advisory.test.js.map +0 -1
  402. package/dist/profile-constants.d.ts +0 -37
  403. package/dist/profile-constants.d.ts.map +0 -1
  404. package/dist/profile-constants.js +0 -37
  405. package/dist/profile-constants.js.map +0 -1
  406. package/dist/profile-migrations.d.ts +0 -71
  407. package/dist/profile-migrations.d.ts.map +0 -1
  408. package/dist/profile-migrations.js +0 -88
  409. package/dist/profile-migrations.js.map +0 -1
  410. package/dist/profile-migrations.test.d.ts +0 -2
  411. package/dist/profile-migrations.test.d.ts.map +0 -1
  412. package/dist/profile-migrations.test.js +0 -200
  413. package/dist/profile-migrations.test.js.map +0 -1
  414. package/dist/profile-record.d.ts +0 -60
  415. package/dist/profile-record.d.ts.map +0 -1
  416. package/dist/profile-record.js +0 -78
  417. package/dist/profile-record.js.map +0 -1
  418. package/dist/profile-slice.d.ts +0 -53
  419. package/dist/profile-slice.d.ts.map +0 -1
  420. package/dist/profile-slice.js +0 -73
  421. package/dist/profile-slice.js.map +0 -1
  422. package/dist/profile-slice.test.d.ts +0 -2
  423. package/dist/profile-slice.test.d.ts.map +0 -1
  424. package/dist/profile-slice.test.js +0 -73
  425. package/dist/profile-slice.test.js.map +0 -1
  426. package/dist/profile-store-env.d.ts +0 -34
  427. package/dist/profile-store-env.d.ts.map +0 -1
  428. package/dist/profile-store-env.js +0 -44
  429. package/dist/profile-store-env.js.map +0 -1
  430. package/dist/profile-store-env.test.d.ts +0 -2
  431. package/dist/profile-store-env.test.d.ts.map +0 -1
  432. package/dist/profile-store-env.test.js +0 -69
  433. package/dist/profile-store-env.test.js.map +0 -1
  434. package/dist/profile-store-postgres.d.ts +0 -33
  435. package/dist/profile-store-postgres.d.ts.map +0 -1
  436. package/dist/profile-store-postgres.js +0 -87
  437. package/dist/profile-store-postgres.js.map +0 -1
  438. package/dist/profile-store-raw.test.d.ts +0 -2
  439. package/dist/profile-store-raw.test.d.ts.map +0 -1
  440. package/dist/profile-store-raw.test.js +0 -185
  441. package/dist/profile-store-raw.test.js.map +0 -1
  442. package/dist/profile-store.d.ts +0 -85
  443. package/dist/profile-store.d.ts.map +0 -1
  444. package/dist/profile-store.js +0 -182
  445. package/dist/profile-store.js.map +0 -1
  446. package/dist/profile-store.test.d.ts +0 -2
  447. package/dist/profile-store.test.d.ts.map +0 -1
  448. package/dist/profile-store.test.js +0 -353
  449. package/dist/profile-store.test.js.map +0 -1
  450. package/dist/profile.d.ts +0 -75
  451. package/dist/profile.d.ts.map +0 -1
  452. package/dist/profile.js +0 -85
  453. package/dist/profile.js.map +0 -1
  454. package/dist/profile.test.d.ts +0 -2
  455. package/dist/profile.test.d.ts.map +0 -1
  456. package/dist/profile.test.js +0 -71
  457. package/dist/profile.test.js.map +0 -1
  458. package/dist/request-context.test.d.ts +0 -2
  459. package/dist/request-context.test.d.ts.map +0 -1
  460. package/dist/request-context.test.js +0 -107
  461. package/dist/request-context.test.js.map +0 -1
  462. package/dist/served-fonts.d.ts +0 -38
  463. package/dist/served-fonts.d.ts.map +0 -1
  464. package/dist/served-fonts.js +0 -51
  465. package/dist/served-fonts.js.map +0 -1
  466. package/dist/served-fonts.test.d.ts +0 -2
  467. package/dist/served-fonts.test.d.ts.map +0 -1
  468. package/dist/served-fonts.test.js +0 -30
  469. package/dist/served-fonts.test.js.map +0 -1
  470. package/dist/server-locale.d.ts +0 -58
  471. package/dist/server-locale.d.ts.map +0 -1
  472. package/dist/server-locale.js +0 -64
  473. package/dist/server-locale.js.map +0 -1
  474. package/dist/server-locale.test.d.ts +0 -2
  475. package/dist/server-locale.test.d.ts.map +0 -1
  476. package/dist/server-locale.test.js +0 -90
  477. package/dist/server-locale.test.js.map +0 -1
  478. package/dist/shell-catalogue.d.ts +0 -12
  479. package/dist/shell-catalogue.d.ts.map +0 -1
  480. package/dist/shell-catalogue.js +0 -142
  481. package/dist/shell-catalogue.js.map +0 -1
  482. package/dist/shell-settings-contract.d.ts +0 -34
  483. package/dist/shell-settings-contract.d.ts.map +0 -1
  484. package/dist/shell-settings-contract.js +0 -21
  485. package/dist/shell-settings-contract.js.map +0 -1
  486. package/dist/shell-settings.d.ts +0 -24
  487. package/dist/shell-settings.d.ts.map +0 -1
  488. package/dist/shell-settings.js +0 -148
  489. package/dist/shell-settings.js.map +0 -1
  490. package/dist/shell-settings.test.d.ts +0 -2
  491. package/dist/shell-settings.test.d.ts.map +0 -1
  492. package/dist/shell-settings.test.js +0 -115
  493. package/dist/shell-settings.test.js.map +0 -1
  494. package/dist/testing/catalog-text.d.ts +0 -53
  495. package/dist/testing/catalog-text.d.ts.map +0 -1
  496. package/dist/testing/catalog-text.js +0 -146
  497. package/dist/testing/catalog-text.js.map +0 -1
  498. package/dist/testing/catalog-text.test.d.ts +0 -2
  499. package/dist/testing/catalog-text.test.d.ts.map +0 -1
  500. package/dist/testing/catalog-text.test.js +0 -137
  501. package/dist/testing/catalog-text.test.js.map +0 -1
  502. package/dist/testing/colors.d.ts +0 -34
  503. package/dist/testing/colors.d.ts.map +0 -1
  504. package/dist/testing/colors.js +0 -124
  505. package/dist/testing/colors.js.map +0 -1
  506. package/dist/testing/colors.test.d.ts +0 -2
  507. package/dist/testing/colors.test.d.ts.map +0 -1
  508. package/dist/testing/colors.test.js +0 -166
  509. package/dist/testing/colors.test.js.map +0 -1
  510. package/dist/testing/contrast.d.ts +0 -77
  511. package/dist/testing/contrast.d.ts.map +0 -1
  512. package/dist/testing/contrast.js +0 -382
  513. package/dist/testing/contrast.js.map +0 -1
  514. package/dist/testing/contrast.test.d.ts +0 -2
  515. package/dist/testing/contrast.test.d.ts.map +0 -1
  516. package/dist/testing/contrast.test.js +0 -230
  517. package/dist/testing/contrast.test.js.map +0 -1
  518. package/dist/testing/display-texts.d.ts +0 -23
  519. package/dist/testing/display-texts.d.ts.map +0 -1
  520. package/dist/testing/display-texts.js +0 -88
  521. package/dist/testing/display-texts.js.map +0 -1
  522. package/dist/testing/display-texts.test.d.ts +0 -2
  523. package/dist/testing/display-texts.test.d.ts.map +0 -1
  524. package/dist/testing/display-texts.test.js +0 -169
  525. package/dist/testing/display-texts.test.js.map +0 -1
  526. package/dist/testing/glossary.test.d.ts +0 -2
  527. package/dist/testing/glossary.test.d.ts.map +0 -1
  528. package/dist/testing/glossary.test.js +0 -78
  529. package/dist/testing/glossary.test.js.map +0 -1
  530. package/dist/testing/glyphs.d.ts +0 -27
  531. package/dist/testing/glyphs.d.ts.map +0 -1
  532. package/dist/testing/glyphs.js +0 -130
  533. package/dist/testing/glyphs.js.map +0 -1
  534. package/dist/testing/glyphs.test.d.ts +0 -2
  535. package/dist/testing/glyphs.test.d.ts.map +0 -1
  536. package/dist/testing/glyphs.test.js +0 -146
  537. package/dist/testing/glyphs.test.js.map +0 -1
  538. package/dist/testing/icon-sizes.d.ts +0 -22
  539. package/dist/testing/icon-sizes.d.ts.map +0 -1
  540. package/dist/testing/icon-sizes.js +0 -39
  541. package/dist/testing/icon-sizes.js.map +0 -1
  542. package/dist/testing/icon-sizes.test.d.ts +0 -2
  543. package/dist/testing/icon-sizes.test.d.ts.map +0 -1
  544. package/dist/testing/icon-sizes.test.js +0 -36
  545. package/dist/testing/icon-sizes.test.js.map +0 -1
  546. package/dist/testing/source-scan.d.ts +0 -16
  547. package/dist/testing/source-scan.d.ts.map +0 -1
  548. package/dist/testing/source-scan.js +0 -57
  549. package/dist/testing/source-scan.js.map +0 -1
  550. package/dist/testing/tone-pairs.d.ts +0 -20
  551. package/dist/testing/tone-pairs.d.ts.map +0 -1
  552. package/dist/testing/tone-pairs.js +0 -154
  553. package/dist/testing/tone-pairs.js.map +0 -1
  554. package/dist/testing/type-scale.d.ts +0 -40
  555. package/dist/testing/type-scale.d.ts.map +0 -1
  556. package/dist/testing/type-scale.js +0 -55
  557. package/dist/testing/type-scale.js.map +0 -1
  558. package/dist/testing/type-scale.test.d.ts +0 -2
  559. package/dist/testing/type-scale.test.d.ts.map +0 -1
  560. package/dist/testing/type-scale.test.js +0 -61
  561. package/dist/testing/type-scale.test.js.map +0 -1
  562. package/dist/tool-schema-trim.test.d.ts +0 -2
  563. package/dist/tool-schema-trim.test.d.ts.map +0 -1
  564. package/dist/tool-schema-trim.test.js +0 -53
  565. package/dist/tool-schema-trim.test.js.map +0 -1
  566. package/dist/toolsets.test.d.ts +0 -2
  567. package/dist/toolsets.test.d.ts.map +0 -1
  568. package/dist/toolsets.test.js +0 -86
  569. package/dist/toolsets.test.js.map +0 -1
  570. package/dist/ui/action-feedback.test.d.ts +0 -2
  571. package/dist/ui/action-feedback.test.d.ts.map +0 -1
  572. package/dist/ui/action-feedback.test.js +0 -77
  573. package/dist/ui/action-feedback.test.js.map +0 -1
  574. package/dist/ui/app-shell-providers.d.ts +0 -18
  575. package/dist/ui/app-shell-providers.d.ts.map +0 -1
  576. package/dist/ui/app-shell-providers.js +0 -19
  577. package/dist/ui/app-shell-providers.js.map +0 -1
  578. package/dist/ui/app-shell-providers.test.d.ts +0 -2
  579. package/dist/ui/app-shell-providers.test.d.ts.map +0 -1
  580. package/dist/ui/app-shell-providers.test.js +0 -249
  581. package/dist/ui/app-shell-providers.test.js.map +0 -1
  582. package/dist/ui/ask-ai-button.test.d.ts +0 -2
  583. package/dist/ui/ask-ai-button.test.d.ts.map +0 -1
  584. package/dist/ui/ask-ai-button.test.js +0 -103
  585. package/dist/ui/ask-ai-button.test.js.map +0 -1
  586. package/dist/ui/ask-ai-prompt.test.d.ts +0 -2
  587. package/dist/ui/ask-ai-prompt.test.d.ts.map +0 -1
  588. package/dist/ui/ask-ai-prompt.test.js +0 -240
  589. package/dist/ui/ask-ai-prompt.test.js.map +0 -1
  590. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +0 -2
  591. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +0 -1
  592. package/dist/ui/bpmn-heatmap/heat-ramp.test.js +0 -174
  593. package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +0 -1
  594. package/dist/ui/bpmn-heatmap/heat-utils.d.ts +0 -119
  595. package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +0 -1
  596. package/dist/ui/bpmn-heatmap/heat-utils.js +0 -231
  597. package/dist/ui/bpmn-heatmap/heat-utils.js.map +0 -1
  598. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +0 -2
  599. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +0 -1
  600. package/dist/ui/bpmn-heatmap/heat-utils.test.js +0 -59
  601. package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +0 -1
  602. package/dist/ui/bpmn-heatmap-labels.d.ts +0 -46
  603. package/dist/ui/bpmn-heatmap-labels.d.ts.map +0 -1
  604. package/dist/ui/bpmn-heatmap-labels.js +0 -16
  605. package/dist/ui/bpmn-heatmap-labels.js.map +0 -1
  606. package/dist/ui/bpmn-heatmap-widget.d.ts +0 -38
  607. package/dist/ui/bpmn-heatmap-widget.d.ts.map +0 -1
  608. package/dist/ui/bpmn-heatmap-widget.js +0 -65
  609. package/dist/ui/bpmn-heatmap-widget.js.map +0 -1
  610. package/dist/ui/bpmn-heatmap-widget.test.d.ts +0 -2
  611. package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +0 -1
  612. package/dist/ui/bpmn-heatmap-widget.test.js +0 -173
  613. package/dist/ui/bpmn-heatmap-widget.test.js.map +0 -1
  614. package/dist/ui/bpmn-heatmap.d.ts +0 -61
  615. package/dist/ui/bpmn-heatmap.d.ts.map +0 -1
  616. package/dist/ui/bpmn-heatmap.js +0 -119
  617. package/dist/ui/bpmn-heatmap.js.map +0 -1
  618. package/dist/ui/bpmn-tokens.test.d.ts +0 -2
  619. package/dist/ui/bpmn-tokens.test.d.ts.map +0 -1
  620. package/dist/ui/bpmn-tokens.test.js +0 -98
  621. package/dist/ui/bpmn-tokens.test.js.map +0 -1
  622. package/dist/ui/brand-gates.test.d.ts +0 -2
  623. package/dist/ui/brand-gates.test.d.ts.map +0 -1
  624. package/dist/ui/brand-gates.test.js +0 -131
  625. package/dist/ui/brand-gates.test.js.map +0 -1
  626. package/dist/ui/brand-mark.d.ts +0 -37
  627. package/dist/ui/brand-mark.d.ts.map +0 -1
  628. package/dist/ui/brand-mark.js +0 -33
  629. package/dist/ui/brand-mark.js.map +0 -1
  630. package/dist/ui/brand-mark.test.d.ts +0 -2
  631. package/dist/ui/brand-mark.test.d.ts.map +0 -1
  632. package/dist/ui/brand-mark.test.js +0 -111
  633. package/dist/ui/brand-mark.test.js.map +0 -1
  634. package/dist/ui/confirm-dialog.test.d.ts +0 -2
  635. package/dist/ui/confirm-dialog.test.d.ts.map +0 -1
  636. package/dist/ui/confirm-dialog.test.js +0 -115
  637. package/dist/ui/confirm-dialog.test.js.map +0 -1
  638. package/dist/ui/count-tone.test.d.ts +0 -2
  639. package/dist/ui/count-tone.test.d.ts.map +0 -1
  640. package/dist/ui/count-tone.test.js +0 -27
  641. package/dist/ui/count-tone.test.js.map +0 -1
  642. package/dist/ui/create-use-t.d.ts +0 -15
  643. package/dist/ui/create-use-t.d.ts.map +0 -1
  644. package/dist/ui/create-use-t.js +0 -17
  645. package/dist/ui/create-use-t.js.map +0 -1
  646. package/dist/ui/declare-served-fonts.test.d.ts +0 -2
  647. package/dist/ui/declare-served-fonts.test.d.ts.map +0 -1
  648. package/dist/ui/declare-served-fonts.test.js +0 -44
  649. package/dist/ui/declare-served-fonts.test.js.map +0 -1
  650. package/dist/ui/describe-error.test.d.ts +0 -2
  651. package/dist/ui/describe-error.test.d.ts.map +0 -1
  652. package/dist/ui/describe-error.test.js +0 -274
  653. package/dist/ui/describe-error.test.js.map +0 -1
  654. package/dist/ui/format.d.ts +0 -81
  655. package/dist/ui/format.d.ts.map +0 -1
  656. package/dist/ui/format.js +0 -189
  657. package/dist/ui/format.js.map +0 -1
  658. package/dist/ui/format.test.d.ts +0 -2
  659. package/dist/ui/format.test.d.ts.map +0 -1
  660. package/dist/ui/format.test.js +0 -181
  661. package/dist/ui/format.test.js.map +0 -1
  662. package/dist/ui/generic-widgets.d.ts +0 -15
  663. package/dist/ui/generic-widgets.d.ts.map +0 -1
  664. package/dist/ui/generic-widgets.js +0 -122
  665. package/dist/ui/generic-widgets.js.map +0 -1
  666. package/dist/ui/generic-widgets.test.d.ts +0 -2
  667. package/dist/ui/generic-widgets.test.d.ts.map +0 -1
  668. package/dist/ui/generic-widgets.test.js +0 -139
  669. package/dist/ui/generic-widgets.test.js.map +0 -1
  670. package/dist/ui/hand-off-button.test.d.ts +0 -2
  671. package/dist/ui/hand-off-button.test.d.ts.map +0 -1
  672. package/dist/ui/hand-off-button.test.js +0 -78
  673. package/dist/ui/hand-off-button.test.js.map +0 -1
  674. package/dist/ui/host-context.test.d.ts +0 -2
  675. package/dist/ui/host-context.test.d.ts.map +0 -1
  676. package/dist/ui/host-context.test.js +0 -160
  677. package/dist/ui/host-context.test.js.map +0 -1
  678. package/dist/ui/host-document.test.d.ts +0 -2
  679. package/dist/ui/host-document.test.d.ts.map +0 -1
  680. package/dist/ui/host-document.test.js +0 -112
  681. package/dist/ui/host-document.test.js.map +0 -1
  682. package/dist/ui/humanize-key.d.ts +0 -11
  683. package/dist/ui/humanize-key.d.ts.map +0 -1
  684. package/dist/ui/humanize-key.js +0 -26
  685. package/dist/ui/humanize-key.js.map +0 -1
  686. package/dist/ui/humanize-key.test.d.ts +0 -2
  687. package/dist/ui/humanize-key.test.d.ts.map +0 -1
  688. package/dist/ui/humanize-key.test.js +0 -42
  689. package/dist/ui/humanize-key.test.js.map +0 -1
  690. package/dist/ui/icon.d.ts +0 -37
  691. package/dist/ui/icon.d.ts.map +0 -1
  692. package/dist/ui/icon.js +0 -32
  693. package/dist/ui/icon.js.map +0 -1
  694. package/dist/ui/id-breaks.d.ts +0 -17
  695. package/dist/ui/id-breaks.d.ts.map +0 -1
  696. package/dist/ui/id-breaks.js +0 -36
  697. package/dist/ui/id-breaks.js.map +0 -1
  698. package/dist/ui/id-breaks.test.d.ts +0 -2
  699. package/dist/ui/id-breaks.test.d.ts.map +0 -1
  700. package/dist/ui/id-breaks.test.js +0 -37
  701. package/dist/ui/id-breaks.test.js.map +0 -1
  702. package/dist/ui/id-text.test.d.ts +0 -2
  703. package/dist/ui/id-text.test.d.ts.map +0 -1
  704. package/dist/ui/id-text.test.js +0 -122
  705. package/dist/ui/id-text.test.js.map +0 -1
  706. package/dist/ui/index.test.d.ts +0 -2
  707. package/dist/ui/index.test.d.ts.map +0 -1
  708. package/dist/ui/index.test.js +0 -34
  709. package/dist/ui/index.test.js.map +0 -1
  710. package/dist/ui/inline-fit-solve.test.d.ts +0 -2
  711. package/dist/ui/inline-fit-solve.test.d.ts.map +0 -1
  712. package/dist/ui/inline-fit-solve.test.js +0 -108
  713. package/dist/ui/inline-fit-solve.test.js.map +0 -1
  714. package/dist/ui/inline-fit-time.test.d.ts +0 -2
  715. package/dist/ui/inline-fit-time.test.d.ts.map +0 -1
  716. package/dist/ui/inline-fit-time.test.js +0 -110
  717. package/dist/ui/inline-fit-time.test.js.map +0 -1
  718. package/dist/ui/inline-fit.test-support.d.ts +0 -26
  719. package/dist/ui/inline-fit.test-support.d.ts.map +0 -1
  720. package/dist/ui/inline-fit.test-support.js +0 -34
  721. package/dist/ui/inline-fit.test-support.js.map +0 -1
  722. package/dist/ui/inline-fit.test.d.ts +0 -2
  723. package/dist/ui/inline-fit.test.d.ts.map +0 -1
  724. package/dist/ui/inline-fit.test.js +0 -159
  725. package/dist/ui/inline-fit.test.js.map +0 -1
  726. package/dist/ui/kit-labels.test.d.ts +0 -2
  727. package/dist/ui/kit-labels.test.d.ts.map +0 -1
  728. package/dist/ui/kit-labels.test.js +0 -98
  729. package/dist/ui/kit-labels.test.js.map +0 -1
  730. package/dist/ui/kit-type-roles.test.d.ts +0 -2
  731. package/dist/ui/kit-type-roles.test.d.ts.map +0 -1
  732. package/dist/ui/kit-type-roles.test.js +0 -122
  733. package/dist/ui/kit-type-roles.test.js.map +0 -1
  734. package/dist/ui/komet-svg.d.ts +0 -15
  735. package/dist/ui/komet-svg.d.ts.map +0 -1
  736. package/dist/ui/komet-svg.js +0 -21
  737. package/dist/ui/komet-svg.js.map +0 -1
  738. package/dist/ui/list-table.test.d.ts +0 -2
  739. package/dist/ui/list-table.test.d.ts.map +0 -1
  740. package/dist/ui/list-table.test.js +0 -169
  741. package/dist/ui/list-table.test.js.map +0 -1
  742. package/dist/ui/localized-app-view.d.ts +0 -40
  743. package/dist/ui/localized-app-view.d.ts.map +0 -1
  744. package/dist/ui/localized-app-view.js +0 -71
  745. package/dist/ui/localized-app-view.js.map +0 -1
  746. package/dist/ui/log-text.d.ts +0 -24
  747. package/dist/ui/log-text.d.ts.map +0 -1
  748. package/dist/ui/log-text.js +0 -31
  749. package/dist/ui/log-text.js.map +0 -1
  750. package/dist/ui/menu-item.d.ts +0 -12
  751. package/dist/ui/menu-item.d.ts.map +0 -1
  752. package/dist/ui/menu-item.js +0 -13
  753. package/dist/ui/menu-item.js.map +0 -1
  754. package/dist/ui/named-id.d.ts +0 -23
  755. package/dist/ui/named-id.d.ts.map +0 -1
  756. package/dist/ui/named-id.js +0 -21
  757. package/dist/ui/named-id.js.map +0 -1
  758. package/dist/ui/named-id.test.d.ts +0 -2
  759. package/dist/ui/named-id.test.d.ts.map +0 -1
  760. package/dist/ui/named-id.test.js +0 -57
  761. package/dist/ui/named-id.test.js.map +0 -1
  762. package/dist/ui/native-select.d.ts +0 -17
  763. package/dist/ui/native-select.d.ts.map +0 -1
  764. package/dist/ui/native-select.js +0 -20
  765. package/dist/ui/native-select.js.map +0 -1
  766. package/dist/ui/navigation-focus.d.ts +0 -20
  767. package/dist/ui/navigation-focus.d.ts.map +0 -1
  768. package/dist/ui/navigation-focus.js +0 -25
  769. package/dist/ui/navigation-focus.js.map +0 -1
  770. package/dist/ui/navigation-focus.test.d.ts +0 -2
  771. package/dist/ui/navigation-focus.test.d.ts.map +0 -1
  772. package/dist/ui/navigation-focus.test.js +0 -28
  773. package/dist/ui/navigation-focus.test.js.map +0 -1
  774. package/dist/ui/paged-list-footer.test.d.ts +0 -2
  775. package/dist/ui/paged-list-footer.test.d.ts.map +0 -1
  776. package/dist/ui/paged-list-footer.test.js +0 -128
  777. package/dist/ui/paged-list-footer.test.js.map +0 -1
  778. package/dist/ui/parse-tool-result.test.d.ts +0 -2
  779. package/dist/ui/parse-tool-result.test.d.ts.map +0 -1
  780. package/dist/ui/parse-tool-result.test.js +0 -88
  781. package/dist/ui/parse-tool-result.test.js.map +0 -1
  782. package/dist/ui/profile-gate.d.ts +0 -37
  783. package/dist/ui/profile-gate.d.ts.map +0 -1
  784. package/dist/ui/profile-gate.js +0 -126
  785. package/dist/ui/profile-gate.js.map +0 -1
  786. package/dist/ui/profile-gate.test.d.ts +0 -2
  787. package/dist/ui/profile-gate.test.d.ts.map +0 -1
  788. package/dist/ui/profile-gate.test.js +0 -246
  789. package/dist/ui/profile-gate.test.js.map +0 -1
  790. package/dist/ui/query-fallback.test.d.ts +0 -2
  791. package/dist/ui/query-fallback.test.d.ts.map +0 -1
  792. package/dist/ui/query-fallback.test.js +0 -49
  793. package/dist/ui/query-fallback.test.js.map +0 -1
  794. package/dist/ui/row-card.d.ts +0 -13
  795. package/dist/ui/row-card.d.ts.map +0 -1
  796. package/dist/ui/row-card.js +0 -11
  797. package/dist/ui/row-card.js.map +0 -1
  798. package/dist/ui/section.d.ts +0 -18
  799. package/dist/ui/section.d.ts.map +0 -1
  800. package/dist/ui/section.js +0 -14
  801. package/dist/ui/section.js.map +0 -1
  802. package/dist/ui/segmented-control.d.ts +0 -25
  803. package/dist/ui/segmented-control.d.ts.map +0 -1
  804. package/dist/ui/segmented-control.js +0 -22
  805. package/dist/ui/segmented-control.js.map +0 -1
  806. package/dist/ui/settings-labels.d.ts +0 -33
  807. package/dist/ui/settings-labels.d.ts.map +0 -1
  808. package/dist/ui/settings-labels.js +0 -50
  809. package/dist/ui/settings-labels.js.map +0 -1
  810. package/dist/ui/settings-layout.d.ts +0 -29
  811. package/dist/ui/settings-layout.d.ts.map +0 -1
  812. package/dist/ui/settings-layout.js +0 -49
  813. package/dist/ui/settings-layout.js.map +0 -1
  814. package/dist/ui/settings-layout.test.d.ts +0 -2
  815. package/dist/ui/settings-layout.test.d.ts.map +0 -1
  816. package/dist/ui/settings-layout.test.js +0 -73
  817. package/dist/ui/settings-layout.test.js.map +0 -1
  818. package/dist/ui/settings.d.ts +0 -47
  819. package/dist/ui/settings.d.ts.map +0 -1
  820. package/dist/ui/settings.js +0 -48
  821. package/dist/ui/settings.js.map +0 -1
  822. package/dist/ui/settings.test.d.ts +0 -2
  823. package/dist/ui/settings.test.d.ts.map +0 -1
  824. package/dist/ui/settings.test.js +0 -38
  825. package/dist/ui/settings.test.js.map +0 -1
  826. package/dist/ui/shell-settings.d.ts +0 -31
  827. package/dist/ui/shell-settings.d.ts.map +0 -1
  828. package/dist/ui/shell-settings.js +0 -97
  829. package/dist/ui/shell-settings.js.map +0 -1
  830. package/dist/ui/shell-settings.test.d.ts +0 -2
  831. package/dist/ui/shell-settings.test.d.ts.map +0 -1
  832. package/dist/ui/shell-settings.test.js +0 -108
  833. package/dist/ui/shell-settings.test.js.map +0 -1
  834. package/dist/ui/shell-widgets.d.ts +0 -14
  835. package/dist/ui/shell-widgets.d.ts.map +0 -1
  836. package/dist/ui/shell-widgets.js +0 -18
  837. package/dist/ui/shell-widgets.js.map +0 -1
  838. package/dist/ui/table.d.ts +0 -61
  839. package/dist/ui/table.d.ts.map +0 -1
  840. package/dist/ui/table.js +0 -43
  841. package/dist/ui/table.js.map +0 -1
  842. package/dist/ui/tone-components.test.d.ts +0 -2
  843. package/dist/ui/tone-components.test.d.ts.map +0 -1
  844. package/dist/ui/tone-components.test.js +0 -145
  845. package/dist/ui/tone-components.test.js.map +0 -1
  846. package/dist/ui/tone-contrast.test.d.ts +0 -2
  847. package/dist/ui/tone-contrast.test.d.ts.map +0 -1
  848. package/dist/ui/tone-contrast.test.js +0 -66
  849. package/dist/ui/tone-contrast.test.js.map +0 -1
  850. package/dist/ui/toolkit-overlap.test.d.ts +0 -2
  851. package/dist/ui/toolkit-overlap.test.d.ts.map +0 -1
  852. package/dist/ui/toolkit-overlap.test.js +0 -86
  853. package/dist/ui/toolkit-overlap.test.js.map +0 -1
  854. package/dist/ui/use-apply-theme.test.d.ts +0 -2
  855. package/dist/ui/use-apply-theme.test.d.ts.map +0 -1
  856. package/dist/ui/use-apply-theme.test.js +0 -102
  857. package/dist/ui/use-apply-theme.test.js.map +0 -1
  858. package/dist/ui/use-bpmn-viewer.test.d.ts +0 -2
  859. package/dist/ui/use-bpmn-viewer.test.d.ts.map +0 -1
  860. package/dist/ui/use-bpmn-viewer.test.js +0 -239
  861. package/dist/ui/use-bpmn-viewer.test.js.map +0 -1
  862. package/dist/ui/use-detail-view.test.d.ts +0 -2
  863. package/dist/ui/use-detail-view.test.d.ts.map +0 -1
  864. package/dist/ui/use-detail-view.test.js +0 -178
  865. package/dist/ui/use-detail-view.test.js.map +0 -1
  866. package/dist/ui/use-paged-list-view.test.d.ts +0 -2
  867. package/dist/ui/use-paged-list-view.test.d.ts.map +0 -1
  868. package/dist/ui/use-paged-list-view.test.js +0 -136
  869. package/dist/ui/use-paged-list-view.test.js.map +0 -1
  870. package/dist/ui/use-paged-view-data.seeded.test.d.ts +0 -2
  871. package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +0 -1
  872. package/dist/ui/use-paged-view-data.seeded.test.js +0 -144
  873. package/dist/ui/use-paged-view-data.seeded.test.js.map +0 -1
  874. package/dist/ui/use-paged-view-data.test.d.ts +0 -2
  875. package/dist/ui/use-paged-view-data.test.d.ts.map +0 -1
  876. package/dist/ui/use-paged-view-data.test.js +0 -330
  877. package/dist/ui/use-paged-view-data.test.js.map +0 -1
  878. package/dist/ui/use-reset-on-change.d.ts +0 -22
  879. package/dist/ui/use-reset-on-change.d.ts.map +0 -1
  880. package/dist/ui/use-reset-on-change.js +0 -29
  881. package/dist/ui/use-reset-on-change.js.map +0 -1
  882. package/dist/ui/use-reset-on-change.test.d.ts +0 -2
  883. package/dist/ui/use-reset-on-change.test.d.ts.map +0 -1
  884. package/dist/ui/use-reset-on-change.test.js +0 -61
  885. package/dist/ui/use-reset-on-change.test.js.map +0 -1
  886. package/dist/ui/use-view-data.seeded.test.d.ts +0 -2
  887. package/dist/ui/use-view-data.seeded.test.d.ts.map +0 -1
  888. package/dist/ui/use-view-data.seeded.test.js +0 -168
  889. package/dist/ui/use-view-data.seeded.test.js.map +0 -1
  890. package/dist/ui/view-data-state.test.d.ts +0 -2
  891. package/dist/ui/view-data-state.test.d.ts.map +0 -1
  892. package/dist/ui/view-data-state.test.js +0 -62
  893. package/dist/ui/view-data-state.test.js.map +0 -1
  894. package/dist/ui/view-meta.test.d.ts +0 -2
  895. package/dist/ui/view-meta.test.d.ts.map +0 -1
  896. package/dist/ui/view-meta.test.js +0 -92
  897. package/dist/ui/view-meta.test.js.map +0 -1
  898. package/dist/ui/widget-shell.test.d.ts +0 -2
  899. package/dist/ui/widget-shell.test.d.ts.map +0 -1
  900. package/dist/ui/widget-shell.test.js +0 -41
  901. package/dist/ui/widget-shell.test.js.map +0 -1
  902. package/dist/widget-meta-defaults.d.ts +0 -48
  903. package/dist/widget-meta-defaults.d.ts.map +0 -1
  904. package/dist/widget-meta-defaults.js +0 -80
  905. package/dist/widget-meta-defaults.js.map +0 -1
  906. package/dist/widget-meta-defaults.test.d.ts +0 -2
  907. package/dist/widget-meta-defaults.test.d.ts.map +0 -1
  908. package/dist/widget-meta-defaults.test.js +0 -196
  909. package/dist/widget-meta-defaults.test.js.map +0 -1
  910. package/dist/widget-tool-bindings.test.d.ts +0 -2
  911. package/dist/widget-tool-bindings.test.d.ts.map +0 -1
  912. package/dist/widget-tool-bindings.test.js +0 -83
  913. package/dist/widget-tool-bindings.test.js.map +0 -1
  914. package/dist/with-tool-errors.test.d.ts +0 -2
  915. package/dist/with-tool-errors.test.d.ts.map +0 -1
  916. package/dist/with-tool-errors.test.js +0 -38
  917. package/dist/with-tool-errors.test.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ /** What a view renders: a non-null, non-array object (`buildViewResult`'s data). */
2
+ export function isViewData(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value);
4
+ }
5
+ const WAITING = { phase: "waiting" };
6
+ /**
7
+ * In order: the view's own successful re-run; the host's renderable result; a cancel; a re-run in
8
+ * flight (waiting, so a retry is never clicked twice); its failure; the call's own error; a
9
+ * stripped or unrenderable result (`recover`: re-run once); else still waiting. A slow tool, an
10
+ * `isError` or a cancel is never re-run on its own: re-running a failure only repeats it. The
11
+ * re-run checks no annotations, because every view-bound tool is a read (a server pins that, as
12
+ * the Pulse app's `view-registry.test.ts` does).
13
+ */
14
+ export function resolveViewCall(inputs) {
15
+ const { status, output, rerun } = inputs;
16
+ if (rerun.state === "done") {
17
+ const reloadedAt = rerun.recovered ? rerun.at : null;
18
+ return { phase: { phase: "ready", data: rerun.data, reloadedAt }, recover: false };
19
+ }
20
+ if (status === "ready" && isViewData(output)) {
21
+ return { phase: { phase: "ready", data: output, reloadedAt: null }, recover: false };
22
+ }
23
+ if (inputs.cancelled)
24
+ return { phase: { phase: "cancelled" }, recover: false };
25
+ if (rerun.state === "running")
26
+ return { phase: WAITING, recover: false };
27
+ if (rerun.state === "failed")
28
+ return { phase: { phase: "error", error: rerun.error }, recover: false };
29
+ if (status === "error") {
30
+ const error = inputs.error ?? new Error("The tool call failed.");
31
+ return { phase: { phase: "error", error }, recover: false };
32
+ }
33
+ const recover = status === "ready" || inputs.observation.result === "stripped";
34
+ return { phase: WAITING, recover };
35
+ }
36
+ /**
37
+ * The frame's own model line (read by the model, never shown, so English): an error or cancel
38
+ * the user sees instead of the view, or figures the view re-loaded itself. `null` while waiting
39
+ * and for a plain host-delivered view.
40
+ */
41
+ export function viewCallContext(phase) {
42
+ switch (phase.phase) {
43
+ case "waiting":
44
+ return null;
45
+ case "cancelled":
46
+ return {
47
+ summary: "The view was cancelled before it rendered. The user sees a note that the call was cancelled.",
48
+ };
49
+ case "error":
50
+ return {
51
+ summary: "The view could not be shown. The user sees an error message with a retry button instead of the view.",
52
+ untrusted: [{ label: "reason", text: phase.error.message }],
53
+ };
54
+ case "ready":
55
+ if (phase.reloadedAt === null)
56
+ return null;
57
+ return {
58
+ summary: "The view re-ran its tool because the host did not pass the result to the view; its figures are live as of liveAsOf and can differ from the result in the chat.",
59
+ facts: { liveAsOf: new Date(phase.reloadedAt).toISOString() },
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=view-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-call.js","sourceRoot":"","sources":["../../src/ui/view-call.ts"],"names":[],"mappings":"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"}
@@ -1,52 +1,22 @@
1
1
  import type { ReactNode } from "react";
2
- /**
3
- * A loading state for screen readers and eyes alike: a polite status with
4
- * the (visually hidden) text, and the skeleton shown instead of it.
5
- */
6
2
  export declare function LoadingStatus({ text, skeleton, className, }: {
7
3
  text: string;
8
4
  skeleton?: ReactNode;
9
5
  className?: string;
10
6
  }): import("react").JSX.Element;
11
- /**
12
- * The canonical loading / error / no-data boundary for widgets driven by
13
- * `useViewData`-style hooks — the block every widget used to copy inline.
14
- *
15
- * - Loading: the `skeleton` (default: a heading bar and a block) under a
16
- * polite status whose words ("Ansicht wird geladen…" / "Loading view…",
17
- * or `loadingText`) only a screen reader reads.
18
- * - Error: the toolkit's `ErrorState` from {@link describeError}: what
19
- * happened, what you can do, the raw text collapsed under "Details", and a
20
- * retry — mandatory, a failed load is never a dead end.
21
- * - No data: the toolkit's `EmptyState` with `emptyText`.
22
- *
23
- * Callers keep their own wrapper (`WidgetShell`, card, …):
24
- *
25
- * if (!data) {
26
- * return (
27
- * <WidgetShell>
28
- * <ViewDataState loading={loading} error={error} onRetry={refetch}
29
- * emptyText={t("x.noData")} />
30
- * </WidgetShell>
31
- * )
32
- * }
33
- */
7
+ /** Loading, error and no-data boundary; the retry is mandatory, a failed load is never a dead end. */
34
8
  export declare function ViewDataState({ loading, error, onRetry, emptyText, loadingText, skeleton, errorTitle, retryLabel, className, }: {
35
9
  loading: boolean;
36
10
  error: Error | null | undefined;
37
- /** Re-run the failed load (the query's refetch). */
38
11
  onRetry: () => void;
39
12
  /** What is missing when the load finished without data ("No incident found"). */
40
13
  emptyText: string;
41
- /** The loading status for screen readers (default: the active locale's "Loading view…"). */
42
14
  loadingText?: string;
43
15
  /** Shown while loading, shaped like the result (default: a heading bar and a block). */
44
16
  skeleton?: ReactNode;
45
17
  /** Title for an error the kit cannot classify (default: the locale's "Something went wrong"). */
46
18
  errorTitle?: string;
47
- /** Caller-localized retry label (default: the active locale's). */
48
19
  retryLabel?: string;
49
- /** Merged into the state's wrapper (tailwind-merge semantics). */
50
20
  className?: string;
51
21
  }): import("react").JSX.Element;
52
22
  //# sourceMappingURL=view-data-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-data-state.d.ts","sourceRoot":"","sources":["../../src/ui/view-data-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAkBtC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BASA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,oDAAoD;IACpD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAA;IACjB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BA0BA"}
1
+ {"version":3,"file":"view-data-state.d.ts","sourceRoot":"","sources":["../../src/ui/view-data-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAetC,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BASA;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,GACV,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BA0BA"}
@@ -1,44 +1,15 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn, EmptyState, ErrorState, Skeleton, useLocale } from "@miragon/mcp-toolkit-ui";
2
+ import { cn, EmptyState, ErrorState, Skeleton, useLocale } from "@miragon/pulse-ui";
3
3
  import { describeError } from "./describe-error.js";
4
4
  import { kitLabels } from "./kit-labels.js";
5
- /**
6
- * The default loading skeleton: a heading bar over a block, the rough
7
- * geometry of a widget body. Pass `skeleton` for one shaped like the result.
8
- */
5
+ /** The rough geometry of a widget body. */
9
6
  function DefaultSkeleton() {
10
7
  return (_jsxs(_Fragment, { children: [_jsx(Skeleton, { className: "h-7 w-48" }), _jsx(Skeleton, { className: "h-24 w-full" })] }));
11
8
  }
12
- /**
13
- * A loading state for screen readers and eyes alike: a polite status with
14
- * the (visually hidden) text, and the skeleton shown instead of it.
15
- */
16
9
  export function LoadingStatus({ text, skeleton, className, }) {
17
10
  return (_jsxs("div", { role: "status", className: cn("flex flex-col gap-3", className), children: [_jsx("span", { className: "sr-only", children: text }), _jsx("div", { "aria-hidden": "true", className: "flex flex-col gap-3", children: skeleton ?? _jsx(DefaultSkeleton, {}) })] }));
18
11
  }
19
- /**
20
- * The canonical loading / error / no-data boundary for widgets driven by
21
- * `useViewData`-style hooks — the block every widget used to copy inline.
22
- *
23
- * - Loading: the `skeleton` (default: a heading bar and a block) under a
24
- * polite status whose words ("Ansicht wird geladen…" / "Loading view…",
25
- * or `loadingText`) only a screen reader reads.
26
- * - Error: the toolkit's `ErrorState` from {@link describeError}: what
27
- * happened, what you can do, the raw text collapsed under "Details", and a
28
- * retry — mandatory, a failed load is never a dead end.
29
- * - No data: the toolkit's `EmptyState` with `emptyText`.
30
- *
31
- * Callers keep their own wrapper (`WidgetShell`, card, …):
32
- *
33
- * if (!data) {
34
- * return (
35
- * <WidgetShell>
36
- * <ViewDataState loading={loading} error={error} onRetry={refetch}
37
- * emptyText={t("x.noData")} />
38
- * </WidgetShell>
39
- * )
40
- * }
41
- */
12
+ /** Loading, error and no-data boundary; the retry is mandatory, a failed load is never a dead end. */
42
13
  export function ViewDataState({ loading, error, onRetry, emptyText, loadingText, skeleton, errorTitle, retryLabel, className, }) {
43
14
  const locale = useLocale();
44
15
  const defaults = kitLabels(locale);
@@ -1 +1 @@
1
- {"version":3,"file":"view-data-state.js","sourceRoot":"","sources":["../../src/ui/view-data-state.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,SAAS,eAAe;IACtB,OAAO,CACL,8BACE,KAAC,QAAQ,IAAC,SAAS,EAAC,UAAU,GAAG,EACjC,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,IACnC,CACJ,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,SAAS,GAKV;IACC,OAAO,CACL,eAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,aAChE,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,GAAQ,EACvC,6BAAiB,MAAM,EAAC,SAAS,EAAC,qBAAqB,YACpD,QAAQ,IAAI,KAAC,eAAe,KAAG,GAC5B,IACF,CACP,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,GAkBV;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;QAC7E,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,WAAW,EAAE,SAAS,CAAC,IAAI,EAC3B,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS,EACvC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACtB,CACH,CAAA;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,KAAC,aAAa,IACZ,IAAI,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,EACzC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,GACpB,CACH,CAAA;IACH,CAAC;IACD,OAAO,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAI,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"view-data-state.js","sourceRoot":"","sources":["../../src/ui/view-data-state.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,2CAA2C;AAC3C,SAAS,eAAe;IACtB,OAAO,CACL,8BACE,KAAC,QAAQ,IAAC,SAAS,EAAC,UAAU,GAAG,EACjC,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,IACnC,CACJ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,SAAS,GAKV;IACC,OAAO,CACL,eAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,aAChE,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,GAAQ,EACvC,6BAAiB,MAAM,EAAC,SAAS,EAAC,qBAAqB,YACpD,QAAQ,IAAI,KAAC,eAAe,KAAG,GAC5B,IACF,CACP,CAAA;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,GAcV;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;QAC7E,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,WAAW,EAAE,SAAS,CAAC,IAAI,EAC3B,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS,EACvC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACtB,CACH,CAAA;IACH,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,KAAC,aAAa,IACZ,IAAI,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,EACzC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,GACpB,CACH,CAAA;IACH,CAAC;IACD,OAAO,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAI,CAAA;AAC/D,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Component, type ErrorInfo, type ReactNode } from "react";
2
+ interface BoundaryState {
3
+ error: Error | null;
4
+ resetKey: unknown;
5
+ }
6
+ /**
7
+ * Keeps one crashing widget from blanking the view: it says the element couldn't be displayed,
8
+ * the raw text under Details, with a retry that renders it again. A new `resetKey` (the next
9
+ * route) clears it.
10
+ */
11
+ export declare class ViewErrorBoundary extends Component<{
12
+ resetKey?: unknown;
13
+ children: ReactNode;
14
+ }, BoundaryState> {
15
+ state: BoundaryState;
16
+ static getDerivedStateFromError(error: unknown): Partial<BoundaryState>;
17
+ static getDerivedStateFromProps(props: {
18
+ resetKey?: unknown;
19
+ }, state: BoundaryState): Partial<BoundaryState> | null;
20
+ componentDidCatch(error: Error, info: ErrorInfo): void;
21
+ render(): ReactNode;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=view-error-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-error-boundary.d.ts","sourceRoot":"","sources":["../../src/ui/view-error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjE,UAAU,aAAa;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS,CAC9C;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,EAC3C,aAAa,CACd;IACC,KAAK,EAAE,aAAa,CAAiD;IAErE,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIvE,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAC7B,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAMhC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAItD,MAAM,IAAI,SAAS;CAIpB"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Component } from "react";
3
+ import { ErrorState, useLocale } from "@miragon/pulse-ui";
4
+ import { kitLabels } from "./kit-labels.js";
5
+ /**
6
+ * Keeps one crashing widget from blanking the view: it says the element couldn't be displayed,
7
+ * the raw text under Details, with a retry that renders it again. A new `resetKey` (the next
8
+ * route) clears it.
9
+ */
10
+ export class ViewErrorBoundary extends Component {
11
+ state = { error: null, resetKey: this.props.resetKey };
12
+ static getDerivedStateFromError(error) {
13
+ return { error: error instanceof Error ? error : new Error(String(error)) };
14
+ }
15
+ static getDerivedStateFromProps(props, state) {
16
+ return Object.is(props.resetKey, state.resetKey)
17
+ ? null
18
+ : { error: null, resetKey: props.resetKey };
19
+ }
20
+ componentDidCatch(error, info) {
21
+ console.error("[pulse] a view element crashed:", error, info.componentStack);
22
+ }
23
+ render() {
24
+ if (!this.state.error)
25
+ return this.props.children;
26
+ return _jsx(Crashed, { error: this.state.error, onRetry: () => this.setState({ error: null }) });
27
+ }
28
+ }
29
+ function Crashed({ error, onRetry }) {
30
+ const labels = kitLabels(useLocale());
31
+ return (_jsx(ErrorState, { variant: "inline", title: labels.viewCrashed, details: error.message || undefined, onRetry: onRetry, retryLabel: labels.retry }));
32
+ }
33
+ //# sourceMappingURL=view-error-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-error-boundary.js","sourceRoot":"","sources":["../../src/ui/view-error-boundary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkC,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAO3C;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAGtC;IACC,KAAK,GAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;IAErE,MAAM,CAAC,wBAAwB,CAAC,KAAc;QAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;IAC7E,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC7B,KAA6B,EAC7B,KAAoB;QAEpB,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;YAC9C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,IAAe;QAC7C,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;QACjD,OAAO,KAAC,OAAO,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAI,CAAA;IAC5F,CAAC;CACF;AAED,SAAS,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAyC;IACxE,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IACrC,OAAO,CACL,KAAC,UAAU,IACT,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS,EACnC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,CAAC,KAAK,GACxB,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type ViewCall } from "./view-call.js";
2
+ import type { ViewComponent } from "./views.js";
3
+ /** After this long, the waiting line adds what to do. */
4
+ export declare const SLOW_HINT_MS = 8000;
5
+ /**
6
+ * The view's lifecycle around ONE view component: waiting, error (the kit's words, the raw text
7
+ * under Details, Try again), cancelled, a missing view, then the view itself under a toolbar that
8
+ * carries the "Reloaded at" stamp and the fullscreen switch. No title: views carry their heading.
9
+ * Host-agnostic, so it renders under `TestViewHost` too.
10
+ */
11
+ export declare function ViewFrame({ call, view }: {
12
+ call: ViewCall;
13
+ view: ViewComponent | undefined;
14
+ }): import("react").JSX.Element;
15
+ //# sourceMappingURL=view-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-frame.d.ts","sourceRoot":"","sources":["../../src/ui/view-frame.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAI/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,yDAAyD;AACzD,eAAO,MAAM,YAAY,OAAQ,CAAA;AAEjC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAA;CAAE,+BAgB5F"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
+ import { ErrorState, Skeleton, useLocale, formatTime } from "@miragon/pulse-ui";
4
+ import { modelContextText } from "./ask-ai-prompt.js";
5
+ import { DisplayModeToggle, useDisplayModeControl } from "./display-mode-toggle.js";
6
+ import { kitLabels } from "./kit-labels.js";
7
+ import { useShellHost } from "./shell-host.js";
8
+ import { viewCallContext } from "./view-call.js";
9
+ import { ViewDataState } from "./view-data-state.js";
10
+ import { ViewErrorBoundary } from "./view-error-boundary.js";
11
+ import { HostModelContext } from "./view-host.js";
12
+ /** After this long, the waiting line adds what to do. */
13
+ export const SLOW_HINT_MS = 8_000;
14
+ /**
15
+ * The view's lifecycle around ONE view component: waiting, error (the kit's words, the raw text
16
+ * under Details, Try again), cancelled, a missing view, then the view itself under a toolbar that
17
+ * carries the "Reloaded at" stamp and the fullscreen switch. No title: views carry their heading.
18
+ * Host-agnostic, so it renders under `TestViewHost` too.
19
+ */
20
+ export function ViewFrame({ call, view }) {
21
+ const frameRef = useRef(null);
22
+ const labels = kitLabels(useLocale());
23
+ const { phase } = call;
24
+ // The frame stays the focus target, so a retry never drops focus to the document.
25
+ const retry = useCallback(() => {
26
+ frameRef.current?.focus();
27
+ call.retry();
28
+ }, [call]);
29
+ const spec = view ? viewCallContext(phase) : null;
30
+ return (_jsxs("div", { ref: frameRef, tabIndex: -1, "data-slot": "view-frame", className: "outline-hidden", children: [spec && _jsx(HostModelContext, { content: modelContextText(spec) }), _jsx(FrameBody, { call: call, view: view, labels: labels, onRetry: retry })] }));
31
+ }
32
+ function FrameBody({ call: { phase }, view: View, labels, onRetry, }) {
33
+ if (!View) {
34
+ return (_jsx("div", { className: "px-4 py-4", children: _jsx(ErrorState, { title: labels.viewMissing }) }));
35
+ }
36
+ switch (phase.phase) {
37
+ case "waiting":
38
+ return _jsx(ViewWaiting, { labels: labels });
39
+ case "cancelled":
40
+ return (_jsx("div", { className: "px-4 py-4", children: _jsx("p", { role: "status", className: "text-muted-foreground text-small", children: labels.cancelled }) }));
41
+ case "error":
42
+ return (_jsx("div", { className: "px-4 py-4", children: _jsx(ViewDataState, { loading: false, error: phase.error, onRetry: onRetry, emptyText: "", errorTitle: labels.viewErrorTitle }) }));
43
+ case "ready":
44
+ return (_jsx(ViewMain, { reloadedAt: phase.reloadedAt, labels: labels, children: _jsx(ViewErrorBoundary, { children: _jsx(View, { data: phase.data }) }) }));
45
+ }
46
+ }
47
+ /** No aria-busy above the live region: assistive technology may hold back the slow hint. */
48
+ function ViewWaiting({ labels }) {
49
+ const [slow, setSlow] = useState(false);
50
+ useEffect(() => {
51
+ const id = setTimeout(() => setSlow(true), SLOW_HINT_MS);
52
+ return () => clearTimeout(id);
53
+ }, []);
54
+ 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 text-small flex flex-col gap-1", children: [_jsx("p", { children: labels.loadingView }), slow && _jsx("p", { "data-slot": "slow-hint", children: labels.slowHint })] })] }));
55
+ }
56
+ /**
57
+ * Fullscreen, the view owns the viewport and scrolls itself; inline the host sizes the frame from
58
+ * its height. Safe-area insets pad it on mobile hosts.
59
+ */
60
+ function ViewMain({ reloadedAt, labels, children, }) {
61
+ const { safeArea } = useShellHost();
62
+ const { displayMode, canFullscreen } = useDisplayModeControl();
63
+ const style = {
64
+ ...(displayMode === "fullscreen" ? { minHeight: "100vh", overflowY: "auto" } : null),
65
+ paddingTop: safeArea?.top,
66
+ paddingRight: safeArea?.right,
67
+ paddingBottom: safeArea?.bottom,
68
+ paddingLeft: safeArea?.left,
69
+ };
70
+ return (_jsxs("main", { style: style, children: [(reloadedAt !== null || canFullscreen) && (_jsxs("div", { "data-slot": "view-toolbar", className: "flex min-h-12 items-center gap-2 px-4 py-2", children: [reloadedAt !== null && (_jsx("p", { "data-slot": "view-reloaded-at", className: "text-muted-foreground text-small min-w-0 truncate", children: labels.reloadedAt(formatTime(new Date(reloadedAt).toISOString(), { seconds: false })) })), _jsx("div", { className: "ml-auto flex shrink-0 items-center gap-1", children: _jsx(DisplayModeToggle, {}) })] })), children] }));
71
+ }
72
+ //# sourceMappingURL=view-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-frame.js","sourceRoot":"","sources":["../../src/ui/view-frame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAsC,MAAM,OAAO,CAAA;AACpG,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACnF,OAAO,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAiB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAA;AAEjC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAuD;IAC3F,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IACrC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACtB,kFAAkF;IAClF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACzB,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACjD,OAAO,CACL,eAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,eAAY,YAAY,EAAC,SAAS,EAAC,gBAAgB,aAChF,IAAI,IAAI,KAAC,gBAAgB,IAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAI,EAC9D,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAI,IACjE,CACP,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,IAAI,EAAE,EAAE,KAAK,EAAE,EACf,IAAI,EAAE,IAAI,EACV,MAAM,EACN,OAAO,GAMR;IACC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,GAAI,GACrC,CACP,CAAA;IACH,CAAC;IACD,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,CAAA;QACxC,KAAK,WAAW;YACd,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,YAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,kCAAkC,YAC1D,MAAM,CAAC,SAAS,GACf,GACA,CACP,CAAA;QACH,KAAK,OAAO;YACV,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,aAAa,IACZ,OAAO,EAAE,KAAK,EACd,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,EAAE,EACZ,UAAU,EAAE,MAAM,CAAC,cAAc,GACjC,GACE,CACP,CAAA;QACH,KAAK,OAAO;YACV,OAAO,CACL,KAAC,QAAQ,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,YACpD,KAAC,iBAAiB,cAChB,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAa,GAAI,GACjB,GACX,CACZ,CAAA;IACL,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,WAAW,CAAC,EAAE,MAAM,EAAyB;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAA;QACxD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,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,EACvD,eAAK,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,sDAAsD,aACjF,sBAAI,MAAM,CAAC,WAAW,GAAK,EAC1B,IAAI,IAAI,yBAAa,WAAW,YAAE,MAAM,CAAC,QAAQ,GAAK,IACnD,IACF,CACP,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,EAChB,UAAU,EACV,MAAM,EACN,QAAQ,GAKT;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAA;IACnC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,qBAAqB,EAAE,CAAA;IAC9D,MAAM,KAAK,GAAkB;QAC3B,GAAG,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,UAAU,EAAE,QAAQ,EAAE,GAAG;QACzB,YAAY,EAAE,QAAQ,EAAE,KAAK;QAC7B,aAAa,EAAE,QAAQ,EAAE,MAAM;QAC/B,WAAW,EAAE,QAAQ,EAAE,IAAI;KAC5B,CAAA;IACD,OAAO,CACL,gBAAM,KAAK,EAAE,KAAK,aACf,CAAC,UAAU,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CACzC,4BAAe,cAAc,EAAC,SAAS,EAAC,4CAA4C,aACjF,UAAU,KAAK,IAAI,IAAI,CACtB,yBACY,kBAAkB,EAC5B,SAAS,EAAC,mDAAmD,YAE5D,MAAM,CAAC,UAAU,CAChB,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACnE,GACC,CACL,EACD,cAAK,SAAS,EAAC,0CAA0C,YACvD,KAAC,iBAAiB,KAAG,GACjB,IACF,CACP,EACA,QAAQ,IACJ,CACR,CAAA;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type ComponentType, type ReactNode } from "react";
2
+ import type { ToolResult } from "../protocol/tool-result.js";
3
+ /**
4
+ * The ONE seam between a view and its host. Widgets never import `mcp-use/react` (its hooks
5
+ * throw outside `bootstrapView`): production provides the mcp-use adapter (`mountViews`), tests
6
+ * `TestViewHost`. Display mode stays in the host-agnostic `useShellHost`/`useDisplayModeControl`.
7
+ */
8
+ export interface ViewHost {
9
+ /**
10
+ * Calls any server tool by name. RESOLVES with the raw result, an `isError` result included
11
+ * (`decodeToolResult` throws it); rejects only on a transport failure (no host, no
12
+ * `serverTools` capability, a JSON-RPC error such as an unknown tool).
13
+ */
14
+ callTool: (name: string, args?: object) => Promise<ToolResult>;
15
+ /** Posts a USER message into the chat (hand-offs, navigation). Fail-soft: never throws. */
16
+ sendFollowUp: (prompt: string) => void;
17
+ /** Opens a URL outside the frame. Fail-soft. */
18
+ openExternal: (url: string) => void;
19
+ /** One node of the view's model-context tree; nests like mcp-use's `ModelContext`. */
20
+ ModelContext: ComponentType<{
21
+ content: string;
22
+ children?: ReactNode;
23
+ }>;
24
+ }
25
+ export declare function ViewHostProvider({ host, children }: {
26
+ host: ViewHost;
27
+ children: ReactNode;
28
+ }): import("react").JSX.Element;
29
+ export declare function useViewHost(): ViewHost;
30
+ /** The ONE way a widget reports model context; build `content` with `modelContextText`. */
31
+ export declare function HostModelContext({ content, children }: {
32
+ content: string;
33
+ children?: ReactNode;
34
+ }): import("react").JSX.Element;
35
+ //# sourceMappingURL=view-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-host.d.ts","sourceRoot":"","sources":["../../src/ui/view-host.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9D,2FAA2F;IAC3F,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,gDAAgD;IAChD,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,sFAAsF;IACtF,YAAY,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACvE;AAID,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAE3F;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAItC;AAED,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+BAGhG"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from "react";
3
+ const ViewHostContext = createContext(null);
4
+ export function ViewHostProvider({ host, children }) {
5
+ return _jsx(ViewHostContext.Provider, { value: host, children: children });
6
+ }
7
+ export function useViewHost() {
8
+ const host = useContext(ViewHostContext);
9
+ if (!host)
10
+ throw new Error("[pulse] useViewHost() needs mountViews/mountView or TestViewHost");
11
+ return host;
12
+ }
13
+ /** The ONE way a widget reports model context; build `content` with `modelContextText`. */
14
+ export function HostModelContext({ content, children }) {
15
+ const { ModelContext } = useViewHost();
16
+ return _jsx(ModelContext, { content: content, children: children });
17
+ }
18
+ //# sourceMappingURL=view-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-host.js","sourceRoot":"","sources":["../../src/ui/view-host.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAA;AAuBrF,MAAM,eAAe,GAAG,aAAa,CAAkB,IAAI,CAAC,CAAA;AAE5D,MAAM,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA2C;IAC1F,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAAG,QAAQ,GAA4B,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IAC9F,OAAO,IAAI,CAAA;AACb,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAA6C;IAC/F,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAA;IACtC,OAAO,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,YAAG,QAAQ,GAAgB,CAAA;AAClE,CAAC"}
@@ -1,19 +1,9 @@
1
- import type { Locale } from "../profile-constants.js";
1
+ import type { Locale } from "./host-context.js";
2
2
  /**
3
- * The reference frame of a data view, as one quiet line under its title:
4
- * "Letzte 7 Tage · 6 Engines (3 ohne Metriken) · Stand 14:32" (U7: real
5
- * numbers say where they come from). A number without its period, its engine
6
- * set and the time it was read is a number the reader has to guess about;
7
- * the model gets the same scope through the view's description.
8
- *
9
- * Every part is optional and left out when unknown, never guessed: a live
10
- * snapshot has no period, an unscoped result no engine count, an old payload
11
- * no as-of time. Like the other formatters, the words follow the view's
12
- * format locale (German or English) that the shell's ProfileGate publishes.
3
+ * Period, engine set and as-of time under a view title (U7). Each part is
4
+ * left out when unknown, never guessed.
13
5
  */
14
- /** The engines the figures add up. */
15
6
  export interface ViewMetaEngines {
16
- /** How many engines the figures cover. */
17
7
  count: number;
18
8
  /** Of those, how many report no metrics; omit when unknown. */
19
9
  silent?: number | null;
@@ -21,16 +11,13 @@ export interface ViewMetaEngines {
21
11
  export interface ViewMetaParts {
22
12
  /** What the figures are about, first on the line (a process key, "v1 → v2"). */
23
13
  subject?: string | null;
24
- /**
25
- * The time frame in words: `formatLookback("7d")` → "Letzte 7 Tage", or a
26
- * custom window ("7 Tage davor, 7 Tage danach"). Omit for a live snapshot.
27
- */
14
+ /** Omit for a live snapshot. */
28
15
  period?: string | null;
29
16
  engines?: ViewMetaEngines | null;
30
17
  /** When the figures were read (ISO timestamp); shown as "Stand 14:32". */
31
18
  asOf?: string | null;
32
19
  }
33
- /** The words of the meta line, per language (run through the catalog text test). */
20
+ /** Run through the catalog text test. */
34
21
  export interface ViewMetaLabels {
35
22
  /** `count` decides the plural, `n` is the formatted number. */
36
23
  engines: (p: {
@@ -51,19 +38,9 @@ export interface ViewMetaLabels {
51
38
  lastMinute: string;
52
39
  }
53
40
  export declare const VIEW_META_LABELS: Readonly<Record<Locale, ViewMetaLabels>>;
54
- /**
55
- * A look-back period token as the frame of a view: "7d" → "Letzte 7 Tage" /
56
- * "Last 7 days". A single day or week reads as its length ("Letzte 24
57
- * Stunden", "Letzte 7 Tage"): "Letzter Tag" would read as yesterday. Anything
58
- * that is not such a token comes back unchanged; empty input renders "".
59
- */
41
+ /** A single day reads as its length ("Letzte 24 Stunden"): "Letzter Tag" would read as yesterday. */
60
42
  export declare function formatLookback(period: string | null | undefined): string;
61
- /** The meta line as text: the known parts joined with " · ", "" when none is known. */
62
43
  export declare function formatViewMeta(parts: ViewMetaParts, now?: Date): string;
63
- /**
64
- * The quiet meta line under a view title (`WidgetHeader`'s `sub`, or right
65
- * under a card heading). Renders nothing when no part is known.
66
- */
67
44
  export declare function ViewMeta({ className, ...parts }: ViewMetaParts & {
68
45
  className?: string;
69
46
  }): import("react").JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"file":"view-meta.d.ts","sourceRoot":"","sources":["../../src/ui/view-meta.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGrD;;;;;;;;;;;GAWG;AAEH,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,OAAO,EAAE,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACpD,MAAM,EAAE,CAAC,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACpC,IAAI,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACrC,4DAA4D;IAC5D,IAAI,EAAE,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAiBrE,CAAA;AAQD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAaxE;AASD,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAcnF;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sCAQvF"}
1
+ {"version":3,"file":"view-meta.d.ts","sourceRoot":"","sources":["../../src/ui/view-meta.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,OAAO,EAAE,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACpD,MAAM,EAAE,CAAC,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACpC,IAAI,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACrC,4DAA4D;IAC5D,IAAI,EAAE,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAiBrE,CAAA;AAQD,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAaxE;AASD,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAcnF;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sCAQvF"}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "@miragon/mcp-toolkit-ui";
3
- import { formatDate, formatNumber, formatPeriod, formatTime, getFormatLocale } from "./format.js";
2
+ import { cn, formatDate, formatNumber, formatPeriod, formatTime, getFormatLocale, } from "@miragon/pulse-ui";
4
3
  export const VIEW_META_LABELS = {
5
4
  en: {
6
5
  engines: ({ count, n }) => (count === 1 ? "1 engine" : `${n} engines`),
@@ -23,12 +22,7 @@ const SEPARATOR = " · ";
23
22
  function labels() {
24
23
  return VIEW_META_LABELS[getFormatLocale()?.language.toLowerCase().startsWith("de") ? "de" : "en"];
25
24
  }
26
- /**
27
- * A look-back period token as the frame of a view: "7d" → "Letzte 7 Tage" /
28
- * "Last 7 days". A single day or week reads as its length ("Letzte 24
29
- * Stunden", "Letzte 7 Tage"): "Letzter Tag" would read as yesterday. Anything
30
- * that is not such a token comes back unchanged; empty input renders "".
31
- */
25
+ /** A single day reads as its length ("Letzte 24 Stunden"): "Letzter Tag" would read as yesterday. */
32
26
  export function formatLookback(period) {
33
27
  if (!period)
34
28
  return "";
@@ -53,7 +47,6 @@ function asOfTime(iso, now) {
53
47
  const sameDay = formatDate(iso) === formatDate(now.toISOString());
54
48
  return sameDay ? time : `${formatDate(iso)}, ${time}`;
55
49
  }
56
- /** The meta line as text: the known parts joined with " · ", "" when none is known. */
57
50
  export function formatViewMeta(parts, now = new Date()) {
58
51
  const l = labels();
59
52
  const out = [];
@@ -71,10 +64,6 @@ export function formatViewMeta(parts, now = new Date()) {
71
64
  }
72
65
  return out.join(SEPARATOR);
73
66
  }
74
- /**
75
- * The quiet meta line under a view title (`WidgetHeader`'s `sub`, or right
76
- * under a card heading). Renders nothing when no part is known.
77
- */
78
67
  export function ViewMeta({ className, ...parts }) {
79
68
  const text = formatViewMeta(parts);
80
69
  if (!text)
@@ -1 +1 @@
1
- {"version":3,"file":"view-meta.js","sourceRoot":"","sources":["../../src/ui/view-meta.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-meta.js","sourceRoot":"","sources":["../../src/ui/view-meta.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +1,12 @@
1
- import type { ViewDataResult } from "@miragon/mcp-toolkit-ui/hooks";
2
- /** What a seeded view knows about re-reading the data it shows. */
1
+ import type { ViewDataResult } from "./tool-query.js";
3
2
  export interface ViewRefreshState {
4
3
  /**
5
- * A REFETCH of the data on screen failed: the view can no longer confirm it
6
- * is current (an instance that ended answers 404 now). Set from the
7
- * refetch's FIRST failed attempt — the toolkit's `failureReason`, while the
8
- * client still retries (TanStack's default: 3 retries, ~7 s) — not only
9
- * once `error` lands, so a view gating its writes on it never offers them
10
- * on an unconfirmed state for the length of the backoff. Null while the
11
- * data is the feed's latest answer, and null without data (that failure is
12
- * the load error).
4
+ * Set from the refetch's FIRST failed attempt, so a view gating writes on it
5
+ * never offers them on an unconfirmed state through the backoff.
13
6
  */
14
7
  refreshError: Error | null;
15
- /** A refetch of the data on screen is in flight. */
16
8
  refreshing: boolean;
17
9
  }
18
- /**
19
- * The refresh half of a view whose tool result SEEDS a live feed (the
20
- * toolkit's `useViewData(…, { initialDataMode: "seed" })`): the toolkit hands
21
- * out the raw query state (`error`, `failureReason`, `isFetching`), this is
22
- * the house rule over it — the one place that decides when shown data counts
23
- * as unconfirmed (`useDetailView`, the engine overview).
24
- */
10
+ /** The one place that decides when shown data counts as unconfirmed. */
25
11
  export declare function viewRefreshState(view: Pick<ViewDataResult<unknown>, "data" | "error" | "failureReason" | "isFetching">): ViewRefreshState;
26
12
  //# sourceMappingURL=view-refresh-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-refresh-state.d.ts","sourceRoot":"","sources":["../../src/ui/view-refresh-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;OASG;IACH,YAAY,EAAE,KAAK,GAAG,IAAI,CAAA;IAC1B,oDAAoD;IACpD,UAAU,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC,GACrF,gBAAgB,CAMlB"}
1
+ {"version":3,"file":"view-refresh-state.d.ts","sourceRoot":"","sources":["../../src/ui/view-refresh-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,YAAY,EAAE,KAAK,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC,GACrF,gBAAgB,CAMlB"}
@@ -1,10 +1,4 @@
1
- /**
2
- * The refresh half of a view whose tool result SEEDS a live feed (the
3
- * toolkit's `useViewData(…, { initialDataMode: "seed" })`): the toolkit hands
4
- * out the raw query state (`error`, `failureReason`, `isFetching`), this is
5
- * the house rule over it — the one place that decides when shown data counts
6
- * as unconfirmed (`useDetailView`, the engine overview).
7
- */
1
+ /** The one place that decides when shown data counts as unconfirmed. */
8
2
  export function viewRefreshState(view) {
9
3
  const shown = view.data !== null;
10
4
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"view-refresh-state.js","sourceRoot":"","sources":["../../src/ui/view-refresh-state.ts"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAsF;IAEtF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;IAChC,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/D,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU;KACrC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"view-refresh-state.js","sourceRoot":"","sources":["../../src/ui/view-refresh-state.ts"],"names":[],"mappings":"AAWA,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAC9B,IAAsF;IAEtF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;IAChC,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/D,UAAU,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU;KACrC,CAAA;AACH,CAAC"}