@fusedashlabs/widgets 0.2.0 → 0.3.1

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 (324) hide show
  1. package/CHANGELOG.md +72 -17
  2. package/README.md +24 -26
  3. package/dist/components/area-chart/element/ui9000-area-chart.d.ts +1 -1
  4. package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts +1 -1
  5. package/dist/components/area-grouped-bar-chart/lib/normalize.js +3 -3
  6. package/dist/components/area-grouped-bar-chart/lib/normalize.js.map +1 -1
  7. package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts +1 -1
  8. package/dist/components/bias-variance-tradeoff-chart/element/styles.d.ts +7 -0
  9. package/dist/components/bias-variance-tradeoff-chart/element/styles.d.ts.map +1 -0
  10. package/dist/components/bias-variance-tradeoff-chart/element/styles.js +13 -0
  11. package/dist/components/bias-variance-tradeoff-chart/element/styles.js.map +1 -0
  12. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts +27 -0
  13. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts.map +1 -0
  14. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js +173 -0
  15. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js.map +1 -0
  16. package/dist/components/bias-variance-tradeoff-chart/index.d.ts +5 -0
  17. package/dist/components/bias-variance-tradeoff-chart/index.d.ts.map +1 -0
  18. package/dist/components/bias-variance-tradeoff-chart/index.js +19 -0
  19. package/dist/components/bias-variance-tradeoff-chart/index.js.map +1 -0
  20. package/dist/components/bias-variance-tradeoff-chart/lib/domain.d.ts +8 -0
  21. package/dist/components/bias-variance-tradeoff-chart/lib/domain.d.ts.map +1 -0
  22. package/dist/components/bias-variance-tradeoff-chart/lib/domain.js +37 -0
  23. package/dist/components/bias-variance-tradeoff-chart/lib/domain.js.map +1 -0
  24. package/dist/components/bias-variance-tradeoff-chart/lib/format.d.ts +3 -0
  25. package/dist/components/bias-variance-tradeoff-chart/lib/format.d.ts.map +1 -0
  26. package/dist/components/bias-variance-tradeoff-chart/lib/format.js +9 -0
  27. package/dist/components/bias-variance-tradeoff-chart/lib/format.js.map +1 -0
  28. package/dist/components/bias-variance-tradeoff-chart/lib/index.d.ts +5 -0
  29. package/dist/components/bias-variance-tradeoff-chart/lib/index.d.ts.map +1 -0
  30. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.d.ts +4 -0
  31. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.d.ts.map +1 -0
  32. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.js +135 -0
  33. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.js.map +1 -0
  34. package/dist/components/bias-variance-tradeoff-chart/lib/types.d.ts +47 -0
  35. package/dist/components/bias-variance-tradeoff-chart/lib/types.d.ts.map +1 -0
  36. package/dist/components/bias-variance-tradeoff-chart/metadata.json.d.ts +41 -0
  37. package/dist/components/bias-variance-tradeoff-chart/metadata.json.js +42 -0
  38. package/dist/components/bias-variance-tradeoff-chart/metadata.json.js.map +1 -0
  39. package/dist/components/bias-variance-tradeoff-chart/render/draw.d.ts +31 -0
  40. package/dist/components/bias-variance-tradeoff-chart/render/draw.d.ts.map +1 -0
  41. package/dist/components/bias-variance-tradeoff-chart/render/draw.js +203 -0
  42. package/dist/components/bias-variance-tradeoff-chart/render/draw.js.map +1 -0
  43. package/dist/components/bias-variance-tradeoff-chart/render/index.d.ts +2 -0
  44. package/dist/components/bias-variance-tradeoff-chart/render/index.d.ts.map +1 -0
  45. package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts +1 -1
  46. package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts +1 -1
  47. package/dist/components/chart-renderer/lib/registry.d.ts.map +1 -1
  48. package/dist/components/chart-renderer/lib/registry.js +12 -0
  49. package/dist/components/chart-renderer/lib/registry.js.map +1 -1
  50. package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts +1 -1
  51. package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.d.ts +1 -1
  52. package/dist/components/gini-impurity-entropy-chart/element/styles.d.ts +2 -0
  53. package/dist/components/gini-impurity-entropy-chart/element/styles.d.ts.map +1 -0
  54. package/dist/components/gini-impurity-entropy-chart/element/styles.js +72 -0
  55. package/dist/components/gini-impurity-entropy-chart/element/styles.js.map +1 -0
  56. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts +36 -0
  57. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts.map +1 -0
  58. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js +186 -0
  59. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js.map +1 -0
  60. package/dist/components/gini-impurity-entropy-chart/index.d.ts +5 -0
  61. package/dist/components/gini-impurity-entropy-chart/index.d.ts.map +1 -0
  62. package/dist/components/gini-impurity-entropy-chart/index.js +32 -0
  63. package/dist/components/gini-impurity-entropy-chart/index.js.map +1 -0
  64. package/dist/components/gini-impurity-entropy-chart/lib/domain.d.ts +9 -0
  65. package/dist/components/gini-impurity-entropy-chart/lib/domain.d.ts.map +1 -0
  66. package/dist/components/gini-impurity-entropy-chart/lib/domain.js +32 -0
  67. package/dist/components/gini-impurity-entropy-chart/lib/domain.js.map +1 -0
  68. package/dist/components/gini-impurity-entropy-chart/lib/format.d.ts +10 -0
  69. package/dist/components/gini-impurity-entropy-chart/lib/format.d.ts.map +1 -0
  70. package/dist/components/gini-impurity-entropy-chart/lib/format.js +22 -0
  71. package/dist/components/gini-impurity-entropy-chart/lib/format.js.map +1 -0
  72. package/dist/components/gini-impurity-entropy-chart/lib/index.d.ts +7 -0
  73. package/dist/components/gini-impurity-entropy-chart/lib/index.d.ts.map +1 -0
  74. package/dist/components/gini-impurity-entropy-chart/lib/normalize.d.ts +7 -0
  75. package/dist/components/gini-impurity-entropy-chart/lib/normalize.d.ts.map +1 -0
  76. package/dist/components/gini-impurity-entropy-chart/lib/normalize.js +117 -0
  77. package/dist/components/gini-impurity-entropy-chart/lib/normalize.js.map +1 -0
  78. package/dist/components/gini-impurity-entropy-chart/lib/overlays.d.ts +19 -0
  79. package/dist/components/gini-impurity-entropy-chart/lib/overlays.d.ts.map +1 -0
  80. package/dist/components/gini-impurity-entropy-chart/lib/overlays.js +63 -0
  81. package/dist/components/gini-impurity-entropy-chart/lib/overlays.js.map +1 -0
  82. package/dist/components/gini-impurity-entropy-chart/lib/series.d.ts +12 -0
  83. package/dist/components/gini-impurity-entropy-chart/lib/series.d.ts.map +1 -0
  84. package/dist/components/gini-impurity-entropy-chart/lib/series.js +45 -0
  85. package/dist/components/gini-impurity-entropy-chart/lib/series.js.map +1 -0
  86. package/dist/components/gini-impurity-entropy-chart/lib/types.d.ts +83 -0
  87. package/dist/components/gini-impurity-entropy-chart/lib/types.d.ts.map +1 -0
  88. package/dist/components/gini-impurity-entropy-chart/lib/types.js +19 -0
  89. package/dist/components/gini-impurity-entropy-chart/lib/types.js.map +1 -0
  90. package/dist/components/gini-impurity-entropy-chart/metadata.json.d.ts +115 -0
  91. package/dist/components/gini-impurity-entropy-chart/metadata.json.js +42 -0
  92. package/dist/components/gini-impurity-entropy-chart/metadata.json.js.map +1 -0
  93. package/dist/components/gini-impurity-entropy-chart/render/draw.d.ts +40 -0
  94. package/dist/components/gini-impurity-entropy-chart/render/draw.d.ts.map +1 -0
  95. package/dist/components/gini-impurity-entropy-chart/render/draw.js +160 -0
  96. package/dist/components/gini-impurity-entropy-chart/render/draw.js.map +1 -0
  97. package/dist/components/gini-impurity-entropy-chart/render/index.d.ts +2 -0
  98. package/dist/components/gini-impurity-entropy-chart/render/index.d.ts.map +1 -0
  99. package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts +1 -1
  100. package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts +1 -1
  101. package/dist/components/kpi-widget/element/ui9000-kpi-widget.js +1 -1
  102. package/dist/components/line-chart/element/ui9000-line-chart.d.ts +1 -1
  103. package/dist/components/lollipop/element/ui9000-lollipop.d.ts +1 -1
  104. package/dist/components/network-graph/element/styles.d.ts +2 -0
  105. package/dist/components/network-graph/element/styles.d.ts.map +1 -0
  106. package/dist/components/network-graph/element/styles.js +152 -0
  107. package/dist/components/network-graph/element/styles.js.map +1 -0
  108. package/dist/components/network-graph/element/ui9000-network-graph.d.ts +43 -0
  109. package/dist/components/network-graph/element/ui9000-network-graph.d.ts.map +1 -0
  110. package/dist/components/network-graph/element/ui9000-network-graph.js +230 -0
  111. package/dist/components/network-graph/element/ui9000-network-graph.js.map +1 -0
  112. package/dist/components/network-graph/index.d.ts +5 -0
  113. package/dist/components/network-graph/index.d.ts.map +1 -0
  114. package/dist/components/network-graph/index.js +37 -0
  115. package/dist/components/network-graph/index.js.map +1 -0
  116. package/dist/components/network-graph/lib/domain.d.ts +96 -0
  117. package/dist/components/network-graph/lib/domain.d.ts.map +1 -0
  118. package/dist/components/network-graph/lib/domain.js +211 -0
  119. package/dist/components/network-graph/lib/domain.js.map +1 -0
  120. package/dist/components/network-graph/lib/format.d.ts +7 -0
  121. package/dist/components/network-graph/lib/format.d.ts.map +1 -0
  122. package/dist/components/network-graph/lib/format.js +29 -0
  123. package/dist/components/network-graph/lib/format.js.map +1 -0
  124. package/dist/components/network-graph/lib/index.d.ts +5 -0
  125. package/dist/components/network-graph/lib/index.d.ts.map +1 -0
  126. package/dist/components/network-graph/lib/normalize.d.ts +10 -0
  127. package/dist/components/network-graph/lib/normalize.d.ts.map +1 -0
  128. package/dist/components/network-graph/lib/normalize.js +140 -0
  129. package/dist/components/network-graph/lib/normalize.js.map +1 -0
  130. package/dist/components/network-graph/lib/types.d.ts +56 -0
  131. package/dist/components/network-graph/lib/types.d.ts.map +1 -0
  132. package/dist/components/network-graph/metadata.json.d.ts +91 -0
  133. package/dist/components/network-graph/metadata.json.js +42 -0
  134. package/dist/components/network-graph/metadata.json.js.map +1 -0
  135. package/dist/components/network-graph/render/draw.d.ts +46 -0
  136. package/dist/components/network-graph/render/draw.d.ts.map +1 -0
  137. package/dist/components/network-graph/render/draw.js +468 -0
  138. package/dist/components/network-graph/render/draw.js.map +1 -0
  139. package/dist/components/network-graph/render/index.d.ts +2 -0
  140. package/dist/components/network-graph/render/index.d.ts.map +1 -0
  141. package/dist/components/parallel-coordinates-chart/element/styles.d.ts +2 -0
  142. package/dist/components/parallel-coordinates-chart/element/styles.d.ts.map +1 -0
  143. package/dist/components/parallel-coordinates-chart/element/styles.js +71 -0
  144. package/dist/components/parallel-coordinates-chart/element/styles.js.map +1 -0
  145. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts +33 -0
  146. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts.map +1 -0
  147. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js +182 -0
  148. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js.map +1 -0
  149. package/dist/components/parallel-coordinates-chart/index.d.ts +5 -0
  150. package/dist/components/parallel-coordinates-chart/index.d.ts.map +1 -0
  151. package/dist/components/parallel-coordinates-chart/index.js +23 -0
  152. package/dist/components/parallel-coordinates-chart/index.js.map +1 -0
  153. package/dist/components/parallel-coordinates-chart/lib/domain.d.ts +14 -0
  154. package/dist/components/parallel-coordinates-chart/lib/domain.d.ts.map +1 -0
  155. package/dist/components/parallel-coordinates-chart/lib/domain.js +28 -0
  156. package/dist/components/parallel-coordinates-chart/lib/domain.js.map +1 -0
  157. package/dist/components/parallel-coordinates-chart/lib/format.d.ts +12 -0
  158. package/dist/components/parallel-coordinates-chart/lib/format.d.ts.map +1 -0
  159. package/dist/components/parallel-coordinates-chart/lib/format.js +18 -0
  160. package/dist/components/parallel-coordinates-chart/lib/format.js.map +1 -0
  161. package/dist/components/parallel-coordinates-chart/lib/index.d.ts +5 -0
  162. package/dist/components/parallel-coordinates-chart/lib/index.d.ts.map +1 -0
  163. package/dist/components/parallel-coordinates-chart/lib/normalize.d.ts +23 -0
  164. package/dist/components/parallel-coordinates-chart/lib/normalize.d.ts.map +1 -0
  165. package/dist/components/parallel-coordinates-chart/lib/normalize.js +156 -0
  166. package/dist/components/parallel-coordinates-chart/lib/normalize.js.map +1 -0
  167. package/dist/components/parallel-coordinates-chart/lib/types.d.ts +48 -0
  168. package/dist/components/parallel-coordinates-chart/lib/types.d.ts.map +1 -0
  169. package/dist/components/parallel-coordinates-chart/metadata.json.d.ts +103 -0
  170. package/dist/components/parallel-coordinates-chart/metadata.json.js +45 -0
  171. package/dist/components/parallel-coordinates-chart/metadata.json.js.map +1 -0
  172. package/dist/components/parallel-coordinates-chart/render/draw.d.ts +30 -0
  173. package/dist/components/parallel-coordinates-chart/render/draw.d.ts.map +1 -0
  174. package/dist/components/parallel-coordinates-chart/render/draw.js +160 -0
  175. package/dist/components/parallel-coordinates-chart/render/draw.js.map +1 -0
  176. package/dist/components/parallel-coordinates-chart/render/index.d.ts +2 -0
  177. package/dist/components/parallel-coordinates-chart/render/index.d.ts.map +1 -0
  178. package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts +1 -1
  179. package/dist/components/polar-area-chart/element/styles.d.ts +2 -0
  180. package/dist/components/polar-area-chart/element/styles.d.ts.map +1 -0
  181. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts +29 -0
  182. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts.map +1 -0
  183. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js +167 -0
  184. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js.map +1 -0
  185. package/dist/components/polar-area-chart/index.d.ts +5 -0
  186. package/dist/components/polar-area-chart/index.d.ts.map +1 -0
  187. package/dist/components/polar-area-chart/index.js +18 -0
  188. package/dist/components/polar-area-chart/index.js.map +1 -0
  189. package/dist/components/polar-area-chart/lib/domain.d.ts +25 -0
  190. package/dist/components/polar-area-chart/lib/domain.d.ts.map +1 -0
  191. package/dist/components/polar-area-chart/lib/domain.js +47 -0
  192. package/dist/components/polar-area-chart/lib/domain.js.map +1 -0
  193. package/dist/components/polar-area-chart/lib/index.d.ts +4 -0
  194. package/dist/components/polar-area-chart/lib/index.d.ts.map +1 -0
  195. package/dist/components/polar-area-chart/lib/normalize.d.ts +4 -0
  196. package/dist/components/polar-area-chart/lib/normalize.d.ts.map +1 -0
  197. package/dist/components/polar-area-chart/lib/normalize.js +117 -0
  198. package/dist/components/polar-area-chart/lib/normalize.js.map +1 -0
  199. package/dist/components/polar-area-chart/lib/types.d.ts +43 -0
  200. package/dist/components/polar-area-chart/lib/types.d.ts.map +1 -0
  201. package/dist/components/polar-area-chart/metadata.json.d.ts +79 -0
  202. package/dist/components/polar-area-chart/metadata.json.js +42 -0
  203. package/dist/components/polar-area-chart/metadata.json.js.map +1 -0
  204. package/dist/components/polar-area-chart/render/draw.d.ts +25 -0
  205. package/dist/components/polar-area-chart/render/draw.d.ts.map +1 -0
  206. package/dist/components/polar-area-chart/render/draw.js +127 -0
  207. package/dist/components/polar-area-chart/render/draw.js.map +1 -0
  208. package/dist/components/polar-area-chart/render/index.d.ts +2 -0
  209. package/dist/components/polar-area-chart/render/index.d.ts.map +1 -0
  210. package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts +1 -1
  211. package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts +1 -1
  212. package/dist/components/radial-bar-chart/element/styles.d.ts +2 -0
  213. package/dist/components/radial-bar-chart/element/styles.d.ts.map +1 -0
  214. package/dist/components/radial-bar-chart/element/styles.js +53 -0
  215. package/dist/components/radial-bar-chart/element/styles.js.map +1 -0
  216. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts +35 -0
  217. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts.map +1 -0
  218. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js +174 -0
  219. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js.map +1 -0
  220. package/dist/components/radial-bar-chart/index.d.ts +5 -0
  221. package/dist/components/radial-bar-chart/index.d.ts.map +1 -0
  222. package/dist/components/radial-bar-chart/index.js +21 -0
  223. package/dist/components/radial-bar-chart/index.js.map +1 -0
  224. package/dist/components/radial-bar-chart/lib/domain.d.ts +47 -0
  225. package/dist/components/radial-bar-chart/lib/domain.d.ts.map +1 -0
  226. package/dist/components/radial-bar-chart/lib/domain.js +50 -0
  227. package/dist/components/radial-bar-chart/lib/domain.js.map +1 -0
  228. package/dist/components/radial-bar-chart/lib/format.d.ts +6 -0
  229. package/dist/components/radial-bar-chart/lib/format.d.ts.map +1 -0
  230. package/dist/components/radial-bar-chart/lib/format.js +12 -0
  231. package/dist/components/radial-bar-chart/lib/format.js.map +1 -0
  232. package/dist/components/radial-bar-chart/lib/index.d.ts +5 -0
  233. package/dist/components/radial-bar-chart/lib/index.d.ts.map +1 -0
  234. package/dist/components/radial-bar-chart/lib/normalize.d.ts +4 -0
  235. package/dist/components/radial-bar-chart/lib/normalize.d.ts.map +1 -0
  236. package/dist/components/radial-bar-chart/lib/normalize.js +92 -0
  237. package/dist/components/radial-bar-chart/lib/normalize.js.map +1 -0
  238. package/dist/components/radial-bar-chart/lib/types.d.ts +34 -0
  239. package/dist/components/radial-bar-chart/lib/types.d.ts.map +1 -0
  240. package/dist/components/radial-bar-chart/metadata.json.d.ts +62 -0
  241. package/dist/components/radial-bar-chart/metadata.json.js +42 -0
  242. package/dist/components/radial-bar-chart/metadata.json.js.map +1 -0
  243. package/dist/components/radial-bar-chart/render/draw.d.ts +29 -0
  244. package/dist/components/radial-bar-chart/render/draw.d.ts.map +1 -0
  245. package/dist/components/radial-bar-chart/render/draw.js +92 -0
  246. package/dist/components/radial-bar-chart/render/draw.js.map +1 -0
  247. package/dist/components/radial-bar-chart/render/index.d.ts +2 -0
  248. package/dist/components/radial-bar-chart/render/index.d.ts.map +1 -0
  249. package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts +1 -1
  250. package/dist/components/sankey-chart/element/ui9000-sankey-chart.js +2 -1
  251. package/dist/components/sankey-chart/element/ui9000-sankey-chart.js.map +1 -1
  252. package/dist/components/sankey-chart/index.js +4 -2
  253. package/dist/components/sankey-chart/index.js.map +1 -1
  254. package/dist/components/sankey-chart/lib/domain.d.ts +2 -2
  255. package/dist/components/sankey-chart/lib/domain.d.ts.map +1 -1
  256. package/dist/components/sankey-chart/lib/domain.js +1 -13
  257. package/dist/components/sankey-chart/lib/domain.js.map +1 -1
  258. package/dist/components/sankey-chart/lib/format.d.ts +1 -2
  259. package/dist/components/sankey-chart/lib/format.d.ts.map +1 -1
  260. package/dist/components/sankey-chart/lib/format.js +3 -7
  261. package/dist/components/sankey-chart/lib/format.js.map +1 -1
  262. package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts +1 -1
  263. package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts +1 -1
  264. package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts +1 -1
  265. package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts +1 -1
  266. package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts +1 -1
  267. package/dist/components/violin-chart/element/ui9000-violin-chart.d.ts +1 -1
  268. package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts +1 -1
  269. package/dist/element/ui9000-chart-base.d.ts +2 -2
  270. package/dist/index.d.ts +14 -2
  271. package/dist/index.d.ts.map +1 -1
  272. package/dist/index.js +110 -13
  273. package/dist/index.js.map +1 -1
  274. package/dist/lazy/bias-variance-tradeoff-chart.d.ts +4 -0
  275. package/dist/lazy/bias-variance-tradeoff-chart.d.ts.map +1 -0
  276. package/dist/lazy/bias-variance-tradeoff-chart.js +5 -0
  277. package/dist/lazy/bias-variance-tradeoff-chart.js.map +1 -0
  278. package/dist/lazy/gini-impurity-entropy-chart.d.ts +4 -0
  279. package/dist/lazy/gini-impurity-entropy-chart.d.ts.map +1 -0
  280. package/dist/lazy/gini-impurity-entropy-chart.js +5 -0
  281. package/dist/lazy/gini-impurity-entropy-chart.js.map +1 -0
  282. package/dist/lazy/index.d.ts +7 -1
  283. package/dist/lazy/index.d.ts.map +1 -1
  284. package/dist/lazy/index.js +48 -0
  285. package/dist/lazy/index.js.map +1 -1
  286. package/dist/lazy/network-graph.d.ts +4 -0
  287. package/dist/lazy/network-graph.d.ts.map +1 -0
  288. package/dist/lazy/network-graph.js +5 -0
  289. package/dist/lazy/network-graph.js.map +1 -0
  290. package/dist/lazy/parallel-coordinates-chart.d.ts +4 -0
  291. package/dist/lazy/parallel-coordinates-chart.d.ts.map +1 -0
  292. package/dist/lazy/parallel-coordinates-chart.js +5 -0
  293. package/dist/lazy/parallel-coordinates-chart.js.map +1 -0
  294. package/dist/lazy/polar-area-chart.d.ts +4 -0
  295. package/dist/lazy/polar-area-chart.d.ts.map +1 -0
  296. package/dist/lazy/polar-area-chart.js +5 -0
  297. package/dist/lazy/polar-area-chart.js.map +1 -0
  298. package/dist/lazy/radial-bar-chart.d.ts +4 -0
  299. package/dist/lazy/radial-bar-chart.d.ts.map +1 -0
  300. package/dist/lazy/radial-bar-chart.js +5 -0
  301. package/dist/lazy/radial-bar-chart.js.map +1 -0
  302. package/dist/utils/breakpoints.d.ts +7 -0
  303. package/dist/utils/breakpoints.d.ts.map +1 -0
  304. package/dist/utils/breakpoints.js +17 -0
  305. package/dist/utils/breakpoints.js.map +1 -0
  306. package/dist/utils/chart-helpers.d.ts +21 -0
  307. package/dist/utils/chart-helpers.d.ts.map +1 -1
  308. package/dist/utils/chart-helpers.js +54 -0
  309. package/dist/utils/chart-helpers.js.map +1 -1
  310. package/dist/utils/format-text.d.ts +17 -0
  311. package/dist/utils/format-text.d.ts.map +1 -0
  312. package/dist/utils/format-text.js +26 -0
  313. package/dist/utils/format-text.js.map +1 -0
  314. package/dist/utils/fusedash-visual.d.ts +143 -0
  315. package/dist/utils/fusedash-visual.d.ts.map +1 -1
  316. package/dist/utils/fusedash-visual.js +114 -1
  317. package/dist/utils/fusedash-visual.js.map +1 -1
  318. package/package.json +56 -4
  319. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js +0 -28
  320. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js.map +0 -1
  321. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js +0 -37
  322. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js.map +0 -1
  323. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js +0 -231
  324. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,66 +2,121 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.3.1 — 2026-09-01
6
+
7
+ ### Fixed
8
+
9
+ - Publish to `https://registry.npmjs.org` (`npmPublishRegistry`). `v0.3.0` tagged but never reached npm (still 0.2.0).
10
+
11
+ ## 0.3.0 — 2026-09-01
12
+
13
+ ### Fixed
14
+
15
+ - Chart shell and per-chart plot layouts use explicit min-heights so MCP/chat hosts that only set `:host { min-height }` no longer collapse the plot to zero.
16
+ - Package `sideEffects` lists custom-element / lazy entrypoints so bundlers do not tree-shake `customElements.define` (blank host).
17
+
18
+ ### Changed
19
+
20
+ - Package manager is Yarn Berry 4.x only (`yarn.lock`); npm/pnpm lockfiles removed.
21
+ - npm package renamed to `@fusedashlabs/widgets` (custom element tags remain `ui9000-*`).
22
+
5
23
  ### Added
6
24
 
25
+ - `<ui9000-network-graph>` — D3 force-directed network graph (nodes, links, drag, hover tooltips).
26
+ - Lazy entry `@fusedashlabs/widgets/lazy/network-graph`; `networkGraphChart` dispatch in `<ui9000-chart-renderer>`.
27
+ - `<ui9000-sankey-chart>` — D3 port of FuseDash SankeyChart (node/link flow, horizontal layout).
28
+ - Lazy entry `@fusedashlabs/widgets/lazy/sankey-chart`.
29
+ - `<ui9000-radial-bar-chart>` — D3 port of FuseDash RadialBarChart (one ring per category over a 270° sweep, negative values run back from zero).
30
+ - Lazy entry `@fusedashlabs/widgets/lazy/radial-bar-chart`.
31
+ - Storybook stories with `radial-bar.fusedash.json` fixture.
32
+ - `formatCapitalizedWords` / `formatFuseNumber` / `formatValueWithUnit` moved to shared `utils/format-text.ts` (sankey now re-exports them).
33
+ - `<ui9000-bias-variance-tradeoff-chart>` — D3 port of FuseDash BiasVarianceTradeoffChart (continuous x, monotone curves, crosshair hover that dims sibling curves, `domainsLimits` reference bands).
34
+ - Lazy entry `@fusedashlabs/widgets/lazy/bias-variance-tradeoff-chart`.
35
+ - Storybook stories with the `bias-variance-tradeoff.fusedash.json` and `bias-variance-tradeoff-limits.fusedash.json` fixtures.
36
+ - `<ui9000-gini-impurity-entropy-chart>` — D3 port of FuseDash GiniImpurityEntropyChart (entropy / Gini / misclassification curves over the class probability p, optional p-hat, confidence-interval and split annotations).
37
+ - Lazy entry `@fusedashlabs/widgets/lazy/gini-impurity-entropy-chart`, and `giniImpurityEntropyChart` dispatch in `<ui9000-chart-renderer>`.
38
+ - Storybook stories with `gini-impurity-entropy.fusedash.json` fixture.
7
39
  - `<ui9000-spark-line-chart>` — D3 port of FuseDash SparkLineChart (datetime x, multi-series groupBy, crosshair hover).
8
- - Lazy entry `@ui9000/widgets/lazy/spark-line-chart`.
40
+ - Lazy entry `@fusedashlabs/widgets/lazy/spark-line-chart`.
9
41
  - Storybook stories with `spark-line.fusedash.json` fixture.
10
42
  - `<ui9000-spark-area-chart>` — D3 port of FuseDash SparkAreaChart (SparkLine + area fill to y=0 at opacity 0.1).
11
- - Lazy entry `@ui9000/widgets/lazy/spark-area-chart`.
43
+ - Lazy entry `@fusedashlabs/widgets/lazy/spark-area-chart`.
12
44
  - Storybook stories with `spark-area.fusedash.json` fixture.
13
45
  - `<ui9000-scatter-sparkline-chart>` — D3 port of FuseDash ScatterSparklineChart (aggregated datetime line + gradient fill + jittered scatter markers).
14
- - Lazy entry `@ui9000/widgets/lazy/scatter-sparkline-chart`.
46
+ - Lazy entry `@fusedashlabs/widgets/lazy/scatter-sparkline-chart`.
15
47
  - Storybook stories with `scatter-sparkline.fusedash.json` fixture.
16
48
  - `<ui9000-chart-renderer>` — FuseDash ChartRenderer dispatcher (chartType → lazy chart mount).
17
- - Lazy entry `@ui9000/widgets/lazy/chart-renderer`.
49
+ - Lazy entry `@fusedashlabs/widgets/lazy/chart-renderer`.
18
50
  - Storybook stories dispatching line, pie, spark-line, and scatter-sparkline fixtures.
19
51
  - `<ui9000-radar-chart>` — D3 port of FuseDash RadarChart (single + grouped, polar grid, marker hover).
20
- - Lazy entry `@ui9000/widgets/lazy/radar-chart`.
52
+ - Lazy entry `@fusedashlabs/widgets/lazy/radar-chart`.
21
53
  - Storybook stories with `radar.fusedash.json` and `radar-grouped.fusedash.json` fixtures.
22
54
  - `<ui9000-waterfall-chart>` — D3 port of FuseDash WaterfallChart (horizontal/vertical, cumulative levels + delta-flag fixtures).
23
- - Lazy entry `@ui9000/widgets/lazy/waterfall-chart`.
55
+ - Lazy entry `@fusedashlabs/widgets/lazy/waterfall-chart`.
24
56
  - Storybook stories with `waterfall.fusedash.json` fixture.
25
57
  - `<ui9000-violin-chart>` — D3 port of FuseDash ViolinChart (horizontal/vertical KDE + box overlay).
26
- - Lazy entry `@ui9000/widgets/lazy/violin-chart`.
58
+ - Lazy entry `@fusedashlabs/widgets/lazy/violin-chart`.
27
59
  - Storybook stories with `violin.fusedash.json` fixture.
28
60
  - `<ui9000-area-grouped-bar-chart>` — D3 port of FuseDash AreaGroupedBarChart (grouped bars + area/line overlay, vertical).
29
- - Lazy entry `@ui9000/widgets/lazy/area-grouped-bar-chart`.
61
+ - Lazy entry `@fusedashlabs/widgets/lazy/area-grouped-bar-chart`.
30
62
  - Storybook stories with `area-grouped-bar.fusedash.json` fixture.
31
63
  - `<ui9000-area-chart>` — D3 port of FuseDash AreaChart (grouped + stacked, gradient fill).
32
- - Lazy entry `@ui9000/widgets/lazy/area-chart`.
64
+ - Lazy entry `@fusedashlabs/widgets/lazy/area-chart`.
33
65
  - Storybook stories with `area.fusedash.json` fixture.
34
66
  - `<ui9000-donut-chart>` — D3 port of FuseDash DonutChart (pie + inner hole, 30% / min 25px ring).
35
- - Lazy entry `@ui9000/widgets/lazy/donut-chart`.
67
+ - Lazy entry `@fusedashlabs/widgets/lazy/donut-chart`.
36
68
  - Storybook stories with `donut.fusedash.json` fixture.
37
69
  - `<ui9000-kpi-widget>` — Lit port of FuseDash KPI cards (`single_value` grid + `high/low_overall`).
38
- - Lazy entry `@ui9000/widgets/lazy/kpi-widget`.
70
+ - Lazy entry `@fusedashlabs/widgets/lazy/kpi-widget`.
39
71
  - Storybook stories with `kpis.fusedash.json` and `kpi-high-low.fusedash.json` fixtures.
40
72
  - `<ui9000-pie-chart>` — D3 port of FuseDash PieChart (full disc + donut via `inner-radius-ratio`).
41
- - Lazy entry `@ui9000/widgets/lazy/pie-chart`.
73
+ - Lazy entry `@fusedashlabs/widgets/lazy/pie-chart`.
42
74
  - Storybook stories with `pie.fusedash.json` fixture.
75
+ - `<ui9000-polar-area-chart>` — D3 port of FuseDash PolarAreaChart (equal-angle wedges on a five-ring radial grid).
76
+ - Lazy entry `@fusedashlabs/widgets/lazy/polar-area-chart`.
77
+ - Storybook stories with `polar-area.fusedash.json` fixture.
43
78
  - `<ui9000-scatter-plot>` — D3 port of FuseDash ScatterPlot (groupBy markers, optional reference line).
44
- - Lazy entry `@ui9000/widgets/lazy/scatter-plot-chart`.
79
+ - Lazy entry `@fusedashlabs/widgets/lazy/scatter-plot-chart`.
45
80
  - Storybook stories with `scatter.fusedash.json` fixture.
46
81
  - `<ui9000-bubble-chart>` — D3 port of FuseDash BubbleChart (linear X/Y, abs(y) radius bands, groupBy fill).
47
- - Lazy entry `@ui9000/widgets/lazy/bubble-chart`.
82
+ - Lazy entry `@fusedashlabs/widgets/lazy/bubble-chart`.
48
83
  - Storybook stories with `bubble.fusedash.json` fixture.
49
84
  - `<ui9000-donut-group-chart>` — D3 port of FuseDash DonutGroupChart (KPI gauges against `maximalValue`, breakdown donuts, status badges).
50
- - Lazy entry `@ui9000/widgets/lazy/donut-group-chart`.
85
+ - Lazy entry `@fusedashlabs/widgets/lazy/donut-group-chart`.
51
86
  - Storybook stories, playground panel and `docs/DONUT_GROUP_CHART.md`.
87
+ - `<ui9000-parallel-coordinates-chart>` — D3 port of FuseDash ParallelCoordinatesChart (one linear axis per dimension, a polyline per record, horizontal and vertical orientations, click an axis to move the colour ramp onto it).
88
+ - Lazy entry `@fusedashlabs/widgets/lazy/parallel-coordinates-chart`.
89
+ - Storybook stories (Horizontal, Vertical, ChatRows) and the FuseDash Iris fixture `src/stories/fixtures/parallel-coordinates.fusedash.json`.
90
+
91
+ ### Changed
92
+
93
+ - `<ui9000-parallel-coordinates-chart>` renders its colour ramp as an SVG gutter legend rather than the usual HTML legend above the plot — a documented exception to the house rule, kept so the widget matches the client's layout. Recorded in the chart's `metadata.json` under `divergences`.
94
+
95
+ ### Fixed
96
+
97
+ - `<ui9000-parallel-coordinates-chart>` vertical orientation puts the axis maximum at the top. The client's `VerticalParallelCoordinatesChart` transposed the horizontal variant without flipping the SVG y range, so its axes ran inverted and contradicted its own colour ramp. Horizontal is the acceptance path; the vertical divergence is deliberate.
98
+
99
+ ### Changed
100
+
101
+ - `docs/BUNDLE_SIZE_REPORT.json` is no longer tracked in git. `npm run build` still
102
+ writes it locally and CI uploads it as a workflow artifact.
103
+
104
+ ### Publish
105
+
106
+ Push tag `v0.3.0` on `main` to run `.github/workflows/release.yml` (`yarn npm publish`).
52
107
 
53
108
  ## 0.2.0 — 2026-08-26
54
109
 
55
110
  ### Added
56
111
 
57
112
  - `<ui9000-step-line-chart>` — D3 port of FuseDash StepLineChart (KS/ROC overlays, multi-series, time/categorical x).
58
- - Lazy entry `@ui9000/widgets/lazy/step-line-chart`.
113
+ - Lazy entry `@fusedashlabs/widgets/lazy/step-line-chart`.
59
114
  - Storybook stories and `docs/STEP_LINE_CHART.md`.
60
115
 
61
116
  ### Fixed
62
117
 
63
118
  - ESLint flat config: browser/vitest/node globals (CI `lint` step).
64
- - `npm run build` now refreshes `docs/BUNDLE_SIZE_REPORT.json`.
119
+ - `yarn build` now refreshes `docs/BUNDLE_SIZE_REPORT.json`.
65
120
 
66
121
  ### Publish
67
122
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @ui9000/widgets
1
+ # @fusedashlabs/widgets
2
2
 
3
3
  Props-only chart web components for **UI9000** MCP chat rendering (Tier B).
4
4
 
@@ -10,21 +10,16 @@ Follow the project skill: [`.cursor/skills/port-chart/SKILL.md`](./.cursor/skill
10
10
 
11
11
  **Hard rule:** every chart is rewritten in **D3**. Visx/React plot code from FuseDash is never copied in.
12
12
 
13
- ## Published charts
13
+ ## Charts
14
14
 
15
- | Component | Tag | Import |
16
- |-----------|-----|--------|
17
- | Line chart | `<ui9000-line-chart>` | `@ui9000/widgets/line-chart` |
18
- | Lollipop | `<ui9000-lollipop>` | `@ui9000/widgets/lollipop` |
19
- | Step line chart | `<ui9000-step-line-chart>` | `@ui9000/widgets/step-line-chart` |
20
- | Bar chart | `<ui9000-bar-chart>` | `@ui9000/widgets/bar-chart` |
21
- | Donut group | `<ui9000-donut-group-chart>` | `@ui9000/widgets/donut-group-chart` |
22
- | Histogram | `<ui9000-histogram-chart>` | `@ui9000/widgets/histogram-chart` |
23
- | Punchcard | `<ui9000-punchcard-chart>` | `@ui9000/widgets/punchcard-chart` |
24
- | Box plot | `<ui9000-box-plot-chart>` | `@ui9000/widgets/box-plot-chart` |
25
- | Sankey | `<ui9000-sankey-chart>` | `@ui9000/widgets/sankey-chart` |
15
+ Lit + D3 chart web components for MCP chat. **Do not maintain a per-chart table here** — ports must not edit this file.
26
16
 
27
- Docs: [LINE_CHART.md](./docs/LINE_CHART.md) · [LOLLIPOP_CHART.md](./docs/LOLLIPOP_CHART.md) · [STEP_LINE_CHART.md](./docs/STEP_LINE_CHART.md) · [BAR_CHART.md](./docs/BAR_CHART.md) · [DONUT_GROUP_CHART.md](./docs/DONUT_GROUP_CHART.md) · [MAP_DECISION.md](./docs/MAP_DECISION.md)
17
+ - Entrypoints: `package.json` → `exports`
18
+ - Types / tags: `src/components/*/metadata.json`
19
+ - Demos: `yarn storybook`
20
+ - History: `CHANGELOG.md`
21
+
22
+ Docs: [LINE_CHART.md](./docs/LINE_CHART.md) · [LOLLIPOP_CHART.md](./docs/LOLLIPOP_CHART.md) · [STEP_LINE_CHART.md](./docs/STEP_LINE_CHART.md) · [BAR_CHART.md](./docs/BAR_CHART.md) · [DONUT_GROUP_CHART.md](./docs/DONUT_GROUP_CHART.md) · [MAP_DECISION.md](./docs/MAP_DECISION.md) · [HOST_WIRING_AFTER_PORTS.md](./docs/HOST_WIRING_AFTER_PORTS.md)
28
23
 
29
24
  ## Folder layout (per chart)
30
25
 
@@ -40,14 +35,14 @@ src/components/<name>/
40
35
  ## Install
41
36
 
42
37
  ```bash
43
- npm install @ui9000/widgets
38
+ yarn add @fusedashlabs/widgets
44
39
  ```
45
40
 
46
41
  ## Quick start
47
42
 
48
43
  ```ts
49
- import { applyWidgetContext } from '@ui9000/widgets/context';
50
- import loadLollipop from '@ui9000/widgets/lazy/lollipop';
44
+ import { applyWidgetContext } from '@fusedashlabs/widgets/context';
45
+ import loadLollipop from '@fusedashlabs/widgets/lazy/lollipop';
51
46
 
52
47
  applyWidgetContext(document.body, { mode: 'light' });
53
48
  await loadLollipop();
@@ -63,11 +58,14 @@ document.body.appendChild(el);
63
58
 
64
59
  ## Development
65
60
 
61
+ This repo is **Yarn-only** (Berry 4.x, `nodeLinker: node-modules`). Do not use npm or pnpm.
62
+
66
63
  ```bash
67
- npm install
68
- npm run build && npm test
69
- npm run storybook # http://localhost:6006
70
- npm run dev # light Vite playground
64
+ corepack enable
65
+ yarn install
66
+ yarn build && yarn test
67
+ yarn storybook # http://localhost:6006
68
+ yarn dev # light Vite playground
71
69
  ```
72
70
 
73
71
  ## Repository
@@ -76,16 +74,16 @@ https://github.com/fuselab-creative/ui9000-widgets
76
74
 
77
75
  ## Publish (maintainers)
78
76
 
79
- 1. Merge to `main`, ensure CI is green.
77
+ 1. Push to `main`, ensure CI is green.
80
78
  2. Set `NPM_TOKEN` in GitHub → Settings → Secrets (npmjs automation token with publish scope).
81
79
  3. Tag and push:
82
80
 
83
81
  ```bash
84
- npm run build && npm test
85
- git tag v0.2.0
82
+ yarn build && yarn test
83
+ git tag v0.3.1
86
84
  git push origin main --tags
87
85
  ```
88
86
 
89
- Release workflow (`.github/workflows/release.yml`) runs `npm publish --provenance --access public` on `v*` tags.
87
+ Release workflow (`.github/workflows/release.yml`) runs `yarn npm publish` on `v*` tags.
90
88
 
91
- Manual fallback: `npm publish --access public` (must be logged in to npm).
89
+ Manual fallback: `yarn npm publish` (auth via `yarn npm login` or `YARN_NPM_AUTH_TOKEN`).
@@ -22,7 +22,7 @@ export declare class Ui9000AreaChart extends Ui9000ChartElement {
22
22
  private xDomainHint;
23
23
  private renderLegend;
24
24
  private draw;
25
- render(): import('lit').TemplateResult<1>;
25
+ render(): import('lit-html').TemplateResult<1>;
26
26
  }
27
27
  declare global {
28
28
  interface HTMLElementTagNameMap {
@@ -20,7 +20,7 @@ export declare class Ui9000AreaGroupedBarChart extends Ui9000ChartElement {
20
20
  private renderLegend;
21
21
  private tooltipLines;
22
22
  private draw;
23
- render(): import('lit').TemplateResult<1>;
23
+ render(): import('lit-html').TemplateResult<1>;
24
24
  }
25
25
  declare global {
26
26
  interface HTMLElementTagNameMap {
@@ -71,7 +71,7 @@ function fromFuseWidget(widget) {
71
71
  label: key,
72
72
  color: resolveGroupColor(formatting, key, i, gKeys.length, hasFormatting)
73
73
  }));
74
- const barsByCategory = {};
74
+ const barsByCategory = /* @__PURE__ */ Object.create(null);
75
75
  if (groupField && gKeys.length) {
76
76
  for (const d of rows) {
77
77
  const xKey = String(d[xField] ?? "").trim();
@@ -79,11 +79,11 @@ function fromFuseWidget(widget) {
79
79
  if (!xKey || !gKey || gKey === "null" || gKey === "undefined") continue;
80
80
  const useValueFromGroup = yKeys.includes(gKey) && d[gKey] != null;
81
81
  const v = toNumberValue(useValueFromGroup ? d[gKey] : d[barField]);
82
- if (!barsByCategory[xKey]) barsByCategory[xKey] = {};
82
+ if (!barsByCategory[xKey]) barsByCategory[xKey] = /* @__PURE__ */ Object.create(null);
83
83
  barsByCategory[xKey][gKey] = (barsByCategory[xKey][gKey] ?? 0) + v;
84
84
  }
85
85
  }
86
- const byX = {};
86
+ const byX = /* @__PURE__ */ Object.create(null);
87
87
  for (const d of rows) {
88
88
  const rawX = String(d[xField] ?? "").trim();
89
89
  if (!rawX) continue;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sources":["../../../../src/components/area-grouped-bar-chart/lib/normalize.ts"],"sourcesContent":["import {\n pickQualitativePalette,\n QUALITATIVE_2,\n resolveFormattingColor,\n} from '../../../utils/fuse-palette.js';\nimport { resolveWidgetFormatting } from '../../../utils/chart-formatting/index.js';\nimport {\n filterTruthyValues,\n firstField,\n isFuseWidgetPayload,\n resolveUniqueValuesOrder,\n rowsOf,\n type FuseWidgetLike,\n} from '../../../utils/fuse-widget.js';\nimport type {\n AreaGroupedBarChartInput,\n AreaGroupedBarGroup,\n AreaGroupedBarModel,\n} from './types.js';\n\nconst EMPTY: AreaGroupedBarModel = {\n categories: [],\n groups: [],\n barsByCategory: {},\n linePoints: [],\n lineColor: QUALITATIVE_2[0],\n lineLabel: '',\n lineField: '',\n barField: '',\n xField: '',\n groupField: '',\n};\n\ntype WidgetWithDisplay = FuseWidgetLike & {\n display?: string | string[] | null;\n};\n\nfunction toNumberValue(value: unknown): number {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction resolveYKeys(widget: WidgetWithDisplay): string[] {\n const fromDisplay = Array.isArray(widget.display)\n ? widget.display\n : widget.display\n ? [widget.display]\n : [];\n const fromY = Array.isArray(widget.yAxe)\n ? widget.yAxe\n : widget.yAxe\n ? [widget.yAxe]\n : [];\n const keys = (fromDisplay.length ? fromDisplay : fromY)\n .map(String)\n .filter(Boolean);\n return keys;\n}\n\nfunction xCategories(\n rows: Record<string, unknown>[],\n widget: FuseWidgetLike,\n xKey: string,\n): string[] {\n const allX = Array.from(\n new Set(rows.map((r) => String(r[xKey] ?? '').trim()).filter(Boolean)),\n );\n const hint = widget.uniqueValues?.[xKey]?.map(String).filter((v) => allX.includes(v));\n if (hint?.length) return hint;\n return resolveUniqueValuesOrder(allX, widget.uniqueValues, xKey);\n}\n\nfunction groupKeys(\n rows: Record<string, unknown>[],\n widget: FuseWidgetLike,\n groupBy: string,\n): string[] {\n const fromUv = widget.uniqueValues?.[groupBy];\n const raw = fromUv?.length\n ? fromUv.map(String)\n : Array.from(\n new Set(rows.map((r) => String(r[groupBy] ?? '')).filter(Boolean)),\n );\n return filterTruthyValues(raw);\n}\n\nfunction resolveLineColor(\n formatting: ReturnType<typeof resolveWidgetFormatting>,\n lineField: string,\n hasFormatting: boolean,\n): string {\n if (hasFormatting) {\n return resolveFormattingColor(formatting, lineField, formatting.length || 1);\n }\n return resolveFormattingColor([{ key: lineField, color: '1' }], lineField, 1);\n}\n\nfunction resolveGroupColor(\n formatting: ReturnType<typeof resolveWidgetFormatting>,\n groupKey: string,\n groupIndex: number,\n groupCount: number,\n hasFormatting: boolean,\n): string {\n if (hasFormatting) {\n return resolveFormattingColor(formatting, groupKey, groupCount);\n }\n const palette = pickQualitativePalette(3, groupCount);\n return palette[(groupIndex + 1) % palette.length] ?? QUALITATIVE_2[1];\n}\n\nfunction fromFuseWidget(widget: WidgetWithDisplay): AreaGroupedBarModel {\n const rows = rowsOf(widget);\n const xField = firstField(widget.xAxe) ?? '';\n const groupField = firstField(widget.groupBy) ?? '';\n const yKeys = resolveYKeys(widget);\n const lineField = yKeys[0] || firstField(widget.yAxe) || '';\n const barField = yKeys[1] || yKeys[0] || '';\n\n if (!rows.length || !xField || !lineField) return EMPTY;\n\n const categories = xCategories(rows, widget, xField);\n const gKeys = groupField ? groupKeys(rows, widget, groupField) : [];\n const formatting = resolveWidgetFormatting(widget);\n const hasFormatting = Array.isArray(widget.formatting) && (widget.formatting?.length ?? 0) > 0;\n\n const groups: AreaGroupedBarGroup[] = gKeys.map((key, i) => ({\n key,\n label: key,\n color: resolveGroupColor(formatting, key, i, gKeys.length, hasFormatting),\n }));\n\n const barsByCategory: Record<string, Record<string, number>> = {};\n if (groupField && gKeys.length) {\n for (const d of rows) {\n const xKey = String(d[xField] ?? '').trim();\n const gKey = String(d[groupField] ?? '').trim();\n if (!xKey || !gKey || gKey === 'null' || gKey === 'undefined') continue;\n const useValueFromGroup = yKeys.includes(gKey) && d[gKey] != null;\n const v = toNumberValue(useValueFromGroup ? d[gKey] : d[barField]);\n if (!barsByCategory[xKey]) barsByCategory[xKey] = {};\n barsByCategory[xKey][gKey] = (barsByCategory[xKey][gKey] ?? 0) + v;\n }\n }\n\n // Line/area: explicit yAxe[0] when finite; else sum(bars) per category.\n const byX: Record<string, { line?: number; barsSum: number }> = {};\n for (const d of rows) {\n const rawX = String(d[xField] ?? '').trim();\n if (!rawX) continue;\n if (!byX[rawX]) byX[rawX] = { barsSum: 0 };\n const lineV = toNumberValue(d[lineField]);\n if (Number.isFinite(lineV)) byX[rawX].line = lineV;\n byX[rawX].barsSum += toNumberValue(d[barField]);\n }\n\n const linePoints = categories\n .map((rawX) => {\n const acc = byX[rawX];\n if (!acc) return null;\n const rawY = Number.isFinite(acc.line as number)\n ? Number(acc.line)\n : Number(acc.barsSum);\n if (!Number.isFinite(rawY)) return null;\n return { x: rawX, y: rawY };\n })\n .filter((p): p is { x: string; y: number } => p != null);\n\n const lineLabel =\n widget.axisDetails?.[lineField]?.label ?? lineField;\n\n const hasPlot =\n linePoints.length > 0 ||\n Object.keys(barsByCategory).length > 0;\n\n if (!hasPlot) return EMPTY;\n\n return {\n categories,\n groups,\n barsByCategory,\n linePoints,\n lineColor: resolveLineColor(formatting, lineField, hasFormatting),\n lineLabel,\n lineField,\n barField,\n xField,\n groupField,\n axisDetails: widget.axisDetails ?? undefined,\n };\n}\n\n/** Normalize FuseDash / chat payloads into area+grouped-bar model. */\nexport function normalizeAreaGroupedBarData(\n input: AreaGroupedBarChartInput,\n): AreaGroupedBarModel {\n if (!input) return EMPTY;\n\n if (isFuseWidgetPayload(input)) {\n return fromFuseWidget(input as WidgetWithDisplay);\n }\n\n if (\n typeof input === 'object' &&\n Array.isArray((input as AreaGroupedBarModel).categories) &&\n Array.isArray((input as AreaGroupedBarModel).linePoints)\n ) {\n return input as AreaGroupedBarModel;\n }\n\n return EMPTY;\n}\n\nexport { areaGroupedBarYDomain } from './domain.js';\nexport { formatAgbAxisTick, formatAgbValue } from './format.js';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sources":["../../../../src/components/area-grouped-bar-chart/lib/normalize.ts"],"sourcesContent":["import {\n pickQualitativePalette,\n QUALITATIVE_2,\n resolveFormattingColor,\n} from '../../../utils/fuse-palette.js';\nimport { resolveWidgetFormatting } from '../../../utils/chart-formatting/index.js';\nimport {\n filterTruthyValues,\n firstField,\n isFuseWidgetPayload,\n resolveUniqueValuesOrder,\n rowsOf,\n type FuseWidgetLike,\n} from '../../../utils/fuse-widget.js';\nimport type {\n AreaGroupedBarChartInput,\n AreaGroupedBarGroup,\n AreaGroupedBarModel,\n} from './types.js';\n\nconst EMPTY: AreaGroupedBarModel = {\n categories: [],\n groups: [],\n barsByCategory: {},\n linePoints: [],\n lineColor: QUALITATIVE_2[0],\n lineLabel: '',\n lineField: '',\n barField: '',\n xField: '',\n groupField: '',\n};\n\ntype WidgetWithDisplay = FuseWidgetLike & {\n display?: string | string[] | null;\n};\n\nfunction toNumberValue(value: unknown): number {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction resolveYKeys(widget: WidgetWithDisplay): string[] {\n const fromDisplay = Array.isArray(widget.display)\n ? widget.display\n : widget.display\n ? [widget.display]\n : [];\n const fromY = Array.isArray(widget.yAxe)\n ? widget.yAxe\n : widget.yAxe\n ? [widget.yAxe]\n : [];\n const keys = (fromDisplay.length ? fromDisplay : fromY)\n .map(String)\n .filter(Boolean);\n return keys;\n}\n\nfunction xCategories(\n rows: Record<string, unknown>[],\n widget: FuseWidgetLike,\n xKey: string,\n): string[] {\n const allX = Array.from(\n new Set(rows.map((r) => String(r[xKey] ?? '').trim()).filter(Boolean)),\n );\n const hint = widget.uniqueValues?.[xKey]?.map(String).filter((v) => allX.includes(v));\n if (hint?.length) return hint;\n return resolveUniqueValuesOrder(allX, widget.uniqueValues, xKey);\n}\n\nfunction groupKeys(\n rows: Record<string, unknown>[],\n widget: FuseWidgetLike,\n groupBy: string,\n): string[] {\n const fromUv = widget.uniqueValues?.[groupBy];\n const raw = fromUv?.length\n ? fromUv.map(String)\n : Array.from(\n new Set(rows.map((r) => String(r[groupBy] ?? '')).filter(Boolean)),\n );\n return filterTruthyValues(raw);\n}\n\nfunction resolveLineColor(\n formatting: ReturnType<typeof resolveWidgetFormatting>,\n lineField: string,\n hasFormatting: boolean,\n): string {\n if (hasFormatting) {\n return resolveFormattingColor(formatting, lineField, formatting.length || 1);\n }\n return resolveFormattingColor([{ key: lineField, color: '1' }], lineField, 1);\n}\n\nfunction resolveGroupColor(\n formatting: ReturnType<typeof resolveWidgetFormatting>,\n groupKey: string,\n groupIndex: number,\n groupCount: number,\n hasFormatting: boolean,\n): string {\n if (hasFormatting) {\n return resolveFormattingColor(formatting, groupKey, groupCount);\n }\n const palette = pickQualitativePalette(3, groupCount);\n return palette[(groupIndex + 1) % palette.length] ?? QUALITATIVE_2[1];\n}\n\nfunction fromFuseWidget(widget: WidgetWithDisplay): AreaGroupedBarModel {\n const rows = rowsOf(widget);\n const xField = firstField(widget.xAxe) ?? '';\n const groupField = firstField(widget.groupBy) ?? '';\n const yKeys = resolveYKeys(widget);\n const lineField = yKeys[0] || firstField(widget.yAxe) || '';\n const barField = yKeys[1] || yKeys[0] || '';\n\n if (!rows.length || !xField || !lineField) return EMPTY;\n\n const categories = xCategories(rows, widget, xField);\n const gKeys = groupField ? groupKeys(rows, widget, groupField) : [];\n const formatting = resolveWidgetFormatting(widget);\n const hasFormatting = Array.isArray(widget.formatting) && (widget.formatting?.length ?? 0) > 0;\n\n const groups: AreaGroupedBarGroup[] = gKeys.map((key, i) => ({\n key,\n label: key,\n color: resolveGroupColor(formatting, key, i, gKeys.length, hasFormatting),\n }));\n\n const barsByCategory: Record<string, Record<string, number>> = Object.create(null);\n if (groupField && gKeys.length) {\n for (const d of rows) {\n const xKey = String(d[xField] ?? '').trim();\n const gKey = String(d[groupField] ?? '').trim();\n if (!xKey || !gKey || gKey === 'null' || gKey === 'undefined') continue;\n const useValueFromGroup = yKeys.includes(gKey) && d[gKey] != null;\n const v = toNumberValue(useValueFromGroup ? d[gKey] : d[barField]);\n if (!barsByCategory[xKey]) barsByCategory[xKey] = Object.create(null);\n barsByCategory[xKey][gKey] = (barsByCategory[xKey][gKey] ?? 0) + v;\n }\n }\n\n // Line/area: explicit yAxe[0] when finite; else sum(bars) per category.\n const byX: Record<string, { line?: number; barsSum: number }> = Object.create(null);\n for (const d of rows) {\n const rawX = String(d[xField] ?? '').trim();\n if (!rawX) continue;\n if (!byX[rawX]) byX[rawX] = { barsSum: 0 };\n const lineV = toNumberValue(d[lineField]);\n if (Number.isFinite(lineV)) byX[rawX].line = lineV;\n byX[rawX].barsSum += toNumberValue(d[barField]);\n }\n\n const linePoints = categories\n .map((rawX) => {\n const acc = byX[rawX];\n if (!acc) return null;\n const rawY = Number.isFinite(acc.line as number)\n ? Number(acc.line)\n : Number(acc.barsSum);\n if (!Number.isFinite(rawY)) return null;\n return { x: rawX, y: rawY };\n })\n .filter((p): p is { x: string; y: number } => p != null);\n\n const lineLabel =\n widget.axisDetails?.[lineField]?.label ?? lineField;\n\n const hasPlot =\n linePoints.length > 0 ||\n Object.keys(barsByCategory).length > 0;\n\n if (!hasPlot) return EMPTY;\n\n return {\n categories,\n groups,\n barsByCategory,\n linePoints,\n lineColor: resolveLineColor(formatting, lineField, hasFormatting),\n lineLabel,\n lineField,\n barField,\n xField,\n groupField,\n axisDetails: widget.axisDetails ?? undefined,\n };\n}\n\n/** Normalize FuseDash / chat payloads into area+grouped-bar model. */\nexport function normalizeAreaGroupedBarData(\n input: AreaGroupedBarChartInput,\n): AreaGroupedBarModel {\n if (!input) return EMPTY;\n\n if (isFuseWidgetPayload(input)) {\n return fromFuseWidget(input as WidgetWithDisplay);\n }\n\n if (\n typeof input === 'object' &&\n Array.isArray((input as AreaGroupedBarModel).categories) &&\n Array.isArray((input as AreaGroupedBarModel).linePoints)\n ) {\n return input as AreaGroupedBarModel;\n }\n\n return EMPTY;\n}\n\nexport { areaGroupedBarYDomain } from './domain.js';\nexport { formatAgbAxisTick, formatAgbValue } from './format.js';\n"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export declare class Ui9000BarChart extends Ui9000ChartElement {
28
28
  private parseData;
29
29
  private renderLegend;
30
30
  private draw;
31
- render(): import('lit').TemplateResult<1>;
31
+ render(): import('lit-html').TemplateResult<1>;
32
32
  }
33
33
  declare global {
34
34
  interface HTMLElementTagNameMap {
@@ -0,0 +1,7 @@
1
+ export { stepLineChartStyles as biasVarianceTradeoffChartStyles } from '../../step-line-chart/element/styles.js';
2
+ /**
3
+ * The crosshair focuses the curve nearest the cursor and dims its siblings in
4
+ * the plot; the tooltip rows follow the same emphasis.
5
+ */
6
+ export declare const biasVarianceHoverStyles: import('lit').CSSResult;
7
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/bias-variance-tradeoff-chart/element/styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,IAAI,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAEjH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,yBAOnC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { css } from "lit";
2
+ const biasVarianceHoverStyles = css`
3
+ .tooltip .row.focused {
4
+ font-weight: 600;
5
+ }
6
+ .tooltip .row.dimmed {
7
+ opacity: 0.65;
8
+ }
9
+ `;
10
+ export {
11
+ biasVarianceHoverStyles
12
+ };
13
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../src/components/bias-variance-tradeoff-chart/element/styles.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport { stepLineChartStyles as biasVarianceTradeoffChartStyles } from '../../step-line-chart/element/styles.js';\n\n/**\n * The crosshair focuses the curve nearest the cursor and dims its siblings in\n * the plot; the tooltip rows follow the same emphasis.\n */\nexport const biasVarianceHoverStyles = css`\n .tooltip .row.focused {\n font-weight: 600;\n }\n .tooltip .row.dimmed {\n opacity: 0.65;\n }\n`;\n"],"names":[],"mappings":";AAQO,MAAM,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,27 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { Ui9000ChartElement } from '../../../element/ui9000-chart-base.js';
3
+ export declare class Ui9000BiasVarianceTradeoffChart extends Ui9000ChartElement {
4
+ static styles: import('lit').CSSResult[];
5
+ showGrid: boolean;
6
+ showLegend: boolean;
7
+ showTooltip: boolean;
8
+ private _tooltip;
9
+ private _empty;
10
+ private _resizeObserver?;
11
+ private _raf;
12
+ connectedCallback(): void;
13
+ disconnectedCallback(): void;
14
+ updated(changed: PropertyValues): void;
15
+ private scheduleDraw;
16
+ private parseData;
17
+ private renderLegend;
18
+ private draw;
19
+ render(): import('lit-html').TemplateResult<1>;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'ui9000-bias-variance-tradeoff-chart': Ui9000BiasVarianceTradeoffChart;
24
+ }
25
+ }
26
+ export declare function registerBiasVarianceTradeoffChart(): void;
27
+ //# sourceMappingURL=ui9000-bias-variance-tradeoff-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-bias-variance-tradeoff-chart.d.ts","sourceRoot":"","sources":["../../../../src/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKzD,OAAO,EAAoB,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAiB7F,qBACa,+BAAgC,SAAQ,kBAAkB;IACrE,OAAgB,MAAM,4BAIpB;IAGF,QAAQ,UAAQ;IAGhB,UAAU,UAAQ;IAGlB,WAAW,UAAQ;IAGnB,OAAO,CAAC,QAAQ,CAKA;IAGhB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,IAAI,CAAK;IAER,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI/C,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,IAAI;IAwCH,MAAM;CAoChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qCAAqC,EAAE,+BAA+B,CAAC;KACxE;CACF;AAED,wBAAgB,iCAAiC,IAAI,IAAI,CAOxD"}
@@ -0,0 +1,173 @@
1
+ import { nothing, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { readThemeFromElement } from "../../../context/widget-context.js";
4
+ import { renderChartLegend } from "../../../element/chart-legend-render.js";
5
+ import { Ui9000ChartElement } from "../../../element/ui9000-chart-base.js";
6
+ import { parseJsonAttr, getBiasVarianceDimensions } from "../../../utils/chart-helpers.js";
7
+ import { lineLegendEntries } from "../../../utils/chart-legend.js";
8
+ import { formatCapitalizedWords } from "../../../utils/format-text.js";
9
+ import { chartPropsChanged } from "../../../utils/lit-draw.js";
10
+ import { renderBiasVarianceChart } from "../render/draw.js";
11
+ import { biasVarianceHoverStyles } from "./styles.js";
12
+ import { normalizeBiasVarianceData } from "../lib/normalize.js";
13
+ import { formatTradeoffValue } from "../lib/format.js";
14
+ import { stepLineChartStyles } from "../../step-line-chart/element/styles.js";
15
+ import { chartShellStyles } from "../../../element/chart-shell-styles.js";
16
+ var __defProp = Object.defineProperty;
17
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
18
+ var __decorateClass = (decorators, target, key, kind) => {
19
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
20
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
21
+ if (decorator = decorators[i])
22
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
23
+ if (kind && result) __defProp(target, key, result);
24
+ return result;
25
+ };
26
+ const EMPTY_MODEL = { series: [], domainsLimits: [] };
27
+ let Ui9000BiasVarianceTradeoffChart = class extends Ui9000ChartElement {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.showGrid = true;
31
+ this.showLegend = true;
32
+ this.showTooltip = true;
33
+ this._tooltip = null;
34
+ this._empty = false;
35
+ this._raf = 0;
36
+ }
37
+ connectedCallback() {
38
+ super.connectedCallback();
39
+ this._resizeObserver = new ResizeObserver(() => this.scheduleDraw());
40
+ this._resizeObserver.observe(this);
41
+ }
42
+ disconnectedCallback() {
43
+ var _a;
44
+ (_a = this._resizeObserver) == null ? void 0 : _a.disconnect();
45
+ cancelAnimationFrame(this._raf);
46
+ super.disconnectedCallback();
47
+ }
48
+ updated(changed) {
49
+ if (chartPropsChanged(changed)) this.scheduleDraw();
50
+ }
51
+ scheduleDraw() {
52
+ cancelAnimationFrame(this._raf);
53
+ this._raf = requestAnimationFrame(() => this.draw());
54
+ }
55
+ parseData() {
56
+ const raw = parseJsonAttr(this.dataJson, null);
57
+ return normalizeBiasVarianceData(raw);
58
+ }
59
+ renderLegend(model) {
60
+ if (!this.showLegend || model.series.length <= 1) return nothing;
61
+ const theme = readThemeFromElement(this);
62
+ const labelled = model.series.map((s) => ({
63
+ id: s.id,
64
+ name: formatCapitalizedWords(s.name ?? s.id),
65
+ color: s.color
66
+ }));
67
+ return renderChartLegend(lineLegendEntries(labelled, theme));
68
+ }
69
+ draw() {
70
+ var _a;
71
+ const root = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".chart-root");
72
+ if (!root) return;
73
+ const model = this.parseData();
74
+ this._empty = model.series.length === 0;
75
+ if (this._empty) {
76
+ root.replaceChildren();
77
+ return;
78
+ }
79
+ const { width, height, margin } = getBiasVarianceDimensions(root);
80
+ renderBiasVarianceChart(root, {
81
+ model,
82
+ width,
83
+ height,
84
+ margin,
85
+ theme: readThemeFromElement(this),
86
+ showGrid: this.showGrid,
87
+ showTooltip: this.showTooltip,
88
+ onHover: this.showTooltip ? ({ x, entries, event }) => {
89
+ const rect = this.getBoundingClientRect();
90
+ this._tooltip = {
91
+ x: event.clientX - rect.left,
92
+ y: event.clientY - rect.top,
93
+ xLabel: formatTradeoffValue(x),
94
+ entries
95
+ };
96
+ } : void 0,
97
+ onLeave: this.showTooltip ? () => {
98
+ this._tooltip = null;
99
+ } : void 0
100
+ });
101
+ }
102
+ render() {
103
+ var _a, _b;
104
+ const title = this.headerTitle();
105
+ const model = this._empty ? EMPTY_MODEL : this.parseData();
106
+ const yField = model.yField;
107
+ const unit = yField ? (_b = (_a = model.axisDetails) == null ? void 0 : _a[yField]) == null ? void 0 : _b.measure_unit_symbol : void 0;
108
+ return html`
109
+ <div class="widget-shell" part="shell">
110
+ ${this.renderShellHeader(title)}
111
+ <div class="widget-body">
112
+ ${this.renderLegend(model)}
113
+ <div class="chart-root" part="chart" ?hidden=${this._empty}></div>
114
+ ${this._empty ? html`<div class="empty" part="empty">No data</div>` : nothing}
115
+ ${this._tooltip ? html`<div
116
+ class="tooltip"
117
+ part="tooltip"
118
+ style="left:${this._tooltip.x}px;top:${this._tooltip.y}px"
119
+ >
120
+ <div class="x">${this._tooltip.xLabel}</div>
121
+ ${this._tooltip.entries.map(
122
+ (entry) => html`<div class="row ${entry.focused ? "focused" : "dimmed"}">
123
+ <span class="swatch" style="background:${entry.color}"></span>
124
+ <span>${formatCapitalizedWords(entry.seriesName)}</span>
125
+ <span class="value"
126
+ >${formatTradeoffValue(entry.value)}${unit ? ` ${unit}` : ""}</span
127
+ >
128
+ </div>`
129
+ )}
130
+ </div>` : nothing}
131
+ ${this.renderShellLabelTooltip()}
132
+ </div>
133
+ </div>
134
+ `;
135
+ }
136
+ };
137
+ Ui9000BiasVarianceTradeoffChart.styles = [
138
+ stepLineChartStyles,
139
+ biasVarianceHoverStyles,
140
+ chartShellStyles
141
+ ];
142
+ __decorateClass([
143
+ property({ type: Boolean, attribute: "show-grid" })
144
+ ], Ui9000BiasVarianceTradeoffChart.prototype, "showGrid", 2);
145
+ __decorateClass([
146
+ property({ type: Boolean, attribute: "show-legend" })
147
+ ], Ui9000BiasVarianceTradeoffChart.prototype, "showLegend", 2);
148
+ __decorateClass([
149
+ property({ type: Boolean, attribute: "show-tooltip" })
150
+ ], Ui9000BiasVarianceTradeoffChart.prototype, "showTooltip", 2);
151
+ __decorateClass([
152
+ state()
153
+ ], Ui9000BiasVarianceTradeoffChart.prototype, "_tooltip", 2);
154
+ __decorateClass([
155
+ state()
156
+ ], Ui9000BiasVarianceTradeoffChart.prototype, "_empty", 2);
157
+ Ui9000BiasVarianceTradeoffChart = __decorateClass([
158
+ customElement("ui9000-bias-variance-tradeoff-chart")
159
+ ], Ui9000BiasVarianceTradeoffChart);
160
+ function registerBiasVarianceTradeoffChart() {
161
+ if (!customElements.get("ui9000-bias-variance-tradeoff-chart")) {
162
+ customElements.define(
163
+ "ui9000-bias-variance-tradeoff-chart",
164
+ Ui9000BiasVarianceTradeoffChart
165
+ );
166
+ }
167
+ }
168
+ registerBiasVarianceTradeoffChart();
169
+ export {
170
+ Ui9000BiasVarianceTradeoffChart,
171
+ registerBiasVarianceTradeoffChart
172
+ };
173
+ //# sourceMappingURL=ui9000-bias-variance-tradeoff-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-bias-variance-tradeoff-chart.js","sources":["../../../../src/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.ts"],"sourcesContent":["import { html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { readThemeFromElement } from '../../../context/widget-context.js';\nimport { renderChartLegend } from '../../../element/chart-legend-render.js';\nimport { chartShellStyles, Ui9000ChartElement } from '../../../element/ui9000-chart-base.js';\nimport { getBiasVarianceDimensions, parseJsonAttr } from '../../../utils/chart-helpers.js';\nimport { lineLegendEntries } from '../../../utils/chart-legend.js';\nimport { formatCapitalizedWords } from '../../../utils/format-text.js';\nimport { chartPropsChanged } from '../../../utils/lit-draw.js';\nimport {\n formatTradeoffValue,\n normalizeBiasVarianceData,\n type BiasVarianceChartInput,\n type BiasVarianceHoverEntry,\n type BiasVarianceModel,\n} from '../lib/index.js';\nimport { renderBiasVarianceChart } from '../render/draw.js';\nimport { biasVarianceHoverStyles, biasVarianceTradeoffChartStyles } from './styles.js';\n\nconst EMPTY_MODEL: BiasVarianceModel = { series: [], domainsLimits: [] };\n\n@customElement('ui9000-bias-variance-tradeoff-chart')\nexport class Ui9000BiasVarianceTradeoffChart extends Ui9000ChartElement {\n static override styles = [\n biasVarianceTradeoffChartStyles,\n biasVarianceHoverStyles,\n chartShellStyles,\n ];\n\n @property({ type: Boolean, attribute: 'show-grid' })\n showGrid = true;\n\n @property({ type: Boolean, attribute: 'show-legend' })\n showLegend = true;\n\n @property({ type: Boolean, attribute: 'show-tooltip' })\n showTooltip = true;\n\n @state()\n private _tooltip: {\n x: number;\n y: number;\n xLabel: string;\n entries: BiasVarianceHoverEntry[];\n } | null = null;\n\n @state()\n private _empty = false;\n\n private _resizeObserver?: ResizeObserver;\n private _raf = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._resizeObserver = new ResizeObserver(() => this.scheduleDraw());\n this._resizeObserver.observe(this);\n }\n\n override disconnectedCallback(): void {\n this._resizeObserver?.disconnect();\n cancelAnimationFrame(this._raf);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (chartPropsChanged(changed)) this.scheduleDraw();\n }\n\n private scheduleDraw(): void {\n cancelAnimationFrame(this._raf);\n this._raf = requestAnimationFrame(() => this.draw());\n }\n\n private parseData(): BiasVarianceModel {\n const raw = parseJsonAttr<BiasVarianceChartInput>(this.dataJson, null);\n return normalizeBiasVarianceData(raw);\n }\n\n private renderLegend(model: BiasVarianceModel) {\n if (!this.showLegend || model.series.length <= 1) return nothing;\n const theme = readThemeFromElement(this);\n const labelled = model.series.map((s) => ({\n id: s.id,\n name: formatCapitalizedWords(s.name ?? s.id),\n color: s.color,\n }));\n return renderChartLegend(lineLegendEntries(labelled, theme));\n }\n\n private draw(): void {\n const root = this.shadowRoot?.querySelector('.chart-root') as HTMLElement | null;\n if (!root) return;\n\n const model = this.parseData();\n this._empty = model.series.length === 0;\n if (this._empty) {\n root.replaceChildren();\n return;\n }\n\n const { width, height, margin } = getBiasVarianceDimensions(root);\n\n renderBiasVarianceChart(root, {\n model,\n width,\n height,\n margin,\n theme: readThemeFromElement(this),\n showGrid: this.showGrid,\n showTooltip: this.showTooltip,\n onHover: this.showTooltip\n ? ({ x, entries, event }) => {\n const rect = this.getBoundingClientRect();\n this._tooltip = {\n x: event.clientX - rect.left,\n y: event.clientY - rect.top,\n xLabel: formatTradeoffValue(x),\n entries,\n };\n }\n : undefined,\n onLeave: this.showTooltip\n ? () => {\n this._tooltip = null;\n }\n : undefined,\n });\n }\n\n override render() {\n const title = this.headerTitle();\n const model = this._empty ? EMPTY_MODEL : this.parseData();\n const yField = model.yField;\n const unit = yField ? model.axisDetails?.[yField]?.measure_unit_symbol : undefined;\n\n return html`\n <div class=\"widget-shell\" part=\"shell\">\n ${this.renderShellHeader(title)}\n <div class=\"widget-body\">\n ${this.renderLegend(model)}\n <div class=\"chart-root\" part=\"chart\" ?hidden=${this._empty}></div>\n ${this._empty ? html`<div class=\"empty\" part=\"empty\">No data</div>` : nothing}\n ${this._tooltip\n ? html`<div\n class=\"tooltip\"\n part=\"tooltip\"\n style=\"left:${this._tooltip.x}px;top:${this._tooltip.y}px\"\n >\n <div class=\"x\">${this._tooltip.xLabel}</div>\n ${this._tooltip.entries.map(\n (entry) => html`<div class=\"row ${entry.focused ? 'focused' : 'dimmed'}\">\n <span class=\"swatch\" style=\"background:${entry.color}\"></span>\n <span>${formatCapitalizedWords(entry.seriesName)}</span>\n <span class=\"value\"\n >${formatTradeoffValue(entry.value)}${unit ? ` ${unit}` : ''}</span\n >\n </div>`,\n )}\n </div>`\n : nothing}\n ${this.renderShellLabelTooltip()}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ui9000-bias-variance-tradeoff-chart': Ui9000BiasVarianceTradeoffChart;\n }\n}\n\nexport function registerBiasVarianceTradeoffChart(): void {\n if (!customElements.get('ui9000-bias-variance-tradeoff-chart')) {\n customElements.define(\n 'ui9000-bias-variance-tradeoff-chart',\n Ui9000BiasVarianceTradeoffChart,\n );\n }\n}\n\nregisterBiasVarianceTradeoffChart();\n"],"names":["biasVarianceTradeoffChartStyles"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Ui9000BiasVarianceTradeoffChart, registerBiasVarianceTradeoffChart, } from './element/ui9000-bias-variance-tradeoff-chart.js';
2
+ export { renderBiasVarianceChart } from './render/index.js';
3
+ export { biasVarianceXDomain, biasVarianceXValues, biasVarianceYDomain, formatTradeoffValue, normalizeBiasVarianceData, type BiasVarianceAxisDetail, type BiasVarianceChartData, type BiasVarianceChartInput, type BiasVarianceDomainLimit, type BiasVarianceHoverEntry, type BiasVarianceModel, type BiasVariancePoint, type BiasVarianceSeries, } from './lib/index.js';
4
+ export { default as biasVarianceTradeoffChartMetadata } from './metadata.json';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/bias-variance-tradeoff-chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { registerBiasVarianceTradeoffChart } from "./element/ui9000-bias-variance-tradeoff-chart.js";
2
+ import { Ui9000BiasVarianceTradeoffChart } from "./element/ui9000-bias-variance-tradeoff-chart.js";
3
+ import { default as default2 } from "./metadata.json.js";
4
+ import { biasVarianceXDomain, biasVarianceXValues, biasVarianceYDomain } from "./lib/domain.js";
5
+ import { formatTradeoffValue } from "./lib/format.js";
6
+ import { normalizeBiasVarianceData } from "./lib/normalize.js";
7
+ import { renderBiasVarianceChart } from "./render/draw.js";
8
+ export {
9
+ Ui9000BiasVarianceTradeoffChart,
10
+ default2 as biasVarianceTradeoffChartMetadata,
11
+ biasVarianceXDomain,
12
+ biasVarianceXValues,
13
+ biasVarianceYDomain,
14
+ formatTradeoffValue,
15
+ normalizeBiasVarianceData,
16
+ registerBiasVarianceTradeoffChart,
17
+ renderBiasVarianceChart
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}