@fusedashlabs/widgets 0.4.5 → 0.6.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 (619) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/README.md +34 -16
  3. package/dist/catalog/engine.d.ts +9 -0
  4. package/dist/catalog/engine.d.ts.map +1 -0
  5. package/dist/catalog/engine.js +28 -0
  6. package/dist/catalog/engine.js.map +1 -0
  7. package/dist/catalog/evaluate.d.ts +11 -0
  8. package/dist/catalog/evaluate.d.ts.map +1 -0
  9. package/dist/catalog/evaluate.js +18 -0
  10. package/dist/catalog/evaluate.js.map +1 -0
  11. package/dist/catalog/index.d.ts +8 -0
  12. package/dist/catalog/index.d.ts.map +1 -0
  13. package/dist/catalog/index.js +25 -0
  14. package/dist/catalog/index.js.map +1 -0
  15. package/dist/catalog/load.d.ts +11 -0
  16. package/dist/catalog/load.d.ts.map +1 -0
  17. package/dist/catalog/load.js +144 -0
  18. package/dist/catalog/load.js.map +1 -0
  19. package/dist/catalog/schema.d.ts +5 -0
  20. package/dist/catalog/schema.d.ts.map +1 -0
  21. package/dist/catalog/schema.js +143 -0
  22. package/dist/catalog/schema.js.map +1 -0
  23. package/dist/catalog/types.d.ts +83 -0
  24. package/dist/catalog/types.d.ts.map +1 -0
  25. package/dist/catalog/types.js +45 -0
  26. package/dist/catalog/types.js.map +1 -0
  27. package/dist/catalog/when.d.ts +13 -0
  28. package/dist/catalog/when.d.ts.map +1 -0
  29. package/dist/catalog/when.js +236 -0
  30. package/dist/catalog/when.js.map +1 -0
  31. package/dist/components/approval-bar/element/ui9000-approval-bar.d.ts +17 -0
  32. package/dist/components/approval-bar/element/ui9000-approval-bar.d.ts.map +1 -0
  33. package/dist/components/approval-bar/element/ui9000-approval-bar.js +83 -0
  34. package/dist/components/approval-bar/element/ui9000-approval-bar.js.map +1 -0
  35. package/dist/components/approval-bar/index.d.ts +4 -0
  36. package/dist/components/approval-bar/index.d.ts.map +1 -0
  37. package/dist/components/approval-bar/index.js +11 -0
  38. package/dist/components/approval-bar/index.js.map +1 -0
  39. package/dist/components/approval-bar/lib/normalize.d.ts +7 -0
  40. package/dist/components/approval-bar/lib/normalize.d.ts.map +1 -0
  41. package/dist/components/approval-bar/lib/normalize.js +12 -0
  42. package/dist/components/approval-bar/lib/normalize.js.map +1 -0
  43. package/dist/components/approval-bar/metadata.json.d.ts +99 -0
  44. package/dist/components/approval-bar/metadata.json.js +63 -0
  45. package/dist/components/approval-bar/metadata.json.js.map +1 -0
  46. package/dist/components/area-chart/element/ui9000-area-chart.d.ts +0 -1
  47. package/dist/components/area-chart/element/ui9000-area-chart.d.ts.map +1 -1
  48. package/dist/components/area-chart/element/ui9000-area-chart.js +10 -27
  49. package/dist/components/area-chart/element/ui9000-area-chart.js.map +1 -1
  50. package/dist/components/area-chart/index.js +1 -1
  51. package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts +1 -2
  52. package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts.map +1 -1
  53. package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.js +11 -27
  54. package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.js.map +1 -1
  55. package/dist/components/area-grouped-bar-chart/index.js +1 -1
  56. package/dist/components/bar-chart/element/styles.js +1 -1
  57. package/dist/components/bar-chart/element/styles.js.map +1 -1
  58. package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts +0 -1
  59. package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts.map +1 -1
  60. package/dist/components/bar-chart/element/ui9000-bar-chart.js +10 -30
  61. package/dist/components/bar-chart/element/ui9000-bar-chart.js.map +1 -1
  62. package/dist/components/bar-chart/index.js +3 -3
  63. package/dist/components/bar-chart/metadata.json.d.ts +59 -0
  64. package/dist/components/bar-chart/metadata.json.js +21 -0
  65. package/dist/components/bar-chart/metadata.json.js.map +1 -1
  66. package/dist/components/bias-variance-tradeoff-chart/element/styles.js +3 -1
  67. package/dist/components/bias-variance-tradeoff-chart/element/styles.js.map +1 -1
  68. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts +0 -1
  69. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts.map +1 -1
  70. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js +13 -36
  71. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js.map +1 -1
  72. package/dist/components/bias-variance-tradeoff-chart/index.js +3 -3
  73. package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts +0 -1
  74. package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts.map +1 -1
  75. package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.js +13 -35
  76. package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.js.map +1 -1
  77. package/dist/components/box-plot-chart/index.js +2 -2
  78. package/dist/components/box-plot-chart/render/draw.js +1 -1
  79. package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts +0 -1
  80. package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts.map +1 -1
  81. package/dist/components/bubble-chart/element/ui9000-bubble-chart.js +7 -25
  82. package/dist/components/bubble-chart/element/ui9000-bubble-chart.js.map +1 -1
  83. package/dist/components/bubble-chart/index.js +1 -1
  84. package/dist/components/button/element/ui9000-button.d.ts +15 -0
  85. package/dist/components/button/element/ui9000-button.d.ts.map +1 -0
  86. package/dist/components/button/element/ui9000-button.js +56 -0
  87. package/dist/components/button/element/ui9000-button.js.map +1 -0
  88. package/dist/components/button/index.d.ts +3 -0
  89. package/dist/components/button/index.d.ts.map +1 -0
  90. package/dist/components/button/index.js +9 -0
  91. package/dist/components/button/index.js.map +1 -0
  92. package/dist/components/button/metadata.json.d.ts +99 -0
  93. package/dist/components/button/metadata.json.js +63 -0
  94. package/dist/components/button/metadata.json.js.map +1 -0
  95. package/dist/components/chart-renderer/element/styles.d.ts.map +1 -1
  96. package/dist/components/chart-renderer/element/styles.js +4 -0
  97. package/dist/components/chart-renderer/element/styles.js.map +1 -1
  98. package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts +10 -0
  99. package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts.map +1 -1
  100. package/dist/components/chart-renderer/element/ui9000-chart-renderer.js +40 -4
  101. package/dist/components/chart-renderer/element/ui9000-chart-renderer.js.map +1 -1
  102. package/dist/components/chart-renderer/index.js +1 -1
  103. package/dist/components/chart-renderer/lib/registry.d.ts.map +1 -1
  104. package/dist/components/chart-renderer/lib/registry.js +2 -0
  105. package/dist/components/chart-renderer/lib/registry.js.map +1 -1
  106. package/dist/components/chart-renderer/metadata.json.d.ts +1 -0
  107. package/dist/components/chart-renderer/metadata.json.js +3 -0
  108. package/dist/components/chart-renderer/metadata.json.js.map +1 -1
  109. package/dist/components/checkbox/element/ui9000-checkbox.d.ts +16 -0
  110. package/dist/components/checkbox/element/ui9000-checkbox.d.ts.map +1 -0
  111. package/dist/components/checkbox/element/ui9000-checkbox.js +71 -0
  112. package/dist/components/checkbox/element/ui9000-checkbox.js.map +1 -0
  113. package/dist/components/checkbox/index.d.ts +3 -0
  114. package/dist/components/checkbox/index.d.ts.map +1 -0
  115. package/dist/components/checkbox/index.js +9 -0
  116. package/dist/components/checkbox/index.js.map +1 -0
  117. package/dist/components/checkbox/metadata.json.d.ts +99 -0
  118. package/dist/components/checkbox/metadata.json.js +63 -0
  119. package/dist/components/checkbox/metadata.json.js.map +1 -0
  120. package/dist/components/custom-widget/element/ui9000-custom-widget.d.ts +1 -2
  121. package/dist/components/custom-widget/element/ui9000-custom-widget.d.ts.map +1 -1
  122. package/dist/components/custom-widget/element/ui9000-custom-widget.js +14 -37
  123. package/dist/components/custom-widget/element/ui9000-custom-widget.js.map +1 -1
  124. package/dist/components/custom-widget/index.js +2 -2
  125. package/dist/components/custom-widget/lib/content.d.ts +1 -12
  126. package/dist/components/custom-widget/lib/content.d.ts.map +1 -1
  127. package/dist/components/custom-widget/lib/markdown.d.ts +1 -3
  128. package/dist/components/custom-widget/lib/markdown.d.ts.map +1 -1
  129. package/dist/components/custom-widget/lib/normalize.js +2 -2
  130. package/dist/components/custom-widget/lib/table.d.ts +1 -54
  131. package/dist/components/custom-widget/lib/table.d.ts.map +1 -1
  132. package/dist/components/custom-widget/metadata.json.d.ts +2 -1
  133. package/dist/components/custom-widget/metadata.json.js +4 -1
  134. package/dist/components/custom-widget/metadata.json.js.map +1 -1
  135. package/dist/components/date-input/element/ui9000-date-input.d.ts +16 -0
  136. package/dist/components/date-input/element/ui9000-date-input.d.ts.map +1 -0
  137. package/dist/components/date-input/element/ui9000-date-input.js +71 -0
  138. package/dist/components/date-input/element/ui9000-date-input.js.map +1 -0
  139. package/dist/components/date-input/index.d.ts +3 -0
  140. package/dist/components/date-input/index.d.ts.map +1 -0
  141. package/dist/components/date-input/index.js +9 -0
  142. package/dist/components/date-input/index.js.map +1 -0
  143. package/dist/components/date-input/metadata.json.d.ts +99 -0
  144. package/dist/components/date-input/metadata.json.js +63 -0
  145. package/dist/components/date-input/metadata.json.js.map +1 -0
  146. package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts +0 -1
  147. package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts.map +1 -1
  148. package/dist/components/donut-chart/element/ui9000-donut-chart.js +11 -23
  149. package/dist/components/donut-chart/element/ui9000-donut-chart.js.map +1 -1
  150. package/dist/components/donut-chart/index.js +2 -2
  151. package/dist/components/entity-detail/element/ui9000-entity-detail.d.ts +17 -0
  152. package/dist/components/entity-detail/element/ui9000-entity-detail.d.ts.map +1 -0
  153. package/dist/components/entity-detail/element/ui9000-entity-detail.js +91 -0
  154. package/dist/components/entity-detail/element/ui9000-entity-detail.js.map +1 -0
  155. package/dist/components/entity-detail/index.d.ts +4 -0
  156. package/dist/components/entity-detail/index.d.ts.map +1 -0
  157. package/dist/components/entity-detail/index.js +11 -0
  158. package/dist/components/entity-detail/index.js.map +1 -0
  159. package/dist/components/entity-detail/lib/normalize.d.ts +17 -0
  160. package/dist/components/entity-detail/lib/normalize.d.ts.map +1 -0
  161. package/dist/components/entity-detail/lib/normalize.js +34 -0
  162. package/dist/components/entity-detail/lib/normalize.js.map +1 -0
  163. package/dist/components/entity-detail/metadata.json.d.ts +110 -0
  164. package/dist/components/entity-detail/metadata.json.js +63 -0
  165. package/dist/components/entity-detail/metadata.json.js.map +1 -0
  166. package/dist/components/event-timeline/element/ui9000-event-timeline.d.ts +17 -0
  167. package/dist/components/event-timeline/element/ui9000-event-timeline.d.ts.map +1 -0
  168. package/dist/components/event-timeline/element/ui9000-event-timeline.js +78 -0
  169. package/dist/components/event-timeline/element/ui9000-event-timeline.js.map +1 -0
  170. package/dist/components/event-timeline/index.d.ts +4 -0
  171. package/dist/components/event-timeline/index.d.ts.map +1 -0
  172. package/dist/components/event-timeline/index.js +11 -0
  173. package/dist/components/event-timeline/index.js.map +1 -0
  174. package/dist/components/event-timeline/lib/normalize.d.ts +10 -0
  175. package/dist/components/event-timeline/lib/normalize.d.ts.map +1 -0
  176. package/dist/components/event-timeline/lib/normalize.js +25 -0
  177. package/dist/components/event-timeline/lib/normalize.js.map +1 -0
  178. package/dist/components/event-timeline/metadata.json.d.ts +124 -0
  179. package/dist/components/event-timeline/metadata.json.js +63 -0
  180. package/dist/components/event-timeline/metadata.json.js.map +1 -0
  181. package/dist/components/evidence-panel/element/ui9000-evidence-panel.d.ts +17 -0
  182. package/dist/components/evidence-panel/element/ui9000-evidence-panel.d.ts.map +1 -0
  183. package/dist/components/evidence-panel/element/ui9000-evidence-panel.js +84 -0
  184. package/dist/components/evidence-panel/element/ui9000-evidence-panel.js.map +1 -0
  185. package/dist/components/evidence-panel/index.d.ts +4 -0
  186. package/dist/components/evidence-panel/index.d.ts.map +1 -0
  187. package/dist/components/evidence-panel/index.js +11 -0
  188. package/dist/components/evidence-panel/index.js.map +1 -0
  189. package/dist/components/evidence-panel/lib/normalize.d.ts +19 -0
  190. package/dist/components/evidence-panel/lib/normalize.d.ts.map +1 -0
  191. package/dist/components/evidence-panel/lib/normalize.js +33 -0
  192. package/dist/components/evidence-panel/lib/normalize.js.map +1 -0
  193. package/dist/components/evidence-panel/metadata.json.d.ts +114 -0
  194. package/dist/components/evidence-panel/metadata.json.js +63 -0
  195. package/dist/components/evidence-panel/metadata.json.js.map +1 -0
  196. package/dist/components/form/element/ui9000-form.d.ts +21 -0
  197. package/dist/components/form/element/ui9000-form.d.ts.map +1 -0
  198. package/dist/components/form/element/ui9000-form.js +115 -0
  199. package/dist/components/form/element/ui9000-form.js.map +1 -0
  200. package/dist/components/form/index.d.ts +4 -0
  201. package/dist/components/form/index.d.ts.map +1 -0
  202. package/dist/components/form/index.js +11 -0
  203. package/dist/components/form/index.js.map +1 -0
  204. package/dist/components/form/lib/normalize.d.ts +14 -0
  205. package/dist/components/form/lib/normalize.d.ts.map +1 -0
  206. package/dist/components/form/lib/normalize.js +36 -0
  207. package/dist/components/form/lib/normalize.js.map +1 -0
  208. package/dist/components/form/metadata.json.d.ts +94 -0
  209. package/dist/components/form/metadata.json.js +63 -0
  210. package/dist/components/form/metadata.json.js.map +1 -0
  211. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts +0 -2
  212. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts.map +1 -1
  213. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js +12 -35
  214. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js.map +1 -1
  215. package/dist/components/gini-impurity-entropy-chart/index.js +5 -5
  216. package/dist/components/gini-impurity-entropy-chart/render/draw.js +1 -1
  217. package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts +0 -1
  218. package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts.map +1 -1
  219. package/dist/components/histogram-chart/element/ui9000-histogram-chart.js +10 -26
  220. package/dist/components/histogram-chart/element/ui9000-histogram-chart.js.map +1 -1
  221. package/dist/components/histogram-chart/index.js +2 -2
  222. package/dist/components/histogram-chart/lib/normalize.d.ts.map +1 -1
  223. package/dist/components/histogram-chart/lib/normalize.js +1 -3
  224. package/dist/components/histogram-chart/lib/normalize.js.map +1 -1
  225. package/dist/components/histogram-chart/metadata.json.d.ts +47 -0
  226. package/dist/components/histogram-chart/metadata.json.js +21 -0
  227. package/dist/components/histogram-chart/metadata.json.js.map +1 -1
  228. package/dist/components/image/element/ui9000-image.d.ts +17 -0
  229. package/dist/components/image/element/ui9000-image.d.ts.map +1 -0
  230. package/dist/components/image/element/ui9000-image.js +74 -0
  231. package/dist/components/image/element/ui9000-image.js.map +1 -0
  232. package/dist/components/image/index.d.ts +4 -0
  233. package/dist/components/image/index.d.ts.map +1 -0
  234. package/dist/components/image/index.js +13 -0
  235. package/dist/components/image/index.js.map +1 -0
  236. package/dist/components/image/lib/url.d.ts +14 -0
  237. package/dist/components/image/lib/url.d.ts.map +1 -0
  238. package/dist/components/{custom-widget/lib/content.js → image/lib/url.js} +4 -3
  239. package/dist/components/image/lib/url.js.map +1 -0
  240. package/dist/components/image/metadata.json.d.ts +95 -0
  241. package/dist/components/image/metadata.json.js +63 -0
  242. package/dist/components/image/metadata.json.js.map +1 -0
  243. package/dist/components/inspector/element/styles.d.ts +2 -0
  244. package/dist/components/inspector/element/styles.d.ts.map +1 -0
  245. package/dist/components/inspector/element/styles.js +98 -0
  246. package/dist/components/inspector/element/styles.js.map +1 -0
  247. package/dist/components/inspector/element/ui9000-inspector.d.ts +26 -0
  248. package/dist/components/inspector/element/ui9000-inspector.d.ts.map +1 -0
  249. package/dist/components/inspector/element/ui9000-inspector.js +142 -0
  250. package/dist/components/inspector/element/ui9000-inspector.js.map +1 -0
  251. package/dist/components/inspector/index.d.ts +4 -0
  252. package/dist/components/inspector/index.d.ts.map +1 -0
  253. package/dist/components/inspector/index.js +13 -0
  254. package/dist/components/inspector/index.js.map +1 -0
  255. package/dist/components/inspector/lib/index.d.ts +3 -0
  256. package/dist/components/inspector/lib/index.d.ts.map +1 -0
  257. package/dist/components/inspector/lib/normalize.d.ts +4 -0
  258. package/dist/components/inspector/lib/normalize.d.ts.map +1 -0
  259. package/dist/components/inspector/lib/normalize.js +95 -0
  260. package/dist/components/inspector/lib/normalize.js.map +1 -0
  261. package/dist/components/inspector/lib/types.d.ts +44 -0
  262. package/dist/components/inspector/lib/types.d.ts.map +1 -0
  263. package/dist/components/inspector/lib/types.js +5 -0
  264. package/dist/components/inspector/lib/types.js.map +1 -0
  265. package/dist/components/inspector/metadata.json.d.ts +43 -0
  266. package/dist/components/inspector/metadata.json.js +45 -0
  267. package/dist/components/inspector/metadata.json.js.map +1 -0
  268. package/dist/components/kpi-widget/element/ui9000-kpi-widget.js +2 -2
  269. package/dist/components/kpi-widget/index.js +3 -3
  270. package/dist/components/kpi-widget/metadata.json.d.ts +47 -0
  271. package/dist/components/kpi-widget/metadata.json.js +21 -0
  272. package/dist/components/kpi-widget/metadata.json.js.map +1 -1
  273. package/dist/components/line-chart/element/ui9000-line-chart.d.ts +0 -1
  274. package/dist/components/line-chart/element/ui9000-line-chart.d.ts.map +1 -1
  275. package/dist/components/line-chart/element/ui9000-line-chart.js +6 -24
  276. package/dist/components/line-chart/element/ui9000-line-chart.js.map +1 -1
  277. package/dist/components/line-chart/index.js +2 -2
  278. package/dist/components/line-chart/render/draw.d.ts.map +1 -1
  279. package/dist/components/line-chart/render/draw.js +1 -1
  280. package/dist/components/line-chart/render/draw.js.map +1 -1
  281. package/dist/components/lollipop/element/ui9000-lollipop.d.ts +0 -1
  282. package/dist/components/lollipop/element/ui9000-lollipop.d.ts.map +1 -1
  283. package/dist/components/lollipop/element/ui9000-lollipop.js +7 -25
  284. package/dist/components/lollipop/element/ui9000-lollipop.js.map +1 -1
  285. package/dist/components/lollipop/index.js +2 -2
  286. package/dist/components/map-chart/element/ui9000-map-chart.d.ts +0 -1
  287. package/dist/components/map-chart/element/ui9000-map-chart.d.ts.map +1 -1
  288. package/dist/components/map-chart/element/ui9000-map-chart.js +16 -25
  289. package/dist/components/map-chart/element/ui9000-map-chart.js.map +1 -1
  290. package/dist/components/map-chart/index.js +4 -4
  291. package/dist/components/map-chart/lib/domain.js +1 -1
  292. package/dist/components/map-chart/lib/geo-index.d.ts.map +1 -1
  293. package/dist/components/map-chart/lib/geo-index.js +5 -0
  294. package/dist/components/map-chart/lib/geo-index.js.map +1 -1
  295. package/dist/components/map-chart/metadata.json.d.ts +54 -2
  296. package/dist/components/map-chart/metadata.json.js +23 -2
  297. package/dist/components/map-chart/metadata.json.js.map +1 -1
  298. package/dist/components/matrix-chart/element/ui9000-matrix-chart.d.ts +1 -2
  299. package/dist/components/matrix-chart/element/ui9000-matrix-chart.d.ts.map +1 -1
  300. package/dist/components/matrix-chart/element/ui9000-matrix-chart.js +16 -26
  301. package/dist/components/matrix-chart/element/ui9000-matrix-chart.js.map +1 -1
  302. package/dist/components/matrix-chart/index.js +2 -2
  303. package/dist/components/multi-select/element/ui9000-multi-select.d.ts +16 -0
  304. package/dist/components/multi-select/element/ui9000-multi-select.d.ts.map +1 -0
  305. package/dist/components/multi-select/element/ui9000-multi-select.js +77 -0
  306. package/dist/components/multi-select/element/ui9000-multi-select.js.map +1 -0
  307. package/dist/components/multi-select/index.d.ts +3 -0
  308. package/dist/components/multi-select/index.d.ts.map +1 -0
  309. package/dist/components/multi-select/index.js +9 -0
  310. package/dist/components/multi-select/index.js.map +1 -0
  311. package/dist/components/multi-select/metadata.json.d.ts +99 -0
  312. package/dist/components/multi-select/metadata.json.js +63 -0
  313. package/dist/components/multi-select/metadata.json.js.map +1 -0
  314. package/dist/components/network-graph/element/ui9000-network-graph.d.ts.map +1 -1
  315. package/dist/components/network-graph/element/ui9000-network-graph.js +5 -4
  316. package/dist/components/network-graph/element/ui9000-network-graph.js.map +1 -1
  317. package/dist/components/network-graph/index.js +3 -3
  318. package/dist/components/network-graph/metadata.json.d.ts +53 -2
  319. package/dist/components/network-graph/metadata.json.js +23 -2
  320. package/dist/components/network-graph/metadata.json.js.map +1 -1
  321. package/dist/components/number-input/element/ui9000-number-input.d.ts +16 -0
  322. package/dist/components/number-input/element/ui9000-number-input.d.ts.map +1 -0
  323. package/dist/components/number-input/element/ui9000-number-input.js +71 -0
  324. package/dist/components/number-input/element/ui9000-number-input.js.map +1 -0
  325. package/dist/components/number-input/index.d.ts +3 -0
  326. package/dist/components/number-input/index.d.ts.map +1 -0
  327. package/dist/components/number-input/index.js +9 -0
  328. package/dist/components/number-input/index.js.map +1 -0
  329. package/dist/components/number-input/metadata.json.d.ts +99 -0
  330. package/dist/components/number-input/metadata.json.js +63 -0
  331. package/dist/components/number-input/metadata.json.js.map +1 -0
  332. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts +0 -1
  333. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts.map +1 -1
  334. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js +7 -30
  335. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js.map +1 -1
  336. package/dist/components/parallel-coordinates-chart/index.js +3 -3
  337. package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.d.ts +0 -1
  338. package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.d.ts.map +1 -1
  339. package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.js +7 -23
  340. package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.js.map +1 -1
  341. package/dist/components/partial-dependence-chart/index.js +2 -2
  342. package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts +0 -1
  343. package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts.map +1 -1
  344. package/dist/components/pie-chart/element/ui9000-pie-chart.js +11 -23
  345. package/dist/components/pie-chart/element/ui9000-pie-chart.js.map +1 -1
  346. package/dist/components/pie-chart/index.js +2 -2
  347. package/dist/components/pie-chart/lib/normalize.js +1 -1
  348. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts +0 -1
  349. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts.map +1 -1
  350. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js +14 -23
  351. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js.map +1 -1
  352. package/dist/components/polar-area-chart/index.js +1 -1
  353. package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts +0 -1
  354. package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts.map +1 -1
  355. package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.js +6 -24
  356. package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.js.map +1 -1
  357. package/dist/components/punchcard-chart/index.js +2 -2
  358. package/dist/components/punchcard-chart/render/draw.js +1 -1
  359. package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts +0 -1
  360. package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts.map +1 -1
  361. package/dist/components/radar-chart/element/ui9000-radar-chart.js +8 -25
  362. package/dist/components/radar-chart/element/ui9000-radar-chart.js.map +1 -1
  363. package/dist/components/radar-chart/index.js +2 -2
  364. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts +0 -1
  365. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts.map +1 -1
  366. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js +14 -25
  367. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js.map +1 -1
  368. package/dist/components/radial-bar-chart/index.js +3 -3
  369. package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts +0 -3
  370. package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts.map +1 -1
  371. package/dist/components/sankey-chart/element/ui9000-sankey-chart.js +19 -37
  372. package/dist/components/sankey-chart/element/ui9000-sankey-chart.js.map +1 -1
  373. package/dist/components/sankey-chart/index.js +3 -3
  374. package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts +0 -1
  375. package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts.map +1 -1
  376. package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.js +8 -23
  377. package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.js.map +1 -1
  378. package/dist/components/scatter-plot-chart/index.js +1 -1
  379. package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts +0 -1
  380. package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts.map +1 -1
  381. package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.js +12 -50
  382. package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.js.map +1 -1
  383. package/dist/components/scatter-sparkline-chart/index.js +3 -3
  384. package/dist/components/scatter-sparkline-chart/render/draw.js +1 -1
  385. package/dist/components/select/element/ui9000-select.d.ts +16 -0
  386. package/dist/components/select/element/ui9000-select.d.ts.map +1 -0
  387. package/dist/components/select/element/ui9000-select.js +73 -0
  388. package/dist/components/select/element/ui9000-select.js.map +1 -0
  389. package/dist/components/select/index.d.ts +3 -0
  390. package/dist/components/select/index.d.ts.map +1 -0
  391. package/dist/components/select/index.js +9 -0
  392. package/dist/components/select/index.js.map +1 -0
  393. package/dist/components/select/metadata.json.d.ts +99 -0
  394. package/dist/components/select/metadata.json.js +63 -0
  395. package/dist/components/select/metadata.json.js.map +1 -0
  396. package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts +0 -1
  397. package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts.map +1 -1
  398. package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.js +10 -30
  399. package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.js.map +1 -1
  400. package/dist/components/spark-area-chart/index.js +2 -2
  401. package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts +0 -1
  402. package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts.map +1 -1
  403. package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.js +10 -30
  404. package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.js.map +1 -1
  405. package/dist/components/spark-line-chart/index.js +2 -2
  406. package/dist/components/status-gauge-widget/element/styles.d.ts +7 -0
  407. package/dist/components/status-gauge-widget/element/styles.d.ts.map +1 -0
  408. package/dist/components/status-gauge-widget/element/styles.js +266 -0
  409. package/dist/components/status-gauge-widget/element/styles.js.map +1 -0
  410. package/dist/components/status-gauge-widget/element/ui9000-status-gauge-widget.d.ts +29 -0
  411. package/dist/components/status-gauge-widget/element/ui9000-status-gauge-widget.d.ts.map +1 -0
  412. package/dist/components/status-gauge-widget/element/ui9000-status-gauge-widget.js +154 -0
  413. package/dist/components/status-gauge-widget/element/ui9000-status-gauge-widget.js.map +1 -0
  414. package/dist/components/status-gauge-widget/index.d.ts +4 -0
  415. package/dist/components/status-gauge-widget/index.d.ts.map +1 -0
  416. package/dist/components/status-gauge-widget/index.js +12 -0
  417. package/dist/components/status-gauge-widget/index.js.map +1 -0
  418. package/dist/components/status-gauge-widget/lib/index.d.ts +3 -0
  419. package/dist/components/status-gauge-widget/lib/index.d.ts.map +1 -0
  420. package/dist/components/status-gauge-widget/lib/normalize.d.ts +8 -0
  421. package/dist/components/status-gauge-widget/lib/normalize.d.ts.map +1 -0
  422. package/dist/components/status-gauge-widget/lib/normalize.js +111 -0
  423. package/dist/components/status-gauge-widget/lib/normalize.js.map +1 -0
  424. package/dist/components/status-gauge-widget/lib/types.d.ts +56 -0
  425. package/dist/components/status-gauge-widget/lib/types.d.ts.map +1 -0
  426. package/dist/components/status-gauge-widget/metadata.json.d.ts +20 -0
  427. package/dist/components/status-gauge-widget/metadata.json.js +39 -0
  428. package/dist/components/status-gauge-widget/metadata.json.js.map +1 -0
  429. package/dist/components/status-gauge-widget/render/draw.d.ts +4 -0
  430. package/dist/components/status-gauge-widget/render/draw.d.ts.map +1 -0
  431. package/dist/components/status-gauge-widget/render/draw.js +60 -0
  432. package/dist/components/status-gauge-widget/render/draw.js.map +1 -0
  433. package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts +0 -1
  434. package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts.map +1 -1
  435. package/dist/components/step-line-chart/element/ui9000-step-line-chart.js +10 -30
  436. package/dist/components/step-line-chart/element/ui9000-step-line-chart.js.map +1 -1
  437. package/dist/components/step-line-chart/index.js +2 -2
  438. package/dist/components/table/element/styles.d.ts +2 -0
  439. package/dist/components/table/element/styles.d.ts.map +1 -0
  440. package/dist/components/table/element/styles.js +105 -0
  441. package/dist/components/table/element/styles.js.map +1 -0
  442. package/dist/components/table/element/ui9000-table.d.ts +17 -0
  443. package/dist/components/table/element/ui9000-table.d.ts.map +1 -0
  444. package/dist/components/table/element/ui9000-table.js +113 -0
  445. package/dist/components/table/element/ui9000-table.js.map +1 -0
  446. package/dist/components/table/index.d.ts +4 -0
  447. package/dist/components/table/index.d.ts.map +1 -0
  448. package/dist/components/table/index.js +14 -0
  449. package/dist/components/table/index.js.map +1 -0
  450. package/dist/components/table/lib/table.d.ts +55 -0
  451. package/dist/components/table/lib/table.d.ts.map +1 -0
  452. package/dist/components/table/lib/table.js.map +1 -0
  453. package/dist/components/table/metadata.json.d.ts +88 -0
  454. package/dist/components/table/metadata.json.js +63 -0
  455. package/dist/components/table/metadata.json.js.map +1 -0
  456. package/dist/components/text/element/ui9000-text.d.ts +16 -0
  457. package/dist/components/text/element/ui9000-text.d.ts.map +1 -0
  458. package/dist/components/text/element/ui9000-text.js +90 -0
  459. package/dist/components/text/element/ui9000-text.js.map +1 -0
  460. package/dist/components/text/index.d.ts +4 -0
  461. package/dist/components/text/index.d.ts.map +1 -0
  462. package/dist/components/text/index.js +11 -0
  463. package/dist/components/text/index.js.map +1 -0
  464. package/dist/components/text/lib/content.d.ts +2 -0
  465. package/dist/components/text/lib/content.d.ts.map +1 -0
  466. package/dist/components/text/lib/markdown.d.ts +4 -0
  467. package/dist/components/text/lib/markdown.d.ts.map +1 -0
  468. package/dist/components/text/lib/markdown.js.map +1 -0
  469. package/dist/components/text/metadata.json.d.ts +98 -0
  470. package/dist/components/text/metadata.json.js +63 -0
  471. package/dist/components/text/metadata.json.js.map +1 -0
  472. package/dist/components/text-input/element/ui9000-text-input.d.ts +16 -0
  473. package/dist/components/text-input/element/ui9000-text-input.d.ts.map +1 -0
  474. package/dist/components/text-input/element/ui9000-text-input.js +70 -0
  475. package/dist/components/text-input/element/ui9000-text-input.js.map +1 -0
  476. package/dist/components/text-input/index.d.ts +3 -0
  477. package/dist/components/text-input/index.d.ts.map +1 -0
  478. package/dist/components/text-input/index.js +9 -0
  479. package/dist/components/text-input/index.js.map +1 -0
  480. package/dist/components/text-input/metadata.json.d.ts +99 -0
  481. package/dist/components/text-input/metadata.json.js +63 -0
  482. package/dist/components/text-input/metadata.json.js.map +1 -0
  483. package/dist/components/treemap-chart/element/ui9000-treemap-chart.d.ts +0 -1
  484. package/dist/components/treemap-chart/element/ui9000-treemap-chart.d.ts.map +1 -1
  485. package/dist/components/treemap-chart/element/ui9000-treemap-chart.js +5 -24
  486. package/dist/components/treemap-chart/element/ui9000-treemap-chart.js.map +1 -1
  487. package/dist/components/treemap-chart/index.js +4 -4
  488. package/dist/components/violin-chart/element/ui9000-violin-chart.js +1 -1
  489. package/dist/components/violin-chart/index.js +2 -2
  490. package/dist/components/violin-chart/render/draw.js +1 -1
  491. package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts +0 -1
  492. package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts.map +1 -1
  493. package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.js +11 -29
  494. package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.js.map +1 -1
  495. package/dist/components/waterfall-chart/index.js +2 -2
  496. package/dist/element/chart-shell-render.d.ts +3 -0
  497. package/dist/element/chart-shell-render.d.ts.map +1 -1
  498. package/dist/element/chart-shell-render.js +80 -19
  499. package/dist/element/chart-shell-render.js.map +1 -1
  500. package/dist/element/chart-shell-styles.d.ts +5 -1
  501. package/dist/element/chart-shell-styles.d.ts.map +1 -1
  502. package/dist/element/chart-shell-styles.js +126 -7
  503. package/dist/element/chart-shell-styles.js.map +1 -1
  504. package/dist/element/chart-tooltip-portal.d.ts +29 -0
  505. package/dist/element/chart-tooltip-portal.d.ts.map +1 -0
  506. package/dist/element/chart-tooltip-portal.js +278 -0
  507. package/dist/element/chart-tooltip-portal.js.map +1 -0
  508. package/dist/element/dispatch-ui9000.d.ts +11 -0
  509. package/dist/element/dispatch-ui9000.d.ts.map +1 -0
  510. package/dist/element/dispatch-ui9000.js +21 -0
  511. package/dist/element/dispatch-ui9000.js.map +1 -0
  512. package/dist/element/header-icons.d.ts +18 -0
  513. package/dist/element/header-icons.d.ts.map +1 -0
  514. package/dist/element/header-icons.js +44 -0
  515. package/dist/element/header-icons.js.map +1 -0
  516. package/dist/element/surface-styles.d.ts +2 -0
  517. package/dist/element/surface-styles.d.ts.map +1 -0
  518. package/dist/element/surface-styles.js +84 -0
  519. package/dist/element/surface-styles.js.map +1 -0
  520. package/dist/element/ui9000-chart-base.d.ts +19 -0
  521. package/dist/element/ui9000-chart-base.d.ts.map +1 -1
  522. package/dist/element/ui9000-chart-base.js +34 -0
  523. package/dist/element/ui9000-chart-base.js.map +1 -1
  524. package/dist/element/widget-header.d.ts +35 -0
  525. package/dist/element/widget-header.d.ts.map +1 -0
  526. package/dist/element/widget-header.js +59 -0
  527. package/dist/element/widget-header.js.map +1 -0
  528. package/dist/index.d.ts +21 -2
  529. package/dist/index.d.ts.map +1 -1
  530. package/dist/index.js +172 -65
  531. package/dist/index.js.map +1 -1
  532. package/dist/lazy/approval-bar.d.ts +4 -0
  533. package/dist/lazy/approval-bar.d.ts.map +1 -0
  534. package/dist/lazy/approval-bar.js +5 -0
  535. package/dist/lazy/approval-bar.js.map +1 -0
  536. package/dist/lazy/button.d.ts +4 -0
  537. package/dist/lazy/button.d.ts.map +1 -0
  538. package/dist/lazy/button.js +5 -0
  539. package/dist/lazy/button.js.map +1 -0
  540. package/dist/lazy/checkbox.d.ts +4 -0
  541. package/dist/lazy/checkbox.d.ts.map +1 -0
  542. package/dist/lazy/checkbox.js +5 -0
  543. package/dist/lazy/checkbox.js.map +1 -0
  544. package/dist/lazy/custom-widget.js +5 -0
  545. package/dist/lazy/custom-widget.js.map +1 -0
  546. package/dist/lazy/date-input.d.ts +4 -0
  547. package/dist/lazy/date-input.d.ts.map +1 -0
  548. package/dist/lazy/date-input.js +5 -0
  549. package/dist/lazy/date-input.js.map +1 -0
  550. package/dist/lazy/entity-detail.d.ts +4 -0
  551. package/dist/lazy/entity-detail.d.ts.map +1 -0
  552. package/dist/lazy/entity-detail.js +5 -0
  553. package/dist/lazy/entity-detail.js.map +1 -0
  554. package/dist/lazy/event-timeline.d.ts +4 -0
  555. package/dist/lazy/event-timeline.d.ts.map +1 -0
  556. package/dist/lazy/event-timeline.js +5 -0
  557. package/dist/lazy/event-timeline.js.map +1 -0
  558. package/dist/lazy/evidence-panel.d.ts +4 -0
  559. package/dist/lazy/evidence-panel.d.ts.map +1 -0
  560. package/dist/lazy/evidence-panel.js +5 -0
  561. package/dist/lazy/evidence-panel.js.map +1 -0
  562. package/dist/lazy/form.d.ts +4 -0
  563. package/dist/lazy/form.d.ts.map +1 -0
  564. package/dist/lazy/form.js +5 -0
  565. package/dist/lazy/form.js.map +1 -0
  566. package/dist/lazy/image.d.ts +4 -0
  567. package/dist/lazy/image.d.ts.map +1 -0
  568. package/dist/lazy/image.js +5 -0
  569. package/dist/lazy/image.js.map +1 -0
  570. package/dist/lazy/index.d.ts +17 -1
  571. package/dist/lazy/index.d.ts.map +1 -1
  572. package/dist/lazy/index.js +128 -0
  573. package/dist/lazy/index.js.map +1 -1
  574. package/dist/lazy/multi-select.d.ts +4 -0
  575. package/dist/lazy/multi-select.d.ts.map +1 -0
  576. package/dist/lazy/multi-select.js +5 -0
  577. package/dist/lazy/multi-select.js.map +1 -0
  578. package/dist/lazy/number-input.d.ts +4 -0
  579. package/dist/lazy/number-input.d.ts.map +1 -0
  580. package/dist/lazy/number-input.js +5 -0
  581. package/dist/lazy/number-input.js.map +1 -0
  582. package/dist/lazy/select.d.ts +4 -0
  583. package/dist/lazy/select.d.ts.map +1 -0
  584. package/dist/lazy/select.js +5 -0
  585. package/dist/lazy/select.js.map +1 -0
  586. package/dist/lazy/status-gauge-widget.d.ts +4 -0
  587. package/dist/lazy/status-gauge-widget.d.ts.map +1 -0
  588. package/dist/lazy/status-gauge-widget.js +5 -0
  589. package/dist/lazy/status-gauge-widget.js.map +1 -0
  590. package/dist/lazy/table.d.ts +4 -0
  591. package/dist/lazy/table.d.ts.map +1 -0
  592. package/dist/lazy/table.js +5 -0
  593. package/dist/lazy/table.js.map +1 -0
  594. package/dist/lazy/text-input.d.ts +4 -0
  595. package/dist/lazy/text-input.d.ts.map +1 -0
  596. package/dist/lazy/text-input.js +5 -0
  597. package/dist/lazy/text-input.js.map +1 -0
  598. package/dist/lazy/text.d.ts +4 -0
  599. package/dist/lazy/text.d.ts.map +1 -0
  600. package/dist/lazy/text.js +5 -0
  601. package/dist/lazy/text.js.map +1 -0
  602. package/dist/lib/labelled-control.d.ts +12 -0
  603. package/dist/lib/labelled-control.d.ts.map +1 -0
  604. package/dist/lib/labelled-control.js +14 -0
  605. package/dist/lib/labelled-control.js.map +1 -0
  606. package/dist/utils/chart-shell.d.ts +1 -1
  607. package/dist/utils/chart-shell.d.ts.map +1 -1
  608. package/dist/utils/chart-shell.js +4 -6
  609. package/dist/utils/chart-shell.js.map +1 -1
  610. package/dist/utils/lit-draw.d.ts +1 -0
  611. package/dist/utils/lit-draw.d.ts.map +1 -1
  612. package/dist/utils/lit-draw.js +4 -1
  613. package/dist/utils/lit-draw.js.map +1 -1
  614. package/package.json +144 -3
  615. package/dist/components/custom-widget/lib/content.js.map +0 -1
  616. package/dist/components/custom-widget/lib/markdown.js.map +0 -1
  617. package/dist/components/custom-widget/lib/table.js.map +0 -1
  618. /package/dist/components/{custom-widget → table}/lib/table.js +0 -0
  619. /package/dist/components/{custom-widget → text}/lib/markdown.js +0 -0
@@ -0,0 +1,83 @@
1
+ /** Closed intent enum — Stage 3 must not rename these. */
2
+ export declare const INTENTS: readonly ["spatial", "comparison", "summary", "form", "evidence", "graph"];
3
+ export type Intent = (typeof INTENTS)[number];
4
+ export declare const CATALOG_TIERS: readonly ["engine", "substrate", "host"];
5
+ export type CatalogTier = (typeof CATALOG_TIERS)[number];
6
+ /** Closed action types declared in engine metadata — not JS handler names. */
7
+ export declare const ALLOWED_ACTIONS: readonly ["hover", "resize", "select", "submit", "approve", "reject", "pan", "zoom", "drag", "filter"];
8
+ export type AllowedAction = (typeof ALLOWED_ACTIONS)[number];
9
+ /** Closed DataProfile keys — evalCases.profile and `when` strings may use only these. */
10
+ export declare const DATA_PROFILE_KEYS: readonly ["hasCategory", "hasNumericMetric", "categoryCardinality", "hasGeo", "hasTemporal", "hasNodes", "hasLinks", "hasTabularRows", "rowCount", "hasEntityId", "hasClaim", "hasEvents", "controlCount", "allControlsLabelled", "hasMapToken"];
11
+ export type DataProfileKey = (typeof DATA_PROFILE_KEYS)[number];
12
+ export type DataProfile = {
13
+ hasCategory?: boolean;
14
+ hasNumericMetric?: boolean;
15
+ categoryCardinality?: number;
16
+ hasGeo?: boolean;
17
+ hasTemporal?: boolean;
18
+ hasNodes?: boolean;
19
+ hasLinks?: boolean;
20
+ hasTabularRows?: boolean;
21
+ rowCount?: number;
22
+ hasEntityId?: boolean;
23
+ hasClaim?: boolean;
24
+ hasEvents?: boolean;
25
+ controlCount?: number;
26
+ allControlsLabelled?: boolean;
27
+ hasMapToken?: boolean;
28
+ };
29
+ export type DataRole = {
30
+ id: string;
31
+ required: boolean;
32
+ description: string;
33
+ cardinality?: string;
34
+ type?: string;
35
+ };
36
+ export type CatalogRule = {
37
+ when: string;
38
+ reason: string;
39
+ };
40
+ export type AccessibilityBlock = {
41
+ nameFrom: string;
42
+ keyboard: string[];
43
+ shadowBoundary: string;
44
+ };
45
+ export type EvalCase = {
46
+ id: string;
47
+ intent: Intent;
48
+ profile: DataProfile;
49
+ expect: 'eligible' | 'disqualified';
50
+ reasonIncludes: string;
51
+ };
52
+ export type EngineMetadata = {
53
+ id: string;
54
+ tag: string;
55
+ title: string;
56
+ description: string;
57
+ entry: string;
58
+ lazyImport: string;
59
+ propsSchema: Record<string, unknown>;
60
+ tier: 'engine';
61
+ intents: Intent[];
62
+ dataRoles: DataRole[];
63
+ eligibility: CatalogRule[];
64
+ disqualify: CatalogRule[];
65
+ allowedActions: AllowedAction[];
66
+ accessibility: AccessibilityBlock;
67
+ evalCases: EvalCase[];
68
+ chartTypeKeys?: string[];
69
+ source?: string;
70
+ stack?: string;
71
+ usageConditions?: Record<string, unknown>;
72
+ };
73
+ export type PortMetadata = {
74
+ id: string;
75
+ tag: string;
76
+ title?: string;
77
+ description?: string;
78
+ entry?: string;
79
+ lazyImport?: string;
80
+ tier?: CatalogTier;
81
+ [key: string]: unknown;
82
+ };
83
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,eAAO,MAAM,OAAO,4EAOV,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,eAAO,MAAM,aAAa,0CAA2C,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,8EAA8E;AAC9E,eAAO,MAAM,eAAe,wGAWlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,yFAAyF;AACzF,eAAO,MAAM,iBAAiB,kPAgBpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,aAAa,EAAE,kBAAkB,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
@@ -0,0 +1,45 @@
1
+ const INTENTS = [
2
+ "spatial",
3
+ "comparison",
4
+ "summary",
5
+ "form",
6
+ "evidence",
7
+ "graph"
8
+ ];
9
+ const CATALOG_TIERS = ["engine", "substrate", "host"];
10
+ const ALLOWED_ACTIONS = [
11
+ "hover",
12
+ "resize",
13
+ "select",
14
+ "submit",
15
+ "approve",
16
+ "reject",
17
+ "pan",
18
+ "zoom",
19
+ "drag",
20
+ "filter"
21
+ ];
22
+ const DATA_PROFILE_KEYS = [
23
+ "hasCategory",
24
+ "hasNumericMetric",
25
+ "categoryCardinality",
26
+ "hasGeo",
27
+ "hasTemporal",
28
+ "hasNodes",
29
+ "hasLinks",
30
+ "hasTabularRows",
31
+ "rowCount",
32
+ "hasEntityId",
33
+ "hasClaim",
34
+ "hasEvents",
35
+ "controlCount",
36
+ "allControlsLabelled",
37
+ "hasMapToken"
38
+ ];
39
+ export {
40
+ ALLOWED_ACTIONS,
41
+ CATALOG_TIERS,
42
+ DATA_PROFILE_KEYS,
43
+ INTENTS
44
+ };
45
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../src/catalog/types.ts"],"sourcesContent":["/** Closed intent enum — Stage 3 must not rename these. */\nexport const INTENTS = [\n 'spatial',\n 'comparison',\n 'summary',\n 'form',\n 'evidence',\n 'graph',\n] as const;\n\nexport type Intent = (typeof INTENTS)[number];\n\nexport const CATALOG_TIERS = ['engine', 'substrate', 'host'] as const;\n\nexport type CatalogTier = (typeof CATALOG_TIERS)[number];\n\n/** Closed action types declared in engine metadata — not JS handler names. */\nexport const ALLOWED_ACTIONS = [\n 'hover',\n 'resize',\n 'select',\n 'submit',\n 'approve',\n 'reject',\n 'pan',\n 'zoom',\n 'drag',\n 'filter',\n] as const;\n\nexport type AllowedAction = (typeof ALLOWED_ACTIONS)[number];\n\n/** Closed DataProfile keys — evalCases.profile and `when` strings may use only these. */\nexport const DATA_PROFILE_KEYS = [\n 'hasCategory',\n 'hasNumericMetric',\n 'categoryCardinality',\n 'hasGeo',\n 'hasTemporal',\n 'hasNodes',\n 'hasLinks',\n 'hasTabularRows',\n 'rowCount',\n 'hasEntityId',\n 'hasClaim',\n 'hasEvents',\n 'controlCount',\n 'allControlsLabelled',\n 'hasMapToken',\n] as const;\n\nexport type DataProfileKey = (typeof DATA_PROFILE_KEYS)[number];\n\nexport type DataProfile = {\n hasCategory?: boolean;\n hasNumericMetric?: boolean;\n categoryCardinality?: number;\n hasGeo?: boolean;\n hasTemporal?: boolean;\n hasNodes?: boolean;\n hasLinks?: boolean;\n hasTabularRows?: boolean;\n rowCount?: number;\n hasEntityId?: boolean;\n hasClaim?: boolean;\n hasEvents?: boolean;\n controlCount?: number;\n allControlsLabelled?: boolean;\n hasMapToken?: boolean;\n};\n\nexport type DataRole = {\n id: string;\n required: boolean;\n description: string;\n cardinality?: string;\n type?: string;\n};\n\nexport type CatalogRule = {\n when: string;\n reason: string;\n};\n\nexport type AccessibilityBlock = {\n nameFrom: string;\n keyboard: string[];\n shadowBoundary: string;\n};\n\nexport type EvalCase = {\n id: string;\n intent: Intent;\n profile: DataProfile;\n expect: 'eligible' | 'disqualified';\n reasonIncludes: string;\n};\n\nexport type EngineMetadata = {\n id: string;\n tag: string;\n title: string;\n description: string;\n entry: string;\n lazyImport: string;\n propsSchema: Record<string, unknown>;\n tier: 'engine';\n intents: Intent[];\n dataRoles: DataRole[];\n eligibility: CatalogRule[];\n disqualify: CatalogRule[];\n allowedActions: AllowedAction[];\n accessibility: AccessibilityBlock;\n evalCases: EvalCase[];\n chartTypeKeys?: string[];\n source?: string;\n stack?: string;\n usageConditions?: Record<string, unknown>;\n};\n\nexport type PortMetadata = {\n id: string;\n tag: string;\n title?: string;\n description?: string;\n entry?: string;\n lazyImport?: string;\n tier?: CatalogTier;\n [key: string]: unknown;\n};\n"],"names":[],"mappings":"AACO,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,gBAAgB,CAAC,UAAU,aAAa,MAAM;AAKpD,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
@@ -0,0 +1,13 @@
1
+ import { DataProfile, DataProfileKey } from './types.js';
2
+ declare function isDataProfileKey(key: string): key is DataProfileKey;
3
+ /** Pull `profile.<key>` identifiers out of a `when` string. */
4
+ export declare function profileKeysInWhen(when: string): string[];
5
+ export declare function assertWhenUsesClosedProfile(when: string): void;
6
+ export declare function assertProfileUsesClosedKeys(profile: DataProfile): void;
7
+ /**
8
+ * Evaluate a catalog `when` string against a profile.
9
+ * Only `profile.<DataProfileKey>`, numbers, && || ! comparisons, and grouping.
10
+ */
11
+ export declare function evalWhen(when: string, profile: DataProfile): boolean;
12
+ export { isDataProfileKey };
13
+ //# sourceMappingURL=when.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when.d.ts","sourceRoot":"","sources":["../../src/catalog/when.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAetF,iBAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAE5D;AA8ND,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIxD;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAK9D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAMtE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAMpE;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,236 @@
1
+ import { DATA_PROFILE_KEYS } from "./types.js";
2
+ const PROFILE_KEY_SET = new Set(DATA_PROFILE_KEYS);
3
+ const CMP_OPS = ["===", "!==", "<=", ">=", "<", ">"];
4
+ function isDataProfileKey(key) {
5
+ return PROFILE_KEY_SET.has(key);
6
+ }
7
+ function tokenize(when) {
8
+ const tokens = [];
9
+ let i = 0;
10
+ const src = when;
11
+ const skipWs = () => {
12
+ while (i < src.length && /\s/.test(src[i])) i += 1;
13
+ };
14
+ while (i < src.length) {
15
+ skipWs();
16
+ if (i >= src.length) break;
17
+ if (src.startsWith("profile.", i)) {
18
+ i += "profile.".length;
19
+ const start = i;
20
+ if (!/[A-Za-z]/.test(src[i] ?? "")) {
21
+ throw new Error(`when: expected DataProfile key after profile. at ${start}`);
22
+ }
23
+ i += 1;
24
+ while (i < src.length && /[A-Za-z0-9]/.test(src[i])) i += 1;
25
+ const key = src.slice(start, i);
26
+ if (!isDataProfileKey(key)) {
27
+ throw new Error(`when references unknown DataProfile key "${key}"`);
28
+ }
29
+ skipWs();
30
+ if (src[i] === "(") {
31
+ throw new Error("when does not allow calls");
32
+ }
33
+ tokens.push({ kind: "profile", key });
34
+ continue;
35
+ }
36
+ if (src.startsWith("&&", i)) {
37
+ tokens.push({ kind: "op", op: "&&" });
38
+ i += 2;
39
+ continue;
40
+ }
41
+ if (src.startsWith("||", i)) {
42
+ tokens.push({ kind: "op", op: "||" });
43
+ i += 2;
44
+ continue;
45
+ }
46
+ if (src.startsWith("===", i)) {
47
+ tokens.push({ kind: "op", op: "===" });
48
+ i += 3;
49
+ continue;
50
+ }
51
+ if (src.startsWith("!==", i)) {
52
+ tokens.push({ kind: "op", op: "!==" });
53
+ i += 3;
54
+ continue;
55
+ }
56
+ if (src.startsWith("<=", i)) {
57
+ tokens.push({ kind: "op", op: "<=" });
58
+ i += 2;
59
+ continue;
60
+ }
61
+ if (src.startsWith(">=", i)) {
62
+ tokens.push({ kind: "op", op: ">=" });
63
+ i += 2;
64
+ continue;
65
+ }
66
+ if (src[i] === "<" || src[i] === ">") {
67
+ tokens.push({ kind: "op", op: src[i] });
68
+ i += 1;
69
+ continue;
70
+ }
71
+ if (src[i] === "!") {
72
+ tokens.push({ kind: "op", op: "!" });
73
+ i += 1;
74
+ continue;
75
+ }
76
+ if (src[i] === "(") {
77
+ tokens.push({ kind: "lparen" });
78
+ i += 1;
79
+ continue;
80
+ }
81
+ if (src[i] === ")") {
82
+ tokens.push({ kind: "rparen" });
83
+ i += 1;
84
+ continue;
85
+ }
86
+ if (src[i] === "-" || /[0-9]/.test(src[i])) {
87
+ const start = i;
88
+ if (src[i] === "-") i += 1;
89
+ if (!/[0-9]/.test(src[i] ?? "")) {
90
+ throw new Error(`when uses disallowed characters near "${src.slice(start)}"`);
91
+ }
92
+ while (i < src.length && /[0-9]/.test(src[i])) i += 1;
93
+ if (src[i] === ".") {
94
+ i += 1;
95
+ if (!/[0-9]/.test(src[i] ?? "")) {
96
+ throw new Error("when: number has a trailing dot");
97
+ }
98
+ while (i < src.length && /[0-9]/.test(src[i])) i += 1;
99
+ }
100
+ tokens.push({ kind: "number", value: Number(src.slice(start, i)) });
101
+ continue;
102
+ }
103
+ throw new Error(`when uses disallowed characters: ${src.slice(i)}`);
104
+ }
105
+ return tokens;
106
+ }
107
+ class Parser {
108
+ constructor(tokens, profile) {
109
+ this.tokens = tokens;
110
+ this.profile = profile;
111
+ this.pos = 0;
112
+ }
113
+ peek() {
114
+ return this.tokens[this.pos];
115
+ }
116
+ peekOp(op) {
117
+ const token = this.peek();
118
+ return (token == null ? void 0 : token.kind) === "op" && token.op === op;
119
+ }
120
+ take() {
121
+ const token = this.tokens[this.pos];
122
+ if (!token) throw new Error("when: unexpected end of expression");
123
+ this.pos += 1;
124
+ return token;
125
+ }
126
+ expectEnd() {
127
+ if (this.pos !== this.tokens.length) {
128
+ throw new Error("when: unexpected trailing tokens");
129
+ }
130
+ }
131
+ parseExpr() {
132
+ return this.parseOr();
133
+ }
134
+ parseOr() {
135
+ let left = this.parseAnd();
136
+ while (this.peekOp("||")) {
137
+ this.take();
138
+ const right = this.parseAnd();
139
+ left = left || right;
140
+ }
141
+ return left;
142
+ }
143
+ parseAnd() {
144
+ let left = this.parseComparison();
145
+ while (this.peekOp("&&")) {
146
+ this.take();
147
+ const right = this.parseComparison();
148
+ left = left && right;
149
+ }
150
+ return left;
151
+ }
152
+ parseComparison() {
153
+ const left = this.parseUnary();
154
+ const next = this.peek();
155
+ if ((next == null ? void 0 : next.kind) === "op" && CMP_OPS.includes(next.op)) {
156
+ const op = next.op;
157
+ this.take();
158
+ const right = this.parseUnary();
159
+ return compare(op, left, right);
160
+ }
161
+ return left;
162
+ }
163
+ parseUnary() {
164
+ const next = this.peek();
165
+ if ((next == null ? void 0 : next.kind) === "op" && next.op === "!") {
166
+ this.take();
167
+ return !this.parseUnary();
168
+ }
169
+ return this.parsePrimary();
170
+ }
171
+ parsePrimary() {
172
+ const token = this.take();
173
+ if (token.kind === "profile") {
174
+ return this.profile[token.key];
175
+ }
176
+ if (token.kind === "number") {
177
+ return token.value;
178
+ }
179
+ if (token.kind === "lparen") {
180
+ const inner = this.parseExpr();
181
+ const close = this.take();
182
+ if (close.kind !== "rparen") {
183
+ throw new Error("when: expected closing parenthesis");
184
+ }
185
+ return inner;
186
+ }
187
+ throw new Error("when: expected profile key, number, or grouped expression");
188
+ }
189
+ }
190
+ function compare(op, left, right) {
191
+ switch (op) {
192
+ case "===":
193
+ return left === right;
194
+ case "!==":
195
+ return left !== right;
196
+ case "<=":
197
+ return left <= right;
198
+ case ">=":
199
+ return left >= right;
200
+ case "<":
201
+ return left < right;
202
+ case ">":
203
+ return left > right;
204
+ }
205
+ }
206
+ function profileKeysInWhen(when) {
207
+ return tokenize(when).filter((token) => token.kind === "profile").map((token) => token.key);
208
+ }
209
+ function assertWhenUsesClosedProfile(when) {
210
+ if (!when.trim()) {
211
+ throw new Error("empty when expression");
212
+ }
213
+ tokenize(when);
214
+ }
215
+ function assertProfileUsesClosedKeys(profile) {
216
+ for (const key of Object.keys(profile)) {
217
+ if (!PROFILE_KEY_SET.has(key)) {
218
+ throw new Error(`evalCases.profile has unknown key "${key}"`);
219
+ }
220
+ }
221
+ }
222
+ function evalWhen(when, profile) {
223
+ assertWhenUsesClosedProfile(when);
224
+ const parser = new Parser(tokenize(when), profile);
225
+ const value = parser.parseExpr();
226
+ parser.expectEnd();
227
+ return Boolean(value);
228
+ }
229
+ export {
230
+ assertProfileUsesClosedKeys,
231
+ assertWhenUsesClosedProfile,
232
+ evalWhen,
233
+ isDataProfileKey,
234
+ profileKeysInWhen
235
+ };
236
+ //# sourceMappingURL=when.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"when.js","sources":["../../src/catalog/when.ts"],"sourcesContent":["import { DATA_PROFILE_KEYS, type DataProfile, type DataProfileKey } from './types.js';\n\nconst PROFILE_KEY_SET = new Set<string>(DATA_PROFILE_KEYS);\n\ntype CmpOp = '===' | '!==' | '<=' | '>=' | '<' | '>';\n\ntype Token =\n | { kind: 'profile'; key: DataProfileKey }\n | { kind: 'number'; value: number }\n | { kind: 'op'; op: '&&' | '||' | '!' | CmpOp }\n | { kind: 'lparen' }\n | { kind: 'rparen' };\n\nconst CMP_OPS: CmpOp[] = ['===', '!==', '<=', '>=', '<', '>'];\n\nfunction isDataProfileKey(key: string): key is DataProfileKey {\n return PROFILE_KEY_SET.has(key);\n}\n\nfunction tokenize(when: string): Token[] {\n const tokens: Token[] = [];\n let i = 0;\n const src = when;\n\n const skipWs = () => {\n while (i < src.length && /\\s/.test(src[i])) i += 1;\n };\n\n while (i < src.length) {\n skipWs();\n if (i >= src.length) break;\n\n if (src.startsWith('profile.', i)) {\n i += 'profile.'.length;\n const start = i;\n if (!/[A-Za-z]/.test(src[i] ?? '')) {\n throw new Error(`when: expected DataProfile key after profile. at ${start}`);\n }\n i += 1;\n while (i < src.length && /[A-Za-z0-9]/.test(src[i])) i += 1;\n const key = src.slice(start, i);\n if (!isDataProfileKey(key)) {\n throw new Error(`when references unknown DataProfile key \"${key}\"`);\n }\n skipWs();\n if (src[i] === '(') {\n throw new Error('when does not allow calls');\n }\n tokens.push({ kind: 'profile', key });\n continue;\n }\n\n if (src.startsWith('&&', i)) {\n tokens.push({ kind: 'op', op: '&&' });\n i += 2;\n continue;\n }\n if (src.startsWith('||', i)) {\n tokens.push({ kind: 'op', op: '||' });\n i += 2;\n continue;\n }\n if (src.startsWith('===', i)) {\n tokens.push({ kind: 'op', op: '===' });\n i += 3;\n continue;\n }\n if (src.startsWith('!==', i)) {\n tokens.push({ kind: 'op', op: '!==' });\n i += 3;\n continue;\n }\n if (src.startsWith('<=', i)) {\n tokens.push({ kind: 'op', op: '<=' });\n i += 2;\n continue;\n }\n if (src.startsWith('>=', i)) {\n tokens.push({ kind: 'op', op: '>=' });\n i += 2;\n continue;\n }\n if (src[i] === '<' || src[i] === '>') {\n tokens.push({ kind: 'op', op: src[i] as '<' | '>' });\n i += 1;\n continue;\n }\n if (src[i] === '!') {\n tokens.push({ kind: 'op', op: '!' });\n i += 1;\n continue;\n }\n if (src[i] === '(') {\n tokens.push({ kind: 'lparen' });\n i += 1;\n continue;\n }\n if (src[i] === ')') {\n tokens.push({ kind: 'rparen' });\n i += 1;\n continue;\n }\n\n if (src[i] === '-' || /[0-9]/.test(src[i])) {\n const start = i;\n if (src[i] === '-') i += 1;\n if (!/[0-9]/.test(src[i] ?? '')) {\n throw new Error(`when uses disallowed characters near \"${src.slice(start)}\"`);\n }\n while (i < src.length && /[0-9]/.test(src[i])) i += 1;\n if (src[i] === '.') {\n i += 1;\n if (!/[0-9]/.test(src[i] ?? '')) {\n throw new Error('when: number has a trailing dot');\n }\n while (i < src.length && /[0-9]/.test(src[i])) i += 1;\n }\n tokens.push({ kind: 'number', value: Number(src.slice(start, i)) });\n continue;\n }\n\n throw new Error(`when uses disallowed characters: ${src.slice(i)}`);\n }\n\n return tokens;\n}\n\nclass Parser {\n private pos = 0;\n\n constructor(\n private readonly tokens: Token[],\n private readonly profile: DataProfile,\n ) {}\n\n private peek(): Token | undefined {\n return this.tokens[this.pos];\n }\n\n private peekOp(op: '&&' | '||' | '!' | CmpOp): boolean {\n const token = this.peek();\n return token?.kind === 'op' && token.op === op;\n }\n\n private take(): Token {\n const token = this.tokens[this.pos];\n if (!token) throw new Error('when: unexpected end of expression');\n this.pos += 1;\n return token;\n }\n\n expectEnd(): void {\n if (this.pos !== this.tokens.length) {\n throw new Error('when: unexpected trailing tokens');\n }\n }\n\n parseExpr(): unknown {\n return this.parseOr();\n }\n\n private parseOr(): unknown {\n let left = this.parseAnd();\n while (this.peekOp('||')) {\n this.take();\n const right = this.parseAnd();\n left = left || right;\n }\n return left;\n }\n\n private parseAnd(): unknown {\n let left = this.parseComparison();\n while (this.peekOp('&&')) {\n this.take();\n const right = this.parseComparison();\n left = left && right;\n }\n return left;\n }\n\n private parseComparison(): unknown {\n const left = this.parseUnary();\n const next = this.peek();\n if (next?.kind === 'op' && (CMP_OPS as string[]).includes(next.op)) {\n const op = next.op as CmpOp;\n this.take();\n const right = this.parseUnary();\n return compare(op, left, right);\n }\n return left;\n }\n\n private parseUnary(): unknown {\n const next = this.peek();\n if (next?.kind === 'op' && next.op === '!') {\n this.take();\n return !this.parseUnary();\n }\n return this.parsePrimary();\n }\n\n private parsePrimary(): unknown {\n const token = this.take();\n if (token.kind === 'profile') {\n return this.profile[token.key];\n }\n if (token.kind === 'number') {\n return token.value;\n }\n if (token.kind === 'lparen') {\n const inner = this.parseExpr();\n const close = this.take();\n if (close.kind !== 'rparen') {\n throw new Error('when: expected closing parenthesis');\n }\n return inner;\n }\n throw new Error('when: expected profile key, number, or grouped expression');\n }\n}\n\nfunction compare(op: CmpOp, left: unknown, right: unknown): boolean {\n switch (op) {\n case '===':\n return left === right;\n case '!==':\n return left !== right;\n case '<=':\n return (left as number) <= (right as number);\n case '>=':\n return (left as number) >= (right as number);\n case '<':\n return (left as number) < (right as number);\n case '>':\n return (left as number) > (right as number);\n }\n}\n\n/** Pull `profile.<key>` identifiers out of a `when` string. */\nexport function profileKeysInWhen(when: string): string[] {\n return tokenize(when)\n .filter((token): token is Extract<Token, { kind: 'profile' }> => token.kind === 'profile')\n .map((token) => token.key);\n}\n\nexport function assertWhenUsesClosedProfile(when: string): void {\n if (!when.trim()) {\n throw new Error('empty when expression');\n }\n tokenize(when);\n}\n\nexport function assertProfileUsesClosedKeys(profile: DataProfile): void {\n for (const key of Object.keys(profile)) {\n if (!PROFILE_KEY_SET.has(key)) {\n throw new Error(`evalCases.profile has unknown key \"${key}\"`);\n }\n }\n}\n\n/**\n * Evaluate a catalog `when` string against a profile.\n * Only `profile.<DataProfileKey>`, numbers, && || ! comparisons, and grouping.\n */\nexport function evalWhen(when: string, profile: DataProfile): boolean {\n assertWhenUsesClosedProfile(when);\n const parser = new Parser(tokenize(when), profile);\n const value = parser.parseExpr();\n parser.expectEnd();\n return Boolean(value);\n}\n\nexport { isDataProfileKey };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ export declare class Ui9000ApprovalBar extends LitElement {
3
+ static styles: import('lit').CSSResult;
4
+ dataJson: string;
5
+ private _model;
6
+ private refresh;
7
+ connectedCallback(): void;
8
+ willUpdate(changed: PropertyValues): void;
9
+ render(): import('lit-html').TemplateResult<1>;
10
+ }
11
+ export declare function registerApprovalBar(): void;
12
+ declare global {
13
+ interface HTMLElementTagNameMap {
14
+ 'ui9000-approval-bar': Ui9000ApprovalBar;
15
+ }
16
+ }
17
+ //# sourceMappingURL=ui9000-approval-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-approval-bar.d.ts","sourceRoot":"","sources":["../../../../src/components/approval-bar/element/ui9000-approval-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAQ5D,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAAiB;IAGvC,QAAQ,SAAQ;IAGhB,OAAO,CAAC,MAAM,CAA8B;IAE5C,OAAO,CAAC,OAAO;IAIN,iBAAiB,IAAI,IAAI;IAKzB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC,MAAM;CA8BhB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;CACF"}
@@ -0,0 +1,83 @@
1
+ import { LitElement, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { dispatchUi9000Action } from "../../../element/dispatch-ui9000.js";
4
+ import { surfaceStyles } from "../../../element/surface-styles.js";
5
+ import { parseJsonAttr } from "../../../utils/chart-helpers.js";
6
+ import { normalizeApproval } from "../lib/normalize.js";
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __decorateClass = (decorators, target, key, kind) => {
10
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
11
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
12
+ if (decorator = decorators[i])
13
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14
+ if (kind && result) __defProp(target, key, result);
15
+ return result;
16
+ };
17
+ let Ui9000ApprovalBar = class extends LitElement {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.dataJson = "{}";
21
+ this._model = null;
22
+ }
23
+ refresh() {
24
+ this._model = normalizeApproval(parseJsonAttr(this.dataJson, null));
25
+ }
26
+ connectedCallback() {
27
+ super.connectedCallback();
28
+ this.refresh();
29
+ }
30
+ willUpdate(changed) {
31
+ if (changed.has("dataJson")) this.refresh();
32
+ }
33
+ render() {
34
+ const model = this._model;
35
+ if (!model) {
36
+ return html`<p class="blocked" role="status">Proposal required</p>`;
37
+ }
38
+ return html`
39
+ <div class="root" role="region" aria-label="Approval">
40
+ <p>${model.proposal}</p>
41
+ <p class="muted">Displayed only — this host does not execute the action.</p>
42
+ <p class="muted">Status: ${model.status}</p>
43
+ <div class="actions">
44
+ <button
45
+ class="btn"
46
+ data-kind="approve"
47
+ type="button"
48
+ @click=${() => dispatchUi9000Action(this, { type: "approve" })}
49
+ >
50
+ Approve
51
+ </button>
52
+ <button
53
+ class="btn"
54
+ type="button"
55
+ @click=${() => dispatchUi9000Action(this, { type: "reject" })}
56
+ >
57
+ Reject
58
+ </button>
59
+ </div>
60
+ </div>
61
+ `;
62
+ }
63
+ };
64
+ Ui9000ApprovalBar.styles = surfaceStyles;
65
+ __decorateClass([
66
+ property({ type: String, attribute: "data" })
67
+ ], Ui9000ApprovalBar.prototype, "dataJson", 2);
68
+ __decorateClass([
69
+ state()
70
+ ], Ui9000ApprovalBar.prototype, "_model", 2);
71
+ Ui9000ApprovalBar = __decorateClass([
72
+ customElement("ui9000-approval-bar")
73
+ ], Ui9000ApprovalBar);
74
+ function registerApprovalBar() {
75
+ if (!customElements.get("ui9000-approval-bar")) {
76
+ customElements.define("ui9000-approval-bar", Ui9000ApprovalBar);
77
+ }
78
+ }
79
+ export {
80
+ Ui9000ApprovalBar,
81
+ registerApprovalBar
82
+ };
83
+ //# sourceMappingURL=ui9000-approval-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-approval-bar.js","sources":["../../../../src/components/approval-bar/element/ui9000-approval-bar.ts"],"sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { dispatchUi9000Action } from '../../../element/dispatch-ui9000.js';\nimport { surfaceStyles } from '../../../element/surface-styles.js';\nimport { parseJsonAttr } from '../../../utils/chart-helpers.js';\nimport { normalizeApproval, type ApprovalModel } from '../lib/normalize.js';\n\n@customElement('ui9000-approval-bar')\nexport class Ui9000ApprovalBar extends LitElement {\n static override styles = surfaceStyles;\n\n @property({ type: String, attribute: 'data' })\n dataJson = '{}';\n\n @state()\n private _model: ApprovalModel | null = null;\n\n private refresh(): void {\n this._model = normalizeApproval(parseJsonAttr<unknown>(this.dataJson, null));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.refresh();\n }\n\n override willUpdate(changed: PropertyValues): void {\n if (changed.has('dataJson')) this.refresh();\n }\n\n override render() {\n const model = this._model;\n if (!model) {\n return html`<p class=\"blocked\" role=\"status\">Proposal required</p>`;\n }\n return html`\n <div class=\"root\" role=\"region\" aria-label=\"Approval\">\n <p>${model.proposal}</p>\n <p class=\"muted\">Displayed only — this host does not execute the action.</p>\n <p class=\"muted\">Status: ${model.status}</p>\n <div class=\"actions\">\n <button\n class=\"btn\"\n data-kind=\"approve\"\n type=\"button\"\n @click=${() => dispatchUi9000Action(this, { type: 'approve' })}\n >\n Approve\n </button>\n <button\n class=\"btn\"\n type=\"button\"\n @click=${() => dispatchUi9000Action(this, { type: 'reject' })}\n >\n Reject\n </button>\n </div>\n </div>\n `;\n }\n}\n\nexport function registerApprovalBar(): void {\n if (!customElements.get('ui9000-approval-bar')) {\n customElements.define('ui9000-approval-bar', Ui9000ApprovalBar);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ui9000-approval-bar': Ui9000ApprovalBar;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASO,IAAM,oBAAN,cAAgC,WAAW;AAAA,EAA3C,cAAA;AAAA,UAAA,GAAA,SAAA;AAIL,SAAA,WAAW;AAGX,SAAQ,SAA+B;AAAA,EAAA;AAAA,EAE/B,UAAgB;AACtB,SAAK,SAAS,kBAAkB,cAAuB,KAAK,UAAU,IAAI,CAAC;AAAA,EAC7E;AAAA,EAES,oBAA0B;AACjC,UAAM,kBAAA;AACN,SAAK,QAAA;AAAA,EACP;AAAA,EAES,WAAW,SAA+B;AACjD,QAAI,QAAQ,IAAI,UAAU,QAAQ,QAAA;AAAA,EACpC;AAAA,EAES,SAAS;AAChB,UAAM,QAAQ,KAAK;AACnB,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AACA,WAAO;AAAA;AAAA,aAEE,MAAM,QAAQ;AAAA;AAAA,mCAEQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAM1B,MAAM,qBAAqB,MAAM,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAOrD,MAAM,qBAAqB,MAAM,EAAE,MAAM,SAAA,CAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvE;AACF;AApDa,kBACK,SAAS;AAGzB,gBAAA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,QAAQ;AAAA,GAHlC,kBAIX,WAAA,YAAA,CAAA;AAGQ,gBAAA;AAAA,EADP,MAAA;AAAM,GANI,kBAOH,WAAA,UAAA,CAAA;AAPG,oBAAN,gBAAA;AAAA,EADN,cAAc,qBAAqB;AAAA,GACvB,iBAAA;AAsDN,SAAS,sBAA4B;AAC1C,MAAI,CAAC,eAAe,IAAI,qBAAqB,GAAG;AAC9C,mBAAe,OAAO,uBAAuB,iBAAiB;AAAA,EAChE;AACF;"}
@@ -0,0 +1,4 @@
1
+ export { Ui9000ApprovalBar, registerApprovalBar } from './element/ui9000-approval-bar.js';
2
+ export { normalizeApproval, type ApprovalModel } from './lib/normalize.js';
3
+ export { default as approvalBarMetadata } from './metadata.json';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/approval-bar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { registerApprovalBar } from "./element/ui9000-approval-bar.js";
2
+ import { Ui9000ApprovalBar } from "./element/ui9000-approval-bar.js";
3
+ import { normalizeApproval } from "./lib/normalize.js";
4
+ import { default as default2 } from "./metadata.json.js";
5
+ export {
6
+ Ui9000ApprovalBar,
7
+ default2 as approvalBarMetadata,
8
+ normalizeApproval,
9
+ registerApprovalBar
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,7 @@
1
+ export type ApprovalStatus = 'proposed' | 'approved' | 'rejected';
2
+ export type ApprovalModel = {
3
+ proposal: string;
4
+ status: ApprovalStatus;
5
+ };
6
+ export declare function normalizeApproval(raw: unknown): ApprovalModel | null;
7
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/components/approval-bar/lib/normalize.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAUpE"}
@@ -0,0 +1,12 @@
1
+ function normalizeApproval(raw) {
2
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
3
+ const o = raw;
4
+ const proposal = typeof o.proposal === "string" ? o.proposal.trim() : "";
5
+ if (!proposal) return null;
6
+ const status = o.status === "approved" || o.status === "rejected" || o.status === "proposed" ? o.status : "proposed";
7
+ return { proposal, status };
8
+ }
9
+ export {
10
+ normalizeApproval
11
+ };
12
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sources":["../../../../src/components/approval-bar/lib/normalize.ts"],"sourcesContent":["export type ApprovalStatus = 'proposed' | 'approved' | 'rejected';\n\nexport type ApprovalModel = {\n proposal: string;\n status: ApprovalStatus;\n};\n\nexport function normalizeApproval(raw: unknown): ApprovalModel | null {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return null;\n const o = raw as Record<string, unknown>;\n const proposal = typeof o.proposal === 'string' ? o.proposal.trim() : '';\n if (!proposal) return null;\n const status =\n o.status === 'approved' || o.status === 'rejected' || o.status === 'proposed'\n ? o.status\n : 'proposed';\n return { proposal, status };\n}\n"],"names":[],"mappings":"AAOO,SAAS,kBAAkB,KAAoC;AACpE,MAAI,CAAC,OAAO,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG,EAAG,QAAO;AAClE,QAAM,IAAI;AACV,QAAM,WAAW,OAAO,EAAE,aAAa,WAAW,EAAE,SAAS,SAAS;AACtE,MAAI,CAAC,SAAU,QAAO;AACtB,QAAM,SACJ,EAAE,WAAW,cAAc,EAAE,WAAW,cAAc,EAAE,WAAW,aAC/D,EAAE,SACF;AACN,SAAO,EAAE,UAAU,OAAA;AACrB;"}