matterviz 0.4.1 → 0.4.2

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 (395) hide show
  1. package/dist/EmptyState.svelte +10 -4
  2. package/dist/FilePicker.svelte +12 -14
  3. package/dist/Icon.svelte +7 -4
  4. package/dist/MillerIndexInput.svelte +2 -2
  5. package/dist/app.css +53 -0
  6. package/dist/brillouin/BrillouinZone.svelte +75 -85
  7. package/dist/brillouin/BrillouinZone.svelte.d.ts +5 -7
  8. package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
  9. package/dist/brillouin/BrillouinZoneExportPane.svelte +18 -14
  10. package/dist/brillouin/BrillouinZoneInfoPane.svelte +6 -10
  11. package/dist/brillouin/BrillouinZoneScene.svelte +26 -39
  12. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -1
  13. package/dist/chempot-diagram/ChemPotDiagram.svelte +33 -38
  14. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +62 -74
  15. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +1 -1
  16. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +511 -547
  17. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +1 -1
  18. package/dist/chempot-diagram/async-compute.svelte.js +1 -1
  19. package/dist/chempot-diagram/controls-state.svelte.js +1 -1
  20. package/dist/colors/index.d.ts +0 -4
  21. package/dist/colors/index.js +19 -20
  22. package/dist/composition/BarChart.svelte +37 -31
  23. package/dist/composition/BubbleChart.svelte +17 -17
  24. package/dist/composition/Composition.svelte +7 -11
  25. package/dist/composition/Formula.svelte +18 -25
  26. package/dist/composition/FormulaFilter.svelte +92 -95
  27. package/dist/composition/PieChart.svelte +55 -41
  28. package/dist/composition/format.js +1 -1
  29. package/dist/composition/index.d.ts +2 -0
  30. package/dist/composition/index.js +14 -0
  31. package/dist/composition/parse.d.ts +2 -2
  32. package/dist/composition/parse.js +11 -10
  33. package/dist/constants.js +11 -9
  34. package/dist/convex-hull/ConvexHull.svelte +12 -15
  35. package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -1
  36. package/dist/convex-hull/ConvexHull2D.svelte +93 -92
  37. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
  38. package/dist/convex-hull/ConvexHull3D.svelte +109 -140
  39. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
  40. package/dist/convex-hull/ConvexHull4D.svelte +75 -94
  41. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
  42. package/dist/convex-hull/ConvexHullChrome.svelte +36 -40
  43. package/dist/convex-hull/ConvexHullControls.svelte +46 -48
  44. package/dist/convex-hull/ConvexHullStats.svelte +193 -195
  45. package/dist/convex-hull/ConvexHullTooltip.svelte +5 -12
  46. package/dist/convex-hull/GasPressureControls.svelte +5 -12
  47. package/dist/convex-hull/StructurePopup.svelte +17 -21
  48. package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
  49. package/dist/convex-hull/TemperatureSlider.svelte +4 -10
  50. package/dist/convex-hull/canvas-interactions.svelte.js +2 -1
  51. package/dist/convex-hull/helpers.d.ts +8 -10
  52. package/dist/convex-hull/helpers.js +36 -36
  53. package/dist/convex-hull/hull-state.svelte.d.ts +1 -1
  54. package/dist/convex-hull/thermodynamics.js +18 -17
  55. package/dist/coordination/CoordinationBarPlot.svelte +38 -33
  56. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
  57. package/dist/coordination/calc-coordination.d.ts +1 -1
  58. package/dist/coordination/calc-coordination.js +28 -25
  59. package/dist/element/BohrAtom.svelte +5 -8
  60. package/dist/element/ElementHeading.svelte +4 -1
  61. package/dist/element/ElementPhoto.svelte +11 -9
  62. package/dist/element/ElementStats.svelte +12 -10
  63. package/dist/element/ElementTile.svelte +24 -29
  64. package/dist/element/Nucleus.svelte +4 -2
  65. package/dist/element/data.d.ts +1 -2
  66. package/dist/element/helpers.d.ts +4 -0
  67. package/dist/element/helpers.js +18 -0
  68. package/dist/element/index.d.ts +1 -4
  69. package/dist/element/index.js +3 -18
  70. package/dist/feedback/DragOverlay.svelte +5 -5
  71. package/dist/feedback/DragOverlay.svelte.d.ts +2 -2
  72. package/dist/feedback/StatusMessage.svelte +7 -4
  73. package/dist/fermi-surface/FermiSlice.svelte +21 -18
  74. package/dist/fermi-surface/FermiSurface.svelte +14 -22
  75. package/dist/fermi-surface/FermiSurface.svelte.d.ts +5 -7
  76. package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
  77. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
  78. package/dist/fermi-surface/FermiSurfaceScene.svelte +37 -64
  79. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +1 -1
  80. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
  81. package/dist/fermi-surface/compute.js +3 -3
  82. package/dist/fermi-surface/parse.js +22 -24
  83. package/dist/heatmap-matrix/HeatmapMatrix.svelte +109 -148
  84. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +2 -2
  85. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +9 -7
  86. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +1 -1
  87. package/dist/heatmap-matrix/index.d.ts +5 -0
  88. package/dist/icons.d.ts +4 -0
  89. package/dist/icons.js +4 -0
  90. package/dist/io/ExportPane.svelte +10 -6
  91. package/dist/io/decompress.d.ts +2 -1
  92. package/dist/io/decompress.js +22 -35
  93. package/dist/io/export.d.ts +4 -0
  94. package/dist/io/export.js +5 -1
  95. package/dist/io/fetch.d.ts +0 -3
  96. package/dist/io/fetch.js +0 -11
  97. package/dist/io/index.d.ts +0 -1
  98. package/dist/io/index.js +2 -9
  99. package/dist/io/is-binary.d.ts +9 -0
  100. package/dist/io/is-binary.js +45 -1
  101. package/dist/io/url-drop.js +13 -25
  102. package/dist/isosurface/Isosurface.svelte +17 -23
  103. package/dist/isosurface/IsosurfaceControls.svelte +37 -42
  104. package/dist/isosurface/parse-vaspwave.d.ts +3 -0
  105. package/dist/isosurface/parse-vaspwave.js +138 -0
  106. package/dist/isosurface/parse.js +6 -6
  107. package/dist/labels.d.ts +6 -2
  108. package/dist/labels.js +43 -13
  109. package/dist/layout/FullscreenButton.svelte +2 -1
  110. package/dist/layout/FullscreenToggle.svelte +10 -4
  111. package/dist/layout/InfoCard.svelte +7 -18
  112. package/dist/layout/InfoTag.svelte +1 -3
  113. package/dist/layout/NumberRangeInput.svelte +46 -0
  114. package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
  115. package/dist/layout/PropertyFilter.svelte +2 -6
  116. package/dist/layout/SettingsSection.svelte +21 -17
  117. package/dist/layout/SubpageGrid.svelte +3 -1
  118. package/dist/layout/ViewerChrome.svelte +9 -10
  119. package/dist/layout/ViewerChrome.svelte.d.ts +2 -1
  120. package/dist/layout/fullscreen.js +3 -5
  121. package/dist/layout/fullscreen.svelte.js +1 -2
  122. package/dist/layout/index.d.ts +1 -0
  123. package/dist/layout/index.js +1 -0
  124. package/dist/layout/json-tree/JsonNode.svelte +8 -11
  125. package/dist/layout/json-tree/JsonTree.svelte +53 -77
  126. package/dist/layout/json-tree/JsonValue.svelte +7 -15
  127. package/dist/layout/json-tree/utils.js +14 -23
  128. package/dist/math.d.ts +2 -0
  129. package/dist/math.js +19 -0
  130. package/dist/overlays/ContextMenu.svelte +4 -2
  131. package/dist/overlays/CopyButton.svelte +11 -5
  132. package/dist/overlays/DragControlTab.svelte +6 -1
  133. package/dist/overlays/DraggablePane.svelte +81 -26
  134. package/dist/overlays/DraggablePane.svelte.d.ts +1 -0
  135. package/dist/overlays/GlassChip.svelte +30 -0
  136. package/dist/overlays/GlassChip.svelte.d.ts +8 -0
  137. package/dist/overlays/InfoPaneCards.svelte +11 -23
  138. package/dist/overlays/index.d.ts +7 -0
  139. package/dist/overlays/index.js +26 -0
  140. package/dist/overlays/portal.d.ts +2 -0
  141. package/dist/overlays/portal.js +14 -0
  142. package/dist/periodic-table/PeriodicTable.svelte +113 -145
  143. package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
  144. package/dist/periodic-table/PeriodicTableControls.svelte +11 -63
  145. package/dist/periodic-table/TableInset.svelte +9 -4
  146. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +50 -71
  147. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
  148. package/dist/phase-diagram/PhaseDiagramControls.svelte +70 -94
  149. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
  150. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
  151. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +12 -12
  152. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
  153. package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
  154. package/dist/phase-diagram/build-diagram.js +3 -3
  155. package/dist/phase-diagram/diagram-input.d.ts +1 -2
  156. package/dist/phase-diagram/parse.js +15 -15
  157. package/dist/phase-diagram/svg-to-diagram.js +21 -15
  158. package/dist/phase-diagram/utils.js +2 -3
  159. package/dist/plot/bar/BarPlot.svelte +430 -391
  160. package/dist/plot/bar/BarPlot.svelte.d.ts +2 -0
  161. package/dist/plot/bar/BarPlotControls.svelte +1 -3
  162. package/dist/plot/bar/BarPlotControls.svelte.d.ts +4 -6
  163. package/dist/plot/bar/SpacegroupBarPlot.svelte +29 -36
  164. package/dist/plot/bar/data.d.ts +5 -4
  165. package/dist/plot/bar/data.js +2 -1
  166. package/dist/plot/box/BoxPlot.svelte +301 -209
  167. package/dist/plot/box/BoxPlot.svelte.d.ts +2 -0
  168. package/dist/plot/box/Violin.svelte.d.ts +1 -0
  169. package/dist/plot/box/box-plot.js +1 -1
  170. package/dist/plot/core/auto-place.js +1 -1
  171. package/dist/plot/core/axis-utils.d.ts +12 -7
  172. package/dist/plot/core/axis-utils.js +48 -48
  173. package/dist/plot/core/components/AxisLabel.svelte +82 -20
  174. package/dist/plot/core/components/AxisLabel.svelte.d.ts +1 -0
  175. package/dist/plot/core/components/ColorBar.svelte +101 -106
  176. package/dist/plot/core/components/ColorScaleSelect.svelte +1 -1
  177. package/dist/plot/core/components/FillArea.svelte +10 -17
  178. package/dist/plot/core/components/HierarchyControls.svelte +249 -0
  179. package/dist/plot/{sunburst/SunburstControls.svelte.d.ts → core/components/HierarchyControls.svelte.d.ts} +12 -8
  180. package/dist/plot/core/components/InteractiveAxisLabel.svelte +1 -1
  181. package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +1 -1
  182. package/dist/plot/core/components/Line.svelte +18 -9
  183. package/dist/plot/core/components/Line.svelte.d.ts +2 -0
  184. package/dist/plot/core/components/PlotAxis.svelte +40 -17
  185. package/dist/plot/core/components/PlotControls.svelte +65 -41
  186. package/dist/plot/core/components/PlotLegend.svelte +31 -35
  187. package/dist/plot/core/components/PlotMarginals.svelte +616 -0
  188. package/dist/plot/core/components/PlotMarginals.svelte.d.ts +15 -0
  189. package/dist/plot/core/components/PlotTooltip.svelte +1 -1
  190. package/dist/plot/core/components/PortalSelect.svelte +4 -8
  191. package/dist/plot/core/components/ReferenceLine.svelte +27 -24
  192. package/dist/plot/core/components/ReferenceLine3D.svelte +54 -57
  193. package/dist/plot/core/components/ReferencePlane.svelte +7 -8
  194. package/dist/plot/core/components/ZeroLines.svelte +4 -8
  195. package/dist/plot/core/components/ZoomRect.svelte +1 -2
  196. package/dist/plot/core/components/index.d.ts +1 -0
  197. package/dist/plot/core/components/index.js +1 -0
  198. package/dist/plot/core/data-cleaning-signal.d.ts +46 -0
  199. package/dist/plot/core/data-cleaning-signal.js +467 -0
  200. package/dist/plot/core/data-cleaning.d.ts +2 -42
  201. package/dist/plot/core/data-cleaning.js +27 -474
  202. package/dist/plot/core/data-transform.js +9 -5
  203. package/dist/plot/core/fill-utils.d.ts +3 -1
  204. package/dist/plot/core/fill-utils.js +28 -6
  205. package/dist/plot/core/index.d.ts +1 -0
  206. package/dist/plot/core/index.js +1 -0
  207. package/dist/plot/core/interactions.js +0 -2
  208. package/dist/plot/core/layout.d.ts +3 -1
  209. package/dist/plot/core/layout.js +22 -13
  210. package/dist/plot/core/marginals.d.ts +170 -0
  211. package/dist/plot/core/marginals.js +436 -0
  212. package/dist/plot/core/reference-line.js +1 -1
  213. package/dist/plot/core/scales.d.ts +23 -0
  214. package/dist/plot/core/scales.js +39 -13
  215. package/dist/plot/core/types/fills.d.ts +101 -0
  216. package/dist/plot/core/types/fills.js +15 -0
  217. package/dist/plot/core/types/plot-3d.d.ts +87 -0
  218. package/dist/plot/core/types/plot-3d.js +4 -0
  219. package/dist/plot/core/types/reference-lines.d.ts +140 -0
  220. package/dist/plot/core/types/reference-lines.js +9 -0
  221. package/dist/plot/core/types.d.ts +29 -324
  222. package/dist/plot/core/types.js +23 -20
  223. package/dist/plot/core/utils/hierarchy-chart.d.ts +51 -0
  224. package/dist/plot/core/utils/hierarchy-chart.js +179 -0
  225. package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
  226. package/dist/plot/core/utils/hierarchy-labels.js +99 -0
  227. package/dist/plot/core/utils/label-placement.js +2 -2
  228. package/dist/plot/histogram/Histogram.svelte +304 -325
  229. package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
  230. package/dist/plot/histogram/HistogramControls.svelte +30 -28
  231. package/dist/plot/histogram/histogram.d.ts +31 -0
  232. package/dist/plot/histogram/histogram.js +70 -0
  233. package/dist/plot/histogram/index.d.ts +1 -0
  234. package/dist/plot/histogram/index.js +1 -0
  235. package/dist/plot/index.d.ts +1 -0
  236. package/dist/plot/index.js +1 -0
  237. package/dist/plot/sankey/Sankey.svelte +78 -69
  238. package/dist/plot/sankey/Sankey.svelte.d.ts +2 -2
  239. package/dist/plot/sankey/SankeyControls.svelte +22 -16
  240. package/dist/plot/scatter/BinnedScatterPlot.svelte +263 -109
  241. package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +7 -0
  242. package/dist/plot/scatter/ElementScatter.svelte +4 -1
  243. package/dist/plot/scatter/ScatterPlot.svelte +477 -385
  244. package/dist/plot/scatter/ScatterPlot.svelte.d.ts +2 -0
  245. package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
  246. package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
  247. package/dist/plot/scatter/ScatterPoint.svelte +16 -9
  248. package/dist/plot/scatter/binned-scatter-types.d.ts +3 -2
  249. package/dist/plot/scatter/binned-scatter-types.js +6 -1
  250. package/dist/plot/scatter/scatter-data.d.ts +1 -1
  251. package/dist/plot/scatter/scatter-data.js +8 -7
  252. package/dist/plot/scatter-3d/ScatterPlot3D.svelte +25 -34
  253. package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +2 -2
  254. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +8 -5
  255. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +113 -116
  256. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +2 -2
  257. package/dist/plot/scatter-3d/Surface3D.svelte +4 -13
  258. package/dist/plot/sunburst/Sunburst.svelte +251 -329
  259. package/dist/plot/sunburst/Sunburst.svelte.d.ts +2 -2
  260. package/dist/plot/sunburst/index.d.ts +1 -1
  261. package/dist/plot/sunburst/index.js +2 -1
  262. package/dist/plot/sunburst/render.d.ts +2 -2
  263. package/dist/plot/sunburst/render.js +47 -22
  264. package/dist/plot/sunburst/sunburst.d.ts +5 -1
  265. package/dist/plot/sunburst/sunburst.js +10 -3
  266. package/dist/plot/treemap/Treemap.svelte +907 -0
  267. package/dist/plot/treemap/Treemap.svelte.d.ts +84 -0
  268. package/dist/plot/treemap/index.d.ts +3 -0
  269. package/dist/plot/treemap/index.js +4 -0
  270. package/dist/plot/treemap/treemap.d.ts +26 -0
  271. package/dist/plot/treemap/treemap.js +99 -0
  272. package/dist/rdf/RdfPlot.svelte +22 -26
  273. package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
  274. package/dist/rdf/calc-rdf.js +4 -8
  275. package/dist/sanitize.js +1 -1
  276. package/dist/scene/bind-renderer.svelte.js +14 -6
  277. package/dist/settings.d.ts +19 -9
  278. package/dist/settings.js +77 -50
  279. package/dist/spectral/Bands.svelte +223 -230
  280. package/dist/spectral/BandsAndDos.svelte +11 -9
  281. package/dist/spectral/BrillouinBandsDos.svelte +19 -27
  282. package/dist/spectral/Dos.svelte +70 -73
  283. package/dist/spectral/helpers.d.ts +3 -3
  284. package/dist/spectral/helpers.js +25 -35
  285. package/dist/state.svelte.js +5 -18
  286. package/dist/structure/Arrow.svelte +5 -18
  287. package/dist/structure/ArrowInstances.svelte +160 -0
  288. package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
  289. package/dist/structure/AtomLegend.svelte +115 -75
  290. package/dist/structure/AtomLegend.svelte.d.ts +1 -1
  291. package/dist/structure/Bond.svelte +31 -23
  292. package/dist/structure/CanvasTooltip.svelte +15 -3
  293. package/dist/structure/CellSelect.svelte +11 -26
  294. package/dist/structure/Cylinder.svelte +24 -40
  295. package/dist/structure/InstancedAtoms.svelte +114 -0
  296. package/dist/structure/InstancedAtoms.svelte.d.ts +15 -0
  297. package/dist/structure/Lattice.svelte +85 -149
  298. package/dist/structure/SiteLabels.svelte +122 -0
  299. package/dist/structure/SiteLabels.svelte.d.ts +18 -0
  300. package/dist/structure/Structure.svelte +473 -419
  301. package/dist/structure/Structure.svelte.d.ts +4 -2
  302. package/dist/structure/StructureCarousel.svelte +630 -0
  303. package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
  304. package/dist/structure/StructureControls.svelte +157 -399
  305. package/dist/structure/StructureControls.svelte.d.ts +1 -1
  306. package/dist/structure/StructureExportPane.svelte +17 -21
  307. package/dist/structure/StructureInfoPane.svelte +72 -66
  308. package/dist/structure/StructureInfoPane.svelte.d.ts +1 -1
  309. package/dist/structure/StructureScene.svelte +467 -476
  310. package/dist/structure/StructureScene.svelte.d.ts +3 -1
  311. package/dist/structure/StructureViewport.svelte +386 -0
  312. package/dist/structure/StructureViewport.svelte.d.ts +63 -0
  313. package/dist/structure/atom-label-placement.d.ts +16 -12
  314. package/dist/structure/atom-label-placement.js +70 -37
  315. package/dist/structure/atom-properties.d.ts +2 -0
  316. package/dist/structure/atom-properties.js +104 -38
  317. package/dist/structure/bonding.d.ts +10 -3
  318. package/dist/structure/bonding.js +84 -28
  319. package/dist/structure/edit-history.d.ts +6 -0
  320. package/dist/structure/edit-history.js +27 -0
  321. package/dist/structure/export.d.ts +1 -0
  322. package/dist/structure/export.js +39 -31
  323. package/dist/structure/format-detect.d.ts +1 -0
  324. package/dist/structure/format-detect.js +22 -0
  325. package/dist/structure/geometry.d.ts +9 -0
  326. package/dist/structure/geometry.js +27 -0
  327. package/dist/structure/index.d.ts +16 -1
  328. package/dist/structure/index.js +13 -2
  329. package/dist/structure/measure.d.ts +1 -1
  330. package/dist/structure/measure.js +6 -12
  331. package/dist/structure/parse.d.ts +2 -1
  332. package/dist/structure/parse.js +243 -222
  333. package/dist/structure/partial-occupancy.js +4 -2
  334. package/dist/structure/pbc.js +78 -98
  335. package/dist/structure/polyhedra.d.ts +0 -1
  336. package/dist/structure/polyhedra.js +3 -18
  337. package/dist/structure/supercell.d.ts +1 -2
  338. package/dist/structure/supercell.js +7 -13
  339. package/dist/symmetry/SymmetryElements.svelte +11 -15
  340. package/dist/symmetry/SymmetryStats.svelte +56 -68
  341. package/dist/symmetry/WyckoffTable.svelte +5 -24
  342. package/dist/symmetry/cell-transform.js +1 -0
  343. package/dist/symmetry/index.d.ts +1 -0
  344. package/dist/symmetry/index.js +8 -2
  345. package/dist/symmetry/spacegroups.js +3 -2
  346. package/dist/table/HeatmapTable.svelte +1102 -365
  347. package/dist/table/HeatmapTable.svelte.d.ts +12 -2
  348. package/dist/table/ToggleMenu.svelte +5 -12
  349. package/dist/table/index.d.ts +21 -6
  350. package/dist/table/index.js +34 -21
  351. package/dist/theme/ThemeControl.svelte +16 -8
  352. package/dist/theme/index.d.ts +1 -5
  353. package/dist/theme/index.js +4 -10
  354. package/dist/theme/themes.mjs +14 -7
  355. package/dist/tooltip/KCoords.svelte +4 -1
  356. package/dist/tooltip/TooltipContent.svelte +2 -5
  357. package/dist/trajectory/Trajectory.svelte +515 -308
  358. package/dist/trajectory/Trajectory.svelte.d.ts +1 -1
  359. package/dist/trajectory/TrajectoryError.svelte +11 -8
  360. package/dist/trajectory/TrajectoryExportPane.svelte +14 -31
  361. package/dist/trajectory/TrajectoryInfoPane.svelte +85 -97
  362. package/dist/trajectory/extract.js +56 -34
  363. package/dist/trajectory/format-detect.js +11 -9
  364. package/dist/trajectory/frame-reader.d.ts +2 -0
  365. package/dist/trajectory/frame-reader.js +33 -29
  366. package/dist/trajectory/helpers.d.ts +2 -0
  367. package/dist/trajectory/helpers.js +18 -7
  368. package/dist/trajectory/index.d.ts +1 -0
  369. package/dist/trajectory/index.js +3 -0
  370. package/dist/trajectory/parse/h5-utils.d.ts +13 -0
  371. package/dist/trajectory/parse/h5-utils.js +109 -0
  372. package/dist/trajectory/parse/hdf5.d.ts +1 -1
  373. package/dist/trajectory/parse/hdf5.js +116 -106
  374. package/dist/trajectory/parse/index.d.ts +2 -3
  375. package/dist/trajectory/parse/index.js +17 -20
  376. package/dist/trajectory/parse/lammps.js +8 -12
  377. package/dist/trajectory/parse/vasp.js +10 -7
  378. package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
  379. package/dist/trajectory/parse/vaspout-electronic.js +207 -0
  380. package/dist/trajectory/parse/vaspout-h5.d.ts +5 -0
  381. package/dist/trajectory/parse/vaspout-h5.js +284 -0
  382. package/dist/trajectory/parse/xyz.js +11 -7
  383. package/dist/trajectory/plotting.d.ts +8 -9
  384. package/dist/trajectory/plotting.js +99 -27
  385. package/dist/utils.d.ts +3 -0
  386. package/dist/utils.js +7 -0
  387. package/dist/xrd/XrdPlot.svelte +47 -61
  388. package/dist/xrd/broadening.js +2 -1
  389. package/dist/xrd/calc-xrd.js +2 -4
  390. package/dist/xrd/parse.d.ts +0 -1
  391. package/dist/xrd/parse.js +56 -73
  392. package/package.json +61 -33
  393. package/dist/api/mp.d.ts +0 -6
  394. package/dist/api/mp.js +0 -22
  395. package/dist/plot/sunburst/SunburstControls.svelte +0 -200
@@ -17,6 +17,7 @@
17
17
  StyleOverrides3D,
18
18
  Surface3DConfig,
19
19
  } from '../core/types'
20
+ import { SCALE_DEFAULTS } from '../core/types'
20
21
  import { bind_renderer } from '../../scene'
21
22
  import { T, useTask } from '@threlte/core'
22
23
  import * as extras from '@threlte/extras'
@@ -46,7 +47,7 @@
46
47
  ref_lines = [],
47
48
  ref_planes = [],
48
49
  color_scale_fn = () => get_series_color(0),
49
- size_scale = { type: `linear`, radius_range: [0.05, 0.2] },
50
+ size_scale = SCALE_DEFAULTS.size_3d,
50
51
  camera_position = [10, 10, 10] as Vec3,
51
52
  camera_projection = `perspective` as CameraProjection3D,
52
53
  auto_rotate = 0,
@@ -150,31 +151,25 @@
150
151
 
151
152
  // Flatten all points from series
152
153
  let all_points = $derived(
153
- series
154
- .filter(Boolean)
155
- .flatMap((srs, series_idx) =>
156
- srs.x.map((x_val, point_idx) => ({
157
- x: x_val,
158
- y: srs.y[point_idx],
159
- z: srs.z[point_idx],
160
- series_idx,
161
- point_idx,
162
- color_value: srs.color_values?.[point_idx] ?? null,
163
- size_value: srs.size_values?.[point_idx] ?? null,
164
- metadata: Array.isArray(srs.metadata)
165
- ? srs.metadata[point_idx]
166
- : srs.metadata,
167
- point_style: Array.isArray(srs.point_style)
168
- ? srs.point_style[point_idx]
169
- : srs.point_style,
170
- }))
171
- ),
154
+ series.filter(Boolean).flatMap((srs, series_idx) =>
155
+ srs.x.map((x_val, point_idx) => ({
156
+ x: x_val,
157
+ y: srs.y[point_idx],
158
+ z: srs.z[point_idx],
159
+ series_idx,
160
+ point_idx,
161
+ color_value: srs.color_values?.[point_idx] ?? null,
162
+ size_value: srs.size_values?.[point_idx] ?? null,
163
+ metadata: Array.isArray(srs.metadata) ? srs.metadata[point_idx] : srs.metadata,
164
+ point_style: Array.isArray(srs.point_style)
165
+ ? srs.point_style[point_idx]
166
+ : srs.point_style,
167
+ })),
168
+ ),
172
169
  )
173
170
 
174
171
  // Sample surface points for range calculation (10x10 grid)
175
- function sample_surface(
176
- surface: Surface3DConfig,
177
- ): { x: number; y: number; z: number }[] {
172
+ function sample_surface(surface: Surface3DConfig): { x: number; y: number; z: number }[] {
178
173
  const grid_steps = 10
179
174
  const pts: { x: number; y: number; z: number }[] = []
180
175
  if (surface.type === `grid` && surface.z_fn) {
@@ -214,12 +209,12 @@
214
209
  if (range?.[0] != null && range?.[1] != null) return range as Vec2
215
210
  if (data_min > data_max) return [0, 1] // no finite values
216
211
  let [min, max] = [data_min, data_max]
217
- const pad = min === max
218
- ? (min === 0 ? 1 : Math.abs(min * 0.1))
219
- : (max - min) * 0.05
212
+ const pad = min === max ? (min === 0 ? 1 : Math.abs(min * 0.1)) : (max - min) * 0.05
220
213
  if (range?.[0] == null) min -= pad
221
214
  if (range?.[1] == null) max += pad
222
- return scaleLinear().domain([range?.[0] ?? min, range?.[1] ?? max]).nice()
215
+ return scaleLinear()
216
+ .domain([range?.[0] ?? min, range?.[1] ?? max])
217
+ .nice()
223
218
  .domain() as Vec2
224
219
  }
225
220
 
@@ -261,12 +256,14 @@
261
256
  // Process points with normalized positions
262
257
  // Swap Y/Z for Three.js: user Z → Three.js Y (vertical), user Y → Three.js Z (depth)
263
258
  let processed_points = $derived(
264
- all_points.map((pt): InternalPoint3D<Metadata> => ({
265
- ...pt,
266
- x: normalize_x(pt.x), // user X → Three.js X
267
- y: normalize_z(pt.z), // user Z → Three.js Y (vertical)
268
- z: normalize_y(pt.y), // user Y → Three.js Z (depth)
269
- })),
259
+ all_points.map(
260
+ (pt): InternalPoint3D<Metadata> => ({
261
+ ...pt,
262
+ x: normalize_x(pt.x), // user X → Three.js X
263
+ y: normalize_z(pt.z), // user Z → Three.js Y (vertical)
264
+ z: normalize_y(pt.y), // user Y → Three.js Z (depth)
265
+ }),
266
+ ),
270
267
  )
271
268
 
272
269
  // Group points by radius, with per-instance colors
@@ -281,12 +278,14 @@
281
278
  for (const pt of processed_points) {
282
279
  const srs = series[pt.series_idx]
283
280
  if (!(series_visibility[pt.series_idx] ?? srs?.visible ?? true)) continue
284
- const color = pt.color_value != null
285
- ? color_scale_fn(pt.color_value)
286
- : pt.point_style?.fill ?? get_series_color(pt.series_idx)
287
- const radius = pt.size_value != null
288
- ? size_scale_fn(pt.size_value)
289
- : (pt.point_style?.radius ?? styles.point?.size ?? 2) * 0.05
281
+ const color =
282
+ pt.color_value != null
283
+ ? color_scale_fn(pt.color_value)
284
+ : (pt.point_style?.fill ?? get_series_color(pt.series_idx))
285
+ const radius =
286
+ pt.size_value != null
287
+ ? size_scale_fn(pt.size_value)
288
+ : (pt.point_style?.radius ?? styles.point?.size ?? 2) * 0.05
290
289
  const key = radius.toFixed(4)
291
290
  ;(groups[key] ??= { radius, points: [], colors: [] }).points.push(pt)
292
291
  groups[key].colors.push(color)
@@ -306,14 +305,17 @@
306
305
  let projection_configs = $derived(
307
306
  ([`xy`, `xz`, `yz`] as const)
308
307
  .filter((key) => display.projections?.[key])
309
- .map((key): ProjectionConfig => ({
310
- key,
311
- get_pos: key === `xy`
312
- ? (pt) => [pt.x, pos.y, pt.z]
313
- : key === `xz`
314
- ? (pt) => [pt.x, pt.y, pos.z]
315
- : (pt) => [pos.x, pt.y, pt.z],
316
- })),
308
+ .map(
309
+ (key): ProjectionConfig => ({
310
+ key,
311
+ get_pos:
312
+ key === `xy`
313
+ ? (pt) => [pt.x, pos.y, pt.z]
314
+ : key === `xz`
315
+ ? (pt) => [pt.x, pt.y, pos.z]
316
+ : (pt) => [pos.x, pt.y, pt.z],
317
+ }),
318
+ ),
317
319
  )
318
320
 
319
321
  // Series line data for connecting points
@@ -342,10 +344,9 @@
342
344
  if (!(series_visibility[series_idx] ?? srs.visible ?? true)) continue
343
345
  const positions: number[] = []
344
346
  positions_by_series.set(series_idx, positions)
345
- const color = line_style.stroke ??
346
- (Array.isArray(srs.point_style)
347
- ? srs.point_style[0]?.fill
348
- : srs.point_style?.fill) ??
347
+ const color =
348
+ line_style.stroke ??
349
+ (Array.isArray(srs.point_style) ? srs.point_style[0]?.fill : srs.point_style?.fill) ??
349
350
  get_series_color(series_idx)
350
351
  eligible.push({
351
352
  series_idx,
@@ -363,7 +364,8 @@
363
364
  })
364
365
 
365
366
  const same_line_input = (prev: SeriesLineData, next: SeriesLineInput): boolean =>
366
- prev.color === next.color && prev.width === next.width &&
367
+ prev.color === next.color &&
368
+ prev.width === next.width &&
367
369
  prev.dashed === next.dashed &&
368
370
  prev.positions.length === next.positions.length &&
369
371
  prev.positions.every((coord, idx) => coord === next.positions[idx])
@@ -405,7 +407,8 @@
405
407
  stale.material.dispose()
406
408
  }
407
409
  // Skip reassignment when every line was reused to avoid invalidating consumers
408
- const unchanged = next_lines.length === series_lines.length &&
410
+ const unchanged =
411
+ next_lines.length === series_lines.length &&
409
412
  next_lines.every((line, idx) => line === series_lines[idx])
410
413
  if (!unchanged) series_lines = next_lines
411
414
  })
@@ -434,10 +437,7 @@
434
437
  })
435
438
 
436
439
  // Generate axis ticks using D3's smart tick generation
437
- function gen_ticks(
438
- range: Vec2,
439
- ticks?: AxisConfig3D[`ticks`],
440
- ): number[] {
440
+ function gen_ticks(range: Vec2, ticks?: AxisConfig3D[`ticks`]): number[] {
441
441
  if (Array.isArray(ticks)) return ticks
442
442
  const [min, max] = range
443
443
  if (!isFinite(min) || !isFinite(max) || min === max) return [min]
@@ -502,8 +502,8 @@
502
502
  gizmo === false
503
503
  ? null
504
504
  : gizmo === true
505
- ? { background: { enabled: false }, offset: { left: 5, bottom: 5 } }
506
- : gizmo,
505
+ ? { background: { enabled: false }, offset: { left: 5, bottom: 5 } }
506
+ : gizmo,
507
507
  )
508
508
 
509
509
  // Orbit controls - snappy with minimal inertia
@@ -558,19 +558,25 @@
558
558
  ticks: x_ticks,
559
559
  range: x_range,
560
560
  get_tick_pos: (val: number): Vec3 => [normalize_x(val), pos.y, pos.z],
561
- get_tick_end: (
562
- val: number,
563
- ): Vec3 => [normalize_x(val), pos.y + sign_y * tick_length, pos.z],
561
+ get_tick_end: (val: number): Vec3 => [
562
+ normalize_x(val),
563
+ pos.y + sign_y * tick_length,
564
+ pos.z,
565
+ ],
564
566
  get_grid_lines: (val: number): [Vec3, Vec3][] => {
565
567
  const px = normalize_x(val)
566
568
  return [
567
- [[px, -half_z, pos.z], [px, half_z, pos.z]],
568
- [[px, pos.y, -half_y], [px, pos.y, half_y]],
569
+ [
570
+ [px, -half_z, pos.z],
571
+ [px, half_z, pos.z],
572
+ ],
573
+ [
574
+ [px, pos.y, -half_y],
575
+ [px, pos.y, half_y],
576
+ ],
569
577
  ]
570
578
  },
571
- tick_label_pos: (
572
- val: number,
573
- ): Vec3 => [normalize_x(val), pos.y + sign_y * 0.4, pos.z],
579
+ tick_label_pos: (val: number): Vec3 => [normalize_x(val), pos.y + sign_y * 0.4, pos.z],
574
580
  axis_label_pos: [0, pos.y + sign_y * 0.9, pos.z] as Vec3,
575
581
  },
576
582
  {
@@ -580,19 +586,29 @@
580
586
  ticks: y_ticks,
581
587
  range: y_range,
582
588
  get_tick_pos: (val: number): Vec3 => [pos.x, pos.y, normalize_y(val)],
583
- get_tick_end: (
584
- val: number,
585
- ): Vec3 => [pos.x, pos.y + sign_y * tick_length, normalize_y(val)],
589
+ get_tick_end: (val: number): Vec3 => [
590
+ pos.x,
591
+ pos.y + sign_y * tick_length,
592
+ normalize_y(val),
593
+ ],
586
594
  get_grid_lines: (val: number): [Vec3, Vec3][] => {
587
595
  const py = normalize_y(val)
588
596
  return [
589
- [[-half_x, pos.y, py], [half_x, pos.y, py]],
590
- [[pos.x, -half_z, py], [pos.x, half_z, py]],
597
+ [
598
+ [-half_x, pos.y, py],
599
+ [half_x, pos.y, py],
600
+ ],
601
+ [
602
+ [pos.x, -half_z, py],
603
+ [pos.x, half_z, py],
604
+ ],
591
605
  ]
592
606
  },
593
- tick_label_pos: (
594
- val: number,
595
- ): Vec3 => [pos.x + sign_x * 0.5, pos.y + sign_y * 0.4, normalize_y(val)],
607
+ tick_label_pos: (val: number): Vec3 => [
608
+ pos.x + sign_x * 0.5,
609
+ pos.y + sign_y * 0.4,
610
+ normalize_y(val),
611
+ ],
596
612
  axis_label_pos: [
597
613
  pos.x,
598
614
  pos.y + sign_y * 0.9,
@@ -606,19 +622,25 @@
606
622
  ticks: z_ticks,
607
623
  range: z_range,
608
624
  get_tick_pos: (val: number): Vec3 => [pos.x, normalize_z(val), pos.z],
609
- get_tick_end: (
610
- val: number,
611
- ): Vec3 => [pos.x + sign_x * tick_length, normalize_z(val), pos.z],
625
+ get_tick_end: (val: number): Vec3 => [
626
+ pos.x + sign_x * tick_length,
627
+ normalize_z(val),
628
+ pos.z,
629
+ ],
612
630
  get_grid_lines: (val: number): [Vec3, Vec3][] => {
613
631
  const pz = normalize_z(val)
614
632
  return [
615
- [[-half_x, pz, pos.z], [half_x, pz, pos.z]],
616
- [[pos.x, pz, -half_y], [pos.x, pz, half_y]],
633
+ [
634
+ [-half_x, pz, pos.z],
635
+ [half_x, pz, pos.z],
636
+ ],
637
+ [
638
+ [pos.x, pz, -half_y],
639
+ [pos.x, pz, half_y],
640
+ ],
617
641
  ]
618
642
  },
619
- tick_label_pos: (
620
- val: number,
621
- ): Vec3 => [pos.x + sign_x * 0.5, normalize_z(val), pos.z],
643
+ tick_label_pos: (val: number): Vec3 => [pos.x + sign_x * 0.5, normalize_z(val), pos.z],
622
644
  axis_label_pos: [pos.x + sign_x, 0, pos.z] as Vec3,
623
645
  },
624
646
  ])
@@ -648,10 +670,10 @@
648
670
  for (const { key, ticks, get_tick_pos, get_tick_end, get_grid_lines } of config) {
649
671
  axis_geom_data[key] = {
650
672
  tick_geoms: ticks.map((val) =>
651
- create_line_geometry(get_tick_pos(val), get_tick_end(val))
673
+ create_line_geometry(get_tick_pos(val), get_tick_end(val)),
652
674
  ),
653
675
  grid_geoms: ticks.map((val) =>
654
- get_grid_lines(val).map(([start, end]) => create_line_geometry(start, end))
676
+ get_grid_lines(val).map(([start, end]) => create_line_geometry(start, end)),
655
677
  ),
656
678
  }
657
679
  }
@@ -723,11 +745,7 @@
723
745
  </T.Line>
724
746
  {/if}
725
747
  {#if display.show_grid !== false}
726
- {#each axis_geom_data[key].grid_geoms[tick_idx] ?? [] as
727
- grid_geom,
728
- grid_idx
729
- (grid_idx)
730
- }
748
+ {#each axis_geom_data[key].grid_geoms[tick_idx] ?? [] as grid_geom, grid_idx (grid_idx)}
731
749
  <T.Line>
732
750
  <T is={grid_geom} />
733
751
  <T.LineBasicMaterial color="#888" opacity={0.4} transparent />
@@ -746,27 +764,12 @@
746
764
  {/if}
747
765
 
748
766
  <!-- Surfaces -->
749
- {#each surfaces.filter((srf) => srf.visible !== false) as
750
- surface
751
- (surface.id ?? surfaces.indexOf(surface))
752
- }
753
- <Surface3D
754
- config={surface}
755
- {x_range}
756
- {y_range}
757
- {z_range}
758
- {scene_x}
759
- {scene_y}
760
- {scene_z}
761
- />
767
+ {#each surfaces.filter((srf) => srf.visible !== false) as surface (surface.id ?? surfaces.indexOf(surface))}
768
+ <Surface3D config={surface} {x_range} {y_range} {z_range} {scene_x} {scene_y} {scene_z} />
762
769
  {/each}
763
770
 
764
771
  <!-- Reference Planes -->
765
- {#each (ref_planes ?? []).filter((plane) => plane.visible !== false) as
766
- ref_plane,
767
- plane_idx
768
- (ref_plane.id ?? plane_idx)
769
- }
772
+ {#each (ref_planes ?? []).filter((plane) => plane.visible !== false) as ref_plane, plane_idx (ref_plane.id ?? plane_idx)}
770
773
  <ReferencePlane
771
774
  {ref_plane}
772
775
  scene_size={[scene_x, scene_y, scene_z]}
@@ -775,11 +778,7 @@
775
778
  {/each}
776
779
 
777
780
  <!-- Reference Lines -->
778
- {#each (ref_lines ?? []).filter((line) => line.visible !== false) as
779
- ref_line,
780
- line_idx
781
- (ref_line.id ?? line_idx)
782
- }
781
+ {#each (ref_lines ?? []).filter((line) => line.visible !== false) as ref_line, line_idx (ref_line.id ?? line_idx)}
783
782
  <ReferenceLine3D
784
783
  {ref_line}
785
784
  scene_size={[scene_x, scene_y, scene_z]}
@@ -842,9 +841,7 @@
842
841
  {#if hovered_point}
843
842
  {@const hp = hovered_point}
844
843
  {@const group = radius_groups.find((grp) =>
845
- grp.points.some((pt) =>
846
- pt.series_idx === hp.series_idx && pt.point_idx === hp.point_idx
847
- )
844
+ grp.points.some((pt) => pt.series_idx === hp.series_idx && pt.point_idx === hp.point_idx),
848
845
  )}
849
846
  <T.Mesh position={[hp.x, hp.y, hp.z]} scale={(group?.radius ?? 0.1) * 1.5}>
850
847
  <T.SphereGeometry args={[1, 16, 16]} />
@@ -42,7 +42,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
42
42
  height?: number;
43
43
  };
44
44
  exports: {};
45
- bindings: "scene" | "camera" | "orbit_controls" | "hovered_point";
45
+ bindings: "camera" | "orbit_controls" | "scene" | "hovered_point";
46
46
  slots: {};
47
47
  events: {};
48
48
  };
@@ -50,7 +50,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
50
50
  props(): ReturnType<typeof $$render<Metadata>>['props'];
51
51
  events(): ReturnType<typeof $$render<Metadata>>['events'];
52
52
  slots(): ReturnType<typeof $$render<Metadata>>['slots'];
53
- bindings(): "scene" | "camera" | "orbit_controls" | "hovered_point";
53
+ bindings(): "camera" | "orbit_controls" | "scene" | "hovered_point";
54
54
  exports(): {};
55
55
  }
56
56
  interface $$IsomorphicComponent {
@@ -23,11 +23,8 @@
23
23
  } = $props()
24
24
 
25
25
  // Normalize value to scene coordinates (centered around 0)
26
- const normalize = (
27
- value: number,
28
- [min_val, max_val]: Vec2,
29
- scene_size: number,
30
- ): number => ((value - min_val) / (max_val - min_val || 1) - 0.5) * scene_size
26
+ const normalize = (value: number, [min_val, max_val]: Vec2, scene_size: number): number =>
27
+ ((value - min_val) / (max_val - min_val || 1) - 0.5) * scene_size
31
28
 
32
29
  // Parse color to THREE.Color with fallback
33
30
  function parse_color(color: string): THREE.Color {
@@ -39,11 +36,7 @@
39
36
  }
40
37
 
41
38
  // Calculate vertex color based on config
42
- function get_vertex_color(
43
- x_val: number,
44
- y_val: number,
45
- z_val: number,
46
- ): THREE.Color {
39
+ function get_vertex_color(x_val: number, y_val: number, z_val: number): THREE.Color {
47
40
  if (config.color_fn) return parse_color(config.color_fn(x_val, y_val, z_val))
48
41
  if (config.color) return parse_color(config.color)
49
42
  // Default: color by z value (blue to red gradient)
@@ -168,9 +161,7 @@
168
161
  let material_props = $derived({
169
162
  transparent: is_transparent,
170
163
  opacity: config.opacity ?? 1,
171
- side: (config.double_sided ?? is_transparent)
172
- ? THREE.DoubleSide
173
- : THREE.FrontSide,
164
+ side: (config.double_sided ?? is_transparent) ? THREE.DoubleSide : THREE.FrontSide,
174
165
  vertexColors: true,
175
166
  depthWrite: true,
176
167
  })