@fundar/data-chart-telling 0.0.64 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/LICENSE +21 -0
  3. package/README.md +112 -553
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +142 -46
  6. package/dist/configuration/fonts.d.ts +6 -0
  7. package/dist/configuration/fonts.js +6 -0
  8. package/dist/configuration/themes/compact.d.ts +2 -2
  9. package/dist/configuration/themes/compact.js +1 -1
  10. package/dist/configuration/themes/dark.d.ts +2 -2
  11. package/dist/configuration/themes/dark.js +5 -4
  12. package/dist/configuration/themes/default.d.ts +8 -3
  13. package/dist/configuration/themes/default.js +8 -2
  14. package/dist/configuration/themes/editorial.d.ts +2 -2
  15. package/dist/configuration/themes/editorial.js +2 -2
  16. package/dist/configuration/themes/index.d.ts +545 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +35 -48
  19. package/dist/index.js +20 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +325 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +34 -0
  69. package/dist/layout/hover/HoverSettings.js +52 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +363 -351
  79. package/dist/layout/legend/DisabledStyle.d.ts +19 -0
  80. package/dist/layout/legend/DisabledStyle.js +57 -0
  81. package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
  82. package/dist/layout/legend/DiscreteSection.svelte +32 -32
  83. package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
  84. package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
  85. package/dist/layout/legend/LegendChannels.d.ts +21 -0
  86. package/dist/layout/legend/LegendChannels.js +221 -0
  87. package/dist/layout/legend/LegendLayout.svelte +49 -43
  88. package/dist/layout/legend/LegendState.svelte.d.ts +84 -0
  89. package/dist/layout/legend/LegendState.svelte.js +333 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +287 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +131 -0
  111. package/dist/layout/plot/PublicPlotContext.js +240 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +100 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/EdgeTicks.d.ts +39 -0
  117. package/dist/layout/scales/EdgeTicks.js +82 -0
  118. package/dist/layout/scales/NiceTicks.d.ts +40 -0
  119. package/dist/layout/scales/NiceTicks.js +72 -0
  120. package/dist/layout/scales/ScalesLayout.svelte +275 -206
  121. package/dist/layout/scales/ScalesLayout.svelte.d.ts +7 -1
  122. package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
  123. package/dist/layout/scales/SveltePlotScale.js +79 -0
  124. package/dist/layout/styles/StylesLayout.svelte +65 -65
  125. package/dist/layout/styles/TileLayer.svelte +78 -76
  126. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  127. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  128. package/dist/layout/styles/ValueLabels.js +238 -0
  129. package/dist/layout/timeline/Timeline.svelte +83 -74
  130. package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
  131. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  132. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  133. package/dist/layout/timeline/TimelineLayout.svelte +140 -169
  134. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -3
  135. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  136. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  137. package/dist/layout/timeline/TimelineRule.svelte +51 -0
  138. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  139. package/dist/layout/timeline/TimelineState.svelte.d.ts +90 -0
  140. package/dist/layout/timeline/TimelineState.svelte.js +260 -0
  141. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  142. package/dist/layout/timeline/TimelineSteps.js +48 -0
  143. package/dist/layout/timeline/TimelineTime.d.ts +18 -0
  144. package/dist/layout/timeline/TimelineTime.js +117 -0
  145. package/dist/layout/tooltip/Tooltip.svelte +85 -85
  146. package/dist/layout/tooltip/Tooltip.svelte.d.ts +45 -24
  147. package/dist/layout/tooltip/TooltipState.svelte.d.ts +67 -0
  148. package/dist/layout/tooltip/TooltipState.svelte.js +126 -0
  149. package/dist/markers/MarkerKinds.d.ts +173 -0
  150. package/dist/markers/MarkerKinds.js +51 -0
  151. package/dist/markers/area/AreaMarker.svelte +110 -0
  152. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  153. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  154. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  155. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  156. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  157. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  158. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  159. package/dist/markers/box/BoxMarker.svelte +143 -0
  160. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  161. package/dist/markers/brush/BrushMarker.svelte +32 -0
  162. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  163. package/dist/markers/cell/CellMarker.svelte +27 -0
  164. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  165. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  166. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  167. package/dist/markers/contour/ContourMarker.svelte +28 -0
  168. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  169. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  170. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  171. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  172. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  173. package/dist/markers/delta/Delta.d.ts +21 -0
  174. package/dist/markers/delta/Delta.js +60 -0
  175. package/dist/markers/delta/DeltaMarker.svelte +96 -0
  176. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  177. package/dist/markers/density/DensityMarker.svelte +63 -0
  178. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  179. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  180. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  181. package/dist/markers/dot/DotMarker.svelte +102 -0
  182. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  183. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  184. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  185. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  186. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  187. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  188. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  189. package/dist/markers/geo/SphereMarker.svelte +15 -0
  190. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  191. package/dist/markers/hover/HoverMarker.svelte +252 -0
  192. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  193. package/dist/markers/hull/HullMarker.svelte +25 -0
  194. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  195. package/dist/markers/image/ImageMarker.svelte +22 -0
  196. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  197. package/dist/markers/inset/InsetMarker.svelte +184 -150
  198. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  199. package/dist/markers/inset/insetLayout.d.ts +1 -1
  200. package/dist/markers/inset/insetLayout.js +6 -2
  201. package/dist/markers/inset/insetProjection.d.ts +1 -1
  202. package/dist/markers/inset/insetProjection.js +3 -3
  203. package/dist/markers/line/LineMarker.svelte +30 -0
  204. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  205. package/dist/markers/link/LinkMarker.svelte +47 -0
  206. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  207. package/dist/markers/raster/RasterMarker.svelte +31 -0
  208. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  209. package/dist/markers/rect/RectMarker.svelte +62 -0
  210. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  211. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  212. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  213. package/dist/markers/rule/RuleMarker.svelte +47 -0
  214. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  215. package/dist/markers/text/Declutter.d.ts +35 -0
  216. package/dist/markers/text/Declutter.js +157 -0
  217. package/dist/markers/text/TextMarker.svelte +244 -0
  218. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  219. package/dist/markers/tick/TickMarker.svelte +44 -0
  220. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  221. package/dist/markers/trail/TrailMarker.svelte +27 -0
  222. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  223. package/dist/markers/utils/BandNudge.d.ts +22 -0
  224. package/dist/markers/utils/BandNudge.js +23 -0
  225. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  226. package/dist/markers/utils/MarkerChannels.js +97 -0
  227. package/dist/markers/vector/VectorMarker.svelte +29 -0
  228. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  229. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  230. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  231. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  232. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  233. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  234. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  235. package/dist/phases/Pipeline.d.ts +108 -0
  236. package/dist/phases/Pipeline.js +227 -0
  237. package/dist/phases/data/DataPhase.d.ts +19 -0
  238. package/dist/phases/data/DataPhase.js +85 -0
  239. package/dist/phases/data/PlotAxes.d.ts +75 -0
  240. package/dist/phases/data/PlotAxes.js +151 -0
  241. package/dist/phases/facet/FacetPanels.d.ts +54 -0
  242. package/dist/phases/facet/FacetPanels.js +95 -0
  243. package/dist/phases/facet/FacetPhase.d.ts +11 -0
  244. package/dist/phases/facet/FacetPhase.js +28 -0
  245. package/dist/phases/hover/HoverPhase.d.ts +36 -0
  246. package/dist/phases/hover/HoverPhase.js +109 -0
  247. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  248. package/dist/phases/mapping/MappingPhase.js +40 -0
  249. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  250. package/dist/phases/markers/MarkersPhase.js +27 -0
  251. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  252. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  253. package/dist/phases/scales/ScalesPhase.d.ts +29 -0
  254. package/dist/phases/scales/ScalesPhase.js +153 -0
  255. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +58 -0
  256. package/dist/phases/sharedScales/SharedScalesPhase.js +171 -0
  257. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  258. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  259. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  260. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  261. package/dist/phases/statistics/Statistics.d.ts +53 -0
  262. package/dist/phases/statistics/Statistics.js +156 -0
  263. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  264. package/dist/phases/statistics/StatisticsPhase.js +67 -0
  265. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  266. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  267. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  268. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  269. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  270. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  271. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  272. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  273. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  274. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  275. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  276. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  277. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  278. package/dist/phases/styles/StylesPhase.js +17 -0
  279. package/dist/phases/tooltip/TooltipPhase.d.ts +14 -0
  280. package/dist/phases/tooltip/TooltipPhase.js +17 -0
  281. package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
  282. package/dist/phases/transforms/ProcessedPositions.js +74 -0
  283. package/dist/phases/transforms/Transforms.d.ts +42 -0
  284. package/dist/phases/transforms/Transforms.js +130 -0
  285. package/dist/phases/transforms/TransformsPhase.d.ts +27 -0
  286. package/dist/phases/transforms/TransformsPhase.js +205 -0
  287. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  288. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  289. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  290. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  291. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  292. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  293. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  294. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  295. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  296. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  297. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  298. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  299. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  300. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  301. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  302. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  303. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  304. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  305. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  306. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  307. package/dist/plots/area/Plot.svelte +42 -0
  308. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  309. package/dist/plots/area/defaults.d.ts +4 -0
  310. package/dist/plots/area/defaults.js +21 -0
  311. package/dist/plots/area/markers.d.ts +14 -0
  312. package/dist/plots/area/markers.js +39 -0
  313. package/dist/plots/bar/Plot.svelte +33 -438
  314. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  315. package/dist/plots/bar/defaults.d.ts +9 -0
  316. package/dist/plots/bar/defaults.js +88 -0
  317. package/dist/plots/bar/markers.d.ts +45 -0
  318. package/dist/plots/bar/markers.js +233 -0
  319. package/dist/plots/box/BoxSummaries.d.ts +19 -0
  320. package/dist/plots/box/BoxSummaries.js +101 -0
  321. package/dist/plots/box/Plot.svelte +42 -0
  322. package/dist/plots/box/Plot.svelte.d.ts +26 -0
  323. package/dist/plots/box/defaults.d.ts +12 -0
  324. package/dist/plots/box/defaults.js +34 -0
  325. package/dist/plots/box/markers.d.ts +12 -0
  326. package/dist/plots/box/markers.js +34 -0
  327. package/dist/plots/geo/Core.svelte +151 -0
  328. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  329. package/dist/plots/geo/Plot.svelte +103 -324
  330. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  331. package/dist/plots/geo/defaults.d.ts +4 -0
  332. package/dist/plots/geo/defaults.js +16 -0
  333. package/dist/plots/geo/features.svelte.d.ts +5 -0
  334. package/dist/plots/geo/features.svelte.js +44 -0
  335. package/dist/plots/geo/phases/data.d.ts +6 -0
  336. package/dist/plots/geo/phases/data.js +26 -0
  337. package/dist/plots/geo/phases/hover.d.ts +9 -0
  338. package/dist/plots/geo/phases/hover.js +45 -0
  339. package/dist/plots/geo/phases/markers.d.ts +9 -0
  340. package/dist/plots/geo/phases/markers.js +75 -0
  341. package/dist/plots/geo/phases/scales.d.ts +10 -0
  342. package/dist/plots/geo/phases/scales.js +85 -0
  343. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  344. package/dist/plots/geo/phases/tooltip.js +5 -0
  345. package/dist/plots/geo/slices.d.ts +18 -0
  346. package/dist/plots/geo/slices.js +59 -0
  347. package/dist/plots/heatmap/Plot.svelte +55 -249
  348. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  349. package/dist/plots/heatmap/defaults.d.ts +11 -0
  350. package/dist/plots/heatmap/defaults.js +91 -0
  351. package/dist/plots/heatmap/markers.d.ts +17 -0
  352. package/dist/plots/heatmap/markers.js +142 -0
  353. package/dist/plots/histogram/Plot.svelte +45 -0
  354. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  355. package/dist/plots/histogram/defaults.d.ts +9 -0
  356. package/dist/plots/histogram/defaults.js +87 -0
  357. package/dist/plots/histogram/markers.d.ts +18 -0
  358. package/dist/plots/histogram/markers.js +89 -0
  359. package/dist/plots/line/Plot.svelte +37 -268
  360. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  361. package/dist/plots/line/defaults.d.ts +4 -0
  362. package/dist/plots/line/defaults.js +29 -0
  363. package/dist/plots/line/markers.d.ts +49 -0
  364. package/dist/plots/line/markers.js +199 -0
  365. package/dist/plots/pyramid/Plot.svelte +34 -362
  366. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  367. package/dist/plots/pyramid/defaults.d.ts +13 -0
  368. package/dist/plots/pyramid/defaults.js +87 -0
  369. package/dist/plots/pyramid/markers.d.ts +21 -0
  370. package/dist/plots/pyramid/markers.js +156 -0
  371. package/dist/plots/scatter/Plot.svelte +34 -288
  372. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  373. package/dist/plots/scatter/defaults.d.ts +4 -0
  374. package/dist/plots/scatter/defaults.js +80 -0
  375. package/dist/plots/scatter/markers.d.ts +19 -0
  376. package/dist/plots/scatter/markers.js +129 -0
  377. package/dist/plots/utils/ChannelName.d.ts +9 -0
  378. package/dist/plots/utils/ChannelName.js +14 -0
  379. package/dist/plots/utils/accessors.d.ts +1 -1
  380. package/dist/plots/utils/accessors.js +4 -2
  381. package/dist/plots/utils/gaps.d.ts +14 -19
  382. package/dist/plots/utils/gaps.js +38 -18
  383. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  384. package/dist/plots/utils/geoAccessors.js +16 -12
  385. package/dist/plots/utils/geoSegments.d.ts +24 -9
  386. package/dist/plots/utils/geoSegments.js +31 -11
  387. package/dist/plots/utils/segments.d.ts +5 -16
  388. package/dist/plots/utils/segments.js +40 -52
  389. package/dist/plots/utils/tiles.d.ts +9 -9
  390. package/dist/plots/utils/tiles.js +35 -25
  391. package/dist/plots/utils/topojson.d.ts +1 -1
  392. package/dist/plots/utils/topojson.js +3 -3
  393. package/dist/stores/device.js +2 -4
  394. package/dist/types/configuration/styling.d.ts +174 -27
  395. package/dist/types/layout/box.d.ts +24 -0
  396. package/dist/types/layout/composer.d.ts +39 -0
  397. package/dist/types/layout/coordinates.d.ts +14 -14
  398. package/dist/types/layout/facet.d.ts +44 -22
  399. package/dist/types/layout/figure.d.ts +7 -0
  400. package/dist/types/layout/geometry.d.ts +6 -2
  401. package/dist/types/layout/grid.d.ts +66 -0
  402. package/dist/types/layout/hover.d.ts +48 -0
  403. package/dist/types/layout/legend.d.ts +256 -55
  404. package/dist/types/layout/mapping.d.ts +68 -0
  405. package/dist/types/layout/plot.d.ts +41 -0
  406. package/dist/types/layout/scales.d.ts +108 -24
  407. package/dist/types/layout/scales.js +19 -1
  408. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  409. package/dist/types/layout/statistics/box.d.ts +8 -0
  410. package/dist/types/layout/statistics/box.js +1 -0
  411. package/dist/types/layout/statistics/density.d.ts +27 -0
  412. package/dist/types/layout/statistics/density.js +1 -0
  413. package/dist/types/layout/statistics/index.d.ts +46 -0
  414. package/dist/types/layout/statistics/index.js +1 -0
  415. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  416. package/dist/types/layout/statistics/movingAverage.js +1 -0
  417. package/dist/types/layout/statistics/regression.d.ts +20 -0
  418. package/dist/types/layout/statistics/regression.js +1 -0
  419. package/dist/types/layout/styles.d.ts +24 -35
  420. package/dist/types/layout/timeline.d.ts +62 -6
  421. package/dist/types/layout/tooltip.d.ts +7 -85
  422. package/dist/types/markers/all.d.ts +3 -4
  423. package/dist/types/markers/axis/area.d.ts +12 -0
  424. package/dist/types/markers/axis/area.js +1 -0
  425. package/dist/types/markers/axis/arrow.d.ts +15 -0
  426. package/dist/types/markers/axis/arrow.js +1 -0
  427. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  428. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  429. package/dist/types/markers/axis/bar.d.ts +18 -0
  430. package/dist/types/markers/axis/bar.js +1 -0
  431. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  432. package/dist/types/markers/axis/bollinger.js +1 -0
  433. package/dist/types/markers/axis/box.d.ts +14 -0
  434. package/dist/types/markers/axis/box.js +1 -0
  435. package/dist/types/markers/axis/brush.d.ts +28 -0
  436. package/dist/types/markers/axis/brush.js +1 -0
  437. package/dist/types/markers/axis/cell.d.ts +9 -0
  438. package/dist/types/markers/axis/cell.js +1 -0
  439. package/dist/types/markers/axis/component.d.ts +9 -0
  440. package/dist/types/markers/axis/component.js +1 -0
  441. package/dist/types/markers/axis/curveName.d.ts +2 -0
  442. package/dist/types/markers/axis/curveName.js +1 -0
  443. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  444. package/dist/types/markers/axis/delaunayLink.js +1 -0
  445. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  446. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  447. package/dist/types/markers/axis/delta.d.ts +27 -0
  448. package/dist/types/markers/axis/delta.js +1 -0
  449. package/dist/types/markers/axis/density.d.ts +12 -0
  450. package/dist/types/markers/axis/density.js +1 -0
  451. package/dist/types/markers/axis/difference.d.ts +12 -0
  452. package/dist/types/markers/axis/difference.js +1 -0
  453. package/dist/types/markers/axis/hover.d.ts +21 -0
  454. package/dist/types/markers/axis/hover.js +1 -0
  455. package/dist/types/markers/axis/hull.d.ts +7 -0
  456. package/dist/types/markers/axis/hull.js +1 -0
  457. package/dist/types/markers/axis/image.d.ts +12 -0
  458. package/dist/types/markers/axis/image.js +1 -0
  459. package/dist/types/markers/axis/line.d.ts +7 -0
  460. package/dist/types/markers/axis/line.js +1 -0
  461. package/dist/types/markers/axis/raster.d.ts +18 -0
  462. package/dist/types/markers/axis/raster.js +1 -0
  463. package/dist/types/markers/axis/rect.d.ts +15 -0
  464. package/dist/types/markers/axis/rect.js +1 -0
  465. package/dist/types/markers/axis/regression.d.ts +6 -0
  466. package/dist/types/markers/axis/regression.js +1 -0
  467. package/dist/types/markers/axis/rule.d.ts +15 -0
  468. package/dist/types/markers/axis/rule.js +1 -0
  469. package/dist/types/markers/axis/tick.d.ts +8 -0
  470. package/dist/types/markers/axis/tick.js +1 -0
  471. package/dist/types/markers/axis/trail.d.ts +14 -0
  472. package/dist/types/markers/axis/trail.js +1 -0
  473. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  474. package/dist/types/markers/axis/voronoi.js +1 -0
  475. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  476. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  477. package/dist/types/markers/axis/waffle.d.ts +13 -0
  478. package/dist/types/markers/axis/waffle.js +1 -0
  479. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  480. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  481. package/dist/types/markers/basic/dot.d.ts +9 -0
  482. package/dist/types/markers/basic/dot.js +1 -0
  483. package/dist/types/markers/basic/text.d.ts +60 -0
  484. package/dist/types/markers/basic/text.js +1 -0
  485. package/dist/types/markers/basic.d.ts +4 -0
  486. package/dist/types/markers/basic.js +1 -0
  487. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  488. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  489. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  490. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  491. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  492. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  493. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  494. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  495. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  496. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  497. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  498. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  499. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  500. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  501. package/dist/types/markers/common.d.ts +30 -103
  502. package/dist/types/markers/common.js +29 -1
  503. package/dist/types/markers/geo/contour.d.ts +27 -0
  504. package/dist/types/markers/geo/contour.js +1 -0
  505. package/dist/types/markers/geo/features.d.ts +12 -0
  506. package/dist/types/markers/geo/features.js +1 -0
  507. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  508. package/dist/types/markers/geo/geoComponent.js +1 -0
  509. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  510. package/dist/types/markers/geo/geoHover.js +1 -0
  511. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  512. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  513. package/dist/types/markers/geo/graticule.d.ts +11 -0
  514. package/dist/types/markers/geo/graticule.js +1 -0
  515. package/dist/types/markers/geo/inset.d.ts +50 -0
  516. package/dist/types/markers/geo/inset.js +1 -0
  517. package/dist/types/markers/geo/link.d.ts +13 -0
  518. package/dist/types/markers/geo/link.js +1 -0
  519. package/dist/types/markers/geo/sphere.d.ts +11 -0
  520. package/dist/types/markers/geo/sphere.js +1 -0
  521. package/dist/types/markers/geo/vector.d.ts +17 -0
  522. package/dist/types/markers/geo/vector.js +1 -0
  523. package/dist/types/markers/geo.d.ts +10 -212
  524. package/dist/types/markers/geo.js +10 -1
  525. package/dist/types/markers/traits.d.ts +22 -0
  526. package/dist/types/markers/traits.js +1 -0
  527. package/dist/types/misc/easing.js +1 -0
  528. package/dist/types/misc/viewport.js +1 -0
  529. package/dist/types/phases/data/axes.d.ts +18 -0
  530. package/dist/types/phases/data/axes.js +1 -0
  531. package/dist/types/phases/data/phase.d.ts +26 -0
  532. package/dist/types/phases/data/phase.js +2 -0
  533. package/dist/types/phases/facet/phase.d.ts +18 -0
  534. package/dist/types/phases/facet/phase.js +1 -0
  535. package/dist/types/phases/hover/phase.d.ts +40 -0
  536. package/dist/types/phases/hover/phase.js +1 -0
  537. package/dist/types/phases/index.d.ts +14 -0
  538. package/dist/types/phases/index.js +1 -0
  539. package/dist/types/phases/kind.d.ts +59 -0
  540. package/dist/types/phases/kind.js +1 -0
  541. package/dist/types/phases/mapping/phase.d.ts +5 -0
  542. package/dist/types/phases/mapping/phase.js +1 -0
  543. package/dist/types/phases/markers/phase.d.ts +13 -0
  544. package/dist/types/phases/markers/phase.js +1 -0
  545. package/dist/types/phases/pipeline.d.ts +10 -0
  546. package/dist/types/phases/pipeline.js +1 -0
  547. package/dist/types/phases/scales/phase.d.ts +26 -0
  548. package/dist/types/phases/scales/phase.js +1 -0
  549. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  550. package/dist/types/phases/sharedScales/phase.js +1 -0
  551. package/dist/types/phases/stage.d.ts +12 -0
  552. package/dist/types/phases/stage.js +1 -0
  553. package/dist/types/phases/state.d.ts +76 -0
  554. package/dist/types/phases/state.js +1 -0
  555. package/dist/types/phases/statistics/phase.d.ts +43 -0
  556. package/dist/types/phases/statistics/phase.js +1 -0
  557. package/dist/types/phases/statistics/source.d.ts +20 -0
  558. package/dist/types/phases/statistics/source.js +7 -0
  559. package/dist/types/phases/styles/phase.d.ts +24 -0
  560. package/dist/types/phases/styles/phase.js +1 -0
  561. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  562. package/dist/types/phases/transforms/adapter.js +1 -0
  563. package/dist/types/phases/transforms/phase.d.ts +50 -0
  564. package/dist/types/phases/transforms/phase.js +1 -0
  565. package/dist/types/plots/area/props.d.ts +10 -0
  566. package/dist/types/plots/area/props.js +1 -0
  567. package/dist/types/plots/area/state.d.ts +6 -0
  568. package/dist/types/plots/area/state.js +1 -0
  569. package/dist/types/plots/bar/props.d.ts +10 -0
  570. package/dist/types/plots/bar/props.js +1 -0
  571. package/dist/types/plots/bar/state.d.ts +6 -0
  572. package/dist/types/plots/bar/state.js +1 -0
  573. package/dist/types/plots/box/props.d.ts +10 -0
  574. package/dist/types/plots/box/props.js +1 -0
  575. package/dist/types/plots/box/state.d.ts +23 -0
  576. package/dist/types/plots/box/state.js +1 -0
  577. package/dist/types/plots/camera.d.ts +7 -17
  578. package/dist/types/plots/constants.d.ts +16 -8
  579. package/dist/types/plots/data/common.d.ts +25 -17
  580. package/dist/types/plots/data/geo.d.ts +26 -12
  581. package/dist/types/plots/gaps.d.ts +19 -38
  582. package/dist/types/plots/geo/props.d.ts +23 -0
  583. package/dist/types/plots/geo/props.js +1 -0
  584. package/dist/types/plots/geo/state.d.ts +82 -0
  585. package/dist/types/plots/geo/state.js +1 -0
  586. package/dist/types/plots/heatmap/props.d.ts +10 -0
  587. package/dist/types/plots/heatmap/props.js +1 -0
  588. package/dist/types/plots/heatmap/state.d.ts +28 -0
  589. package/dist/types/plots/heatmap/state.js +1 -0
  590. package/dist/types/plots/histogram/props.d.ts +18 -0
  591. package/dist/types/plots/histogram/props.js +1 -0
  592. package/dist/types/plots/histogram/state.d.ts +6 -0
  593. package/dist/types/plots/histogram/state.js +1 -0
  594. package/dist/types/plots/line/props.d.ts +10 -0
  595. package/dist/types/plots/line/props.js +1 -0
  596. package/dist/types/plots/line/state.d.ts +9 -0
  597. package/dist/types/plots/line/state.js +1 -0
  598. package/dist/types/plots/props.d.ts +145 -35
  599. package/dist/types/plots/pyramid/props.d.ts +10 -0
  600. package/dist/types/plots/pyramid/props.js +1 -0
  601. package/dist/types/plots/pyramid/state.d.ts +16 -0
  602. package/dist/types/plots/pyramid/state.js +1 -0
  603. package/dist/types/plots/scatter/props.d.ts +10 -0
  604. package/dist/types/plots/scatter/props.js +1 -0
  605. package/dist/types/plots/scatter/state.d.ts +6 -0
  606. package/dist/types/plots/scatter/state.js +1 -0
  607. package/dist/types/plots/segments/common.d.ts +1 -1
  608. package/dist/types/plots/segments/config.d.ts +12 -6
  609. package/dist/types/plots/styling.d.ts +5 -5
  610. package/dist/types/transforms/bin.d.ts +84 -0
  611. package/dist/types/transforms/bin.js +28 -0
  612. package/dist/types/transforms/bollinger.d.ts +21 -0
  613. package/dist/types/transforms/bollinger.js +1 -0
  614. package/dist/types/transforms/common.d.ts +29 -0
  615. package/dist/types/transforms/common.js +16 -0
  616. package/dist/types/transforms/density.d.ts +45 -0
  617. package/dist/types/transforms/density.js +10 -0
  618. package/dist/types/transforms/filter.d.ts +12 -0
  619. package/dist/types/transforms/filter.js +14 -0
  620. package/dist/types/transforms/group.d.ts +70 -0
  621. package/dist/types/transforms/group.js +8 -0
  622. package/dist/types/transforms/index.d.ts +36 -0
  623. package/dist/types/transforms/index.js +1 -0
  624. package/dist/types/transforms/interval.d.ts +21 -0
  625. package/dist/types/transforms/interval.js +14 -0
  626. package/dist/types/transforms/jitter.d.ts +34 -0
  627. package/dist/types/transforms/jitter.js +1 -0
  628. package/dist/types/transforms/map.d.ts +24 -0
  629. package/dist/types/transforms/map.js +1 -0
  630. package/dist/types/transforms/normalize.d.ts +36 -0
  631. package/dist/types/transforms/normalize.js +1 -0
  632. package/dist/types/transforms/select.d.ts +15 -0
  633. package/dist/types/transforms/select.js +1 -0
  634. package/dist/types/transforms/shift.d.ts +20 -0
  635. package/dist/types/transforms/shift.js +1 -0
  636. package/dist/types/transforms/sort.d.ts +31 -0
  637. package/dist/types/transforms/sort.js +14 -0
  638. package/dist/types/transforms/stack.d.ts +64 -0
  639. package/dist/types/transforms/stack.js +12 -0
  640. package/dist/types/transforms/window.d.ts +29 -0
  641. package/dist/types/transforms/window.js +1 -0
  642. package/dist/utils/ContinuousDomain.d.ts +12 -0
  643. package/dist/utils/ContinuousDomain.js +19 -0
  644. package/dist/utils/Interpolation.d.ts +26 -0
  645. package/dist/utils/Interpolation.js +65 -0
  646. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  647. package/dist/utils/color/contrast.js +40 -0
  648. package/dist/utils/color/cssColor.d.ts +4 -0
  649. package/dist/utils/color/cssColor.js +77 -0
  650. package/dist/utils/color/index.d.ts +3 -0
  651. package/dist/utils/color/index.js +3 -0
  652. package/dist/utils/color/ramp.d.ts +17 -0
  653. package/dist/utils/color/ramp.js +110 -0
  654. package/dist/utils/grouping.d.ts +9 -5
  655. package/dist/utils/grouping.js +19 -10
  656. package/dist/utils/merge.d.ts +7 -0
  657. package/dist/utils/merge.js +17 -0
  658. package/dist/utils/opacity.d.ts +9 -0
  659. package/dist/utils/opacity.js +38 -0
  660. package/dist/utils/symbol.d.ts +31 -0
  661. package/dist/utils/symbol.js +92 -0
  662. package/docs/architecture.md +137 -0
  663. package/docs/chrome.md +99 -0
  664. package/docs/composer.md +69 -0
  665. package/docs/concepts.md +99 -0
  666. package/docs/development.md +103 -0
  667. package/docs/facets.md +123 -0
  668. package/docs/geo.md +151 -0
  669. package/docs/getting-started.md +78 -0
  670. package/docs/legend.md +153 -0
  671. package/docs/markers.md +117 -0
  672. package/docs/plots.md +284 -0
  673. package/docs/scales.md +95 -0
  674. package/docs/state.md +71 -0
  675. package/docs/styles-and-segments.md +269 -0
  676. package/docs/theming.md +226 -0
  677. package/docs/timeline.md +128 -0
  678. package/docs/tooltip-and-hover.md +128 -0
  679. package/docs/transforms-and-statistics.md +118 -0
  680. package/examples/BarValues.svelte +14 -0
  681. package/examples/Box.svelte +7 -0
  682. package/examples/Chrome.svelte +17 -0
  683. package/examples/ChromeOrder.svelte +18 -0
  684. package/examples/Composer.svelte +23 -0
  685. package/examples/CustomTooltip.svelte +44 -0
  686. package/examples/Facets.svelte +15 -0
  687. package/examples/FacetsCarousel.svelte +14 -0
  688. package/examples/FacetsRowsCols.svelte +23 -0
  689. package/examples/FirstPlot.svelte +7 -0
  690. package/examples/Gaps.svelte +21 -0
  691. package/examples/GroupedBars.svelte +15 -0
  692. package/examples/Heatmap.svelte +7 -0
  693. package/examples/HeatmapSegments.svelte +26 -0
  694. package/examples/Histogram.svelte +14 -0
  695. package/examples/HorizontalBars.svelte +15 -0
  696. package/examples/LegendReader.svelte +8 -0
  697. package/examples/LegendSections.svelte +27 -0
  698. package/examples/LegendToggle.svelte +25 -0
  699. package/examples/LineByRegion.svelte +18 -0
  700. package/examples/LineDates.svelte +15 -0
  701. package/examples/Markers.svelte +27 -0
  702. package/examples/MovingAverage.svelte +15 -0
  703. package/examples/Pyramid.svelte +7 -0
  704. package/examples/Regression.svelte +14 -0
  705. package/examples/ResponsiveLine.svelte +37 -0
  706. package/examples/Scales.svelte +26 -0
  707. package/examples/Scatter.svelte +16 -0
  708. package/examples/SegmentHighlight.svelte +22 -0
  709. package/examples/Segments.svelte +25 -0
  710. package/examples/SegmentsBySeries.svelte +25 -0
  711. package/examples/StackedArea.svelte +16 -0
  712. package/examples/StackedBars.svelte +15 -0
  713. package/examples/TimelinePlayer.svelte +21 -0
  714. package/examples/TimelineRule.svelte +19 -0
  715. package/examples/Tooltip.svelte +19 -0
  716. package/examples/TooltipCard.svelte +86 -0
  717. package/examples/ValueLabels.svelte +21 -0
  718. package/examples/data.ts +324 -0
  719. package/llms-full.txt +142 -0
  720. package/llms.txt +77 -0
  721. package/package.json +42 -5
  722. package/dist/charts/BaseChart.svelte +0 -149
  723. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  724. package/dist/charts/bar/Chart.svelte +0 -110
  725. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  726. package/dist/charts/container/ChartContainer.svelte +0 -137
  727. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  728. package/dist/charts/heatmap/Chart.svelte +0 -114
  729. package/dist/charts/line/Chart.svelte +0 -112
  730. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  731. package/dist/charts/pyramid/Chart.svelte +0 -134
  732. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  733. package/dist/charts/scatter/Chart.svelte +0 -95
  734. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  735. package/dist/layout/coordinates/margins.d.ts +0 -16
  736. package/dist/layout/coordinates/margins.js +0 -11
  737. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  738. package/dist/layout/legend/interaction.svelte.js +0 -32
  739. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  740. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  741. package/dist/layout/plot/margins.d.ts +0 -18
  742. package/dist/layout/plot/margins.js +0 -15
  743. package/dist/layout/plot/measureText.d.ts +0 -4
  744. package/dist/layout/plot/measureText.js +0 -19
  745. package/dist/layout/scales/buildScale.d.ts +0 -25
  746. package/dist/layout/scales/buildScale.js +0 -90
  747. package/dist/layout/scales/niceDomain.d.ts +0 -23
  748. package/dist/layout/scales/niceDomain.js +0 -59
  749. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  750. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  751. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  752. package/dist/layout/tooltip/controller.svelte.js +0 -173
  753. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  754. package/dist/layout/tooltip/hover.svelte.js +0 -28
  755. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  756. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  757. package/dist/layout/tooltip/utils.d.ts +0 -49
  758. package/dist/layout/tooltip/utils.js +0 -82
  759. package/dist/markers/CellMarker.svelte +0 -21
  760. package/dist/markers/ContourClipMarker.svelte +0 -77
  761. package/dist/markers/ContourMarker.svelte +0 -28
  762. package/dist/markers/DeltaMarker.svelte +0 -109
  763. package/dist/markers/DotMarker.svelte +0 -70
  764. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  765. package/dist/markers/GeoHoverMarker.svelte +0 -25
  766. package/dist/markers/GraticuleMarker.svelte +0 -18
  767. package/dist/markers/HoverMarker.svelte +0 -212
  768. package/dist/markers/LineMarker.svelte +0 -19
  769. package/dist/markers/LinkMarker.svelte +0 -42
  770. package/dist/markers/PeakMarker.svelte +0 -80
  771. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  772. package/dist/markers/RuleMarker.svelte +0 -24
  773. package/dist/markers/SphereMarker.svelte +0 -15
  774. package/dist/markers/TextMarker.svelte +0 -62
  775. package/dist/markers/VectorMarker.svelte +0 -20
  776. package/dist/plots/bar/ValueLabels.svelte +0 -149
  777. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  778. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  779. package/dist/plots/bar/buildBarMarkers.js +0 -151
  780. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  781. package/dist/plots/bar/hoverPoints.js +0 -37
  782. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  783. package/dist/plots/bar/layout.svelte.js +0 -182
  784. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  785. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  786. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  787. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  788. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  789. package/dist/plots/line/ValueLabels.svelte +0 -269
  790. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  791. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  792. package/dist/plots/line/buildGapMarkers.js +0 -74
  793. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  794. package/dist/plots/line/buildLineMarkers.js +0 -56
  795. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  796. package/dist/plots/line/valueLabelMargin.js +0 -65
  797. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  798. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  799. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  800. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  801. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  802. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  803. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  804. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  805. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  806. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  807. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  808. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  809. package/dist/plots/utils/declutter.d.ts +0 -120
  810. package/dist/plots/utils/declutter.js +0 -240
  811. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  812. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  813. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  814. package/dist/plots/utils/legendDisabled.js +0 -68
  815. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  816. package/dist/plots/utils/valueLabelMargin.js +0 -60
  817. package/dist/types/charts/common.d.ts +0 -22
  818. package/dist/types/charts/props.d.ts +0 -50
  819. package/dist/types/markers/base.d.ts +0 -45
  820. package/dist/types/markers/line.d.ts +0 -34
  821. package/dist/types/markers/props.d.ts +0 -11
  822. package/dist/types/plots/data/scatter.d.ts +0 -13
  823. package/dist/utils/color.js +0 -141
  824. package/dist/utils/delta.d.ts +0 -12
  825. package/dist/utils/delta.js +0 -69
  826. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  827. package/dist/utils/edgeAwareAnchor.js +0 -60
  828. package/dist/utils/interpolate.d.ts +0 -31
  829. package/dist/utils/interpolate.js +0 -71
  830. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  831. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  832. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  833. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  834. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  835. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  836. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  837. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  838. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  839. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -1,382 +1,394 @@
1
1
  <script lang="ts">
2
- import { untrack } from 'svelte';
3
- import type { ContinuousLegendSection } from '../../types/layout/legend';
4
- import { makeColorScale } from '../../utils/color';
5
- import { getConfiguration } from '../../configuration/config.svelte';
6
- import { getLegendInteraction, createLegendInteraction } from './interaction.svelte';
2
+ import { untrack } from 'svelte';
3
+ import type { ContinuousLegendSection } from '../../types/layout/legend';
4
+ import { makeColorScale, resolveColorScale } from '../../utils/color';
5
+ import { getConfiguration } from '../../configuration/config.svelte';
6
+ import { AxisNumberFormat } from './AxisNumberFormat';
7
+ import { LegendState } from './LegendState.svelte';
7
8
 
8
- let { section }: { section: ContinuousLegendSection } = $props();
9
+ let { section }: { section: ContinuousLegendSection } = $props();
9
10
 
10
- const cfg = $derived(getConfiguration());
11
- const gradientId = `dct-grad-${Math.random().toString(36).slice(2)}`;
12
- const barWidth = $derived(section.width ?? 170);
11
+ const cfg = $derived(getConfiguration());
12
+ const gradientId = `dct-grad-${Math.random().toString(36).slice(2)}`;
13
+ const barWidth = $derived(section.width ?? 170);
13
14
 
14
- const fmt = $derived(section.format ?? ((v: number) => String(v)));
15
- const isInteractive = $derived(section.interactive?.enabled ?? false);
15
+ const fmt = $derived(section.format ?? AxisNumberFormat.of([section.min, section.max], cfg));
16
+ const isInteractive = $derived(section.interactive?.enabled ?? false);
16
17
 
17
- // How far the default handle bleeds past its 0/1 track position, so the
18
- // track can be inset from `barWidth`'s edges by that much.
19
- let loHandleEl = $state<SVGRectElement>();
20
- const handleBleed = $derived(
21
- isInteractive && !section.interactive?.handle && loHandleEl
22
- ? Math.ceil(loHandleEl.getBoundingClientRect().width / 2)
23
- : 0,
24
- );
25
- const trackWidth = $derived(Math.max(0, barWidth - handleBleed * 2));
26
- function trackX(t: number): number {
27
- return handleBleed + t * trackWidth;
28
- }
18
+ // How far the default handle bleeds past its 0/1 track position, so the
19
+ // track can be inset from `barWidth`'s edges by that much.
20
+ let loHandleEl = $state<SVGRectElement>();
21
+ const handleBleed = $derived(
22
+ isInteractive && !section.interactive?.handle && loHandleEl
23
+ ? Math.ceil(loHandleEl.getBoundingClientRect().width / 2)
24
+ : 0
25
+ );
26
+ const trackWidth = $derived(Math.max(0, barWidth - handleBleed * 2));
27
+ function trackX(t: number): number {
28
+ return handleBleed + t * trackWidth;
29
+ }
29
30
 
30
- const svgHeight = $derived(cfg.legend.continuous.height);
31
- const barHeight = $derived(cfg.legend.continuous.barHeight);
32
- const barRadius = $derived(cfg.legend.continuous.barRadius);
31
+ const svgHeight = $derived(cfg.legend.continuous.height);
32
+ const barHeight = $derived(cfg.legend.continuous.barHeight);
33
+ const barRadius = $derived(cfg.legend.continuous.barRadius);
33
34
 
34
- // Fill/opacity for the excluded-margin rects.
35
- const excludedStyle = $derived.by((): { fill: string; opacity: number } => {
36
- const d = section.interactive?.disabledStyle;
37
- if (d?.fill) return { fill: d.fill, opacity: d.fillOpacity ?? d.opacity ?? 1 };
38
- return { fill: 'currentColor', opacity: d?.fillOpacity ?? d?.opacity ?? 0.35 };
39
- });
35
+ // Fill/opacity for the excluded-margin rects.
36
+ const excludedStyle = $derived.by((): { fill: string; opacity: number } => {
37
+ const d = section.interactive?.disabledStyle;
38
+ if (d?.fill) return { fill: d.fill, opacity: d.fillOpacity ?? d.opacity ?? 1 };
39
+ return { fill: 'currentColor', opacity: d?.fillOpacity ?? d?.opacity ?? 0.35 };
40
+ });
40
41
 
41
- const tickPositions = $derived(
42
- isInteractive
43
- ? []
44
- : (section.ticks ?? []).map((v) => ({
45
- v,
46
- t: (v - section.min) / (section.max - section.min || 1),
47
- label: fmt(v),
48
- })),
49
- );
42
+ const tickPositions = $derived(
43
+ isInteractive
44
+ ? []
45
+ : (section.ticks ?? []).map((v) => ({
46
+ v,
47
+ t: (v - section.min) / (section.max - section.min || 1),
48
+ label: fmt(v)
49
+ }))
50
+ );
50
51
 
51
- // ── Drag-to-narrow-margins ────────────────────────────────────────────────
52
- const interaction = getLegendInteraction() ?? createLegendInteraction();
52
+ // ── Drag-to-narrow-margins ────────────────────────────────────────────────
53
+ const interaction = LegendState.ensure();
53
54
 
54
- // Seeded once from the section's own bounds (deliberately untracked — see
55
- // the tracking/clamping effect below for how later prop changes are
56
- // handled instead).
57
- let lo = $state(untrack(() => section.min));
58
- let hi = $state(untrack(() => section.max));
55
+ // Seeded once from the section's bounds.
56
+ let lo = $state(untrack(() => section.min));
57
+ let hi = $state(untrack(() => section.max));
59
58
 
60
- // Whether the user has actually dragged *that* handle off its default
61
- // position — tracked per handle, not as one combined flag, so dragging one
62
- // doesn't freeze the other: until the other is touched, it must keep
63
- // tracking `section.min`/`max` exactly, since a consumer's domain routinely
64
- // changes with no interaction at all (e.g. a different year picked on its
65
- // own timeline), and with nothing to protect there the legend should
66
- // always read the true current extent rather than some earlier domain's
67
- // stale numbers.
68
- let loAdjusted = $state(false);
69
- let hiAdjusted = $state(false);
59
+ // Whether each handle was dragged; an untouched one follows the section's bounds.
60
+ let loAdjusted = $state(false);
61
+ let hiAdjusted = $state(false);
70
62
 
71
- // Once a handle *has* been dragged, a later domain change (same scenario as
72
- // above, but now with a selection to protect) instead re-clamps it to stay
73
- // valid: the lower handle only moves up to meet a risen min, the upper
74
- // handle only moves down to meet a fallen max. Clamping against *both* of
75
- // the new min/max first (not just its own side) keeps a handle from
76
- // crossing the other if the domain shifts entirely past its old position.
77
- $effect(() => {
78
- lo = loAdjusted ? Math.min(Math.max(lo, section.min), section.max) : section.min;
79
- hi = hiAdjusted ? Math.max(Math.min(hi, section.max), section.min) : section.max;
80
- });
63
+ // A dragged handle is re-clamped into the new bounds.
64
+ $effect(() => {
65
+ lo = loAdjusted ? Math.min(Math.max(lo, section.min), section.max) : section.min;
66
+ hi = hiAdjusted ? Math.max(Math.min(hi, section.max), section.min) : section.max;
67
+ });
81
68
 
82
- function toT(v: number): number {
83
- return (v - section.min) / (section.max - section.min || 1);
84
- }
85
- const loT = $derived(toT(lo));
86
- const hiT = $derived(toT(hi));
69
+ function toT(v: number): number {
70
+ return (v - section.min) / (section.max - section.min || 1);
71
+ }
72
+ const loT = $derived(toT(lo));
73
+ const hiT = $derived(toT(hi));
87
74
 
88
- const colorDomain = $derived.by((): [number, number] =>
89
- isInteractive && (section.interactive?.mode ?? 'filter') === 'rescale'
90
- ? [lo, hi]
91
- : [section.min, section.max],
92
- );
93
- const colorScale = $derived(
94
- makeColorScale(
95
- colorDomain[0],
96
- colorDomain[1],
97
- section.colorMin ?? cfg.continuous.min,
98
- section.colorMax ?? cfg.continuous.max,
99
- ),
100
- );
75
+ const colorDomain = $derived.by((): [number, number] =>
76
+ isInteractive && (section.interactive?.mode ?? 'filter') === 'rescale'
77
+ ? [lo, hi]
78
+ : [section.min, section.max]
79
+ );
80
+ const colorScale = $derived(
81
+ section.scheme !== undefined
82
+ ? resolveColorScale({ scheme: section.scheme, pivot: section.pivot }, colorDomain, [
83
+ cfg.continuous.min,
84
+ cfg.continuous.max
85
+ ])
86
+ : makeColorScale(
87
+ colorDomain[0],
88
+ colorDomain[1],
89
+ section.colorMin ?? cfg.continuous.min,
90
+ section.colorMax ?? cfg.continuous.max
91
+ )
92
+ );
101
93
 
102
- const stops = $derived(
103
- Array.from({ length: 20 }, (_, i) => {
104
- const t = i / 19;
105
- const v = section.min + t * (section.max - section.min);
106
- return { offset: t * 100, color: colorScale(v) };
107
- }),
108
- );
94
+ const stops = $derived(
95
+ Array.from({ length: 20 }, (_, i) => {
96
+ const t = i / 19;
97
+ const v = section.min + t * (section.max - section.min);
98
+ return section.opacity
99
+ ? {
100
+ offset: t * 100,
101
+ color: section.colorMin ?? 'currentColor',
102
+ opacity: section.opacity[0] + t * (section.opacity[1] - section.opacity[0])
103
+ }
104
+ : { offset: t * 100, color: colorScale(v), opacity: 1 };
105
+ })
106
+ );
109
107
 
110
- $effect(() => {
111
- if (!isInteractive) return;
112
- interaction.continuousRange =
113
- lo <= section.min && hi >= section.max
114
- ? null
115
- : {
116
- min: lo,
117
- max: hi,
118
- mode: section.interactive?.mode ?? 'filter',
119
- disabledStyle: section.interactive?.disabledStyle ?? { opacity: cfg.legend.disabledOpacity },
120
- };
121
- });
108
+ $effect(() => {
109
+ if (!isInteractive) return;
110
+ interaction.range =
111
+ lo <= section.min && hi >= section.max
112
+ ? null
113
+ : {
114
+ min: lo,
115
+ max: hi,
116
+ mode: section.interactive?.mode ?? 'filter',
117
+ disabledStyle: section.interactive?.disabledStyle ?? {
118
+ opacity: cfg.legend.disabledOpacity
119
+ }
120
+ };
121
+ });
122
122
 
123
- // Mirrors an externally-set `interaction.continuousRange` into lo/hi.
124
- $effect(() => {
125
- if (!isInteractive) return;
126
- const range = interaction.continuousRange;
127
- if (range === null) {
128
- if (untrack(() => loAdjusted || hiAdjusted)) {
129
- loAdjusted = false;
130
- hiAdjusted = false;
131
- }
132
- return;
133
- }
134
- const [currentLo, currentHi] = untrack(() => [lo, hi]);
135
- if (range.min !== currentLo || range.max !== currentHi) {
136
- lo = range.min;
137
- hi = range.max;
138
- loAdjusted = true;
139
- hiAdjusted = true;
140
- }
141
- });
123
+ // Mirrors an externally-set `interaction.range` into lo/hi.
124
+ $effect(() => {
125
+ if (!isInteractive) return;
126
+ const range = interaction.range;
127
+ if (range === null) {
128
+ if (untrack(() => loAdjusted || hiAdjusted)) {
129
+ loAdjusted = false;
130
+ hiAdjusted = false;
131
+ }
132
+ return;
133
+ }
134
+ const [currentLo, currentHi] = untrack(() => [lo, hi]);
135
+ if (range.min !== currentLo || range.max !== currentHi) {
136
+ lo = range.min;
137
+ hi = range.max;
138
+ loAdjusted = true;
139
+ hiAdjusted = true;
140
+ }
141
+ });
142
142
 
143
- function startDrag(which: 'lo' | 'hi') {
144
- return (event: PointerEvent) => {
145
- if (!isInteractive) return;
146
- event.preventDefault();
147
- if (which === 'lo') loAdjusted = true;
148
- else hiAdjusted = true;
149
- const target = event.currentTarget as SVGElement;
150
- target.setPointerCapture(event.pointerId);
151
- const startX = event.clientX;
152
- const startValue = which === 'lo' ? lo : hi;
153
- const valuePerPixel = (section.max - section.min) / trackWidth;
143
+ function startDrag(which: 'lo' | 'hi') {
144
+ return (event: PointerEvent) => {
145
+ if (!isInteractive) return;
146
+ event.preventDefault();
147
+ if (which === 'lo') loAdjusted = true;
148
+ else hiAdjusted = true;
149
+ const target = event.currentTarget as SVGElement;
150
+ target.setPointerCapture(event.pointerId);
151
+ const startX = event.clientX;
152
+ const startValue = which === 'lo' ? lo : hi;
153
+ const valuePerPixel = (section.max - section.min) / trackWidth;
154
154
 
155
- function onMove(e: PointerEvent): void {
156
- const next = startValue + (e.clientX - startX) * valuePerPixel;
157
- if (which === 'lo') {
158
- lo = Math.max(section.min, Math.min(next, hi));
159
- } else {
160
- hi = Math.min(section.max, Math.max(next, lo));
161
- }
162
- }
163
- function onUp(e: PointerEvent): void {
164
- target.releasePointerCapture(e.pointerId);
165
- target.removeEventListener('pointermove', onMove);
166
- target.removeEventListener('pointerup', onUp);
167
- target.removeEventListener('pointercancel', onUp);
168
- }
169
- target.addEventListener('pointermove', onMove);
170
- target.addEventListener('pointerup', onUp);
171
- target.addEventListener('pointercancel', onUp);
172
- };
173
- }
155
+ function onMove(e: PointerEvent): void {
156
+ const next = startValue + (e.clientX - startX) * valuePerPixel;
157
+ if (which === 'lo') {
158
+ lo = Math.max(section.min, Math.min(next, hi));
159
+ } else {
160
+ hi = Math.min(section.max, Math.max(next, lo));
161
+ }
162
+ }
163
+ function onUp(e: PointerEvent): void {
164
+ target.releasePointerCapture(e.pointerId);
165
+ target.removeEventListener('pointermove', onMove);
166
+ target.removeEventListener('pointerup', onUp);
167
+ target.removeEventListener('pointercancel', onUp);
168
+ }
169
+ target.addEventListener('pointermove', onMove);
170
+ target.addEventListener('pointerup', onUp);
171
+ target.addEventListener('pointercancel', onUp);
172
+ };
173
+ }
174
174
 
175
- function resetHandle(which: 'lo' | 'hi') {
176
- return () => {
177
- if (which === 'lo') {
178
- lo = section.min;
179
- loAdjusted = false;
180
- } else {
181
- hi = section.max;
182
- hiAdjusted = false;
183
- }
184
- };
185
- }
175
+ function resetHandle(which: 'lo' | 'hi') {
176
+ return () => {
177
+ if (which === 'lo') {
178
+ lo = section.min;
179
+ loAdjusted = false;
180
+ } else {
181
+ hi = section.max;
182
+ hiAdjusted = false;
183
+ }
184
+ };
185
+ }
186
186
 
187
- let loLabelWidth = $state(0);
188
- let hiLabelWidth = $state(0);
187
+ let loLabelWidth = $state(0);
188
+ let hiLabelWidth = $state(0);
189
189
 
190
- const labelsOverlap = $derived(
191
- isInteractive &&
192
- cfg.legend.continuous.label.overlap.enabled &&
193
- (hiT - loT) * trackWidth - loLabelWidth - hiLabelWidth < cfg.legend.continuous.label.overlap.margin,
194
- );
190
+ const labelsOverlap = $derived(
191
+ isInteractive &&
192
+ cfg.legend.continuous.label.overlap.enabled &&
193
+ (hiT - loT) * trackWidth - loLabelWidth - hiLabelWidth <
194
+ cfg.legend.continuous.label.overlap.margin
195
+ );
195
196
  </script>
196
197
 
197
198
  <div class="dct-continuous" style:width="{barWidth}px">
198
- <svg width={barWidth} height={svgHeight} style="overflow: visible">
199
- <defs>
200
- <linearGradient id={gradientId} x1="0" x2="1" y1="0" y2="0">
201
- {#each stops as s (s.offset)}
202
- <stop offset="{s.offset}%" stop-color={s.color} />
203
- {/each}
204
- </linearGradient>
205
- </defs>
206
- <rect x={handleBleed} width={trackWidth} height={barHeight} rx={barRadius} fill="url(#{gradientId})" />
207
- {#each tickPositions as tick (tick.v)}
208
- <rect class="dct-continuous__tick-mark" x={trackX(tick.t)} y={barHeight} />
209
- {/each}
199
+ <svg width={barWidth} height={svgHeight} style="overflow: visible">
200
+ <defs>
201
+ <linearGradient id={gradientId} x1="0" x2="1" y1="0" y2="0">
202
+ {#each stops as s (s.offset)}
203
+ <stop offset="{s.offset}%" stop-color={s.color} stop-opacity={s.opacity} />
204
+ {/each}
205
+ </linearGradient>
206
+ </defs>
207
+ <rect
208
+ x={handleBleed}
209
+ width={trackWidth}
210
+ height={barHeight}
211
+ rx={barRadius}
212
+ fill="url(#{gradientId})"
213
+ />
214
+ {#each tickPositions as tick (tick.v)}
215
+ <rect class="dct-continuous__tick-mark" x={trackX(tick.t)} y={barHeight} />
216
+ {/each}
210
217
 
211
- {#if isInteractive}
212
- {#if loT > 0}
213
- <rect x={handleBleed} y="0" width={loT * trackWidth} height={barHeight} rx={barRadius} fill={excludedStyle.fill} fill-opacity={excludedStyle.opacity} />
214
- {/if}
215
- {#if hiT < 1}
216
- <rect x={trackX(hiT)} y="0" width={trackWidth - hiT * trackWidth} height={barHeight} rx={barRadius} fill={excludedStyle.fill} fill-opacity={excludedStyle.opacity} />
217
- {/if}
218
- {#if section.interactive?.handle}
219
- {@render section.interactive.handle({
220
- which: 'lo',
221
- value: lo,
222
- position: loT,
223
- onpointerdown: startDrag('lo'),
224
- ondoubleclick: resetHandle('lo'),
225
- })}
226
- {@render section.interactive.handle({
227
- which: 'hi',
228
- value: hi,
229
- position: hiT,
230
- onpointerdown: startDrag('hi'),
231
- ondoubleclick: resetHandle('hi'),
232
- })}
233
- {:else}
234
- <rect
235
- class="dct-continuous__handle"
236
- bind:this={loHandleEl}
237
- x={trackX(loT)}
238
- y={barHeight / 2}
239
- onpointerdown={startDrag('lo')}
240
- ondblclick={resetHandle('lo')}
241
- role="slider"
242
- aria-label="Margen inferior"
243
- aria-valuemin={section.min}
244
- aria-valuemax={hi}
245
- aria-valuenow={lo}
246
- tabindex="0"
247
- />
248
- <rect
249
- class="dct-continuous__handle"
250
- x={trackX(hiT)}
251
- y={barHeight / 2}
252
- onpointerdown={startDrag('hi')}
253
- ondblclick={resetHandle('hi')}
254
- role="slider"
255
- aria-label="Margen superior"
256
- aria-valuemin={lo}
257
- aria-valuemax={section.max}
258
- aria-valuenow={hi}
259
- tabindex="0"
260
- />
261
- {/if}
262
- {/if}
263
- </svg>
218
+ {#if isInteractive}
219
+ {#if loT > 0}
220
+ <rect
221
+ x={handleBleed}
222
+ y="0"
223
+ width={loT * trackWidth}
224
+ height={barHeight}
225
+ rx={barRadius}
226
+ fill={excludedStyle.fill}
227
+ fill-opacity={excludedStyle.opacity}
228
+ />
229
+ {/if}
230
+ {#if hiT < 1}
231
+ <rect
232
+ x={trackX(hiT)}
233
+ y="0"
234
+ width={trackWidth - hiT * trackWidth}
235
+ height={barHeight}
236
+ rx={barRadius}
237
+ fill={excludedStyle.fill}
238
+ fill-opacity={excludedStyle.opacity}
239
+ />
240
+ {/if}
241
+ {#if section.interactive?.handle}
242
+ {@render section.interactive.handle({
243
+ which: 'lo',
244
+ value: lo,
245
+ position: loT,
246
+ onpointerdown: startDrag('lo'),
247
+ ondoubleclick: resetHandle('lo')
248
+ })}
249
+ {@render section.interactive.handle({
250
+ which: 'hi',
251
+ value: hi,
252
+ position: hiT,
253
+ onpointerdown: startDrag('hi'),
254
+ ondoubleclick: resetHandle('hi')
255
+ })}
256
+ {:else}
257
+ <rect
258
+ class="dct-continuous__handle"
259
+ bind:this={loHandleEl}
260
+ x={trackX(loT)}
261
+ y={barHeight / 2}
262
+ onpointerdown={startDrag('lo')}
263
+ ondblclick={resetHandle('lo')}
264
+ role="slider"
265
+ aria-label="Lower bound"
266
+ aria-valuemin={section.min}
267
+ aria-valuemax={hi}
268
+ aria-valuenow={lo}
269
+ tabindex="0"
270
+ />
271
+ <rect
272
+ class="dct-continuous__handle"
273
+ x={trackX(hiT)}
274
+ y={barHeight / 2}
275
+ onpointerdown={startDrag('hi')}
276
+ ondblclick={resetHandle('hi')}
277
+ role="slider"
278
+ aria-label="Upper bound"
279
+ aria-valuemin={lo}
280
+ aria-valuemax={section.max}
281
+ aria-valuenow={hi}
282
+ tabindex="0"
283
+ />
284
+ {/if}
285
+ {/if}
286
+ </svg>
264
287
 
265
- <div class="dct-continuous__labels" style:width="{barWidth}px">
266
- {#if isInteractive}
267
- <span class="dct-continuous__tick-measure" aria-hidden="true" bind:clientWidth={loLabelWidth}>{fmt(lo)}</span>
268
- <span class="dct-continuous__tick-measure" aria-hidden="true" bind:clientWidth={hiLabelWidth}>{fmt(hi)}</span>
269
- <span
270
- class="dct-continuous__tick dct-continuous__tick--handle-lo"
271
- class:dct-continuous__tick--vertical={labelsOverlap}
272
- style:left="{trackX(loT)}px"
273
- >{fmt(lo)}</span>
274
- <span
275
- class="dct-continuous__tick dct-continuous__tick--handle-hi"
276
- class:dct-continuous__tick--vertical={labelsOverlap}
277
- style:left="{trackX(hiT)}px"
278
- >{fmt(hi)}</span>
279
- {:else}
280
- <span class="dct-continuous__edge dct-continuous__edge--start">{fmt(section.min)}</span>
281
- {#each tickPositions as tick (tick.v)}
282
- <span class="dct-continuous__tick" style:left="{trackX(tick.t)}px">{tick.label}</span>
283
- {/each}
284
- <span class="dct-continuous__edge dct-continuous__edge--end">{fmt(section.max)}</span>
285
- {/if}
286
- </div>
288
+ <div class="dct-continuous__labels" style:width="{barWidth}px">
289
+ {#if isInteractive}
290
+ <span class="dct-continuous__tick-measure" aria-hidden="true" bind:clientWidth={loLabelWidth}
291
+ >{fmt(lo)}</span
292
+ >
293
+ <span class="dct-continuous__tick-measure" aria-hidden="true" bind:clientWidth={hiLabelWidth}
294
+ >{fmt(hi)}</span
295
+ >
296
+ <span
297
+ class="dct-continuous__tick dct-continuous__tick--handle-lo"
298
+ class:dct-continuous__tick--vertical={labelsOverlap}
299
+ style:left="{trackX(loT)}px">{fmt(lo)}</span
300
+ >
301
+ <span
302
+ class="dct-continuous__tick dct-continuous__tick--handle-hi"
303
+ class:dct-continuous__tick--vertical={labelsOverlap}
304
+ style:left="{trackX(hiT)}px">{fmt(hi)}</span
305
+ >
306
+ {:else}
307
+ <span class="dct-continuous__edge dct-continuous__edge--start">{fmt(section.min)}</span>
308
+ {#each tickPositions as tick (tick.v)}
309
+ <span class="dct-continuous__tick" style:left="{trackX(tick.t)}px">{tick.label}</span>
310
+ {/each}
311
+ <span class="dct-continuous__edge dct-continuous__edge--end">{fmt(section.max)}</span>
312
+ {/if}
313
+ </div>
287
314
  </div>
288
315
 
289
316
  <style>
290
- .dct-continuous {
291
- display: flex;
292
- flex-direction: column;
293
- gap: 0.25rem;
294
- }
295
- .dct-continuous__labels {
296
- position: relative;
297
- height: 1rem;
298
- font-size: var(--dct-continuous-label-size, 0.875rem);
299
- user-select: none;
300
- }
301
- .dct-continuous__edge {
302
- position: absolute;
303
- transform: rotate(var(--dct-continuous-label-rotate, 0deg));
304
- }
305
- .dct-continuous__edge--start {
306
- left: 0;
307
- }
308
- .dct-continuous__edge--end {
309
- right: 0;
310
- }
311
- .dct-continuous__tick {
312
- position: absolute;
313
- white-space: nowrap;
314
- transform: translateX(-50%) rotate(var(--dct-continuous-label-rotate, 0deg));
315
- }
316
- /*
317
- * Anchored outward (not centered, unlike a plain tick) so the label always
318
- * grows into the bar instead of over its own edge — a centered label at
319
- * lo=min or hi=max would overflow past `.dct-chart`'s `overflow: hidden`
320
- * and get clipped, exactly like the old fixed min/max edge labels never did.
321
- */
322
- .dct-continuous__tick--handle-lo,
323
- .dct-continuous__tick--handle-hi {
324
- font-weight: var(--dct-continuous-label-weight, 600);
325
- }
326
- .dct-continuous__tick--handle-lo {
327
- transform: rotate(var(--dct-continuous-label-rotate, 0deg));
328
- }
329
- .dct-continuous__tick--handle-hi {
330
- transform: translateX(-100%) rotate(var(--dct-continuous-label-rotate, 0deg));
331
- }
332
- /* Invisible, always-horizontal twin used only to measure a handle label's
333
- natural width (see `labelsOverlap` above) — never rendered. */
334
- .dct-continuous__tick-measure {
335
- position: absolute;
336
- visibility: hidden;
337
- white-space: nowrap;
338
- font-weight: var(--dct-continuous-label-weight, 600);
339
- }
340
- /*
341
- * Once the two handle labels would otherwise collide, both read
342
- * top-to-bottom instead of left-to-right — the *same* rotation and the
343
- * *same* pivot corner for lo and hi, so the two read identically instead
344
- * of one appearing mirrored against the other. Pivoting on the label's
345
- * own bottom-left corner (exactly where `left: <anchor>px` already
346
- * places it) means the rotation doesn't shift the label off its anchor
347
- * at all — it grows right-and-down from the point it was already
348
- * sitting at, the same "grow into the bar, not off the container's edge"
349
- * reasoning as the horizontal anchoring above.
350
- */
351
- .dct-continuous__tick--handle-lo.dct-continuous__tick--vertical,
352
- .dct-continuous__tick--handle-hi.dct-continuous__tick--vertical {
353
- transform-origin: left bottom;
354
- transform: rotate(var(--dct-continuous-label-overlap-rotate, 90deg));
355
- }
356
- /* Tick mark below the bar at each non-interactive tick's position. */
357
- .dct-continuous__tick-mark {
358
- width: var(--dct-continuous-tick-width, 1px);
359
- height: var(--dct-continuous-tick-length, 6px);
360
- fill: var(--dct-continuous-tick-color, currentColor);
361
- transform-box: fill-box;
362
- transform: translateX(-50%);
363
- }
364
- /* Draggable lo/hi handle. */
365
- .dct-continuous__handle {
366
- width: var(--dct-continuous-handle-width, 6px);
367
- height: var(--dct-continuous-handle-height, 20px);
368
- rx: var(--dct-continuous-handle-radius, 3px);
369
- fill: var(--dct-continuous-handle-fill, currentColor);
370
- stroke: var(--dct-continuous-handle-stroke, var(--dct-bg, #fff));
371
- stroke-width: var(--dct-continuous-handle-stroke-width, 1.5px);
372
- transform-box: fill-box;
373
- transform-origin: center;
374
- transform: translate(-50%, -50%);
375
- cursor: ew-resize;
376
- touch-action: none;
377
- }
378
- .dct-continuous__handle:focus-visible {
379
- outline: 2px solid currentColor;
380
- outline-offset: 2px;
381
- }
317
+ .dct-continuous {
318
+ display: flex;
319
+ flex-direction: column;
320
+ gap: 0.25rem;
321
+ }
322
+ .dct-continuous__labels {
323
+ position: relative;
324
+ height: 1rem;
325
+ font-size: var(--dct-continuous-label-size, 0.875rem);
326
+ user-select: none;
327
+ }
328
+ .dct-continuous__edge {
329
+ position: absolute;
330
+ transform: rotate(var(--dct-continuous-label-rotate, 0deg));
331
+ }
332
+ .dct-continuous__edge--start {
333
+ left: 0;
334
+ }
335
+ .dct-continuous__edge--end {
336
+ right: 0;
337
+ }
338
+ .dct-continuous__tick {
339
+ position: absolute;
340
+ white-space: nowrap;
341
+ transform: translateX(-50%) rotate(var(--dct-continuous-label-rotate, 0deg));
342
+ }
343
+ /* Anchored outward so the label grows into the bar. */
344
+ .dct-continuous__tick--handle-lo,
345
+ .dct-continuous__tick--handle-hi {
346
+ font-weight: var(--dct-continuous-label-weight, 600);
347
+ }
348
+ .dct-continuous__tick--handle-lo {
349
+ transform: rotate(var(--dct-continuous-label-rotate, 0deg));
350
+ }
351
+ .dct-continuous__tick--handle-hi {
352
+ transform: translateX(-100%) rotate(var(--dct-continuous-label-rotate, 0deg));
353
+ }
354
+ /* Invisible, always-horizontal twin used only to measure a handle label's
355
+ natural width (see `labelsOverlap` above) - never rendered. */
356
+ .dct-continuous__tick-measure {
357
+ position: absolute;
358
+ visibility: hidden;
359
+ white-space: nowrap;
360
+ font-weight: var(--dct-continuous-label-weight, 600);
361
+ }
362
+ /* Handle labels that would collide read top to bottom, pivoting on their anchor. */
363
+ .dct-continuous__tick--handle-lo.dct-continuous__tick--vertical,
364
+ .dct-continuous__tick--handle-hi.dct-continuous__tick--vertical {
365
+ transform-origin: left bottom;
366
+ transform: rotate(var(--dct-continuous-label-overlap-rotate, 90deg));
367
+ }
368
+ /* Tick mark below the bar at each non-interactive tick's position. */
369
+ .dct-continuous__tick-mark {
370
+ width: var(--dct-continuous-tick-width, 1px);
371
+ height: var(--dct-continuous-tick-length, 6px);
372
+ fill: var(--dct-continuous-tick-color, currentColor);
373
+ transform-box: fill-box;
374
+ transform: translateX(-50%);
375
+ }
376
+ /* Draggable lo/hi handle. */
377
+ .dct-continuous__handle {
378
+ width: var(--dct-continuous-handle-width, 6px);
379
+ height: var(--dct-continuous-handle-height, 20px);
380
+ rx: var(--dct-continuous-handle-radius, 3px);
381
+ fill: var(--dct-continuous-handle-fill, currentColor);
382
+ stroke: var(--dct-continuous-handle-stroke, var(--dct-bg, #fff));
383
+ stroke-width: var(--dct-continuous-handle-stroke-width, 1.5px);
384
+ transform-box: fill-box;
385
+ transform-origin: center;
386
+ transform: translate(-50%, -50%);
387
+ cursor: ew-resize;
388
+ touch-action: none;
389
+ }
390
+ .dct-continuous__handle:focus-visible {
391
+ outline: 2px solid currentColor;
392
+ outline-offset: 2px;
393
+ }
382
394
  </style>