@miragon/pulse-widget-shell 0.24.1 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (917) hide show
  1. package/README.md +134 -127
  2. package/dist/caller.d.ts +3 -0
  3. package/dist/caller.d.ts.map +1 -0
  4. package/dist/caller.js +18 -0
  5. package/dist/caller.js.map +1 -0
  6. package/dist/composed-server.d.ts +34 -66
  7. package/dist/composed-server.d.ts.map +1 -1
  8. package/dist/composed-server.js +130 -137
  9. package/dist/composed-server.js.map +1 -1
  10. package/dist/composition.d.ts +61 -111
  11. package/dist/composition.d.ts.map +1 -1
  12. package/dist/composition.js +120 -54
  13. package/dist/composition.js.map +1 -1
  14. package/dist/font-assets.d.ts +7 -28
  15. package/dist/font-assets.d.ts.map +1 -1
  16. package/dist/font-assets.js +11 -43
  17. package/dist/font-assets.js.map +1 -1
  18. package/dist/health.d.ts +9 -45
  19. package/dist/health.d.ts.map +1 -1
  20. package/dist/health.js +6 -24
  21. package/dist/health.js.map +1 -1
  22. package/dist/host-boot.d.ts +8 -38
  23. package/dist/host-boot.d.ts.map +1 -1
  24. package/dist/host-boot.js +10 -32
  25. package/dist/host-boot.js.map +1 -1
  26. package/dist/http-edge.d.ts +20 -76
  27. package/dist/http-edge.d.ts.map +1 -1
  28. package/dist/http-edge.js +17 -60
  29. package/dist/http-edge.js.map +1 -1
  30. package/dist/metrics.d.ts +6 -21
  31. package/dist/metrics.d.ts.map +1 -1
  32. package/dist/metrics.js +8 -36
  33. package/dist/metrics.js.map +1 -1
  34. package/dist/node-listener.d.ts +7 -39
  35. package/dist/node-listener.d.ts.map +1 -1
  36. package/dist/node-listener.js +6 -18
  37. package/dist/node-listener.js.map +1 -1
  38. package/dist/oauth-env.d.ts +15 -35
  39. package/dist/oauth-env.d.ts.map +1 -1
  40. package/dist/oauth-env.js +122 -62
  41. package/dist/oauth-env.js.map +1 -1
  42. package/dist/protocol/bpmn-names.d.ts +19 -0
  43. package/dist/protocol/bpmn-names.d.ts.map +1 -0
  44. package/dist/{bpmn-names.js → protocol/bpmn-names.js} +9 -38
  45. package/dist/protocol/bpmn-names.js.map +1 -0
  46. package/dist/protocol/served-fonts.d.ts +17 -0
  47. package/dist/protocol/served-fonts.d.ts.map +1 -0
  48. package/dist/protocol/served-fonts.js +30 -0
  49. package/dist/protocol/served-fonts.js.map +1 -0
  50. package/dist/protocol/tool-result.d.ts +24 -0
  51. package/dist/protocol/tool-result.d.ts.map +1 -0
  52. package/dist/protocol/tool-result.js +37 -0
  53. package/dist/protocol/tool-result.js.map +1 -0
  54. package/dist/protocol/translator.d.ts +14 -0
  55. package/dist/protocol/translator.d.ts.map +1 -0
  56. package/dist/protocol/translator.js +18 -0
  57. package/dist/protocol/translator.js.map +1 -0
  58. package/dist/protocol/view-name.d.ts +11 -0
  59. package/dist/protocol/view-name.d.ts.map +1 -0
  60. package/dist/protocol/view-name.js +23 -0
  61. package/dist/protocol/view-name.js.map +1 -0
  62. package/dist/request-context.d.ts +4 -33
  63. package/dist/request-context.d.ts.map +1 -1
  64. package/dist/request-context.js +11 -43
  65. package/dist/request-context.js.map +1 -1
  66. package/dist/server.d.ts +19 -39
  67. package/dist/server.d.ts.map +1 -1
  68. package/dist/server.js +28 -32
  69. package/dist/server.js.map +1 -1
  70. package/dist/testing/glossary.d.ts +4 -32
  71. package/dist/testing/glossary.d.ts.map +1 -1
  72. package/dist/testing/glossary.js +6 -30
  73. package/dist/testing/glossary.js.map +1 -1
  74. package/dist/testing/index.d.ts +1 -38
  75. package/dist/testing/index.d.ts.map +1 -1
  76. package/dist/testing/index.js +1 -38
  77. package/dist/testing/index.js.map +1 -1
  78. package/dist/tool-errors.d.ts +16 -0
  79. package/dist/tool-errors.d.ts.map +1 -0
  80. package/dist/tool-errors.js +23 -0
  81. package/dist/tool-errors.js.map +1 -0
  82. package/dist/tool-registrar.d.ts +29 -0
  83. package/dist/tool-registrar.d.ts.map +1 -0
  84. package/dist/tool-registrar.js +47 -0
  85. package/dist/tool-registrar.js.map +1 -0
  86. package/dist/tool-registration.d.ts +35 -0
  87. package/dist/tool-registration.d.ts.map +1 -0
  88. package/dist/tool-registration.js +80 -0
  89. package/dist/tool-registration.js.map +1 -0
  90. package/dist/tool-schema-trim.d.ts +1 -15
  91. package/dist/tool-schema-trim.d.ts.map +1 -1
  92. package/dist/tool-schema-trim.js +1 -16
  93. package/dist/tool-schema-trim.js.map +1 -1
  94. package/dist/toolsets.d.ts +10 -56
  95. package/dist/toolsets.d.ts.map +1 -1
  96. package/dist/toolsets.js +2 -10
  97. package/dist/toolsets.js.map +1 -1
  98. package/dist/ui/action-feedback.d.ts +4 -26
  99. package/dist/ui/action-feedback.d.ts.map +1 -1
  100. package/dist/ui/action-feedback.js +5 -19
  101. package/dist/ui/action-feedback.js.map +1 -1
  102. package/dist/ui/ask-ai-button.d.ts +6 -43
  103. package/dist/ui/ask-ai-button.d.ts.map +1 -1
  104. package/dist/ui/ask-ai-button.js +6 -18
  105. package/dist/ui/ask-ai-button.js.map +1 -1
  106. package/dist/ui/ask-ai-prompt.d.ts +6 -82
  107. package/dist/ui/ask-ai-prompt.d.ts.map +1 -1
  108. package/dist/ui/ask-ai-prompt.js +10 -77
  109. package/dist/ui/ask-ai-prompt.js.map +1 -1
  110. package/dist/ui/bpmn-tokens.d.ts +3 -48
  111. package/dist/ui/bpmn-tokens.d.ts.map +1 -1
  112. package/dist/ui/bpmn-tokens.js +3 -46
  113. package/dist/ui/bpmn-tokens.js.map +1 -1
  114. package/dist/ui/bpmn-zoom-controls.d.ts +4 -17
  115. package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -1
  116. package/dist/ui/bpmn-zoom-controls.js +2 -16
  117. package/dist/ui/bpmn-zoom-controls.js.map +1 -1
  118. package/dist/ui/call-observer.d.ts +35 -0
  119. package/dist/ui/call-observer.d.ts.map +1 -0
  120. package/dist/ui/call-observer.js +86 -0
  121. package/dist/ui/call-observer.js.map +1 -0
  122. package/dist/ui/confirm-dialog.d.ts +4 -31
  123. package/dist/ui/confirm-dialog.d.ts.map +1 -1
  124. package/dist/ui/confirm-dialog.js +4 -27
  125. package/dist/ui/confirm-dialog.js.map +1 -1
  126. package/dist/ui/count-tone.d.ts +3 -17
  127. package/dist/ui/count-tone.d.ts.map +1 -1
  128. package/dist/ui/count-tone.js +2 -16
  129. package/dist/ui/count-tone.js.map +1 -1
  130. package/dist/ui/declare-served-fonts.d.ts +4 -10
  131. package/dist/ui/declare-served-fonts.d.ts.map +1 -1
  132. package/dist/ui/declare-served-fonts.js +6 -13
  133. package/dist/ui/declare-served-fonts.js.map +1 -1
  134. package/dist/ui/describe-error.d.ts +5 -47
  135. package/dist/ui/describe-error.d.ts.map +1 -1
  136. package/dist/ui/describe-error.js +8 -45
  137. package/dist/ui/describe-error.js.map +1 -1
  138. package/dist/ui/display-mode-toggle.d.ts +3 -16
  139. package/dist/ui/display-mode-toggle.d.ts.map +1 -1
  140. package/dist/ui/display-mode-toggle.js +6 -15
  141. package/dist/ui/display-mode-toggle.js.map +1 -1
  142. package/dist/ui/error-labels.d.ts +3 -19
  143. package/dist/ui/error-labels.d.ts.map +1 -1
  144. package/dist/ui/error-labels.js +0 -1
  145. package/dist/ui/error-labels.js.map +1 -1
  146. package/dist/ui/hand-off-button.d.ts +3 -18
  147. package/dist/ui/hand-off-button.d.ts.map +1 -1
  148. package/dist/ui/hand-off-button.js +3 -18
  149. package/dist/ui/hand-off-button.js.map +1 -1
  150. package/dist/ui/host-context.d.ts +13 -50
  151. package/dist/ui/host-context.d.ts.map +1 -1
  152. package/dist/ui/host-context.js +20 -51
  153. package/dist/ui/host-context.js.map +1 -1
  154. package/dist/ui/host-contexts.d.ts +19 -0
  155. package/dist/ui/host-contexts.d.ts.map +1 -0
  156. package/dist/ui/host-contexts.js +31 -0
  157. package/dist/ui/host-contexts.js.map +1 -0
  158. package/dist/ui/host-document.d.ts +3 -18
  159. package/dist/ui/host-document.d.ts.map +1 -1
  160. package/dist/ui/host-document.js +7 -25
  161. package/dist/ui/host-document.js.map +1 -1
  162. package/dist/ui/host-widgets.d.ts +21 -4
  163. package/dist/ui/host-widgets.d.ts.map +1 -1
  164. package/dist/ui/host-widgets.js +19 -11
  165. package/dist/ui/host-widgets.js.map +1 -1
  166. package/dist/ui/id-text.d.ts +1 -17
  167. package/dist/ui/id-text.d.ts.map +1 -1
  168. package/dist/ui/id-text.js +5 -26
  169. package/dist/ui/id-text.js.map +1 -1
  170. package/dist/ui/index.d.ts +24 -43
  171. package/dist/ui/index.d.ts.map +1 -1
  172. package/dist/ui/index.js +36 -51
  173. package/dist/ui/index.js.map +1 -1
  174. package/dist/ui/inline-budget.d.ts +2 -16
  175. package/dist/ui/inline-budget.d.ts.map +1 -1
  176. package/dist/ui/inline-budget.js +1 -8
  177. package/dist/ui/inline-budget.js.map +1 -1
  178. package/dist/ui/inline-fit-registry.d.ts +4 -31
  179. package/dist/ui/inline-fit-registry.d.ts.map +1 -1
  180. package/dist/ui/inline-fit-registry.js +9 -27
  181. package/dist/ui/inline-fit-registry.js.map +1 -1
  182. package/dist/ui/inline-fit-solve.d.ts +5 -27
  183. package/dist/ui/inline-fit-solve.d.ts.map +1 -1
  184. package/dist/ui/inline-fit-solve.js +4 -23
  185. package/dist/ui/inline-fit-solve.js.map +1 -1
  186. package/dist/ui/inline-fit.d.ts +4 -53
  187. package/dist/ui/inline-fit.d.ts.map +1 -1
  188. package/dist/ui/inline-fit.js +16 -62
  189. package/dist/ui/inline-fit.js.map +1 -1
  190. package/dist/ui/kit-labels.d.ts +12 -51
  191. package/dist/ui/kit-labels.d.ts.map +1 -1
  192. package/dist/ui/kit-labels.js +18 -28
  193. package/dist/ui/kit-labels.js.map +1 -1
  194. package/dist/ui/list-table.d.ts +15 -69
  195. package/dist/ui/list-table.d.ts.map +1 -1
  196. package/dist/ui/list-table.js +11 -69
  197. package/dist/ui/list-table.js.map +1 -1
  198. package/dist/ui/locale-gate.d.ts +11 -0
  199. package/dist/ui/locale-gate.d.ts.map +1 -0
  200. package/dist/ui/locale-gate.js +53 -0
  201. package/dist/ui/locale-gate.js.map +1 -0
  202. package/dist/ui/mcp-use-host.d.ts +20 -0
  203. package/dist/ui/mcp-use-host.d.ts.map +1 -0
  204. package/dist/ui/mcp-use-host.js +162 -0
  205. package/dist/ui/mcp-use-host.js.map +1 -0
  206. package/dist/ui/open-in-cockpit-link.d.ts +2 -21
  207. package/dist/ui/open-in-cockpit-link.d.ts.map +1 -1
  208. package/dist/ui/open-in-cockpit-link.js +5 -20
  209. package/dist/ui/open-in-cockpit-link.js.map +1 -1
  210. package/dist/ui/paged-rows.d.ts +3 -14
  211. package/dist/ui/paged-rows.d.ts.map +1 -1
  212. package/dist/ui/paged-rows.js +4 -14
  213. package/dist/ui/paged-rows.js.map +1 -1
  214. package/dist/ui/query-fallback.d.ts +2 -16
  215. package/dist/ui/query-fallback.d.ts.map +1 -1
  216. package/dist/ui/query-fallback.js +2 -14
  217. package/dist/ui/query-fallback.js.map +1 -1
  218. package/dist/ui/shell-host.d.ts +13 -23
  219. package/dist/ui/shell-host.d.ts.map +1 -1
  220. package/dist/ui/shell-host.js +1 -46
  221. package/dist/ui/shell-host.js.map +1 -1
  222. package/dist/ui/test-view-host.d.ts +51 -0
  223. package/dist/ui/test-view-host.d.ts.map +1 -0
  224. package/dist/ui/test-view-host.js +72 -0
  225. package/dist/ui/test-view-host.js.map +1 -0
  226. package/dist/ui/tool-query.d.ts +41 -0
  227. package/dist/ui/tool-query.d.ts.map +1 -0
  228. package/dist/ui/tool-query.js +128 -0
  229. package/dist/ui/tool-query.js.map +1 -0
  230. package/dist/ui/use-apply-theme.d.ts +1 -8
  231. package/dist/ui/use-apply-theme.d.ts.map +1 -1
  232. package/dist/ui/use-apply-theme.js +1 -8
  233. package/dist/ui/use-apply-theme.js.map +1 -1
  234. package/dist/ui/use-bpmn-viewer.d.ts +39 -73
  235. package/dist/ui/use-bpmn-viewer.d.ts.map +1 -1
  236. package/dist/ui/use-bpmn-viewer.js +18 -66
  237. package/dist/ui/use-bpmn-viewer.js.map +1 -1
  238. package/dist/ui/use-detail-view.d.ts +4 -26
  239. package/dist/ui/use-detail-view.d.ts.map +1 -1
  240. package/dist/ui/use-detail-view.js +7 -28
  241. package/dist/ui/use-detail-view.js.map +1 -1
  242. package/dist/ui/use-paged-list-view.d.ts +5 -25
  243. package/dist/ui/use-paged-list-view.d.ts.map +1 -1
  244. package/dist/ui/use-paged-list-view.js +5 -14
  245. package/dist/ui/use-paged-list-view.js.map +1 -1
  246. package/dist/ui/use-paged-view-data.d.ts +11 -66
  247. package/dist/ui/use-paged-view-data.d.ts.map +1 -1
  248. package/dist/ui/use-paged-view-data.js +20 -53
  249. package/dist/ui/use-paged-view-data.js.map +1 -1
  250. package/dist/ui/view-call.d.ts +66 -0
  251. package/dist/ui/view-call.d.ts.map +1 -0
  252. package/dist/ui/view-call.js +63 -0
  253. package/dist/ui/view-call.js.map +1 -0
  254. package/dist/ui/view-data-state.d.ts +1 -31
  255. package/dist/ui/view-data-state.d.ts.map +1 -1
  256. package/dist/ui/view-data-state.js +3 -32
  257. package/dist/ui/view-data-state.js.map +1 -1
  258. package/dist/ui/view-error-boundary.d.ts +24 -0
  259. package/dist/ui/view-error-boundary.d.ts.map +1 -0
  260. package/dist/ui/view-error-boundary.js +33 -0
  261. package/dist/ui/view-error-boundary.js.map +1 -0
  262. package/dist/ui/view-frame.d.ts +15 -0
  263. package/dist/ui/view-frame.d.ts.map +1 -0
  264. package/dist/ui/view-frame.js +72 -0
  265. package/dist/ui/view-frame.js.map +1 -0
  266. package/dist/ui/view-host.d.ts +35 -0
  267. package/dist/ui/view-host.d.ts.map +1 -0
  268. package/dist/ui/view-host.js +18 -0
  269. package/dist/ui/view-host.js.map +1 -0
  270. package/dist/ui/view-meta.d.ts +6 -29
  271. package/dist/ui/view-meta.d.ts.map +1 -1
  272. package/dist/ui/view-meta.js +2 -13
  273. package/dist/ui/view-meta.js.map +1 -1
  274. package/dist/ui/view-refresh-state.d.ts +4 -18
  275. package/dist/ui/view-refresh-state.d.ts.map +1 -1
  276. package/dist/ui/view-refresh-state.js +1 -7
  277. package/dist/ui/view-refresh-state.js.map +1 -1
  278. package/dist/ui/view-root.d.ts +26 -0
  279. package/dist/ui/view-root.d.ts.map +1 -0
  280. package/dist/ui/view-root.js +48 -0
  281. package/dist/ui/view-root.js.map +1 -0
  282. package/dist/ui/views.d.ts +17 -0
  283. package/dist/ui/views.d.ts.map +1 -0
  284. package/dist/ui/views.js +11 -0
  285. package/dist/ui/views.js.map +1 -0
  286. package/dist/ui/widget-shell.d.ts +1 -13
  287. package/dist/ui/widget-shell.d.ts.map +1 -1
  288. package/dist/ui/widget-shell.js +5 -30
  289. package/dist/ui/widget-shell.js.map +1 -1
  290. package/dist/view-bundle.d.ts +15 -0
  291. package/dist/view-bundle.d.ts.map +1 -0
  292. package/dist/view-bundle.js +23 -0
  293. package/dist/view-bundle.js.map +1 -0
  294. package/dist/view-results.d.ts +12 -23
  295. package/dist/view-results.d.ts.map +1 -1
  296. package/dist/view-results.js +14 -11
  297. package/dist/view-results.js.map +1 -1
  298. package/dist/widget-tool-bindings.d.ts +19 -48
  299. package/dist/widget-tool-bindings.d.ts.map +1 -1
  300. package/dist/widget-tool-bindings.js +21 -49
  301. package/dist/widget-tool-bindings.js.map +1 -1
  302. package/package.json +24 -36
  303. package/dist/adapt-data-widget.d.ts +0 -7
  304. package/dist/adapt-data-widget.d.ts.map +0 -1
  305. package/dist/adapt-data-widget.js +0 -7
  306. package/dist/adapt-data-widget.js.map +0 -1
  307. package/dist/bpmn-names.d.ts +0 -42
  308. package/dist/bpmn-names.d.ts.map +0 -1
  309. package/dist/bpmn-names.js.map +0 -1
  310. package/dist/bpmn-names.test.d.ts +0 -2
  311. package/dist/bpmn-names.test.d.ts.map +0 -1
  312. package/dist/bpmn-names.test.js +0 -143
  313. package/dist/bpmn-names.test.js.map +0 -1
  314. package/dist/build-data-feed-result.test.d.ts +0 -2
  315. package/dist/build-data-feed-result.test.d.ts.map +0 -1
  316. package/dist/build-data-feed-result.test.js +0 -28
  317. package/dist/build-data-feed-result.test.js.map +0 -1
  318. package/dist/build-single-widget-view.test.d.ts +0 -2
  319. package/dist/build-single-widget-view.test.d.ts.map +0 -1
  320. package/dist/build-single-widget-view.test.js +0 -136
  321. package/dist/build-single-widget-view.test.js.map +0 -1
  322. package/dist/builder-texts.d.ts +0 -27
  323. package/dist/builder-texts.d.ts.map +0 -1
  324. package/dist/builder-texts.js +0 -32
  325. package/dist/builder-texts.js.map +0 -1
  326. package/dist/builder-texts.test.d.ts +0 -2
  327. package/dist/builder-texts.test.d.ts.map +0 -1
  328. package/dist/builder-texts.test.js +0 -54
  329. package/dist/builder-texts.test.js.map +0 -1
  330. package/dist/catalogue-sync.d.ts +0 -18
  331. package/dist/catalogue-sync.d.ts.map +0 -1
  332. package/dist/catalogue-sync.js +0 -31
  333. package/dist/catalogue-sync.js.map +0 -1
  334. package/dist/catalogue-sync.test.d.ts +0 -2
  335. package/dist/catalogue-sync.test.d.ts.map +0 -1
  336. package/dist/catalogue-sync.test.js +0 -22
  337. package/dist/catalogue-sync.test.js.map +0 -1
  338. package/dist/composed-server.edge.test.d.ts +0 -2
  339. package/dist/composed-server.edge.test.d.ts.map +0 -1
  340. package/dist/composed-server.edge.test.js +0 -184
  341. package/dist/composed-server.edge.test.js.map +0 -1
  342. package/dist/composed-server.fonts.test.d.ts +0 -2
  343. package/dist/composed-server.fonts.test.d.ts.map +0 -1
  344. package/dist/composed-server.fonts.test.js +0 -186
  345. package/dist/composed-server.fonts.test.js.map +0 -1
  346. package/dist/composed-server.test.d.ts +0 -2
  347. package/dist/composed-server.test.d.ts.map +0 -1
  348. package/dist/composed-server.test.js +0 -332
  349. package/dist/composed-server.test.js.map +0 -1
  350. package/dist/composition.test.d.ts +0 -2
  351. package/dist/composition.test.d.ts.map +0 -1
  352. package/dist/composition.test.js +0 -275
  353. package/dist/composition.test.js.map +0 -1
  354. package/dist/dashboard-store-postgres.d.ts +0 -43
  355. package/dist/dashboard-store-postgres.d.ts.map +0 -1
  356. package/dist/dashboard-store-postgres.js +0 -225
  357. package/dist/dashboard-store-postgres.js.map +0 -1
  358. package/dist/dashboard-store-postgres.test.d.ts +0 -2
  359. package/dist/dashboard-store-postgres.test.d.ts.map +0 -1
  360. package/dist/dashboard-store-postgres.test.js +0 -272
  361. package/dist/dashboard-store-postgres.test.js.map +0 -1
  362. package/dist/font-assets.test.d.ts +0 -2
  363. package/dist/font-assets.test.d.ts.map +0 -1
  364. package/dist/font-assets.test.js +0 -123
  365. package/dist/font-assets.test.js.map +0 -1
  366. package/dist/health.test.d.ts +0 -2
  367. package/dist/health.test.d.ts.map +0 -1
  368. package/dist/health.test.js +0 -140
  369. package/dist/health.test.js.map +0 -1
  370. package/dist/host-boot.test.d.ts +0 -2
  371. package/dist/host-boot.test.d.ts.map +0 -1
  372. package/dist/host-boot.test.js +0 -59
  373. package/dist/host-boot.test.js.map +0 -1
  374. package/dist/http-edge.test.d.ts +0 -2
  375. package/dist/http-edge.test.d.ts.map +0 -1
  376. package/dist/http-edge.test.js +0 -255
  377. package/dist/http-edge.test.js.map +0 -1
  378. package/dist/metrics.test.d.ts +0 -2
  379. package/dist/metrics.test.d.ts.map +0 -1
  380. package/dist/metrics.test.js +0 -154
  381. package/dist/metrics.test.js.map +0 -1
  382. package/dist/node-listener.test.d.ts +0 -2
  383. package/dist/node-listener.test.d.ts.map +0 -1
  384. package/dist/node-listener.test.js +0 -331
  385. package/dist/node-listener.test.js.map +0 -1
  386. package/dist/oauth-env.test.d.ts +0 -2
  387. package/dist/oauth-env.test.d.ts.map +0 -1
  388. package/dist/oauth-env.test.js +0 -76
  389. package/dist/oauth-env.test.js.map +0 -1
  390. package/dist/postgres.d.ts +0 -59
  391. package/dist/postgres.d.ts.map +0 -1
  392. package/dist/postgres.js +0 -80
  393. package/dist/postgres.js.map +0 -1
  394. package/dist/profile-advisory.d.ts +0 -19
  395. package/dist/profile-advisory.d.ts.map +0 -1
  396. package/dist/profile-advisory.js +0 -48
  397. package/dist/profile-advisory.js.map +0 -1
  398. package/dist/profile-advisory.test.d.ts +0 -2
  399. package/dist/profile-advisory.test.d.ts.map +0 -1
  400. package/dist/profile-advisory.test.js +0 -53
  401. package/dist/profile-advisory.test.js.map +0 -1
  402. package/dist/profile-constants.d.ts +0 -37
  403. package/dist/profile-constants.d.ts.map +0 -1
  404. package/dist/profile-constants.js +0 -37
  405. package/dist/profile-constants.js.map +0 -1
  406. package/dist/profile-migrations.d.ts +0 -71
  407. package/dist/profile-migrations.d.ts.map +0 -1
  408. package/dist/profile-migrations.js +0 -88
  409. package/dist/profile-migrations.js.map +0 -1
  410. package/dist/profile-migrations.test.d.ts +0 -2
  411. package/dist/profile-migrations.test.d.ts.map +0 -1
  412. package/dist/profile-migrations.test.js +0 -200
  413. package/dist/profile-migrations.test.js.map +0 -1
  414. package/dist/profile-record.d.ts +0 -60
  415. package/dist/profile-record.d.ts.map +0 -1
  416. package/dist/profile-record.js +0 -78
  417. package/dist/profile-record.js.map +0 -1
  418. package/dist/profile-slice.d.ts +0 -53
  419. package/dist/profile-slice.d.ts.map +0 -1
  420. package/dist/profile-slice.js +0 -73
  421. package/dist/profile-slice.js.map +0 -1
  422. package/dist/profile-slice.test.d.ts +0 -2
  423. package/dist/profile-slice.test.d.ts.map +0 -1
  424. package/dist/profile-slice.test.js +0 -73
  425. package/dist/profile-slice.test.js.map +0 -1
  426. package/dist/profile-store-env.d.ts +0 -34
  427. package/dist/profile-store-env.d.ts.map +0 -1
  428. package/dist/profile-store-env.js +0 -44
  429. package/dist/profile-store-env.js.map +0 -1
  430. package/dist/profile-store-env.test.d.ts +0 -2
  431. package/dist/profile-store-env.test.d.ts.map +0 -1
  432. package/dist/profile-store-env.test.js +0 -69
  433. package/dist/profile-store-env.test.js.map +0 -1
  434. package/dist/profile-store-postgres.d.ts +0 -33
  435. package/dist/profile-store-postgres.d.ts.map +0 -1
  436. package/dist/profile-store-postgres.js +0 -87
  437. package/dist/profile-store-postgres.js.map +0 -1
  438. package/dist/profile-store-raw.test.d.ts +0 -2
  439. package/dist/profile-store-raw.test.d.ts.map +0 -1
  440. package/dist/profile-store-raw.test.js +0 -185
  441. package/dist/profile-store-raw.test.js.map +0 -1
  442. package/dist/profile-store.d.ts +0 -85
  443. package/dist/profile-store.d.ts.map +0 -1
  444. package/dist/profile-store.js +0 -182
  445. package/dist/profile-store.js.map +0 -1
  446. package/dist/profile-store.test.d.ts +0 -2
  447. package/dist/profile-store.test.d.ts.map +0 -1
  448. package/dist/profile-store.test.js +0 -353
  449. package/dist/profile-store.test.js.map +0 -1
  450. package/dist/profile.d.ts +0 -75
  451. package/dist/profile.d.ts.map +0 -1
  452. package/dist/profile.js +0 -85
  453. package/dist/profile.js.map +0 -1
  454. package/dist/profile.test.d.ts +0 -2
  455. package/dist/profile.test.d.ts.map +0 -1
  456. package/dist/profile.test.js +0 -71
  457. package/dist/profile.test.js.map +0 -1
  458. package/dist/request-context.test.d.ts +0 -2
  459. package/dist/request-context.test.d.ts.map +0 -1
  460. package/dist/request-context.test.js +0 -107
  461. package/dist/request-context.test.js.map +0 -1
  462. package/dist/served-fonts.d.ts +0 -38
  463. package/dist/served-fonts.d.ts.map +0 -1
  464. package/dist/served-fonts.js +0 -51
  465. package/dist/served-fonts.js.map +0 -1
  466. package/dist/served-fonts.test.d.ts +0 -2
  467. package/dist/served-fonts.test.d.ts.map +0 -1
  468. package/dist/served-fonts.test.js +0 -30
  469. package/dist/served-fonts.test.js.map +0 -1
  470. package/dist/server-locale.d.ts +0 -58
  471. package/dist/server-locale.d.ts.map +0 -1
  472. package/dist/server-locale.js +0 -64
  473. package/dist/server-locale.js.map +0 -1
  474. package/dist/server-locale.test.d.ts +0 -2
  475. package/dist/server-locale.test.d.ts.map +0 -1
  476. package/dist/server-locale.test.js +0 -90
  477. package/dist/server-locale.test.js.map +0 -1
  478. package/dist/shell-catalogue.d.ts +0 -12
  479. package/dist/shell-catalogue.d.ts.map +0 -1
  480. package/dist/shell-catalogue.js +0 -142
  481. package/dist/shell-catalogue.js.map +0 -1
  482. package/dist/shell-settings-contract.d.ts +0 -34
  483. package/dist/shell-settings-contract.d.ts.map +0 -1
  484. package/dist/shell-settings-contract.js +0 -21
  485. package/dist/shell-settings-contract.js.map +0 -1
  486. package/dist/shell-settings.d.ts +0 -24
  487. package/dist/shell-settings.d.ts.map +0 -1
  488. package/dist/shell-settings.js +0 -148
  489. package/dist/shell-settings.js.map +0 -1
  490. package/dist/shell-settings.test.d.ts +0 -2
  491. package/dist/shell-settings.test.d.ts.map +0 -1
  492. package/dist/shell-settings.test.js +0 -115
  493. package/dist/shell-settings.test.js.map +0 -1
  494. package/dist/testing/catalog-text.d.ts +0 -53
  495. package/dist/testing/catalog-text.d.ts.map +0 -1
  496. package/dist/testing/catalog-text.js +0 -146
  497. package/dist/testing/catalog-text.js.map +0 -1
  498. package/dist/testing/catalog-text.test.d.ts +0 -2
  499. package/dist/testing/catalog-text.test.d.ts.map +0 -1
  500. package/dist/testing/catalog-text.test.js +0 -137
  501. package/dist/testing/catalog-text.test.js.map +0 -1
  502. package/dist/testing/colors.d.ts +0 -34
  503. package/dist/testing/colors.d.ts.map +0 -1
  504. package/dist/testing/colors.js +0 -124
  505. package/dist/testing/colors.js.map +0 -1
  506. package/dist/testing/colors.test.d.ts +0 -2
  507. package/dist/testing/colors.test.d.ts.map +0 -1
  508. package/dist/testing/colors.test.js +0 -166
  509. package/dist/testing/colors.test.js.map +0 -1
  510. package/dist/testing/contrast.d.ts +0 -77
  511. package/dist/testing/contrast.d.ts.map +0 -1
  512. package/dist/testing/contrast.js +0 -382
  513. package/dist/testing/contrast.js.map +0 -1
  514. package/dist/testing/contrast.test.d.ts +0 -2
  515. package/dist/testing/contrast.test.d.ts.map +0 -1
  516. package/dist/testing/contrast.test.js +0 -230
  517. package/dist/testing/contrast.test.js.map +0 -1
  518. package/dist/testing/display-texts.d.ts +0 -23
  519. package/dist/testing/display-texts.d.ts.map +0 -1
  520. package/dist/testing/display-texts.js +0 -88
  521. package/dist/testing/display-texts.js.map +0 -1
  522. package/dist/testing/display-texts.test.d.ts +0 -2
  523. package/dist/testing/display-texts.test.d.ts.map +0 -1
  524. package/dist/testing/display-texts.test.js +0 -169
  525. package/dist/testing/display-texts.test.js.map +0 -1
  526. package/dist/testing/glossary.test.d.ts +0 -2
  527. package/dist/testing/glossary.test.d.ts.map +0 -1
  528. package/dist/testing/glossary.test.js +0 -78
  529. package/dist/testing/glossary.test.js.map +0 -1
  530. package/dist/testing/glyphs.d.ts +0 -27
  531. package/dist/testing/glyphs.d.ts.map +0 -1
  532. package/dist/testing/glyphs.js +0 -130
  533. package/dist/testing/glyphs.js.map +0 -1
  534. package/dist/testing/glyphs.test.d.ts +0 -2
  535. package/dist/testing/glyphs.test.d.ts.map +0 -1
  536. package/dist/testing/glyphs.test.js +0 -146
  537. package/dist/testing/glyphs.test.js.map +0 -1
  538. package/dist/testing/icon-sizes.d.ts +0 -22
  539. package/dist/testing/icon-sizes.d.ts.map +0 -1
  540. package/dist/testing/icon-sizes.js +0 -39
  541. package/dist/testing/icon-sizes.js.map +0 -1
  542. package/dist/testing/icon-sizes.test.d.ts +0 -2
  543. package/dist/testing/icon-sizes.test.d.ts.map +0 -1
  544. package/dist/testing/icon-sizes.test.js +0 -36
  545. package/dist/testing/icon-sizes.test.js.map +0 -1
  546. package/dist/testing/source-scan.d.ts +0 -16
  547. package/dist/testing/source-scan.d.ts.map +0 -1
  548. package/dist/testing/source-scan.js +0 -57
  549. package/dist/testing/source-scan.js.map +0 -1
  550. package/dist/testing/tone-pairs.d.ts +0 -20
  551. package/dist/testing/tone-pairs.d.ts.map +0 -1
  552. package/dist/testing/tone-pairs.js +0 -154
  553. package/dist/testing/tone-pairs.js.map +0 -1
  554. package/dist/testing/type-scale.d.ts +0 -40
  555. package/dist/testing/type-scale.d.ts.map +0 -1
  556. package/dist/testing/type-scale.js +0 -55
  557. package/dist/testing/type-scale.js.map +0 -1
  558. package/dist/testing/type-scale.test.d.ts +0 -2
  559. package/dist/testing/type-scale.test.d.ts.map +0 -1
  560. package/dist/testing/type-scale.test.js +0 -61
  561. package/dist/testing/type-scale.test.js.map +0 -1
  562. package/dist/tool-schema-trim.test.d.ts +0 -2
  563. package/dist/tool-schema-trim.test.d.ts.map +0 -1
  564. package/dist/tool-schema-trim.test.js +0 -53
  565. package/dist/tool-schema-trim.test.js.map +0 -1
  566. package/dist/toolsets.test.d.ts +0 -2
  567. package/dist/toolsets.test.d.ts.map +0 -1
  568. package/dist/toolsets.test.js +0 -86
  569. package/dist/toolsets.test.js.map +0 -1
  570. package/dist/ui/action-feedback.test.d.ts +0 -2
  571. package/dist/ui/action-feedback.test.d.ts.map +0 -1
  572. package/dist/ui/action-feedback.test.js +0 -77
  573. package/dist/ui/action-feedback.test.js.map +0 -1
  574. package/dist/ui/app-shell-providers.d.ts +0 -18
  575. package/dist/ui/app-shell-providers.d.ts.map +0 -1
  576. package/dist/ui/app-shell-providers.js +0 -19
  577. package/dist/ui/app-shell-providers.js.map +0 -1
  578. package/dist/ui/app-shell-providers.test.d.ts +0 -2
  579. package/dist/ui/app-shell-providers.test.d.ts.map +0 -1
  580. package/dist/ui/app-shell-providers.test.js +0 -249
  581. package/dist/ui/app-shell-providers.test.js.map +0 -1
  582. package/dist/ui/ask-ai-button.test.d.ts +0 -2
  583. package/dist/ui/ask-ai-button.test.d.ts.map +0 -1
  584. package/dist/ui/ask-ai-button.test.js +0 -103
  585. package/dist/ui/ask-ai-button.test.js.map +0 -1
  586. package/dist/ui/ask-ai-prompt.test.d.ts +0 -2
  587. package/dist/ui/ask-ai-prompt.test.d.ts.map +0 -1
  588. package/dist/ui/ask-ai-prompt.test.js +0 -240
  589. package/dist/ui/ask-ai-prompt.test.js.map +0 -1
  590. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +0 -2
  591. package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +0 -1
  592. package/dist/ui/bpmn-heatmap/heat-ramp.test.js +0 -174
  593. package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +0 -1
  594. package/dist/ui/bpmn-heatmap/heat-utils.d.ts +0 -119
  595. package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +0 -1
  596. package/dist/ui/bpmn-heatmap/heat-utils.js +0 -231
  597. package/dist/ui/bpmn-heatmap/heat-utils.js.map +0 -1
  598. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +0 -2
  599. package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +0 -1
  600. package/dist/ui/bpmn-heatmap/heat-utils.test.js +0 -59
  601. package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +0 -1
  602. package/dist/ui/bpmn-heatmap-labels.d.ts +0 -46
  603. package/dist/ui/bpmn-heatmap-labels.d.ts.map +0 -1
  604. package/dist/ui/bpmn-heatmap-labels.js +0 -16
  605. package/dist/ui/bpmn-heatmap-labels.js.map +0 -1
  606. package/dist/ui/bpmn-heatmap-widget.d.ts +0 -38
  607. package/dist/ui/bpmn-heatmap-widget.d.ts.map +0 -1
  608. package/dist/ui/bpmn-heatmap-widget.js +0 -65
  609. package/dist/ui/bpmn-heatmap-widget.js.map +0 -1
  610. package/dist/ui/bpmn-heatmap-widget.test.d.ts +0 -2
  611. package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +0 -1
  612. package/dist/ui/bpmn-heatmap-widget.test.js +0 -173
  613. package/dist/ui/bpmn-heatmap-widget.test.js.map +0 -1
  614. package/dist/ui/bpmn-heatmap.d.ts +0 -61
  615. package/dist/ui/bpmn-heatmap.d.ts.map +0 -1
  616. package/dist/ui/bpmn-heatmap.js +0 -119
  617. package/dist/ui/bpmn-heatmap.js.map +0 -1
  618. package/dist/ui/bpmn-tokens.test.d.ts +0 -2
  619. package/dist/ui/bpmn-tokens.test.d.ts.map +0 -1
  620. package/dist/ui/bpmn-tokens.test.js +0 -98
  621. package/dist/ui/bpmn-tokens.test.js.map +0 -1
  622. package/dist/ui/brand-gates.test.d.ts +0 -2
  623. package/dist/ui/brand-gates.test.d.ts.map +0 -1
  624. package/dist/ui/brand-gates.test.js +0 -131
  625. package/dist/ui/brand-gates.test.js.map +0 -1
  626. package/dist/ui/brand-mark.d.ts +0 -37
  627. package/dist/ui/brand-mark.d.ts.map +0 -1
  628. package/dist/ui/brand-mark.js +0 -33
  629. package/dist/ui/brand-mark.js.map +0 -1
  630. package/dist/ui/brand-mark.test.d.ts +0 -2
  631. package/dist/ui/brand-mark.test.d.ts.map +0 -1
  632. package/dist/ui/brand-mark.test.js +0 -111
  633. package/dist/ui/brand-mark.test.js.map +0 -1
  634. package/dist/ui/confirm-dialog.test.d.ts +0 -2
  635. package/dist/ui/confirm-dialog.test.d.ts.map +0 -1
  636. package/dist/ui/confirm-dialog.test.js +0 -115
  637. package/dist/ui/confirm-dialog.test.js.map +0 -1
  638. package/dist/ui/count-tone.test.d.ts +0 -2
  639. package/dist/ui/count-tone.test.d.ts.map +0 -1
  640. package/dist/ui/count-tone.test.js +0 -27
  641. package/dist/ui/count-tone.test.js.map +0 -1
  642. package/dist/ui/create-use-t.d.ts +0 -15
  643. package/dist/ui/create-use-t.d.ts.map +0 -1
  644. package/dist/ui/create-use-t.js +0 -17
  645. package/dist/ui/create-use-t.js.map +0 -1
  646. package/dist/ui/declare-served-fonts.test.d.ts +0 -2
  647. package/dist/ui/declare-served-fonts.test.d.ts.map +0 -1
  648. package/dist/ui/declare-served-fonts.test.js +0 -44
  649. package/dist/ui/declare-served-fonts.test.js.map +0 -1
  650. package/dist/ui/describe-error.test.d.ts +0 -2
  651. package/dist/ui/describe-error.test.d.ts.map +0 -1
  652. package/dist/ui/describe-error.test.js +0 -274
  653. package/dist/ui/describe-error.test.js.map +0 -1
  654. package/dist/ui/format.d.ts +0 -81
  655. package/dist/ui/format.d.ts.map +0 -1
  656. package/dist/ui/format.js +0 -189
  657. package/dist/ui/format.js.map +0 -1
  658. package/dist/ui/format.test.d.ts +0 -2
  659. package/dist/ui/format.test.d.ts.map +0 -1
  660. package/dist/ui/format.test.js +0 -181
  661. package/dist/ui/format.test.js.map +0 -1
  662. package/dist/ui/generic-widgets.d.ts +0 -15
  663. package/dist/ui/generic-widgets.d.ts.map +0 -1
  664. package/dist/ui/generic-widgets.js +0 -122
  665. package/dist/ui/generic-widgets.js.map +0 -1
  666. package/dist/ui/generic-widgets.test.d.ts +0 -2
  667. package/dist/ui/generic-widgets.test.d.ts.map +0 -1
  668. package/dist/ui/generic-widgets.test.js +0 -139
  669. package/dist/ui/generic-widgets.test.js.map +0 -1
  670. package/dist/ui/hand-off-button.test.d.ts +0 -2
  671. package/dist/ui/hand-off-button.test.d.ts.map +0 -1
  672. package/dist/ui/hand-off-button.test.js +0 -78
  673. package/dist/ui/hand-off-button.test.js.map +0 -1
  674. package/dist/ui/host-context.test.d.ts +0 -2
  675. package/dist/ui/host-context.test.d.ts.map +0 -1
  676. package/dist/ui/host-context.test.js +0 -160
  677. package/dist/ui/host-context.test.js.map +0 -1
  678. package/dist/ui/host-document.test.d.ts +0 -2
  679. package/dist/ui/host-document.test.d.ts.map +0 -1
  680. package/dist/ui/host-document.test.js +0 -112
  681. package/dist/ui/host-document.test.js.map +0 -1
  682. package/dist/ui/humanize-key.d.ts +0 -11
  683. package/dist/ui/humanize-key.d.ts.map +0 -1
  684. package/dist/ui/humanize-key.js +0 -26
  685. package/dist/ui/humanize-key.js.map +0 -1
  686. package/dist/ui/humanize-key.test.d.ts +0 -2
  687. package/dist/ui/humanize-key.test.d.ts.map +0 -1
  688. package/dist/ui/humanize-key.test.js +0 -42
  689. package/dist/ui/humanize-key.test.js.map +0 -1
  690. package/dist/ui/icon.d.ts +0 -37
  691. package/dist/ui/icon.d.ts.map +0 -1
  692. package/dist/ui/icon.js +0 -32
  693. package/dist/ui/icon.js.map +0 -1
  694. package/dist/ui/id-breaks.d.ts +0 -17
  695. package/dist/ui/id-breaks.d.ts.map +0 -1
  696. package/dist/ui/id-breaks.js +0 -36
  697. package/dist/ui/id-breaks.js.map +0 -1
  698. package/dist/ui/id-breaks.test.d.ts +0 -2
  699. package/dist/ui/id-breaks.test.d.ts.map +0 -1
  700. package/dist/ui/id-breaks.test.js +0 -37
  701. package/dist/ui/id-breaks.test.js.map +0 -1
  702. package/dist/ui/id-text.test.d.ts +0 -2
  703. package/dist/ui/id-text.test.d.ts.map +0 -1
  704. package/dist/ui/id-text.test.js +0 -122
  705. package/dist/ui/id-text.test.js.map +0 -1
  706. package/dist/ui/index.test.d.ts +0 -2
  707. package/dist/ui/index.test.d.ts.map +0 -1
  708. package/dist/ui/index.test.js +0 -34
  709. package/dist/ui/index.test.js.map +0 -1
  710. package/dist/ui/inline-fit-solve.test.d.ts +0 -2
  711. package/dist/ui/inline-fit-solve.test.d.ts.map +0 -1
  712. package/dist/ui/inline-fit-solve.test.js +0 -108
  713. package/dist/ui/inline-fit-solve.test.js.map +0 -1
  714. package/dist/ui/inline-fit-time.test.d.ts +0 -2
  715. package/dist/ui/inline-fit-time.test.d.ts.map +0 -1
  716. package/dist/ui/inline-fit-time.test.js +0 -110
  717. package/dist/ui/inline-fit-time.test.js.map +0 -1
  718. package/dist/ui/inline-fit.test-support.d.ts +0 -26
  719. package/dist/ui/inline-fit.test-support.d.ts.map +0 -1
  720. package/dist/ui/inline-fit.test-support.js +0 -34
  721. package/dist/ui/inline-fit.test-support.js.map +0 -1
  722. package/dist/ui/inline-fit.test.d.ts +0 -2
  723. package/dist/ui/inline-fit.test.d.ts.map +0 -1
  724. package/dist/ui/inline-fit.test.js +0 -159
  725. package/dist/ui/inline-fit.test.js.map +0 -1
  726. package/dist/ui/kit-labels.test.d.ts +0 -2
  727. package/dist/ui/kit-labels.test.d.ts.map +0 -1
  728. package/dist/ui/kit-labels.test.js +0 -98
  729. package/dist/ui/kit-labels.test.js.map +0 -1
  730. package/dist/ui/kit-type-roles.test.d.ts +0 -2
  731. package/dist/ui/kit-type-roles.test.d.ts.map +0 -1
  732. package/dist/ui/kit-type-roles.test.js +0 -122
  733. package/dist/ui/kit-type-roles.test.js.map +0 -1
  734. package/dist/ui/komet-svg.d.ts +0 -15
  735. package/dist/ui/komet-svg.d.ts.map +0 -1
  736. package/dist/ui/komet-svg.js +0 -21
  737. package/dist/ui/komet-svg.js.map +0 -1
  738. package/dist/ui/list-table.test.d.ts +0 -2
  739. package/dist/ui/list-table.test.d.ts.map +0 -1
  740. package/dist/ui/list-table.test.js +0 -169
  741. package/dist/ui/list-table.test.js.map +0 -1
  742. package/dist/ui/localized-app-view.d.ts +0 -40
  743. package/dist/ui/localized-app-view.d.ts.map +0 -1
  744. package/dist/ui/localized-app-view.js +0 -71
  745. package/dist/ui/localized-app-view.js.map +0 -1
  746. package/dist/ui/log-text.d.ts +0 -24
  747. package/dist/ui/log-text.d.ts.map +0 -1
  748. package/dist/ui/log-text.js +0 -31
  749. package/dist/ui/log-text.js.map +0 -1
  750. package/dist/ui/menu-item.d.ts +0 -12
  751. package/dist/ui/menu-item.d.ts.map +0 -1
  752. package/dist/ui/menu-item.js +0 -13
  753. package/dist/ui/menu-item.js.map +0 -1
  754. package/dist/ui/named-id.d.ts +0 -23
  755. package/dist/ui/named-id.d.ts.map +0 -1
  756. package/dist/ui/named-id.js +0 -21
  757. package/dist/ui/named-id.js.map +0 -1
  758. package/dist/ui/named-id.test.d.ts +0 -2
  759. package/dist/ui/named-id.test.d.ts.map +0 -1
  760. package/dist/ui/named-id.test.js +0 -57
  761. package/dist/ui/named-id.test.js.map +0 -1
  762. package/dist/ui/native-select.d.ts +0 -17
  763. package/dist/ui/native-select.d.ts.map +0 -1
  764. package/dist/ui/native-select.js +0 -20
  765. package/dist/ui/native-select.js.map +0 -1
  766. package/dist/ui/navigation-focus.d.ts +0 -20
  767. package/dist/ui/navigation-focus.d.ts.map +0 -1
  768. package/dist/ui/navigation-focus.js +0 -25
  769. package/dist/ui/navigation-focus.js.map +0 -1
  770. package/dist/ui/navigation-focus.test.d.ts +0 -2
  771. package/dist/ui/navigation-focus.test.d.ts.map +0 -1
  772. package/dist/ui/navigation-focus.test.js +0 -28
  773. package/dist/ui/navigation-focus.test.js.map +0 -1
  774. package/dist/ui/paged-list-footer.test.d.ts +0 -2
  775. package/dist/ui/paged-list-footer.test.d.ts.map +0 -1
  776. package/dist/ui/paged-list-footer.test.js +0 -128
  777. package/dist/ui/paged-list-footer.test.js.map +0 -1
  778. package/dist/ui/parse-tool-result.test.d.ts +0 -2
  779. package/dist/ui/parse-tool-result.test.d.ts.map +0 -1
  780. package/dist/ui/parse-tool-result.test.js +0 -88
  781. package/dist/ui/parse-tool-result.test.js.map +0 -1
  782. package/dist/ui/profile-gate.d.ts +0 -37
  783. package/dist/ui/profile-gate.d.ts.map +0 -1
  784. package/dist/ui/profile-gate.js +0 -126
  785. package/dist/ui/profile-gate.js.map +0 -1
  786. package/dist/ui/profile-gate.test.d.ts +0 -2
  787. package/dist/ui/profile-gate.test.d.ts.map +0 -1
  788. package/dist/ui/profile-gate.test.js +0 -246
  789. package/dist/ui/profile-gate.test.js.map +0 -1
  790. package/dist/ui/query-fallback.test.d.ts +0 -2
  791. package/dist/ui/query-fallback.test.d.ts.map +0 -1
  792. package/dist/ui/query-fallback.test.js +0 -49
  793. package/dist/ui/query-fallback.test.js.map +0 -1
  794. package/dist/ui/row-card.d.ts +0 -13
  795. package/dist/ui/row-card.d.ts.map +0 -1
  796. package/dist/ui/row-card.js +0 -11
  797. package/dist/ui/row-card.js.map +0 -1
  798. package/dist/ui/section.d.ts +0 -18
  799. package/dist/ui/section.d.ts.map +0 -1
  800. package/dist/ui/section.js +0 -14
  801. package/dist/ui/section.js.map +0 -1
  802. package/dist/ui/segmented-control.d.ts +0 -25
  803. package/dist/ui/segmented-control.d.ts.map +0 -1
  804. package/dist/ui/segmented-control.js +0 -22
  805. package/dist/ui/segmented-control.js.map +0 -1
  806. package/dist/ui/settings-labels.d.ts +0 -33
  807. package/dist/ui/settings-labels.d.ts.map +0 -1
  808. package/dist/ui/settings-labels.js +0 -50
  809. package/dist/ui/settings-labels.js.map +0 -1
  810. package/dist/ui/settings-layout.d.ts +0 -29
  811. package/dist/ui/settings-layout.d.ts.map +0 -1
  812. package/dist/ui/settings-layout.js +0 -49
  813. package/dist/ui/settings-layout.js.map +0 -1
  814. package/dist/ui/settings-layout.test.d.ts +0 -2
  815. package/dist/ui/settings-layout.test.d.ts.map +0 -1
  816. package/dist/ui/settings-layout.test.js +0 -73
  817. package/dist/ui/settings-layout.test.js.map +0 -1
  818. package/dist/ui/settings.d.ts +0 -47
  819. package/dist/ui/settings.d.ts.map +0 -1
  820. package/dist/ui/settings.js +0 -48
  821. package/dist/ui/settings.js.map +0 -1
  822. package/dist/ui/settings.test.d.ts +0 -2
  823. package/dist/ui/settings.test.d.ts.map +0 -1
  824. package/dist/ui/settings.test.js +0 -38
  825. package/dist/ui/settings.test.js.map +0 -1
  826. package/dist/ui/shell-settings.d.ts +0 -31
  827. package/dist/ui/shell-settings.d.ts.map +0 -1
  828. package/dist/ui/shell-settings.js +0 -97
  829. package/dist/ui/shell-settings.js.map +0 -1
  830. package/dist/ui/shell-settings.test.d.ts +0 -2
  831. package/dist/ui/shell-settings.test.d.ts.map +0 -1
  832. package/dist/ui/shell-settings.test.js +0 -108
  833. package/dist/ui/shell-settings.test.js.map +0 -1
  834. package/dist/ui/shell-widgets.d.ts +0 -14
  835. package/dist/ui/shell-widgets.d.ts.map +0 -1
  836. package/dist/ui/shell-widgets.js +0 -18
  837. package/dist/ui/shell-widgets.js.map +0 -1
  838. package/dist/ui/table.d.ts +0 -61
  839. package/dist/ui/table.d.ts.map +0 -1
  840. package/dist/ui/table.js +0 -43
  841. package/dist/ui/table.js.map +0 -1
  842. package/dist/ui/tone-components.test.d.ts +0 -2
  843. package/dist/ui/tone-components.test.d.ts.map +0 -1
  844. package/dist/ui/tone-components.test.js +0 -145
  845. package/dist/ui/tone-components.test.js.map +0 -1
  846. package/dist/ui/tone-contrast.test.d.ts +0 -2
  847. package/dist/ui/tone-contrast.test.d.ts.map +0 -1
  848. package/dist/ui/tone-contrast.test.js +0 -66
  849. package/dist/ui/tone-contrast.test.js.map +0 -1
  850. package/dist/ui/toolkit-overlap.test.d.ts +0 -2
  851. package/dist/ui/toolkit-overlap.test.d.ts.map +0 -1
  852. package/dist/ui/toolkit-overlap.test.js +0 -86
  853. package/dist/ui/toolkit-overlap.test.js.map +0 -1
  854. package/dist/ui/use-apply-theme.test.d.ts +0 -2
  855. package/dist/ui/use-apply-theme.test.d.ts.map +0 -1
  856. package/dist/ui/use-apply-theme.test.js +0 -102
  857. package/dist/ui/use-apply-theme.test.js.map +0 -1
  858. package/dist/ui/use-bpmn-viewer.test.d.ts +0 -2
  859. package/dist/ui/use-bpmn-viewer.test.d.ts.map +0 -1
  860. package/dist/ui/use-bpmn-viewer.test.js +0 -239
  861. package/dist/ui/use-bpmn-viewer.test.js.map +0 -1
  862. package/dist/ui/use-detail-view.test.d.ts +0 -2
  863. package/dist/ui/use-detail-view.test.d.ts.map +0 -1
  864. package/dist/ui/use-detail-view.test.js +0 -178
  865. package/dist/ui/use-detail-view.test.js.map +0 -1
  866. package/dist/ui/use-paged-list-view.test.d.ts +0 -2
  867. package/dist/ui/use-paged-list-view.test.d.ts.map +0 -1
  868. package/dist/ui/use-paged-list-view.test.js +0 -136
  869. package/dist/ui/use-paged-list-view.test.js.map +0 -1
  870. package/dist/ui/use-paged-view-data.seeded.test.d.ts +0 -2
  871. package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +0 -1
  872. package/dist/ui/use-paged-view-data.seeded.test.js +0 -144
  873. package/dist/ui/use-paged-view-data.seeded.test.js.map +0 -1
  874. package/dist/ui/use-paged-view-data.test.d.ts +0 -2
  875. package/dist/ui/use-paged-view-data.test.d.ts.map +0 -1
  876. package/dist/ui/use-paged-view-data.test.js +0 -330
  877. package/dist/ui/use-paged-view-data.test.js.map +0 -1
  878. package/dist/ui/use-reset-on-change.d.ts +0 -22
  879. package/dist/ui/use-reset-on-change.d.ts.map +0 -1
  880. package/dist/ui/use-reset-on-change.js +0 -29
  881. package/dist/ui/use-reset-on-change.js.map +0 -1
  882. package/dist/ui/use-reset-on-change.test.d.ts +0 -2
  883. package/dist/ui/use-reset-on-change.test.d.ts.map +0 -1
  884. package/dist/ui/use-reset-on-change.test.js +0 -61
  885. package/dist/ui/use-reset-on-change.test.js.map +0 -1
  886. package/dist/ui/use-view-data.seeded.test.d.ts +0 -2
  887. package/dist/ui/use-view-data.seeded.test.d.ts.map +0 -1
  888. package/dist/ui/use-view-data.seeded.test.js +0 -168
  889. package/dist/ui/use-view-data.seeded.test.js.map +0 -1
  890. package/dist/ui/view-data-state.test.d.ts +0 -2
  891. package/dist/ui/view-data-state.test.d.ts.map +0 -1
  892. package/dist/ui/view-data-state.test.js +0 -62
  893. package/dist/ui/view-data-state.test.js.map +0 -1
  894. package/dist/ui/view-meta.test.d.ts +0 -2
  895. package/dist/ui/view-meta.test.d.ts.map +0 -1
  896. package/dist/ui/view-meta.test.js +0 -92
  897. package/dist/ui/view-meta.test.js.map +0 -1
  898. package/dist/ui/widget-shell.test.d.ts +0 -2
  899. package/dist/ui/widget-shell.test.d.ts.map +0 -1
  900. package/dist/ui/widget-shell.test.js +0 -41
  901. package/dist/ui/widget-shell.test.js.map +0 -1
  902. package/dist/widget-meta-defaults.d.ts +0 -48
  903. package/dist/widget-meta-defaults.d.ts.map +0 -1
  904. package/dist/widget-meta-defaults.js +0 -80
  905. package/dist/widget-meta-defaults.js.map +0 -1
  906. package/dist/widget-meta-defaults.test.d.ts +0 -2
  907. package/dist/widget-meta-defaults.test.d.ts.map +0 -1
  908. package/dist/widget-meta-defaults.test.js +0 -196
  909. package/dist/widget-meta-defaults.test.js.map +0 -1
  910. package/dist/widget-tool-bindings.test.d.ts +0 -2
  911. package/dist/widget-tool-bindings.test.d.ts.map +0 -1
  912. package/dist/widget-tool-bindings.test.js +0 -83
  913. package/dist/widget-tool-bindings.test.js.map +0 -1
  914. package/dist/with-tool-errors.test.d.ts +0 -2
  915. package/dist/with-tool-errors.test.d.ts.map +0 -1
  916. package/dist/with-tool-errors.test.js +0 -38
  917. package/dist/with-tool-errors.test.js.map +0 -1
@@ -1,81 +0,0 @@
1
- /**
2
- * Locale-aware formatting helpers shared by every widget module. Each helper
3
- * returns an em-dash for null/undefined/empty input so callers can render
4
- * directly into a table cell without per-row branching.
5
- *
6
- * THE single source for timestamp/number/percent/period/duration/truncate
7
- * rendering — the modules' former local copies drifted into three different
8
- * duration styles ("3m 7s" / "3.1m" / "3.1min"); the canonical style is the
9
- * compact family below ("3m 7s", German "3 Min. 7 s").
10
- *
11
- * Dates and numbers render in the view's EFFECTIVE locale (and dates in the
12
- * host's time zone), not the iframe browser's: the shell's ProfileGate
13
- * resolves them (explicit profile language > host locale > English) and
14
- * publishes them here with {@link setFormatLocale} before its children
15
- * render. Outside the shell (unit renders, fixtures) the browser defaults
16
- * apply and unit words are English.
17
- */
18
- /** The locale + time zone the date helpers render in. */
19
- export interface FormatLocale {
20
- /** The effective UI language — what the shell's `LocaleProvider` carries. */
21
- language: string;
22
- /** The BCP 47 tag dates format in (the host's full tag when it speaks `language`). */
23
- locale: string;
24
- /** IANA time zone; `undefined` = the browser's. */
25
- timeZone?: string;
26
- }
27
- /**
28
- * Publish the locale the date helpers render in (the shell's ProfileGate;
29
- * `undefined` restores the browser defaults). A no-op for an unchanged value,
30
- * so subscribers only re-render on a real change.
31
- */
32
- export declare function setFormatLocale(next: FormatLocale | undefined): void;
33
- /** The published format locale — `useSyncExternalStore` snapshot. */
34
- export declare function getFormatLocale(): FormatLocale | undefined;
35
- /** Subscribe to {@link setFormatLocale} changes — `useSyncExternalStore` subscribe. */
36
- export declare function subscribeFormatLocale(listener: () => void): () => void;
37
- export declare function formatTimestamp(iso: string | null | undefined): string;
38
- export declare function formatDate(iso: string | null | undefined): string;
39
- export declare function formatTime(iso: string | null | undefined, opts?: {
40
- seconds?: boolean;
41
- }): string;
42
- /**
43
- * A number in the view's locale ("1.234,5" / "1,234.5"); em-dash for
44
- * null/undefined/NaN/±Infinity. `options` are passed to `Intl.NumberFormat`.
45
- */
46
- export declare function formatNumber(value: number | null | undefined, options?: Intl.NumberFormatOptions): string;
47
- /** Fraction digits and sign of {@link formatPercent} / {@link formatPercentPoints}. */
48
- export interface PercentFormatOptions {
49
- /** Default 1, raised to `minimumFractionDigits` when that is larger. */
50
- maximumFractionDigits?: number;
51
- /** Default 0 — set it equal to the maximum for aligned table columns. */
52
- minimumFractionDigits?: number;
53
- /** Show "+" for a positive value (deltas). */
54
- signed?: boolean;
55
- }
56
- /**
57
- * A value in PERCENT units (3.7 means 3.7 %) in the view's locale:
58
- * "3,7 %" in German, "3.7%" in English. Em-dash for a missing value.
59
- */
60
- export declare function formatPercent(percent: number | null | undefined, options?: PercentFormatOptions): string;
61
- /**
62
- * A difference of two percentages in percentage points, signed by default:
63
- * "+0,2 Pp." in German, "+0.2 pp" in English.
64
- */
65
- export declare function formatPercentPoints(points: number | null | undefined, options?: PercentFormatOptions): string;
66
- /**
67
- * A look-back period token ("7d", "24h", "30m", "2w") as words in the view's
68
- * language: "7 Tage" / "7 days", "1 Stunde" / "1 hour". Anything that is not
69
- * such a token comes back unchanged; empty input renders the em-dash.
70
- */
71
- export declare function formatPeriod(period: string | null | undefined): string;
72
- /**
73
- * Format a millisecond duration compactly in the view's language: English
74
- * `420ms`, `12s`, `3m 7s`, `1h 24m`; German `420 ms`, `12 s`, `3 Min. 7 s`,
75
- * `1 h 24 Min.`. Returns an em-dash for null, negative or NaN input;
76
- * fractional input is rounded to whole ms.
77
- */
78
- export declare function formatDuration(ms: number | null | undefined): string;
79
- /** Truncate with an ellipsis; em-dash for null/empty input. */
80
- export declare function truncate(value: string | null | undefined, max: number): string;
81
- //# sourceMappingURL=format.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AASD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAIpE;AAED,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAE1D;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKtE;AAaD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGtE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGjE;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,CAOR;AAqBD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,GACjC,MAAM,CAGR;AAED,uFAAuF;AACvF,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,yEAAyE;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAgBD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAIR;AAYD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOtE;AAQD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAWpE;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9E"}
package/dist/ui/format.js DELETED
@@ -1,189 +0,0 @@
1
- /**
2
- * Locale-aware formatting helpers shared by every widget module. Each helper
3
- * returns an em-dash for null/undefined/empty input so callers can render
4
- * directly into a table cell without per-row branching.
5
- *
6
- * THE single source for timestamp/number/percent/period/duration/truncate
7
- * rendering — the modules' former local copies drifted into three different
8
- * duration styles ("3m 7s" / "3.1m" / "3.1min"); the canonical style is the
9
- * compact family below ("3m 7s", German "3 Min. 7 s").
10
- *
11
- * Dates and numbers render in the view's EFFECTIVE locale (and dates in the
12
- * host's time zone), not the iframe browser's: the shell's ProfileGate
13
- * resolves them (explicit profile language > host locale > English) and
14
- * publishes them here with {@link setFormatLocale} before its children
15
- * render. Outside the shell (unit renders, fixtures) the browser defaults
16
- * apply and unit words are English.
17
- */
18
- const EMPTY = "—";
19
- let current;
20
- const listeners = new Set();
21
- function sameFormatLocale(a, b) {
22
- return a?.language === b?.language && a?.locale === b?.locale && a?.timeZone === b?.timeZone;
23
- }
24
- /**
25
- * Publish the locale the date helpers render in (the shell's ProfileGate;
26
- * `undefined` restores the browser defaults). A no-op for an unchanged value,
27
- * so subscribers only re-render on a real change.
28
- */
29
- export function setFormatLocale(next) {
30
- if (sameFormatLocale(current, next))
31
- return;
32
- current = next;
33
- for (const listener of listeners)
34
- listener();
35
- }
36
- /** The published format locale — `useSyncExternalStore` snapshot. */
37
- export function getFormatLocale() {
38
- return current;
39
- }
40
- /** Subscribe to {@link setFormatLocale} changes — `useSyncExternalStore` subscribe. */
41
- export function subscribeFormatLocale(listener) {
42
- listeners.add(listener);
43
- return () => {
44
- listeners.delete(listener);
45
- };
46
- }
47
- /** Options for a date helper: the published time zone folded in. */
48
- function zoned(options = {}) {
49
- return current?.timeZone ? { ...options, timeZone: current.timeZone } : options;
50
- }
51
- /** Parse an ISO string; null for unparsable input so callers render {@link EMPTY}. */
52
- function parseDate(iso) {
53
- const date = new Date(iso);
54
- return Number.isNaN(date.getTime()) ? null : date;
55
- }
56
- export function formatTimestamp(iso) {
57
- if (!iso)
58
- return EMPTY;
59
- return parseDate(iso)?.toLocaleString(current?.locale, zoned()) ?? EMPTY;
60
- }
61
- export function formatDate(iso) {
62
- if (!iso)
63
- return EMPTY;
64
- return parseDate(iso)?.toLocaleDateString(current?.locale, zoned()) ?? EMPTY;
65
- }
66
- export function formatTime(iso, opts = {}) {
67
- if (!iso)
68
- return EMPTY;
69
- const date = parseDate(iso);
70
- if (!date)
71
- return EMPTY;
72
- return opts.seconds === false
73
- ? date.toLocaleTimeString(current?.locale, zoned({ hour: "2-digit", minute: "2-digit" }))
74
- : date.toLocaleTimeString(current?.locale, zoned());
75
- }
76
- // ── Numbers ─────────────────────────────────────────────────────────────────
77
- //
78
- // Every number a widget shows goes through these helpers, never `toFixed`
79
- // or an argument-less `toLocaleString()` (an ESLint gate in widget code):
80
- // both ignore the view's locale ("3.7%" in a German cockpit, "1,234" vs
81
- // "1.234"). They read the same published locale as the date helpers.
82
- /** A non-breaking space: a number never wraps away from its unit. */
83
- const NBSP = " ";
84
- /** The UI language the unit words follow: German or English. */
85
- function unitLanguage() {
86
- return current?.language.toLowerCase().startsWith("de") ? "de" : "en";
87
- }
88
- function isNumber(value) {
89
- return typeof value === "number" && Number.isFinite(value);
90
- }
91
- /**
92
- * A number in the view's locale ("1.234,5" / "1,234.5"); em-dash for
93
- * null/undefined/NaN/±Infinity. `options` are passed to `Intl.NumberFormat`.
94
- */
95
- export function formatNumber(value, options) {
96
- if (!isNumber(value))
97
- return EMPTY;
98
- return new Intl.NumberFormat(current?.locale, options).format(value);
99
- }
100
- function percentOptions(options, signedDefault) {
101
- const minimumFractionDigits = options?.minimumFractionDigits ?? 0;
102
- return {
103
- // Intl throws a RangeError for a maximum below the minimum; a formatter
104
- // runs during render, so it never may.
105
- maximumFractionDigits: Math.max(options?.maximumFractionDigits ?? 1, minimumFractionDigits),
106
- minimumFractionDigits,
107
- signDisplay: (options?.signed ?? signedDefault) ? "exceptZero" : "auto",
108
- };
109
- }
110
- /**
111
- * A value in PERCENT units (3.7 means 3.7 %) in the view's locale:
112
- * "3,7 %" in German, "3.7%" in English. Em-dash for a missing value.
113
- */
114
- export function formatPercent(percent, options) {
115
- if (!isNumber(percent))
116
- return EMPTY;
117
- return new Intl.NumberFormat(current?.locale, {
118
- style: "percent",
119
- ...percentOptions(options, false),
120
- }).format(percent / 100);
121
- }
122
- /**
123
- * A difference of two percentages in percentage points, signed by default:
124
- * "+0,2 Pp." in German, "+0.2 pp" in English.
125
- */
126
- export function formatPercentPoints(points, options) {
127
- if (!isNumber(points))
128
- return EMPTY;
129
- const n = new Intl.NumberFormat(current?.locale, percentOptions(options, true)).format(points);
130
- return `${n}${NBSP}${unitLanguage() === "de" ? "Pp." : "pp"}`;
131
- }
132
- const PERIOD_UNITS = {
133
- en: { m: ["minute", "minutes"], h: ["hour", "hours"], d: ["day", "days"], w: ["week", "weeks"] },
134
- de: {
135
- m: ["Minute", "Minuten"],
136
- h: ["Stunde", "Stunden"],
137
- d: ["Tag", "Tage"],
138
- w: ["Woche", "Wochen"],
139
- },
140
- };
141
- /**
142
- * A look-back period token ("7d", "24h", "30m", "2w") as words in the view's
143
- * language: "7 Tage" / "7 days", "1 Stunde" / "1 hour". Anything that is not
144
- * such a token comes back unchanged; empty input renders the em-dash.
145
- */
146
- export function formatPeriod(period) {
147
- if (!period)
148
- return EMPTY;
149
- const match = /^(\d+)\s*([mhdw])$/i.exec(period.trim());
150
- if (!match)
151
- return period;
152
- const count = Number(match[1]);
153
- const [one, other] = PERIOD_UNITS[unitLanguage()][match[2].toLowerCase()];
154
- return `${formatNumber(count)}${NBSP}${count === 1 ? one : other}`;
155
- }
156
- /** Unit symbols of {@link formatDuration}; German puts a space between number and unit. */
157
- const DURATION_UNITS = {
158
- en: { ms: "ms", s: "s", min: "m", h: "h", gap: "" },
159
- de: { ms: "ms", s: "s", min: "Min.", h: "h", gap: NBSP },
160
- };
161
- /**
162
- * Format a millisecond duration compactly in the view's language: English
163
- * `420ms`, `12s`, `3m 7s`, `1h 24m`; German `420 ms`, `12 s`, `3 Min. 7 s`,
164
- * `1 h 24 Min.`. Returns an em-dash for null, negative or NaN input;
165
- * fractional input is rounded to whole ms.
166
- */
167
- export function formatDuration(ms) {
168
- if (ms == null || ms < 0 || Number.isNaN(ms))
169
- return EMPTY;
170
- const units = DURATION_UNITS[unitLanguage()];
171
- const part = (n, unit) => `${formatNumber(n)}${units.gap}${unit}`;
172
- const total = Math.round(ms);
173
- if (total < 1000)
174
- return part(total, units.ms);
175
- const s = Math.floor(total / 1000);
176
- if (s < 60)
177
- return part(s, units.s);
178
- const m = Math.floor(s / 60);
179
- if (m < 60)
180
- return `${part(m, units.min)} ${part(s % 60, units.s)}`;
181
- return `${part(Math.floor(m / 60), units.h)} ${part(m % 60, units.min)}`;
182
- }
183
- /** Truncate with an ellipsis; em-dash for null/empty input. */
184
- export function truncate(value, max) {
185
- if (!value)
186
- return EMPTY;
187
- return value.length > max ? value.slice(0, max) + "…" : value;
188
- }
189
- //# sourceMappingURL=format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=format.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.test.d.ts","sourceRoot":"","sources":["../../src/ui/format.test.ts"],"names":[],"mappings":""}
@@ -1,181 +0,0 @@
1
- import { afterEach, describe, expect, it, vi } from "vitest";
2
- import { formatDate, formatDuration, formatNumber, formatPercent, formatPercentPoints, formatPeriod, formatTime, formatTimestamp, getFormatLocale, setFormatLocale, subscribeFormatLocale, truncate, } from "./format.js";
3
- const EMPTY = "—";
4
- afterEach(() => setFormatLocale(undefined));
5
- describe("the published format locale (set by the shell's ProfileGate)", () => {
6
- const iso = "2026-07-22T22:15:30.000Z";
7
- it("renders every date helper in the published locale and time zone, not the browser's", () => {
8
- setFormatLocale({ language: "de", locale: "de-AT", timeZone: "Asia/Tokyo" });
9
- const date = new Date(iso);
10
- expect(formatTimestamp(iso)).toBe(date.toLocaleString("de-AT", { timeZone: "Asia/Tokyo" }));
11
- expect(formatDate(iso)).toBe(date.toLocaleDateString("de-AT", { timeZone: "Asia/Tokyo" }));
12
- expect(formatTime(iso)).toBe(date.toLocaleTimeString("de-AT", { timeZone: "Asia/Tokyo" }));
13
- expect(formatTime(iso, { seconds: false })).toBe(date.toLocaleTimeString("de-AT", {
14
- hour: "2-digit",
15
- minute: "2-digit",
16
- timeZone: "Asia/Tokyo",
17
- }));
18
- // The zone moves the calendar day: 22:15 UTC is already the 23rd in Tokyo.
19
- expect(formatDate(iso)).toContain("23");
20
- });
21
- it("keeps the browser's zone when none is published", () => {
22
- setFormatLocale({ language: "en", locale: "en-GB" });
23
- expect(formatTimestamp(iso)).toBe(new Date(iso).toLocaleString("en-GB"));
24
- });
25
- it("notifies subscribers on a real change only, and stops after unsubscribe", () => {
26
- const listener = vi.fn();
27
- const unsubscribe = subscribeFormatLocale(listener);
28
- setFormatLocale({ language: "de", locale: "de" });
29
- setFormatLocale({ language: "de", locale: "de" });
30
- expect(listener).toHaveBeenCalledTimes(1);
31
- expect(getFormatLocale()).toEqual({ language: "de", locale: "de" });
32
- setFormatLocale({ language: "de", locale: "de", timeZone: "Europe/Berlin" });
33
- expect(listener).toHaveBeenCalledTimes(2);
34
- unsubscribe();
35
- setFormatLocale(undefined);
36
- expect(listener).toHaveBeenCalledTimes(2);
37
- expect(getFormatLocale()).toBeUndefined();
38
- });
39
- });
40
- describe("formatTimestamp / formatDate / formatTime", () => {
41
- it("renders a valid ISO timestamp", () => {
42
- const iso = "2026-07-22T10:15:30.000Z";
43
- // No published locale: the browser's own, spelled out (an argument-less or
44
- // `undefined` toLocaleString is what the kit's number gate bans).
45
- const browserLocale = new Intl.DateTimeFormat().resolvedOptions().locale;
46
- expect(formatTimestamp(iso)).toBe(new Date(iso).toLocaleString(browserLocale));
47
- expect(formatDate(iso)).toBe(new Date(iso).toLocaleDateString());
48
- expect(formatTime(iso)).toBe(new Date(iso).toLocaleTimeString());
49
- });
50
- it("returns the placeholder for null/undefined/empty input", () => {
51
- for (const value of [null, undefined, ""]) {
52
- expect(formatTimestamp(value)).toBe(EMPTY);
53
- expect(formatDate(value)).toBe(EMPTY);
54
- expect(formatTime(value)).toBe(EMPTY);
55
- }
56
- });
57
- it("returns the placeholder for an unparsable date instead of 'Invalid Date'", () => {
58
- expect(formatTimestamp("not-a-date")).toBe(EMPTY);
59
- expect(formatDate("not-a-date")).toBe(EMPTY);
60
- expect(formatTime("not-a-date")).toBe(EMPTY);
61
- });
62
- });
63
- describe("formatDuration", () => {
64
- it("formats the canonical compact family", () => {
65
- expect(formatDuration(420)).toBe("420ms");
66
- expect(formatDuration(12_000)).toBe("12s");
67
- expect(formatDuration(187_000)).toBe("3m 7s");
68
- expect(formatDuration(5_040_000)).toBe("1h 24m");
69
- });
70
- it("rounds fractional milliseconds", () => {
71
- expect(formatDuration(420.4)).toBe("420ms");
72
- expect(formatDuration(999.6)).toBe("1s");
73
- });
74
- it("returns the placeholder for null, negative and NaN input", () => {
75
- expect(formatDuration(null)).toBe(EMPTY);
76
- expect(formatDuration(undefined)).toBe(EMPTY);
77
- expect(formatDuration(-1)).toBe(EMPTY);
78
- expect(formatDuration(Number.NaN)).toBe(EMPTY);
79
- });
80
- it("speaks German units in a German view: a space before the unit, never wrapping", () => {
81
- setFormatLocale({ language: "de", locale: "de-DE" });
82
- expect(formatDuration(420)).toBe(`420${NBSP}ms`);
83
- expect(formatDuration(12_000)).toBe(`12${NBSP}s`);
84
- expect(formatDuration(187_000)).toBe(`3${NBSP}Min. 7${NBSP}s`);
85
- expect(formatDuration(5_040_000)).toBe(`1${NBSP}h 24${NBSP}Min.`);
86
- expect(formatDuration(3_600_000 * 1234)).toBe(`1.234${NBSP}h 0${NBSP}Min.`);
87
- });
88
- it("keeps the compact English family in an English view, grouped by the locale", () => {
89
- setFormatLocale({ language: "en", locale: "en-US" });
90
- expect(formatDuration(187_000)).toBe("3m 7s");
91
- expect(formatDuration(3_600_000 * 1234)).toBe("1,234h 0m");
92
- });
93
- });
94
- const NBSP = " ";
95
- describe("formatNumber", () => {
96
- it("groups and separates decimals in the view's locale", () => {
97
- setFormatLocale({ language: "de", locale: "de-DE" });
98
- expect(formatNumber(1234567.5)).toBe("1.234.567,5");
99
- expect(formatNumber(0.25, { style: "percent" })).toBe(`25${NBSP}%`);
100
- setFormatLocale({ language: "en", locale: "en-US" });
101
- expect(formatNumber(1234567.5)).toBe("1,234,567.5");
102
- expect(formatNumber(1234.567, { maximumFractionDigits: 1 })).toBe("1,234.6");
103
- });
104
- it("returns the placeholder for missing and non-finite values, 0 stays 0", () => {
105
- for (const value of [null, undefined, Number.NaN, Number.POSITIVE_INFINITY]) {
106
- expect(formatNumber(value)).toBe(EMPTY);
107
- }
108
- expect(formatNumber(0)).toBe("0");
109
- });
110
- });
111
- describe("formatPercent / formatPercentPoints", () => {
112
- it("formats percent units: 3,7 % in German, 3.7% in English", () => {
113
- setFormatLocale({ language: "de", locale: "de-DE" });
114
- expect(formatPercent(3.7)).toBe(`3,7${NBSP}%`);
115
- expect(formatPercent(3)).toBe(`3${NBSP}%`);
116
- expect(formatPercent(3, { minimumFractionDigits: 1 })).toBe(`3,0${NBSP}%`);
117
- expect(formatPercent(-84.66, { signed: true })).toBe(`-84,7${NBSP}%`);
118
- expect(formatPercent(12.345, { maximumFractionDigits: 2 })).toBe(`12,35${NBSP}%`);
119
- setFormatLocale({ language: "en", locale: "en-US" });
120
- expect(formatPercent(3.7)).toBe("3.7%");
121
- expect(formatPercent(427.4, { signed: true })).toBe("+427.4%");
122
- expect(formatPercent(0, { signed: true })).toBe("0%");
123
- });
124
- it("formats percentage points signed by default: +0,2 Pp. / +0.2 pp", () => {
125
- setFormatLocale({ language: "de", locale: "de-DE" });
126
- expect(formatPercentPoints(0.2)).toBe(`+0,2${NBSP}Pp.`);
127
- expect(formatPercentPoints(-1.25)).toBe(`-1,3${NBSP}Pp.`);
128
- expect(formatPercentPoints(0)).toBe(`0${NBSP}Pp.`);
129
- setFormatLocale({ language: "en", locale: "en-GB" });
130
- expect(formatPercentPoints(0.2)).toBe(`+0.2${NBSP}pp`);
131
- expect(formatPercentPoints(0.2, { signed: false })).toBe(`0.2${NBSP}pp`);
132
- });
133
- it("raises the default maximum to a larger minimum instead of throwing during render", () => {
134
- // `rate.toFixed(2) + "%"` migrated naturally: the default maximum of 1
135
- // would sit below the minimum, which Intl rejects with a RangeError.
136
- setFormatLocale({ language: "de", locale: "de-DE" });
137
- expect(formatPercent(3.75, { minimumFractionDigits: 2 })).toBe(`3,75${NBSP}%`);
138
- expect(formatPercentPoints(0.25, { minimumFractionDigits: 2 })).toBe(`+0,25${NBSP}Pp.`);
139
- setFormatLocale({ language: "en", locale: "en-US" });
140
- expect(formatPercent(3.7, { minimumFractionDigits: 3 })).toBe("3.700%");
141
- expect(formatPercent(3.75, { minimumFractionDigits: 2, maximumFractionDigits: 1 })).toBe("3.75%");
142
- });
143
- it("returns the placeholder for a missing value", () => {
144
- expect(formatPercent(null)).toBe(EMPTY);
145
- expect(formatPercentPoints(undefined)).toBe(EMPTY);
146
- expect(formatPercent(Number.NaN)).toBe(EMPTY);
147
- });
148
- });
149
- describe("formatPeriod", () => {
150
- it("spells a period token in the view's language, singular and plural", () => {
151
- setFormatLocale({ language: "de", locale: "de-DE" });
152
- expect(formatPeriod("7d")).toBe(`7${NBSP}Tage`);
153
- expect(formatPeriod("1d")).toBe(`1${NBSP}Tag`);
154
- expect(formatPeriod("24h")).toBe(`24${NBSP}Stunden`);
155
- expect(formatPeriod("1H")).toBe(`1${NBSP}Stunde`);
156
- expect(formatPeriod("30m")).toBe(`30${NBSP}Minuten`);
157
- expect(formatPeriod("2w")).toBe(`2${NBSP}Wochen`);
158
- setFormatLocale({ language: "en", locale: "en-US" });
159
- expect(formatPeriod("7d")).toBe(`7${NBSP}days`);
160
- expect(formatPeriod("1w")).toBe(`1${NBSP}week`);
161
- expect(formatPeriod(" 14d ")).toBe(`14${NBSP}days`);
162
- });
163
- it("passes anything else through and renders the placeholder for no period", () => {
164
- expect(formatPeriod("last quarter")).toBe("last quarter");
165
- expect(formatPeriod("7y")).toBe("7y");
166
- expect(formatPeriod("")).toBe(EMPTY);
167
- expect(formatPeriod(null)).toBe(EMPTY);
168
- });
169
- it("speaks English while no locale is published (fixtures, unit renders)", () => {
170
- expect(formatPeriod("3d")).toBe(`3${NBSP}days`);
171
- expect(formatPercentPoints(1)).toContain("pp");
172
- });
173
- });
174
- describe("truncate", () => {
175
- it("truncates with an ellipsis and passes short values through", () => {
176
- expect(truncate("abcdef", 3)).toBe("abc…");
177
- expect(truncate("abc", 3)).toBe("abc");
178
- expect(truncate(null, 3)).toBe(EMPTY);
179
- });
180
- });
181
- //# sourceMappingURL=format.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.test.js","sourceRoot":"","sources":["../../src/ui/format.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { WidgetProps } from "@miragon/mcp-toolkit-core";
2
- /**
3
- * `shell:kpi-grid` — renders `keys[props.dataKey]` as a KPI strip.
4
- * widgetProps: `dataKey` (required), `boxed?`, `variant?` ("strip" | "soft"),
5
- * `emptyText?`.
6
- */
7
- export declare function GenericKpiGridWidget({ keys, widgetProps }: WidgetProps): import("react").JSX.Element;
8
- /**
9
- * `shell:data-table` — renders `keys[props.dataKey]` (an array of records, or
10
- * `{ rows: [...] }`) as a cockpit-style table. widgetProps: `dataKey`
11
- * (required), `columns?` (`[{ key, label?, align? }]`, derived from the first
12
- * row when omitted; a missing `label` is the key in words), `emptyText?`.
13
- */
14
- export declare function GenericDataTableWidget({ keys, widgetProps }: WidgetProps): import("react").JSX.Element;
15
- //# sourceMappingURL=generic-widgets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generic-widgets.d.ts","sourceRoot":"","sources":["../../src/ui/generic-widgets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAgE5D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,+BAkBtE;AAsCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,WAAW,+BAmCxE"}
@@ -1,122 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { KpiGrid, resolveTone, useLocale } from "@miragon/mcp-toolkit-ui";
3
- import { humanizeKey } from "./humanize-key.js";
4
- import { kitLabels } from "./kit-labels.js";
5
- import { ListTable } from "./list-table.js";
6
- import { TableEmptyState, Td } from "./table.js";
7
- /**
8
- * Module-agnostic widgets — the standard composition targets for
9
- * `render-view` and the visual builder: any module or pipeline step produces
10
- * a context key with plain data, and a layout cell points a generic widget at
11
- * it via `props.dataKey` — no custom widget needed for a standard KPI row or
12
- * data table.
13
- *
14
- * Registered by the server app under the `shell:` namespace (see
15
- * `../shell-catalogue.ts`, exported via `@miragon/pulse-widget-shell/server`). Their texts arrive via
16
- * props; what they say themselves (the empty state, a Boolean's "Yes"/"No",
17
- * the table's name) follows the active locale through `kitLabels`.
18
- */
19
- function isRecord(v) {
20
- return typeof v === "object" && v !== null && !Array.isArray(v);
21
- }
22
- function isPrimitive(v) {
23
- return typeof v === "string" || typeof v === "number" || typeof v === "boolean";
24
- }
25
- /** A cell as shown: numbers and text as they are, a Boolean in words, anything else a dash. */
26
- function cellValue(v, words) {
27
- if (typeof v === "number")
28
- return v;
29
- if (typeof v === "string")
30
- return v;
31
- if (typeof v === "boolean")
32
- return v ? words.yes : words.no;
33
- return "—";
34
- }
35
- /**
36
- * Accepts either an array of `{ label, value, tone?, fraction? }` cells or a
37
- * plain `{ label: value }` object; everything else renders as empty.
38
- */
39
- function coerceKpiCells(raw, words) {
40
- if (Array.isArray(raw)) {
41
- return raw
42
- .filter(isRecord)
43
- .filter((r) => typeof r.label === "string" && r.label.length > 0)
44
- .map((r) => ({
45
- label: r.label,
46
- value: cellValue(r.value, words),
47
- // A tone from the wire: the five tones as is, a retired name
48
- // (`critical`) onto its tone, anything else neutral (no dot).
49
- tone: typeof r.tone === "string" ? resolveTone(r.tone) : undefined,
50
- fraction: typeof r.fraction === "string" ? r.fraction : undefined,
51
- }));
52
- }
53
- if (isRecord(raw)) {
54
- return Object.entries(raw)
55
- .filter(([, v]) => isPrimitive(v))
56
- .map(([label, v]) => ({ label, value: cellValue(v, words) }));
57
- }
58
- return [];
59
- }
60
- /**
61
- * `shell:kpi-grid` — renders `keys[props.dataKey]` as a KPI strip.
62
- * widgetProps: `dataKey` (required), `boxed?`, `variant?` ("strip" | "soft"),
63
- * `emptyText?`.
64
- */
65
- export function GenericKpiGridWidget({ keys, widgetProps }) {
66
- const labels = kitLabels(useLocale());
67
- const dataKey = typeof widgetProps?.dataKey === "string" ? widgetProps.dataKey : undefined;
68
- const cells = coerceKpiCells(dataKey ? keys[dataKey] : undefined, labels);
69
- if (cells.length === 0) {
70
- return typeof widgetProps?.emptyText === "string" ? (_jsx(TableEmptyState, { children: widgetProps.emptyText })) : (_jsx(TableEmptyState, { description: labels.noDataHint, children: labels.noFiguresYet }));
71
- }
72
- return (_jsx(KpiGrid, { cells: cells, boxed: widgetProps?.boxed === true, variant: widgetProps?.variant === "soft" ? "soft" : "strip" }));
73
- }
74
- /**
75
- * The table's columns: the `columns` prop as given, else the first row's
76
- * primitive fields. A header nobody wrote is the key in words ("Total
77
- * incidents" for `totalIncidents`); a written `label` stays as it is.
78
- */
79
- function coerceColumns(raw, rows) {
80
- if (Array.isArray(raw)) {
81
- const cols = raw
82
- .filter(isRecord)
83
- .filter((c) => typeof c.key === "string" && c.key.length > 0)
84
- .map((c) => ({
85
- key: c.key,
86
- label: typeof c.label === "string" ? c.label : humanizeKey(c.key),
87
- align: c.align === "right" ? "right" : "left",
88
- }));
89
- if (cols.length > 0)
90
- return cols;
91
- }
92
- // Derive from the first row: primitive-valued keys, capped for readability.
93
- const first = rows[0];
94
- if (!first)
95
- return [];
96
- return Object.keys(first)
97
- .filter((k) => isPrimitive(first[k]) || first[k] === null)
98
- .slice(0, 8)
99
- .map((key) => ({
100
- key,
101
- label: humanizeKey(key),
102
- align: typeof first[key] === "number" ? "right" : "left",
103
- }));
104
- }
105
- /**
106
- * `shell:data-table` — renders `keys[props.dataKey]` (an array of records, or
107
- * `{ rows: [...] }`) as a cockpit-style table. widgetProps: `dataKey`
108
- * (required), `columns?` (`[{ key, label?, align? }]`, derived from the first
109
- * row when omitted; a missing `label` is the key in words), `emptyText?`.
110
- */
111
- export function GenericDataTableWidget({ keys, widgetProps }) {
112
- const labels = kitLabels(useLocale());
113
- const dataKey = typeof widgetProps?.dataKey === "string" ? widgetProps.dataKey : undefined;
114
- const raw = dataKey ? keys[dataKey] : undefined;
115
- const rows = (Array.isArray(raw) ? raw : isRecord(raw) && Array.isArray(raw.rows) ? raw.rows : []).filter(isRecord);
116
- const columns = coerceColumns(widgetProps?.columns, rows);
117
- if (rows.length === 0 || columns.length === 0) {
118
- return typeof widgetProps?.emptyText === "string" ? (_jsx(TableEmptyState, { children: widgetProps.emptyText })) : (_jsx(TableEmptyState, { description: labels.noDataHint, children: labels.noRowsYet }));
119
- }
120
- return (_jsx("div", { className: "border-border overflow-hidden rounded-md border", children: _jsx(ListTable, { ariaLabel: labels.dataTable, columns: columns.map((col) => ({ label: col.label, align: col.align })), children: rows.map((row, i) => (_jsx("tr", { children: columns.map((col) => (_jsx(Td, { align: col.align, children: cellValue(row[col.key], labels) }, col.key))) }, i))) }) }));
121
- }
122
- //# sourceMappingURL=generic-widgets.js.map