@miragon/pulse-widget-shell 0.0.0-stage → 0.22.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 (831) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -2
  3. package/dist/adapt-data-widget.d.ts +7 -0
  4. package/dist/adapt-data-widget.d.ts.map +1 -0
  5. package/dist/adapt-data-widget.js +7 -0
  6. package/dist/adapt-data-widget.js.map +1 -0
  7. package/dist/bpmn-names.d.ts +42 -0
  8. package/dist/bpmn-names.d.ts.map +1 -0
  9. package/dist/bpmn-names.js +151 -0
  10. package/dist/bpmn-names.js.map +1 -0
  11. package/dist/bpmn-names.test.d.ts +2 -0
  12. package/dist/bpmn-names.test.d.ts.map +1 -0
  13. package/dist/bpmn-names.test.js +143 -0
  14. package/dist/bpmn-names.test.js.map +1 -0
  15. package/dist/build-data-feed-result.test.d.ts +2 -0
  16. package/dist/build-data-feed-result.test.d.ts.map +1 -0
  17. package/dist/build-data-feed-result.test.js +28 -0
  18. package/dist/build-data-feed-result.test.js.map +1 -0
  19. package/dist/build-single-widget-view.test.d.ts +2 -0
  20. package/dist/build-single-widget-view.test.d.ts.map +1 -0
  21. package/dist/build-single-widget-view.test.js +136 -0
  22. package/dist/build-single-widget-view.test.js.map +1 -0
  23. package/dist/builder-texts.d.ts +27 -0
  24. package/dist/builder-texts.d.ts.map +1 -0
  25. package/dist/builder-texts.js +32 -0
  26. package/dist/builder-texts.js.map +1 -0
  27. package/dist/builder-texts.test.d.ts +2 -0
  28. package/dist/builder-texts.test.d.ts.map +1 -0
  29. package/dist/builder-texts.test.js +54 -0
  30. package/dist/builder-texts.test.js.map +1 -0
  31. package/dist/catalogue-sync.d.ts +18 -0
  32. package/dist/catalogue-sync.d.ts.map +1 -0
  33. package/dist/catalogue-sync.js +31 -0
  34. package/dist/catalogue-sync.js.map +1 -0
  35. package/dist/catalogue-sync.test.d.ts +2 -0
  36. package/dist/catalogue-sync.test.d.ts.map +1 -0
  37. package/dist/catalogue-sync.test.js +22 -0
  38. package/dist/catalogue-sync.test.js.map +1 -0
  39. package/dist/composed-server.d.ts +110 -0
  40. package/dist/composed-server.d.ts.map +1 -0
  41. package/dist/composed-server.edge.test.d.ts +2 -0
  42. package/dist/composed-server.edge.test.d.ts.map +1 -0
  43. package/dist/composed-server.edge.test.js +184 -0
  44. package/dist/composed-server.edge.test.js.map +1 -0
  45. package/dist/composed-server.fonts.test.d.ts +2 -0
  46. package/dist/composed-server.fonts.test.d.ts.map +1 -0
  47. package/dist/composed-server.fonts.test.js +186 -0
  48. package/dist/composed-server.fonts.test.js.map +1 -0
  49. package/dist/composed-server.js +260 -0
  50. package/dist/composed-server.js.map +1 -0
  51. package/dist/composed-server.test.d.ts +2 -0
  52. package/dist/composed-server.test.d.ts.map +1 -0
  53. package/dist/composed-server.test.js +332 -0
  54. package/dist/composed-server.test.js.map +1 -0
  55. package/dist/composition.d.ts +155 -0
  56. package/dist/composition.d.ts.map +1 -0
  57. package/dist/composition.js +163 -0
  58. package/dist/composition.js.map +1 -0
  59. package/dist/composition.test.d.ts +2 -0
  60. package/dist/composition.test.d.ts.map +1 -0
  61. package/dist/composition.test.js +275 -0
  62. package/dist/composition.test.js.map +1 -0
  63. package/dist/dashboard-store-postgres.d.ts +43 -0
  64. package/dist/dashboard-store-postgres.d.ts.map +1 -0
  65. package/dist/dashboard-store-postgres.js +225 -0
  66. package/dist/dashboard-store-postgres.js.map +1 -0
  67. package/dist/dashboard-store-postgres.test.d.ts +2 -0
  68. package/dist/dashboard-store-postgres.test.d.ts.map +1 -0
  69. package/dist/dashboard-store-postgres.test.js +272 -0
  70. package/dist/dashboard-store-postgres.test.js.map +1 -0
  71. package/dist/font-assets.d.ts +47 -0
  72. package/dist/font-assets.d.ts.map +1 -0
  73. package/dist/font-assets.js +93 -0
  74. package/dist/font-assets.js.map +1 -0
  75. package/dist/font-assets.test.d.ts +2 -0
  76. package/dist/font-assets.test.d.ts.map +1 -0
  77. package/dist/font-assets.test.js +123 -0
  78. package/dist/font-assets.test.js.map +1 -0
  79. package/dist/health.d.ts +59 -0
  80. package/dist/health.d.ts.map +1 -0
  81. package/dist/health.js +74 -0
  82. package/dist/health.js.map +1 -0
  83. package/dist/health.test.d.ts +2 -0
  84. package/dist/health.test.d.ts.map +1 -0
  85. package/dist/health.test.js +140 -0
  86. package/dist/health.test.js.map +1 -0
  87. package/dist/host-boot.d.ts +56 -0
  88. package/dist/host-boot.d.ts.map +1 -0
  89. package/dist/host-boot.js +64 -0
  90. package/dist/host-boot.js.map +1 -0
  91. package/dist/host-boot.test.d.ts +2 -0
  92. package/dist/host-boot.test.d.ts.map +1 -0
  93. package/dist/host-boot.test.js +59 -0
  94. package/dist/host-boot.test.js.map +1 -0
  95. package/dist/http-edge.d.ts +117 -0
  96. package/dist/http-edge.d.ts.map +1 -0
  97. package/dist/http-edge.js +219 -0
  98. package/dist/http-edge.js.map +1 -0
  99. package/dist/http-edge.test.d.ts +2 -0
  100. package/dist/http-edge.test.d.ts.map +1 -0
  101. package/dist/http-edge.test.js +255 -0
  102. package/dist/http-edge.test.js.map +1 -0
  103. package/dist/metrics.d.ts +48 -0
  104. package/dist/metrics.d.ts.map +1 -0
  105. package/dist/metrics.js +124 -0
  106. package/dist/metrics.js.map +1 -0
  107. package/dist/metrics.test.d.ts +2 -0
  108. package/dist/metrics.test.d.ts.map +1 -0
  109. package/dist/metrics.test.js +154 -0
  110. package/dist/metrics.test.js.map +1 -0
  111. package/dist/node-listener.d.ts +61 -0
  112. package/dist/node-listener.d.ts.map +1 -0
  113. package/dist/node-listener.js +165 -0
  114. package/dist/node-listener.js.map +1 -0
  115. package/dist/node-listener.test.d.ts +2 -0
  116. package/dist/node-listener.test.d.ts.map +1 -0
  117. package/dist/node-listener.test.js +331 -0
  118. package/dist/node-listener.test.js.map +1 -0
  119. package/dist/oauth-env.d.ts +42 -0
  120. package/dist/oauth-env.d.ts.map +1 -0
  121. package/dist/oauth-env.js +78 -0
  122. package/dist/oauth-env.js.map +1 -0
  123. package/dist/oauth-env.test.d.ts +2 -0
  124. package/dist/oauth-env.test.d.ts.map +1 -0
  125. package/dist/oauth-env.test.js +76 -0
  126. package/dist/oauth-env.test.js.map +1 -0
  127. package/dist/postgres.d.ts +59 -0
  128. package/dist/postgres.d.ts.map +1 -0
  129. package/dist/postgres.js +80 -0
  130. package/dist/postgres.js.map +1 -0
  131. package/dist/profile-advisory.d.ts +19 -0
  132. package/dist/profile-advisory.d.ts.map +1 -0
  133. package/dist/profile-advisory.js +48 -0
  134. package/dist/profile-advisory.js.map +1 -0
  135. package/dist/profile-advisory.test.d.ts +2 -0
  136. package/dist/profile-advisory.test.d.ts.map +1 -0
  137. package/dist/profile-advisory.test.js +53 -0
  138. package/dist/profile-advisory.test.js.map +1 -0
  139. package/dist/profile-constants.d.ts +37 -0
  140. package/dist/profile-constants.d.ts.map +1 -0
  141. package/dist/profile-constants.js +37 -0
  142. package/dist/profile-constants.js.map +1 -0
  143. package/dist/profile-migrations.d.ts +71 -0
  144. package/dist/profile-migrations.d.ts.map +1 -0
  145. package/dist/profile-migrations.js +88 -0
  146. package/dist/profile-migrations.js.map +1 -0
  147. package/dist/profile-migrations.test.d.ts +2 -0
  148. package/dist/profile-migrations.test.d.ts.map +1 -0
  149. package/dist/profile-migrations.test.js +200 -0
  150. package/dist/profile-migrations.test.js.map +1 -0
  151. package/dist/profile-record.d.ts +60 -0
  152. package/dist/profile-record.d.ts.map +1 -0
  153. package/dist/profile-record.js +78 -0
  154. package/dist/profile-record.js.map +1 -0
  155. package/dist/profile-slice.d.ts +53 -0
  156. package/dist/profile-slice.d.ts.map +1 -0
  157. package/dist/profile-slice.js +73 -0
  158. package/dist/profile-slice.js.map +1 -0
  159. package/dist/profile-slice.test.d.ts +2 -0
  160. package/dist/profile-slice.test.d.ts.map +1 -0
  161. package/dist/profile-slice.test.js +73 -0
  162. package/dist/profile-slice.test.js.map +1 -0
  163. package/dist/profile-store-env.d.ts +34 -0
  164. package/dist/profile-store-env.d.ts.map +1 -0
  165. package/dist/profile-store-env.js +44 -0
  166. package/dist/profile-store-env.js.map +1 -0
  167. package/dist/profile-store-env.test.d.ts +2 -0
  168. package/dist/profile-store-env.test.d.ts.map +1 -0
  169. package/dist/profile-store-env.test.js +69 -0
  170. package/dist/profile-store-env.test.js.map +1 -0
  171. package/dist/profile-store-postgres.d.ts +33 -0
  172. package/dist/profile-store-postgres.d.ts.map +1 -0
  173. package/dist/profile-store-postgres.js +87 -0
  174. package/dist/profile-store-postgres.js.map +1 -0
  175. package/dist/profile-store-raw.test.d.ts +2 -0
  176. package/dist/profile-store-raw.test.d.ts.map +1 -0
  177. package/dist/profile-store-raw.test.js +185 -0
  178. package/dist/profile-store-raw.test.js.map +1 -0
  179. package/dist/profile-store.d.ts +85 -0
  180. package/dist/profile-store.d.ts.map +1 -0
  181. package/dist/profile-store.js +182 -0
  182. package/dist/profile-store.js.map +1 -0
  183. package/dist/profile-store.test.d.ts +2 -0
  184. package/dist/profile-store.test.d.ts.map +1 -0
  185. package/dist/profile-store.test.js +353 -0
  186. package/dist/profile-store.test.js.map +1 -0
  187. package/dist/profile.d.ts +75 -0
  188. package/dist/profile.d.ts.map +1 -0
  189. package/dist/profile.js +85 -0
  190. package/dist/profile.js.map +1 -0
  191. package/dist/profile.test.d.ts +2 -0
  192. package/dist/profile.test.d.ts.map +1 -0
  193. package/dist/profile.test.js +71 -0
  194. package/dist/profile.test.js.map +1 -0
  195. package/dist/request-context.d.ts +47 -0
  196. package/dist/request-context.d.ts.map +1 -0
  197. package/dist/request-context.js +85 -0
  198. package/dist/request-context.js.map +1 -0
  199. package/dist/request-context.test.d.ts +2 -0
  200. package/dist/request-context.test.d.ts.map +1 -0
  201. package/dist/request-context.test.js +107 -0
  202. package/dist/request-context.test.js.map +1 -0
  203. package/dist/served-fonts.d.ts +38 -0
  204. package/dist/served-fonts.d.ts.map +1 -0
  205. package/dist/served-fonts.js +51 -0
  206. package/dist/served-fonts.js.map +1 -0
  207. package/dist/served-fonts.test.d.ts +2 -0
  208. package/dist/served-fonts.test.d.ts.map +1 -0
  209. package/dist/served-fonts.test.js +30 -0
  210. package/dist/served-fonts.test.js.map +1 -0
  211. package/dist/server-locale.d.ts +58 -0
  212. package/dist/server-locale.d.ts.map +1 -0
  213. package/dist/server-locale.js +64 -0
  214. package/dist/server-locale.js.map +1 -0
  215. package/dist/server-locale.test.d.ts +2 -0
  216. package/dist/server-locale.test.d.ts.map +1 -0
  217. package/dist/server-locale.test.js +90 -0
  218. package/dist/server-locale.test.js.map +1 -0
  219. package/dist/server.d.ts +43 -0
  220. package/dist/server.d.ts.map +1 -0
  221. package/dist/server.js +34 -0
  222. package/dist/server.js.map +1 -0
  223. package/dist/shell-catalogue.d.ts +12 -0
  224. package/dist/shell-catalogue.d.ts.map +1 -0
  225. package/dist/shell-catalogue.js +142 -0
  226. package/dist/shell-catalogue.js.map +1 -0
  227. package/dist/shell-settings-contract.d.ts +34 -0
  228. package/dist/shell-settings-contract.d.ts.map +1 -0
  229. package/dist/shell-settings-contract.js +21 -0
  230. package/dist/shell-settings-contract.js.map +1 -0
  231. package/dist/shell-settings.d.ts +24 -0
  232. package/dist/shell-settings.d.ts.map +1 -0
  233. package/dist/shell-settings.js +148 -0
  234. package/dist/shell-settings.js.map +1 -0
  235. package/dist/shell-settings.test.d.ts +2 -0
  236. package/dist/shell-settings.test.d.ts.map +1 -0
  237. package/dist/shell-settings.test.js +115 -0
  238. package/dist/shell-settings.test.js.map +1 -0
  239. package/dist/testing/catalog-text.d.ts +53 -0
  240. package/dist/testing/catalog-text.d.ts.map +1 -0
  241. package/dist/testing/catalog-text.js +146 -0
  242. package/dist/testing/catalog-text.js.map +1 -0
  243. package/dist/testing/catalog-text.test.d.ts +2 -0
  244. package/dist/testing/catalog-text.test.d.ts.map +1 -0
  245. package/dist/testing/catalog-text.test.js +137 -0
  246. package/dist/testing/catalog-text.test.js.map +1 -0
  247. package/dist/testing/colors.d.ts +34 -0
  248. package/dist/testing/colors.d.ts.map +1 -0
  249. package/dist/testing/colors.js +124 -0
  250. package/dist/testing/colors.js.map +1 -0
  251. package/dist/testing/colors.test.d.ts +2 -0
  252. package/dist/testing/colors.test.d.ts.map +1 -0
  253. package/dist/testing/colors.test.js +166 -0
  254. package/dist/testing/colors.test.js.map +1 -0
  255. package/dist/testing/contrast.d.ts +77 -0
  256. package/dist/testing/contrast.d.ts.map +1 -0
  257. package/dist/testing/contrast.js +382 -0
  258. package/dist/testing/contrast.js.map +1 -0
  259. package/dist/testing/contrast.test.d.ts +2 -0
  260. package/dist/testing/contrast.test.d.ts.map +1 -0
  261. package/dist/testing/contrast.test.js +230 -0
  262. package/dist/testing/contrast.test.js.map +1 -0
  263. package/dist/testing/display-texts.d.ts +23 -0
  264. package/dist/testing/display-texts.d.ts.map +1 -0
  265. package/dist/testing/display-texts.js +88 -0
  266. package/dist/testing/display-texts.js.map +1 -0
  267. package/dist/testing/display-texts.test.d.ts +2 -0
  268. package/dist/testing/display-texts.test.d.ts.map +1 -0
  269. package/dist/testing/display-texts.test.js +169 -0
  270. package/dist/testing/display-texts.test.js.map +1 -0
  271. package/dist/testing/glossary.d.ts +52 -0
  272. package/dist/testing/glossary.d.ts.map +1 -0
  273. package/dist/testing/glossary.js +135 -0
  274. package/dist/testing/glossary.js.map +1 -0
  275. package/dist/testing/glossary.test.d.ts +2 -0
  276. package/dist/testing/glossary.test.d.ts.map +1 -0
  277. package/dist/testing/glossary.test.js +78 -0
  278. package/dist/testing/glossary.test.js.map +1 -0
  279. package/dist/testing/glyphs.d.ts +27 -0
  280. package/dist/testing/glyphs.d.ts.map +1 -0
  281. package/dist/testing/glyphs.js +130 -0
  282. package/dist/testing/glyphs.js.map +1 -0
  283. package/dist/testing/glyphs.test.d.ts +2 -0
  284. package/dist/testing/glyphs.test.d.ts.map +1 -0
  285. package/dist/testing/glyphs.test.js +146 -0
  286. package/dist/testing/glyphs.test.js.map +1 -0
  287. package/dist/testing/icon-sizes.d.ts +22 -0
  288. package/dist/testing/icon-sizes.d.ts.map +1 -0
  289. package/dist/testing/icon-sizes.js +39 -0
  290. package/dist/testing/icon-sizes.js.map +1 -0
  291. package/dist/testing/icon-sizes.test.d.ts +2 -0
  292. package/dist/testing/icon-sizes.test.d.ts.map +1 -0
  293. package/dist/testing/icon-sizes.test.js +36 -0
  294. package/dist/testing/icon-sizes.test.js.map +1 -0
  295. package/dist/testing/index.d.ts +40 -0
  296. package/dist/testing/index.d.ts.map +1 -0
  297. package/dist/testing/index.js +40 -0
  298. package/dist/testing/index.js.map +1 -0
  299. package/dist/testing/source-scan.d.ts +16 -0
  300. package/dist/testing/source-scan.d.ts.map +1 -0
  301. package/dist/testing/source-scan.js +57 -0
  302. package/dist/testing/source-scan.js.map +1 -0
  303. package/dist/testing/tone-pairs.d.ts +20 -0
  304. package/dist/testing/tone-pairs.d.ts.map +1 -0
  305. package/dist/testing/tone-pairs.js +154 -0
  306. package/dist/testing/tone-pairs.js.map +1 -0
  307. package/dist/testing/type-scale.d.ts +40 -0
  308. package/dist/testing/type-scale.d.ts.map +1 -0
  309. package/dist/testing/type-scale.js +55 -0
  310. package/dist/testing/type-scale.js.map +1 -0
  311. package/dist/testing/type-scale.test.d.ts +2 -0
  312. package/dist/testing/type-scale.test.d.ts.map +1 -0
  313. package/dist/testing/type-scale.test.js +61 -0
  314. package/dist/testing/type-scale.test.js.map +1 -0
  315. package/dist/tool-schema-trim.d.ts +24 -0
  316. package/dist/tool-schema-trim.d.ts.map +1 -0
  317. package/dist/tool-schema-trim.js +49 -0
  318. package/dist/tool-schema-trim.js.map +1 -0
  319. package/dist/tool-schema-trim.test.d.ts +2 -0
  320. package/dist/tool-schema-trim.test.d.ts.map +1 -0
  321. package/dist/tool-schema-trim.test.js +53 -0
  322. package/dist/tool-schema-trim.test.js.map +1 -0
  323. package/dist/toolsets.d.ts +76 -0
  324. package/dist/toolsets.d.ts.map +1 -0
  325. package/dist/toolsets.js +41 -0
  326. package/dist/toolsets.js.map +1 -0
  327. package/dist/toolsets.test.d.ts +2 -0
  328. package/dist/toolsets.test.d.ts.map +1 -0
  329. package/dist/toolsets.test.js +86 -0
  330. package/dist/toolsets.test.js.map +1 -0
  331. package/dist/ui/action-feedback.d.ts +33 -0
  332. package/dist/ui/action-feedback.d.ts.map +1 -0
  333. package/dist/ui/action-feedback.js +51 -0
  334. package/dist/ui/action-feedback.js.map +1 -0
  335. package/dist/ui/action-feedback.test.d.ts +2 -0
  336. package/dist/ui/action-feedback.test.d.ts.map +1 -0
  337. package/dist/ui/action-feedback.test.js +77 -0
  338. package/dist/ui/action-feedback.test.js.map +1 -0
  339. package/dist/ui/app-shell-providers.d.ts +18 -0
  340. package/dist/ui/app-shell-providers.d.ts.map +1 -0
  341. package/dist/ui/app-shell-providers.js +19 -0
  342. package/dist/ui/app-shell-providers.js.map +1 -0
  343. package/dist/ui/app-shell-providers.test.d.ts +2 -0
  344. package/dist/ui/app-shell-providers.test.d.ts.map +1 -0
  345. package/dist/ui/app-shell-providers.test.js +249 -0
  346. package/dist/ui/app-shell-providers.test.js.map +1 -0
  347. package/dist/ui/ask-ai-button.d.ts +56 -0
  348. package/dist/ui/ask-ai-button.d.ts.map +1 -0
  349. package/dist/ui/ask-ai-button.js +36 -0
  350. package/dist/ui/ask-ai-button.js.map +1 -0
  351. package/dist/ui/ask-ai-button.test.d.ts +2 -0
  352. package/dist/ui/ask-ai-button.test.d.ts.map +1 -0
  353. package/dist/ui/ask-ai-button.test.js +103 -0
  354. package/dist/ui/ask-ai-button.test.js.map +1 -0
  355. package/dist/ui/ask-ai-prompt.d.ts +115 -0
  356. package/dist/ui/ask-ai-prompt.d.ts.map +1 -0
  357. package/dist/ui/ask-ai-prompt.js +174 -0
  358. package/dist/ui/ask-ai-prompt.js.map +1 -0
  359. package/dist/ui/ask-ai-prompt.test.d.ts +2 -0
  360. package/dist/ui/ask-ai-prompt.test.d.ts.map +1 -0
  361. package/dist/ui/ask-ai-prompt.test.js +240 -0
  362. package/dist/ui/ask-ai-prompt.test.js.map +1 -0
  363. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +2 -0
  364. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +1 -0
  365. package/dist/ui/bpmn-heatmap/heat-ramp.test.js +174 -0
  366. package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +1 -0
  367. package/dist/ui/bpmn-heatmap/heat-utils.d.ts +119 -0
  368. package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +1 -0
  369. package/dist/ui/bpmn-heatmap/heat-utils.js +231 -0
  370. package/dist/ui/bpmn-heatmap/heat-utils.js.map +1 -0
  371. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +2 -0
  372. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +1 -0
  373. package/dist/ui/bpmn-heatmap/heat-utils.test.js +59 -0
  374. package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +1 -0
  375. package/dist/ui/bpmn-heatmap-labels.d.ts +46 -0
  376. package/dist/ui/bpmn-heatmap-labels.d.ts.map +1 -0
  377. package/dist/ui/bpmn-heatmap-labels.js +16 -0
  378. package/dist/ui/bpmn-heatmap-labels.js.map +1 -0
  379. package/dist/ui/bpmn-heatmap-widget.d.ts +38 -0
  380. package/dist/ui/bpmn-heatmap-widget.d.ts.map +1 -0
  381. package/dist/ui/bpmn-heatmap-widget.js +65 -0
  382. package/dist/ui/bpmn-heatmap-widget.js.map +1 -0
  383. package/dist/ui/bpmn-heatmap-widget.test.d.ts +2 -0
  384. package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +1 -0
  385. package/dist/ui/bpmn-heatmap-widget.test.js +173 -0
  386. package/dist/ui/bpmn-heatmap-widget.test.js.map +1 -0
  387. package/dist/ui/bpmn-heatmap.d.ts +61 -0
  388. package/dist/ui/bpmn-heatmap.d.ts.map +1 -0
  389. package/dist/ui/bpmn-heatmap.js +119 -0
  390. package/dist/ui/bpmn-heatmap.js.map +1 -0
  391. package/dist/ui/bpmn-tokens.d.ts +81 -0
  392. package/dist/ui/bpmn-tokens.d.ts.map +1 -0
  393. package/dist/ui/bpmn-tokens.js +114 -0
  394. package/dist/ui/bpmn-tokens.js.map +1 -0
  395. package/dist/ui/bpmn-tokens.test.d.ts +2 -0
  396. package/dist/ui/bpmn-tokens.test.d.ts.map +1 -0
  397. package/dist/ui/bpmn-tokens.test.js +98 -0
  398. package/dist/ui/bpmn-tokens.test.js.map +1 -0
  399. package/dist/ui/bpmn-zoom-controls.d.ts +30 -0
  400. package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -0
  401. package/dist/ui/bpmn-zoom-controls.js +29 -0
  402. package/dist/ui/bpmn-zoom-controls.js.map +1 -0
  403. package/dist/ui/brand-gates.test.d.ts +2 -0
  404. package/dist/ui/brand-gates.test.d.ts.map +1 -0
  405. package/dist/ui/brand-gates.test.js +131 -0
  406. package/dist/ui/brand-gates.test.js.map +1 -0
  407. package/dist/ui/brand-mark.d.ts +37 -0
  408. package/dist/ui/brand-mark.d.ts.map +1 -0
  409. package/dist/ui/brand-mark.js +33 -0
  410. package/dist/ui/brand-mark.js.map +1 -0
  411. package/dist/ui/brand-mark.test.d.ts +2 -0
  412. package/dist/ui/brand-mark.test.d.ts.map +1 -0
  413. package/dist/ui/brand-mark.test.js +111 -0
  414. package/dist/ui/brand-mark.test.js.map +1 -0
  415. package/dist/ui/confirm-dialog.d.ts +55 -0
  416. package/dist/ui/confirm-dialog.d.ts.map +1 -0
  417. package/dist/ui/confirm-dialog.js +59 -0
  418. package/dist/ui/confirm-dialog.js.map +1 -0
  419. package/dist/ui/confirm-dialog.test.d.ts +2 -0
  420. package/dist/ui/confirm-dialog.test.d.ts.map +1 -0
  421. package/dist/ui/confirm-dialog.test.js +115 -0
  422. package/dist/ui/confirm-dialog.test.js.map +1 -0
  423. package/dist/ui/count-tone.d.ts +20 -0
  424. package/dist/ui/count-tone.d.ts.map +1 -0
  425. package/dist/ui/count-tone.js +27 -0
  426. package/dist/ui/count-tone.js.map +1 -0
  427. package/dist/ui/count-tone.test.d.ts +2 -0
  428. package/dist/ui/count-tone.test.d.ts.map +1 -0
  429. package/dist/ui/count-tone.test.js +27 -0
  430. package/dist/ui/count-tone.test.js.map +1 -0
  431. package/dist/ui/create-use-t.d.ts +15 -0
  432. package/dist/ui/create-use-t.d.ts.map +1 -0
  433. package/dist/ui/create-use-t.js +17 -0
  434. package/dist/ui/create-use-t.js.map +1 -0
  435. package/dist/ui/declare-served-fonts.d.ts +14 -0
  436. package/dist/ui/declare-served-fonts.d.ts.map +1 -0
  437. package/dist/ui/declare-served-fonts.js +38 -0
  438. package/dist/ui/declare-served-fonts.js.map +1 -0
  439. package/dist/ui/declare-served-fonts.test.d.ts +2 -0
  440. package/dist/ui/declare-served-fonts.test.d.ts.map +1 -0
  441. package/dist/ui/declare-served-fonts.test.js +44 -0
  442. package/dist/ui/declare-served-fonts.test.js.map +1 -0
  443. package/dist/ui/describe-error.d.ts +71 -0
  444. package/dist/ui/describe-error.d.ts.map +1 -0
  445. package/dist/ui/describe-error.js +175 -0
  446. package/dist/ui/describe-error.js.map +1 -0
  447. package/dist/ui/describe-error.test.d.ts +2 -0
  448. package/dist/ui/describe-error.test.d.ts.map +1 -0
  449. package/dist/ui/describe-error.test.js +274 -0
  450. package/dist/ui/describe-error.test.js.map +1 -0
  451. package/dist/ui/display-mode-toggle.d.ts +32 -0
  452. package/dist/ui/display-mode-toggle.d.ts.map +1 -0
  453. package/dist/ui/display-mode-toggle.js +39 -0
  454. package/dist/ui/display-mode-toggle.js.map +1 -0
  455. package/dist/ui/error-labels.d.ts +65 -0
  456. package/dist/ui/error-labels.d.ts.map +1 -0
  457. package/dist/ui/error-labels.js +111 -0
  458. package/dist/ui/error-labels.js.map +1 -0
  459. package/dist/ui/format.d.ts +81 -0
  460. package/dist/ui/format.d.ts.map +1 -0
  461. package/dist/ui/format.js +189 -0
  462. package/dist/ui/format.js.map +1 -0
  463. package/dist/ui/format.test.d.ts +2 -0
  464. package/dist/ui/format.test.d.ts.map +1 -0
  465. package/dist/ui/format.test.js +181 -0
  466. package/dist/ui/format.test.js.map +1 -0
  467. package/dist/ui/generic-widgets.d.ts +15 -0
  468. package/dist/ui/generic-widgets.d.ts.map +1 -0
  469. package/dist/ui/generic-widgets.js +122 -0
  470. package/dist/ui/generic-widgets.js.map +1 -0
  471. package/dist/ui/generic-widgets.test.d.ts +2 -0
  472. package/dist/ui/generic-widgets.test.d.ts.map +1 -0
  473. package/dist/ui/generic-widgets.test.js +139 -0
  474. package/dist/ui/generic-widgets.test.js.map +1 -0
  475. package/dist/ui/hand-off-button.d.ts +45 -0
  476. package/dist/ui/hand-off-button.d.ts.map +1 -0
  477. package/dist/ui/hand-off-button.js +44 -0
  478. package/dist/ui/hand-off-button.js.map +1 -0
  479. package/dist/ui/hand-off-button.test.d.ts +2 -0
  480. package/dist/ui/hand-off-button.test.d.ts.map +1 -0
  481. package/dist/ui/hand-off-button.test.js +78 -0
  482. package/dist/ui/hand-off-button.test.js.map +1 -0
  483. package/dist/ui/host-context.d.ts +66 -0
  484. package/dist/ui/host-context.d.ts.map +1 -0
  485. package/dist/ui/host-context.js +122 -0
  486. package/dist/ui/host-context.js.map +1 -0
  487. package/dist/ui/host-context.test.d.ts +2 -0
  488. package/dist/ui/host-context.test.d.ts.map +1 -0
  489. package/dist/ui/host-context.test.js +160 -0
  490. package/dist/ui/host-context.test.js.map +1 -0
  491. package/dist/ui/host-document.d.ts +25 -0
  492. package/dist/ui/host-document.d.ts.map +1 -0
  493. package/dist/ui/host-document.js +93 -0
  494. package/dist/ui/host-document.js.map +1 -0
  495. package/dist/ui/host-document.test.d.ts +2 -0
  496. package/dist/ui/host-document.test.d.ts.map +1 -0
  497. package/dist/ui/host-document.test.js +112 -0
  498. package/dist/ui/host-document.test.js.map +1 -0
  499. package/dist/ui/host-widgets.d.ts +8 -0
  500. package/dist/ui/host-widgets.d.ts.map +1 -0
  501. package/dist/ui/host-widgets.js +18 -0
  502. package/dist/ui/host-widgets.js.map +1 -0
  503. package/dist/ui/humanize-key.d.ts +11 -0
  504. package/dist/ui/humanize-key.d.ts.map +1 -0
  505. package/dist/ui/humanize-key.js +26 -0
  506. package/dist/ui/humanize-key.js.map +1 -0
  507. package/dist/ui/humanize-key.test.d.ts +2 -0
  508. package/dist/ui/humanize-key.test.d.ts.map +1 -0
  509. package/dist/ui/humanize-key.test.js +42 -0
  510. package/dist/ui/humanize-key.test.js.map +1 -0
  511. package/dist/ui/icon.d.ts +37 -0
  512. package/dist/ui/icon.d.ts.map +1 -0
  513. package/dist/ui/icon.js +32 -0
  514. package/dist/ui/icon.js.map +1 -0
  515. package/dist/ui/id-breaks.d.ts +17 -0
  516. package/dist/ui/id-breaks.d.ts.map +1 -0
  517. package/dist/ui/id-breaks.js +36 -0
  518. package/dist/ui/id-breaks.js.map +1 -0
  519. package/dist/ui/id-breaks.test.d.ts +2 -0
  520. package/dist/ui/id-breaks.test.d.ts.map +1 -0
  521. package/dist/ui/id-breaks.test.js +37 -0
  522. package/dist/ui/id-breaks.test.js.map +1 -0
  523. package/dist/ui/id-text.d.ts +29 -0
  524. package/dist/ui/id-text.d.ts.map +1 -0
  525. package/dist/ui/id-text.js +103 -0
  526. package/dist/ui/id-text.js.map +1 -0
  527. package/dist/ui/id-text.test.d.ts +2 -0
  528. package/dist/ui/id-text.test.d.ts.map +1 -0
  529. package/dist/ui/id-text.test.js +122 -0
  530. package/dist/ui/id-text.test.js.map +1 -0
  531. package/dist/ui/index.d.ts +57 -0
  532. package/dist/ui/index.d.ts.map +1 -0
  533. package/dist/ui/index.js +65 -0
  534. package/dist/ui/index.js.map +1 -0
  535. package/dist/ui/index.test.d.ts +2 -0
  536. package/dist/ui/index.test.d.ts.map +1 -0
  537. package/dist/ui/index.test.js +34 -0
  538. package/dist/ui/index.test.js.map +1 -0
  539. package/dist/ui/inline-budget.d.ts +35 -0
  540. package/dist/ui/inline-budget.d.ts.map +1 -0
  541. package/dist/ui/inline-budget.js +27 -0
  542. package/dist/ui/inline-budget.js.map +1 -0
  543. package/dist/ui/inline-fit-registry.d.ts +56 -0
  544. package/dist/ui/inline-fit-registry.d.ts.map +1 -0
  545. package/dist/ui/inline-fit-registry.js +114 -0
  546. package/dist/ui/inline-fit-registry.js.map +1 -0
  547. package/dist/ui/inline-fit-solve.d.ts +50 -0
  548. package/dist/ui/inline-fit-solve.d.ts.map +1 -0
  549. package/dist/ui/inline-fit-solve.js +83 -0
  550. package/dist/ui/inline-fit-solve.js.map +1 -0
  551. package/dist/ui/inline-fit-solve.test.d.ts +2 -0
  552. package/dist/ui/inline-fit-solve.test.d.ts.map +1 -0
  553. package/dist/ui/inline-fit-solve.test.js +108 -0
  554. package/dist/ui/inline-fit-solve.test.js.map +1 -0
  555. package/dist/ui/inline-fit-time.test.d.ts +2 -0
  556. package/dist/ui/inline-fit-time.test.d.ts.map +1 -0
  557. package/dist/ui/inline-fit-time.test.js +110 -0
  558. package/dist/ui/inline-fit-time.test.js.map +1 -0
  559. package/dist/ui/inline-fit.d.ts +77 -0
  560. package/dist/ui/inline-fit.d.ts.map +1 -0
  561. package/dist/ui/inline-fit.js +242 -0
  562. package/dist/ui/inline-fit.js.map +1 -0
  563. package/dist/ui/inline-fit.test-support.d.ts +26 -0
  564. package/dist/ui/inline-fit.test-support.d.ts.map +1 -0
  565. package/dist/ui/inline-fit.test-support.js +34 -0
  566. package/dist/ui/inline-fit.test-support.js.map +1 -0
  567. package/dist/ui/inline-fit.test.d.ts +2 -0
  568. package/dist/ui/inline-fit.test.d.ts.map +1 -0
  569. package/dist/ui/inline-fit.test.js +159 -0
  570. package/dist/ui/inline-fit.test.js.map +1 -0
  571. package/dist/ui/kit-labels.d.ts +80 -0
  572. package/dist/ui/kit-labels.d.ts.map +1 -0
  573. package/dist/ui/kit-labels.js +110 -0
  574. package/dist/ui/kit-labels.js.map +1 -0
  575. package/dist/ui/kit-labels.test.d.ts +2 -0
  576. package/dist/ui/kit-labels.test.d.ts.map +1 -0
  577. package/dist/ui/kit-labels.test.js +98 -0
  578. package/dist/ui/kit-labels.test.js.map +1 -0
  579. package/dist/ui/kit-type-roles.test.d.ts +2 -0
  580. package/dist/ui/kit-type-roles.test.d.ts.map +1 -0
  581. package/dist/ui/kit-type-roles.test.js +122 -0
  582. package/dist/ui/kit-type-roles.test.js.map +1 -0
  583. package/dist/ui/komet-svg.d.ts +15 -0
  584. package/dist/ui/komet-svg.d.ts.map +1 -0
  585. package/dist/ui/komet-svg.js +21 -0
  586. package/dist/ui/komet-svg.js.map +1 -0
  587. package/dist/ui/list-table.d.ts +108 -0
  588. package/dist/ui/list-table.d.ts.map +1 -0
  589. package/dist/ui/list-table.js +161 -0
  590. package/dist/ui/list-table.js.map +1 -0
  591. package/dist/ui/list-table.test.d.ts +2 -0
  592. package/dist/ui/list-table.test.d.ts.map +1 -0
  593. package/dist/ui/list-table.test.js +169 -0
  594. package/dist/ui/list-table.test.js.map +1 -0
  595. package/dist/ui/localized-app-view.d.ts +40 -0
  596. package/dist/ui/localized-app-view.d.ts.map +1 -0
  597. package/dist/ui/localized-app-view.js +71 -0
  598. package/dist/ui/localized-app-view.js.map +1 -0
  599. package/dist/ui/log-text.d.ts +24 -0
  600. package/dist/ui/log-text.d.ts.map +1 -0
  601. package/dist/ui/log-text.js +31 -0
  602. package/dist/ui/log-text.js.map +1 -0
  603. package/dist/ui/menu-item.d.ts +12 -0
  604. package/dist/ui/menu-item.d.ts.map +1 -0
  605. package/dist/ui/menu-item.js +13 -0
  606. package/dist/ui/menu-item.js.map +1 -0
  607. package/dist/ui/named-id.d.ts +23 -0
  608. package/dist/ui/named-id.d.ts.map +1 -0
  609. package/dist/ui/named-id.js +21 -0
  610. package/dist/ui/named-id.js.map +1 -0
  611. package/dist/ui/named-id.test.d.ts +2 -0
  612. package/dist/ui/named-id.test.d.ts.map +1 -0
  613. package/dist/ui/named-id.test.js +57 -0
  614. package/dist/ui/named-id.test.js.map +1 -0
  615. package/dist/ui/native-select.d.ts +17 -0
  616. package/dist/ui/native-select.d.ts.map +1 -0
  617. package/dist/ui/native-select.js +20 -0
  618. package/dist/ui/native-select.js.map +1 -0
  619. package/dist/ui/navigation-focus.d.ts +20 -0
  620. package/dist/ui/navigation-focus.d.ts.map +1 -0
  621. package/dist/ui/navigation-focus.js +25 -0
  622. package/dist/ui/navigation-focus.js.map +1 -0
  623. package/dist/ui/navigation-focus.test.d.ts +2 -0
  624. package/dist/ui/navigation-focus.test.d.ts.map +1 -0
  625. package/dist/ui/navigation-focus.test.js +28 -0
  626. package/dist/ui/navigation-focus.test.js.map +1 -0
  627. package/dist/ui/open-in-cockpit-link.d.ts +28 -0
  628. package/dist/ui/open-in-cockpit-link.d.ts.map +1 -0
  629. package/dist/ui/open-in-cockpit-link.js +41 -0
  630. package/dist/ui/open-in-cockpit-link.js.map +1 -0
  631. package/dist/ui/paged-list-footer.test.d.ts +2 -0
  632. package/dist/ui/paged-list-footer.test.d.ts.map +1 -0
  633. package/dist/ui/paged-list-footer.test.js +128 -0
  634. package/dist/ui/paged-list-footer.test.js.map +1 -0
  635. package/dist/ui/paged-rows.d.ts +24 -0
  636. package/dist/ui/paged-rows.d.ts.map +1 -0
  637. package/dist/ui/paged-rows.js +25 -0
  638. package/dist/ui/paged-rows.js.map +1 -0
  639. package/dist/ui/parse-tool-result.test.d.ts +2 -0
  640. package/dist/ui/parse-tool-result.test.d.ts.map +1 -0
  641. package/dist/ui/parse-tool-result.test.js +88 -0
  642. package/dist/ui/parse-tool-result.test.js.map +1 -0
  643. package/dist/ui/profile-gate.d.ts +37 -0
  644. package/dist/ui/profile-gate.d.ts.map +1 -0
  645. package/dist/ui/profile-gate.js +126 -0
  646. package/dist/ui/profile-gate.js.map +1 -0
  647. package/dist/ui/profile-gate.test.d.ts +2 -0
  648. package/dist/ui/profile-gate.test.d.ts.map +1 -0
  649. package/dist/ui/profile-gate.test.js +246 -0
  650. package/dist/ui/profile-gate.test.js.map +1 -0
  651. package/dist/ui/query-fallback.d.ts +27 -0
  652. package/dist/ui/query-fallback.d.ts.map +1 -0
  653. package/dist/ui/query-fallback.js +30 -0
  654. package/dist/ui/query-fallback.js.map +1 -0
  655. package/dist/ui/query-fallback.test.d.ts +2 -0
  656. package/dist/ui/query-fallback.test.d.ts.map +1 -0
  657. package/dist/ui/query-fallback.test.js +49 -0
  658. package/dist/ui/query-fallback.test.js.map +1 -0
  659. package/dist/ui/row-card.d.ts +13 -0
  660. package/dist/ui/row-card.d.ts.map +1 -0
  661. package/dist/ui/row-card.js +11 -0
  662. package/dist/ui/row-card.js.map +1 -0
  663. package/dist/ui/section.d.ts +18 -0
  664. package/dist/ui/section.d.ts.map +1 -0
  665. package/dist/ui/section.js +14 -0
  666. package/dist/ui/section.js.map +1 -0
  667. package/dist/ui/segmented-control.d.ts +25 -0
  668. package/dist/ui/segmented-control.d.ts.map +1 -0
  669. package/dist/ui/segmented-control.js +22 -0
  670. package/dist/ui/segmented-control.js.map +1 -0
  671. package/dist/ui/settings-labels.d.ts +33 -0
  672. package/dist/ui/settings-labels.d.ts.map +1 -0
  673. package/dist/ui/settings-labels.js +50 -0
  674. package/dist/ui/settings-labels.js.map +1 -0
  675. package/dist/ui/settings-layout.d.ts +29 -0
  676. package/dist/ui/settings-layout.d.ts.map +1 -0
  677. package/dist/ui/settings-layout.js +49 -0
  678. package/dist/ui/settings-layout.js.map +1 -0
  679. package/dist/ui/settings-layout.test.d.ts +2 -0
  680. package/dist/ui/settings-layout.test.d.ts.map +1 -0
  681. package/dist/ui/settings-layout.test.js +73 -0
  682. package/dist/ui/settings-layout.test.js.map +1 -0
  683. package/dist/ui/settings.d.ts +47 -0
  684. package/dist/ui/settings.d.ts.map +1 -0
  685. package/dist/ui/settings.js +48 -0
  686. package/dist/ui/settings.js.map +1 -0
  687. package/dist/ui/settings.test.d.ts +2 -0
  688. package/dist/ui/settings.test.d.ts.map +1 -0
  689. package/dist/ui/settings.test.js +38 -0
  690. package/dist/ui/settings.test.js.map +1 -0
  691. package/dist/ui/shell-host.d.ts +46 -0
  692. package/dist/ui/shell-host.d.ts.map +1 -0
  693. package/dist/ui/shell-host.js +56 -0
  694. package/dist/ui/shell-host.js.map +1 -0
  695. package/dist/ui/shell-settings.d.ts +31 -0
  696. package/dist/ui/shell-settings.d.ts.map +1 -0
  697. package/dist/ui/shell-settings.js +97 -0
  698. package/dist/ui/shell-settings.js.map +1 -0
  699. package/dist/ui/shell-settings.test.d.ts +2 -0
  700. package/dist/ui/shell-settings.test.d.ts.map +1 -0
  701. package/dist/ui/shell-settings.test.js +108 -0
  702. package/dist/ui/shell-settings.test.js.map +1 -0
  703. package/dist/ui/shell-widgets.d.ts +14 -0
  704. package/dist/ui/shell-widgets.d.ts.map +1 -0
  705. package/dist/ui/shell-widgets.js +18 -0
  706. package/dist/ui/shell-widgets.js.map +1 -0
  707. package/dist/ui/table.d.ts +61 -0
  708. package/dist/ui/table.d.ts.map +1 -0
  709. package/dist/ui/table.js +43 -0
  710. package/dist/ui/table.js.map +1 -0
  711. package/dist/ui/tone-components.test.d.ts +2 -0
  712. package/dist/ui/tone-components.test.d.ts.map +1 -0
  713. package/dist/ui/tone-components.test.js +145 -0
  714. package/dist/ui/tone-components.test.js.map +1 -0
  715. package/dist/ui/tone-contrast.test.d.ts +2 -0
  716. package/dist/ui/tone-contrast.test.d.ts.map +1 -0
  717. package/dist/ui/tone-contrast.test.js +66 -0
  718. package/dist/ui/tone-contrast.test.js.map +1 -0
  719. package/dist/ui/toolkit-overlap.test.d.ts +2 -0
  720. package/dist/ui/toolkit-overlap.test.d.ts.map +1 -0
  721. package/dist/ui/toolkit-overlap.test.js +86 -0
  722. package/dist/ui/toolkit-overlap.test.js.map +1 -0
  723. package/dist/ui/use-apply-theme.d.ts +11 -0
  724. package/dist/ui/use-apply-theme.d.ts.map +1 -0
  725. package/dist/ui/use-apply-theme.js +37 -0
  726. package/dist/ui/use-apply-theme.js.map +1 -0
  727. package/dist/ui/use-apply-theme.test.d.ts +2 -0
  728. package/dist/ui/use-apply-theme.test.d.ts.map +1 -0
  729. package/dist/ui/use-apply-theme.test.js +102 -0
  730. package/dist/ui/use-apply-theme.test.js.map +1 -0
  731. package/dist/ui/use-bpmn-viewer.d.ts +135 -0
  732. package/dist/ui/use-bpmn-viewer.d.ts.map +1 -0
  733. package/dist/ui/use-bpmn-viewer.js +257 -0
  734. package/dist/ui/use-bpmn-viewer.js.map +1 -0
  735. package/dist/ui/use-bpmn-viewer.test.d.ts +2 -0
  736. package/dist/ui/use-bpmn-viewer.test.d.ts.map +1 -0
  737. package/dist/ui/use-bpmn-viewer.test.js +239 -0
  738. package/dist/ui/use-bpmn-viewer.test.js.map +1 -0
  739. package/dist/ui/use-detail-view.d.ts +49 -0
  740. package/dist/ui/use-detail-view.d.ts.map +1 -0
  741. package/dist/ui/use-detail-view.js +52 -0
  742. package/dist/ui/use-detail-view.js.map +1 -0
  743. package/dist/ui/use-detail-view.test.d.ts +2 -0
  744. package/dist/ui/use-detail-view.test.d.ts.map +1 -0
  745. package/dist/ui/use-detail-view.test.js +178 -0
  746. package/dist/ui/use-detail-view.test.js.map +1 -0
  747. package/dist/ui/use-paged-list-view.d.ts +48 -0
  748. package/dist/ui/use-paged-list-view.d.ts.map +1 -0
  749. package/dist/ui/use-paged-list-view.js +41 -0
  750. package/dist/ui/use-paged-list-view.js.map +1 -0
  751. package/dist/ui/use-paged-list-view.test.d.ts +2 -0
  752. package/dist/ui/use-paged-list-view.test.d.ts.map +1 -0
  753. package/dist/ui/use-paged-list-view.test.js +136 -0
  754. package/dist/ui/use-paged-list-view.test.js.map +1 -0
  755. package/dist/ui/use-paged-view-data.d.ts +103 -0
  756. package/dist/ui/use-paged-view-data.d.ts.map +1 -0
  757. package/dist/ui/use-paged-view-data.js +173 -0
  758. package/dist/ui/use-paged-view-data.js.map +1 -0
  759. package/dist/ui/use-paged-view-data.seeded.test.d.ts +2 -0
  760. package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +1 -0
  761. package/dist/ui/use-paged-view-data.seeded.test.js +144 -0
  762. package/dist/ui/use-paged-view-data.seeded.test.js.map +1 -0
  763. package/dist/ui/use-paged-view-data.test.d.ts +2 -0
  764. package/dist/ui/use-paged-view-data.test.d.ts.map +1 -0
  765. package/dist/ui/use-paged-view-data.test.js +330 -0
  766. package/dist/ui/use-paged-view-data.test.js.map +1 -0
  767. package/dist/ui/use-reset-on-change.d.ts +22 -0
  768. package/dist/ui/use-reset-on-change.d.ts.map +1 -0
  769. package/dist/ui/use-reset-on-change.js +29 -0
  770. package/dist/ui/use-reset-on-change.js.map +1 -0
  771. package/dist/ui/use-reset-on-change.test.d.ts +2 -0
  772. package/dist/ui/use-reset-on-change.test.d.ts.map +1 -0
  773. package/dist/ui/use-reset-on-change.test.js +61 -0
  774. package/dist/ui/use-reset-on-change.test.js.map +1 -0
  775. package/dist/ui/use-view-data.seeded.test.d.ts +2 -0
  776. package/dist/ui/use-view-data.seeded.test.d.ts.map +1 -0
  777. package/dist/ui/use-view-data.seeded.test.js +168 -0
  778. package/dist/ui/use-view-data.seeded.test.js.map +1 -0
  779. package/dist/ui/view-data-state.d.ts +52 -0
  780. package/dist/ui/view-data-state.d.ts.map +1 -0
  781. package/dist/ui/view-data-state.js +54 -0
  782. package/dist/ui/view-data-state.js.map +1 -0
  783. package/dist/ui/view-data-state.test.d.ts +2 -0
  784. package/dist/ui/view-data-state.test.d.ts.map +1 -0
  785. package/dist/ui/view-data-state.test.js +62 -0
  786. package/dist/ui/view-data-state.test.js.map +1 -0
  787. package/dist/ui/view-meta.d.ts +70 -0
  788. package/dist/ui/view-meta.d.ts.map +1 -0
  789. package/dist/ui/view-meta.js +84 -0
  790. package/dist/ui/view-meta.js.map +1 -0
  791. package/dist/ui/view-meta.test.d.ts +2 -0
  792. package/dist/ui/view-meta.test.d.ts.map +1 -0
  793. package/dist/ui/view-meta.test.js +92 -0
  794. package/dist/ui/view-meta.test.js.map +1 -0
  795. package/dist/ui/view-refresh-state.d.ts +26 -0
  796. package/dist/ui/view-refresh-state.d.ts.map +1 -0
  797. package/dist/ui/view-refresh-state.js +15 -0
  798. package/dist/ui/view-refresh-state.js.map +1 -0
  799. package/dist/ui/widget-shell.d.ts +24 -0
  800. package/dist/ui/widget-shell.d.ts.map +1 -0
  801. package/dist/ui/widget-shell.js +50 -0
  802. package/dist/ui/widget-shell.js.map +1 -0
  803. package/dist/ui/widget-shell.test.d.ts +2 -0
  804. package/dist/ui/widget-shell.test.d.ts.map +1 -0
  805. package/dist/ui/widget-shell.test.js +41 -0
  806. package/dist/ui/widget-shell.test.js.map +1 -0
  807. package/dist/view-results.d.ts +42 -0
  808. package/dist/view-results.d.ts.map +1 -0
  809. package/dist/view-results.js +17 -0
  810. package/dist/view-results.js.map +1 -0
  811. package/dist/widget-meta-defaults.d.ts +48 -0
  812. package/dist/widget-meta-defaults.d.ts.map +1 -0
  813. package/dist/widget-meta-defaults.js +80 -0
  814. package/dist/widget-meta-defaults.js.map +1 -0
  815. package/dist/widget-meta-defaults.test.d.ts +2 -0
  816. package/dist/widget-meta-defaults.test.d.ts.map +1 -0
  817. package/dist/widget-meta-defaults.test.js +196 -0
  818. package/dist/widget-meta-defaults.test.js.map +1 -0
  819. package/dist/widget-tool-bindings.d.ts +71 -0
  820. package/dist/widget-tool-bindings.d.ts.map +1 -0
  821. package/dist/widget-tool-bindings.js +80 -0
  822. package/dist/widget-tool-bindings.js.map +1 -0
  823. package/dist/widget-tool-bindings.test.d.ts +2 -0
  824. package/dist/widget-tool-bindings.test.d.ts.map +1 -0
  825. package/dist/widget-tool-bindings.test.js +83 -0
  826. package/dist/widget-tool-bindings.test.js.map +1 -0
  827. package/dist/with-tool-errors.test.d.ts +2 -0
  828. package/dist/with-tool-errors.test.d.ts.map +1 -0
  829. package/dist/with-tool-errors.test.js +38 -0
  830. package/dist/with-tool-errors.test.js.map +1 -0
  831. package/package.json +113 -3
@@ -0,0 +1,196 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { appOnly, showToolBinding } from "./widget-tool-bindings.js";
3
+ import { honorWidgetMetaDefaults, mergeDomainLists, withWidgetMetaDefaults, } from "./widget-meta-defaults.js";
4
+ /** A server whose `tool()` records the definitions it receives, plus one other member. */
5
+ function recordingServer() {
6
+ const definitions = [];
7
+ const server = {
8
+ basePath: "/mcp",
9
+ tool(definition) {
10
+ definitions.push(definition);
11
+ return { name: definition.name };
12
+ },
13
+ describe() {
14
+ return `${this.basePath} with ${definitions.length} tools`;
15
+ },
16
+ };
17
+ return { server: server, definitions };
18
+ }
19
+ const FONT_ORIGIN = "https://mcp.example.com";
20
+ const DEFAULTS = {
21
+ viewCsp: { resourceDomains: [FONT_ORIGIN] },
22
+ widgetCSP: { resource_domains: [FONT_ORIGIN] },
23
+ };
24
+ const register = (server, definition) => server.tool(definition, (() => ({ content: [] })));
25
+ describe("withWidgetMetaDefaults", () => {
26
+ it("adds the view CSP to a view binding and the Apps SDK CSP to the widget tool's _meta", () => {
27
+ const { server, definitions } = recordingServer();
28
+ register(withWidgetMetaDefaults(server, DEFAULTS), {
29
+ name: "x_show_thing",
30
+ ...showToolBinding("x_show_thing", "Thing"),
31
+ });
32
+ const [definition] = definitions;
33
+ expect(definition.view).toEqual({
34
+ name: "x_show_thing",
35
+ description: "Thing",
36
+ prefersBorder: true,
37
+ csp: { resourceDomains: [FONT_ORIGIN] },
38
+ });
39
+ expect(definition._meta?.["openai/widgetCSP"]).toEqual({ resource_domains: [FONT_ORIGIN] });
40
+ expect(definition._meta?.["openai/outputTemplate"]).toBe("ui://views/x_show_thing.html");
41
+ });
42
+ it("keeps what a tool states itself first and appends each default origin once", () => {
43
+ const { server, definitions } = recordingServer();
44
+ const own = {
45
+ name: "x_show_map",
46
+ view: {
47
+ name: "x_show_map",
48
+ csp: {
49
+ resourceDomains: ["https://tiles.example", FONT_ORIGIN],
50
+ connectDomains: ["https://api.example"],
51
+ },
52
+ },
53
+ _meta: {
54
+ "openai/outputTemplate": "ui://views/x_show_map.html",
55
+ "openai/widgetCSP": { resource_domains: ["https://tiles.example"] },
56
+ },
57
+ };
58
+ register(withWidgetMetaDefaults(server, DEFAULTS), own);
59
+ const [definition] = definitions;
60
+ expect(definition.view?.csp).toEqual({
61
+ resourceDomains: ["https://tiles.example", FONT_ORIGIN],
62
+ connectDomains: ["https://api.example"],
63
+ });
64
+ expect(definition._meta?.["openai/widgetCSP"]).toEqual({
65
+ resource_domains: ["https://tiles.example", FONT_ORIGIN],
66
+ });
67
+ // A copy: the caller's definition is untouched.
68
+ expect(own.view?.csp?.resourceDomains).toEqual(["https://tiles.example", FONT_ORIGIN]);
69
+ expect(own._meta?.["openai/widgetCSP"]).toEqual({ resource_domains: ["https://tiles.example"] });
70
+ expect(definition).not.toBe(own);
71
+ });
72
+ it("leaves app-only feeds and plain tools as they are — nothing renders them", () => {
73
+ const { server, definitions } = recordingServer();
74
+ const bound = withWidgetMetaDefaults(server, DEFAULTS);
75
+ const feed = { name: "x_thing_data", ...appOnly };
76
+ const plain = { name: "x_list_things", description: "Lists things." };
77
+ register(bound, feed);
78
+ register(bound, plain);
79
+ expect(definitions).toEqual([feed, plain]);
80
+ expect(definitions[0]._meta).toEqual({ "openai/widgetAccessible": true });
81
+ });
82
+ it("applies each half on its own: a view CSP without an Apps SDK CSP and the other way round", () => {
83
+ const { server, definitions } = recordingServer();
84
+ const binding = showToolBinding("x_show_a", "A");
85
+ register(withWidgetMetaDefaults(server, { viewCsp: DEFAULTS.viewCsp }), {
86
+ name: "x_show_a",
87
+ ...binding,
88
+ });
89
+ register(withWidgetMetaDefaults(server, { widgetCSP: DEFAULTS.widgetCSP }), {
90
+ name: "x_show_a",
91
+ ...binding,
92
+ });
93
+ expect(definitions[0].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
94
+ expect(definitions[0]._meta?.["openai/widgetCSP"]).toBeUndefined();
95
+ expect(definitions[1].view?.csp).toBeUndefined();
96
+ expect(definitions[1]._meta?.["openai/widgetCSP"]).toEqual({ resource_domains: [FONT_ORIGIN] });
97
+ });
98
+ it("is the server itself without defaults (or with empty ones)", () => {
99
+ const { server } = recordingServer();
100
+ expect(withWidgetMetaDefaults(server, undefined)).toBe(server);
101
+ expect(withWidgetMetaDefaults(server, {})).toBe(server);
102
+ expect(withWidgetMetaDefaults(server, { viewCsp: { resourceDomains: [] }, widgetCSP: {} })).toBe(server);
103
+ expect(withWidgetMetaDefaults(server, {
104
+ viewCsp: { resourceDomains: undefined },
105
+ widgetCSP: { resource_domains: undefined },
106
+ })).toBe(server);
107
+ });
108
+ it("forwards every other member to the real server, bound to it", () => {
109
+ const { server } = recordingServer();
110
+ const bound = withWidgetMetaDefaults(server, DEFAULTS);
111
+ register(bound, { name: "x_list" });
112
+ expect(bound.basePath).toBe("/mcp");
113
+ const { describe: describeServer } = bound;
114
+ expect(describeServer()).toBe("/mcp with 1 tools");
115
+ });
116
+ });
117
+ describe("honorWidgetMetaDefaults", () => {
118
+ it("hands the plugin's registerWidgetTools a server that applies the toolkit's defaults", () => {
119
+ const { server, definitions } = recordingServer();
120
+ const seen = [];
121
+ const plugin = {
122
+ definition: { name: "x", steps: [], widgets: [] },
123
+ registerWidgetTools: (target, defaults) => {
124
+ seen.push(defaults);
125
+ register(target, { name: "x_show_thing", ...showToolBinding("x_show_thing", "Thing") });
126
+ },
127
+ };
128
+ honorWidgetMetaDefaults(plugin).registerWidgetTools(server, DEFAULTS);
129
+ expect(seen).toEqual([DEFAULTS]);
130
+ expect(definitions[0].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
131
+ });
132
+ it("keeps a class-based plugin whole: prototype hooks, one shared `this`, private fields", () => {
133
+ const { server, definitions } = recordingServer();
134
+ class BillingPlugin {
135
+ definition = { name: "billing", steps: [], widgets: [] };
136
+ appConfig = { region: "eu" };
137
+ #client = "billing-client";
138
+ registeredWith;
139
+ registerTools(target) {
140
+ this.registeredWith = this.#client;
141
+ register(target, { name: "billing_list_invoices" });
142
+ }
143
+ registerWidgetTools(target) {
144
+ register(target, {
145
+ name: "billing_show_invoice",
146
+ description: `${this.#client} after ${this.registeredWith}`,
147
+ ...showToolBinding("billing_show_invoice", "Invoice"),
148
+ });
149
+ }
150
+ }
151
+ const plugin = new BillingPlugin();
152
+ const wrapped = honorWidgetMetaDefaults(plugin);
153
+ // The toolkit reads both hooks off the plugin and calls them as methods.
154
+ wrapped.registerTools?.(server);
155
+ wrapped.registerWidgetTools?.(server, DEFAULTS);
156
+ expect(definitions.map((definition) => definition.name)).toEqual([
157
+ "billing_list_invoices",
158
+ "billing_show_invoice",
159
+ ]);
160
+ // registerTools wrote to the plugin itself; registerWidgetTools read it back there.
161
+ expect(plugin.registeredWith).toBe("billing-client");
162
+ expect(definitions[1].description).toBe("billing-client after billing-client");
163
+ expect(definitions[1].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
164
+ expect(wrapped.definition).toBe(plugin.definition);
165
+ expect(wrapped.appConfig).toBe(plugin.appConfig);
166
+ expect(wrapped).toBeInstanceOf(BillingPlugin);
167
+ });
168
+ it("calls a method-shorthand hook on the plugin itself, even on a frozen plugin", () => {
169
+ const { server, definitions } = recordingServer();
170
+ const plugin = Object.freeze({
171
+ definition: { name: "z", steps: [], widgets: [] },
172
+ toolName: "z_show_thing",
173
+ registerWidgetTools(target) {
174
+ register(target, { name: this.toolName, ...showToolBinding(this.toolName, "Thing") });
175
+ },
176
+ });
177
+ honorWidgetMetaDefaults(plugin).registerWidgetTools?.(server, DEFAULTS);
178
+ expect(definitions[0].name).toBe("z_show_thing");
179
+ expect(definitions[0].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
180
+ });
181
+ it("passes a plugin without widget tools through unchanged", () => {
182
+ const registerTools = vi.fn();
183
+ const plugin = {
184
+ definition: { name: "y", steps: [], widgets: [] },
185
+ registerTools,
186
+ };
187
+ expect(honorWidgetMetaDefaults(plugin)).toBe(plugin);
188
+ });
189
+ });
190
+ describe("mergeDomainLists", () => {
191
+ it("appends each default list to the tool's own, each entry once, and skips empty ones", () => {
192
+ expect(mergeDomainLists({ a: ["1"], b: ["2"] }, { a: ["1", "3"], c: ["4"], d: [], e: undefined })).toEqual({ a: ["1", "3"], b: ["2"], c: ["4"] });
193
+ expect(mergeDomainLists(undefined, { a: ["1"] })).toEqual({ a: ["1"] });
194
+ });
195
+ });
196
+ //# sourceMappingURL=widget-meta-defaults.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-meta-defaults.test.js","sourceRoot":"","sources":["../src/widget-meta-defaults.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * The two spreads every module's raw `server.tool()` widget registrations
4
+ * compose — the wire-contract halves of architecture invariant 5. One
5
+ * implementation for all modules (they were byte-identical copies before):
6
+ * a module that hand-rolls these drifts out of the widget-contract e2e test's
7
+ * expectations on the first mcp-use change.
8
+ */
9
+ /**
10
+ * View binding + Apps-SDK `_meta` half for a widget-RENDERING (model-visible)
11
+ * tool — spread into the `server.tool` definition of every `show_*` tool. The
12
+ * view name IS the tool name: mcp-use derives the entire MCP Apps half of the
13
+ * wire contract (`_meta.ui.resourceUri`, flat `ui/resourceUri`, resource CSP)
14
+ * from the first-class `view` binding — never stamp `ui` keys by hand, mcp-use
15
+ * overwrites that namespace on `tools/list`. What mcp-use does NOT derive is
16
+ * the OpenAI Apps SDK half (`openai/*`): `appsSdkMeta` builds it, pointing
17
+ * `openai/outputTemplate` at the same `ui://views/<name>.html` resource. The
18
+ * `outputSchema` is required by mcp-use for any view-bound tool; `passthrough`
19
+ * matches the free-form `structuredContent` the view builders return without
20
+ * stripping keys on SDK-side validation.
21
+ *
22
+ * The view resource carries its title as `description` (hosts that list
23
+ * resources show it) and asks the host for a border (`prefersBorder`, owner
24
+ * decision 2026-10-12, #344 N159): the cards draw none of their own, so a
25
+ * frame sets them off from the chat around them.
26
+ */
27
+ export declare function showToolBinding(name: string, title: string): {
28
+ view: {
29
+ name: string;
30
+ description: string;
31
+ prefersBorder: boolean;
32
+ };
33
+ outputSchema: z.ZodObject<{}, z.core.$loose>;
34
+ _meta: Record<string, unknown>;
35
+ };
36
+ /**
37
+ * The strict input schema every raw `server.tool()` registration declares —
38
+ * the twin of the toolkit registrar's `strictInput` option for the widget
39
+ * path, which registers outside the registrar. A non-strict `z.object` lets
40
+ * mcp-use STRIP an unknown key before the handler runs: a misnamed optional
41
+ * filter then silently widens the result (#329). Strict, the schema is
42
+ * advertised with `additionalProperties: false`, and an unknown key fails
43
+ * validation with the toolkit's own message — every unknown key plus every
44
+ * valid one — as an `isError` result the model can correct in one retry.
45
+ *
46
+ * The message mirrors the toolkit's `unknownKeysMessage` (not exported);
47
+ * `widget-tool-bindings.test.ts` pins the two to the same text.
48
+ */
49
+ export declare function strictToolInput<TShape extends z.ZodRawShape>(shape: TShape): z.ZodObject<{ -readonly [P in keyof TShape]: TShape[P]; }, z.core.$strict>;
50
+ /**
51
+ * App-only marker for the internal `*_data` feeds — spread into each feed's
52
+ * `server.tool` definition. `visibility: "app"` is mcp-use 2's first-class
53
+ * field (emitted as SEP-1865 `_meta.ui.visibility: ["app"]`): conforming hosts
54
+ * hide these tools from the LLM tool surface while keeping them callable from
55
+ * widgets via `callTool`; the "Internal JSON feed" descriptions stay as
56
+ * fallback for non-conforming hosts. Deliberately no `view` binding — the
57
+ * feeds must return JSON, not render UI.
58
+ *
59
+ * `openai/widgetAccessible` covers the Apps-SDK half of the dual contract:
60
+ * those hosts only allow in-widget callTool on tools carrying the key — a
61
+ * feed without it renders fine but every pagination/search/refresh is denied.
62
+ * The key does NOT render anything (no outputTemplate), so the feeds stay
63
+ * JSON-only. mcp-use passes non-`ui` `_meta` entries through untouched.
64
+ */
65
+ export declare const appOnly: {
66
+ visibility: "app";
67
+ _meta: {
68
+ "openai/widgetAccessible": boolean;
69
+ };
70
+ };
71
+ //# sourceMappingURL=widget-tool-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-tool-bindings.d.ts","sourceRoot":"","sources":["../src/widget-tool-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;EAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,8EAM1E;AAUD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO;;;;;CAGnB,CAAA"}
@@ -0,0 +1,80 @@
1
+ import { z } from "zod";
2
+ import { appsSdkMeta, viewResourceUri } from "@miragon/mcp-toolkit-core";
3
+ /**
4
+ * The two spreads every module's raw `server.tool()` widget registrations
5
+ * compose — the wire-contract halves of architecture invariant 5. One
6
+ * implementation for all modules (they were byte-identical copies before):
7
+ * a module that hand-rolls these drifts out of the widget-contract e2e test's
8
+ * expectations on the first mcp-use change.
9
+ */
10
+ /**
11
+ * View binding + Apps-SDK `_meta` half for a widget-RENDERING (model-visible)
12
+ * tool — spread into the `server.tool` definition of every `show_*` tool. The
13
+ * view name IS the tool name: mcp-use derives the entire MCP Apps half of the
14
+ * wire contract (`_meta.ui.resourceUri`, flat `ui/resourceUri`, resource CSP)
15
+ * from the first-class `view` binding — never stamp `ui` keys by hand, mcp-use
16
+ * overwrites that namespace on `tools/list`. What mcp-use does NOT derive is
17
+ * the OpenAI Apps SDK half (`openai/*`): `appsSdkMeta` builds it, pointing
18
+ * `openai/outputTemplate` at the same `ui://views/<name>.html` resource. The
19
+ * `outputSchema` is required by mcp-use for any view-bound tool; `passthrough`
20
+ * matches the free-form `structuredContent` the view builders return without
21
+ * stripping keys on SDK-side validation.
22
+ *
23
+ * The view resource carries its title as `description` (hosts that list
24
+ * resources show it) and asks the host for a border (`prefersBorder`, owner
25
+ * decision 2026-10-12, #344 N159): the cards draw none of their own, so a
26
+ * frame sets them off from the chat around them.
27
+ */
28
+ export function showToolBinding(name, title) {
29
+ return {
30
+ view: { name, description: title, prefersBorder: true },
31
+ outputSchema: z.object({}).passthrough(),
32
+ _meta: appsSdkMeta({ resourceUri: viewResourceUri(name), title }),
33
+ };
34
+ }
35
+ /**
36
+ * The strict input schema every raw `server.tool()` registration declares —
37
+ * the twin of the toolkit registrar's `strictInput` option for the widget
38
+ * path, which registers outside the registrar. A non-strict `z.object` lets
39
+ * mcp-use STRIP an unknown key before the handler runs: a misnamed optional
40
+ * filter then silently widens the result (#329). Strict, the schema is
41
+ * advertised with `additionalProperties: false`, and an unknown key fails
42
+ * validation with the toolkit's own message — every unknown key plus every
43
+ * valid one — as an `isError` result the model can correct in one retry.
44
+ *
45
+ * The message mirrors the toolkit's `unknownKeysMessage` (not exported);
46
+ * `widget-tool-bindings.test.ts` pins the two to the same text.
47
+ */
48
+ export function strictToolInput(shape) {
49
+ const valid = Object.keys(shape);
50
+ return z.strictObject(shape, {
51
+ error: (issue) => issue.code === "unrecognized_keys" ? unknownKeysMessage(issue.keys, valid) : undefined,
52
+ });
53
+ }
54
+ function unknownKeysMessage(unknown, valid) {
55
+ const quote = (keys) => keys.map((key) => JSON.stringify(key)).join(", ");
56
+ const head = `Unknown key${unknown.length === 1 ? "" : "s"} ${quote(unknown)}.`;
57
+ return valid.length === 0
58
+ ? `${head} This tool takes no arguments.`
59
+ : `${head} Valid keys: ${quote(valid)}.`;
60
+ }
61
+ /**
62
+ * App-only marker for the internal `*_data` feeds — spread into each feed's
63
+ * `server.tool` definition. `visibility: "app"` is mcp-use 2's first-class
64
+ * field (emitted as SEP-1865 `_meta.ui.visibility: ["app"]`): conforming hosts
65
+ * hide these tools from the LLM tool surface while keeping them callable from
66
+ * widgets via `callTool`; the "Internal JSON feed" descriptions stay as
67
+ * fallback for non-conforming hosts. Deliberately no `view` binding — the
68
+ * feeds must return JSON, not render UI.
69
+ *
70
+ * `openai/widgetAccessible` covers the Apps-SDK half of the dual contract:
71
+ * those hosts only allow in-widget callTool on tools carrying the key — a
72
+ * feed without it renders fine but every pagination/search/refresh is denied.
73
+ * The key does NOT render anything (no outputTemplate), so the feeds stay
74
+ * JSON-only. mcp-use passes non-`ui` `_meta` entries through untouched.
75
+ */
76
+ export const appOnly = {
77
+ visibility: "app",
78
+ _meta: { "openai/widgetAccessible": true },
79
+ };
80
+ //# sourceMappingURL=widget-tool-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-tool-bindings.js","sourceRoot":"","sources":["../src/widget-tool-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAExE;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,OAAO;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;QACvD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;QACxC,KAAK,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;KAClE,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAA+B,KAAa;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;QAC3B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KACzF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA0B,EAAE,KAAwB;IAC9E,MAAM,KAAK,GAAG,CAAC,IAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG,cAAc,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAA;IAC/E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,GAAG,IAAI,gCAAgC;QACzC,CAAC,CAAC,GAAG,IAAI,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,EAAE,KAAc;IAC1B,KAAK,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE;CAC3C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=widget-tool-bindings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-tool-bindings.test.d.ts","sourceRoot":"","sources":["../src/widget-tool-bindings.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { z } from "zod";
3
+ import { createToolRegistrar } from "@miragon/mcp-toolkit-core/tools";
4
+ import { appOnly, showToolBinding, strictToolInput } from "./widget-tool-bindings.js";
5
+ describe("showToolBinding", () => {
6
+ it("binds the view to the tool name and stamps the Apps-SDK _meta half", () => {
7
+ const binding = showToolBinding("camunda7_show_thing", "Thing");
8
+ expect(binding.view).toEqual({
9
+ name: "camunda7_show_thing",
10
+ description: "Thing",
11
+ prefersBorder: true,
12
+ });
13
+ expect(binding._meta).toMatchObject({
14
+ "openai/outputTemplate": "ui://views/camunda7_show_thing.html",
15
+ "openai/widgetAccessible": true,
16
+ });
17
+ });
18
+ it("carries a passthrough outputSchema (mcp-use requires one for view-bound tools)", () => {
19
+ const binding = showToolBinding("t", "T");
20
+ // Free-form structuredContent must survive SDK-side validation unstripped.
21
+ expect(binding.outputSchema.parse({ anything: 1, nested: { x: true } })).toEqual({
22
+ anything: 1,
23
+ nested: { x: true },
24
+ });
25
+ });
26
+ });
27
+ describe("appOnly", () => {
28
+ it("marks the tool app-only + widget-accessible, without any rendering keys", () => {
29
+ expect(appOnly.visibility).toBe("app");
30
+ expect(appOnly._meta).toEqual({ "openai/widgetAccessible": true });
31
+ // No view binding and no outputTemplate — a feed result must never be
32
+ // rendered by the host (invariant 5).
33
+ expect(appOnly).not.toHaveProperty("view");
34
+ });
35
+ });
36
+ describe("strictToolInput", () => {
37
+ const shape = { processDefinitionKey: z.string().optional(), engine: z.string().optional() };
38
+ /** The input schema the toolkit registrar advertises for `input` with `strictInput`. */
39
+ function registrarSchema(input) {
40
+ let schema;
41
+ const server = {
42
+ tool: (definition) => {
43
+ schema = definition.inputSchema;
44
+ },
45
+ };
46
+ createToolRegistrar(server, null, { strictInput: true })({
47
+ name: "probe",
48
+ description: "probe",
49
+ inputSchema: input,
50
+ handler: () => Promise.resolve(null),
51
+ });
52
+ if (!schema)
53
+ throw new Error("the registrar registered nothing");
54
+ return schema;
55
+ }
56
+ const failure = (schema, args) => {
57
+ const result = schema.safeParse(args);
58
+ if (result.success)
59
+ throw new Error("expected a validation failure");
60
+ return result.error.issues.map((issue) => issue.message);
61
+ };
62
+ it("rejects an unknown key, naming it and every valid key", () => {
63
+ expect(failure(strictToolInput(shape), { processDefinitionKeyIn: "a" })).toEqual([
64
+ 'Unknown key "processDefinitionKeyIn". Valid keys: "processDefinitionKey", "engine".',
65
+ ]);
66
+ });
67
+ it("reports exactly the registrar's message (the widget path matches the registrar path)", () => {
68
+ for (const args of [{ bogus: 1 }, { a: 1, b: 2, engine: "x" }]) {
69
+ expect(failure(strictToolInput(shape), args)).toEqual(failure(registrarSchema(shape), args));
70
+ }
71
+ expect(failure(strictToolInput({}), { x: 1 })).toEqual(failure(registrarSchema({}), { x: 1 }));
72
+ });
73
+ it("keeps valid input and other validation messages untouched", () => {
74
+ expect(strictToolInput(shape).parse({ engine: "a" })).toEqual({ engine: "a" });
75
+ expect(failure(strictToolInput(shape), { engine: 1 })[0]).not.toMatch(/Unknown key/);
76
+ });
77
+ it("advertises additionalProperties: false", () => {
78
+ expect(z.toJSONSchema(strictToolInput(shape), { io: "input" })).toMatchObject({
79
+ additionalProperties: false,
80
+ });
81
+ });
82
+ });
83
+ //# sourceMappingURL=widget-tool-bindings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-tool-bindings.test.js","sourceRoot":"","sources":["../src/widget-tool-bindings.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=with-tool-errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-tool-errors.test.d.ts","sourceRoot":"","sources":["../src/with-tool-errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { withToolErrors } from "./server.js";
3
+ class CodedError extends Error {
4
+ code = "ENGINE_NOT_SELECTED";
5
+ }
6
+ describe("withToolErrors", () => {
7
+ it("passes successful results through untouched", async () => {
8
+ const result = { content: [{ type: "text", text: "ok" }] };
9
+ const wrapped = withToolErrors(() => Promise.resolve(result));
10
+ await expect(wrapped()).resolves.toBe(result);
11
+ });
12
+ it("forwards the handler arguments", async () => {
13
+ const wrapped = withToolErrors((args) => Promise.resolve(args.a * 2));
14
+ await expect(wrapped({ a: 21 })).resolves.toBe(42);
15
+ });
16
+ it("converts a coded exception to the registrar's `[code] message` error result", async () => {
17
+ const wrapped = withToolErrors(() => Promise.reject(new CodedError("No engine selected for this session.")));
18
+ const result = (await wrapped());
19
+ expect(result.isError).toBe(true);
20
+ expect(result.content[0].text).toBe("[ENGINE_NOT_SELECTED] No engine selected for this session.");
21
+ });
22
+ it("prefers an HTTP-ish `status` over `code`, matching the toolkit registrar", async () => {
23
+ const e = Object.assign(new Error("boom"), { status: 404, code: "IGNORED" });
24
+ const wrapped = withToolErrors(() => Promise.reject(e));
25
+ const result = (await wrapped());
26
+ expect(result.content[0].text).toBe("[404] boom");
27
+ });
28
+ it("handles plain errors and non-Error throwables without a code prefix", async () => {
29
+ const plain = withToolErrors(() => Promise.reject(new Error("plain failure")));
30
+ // Non-Error rejection on purpose: the wrapper must stringify whatever a
31
+ // misbehaving handler throws instead of crashing on it.
32
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
33
+ const thrownString = withToolErrors(() => Promise.reject("string failure"));
34
+ expect((await plain()).content[0].text).toBe("plain failure");
35
+ expect((await thrownString()).content[0].text).toBe("string failure");
36
+ });
37
+ });
38
+ //# sourceMappingURL=with-tool-errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-tool-errors.test.js","sourceRoot":"","sources":["../src/with-tool-errors.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,116 @@
1
1
  {
2
2
  "name": "@miragon/pulse-widget-shell",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.22.0",
4
+ "description": "Shared widget kit for Pulse MCP Apps: UI primitives, view + data-feed builders, and the shell:* widget catalogue.",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "mcp",
8
+ "mcp-apps",
9
+ "widgets",
10
+ "react",
11
+ "ui",
12
+ "camunda"
13
+ ],
14
+ "homepage": "https://github.com/Miragon/pulse/tree/main/packages/core/widget-shell#readme",
15
+ "bugs": "https://github.com/Miragon/pulse/issues",
16
+ "engines": {
17
+ "node": ">=22.22.2"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/Miragon/pulse.git",
22
+ "directory": "packages/core/widget-shell"
23
+ },
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "type": "module",
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "exports": {
32
+ "./server": {
33
+ "types": "./dist/server.d.ts",
34
+ "import": "./dist/server.js"
35
+ },
36
+ "./ui": {
37
+ "types": "./dist/adapt-data-widget.d.ts",
38
+ "import": "./dist/adapt-data-widget.js"
39
+ },
40
+ "./widgets": {
41
+ "types": "./dist/ui/index.d.ts",
42
+ "import": "./dist/ui/index.js"
43
+ },
44
+ "./testing": {
45
+ "types": "./dist/testing/index.d.ts",
46
+ "import": "./dist/testing/index.js"
47
+ }
48
+ },
49
+ "peerDependencies": {
50
+ "@miragon/mcp-toolkit-core": "~2.8.1",
51
+ "@miragon/mcp-toolkit-ui": "~2.8.1",
52
+ "@tanstack/react-query": "5.102.8",
53
+ "bpmn-js": "18.31.0",
54
+ "lucide-react": "^0.562.0 || ^1.0.0",
55
+ "mcp-use": "2.7.3",
56
+ "postgres": "3.4.9",
57
+ "react": "^19.2.0",
58
+ "react-dom": "^19.2.0",
59
+ "typescript": ">=5.0.0",
60
+ "zod": "^4.4.0"
61
+ },
62
+ "peerDependenciesMeta": {
63
+ "@miragon/mcp-toolkit-ui": {
64
+ "optional": true
65
+ },
66
+ "@tanstack/react-query": {
67
+ "optional": true
68
+ },
69
+ "lucide-react": {
70
+ "optional": true
71
+ },
72
+ "postgres": {
73
+ "optional": true
74
+ },
75
+ "react": {
76
+ "optional": true
77
+ },
78
+ "react-dom": {
79
+ "optional": true
80
+ },
81
+ "typescript": {
82
+ "optional": true
83
+ }
84
+ },
85
+ "devDependencies": {
86
+ "@miragon/mcp-toolkit-core": "2.8.1",
87
+ "@miragon/mcp-toolkit-ui": "2.8.1",
88
+ "@stryker-mutator/core": "10.0.0",
89
+ "@stryker-mutator/vitest-runner": "10.0.0",
90
+ "@testing-library/react": "16.3.3",
91
+ "@types/react": "19.3.0",
92
+ "bpmn-js": "18.31.0",
93
+ "happy-dom": "21.0.4",
94
+ "lucide-react": "1.61.0",
95
+ "mcp-use": "2.7.3",
96
+ "postgres": "3.4.9",
97
+ "react": "19.3.1",
98
+ "react-dom": "19.3.1",
99
+ "typescript": "6.0.3",
100
+ "vitest": "4.1.11",
101
+ "zod": "4.6.7"
102
+ },
103
+ "dependencies": {
104
+ "@fontsource-variable/geist": "5.3.0",
105
+ "@fontsource-variable/geist-mono": "5.3.0",
106
+ "prom-client": "15.1.3"
107
+ },
108
+ "scripts": {
109
+ "build": "tsc",
110
+ "test": "vitest run",
111
+ "typecheck": "tsc --noEmit",
112
+ "lint": "eslint src",
113
+ "lint:fix": "eslint src --fix",
114
+ "test:mutation": "stryker run"
115
+ }
6
116
  }