layerchart 2.0.0-next.5 → 2.0.0-next.50

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 (682) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bench/ComposableLineChart.svelte +56 -0
  3. package/dist/bench/ComposableLineChart.svelte.d.ts +16 -0
  4. package/dist/bench/GeoBench.svelte +31 -0
  5. package/dist/bench/GeoBench.svelte.d.ts +11 -0
  6. package/dist/bench/PrimitiveBench.svelte +66 -0
  7. package/dist/bench/PrimitiveBench.svelte.d.ts +10 -0
  8. package/dist/bench/composable-vs-linechart.svelte.bench.d.ts +1 -0
  9. package/dist/bench/composable-vs-linechart.svelte.bench.js +100 -0
  10. package/dist/bench/generateData.d.ts +29 -0
  11. package/dist/bench/generateData.js +93 -0
  12. package/dist/bench/primitives.svelte.bench.d.ts +1 -0
  13. package/dist/bench/primitives.svelte.bench.js +42 -0
  14. package/dist/bench/svg-vs-canvas.svelte.bench.d.ts +1 -0
  15. package/dist/bench/svg-vs-canvas.svelte.bench.js +431 -0
  16. package/dist/components/AnnotationLine.svelte +16 -3
  17. package/dist/components/AnnotationPoint.svelte +30 -12
  18. package/dist/components/AnnotationRange.svelte +32 -17
  19. package/dist/components/Arc.svelte +25 -25
  20. package/dist/components/Arc.svelte.d.ts +5 -6
  21. package/dist/components/Arc.svelte.test.d.ts +1 -0
  22. package/dist/components/Arc.svelte.test.js +858 -0
  23. package/dist/components/Area.svelte +95 -100
  24. package/dist/components/Area.svelte.d.ts +7 -3
  25. package/dist/components/Axis.svelte +219 -58
  26. package/dist/components/Axis.svelte.d.ts +24 -6
  27. package/dist/components/Bar.svelte +178 -31
  28. package/dist/components/Bar.svelte.d.ts +22 -2
  29. package/dist/components/Bars.svelte +33 -7
  30. package/dist/components/Bars.svelte.d.ts +9 -1
  31. package/dist/components/Blur.svelte +10 -9
  32. package/dist/components/Blur.svelte.d.ts +2 -5
  33. package/dist/components/Bounds.svelte +1 -1
  34. package/dist/components/BoxPlot.svelte +397 -0
  35. package/dist/components/BoxPlot.svelte.d.ts +40 -0
  36. package/dist/components/BrushContext.svelte +149 -329
  37. package/dist/components/BrushContext.svelte.d.ts +17 -45
  38. package/dist/components/BrushContext.svelte.test.d.ts +1 -0
  39. package/dist/components/BrushContext.svelte.test.js +301 -0
  40. package/dist/components/Calendar.svelte +45 -20
  41. package/dist/components/Calendar.svelte.d.ts +4 -4
  42. package/dist/components/Cell.svelte +59 -0
  43. package/dist/components/Cell.svelte.d.ts +25 -0
  44. package/dist/components/Chart.svelte +505 -768
  45. package/dist/components/Chart.svelte.d.ts +127 -101
  46. package/dist/components/ChartChildren.svelte +290 -0
  47. package/dist/components/ChartChildren.svelte.d.ts +147 -0
  48. package/dist/components/ChartClipPath.svelte +2 -2
  49. package/dist/components/Chord.svelte +114 -0
  50. package/dist/components/Chord.svelte.d.ts +53 -0
  51. package/dist/components/Circle.svelte +309 -54
  52. package/dist/components/Circle.svelte.d.ts +34 -9
  53. package/dist/components/Circle.svelte.test.d.ts +1 -0
  54. package/dist/components/Circle.svelte.test.js +141 -0
  55. package/dist/components/CircleClipPath.svelte +18 -2
  56. package/dist/components/ClipPath.svelte +36 -6
  57. package/dist/components/ClipPath.svelte.d.ts +10 -0
  58. package/dist/components/ColorRamp.svelte +1 -1
  59. package/dist/components/ComputedStyles.svelte +9 -2
  60. package/dist/components/Connector.svelte +7 -7
  61. package/dist/components/Connector.svelte.d.ts +4 -4
  62. package/dist/components/Contour.svelte +301 -0
  63. package/dist/components/Contour.svelte.d.ts +48 -0
  64. package/dist/components/Dagre.svelte +5 -0
  65. package/dist/components/Density.svelte +146 -0
  66. package/dist/components/Density.svelte.d.ts +21 -0
  67. package/dist/components/Ellipse.svelte +445 -0
  68. package/dist/components/Ellipse.svelte.d.ts +89 -0
  69. package/dist/components/Ellipse.svelte.test.d.ts +1 -0
  70. package/dist/components/Ellipse.svelte.test.js +126 -0
  71. package/dist/components/ForceSimulation.svelte +184 -50
  72. package/dist/components/ForceSimulation.svelte.d.ts +95 -21
  73. package/dist/components/Frame.svelte +2 -2
  74. package/dist/components/GeoCircle.svelte +1 -1
  75. package/dist/components/GeoEdgeFade.svelte +4 -5
  76. package/dist/components/GeoPath.svelte +62 -98
  77. package/dist/components/GeoPath.svelte.d.ts +6 -6
  78. package/dist/components/GeoPoint.svelte +22 -13
  79. package/dist/components/GeoProjection.svelte +30 -0
  80. package/dist/components/GeoProjection.svelte.d.ts +8 -0
  81. package/dist/components/GeoSpline.svelte +26 -30
  82. package/dist/components/GeoSpline.svelte.d.ts +3 -3
  83. package/dist/components/GeoTile.svelte +12 -13
  84. package/dist/components/GeoVisible.svelte +3 -3
  85. package/dist/components/Graticule.svelte +9 -12
  86. package/dist/components/Graticule.svelte.d.ts +2 -1
  87. package/dist/components/Grid.svelte +64 -64
  88. package/dist/components/Group.svelte +182 -65
  89. package/dist/components/Group.svelte.d.ts +34 -9
  90. package/dist/components/Group.svelte.test.d.ts +1 -0
  91. package/dist/components/Group.svelte.test.js +63 -0
  92. package/dist/components/Highlight.svelte +384 -159
  93. package/dist/components/Highlight.svelte.d.ts +12 -0
  94. package/dist/components/Hull.svelte +21 -11
  95. package/dist/components/Image.svelte +546 -0
  96. package/dist/components/Image.svelte.d.ts +127 -0
  97. package/dist/components/Image.svelte.test.d.ts +1 -0
  98. package/dist/components/Image.svelte.test.js +220 -0
  99. package/dist/components/Labels.svelte +105 -25
  100. package/dist/components/Labels.svelte.d.ts +19 -7
  101. package/dist/components/Legend.svelte +237 -81
  102. package/dist/components/Legend.svelte.d.ts +23 -12
  103. package/dist/components/Line.svelte +324 -67
  104. package/dist/components/Line.svelte.d.ts +39 -14
  105. package/dist/components/Line.svelte.test.d.ts +1 -0
  106. package/dist/components/Line.svelte.test.js +121 -0
  107. package/dist/components/LinearGradient.svelte +43 -13
  108. package/dist/components/Link.svelte +1 -1
  109. package/dist/components/Marker.svelte +43 -27
  110. package/dist/components/Marker.svelte.d.ts +1 -1
  111. package/dist/components/Month.svelte +273 -0
  112. package/dist/components/Month.svelte.d.ts +70 -0
  113. package/dist/components/MonthPath.svelte +32 -18
  114. package/dist/components/MonthPath.svelte.d.ts +8 -3
  115. package/dist/components/MotionPath.svelte +1 -1
  116. package/dist/components/Pack.svelte +4 -6
  117. package/dist/components/Pack.svelte.d.ts +12 -7
  118. package/dist/components/Partition.svelte +4 -3
  119. package/dist/components/Partition.svelte.d.ts +12 -4
  120. package/dist/components/Path.svelte +361 -0
  121. package/dist/components/Path.svelte.d.ts +72 -0
  122. package/dist/components/Pattern.svelte +15 -14
  123. package/dist/components/Pie.svelte +6 -8
  124. package/dist/components/Pie.svelte.d.ts +2 -3
  125. package/dist/components/Point.svelte +1 -1
  126. package/dist/components/Points.svelte +76 -84
  127. package/dist/components/Points.svelte.d.ts +7 -8
  128. package/dist/components/Polygon.svelte +502 -0
  129. package/dist/components/Polygon.svelte.d.ts +136 -0
  130. package/dist/components/Polygon.svelte.test.d.ts +1 -0
  131. package/dist/components/Polygon.svelte.test.js +121 -0
  132. package/dist/components/RadialGradient.svelte +12 -16
  133. package/dist/components/Raster.svelte +335 -0
  134. package/dist/components/Raster.svelte.d.ts +48 -0
  135. package/dist/components/Rect.svelte +482 -69
  136. package/dist/components/Rect.svelte.d.ts +82 -8
  137. package/dist/components/Rect.svelte.test.d.ts +1 -0
  138. package/dist/components/Rect.svelte.test.js +179 -0
  139. package/dist/components/RectClipPath.svelte +16 -4
  140. package/dist/components/RectClipPath.svelte.d.ts +2 -2
  141. package/dist/components/Ribbon.svelte +141 -0
  142. package/dist/components/Ribbon.svelte.d.ts +51 -0
  143. package/dist/components/Rule.svelte +168 -78
  144. package/dist/components/Rule.svelte.d.ts +7 -2
  145. package/dist/components/Sankey.svelte +1 -1
  146. package/dist/components/Spline.svelte +181 -279
  147. package/dist/components/Spline.svelte.d.ts +28 -56
  148. package/dist/components/Text.svelte +532 -199
  149. package/dist/components/Text.svelte.d.ts +54 -14
  150. package/dist/components/Text.svelte.test.d.ts +1 -0
  151. package/dist/components/Text.svelte.test.js +152 -0
  152. package/dist/components/Threshold.svelte +6 -3
  153. package/dist/components/TileImage.svelte +19 -4
  154. package/dist/components/Trail.svelte +256 -0
  155. package/dist/components/Trail.svelte.d.ts +88 -0
  156. package/dist/components/TransformContext.svelte +132 -428
  157. package/dist/components/TransformContext.svelte.d.ts +22 -0
  158. package/dist/components/TransformContext.svelte.test.d.ts +1 -0
  159. package/dist/components/TransformContext.svelte.test.js +166 -0
  160. package/dist/components/Tree.svelte +4 -3
  161. package/dist/components/Tree.svelte.d.ts +12 -4
  162. package/dist/components/Treemap.svelte +67 -29
  163. package/dist/components/Treemap.svelte.d.ts +23 -15
  164. package/dist/components/Vector.svelte +376 -0
  165. package/dist/components/Vector.svelte.d.ts +109 -0
  166. package/dist/components/Violin.svelte +319 -0
  167. package/dist/components/Violin.svelte.d.ts +47 -0
  168. package/dist/components/Voronoi.svelte +17 -18
  169. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-full-circle--360-degree-range--1.png +0 -0
  170. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-full-circle--360-degree-range--2.png +0 -0
  171. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-innerRadius-of-0--pie-slice--1.png +0 -0
  172. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-innerRadius-of-0--pie-slice--2.png +0 -0
  173. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-negative-domain-values-1.png +0 -0
  174. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-negative-domain-values-2.png +0 -0
  175. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-partial-arc--e-g---180-degrees--1.png +0 -0
  176. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-partial-arc--e-g---180-degrees--2.png +0 -0
  177. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-at-max-domain-1.png +0 -0
  178. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-at-max-domain-2.png +0 -0
  179. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-below-domain-min-1.png +0 -0
  180. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-below-domain-min-2.png +0 -0
  181. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-exceeding-domain-max-1.png +0 -0
  182. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-exceeding-domain-max-2.png +0 -0
  183. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-of-0-1.png +0 -0
  184. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-edge-cases-should-handle-value-of-0-2.png +0 -0
  185. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-events-should-handle-pointer-enter-events-1.png +0 -0
  186. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-events-should-handle-pointer-enter-events-2.png +0 -0
  187. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-events-should-handle-pointer-move-events-1.png +0 -0
  188. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-events-should-handle-pointer-move-events-2.png +0 -0
  189. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-apply-offset-to-arc-position-1.png +0 -0
  190. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-apply-offset-to-arc-position-2.png +0 -0
  191. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-call-tooltip-hide-on-pointer-leave-1.png +0 -0
  192. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-call-tooltip-hide-on-pointer-leave-2.png +0 -0
  193. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-call-tooltip-show-on-pointer-enter-with-data-1.png +0 -0
  194. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-call-tooltip-show-on-pointer-enter-with-data-2.png +0 -0
  195. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-handle-custom-start-angle-in-range-1.png +0 -0
  196. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-handle-custom-start-angle-in-range-2.png +0 -0
  197. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-an-arc-path-with-value-1.png +0 -0
  198. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-an-arc-path-with-value-2.png +0 -0
  199. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-when-track-prop-is-provided-1.png +0 -0
  200. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-when-track-prop-is-provided-2.png +0 -0
  201. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackEndAngle-1.png +0 -0
  202. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackEndAngle-2.png +0 -0
  203. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackInnerRadius-1.png +0 -0
  204. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackInnerRadius-2.png +0 -0
  205. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackPadAngle-1.png +0 -0
  206. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackPadAngle-2.png +0 -0
  207. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackStartAngle-1.png +0 -0
  208. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackStartAngle-2.png +0 -0
  209. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackStartAngle-and-trackEndAngle-1.png +0 -0
  210. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-track-with-trackStartAngle-and-trackEndAngle-2.png +0 -0
  211. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-both-startAngle-and-endAngle-1.png +0 -0
  212. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-both-startAngle-and-endAngle-2.png +0 -0
  213. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-cornerRadius-1.png +0 -0
  214. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-cornerRadius-2.png +0 -0
  215. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-custom-domain-1.png +0 -0
  216. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-custom-domain-2.png +0 -0
  217. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-custom-domain-and-range-1.png +0 -0
  218. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-custom-domain-and-range-2.png +0 -0
  219. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-custom-range-1.png +0 -0
  220. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-custom-range-2.png +0 -0
  221. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-endAngle-in-radians-1.png +0 -0
  222. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-endAngle-in-radians-2.png +0 -0
  223. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-innerRadius-1.png +0 -0
  224. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-innerRadius-2.png +0 -0
  225. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-padAngle-1.png +0 -0
  226. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-padAngle-2.png +0 -0
  227. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-startAngle-in-radians-1.png +0 -0
  228. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-props-should-render-with-startAngle-in-radians-2.png +0 -0
  229. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-snippets-should-render-text-inner--middle--outer-Text-children-1.png +0 -0
  230. package/dist/components/__screenshots__/Arc.svelte.test.ts/Arc-snippets-should-render-text-inner--middle--outer-Text-children-2.png +0 -0
  231. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-clear-brush-when-x-prop-changes-to--null--null--1.png +0 -0
  232. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-clear-brush-when-x-prop-changes-to--null--null--2.png +0 -0
  233. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-not-show-brush-when-x-prop-is-null-1.png +0 -0
  234. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-not-show-brush-when-x-prop-is-null-2.png +0 -0
  235. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-not-show-brush-when-x-prop-matches-full-domain-1.png +0 -0
  236. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-not-show-brush-when-x-prop-matches-full-domain-2.png +0 -0
  237. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-show-brush-when-x-prop-is-provided-with-a-sub-domain-1.png +0 -0
  238. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-show-brush-when-x-prop-is-provided-with-a-sub-domain-2.png +0 -0
  239. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-update-brush-width-when-x-prop-changes-1.png +0 -0
  240. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-external-sync--x-y-props--should-update-brush-width-when-x-prop-changes-2.png +0 -0
  241. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-clear-brush-when-reset-programmatically-1.png +0 -0
  242. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-clear-brush-when-reset-programmatically-2.png +0 -0
  243. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-compute-correct-pixel-width-for-brush-move---1.png +0 -0
  244. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-compute-correct-pixel-width-for-brush-move---2.png +0 -0
  245. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-move-only-y-when-x-is-not-specified-1.png +0 -0
  246. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-move-only-y-when-x-is-not-specified-2.png +0 -0
  247. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-select-full-domain-with-selectAll-1.png +0 -0
  248. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-select-full-domain-with-selectAll-2.png +0 -0
  249. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-show-brush-when-moved-programmatically-via-context-1.png +0 -0
  250. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-show-brush-when-moved-programmatically-via-context-2.png +0 -0
  251. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-update-width-when-brush-move---is-called-again-1.png +0 -0
  252. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-programmatic-control-should-update-width-when-brush-move---is-called-again-2.png +0 -0
  253. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-rendering-should-not-render-brush-UI-when-brush-is-disabled-1.png +0 -0
  254. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-rendering-should-not-render-brush-UI-when-brush-is-disabled-2.png +0 -0
  255. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-rendering-should-not-render-range-or-handles-initially-1.png +0 -0
  256. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-rendering-should-not-render-range-or-handles-initially-2.png +0 -0
  257. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-rendering-should-render-brush-context-when-brush-is-enabled-1.png +0 -0
  258. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-rendering-should-render-brush-context-when-brush-is-enabled-2.png +0 -0
  259. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-zoomOnBrush-with-onBrushEnd-should-pass-brush-domain-values-to-onBrushEnd-before-resetting-1.png +0 -0
  260. package/dist/components/__screenshots__/BrushContext.svelte.test.ts/BrushContext-zoomOnBrush-with-onBrushEnd-should-pass-brush-domain-values-to-onBrushEnd-before-resetting-2.png +0 -0
  261. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-1.png +0 -0
  262. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-2.png +0 -0
  263. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-render-one-circle-per-data-item-with-string-accessors-1.png +0 -0
  264. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-render-one-circle-per-data-item-with-string-accessors-2.png +0 -0
  265. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-render-with-function-accessors-1.png +0 -0
  266. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-render-with-function-accessors-2.png +0 -0
  267. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-resolve-data-driven-fill-through-cScale-1.png +0 -0
  268. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-resolve-data-driven-fill-through-cScale-2.png +0 -0
  269. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  270. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-data-mode-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  271. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-pixel-mode-should-render-a-circle-with-pixel-values-1.png +0 -0
  272. package/dist/components/__screenshots__/Circle.svelte.test.ts/Circle-pixel-mode-should-render-a-circle-with-pixel-values-2.png +0 -0
  273. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-1.png +0 -0
  274. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-2.png +0 -0
  275. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-render-one-ellipse-per-data-item-with-string-accessors-1.png +0 -0
  276. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-render-one-ellipse-per-data-item-with-string-accessors-2.png +0 -0
  277. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-resolve-data-driven-fill-through-cScale-1.png +0 -0
  278. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-resolve-data-driven-fill-through-cScale-2.png +0 -0
  279. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  280. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-data-mode-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  281. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-pixel-mode-should-render-an-ellipse-with-pixel-values-1.png +0 -0
  282. package/dist/components/__screenshots__/Ellipse.svelte.test.ts/Ellipse-pixel-mode-should-render-an-ellipse-with-pixel-values-2.png +0 -0
  283. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-apply-circular-clipping-in-data-mode-1.png +0 -0
  284. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-apply-circular-clipping-in-data-mode-2.png +0 -0
  285. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-pass-literal-URL-through-unchanged-in-data-mode-1.png +0 -0
  286. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-pass-literal-URL-through-unchanged-in-data-mode-2.png +0 -0
  287. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-render-one-image-per-data-item-with-string-accessors-1.png +0 -0
  288. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-render-one-image-per-data-item-with-string-accessors-2.png +0 -0
  289. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-render-with-function-accessors-1.png +0 -0
  290. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-render-with-function-accessors-2.png +0 -0
  291. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-resolve-data-driven-href-from-data-property-1.png +0 -0
  292. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-resolve-data-driven-href-from-data-property-2.png +0 -0
  293. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  294. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-data-mode-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  295. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-apply-circular-clipping-when-r-is-set-1.png +0 -0
  296. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-apply-circular-clipping-when-r-is-set-2.png +0 -0
  297. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-apply-preserveAspectRatio-1.png +0 -0
  298. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-apply-preserveAspectRatio-2.png +0 -0
  299. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-apply-rotation-1.png +0 -0
  300. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-apply-rotation-2.png +0 -0
  301. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-default-width-and-height-to-16-1.png +0 -0
  302. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-default-width-and-height-to-16-2.png +0 -0
  303. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-render-an-image-with-pixel-values-1.png +0 -0
  304. package/dist/components/__screenshots__/Image.svelte.test.ts/Image-pixel-mode-should-render-an-image-with-pixel-values-2.png +0 -0
  305. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-1.png +0 -0
  306. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-2.png +0 -0
  307. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-render-one-line-per-data-item-with-string-accessors-1.png +0 -0
  308. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-render-one-line-per-data-item-with-string-accessors-2.png +0 -0
  309. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-resolve-data-driven-stroke-through-cScale-1.png +0 -0
  310. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-resolve-data-driven-stroke-through-cScale-2.png +0 -0
  311. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  312. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-data-mode-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  313. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-pixel-mode-should-render-a-line-with-pixel-values-1.png +0 -0
  314. package/dist/components/__screenshots__/Line.svelte.test.ts/Line-pixel-mode-should-render-a-line-with-pixel-values-2.png +0 -0
  315. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-1.png +0 -0
  316. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-2.png +0 -0
  317. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-render-one-polygon-per-data-item-with-string-accessors-1.png +0 -0
  318. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-render-one-polygon-per-data-item-with-string-accessors-2.png +0 -0
  319. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-resolve-data-driven-fill-through-cScale-1.png +0 -0
  320. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-resolve-data-driven-fill-through-cScale-2.png +0 -0
  321. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  322. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-data-mode-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  323. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-pixel-mode-should-render-a-polygon-with-pixel-values-1.png +0 -0
  324. package/dist/components/__screenshots__/Polygon.svelte.test.ts/Polygon-pixel-mode-should-render-a-polygon-with-pixel-values-2.png +0 -0
  325. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---colors-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-1.png +0 -0
  326. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---colors-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-2.png +0 -0
  327. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---colors-should-resolve-data-driven-fill-through-cScale-1.png +0 -0
  328. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---colors-should-resolve-data-driven-fill-through-cScale-2.png +0 -0
  329. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---edge-based-should-render-rects-from-edge-props-1.png +0 -0
  330. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---edge-based-should-render-rects-from-edge-props-2.png +0 -0
  331. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---edge-based-should-render-rects-with-insets-1.png +0 -0
  332. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---edge-based-should-render-rects-with-insets-2.png +0 -0
  333. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---edge-based-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  334. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---edge-based-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  335. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---standard-should-render-one-rect-per-data-item-with-string-accessors-1.png +0 -0
  336. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-data-mode---standard-should-render-one-rect-per-data-item-with-string-accessors-2.png +0 -0
  337. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-pixel-mode-should-render-a-rect-with-pixel-values-1.png +0 -0
  338. package/dist/components/__screenshots__/Rect.svelte.test.ts/Rect-pixel-mode-should-render-a-rect-with-pixel-values-2.png +0 -0
  339. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-1.png +0 -0
  340. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-pass-literal-CSS-colors-through-unchanged-in-data-mode-2.png +0 -0
  341. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-render-one-text-per-data-item-with-string-accessors-1.png +0 -0
  342. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-render-one-text-per-data-item-with-string-accessors-2.png +0 -0
  343. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-resolve-data-driven-fill-through-cScale-1.png +0 -0
  344. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-resolve-data-driven-fill-through-cScale-2.png +0 -0
  345. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-resolve-value-as-data-property-name-in-data-mode-1.png +0 -0
  346. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-resolve-value-as-data-property-name-in-data-mode-2.png +0 -0
  347. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-use-explicit-data-prop-over-chart-context-data-1.png +0 -0
  348. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-data-mode-should-use-explicit-data-prop-over-chart-context-data-2.png +0 -0
  349. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-pixel-mode-should-preserve-CSS-like-string-values-as-SVG-values-1.png +0 -0
  350. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-pixel-mode-should-preserve-CSS-like-string-values-as-SVG-values-2.png +0 -0
  351. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-pixel-mode-should-render-text-with-pixel-values-1.png +0 -0
  352. package/dist/components/__screenshots__/Text.svelte.test.ts/Text-pixel-mode-should-render-text-with-pixel-values-2.png +0 -0
  353. package/dist/components/charts/ArcChart.svelte +148 -221
  354. package/dist/components/charts/ArcChart.svelte.d.ts +44 -18
  355. package/dist/components/charts/ArcChart.svelte.test.d.ts +1 -0
  356. package/dist/components/charts/ArcChart.svelte.test.js +24 -0
  357. package/dist/components/charts/AreaChart.svelte +86 -529
  358. package/dist/components/charts/AreaChart.svelte.d.ts +36 -37
  359. package/dist/components/charts/AreaChart.svelte.test.d.ts +1 -0
  360. package/dist/components/charts/AreaChart.svelte.test.js +154 -0
  361. package/dist/components/charts/BarChart.svelte +128 -507
  362. package/dist/components/charts/BarChart.svelte.d.ts +39 -32
  363. package/dist/components/charts/BarChart.svelte.test.d.ts +1 -0
  364. package/dist/components/charts/BarChart.svelte.test.js +449 -0
  365. package/dist/components/charts/BarChartFixedWidthTest.svelte +47 -0
  366. package/dist/components/charts/BarChartFixedWidthTest.svelte.d.ts +11 -0
  367. package/dist/components/charts/ChartAnnotations.svelte +8 -7
  368. package/dist/components/charts/ChartAnnotations.svelte.d.ts +1 -3
  369. package/dist/components/charts/DefaultTooltip.svelte +98 -33
  370. package/dist/components/charts/DefaultTooltip.svelte.d.ts +2 -4
  371. package/dist/components/charts/DefaultTooltip.svelte.test.d.ts +1 -0
  372. package/dist/components/charts/DefaultTooltip.svelte.test.js +231 -0
  373. package/dist/components/charts/LineChart.svelte +94 -433
  374. package/dist/components/charts/LineChart.svelte.bench.d.ts +1 -0
  375. package/dist/components/charts/LineChart.svelte.bench.js +189 -0
  376. package/dist/components/charts/LineChart.svelte.d.ts +36 -31
  377. package/dist/components/charts/LineChart.svelte.test.d.ts +1 -0
  378. package/dist/components/charts/LineChart.svelte.test.js +45 -0
  379. package/dist/components/charts/PieChart.svelte +292 -362
  380. package/dist/components/charts/PieChart.svelte.d.ts +62 -33
  381. package/dist/components/charts/PieChart.svelte.test.d.ts +1 -0
  382. package/dist/components/charts/PieChart.svelte.test.js +36 -0
  383. package/dist/components/charts/ScatterChart.svelte +53 -376
  384. package/dist/components/charts/ScatterChart.svelte.d.ts +27 -23
  385. package/dist/components/charts/__fixtures__/ArcChartTooltip.svelte +39 -0
  386. package/dist/{docs/Blockquote.svelte.d.ts → components/charts/__fixtures__/ArcChartTooltip.svelte.d.ts} +4 -6
  387. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-multiple-area-paths-for-each-series-1.png +0 -0
  388. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-multiple-area-paths-for-each-series-2.png +0 -0
  389. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-multiple-area-paths-for-each-series-with-separate-data-1.png +0 -0
  390. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-multiple-area-paths-for-each-series-with-separate-data-2.png +0 -0
  391. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-multiple-area-paths-for-each-series-with-separate-data-and-stack-layout-1.png +0 -0
  392. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-multiple-area-paths-for-each-series-with-separate-data-and-stack-layout-2.png +0 -0
  393. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-with-single-series-when-no-series-prop-provided-1.png +0 -0
  394. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-basic-should-render-with-single-series-when-no-series-prop-provided-2.png +0 -0
  395. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-series-layout-should-render-with-overlap-layout-1.png +0 -0
  396. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-series-layout-should-render-with-overlap-layout-2.png +0 -0
  397. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-series-layout-should-render-with-stack-layout-1.png +0 -0
  398. package/dist/components/charts/__screenshots__/AreaChart.svelte.test.ts/AreaChart-series-layout-should-render-with-stack-layout-2.png +0 -0
  399. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-basic-should-render-horizontal-bars-1.png +0 -0
  400. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-basic-should-render-horizontal-bars-2.png +0 -0
  401. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-basic-should-render-vertical-bars-without-NaN-attributes-1.png +0 -0
  402. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-basic-should-render-vertical-bars-without-NaN-attributes-2.png +0 -0
  403. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-basic-should-render-with-default-series-when-no-series-prop-provided-1.png +0 -0
  404. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-basic-should-render-with-default-series-when-no-series-prop-provided-2.png +0 -0
  405. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-fixed-width-height-should-center-fixed-width-bars-within-their-band-1.png +0 -0
  406. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-fixed-width-height-should-center-fixed-width-bars-within-their-band-2.png +0 -0
  407. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-fixed-width-height-should-render-horizontal-bars-with-fixed-height-1.png +0 -0
  408. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-fixed-width-height-should-render-horizontal-bars-with-fixed-height-2.png +0 -0
  409. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-fixed-width-height-should-render-vertical-bars-with-fixed-width-1.png +0 -0
  410. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-fixed-width-height-should-render-vertical-bars-with-fixed-width-2.png +0 -0
  411. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-legend-series-toggle-adjusts-group-scale-should-adjust-grouped-bar-widths-when-series-are-toggled-via-legend-1.png +0 -0
  412. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-legend-series-toggle-adjusts-group-scale-should-adjust-grouped-bar-widths-when-series-are-toggled-via-legend-2.png +0 -0
  413. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-no-series-prop--transition-example-pattern--should-render-without-series-prop-and-not-produce-NaN-rect-attributes-1.png +0 -0
  414. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-no-series-prop--transition-example-pattern--should-render-without-series-prop-and-not-produce-NaN-rect-attributes-2.png +0 -0
  415. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-separate-data-per-series-should-render-overlapping-series-with-separate-data-arrays-1.png +0 -0
  416. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-separate-data-per-series-should-render-overlapping-series-with-separate-data-arrays-2.png +0 -0
  417. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-separate-data-per-series-should-render-stacked-series-with-separate-data-arrays-1.png +0 -0
  418. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-separate-data-per-series-should-render-stacked-series-with-separate-data-arrays-2.png +0 -0
  419. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-grouped-series-1.png +0 -0
  420. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-grouped-series-2.png +0 -0
  421. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-multiple-Bars-groups-for-each-series-1.png +0 -0
  422. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-multiple-Bars-groups-for-each-series-2.png +0 -0
  423. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stackDiverging-series-1.png +0 -0
  424. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stackDiverging-series-2.png +0 -0
  425. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stackExpand-series-1.png +0 -0
  426. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stackExpand-series-2.png +0 -0
  427. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stacked-series-1.png +0 -0
  428. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stacked-series-2.png +0 -0
  429. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stacked-series-horizontally-1.png +0 -0
  430. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-should-render-stacked-series-horizontally-2.png +0 -0
  431. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-stackDiverging-edge-rounding-should-round-both-tips-when-there-is-one-positive-and-one-negative-series-1.png +0 -0
  432. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-stackDiverging-edge-rounding-should-round-both-tips-when-there-is-one-positive-and-one-negative-series-2.png +0 -0
  433. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-stackDiverging-edge-rounding-should-round-the-tip-of-each-direction--not-inner-layers-1.png +0 -0
  434. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-stackDiverging-edge-rounding-should-round-the-tip-of-each-direction--not-inner-layers-2.png +0 -0
  435. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-tooltip-should-use-explicit-series-colors--not-color-scale-1.png +0 -0
  436. package/dist/components/charts/__screenshots__/BarChart.svelte.test.ts/BarChart-series-tooltip-should-use-explicit-series-colors--not-color-scale-2.png +0 -0
  437. package/dist/components/charts/__screenshots__/DefaultTooltip.svelte.test.ts/DefaultTooltip-AreaChart--multi-series--quadtree-x-mode--should-fade-non-highlighted-tooltip-series-items-on-hover-1.png +0 -0
  438. package/dist/components/charts/__screenshots__/DefaultTooltip.svelte.test.ts/DefaultTooltip-AreaChart--multi-series--quadtree-x-mode--should-fade-non-highlighted-tooltip-series-items-on-hover-2.png +0 -0
  439. package/dist/components/charts/__screenshots__/DefaultTooltip.svelte.test.ts/DefaultTooltip-AreaChart--multi-series--quadtree-x-mode--should-show-header-and-all-series-items-1.png +0 -0
  440. package/dist/components/charts/__screenshots__/DefaultTooltip.svelte.test.ts/DefaultTooltip-AreaChart--multi-series--quadtree-x-mode--should-show-header-and-all-series-items-2.png +0 -0
  441. package/dist/components/charts/__screenshots__/DefaultTooltip.svelte.test.ts/DefaultTooltip-LineChart--multi-series--quadtree-x-mode--should-show-header-and-all-series-items-1.png +0 -0
  442. package/dist/components/charts/__screenshots__/DefaultTooltip.svelte.test.ts/DefaultTooltip-LineChart--multi-series--quadtree-x-mode--should-show-header-and-all-series-items-2.png +0 -0
  443. package/dist/components/charts/types.d.ts +6 -211
  444. package/dist/components/index.d.ts +43 -13
  445. package/dist/components/index.js +43 -14
  446. package/dist/components/layers/Canvas.svelte +485 -0
  447. package/dist/components/{layout → layers}/Canvas.svelte.d.ts +7 -37
  448. package/dist/components/{layout → layers}/Html.svelte +34 -16
  449. package/dist/components/{layout → layers}/Html.svelte.d.ts +7 -0
  450. package/dist/components/layers/Layer.svelte +85 -0
  451. package/dist/components/layers/Layer.svelte.d.ts +23 -0
  452. package/dist/components/{layout → layers}/Svg.svelte +38 -18
  453. package/dist/components/{layout → layers}/Svg.svelte.d.ts +7 -0
  454. package/dist/components/{layout → layers}/WebGL.svelte +27 -7
  455. package/dist/components/{layout → layers}/WebGL.svelte.d.ts +8 -5
  456. package/dist/components/tests/BrushTestHarness.svelte +27 -0
  457. package/dist/components/tests/BrushTestHarness.svelte.d.ts +8 -0
  458. package/dist/components/tests/TestHarness.svelte +87 -0
  459. package/dist/components/tests/TestHarness.svelte.d.ts +21 -0
  460. package/dist/components/tests/TransformTestHarness.svelte +27 -0
  461. package/dist/components/tests/TransformTestHarness.svelte.d.ts +8 -0
  462. package/dist/components/tooltip/Tooltip.svelte +97 -61
  463. package/dist/components/tooltip/Tooltip.svelte.d.ts +12 -14
  464. package/dist/components/tooltip/TooltipContext.svelte +321 -173
  465. package/dist/components/tooltip/TooltipContext.svelte.d.ts +23 -21
  466. package/dist/components/tooltip/TooltipHeader.svelte +32 -18
  467. package/dist/components/tooltip/TooltipHeader.svelte.d.ts +3 -3
  468. package/dist/components/tooltip/TooltipItem.svelte +57 -37
  469. package/dist/components/tooltip/TooltipItem.svelte.d.ts +3 -3
  470. package/dist/components/tooltip/TooltipList.svelte +12 -10
  471. package/dist/components/tooltip/TooltipSeparator.svelte +18 -10
  472. package/dist/components/tooltip/index.d.ts +1 -0
  473. package/dist/components/tooltip/index.js +1 -0
  474. package/dist/contexts/canvas.d.ts +31 -0
  475. package/dist/contexts/canvas.js +14 -0
  476. package/dist/contexts/chart.d.ts +6 -0
  477. package/dist/contexts/chart.js +48 -0
  478. package/dist/contexts/componentTree.test.d.ts +1 -0
  479. package/dist/contexts/componentTree.test.js +83 -0
  480. package/dist/contexts/geo.d.ts +4 -0
  481. package/dist/contexts/geo.js +11 -0
  482. package/dist/contexts/index.d.ts +5 -0
  483. package/dist/contexts/index.js +5 -0
  484. package/dist/contexts/layer.d.ts +3 -0
  485. package/dist/contexts/layer.js +8 -0
  486. package/dist/contexts/settings.d.ts +4 -0
  487. package/dist/contexts/settings.js +10 -0
  488. package/dist/contexts/transform.d.ts +96 -0
  489. package/dist/contexts/transform.js +10 -0
  490. package/dist/index.d.ts +1 -0
  491. package/dist/index.js +1 -0
  492. package/dist/states/__fixtures__/ComponentNodeLifecycleChild.svelte +13 -0
  493. package/dist/{docs/Json.svelte.d.ts → states/__fixtures__/ComponentNodeLifecycleChild.svelte.d.ts} +4 -8
  494. package/dist/states/__fixtures__/ComponentNodeLifecycleHarness.svelte +48 -0
  495. package/dist/states/__fixtures__/ComponentNodeLifecycleHarness.svelte.d.ts +8 -0
  496. package/dist/states/__fixtures__/ComponentNodeLifecycleParent.svelte +26 -0
  497. package/dist/states/__fixtures__/ComponentNodeLifecycleParent.svelte.d.ts +9 -0
  498. package/dist/states/__screenshots__/chart.component-node.svelte.test.ts/ChartState-registerComponent-cleans-up-child-nodes-and-mark-registrations-when-components-unmount-1.png +0 -0
  499. package/dist/states/__screenshots__/chart.component-node.svelte.test.ts/ChartState-registerComponent-cleans-up-child-nodes-and-mark-registrations-when-components-unmount-2.png +0 -0
  500. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-baseline-domain-multi-series-should-work-without-baseline--no-forced-0--1.png +0 -0
  501. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-baseline-domain-multi-series-should-work-without-baseline--no-forced-0--2.png +0 -0
  502. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-degenerate-domain-should-expand-degenerate-y-domain--5--5--to--5--6--1.png +0 -0
  503. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-degenerate-domain-should-expand-degenerate-y-domain--5--5--to--5--6--2.png +0 -0
  504. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-series-domain-update-on-visibility-toggle-should-update-y-domain-when-hiding-an-explicit-series-1.png +0 -0
  505. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-series-domain-update-on-visibility-toggle-should-update-y-domain-when-hiding-an-explicit-series-2.png +0 -0
  506. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-series-domain-update-on-visibility-toggle-should-update-y-domain-when-hiding-an-implicit-series-1.png +0 -0
  507. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-series-domain-update-on-visibility-toggle-should-update-y-domain-when-hiding-an-implicit-series-2.png +0 -0
  508. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-x-y-from-marks--no-x-y-on-Chart--should-deduplicate-repeated-mark-x-keys-into-a-single-accessor-1.png +0 -0
  509. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-x-y-from-marks--no-x-y-on-Chart--should-deduplicate-repeated-mark-x-keys-into-a-single-accessor-2.png +0 -0
  510. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-x-y-from-marks--no-x-y-on-Chart--should-derive-correct-y-domain-across-two-marks-with-different-data-and-no-y-prop-1.png +0 -0
  511. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-x-y-from-marks--no-x-y-on-Chart--should-derive-correct-y-domain-across-two-marks-with-different-data-and-no-y-prop-2.png +0 -0
  512. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-x-y-from-marks--no-x-y-on-Chart--should-derive-x-accessor-from-marks-when-x-prop-is-absent-1.png +0 -0
  513. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-implicit-x-y-from-marks--no-x-y-on-Chart--should-derive-x-accessor-from-marks-when-x-prop-is-absent-2.png +0 -0
  514. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-aggregate-y-accessor-from-implicit-series-into-resolveAccessor-1.png +0 -0
  515. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-aggregate-y-accessor-from-implicit-series-into-resolveAccessor-2.png +0 -0
  516. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-calculate-correct-y-domain-from-two-marks-with-same-y-accessor-but-different-data-1.png +0 -0
  517. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-calculate-correct-y-domain-from-two-marks-with-same-y-accessor-but-different-data-2.png +0 -0
  518. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-deduplicate-implicit-series-with-the-same-key-1.png +0 -0
  519. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-deduplicate-implicit-series-with-the-same-key-2.png +0 -0
  520. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-generate-implicit-series-from-marks-with-seriesKey-1.png +0 -0
  521. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-generate-implicit-series-from-marks-with-seriesKey-2.png +0 -0
  522. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-generate-implicit-series-from-marks-with-string-y-accessors-1.png +0 -0
  523. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-generate-implicit-series-from-marks-with-string-y-accessors-2.png +0 -0
  524. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-generate-implicit-series-from-x-accessor-for-vertical-charts--valueAxis-x--1.png +0 -0
  525. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-generate-implicit-series-from-x-accessor-for-vertical-charts--valueAxis-x--2.png +0 -0
  526. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-data-from-two-marks-with-same-y-accessor-but-different-data-arrays-1.png +0 -0
  527. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-data-from-two-marks-with-same-y-accessor-but-different-data-arrays-2.png +0 -0
  528. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-implicit-series-label-when-provided-1.png +0 -0
  529. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-implicit-series-label-when-provided-2.png +0 -0
  530. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-mark-data-in-flatData-for-domain-calculation-1.png +0 -0
  531. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-mark-data-in-flatData-for-domain-calculation-2.png +0 -0
  532. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-per-mark-data-in-domain-via-implicit-series-1.png +0 -0
  533. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-include-per-mark-data-in-domain-via-implicit-series-2.png +0 -0
  534. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-not-double-include-data-when-mark-data-matches-series-data-reference-1.png +0 -0
  535. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-not-double-include-data-when-mark-data-matches-series-data-reference-2.png +0 -0
  536. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-register-and-unregister-marks-1.png +0 -0
  537. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-register-and-unregister-marks-2.png +0 -0
  538. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-revert-flatData-after-all-marks-unregister-1.png +0 -0
  539. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-revert-flatData-after-all-marks-unregister-2.png +0 -0
  540. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-skip-marks-without-a-derivable-key-for-implicit-series-1.png +0 -0
  541. package/dist/states/__screenshots__/chart.svelte.test.ts/ChartState-mark-registration-should-skip-marks-without-a-derivable-key-for-implicit-series-2.png +0 -0
  542. package/dist/states/__screenshots__/series.svelte.test.ts/SeriesState-visibility-should-allow-toggling-after-initial-selected--false-1.png +0 -0
  543. package/dist/states/__screenshots__/series.svelte.test.ts/SeriesState-visibility-should-allow-toggling-after-initial-selected--false-2.png +0 -0
  544. package/dist/states/__screenshots__/series.svelte.test.ts/SeriesState-visibility-should-respect-selected--false-on-series-items-1.png +0 -0
  545. package/dist/states/__screenshots__/series.svelte.test.ts/SeriesState-visibility-should-respect-selected--false-on-series-items-2.png +0 -0
  546. package/dist/states/brush.svelte.d.ts +99 -0
  547. package/dist/states/brush.svelte.js +246 -0
  548. package/dist/states/brush.svelte.test.d.ts +1 -0
  549. package/dist/states/brush.svelte.test.js +417 -0
  550. package/dist/states/chart.component-node.svelte.test.d.ts +1 -0
  551. package/dist/states/chart.component-node.svelte.test.js +28 -0
  552. package/dist/states/chart.svelte.d.ts +260 -0
  553. package/dist/states/chart.svelte.js +1051 -0
  554. package/dist/states/chart.svelte.test.d.ts +1 -0
  555. package/dist/states/chart.svelte.test.js +1293 -0
  556. package/dist/states/geo.svelte.d.ts +45 -0
  557. package/dist/states/geo.svelte.js +88 -0
  558. package/dist/states/series.svelte.d.ts +83 -0
  559. package/dist/states/series.svelte.js +248 -0
  560. package/dist/states/series.svelte.test.d.ts +1 -0
  561. package/dist/states/series.svelte.test.js +333 -0
  562. package/dist/states/settings.svelte.d.ts +12 -0
  563. package/dist/states/settings.svelte.js +10 -0
  564. package/dist/states/tooltip.svelte.d.ts +22 -0
  565. package/dist/states/tooltip.svelte.js +16 -0
  566. package/dist/states/transform.svelte.d.ts +175 -0
  567. package/dist/states/transform.svelte.js +408 -0
  568. package/dist/styles/daisyui-5.css +6 -0
  569. package/dist/styles/shadcn-svelte.css +11 -0
  570. package/dist/styles/skeleton-3.css +15 -0
  571. package/dist/styles/skeleton-4.css +15 -0
  572. package/dist/utils/__screenshots__/canvas.svelte.test.ts/clearCanvasContext-clears-with-zero-padding--no-offset--1.png +0 -0
  573. package/dist/utils/__screenshots__/canvas.svelte.test.ts/clearCanvasContext-clears-with-zero-padding--no-offset--2.png +0 -0
  574. package/dist/utils/__screenshots__/canvas.svelte.test.ts/renderPathData-inline-style-overrides-styles-object-1.png +0 -0
  575. package/dist/utils/__screenshots__/canvas.svelte.test.ts/renderPathData-inline-style-overrides-styles-object-2.png +0 -0
  576. package/dist/utils/arcText.svelte.d.ts +1 -1
  577. package/dist/utils/arcText.svelte.js +4 -4
  578. package/dist/utils/array.d.ts +11 -0
  579. package/dist/utils/array.js +23 -0
  580. package/dist/utils/array.test.d.ts +1 -0
  581. package/dist/utils/array.test.js +200 -0
  582. package/dist/utils/attributes.d.ts +3 -13
  583. package/dist/utils/attributes.js +4 -18
  584. package/dist/utils/canvas.d.ts +83 -0
  585. package/dist/utils/canvas.js +203 -49
  586. package/dist/utils/canvas.svelte.test.d.ts +1 -0
  587. package/dist/utils/canvas.svelte.test.js +703 -0
  588. package/dist/utils/chart.js +8 -0
  589. package/dist/utils/color.js +11 -8
  590. package/dist/utils/common.d.ts +19 -3
  591. package/dist/utils/common.js +29 -10
  592. package/dist/utils/common.test.js +35 -1
  593. package/dist/utils/dataProp.d.ts +112 -0
  594. package/dist/utils/dataProp.js +125 -0
  595. package/dist/utils/dataProp.test.d.ts +1 -0
  596. package/dist/utils/dataProp.test.js +128 -0
  597. package/dist/utils/download.d.ts +98 -0
  598. package/dist/utils/download.js +250 -0
  599. package/dist/utils/genData.d.ts +22 -8
  600. package/dist/utils/genData.js +34 -14
  601. package/dist/utils/graph/dagre.js +5 -7
  602. package/dist/utils/graph/sankey.js +9 -7
  603. package/dist/utils/index.d.ts +8 -0
  604. package/dist/utils/index.js +8 -0
  605. package/dist/utils/math.d.ts +17 -0
  606. package/dist/utils/math.js +17 -0
  607. package/dist/utils/motion.svelte.d.ts +26 -2
  608. package/dist/utils/motion.svelte.js +85 -2
  609. package/dist/utils/motion.test.js +49 -1
  610. package/dist/utils/path.d.ts +54 -1
  611. package/dist/utils/path.js +147 -17
  612. package/dist/utils/rasterBounds.d.ts +18 -0
  613. package/dist/utils/rasterBounds.js +98 -0
  614. package/dist/utils/rasterBounds.test.d.ts +1 -0
  615. package/dist/utils/rasterBounds.test.js +63 -0
  616. package/dist/utils/rasterInterpolate.d.ts +11 -0
  617. package/dist/utils/rasterInterpolate.js +103 -0
  618. package/dist/utils/rect.svelte.d.ts +11 -4
  619. package/dist/utils/rect.svelte.js +87 -7
  620. package/dist/utils/scales.svelte.d.ts +10 -4
  621. package/dist/utils/scales.svelte.js +60 -13
  622. package/dist/utils/scales.svelte.test.d.ts +1 -0
  623. package/dist/utils/scales.svelte.test.js +67 -0
  624. package/dist/utils/shape.d.ts +43 -0
  625. package/dist/utils/shape.js +59 -0
  626. package/dist/utils/stack.js +1 -1
  627. package/dist/utils/stats.d.ts +33 -0
  628. package/dist/utils/stats.js +79 -0
  629. package/dist/utils/string.d.ts +51 -0
  630. package/dist/utils/string.js +4 -2
  631. package/dist/utils/ticks.d.ts +15 -4
  632. package/dist/utils/ticks.js +147 -162
  633. package/dist/utils/ticks.test.js +26 -26
  634. package/dist/utils/trail.d.ts +36 -0
  635. package/dist/utils/trail.js +341 -0
  636. package/dist/utils/treemap.d.ts +1 -1
  637. package/dist/utils/types.d.ts +28 -2
  638. package/package.json +48 -57
  639. package/README.md +0 -41
  640. package/dist/components/GeoContext.svelte +0 -176
  641. package/dist/components/GeoContext.svelte.d.ts +0 -52
  642. package/dist/components/TransformControls.svelte +0 -179
  643. package/dist/components/TransformControls.svelte.d.ts +0 -28
  644. package/dist/components/charts/utils.svelte.d.ts +0 -30
  645. package/dist/components/charts/utils.svelte.js +0 -55
  646. package/dist/components/layout/Canvas.svelte +0 -505
  647. package/dist/components/layout/Layer.svelte +0 -39
  648. package/dist/components/layout/Layer.svelte.d.ts +0 -17
  649. package/dist/components/tooltip/tooltipMetaContext.d.ts +0 -79
  650. package/dist/components/tooltip/tooltipMetaContext.js +0 -139
  651. package/dist/docs/Blockquote.svelte +0 -15
  652. package/dist/docs/Code.svelte +0 -38
  653. package/dist/docs/Code.svelte.d.ts +0 -29
  654. package/dist/docs/ConnectorSweepMenuField.svelte +0 -17
  655. package/dist/docs/ConnectorSweepMenuField.svelte.d.ts +0 -7
  656. package/dist/docs/ConnectorTypeMenuField.svelte +0 -17
  657. package/dist/docs/ConnectorTypeMenuField.svelte.d.ts +0 -7
  658. package/dist/docs/CurveMenuField.svelte +0 -44
  659. package/dist/docs/CurveMenuField.svelte.d.ts +0 -9
  660. package/dist/docs/GeoDebug.svelte +0 -60
  661. package/dist/docs/GeoDebug.svelte.d.ts +0 -4
  662. package/dist/docs/Header1.svelte +0 -14
  663. package/dist/docs/Header1.svelte.d.ts +0 -29
  664. package/dist/docs/Json.svelte +0 -28
  665. package/dist/docs/Layout.svelte +0 -18
  666. package/dist/docs/Layout.svelte.d.ts +0 -23
  667. package/dist/docs/Link.svelte +0 -5
  668. package/dist/docs/Link.svelte.d.ts +0 -39
  669. package/dist/docs/PathDataMenuField.svelte +0 -78
  670. package/dist/docs/PathDataMenuField.svelte.d.ts +0 -9
  671. package/dist/docs/Preview.svelte +0 -105
  672. package/dist/docs/Preview.svelte.d.ts +0 -14
  673. package/dist/docs/TilesetField.svelte +0 -135
  674. package/dist/docs/TilesetField.svelte.d.ts +0 -23
  675. package/dist/docs/TransformDebug.svelte +0 -22
  676. package/dist/docs/TransformDebug.svelte.d.ts +0 -20
  677. package/dist/docs/ViewSourceButton.svelte +0 -50
  678. package/dist/docs/ViewSourceButton.svelte.d.ts +0 -25
  679. package/dist/utils/graph/dagre.d.ts +0 -34
  680. package/dist/utils/object.js +0 -2
  681. /package/dist/{utils → contexts}/legendPayload.d.ts +0 -0
  682. /package/dist/{utils → contexts}/legendPayload.js +0 -0
@@ -58,6 +58,14 @@ export function createChartScale(axis, { domain, scale, padding, nice, reverse,
58
58
  console.error(`[Layer Chart] You set \`${axis}Nice: true\` but the ${axis}Scale does not have a \`.nice\` method. Ignoring...`);
59
59
  }
60
60
  }
61
+ // Guard against degenerate domains where min === max (e.g. all-zero data).
62
+ // A degenerate domain causes the scale to return NaN for all inputs.
63
+ if (typeof trueScale.domain === 'function' && typeof trueScale.invert === 'function') {
64
+ const [dMin, dMax] = trueScale.domain();
65
+ if (typeof dMin === 'number' && typeof dMax === 'number' && dMin === dMax) {
66
+ trueScale.domain([dMin, dMin + 1]);
67
+ }
68
+ }
61
69
  return trueScale;
62
70
  }
63
71
  // These scales have a discrete range so they can't be padded
@@ -1,21 +1,24 @@
1
1
  /** Generator to create a new color on each call */
2
- export function* rgbColorGenerator(step = 500) {
2
+ export function* rgbColorGenerator(step = 200) {
3
3
  let nextColor = 0;
4
- while (nextColor < 16777216) {
5
- const r = nextColor & 0xff;
6
- const g = (nextColor & 0xff00) >> 8;
7
- const b = (nextColor & 0xff0000) >> 16;
4
+ while (nextColor < 1 << 21) {
5
+ const r = nextColor & 0x7f;
6
+ const g = (nextColor >> 7) & 0x7f;
7
+ const b = (nextColor >> 14) & 0x7f;
8
8
  nextColor += step;
9
- yield { r, g, b, a: 255 };
9
+ yield { r: r * 2, g: g * 2, b: b * 2, a: 255 };
10
10
  }
11
11
  return { r: 0, g: 0, b: 0, a: 255 };
12
12
  }
13
13
  export function getColorStr(color) {
14
+ const r = color.r & 0xfe;
15
+ const g = color.g & 0xfe;
16
+ const b = color.b & 0xfe;
14
17
  if (color.a !== undefined) {
15
- return `rgba(${color.r},${color.g},${color.b},${color.a})`;
18
+ return `rgba(${r},${g},${b},${color.a})`;
16
19
  }
17
20
  else {
18
- return `rgb(${color.r},${color.g},${color.b})`;
21
+ return `rgb(${r},${g},${b})`;
19
22
  }
20
23
  }
21
24
  export function getColorIfDefined(data) {
@@ -1,11 +1,18 @@
1
- import type { Component, ComponentProps } from 'svelte';
1
+ import type { ComponentProps } from 'svelte';
2
2
  import type Chart from '../components/Chart.svelte';
3
- import type { SimplifiedChartProps } from '../components/charts/types.js';
3
+ import type { ChartProps } from '../components/Chart.svelte';
4
4
  export type Accessor<TData = any> = number | string | ((d: TData) => any) | undefined | null | Accessor<TData>[];
5
5
  export declare function accessor<TData = any>(prop: Accessor<TData>): (d: TData) => any;
6
6
  /** Guarantee chart data is an array */
7
7
  export declare function chartDataArray<TData = any>(data: ComponentProps<Chart<TData>>['data']): any[];
8
- export declare function defaultChartPadding<TData, SeriesComponent extends Component, TSnippetProps>(axis?: SimplifiedChartProps<TData, SeriesComponent, TSnippetProps>['axis'], legend?: SimplifiedChartProps<TData, SeriesComponent, TSnippetProps>['legend']): {
8
+ export declare function defaultChartPadding<TData>(options?: {
9
+ axis?: ChartProps<TData>['axis'];
10
+ legend?: ChartProps<TData>['legend'];
11
+ top?: number;
12
+ left?: number;
13
+ bottom?: number;
14
+ right?: number;
15
+ } | undefined): {
9
16
  top: number;
10
17
  left: number;
11
18
  bottom: number;
@@ -16,3 +23,12 @@ export declare function defaultChartPadding<TData, SeriesComponent extends Compo
16
23
  * Handles complex objects such as `Date` by invoking `.valueOf()`
17
24
  */
18
25
  export declare function findRelatedData(data: any[], original: any, accessor: Function): any;
26
+ /**
27
+ * Return the object if the value is an object, otherwise return null.
28
+ * Functions (including Snippet types) are treated as non-objects and return null.
29
+ */
30
+ export declare function getObjectOrNull<T>(value: T): T extends object ? T extends Function ? null : T : T extends null ? null : T extends undefined ? undefined : null;
31
+ /**
32
+ * Call with args if function, otherwise return the value.
33
+ */
34
+ export declare function resolveMaybeFn<T>(value: T | ((...args: any[]) => T), ...args: any[]): any;
@@ -1,4 +1,4 @@
1
- import { get } from 'lodash-es';
1
+ import { get } from '@layerstack/utils';
2
2
  export function accessor(prop) {
3
3
  if (Array.isArray(prop)) {
4
4
  return (d) => prop.map((p) => accessor(p)(d));
@@ -32,25 +32,44 @@ export function chartDataArray(data) {
32
32
  }
33
33
  return [];
34
34
  }
35
- export function defaultChartPadding(axis = true, legend = false) {
35
+ export function defaultChartPadding(options = {}) {
36
+ const { axis = true, legend = false, top, left, bottom, right } = options;
36
37
  if (axis === false) {
37
38
  return undefined;
38
39
  }
39
- else {
40
- return {
41
- top: axis === true || axis === 'y' ? 4 : 0,
42
- left: axis === true || axis === 'y' ? 20 : 0,
43
- bottom: (axis === true || axis === 'x' ? 20 : 0) + (legend === true ? 32 : 0),
44
- right: axis === true || axis === 'x' ? 4 : 0,
45
- };
46
- }
40
+ return {
41
+ top: top ?? (axis === true || axis === 'y' ? 4 : 0),
42
+ left: left ?? (axis === true || axis === 'y' ? 20 : 0),
43
+ bottom: (bottom ?? (axis === true || axis === 'x' ? 20 : 0)) + (legend ? 32 : 0),
44
+ right: right ?? (axis === true || axis === 'x' ? 4 : 0),
45
+ };
47
46
  }
48
47
  /**
49
48
  * Find the first instance within `data` with the same value as `original` using prop accessor.
50
49
  * Handles complex objects such as `Date` by invoking `.valueOf()`
51
50
  */
52
51
  export function findRelatedData(data, original, accessor) {
52
+ if (data.includes(original)) {
53
+ return original;
54
+ }
53
55
  return data.find((d) => {
54
56
  return accessor(d)?.valueOf() === accessor(original)?.valueOf();
55
57
  });
56
58
  }
59
+ /**
60
+ * Return the object if the value is an object, otherwise return null.
61
+ * Functions (including Snippet types) are treated as non-objects and return null.
62
+ */
63
+ export function getObjectOrNull(value) {
64
+ if (typeof value === 'object')
65
+ return value;
66
+ if (value === undefined)
67
+ return undefined;
68
+ return null;
69
+ }
70
+ /**
71
+ * Call with args if function, otherwise return the value.
72
+ */
73
+ export function resolveMaybeFn(value, ...args) {
74
+ return typeof value === 'function' ? value(...args) : value;
75
+ }
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { accessor } from './common.js';
2
+ import { accessor, findRelatedData, resolveMaybeFn, getObjectOrNull } from './common.js';
3
3
  export const testData = {
4
4
  one: 1,
5
5
  two: 2,
@@ -36,3 +36,37 @@ describe('accessor', () => {
36
36
  expect(actual).toEqual(testData);
37
37
  });
38
38
  });
39
+ describe('getObjectOrNull', () => {
40
+ it('returns null for non-object values', () => {
41
+ expect(getObjectOrNull(5)).toBeNull();
42
+ expect(getObjectOrNull('string')).toBeNull();
43
+ expect(getObjectOrNull(null)).toBeNull();
44
+ expect(getObjectOrNull(undefined)).toBeUndefined();
45
+ });
46
+ it('returns null for functions', () => {
47
+ const fn = () => { };
48
+ expect(getObjectOrNull(fn)).toBeNull();
49
+ });
50
+ it('returns the object if value is an object', () => {
51
+ const obj = { a: 1 };
52
+ expect(getObjectOrNull(obj)).toBe(obj);
53
+ });
54
+ });
55
+ describe('findRelatedData', () => {
56
+ it('prefers exact object identity before accessor matching', () => {
57
+ const first = { id: 'first', value: 10 };
58
+ const second = { id: 'second', value: 10 };
59
+ const data = [first, second];
60
+ const actual = findRelatedData(data, second, accessor('value'));
61
+ expect(actual).toBe(second);
62
+ });
63
+ });
64
+ describe('resolveMaybeFn', () => {
65
+ it('returns value if not a function', () => {
66
+ expect(resolveMaybeFn(5)).toBe(5);
67
+ });
68
+ it('calls function with args', () => {
69
+ const fn = (a, b) => a + b;
70
+ expect(resolveMaybeFn(fn, 2, 3)).toBe(5);
71
+ });
72
+ });
@@ -0,0 +1,112 @@
1
+ import type { AnyScale } from './scales.svelte.js';
2
+ /**
3
+ * A prop that can be a direct pixel value, a data property name (resolved via scale),
4
+ * or an accessor function (whose result is passed through a scale).
5
+ *
6
+ * - `number` → pixel value (direct, no scale applied)
7
+ * - `string` → data property path, resolved via accessor then passed through scale
8
+ * - `function(d)` → called with data item, result passed through scale
9
+ */
10
+ export type DataProp<T = any> = number | string | ((d: T) => any);
11
+ /**
12
+ * Returns true if the value is a data-space prop (string or function),
13
+ * meaning it needs scale resolution rather than being a direct pixel value.
14
+ */
15
+ export declare function isDataProp(value: any): value is string | Function;
16
+ /**
17
+ * Returns true if ANY of the provided values is a data-space prop.
18
+ * Used to detect whether a component should enter "data mode".
19
+ */
20
+ export declare function hasAnyDataProp(...values: any[]): boolean;
21
+ /**
22
+ * Resolves a DataProp value for a specific data item through a scale.
23
+ *
24
+ * - `number`: returned directly (pixel value, no scale)
25
+ * - `string`: used as property path on data item, result passed through scale
26
+ * - `function`: called with data item, result passed through scale
27
+ * - `undefined`/`null`: returns defaultValue
28
+ *
29
+ * If no scale is provided and the raw value is numeric, it passes through directly.
30
+ */
31
+ export declare function resolveDataProp<T>(value: DataProp<T> | undefined | null, d: T, scale: AnyScale | null | undefined, defaultValue?: number): number;
32
+ /**
33
+ * Extract the raw value from a DataProp without applying any scale.
34
+ * Numbers pass through, strings do property lookup, functions are called.
35
+ */
36
+ export declare function extractRawDataValue<T>(value: DataProp<T> | undefined | null, d: T): any;
37
+ /**
38
+ * Resolve a pair of x/y DataProps through a geo projection.
39
+ * x = longitude, y = latitude → projection([lon, lat]) → [px, py]
40
+ */
41
+ export declare function resolveGeoDataPair<T>(xProp: DataProp<T> | undefined | null, yProp: DataProp<T> | undefined | null, d: T, projection: (coords: [number, number]) => [number, number] | null, defaults?: [number, number]): [number, number];
42
+ /**
43
+ * A color prop that can be a literal CSS color string, a data property name
44
+ * (resolved through cScale), or an accessor function (result passed through cScale).
45
+ *
46
+ * - `string` → in data mode, if it matches a data property, the value is extracted
47
+ * and passed through cScale. Otherwise used as a literal CSS color.
48
+ * - `function(d)` → called per data item, result passed through cScale.
49
+ */
50
+ export type ColorProp<T = any> = string | ((d: T) => any);
51
+ /**
52
+ * A style prop that can be a static value or a per-item accessor function.
53
+ * In data mode, if a function is provided, it is called with the data item.
54
+ */
55
+ export type StyleProp<V, T = any> = V | ((d: T) => V);
56
+ /**
57
+ * Style props for primitives that support data-driven styling.
58
+ * All style props accept either a static value or a per-item accessor function.
59
+ */
60
+ export type DataDrivenStyleProps<T = any> = {
61
+ /**
62
+ * The fill color.
63
+ * - `string`: in data mode, if it matches a data property name, the value is
64
+ * extracted and passed through cScale. Otherwise used as a literal CSS color.
65
+ * - `function(d)`: accessor called per data item, result passed through cScale.
66
+ */
67
+ fill?: ColorProp<T>;
68
+ /**
69
+ * The stroke color.
70
+ * - `string`: in data mode, if it matches a data property name, the value is
71
+ * extracted and passed through cScale. Otherwise used as a literal CSS color.
72
+ * - `function(d)`: accessor called per data item, result passed through cScale.
73
+ */
74
+ stroke?: ColorProp<T>;
75
+ /**
76
+ * The fill opacity (0 to 1).
77
+ * - `number`: static value
78
+ * - `function(d)`: accessor called per data item
79
+ */
80
+ fillOpacity?: StyleProp<number | undefined, T>;
81
+ /**
82
+ * The stroke opacity (0 to 1).
83
+ * - `number`: static value
84
+ * - `function(d)`: accessor called per data item
85
+ */
86
+ strokeOpacity?: StyleProp<number | undefined, T>;
87
+ /**
88
+ * The stroke width.
89
+ * - `number`: static value
90
+ * - `function(d)`: accessor called per data item
91
+ */
92
+ strokeWidth?: StyleProp<number | undefined, T>;
93
+ /**
94
+ * The opacity (0 to 1).
95
+ * - `number`: static value
96
+ * - `function(d)`: accessor called per data item
97
+ */
98
+ opacity?: StyleProp<number | undefined, T>;
99
+ /**
100
+ * CSS class name(s).
101
+ * - `string`: static class string
102
+ * - `function(d)`: accessor called per data item, returns class string
103
+ */
104
+ class?: StyleProp<string | undefined, T>;
105
+ };
106
+ export declare function resolveColorProp<T>(value: ColorProp<T> | undefined | null, d: T, cScale: AnyScale | null | undefined, ...args: any[]): string | undefined;
107
+ /**
108
+ * Resolves a StyleProp for a specific data item.
109
+ * If the value is a function, calls it with the data item.
110
+ * Otherwise returns the static value.
111
+ */
112
+ export declare function resolveStyleProp<V, T>(value: StyleProp<V, T> | undefined, d: T, ...args: any[]): V | undefined;
@@ -0,0 +1,125 @@
1
+ import { get } from '@layerstack/utils';
2
+ /**
3
+ * Returns true if the value is a data-space prop (string or function),
4
+ * meaning it needs scale resolution rather than being a direct pixel value.
5
+ */
6
+ export function isDataProp(value) {
7
+ return typeof value === 'string' || typeof value === 'function';
8
+ }
9
+ /**
10
+ * Returns true if ANY of the provided values is a data-space prop.
11
+ * Used to detect whether a component should enter "data mode".
12
+ */
13
+ export function hasAnyDataProp(...values) {
14
+ return values.some((v) => v !== undefined && isDataProp(v));
15
+ }
16
+ /**
17
+ * Resolves a DataProp value for a specific data item through a scale.
18
+ *
19
+ * - `number`: returned directly (pixel value, no scale)
20
+ * - `string`: used as property path on data item, result passed through scale
21
+ * - `function`: called with data item, result passed through scale
22
+ * - `undefined`/`null`: returns defaultValue
23
+ *
24
+ * If no scale is provided and the raw value is numeric, it passes through directly.
25
+ */
26
+ export function resolveDataProp(value, d, scale, defaultValue = 0) {
27
+ if (value === undefined || value === null)
28
+ return defaultValue;
29
+ if (typeof value === 'number')
30
+ return value;
31
+ let rawValue;
32
+ if (typeof value === 'string') {
33
+ rawValue = get(d, value);
34
+ }
35
+ else if (typeof value === 'function') {
36
+ rawValue = value(d);
37
+ }
38
+ else {
39
+ return defaultValue;
40
+ }
41
+ if (scale) {
42
+ const result = scale(rawValue);
43
+ return typeof result === 'number' && isFinite(result) ? result : defaultValue;
44
+ }
45
+ // No scale: if raw value is a number, use it directly
46
+ return typeof rawValue === 'number' ? rawValue : defaultValue;
47
+ }
48
+ /**
49
+ * Extract the raw value from a DataProp without applying any scale.
50
+ * Numbers pass through, strings do property lookup, functions are called.
51
+ */
52
+ export function extractRawDataValue(value, d) {
53
+ if (value === undefined || value === null)
54
+ return undefined;
55
+ if (typeof value === 'number')
56
+ return value;
57
+ if (typeof value === 'string')
58
+ return get(d, value);
59
+ if (typeof value === 'function')
60
+ return value(d);
61
+ return undefined;
62
+ }
63
+ /**
64
+ * Resolve a pair of x/y DataProps through a geo projection.
65
+ * x = longitude, y = latitude → projection([lon, lat]) → [px, py]
66
+ */
67
+ export function resolveGeoDataPair(xProp, yProp, d, projection, defaults = [0, 0]) {
68
+ const rawX = extractRawDataValue(xProp, d);
69
+ const rawY = extractRawDataValue(yProp, d);
70
+ if (rawX == null || rawY == null)
71
+ return defaults;
72
+ const result = projection([rawX, rawY]);
73
+ return result ?? defaults;
74
+ }
75
+ /**
76
+ * Resolves a ColorProp for a specific data item, optionally through a color scale.
77
+ *
78
+ * - `string`: checks if `get(d, value)` is defined → data property, passed through cScale.
79
+ * Otherwise returns the string as a literal CSS color.
80
+ * - `function`: called with data item, result passed through cScale.
81
+ * - `undefined`/`null`: returns undefined.
82
+ */
83
+ /**
84
+ * Returns true if the string looks like a CSS color value rather than a data property name.
85
+ * Matches: `#hex`, and functional notation like `rgb(...)`, `hsl(...)`, `var(...)`,
86
+ * `url(...)`, `color-mix(...)`, etc.
87
+ */
88
+ function isCSSColor(value) {
89
+ return value.startsWith('#') || value.includes('(');
90
+ }
91
+ export function resolveColorProp(value, d, cScale, ...args) {
92
+ if (value === undefined || value === null)
93
+ return undefined;
94
+ if (typeof value === 'function') {
95
+ const rawValue = value(d, ...args);
96
+ if (rawValue === undefined || rawValue === null)
97
+ return undefined;
98
+ return cScale ? String(cScale(rawValue)) : String(rawValue);
99
+ }
100
+ if (typeof value === 'string') {
101
+ // CSS color literals are never data property lookups
102
+ if (isCSSColor(value))
103
+ return value;
104
+ const dataValue = get(d, value);
105
+ if (dataValue !== undefined) {
106
+ // Data property — resolve through cScale
107
+ return cScale ? String(cScale(dataValue)) : String(dataValue);
108
+ }
109
+ // Not a data property — treat as literal CSS color (e.g. named colors like 'red')
110
+ return value;
111
+ }
112
+ return undefined;
113
+ }
114
+ /**
115
+ * Resolves a StyleProp for a specific data item.
116
+ * If the value is a function, calls it with the data item.
117
+ * Otherwise returns the static value.
118
+ */
119
+ export function resolveStyleProp(value, d, ...args) {
120
+ if (value === undefined)
121
+ return undefined;
122
+ if (typeof value === 'function')
123
+ return value(d, ...args);
124
+ return value;
125
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,128 @@
1
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
2
+ import { isDataProp, hasAnyDataProp, resolveDataProp, resolveColorProp } from './dataProp.js';
3
+ describe('isDataProp', () => {
4
+ it('returns true for strings', () => {
5
+ expect(isDataProp('date')).toBe(true);
6
+ expect(isDataProp('nested.path')).toBe(true);
7
+ });
8
+ it('returns true for functions', () => {
9
+ expect(isDataProp((d) => d.value)).toBe(true);
10
+ });
11
+ it('returns false for numbers', () => {
12
+ expect(isDataProp(0)).toBe(false);
13
+ expect(isDataProp(42)).toBe(false);
14
+ });
15
+ it('returns false for undefined and null', () => {
16
+ expect(isDataProp(undefined)).toBe(false);
17
+ expect(isDataProp(null)).toBe(false);
18
+ });
19
+ });
20
+ describe('hasAnyDataProp', () => {
21
+ it('returns true if any value is a string', () => {
22
+ expect(hasAnyDataProp(10, 'date', 20)).toBe(true);
23
+ });
24
+ it('returns true if any value is a function', () => {
25
+ expect(hasAnyDataProp(10, (d) => d.x, 20)).toBe(true);
26
+ });
27
+ it('returns false if all values are numbers', () => {
28
+ expect(hasAnyDataProp(10, 20, 30)).toBe(false);
29
+ });
30
+ it('returns false if all values are undefined', () => {
31
+ expect(hasAnyDataProp(undefined, undefined)).toBe(false);
32
+ });
33
+ it('ignores undefined values but detects strings', () => {
34
+ expect(hasAnyDataProp(undefined, 'date')).toBe(true);
35
+ });
36
+ });
37
+ describe('resolveDataProp', () => {
38
+ const data = { date: '2024-01-01', value: 42, nested: { x: 10 } };
39
+ const mockScale = vi.fn((v) => v * 2);
40
+ beforeEach(() => {
41
+ mockScale.mockClear();
42
+ });
43
+ it('returns number directly without calling scale', () => {
44
+ expect(resolveDataProp(100, data, mockScale)).toBe(100);
45
+ expect(mockScale).not.toHaveBeenCalled();
46
+ });
47
+ it('resolves string as property path and passes through scale', () => {
48
+ expect(resolveDataProp('value', data, mockScale)).toBe(84); // 42 * 2
49
+ expect(mockScale).toHaveBeenCalledWith(42);
50
+ });
51
+ it('resolves nested string paths', () => {
52
+ expect(resolveDataProp('nested.x', data, mockScale)).toBe(20); // 10 * 2
53
+ expect(mockScale).toHaveBeenCalledWith(10);
54
+ });
55
+ it('resolves function accessor and passes through scale', () => {
56
+ const accessor = (d) => d.value;
57
+ expect(resolveDataProp(accessor, data, mockScale)).toBe(84); // 42 * 2
58
+ expect(mockScale).toHaveBeenCalledWith(42);
59
+ });
60
+ it('returns defaultValue for undefined', () => {
61
+ expect(resolveDataProp(undefined, data, mockScale)).toBe(0);
62
+ expect(resolveDataProp(undefined, data, mockScale, 99)).toBe(99);
63
+ });
64
+ it('returns defaultValue for null', () => {
65
+ expect(resolveDataProp(null, data, mockScale)).toBe(0);
66
+ expect(resolveDataProp(null, data, mockScale, 99)).toBe(99);
67
+ });
68
+ it('returns raw numeric value when no scale provided', () => {
69
+ expect(resolveDataProp('value', data, null)).toBe(42);
70
+ expect(resolveDataProp('value', data, undefined)).toBe(42);
71
+ });
72
+ it('returns defaultValue when no scale and raw value is not numeric', () => {
73
+ expect(resolveDataProp('date', data, null)).toBe(0); // '2024-01-01' is not a number
74
+ });
75
+ it('returns defaultValue when scale returns non-finite value', () => {
76
+ const badScale = vi.fn(() => NaN);
77
+ expect(resolveDataProp('value', data, badScale)).toBe(0);
78
+ });
79
+ it('returns defaultValue when scale returns Infinity', () => {
80
+ const badScale = vi.fn(() => Infinity);
81
+ expect(resolveDataProp('value', data, badScale)).toBe(0);
82
+ });
83
+ it('handles function returning a number without scale', () => {
84
+ const accessor = (d) => d.value;
85
+ expect(resolveDataProp(accessor, data, null)).toBe(42);
86
+ });
87
+ });
88
+ describe('resolveColorProp', () => {
89
+ const data = { category: 'A', value: 42, color: '#ff0000' };
90
+ const mockCScale = vi.fn((v) => (v === 'A' ? 'steelblue' : v === 'B' ? 'coral' : 'gray'));
91
+ beforeEach(() => {
92
+ mockCScale.mockClear();
93
+ });
94
+ it('returns undefined for undefined input', () => {
95
+ expect(resolveColorProp(undefined, data, mockCScale)).toBeUndefined();
96
+ });
97
+ it('returns undefined for null input', () => {
98
+ expect(resolveColorProp(null, data, mockCScale)).toBeUndefined();
99
+ });
100
+ it('resolves string data property through cScale', () => {
101
+ expect(resolveColorProp('category', data, mockCScale)).toBe('steelblue');
102
+ expect(mockCScale).toHaveBeenCalledWith('A');
103
+ });
104
+ it('returns literal CSS color when string does not match a data property', () => {
105
+ expect(resolveColorProp('red', data, mockCScale)).toBe('red');
106
+ expect(mockCScale).not.toHaveBeenCalled();
107
+ });
108
+ it('returns hex color literal when not a data property', () => {
109
+ expect(resolveColorProp('#00ff00', data, mockCScale)).toBe('#00ff00');
110
+ expect(mockCScale).not.toHaveBeenCalled();
111
+ });
112
+ it('resolves function accessor through cScale', () => {
113
+ expect(resolveColorProp((d) => d.category, data, mockCScale)).toBe('steelblue');
114
+ expect(mockCScale).toHaveBeenCalledWith('A');
115
+ });
116
+ it('returns stringified data value when no cScale', () => {
117
+ expect(resolveColorProp('category', data, null)).toBe('A');
118
+ });
119
+ it('returns data property value directly when it is a color string and no cScale', () => {
120
+ expect(resolveColorProp('color', data, null)).toBe('#ff0000');
121
+ });
122
+ it('returns undefined when function accessor returns undefined', () => {
123
+ expect(resolveColorProp((d) => d.nonexistent, data, mockCScale)).toBeUndefined();
124
+ });
125
+ it('returns stringified function result when no cScale', () => {
126
+ expect(resolveColorProp((d) => d.value, data, null)).toBe('42');
127
+ });
128
+ });
@@ -0,0 +1,98 @@
1
+ export type ChartImageOptions = {
2
+ /**
3
+ * Background fill color for the exported image.
4
+ * Defaults to transparent (PNG) or white (JPEG/WebP).
5
+ */
6
+ background?: string;
7
+ /**
8
+ * Output image format.
9
+ *
10
+ * @default 'png'
11
+ */
12
+ format?: 'png' | 'jpeg' | 'webp';
13
+ /**
14
+ * Quality for lossy formats (`'jpeg'` / `'webp'`), between 0 and 1.
15
+ *
16
+ * @default 0.92
17
+ */
18
+ quality?: number;
19
+ /**
20
+ * Device pixel ratio to use when rasterising SVG layers.
21
+ * Higher values produce crisper images on retina displays.
22
+ * Defaults to `window.devicePixelRatio` (usually 1 or 2).
23
+ */
24
+ pixelRatio?: number;
25
+ };
26
+ /**
27
+ * Composite all SVG and Canvas layers within a chart container element into
28
+ * an offscreen canvas and return the result as a `Blob`.
29
+ *
30
+ * Layers are drawn in ascending z-index order (DOM order used as tiebreaker).
31
+ * SVG layer styles (CSS variables, class-based colours, etc.) are inlined
32
+ * before serialisation so the image renders correctly outside the DOM.
33
+ */
34
+ export declare function getChartImageBlob(container: HTMLElement, options?: ChartImageOptions): Promise<Blob>;
35
+ export type ChartSvgOptions = {
36
+ /**
37
+ * File name without extension.
38
+ *
39
+ * @default 'chart'
40
+ */
41
+ filename?: string;
42
+ };
43
+ /**
44
+ * Return a self-contained SVG string for all SVG layers within a chart container.
45
+ *
46
+ * - Computed styles (CSS variables, class-based colours, etc.) are inlined so
47
+ * the file renders correctly in editors, browsers, and other tools.
48
+ * - When multiple `<Svg>` layers are present they are composited into a single
49
+ * `<svg>` in z-index order by merging their `<defs>` and content `<g>` elements.
50
+ * - Returns `null` when the container has no SVG layers (e.g. Canvas-only charts).
51
+ */
52
+ export declare function getChartSvgString(container: HTMLElement): string | null;
53
+ /**
54
+ * Download the SVG layers of a chart container as a `.svg` file.
55
+ *
56
+ * Canvas layers are not included — use `downloadImage` when the chart uses
57
+ * `<Canvas>` layers or contains a mix of SVG and Canvas.
58
+ *
59
+ * Returns `false` without throwing if the container has no SVG layers.
60
+ *
61
+ * @example
62
+ * ```svelte
63
+ * <script>
64
+ * import { downloadSvg } from '../index.js';
65
+ * let chartRef = $state<HTMLElement>();
66
+ * </script>
67
+ *
68
+ * <Chart bind:ref={chartRef} ...>...</Chart>
69
+ * <button onclick={() => downloadSvg(chartRef, { filename: 'my-chart' })}>
70
+ * Download SVG
71
+ * </button>
72
+ * ```
73
+ */
74
+ export declare function downloadSvg(container: HTMLElement, options?: ChartSvgOptions): boolean;
75
+ /**
76
+ * Download a chart container as an image file.
77
+ *
78
+ * @example
79
+ * ```svelte
80
+ * <script>
81
+ * import { downloadImage } from '../index.js';
82
+ * let chartRef = $state<HTMLElement>();
83
+ * </script>
84
+ *
85
+ * <Chart bind:ref={chartRef} ...>...</Chart>
86
+ * <button onclick={() => downloadImage(chartRef, { filename: 'my-chart' })}>
87
+ * Download PNG
88
+ * </button>
89
+ * ```
90
+ */
91
+ export declare function downloadImage(container: HTMLElement, options?: ChartImageOptions & {
92
+ /**
93
+ * File name without extension.
94
+ *
95
+ * @default 'chart'
96
+ */
97
+ filename?: string;
98
+ }): Promise<void>;