matterviz 0.3.7 → 0.4.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 (324) hide show
  1. package/dist/Icon.svelte +7 -4
  2. package/dist/MillerIndexInput.svelte +1 -1
  3. package/dist/api/optimade.js +32 -26
  4. package/dist/app.css +0 -3
  5. package/dist/brillouin/BrillouinZone.svelte +8 -3
  6. package/dist/brillouin/BrillouinZone.svelte.d.ts +2 -1
  7. package/dist/brillouin/BrillouinZoneScene.svelte +52 -6
  8. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -0
  9. package/dist/brillouin/BrillouinZoneTooltip.svelte +16 -25
  10. package/dist/brillouin/compute.js +10 -14
  11. package/dist/chempot-diagram/ChemPotDiagram.svelte +14 -13
  12. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +12 -15
  13. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +8 -10
  14. package/dist/chempot-diagram/async-compute.svelte.js +3 -1
  15. package/dist/chempot-diagram/chempot-worker.js +2 -1
  16. package/dist/chempot-diagram/compute.d.ts +1 -1
  17. package/dist/chempot-diagram/compute.js +17 -19
  18. package/dist/colors/index.js +6 -5
  19. package/dist/composition/FormulaFilter.svelte +12 -6
  20. package/dist/composition/PieChart.svelte +6 -5
  21. package/dist/composition/chem-sys.d.ts +8 -0
  22. package/dist/composition/chem-sys.js +85 -0
  23. package/dist/composition/format.js +4 -2
  24. package/dist/composition/index.d.ts +1 -0
  25. package/dist/composition/index.js +1 -0
  26. package/dist/composition/parse.js +25 -13
  27. package/dist/convex-hull/ConvexHull2D.svelte +12 -10
  28. package/dist/convex-hull/ConvexHull3D.svelte +5 -5
  29. package/dist/convex-hull/ConvexHull4D.svelte +5 -9
  30. package/dist/convex-hull/ConvexHullStats.svelte +12 -12
  31. package/dist/convex-hull/GasPressureControls.svelte +4 -4
  32. package/dist/convex-hull/TemperatureSlider.svelte +2 -2
  33. package/dist/convex-hull/demo-temperature.d.ts +1 -1
  34. package/dist/convex-hull/demo-temperature.js +20 -22
  35. package/dist/convex-hull/gas-thermodynamics.d.ts +2 -2
  36. package/dist/convex-hull/gas-thermodynamics.js +22 -30
  37. package/dist/convex-hull/helpers.d.ts +3 -0
  38. package/dist/convex-hull/helpers.js +17 -9
  39. package/dist/convex-hull/index.d.ts +1 -1
  40. package/dist/convex-hull/thermodynamics.js +83 -78
  41. package/dist/convex-hull/types.d.ts +1 -1
  42. package/dist/coordination/CoordinationBarPlot.svelte +23 -23
  43. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
  44. package/dist/element/ElementTile.svelte.d.ts +1 -1
  45. package/dist/fermi-surface/FermiSlice.svelte +13 -5
  46. package/dist/fermi-surface/FermiSurface.svelte +11 -5
  47. package/dist/fermi-surface/FermiSurface.svelte.d.ts +1 -1
  48. package/dist/fermi-surface/FermiSurfaceControls.svelte +1 -1
  49. package/dist/fermi-surface/FermiSurfaceScene.svelte +3 -0
  50. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +8 -34
  51. package/dist/fermi-surface/compute.js +59 -59
  52. package/dist/fermi-surface/export.js +3 -2
  53. package/dist/fermi-surface/parse.js +7 -4
  54. package/dist/fermi-surface/types.d.ts +1 -0
  55. package/dist/heatmap-matrix/HeatmapMatrix.svelte +23 -21
  56. package/dist/heatmap-matrix/index.js +1 -1
  57. package/dist/io/decompress.js +4 -2
  58. package/dist/io/export.d.ts +4 -4
  59. package/dist/io/export.js +47 -25
  60. package/dist/io/fetch.js +5 -1
  61. package/dist/io/file-drop.d.ts +1 -1
  62. package/dist/io/file-drop.js +35 -36
  63. package/dist/io/url-drop.js +64 -33
  64. package/dist/isosurface/parse.js +6 -7
  65. package/dist/isosurface/slice.js +5 -4
  66. package/dist/isosurface/types.js +1 -1
  67. package/dist/keyboard.d.ts +3 -0
  68. package/dist/keyboard.js +23 -0
  69. package/dist/labels.d.ts +1 -1
  70. package/dist/labels.js +8 -7
  71. package/dist/layout/PropertyFilter.svelte +3 -2
  72. package/dist/layout/SettingsSection.svelte +1 -1
  73. package/dist/layout/json-tree/JsonNode.svelte +1 -1
  74. package/dist/layout/json-tree/JsonTree.svelte +2 -2
  75. package/dist/layout/json-tree/utils.js +5 -4
  76. package/dist/marching-cubes.js +8 -13
  77. package/dist/math.d.ts +5 -1
  78. package/dist/math.js +24 -9
  79. package/dist/overlays/DraggablePane.svelte +4 -4
  80. package/dist/periodic-table/PeriodicTable.svelte +20 -9
  81. package/dist/periodic-table/PropertySelect.svelte +1 -0
  82. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +9 -3
  83. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +1 -1
  84. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
  85. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
  86. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +1 -1
  87. package/dist/phase-diagram/build-diagram.js +2 -2
  88. package/dist/phase-diagram/parse.js +6 -5
  89. package/dist/phase-diagram/types.d.ts +1 -1
  90. package/dist/phase-diagram/utils.d.ts +3 -3
  91. package/dist/phase-diagram/utils.js +8 -12
  92. package/dist/plot/{BarPlot.svelte → bar/BarPlot.svelte} +229 -587
  93. package/dist/plot/{BarPlot.svelte.d.ts → bar/BarPlot.svelte.d.ts} +5 -5
  94. package/dist/plot/{BarPlotControls.svelte → bar/BarPlotControls.svelte} +6 -5
  95. package/dist/plot/{BarPlotControls.svelte.d.ts → bar/BarPlotControls.svelte.d.ts} +3 -3
  96. package/dist/plot/{SpacegroupBarPlot.svelte → bar/SpacegroupBarPlot.svelte} +6 -6
  97. package/dist/plot/{SpacegroupBarPlot.svelte.d.ts → bar/SpacegroupBarPlot.svelte.d.ts} +1 -1
  98. package/dist/plot/bar/data.d.ts +40 -0
  99. package/dist/plot/bar/data.js +154 -0
  100. package/dist/plot/bar/geometry.d.ts +39 -0
  101. package/dist/plot/bar/geometry.js +60 -0
  102. package/dist/plot/bar/index.d.ts +3 -0
  103. package/dist/plot/bar/index.js +3 -0
  104. package/dist/plot/box/BoxPlot.svelte +1462 -0
  105. package/dist/plot/box/BoxPlot.svelte.d.ts +94 -0
  106. package/dist/plot/box/BoxPlotControls.svelte +109 -0
  107. package/dist/plot/box/BoxPlotControls.svelte.d.ts +19 -0
  108. package/dist/plot/box/Violin.svelte +14 -0
  109. package/dist/plot/box/Violin.svelte.d.ts +70 -0
  110. package/dist/plot/box/box-plot.d.ts +55 -0
  111. package/dist/plot/box/box-plot.js +126 -0
  112. package/dist/plot/box/index.d.ts +5 -0
  113. package/dist/plot/box/index.js +5 -0
  114. package/dist/plot/box/kde.d.ts +16 -0
  115. package/dist/plot/box/kde.js +160 -0
  116. package/dist/plot/box/quantile.d.ts +3 -0
  117. package/dist/plot/box/quantile.js +53 -0
  118. package/dist/plot/{auto-place.js → core/auto-place.js} +2 -2
  119. package/dist/plot/core/axis-utils.d.ts +46 -0
  120. package/dist/plot/core/axis-utils.js +110 -0
  121. package/dist/plot/{AxisLabel.svelte → core/components/AxisLabel.svelte} +2 -2
  122. package/dist/plot/{AxisLabel.svelte.d.ts → core/components/AxisLabel.svelte.d.ts} +1 -1
  123. package/dist/plot/{ColorBar.svelte → core/components/ColorBar.svelte} +36 -33
  124. package/dist/plot/{ColorBar.svelte.d.ts → core/components/ColorBar.svelte.d.ts} +2 -2
  125. package/dist/plot/{ColorScaleSelect.svelte → core/components/ColorScaleSelect.svelte} +4 -3
  126. package/dist/plot/{ColorScaleSelect.svelte.d.ts → core/components/ColorScaleSelect.svelte.d.ts} +2 -2
  127. package/dist/plot/core/components/ControlPane.svelte +46 -0
  128. package/dist/plot/core/components/ControlPane.svelte.d.ts +13 -0
  129. package/dist/plot/{FillArea.svelte → core/components/FillArea.svelte} +17 -6
  130. package/dist/plot/{FillArea.svelte.d.ts → core/components/FillArea.svelte.d.ts} +1 -1
  131. package/dist/plot/{InteractiveAxisLabel.svelte → core/components/InteractiveAxisLabel.svelte} +3 -3
  132. package/dist/plot/{InteractiveAxisLabel.svelte.d.ts → core/components/InteractiveAxisLabel.svelte.d.ts} +2 -2
  133. package/dist/plot/{Line.svelte → core/components/Line.svelte} +30 -13
  134. package/dist/plot/{PlotAxis.svelte → core/components/PlotAxis.svelte} +7 -5
  135. package/dist/plot/{PlotAxis.svelte.d.ts → core/components/PlotAxis.svelte.d.ts} +3 -2
  136. package/dist/plot/{PlotControls.svelte → core/components/PlotControls.svelte} +17 -29
  137. package/dist/plot/core/components/PlotControls.svelte.d.ts +4 -0
  138. package/dist/plot/{PlotLegend.svelte → core/components/PlotLegend.svelte} +21 -10
  139. package/dist/plot/{PlotLegend.svelte.d.ts → core/components/PlotLegend.svelte.d.ts} +3 -2
  140. package/dist/plot/{PlotTooltip.svelte → core/components/PlotTooltip.svelte} +17 -1
  141. package/dist/plot/{PlotTooltip.svelte.d.ts → core/components/PlotTooltip.svelte.d.ts} +8 -0
  142. package/dist/plot/{PortalSelect.svelte → core/components/PortalSelect.svelte} +11 -7
  143. package/dist/plot/{ReferenceLine.svelte → core/components/ReferenceLine.svelte} +3 -3
  144. package/dist/plot/{ReferenceLine.svelte.d.ts → core/components/ReferenceLine.svelte.d.ts} +1 -1
  145. package/dist/plot/{ReferenceLine3D.svelte → core/components/ReferenceLine3D.svelte} +4 -4
  146. package/dist/plot/{ReferenceLine3D.svelte.d.ts → core/components/ReferenceLine3D.svelte.d.ts} +2 -2
  147. package/dist/plot/{ReferencePlane.svelte → core/components/ReferencePlane.svelte} +7 -7
  148. package/dist/plot/{ReferencePlane.svelte.d.ts → core/components/ReferencePlane.svelte.d.ts} +2 -2
  149. package/dist/plot/{ZeroLines.svelte → core/components/ZeroLines.svelte} +3 -3
  150. package/dist/plot/{ZeroLines.svelte.d.ts → core/components/ZeroLines.svelte.d.ts} +3 -3
  151. package/dist/plot/{ZoomRect.svelte → core/components/ZoomRect.svelte} +1 -1
  152. package/dist/plot/{ZoomRect.svelte.d.ts → core/components/ZoomRect.svelte.d.ts} +1 -1
  153. package/dist/plot/core/components/index.d.ts +17 -0
  154. package/dist/plot/core/components/index.js +17 -0
  155. package/dist/plot/{data-cleaning.d.ts → core/data-cleaning.d.ts} +71 -1
  156. package/dist/plot/{data-cleaning.js → core/data-cleaning.js} +3 -5
  157. package/dist/plot/{data-transform.d.ts → core/data-transform.d.ts} +2 -2
  158. package/dist/plot/{data-transform.js → core/data-transform.js} +3 -3
  159. package/dist/plot/core/fill-utils.d.ts +33 -0
  160. package/dist/plot/core/fill-utils.js +388 -0
  161. package/dist/plot/{hover-lock.svelte.js → core/hover-lock.svelte.js} +5 -6
  162. package/dist/plot/core/index.d.ts +10 -0
  163. package/dist/plot/core/index.js +11 -0
  164. package/dist/plot/core/interactions.d.ts +35 -0
  165. package/dist/plot/core/interactions.js +195 -0
  166. package/dist/plot/{layout.d.ts → core/layout.d.ts} +1 -0
  167. package/dist/plot/{layout.js → core/layout.js} +16 -8
  168. package/dist/plot/{reference-line.d.ts → core/reference-line.d.ts} +1 -1
  169. package/dist/plot/{reference-line.js → core/reference-line.js} +23 -36
  170. package/dist/plot/{scales.d.ts → core/scales.d.ts} +2 -2
  171. package/dist/plot/{scales.js → core/scales.js} +84 -85
  172. package/dist/plot/core/svg.d.ts +2 -0
  173. package/dist/plot/core/svg.js +41 -0
  174. package/dist/plot/{types.d.ts → core/types.d.ts} +19 -79
  175. package/dist/plot/{types.js → core/types.js} +1 -1
  176. package/dist/plot/{utils → core/utils}/label-placement.d.ts +2 -2
  177. package/dist/plot/core/utils/series-visibility.d.ts +26 -0
  178. package/dist/plot/{utils → core/utils}/series-visibility.js +29 -2
  179. package/dist/plot/core/utils.d.ts +11 -0
  180. package/dist/plot/core/utils.js +27 -0
  181. package/dist/plot/{Histogram.svelte → histogram/Histogram.svelte} +154 -294
  182. package/dist/plot/{Histogram.svelte.d.ts → histogram/Histogram.svelte.d.ts} +2 -2
  183. package/dist/plot/{HistogramControls.svelte → histogram/HistogramControls.svelte} +6 -6
  184. package/dist/plot/{HistogramControls.svelte.d.ts → histogram/HistogramControls.svelte.d.ts} +4 -4
  185. package/dist/plot/histogram/index.d.ts +2 -0
  186. package/dist/plot/histogram/index.js +2 -0
  187. package/dist/plot/index.d.ts +8 -41
  188. package/dist/plot/index.js +10 -39
  189. package/dist/plot/sankey/Sankey.svelte +700 -0
  190. package/dist/plot/sankey/Sankey.svelte.d.ts +74 -0
  191. package/dist/plot/sankey/SankeyControls.svelte +98 -0
  192. package/dist/plot/sankey/SankeyControls.svelte.d.ts +19 -0
  193. package/dist/plot/sankey/index.d.ts +4 -0
  194. package/dist/plot/sankey/index.js +3 -0
  195. package/dist/plot/sankey/sankey-types.d.ts +42 -0
  196. package/dist/plot/sankey/sankey-types.js +4 -0
  197. package/dist/plot/sankey/sankey.d.ts +52 -0
  198. package/dist/plot/sankey/sankey.js +187 -0
  199. package/dist/plot/{BinnedScatterPlot.svelte → scatter/BinnedScatterPlot.svelte} +61 -59
  200. package/dist/plot/{BinnedScatterPlot.svelte.d.ts → scatter/BinnedScatterPlot.svelte.d.ts} +4 -4
  201. package/dist/plot/{ElementScatter.svelte → scatter/ElementScatter.svelte} +6 -6
  202. package/dist/plot/{ElementScatter.svelte.d.ts → scatter/ElementScatter.svelte.d.ts} +2 -2
  203. package/dist/plot/{ScatterPlot.svelte → scatter/ScatterPlot.svelte} +221 -642
  204. package/dist/plot/{ScatterPlot.svelte.d.ts → scatter/ScatterPlot.svelte.d.ts} +7 -7
  205. package/dist/plot/{ScatterPlotControls.svelte → scatter/ScatterPlotControls.svelte} +6 -5
  206. package/dist/plot/{ScatterPlotControls.svelte.d.ts → scatter/ScatterPlotControls.svelte.d.ts} +1 -1
  207. package/dist/plot/{ScatterPoint.svelte → scatter/ScatterPoint.svelte} +7 -7
  208. package/dist/plot/{ScatterPoint.svelte.d.ts → scatter/ScatterPoint.svelte.d.ts} +3 -3
  209. package/dist/plot/{adaptive-density.d.ts → scatter/adaptive-density.d.ts} +14 -4
  210. package/dist/plot/{adaptive-density.js → scatter/adaptive-density.js} +46 -20
  211. package/dist/plot/{binned-scatter-types.d.ts → scatter/binned-scatter-types.d.ts} +3 -3
  212. package/dist/plot/scatter/index.d.ts +7 -0
  213. package/dist/plot/scatter/index.js +5 -0
  214. package/dist/plot/scatter/scatter-data.d.ts +19 -0
  215. package/dist/plot/scatter/scatter-data.js +212 -0
  216. package/dist/plot/{ScatterPlot3D.svelte → scatter-3d/ScatterPlot3D.svelte} +12 -10
  217. package/dist/plot/{ScatterPlot3D.svelte.d.ts → scatter-3d/ScatterPlot3D.svelte.d.ts} +7 -7
  218. package/dist/plot/{ScatterPlot3DControls.svelte → scatter-3d/ScatterPlot3DControls.svelte} +5 -4
  219. package/dist/plot/{ScatterPlot3DControls.svelte.d.ts → scatter-3d/ScatterPlot3DControls.svelte.d.ts} +2 -2
  220. package/dist/plot/{ScatterPlot3DScene.svelte → scatter-3d/ScatterPlot3DScene.svelte} +11 -11
  221. package/dist/plot/{ScatterPlot3DScene.svelte.d.ts → scatter-3d/ScatterPlot3DScene.svelte.d.ts} +3 -3
  222. package/dist/plot/{Surface3D.svelte → scatter-3d/Surface3D.svelte} +1 -1
  223. package/dist/plot/{Surface3D.svelte.d.ts → scatter-3d/Surface3D.svelte.d.ts} +1 -1
  224. package/dist/plot/scatter-3d/index.d.ts +4 -0
  225. package/dist/plot/scatter-3d/index.js +4 -0
  226. package/dist/plot/sunburst/Sunburst.svelte +1045 -0
  227. package/dist/plot/sunburst/Sunburst.svelte.d.ts +96 -0
  228. package/dist/plot/sunburst/SunburstControls.svelte +200 -0
  229. package/dist/plot/sunburst/SunburstControls.svelte.d.ts +26 -0
  230. package/dist/plot/sunburst/index.d.ts +4 -0
  231. package/dist/plot/sunburst/index.js +4 -0
  232. package/dist/plot/sunburst/render.d.ts +34 -0
  233. package/dist/plot/sunburst/render.js +122 -0
  234. package/dist/plot/sunburst/sunburst.d.ts +62 -0
  235. package/dist/plot/sunburst/sunburst.js +266 -0
  236. package/dist/rdf/RdfPlot.svelte +2 -1
  237. package/dist/rdf/calc-rdf.js +11 -24
  238. package/dist/sanitize.js +1 -1
  239. package/dist/settings.d.ts +65 -1
  240. package/dist/settings.js +262 -0
  241. package/dist/spectral/Bands.svelte +39 -29
  242. package/dist/spectral/Bands.svelte.d.ts +3 -4
  243. package/dist/spectral/BandsAndDos.svelte +1 -1
  244. package/dist/spectral/BrillouinBandsDos.svelte +39 -27
  245. package/dist/spectral/Dos.svelte +10 -19
  246. package/dist/spectral/Dos.svelte.d.ts +2 -2
  247. package/dist/spectral/helpers.d.ts +3 -1
  248. package/dist/spectral/helpers.js +95 -29
  249. package/dist/structure/AtomLegend.svelte +8 -9
  250. package/dist/structure/CellSelect.svelte +1 -2
  251. package/dist/structure/Cylinder.svelte +12 -8
  252. package/dist/structure/Cylinder.svelte.d.ts +4 -1
  253. package/dist/structure/Structure.svelte +78 -72
  254. package/dist/structure/Structure.svelte.d.ts +1 -1
  255. package/dist/structure/StructureInfoPane.svelte +5 -6
  256. package/dist/structure/StructureScene.svelte +11 -10
  257. package/dist/structure/atom-properties.js +6 -6
  258. package/dist/structure/bond-order-perception.js +1 -1
  259. package/dist/structure/bonding.d.ts +1 -0
  260. package/dist/structure/bonding.js +43 -15
  261. package/dist/structure/export.js +27 -23
  262. package/dist/structure/index.d.ts +2 -4
  263. package/dist/structure/index.js +1 -3
  264. package/dist/structure/label-placement.js +4 -4
  265. package/dist/structure/measure.d.ts +3 -2
  266. package/dist/structure/measure.js +6 -5
  267. package/dist/structure/parse.js +121 -103
  268. package/dist/structure/pbc.js +4 -0
  269. package/dist/symmetry/SymmetryStats.svelte +2 -2
  270. package/dist/symmetry/index.d.ts +1 -1
  271. package/dist/symmetry/index.js +22 -24
  272. package/dist/symmetry/spacegroups.d.ts +7 -0
  273. package/dist/symmetry/spacegroups.js +48 -13
  274. package/dist/table/HeatmapTable.svelte +63 -11
  275. package/dist/table/HeatmapTable.svelte.d.ts +1 -1
  276. package/dist/table/index.d.ts +1 -3
  277. package/dist/table/index.js +1 -1
  278. package/dist/theme/index.js +8 -8
  279. package/dist/tooltip/KCoords.svelte +45 -0
  280. package/dist/tooltip/KCoords.svelte.d.ts +8 -0
  281. package/dist/tooltip/index.d.ts +1 -0
  282. package/dist/tooltip/index.js +1 -0
  283. package/dist/trajectory/Trajectory.svelte +66 -40
  284. package/dist/trajectory/Trajectory.svelte.d.ts +2 -1
  285. package/dist/trajectory/TrajectoryExportPane.svelte +2 -1
  286. package/dist/trajectory/TrajectoryInfoPane.svelte +2 -1
  287. package/dist/trajectory/format-detect.d.ts +1 -0
  288. package/dist/trajectory/format-detect.js +25 -11
  289. package/dist/trajectory/frame-reader.js +17 -50
  290. package/dist/trajectory/helpers.js +1 -1
  291. package/dist/trajectory/index.js +1 -1
  292. package/dist/trajectory/parse/hdf5.js +1 -1
  293. package/dist/trajectory/parse/index.js +14 -6
  294. package/dist/trajectory/parse/vasp.js +36 -17
  295. package/dist/trajectory/parse/xyz.d.ts +24 -0
  296. package/dist/trajectory/parse/xyz.js +102 -89
  297. package/dist/trajectory/plotting.d.ts +1 -1
  298. package/dist/trajectory/plotting.js +15 -15
  299. package/dist/utils.d.ts +1 -0
  300. package/dist/utils.js +6 -4
  301. package/dist/xrd/XrdPlot.svelte +2 -1
  302. package/dist/xrd/calc-xrd.js +15 -12
  303. package/dist/xrd/parse.js +2 -2
  304. package/package.json +22 -18
  305. package/dist/plot/PlotControls.svelte.d.ts +0 -4
  306. package/dist/plot/axis-utils.d.ts +0 -19
  307. package/dist/plot/axis-utils.js +0 -78
  308. package/dist/plot/defaults.d.ts +0 -19
  309. package/dist/plot/defaults.js +0 -9
  310. package/dist/plot/fill-utils.d.ts +0 -46
  311. package/dist/plot/fill-utils.js +0 -322
  312. package/dist/plot/interactions.d.ts +0 -12
  313. package/dist/plot/interactions.js +0 -101
  314. package/dist/plot/svg.d.ts +0 -1
  315. package/dist/plot/svg.js +0 -11
  316. package/dist/plot/utils/series-visibility.d.ts +0 -15
  317. package/dist/plot/utils.d.ts +0 -1
  318. package/dist/plot/utils.js +0 -14
  319. /package/dist/plot/{auto-place.d.ts → core/auto-place.d.ts} +0 -0
  320. /package/dist/plot/{Line.svelte.d.ts → core/components/Line.svelte.d.ts} +0 -0
  321. /package/dist/plot/{PortalSelect.svelte.d.ts → core/components/PortalSelect.svelte.d.ts} +0 -0
  322. /package/dist/plot/{hover-lock.svelte.d.ts → core/hover-lock.svelte.d.ts} +0 -0
  323. /package/dist/plot/{utils → core/utils}/label-placement.js +0 -0
  324. /package/dist/plot/{binned-scatter-types.js → scatter/binned-scatter-types.js} +0 -0
@@ -6,17 +6,17 @@
6
6
  lang="ts"
7
7
  generics="Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>"
8
8
  >
9
- import Icon from '../Icon.svelte'
10
- import { format_value } from '../labels'
11
- import { FullscreenToggle, set_fullscreen_bg } from '../layout'
12
- import type { Point2D, Vec2 } from '../math'
13
- import { create_pulse_animation } from '../effects.svelte'
14
- import ColorBar from './ColorBar.svelte'
15
- import PlotAxis from './PlotAxis.svelte'
16
- import PlotTooltip from './PlotTooltip.svelte'
17
- import ZoomRect from './ZoomRect.svelte'
18
- import { compute_element_placement, filter_padding } from './layout'
19
- import type { Sides } from './layout'
9
+ import Icon from '../../Icon.svelte'
10
+ import { format_value } from '../../labels'
11
+ import { FullscreenToggle, set_fullscreen_bg } from '../../layout'
12
+ import type { Point2D, Vec2 } from '../../math'
13
+ import { create_pulse_animation } from '../../effects.svelte'
14
+ import ColorBar from '../core/components/ColorBar.svelte'
15
+ import PlotAxis from '../core/components/PlotAxis.svelte'
16
+ import PlotTooltip from '../core/components/PlotTooltip.svelte'
17
+ import ZoomRect from '../core/components/ZoomRect.svelte'
18
+ import { compute_element_placement, filter_padding } from '../core/layout'
19
+ import type { Sides } from '../core/layout'
20
20
  import {
21
21
  build_pick_index,
22
22
  bin_points,
@@ -25,20 +25,21 @@
25
25
  get_metadata_at,
26
26
  pick_from_index,
27
27
  range_bounds,
28
+ scale_bin_transform,
28
29
  series_extents,
29
30
  should_render_points,
30
31
  type DensityBin,
31
32
  type DenseInternalPoint,
32
33
  type DensePointSeries,
33
34
  } from './adaptive-density'
34
- import { create_color_scale, create_scale, create_size_scale, generate_ticks } from './scales'
35
- import type { AxisConfig, DataSeries, InternalPoint, ScatterHandlerProps } from './types'
35
+ import { create_color_scale, create_scale, create_size_scale, generate_ticks } from '../core/scales'
36
+ import type { AxisConfig, DataSeries, InternalPoint, ScatterHandlerProps } from '../core/types'
36
37
  import {
37
38
  compute_label_positions,
38
39
  estimate_label_size,
39
40
  label_leader_segment,
40
41
  type LabelSize,
41
- } from './utils/label-placement'
42
+ } from '../core/utils/label-placement'
42
43
  import type { ComponentProps, Snippet } from 'svelte'
43
44
  import { onMount, tick } from 'svelte'
44
45
  import type { HTMLAttributes } from 'svelte/elements'
@@ -198,6 +199,9 @@
198
199
  function set_auto_range() {
199
200
  const next_x_range = axis_range(x_axis, auto_ranges.x)
200
201
  const next_y_range = axis_range(y_axis, auto_ranges.y)
202
+ // Skip non-finite ranges (e.g. a NaN bound in an axis range prop): NaN !== NaN
203
+ // means same_range never settles, looping until effect_update_depth_exceeded
204
+ if (![...next_x_range, ...next_y_range].every(Number.isFinite)) return
201
205
  if (!same_range(x_range, next_x_range)) x_range = next_x_range
202
206
  if (!same_range(y_range, next_y_range)) y_range = next_y_range
203
207
  }
@@ -237,9 +241,17 @@
237
241
  x: Math.max(8, Math.ceil(plot_width / density_settings.bin_px)),
238
242
  y: Math.max(8, Math.ceil(plot_height / density_settings.bin_px)),
239
243
  })
244
+ // Bin in scale space so the heatmap, hover, and zoom stay aligned with log/arcsinh axes
245
+ let bin_transforms = $derived({
246
+ x: scale_bin_transform(x_scale_type),
247
+ y: scale_bin_transform(y_scale_type),
248
+ })
249
+ let bin_series = $derived(has_plot_size ? series : [])
240
250
  let density_result = $derived(
241
- bin_points(has_plot_size ? series : [], x_range, y_range, density_bins.x, density_bins.y),
251
+ bin_points(bin_series, x_range, y_range, density_bins.x, density_bins.y, bin_transforms),
242
252
  )
253
+ const bin_at = (coords: Point2D) =>
254
+ density_bin_at_point(density_result, coords, plot_rect, x_range, y_range, bin_transforms)
243
255
  let auto_color_range = $derived<Vec2>([1, Math.max(1, density_result.max_count)])
244
256
  let color_scale_fn = $derived(create_color_scale(density_settings.color_scale, auto_color_range))
245
257
  let hovered_bin_color = $derived(hovered_bin ? color_scale_fn(hovered_bin.count) : undefined)
@@ -487,31 +499,27 @@
487
499
  hovered_point = null
488
500
  }
489
501
 
490
- function handler_props(
502
+ const handler_props = (
491
503
  point: DenseInternalPoint<Metadata>,
492
- ): ScatterHandlerProps<Metadata> {
493
- return {
494
- x: point.x,
495
- y: point.y,
496
- cx: point.cx,
497
- cy: point.cy,
498
- metadata: point.metadata,
499
- label: series[point.series_idx]?.label ?? null,
500
- series_idx: point.series_idx,
501
- x_axis,
502
- y_axis,
503
- x_formatted: format_value(point.x, x_axis.format ?? `.3~g`),
504
- y_formatted: format_value(point.y, y_axis.format ?? `.3~g`),
505
- }
506
- }
504
+ ): ScatterHandlerProps<Metadata> => ({
505
+ x: point.x,
506
+ y: point.y,
507
+ cx: point.cx,
508
+ cy: point.cy,
509
+ metadata: point.metadata,
510
+ label: series[point.series_idx]?.label ?? null,
511
+ series_idx: point.series_idx,
512
+ x_axis,
513
+ y_axis,
514
+ x_formatted: format_value(point.x, x_axis.format ?? `.3~g`),
515
+ y_formatted: format_value(point.y, y_axis.format ?? `.3~g`),
516
+ })
507
517
 
508
- function point_color(point: DenseInternalPoint<Metadata>): string {
509
- return series[point.series_idx]?.color ?? default_point_color
510
- }
518
+ const point_color = (point: DenseInternalPoint<Metadata>): string =>
519
+ series[point.series_idx]?.color ?? default_point_color
511
520
 
512
- function point_label_key(point: DenseInternalPoint<Metadata>): string {
513
- return `${point.series_idx}-${point.point_idx}`
514
- }
521
+ const point_label_key = (point: DenseInternalPoint<Metadata>): string =>
522
+ `${point.series_idx}-${point.point_idx}`
515
523
 
516
524
  function make_point(series_idx: number, point_idx: number): DenseInternalPoint<Metadata> {
517
525
  const srs = series[series_idx]
@@ -530,9 +538,8 @@
530
538
  }
531
539
  }
532
540
 
533
- function fallback_label_text(point: DenseInternalPoint<Metadata>): string {
534
- return String(point.point_id ?? point_label_key(point))
535
- }
541
+ const fallback_label_text = (point: DenseInternalPoint<Metadata>): string =>
542
+ String(point.point_id ?? point_label_key(point))
536
543
 
537
544
  function point_payload(
538
545
  point: DenseInternalPoint<Metadata>,
@@ -542,16 +549,14 @@
542
549
  return { ...base_payload, point_data: point_data?.(base_payload) ?? undefined }
543
550
  }
544
551
 
545
- function label_measure_text(payload: BinnedPointPayload<Metadata, PointData>): string {
546
- return point_labels_settings.measure_text?.(payload) ?? fallback_label_text(payload.point)
547
- }
552
+ const label_measure_text = (payload: BinnedPointPayload<Metadata, PointData>): string =>
553
+ point_labels_settings.measure_text?.(payload) ?? fallback_label_text(payload.point)
548
554
 
549
- function label_size_for_payload(
555
+ const label_size_for_payload = (
550
556
  payload: BinnedPointPayload<Metadata, PointData>,
551
- ): LabelSize {
552
- return label_sizes.get(point_label_key(payload.point)) ??
557
+ ): LabelSize =>
558
+ label_sizes.get(point_label_key(payload.point)) ??
553
559
  estimate_label_size(label_measure_text(payload), point_labels_settings.font_size)
554
- }
555
560
 
556
561
  let point_label_payloads = $derived.by(() => {
557
562
  if (!point_labels_settings.render || render_mode !== `points`) return []
@@ -581,7 +586,7 @@
581
586
  })
582
587
 
583
588
  let point_label_positions = $derived.by(() => {
584
- if (!point_label_payloads.length) return {}
589
+ if (point_label_payloads.length === 0) return {}
585
590
 
586
591
  const filtered_data: InternalPoint<Metadata>[] = point_label_payloads.map(
587
592
  (payload) => ({
@@ -630,7 +635,7 @@
630
635
  }
631
636
 
632
637
  $effect(() => {
633
- if (!label_measure_root || !point_label_payloads.length) return
638
+ if (!label_measure_root || point_label_payloads.length === 0) return
634
639
  void measure_point_labels()
635
640
  })
636
641
 
@@ -651,12 +656,6 @@
651
656
  })
652
657
  }
653
658
 
654
- function point_tooltip_props(
655
- point: DenseInternalPoint<Metadata>,
656
- ): BinnedPointTooltipPayload<Metadata, PointData> {
657
- return point_payload(point)
658
- }
659
-
660
659
  function on_pointer_move(event: PointerEvent) {
661
660
  const coords = pointer_coords(event)
662
661
  if (coords) tooltip_pos = { x: coords.x + 12, y: coords.y + 8 }
@@ -668,7 +667,7 @@
668
667
 
669
668
  if (render_mode === `density`) {
670
669
  hovered_point = null
671
- const bin = density_bin_at_point(density_result, coords, plot_rect, x_range, y_range)
670
+ const bin = bin_at(coords)
672
671
  if (
673
672
  hovered_bin?.x_bin !== bin?.x_bin ||
674
673
  hovered_bin?.y_bin !== bin?.y_bin ||
@@ -714,7 +713,7 @@
714
713
  if (!coords) return
715
714
 
716
715
  if (render_mode === `density`) {
717
- const bin = density_bin_at_point(density_result, coords, plot_rect, x_range, y_range)
716
+ const bin = bin_at(coords)
718
717
  if (!bin) return
719
718
  if (density_settings.bin_click === `none`) return
720
719
  if (bin.count > 1 && density_settings.bin_click === `zoom`) {
@@ -971,7 +970,7 @@
971
970
  - {format_value(hovered_bin.y_range[1], y_axis.format ?? `.3~g`)}
972
971
  </PlotTooltip>
973
972
  {:else if hovered_point}
974
- {@const props = point_tooltip_props(hovered_point)}
973
+ {@const props = point_payload(hovered_point)}
975
974
  <PlotTooltip x={tooltip_pos.x} y={tooltip_pos.y} offset={{ x: 0, y: 0 }}>
976
975
  {#if tooltip}
977
976
  {@render tooltip(props)}
@@ -1015,7 +1014,10 @@
1015
1014
  margin: 0;
1016
1015
  max-height: none !important;
1017
1016
  overflow: hidden;
1018
- padding-top: var(--plot-fullscreen-padding-top, 2em);
1017
+ /* border-top (not padding-top): bind:clientHeight includes padding but excludes
1018
+ borders - padding made the chart overflow + clip its bottom 2em (x-axis title) */
1019
+ border-top: var(--plot-fullscreen-padding-top, 2em) solid
1020
+ var(--binned-scatter-fullscreen-bg, var(--binned-scatter-bg, var(--plot-bg, Canvas)));
1019
1021
  position: fixed;
1020
1022
  top: 0;
1021
1023
  width: 100vw !important;
@@ -1,6 +1,6 @@
1
- import type { Sides } from './layout';
1
+ import type { Sides } from '../core/layout';
2
2
  import { type DensityBin, type DenseInternalPoint, type DensePointSeries } from './adaptive-density';
3
- import type { AxisConfig, ScatterHandlerProps } from './types';
3
+ import type { AxisConfig, ScatterHandlerProps } from '../core/types';
4
4
  import type { Snippet } from 'svelte';
5
5
  import type { HTMLAttributes } from 'svelte/elements';
6
6
  import type { BinnedDensityConfig, BinnedOverlaysConfig, BinnedPointDataFn, BinnedPointLabelsConfig, BinnedPointTooltipPayload, BinnedSizeScaleConfig } from './binned-scatter-types';
@@ -43,7 +43,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
43
43
  }]>;
44
44
  };
45
45
  exports: {};
46
- bindings: "render_mode" | "fullscreen" | "wrapper";
46
+ bindings: "fullscreen" | "render_mode" | "wrapper";
47
47
  slots: {};
48
48
  events: {};
49
49
  };
@@ -51,7 +51,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
51
51
  props(): ReturnType<typeof $$render<Metadata, PointData>>['props'];
52
52
  events(): ReturnType<typeof $$render<Metadata, PointData>>['events'];
53
53
  slots(): ReturnType<typeof $$render<Metadata, PointData>>['slots'];
54
- bindings(): "render_mode" | "fullscreen" | "wrapper";
54
+ bindings(): "fullscreen" | "render_mode" | "wrapper";
55
55
  exports(): {};
56
56
  }
57
57
  interface $$IsomorphicComponent {
@@ -1,10 +1,10 @@
1
1
  <script lang="ts">
2
- import { element_data } from '../element'
3
- import { format_num } from '../labels'
4
- import { sanitize_html } from '../sanitize'
5
- import type { AxisConfig, InternalPoint } from './'
6
- import { ScatterPlot } from './'
7
- import { selected } from '../state.svelte'
2
+ import { element_data } from '../../element'
3
+ import { format_num } from '../../labels'
4
+ import { sanitize_html } from '../../sanitize'
5
+ import type { AxisConfig, InternalPoint } from '..'
6
+ import { ScatterPlot } from '..'
7
+ import { selected } from '../../state.svelte'
8
8
  import type { ComponentProps } from 'svelte'
9
9
 
10
10
  let {
@@ -1,5 +1,5 @@
1
- import type { AxisConfig, InternalPoint } from './';
2
- import { ScatterPlot } from './';
1
+ import type { AxisConfig, InternalPoint } from '..';
2
+ import { ScatterPlot } from '..';
3
3
  import type { ComponentProps } from 'svelte';
4
4
  type $$ComponentProps = ComponentProps<typeof ScatterPlot> & {
5
5
  y: number[];