@miragon/pulse-widget-shell 0.0.0-stage → 0.21.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 +44 -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,111 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // @vitest-environment happy-dom
3
+ import { createHash } from "node:crypto";
4
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
5
+ import { homedir } from "node:os";
6
+ import { join } from "node:path";
7
+ import { afterEach, describe, expect, it } from "vitest";
8
+ import { cleanup, render, screen } from "@testing-library/react";
9
+ import { AppEmptyState, KOMET_MIN_SIZE, KometMark } from "./brand-mark.js";
10
+ import { KOMET_SVG, KOMET_SVG_SHA256, KOMET_SVG_VERSION } from "./komet-svg.js";
11
+ import { TableEmptyState } from "./table.js";
12
+ afterEach(cleanup);
13
+ const UPSTREAM_REL = join("skills", "corporate-design", "assets", "logo", "miragon-komet-blau.svg");
14
+ /** A reachable miragon-brand checkout of this version (a Claude plugin cache), or null (CI). */
15
+ function findUpstream() {
16
+ const explicit = process.env.MIRAGON_BRAND_DIR;
17
+ if (explicit) {
18
+ const file = join(explicit, UPSTREAM_REL);
19
+ return existsSync(file) ? file : null;
20
+ }
21
+ let homes;
22
+ try {
23
+ homes = readdirSync(homedir()).filter((name) => name.startsWith(".claude"));
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ for (const dir of homes) {
29
+ const cache = join(homedir(), dir, "plugins", "cache");
30
+ if (!existsSync(cache))
31
+ continue;
32
+ for (const marketplace of readdirSync(cache)) {
33
+ const file = join(cache, marketplace, "miragon-brand", KOMET_SVG_VERSION, UPSTREAM_REL);
34
+ if (existsSync(file))
35
+ return file;
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+ describe("the Komet is the CI's file, unchanged (modeler-tool-design §11)", () => {
41
+ it("matches the pinned SHA-256 of miragon-brand's miragon-komet-blau.svg", () => {
42
+ expect(createHash("sha256").update(KOMET_SVG).digest("hex")).toBe(KOMET_SVG_SHA256);
43
+ });
44
+ it("is byte-equal to the plugin's file where a checkout is reachable", () => {
45
+ const upstream = findUpstream();
46
+ if (!upstream)
47
+ return;
48
+ expect(KOMET_SVG).toBe(readFileSync(upstream, "utf8"));
49
+ });
50
+ });
51
+ describe("KometMark (app-level signature only)", () => {
52
+ it("inlines the unchanged mark, decorative, at 48 px by default", () => {
53
+ const { container } = render(_jsx(KometMark, {}));
54
+ const mark = container.querySelector('[data-brand-mark="komet"]');
55
+ // The DOM re-serialises the markup; the parsed tree is the CI file's.
56
+ const parsed = new DOMParser().parseFromString(KOMET_SVG, "image/svg+xml").documentElement;
57
+ const svg = mark.querySelector("svg");
58
+ expect(svg.getAttribute("viewBox")).toBe(parsed.getAttribute("viewBox"));
59
+ expect(svg.querySelector("rect")?.getAttribute("fill")).toBe("#335de5");
60
+ expect(svg.querySelector("path")?.getAttribute("d")).toBe(parsed.querySelector("path")?.getAttribute("d"));
61
+ expect(mark.getAttribute("aria-hidden")).toBe("true");
62
+ expect(mark.style.width).toBe("48px");
63
+ expect(mark.style.height).toBe("48px");
64
+ });
65
+ it("never renders below 24 px", () => {
66
+ const { container } = render(_jsx(KometMark, { size: 12 }));
67
+ const mark = container.querySelector('[data-brand-mark="komet"]');
68
+ expect(KOMET_MIN_SIZE).toBe(24);
69
+ expect(mark.style.width).toBe("24px");
70
+ });
71
+ it("hangs on the theme slot a customer brand empties (--brand-mark-display)", () => {
72
+ const { container } = render(_jsx(KometMark, {}));
73
+ const mark = container.querySelector('[data-brand-mark="komet"]');
74
+ expect(mark.getAttribute("style")).toContain("display: var(--brand-mark-display, inline-flex)");
75
+ });
76
+ it("stands alone as an image when labelled", () => {
77
+ render(_jsx(KometMark, { label: "Miragon" }));
78
+ expect(screen.getByRole("img", { name: "Miragon" })).toBeTruthy();
79
+ });
80
+ });
81
+ describe("empty states (U10)", () => {
82
+ it("AppEmptyState: the Komet over a 600 heading, a help line and two actions", () => {
83
+ const { container } = render(_jsx(AppEmptyState, { title: "No engines yet", description: "Add an engine to start.", action: _jsx("button", { type: "button", children: "Add engine" }), secondaryAction: _jsx("button", { type: "button", children: "Show example" }) }));
84
+ expect(container.querySelector('[data-brand-mark="komet"]')).toBeTruthy();
85
+ const heading = screen.getByRole("heading", { level: 2, name: "No engines yet" });
86
+ expect(heading.className).toContain("font-semibold");
87
+ expect(screen.getByText("Add an engine to start.")).toBeTruthy();
88
+ expect(screen.getAllByRole("button")).toHaveLength(2);
89
+ });
90
+ it("TableEmptyState: 'no data' is a quiet Inbox, 'all done' a success CircleCheck", () => {
91
+ const { container } = render(_jsxs(_Fragment, { children: [_jsx(TableEmptyState, { children: "No jobs found" }), _jsx(TableEmptyState, { variant: "done", description: "Nothing is failing right now.", children: "No open incidents" })] }));
92
+ const [empty, done] = container.querySelectorAll("[data-empty-variant]");
93
+ expect(empty.getAttribute("data-empty-variant")).toBe("empty");
94
+ expect(empty.querySelector("svg")?.getAttribute("class")).toContain("lucide-inbox");
95
+ expect(empty.querySelector('[aria-hidden="true"]')?.className).toContain("text-muted-foreground");
96
+ expect(done.getAttribute("data-empty-variant")).toBe("done");
97
+ expect(done.querySelector("svg")?.getAttribute("class")).toContain("lucide-circle-check");
98
+ expect(done.querySelector('[aria-hidden="true"]')?.className).toContain("text-success");
99
+ expect(screen.getByText("Nothing is failing right now.")).toBeTruthy();
100
+ // It stands in for a table: its title is no heading.
101
+ expect(screen.queryByRole("heading")).toBeNull();
102
+ expect(screen.getByText("No open incidents").tagName).toBe("P");
103
+ });
104
+ it("TableEmptyState: a concrete icon and actions where the caller has them", () => {
105
+ render(_jsx(TableEmptyState, { icon: _jsx("svg", { "data-testid": "search-x" }), action: _jsx("button", { type: "button", children: "Clear search" }), titleAs: "h3", children: "No matches" }));
106
+ expect(screen.getByTestId("search-x")).toBeTruthy();
107
+ expect(screen.getByRole("heading", { level: 3, name: "No matches" })).toBeTruthy();
108
+ expect(screen.getByRole("button", { name: "Clear search" })).toBeTruthy();
109
+ });
110
+ });
111
+ //# sourceMappingURL=brand-mark.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-mark.test.js","sourceRoot":"","sources":["../../src/ui/brand-mark.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /** One line of a confirmation's target block: what it is, and its id or name. */
2
+ export type ConfirmTarget = readonly [label: string, value: string];
3
+ export interface ConfirmDialogProps {
4
+ open: boolean;
5
+ onOpenChange: (open: boolean) => void;
6
+ /** The question ("Cancel this instance?"). */
7
+ title: string;
8
+ /** The consequence, in one or two sentences. */
9
+ description: string;
10
+ /** What the write acts on, by name — at least one line. */
11
+ target: readonly ConfirmTarget[];
12
+ /** The write as verb + object ("Cancel instance"). */
13
+ confirmLabel: string;
14
+ /** Not doing it, as verb + object ("Keep instance") — never a bare "Cancel". */
15
+ keepLabel: string;
16
+ /** The confirm button while the write runs (default: the locale's "Working…"). */
17
+ pendingLabel?: string;
18
+ /** An irreversible write: the confirm button in the danger role. */
19
+ destructive?: boolean;
20
+ /** The confirmed write is in flight: both buttons wait, the dialog stays. */
21
+ pending?: boolean;
22
+ /** Failure of the confirmed write, shown in the dialog so it can't be missed. */
23
+ error?: unknown;
24
+ onConfirm: () => void;
25
+ }
26
+ /**
27
+ * The confirmation before an irreversible or state-changing write (CI §8,
28
+ * §9 "Destruktiv"), on the toolkit's `Dialog`: the scrim behind it
29
+ * (`--scrim`, 42 % black plus blur), a centred panel with the md radius and
30
+ * `shadow-3`, the question as its 600 heading, the close button, the buttons
31
+ * right-aligned. It is an `alertdialog`: it interrupts and needs an answer.
32
+ *
33
+ * It names its target as a label/value block (ids in Geist Mono) and labels
34
+ * both buttons with verb + object, so "Keep instance" can never be mistaken
35
+ * for "Cancel instance"; a destructive write's button is in the danger role.
36
+ * While the write runs the dialog cannot be dismissed (its outcome would be
37
+ * hidden); a failure shows inside it (`describeError`, raw text under
38
+ * "Details") and the user can try again or keep.
39
+ *
40
+ * Inline in a chat (#344 K45) it opens beside the element that opened it,
41
+ * not in the middle of the frame: a frame as tall as its content can be far
42
+ * taller than the chat shows, and its middle is then off screen. The opener
43
+ * is in view (it was just used), so the dialog is centred on it, kept inside
44
+ * the frame ({@link anchoredTop}). In fullscreen it stays centred.
45
+ */
46
+ export declare function ConfirmDialog({ open, onOpenChange, title, description, target, confirmLabel, keepLabel, pendingLabel, destructive, pending, error, onConfirm, }: ConfirmDialogProps): import("react").JSX.Element;
47
+ /**
48
+ * The top of a dialog `height` px tall, centred on its opener and kept inside
49
+ * a frame `frameHeight` px tall — at the frame's top edge when it does not fit.
50
+ */
51
+ export declare function anchoredTop(opener: {
52
+ top: number;
53
+ height: number;
54
+ }, height: number, frameHeight: number): number;
55
+ //# sourceMappingURL=confirm-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.d.ts","sourceRoot":"","sources":["../../src/ui/confirm-dialog.tsx"],"names":[],"mappings":"AAgBA,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;IAChC,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAA;IACjB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,WAAW,EACX,MAAM,EACN,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,WAAmB,EACnB,OAAe,EACf,KAAY,EACZ,SAAS,GACV,EAAE,kBAAkB,+BAiEpB;AAKD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM,CAIR"}
@@ -0,0 +1,59 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment, useRef } from "react";
3
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, ErrorState, useLocale, } from "@miragon/mcp-toolkit-ui";
4
+ import { describeError } from "./describe-error.js";
5
+ import { kitLabels } from "./kit-labels.js";
6
+ import { useHostDisplayMode } from "./widget-shell.js";
7
+ /**
8
+ * The confirmation before an irreversible or state-changing write (CI §8,
9
+ * §9 "Destruktiv"), on the toolkit's `Dialog`: the scrim behind it
10
+ * (`--scrim`, 42 % black plus blur), a centred panel with the md radius and
11
+ * `shadow-3`, the question as its 600 heading, the close button, the buttons
12
+ * right-aligned. It is an `alertdialog`: it interrupts and needs an answer.
13
+ *
14
+ * It names its target as a label/value block (ids in Geist Mono) and labels
15
+ * both buttons with verb + object, so "Keep instance" can never be mistaken
16
+ * for "Cancel instance"; a destructive write's button is in the danger role.
17
+ * While the write runs the dialog cannot be dismissed (its outcome would be
18
+ * hidden); a failure shows inside it (`describeError`, raw text under
19
+ * "Details") and the user can try again or keep.
20
+ *
21
+ * Inline in a chat (#344 K45) it opens beside the element that opened it,
22
+ * not in the middle of the frame: a frame as tall as its content can be far
23
+ * taller than the chat shows, and its middle is then off screen. The opener
24
+ * is in view (it was just used), so the dialog is centred on it, kept inside
25
+ * the frame ({@link anchoredTop}). In fullscreen it stays centred.
26
+ */
27
+ export function ConfirmDialog({ open, onOpenChange, title, description, target, confirmLabel, keepLabel, pendingLabel, destructive = false, pending = false, error = null, onConfirm, }) {
28
+ const locale = useLocale();
29
+ const described = error ? describeError(error, locale) : null;
30
+ const inline = useHostDisplayMode() === "inline";
31
+ const content = useRef(null);
32
+ // When the dialog opens, the focus is still on its opener (Radix fires this
33
+ // before it moves the focus in).
34
+ const anchor = () => {
35
+ const panel = content.current;
36
+ const opener = document.activeElement;
37
+ if (!inline || !panel || !opener || opener === document.body)
38
+ return;
39
+ const top = anchoredTop(opener.getBoundingClientRect(), panel.offsetHeight, window.innerHeight);
40
+ panel.style.top = `${top}px`;
41
+ panel.style.translate = "-50% 0";
42
+ };
43
+ return (_jsx(Dialog, { open: open, onOpenChange: (next) => {
44
+ if (!pending)
45
+ onOpenChange(next);
46
+ }, children: _jsxs(DialogContent, { ref: content, role: "alertdialog", showCloseButton: !pending, onOpenAutoFocus: anchor, className: "sm:max-w-md", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: title }), _jsx(DialogDescription, { className: "text-body", children: description })] }), _jsx("dl", { className: "bg-muted text-dense grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-sm px-3 py-2", children: target.map(([label, value]) => (_jsxs(Fragment, { children: [_jsx("dt", { className: "text-muted-foreground", children: label }), _jsx("dd", { className: "font-mono break-all", children: value })] }, label))) }), described && (_jsx(ErrorState, { variant: "inline", title: described.title, description: described.hint, details: described.details ?? undefined })), _jsxs(DialogFooter, { children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: pending, children: keepLabel }), _jsx(Button, { variant: destructive ? "destructive" : "default", onClick: onConfirm, disabled: pending, "aria-busy": pending || undefined, children: pending ? (pendingLabel ?? kitLabels(locale).working) : confirmLabel })] })] }) }));
47
+ }
48
+ /** The gap the dialog keeps to the frame's edges (px). */
49
+ const FRAME_MARGIN = 16;
50
+ /**
51
+ * The top of a dialog `height` px tall, centred on its opener and kept inside
52
+ * a frame `frameHeight` px tall — at the frame's top edge when it does not fit.
53
+ */
54
+ export function anchoredTop(opener, height, frameHeight) {
55
+ const centred = opener.top + opener.height / 2 - height / 2;
56
+ const lowest = frameHeight - height - FRAME_MARGIN;
57
+ return Math.max(FRAME_MARGIN, Math.min(centred, lowest));
58
+ }
59
+ //# sourceMappingURL=confirm-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.js","sourceRoot":"","sources":["../../src/ui/confirm-dialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=confirm-dialog.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.test.d.ts","sourceRoot":"","sources":["../../src/ui/confirm-dialog.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // @vitest-environment happy-dom
3
+ import { afterEach, describe, expect, it, vi } from "vitest";
4
+ import { cleanup, fireEvent, render, screen } from "@testing-library/react";
5
+ import { LocaleProvider } from "@miragon/mcp-toolkit-ui";
6
+ import { useState } from "react";
7
+ import { anchoredTop, ConfirmDialog } from "./confirm-dialog.js";
8
+ import { DisplayModeProvider } from "./widget-shell.js";
9
+ afterEach(cleanup);
10
+ function renderDialog(overrides = {}) {
11
+ const props = {
12
+ open: true,
13
+ onOpenChange: vi.fn(),
14
+ title: "Cancel this instance?",
15
+ description: "The instance stops for good.",
16
+ target: [
17
+ ["Instance", "5f0ce78e-6b1d-11ef-9c3a-0242ac120002"],
18
+ ["Engine", "prod"],
19
+ ],
20
+ confirmLabel: "Cancel instance",
21
+ keepLabel: "Keep instance",
22
+ destructive: true,
23
+ onConfirm: vi.fn(),
24
+ ...overrides,
25
+ };
26
+ render(_jsx(ConfirmDialog, { ...props }));
27
+ return props;
28
+ }
29
+ describe("ConfirmDialog (CI §8 dialogs, §9 destructive)", () => {
30
+ it("is an alertdialog over the scrim: md radius, shadow-3, named by its question", () => {
31
+ renderDialog();
32
+ const dialog = screen.getByRole("alertdialog", { name: "Cancel this instance?" });
33
+ expect(dialog.className).toContain("rounded-md");
34
+ expect(dialog.className).toContain("shadow-3");
35
+ expect(dialog.getAttribute("aria-describedby")).toBeTruthy();
36
+ const overlay = document.querySelector('[data-slot="dialog-overlay"]');
37
+ expect(overlay?.className).toContain("bg-scrim");
38
+ expect(overlay?.className).toContain("backdrop-blur-sm");
39
+ });
40
+ it("names its target by label and value, ids in Geist Mono", () => {
41
+ renderDialog();
42
+ const value = screen.getByText("5f0ce78e-6b1d-11ef-9c3a-0242ac120002");
43
+ expect(value.tagName).toBe("DD");
44
+ expect(value.className).toContain("font-mono");
45
+ expect(screen.getByText("Instance").tagName).toBe("DT");
46
+ });
47
+ it("labels both buttons verb + object; the destructive one in the danger role", () => {
48
+ const props = renderDialog();
49
+ const confirm = screen.getByRole("button", { name: "Cancel instance" });
50
+ expect(confirm.getAttribute("data-variant") ?? confirm.className).toContain("destructive");
51
+ fireEvent.click(confirm);
52
+ expect(props.onConfirm).toHaveBeenCalledTimes(1);
53
+ fireEvent.click(screen.getByRole("button", { name: "Keep instance" }));
54
+ expect(props.onOpenChange).toHaveBeenCalledWith(false);
55
+ });
56
+ it("a reversible write confirms with the primary button", () => {
57
+ renderDialog({ destructive: false, confirmLabel: "Suspend instance" });
58
+ const confirm = screen.getByRole("button", { name: "Suspend instance" });
59
+ expect(confirm.getAttribute("data-variant") ?? confirm.className).not.toContain("destructive");
60
+ });
61
+ it("waits while the write runs: both buttons disabled, no close, the pending words", () => {
62
+ const props = renderDialog({ pending: true });
63
+ const working = screen.getByRole("button", { name: "Working…" });
64
+ expect(working.hasAttribute("disabled")).toBe(true);
65
+ expect(working.getAttribute("aria-busy")).toBe("true");
66
+ expect(screen.getByRole("button", { name: "Keep instance" }).hasAttribute("disabled")).toBe(true);
67
+ expect(screen.queryByRole("button", { name: "Close" })).toBeNull();
68
+ fireEvent.keyDown(screen.getByRole("alertdialog"), { key: "Escape" });
69
+ expect(props.onOpenChange).not.toHaveBeenCalled();
70
+ });
71
+ it("closes on Escape when idle", () => {
72
+ const props = renderDialog();
73
+ fireEvent.keyDown(screen.getByRole("alertdialog"), { key: "Escape" });
74
+ expect(props.onOpenChange).toHaveBeenCalledWith(false);
75
+ });
76
+ it("shows a failed write inside the dialog, in words, the raw text under Details", () => {
77
+ render(_jsx(LocaleProvider, { locale: "de", children: _jsx(ConfirmDialog, { open: true, onOpenChange: vi.fn(), title: "Instanz abbrechen?", description: "Die Instanz endet endg\u00FCltig.", target: [["Instanz", "i-1"]], confirmLabel: "Instanz abbrechen", keepLabel: "Instanz behalten", pendingLabel: "Wird abgebrochen\u2026", error: "[503 ProcessEngineException] down (engine prod)", onConfirm: vi.fn() }) }));
78
+ const state = screen.getByRole("alert");
79
+ expect(state.getAttribute("data-variant")).toBe("inline");
80
+ expect(state.textContent).toContain("Die Engine prod ist nicht erreichbar (HTTP 503)");
81
+ expect(screen.getByText("[503 ProcessEngineException] down (engine prod)").closest("details")).toBeTruthy();
82
+ });
83
+ });
84
+ // #344 K45: inline, a frame as tall as its content can be far taller than the
85
+ // chat shows; the dialog opens beside its opener, which is in view.
86
+ describe("ConfirmDialog placement", () => {
87
+ it("anchoredTop centres on the opener and stays inside the frame", () => {
88
+ expect(anchoredTop({ top: 900, height: 40 }, 300, 2000)).toBe(770);
89
+ expect(anchoredTop({ top: 1950, height: 40 }, 300, 2000)).toBe(1684);
90
+ expect(anchoredTop({ top: 0, height: 40 }, 300, 2000)).toBe(16);
91
+ });
92
+ function Opener({ mode }) {
93
+ const [open, setOpen] = useState(false);
94
+ return (_jsxs(DisplayModeProvider, { mode: mode, children: [_jsx("button", { type: "button", onClick: () => setOpen(true), children: "Cancel instance\u2026" }), _jsx(ConfirmDialog, { open: open, onOpenChange: setOpen, title: "Cancel this instance?", description: "The instance stops for good.", target: [["Instance", "pi-1"]], confirmLabel: "Cancel instance", keepLabel: "Keep instance", onConfirm: vi.fn() })] }));
95
+ }
96
+ function openFrom(mode) {
97
+ render(_jsx(Opener, { mode: mode }));
98
+ const opener = screen.getByRole("button", { name: "Cancel instance…" });
99
+ opener.getBoundingClientRect = () => ({ top: 1200, height: 40 });
100
+ opener.focus();
101
+ fireEvent.click(opener);
102
+ return screen.getByRole("alertdialog");
103
+ }
104
+ it("opens beside its opener inline", () => {
105
+ const dialog = openFrom("inline");
106
+ expect(dialog.style.top).toMatch(/px$/);
107
+ expect(Number.parseFloat(dialog.style.top)).toBeGreaterThan(16);
108
+ expect(dialog.style.translate).toBe("-50% 0");
109
+ });
110
+ it("stays centred in fullscreen", () => {
111
+ const dialog = openFrom("fullscreen");
112
+ expect(dialog.style.top).toBe("");
113
+ });
114
+ });
115
+ //# sourceMappingURL=confirm-dialog.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.test.js","sourceRoot":"","sources":["../../src/ui/confirm-dialog.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ToneVariant } from "@miragon/mcp-toolkit-ui";
2
+ /**
3
+ * THE severity ladder of every incident and job count, in every module
4
+ * (#322 U14, decision f; CLAUDE.md "a status is a tone"): an open incident or
5
+ * a job without retries left (the engine's `failedJobs`, analytics' dead
6
+ * jobs) is a state, `danger` while there is any; every other count (running
7
+ * instances, a backlog, what happened in a period) carries no tone. Warning
8
+ * belongs to what can still recover on its own (a degraded verdict, a failed
9
+ * job with retries left), never to these counts. One sign, one meaning: the
10
+ * camunda7 cockpit and the analytics tables on the same page say it alike.
11
+ */
12
+ /** An open-incident or no-retries count's tone: danger while there is any, else a neutral number. */
13
+ export declare function countTone(count: number | null | undefined): ToneVariant;
14
+ /**
15
+ * One process's or engine's state on the ladder: danger while it has an open
16
+ * incident or a job without retries; neutral when nothing runs on it (never
17
+ * a green "healthy" over an idle deployment); otherwise success.
18
+ */
19
+ export declare function severityTone(failedJobs: number, totalIncidents: number, instances: number): ToneVariant;
20
+ //# sourceMappingURL=count-tone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-tone.d.ts","sourceRoot":"","sources":["../../src/ui/count-tone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;;;;;;;GASG;AAEH,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,WAAW,CAIb"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * THE severity ladder of every incident and job count, in every module
3
+ * (#322 U14, decision f; CLAUDE.md "a status is a tone"): an open incident or
4
+ * a job without retries left (the engine's `failedJobs`, analytics' dead
5
+ * jobs) is a state, `danger` while there is any; every other count (running
6
+ * instances, a backlog, what happened in a period) carries no tone. Warning
7
+ * belongs to what can still recover on its own (a degraded verdict, a failed
8
+ * job with retries left), never to these counts. One sign, one meaning: the
9
+ * camunda7 cockpit and the analytics tables on the same page say it alike.
10
+ */
11
+ /** An open-incident or no-retries count's tone: danger while there is any, else a neutral number. */
12
+ export function countTone(count) {
13
+ return (count ?? 0) > 0 ? "danger" : "neutral";
14
+ }
15
+ /**
16
+ * One process's or engine's state on the ladder: danger while it has an open
17
+ * incident or a job without retries; neutral when nothing runs on it (never
18
+ * a green "healthy" over an idle deployment); otherwise success.
19
+ */
20
+ export function severityTone(failedJobs, totalIncidents, instances) {
21
+ if (totalIncidents > 0 || failedJobs > 0)
22
+ return "danger";
23
+ if (instances === 0)
24
+ return "neutral";
25
+ return "success";
26
+ }
27
+ //# sourceMappingURL=count-tone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-tone.js","sourceRoot":"","sources":["../../src/ui/count-tone.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,cAAsB,EACtB,SAAiB;IAEjB,IAAI,cAAc,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAA;IACzD,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACrC,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=count-tone.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-tone.test.d.ts","sourceRoot":"","sources":["../../src/ui/count-tone.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { countTone, severityTone } from "./count-tone.js";
3
+ /** One sign, one meaning (#322 U14, decision f): the ladder both connectors read their counts by. */
4
+ describe("countTone", () => {
5
+ it("is danger while there is any open incident or job without retries", () => {
6
+ expect(countTone(1)).toBe("danger");
7
+ expect(countTone(42)).toBe("danger");
8
+ });
9
+ it("is a neutral number for none, and for a count nobody measured", () => {
10
+ expect(countTone(0)).toBe("neutral");
11
+ expect(countTone(null)).toBe("neutral");
12
+ expect(countTone(undefined)).toBe("neutral");
13
+ });
14
+ });
15
+ describe("severityTone", () => {
16
+ it("is danger for an open incident or a job without retries", () => {
17
+ expect(severityTone(0, 1, 10)).toBe("danger");
18
+ expect(severityTone(1, 0, 10)).toBe("danger");
19
+ // Even over an idle deployment: the incident outlives its instances.
20
+ expect(severityTone(1, 0, 0)).toBe("danger");
21
+ });
22
+ it("is neutral over a deployment nothing runs on, success otherwise", () => {
23
+ expect(severityTone(0, 0, 0)).toBe("neutral");
24
+ expect(severityTone(0, 0, 3)).toBe("success");
25
+ });
26
+ });
27
+ //# sourceMappingURL=count-tone.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count-tone.test.js","sourceRoot":"","sources":["../../src/ui/count-tone.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEzD,qGAAqG;AACrG,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7C,qEAAqE;QACrE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ /** A locale-bound translate for widgets: `t(key, params?) => string`. */
2
+ export type T = (key: string, params?: Record<string, unknown>) => string;
3
+ /** The shape of the toolkit's `createTranslator(catalogs)` result. */
4
+ type Translator = (locale: string, key: string, params?: Record<string, unknown>) => string;
5
+ /**
6
+ * Build a module's widget-side `useT`, bound to the active locale (from the
7
+ * nearest `<LocaleProvider>`, provided globally by the server's ProfileGate)
8
+ * and the module's own catalogs:
9
+ * `export const useT = createUseT(translator)`. Kept apart from the module's
10
+ * `messages/index.ts` so the server can import `translator` without pulling
11
+ * `@miragon/mcp-toolkit-ui` (React) into the Node graph.
12
+ */
13
+ export declare function createUseT(translator: Translator): () => T;
14
+ export {};
15
+ //# sourceMappingURL=create-use-t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-use-t.d.ts","sourceRoot":"","sources":["../../src/ui/create-use-t.ts"],"names":[],"mappings":"AAGA,yEAAyE;AACzE,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;AAEzE,sEAAsE;AACtE,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;AAE3F;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAK1D"}
@@ -0,0 +1,17 @@
1
+ import { useMemo } from "react";
2
+ import { useLocale } from "@miragon/mcp-toolkit-ui";
3
+ /**
4
+ * Build a module's widget-side `useT`, bound to the active locale (from the
5
+ * nearest `<LocaleProvider>`, provided globally by the server's ProfileGate)
6
+ * and the module's own catalogs:
7
+ * `export const useT = createUseT(translator)`. Kept apart from the module's
8
+ * `messages/index.ts` so the server can import `translator` without pulling
9
+ * `@miragon/mcp-toolkit-ui` (React) into the Node graph.
10
+ */
11
+ export function createUseT(translator) {
12
+ return function useT() {
13
+ const locale = useLocale();
14
+ return useMemo(() => (key, params) => translator(locale, key, params), [locale]);
15
+ };
16
+ }
17
+ //# sourceMappingURL=create-use-t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-use-t.js","sourceRoot":"","sources":["../../src/ui/create-use-t.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAQnD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,UAAsB;IAC/C,OAAO,SAAS,IAAI;QAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,OAAO,OAAO,CAAI,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACrF,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ /** The `<style>` that carries the faces — one per document. */
2
+ export declare const SERVED_FONTS_STYLE_ID = "__miragon-served-fonts";
3
+ /**
4
+ * Declare Geist and Geist Mono from the server that served this view (its
5
+ * font route, `installFontAssets`), once per document, `font-display: swap`:
6
+ * the text renders at once in the next family of the role stacks — the
7
+ * host's font (`adoptHostFontVariables`), then the system's — and switches
8
+ * when the files arrive. A host that blocks the server's origin, or a server
9
+ * the browser cannot reach, leaves it there; nothing waits and nothing
10
+ * breaks. Outside a served view document (no public base) nothing is
11
+ * declared. Returns the base URL the faces load from, if any.
12
+ */
13
+ export declare function declareServedFonts(doc?: Document, publicBase?: string): string | undefined;
14
+ //# sourceMappingURL=declare-served-fonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare-served-fonts.d.ts","sourceRoot":"","sources":["../../src/ui/declare-served-fonts.ts"],"names":[],"mappings":"AAIA,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,2BAA2B,CAAA;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,QAAmB,EACxB,UAAU,GAAE,MAA2B,GACtC,MAAM,GAAG,SAAS,CAkBpB"}
@@ -0,0 +1,38 @@
1
+ import { fontFaces } from "@miragon/mcp-toolkit-ui";
2
+ import { getPublicBaseUrl } from "mcp-use/react";
3
+ import { SERVED_FONT_FILES, servedFontBaseUrl } from "../served-fonts.js";
4
+ /** The `<style>` that carries the faces — one per document. */
5
+ export const SERVED_FONTS_STYLE_ID = "__miragon-served-fonts";
6
+ /**
7
+ * Declare Geist and Geist Mono from the server that served this view (its
8
+ * font route, `installFontAssets`), once per document, `font-display: swap`:
9
+ * the text renders at once in the next family of the role stacks — the
10
+ * host's font (`adoptHostFontVariables`), then the system's — and switches
11
+ * when the files arrive. A host that blocks the server's origin, or a server
12
+ * the browser cannot reach, leaves it there; nothing waits and nothing
13
+ * breaks. Outside a served view document (no public base) nothing is
14
+ * declared. Returns the base URL the faces load from, if any.
15
+ */
16
+ export function declareServedFonts(doc = document, publicBase = getPublicBaseUrl()) {
17
+ const existing = doc.getElementById(SERVED_FONTS_STYLE_ID);
18
+ if (existing)
19
+ return existing.dataset.baseUrl;
20
+ const baseUrl = servedFontBaseUrl(publicBase);
21
+ if (!baseUrl)
22
+ return undefined;
23
+ let css;
24
+ try {
25
+ css = fontFaces({ baseUrl, files: SERVED_FONT_FILES });
26
+ }
27
+ catch {
28
+ // A base the helper refuses to write into url("…") (quotes, brackets).
29
+ return undefined;
30
+ }
31
+ const style = doc.createElement("style");
32
+ style.id = SERVED_FONTS_STYLE_ID;
33
+ style.dataset.baseUrl = baseUrl;
34
+ style.textContent = css;
35
+ doc.head.appendChild(style);
36
+ return baseUrl;
37
+ }
38
+ //# sourceMappingURL=declare-served-fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare-served-fonts.js","sourceRoot":"","sources":["../../src/ui/declare-served-fonts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEzE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAA;AAE7D;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAgB,QAAQ,EACxB,aAAqB,gBAAgB,EAAE;IAEvC,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAA;IAC1D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,GAAG,qBAAqB,CAAA;IAChC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;IAC/B,KAAK,CAAC,WAAW,GAAG,GAAG,CAAA;IACvB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=declare-served-fonts.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declare-served-fonts.test.d.ts","sourceRoot":"","sources":["../../src/ui/declare-served-fonts.test.ts"],"names":[],"mappings":""}