@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
@@ -1 +1 @@
1
- {"version":3,"file":"fusedash-visual.d.ts","sourceRoot":"","sources":["../../src/utils/fusedash-visual.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fusedash-visual.d.ts","sourceRoot":"","sources":["../../src/utils/fusedash-visual.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,59 @@ const FD = {
135
135
  /** PieChart — FuseDash uses zero margin; pie is a square inscribed in the body */
136
136
  pieMargin: { top: 0, right: 0, bottom: 0, left: 0 },
137
137
  pieMinArcLengthPx: 5,
138
+ /** PolarAreaChart — FuseDash margin around the centred disc */
139
+ polarAreaMargin: { top: 25, right: 5, bottom: 25, left: 5 },
140
+ /** Concentric grid rings; opacity ramps 0.2 → 1.0 outward */
141
+ polarRadialSteps: 5,
142
+ polarGridStroke: "#939ba7",
143
+ polarGridStepOpacity: 0.2,
144
+ /** Dashed spoke from the centre to each category boundary, with a round cap */
145
+ polarSpokeDash: "2,2",
146
+ polarSpokeCapRadius: 3,
147
+ /** Category labels sit just outside the outermost ring */
148
+ polarCategoryLabelFill: "#5f6877",
149
+ polarCategoryLabelSize: 12,
150
+ polarCategoryLabelOffset: 12,
151
+ /** Side room reserved for those labels, measured off the longest one */
152
+ polarLabelCharWidth: 0.55,
153
+ polarLabelGutterMin: 40,
154
+ polarLabelGutterMax: 120,
155
+ polarLabelGutterMaxFraction: 0.28,
156
+ /** Below this radius the label ring collides with itself — drop it */
157
+ polarMinLabelRadius: 40,
158
+ /** Sectors: 0.8 at rest, siblings drop to 0.2 on hover */
159
+ polarSectorOpacity: 0.8,
160
+ polarSectorOpacityDimmed: 0.2,
161
+ /** Radial tick pills are hidden when the disc is too short to fit them */
162
+ polarTickPillRowHeight: 21,
163
+ polarTickPillPadX: 7,
164
+ polarTickPillPadY: 3,
165
+ polarTickPillRadius: 4,
166
+ polarTickPill: "#ffffff",
167
+ polarTickPillDark: "#1a1b1f",
168
+ /** RadialBarChart — client margin; the plot is a circle inscribed in the body */
169
+ radialBarMargin: { top: 25, right: 5, bottom: 25, left: 5 },
170
+ /** Hole is 20% of the outer radius; rings sweep 270° clockwise from 12 o'clock */
171
+ radialBarInnerRadiusRatio: 0.2,
172
+ radialBarSweepDeg: 270,
173
+ radialBarTicks: 5,
174
+ /** Ring thickness clamp around `((outer - inner - rings) / rings) * 0.5` */
175
+ radialBarMinArcWidth: 4,
176
+ radialBarMaxArcWidth: 24,
177
+ radialBarArcCornerRadius: 1,
178
+ /** Resting / dimmed arc opacity */
179
+ radialBarArcOpacity: 0.8,
180
+ radialBarArcOpacityDimmed: 0.2,
181
+ /** Client draws the rings and the radial axes in one darker grey */
182
+ radialBarGridStroke: "#939ba7",
183
+ radialBarTickDash: "4,4",
184
+ radialBarLabelFill: "#5f6877",
185
+ radialBarTickLabelSize: 12,
186
+ radialBarRingLabelSize: 11,
187
+ /** Value labels sit 12px outside the outer ring */
188
+ radialBarTickLabelOffset: 12,
189
+ /** Ring labels are cut at `(outer - inner) / 8` characters */
190
+ radialBarLabelCharWidth: 8,
138
191
  /** ScatterPlot — FuseDash DEFAULT_MARGIN */
139
192
  scatterMargin: { top: 10, right: 5, bottom: 21, left: 40 },
140
193
  /** AreaGroupedBarChart — client DEFAULT_MARGIN */
@@ -151,6 +204,29 @@ const FD = {
151
204
  bubbleNegativeFill: "#DADAE1",
152
205
  scatterMarkerSize: 40,
153
206
  scatterReferenceLine: "#56546D",
207
+ /** BiasVarianceTradeoffChart — the client widget carries its own frame/palette */
208
+ biasVarianceMargin: { top: 24, right: 24, bottom: 36, left: 48 },
209
+ biasVarianceSeries: ["#6366f1", "#22c55e", "#f59e0b", "#06b6d4", "#ef4444"],
210
+ biasVarianceGridStroke: "#d1d5db",
211
+ biasVarianceGridDash: "2,4",
212
+ biasVarianceAxisStroke: "#9ca3af",
213
+ biasVarianceLabelFill: "#6b7280",
214
+ biasVarianceLineWidth: 2,
215
+ biasVarianceLineOpacity: 0.95,
216
+ /** Sibling curves fade while one is hovered (FuseDash line-hover convention) */
217
+ biasVarianceLineOpacityDimmed: 0.2,
218
+ /** Y domain is `[0, max * 1.1]` before `.nice()` */
219
+ biasVarianceDomainPadFactor: 1.1,
220
+ biasVarianceXTicks: 8,
221
+ biasVarianceYTicks: 6,
222
+ /** Shared `DomainsLimits` overlay (reference lines / bands) */
223
+ domainLimitColor: "#6C8CF5",
224
+ domainLimitFillOpacity: 0.12,
225
+ domainLimitDash: "4,4",
226
+ domainLimitArrow: 8,
227
+ domainLimitLabelFill: "#141c2ce6",
228
+ domainLimitLabelText: "#ffffff",
229
+ domainLimitLabelSize: 10,
154
230
  donutSliceStroke: "#ffffff",
155
231
  donutSliceStrokeDark: "#1a1b1f",
156
232
  donutSliceStrokeWidth: 2,
@@ -184,7 +260,44 @@ const FD = {
184
260
  /** Ribbons sit at 50% alpha until hovered or focused */
185
261
  sankeyLinkAlphaPct: 50,
186
262
  sankeyLinkInset: 3,
187
- sankeyDimOpacity: 0.5
263
+ sankeyDimOpacity: 0.5,
264
+ /** ParallelCoordinates — client Horizontal/Vertical frames */
265
+ parallelMargin: { top: 10, right: 1, bottom: 8, left: 1 },
266
+ parallelVerticalMargin: { top: 10, right: 1, bottom: 1, left: 1 },
267
+ /** Horizontal: one 72px band per dimension, so the plot scrolls past ~5 axes */
268
+ parallelAxisSpacing: 72,
269
+ /** Vertical: gutter kept free under the axes for the bottom tick row */
270
+ parallelColorScaleHeight: 44,
271
+ /** Right gutter reserved for the colour ramp + its tick labels */
272
+ parallelLegendOffsetRight: 20,
273
+ parallelLegendWidth: 10,
274
+ parallelLegendTickLabelWidth: 44,
275
+ parallelLegendRadius: 6,
276
+ /** Resting / dimmed / hovered polyline stroke */
277
+ parallelLineWidth: 1,
278
+ parallelLineWidthHovered: 5,
279
+ parallelLineOpacity: 0.4,
280
+ parallelLineOpacityDimmed: 0.05,
281
+ /** Client draws these axes a shade darker than the shared FD axis tokens */
282
+ parallelAxisStroke: "#939ba7",
283
+ parallelAxisLabelFill: "#5f6877",
284
+ parallelTitleSize: 11,
285
+ parallelTitleSizeActive: 13,
286
+ /** GiniImpurityEntropyChart — client DEFAULT_MARGIN */
287
+ giniMargin: { top: 20, right: 24, bottom: 28, left: 44 },
288
+ /** Curves are drawn as smooth Catmull-Rom splines with this tension */
289
+ giniCurveAlpha: 0.5,
290
+ /** p-hat guide + confidence-interval band */
291
+ giniOverlayColor: "#4c6ef5",
292
+ giniOverlayBandOpacity: 0.08,
293
+ giniOverlayDash: "5,5",
294
+ /** Split annotation markers on the Gini curve */
295
+ giniSplitMarkerFill: "#12b886",
296
+ giniSplitMarkerStroke: "#ffffff",
297
+ giniSplitMarkerRadius: 4,
298
+ giniSplitLabelOffset: 8,
299
+ /** Hovering one curve fades the others so the read is unambiguous */
300
+ giniCurveDimOpacity: 0.2
188
301
  };
189
302
  const FD_SEQUENTIAL = [
190
303
  "#D6D3FF",
@@ -1 +1 @@
1
- {"version":3,"file":"fusedash-visual.js","sources":["../../src/utils/fusedash-visual.ts"],"sourcesContent":["import type { Selection } from 'd3-selection';\n\n/** FuseDash Widgets visual tokens — keep charts looking 1:1 with client. */\n\nexport const FD = {\n gridStroke: '#afb3bb',\n gridDash: '1 2',\n axisLabelFill: '#6c7584',\n axisLabelSize: 11,\n axisStroke: '#afb3bb',\n hoverGuideLight: '#6c7584',\n hoverGuideDark: '#ffffff',\n /**\n * Qualitative12Colors.default — used when series count unknown.\n * Prefer `resolveFormattingColor` / `pickQualitativePalette` for FuseDash widgets.\n */\n series: [\n '#473DD9',\n '#938CFF',\n '#36C4A5',\n '#ADF4E5',\n '#BDBCC8',\n '#56546D',\n '#FF8C47',\n '#FFCEB0',\n '#FF4781',\n '#FFB0C9',\n '#47B0FF',\n '#B0DDFF',\n ],\n lineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n lollipopMargin: { top: 10, right: 3, bottom: 21, left: 40 },\n /** FuseDash RadarChart (useNewDesign) frame */\n radarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n radarScaleSteps: 5,\n radarDomainPadFactor: 1.1,\n radarMarkerSize: 50,\n radarMarkerHoverSize: 70,\n radarSpokeDash: '2,2',\n radarCapRadius: 3,\n radarLabelOffset: 12,\n radarGradientEdgeOpacity: 0.3,\n radarStrokeWidth: 2,\n radarTickLabelFill: '#f1f4f7',\n /** Client PunchcardChart DEFAULT_MARGIN */\n punchcardMargin: { top: 0, right: 0, bottom: 21, left: 80 },\n stepLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** SparkLineChart — same frame as StepLineChart */\n sparkLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n sparkLineStrokeWidth: 1.5,\n sparkDomainPadFactor: 1.2,\n sparkGuideDash: '5,2',\n sparkHoverDotRadius: 4,\n boxPlotMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n histogramMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** Client VerticalWaterfallChart margin */\n waterfallVerticalMargin: { top: 10, right: 0, bottom: 21, left: 40 },\n /** Client HorizontalWaterfallChart base margin (left is sized from labels) */\n waterfallHorizontalMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n waterfallBarThickness: 16,\n waterfallBarRadius: 2,\n waterfallArrow: 5,\n waterfallDomainPadFactor: 1.2,\n /** Client hard-coded fills (formatting keys are ignored for paint) */\n waterfallPositive: '#938CFF',\n waterfallNegative: '#FF8C47',\n waterfallTotal: '#BDBCC8',\n waterfallHoverDim: 0.2,\n waterfallMinBand: 32,\n /** Client VerticalViolinChart DEFAULT_MARGIN */\n violinVerticalMargin: { top: 10, right: 16, bottom: 28, left: 44 },\n /** Client HorizontalViolinChart DEFAULT_MARGIN */\n violinHorizontalMargin: { top: 10, right: 24, bottom: 28, left: 44 },\n /** Client Horizontal/Vertical BoxPlot */\n boxPlotDomainPadFactor: 1.1,\n boxPlotBorderRadius: 2,\n lineStrokeWidth: 2,\n lineStrokeAlphaPct: 80,\n /** FuseDash AreaChart linearGradient stops (new design) */\n areaGradientTopOpacity: 0.6,\n areaGradientBottomOpacity: 0.1,\n lollipopStemWidth: 3,\n lollipopStemAlphaPct: 50,\n markerRadius: 4,\n /** StepLineChart: plain stroke, no alpha / glow / markers */\n stepStrokeWidth: 1.5,\n /** StepLineChart y-domain is padded by 1.2x before `.nice()` */\n stepDomainPadFactor: 1.2,\n /** KS-plot \"Ideal\" overlay */\n stepIdealColor: '#2ecc71',\n stepIdealWidth: 3,\n /** ROC \"Random guessing\" diagonal */\n stepGuessWidth: 2,\n stepGuessDash: '5,5',\n /** Max-deviation marker (KS distance) */\n stepDeviationFill: '#2c2d33',\n /** Tooltip crosshair on the step chart */\n stepGuideDash: '5,2',\n stepHoverDotRadius: 4,\n /** Barchart — shared frame + bar geometry (all six FuseDash variants) */\n barMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n barCornerRadius: 4,\n /** Bar fill is a gradient from the series color to a faded stop */\n barFadeOpacity: 0.6,\n barFadeOpacityHovered: 0.7,\n /** Vertical single-series: bandwidth * 0.4, capped, with a visible floor */\n barBandFraction: 0.4,\n barMaxWidth: 40,\n barMinHeight: 6,\n /** Vertical grouped: floor(clamp(plotWidth / categories / series)) + 1px gap */\n barGroupMinWidth: 4,\n barGroupMaxWidth: 24,\n barGroupGap: 1,\n /** Vertical stacked: bandwidth * 0.85, same clamp as grouped */\n barStackedBandFraction: 0.85,\n /** Horizontal: fixed row thickness, gutter, and a floor for tiny values */\n barRowThickness: 24,\n barRowSpacing: 16,\n barMinWidth: 6,\n /** Y (vertical) / X (horizontal) domain headroom */\n barDomainPadFactor: 1.2,\n barHorizontalPadFactor: 1.1,\n /** Stacked totals get a flat 10% pad instead */\n barStackedPadFraction: 0.1,\n /** Cumulative overlay line (FuseDash `cumulativeLine`) */\n barCumulativeColor: '#6d6df7',\n barCumulativeWidth: 2,\n barCumulativeDotRadius: 3,\n /** Hovered category column: animated dot pattern + solid guide */\n barHoverDotFill: '#CFD2D6',\n barHoverGuideWidth: 2,\n /** Client `calculatedLeftMargin` (unused in chat — shared LEFT_GUTTER_MARGIN) */\n barLabelCharWidth: 5,\n barLabelGutter: 28,\n barLabelGutterMin: 56,\n barLabelGutterMax: 180,\n /** DonutGroupChart — a row of gauges, each with a KPI block in the hole */\n donutMargin: { top: 10, right: 8, bottom: 10, left: 8 },\n /** FuseDash uses a flat 16px band; it is capped at half the radius here */\n donutThickness: 16,\n donutMinThickness: 4,\n donutCellPadding: 6,\n donutMinCellWidth: 140,\n /** Gauges assume a 0–100 scale when the row carries no `maximalValue` */\n donutDefaultMax: 100,\n /** Resting / dimmed / hovered arc opacity (FuseDash settles on 0.8) */\n donutArcOpacity: 0.8,\n donutArcOpacityDimmed: 0.2,\n /** PieChart — FuseDash uses zero margin; pie is a square inscribed in the body */\n pieMargin: { top: 0, right: 0, bottom: 0, left: 0 },\n pieMinArcLengthPx: 5,\n /** ScatterPlot — FuseDash DEFAULT_MARGIN */\n scatterMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** AreaGroupedBarChart — client DEFAULT_MARGIN */\n areaGroupedBarMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** Area fill under the line (client stopOpacity 0.35 → 0) */\n areaGroupedBarGradientTopOpacity: 0.35,\n areaGroupedBarGradientBottomOpacity: 0,\n areaGroupedBarMarkerRadius: 3,\n areaGroupedBarDimOpacity: 0.3,\n areaGroupedBarBarOpacity: 0.85,\n /** BubbleChart — BASE_MARGIN + MAX_BUBBLE_RADIUS/2 inset on top/right */\n bubbleBaseMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n bubbleMaxRadius: 30,\n bubbleNegativeFill: '#DADAE1',\n scatterMarkerSize: 40,\n scatterReferenceLine: '#56546D',\n donutSliceStroke: '#ffffff',\n donutSliceStrokeDark: '#1a1b1f',\n donutSliceStrokeWidth: 2,\n /** Unfilled part of a gauge — the neutral background FuseDash falls back to */\n donutTrackFill: '#EAECF0',\n donutTrackFillDark: '#2C2D33',\n /** Divider between donuts (FuseDash `border-left: neutralBorderWeakest`) */\n donutDivider: '#E4E6EA',\n donutDividerDark: '#2C2D33',\n /** KPI block in the hole: 30/12/12px, sized down with the ring */\n donutValueSize: 30,\n donutValueWeight: 600,\n donutBadgeSize: 12,\n donutLabelSize: 12,\n donutStatusColors: {\n positive: { background: '#E6F6EF', text: '#067647' },\n negative: { background: '#FEE4E2', text: '#B42318' },\n neutral: { background: '#F2F4F7', text: '#475467' },\n },\n donutStatusColorsDark: {\n positive: { background: '#0C2C21', text: '#4ED8A6' },\n negative: { background: '#3B1513', text: '#F5817A' },\n neutral: { background: '#2C2D33', text: '#C3C7CE' },\n },\n /** Sankey: layout extent inset, node gap, and the two node-rule colors */\n sankeyPadding: 4.5,\n sankeyNodePadding: 14,\n sankeyNodeWidth: 70,\n sankeyNodeWidthSmall: 65,\n sankeyNodeRule: '#D3DBE3',\n sankeyNodeRuleActive: '#939BA7',\n /** Ribbons sit at 50% alpha until hovered or focused */\n sankeyLinkAlphaPct: 50,\n sankeyLinkInset: 3,\n sankeyDimOpacity: 0.5,\n} as const;\n\n/** SequentialColors1 for the `default` styleId — low → high. */\nexport const FD_SEQUENTIAL = [\n '#D6D3FF',\n '#B5B0FF',\n '#938CFF',\n '#7369FF',\n '#5448FF',\n '#473DD9',\n '#3C33B5',\n] as const;\n\nexport type MarkerShape =\n | 'donut'\n | 'circle'\n | 'square'\n | 'rhombus'\n | 'triangle'\n | 'disabled';\n\n/** Mirrors client `lightenColor` — blend hex toward white (amount 0–1). */\nexport function lightenColor(hex: string, amount: number): string {\n let clean = hex.replace('#', '');\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-Fa-f]{6}$/.test(clean)) return hex;\n const t = Math.max(0, Math.min(1, amount));\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n const lr = Math.round(r + (255 - r) * t);\n const lg = Math.round(g + (255 - g) * t);\n const lb = Math.round(b + (255 - b) * t);\n return `#${lr.toString(16).padStart(2, '0')}${lg.toString(16).padStart(2, '0')}${lb.toString(16).padStart(2, '0')}`;\n}\n\n/** Mirrors client `hexToHexWithAlpha` (opacity 0–100). */\nexport function hexWithAlpha(hex: string, opacityPct: number): string {\n let clean = hex.replace('#', '').toUpperCase();\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-F]{6}$/.test(clean)) return hex;\n const alpha = Math.round((Math.max(0, Math.min(100, opacityPct)) / 100) * 255)\n .toString(16)\n .padStart(2, '0')\n .toUpperCase();\n return `#${clean}${alpha}`;\n}\n\n/** Mirrors client `calculateScaleLinearDomain`. */\nexport function calculateScaleLinearDomain(data: number[]): [number, number] {\n if (!data.length) return [0, 1];\n let min = Infinity;\n let max = -Infinity;\n for (const v of data) {\n if (!Number.isFinite(v)) continue;\n if (v < min) min = v;\n if (v > max) max = v;\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n if (min < 0 && max > 0) {\n const absMax = Math.max(Math.abs(min), Math.abs(max));\n return [-absMax, absMax];\n }\n return [Math.min(0, min), Math.max(0, max)];\n}\n\n/** Mirrors client Y-tick formatting. */\nexport function formatCompactNumber(value: number, decimals = 2): string {\n const abs = Math.abs(value);\n if (abs >= 1_000_000_000) return `${(value / 1_000_000_000).toFixed(1)}B`;\n if (abs >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (abs >= 1_000) return `${(value / 1_000).toFixed(1)}K`;\n if (Number.isInteger(value) && abs < 1000) return String(value);\n return value.toFixed(decimals);\n}\n\nexport function seriesColor(index: number, override?: string): string {\n if (override) return override;\n return FD.series[index % FD.series.length];\n}\n\n/** Line markers: donut = hollow ring (FuseDash default). */\nexport function markerAppearance(\n shape: MarkerShape,\n color: string,\n themeMode: 'light' | 'dark' = 'light',\n): { fill: string; stroke: string } {\n const outline = themeMode === 'dark' ? '#000' : '#fff';\n if (shape === 'donut' || shape === 'disabled') {\n return { fill: outline, stroke: color };\n }\n return { fill: color, stroke: outline };\n}\n\nexport function appendGlowFilter(\n svg: Selection<SVGSVGElement, unknown, null, undefined>,\n id = 'ui9000-glow',\n): string {\n let defs = svg.select<SVGDefsElement>('defs');\n if (defs.empty()) defs = svg.append('defs');\n if (defs.select(`#${id}`).empty()) {\n const filter = defs\n .append('filter')\n .attr('id', id)\n .attr('x', '-50%')\n .attr('y', '-50%')\n .attr('width', '200%')\n .attr('height', '200%');\n filter.append('feGaussianBlur').attr('stdDeviation', 3).attr('result', 'coloredBlur');\n const merge = filter.append('feMerge');\n merge.append('feMergeNode').attr('in', 'coloredBlur');\n merge.append('feMergeNode').attr('in', 'SourceGraphic');\n }\n return `url(#${id})`;\n}\n\nexport function calculateNumTicks(height: number): number {\n if (height < 120) return 3;\n if (height < 220) return 4;\n if (height < 360) return 5;\n return 6;\n}\n\n/** Append FuseDash-style line/area marker at (cx, cy). */\nexport function appendLineMarker(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: {\n shape: MarkerShape;\n color: string;\n cx: number;\n cy: number;\n r?: number;\n themeMode?: 'light' | 'dark';\n hovered?: boolean;\n },\n): void {\n const {\n shape,\n color,\n cx,\n cy,\n r = FD.markerRadius,\n themeMode = 'light',\n hovered = false,\n } = opts;\n if (shape === 'disabled') return;\n\n const { fill, stroke } = markerAppearance(shape, color, themeMode);\n const strokeWidth = hovered ? 3 : 1;\n\n if (shape === 'square') {\n const size = 7;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n if (shape === 'rhombus') {\n const size = 9;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth)\n .attr('transform', `rotate(45, ${cx}, ${cy})`);\n return;\n }\n\n if (shape === 'triangle') {\n const s = 4;\n parent\n .append('polygon')\n .attr(\n 'points',\n `${cx},${cy - s} ${cx - s},${cy + s} ${cx + s},${cy + s}`,\n )\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n parent\n .append('circle')\n .attr('cx', cx)\n .attr('cy', cy)\n .attr('r', r)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n}\n\n/**\n * Lollipop head — FuseDash Vertical markers (default = rhombus diamond path).\n */\nexport function appendLollipopMarkerVertical(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: { shape: MarkerShape; color: string; cx: number; cy: number },\n): void {\n const { shape, color, cx, cy } = opts;\n if (shape === 'disabled') return;\n\n if (shape === 'donut') {\n parent\n .append('path')\n .attr(\n 'd',\n `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10 M ${cx}, ${cy - 2} a 2,2 0 1,1 0,4 a 2,2 0 1,1 0,-4`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n parent.append('circle').attr('cx', cx).attr('cy', cy).attr('r', 2).attr('fill', '#fff');\n return;\n }\n\n if (shape === 'circle') {\n parent\n .append('path')\n .attr('d', `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'square') {\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} L${cx + 5}, ${cy - 5} L${cx - 5}, ${cy - 5} Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'triangle') {\n parent\n .append('path')\n .attr('d', `M${cx}, ${cy - 5} L${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} Z`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n // default / rhombus\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx}, ${cy + 5} L${cx + 5}, ${cy} L${cx}, ${cy - 5} L${cx - 5}, ${cy}Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fusedash-visual.js","sources":["../../src/utils/fusedash-visual.ts"],"sourcesContent":["import type { Selection } from 'd3-selection';\n\n/** FuseDash Widgets visual tokens — keep charts looking 1:1 with client. */\n\nexport const FD = {\n gridStroke: '#afb3bb',\n gridDash: '1 2',\n axisLabelFill: '#6c7584',\n axisLabelSize: 11,\n axisStroke: '#afb3bb',\n hoverGuideLight: '#6c7584',\n hoverGuideDark: '#ffffff',\n /**\n * Qualitative12Colors.default — used when series count unknown.\n * Prefer `resolveFormattingColor` / `pickQualitativePalette` for FuseDash widgets.\n */\n series: [\n '#473DD9',\n '#938CFF',\n '#36C4A5',\n '#ADF4E5',\n '#BDBCC8',\n '#56546D',\n '#FF8C47',\n '#FFCEB0',\n '#FF4781',\n '#FFB0C9',\n '#47B0FF',\n '#B0DDFF',\n ],\n lineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n lollipopMargin: { top: 10, right: 3, bottom: 21, left: 40 },\n /** FuseDash RadarChart (useNewDesign) frame */\n radarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n radarScaleSteps: 5,\n radarDomainPadFactor: 1.1,\n radarMarkerSize: 50,\n radarMarkerHoverSize: 70,\n radarSpokeDash: '2,2',\n radarCapRadius: 3,\n radarLabelOffset: 12,\n radarGradientEdgeOpacity: 0.3,\n radarStrokeWidth: 2,\n radarTickLabelFill: '#f1f4f7',\n /** Client PunchcardChart DEFAULT_MARGIN */\n punchcardMargin: { top: 0, right: 0, bottom: 21, left: 80 },\n stepLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** SparkLineChart — same frame as StepLineChart */\n sparkLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n sparkLineStrokeWidth: 1.5,\n sparkDomainPadFactor: 1.2,\n sparkGuideDash: '5,2',\n sparkHoverDotRadius: 4,\n boxPlotMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n histogramMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** Client VerticalWaterfallChart margin */\n waterfallVerticalMargin: { top: 10, right: 0, bottom: 21, left: 40 },\n /** Client HorizontalWaterfallChart base margin (left is sized from labels) */\n waterfallHorizontalMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n waterfallBarThickness: 16,\n waterfallBarRadius: 2,\n waterfallArrow: 5,\n waterfallDomainPadFactor: 1.2,\n /** Client hard-coded fills (formatting keys are ignored for paint) */\n waterfallPositive: '#938CFF',\n waterfallNegative: '#FF8C47',\n waterfallTotal: '#BDBCC8',\n waterfallHoverDim: 0.2,\n waterfallMinBand: 32,\n /** Client VerticalViolinChart DEFAULT_MARGIN */\n violinVerticalMargin: { top: 10, right: 16, bottom: 28, left: 44 },\n /** Client HorizontalViolinChart DEFAULT_MARGIN */\n violinHorizontalMargin: { top: 10, right: 24, bottom: 28, left: 44 },\n /** Client Horizontal/Vertical BoxPlot */\n boxPlotDomainPadFactor: 1.1,\n boxPlotBorderRadius: 2,\n lineStrokeWidth: 2,\n lineStrokeAlphaPct: 80,\n /** FuseDash AreaChart linearGradient stops (new design) */\n areaGradientTopOpacity: 0.6,\n areaGradientBottomOpacity: 0.1,\n lollipopStemWidth: 3,\n lollipopStemAlphaPct: 50,\n markerRadius: 4,\n /** StepLineChart: plain stroke, no alpha / glow / markers */\n stepStrokeWidth: 1.5,\n /** StepLineChart y-domain is padded by 1.2x before `.nice()` */\n stepDomainPadFactor: 1.2,\n /** KS-plot \"Ideal\" overlay */\n stepIdealColor: '#2ecc71',\n stepIdealWidth: 3,\n /** ROC \"Random guessing\" diagonal */\n stepGuessWidth: 2,\n stepGuessDash: '5,5',\n /** Max-deviation marker (KS distance) */\n stepDeviationFill: '#2c2d33',\n /** Tooltip crosshair on the step chart */\n stepGuideDash: '5,2',\n stepHoverDotRadius: 4,\n /** Barchart — shared frame + bar geometry (all six FuseDash variants) */\n barMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n barCornerRadius: 4,\n /** Bar fill is a gradient from the series color to a faded stop */\n barFadeOpacity: 0.6,\n barFadeOpacityHovered: 0.7,\n /** Vertical single-series: bandwidth * 0.4, capped, with a visible floor */\n barBandFraction: 0.4,\n barMaxWidth: 40,\n barMinHeight: 6,\n /** Vertical grouped: floor(clamp(plotWidth / categories / series)) + 1px gap */\n barGroupMinWidth: 4,\n barGroupMaxWidth: 24,\n barGroupGap: 1,\n /** Vertical stacked: bandwidth * 0.85, same clamp as grouped */\n barStackedBandFraction: 0.85,\n /** Horizontal: fixed row thickness, gutter, and a floor for tiny values */\n barRowThickness: 24,\n barRowSpacing: 16,\n barMinWidth: 6,\n /** Y (vertical) / X (horizontal) domain headroom */\n barDomainPadFactor: 1.2,\n barHorizontalPadFactor: 1.1,\n /** Stacked totals get a flat 10% pad instead */\n barStackedPadFraction: 0.1,\n /** Cumulative overlay line (FuseDash `cumulativeLine`) */\n barCumulativeColor: '#6d6df7',\n barCumulativeWidth: 2,\n barCumulativeDotRadius: 3,\n /** Hovered category column: animated dot pattern + solid guide */\n barHoverDotFill: '#CFD2D6',\n barHoverGuideWidth: 2,\n /** Client `calculatedLeftMargin` (unused in chat — shared LEFT_GUTTER_MARGIN) */\n barLabelCharWidth: 5,\n barLabelGutter: 28,\n barLabelGutterMin: 56,\n barLabelGutterMax: 180,\n /** DonutGroupChart — a row of gauges, each with a KPI block in the hole */\n donutMargin: { top: 10, right: 8, bottom: 10, left: 8 },\n /** FuseDash uses a flat 16px band; it is capped at half the radius here */\n donutThickness: 16,\n donutMinThickness: 4,\n donutCellPadding: 6,\n donutMinCellWidth: 140,\n /** Gauges assume a 0–100 scale when the row carries no `maximalValue` */\n donutDefaultMax: 100,\n /** Resting / dimmed / hovered arc opacity (FuseDash settles on 0.8) */\n donutArcOpacity: 0.8,\n donutArcOpacityDimmed: 0.2,\n /** PieChart — FuseDash uses zero margin; pie is a square inscribed in the body */\n pieMargin: { top: 0, right: 0, bottom: 0, left: 0 },\n pieMinArcLengthPx: 5,\n /** PolarAreaChart — FuseDash margin around the centred disc */\n polarAreaMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n /** Concentric grid rings; opacity ramps 0.2 → 1.0 outward */\n polarRadialSteps: 5,\n polarGridStroke: '#939ba7',\n polarGridStepOpacity: 0.2,\n /** Dashed spoke from the centre to each category boundary, with a round cap */\n polarSpokeDash: '2,2',\n polarSpokeCapRadius: 3,\n /** Category labels sit just outside the outermost ring */\n polarCategoryLabelFill: '#5f6877',\n polarCategoryLabelSize: 12,\n polarCategoryLabelOffset: 12,\n /** Side room reserved for those labels, measured off the longest one */\n polarLabelCharWidth: 0.55,\n polarLabelGutterMin: 40,\n polarLabelGutterMax: 120,\n polarLabelGutterMaxFraction: 0.28,\n /** Below this radius the label ring collides with itself — drop it */\n polarMinLabelRadius: 40,\n /** Sectors: 0.8 at rest, siblings drop to 0.2 on hover */\n polarSectorOpacity: 0.8,\n polarSectorOpacityDimmed: 0.2,\n /** Radial tick pills are hidden when the disc is too short to fit them */\n polarTickPillRowHeight: 21,\n polarTickPillPadX: 7,\n polarTickPillPadY: 3,\n polarTickPillRadius: 4,\n polarTickPill: '#ffffff',\n polarTickPillDark: '#1a1b1f',\n /** RadialBarChart — client margin; the plot is a circle inscribed in the body */\n radialBarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n /** Hole is 20% of the outer radius; rings sweep 270° clockwise from 12 o'clock */\n radialBarInnerRadiusRatio: 0.2,\n radialBarSweepDeg: 270,\n radialBarTicks: 5,\n /** Ring thickness clamp around `((outer - inner - rings) / rings) * 0.5` */\n radialBarMinArcWidth: 4,\n radialBarMaxArcWidth: 24,\n radialBarArcCornerRadius: 1,\n /** Resting / dimmed arc opacity */\n radialBarArcOpacity: 0.8,\n radialBarArcOpacityDimmed: 0.2,\n /** Client draws the rings and the radial axes in one darker grey */\n radialBarGridStroke: '#939ba7',\n radialBarTickDash: '4,4',\n radialBarLabelFill: '#5f6877',\n radialBarTickLabelSize: 12,\n radialBarRingLabelSize: 11,\n /** Value labels sit 12px outside the outer ring */\n radialBarTickLabelOffset: 12,\n /** Ring labels are cut at `(outer - inner) / 8` characters */\n radialBarLabelCharWidth: 8,\n /** ScatterPlot — FuseDash DEFAULT_MARGIN */\n scatterMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** AreaGroupedBarChart — client DEFAULT_MARGIN */\n areaGroupedBarMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** Area fill under the line (client stopOpacity 0.35 → 0) */\n areaGroupedBarGradientTopOpacity: 0.35,\n areaGroupedBarGradientBottomOpacity: 0,\n areaGroupedBarMarkerRadius: 3,\n areaGroupedBarDimOpacity: 0.3,\n areaGroupedBarBarOpacity: 0.85,\n /** BubbleChart — BASE_MARGIN + MAX_BUBBLE_RADIUS/2 inset on top/right */\n bubbleBaseMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n bubbleMaxRadius: 30,\n bubbleNegativeFill: '#DADAE1',\n scatterMarkerSize: 40,\n scatterReferenceLine: '#56546D',\n /** BiasVarianceTradeoffChart — the client widget carries its own frame/palette */\n biasVarianceMargin: { top: 24, right: 24, bottom: 36, left: 48 },\n biasVarianceSeries: ['#6366f1', '#22c55e', '#f59e0b', '#06b6d4', '#ef4444'],\n biasVarianceGridStroke: '#d1d5db',\n biasVarianceGridDash: '2,4',\n biasVarianceAxisStroke: '#9ca3af',\n biasVarianceLabelFill: '#6b7280',\n biasVarianceLineWidth: 2,\n biasVarianceLineOpacity: 0.95,\n /** Sibling curves fade while one is hovered (FuseDash line-hover convention) */\n biasVarianceLineOpacityDimmed: 0.2,\n /** Y domain is `[0, max * 1.1]` before `.nice()` */\n biasVarianceDomainPadFactor: 1.1,\n biasVarianceXTicks: 8,\n biasVarianceYTicks: 6,\n /** Shared `DomainsLimits` overlay (reference lines / bands) */\n domainLimitColor: '#6C8CF5',\n domainLimitFillOpacity: 0.12,\n domainLimitDash: '4,4',\n domainLimitArrow: 8,\n domainLimitLabelFill: '#141c2ce6',\n domainLimitLabelText: '#ffffff',\n domainLimitLabelSize: 10,\n donutSliceStroke: '#ffffff',\n donutSliceStrokeDark: '#1a1b1f',\n donutSliceStrokeWidth: 2,\n /** Unfilled part of a gauge — the neutral background FuseDash falls back to */\n donutTrackFill: '#EAECF0',\n donutTrackFillDark: '#2C2D33',\n /** Divider between donuts (FuseDash `border-left: neutralBorderWeakest`) */\n donutDivider: '#E4E6EA',\n donutDividerDark: '#2C2D33',\n /** KPI block in the hole: 30/12/12px, sized down with the ring */\n donutValueSize: 30,\n donutValueWeight: 600,\n donutBadgeSize: 12,\n donutLabelSize: 12,\n donutStatusColors: {\n positive: { background: '#E6F6EF', text: '#067647' },\n negative: { background: '#FEE4E2', text: '#B42318' },\n neutral: { background: '#F2F4F7', text: '#475467' },\n },\n donutStatusColorsDark: {\n positive: { background: '#0C2C21', text: '#4ED8A6' },\n negative: { background: '#3B1513', text: '#F5817A' },\n neutral: { background: '#2C2D33', text: '#C3C7CE' },\n },\n /** Sankey: layout extent inset, node gap, and the two node-rule colors */\n sankeyPadding: 4.5,\n sankeyNodePadding: 14,\n sankeyNodeWidth: 70,\n sankeyNodeWidthSmall: 65,\n sankeyNodeRule: '#D3DBE3',\n sankeyNodeRuleActive: '#939BA7',\n /** Ribbons sit at 50% alpha until hovered or focused */\n sankeyLinkAlphaPct: 50,\n sankeyLinkInset: 3,\n sankeyDimOpacity: 0.5,\n /** ParallelCoordinates — client Horizontal/Vertical frames */\n parallelMargin: { top: 10, right: 1, bottom: 8, left: 1 },\n parallelVerticalMargin: { top: 10, right: 1, bottom: 1, left: 1 },\n /** Horizontal: one 72px band per dimension, so the plot scrolls past ~5 axes */\n parallelAxisSpacing: 72,\n /** Vertical: gutter kept free under the axes for the bottom tick row */\n parallelColorScaleHeight: 44,\n /** Right gutter reserved for the colour ramp + its tick labels */\n parallelLegendOffsetRight: 20,\n parallelLegendWidth: 10,\n parallelLegendTickLabelWidth: 44,\n parallelLegendRadius: 6,\n /** Resting / dimmed / hovered polyline stroke */\n parallelLineWidth: 1,\n parallelLineWidthHovered: 5,\n parallelLineOpacity: 0.4,\n parallelLineOpacityDimmed: 0.05,\n /** Client draws these axes a shade darker than the shared FD axis tokens */\n parallelAxisStroke: '#939ba7',\n parallelAxisLabelFill: '#5f6877',\n parallelTitleSize: 11,\n parallelTitleSizeActive: 13,\n /** GiniImpurityEntropyChart — client DEFAULT_MARGIN */\n giniMargin: { top: 20, right: 24, bottom: 28, left: 44 },\n /** Curves are drawn as smooth Catmull-Rom splines with this tension */\n giniCurveAlpha: 0.5,\n /** p-hat guide + confidence-interval band */\n giniOverlayColor: '#4c6ef5',\n giniOverlayBandOpacity: 0.08,\n giniOverlayDash: '5,5',\n /** Split annotation markers on the Gini curve */\n giniSplitMarkerFill: '#12b886',\n giniSplitMarkerStroke: '#ffffff',\n giniSplitMarkerRadius: 4,\n giniSplitLabelOffset: 8,\n /** Hovering one curve fades the others so the read is unambiguous */\n giniCurveDimOpacity: 0.2,\n} as const;\n\n/** SequentialColors1 for the `default` styleId — low → high. */\nexport const FD_SEQUENTIAL = [\n '#D6D3FF',\n '#B5B0FF',\n '#938CFF',\n '#7369FF',\n '#5448FF',\n '#473DD9',\n '#3C33B5',\n] as const;\n\nexport type MarkerShape =\n | 'donut'\n | 'circle'\n | 'square'\n | 'rhombus'\n | 'triangle'\n | 'disabled';\n\n/** Mirrors client `lightenColor` — blend hex toward white (amount 0–1). */\nexport function lightenColor(hex: string, amount: number): string {\n let clean = hex.replace('#', '');\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-Fa-f]{6}$/.test(clean)) return hex;\n const t = Math.max(0, Math.min(1, amount));\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n const lr = Math.round(r + (255 - r) * t);\n const lg = Math.round(g + (255 - g) * t);\n const lb = Math.round(b + (255 - b) * t);\n return `#${lr.toString(16).padStart(2, '0')}${lg.toString(16).padStart(2, '0')}${lb.toString(16).padStart(2, '0')}`;\n}\n\n/** Mirrors client `hexToHexWithAlpha` (opacity 0–100). */\nexport function hexWithAlpha(hex: string, opacityPct: number): string {\n let clean = hex.replace('#', '').toUpperCase();\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-F]{6}$/.test(clean)) return hex;\n const alpha = Math.round((Math.max(0, Math.min(100, opacityPct)) / 100) * 255)\n .toString(16)\n .padStart(2, '0')\n .toUpperCase();\n return `#${clean}${alpha}`;\n}\n\n/** Mirrors client `calculateScaleLinearDomain`. */\nexport function calculateScaleLinearDomain(data: number[]): [number, number] {\n if (!data.length) return [0, 1];\n let min = Infinity;\n let max = -Infinity;\n for (const v of data) {\n if (!Number.isFinite(v)) continue;\n if (v < min) min = v;\n if (v > max) max = v;\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n if (min < 0 && max > 0) {\n const absMax = Math.max(Math.abs(min), Math.abs(max));\n return [-absMax, absMax];\n }\n return [Math.min(0, min), Math.max(0, max)];\n}\n\n/** Mirrors client Y-tick formatting. */\nexport function formatCompactNumber(value: number, decimals = 2): string {\n const abs = Math.abs(value);\n if (abs >= 1_000_000_000) return `${(value / 1_000_000_000).toFixed(1)}B`;\n if (abs >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (abs >= 1_000) return `${(value / 1_000).toFixed(1)}K`;\n if (Number.isInteger(value) && abs < 1000) return String(value);\n return value.toFixed(decimals);\n}\n\nexport function seriesColor(index: number, override?: string): string {\n if (override) return override;\n return FD.series[index % FD.series.length];\n}\n\n/** Line markers: donut = hollow ring (FuseDash default). */\nexport function markerAppearance(\n shape: MarkerShape,\n color: string,\n themeMode: 'light' | 'dark' = 'light',\n): { fill: string; stroke: string } {\n const outline = themeMode === 'dark' ? '#000' : '#fff';\n if (shape === 'donut' || shape === 'disabled') {\n return { fill: outline, stroke: color };\n }\n return { fill: color, stroke: outline };\n}\n\nexport function appendGlowFilter(\n svg: Selection<SVGSVGElement, unknown, null, undefined>,\n id = 'ui9000-glow',\n): string {\n let defs = svg.select<SVGDefsElement>('defs');\n if (defs.empty()) defs = svg.append('defs');\n if (defs.select(`#${id}`).empty()) {\n const filter = defs\n .append('filter')\n .attr('id', id)\n .attr('x', '-50%')\n .attr('y', '-50%')\n .attr('width', '200%')\n .attr('height', '200%');\n filter.append('feGaussianBlur').attr('stdDeviation', 3).attr('result', 'coloredBlur');\n const merge = filter.append('feMerge');\n merge.append('feMergeNode').attr('in', 'coloredBlur');\n merge.append('feMergeNode').attr('in', 'SourceGraphic');\n }\n return `url(#${id})`;\n}\n\nexport function calculateNumTicks(height: number): number {\n if (height < 120) return 3;\n if (height < 220) return 4;\n if (height < 360) return 5;\n return 6;\n}\n\n/** Append FuseDash-style line/area marker at (cx, cy). */\nexport function appendLineMarker(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: {\n shape: MarkerShape;\n color: string;\n cx: number;\n cy: number;\n r?: number;\n themeMode?: 'light' | 'dark';\n hovered?: boolean;\n },\n): void {\n const {\n shape,\n color,\n cx,\n cy,\n r = FD.markerRadius,\n themeMode = 'light',\n hovered = false,\n } = opts;\n if (shape === 'disabled') return;\n\n const { fill, stroke } = markerAppearance(shape, color, themeMode);\n const strokeWidth = hovered ? 3 : 1;\n\n if (shape === 'square') {\n const size = 7;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n if (shape === 'rhombus') {\n const size = 9;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth)\n .attr('transform', `rotate(45, ${cx}, ${cy})`);\n return;\n }\n\n if (shape === 'triangle') {\n const s = 4;\n parent\n .append('polygon')\n .attr(\n 'points',\n `${cx},${cy - s} ${cx - s},${cy + s} ${cx + s},${cy + s}`,\n )\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n parent\n .append('circle')\n .attr('cx', cx)\n .attr('cy', cy)\n .attr('r', r)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n}\n\n/**\n * Lollipop head — FuseDash Vertical markers (default = rhombus diamond path).\n */\nexport function appendLollipopMarkerVertical(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: { shape: MarkerShape; color: string; cx: number; cy: number },\n): void {\n const { shape, color, cx, cy } = opts;\n if (shape === 'disabled') return;\n\n if (shape === 'donut') {\n parent\n .append('path')\n .attr(\n 'd',\n `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10 M ${cx}, ${cy - 2} a 2,2 0 1,1 0,4 a 2,2 0 1,1 0,-4`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n parent.append('circle').attr('cx', cx).attr('cy', cy).attr('r', 2).attr('fill', '#fff');\n return;\n }\n\n if (shape === 'circle') {\n parent\n .append('path')\n .attr('d', `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'square') {\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} L${cx + 5}, ${cy - 5} L${cx - 5}, ${cy - 5} Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'triangle') {\n parent\n .append('path')\n .attr('d', `M${cx}, ${cy - 5} L${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} Z`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n // default / rhombus\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx}, ${cy + 5} L${cx + 5}, ${cy} L${cx}, ${cy - 5} L${cx - 5}, ${cy}Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusedashlabs/widgets",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Props-only chart web components for UI9000 / FuseDash MCP resources",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -96,6 +96,10 @@
96
96
  "types": "./dist/components/sankey-chart/index.d.ts",
97
97
  "import": "./dist/components/sankey-chart/index.js"
98
98
  },
99
+ "./parallel-coordinates-chart": {
100
+ "types": "./dist/components/parallel-coordinates-chart/index.d.ts",
101
+ "import": "./dist/components/parallel-coordinates-chart/index.js"
102
+ },
99
103
  "./pie-chart": {
100
104
  "types": "./dist/components/pie-chart/index.d.ts",
101
105
  "import": "./dist/components/pie-chart/index.js"
@@ -104,10 +108,18 @@
104
108
  "types": "./dist/components/donut-chart/index.d.ts",
105
109
  "import": "./dist/components/donut-chart/index.js"
106
110
  },
111
+ "./polar-area-chart": {
112
+ "types": "./dist/components/polar-area-chart/index.d.ts",
113
+ "import": "./dist/components/polar-area-chart/index.js"
114
+ },
107
115
  "./scatter-plot-chart": {
108
116
  "types": "./dist/components/scatter-plot-chart/index.d.ts",
109
117
  "import": "./dist/components/scatter-plot-chart/index.js"
110
118
  },
119
+ "./bias-variance-tradeoff-chart": {
120
+ "types": "./dist/components/bias-variance-tradeoff-chart/index.d.ts",
121
+ "import": "./dist/components/bias-variance-tradeoff-chart/index.js"
122
+ },
111
123
  "./bubble-chart": {
112
124
  "types": "./dist/components/bubble-chart/index.d.ts",
113
125
  "import": "./dist/components/bubble-chart/index.js"
@@ -116,10 +128,22 @@
116
128
  "types": "./dist/components/radar-chart/index.d.ts",
117
129
  "import": "./dist/components/radar-chart/index.js"
118
130
  },
131
+ "./radial-bar-chart": {
132
+ "types": "./dist/components/radial-bar-chart/index.d.ts",
133
+ "import": "./dist/components/radial-bar-chart/index.js"
134
+ },
119
135
  "./kpi-widget": {
120
136
  "types": "./dist/components/kpi-widget/index.d.ts",
121
137
  "import": "./dist/components/kpi-widget/index.js"
122
138
  },
139
+ "./network-graph": {
140
+ "types": "./dist/components/network-graph/index.d.ts",
141
+ "import": "./dist/components/network-graph/index.js"
142
+ },
143
+ "./gini-impurity-entropy-chart": {
144
+ "types": "./dist/components/gini-impurity-entropy-chart/index.d.ts",
145
+ "import": "./dist/components/gini-impurity-entropy-chart/index.js"
146
+ },
123
147
  "./lazy": {
124
148
  "types": "./dist/lazy/index.d.ts",
125
149
  "import": "./dist/lazy/index.js"
@@ -192,6 +216,10 @@
192
216
  "types": "./dist/lazy/sankey-chart.d.ts",
193
217
  "import": "./dist/lazy/sankey-chart.js"
194
218
  },
219
+ "./lazy/parallel-coordinates-chart": {
220
+ "types": "./dist/lazy/parallel-coordinates-chart.d.ts",
221
+ "import": "./dist/lazy/parallel-coordinates-chart.js"
222
+ },
195
223
  "./lazy/pie-chart": {
196
224
  "types": "./dist/lazy/pie-chart.d.ts",
197
225
  "import": "./dist/lazy/pie-chart.js"
@@ -200,10 +228,18 @@
200
228
  "types": "./dist/lazy/donut-chart.d.ts",
201
229
  "import": "./dist/lazy/donut-chart.js"
202
230
  },
231
+ "./lazy/polar-area-chart": {
232
+ "types": "./dist/lazy/polar-area-chart.d.ts",
233
+ "import": "./dist/lazy/polar-area-chart.js"
234
+ },
203
235
  "./lazy/scatter-plot-chart": {
204
236
  "types": "./dist/lazy/scatter-plot-chart.d.ts",
205
237
  "import": "./dist/lazy/scatter-plot-chart.js"
206
238
  },
239
+ "./lazy/bias-variance-tradeoff-chart": {
240
+ "types": "./dist/lazy/bias-variance-tradeoff-chart.d.ts",
241
+ "import": "./dist/lazy/bias-variance-tradeoff-chart.js"
242
+ },
207
243
  "./lazy/bubble-chart": {
208
244
  "types": "./dist/lazy/bubble-chart.d.ts",
209
245
  "import": "./dist/lazy/bubble-chart.js"
@@ -212,15 +248,28 @@
212
248
  "types": "./dist/lazy/radar-chart.d.ts",
213
249
  "import": "./dist/lazy/radar-chart.js"
214
250
  },
251
+ "./lazy/radial-bar-chart": {
252
+ "types": "./dist/lazy/radial-bar-chart.d.ts",
253
+ "import": "./dist/lazy/radial-bar-chart.js"
254
+ },
215
255
  "./lazy/kpi-widget": {
216
256
  "types": "./dist/lazy/kpi-widget.d.ts",
217
257
  "import": "./dist/lazy/kpi-widget.js"
258
+ },
259
+ "./lazy/network-graph": {
260
+ "types": "./dist/lazy/network-graph.d.ts",
261
+ "import": "./dist/lazy/network-graph.js"
262
+ },
263
+ "./lazy/gini-impurity-entropy-chart": {
264
+ "types": "./dist/lazy/gini-impurity-entropy-chart.d.ts",
265
+ "import": "./dist/lazy/gini-impurity-entropy-chart.js"
218
266
  }
219
267
  },
268
+ "packageManager": "yarn@4.5.0",
220
269
  "scripts": {
221
270
  "dev": "vite --config playground/vite.config.ts",
222
- "build": "tsc --noEmit && vite build && npm run bundle-size",
223
- "prepublishOnly": "npm run typecheck && npm test && npm run build && npm run license-check",
271
+ "build": "tsc --noEmit && vite build && yarn bundle-size",
272
+ "prepublishOnly": "yarn typecheck && yarn test && yarn build && yarn license-check",
224
273
  "build:playground": "vite build --config playground/vite.config.ts",
225
274
  "preview": "vite preview --config playground/vite.config.ts",
226
275
  "storybook": "storybook dev -p 6006",
@@ -235,10 +284,13 @@
235
284
  "dependencies": {
236
285
  "d3": "^7.9.0",
237
286
  "d3-axis": "^3.0.0",
287
+ "d3-drag": "^3.0.0",
288
+ "d3-force": "^3.0.0",
238
289
  "d3-sankey": "^0.12.3",
239
290
  "d3-scale": "^4.0.2",
240
291
  "d3-selection": "^3.0.0",
241
292
  "d3-shape": "^3.2.0",
293
+ "d3-zoom": "^3.0.0",
242
294
  "lit": "^3.2.1"
243
295
  },
244
296
  "devDependencies": {
@@ -275,4 +327,4 @@
275
327
  "charts",
276
328
  "d3"
277
329
  ]
278
- }
330
+ }
@@ -1,28 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2017 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
- const t = { ATTRIBUTE: 1 }, e = (t2) => (...e2) => ({ _$litDirective$: t2, values: e2 });
7
- class i {
8
- constructor(t2) {
9
- }
10
- get _$AU() {
11
- return this._$AM._$AU;
12
- }
13
- _$AT(t2, e2, i2) {
14
- this._$Ct = t2, this._$AM = e2, this._$Ci = i2;
15
- }
16
- _$AS(t2, e2) {
17
- return this.update(t2, e2);
18
- }
19
- update(t2, e2) {
20
- return this.render(...e2);
21
- }
22
- }
23
- export {
24
- i as Directive,
25
- t as PartType,
26
- e as directive
27
- };
28
- //# sourceMappingURL=directive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"directive.js","sources":["../../../../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n"],"names":["t","e","i"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAKK,MAAC,IAAE,EAAC,WAAU,EAA0D,GAAE,IAAE,CAAAA,OAAG,IAAIC,QAAK,EAAC,iBAAgBD,IAAE,QAAOC,GAAC;AAAG,MAAM,EAAC;AAAA,EAAC,YAAYD,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,IAAEC,IAAEC,IAAE;AAAC,SAAK,OAAKF,IAAE,KAAK,OAAKC,IAAE,KAAK,OAAKC;AAAA,EAAC;AAAA,EAAC,KAAKF,IAAEC,IAAE;AAAC,WAAO,KAAK,OAAOD,IAAEC,EAAC;AAAA,EAAC;AAAA,EAAC,OAAOD,IAAEC,IAAE;AAAC,WAAO,KAAK,OAAO,GAAGA,EAAC;AAAA,EAAC;AAAC;","x_google_ignoreList":[0]}
@@ -1,37 +0,0 @@
1
- import { noChange as E } from "../lit-html.js";
2
- import { directive as e, Directive as i$1, PartType as t } from "../directive.js";
3
- /**
4
- * @license
5
- * Copyright 2018 Google LLC
6
- * SPDX-License-Identifier: BSD-3-Clause
7
- */
8
- const n = "important", i = " !" + n, o = e(class extends i$1 {
9
- constructor(t$1) {
10
- var _a;
11
- if (super(t$1), t$1.type !== t.ATTRIBUTE || "style" !== t$1.name || ((_a = t$1.strings) == null ? void 0 : _a.length) > 2) throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.");
12
- }
13
- render(t2) {
14
- return Object.keys(t2).reduce((e2, r) => {
15
- const s = t2[r];
16
- return null == s ? e2 : e2 + `${r = r.includes("-") ? r : r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, "-$&").toLowerCase()}:${s};`;
17
- }, "");
18
- }
19
- update(e2, [r]) {
20
- const { style: s } = e2.element;
21
- if (void 0 === this.ft) return this.ft = new Set(Object.keys(r)), this.render(r);
22
- for (const t2 of this.ft) null == r[t2] && (this.ft.delete(t2), t2.includes("-") ? s.removeProperty(t2) : s[t2] = null);
23
- for (const t2 in r) {
24
- const e3 = r[t2];
25
- if (null != e3) {
26
- this.ft.add(t2);
27
- const r2 = "string" == typeof e3 && e3.endsWith(i);
28
- t2.includes("-") || r2 ? s.setProperty(t2, r2 ? e3.slice(0, -11) : e3, r2 ? n : "") : s[t2] = e3;
29
- }
30
- }
31
- return E;
32
- }
33
- });
34
- export {
35
- o as styleMap
36
- };
37
- //# sourceMappingURL=style-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"style-map.js","sources":["../../../../../../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js"],"sourcesContent":["import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n"],"names":["r","t","s","e"],"mappings":";;AACA;AAAA;AAAA;AAAA;AAAA;AAIQ,MAAC,IAAE,aAAY,IAAE,OAAK,GAAE,IAAE,EAAE,cAAcA,IAAC;AAAA,EAAC,YAAYC,KAAE;;AAAC,QAAG,MAAMA,GAAC,GAAEA,IAAE,SAAOC,EAAE,aAAW,YAAUD,IAAE,UAAMA,SAAE,YAAFA,mBAAW,UAAO,EAAE,OAAM,MAAM,4GAA4G;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE;AAAC,WAAO,OAAO,KAAKA,EAAC,EAAE,OAAO,CAACE,IAAE,MAAI;AAAC,YAAM,IAAEF,GAAE,CAAC;AAAE,aAAO,QAAM,IAAEE,KAAEA,KAAE,GAAG,IAAE,EAAE,SAAS,GAAG,IAAE,IAAE,EAAE,QAAQ,qCAAoC,KAAK,EAAE,YAAW,CAAE,IAAI,CAAC;AAAA,IAAG,GAAE,EAAE;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE,CAAC,CAAC,GAAE;AAAC,UAAK,EAAC,OAAM,EAAC,IAAEA,GAAE;AAAQ,QAAG,WAAS,KAAK,GAAG,QAAO,KAAK,KAAG,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,GAAE,KAAK,OAAO,CAAC;AAAE,eAAUF,MAAK,KAAK,GAAG,SAAM,EAAEA,EAAC,MAAI,KAAK,GAAG,OAAOA,EAAC,GAAEA,GAAE,SAAS,GAAG,IAAE,EAAE,eAAeA,EAAC,IAAE,EAAEA,EAAC,IAAE;AAAM,eAAUA,MAAK,GAAE;AAAC,YAAME,KAAE,EAAEF,EAAC;AAAE,UAAG,QAAME,IAAE;AAAC,aAAK,GAAG,IAAIF,EAAC;AAAE,cAAMD,KAAE,YAAU,OAAOG,MAAGA,GAAE,SAAS,CAAC;AAAE,QAAAF,GAAE,SAAS,GAAG,KAAGD,KAAE,EAAE,YAAYC,IAAED,KAAEG,GAAE,MAAM,GAAE,GAAG,IAAEA,IAAEH,KAAE,IAAE,EAAE,IAAE,EAAEC,EAAC,IAAEE;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOF;AAAAA,EAAC;AAAC,CAAC;","x_google_ignoreList":[0]}