@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,161 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Children, useId } from "react";
3
+ import { Button, cn, MICRO_LABEL, useLocale } from "@miragon/mcp-toolkit-ui";
4
+ import { Maximize2 } from "lucide-react";
5
+ import { formatNumber } from "./format.js";
6
+ import { Icon } from "./icon.js";
7
+ import { useInlineBudget, useRowsBudgeted } from "./inline-budget.js";
8
+ import { useInlineRows } from "./inline-fit.js";
9
+ import { kitLabels } from "./kit-labels.js";
10
+ import { Th } from "./table.js";
11
+ /**
12
+ * The scroll region's focus ring, drawn INSIDE its box: the region usually
13
+ * fills a card or a bordered wrapper edge to edge, often one that clips its
14
+ * overflow, so the toolkit's outset `FOCUS_RING` (a box-shadow 2 px off the
15
+ * element) is cut away there and keyboard focus turns invisible (WCAG
16
+ * 2.4.7). Neither the region's own inset shadow (`FOCUS_RING_INSET`) nor its
17
+ * own outline would do: the header and row fills paint over the one, and the
18
+ * pinned action column (a positioned cell) over both. So the ring is a
19
+ * sibling laid over the region's box, above the pinned column, that shows
20
+ * while the region (the `peer`) has keyboard focus: same `--focus` role and
21
+ * 2 px as the kit's ring, an outline pulled inward, which stays visible in
22
+ * forced-colours mode.
23
+ */
24
+ export const REGION_FOCUS_RING = "peer-focus-visible:outline-2 peer-focus-visible:outline-solid peer-focus-visible:outline-focus peer-focus-visible:-outline-offset-2";
25
+ /** Above the pinned column's `z-index: 1` (see {@link listTableCss}). */
26
+ const RING_LAYER = "pointer-events-none absolute inset-0 z-[2] rounded-sm";
27
+ /**
28
+ * Container widths below which a `hideBelow` column is hidden — the region's
29
+ * OWN width (a container query), so a table in a narrow split column hides
30
+ * like one in a narrow host. `sm` 40rem (640 px), `md` 48rem (768 px: hidden
31
+ * in a 760 px inline view, shown in fullscreen), `lg` 64rem (1024 px).
32
+ */
33
+ export const COLUMN_BREAKPOINTS = { sm: "40rem", md: "48rem", lg: "64rem" };
34
+ /** Where each group sits: its position in the group row and the columns it covers. */
35
+ function groupLayout(columns, groups) {
36
+ let first = 0;
37
+ const layout = groups.map((group, index) => {
38
+ const span = group.span ?? 1;
39
+ if (!Number.isInteger(span) || span < 1) {
40
+ throw new Error(`ListTable: group ${index + 1} spans ${span} columns; a span is 1 or more`);
41
+ }
42
+ const entry = { position: index + 1, first, span };
43
+ first += span;
44
+ return entry;
45
+ });
46
+ if (first !== columns.length) {
47
+ throw new Error(`ListTable: the groups cover ${first} columns, the table has ${columns.length}; cover each column once`);
48
+ }
49
+ for (const { first: start, span } of layout) {
50
+ if (span === 1)
51
+ continue;
52
+ const hidden = columns.slice(start, start + span).findIndex((c) => c.hideBelow);
53
+ if (hidden >= 0) {
54
+ throw new Error(`ListTable: column ${start + hidden + 1} hides, but sits under a group of ${span}; a column under a group of several never hides`);
55
+ }
56
+ }
57
+ return layout;
58
+ }
59
+ /** `display: none` below the breakpoint, a table cell from it on. */
60
+ function hideRules(cell, below) {
61
+ const width = COLUMN_BREAKPOINTS[below];
62
+ return [
63
+ `${cell} { display: none; }`,
64
+ `@container (min-width: ${width}) { ${cell} { display: table-cell; } }`,
65
+ ];
66
+ }
67
+ /**
68
+ * The scoped rules of one table: hidden columns per container width and the
69
+ * pinned action column. Rows are hand-composed, so the rules address cell
70
+ * POSITIONS (`tr > :nth-child(n)`) — one cell per column, as every list
71
+ * renders them — and a row cannot drift from its header. The group row (if
72
+ * any) is addressed by its own positions: a group of one follows its column.
73
+ */
74
+ export function listTableCss(scope, columns, groups) {
75
+ const at = `[data-list-table="${scope}"]`;
76
+ const rows = groups ? `${at} tr:not([data-list-table-groups])` : `${at} tr`;
77
+ const groupRow = `${at} tr[data-list-table-groups]`;
78
+ const layout = groups ? groupLayout(columns, groups) : [];
79
+ /** The group-row cell over column `index` when it heads that column alone. */
80
+ const ownGroupCell = (index) => {
81
+ const group = layout.find((g) => g.first === index && g.span === 1);
82
+ return group ? `${groupRow} > :nth-child(${group.position})` : undefined;
83
+ };
84
+ const rules = [];
85
+ columns.forEach((column, index) => {
86
+ const cells = [`${rows} > :nth-child(${index + 1})`, ownGroupCell(index)].filter((cell) => cell !== undefined);
87
+ if (column.hideBelow) {
88
+ for (const cell of cells)
89
+ rules.push(...hideRules(cell, column.hideBelow));
90
+ }
91
+ if (column.sticky && index === columns.length - 1) {
92
+ if (groups && !ownGroupCell(index)) {
93
+ throw new Error("ListTable: the pinned last column needs a group of its own");
94
+ }
95
+ // The pinned cell paints its ROW's background (`inherit`), so a row's
96
+ // hover, selection or dimming covers it too. Rows get the surface as a
97
+ // default of zero specificity (`:where`): a row's own class wins, and
98
+ // a table on another surface sets `--list-table-surface`.
99
+ rules.push(`:where(${at} tbody tr) { background-color: var(--list-table-surface, var(--card)); }`, `:where(${at} thead tr) { background-color: var(--muted); }`, ...cells.map((cell) => `${cell} { position: sticky; right: 0; z-index: 1; background-color: inherit; }`));
100
+ }
101
+ });
102
+ return rules.join("\n");
103
+ }
104
+ /**
105
+ * The group row: a head per group, an empty cell over a column in none. A
106
+ * head is a column header (`scope="col"`) spanning its columns: the HTML
107
+ * table model assigns it to every cell below the columns it spans.
108
+ * `scope="colgroup"` would need a `<colgroup>` element to anchor it, and the
109
+ * table has none (a `<col>` element also keeps a hidden column in the table
110
+ * model).
111
+ */
112
+ function GroupRow({ groups }) {
113
+ return (_jsx("tr", { "data-list-table-groups": "", children: groups.map((group, index) => group.label === undefined ? (_jsx("td", { colSpan: group.span ?? 1, className: "border-border border-t" }, index)) : (_jsx("th", { scope: "col", colSpan: group.span ?? 1, className: cn("border-border text-foreground border-t border-l px-4 pt-2.5 pb-1 text-center", MICRO_LABEL), children: group.label }, index))) }));
114
+ }
115
+ /**
116
+ * The cockpit table FRAME — the scroll region, the `<table>`/`<thead>` and
117
+ * the `Th` header row every list used to hand-copy. Rows stay hand-composed
118
+ * `<tr>` + `Td` per widget, because the cells are where lists legitimately
119
+ * differ (badges, inline mutations, AI hand-offs). Pair with
120
+ * {@link TableEmptyState} instead of rendering an empty frame.
121
+ *
122
+ * The table never widens the document: it scrolls sideways inside a named,
123
+ * keyboard-reachable region (`role="region"`, `tabIndex=0`, WCAG 1.4.10 and
124
+ * 2.1.1), its row actions can stay pinned at the right edge (`sticky` on the
125
+ * last column), and columns a reader can do without hide in a narrow region
126
+ * (`hideBelow`). Dense table text: 14 px (`text-dense`, the product exception
127
+ * of the type scale), heads 13 px semibold.
128
+ *
129
+ * Inline in a chat (#396) it shows the head of its rows, as many as fit the
130
+ * view's height budget (`useInlineRows`, measured on the rendered view), and
131
+ * a last row says how many there are and offers the rest: fullscreen where
132
+ * the host offers it, else the next rows in place. A paged list fits its rows
133
+ * as one list (`PagedRows`): a table inside one is never capped twice, it
134
+ * hands its body to the paged list's fit instead.
135
+ */
136
+ export function ListTable({ columns, groups, ariaLabel, className, children, }) {
137
+ const scope = useId();
138
+ const css = listTableCss(scope, columns, groups);
139
+ const budget = useInlineBudget();
140
+ const paged = useRowsBudgeted();
141
+ const rows = Children.toArray(children);
142
+ const own = useInlineRows(rows.length, { enabled: paged === null });
143
+ const cap = paged ? null : own.cap;
144
+ const capped = cap !== null && rows.length > cap;
145
+ const showMore = budget.expand ?? (() => own.reveal(own.step));
146
+ return (_jsxs("div", { className: "relative w-full min-w-0", children: [_jsxs("div", { role: "region", "aria-label": ariaLabel,
147
+ // A scrollable region must be reachable by keyboard to scroll it.
148
+ tabIndex: 0, "data-list-table": scope, className: "peer @container w-full min-w-0 overflow-x-auto rounded-sm focus-visible:outline-hidden", children: [css && _jsx("style", { children: css }), _jsxs("table", { className: cn("text-dense w-full border-collapse", className), "aria-label": ariaLabel, children: [_jsxs("thead", { className: "bg-muted", children: [groups && _jsx(GroupRow, { groups: groups }), _jsx("tr", { children: columns.map((column, index) => (_jsx(Th, { align: column.align, plain: column.plain, sort: column.sort, className: column.className, children: column.label }, index))) })] }), _jsx("tbody", { ref: paged ? paged.attachRows : own.attachRows, children: capped ? rows.slice(0, cap) : rows }), capped && (_jsx(MoreRows, { colSpan: columns.length, shown: cap, total: rows.length, fullscreen: budget.expand !== null, onShowMore: showMore }))] })] }), _jsx("span", { "aria-hidden": "true", "data-list-table-ring": "", className: cn(RING_LAYER, REGION_FOCUS_RING) })] }));
149
+ }
150
+ /**
151
+ * The last row of an inline table with more rows than its budget: how many
152
+ * it shows, and the way to the rest. A footer of its own (`<tfoot>`), so the
153
+ * position rules of the body rows never address it; its one cell spans every
154
+ * column and always shows (`display` set on the cell beats a hidden column's
155
+ * rule).
156
+ */
157
+ function MoreRows({ colSpan, shown, total, fullscreen, onShowMore, }) {
158
+ const labels = kitLabels(useLocale());
159
+ return (_jsx("tfoot", { children: _jsx("tr", { "data-list-table-more": "", children: _jsx("td", { colSpan: colSpan, style: { display: "table-cell" }, className: "border-border border-t px-4 py-2", children: _jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsx("span", { className: "text-muted-foreground text-small", "aria-live": "polite", children: labels.rowsShown({ shown: formatNumber(shown), total: formatNumber(total) }) }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: onShowMore, children: [fullscreen && _jsx(Icon, { icon: Maximize2, dense: true }), fullscreen ? labels.showAll : labels.showMore] })] }) }) }) }));
160
+ }
161
+ //# sourceMappingURL=list-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-table.js","sourceRoot":"","sources":["../../src/ui/list-table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=list-table.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-table.test.d.ts","sourceRoot":"","sources":["../../src/ui/list-table.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,169 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ // @vitest-environment happy-dom
3
+ import { afterEach, describe, expect, it } from "vitest";
4
+ import { cleanup, render, screen } from "@testing-library/react";
5
+ import { COLUMN_BREAKPOINTS, ListTable, listTableCss, REGION_FOCUS_RING, } from "./list-table.js";
6
+ import { Td } from "./table.js";
7
+ afterEach(cleanup);
8
+ const COLUMNS = [
9
+ { label: "Activity" },
10
+ { label: "Process", hideBelow: "sm" },
11
+ { label: "Created", align: "right", hideBelow: "md" },
12
+ { plain: true, sticky: true },
13
+ ];
14
+ function Jobs() {
15
+ return (_jsx(ListTable, { ariaLabel: "Failed jobs", columns: COLUMNS, children: _jsxs("tr", { children: [_jsx(Td, { children: "Send invoice" }), _jsx(Td, { children: "invoice" }), _jsx(Td, { align: "right", children: "10:00" }), _jsx(Td, { align: "right", children: _jsx("button", { type: "button", children: "Retry" }) })] }) }));
16
+ }
17
+ describe("ListTable: the table never widens the document (U2, WCAG 1.4.10)", () => {
18
+ it("scrolls inside a named region a keyboard can reach", () => {
19
+ render(_jsx(Jobs, {}));
20
+ const region = screen.getByRole("region", { name: "Failed jobs" });
21
+ expect(region.getAttribute("tabindex")).toBe("0");
22
+ expect(region.className).toContain("overflow-x-auto");
23
+ // A container: the column priorities read the REGION's width.
24
+ expect(region.className).toContain("@container");
25
+ expect(region.className).toContain("min-w-0");
26
+ expect(region.contains(screen.getByRole("table", { name: "Failed jobs" }))).toBe(true);
27
+ });
28
+ it("draws its focus ring inside its own box, where no clipping wrapper can cut it", () => {
29
+ render(_jsx(Jobs, {}));
30
+ const region = screen.getByRole("region");
31
+ const regionClasses = region.className.split(/\s+/);
32
+ // The region is the peer and draws no ring of its own: the toolkit's
33
+ // outset ring is cut away by the `overflow-hidden` cards it fills edge
34
+ // to edge (shell:data-table, history), and the pinned column covers an
35
+ // outline of the region itself.
36
+ expect(regionClasses).toContain("peer");
37
+ expect(regionClasses.some((c) => c.includes("ring"))).toBe(false);
38
+ // The ring: the region's next sibling, over its box, inside its edge,
39
+ // above the pinned column, never in the accessibility tree or a click's way.
40
+ const ring = region.nextElementSibling;
41
+ expect(ring.hasAttribute("data-list-table-ring")).toBe(true);
42
+ expect(ring.getAttribute("aria-hidden")).toBe("true");
43
+ const ringClasses = ring.className.split(/\s+/);
44
+ for (const name of REGION_FOCUS_RING.split(" "))
45
+ expect(ringClasses).toContain(name);
46
+ expect(ringClasses).toEqual(expect.arrayContaining([
47
+ "peer-focus-visible:-outline-offset-2",
48
+ "absolute",
49
+ "inset-0",
50
+ "z-[2]",
51
+ "pointer-events-none",
52
+ ]));
53
+ // Its frame does not scroll, so the ring stays put while the table does.
54
+ expect(region.parentElement.className.split(/\s+/)).toContain("relative");
55
+ expect(region.parentElement.className).not.toContain("overflow");
56
+ });
57
+ it("sets the rows in the dense table step, the heads in the 13 px caption", () => {
58
+ render(_jsx(Jobs, {}));
59
+ expect(screen.getByRole("table").className).toContain("text-dense");
60
+ const head = screen.getByRole("columnheader", { name: "Activity" });
61
+ expect(head.className).toContain("text-small");
62
+ expect(head.className).toContain("font-semibold");
63
+ expect(screen.getByRole("cell", { name: "Send invoice" }).className).toContain("text-dense");
64
+ });
65
+ it("hides low-priority columns and pins the actions through rules scoped to this table", () => {
66
+ const { container } = render(_jsx(Jobs, {}));
67
+ const region = screen.getByRole("region");
68
+ const scope = region.getAttribute("data-list-table");
69
+ const css = container.querySelector("style")?.textContent ?? "";
70
+ expect(css).toBe(listTableCss(scope, COLUMNS));
71
+ const at = `[data-list-table="${scope}"]`;
72
+ expect(css).toContain(`${at} tr > :nth-child(2) { display: none; }`);
73
+ expect(css).toContain(`@container (min-width: ${COLUMN_BREAKPOINTS.sm}) { ${at} tr > :nth-child(2) { display: table-cell; } }`);
74
+ expect(css).toContain(`@container (min-width: 48rem) { ${at} tr > :nth-child(3)`);
75
+ // The pinned cell paints its row's background, so a hovered, selected or
76
+ // dimmed row covers it too; the rows' default surface has no specificity,
77
+ // so a row's own class wins.
78
+ expect(css).toContain(`${at} tr > :nth-child(4) { position: sticky; right: 0; z-index: 1; background-color: inherit; }`);
79
+ expect(css).toContain(`:where(${at} tbody tr) { background-color: var(--list-table-surface, var(--card)); }`);
80
+ expect(css).toContain(`:where(${at} thead tr) { background-color: var(--muted); }`);
81
+ });
82
+ it("scopes each table on its own", () => {
83
+ render(_jsxs(_Fragment, { children: [_jsx(Jobs, {}), _jsx(Jobs, {})] }));
84
+ const [a, b] = screen.getAllByRole("region");
85
+ expect(a.getAttribute("data-list-table")).not.toBe(b.getAttribute("data-list-table"));
86
+ });
87
+ it("renders no stylesheet for a table without priorities or pinned actions", () => {
88
+ const { container } = render(_jsx(ListTable, { ariaLabel: "Plain", columns: [{ label: "A" }, { label: "B" }], children: _jsxs("tr", { children: [_jsx(Td, { children: "a" }), _jsx(Td, { children: "b" })] }) }));
89
+ expect(container.querySelector("style")).toBeNull();
90
+ });
91
+ });
92
+ describe("listTableCss", () => {
93
+ it("pins only the LAST column, the row actions", () => {
94
+ const css = listTableCss("s", [{ label: "A", sticky: true }, { label: "B" }]);
95
+ expect(css).toBe("");
96
+ });
97
+ it("maps each breakpoint to its container width", () => {
98
+ for (const [name, width] of Object.entries(COLUMN_BREAKPOINTS)) {
99
+ const css = listTableCss("s", [
100
+ { label: "A", hideBelow: name },
101
+ ]);
102
+ expect(css).toContain(`@container (min-width: ${width})`);
103
+ }
104
+ expect(COLUMN_BREAKPOINTS).toEqual({ sm: "40rem", md: "48rem", lg: "64rem" });
105
+ });
106
+ });
107
+ const GROUPED = [
108
+ { label: "Engine" },
109
+ { label: "Running", align: "right" },
110
+ { label: "Incidents", align: "right" },
111
+ { label: "Executable", align: "right" },
112
+ { label: "Definitions", align: "right", hideBelow: "md" },
113
+ { plain: true, sticky: true },
114
+ ];
115
+ describe("ListTable: column groups (a head over adjacent columns)", () => {
116
+ function Grouped() {
117
+ return (_jsx(ListTable, { ariaLabel: "Engines", columns: GROUPED, groups: [{}, { label: "Load", span: 2 }, { label: "Backlog" }, {}, {}], children: _jsxs("tr", { children: [_jsx(Td, { children: "prod" }), _jsx(Td, { align: "right", children: "1" }), _jsx(Td, { align: "right", children: "2" }), _jsx(Td, { align: "right", children: "3" }), _jsx(Td, { align: "right", children: "4" }), _jsx(Td, { align: "right", children: _jsx("button", { type: "button", children: "Compare" }) })] }) }));
118
+ }
119
+ it("heads the groups in a row above the column heads, each over its columns", () => {
120
+ render(_jsx(Grouped, {}));
121
+ const rows = screen.getByRole("table").querySelectorAll("thead tr");
122
+ expect(rows).toHaveLength(2);
123
+ const groupRow = rows[0];
124
+ expect(groupRow.hasAttribute("data-list-table-groups")).toBe(true);
125
+ const load = screen.getByRole("columnheader", { name: "Load" });
126
+ // A column header over the columns it spans: `colgroup` needs a
127
+ // `<colgroup>` element to anchor it, which the table does not have.
128
+ expect(load.getAttribute("scope")).toBe("col");
129
+ expect(load.getAttribute("colspan")).toBe("2");
130
+ expect(screen.getByRole("table").querySelector("colgroup, [scope='colgroup']")).toBeNull();
131
+ expect(screen.getByRole("columnheader", { name: "Backlog" }).getAttribute("colspan")).toBe("1");
132
+ // A column in no group gets an empty cell, not an empty header.
133
+ expect(groupRow.querySelectorAll("td")).toHaveLength(3);
134
+ });
135
+ it("keeps the column rules off the group row and lets a group of one follow its column", () => {
136
+ const { container } = render(_jsx(Grouped, {}));
137
+ const scope = screen.getByRole("region").getAttribute("data-list-table");
138
+ const at = `[data-list-table="${scope}"]`;
139
+ const css = container.querySelector("style")?.textContent ?? "";
140
+ expect(css).toContain(`${at} tr:not([data-list-table-groups]) > :nth-child(5) { display: none; }`);
141
+ // "Definitions" is column 5 and the group row's 4th cell.
142
+ expect(css).toContain(`${at} tr[data-list-table-groups] > :nth-child(4) { display: none; }`);
143
+ expect(css).toContain(`${at} tr[data-list-table-groups] > :nth-child(5) { position: sticky; right: 0; z-index: 1; background-color: inherit; }`);
144
+ });
145
+ it("refuses groups that do not cover each column once, or a hidden column in a span", () => {
146
+ expect(() => listTableCss("s", GROUPED, [{ span: 2 }])).toThrow(/cover 2 columns.*has 6/);
147
+ expect(() => listTableCss("s", GROUPED, [{ span: 0 }, { span: 6 }])).toThrow(/spans 0/);
148
+ expect(() => listTableCss("s", GROUPED, [{}, {}, {}, { label: "Mixed", span: 2 }, {}])).toThrow(/column 5 hides, but sits under a group of 2/);
149
+ const shown = GROUPED.map((column) => ({ ...column, hideBelow: undefined }));
150
+ expect(() => listTableCss("s", shown, [{}, {}, {}, {}, { label: "End", span: 2 }])).toThrow(/pinned last column needs a group of its own/);
151
+ });
152
+ });
153
+ describe("ListTable: the sorted column", () => {
154
+ it("says the order in aria-sort and with a direction arrow", () => {
155
+ render(_jsx(ListTable, { ariaLabel: "Activities", columns: [
156
+ { label: "Activity" },
157
+ { label: "Total time", align: "right", sort: "descending" },
158
+ { label: "Name", sort: "ascending" },
159
+ ], children: _jsxs("tr", { children: [_jsx(Td, { children: "a" }), _jsx(Td, { align: "right", children: "1" }), _jsx(Td, { children: "n" })] }) }));
160
+ const total = screen.getByRole("columnheader", { name: "Total time" });
161
+ expect(total.getAttribute("aria-sort")).toBe("descending");
162
+ expect(total.querySelector("svg")?.getAttribute("class")).toContain("lucide-arrow-down");
163
+ expect(total.querySelector("span")?.className).toContain("flex-row-reverse");
164
+ const name = screen.getByRole("columnheader", { name: "Name" });
165
+ expect(name.querySelector("svg")?.getAttribute("class")).toContain("lucide-arrow-up");
166
+ expect(screen.getByRole("columnheader", { name: "Activity" }).hasAttribute("aria-sort")).toBe(false);
167
+ });
168
+ });
169
+ //# sourceMappingURL=list-table.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-table.test.js","sourceRoot":"","sources":["../../src/ui/list-table.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { McpAppView, type DescribeViewError, type ViewTitleMode } from "@miragon/mcp-toolkit-ui/app";
2
+ import { type ComponentProps } from "react";
3
+ import { type ErrorKind, type ErrorSource } from "./describe-error.js";
4
+ /**
5
+ * Whether the toolkit's toolbar shows the view title, so a view has ONE
6
+ * title: a module's own view (`<module>_show_*`, `camunda7_open_cockpit`)
7
+ * renders its widget's heading (`WidgetHeader`, the cockpit's navigation),
8
+ * so the toolbar hides the title there; a composed `render-view` keeps it.
9
+ * A host that does not name the rendering tool keeps the title too.
10
+ */
11
+ export declare function viewTitleMode(toolName: string | undefined): ViewTitleMode;
12
+ /**
13
+ * Whether a failure's next step needs no Retry button: check the engine or
14
+ * Prometheus, ask whoever runs the server, ask in the chat. Every other kit
15
+ * hint says "try again" (or "go back to the list"), which a view can only
16
+ * keep where it offers Retry. Pinned against the words themselves, in both
17
+ * languages, next to the describer's test.
18
+ */
19
+ export declare function hintNeedsNoRetry(kind: ErrorKind, source: ErrorSource["type"]): boolean;
20
+ /**
21
+ * The view's failed rendering call in the kit's words ({@link describeError}):
22
+ * "Die Engine prod ist nicht erreichbar (HTTP 503)", the raw reason staying
23
+ * under the toolkit's "Details". The view offers Retry only where the host
24
+ * named the originating tool, and its own hint knows which ("Ask in the chat
25
+ * to open this view again" without): the kit's next step replaces it only
26
+ * where it promises no retry ("Prüf, ob die Engine läuft …",
27
+ * {@link hintNeedsNoRetry}). A reason the kit cannot classify — and a result
28
+ * the chat did not pass on — keeps the toolkit's own words.
29
+ */
30
+ export declare function viewErrorDescriber(locale: string | undefined): DescribeViewError;
31
+ /**
32
+ * The toolkit's McpAppView as every composed-server view mounts it. Its chrome
33
+ * (loading, error and cancelled states, toolbar buttons) speaks the locale the
34
+ * ProfileGate provides through the toolkit's own en/de catalog, the
35
+ * Fullscreen toggle renders only where the host offers fullscreen, and Lucide
36
+ * icons draw at the CI stroke (all toolkit 2.7). What stays here is the title
37
+ * policy ({@link viewTitleMode}) and the error words ({@link viewErrorDescriber}).
38
+ */
39
+ export declare function LocalizedAppView(props: Omit<ComponentProps<typeof McpAppView>, "titleMode" | "describeError">): import("react").JSX.Element;
40
+ //# sourceMappingURL=localized-app-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localized-app-view.d.ts","sourceRoot":"","sources":["../../src/ui/localized-app-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAA;AACpG,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAUpG;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAGtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAShF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC,+BAM9E"}
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useLocale } from "@miragon/mcp-toolkit-ui";
3
+ import { McpAppView } from "@miragon/mcp-toolkit-ui/app";
4
+ import { useMemo } from "react";
5
+ import { classifyError, describeError } from "./describe-error.js";
6
+ import { useShellHost } from "./shell-host.js";
7
+ /**
8
+ * The toolkit's framework view tool: a layout composed at call time (by the
9
+ * model or a saved dashboard), whose widgets carry no heading of their own
10
+ * (`shell:kpi-grid`, `shell:data-table`) — the view title is its one heading.
11
+ */
12
+ const COMPOSED_VIEW_TOOLS = new Set(["render-view"]);
13
+ /**
14
+ * Whether the toolkit's toolbar shows the view title, so a view has ONE
15
+ * title: a module's own view (`<module>_show_*`, `camunda7_open_cockpit`)
16
+ * renders its widget's heading (`WidgetHeader`, the cockpit's navigation),
17
+ * so the toolbar hides the title there; a composed `render-view` keeps it.
18
+ * A host that does not name the rendering tool keeps the title too.
19
+ */
20
+ export function viewTitleMode(toolName) {
21
+ return toolName === undefined || COMPOSED_VIEW_TOOLS.has(toolName) ? "show" : "hide";
22
+ }
23
+ /**
24
+ * Whether a failure's next step needs no Retry button: check the engine or
25
+ * Prometheus, ask whoever runs the server, ask in the chat. Every other kit
26
+ * hint says "try again" (or "go back to the list"), which a view can only
27
+ * keep where it offers Retry. Pinned against the words themselves, in both
28
+ * languages, next to the describer's test.
29
+ */
30
+ export function hintNeedsNoRetry(kind, source) {
31
+ if (kind === "unreachable")
32
+ return source !== "unknown";
33
+ return kind === "notOnServer" || kind === "unauthorized" || kind === "forbidden";
34
+ }
35
+ /**
36
+ * The view's failed rendering call in the kit's words ({@link describeError}):
37
+ * "Die Engine prod ist nicht erreichbar (HTTP 503)", the raw reason staying
38
+ * under the toolkit's "Details". The view offers Retry only where the host
39
+ * named the originating tool, and its own hint knows which ("Ask in the chat
40
+ * to open this view again" without): the kit's next step replaces it only
41
+ * where it promises no retry ("Prüf, ob die Engine läuft …",
42
+ * {@link hintNeedsNoRetry}). A reason the kit cannot classify — and a result
43
+ * the chat did not pass on — keeps the toolkit's own words.
44
+ */
45
+ export function viewErrorDescriber(locale) {
46
+ return (reason, info) => {
47
+ if (info?.kind === "blocked" || !reason)
48
+ return undefined;
49
+ const described = describeError(reason, locale);
50
+ if (described.kind === "unknown")
51
+ return undefined;
52
+ return hintNeedsNoRetry(described.kind, classifyError(reason).source.type)
53
+ ? { title: described.title, description: described.hint }
54
+ : { title: described.title };
55
+ };
56
+ }
57
+ /**
58
+ * The toolkit's McpAppView as every composed-server view mounts it. Its chrome
59
+ * (loading, error and cancelled states, toolbar buttons) speaks the locale the
60
+ * ProfileGate provides through the toolkit's own en/de catalog, the
61
+ * Fullscreen toggle renders only where the host offers fullscreen, and Lucide
62
+ * icons draw at the CI stroke (all toolkit 2.7). What stays here is the title
63
+ * policy ({@link viewTitleMode}) and the error words ({@link viewErrorDescriber}).
64
+ */
65
+ export function LocalizedAppView(props) {
66
+ const { toolName } = useShellHost();
67
+ const locale = useLocale();
68
+ const describe = useMemo(() => viewErrorDescriber(locale), [locale]);
69
+ return _jsx(McpAppView, { ...props, titleMode: viewTitleMode(toolName), describeError: describe });
70
+ }
71
+ //# sourceMappingURL=localized-app-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localized-app-view.js","sourceRoot":"","sources":["../../src/ui/localized-app-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAA8C,MAAM,6BAA6B,CAAA;AACpG,OAAO,EAAE,OAAO,EAAuB,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAoC,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C;;;;GAIG;AACH,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;AAEzE;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,QAA4B;IACxD,OAAO,QAAQ,KAAK,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;AACtF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAe,EAAE,MAA2B;IAC3E,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,MAAM,KAAK,SAAS,CAAA;IACvD,OAAO,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,WAAW,CAAA;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAA;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAClD,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACxE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,IAAI,EAAE;YACzD,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAA6E;IAE7E,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAA;IACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACpE,OAAO,KAAC,UAAU,OAAK,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,QAAQ,GAAI,CAAA;AAC/F,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Above this length a log/error text renders as an expandable disclosure
3
+ * instead of a plain line. THE single truncation policy for engine error
4
+ * messages — widgets previously cut at 50/60/160 chars each with their own
5
+ * markup.
6
+ */
7
+ export declare const LOG_TEXT_PREVIEW = 160;
8
+ /**
9
+ * The ONE frame for unbounded secondary text — an expanded log line, a stack
10
+ * trace, a variable value (#396): at most 320 px tall, scrolling inside. Text
11
+ * like this has no natural place to cut, so it scrolls; primary lists never
12
+ * do (they show the head of their rows, `useInlineBudget`).
13
+ */
14
+ export declare const TEXT_BLOCK_FRAME = "max-h-80 overflow-auto";
15
+ /**
16
+ * Canonical rendering for untrusted log-ish text (incident messages, exception
17
+ * traces): muted mono, em-dash when empty, single truncated line that expands
18
+ * to a bordered scrollable <pre> when longer than {@link LOG_TEXT_PREVIEW}.
19
+ */
20
+ export declare function LogText({ text, className, }: {
21
+ text: string | null | undefined;
22
+ className?: string;
23
+ }): import("react").JSX.Element;
24
+ //# sourceMappingURL=log-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-text.d.ts","sourceRoot":"","sources":["../../src/ui/log-text.tsx"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,2BAA2B,CAAA;AAExD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,+BAwBA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@miragon/mcp-toolkit-ui";
3
+ import { truncate } from "./format.js";
4
+ /**
5
+ * Above this length a log/error text renders as an expandable disclosure
6
+ * instead of a plain line. THE single truncation policy for engine error
7
+ * messages — widgets previously cut at 50/60/160 chars each with their own
8
+ * markup.
9
+ */
10
+ export const LOG_TEXT_PREVIEW = 160;
11
+ /**
12
+ * The ONE frame for unbounded secondary text — an expanded log line, a stack
13
+ * trace, a variable value (#396): at most 320 px tall, scrolling inside. Text
14
+ * like this has no natural place to cut, so it scrolls; primary lists never
15
+ * do (they show the head of their rows, `useInlineBudget`).
16
+ */
17
+ export const TEXT_BLOCK_FRAME = "max-h-80 overflow-auto";
18
+ /**
19
+ * Canonical rendering for untrusted log-ish text (incident messages, exception
20
+ * traces): muted mono, em-dash when empty, single truncated line that expands
21
+ * to a bordered scrollable <pre> when longer than {@link LOG_TEXT_PREVIEW}.
22
+ */
23
+ export function LogText({ text, className, }) {
24
+ if (!text)
25
+ return _jsx("span", { className: "text-muted-foreground", children: "\u2014" });
26
+ if (text.length <= LOG_TEXT_PREVIEW) {
27
+ return (_jsx("p", { className: cn("text-muted-foreground text-small font-mono break-words", className), children: text }));
28
+ }
29
+ return (_jsxs("details", { className: className, children: [_jsx("summary", { className: "text-muted-foreground text-small w-full cursor-pointer truncate rounded-sm font-mono", children: truncate(text, LOG_TEXT_PREVIEW) }), _jsx("pre", { className: cn("bg-muted border-border text-small mt-1 rounded-sm border p-2 font-mono whitespace-pre-wrap", TEXT_BLOCK_FRAME), children: text })] }));
30
+ }
31
+ //# sourceMappingURL=log-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-text.js","sourceRoot":"","sources":["../../src/ui/log-text.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AAExD;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,EACJ,SAAS,GAIV;IACC,IAAI,CAAC,IAAI;QAAE,OAAO,eAAM,SAAS,EAAC,uBAAuB,uBAAS,CAAA;IAClE,IAAI,IAAI,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACpC,OAAO,CACL,YAAG,SAAS,EAAE,EAAE,CAAC,wDAAwD,EAAE,SAAS,CAAC,YAClF,IAAI,GACH,CACL,CAAA;IACH,CAAC;IACD,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,aAC3B,kBAAS,SAAS,EAAC,sFAAsF,YACtG,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,GACzB,EACV,cACE,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,gBAAgB,CACjB,YAEA,IAAI,GACD,IACE,CACX,CAAA;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * One entry of an action menu (CI §8 "Menüs / Dropdowns"): an entry on the
3
+ * small radius in the dense text step, its icon in front, the blue-soft
4
+ * hover (`--accent`; in dark the lifted surface) and no button chrome of its
5
+ * own: the menu's card is the surface. The focused entry takes the same tint
6
+ * plus a ring drawn inside it, so a neighbouring entry never covers it.
7
+ *
8
+ * It goes with `role="menuitem"` and `tabIndex={-1}`: the menu moves the
9
+ * focus between its entries with the arrow keys, not with Tab.
10
+ */
11
+ export declare const MENU_ITEM: string;
12
+ //# sourceMappingURL=menu-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-item.d.ts","sourceRoot":"","sources":["../../src/ui/menu-item.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,QAKrB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { cn, FOCUS_RING_INSET } from "@miragon/mcp-toolkit-ui";
2
+ /**
3
+ * One entry of an action menu (CI §8 "Menüs / Dropdowns"): an entry on the
4
+ * small radius in the dense text step, its icon in front, the blue-soft
5
+ * hover (`--accent`; in dark the lifted surface) and no button chrome of its
6
+ * own: the menu's card is the surface. The focused entry takes the same tint
7
+ * plus a ring drawn inside it, so a neighbouring entry never covers it.
8
+ *
9
+ * It goes with `role="menuitem"` and `tabIndex={-1}`: the menu moves the
10
+ * focus between its entries with the arrow keys, not with Tab.
11
+ */
12
+ export const MENU_ITEM = cn("text-foreground text-dense flex w-full items-center gap-2 rounded-sm px-2.5 py-1.5 text-start font-medium whitespace-nowrap transition-colors", "hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground", "disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0", FOCUS_RING_INSET);
13
+ //# sourceMappingURL=menu-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu-item.js","sourceRoot":"","sources":["../../src/ui/menu-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE9D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CACzB,+IAA+I,EAC/I,2GAA2G,EAC3G,mEAAmE,EACnE,gBAAgB,CACjB,CAAA"}