matterviz 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/dist/brillouin/BrillouinZone.svelte +68 -145
  2. package/dist/brillouin/BrillouinZone.svelte.d.ts +5 -14
  3. package/dist/brillouin/BrillouinZoneExportPane.svelte +43 -96
  4. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +1 -1
  5. package/dist/brillouin/BrillouinZoneInfoPane.svelte +9 -32
  6. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +2 -3
  7. package/dist/brillouin/BrillouinZoneScene.svelte +49 -203
  8. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +3 -23
  9. package/dist/brillouin/ReciprocalVectors.svelte +39 -0
  10. package/dist/brillouin/ReciprocalVectors.svelte.d.ts +9 -0
  11. package/dist/brillouin/compute.d.ts +2 -0
  12. package/dist/brillouin/compute.js +80 -77
  13. package/dist/brillouin/geometry.d.ts +8 -0
  14. package/dist/brillouin/geometry.js +57 -0
  15. package/dist/brillouin/index.d.ts +2 -0
  16. package/dist/brillouin/index.js +2 -0
  17. package/dist/brillouin/types.d.ts +2 -2
  18. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +1 -1
  19. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +100 -191
  20. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +4 -1
  21. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +176 -464
  22. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +7 -1
  23. package/dist/chempot-diagram/color.d.ts +3 -6
  24. package/dist/chempot-diagram/color.js +5 -5
  25. package/dist/chempot-diagram/compute.d.ts +3 -3
  26. package/dist/chempot-diagram/compute.js +3 -1
  27. package/dist/chempot-diagram/controls-state.svelte.d.ts +10 -0
  28. package/dist/chempot-diagram/controls-state.svelte.js +42 -0
  29. package/dist/chempot-diagram/export.d.ts +47 -0
  30. package/dist/chempot-diagram/export.js +133 -0
  31. package/dist/chempot-diagram/index.d.ts +1 -0
  32. package/dist/chempot-diagram/index.js +1 -0
  33. package/dist/chempot-diagram/pointer.d.ts +0 -10
  34. package/dist/chempot-diagram/pointer.js +4 -4
  35. package/dist/chempot-diagram/types.d.ts +3 -3
  36. package/dist/colors/index.js +2 -2
  37. package/dist/composition/FormulaFilter.svelte +6 -5
  38. package/dist/composition/PieChart.svelte +5 -5
  39. package/dist/composition/chem-sys.js +3 -2
  40. package/dist/composition/format.js +3 -2
  41. package/dist/composition/parse.d.ts +0 -1
  42. package/dist/composition/parse.js +17 -19
  43. package/dist/controls.d.ts +1 -0
  44. package/dist/controls.js +0 -1
  45. package/dist/convex-hull/ConvexHull.svelte +8 -10
  46. package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -4
  47. package/dist/convex-hull/ConvexHull2D.svelte +94 -175
  48. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
  49. package/dist/convex-hull/ConvexHull3D.svelte +176 -680
  50. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
  51. package/dist/convex-hull/ConvexHull4D.svelte +180 -680
  52. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
  53. package/dist/convex-hull/ConvexHullChrome.svelte +268 -0
  54. package/dist/convex-hull/ConvexHullChrome.svelte.d.ts +30 -0
  55. package/dist/convex-hull/ConvexHullControls.svelte +88 -7
  56. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +7 -6
  57. package/dist/convex-hull/ConvexHullInfoPane.svelte +18 -5
  58. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +6 -5
  59. package/dist/convex-hull/ConvexHullStats.svelte +29 -168
  60. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +3 -1
  61. package/dist/convex-hull/ConvexHullTooltip.svelte +11 -2
  62. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +2 -1
  63. package/dist/convex-hull/barycentric-coords.d.ts +2 -4
  64. package/dist/convex-hull/barycentric-coords.js +6 -33
  65. package/dist/convex-hull/canvas-interactions.svelte.d.ts +79 -0
  66. package/dist/convex-hull/canvas-interactions.svelte.js +278 -0
  67. package/dist/convex-hull/helpers.d.ts +39 -7
  68. package/dist/convex-hull/helpers.js +154 -69
  69. package/dist/convex-hull/hull-state.svelte.d.ts +44 -0
  70. package/dist/convex-hull/hull-state.svelte.js +124 -0
  71. package/dist/convex-hull/index.d.ts +9 -7
  72. package/dist/convex-hull/index.js +7 -2
  73. package/dist/convex-hull/thermodynamics.js +91 -920
  74. package/dist/convex-hull/types.d.ts +12 -4
  75. package/dist/convex-hull/types.js +12 -0
  76. package/dist/coordination/CoordinationBarPlot.svelte +4 -11
  77. package/dist/element/BohrAtom.svelte +2 -1
  78. package/dist/element/ElementTile.svelte.d.ts +1 -1
  79. package/dist/element/index.d.ts +4 -0
  80. package/dist/element/index.js +18 -0
  81. package/dist/feedback/DragOverlay.svelte +3 -1
  82. package/dist/feedback/DragOverlay.svelte.d.ts +1 -0
  83. package/dist/feedback/StatusMessage.svelte +13 -3
  84. package/dist/fermi-surface/FermiSurface.svelte +67 -146
  85. package/dist/fermi-surface/FermiSurface.svelte.d.ts +5 -14
  86. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
  87. package/dist/fermi-surface/FermiSurfaceScene.svelte +72 -224
  88. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +3 -23
  89. package/dist/fermi-surface/compute.js +11 -10
  90. package/dist/fermi-surface/export.js +4 -15
  91. package/dist/fermi-surface/index.d.ts +0 -1
  92. package/dist/fermi-surface/index.js +0 -1
  93. package/dist/fermi-surface/parse.d.ts +1 -1
  94. package/dist/fermi-surface/parse.js +64 -75
  95. package/dist/fermi-surface/types.d.ts +2 -2
  96. package/dist/heatmap-matrix/HeatmapMatrix.svelte +55 -40
  97. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +4 -3
  98. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +3 -2
  99. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +5 -5
  100. package/dist/heatmap-matrix/index.d.ts +3 -2
  101. package/dist/index.d.ts +1 -0
  102. package/dist/index.js +1 -0
  103. package/dist/io/ExportPane.svelte +166 -0
  104. package/dist/io/ExportPane.svelte.d.ts +17 -0
  105. package/dist/io/decompress.js +1 -2
  106. package/dist/io/export.d.ts +5 -1
  107. package/dist/io/export.js +32 -28
  108. package/dist/io/fetch.d.ts +2 -1
  109. package/dist/io/file-drop.d.ts +7 -0
  110. package/dist/io/file-drop.js +13 -0
  111. package/dist/io/index.d.ts +2 -0
  112. package/dist/io/index.js +10 -0
  113. package/dist/io/types.d.ts +13 -0
  114. package/dist/isosurface/parse.js +46 -44
  115. package/dist/labels.js +1 -1
  116. package/dist/layout/FullscreenButton.svelte +33 -0
  117. package/dist/layout/FullscreenButton.svelte.d.ts +10 -0
  118. package/dist/layout/FullscreenToggle.svelte +8 -14
  119. package/dist/layout/ViewerChrome.svelte +116 -0
  120. package/dist/layout/ViewerChrome.svelte.d.ts +17 -0
  121. package/dist/layout/fullscreen.d.ts +4 -0
  122. package/dist/layout/fullscreen.svelte.d.ts +8 -0
  123. package/dist/layout/fullscreen.svelte.js +37 -0
  124. package/dist/layout/index.d.ts +3 -0
  125. package/dist/layout/index.js +3 -0
  126. package/dist/math.d.ts +7 -3
  127. package/dist/math.js +18 -21
  128. package/dist/overlays/index.d.ts +4 -0
  129. package/dist/periodic-table/PeriodicTable.svelte +9 -8
  130. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +1 -1
  131. package/dist/phase-diagram/PhaseDiagramControls.svelte +3 -2
  132. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +4 -3
  133. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
  134. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +2 -3
  135. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +47 -132
  136. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +3 -4
  137. package/dist/phase-diagram/colors.js +1 -1
  138. package/dist/phase-diagram/parse.d.ts +2 -1
  139. package/dist/plot/bar/BarPlot.svelte +79 -316
  140. package/dist/plot/bar/BarPlot.svelte.d.ts +7 -15
  141. package/dist/plot/bar/BarPlotControls.svelte.d.ts +1 -1
  142. package/dist/plot/bar/SpacegroupBarPlot.svelte +2 -1
  143. package/dist/plot/box/BoxPlot.svelte +76 -246
  144. package/dist/plot/box/BoxPlot.svelte.d.ts +4 -3
  145. package/dist/plot/box/BoxPlotControls.svelte.d.ts +1 -1
  146. package/dist/plot/box/Violin.svelte.d.ts +1 -1
  147. package/dist/plot/box/box-plot.d.ts +3 -2
  148. package/dist/plot/box/box-plot.js +5 -2
  149. package/dist/plot/box/kde.d.ts +2 -1
  150. package/dist/plot/box/kde.js +4 -4
  151. package/dist/plot/core/auto-place.d.ts +1 -1
  152. package/dist/plot/core/auto-place.js +4 -1
  153. package/dist/plot/core/components/ColorBar.svelte +5 -5
  154. package/dist/plot/core/components/ColorBar.svelte.d.ts +5 -4
  155. package/dist/plot/core/components/Line.svelte +3 -2
  156. package/dist/plot/core/components/Line.svelte.d.ts +3 -2
  157. package/dist/plot/core/components/PlotAxis.svelte +2 -1
  158. package/dist/plot/core/components/PlotAxis.svelte.d.ts +2 -1
  159. package/dist/plot/core/components/PlotControls.svelte.d.ts +1 -1
  160. package/dist/plot/core/components/ReferenceLine3D.svelte +2 -2
  161. package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +4 -4
  162. package/dist/plot/core/components/ReferencePlane.svelte +2 -2
  163. package/dist/plot/core/components/ReferencePlane.svelte.d.ts +4 -4
  164. package/dist/plot/core/data-cleaning.js +18 -18
  165. package/dist/plot/core/fill-utils.d.ts +4 -3
  166. package/dist/plot/core/fill-utils.js +6 -3
  167. package/dist/plot/core/interactions.d.ts +5 -1
  168. package/dist/plot/core/interactions.js +14 -0
  169. package/dist/plot/core/pan-zoom.svelte.d.ts +35 -0
  170. package/dist/plot/core/pan-zoom.svelte.js +221 -0
  171. package/dist/plot/core/placed-tween.svelte.d.ts +21 -0
  172. package/dist/plot/core/placed-tween.svelte.js +68 -0
  173. package/dist/plot/core/reference-line.d.ts +10 -10
  174. package/dist/plot/core/reference-line.js +6 -6
  175. package/dist/plot/core/scales.d.ts +17 -25
  176. package/dist/plot/core/scales.js +10 -8
  177. package/dist/plot/core/svg.d.ts +2 -1
  178. package/dist/plot/core/types.d.ts +18 -7
  179. package/dist/plot/core/utils/label-placement.d.ts +1 -1
  180. package/dist/plot/core/utils/label-placement.js +3 -3
  181. package/dist/plot/core/utils.d.ts +2 -1
  182. package/dist/plot/histogram/Histogram.svelte +77 -314
  183. package/dist/plot/histogram/HistogramControls.svelte.d.ts +1 -1
  184. package/dist/plot/sankey/Sankey.svelte +2 -5
  185. package/dist/plot/sankey/Sankey.svelte.d.ts +1 -1
  186. package/dist/plot/sankey/sankey.js +3 -1
  187. package/dist/plot/scatter/BinnedScatterPlot.svelte +3 -5
  188. package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +4 -4
  189. package/dist/plot/scatter/ScatterPlot.svelte +160 -450
  190. package/dist/plot/scatter/ScatterPlot.svelte.d.ts +7 -15
  191. package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
  192. package/dist/plot/scatter/binned-scatter-types.d.ts +4 -11
  193. package/dist/plot/scatter/index.d.ts +1 -1
  194. package/dist/plot/scatter-3d/ScatterPlot3D.svelte +15 -26
  195. package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +6 -14
  196. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +9 -10
  197. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +5 -5
  198. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +122 -121
  199. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +5 -14
  200. package/dist/plot/scatter-3d/Surface3D.svelte +6 -5
  201. package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +4 -3
  202. package/dist/plot/sunburst/Sunburst.svelte +16 -20
  203. package/dist/plot/sunburst/Sunburst.svelte.d.ts +4 -3
  204. package/dist/plot/sunburst/SunburstControls.svelte.d.ts +1 -1
  205. package/dist/plot/sunburst/sunburst.js +4 -1
  206. package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
  207. package/dist/sanitize.js +13 -2
  208. package/dist/scene/SceneCamera.svelte +62 -0
  209. package/dist/scene/SceneCamera.svelte.d.ts +19 -0
  210. package/dist/scene/bind-renderer.svelte.d.ts +2 -0
  211. package/dist/scene/bind-renderer.svelte.js +14 -0
  212. package/dist/scene/index.d.ts +4 -0
  213. package/dist/scene/index.js +5 -0
  214. package/dist/scene/props.js +52 -0
  215. package/dist/scene/types.d.ts +26 -0
  216. package/dist/scene/types.js +1 -0
  217. package/dist/settings.d.ts +14 -2
  218. package/dist/settings.js +59 -1
  219. package/dist/spectral/Bands.svelte +8 -7
  220. package/dist/spectral/Bands.svelte.d.ts +3 -2
  221. package/dist/spectral/BandsAndDos.svelte +22 -24
  222. package/dist/spectral/BrillouinBandsDos.svelte +3 -3
  223. package/dist/spectral/Dos.svelte +5 -4
  224. package/dist/spectral/Dos.svelte.d.ts +2 -1
  225. package/dist/spectral/helpers.d.ts +6 -6
  226. package/dist/spectral/helpers.js +43 -37
  227. package/dist/state.svelte.d.ts +0 -7
  228. package/dist/state.svelte.js +0 -6
  229. package/dist/structure/Arrow.svelte +2 -4
  230. package/dist/structure/AtomLegend.svelte.d.ts +1 -1
  231. package/dist/structure/CanvasTooltip.svelte +1 -0
  232. package/dist/structure/CellSelect.svelte +11 -3
  233. package/dist/structure/CellSelect.svelte.d.ts +2 -1
  234. package/dist/structure/Lattice.svelte +2 -2
  235. package/dist/structure/Structure.svelte +291 -355
  236. package/dist/structure/Structure.svelte.d.ts +5 -15
  237. package/dist/structure/StructureControls.svelte +217 -2
  238. package/dist/structure/StructureControls.svelte.d.ts +5 -3
  239. package/dist/structure/StructureExportPane.svelte +54 -156
  240. package/dist/structure/StructureExportPane.svelte.d.ts +4 -5
  241. package/dist/structure/StructureInfoPane.svelte +5 -3
  242. package/dist/structure/StructureInfoPane.svelte.d.ts +5 -5
  243. package/dist/structure/StructureScene.svelte +365 -198
  244. package/dist/structure/StructureScene.svelte.d.ts +22 -20
  245. package/dist/structure/{label-placement.d.ts → atom-label-placement.d.ts} +3 -3
  246. package/dist/structure/{label-placement.js → atom-label-placement.js} +12 -2
  247. package/dist/structure/atom-properties.d.ts +1 -1
  248. package/dist/structure/atom-properties.js +11 -16
  249. package/dist/structure/bond-order-perception.js +2 -4
  250. package/dist/structure/bonding.d.ts +3 -0
  251. package/dist/structure/bonding.js +91 -48
  252. package/dist/structure/export.d.ts +24 -4
  253. package/dist/structure/export.js +64 -122
  254. package/dist/structure/index.d.ts +2 -0
  255. package/dist/structure/index.js +2 -0
  256. package/dist/structure/parse.d.ts +3 -2
  257. package/dist/structure/parse.js +333 -370
  258. package/dist/structure/partial-occupancy.d.ts +0 -1
  259. package/dist/structure/partial-occupancy.js +1 -1
  260. package/dist/structure/pbc.d.ts +1 -1
  261. package/dist/structure/pbc.js +186 -13
  262. package/dist/structure/polyhedra.d.ts +41 -0
  263. package/dist/structure/polyhedra.js +602 -0
  264. package/dist/structure/site.d.ts +4 -0
  265. package/dist/structure/site.js +1 -0
  266. package/dist/structure/supercell.js +3 -2
  267. package/dist/structure/validation.js +5 -6
  268. package/dist/symmetry/SymmetryElementControls.svelte +69 -0
  269. package/dist/symmetry/SymmetryElementControls.svelte.d.ts +9 -0
  270. package/dist/symmetry/SymmetryElements.svelte +354 -0
  271. package/dist/symmetry/SymmetryElements.svelte.d.ts +24 -0
  272. package/dist/symmetry/SymmetryStats.svelte +111 -6
  273. package/dist/symmetry/WyckoffTable.svelte +68 -7
  274. package/dist/symmetry/WyckoffTable.svelte.d.ts +3 -0
  275. package/dist/symmetry/cell-transform.js +7 -14
  276. package/dist/symmetry/index.d.ts +14 -4
  277. package/dist/symmetry/index.js +301 -80
  278. package/dist/symmetry/spacegroups.d.ts +5 -1
  279. package/dist/symmetry/spacegroups.js +15 -1
  280. package/dist/symmetry/symmetry-elements.d.ts +33 -0
  281. package/dist/symmetry/symmetry-elements.js +521 -0
  282. package/dist/symmetry/wyckoff-db.d.ts +9 -0
  283. package/dist/symmetry/wyckoff-db.js +87 -0
  284. package/dist/table/HeatmapTable.svelte +4 -15
  285. package/dist/table/HeatmapTable.svelte.d.ts +1 -1
  286. package/dist/trajectory/Trajectory.svelte +58 -61
  287. package/dist/trajectory/Trajectory.svelte.d.ts +10 -22
  288. package/dist/trajectory/TrajectoryExportPane.svelte +15 -24
  289. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +4 -5
  290. package/dist/trajectory/TrajectoryInfoPane.svelte +3 -2
  291. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +3 -2
  292. package/dist/trajectory/constants.js +6 -2
  293. package/dist/trajectory/extract.js +17 -37
  294. package/dist/trajectory/format-detect.d.ts +0 -1
  295. package/dist/trajectory/format-detect.js +3 -9
  296. package/dist/trajectory/frame-reader.d.ts +0 -1
  297. package/dist/trajectory/frame-reader.js +62 -128
  298. package/dist/trajectory/helpers.d.ts +10 -2
  299. package/dist/trajectory/helpers.js +56 -36
  300. package/dist/trajectory/parse/ase.d.ts +9 -1
  301. package/dist/trajectory/parse/ase.js +47 -32
  302. package/dist/trajectory/parse/diagnostics.d.ts +3 -0
  303. package/dist/trajectory/parse/diagnostics.js +14 -0
  304. package/dist/trajectory/parse/index.d.ts +1 -1
  305. package/dist/trajectory/parse/index.js +54 -102
  306. package/dist/trajectory/parse/lammps.d.ts +0 -2
  307. package/dist/trajectory/parse/lammps.js +8 -6
  308. package/dist/trajectory/parse/pymatgen.d.ts +2 -0
  309. package/dist/trajectory/parse/pymatgen.js +74 -0
  310. package/dist/trajectory/parse/vasp.js +4 -3
  311. package/dist/trajectory/parse/xyz.d.ts +9 -21
  312. package/dist/trajectory/parse/xyz.js +28 -33
  313. package/dist/trajectory/plotting.d.ts +0 -1
  314. package/dist/trajectory/plotting.js +3 -100
  315. package/dist/utils.d.ts +1 -0
  316. package/dist/utils.js +1 -1
  317. package/dist/xrd/XrdPlot.svelte +14 -29
  318. package/dist/xrd/broadening.d.ts +2 -1
  319. package/dist/xrd/calc-xrd.js +6 -11
  320. package/dist/xrd/index.d.ts +2 -2
  321. package/package.json +29 -16
  322. package/dist/element/data.json +0 -11864
  323. package/dist/fermi-surface/marching-cubes.d.ts +0 -2
  324. package/dist/fermi-surface/marching-cubes.js +0 -2
  325. package/dist/plot/core/hover-lock.svelte.d.ts +0 -14
  326. package/dist/plot/core/hover-lock.svelte.js +0 -45
@@ -1,10 +1,10 @@
1
- import type { D3ColorSchemeName, D3InterpolateName } from '../../colors';
1
+ import type { D3InterpolateName } from '../../colors';
2
2
  import type { Point2D } from '../../math';
3
- import type { AxisLoadError, BasePlotProps, ControlsConfig, DataLoaderFn, DataSeries, ErrorBand, FillHandlerEvent, FillRegion, HoverConfig, InternalPoint, LabelPlacementConfig, LegendConfig, PanConfig, PlotConfig, Point, RefLine, RefLineEvent, ScaleType, ScatterHandlerEvent, ScatterHandlerProps, StyleOverrides, UserContentProps } from '..';
3
+ import type { AxisLoadError, BasePlotProps, ColorScaleConfig, ControlsConfig, DataLoaderFn, DataSeries, ErrorBand, FillHandlerEvent, FillRegion, HoverConfig, InternalPoint, LabelPlacementConfig, LegendConfig, PanConfig, PlotConfig, Point, RefLine, RefLineEvent, ScatterHandlerEvent, ScatterHandlerProps, SizeScaleConfig, StyleOverrides, UserContentProps } from '..';
4
4
  import { ColorBar } from '..';
5
5
  import type { ComponentProps, Snippet } from 'svelte';
6
6
  import type { HTMLAttributes } from 'svelte/elements';
7
- import { type TweenOptions } from 'svelte/motion';
7
+ import type { TweenOptions } from 'svelte/motion';
8
8
  import type { Sides } from '../core/layout';
9
9
  declare function $$render<Metadata extends Record<string, unknown> = Record<string, unknown>>(): {
10
10
  props: HTMLAttributes<HTMLDivElement> & Omit<BasePlotProps, "change"> & PlotConfig & {
@@ -31,16 +31,8 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
31
31
  change?: (data: (Point<Metadata> & {
32
32
  series: DataSeries<Metadata>;
33
33
  }) | null) => void;
34
- color_scale?: {
35
- type?: ScaleType;
36
- scheme?: D3ColorSchemeName | D3InterpolateName;
37
- value_range?: [number, number];
38
- } | D3InterpolateName;
39
- size_scale?: {
40
- type?: ScaleType;
41
- radius_range?: [number, number];
42
- value_range?: [number, number];
43
- };
34
+ color_scale?: ColorScaleConfig | D3InterpolateName;
35
+ size_scale?: SizeScaleConfig;
44
36
  color_bar?: (ComponentProps<typeof ColorBar> & {
45
37
  margin?: number | Sides;
46
38
  tween?: TweenOptions<Point2D>;
@@ -73,7 +65,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
73
65
  pan?: PanConfig;
74
66
  };
75
67
  exports: {};
76
- bindings: "display" | "fullscreen" | "series" | "hovered" | "ref_lines" | "x_axis" | "y_axis" | "x2_axis" | "y2_axis" | "wrapper" | "tooltip_point" | "fill_regions" | "selected_series_idx";
68
+ bindings: "display" | "x2_axis" | "y_axis" | "y2_axis" | "fullscreen" | "wrapper" | "series" | "hovered" | "ref_lines" | "x_axis" | "tooltip_point" | "fill_regions" | "selected_series_idx";
77
69
  slots: {};
78
70
  events: {};
79
71
  };
@@ -81,7 +73,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
81
73
  props(): ReturnType<typeof $$render<Metadata>>['props'];
82
74
  events(): ReturnType<typeof $$render<Metadata>>['events'];
83
75
  slots(): ReturnType<typeof $$render<Metadata>>['slots'];
84
- bindings(): "display" | "fullscreen" | "series" | "hovered" | "ref_lines" | "x_axis" | "y_axis" | "x2_axis" | "y2_axis" | "wrapper" | "tooltip_point" | "fill_regions" | "selected_series_idx";
76
+ bindings(): "display" | "x2_axis" | "y_axis" | "y2_axis" | "fullscreen" | "wrapper" | "series" | "hovered" | "ref_lines" | "x_axis" | "tooltip_point" | "fill_regions" | "selected_series_idx";
85
77
  exports(): {};
86
78
  }
87
79
  interface $$IsomorphicComponent {
@@ -12,6 +12,6 @@ type $$ComponentProps = Omit<PlotControlsProps, `children` | `post_children`> &
12
12
  } & Required<PlotConfig>
13
13
  ]>;
14
14
  };
15
- declare const ScatterPlotControls: import("svelte").Component<$$ComponentProps, {}, "display" | "x_axis" | "y_axis" | "x2_axis" | "y2_axis" | "selected_series_idx" | "styles">;
15
+ declare const ScatterPlotControls: import("svelte").Component<$$ComponentProps, {}, "display" | "x2_axis" | "y_axis" | "y2_axis" | "x_axis" | "selected_series_idx" | "styles">;
16
16
  type ScatterPlotControls = ReturnType<typeof ScatterPlotControls>;
17
17
  export default ScatterPlotControls;
@@ -1,17 +1,10 @@
1
- import type { D3ColorSchemeName, D3InterpolateName } from '../../colors';
1
+ import type { D3InterpolateName } from '../../colors';
2
2
  import type { DenseInternalPoint } from './adaptive-density';
3
3
  import type ColorBar from '../core/components/ColorBar.svelte';
4
- import type { LabelPlacementConfig, ScaleType, ScatterHandlerProps } from '../core/types';
4
+ import type { ColorScaleConfig, LabelPlacementConfig, ScatterHandlerProps, SizeScaleConfig } from '../core/types';
5
5
  import type { ComponentProps, Snippet } from 'svelte';
6
- export type BinnedColorScaleConfig = {
7
- type?: ScaleType;
8
- scheme?: D3ColorSchemeName | D3InterpolateName;
9
- value_range?: [number, number];
10
- } | D3InterpolateName;
11
- export type BinnedSizeScaleConfig = {
12
- type?: ScaleType;
13
- radius_range?: [number, number];
14
- value_range?: [number, number];
6
+ export type BinnedColorScaleConfig = ColorScaleConfig | D3InterpolateName;
7
+ export type BinnedSizeScaleConfig = SizeScaleConfig & {
15
8
  pick_radius?: number | `auto`;
16
9
  };
17
10
  export type BinnedDensityConfig = {
@@ -1,4 +1,4 @@
1
- export type { DensePointSeries } from './adaptive-density';
1
+ export type { DensePointSeries, NumericArray } from './adaptive-density';
2
2
  export { default as BinnedScatterPlot } from './BinnedScatterPlot.svelte';
3
3
  export type { BinnedColorScaleConfig, BinnedDensityConfig, BinnedOverlaysConfig, BinnedPointBasePayload, BinnedPointDataFn, BinnedPointLabelPlacementConfig, BinnedPointLabelsConfig, BinnedPointPayload, BinnedPointTooltipPayload, BinnedRefLine, BinnedSizeScaleConfig, } from './binned-scatter-types';
4
4
  export { default as ElementScatter } from './ElementScatter.svelte';
@@ -2,7 +2,7 @@
2
2
  lang="ts"
3
3
  generics="Metadata extends Record<string, unknown> = Record<string, unknown>"
4
4
  >
5
- import type { D3ColorSchemeName, D3InterpolateName } from '../../colors'
5
+ import type { D3InterpolateName } from '../../colors'
6
6
  import { FullscreenToggle } from '../../layout'
7
7
  import type { Vec2, Vec3 } from '../../math'
8
8
  import { ColorBar, PlotLegend } from '..'
@@ -11,6 +11,7 @@
11
11
  import type {
12
12
  AxisConfig3D,
13
13
  CameraProjection3D,
14
+ ColorScaleConfig,
14
15
  ControlsConfig3D,
15
16
  DataSeries3D,
16
17
  DisplayConfig3D,
@@ -20,6 +21,7 @@
20
21
  RefPlane,
21
22
  ScaleType,
22
23
  Scatter3DHandlerEvent,
24
+ SizeScaleConfig,
23
25
  StyleOverrides3D,
24
26
  Surface3DConfig,
25
27
  } from '../core/types'
@@ -30,7 +32,7 @@
30
32
  import type { HTMLAttributes } from 'svelte/elements'
31
33
  import { SvelteMap, SvelteSet } from 'svelte/reactivity'
32
34
  import type { Camera, Scene } from 'three'
33
- import { create_color_scale } from '../core/scales'
35
+ import { calculate_domain, create_color_scale } from '../core/scales'
34
36
  import ScatterPlot3DControls from './ScatterPlot3DControls.svelte'
35
37
  import ScatterPlot3DScene from './ScatterPlot3DScene.svelte'
36
38
 
@@ -116,17 +118,9 @@
116
118
  z_axis?: AxisConfig3D
117
119
  display?: DisplayConfig3D
118
120
  styles?: StyleOverrides3D
119
- color_scale?: {
120
- type?: ScaleType
121
- scheme?: D3ColorSchemeName | D3InterpolateName
122
- value_range?: [number, number]
123
- } | D3InterpolateName
121
+ color_scale?: ColorScaleConfig | D3InterpolateName
124
122
  color_bar?: ComponentProps<typeof ColorBar> & { margin?: number | Sides } | null
125
- size_scale?: {
126
- type?: ScaleType
127
- radius_range?: [number, number]
128
- value_range?: [number, number]
129
- }
123
+ size_scale?: SizeScaleConfig
130
124
  legend?: LegendConfig | null
131
125
  camera_position?: Vec3
132
126
  camera_projection?: CameraProjection3D
@@ -175,11 +169,14 @@
175
169
  id_counts.set(srs.id, (id_counts.get(srs.id) ?? 0) + 1)
176
170
  }
177
171
  }
172
+ // Prefix classes stay disjoint: `idx:` keys have `x` at index 2 where `id:` keys
173
+ // have `:`, and `dup:` keys differ in first char. Within a class, idx is unique
174
+ // and bare ids are only used when they occur exactly once.
178
175
  return series.map((srs, idx) => {
179
- if (srs?.id === undefined || srs.id === ``) return JSON.stringify([`idx`, idx])
180
- return id_counts.get(srs.id) === 1
181
- ? JSON.stringify([`id`, srs.id])
182
- : JSON.stringify([`duplicate-id`, idx, srs.id])
176
+ if (srs?.id === undefined || srs.id === ``) return `idx:${idx}`
177
+ // include typeof so numeric/string ids (1 vs "1") don't collide on the same key
178
+ const id_key = `${typeof srs.id}:${String(srs.id)}`
179
+ return id_counts.get(srs.id) === 1 ? `id:${id_key}` : `dup:${idx}:${id_key}`
183
180
  })
184
181
  })
185
182
 
@@ -227,15 +224,7 @@
227
224
  ),
228
225
  )
229
226
 
230
- let auto_color_range = $derived.by((): [number, number] => {
231
- if (all_color_values.length === 0) return [0, 1]
232
- let [min, max] = [Infinity, -Infinity]
233
- for (const val of all_color_values) {
234
- if (val < min) min = val
235
- if (val > max) max = val
236
- }
237
- return [min, max]
238
- })
227
+ let auto_color_range = $derived(calculate_domain(all_color_values))
239
228
 
240
229
  let color_scale_fn = $derived(
241
230
  create_color_scale(normalized_color_scale, auto_color_range),
@@ -342,7 +331,7 @@
342
331
  {z_axis}
343
332
  {display}
344
333
  {styles}
345
- color_scale={normalized_color_scale}
334
+ {color_scale_fn}
346
335
  {size_scale}
347
336
  {camera_position}
348
337
  {camera_projection}
@@ -1,8 +1,8 @@
1
- import type { D3ColorSchemeName, D3InterpolateName } from '../../colors';
1
+ import type { D3InterpolateName } from '../../colors';
2
2
  import type { Vec3 } from '../../math';
3
3
  import { ColorBar } from '..';
4
4
  import type { Sides } from '../core/layout';
5
- import type { AxisConfig3D, CameraProjection3D, ControlsConfig3D, DataSeries3D, DisplayConfig3D, InternalPoint3D, LegendConfig, RefLine3D, RefPlane, ScaleType, Scatter3DHandlerEvent, StyleOverrides3D, Surface3DConfig } from '../core/types';
5
+ import type { AxisConfig3D, CameraProjection3D, ColorScaleConfig, ControlsConfig3D, DataSeries3D, DisplayConfig3D, InternalPoint3D, LegendConfig, RefLine3D, RefPlane, Scatter3DHandlerEvent, SizeScaleConfig, StyleOverrides3D, Surface3DConfig } from '../core/types';
6
6
  import * as extras from '@threlte/extras';
7
7
  import type { ComponentProps, Snippet } from 'svelte';
8
8
  import type { HTMLAttributes } from 'svelte/elements';
@@ -18,19 +18,11 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
18
18
  z_axis?: AxisConfig3D;
19
19
  display?: DisplayConfig3D;
20
20
  styles?: StyleOverrides3D;
21
- color_scale?: {
22
- type?: ScaleType;
23
- scheme?: D3ColorSchemeName | D3InterpolateName;
24
- value_range?: [number, number];
25
- } | D3InterpolateName;
21
+ color_scale?: ColorScaleConfig | D3InterpolateName;
26
22
  color_bar?: (ComponentProps<typeof ColorBar> & {
27
23
  margin?: number | Sides;
28
24
  }) | null;
29
- size_scale?: {
30
- type?: ScaleType;
31
- radius_range?: [number, number];
32
- value_range?: [number, number];
33
- };
25
+ size_scale?: SizeScaleConfig;
34
26
  legend?: LegendConfig | null;
35
27
  camera_position?: Vec3;
36
28
  camera_projection?: CameraProjection3D;
@@ -72,7 +64,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
72
64
  controls_extra?: Snippet;
73
65
  };
74
66
  exports: {};
75
- bindings: "fullscreen" | "hovered" | "camera_position" | "wrapper" | "camera" | "tooltip_point" | "scene" | "orbit_controls";
67
+ bindings: "fullscreen" | "wrapper" | "hovered" | "scene" | "camera" | "orbit_controls" | "camera_position" | "tooltip_point";
76
68
  slots: {};
77
69
  events: {};
78
70
  };
@@ -80,7 +72,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
80
72
  props(): ReturnType<typeof $$render<Metadata>>['props'];
81
73
  events(): ReturnType<typeof $$render<Metadata>>['events'];
82
74
  slots(): ReturnType<typeof $$render<Metadata>>['slots'];
83
- bindings(): "fullscreen" | "hovered" | "camera_position" | "wrapper" | "camera" | "tooltip_point" | "scene" | "orbit_controls";
75
+ bindings(): "fullscreen" | "wrapper" | "hovered" | "scene" | "camera" | "orbit_controls" | "camera_position" | "tooltip_point";
84
76
  exports(): {};
85
77
  }
86
78
  interface $$IsomorphicComponent {
@@ -1,7 +1,9 @@
1
1
  <script lang="ts">
2
+ import type { PaneProps, PaneToggleProps } from '../../overlays'
2
3
  // NOTE: Axis config objects must be reassigned (not mutated) to trigger $bindable reactivity.
3
4
  // Pattern: `x_axis = { ...x_axis, prop: value }` instead of `x_axis.prop = value`
4
5
  import { SettingsSection } from '../../layout'
6
+ import type { Vec2 } from '../../math'
5
7
  import DraggablePane from '../../overlays/DraggablePane.svelte'
6
8
  import type {
7
9
  AxisConfig3D,
@@ -10,6 +12,7 @@
10
12
  DisplayConfig3D,
11
13
  Surface3DConfig,
12
14
  } from '../core/types'
15
+ import { calculate_domain } from '../core/scales'
13
16
  import { unique_id } from '../core/utils'
14
17
  import type { ComponentProps, Snippet } from 'svelte'
15
18
 
@@ -39,19 +42,15 @@
39
42
  auto_rotate?: number
40
43
  series?: DataSeries3D[]
41
44
  surfaces?: Surface3DConfig[]
42
- toggle_props?: ComponentProps<typeof DraggablePane>[`toggle_props`]
43
- pane_props?: ComponentProps<typeof DraggablePane>[`pane_props`]
45
+ toggle_props?: PaneToggleProps
46
+ pane_props?: PaneProps
44
47
  children?: Snippet
45
48
  } = $props()
46
49
 
47
- // Calculate auto ranges for reset
48
- function calc_auto_range(values: number[]): [number, number] {
50
+ // Calculate auto ranges for reset (5% padding, 0.5 when all values coincide)
51
+ function calc_auto_range(values: number[]): Vec2 {
49
52
  if (values.length === 0) return [0, 1]
50
- let [min_val, max_val] = [values[0], values[0]]
51
- for (const val of values) {
52
- if (val < min_val) min_val = val
53
- else if (val > max_val) max_val = val
54
- }
53
+ const [min_val, max_val] = calculate_domain(values)
55
54
  const padding = (max_val - min_val) * 0.05 || 0.5
56
55
  return [min_val - padding, max_val + padding]
57
56
  }
@@ -97,7 +96,7 @@
97
96
  type AxisEntry = {
98
97
  name: string
99
98
  axis: AxisConfig3D
100
- auto_range: [number, number]
99
+ auto_range: Vec2
101
100
  set: (val: AxisConfig3D) => void
102
101
  }
103
102
  const axes = $derived<AxisEntry[]>([
@@ -1,6 +1,6 @@
1
- import DraggablePane from '../../overlays/DraggablePane.svelte';
1
+ import type { PaneProps, PaneToggleProps } from '../../overlays';
2
2
  import type { AxisConfig3D, CameraProjection3D, DataSeries3D, DisplayConfig3D, Surface3DConfig } from '../core/types';
3
- import type { ComponentProps, Snippet } from 'svelte';
3
+ import type { Snippet } from 'svelte';
4
4
  type $$ComponentProps = {
5
5
  show?: boolean;
6
6
  x_axis?: AxisConfig3D;
@@ -11,10 +11,10 @@ type $$ComponentProps = {
11
11
  auto_rotate?: number;
12
12
  series?: DataSeries3D[];
13
13
  surfaces?: Surface3DConfig[];
14
- toggle_props?: ComponentProps<typeof DraggablePane>[`toggle_props`];
15
- pane_props?: ComponentProps<typeof DraggablePane>[`pane_props`];
14
+ toggle_props?: PaneToggleProps;
15
+ pane_props?: PaneProps;
16
16
  children?: Snippet;
17
17
  };
18
- declare const ScatterPlot3DControls: import("svelte").Component<$$ComponentProps, {}, "display" | "show" | "x_axis" | "y_axis" | "camera_projection" | "auto_rotate" | "z_axis">;
18
+ declare const ScatterPlot3DControls: import("svelte").Component<$$ComponentProps, {}, "display" | "show" | "y_axis" | "x_axis" | "camera_projection" | "auto_rotate" | "z_axis">;
19
19
  type ScatterPlot3DControls = ReturnType<typeof ScatterPlot3DControls>;
20
20
  export default ScatterPlot3DControls;