matterviz 0.3.6 → 0.3.7

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 (863) hide show
  1. package/dist/EmptyState.svelte.d.ts +9 -0
  2. package/dist/FilePicker.svelte +360 -0
  3. package/dist/FilePicker.svelte.d.ts +17 -0
  4. package/dist/Icon.svelte.d.ts +13 -0
  5. package/dist/MillerIndexInput.svelte +66 -0
  6. package/dist/MillerIndexInput.svelte.d.ts +7 -0
  7. package/dist/api/mp.d.ts +6 -0
  8. package/dist/api/mp.js +22 -0
  9. package/dist/api/optimade.d.ts +45 -0
  10. package/dist/api/optimade.js +135 -0
  11. package/dist/brillouin/BrillouinZone.svelte +549 -0
  12. package/dist/brillouin/BrillouinZone.svelte.d.ts +83 -0
  13. package/dist/brillouin/BrillouinZoneControls.svelte +144 -0
  14. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +17 -0
  15. package/dist/brillouin/BrillouinZoneExportPane.svelte +146 -0
  16. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
  17. package/dist/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  18. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
  19. package/dist/brillouin/BrillouinZoneScene.svelte +476 -0
  20. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +48 -0
  21. package/dist/brillouin/BrillouinZoneTooltip.svelte +92 -0
  22. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +8 -0
  23. package/dist/brillouin/compute.d.ts +17 -0
  24. package/dist/brillouin/compute.js +426 -0
  25. package/dist/brillouin/index.d.ts +8 -0
  26. package/dist/brillouin/index.js +7 -0
  27. package/dist/brillouin/types.d.ts +43 -0
  28. package/dist/brillouin/types.js +1 -0
  29. package/dist/chempot-diagram/ChemPotDiagram.svelte +327 -0
  30. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
  31. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
  32. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
  33. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
  34. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
  35. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
  36. package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
  37. package/dist/chempot-diagram/async-compute.svelte.js +78 -0
  38. package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
  39. package/dist/chempot-diagram/chempot-worker.js +11 -0
  40. package/dist/chempot-diagram/color.d.ts +10 -0
  41. package/dist/chempot-diagram/color.js +32 -0
  42. package/dist/chempot-diagram/compute.d.ts +48 -0
  43. package/dist/chempot-diagram/compute.js +806 -0
  44. package/dist/chempot-diagram/index.d.ts +6 -0
  45. package/dist/chempot-diagram/index.js +6 -0
  46. package/dist/chempot-diagram/pointer.d.ts +16 -0
  47. package/dist/chempot-diagram/pointer.js +40 -0
  48. package/dist/chempot-diagram/temperature.d.ts +15 -0
  49. package/dist/chempot-diagram/temperature.js +34 -0
  50. package/dist/chempot-diagram/types.d.ts +81 -0
  51. package/dist/chempot-diagram/types.js +28 -0
  52. package/dist/colors/index.d.ts +47 -0
  53. package/dist/colors/index.js +203 -0
  54. package/dist/composition/BarChart.svelte +297 -0
  55. package/dist/composition/BarChart.svelte.d.ts +39 -0
  56. package/dist/composition/BubbleChart.svelte +218 -0
  57. package/dist/composition/BubbleChart.svelte.d.ts +28 -0
  58. package/dist/composition/Composition.svelte +165 -0
  59. package/dist/composition/Composition.svelte.d.ts +15 -0
  60. package/dist/composition/Formula.svelte +268 -0
  61. package/dist/composition/Formula.svelte.d.ts +19 -0
  62. package/dist/composition/FormulaFilter.svelte +1257 -0
  63. package/dist/composition/FormulaFilter.svelte.d.ts +51 -0
  64. package/dist/composition/PieChart.svelte +323 -0
  65. package/dist/composition/PieChart.svelte.d.ts +37 -0
  66. package/dist/composition/format.d.ts +15 -0
  67. package/dist/composition/format.js +109 -0
  68. package/dist/composition/index.d.ts +20 -0
  69. package/dist/composition/index.js +14 -0
  70. package/dist/composition/parse.d.ts +56 -0
  71. package/dist/composition/parse.js +474 -0
  72. package/dist/constants.d.ts +29 -0
  73. package/dist/constants.js +99 -0
  74. package/dist/controls.d.ts +14 -0
  75. package/dist/controls.js +30 -0
  76. package/dist/convex-hull/ConvexHull.svelte +157 -0
  77. package/dist/convex-hull/ConvexHull.svelte.d.ts +13 -0
  78. package/dist/convex-hull/ConvexHull2D.svelte +825 -0
  79. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +11 -0
  80. package/dist/convex-hull/ConvexHull3D.svelte +1801 -0
  81. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +8 -0
  82. package/dist/convex-hull/ConvexHull4D.svelte +1398 -0
  83. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +8 -0
  84. package/dist/convex-hull/ConvexHullControls.svelte +535 -0
  85. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +48 -0
  86. package/dist/convex-hull/ConvexHullInfoPane.svelte +125 -0
  87. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +20 -0
  88. package/dist/convex-hull/ConvexHullStats.svelte +929 -0
  89. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +17 -0
  90. package/dist/convex-hull/ConvexHullTooltip.svelte +131 -0
  91. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +33 -0
  92. package/dist/convex-hull/GasPressureControls.svelte +247 -0
  93. package/dist/convex-hull/GasPressureControls.svelte.d.ts +11 -0
  94. package/dist/convex-hull/StructurePopup.svelte +151 -0
  95. package/dist/convex-hull/StructurePopup.svelte.d.ts +18 -0
  96. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +8 -0
  97. package/dist/convex-hull/barycentric-coords.d.ts +18 -0
  98. package/dist/convex-hull/barycentric-coords.js +182 -0
  99. package/dist/convex-hull/demo-temperature.d.ts +6 -0
  100. package/dist/convex-hull/demo-temperature.js +40 -0
  101. package/dist/convex-hull/gas-thermodynamics.d.ts +16 -0
  102. package/dist/convex-hull/gas-thermodynamics.js +314 -0
  103. package/dist/convex-hull/helpers.d.ts +114 -0
  104. package/dist/convex-hull/helpers.js +710 -0
  105. package/dist/convex-hull/index.d.ts +119 -0
  106. package/dist/convex-hull/index.js +58 -0
  107. package/dist/convex-hull/thermodynamics.d.ts +67 -0
  108. package/dist/convex-hull/thermodynamics.js +1752 -0
  109. package/dist/convex-hull/types.d.ts +162 -0
  110. package/dist/convex-hull/types.js +36 -0
  111. package/dist/coordination/CoordinationBarPlot.svelte +311 -0
  112. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +30 -0
  113. package/dist/coordination/calc-coordination.d.ts +15 -0
  114. package/dist/coordination/calc-coordination.js +63 -0
  115. package/dist/coordination/index.d.ts +8 -0
  116. package/dist/coordination/index.js +7 -0
  117. package/dist/effects.svelte.d.ts +12 -0
  118. package/dist/effects.svelte.js +37 -0
  119. package/dist/element/BohrAtom.svelte.d.ts +20 -0
  120. package/dist/element/ElementHeading.svelte +26 -0
  121. package/dist/element/ElementHeading.svelte.d.ts +8 -0
  122. package/dist/element/ElementPhoto.svelte +57 -0
  123. package/dist/element/ElementPhoto.svelte.d.ts +9 -0
  124. package/dist/element/ElementStats.svelte +80 -0
  125. package/dist/element/ElementStats.svelte.d.ts +8 -0
  126. package/dist/element/ElementTile.svelte +484 -0
  127. package/dist/element/ElementTile.svelte.d.ts +29 -0
  128. package/dist/element/Nucleus.svelte.d.ts +17 -0
  129. package/dist/element/data.d.ts +2 -0
  130. package/dist/element/data.js +2 -0
  131. package/dist/element/index.d.ts +8 -0
  132. package/dist/element/index.js +7 -0
  133. package/dist/element/types.d.ts +57 -0
  134. package/dist/element/types.js +1 -0
  135. package/dist/feedback/ClickFeedback.svelte +58 -0
  136. package/dist/feedback/ClickFeedback.svelte.d.ts +12 -0
  137. package/dist/feedback/DragOverlay.svelte +42 -0
  138. package/dist/feedback/DragOverlay.svelte.d.ts +7 -0
  139. package/dist/feedback/Spinner.svelte.d.ts +7 -0
  140. package/dist/feedback/StatusMessage.svelte.d.ts +9 -0
  141. package/dist/feedback/index.d.ts +4 -0
  142. package/dist/feedback/index.js +4 -0
  143. package/dist/fermi-surface/FermiSlice.svelte +189 -0
  144. package/dist/fermi-surface/FermiSlice.svelte.d.ts +24 -0
  145. package/dist/fermi-surface/FermiSurface.svelte +600 -0
  146. package/dist/fermi-surface/FermiSurface.svelte.d.ts +83 -0
  147. package/dist/fermi-surface/FermiSurfaceControls.svelte +448 -0
  148. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +35 -0
  149. package/dist/fermi-surface/FermiSurfaceScene.svelte +794 -0
  150. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +50 -0
  151. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
  152. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +8 -0
  153. package/dist/fermi-surface/compute.d.ts +5 -0
  154. package/dist/fermi-surface/compute.js +538 -0
  155. package/dist/fermi-surface/constants.d.ts +9 -0
  156. package/dist/fermi-surface/constants.js +27 -0
  157. package/dist/fermi-surface/export.d.ts +5 -0
  158. package/dist/fermi-surface/export.js +50 -0
  159. package/dist/fermi-surface/index.d.ts +12 -0
  160. package/dist/fermi-surface/index.js +13 -0
  161. package/dist/fermi-surface/marching-cubes.d.ts +2 -0
  162. package/dist/fermi-surface/marching-cubes.js +2 -0
  163. package/dist/fermi-surface/parse.d.ts +2 -0
  164. package/dist/fermi-surface/parse.js +491 -0
  165. package/dist/fermi-surface/symmetry.d.ts +3 -0
  166. package/dist/fermi-surface/symmetry.js +46 -0
  167. package/dist/fermi-surface/types.d.ts +110 -0
  168. package/dist/fermi-surface/types.js +4 -0
  169. package/dist/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
  170. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
  171. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  172. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
  173. package/dist/heatmap-matrix/index.d.ts +53 -0
  174. package/dist/heatmap-matrix/index.js +100 -0
  175. package/dist/heatmap-matrix/shared.d.ts +2 -0
  176. package/dist/heatmap-matrix/shared.js +4 -0
  177. package/dist/icons.d.ts +569 -0
  178. package/dist/icons.js +648 -0
  179. package/dist/index.d.ts +39 -0
  180. package/dist/index.js +39 -0
  181. package/dist/io/decompress.d.ts +11 -0
  182. package/dist/io/decompress.js +74 -0
  183. package/dist/io/export.d.ts +16 -0
  184. package/dist/io/export.js +316 -0
  185. package/dist/io/fetch.d.ts +5 -0
  186. package/dist/io/fetch.js +39 -0
  187. package/dist/io/file-drop.d.ts +7 -0
  188. package/dist/io/file-drop.js +43 -0
  189. package/dist/io/index.d.ts +7 -0
  190. package/dist/io/index.js +6 -0
  191. package/dist/io/is-binary.d.ts +1 -0
  192. package/dist/io/is-binary.js +20 -0
  193. package/dist/io/types.d.ts +8 -0
  194. package/dist/io/types.js +1 -0
  195. package/dist/io/url-drop.d.ts +2 -0
  196. package/dist/io/url-drop.js +123 -0
  197. package/dist/isosurface/Isosurface.svelte +285 -0
  198. package/dist/isosurface/Isosurface.svelte.d.ts +8 -0
  199. package/dist/isosurface/IsosurfaceControls.svelte +277 -0
  200. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +9 -0
  201. package/dist/isosurface/index.d.ts +5 -0
  202. package/dist/isosurface/index.js +6 -0
  203. package/dist/isosurface/parse.d.ts +6 -0
  204. package/dist/isosurface/parse.js +553 -0
  205. package/dist/isosurface/slice.d.ts +11 -0
  206. package/dist/isosurface/slice.js +140 -0
  207. package/dist/isosurface/types.d.ts +56 -0
  208. package/dist/isosurface/types.js +227 -0
  209. package/dist/labels.d.ts +53 -0
  210. package/dist/labels.js +277 -0
  211. package/dist/layout/FullscreenToggle.svelte +50 -0
  212. package/dist/layout/FullscreenToggle.svelte.d.ts +7 -0
  213. package/dist/layout/InfoCard.svelte +120 -0
  214. package/dist/layout/InfoCard.svelte.d.ts +21 -0
  215. package/dist/layout/InfoTag.svelte +185 -0
  216. package/dist/layout/InfoTag.svelte.d.ts +19 -0
  217. package/dist/layout/PropertyFilter.svelte +246 -0
  218. package/dist/layout/PropertyFilter.svelte.d.ts +24 -0
  219. package/dist/layout/SettingsSection.svelte +148 -0
  220. package/dist/layout/SettingsSection.svelte.d.ts +17 -0
  221. package/dist/layout/SubpageGrid.svelte +82 -0
  222. package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
  223. package/dist/layout/fullscreen.d.ts +9 -0
  224. package/dist/layout/fullscreen.js +53 -0
  225. package/dist/layout/index.d.ts +10 -0
  226. package/dist/layout/index.js +8 -0
  227. package/dist/layout/json-tree/JsonNode.svelte +548 -0
  228. package/dist/layout/json-tree/JsonNode.svelte.d.ts +11 -0
  229. package/dist/layout/json-tree/JsonTree.svelte +1230 -0
  230. package/dist/layout/json-tree/JsonTree.svelte.d.ts +6 -0
  231. package/dist/layout/json-tree/JsonValue.svelte.d.ts +9 -0
  232. package/dist/layout/json-tree/index.d.ts +3 -0
  233. package/dist/layout/json-tree/index.js +3 -0
  234. package/dist/layout/json-tree/types.d.ts +74 -0
  235. package/dist/layout/json-tree/types.js +2 -0
  236. package/dist/layout/json-tree/utils.d.ts +29 -0
  237. package/dist/layout/json-tree/utils.js +641 -0
  238. package/dist/marching-cubes.d.ts +14 -0
  239. package/dist/marching-cubes.js +540 -0
  240. package/dist/math.d.ts +101 -0
  241. package/dist/math.js +905 -0
  242. package/dist/overlays/ContextMenu.svelte +162 -0
  243. package/dist/overlays/ContextMenu.svelte.d.ts +25 -0
  244. package/dist/overlays/CopyButton.svelte +45 -0
  245. package/dist/overlays/CopyButton.svelte.d.ts +8 -0
  246. package/dist/overlays/DragControlTab.svelte +98 -0
  247. package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
  248. package/dist/overlays/DraggablePane.svelte +487 -0
  249. package/dist/overlays/DraggablePane.svelte.d.ts +36 -0
  250. package/dist/overlays/InfoPaneCards.svelte +149 -0
  251. package/dist/overlays/InfoPaneCards.svelte.d.ts +22 -0
  252. package/dist/overlays/index.d.ts +3 -0
  253. package/dist/overlays/index.js +3 -0
  254. package/dist/periodic-table/PeriodicTable.svelte +469 -0
  255. package/dist/periodic-table/PeriodicTable.svelte.d.ts +55 -0
  256. package/dist/periodic-table/PeriodicTableControls.svelte +557 -0
  257. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +24 -0
  258. package/dist/periodic-table/PropertySelect.svelte +37 -0
  259. package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
  260. package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
  261. package/dist/periodic-table/index.d.ts +10 -0
  262. package/dist/periodic-table/index.js +4 -0
  263. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
  264. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +44 -0
  265. package/dist/phase-diagram/PhaseDiagramControls.svelte +444 -0
  266. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +30 -0
  267. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
  268. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
  269. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  270. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +19 -0
  271. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  272. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +16 -0
  273. package/dist/phase-diagram/TdbInfoPanel.svelte +203 -0
  274. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +12 -0
  275. package/dist/phase-diagram/build-diagram.d.ts +11 -0
  276. package/dist/phase-diagram/build-diagram.js +160 -0
  277. package/dist/phase-diagram/colors.d.ts +35 -0
  278. package/dist/phase-diagram/colors.js +51 -0
  279. package/dist/phase-diagram/diagram-input.d.ts +29 -0
  280. package/dist/phase-diagram/diagram-input.js +3 -0
  281. package/dist/phase-diagram/index.d.ts +13 -0
  282. package/dist/phase-diagram/index.js +11 -0
  283. package/dist/phase-diagram/parse.d.ts +55 -0
  284. package/dist/phase-diagram/parse.js +272 -0
  285. package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
  286. package/dist/phase-diagram/svg-to-diagram.js +867 -0
  287. package/dist/phase-diagram/types.d.ts +93 -0
  288. package/dist/phase-diagram/types.js +1 -0
  289. package/dist/phase-diagram/utils.d.ts +118 -0
  290. package/dist/phase-diagram/utils.js +604 -0
  291. package/dist/plot/AxisLabel.svelte +51 -0
  292. package/dist/plot/AxisLabel.svelte.d.ts +16 -0
  293. package/dist/plot/BarPlot.svelte +2113 -0
  294. package/dist/plot/BarPlot.svelte.d.ts +84 -0
  295. package/dist/plot/BarPlotControls.svelte +66 -0
  296. package/dist/plot/BarPlotControls.svelte.d.ts +18 -0
  297. package/dist/plot/BinnedScatterPlot.svelte +1114 -0
  298. package/dist/plot/BinnedScatterPlot.svelte.d.ts +66 -0
  299. package/dist/plot/ColorBar.svelte +721 -0
  300. package/dist/plot/ColorBar.svelte.d.ts +31 -0
  301. package/dist/plot/ColorScaleSelect.svelte +54 -0
  302. package/dist/plot/ColorScaleSelect.svelte.d.ts +15 -0
  303. package/dist/plot/ElementScatter.svelte +63 -0
  304. package/dist/plot/ElementScatter.svelte.d.ts +14 -0
  305. package/dist/plot/FillArea.svelte.d.ts +21 -0
  306. package/dist/plot/Histogram.svelte +1558 -0
  307. package/dist/plot/Histogram.svelte.d.ts +50 -0
  308. package/dist/plot/HistogramControls.svelte +212 -0
  309. package/dist/plot/HistogramControls.svelte.d.ts +22 -0
  310. package/dist/plot/InteractiveAxisLabel.svelte +96 -0
  311. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +14 -0
  312. package/dist/plot/Line.svelte +84 -0
  313. package/dist/plot/Line.svelte.d.ts +15 -0
  314. package/dist/plot/PlotAxis.svelte +169 -0
  315. package/dist/plot/PlotAxis.svelte.d.ts +24 -0
  316. package/dist/plot/PlotControls.svelte +537 -0
  317. package/dist/plot/PlotControls.svelte.d.ts +4 -0
  318. package/dist/plot/PlotLegend.svelte +569 -0
  319. package/dist/plot/PlotLegend.svelte.d.ts +29 -0
  320. package/dist/plot/PlotTooltip.svelte +67 -0
  321. package/dist/plot/PlotTooltip.svelte.d.ts +17 -0
  322. package/dist/plot/PortalSelect.svelte +253 -0
  323. package/dist/plot/PortalSelect.svelte.d.ts +16 -0
  324. package/dist/plot/ReferenceLine.svelte.d.ts +20 -0
  325. package/dist/plot/ReferenceLine3D.svelte +156 -0
  326. package/dist/plot/ReferenceLine3D.svelte.d.ts +14 -0
  327. package/dist/plot/ReferencePlane.svelte +175 -0
  328. package/dist/plot/ReferencePlane.svelte.d.ts +14 -0
  329. package/dist/plot/ScatterPlot.svelte +2778 -0
  330. package/dist/plot/ScatterPlot.svelte.d.ts +96 -0
  331. package/dist/plot/ScatterPlot3D.svelte +529 -0
  332. package/dist/plot/ScatterPlot3D.svelte.d.ts +95 -0
  333. package/dist/plot/ScatterPlot3DControls.svelte +437 -0
  334. package/dist/plot/ScatterPlot3DControls.svelte.d.ts +20 -0
  335. package/dist/plot/ScatterPlot3DScene.svelte +912 -0
  336. package/dist/plot/ScatterPlot3DScene.svelte.d.ts +74 -0
  337. package/dist/plot/ScatterPlotControls.svelte +306 -0
  338. package/dist/plot/ScatterPlotControls.svelte.d.ts +17 -0
  339. package/dist/plot/ScatterPoint.svelte +182 -0
  340. package/dist/plot/ScatterPoint.svelte.d.ts +22 -0
  341. package/dist/plot/SpacegroupBarPlot.svelte +293 -0
  342. package/dist/plot/SpacegroupBarPlot.svelte.d.ts +9 -0
  343. package/dist/plot/Surface3D.svelte +197 -0
  344. package/dist/plot/Surface3D.svelte.d.ts +13 -0
  345. package/dist/plot/ZeroLines.svelte +97 -0
  346. package/dist/plot/ZeroLines.svelte.d.ts +33 -0
  347. package/dist/plot/ZoomRect.svelte +23 -0
  348. package/dist/plot/ZoomRect.svelte.d.ts +8 -0
  349. package/dist/plot/adaptive-density.d.ts +69 -0
  350. package/dist/plot/adaptive-density.js +191 -0
  351. package/dist/plot/auto-place.d.ts +43 -0
  352. package/dist/plot/auto-place.js +122 -0
  353. package/dist/plot/axis-utils.d.ts +19 -0
  354. package/dist/plot/axis-utils.js +78 -0
  355. package/dist/plot/binned-scatter-types.d.ts +59 -0
  356. package/dist/plot/binned-scatter-types.js +1 -0
  357. package/dist/plot/data-cleaning.d.ts +37 -0
  358. package/dist/plot/data-cleaning.js +855 -0
  359. package/dist/plot/data-transform.d.ts +16 -0
  360. package/dist/plot/data-transform.js +45 -0
  361. package/dist/plot/defaults.d.ts +19 -0
  362. package/dist/plot/defaults.js +9 -0
  363. package/dist/plot/fill-utils.d.ts +46 -0
  364. package/dist/plot/fill-utils.js +322 -0
  365. package/dist/plot/hover-lock.svelte.d.ts +14 -0
  366. package/dist/plot/hover-lock.svelte.js +46 -0
  367. package/dist/plot/index.d.ts +41 -0
  368. package/dist/plot/index.js +39 -0
  369. package/dist/plot/interactions.d.ts +12 -0
  370. package/dist/plot/interactions.js +101 -0
  371. package/dist/plot/layout.d.ts +78 -0
  372. package/dist/plot/layout.js +273 -0
  373. package/dist/plot/reference-line.d.ts +60 -0
  374. package/dist/plot/reference-line.js +314 -0
  375. package/dist/plot/scales.d.ts +48 -0
  376. package/dist/plot/scales.js +481 -0
  377. package/dist/plot/svg.d.ts +1 -0
  378. package/dist/plot/svg.js +11 -0
  379. package/dist/plot/types.d.ts +831 -0
  380. package/dist/plot/types.js +99 -0
  381. package/dist/plot/utils/label-placement.d.ts +68 -0
  382. package/dist/plot/utils/label-placement.js +326 -0
  383. package/dist/plot/utils/series-visibility.d.ts +15 -0
  384. package/dist/plot/utils/series-visibility.js +85 -0
  385. package/dist/plot/utils.d.ts +1 -0
  386. package/dist/plot/utils.js +14 -0
  387. package/dist/rdf/RdfPlot.svelte +247 -0
  388. package/dist/rdf/RdfPlot.svelte.d.ts +27 -0
  389. package/dist/rdf/calc-rdf.d.ts +4 -0
  390. package/dist/rdf/calc-rdf.js +111 -0
  391. package/dist/rdf/index.d.ts +23 -0
  392. package/dist/rdf/index.js +2 -0
  393. package/dist/sanitize.d.ts +6 -0
  394. package/dist/sanitize.js +116 -0
  395. package/dist/settings.d.ts +255 -0
  396. package/dist/settings.js +1132 -0
  397. package/dist/spectral/Bands.svelte +1040 -0
  398. package/dist/spectral/Bands.svelte.d.ts +40 -0
  399. package/dist/spectral/BandsAndDos.svelte +134 -0
  400. package/dist/spectral/BandsAndDos.svelte.d.ts +18 -0
  401. package/dist/spectral/BrillouinBandsDos.svelte +252 -0
  402. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +20 -0
  403. package/dist/spectral/Dos.svelte +697 -0
  404. package/dist/spectral/Dos.svelte.d.ts +29 -0
  405. package/dist/spectral/helpers.d.ts +119 -0
  406. package/dist/spectral/helpers.js +1032 -0
  407. package/dist/spectral/index.d.ts +6 -0
  408. package/dist/spectral/index.js +6 -0
  409. package/dist/spectral/types.d.ts +84 -0
  410. package/dist/spectral/types.js +2 -0
  411. package/dist/state.svelte.d.ts +25 -0
  412. package/dist/state.svelte.js +45 -0
  413. package/dist/structure/Arrow.svelte +72 -0
  414. package/dist/structure/Arrow.svelte.d.ts +15 -0
  415. package/dist/structure/AtomLegend.svelte +815 -0
  416. package/dist/structure/AtomLegend.svelte.d.ts +35 -0
  417. package/dist/structure/Bond.svelte +140 -0
  418. package/dist/structure/Bond.svelte.d.ts +9 -0
  419. package/dist/structure/CanvasTooltip.svelte +33 -0
  420. package/dist/structure/CanvasTooltip.svelte.d.ts +12 -0
  421. package/dist/structure/CellSelect.svelte +349 -0
  422. package/dist/structure/CellSelect.svelte.d.ts +13 -0
  423. package/dist/structure/Cylinder.svelte +45 -0
  424. package/dist/structure/Cylinder.svelte.d.ts +10 -0
  425. package/dist/structure/Lattice.svelte +196 -0
  426. package/dist/structure/Lattice.svelte.d.ts +17 -0
  427. package/dist/structure/Structure.svelte +2248 -0
  428. package/dist/structure/Structure.svelte.d.ts +89 -0
  429. package/dist/structure/StructureControls.svelte +1273 -0
  430. package/dist/structure/StructureControls.svelte.d.ts +31 -0
  431. package/dist/structure/StructureExportPane.svelte +252 -0
  432. package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
  433. package/dist/structure/StructureInfoPane.svelte +737 -0
  434. package/dist/structure/StructureInfoPane.svelte.d.ts +19 -0
  435. package/dist/structure/StructureScene.svelte +2255 -0
  436. package/dist/structure/StructureScene.svelte.d.ts +111 -0
  437. package/dist/structure/atom-properties.d.ts +37 -0
  438. package/dist/structure/atom-properties.js +200 -0
  439. package/dist/structure/bond-order-perception.d.ts +13 -0
  440. package/dist/structure/bond-order-perception.js +384 -0
  441. package/dist/structure/bonding.d.ts +68 -0
  442. package/dist/structure/bonding.js +696 -0
  443. package/dist/structure/export.d.ts +20 -0
  444. package/dist/structure/export.js +727 -0
  445. package/dist/structure/index.d.ts +126 -0
  446. package/dist/structure/index.js +169 -0
  447. package/dist/structure/label-placement.d.ts +14 -0
  448. package/dist/structure/label-placement.js +72 -0
  449. package/dist/structure/measure.d.ts +6 -0
  450. package/dist/structure/measure.js +29 -0
  451. package/dist/structure/parse.d.ts +66 -0
  452. package/dist/structure/parse.js +1392 -0
  453. package/dist/structure/partial-occupancy.d.ts +25 -0
  454. package/dist/structure/partial-occupancy.js +99 -0
  455. package/dist/structure/pbc.d.ts +9 -0
  456. package/dist/structure/pbc.js +123 -0
  457. package/dist/structure/supercell.d.ts +8 -0
  458. package/dist/structure/supercell.js +170 -0
  459. package/dist/structure/validation.d.ts +2 -0
  460. package/dist/structure/validation.js +10 -0
  461. package/dist/symmetry/SymmetryStats.svelte +226 -0
  462. package/dist/symmetry/SymmetryStats.svelte.d.ts +21 -0
  463. package/dist/symmetry/WyckoffTable.svelte +120 -0
  464. package/dist/symmetry/WyckoffTable.svelte.d.ts +11 -0
  465. package/dist/symmetry/cell-transform.d.ts +12 -0
  466. package/dist/symmetry/cell-transform.js +91 -0
  467. package/dist/symmetry/index.d.ts +43 -0
  468. package/dist/symmetry/index.js +228 -0
  469. package/dist/symmetry/spacegroups.d.ts +9 -0
  470. package/dist/symmetry/spacegroups.js +394 -0
  471. package/dist/table/HeatmapTable.svelte +1833 -0
  472. package/dist/table/HeatmapTable.svelte.d.ts +49 -0
  473. package/dist/table/ToggleMenu.svelte +385 -0
  474. package/dist/table/ToggleMenu.svelte.d.ts +11 -0
  475. package/dist/table/index.d.ts +74 -0
  476. package/dist/table/index.js +38 -0
  477. package/dist/theme/ThemeControl.svelte +53 -0
  478. package/dist/theme/ThemeControl.svelte.d.ts +9 -0
  479. package/dist/theme/index.d.ts +29 -0
  480. package/dist/theme/index.js +79 -0
  481. package/dist/time.d.ts +4 -0
  482. package/dist/time.js +70 -0
  483. package/dist/tooltip/TooltipContent.svelte +58 -0
  484. package/dist/tooltip/TooltipContent.svelte.d.ts +31 -0
  485. package/dist/tooltip/index.d.ts +2 -0
  486. package/dist/tooltip/index.js +1 -0
  487. package/dist/tooltip/types.d.ts +8 -0
  488. package/dist/tooltip/types.js +1 -0
  489. package/dist/trajectory/Trajectory.svelte +1545 -0
  490. package/dist/trajectory/Trajectory.svelte.d.ts +77 -0
  491. package/dist/trajectory/TrajectoryError.svelte +128 -0
  492. package/dist/trajectory/TrajectoryError.svelte.d.ts +13 -0
  493. package/dist/trajectory/TrajectoryExportPane.svelte +357 -0
  494. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +17 -0
  495. package/dist/trajectory/TrajectoryInfoPane.svelte +313 -0
  496. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +17 -0
  497. package/dist/trajectory/constants.d.ts +6 -0
  498. package/dist/trajectory/constants.js +7 -0
  499. package/dist/trajectory/extract.d.ts +5 -0
  500. package/dist/trajectory/extract.js +162 -0
  501. package/dist/trajectory/format-detect.d.ts +9 -0
  502. package/dist/trajectory/format-detect.js +76 -0
  503. package/dist/trajectory/frame-reader.d.ts +17 -0
  504. package/dist/trajectory/frame-reader.js +332 -0
  505. package/dist/trajectory/helpers.d.ts +15 -0
  506. package/dist/trajectory/helpers.js +164 -0
  507. package/dist/trajectory/index.d.ts +63 -0
  508. package/dist/trajectory/index.js +126 -0
  509. package/dist/trajectory/parse/ase.d.ts +2 -0
  510. package/dist/trajectory/parse/ase.js +73 -0
  511. package/dist/trajectory/parse/hdf5.d.ts +2 -0
  512. package/dist/trajectory/parse/hdf5.js +127 -0
  513. package/dist/trajectory/parse/index.d.ts +12 -0
  514. package/dist/trajectory/parse/index.js +298 -0
  515. package/dist/trajectory/parse/lammps.d.ts +5 -0
  516. package/dist/trajectory/parse/lammps.js +179 -0
  517. package/dist/trajectory/parse/vasp.d.ts +2 -0
  518. package/dist/trajectory/parse/vasp.js +68 -0
  519. package/dist/trajectory/parse/xyz.d.ts +2 -0
  520. package/dist/trajectory/parse/xyz.js +110 -0
  521. package/dist/trajectory/plotting.d.ts +28 -0
  522. package/dist/trajectory/plotting.js +423 -0
  523. package/dist/trajectory/types.d.ts +11 -0
  524. package/dist/trajectory/types.js +1 -0
  525. package/dist/utils.d.ts +6 -0
  526. package/dist/utils.js +45 -0
  527. package/dist/xrd/XrdPlot.svelte +615 -0
  528. package/dist/xrd/XrdPlot.svelte.d.ts +28 -0
  529. package/dist/xrd/broadening.d.ts +20 -0
  530. package/dist/xrd/broadening.js +97 -0
  531. package/dist/xrd/calc-xrd.d.ts +37 -0
  532. package/dist/xrd/calc-xrd.js +336 -0
  533. package/dist/xrd/index.d.ts +37 -0
  534. package/dist/xrd/index.js +4 -0
  535. package/dist/xrd/parse.d.ts +13 -0
  536. package/dist/xrd/parse.js +749 -0
  537. package/license +1 -1
  538. package/package.json +232 -1457
  539. package/readme.md +98 -171
  540. package/.vscode/launch.json +0 -13
  541. package/.vscodeignore +0 -7
  542. package/dist/assets/STLExporter-BpTH3YHE.js +0 -8
  543. package/dist/assets/browser-DdDecX_W.js +0 -1
  544. package/dist/assets/export-qgn-H9y6.js +0 -2
  545. package/dist/assets/main-DiKYzti2.css +0 -1
  546. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  547. package/dist/extension.js +0 -31293
  548. package/dist/src/lib/FilePicker.svelte +0 -360
  549. package/dist/src/lib/MillerIndexInput.svelte +0 -66
  550. package/dist/src/lib/api/mp.ts +0 -26
  551. package/dist/src/lib/api/optimade.ts +0 -204
  552. package/dist/src/lib/brillouin/BrillouinZone.svelte +0 -549
  553. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +0 -144
  554. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +0 -146
  555. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  556. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +0 -476
  557. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +0 -92
  558. package/dist/src/lib/brillouin/compute.ts +0 -529
  559. package/dist/src/lib/brillouin/index.ts +0 -8
  560. package/dist/src/lib/brillouin/types.ts +0 -51
  561. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +0 -327
  562. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +0 -846
  563. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +0 -3193
  564. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +0 -94
  565. package/dist/src/lib/chempot-diagram/chempot-worker.ts +0 -11
  566. package/dist/src/lib/chempot-diagram/color.ts +0 -42
  567. package/dist/src/lib/chempot-diagram/compute.ts +0 -1014
  568. package/dist/src/lib/chempot-diagram/index.ts +0 -6
  569. package/dist/src/lib/chempot-diagram/pointer.ts +0 -56
  570. package/dist/src/lib/chempot-diagram/temperature.ts +0 -77
  571. package/dist/src/lib/chempot-diagram/types.ts +0 -130
  572. package/dist/src/lib/colors/index.ts +0 -249
  573. package/dist/src/lib/composition/BarChart.svelte +0 -297
  574. package/dist/src/lib/composition/BubbleChart.svelte +0 -218
  575. package/dist/src/lib/composition/Composition.svelte +0 -165
  576. package/dist/src/lib/composition/Formula.svelte +0 -268
  577. package/dist/src/lib/composition/FormulaFilter.svelte +0 -1257
  578. package/dist/src/lib/composition/PieChart.svelte +0 -323
  579. package/dist/src/lib/composition/format.ts +0 -155
  580. package/dist/src/lib/composition/index.ts +0 -37
  581. package/dist/src/lib/composition/parse.ts +0 -605
  582. package/dist/src/lib/constants.ts +0 -134
  583. package/dist/src/lib/controls.ts +0 -42
  584. package/dist/src/lib/convex-hull/ConvexHull.svelte +0 -157
  585. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +0 -825
  586. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +0 -1801
  587. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +0 -1398
  588. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +0 -535
  589. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +0 -125
  590. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +0 -929
  591. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +0 -131
  592. package/dist/src/lib/convex-hull/GasPressureControls.svelte +0 -247
  593. package/dist/src/lib/convex-hull/StructurePopup.svelte +0 -151
  594. package/dist/src/lib/convex-hull/barycentric-coords.ts +0 -246
  595. package/dist/src/lib/convex-hull/demo-temperature.ts +0 -63
  596. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +0 -405
  597. package/dist/src/lib/convex-hull/helpers.ts +0 -932
  598. package/dist/src/lib/convex-hull/index.ts +0 -202
  599. package/dist/src/lib/convex-hull/thermodynamics.ts +0 -2192
  600. package/dist/src/lib/convex-hull/types.ts +0 -267
  601. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +0 -311
  602. package/dist/src/lib/coordination/calc-coordination.ts +0 -93
  603. package/dist/src/lib/coordination/index.ts +0 -9
  604. package/dist/src/lib/effects.svelte.ts +0 -48
  605. package/dist/src/lib/element/ElementHeading.svelte +0 -26
  606. package/dist/src/lib/element/ElementPhoto.svelte +0 -57
  607. package/dist/src/lib/element/ElementStats.svelte +0 -80
  608. package/dist/src/lib/element/ElementTile.svelte +0 -484
  609. package/dist/src/lib/element/data.ts +0 -14
  610. package/dist/src/lib/element/index.ts +0 -8
  611. package/dist/src/lib/element/types.ts +0 -62
  612. package/dist/src/lib/feedback/ClickFeedback.svelte +0 -58
  613. package/dist/src/lib/feedback/DragOverlay.svelte +0 -42
  614. package/dist/src/lib/feedback/index.ts +0 -4
  615. package/dist/src/lib/fermi-surface/FermiSlice.svelte +0 -189
  616. package/dist/src/lib/fermi-surface/FermiSurface.svelte +0 -600
  617. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +0 -448
  618. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +0 -794
  619. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  620. package/dist/src/lib/fermi-surface/compute.ts +0 -728
  621. package/dist/src/lib/fermi-surface/constants.ts +0 -32
  622. package/dist/src/lib/fermi-surface/export.ts +0 -64
  623. package/dist/src/lib/fermi-surface/index.ts +0 -14
  624. package/dist/src/lib/fermi-surface/marching-cubes.ts +0 -3
  625. package/dist/src/lib/fermi-surface/parse.ts +0 -574
  626. package/dist/src/lib/fermi-surface/symmetry.ts +0 -56
  627. package/dist/src/lib/fermi-surface/types.ts +0 -159
  628. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +0 -1545
  629. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  630. package/dist/src/lib/heatmap-matrix/index.ts +0 -167
  631. package/dist/src/lib/heatmap-matrix/shared.ts +0 -7
  632. package/dist/src/lib/icons.ts +0 -650
  633. package/dist/src/lib/index.ts +0 -61
  634. package/dist/src/lib/io/decompress.ts +0 -92
  635. package/dist/src/lib/io/export.ts +0 -385
  636. package/dist/src/lib/io/fetch.ts +0 -46
  637. package/dist/src/lib/io/file-drop.ts +0 -51
  638. package/dist/src/lib/io/index.ts +0 -7
  639. package/dist/src/lib/io/is-binary.ts +0 -24
  640. package/dist/src/lib/io/types.ts +0 -8
  641. package/dist/src/lib/io/url-drop.ts +0 -141
  642. package/dist/src/lib/isosurface/Isosurface.svelte +0 -285
  643. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +0 -277
  644. package/dist/src/lib/isosurface/index.ts +0 -7
  645. package/dist/src/lib/isosurface/parse.ts +0 -656
  646. package/dist/src/lib/isosurface/slice.ts +0 -175
  647. package/dist/src/lib/isosurface/types.ts +0 -309
  648. package/dist/src/lib/labels.ts +0 -320
  649. package/dist/src/lib/layout/FullscreenToggle.svelte +0 -50
  650. package/dist/src/lib/layout/InfoCard.svelte +0 -120
  651. package/dist/src/lib/layout/InfoTag.svelte +0 -185
  652. package/dist/src/lib/layout/PropertyFilter.svelte +0 -246
  653. package/dist/src/lib/layout/SettingsSection.svelte +0 -148
  654. package/dist/src/lib/layout/SubpageGrid.svelte +0 -82
  655. package/dist/src/lib/layout/fullscreen.ts +0 -65
  656. package/dist/src/lib/layout/index.ts +0 -11
  657. package/dist/src/lib/layout/json-tree/JsonNode.svelte +0 -548
  658. package/dist/src/lib/layout/json-tree/JsonTree.svelte +0 -1230
  659. package/dist/src/lib/layout/json-tree/index.ts +0 -3
  660. package/dist/src/lib/layout/json-tree/types.ts +0 -126
  661. package/dist/src/lib/layout/json-tree/utils.ts +0 -682
  662. package/dist/src/lib/marching-cubes.ts +0 -614
  663. package/dist/src/lib/math.ts +0 -1081
  664. package/dist/src/lib/overlays/ContextMenu.svelte +0 -162
  665. package/dist/src/lib/overlays/CopyButton.svelte +0 -45
  666. package/dist/src/lib/overlays/DragControlTab.svelte +0 -98
  667. package/dist/src/lib/overlays/DraggablePane.svelte +0 -487
  668. package/dist/src/lib/overlays/InfoPaneCards.svelte +0 -149
  669. package/dist/src/lib/overlays/index.ts +0 -3
  670. package/dist/src/lib/periodic-table/PeriodicTable.svelte +0 -469
  671. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +0 -557
  672. package/dist/src/lib/periodic-table/PropertySelect.svelte +0 -37
  673. package/dist/src/lib/periodic-table/index.ts +0 -12
  674. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  675. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +0 -444
  676. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  677. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +0 -184
  678. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +0 -391
  679. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +0 -203
  680. package/dist/src/lib/phase-diagram/build-diagram.ts +0 -186
  681. package/dist/src/lib/phase-diagram/colors.ts +0 -58
  682. package/dist/src/lib/phase-diagram/diagram-input.ts +0 -40
  683. package/dist/src/lib/phase-diagram/index.ts +0 -13
  684. package/dist/src/lib/phase-diagram/parse.ts +0 -348
  685. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +0 -1023
  686. package/dist/src/lib/phase-diagram/types.ts +0 -144
  687. package/dist/src/lib/phase-diagram/utils.ts +0 -775
  688. package/dist/src/lib/plot/AxisLabel.svelte +0 -51
  689. package/dist/src/lib/plot/BarPlot.svelte +0 -2113
  690. package/dist/src/lib/plot/BarPlotControls.svelte +0 -66
  691. package/dist/src/lib/plot/BinnedScatterPlot.svelte +0 -1114
  692. package/dist/src/lib/plot/ColorBar.svelte +0 -721
  693. package/dist/src/lib/plot/ColorScaleSelect.svelte +0 -54
  694. package/dist/src/lib/plot/ElementScatter.svelte +0 -63
  695. package/dist/src/lib/plot/Histogram.svelte +0 -1558
  696. package/dist/src/lib/plot/HistogramControls.svelte +0 -212
  697. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +0 -96
  698. package/dist/src/lib/plot/Line.svelte +0 -84
  699. package/dist/src/lib/plot/PlotAxis.svelte +0 -169
  700. package/dist/src/lib/plot/PlotControls.svelte +0 -537
  701. package/dist/src/lib/plot/PlotLegend.svelte +0 -569
  702. package/dist/src/lib/plot/PlotTooltip.svelte +0 -67
  703. package/dist/src/lib/plot/PortalSelect.svelte +0 -253
  704. package/dist/src/lib/plot/ReferenceLine3D.svelte +0 -156
  705. package/dist/src/lib/plot/ReferencePlane.svelte +0 -175
  706. package/dist/src/lib/plot/ScatterPlot.svelte +0 -2778
  707. package/dist/src/lib/plot/ScatterPlot3D.svelte +0 -529
  708. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +0 -437
  709. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +0 -912
  710. package/dist/src/lib/plot/ScatterPlotControls.svelte +0 -306
  711. package/dist/src/lib/plot/ScatterPoint.svelte +0 -182
  712. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +0 -293
  713. package/dist/src/lib/plot/Surface3D.svelte +0 -197
  714. package/dist/src/lib/plot/ZeroLines.svelte +0 -97
  715. package/dist/src/lib/plot/ZoomRect.svelte +0 -23
  716. package/dist/src/lib/plot/adaptive-density.ts +0 -316
  717. package/dist/src/lib/plot/auto-place.ts +0 -184
  718. package/dist/src/lib/plot/axis-utils.ts +0 -122
  719. package/dist/src/lib/plot/binned-scatter-types.ts +0 -83
  720. package/dist/src/lib/plot/data-cleaning.ts +0 -1069
  721. package/dist/src/lib/plot/data-transform.ts +0 -69
  722. package/dist/src/lib/plot/defaults.ts +0 -9
  723. package/dist/src/lib/plot/fill-utils.ts +0 -494
  724. package/dist/src/lib/plot/hover-lock.svelte.ts +0 -60
  725. package/dist/src/lib/plot/index.ts +0 -53
  726. package/dist/src/lib/plot/interactions.ts +0 -119
  727. package/dist/src/lib/plot/layout.ts +0 -425
  728. package/dist/src/lib/plot/reference-line.ts +0 -426
  729. package/dist/src/lib/plot/scales.ts +0 -654
  730. package/dist/src/lib/plot/svg.ts +0 -23
  731. package/dist/src/lib/plot/types.ts +0 -1144
  732. package/dist/src/lib/plot/utils/label-placement.ts +0 -541
  733. package/dist/src/lib/plot/utils/series-visibility.ts +0 -140
  734. package/dist/src/lib/plot/utils.ts +0 -11
  735. package/dist/src/lib/rdf/RdfPlot.svelte +0 -247
  736. package/dist/src/lib/rdf/calc-rdf.ts +0 -167
  737. package/dist/src/lib/rdf/index.ts +0 -27
  738. package/dist/src/lib/sanitize.ts +0 -126
  739. package/dist/src/lib/settings.ts +0 -1479
  740. package/dist/src/lib/spectral/Bands.svelte +0 -1040
  741. package/dist/src/lib/spectral/BandsAndDos.svelte +0 -134
  742. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +0 -252
  743. package/dist/src/lib/spectral/Dos.svelte +0 -697
  744. package/dist/src/lib/spectral/helpers.ts +0 -1381
  745. package/dist/src/lib/spectral/index.ts +0 -8
  746. package/dist/src/lib/spectral/types.ts +0 -112
  747. package/dist/src/lib/state.svelte.ts +0 -64
  748. package/dist/src/lib/structure/Arrow.svelte +0 -72
  749. package/dist/src/lib/structure/AtomLegend.svelte +0 -815
  750. package/dist/src/lib/structure/Bond.svelte +0 -140
  751. package/dist/src/lib/structure/CanvasTooltip.svelte +0 -33
  752. package/dist/src/lib/structure/CellSelect.svelte +0 -349
  753. package/dist/src/lib/structure/Cylinder.svelte +0 -45
  754. package/dist/src/lib/structure/Lattice.svelte +0 -196
  755. package/dist/src/lib/structure/Structure.svelte +0 -2248
  756. package/dist/src/lib/structure/StructureControls.svelte +0 -1273
  757. package/dist/src/lib/structure/StructureExportPane.svelte +0 -252
  758. package/dist/src/lib/structure/StructureInfoPane.svelte +0 -737
  759. package/dist/src/lib/structure/StructureScene.svelte +0 -2255
  760. package/dist/src/lib/structure/atom-properties.ts +0 -316
  761. package/dist/src/lib/structure/bond-order-perception.ts +0 -447
  762. package/dist/src/lib/structure/bonding.ts +0 -944
  763. package/dist/src/lib/structure/export.ts +0 -861
  764. package/dist/src/lib/structure/index.ts +0 -291
  765. package/dist/src/lib/structure/label-placement.ts +0 -130
  766. package/dist/src/lib/structure/measure.ts +0 -45
  767. package/dist/src/lib/structure/parse.ts +0 -1705
  768. package/dist/src/lib/structure/partial-occupancy.ts +0 -183
  769. package/dist/src/lib/structure/pbc.ts +0 -164
  770. package/dist/src/lib/structure/supercell.ts +0 -226
  771. package/dist/src/lib/structure/validation.ts +0 -11
  772. package/dist/src/lib/symmetry/SymmetryStats.svelte +0 -226
  773. package/dist/src/lib/symmetry/WyckoffTable.svelte +0 -120
  774. package/dist/src/lib/symmetry/cell-transform.ts +0 -118
  775. package/dist/src/lib/symmetry/index.ts +0 -348
  776. package/dist/src/lib/symmetry/spacegroups.ts +0 -404
  777. package/dist/src/lib/table/HeatmapTable.svelte +0 -1833
  778. package/dist/src/lib/table/ToggleMenu.svelte +0 -385
  779. package/dist/src/lib/table/index.ts +0 -139
  780. package/dist/src/lib/theme/ThemeControl.svelte +0 -53
  781. package/dist/src/lib/theme/index.ts +0 -107
  782. package/dist/src/lib/time.ts +0 -71
  783. package/dist/src/lib/tooltip/TooltipContent.svelte +0 -58
  784. package/dist/src/lib/tooltip/index.ts +0 -2
  785. package/dist/src/lib/tooltip/types.ts +0 -13
  786. package/dist/src/lib/trajectory/Trajectory.svelte +0 -1545
  787. package/dist/src/lib/trajectory/TrajectoryError.svelte +0 -128
  788. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +0 -357
  789. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +0 -313
  790. package/dist/src/lib/trajectory/constants.ts +0 -7
  791. package/dist/src/lib/trajectory/extract.ts +0 -196
  792. package/dist/src/lib/trajectory/format-detect.ts +0 -96
  793. package/dist/src/lib/trajectory/frame-reader.ts +0 -456
  794. package/dist/src/lib/trajectory/helpers.ts +0 -217
  795. package/dist/src/lib/trajectory/index.ts +0 -218
  796. package/dist/src/lib/trajectory/parse/ase.ts +0 -109
  797. package/dist/src/lib/trajectory/parse/hdf5.ts +0 -173
  798. package/dist/src/lib/trajectory/parse/index.ts +0 -411
  799. package/dist/src/lib/trajectory/parse/lammps.ts +0 -215
  800. package/dist/src/lib/trajectory/parse/vasp.ts +0 -102
  801. package/dist/src/lib/trajectory/parse/xyz.ts +0 -143
  802. package/dist/src/lib/trajectory/plotting.ts +0 -599
  803. package/dist/src/lib/trajectory/types.ts +0 -13
  804. package/dist/src/lib/utils.ts +0 -56
  805. package/dist/src/lib/xrd/XrdPlot.svelte +0 -615
  806. package/dist/src/lib/xrd/broadening.ts +0 -130
  807. package/dist/src/lib/xrd/calc-xrd.ts +0 -397
  808. package/dist/src/lib/xrd/index.ts +0 -38
  809. package/dist/src/lib/xrd/parse.ts +0 -858
  810. package/dist/webview.js +0 -29421
  811. package/icon.png +0 -0
  812. package/matterviz-0.3.2.vsix +0 -0
  813. package/matterviz-0.3.4.vsix +0 -0
  814. package/matterviz-0.3.5.vsix +0 -0
  815. package/scripts/sync-config.ts +0 -101
  816. package/src/declarations.d.ts +0 -2
  817. package/src/extension.ts +0 -972
  818. package/src/node-io.ts +0 -65
  819. package/src/types.ts +0 -17
  820. package/src/webview/JsonBrowser.svelte +0 -1079
  821. package/src/webview/PlotPanel.svelte +0 -346
  822. package/src/webview/detect.ts +0 -444
  823. package/src/webview/main.ts +0 -764
  824. package/src/webview/plot-utils.ts +0 -250
  825. package/test-fixtures/all-viz-types.json.gz +0 -0
  826. package/test-fixtures/plot-demo-data.json.gz +0 -0
  827. package/tests/detect.test.ts +0 -604
  828. package/tests/extension.test.ts +0 -2041
  829. package/tests/node-io.test.ts +0 -39
  830. package/tests/plot-utils.test.ts +0 -302
  831. package/tests/vite-plugin-json-gz.test.ts +0 -114
  832. package/tests/vscode-mock.ts +0 -18
  833. package/tests/webview.test.ts +0 -231
  834. package/tsconfig.json +0 -20
  835. package/vite-plugin-json-gz.ts +0 -29
  836. package/vite.config.ts +0 -34
  837. package/vite.extension.config.ts +0 -34
  838. /package/dist/{src/lib/EmptyState.svelte → EmptyState.svelte} +0 -0
  839. /package/dist/{src/lib/Icon.svelte → Icon.svelte} +0 -0
  840. /package/dist/{src/lib/app.css → app.css} +0 -0
  841. /package/dist/{src/lib/chempot-diagram → chempot-diagram}/ChemPotScene3D.svelte +0 -0
  842. /package/dist/{src/lib/colors → colors}/alloy-colors.json +0 -0
  843. /package/dist/{src/lib/colors → colors}/dark-mode-colors.json +0 -0
  844. /package/dist/{src/lib/colors → colors}/jmol-colors.json +0 -0
  845. /package/dist/{src/lib/colors → colors}/muted-colors.json +0 -0
  846. /package/dist/{src/lib/colors → colors}/pastel-colors.json +0 -0
  847. /package/dist/{src/lib/colors → colors}/vesta-colors.json +0 -0
  848. /package/dist/{src/lib/convex-hull → convex-hull}/TemperatureSlider.svelte +0 -0
  849. /package/dist/{src/lib/element → element}/BohrAtom.svelte +0 -0
  850. /package/dist/{src/lib/element → element}/Nucleus.svelte +0 -0
  851. /package/dist/{src/lib/element → element}/data.json +0 -0
  852. /package/dist/{src/lib/element → element}/data.json.gz +0 -0
  853. /package/dist/{src/lib/element → element}/data.json.gz.d.ts +0 -0
  854. /package/dist/{src/lib/element → element}/data.schema.json +0 -0
  855. /package/dist/{src/lib/element-image-urls.json → element-image-urls.json} +0 -0
  856. /package/dist/{src/lib/feedback → feedback}/Spinner.svelte +0 -0
  857. /package/dist/{src/lib/feedback → feedback}/StatusMessage.svelte +0 -0
  858. /package/dist/{src/lib/layout → layout}/json-tree/JsonValue.svelte +0 -0
  859. /package/dist/{src/lib/periodic-table → periodic-table}/TableInset.svelte +0 -0
  860. /package/dist/{src/lib/plot → plot}/FillArea.svelte +0 -0
  861. /package/dist/{src/lib/plot → plot}/ReferenceLine.svelte +0 -0
  862. /package/dist/{src/lib/theme → theme}/themes.mjs +0 -0
  863. /package/dist/{src/lib/xrd → xrd}/atomic_scattering_params.json +0 -0
@@ -1,697 +0,0 @@
1
- <script lang="ts">
2
- import { PLOT_COLORS } from '$lib/colors'
3
- import EmptyState from '$lib/EmptyState.svelte'
4
- import { SettingsSection } from '$lib/layout'
5
- import ScatterPlot from '$lib/plot/ScatterPlot.svelte'
6
- import type { AxisConfig, DataSeries } from '$lib/plot/types'
7
- import type { ComponentProps } from 'svelte'
8
- import { tooltip as attach_tooltip } from 'svelte-multiselect/attachments'
9
- import {
10
- apply_gaussian_smearing,
11
- calculate_sigma_step,
12
- convert_frequencies,
13
- extract_efermi,
14
- extract_pdos,
15
- format_dos_tooltip,
16
- format_sigma,
17
- FREQUENCY_UNITS,
18
- IMAGINARY_MODE_NOISE_THRESHOLD,
19
- is_valid_range,
20
- negative_fraction,
21
- NORMALIZATION_MODES,
22
- normalize_densities,
23
- normalize_dos,
24
- SPIN_MODES,
25
- validate_sigma_range,
26
- } from './helpers'
27
- import type {
28
- DosData,
29
- DosInput,
30
- FrequencyUnit,
31
- NormalizationMode,
32
- PdosType,
33
- SpinMode,
34
- StackedAreaData,
35
- } from './types'
36
-
37
- let {
38
- doses,
39
- stack = false,
40
- sigma = $bindable(0),
41
- units = $bindable(`THz`),
42
- normalize = $bindable(null),
43
- orientation = `vertical`,
44
- show_legend = true,
45
- x_axis = {},
46
- y_axis = $bindable({}),
47
- hovered_frequency = $bindable(null),
48
- reference_frequency = null,
49
- fermi_level = undefined,
50
- spin_mode = $bindable(`mirror`),
51
- pdos_type = null,
52
- pdos_filter = undefined,
53
- // Controls configuration
54
- show_controls = true,
55
- show_sigma_control = true,
56
- show_normalize_control = false,
57
- show_units_control = false,
58
- sigma_range = undefined,
59
- ...rest
60
- }: ComponentProps<typeof ScatterPlot> & {
61
- doses: DosInput | Record<string, DosInput>
62
- x_axis?: AxisConfig
63
- y_axis?: AxisConfig
64
- stack?: boolean
65
- sigma?: number
66
- units?: FrequencyUnit
67
- normalize?: NormalizationMode
68
- orientation?: `vertical` | `horizontal`
69
- show_legend?: boolean
70
- hovered_frequency?: number | null
71
- reference_frequency?: number | null
72
- fermi_level?: number // Fermi level for electronic DOS (auto-detected if not provided)
73
- spin_mode?: SpinMode // How to display spin-polarized DOS: mirror (default), overlay, up_only, down_only, or null (auto)
74
- pdos_type?: PdosType | null // Extract projected DOS: 'atom' for atom-resolved, 'orbital' for orbital-resolved (s, p, d)
75
- pdos_filter?: string[] // Filter projected DOS to specific keys (e.g., ["Fe", "O"] for atoms or ["s", "p", "d"] for orbitals)
76
- // Controls configuration
77
- show_controls?: boolean // Show the controls pane
78
- show_sigma_control?: boolean // Show sigma/smearing control
79
- show_normalize_control?: boolean // Show normalization selector
80
- show_units_control?: boolean // Show units selector (phonon DOS only)
81
- sigma_range?: [number, number] // Min/max range for sigma slider (auto-detected if not provided)
82
- } = $props()
83
-
84
- const is_horizontal = $derived(orientation === `horizontal`)
85
-
86
- // Normalize input to dict format - converts any DosInput format to DosData
87
- // If pdos_type is set, extract projected DOS from the input instead
88
- let doses_dict = $derived.by((): Record<string, DosData> => {
89
- if (!doses) return {}
90
-
91
- // If pdos_type is set, try to extract projected DOS
92
- if (pdos_type) {
93
- // Try extracting from the doses object directly (single CompleteDos)
94
- const pdos = extract_pdos(doses, pdos_type, pdos_filter)
95
- if (pdos) return pdos
96
-
97
- // Try extracting from first entry if doses is a dict
98
- if (typeof doses === `object` && !(`densities` in doses)) {
99
- const first_dos = Object.values(doses)[0]
100
- const pdos_from_first = extract_pdos(first_dos, pdos_type, pdos_filter)
101
- if (pdos_from_first) return pdos_from_first
102
- }
103
- // PDOS extraction was requested but failed - warn and revert to normal processing
104
- console.warn(
105
- `PDOS extraction requested (pdos_type="${pdos_type}") but no projected DOS data found. ` +
106
- `Falling back to total DOS. Ensure input has atom_dos (for atom) or spd_dos (for orbital) data.`,
107
- )
108
- }
109
-
110
- if (`densities` in doses && (`frequencies` in doses || `energies` in doses)) {
111
- // Single DOS
112
- const normalized = normalize_dos(doses)
113
- return normalized ? { '': normalized } : {}
114
- }
115
-
116
- // Already a dict - normalize each DOS
117
- const result: Record<string, DosData> = {}
118
- for (const [key, dos] of Object.entries(doses as Record<string, DosInput>)) {
119
- const normalized = normalize_dos(dos)
120
- if (normalized) result[key] = normalized
121
- }
122
- return result
123
- })
124
-
125
- // Determine if this is phonon or electronic DOS using discriminated union
126
- let is_phonon = $derived(Object.values(doses_dict)[0]?.type === `phonon`)
127
-
128
- // Auto-detect Fermi level from electronic DOS data if not explicitly provided
129
- let effective_fermi_level = $derived.by((): number | undefined => {
130
- if (fermi_level !== undefined) return fermi_level
131
- if (is_phonon) return undefined
132
- return extract_efermi(doses)
133
- })
134
-
135
- // Check if any DOS in the dict has spin-polarized data
136
- let has_spin_polarized = $derived(
137
- Object.values(doses_dict).some(
138
- (dos) => dos.type === `electronic` && dos.spin_down_densities?.length,
139
- ),
140
- )
141
-
142
- // Effective spin mode: null means auto-detect (mirror if spin data exists)
143
- let effective_spin_mode = $derived.by((): SpinMode => {
144
- if (spin_mode !== null) return spin_mode
145
- return has_spin_polarized ? `mirror` : null
146
- })
147
-
148
- // Convert DOS data to scatter plot series and stacked area data
149
- // Performance: Only recalculates when doses_dict, units, sigma, normalize, or spin_mode changes
150
- let { series_data, stacked_areas } = $derived.by(
151
- (): { series_data: DataSeries[]; stacked_areas: StackedAreaData[] } => {
152
- if (Object.keys(doses_dict).length === 0) {
153
- return { series_data: [], stacked_areas: [] }
154
- }
155
-
156
- const all_series: DataSeries[] = []
157
- const areas: StackedAreaData[] = []
158
- const dos_entries = Object.entries(doses_dict)
159
- // Separate cumulative trackers for spin-up and spin-down in overlay mode
160
- // This prevents spin-down from incorrectly stacking on top of spin-up
161
- let cumulative_spin_up: number[] | null = null
162
- let cumulative_spin_down: number[] | null = null
163
-
164
- for (let dos_idx = 0; dos_idx < dos_entries.length; dos_idx++) {
165
- const [label, dos] = dos_entries[dos_idx]
166
- const color = PLOT_COLORS[dos_idx % PLOT_COLORS.length]
167
-
168
- // Get frequencies or energies using discriminated union type narrowing
169
- let x_values = dos.type === `phonon` ? dos.frequencies : dos.energies
170
-
171
- // Convert units if needed
172
- if (dos.type === `phonon` && units !== `THz`) {
173
- x_values = convert_frequencies(x_values, units)
174
- }
175
-
176
- // Check for spin-down data (only for electronic DOS)
177
- const has_spin_down = dos.type === `electronic` &&
178
- dos.spin_down_densities?.length === dos.densities.length
179
- const should_show_spin_up = effective_spin_mode !== `down_only`
180
- const should_show_spin_down = has_spin_down &&
181
- effective_spin_mode !== `up_only` && effective_spin_mode !== null
182
-
183
- // Process spin-up (or total) densities
184
- if (should_show_spin_up) {
185
- let densities_up = sigma > 0
186
- ? apply_gaussian_smearing(x_values, dos.densities, sigma)
187
- : [...dos.densities]
188
-
189
- densities_up = normalize_densities(densities_up, x_values, normalize)
190
-
191
- // Store previous cumulative for area fill baseline
192
- const prev_cumulative = cumulative_spin_up ? [...cumulative_spin_up] : null
193
-
194
- // For stacked plots, accumulate densities (only if array lengths match)
195
- if (stack && cumulative_spin_up?.length === densities_up.length) {
196
- densities_up = densities_up.map((density, idx) =>
197
- density + (cumulative_spin_up?.[idx] ?? 0)
198
- )
199
- } else if (stack && cumulative_spin_up) {
200
- console.warn(`DOS stacking: length mismatch for "${label}"`)
201
- }
202
-
203
- // Store stacked area data for rendering
204
- if (stack) {
205
- areas.push({
206
- x_values: [...x_values],
207
- upper_densities: [...densities_up],
208
- lower_densities: prev_cumulative ?? x_values.map(() => 0),
209
- color,
210
- })
211
- cumulative_spin_up = densities_up
212
- }
213
-
214
- const spin_label = has_spin_down && effective_spin_mode
215
- ? `${label || `DOS ${dos_idx + 1}`} (↑)`
216
- : (label || `DOS ${dos_idx + 1}`)
217
-
218
- const series_up: DataSeries = {
219
- x: is_horizontal ? densities_up : x_values,
220
- y: is_horizontal ? x_values : densities_up,
221
- markers: `line`,
222
- label: spin_label,
223
- line_style: { stroke: color, stroke_width: 1.5 },
224
- point_style: { fill: stack ? color : undefined },
225
- }
226
- all_series.push(series_up)
227
- }
228
-
229
- // Process spin-down densities if available
230
- if (
231
- should_show_spin_down && dos.type === `electronic` &&
232
- dos.spin_down_densities
233
- ) {
234
- let densities_down = sigma > 0
235
- ? apply_gaussian_smearing(x_values, dos.spin_down_densities, sigma)
236
- : [...dos.spin_down_densities]
237
-
238
- densities_down = normalize_densities(densities_down, x_values, normalize)
239
-
240
- // For mirror mode, negate the densities
241
- if (effective_spin_mode === `mirror`) {
242
- densities_down = densities_down.map((density) => -density)
243
- }
244
-
245
- // For stacked plots with overlay mode, use separate spin-down cumulative
246
- // This prevents spin-down from stacking on top of spin-up within the same DOS
247
- if (stack && effective_spin_mode === `overlay`) {
248
- const prev_spin_down = cumulative_spin_down
249
- ? [...cumulative_spin_down]
250
- : null
251
- if (cumulative_spin_down?.length === densities_down.length) {
252
- densities_down = densities_down.map((density, idx) =>
253
- density + (cumulative_spin_down?.[idx] ?? 0)
254
- )
255
- } else if (cumulative_spin_down) {
256
- console.warn(`DOS stacking (spin-down): length mismatch for "${label}"`)
257
- }
258
-
259
- // Store stacked area for spin-down
260
- areas.push({
261
- x_values: [...x_values],
262
- upper_densities: [...densities_down],
263
- lower_densities: prev_spin_down ?? x_values.map(() => 0),
264
- color: PLOT_COLORS[(dos_idx * 2 + 1) % PLOT_COLORS.length],
265
- })
266
- cumulative_spin_down = densities_down
267
- }
268
-
269
- // Use a slightly different shade for spin-down in overlay mode
270
- const spin_down_color = effective_spin_mode === `overlay`
271
- ? PLOT_COLORS[(dos_idx * 2 + 1) % PLOT_COLORS.length]
272
- : color
273
-
274
- const series_down: DataSeries = {
275
- x: is_horizontal ? densities_down : x_values,
276
- y: is_horizontal ? x_values : densities_down,
277
- markers: `line`,
278
- label: `${label || `DOS ${dos_idx + 1}`} (↓)`,
279
- line_style: {
280
- stroke: spin_down_color,
281
- stroke_width: 1.5,
282
- line_dash: effective_spin_mode === `overlay` ? `4,2` : undefined,
283
- },
284
- point_style: { fill: stack ? spin_down_color : undefined },
285
- }
286
- all_series.push(series_down)
287
- }
288
- }
289
- return { series_data: all_series, stacked_areas: areas }
290
- },
291
- )
292
-
293
- let all_freqs = $derived( // for clamping phonon noise
294
- Object.values(doses_dict).flatMap((dos) =>
295
- dos.type === `phonon` ? dos.frequencies : dos.energies
296
- ),
297
- )
298
- let clamp_to_zero = $derived(
299
- is_phonon &&
300
- all_freqs.length > 0 &&
301
- Math.min(...all_freqs) < 0 &&
302
- negative_fraction(all_freqs) < IMAGINARY_MODE_NOISE_THRESHOLD,
303
- )
304
-
305
- // Check if we have mirrored spin-down data (negative densities)
306
- let has_mirrored_spin = $derived(
307
- effective_spin_mode === `mirror` && has_spin_polarized,
308
- )
309
-
310
- let x_range = $derived.by((): [number, number] | undefined => {
311
- if (!series_data.length) return undefined
312
- const all_x = series_data.flatMap((srs) => srs.x)
313
- const min_x = Math.min(...all_x), max_x = Math.max(...all_x)
314
- // For horizontal orientation with mirror mode, allow negative values (mirrored densities)
315
- if (is_horizontal && has_mirrored_spin) return [min_x, max_x]
316
- if (is_horizontal || clamp_to_zero) return [0, max_x]
317
- return [min_x, max_x]
318
- })
319
-
320
- let y_range = $derived.by((): [number, number] | undefined => {
321
- if (!series_data.length) return undefined
322
- const all_y = series_data.flatMap((srs) => srs.y)
323
- const min_y = Math.min(...all_y), max_y = Math.max(...all_y)
324
- // For vertical orientation with mirror mode, allow negative values (mirrored densities)
325
- if (!is_horizontal && has_mirrored_spin) return [min_y, max_y]
326
- if (!is_horizontal || clamp_to_zero) return [0, max_y]
327
- return [min_y, max_y]
328
- })
329
-
330
- // Get axis labels based on orientation
331
- let x_label = $derived(
332
- is_horizontal
333
- ? `Density of States`
334
- : is_phonon
335
- ? `Frequency (${units})`
336
- : `Energy (eV)`,
337
- )
338
- let y_label = $derived(
339
- is_horizontal
340
- ? (is_phonon ? `Frequency (${units})` : `Energy (eV)`)
341
- : `Density of States`,
342
- )
343
-
344
- // Compute final axis configurations with default labels
345
- let final_x_axis = $derived({
346
- label: x_label,
347
- format: `.2f`,
348
- range: x_range,
349
- label_shift: { x: 0, y: -48 }, // Increase standoff from tick labels
350
- ...(is_horizontal && { ticks: 4 }),
351
- ...x_axis,
352
- })
353
- // Internal y_axis that ScatterPlot binds to - syncs zoom changes back to parent
354
- let internal_y_axis = $derived({
355
- label: y_label,
356
- format: `.2f`,
357
- range: y_range,
358
- ...y_axis,
359
- })
360
-
361
- // Sync zoom changes from ScatterPlot back to parent via bindable y_axis
362
- // Also clears parent range when internal range becomes invalid (auto-range reset)
363
- $effect(() => {
364
- const range = internal_y_axis.range
365
- if (is_valid_range(range)) {
366
- if (y_axis.range?.[0] !== range[0] || y_axis.range?.[1] !== range[1]) {
367
- y_axis = { ...y_axis, range }
368
- }
369
- return
370
- }
371
- // Range became invalid - clear parent's range to propagate reset
372
- if (`range` in y_axis) {
373
- const { range: _omit, ...axis_without_range } = y_axis
374
- y_axis = axis_without_range
375
- }
376
- })
377
-
378
- let display = $state({
379
- x_grid: true,
380
- y_grid: true,
381
- x_zero_line: true,
382
- y_zero_line: true,
383
- })
384
-
385
- // Determine if we have valid data to display
386
- let has_valid_data = $derived(series_data.length > 0)
387
-
388
- // Auto-detect sigma range based on frequency/energy range
389
- let effective_sigma_range = $derived.by((): [number, number] => {
390
- if (sigma_range) return sigma_range
391
- if (!all_freqs.length) return [0, 1]
392
- const freq_range = Math.max(...all_freqs) - Math.min(...all_freqs)
393
- // Reasonable sigma range: 0 to ~5% of total range
394
- const max_sigma = Math.max(0.1, freq_range * 0.05)
395
- return [0, max_sigma]
396
- })
397
-
398
- // Computed values for sigma slider
399
- let safe_sigma_range = $derived(validate_sigma_range(effective_sigma_range))
400
- let sigma_step = $derived(calculate_sigma_step(effective_sigma_range))
401
-
402
- // Build SVG path for stacked area fill between upper and lower density curves
403
- function build_stacked_area_path(
404
- area: StackedAreaData,
405
- x_scale_fn: (val: number) => number,
406
- y_scale_fn: (val: number) => number,
407
- horizontal: boolean,
408
- ): string {
409
- const pts = area.x_values.length
410
- if (pts < 2) return ``
411
-
412
- const upper_coords: string[] = []
413
- const lower_coords: string[] = []
414
-
415
- for (let idx = 0; idx < pts; idx++) {
416
- const freq = area.x_values[idx]
417
- const upper_dens = area.upper_densities[idx]
418
- const lower_dens = area.lower_densities[idx]
419
- // For vertical orientation: x = freq, y = density
420
- // For horizontal orientation: x = density, y = freq
421
- const [upper_x, upper_y] = horizontal
422
- ? [x_scale_fn(upper_dens), y_scale_fn(freq)]
423
- : [x_scale_fn(freq), y_scale_fn(upper_dens)]
424
- const [lower_x, lower_y] = horizontal
425
- ? [x_scale_fn(lower_dens), y_scale_fn(freq)]
426
- : [x_scale_fn(freq), y_scale_fn(lower_dens)]
427
- upper_coords.push(`${upper_x.toFixed(2)},${upper_y.toFixed(2)}`)
428
- lower_coords.push(`${lower_x.toFixed(2)},${lower_y.toFixed(2)}`)
429
- }
430
- // Trace upper edge forward, lower edge backward, close path
431
- return `M${upper_coords[0]} ${
432
- upper_coords.slice(1).map((coord) => `L${coord}`).join(` `)
433
- } ${lower_coords.toReversed().map((coord) => `L${coord}`).join(` `)} Z`
434
- }
435
- </script>
436
-
437
- {#if has_valid_data}
438
- <ScatterPlot
439
- series={series_data}
440
- x_axis={final_x_axis}
441
- bind:y_axis={internal_y_axis}
442
- bind:display
443
- legend={show_legend ? {} : null}
444
- hover_config={{ threshold_px: 50 }}
445
- controls={{ show: show_controls }}
446
- on_point_hover={(event) => {
447
- hovered_frequency = is_horizontal
448
- ? (event?.point?.y ?? null)
449
- : (event?.point?.x ?? null)
450
- }}
451
- {...{ range_padding: 0, ...rest }}
452
- >
453
- {#snippet tooltip({ x_formatted, y_formatted, label })}
454
- {@const tooltip_data = format_dos_tooltip(
455
- x_formatted,
456
- y_formatted,
457
- label ?? null,
458
- is_horizontal,
459
- is_phonon,
460
- units,
461
- final_x_axis.label ?? ``,
462
- internal_y_axis.label ?? ``,
463
- Object.keys(doses_dict).length,
464
- )}
465
- {#if tooltip_data.title}<strong>{tooltip_data.title}</strong><br />{/if}
466
- {#each tooltip_data.lines as line, line_idx (line_idx)}
467
- {line}{#if line_idx < tooltip_data.lines.length - 1}<br />{/if}
468
- {/each}
469
- {/snippet}
470
-
471
- {#snippet controls_extra()}
472
- <!-- Spin Mode (for spin-polarized electronic DOS) -->
473
- {#if has_spin_polarized}
474
- <SettingsSection
475
- title="Spin Display"
476
- current_values={{ spin_mode }}
477
- on_reset={() => (spin_mode = `mirror`)}
478
- >
479
- <div class="dos-spin-modes">
480
- {#each SPIN_MODES as mode (mode.value)}
481
- <button
482
- type="button"
483
- class="spin-mode-btn"
484
- class:active={spin_mode === mode.value}
485
- onclick={() => (spin_mode = mode.value)}
486
- aria-label={mode.title}
487
- aria-pressed={spin_mode === mode.value}
488
- {@attach attach_tooltip({ content: mode.title })}
489
- >
490
- {mode.label}
491
- </button>
492
- {/each}
493
- </div>
494
- </SettingsSection>
495
- {/if}
496
-
497
- <!-- Smearing (Sigma) -->
498
- {#if show_sigma_control}
499
- <SettingsSection
500
- title="Smearing"
501
- current_values={{ sigma }}
502
- on_reset={() => (sigma = 0)}
503
- >
504
- <div class="pane-row">
505
- <label for="dos-sigma" title="Gaussian smearing width (σ)">σ:</label>
506
- <input
507
- id="dos-sigma"
508
- type="range"
509
- min={safe_sigma_range[0]}
510
- max={safe_sigma_range[1]}
511
- step={sigma_step}
512
- bind:value={sigma}
513
- />
514
- <span class="sigma-value">{format_sigma(sigma)}</span>
515
- </div>
516
- </SettingsSection>
517
- {/if}
518
-
519
- <!-- Normalization -->
520
- {#if show_normalize_control}
521
- <SettingsSection
522
- title="Normalization"
523
- current_values={{ normalize }}
524
- on_reset={() => (normalize = null)}
525
- >
526
- <div class="pane-row">
527
- <label for="dos-normalize">Mode:</label>
528
- <select id="dos-normalize" bind:value={normalize}>
529
- {#each NORMALIZATION_MODES as mode (mode.value)}
530
- <option value={mode.value}>{mode.label}</option>
531
- {/each}
532
- </select>
533
- </div>
534
- </SettingsSection>
535
- {/if}
536
-
537
- <!-- Frequency Units (phonon DOS only) -->
538
- {#if show_units_control && is_phonon}
539
- <SettingsSection
540
- title="Units"
541
- current_values={{ units }}
542
- on_reset={() => (units = `THz`)}
543
- >
544
- <div class="pane-row">
545
- <label for="dos-units">Frequency:</label>
546
- <select id="dos-units" bind:value={units}>
547
- {#each FREQUENCY_UNITS as unit (unit)}
548
- <option value={unit}>{unit}</option>
549
- {/each}
550
- </select>
551
- </div>
552
- </SettingsSection>
553
- {/if}
554
- {/snippet}
555
-
556
- {#snippet user_content({ width, height, y_scale_fn, x_scale_fn, pad })}
557
- <!-- Stacked area fills (rendered first so they appear behind lines) -->
558
- {#if stack && stacked_areas.length > 0}
559
- {#each stacked_areas as area, area_idx (area_idx)}
560
- <path
561
- d={build_stacked_area_path(area, x_scale_fn, y_scale_fn, is_horizontal)}
562
- fill={area.color}
563
- fill-opacity="var(--dos-stacked-area-opacity, 0.3)"
564
- stroke="none"
565
- />
566
- {/each}
567
- {/if}
568
-
569
- <!-- Fermi level line for electronic DOS -->
570
- {@const fermi_pos = effective_fermi_level !== undefined
571
- ? (is_horizontal
572
- ? y_scale_fn(effective_fermi_level)
573
- : x_scale_fn(effective_fermi_level))
574
- : NaN}
575
- {#if Number.isFinite(fermi_pos)}
576
- {@const [x1, x2, y1, y2] = is_horizontal
577
- ? [pad.l, width - pad.r, fermi_pos, fermi_pos]
578
- : [fermi_pos, fermi_pos, pad.t, height - pad.b]}
579
- <line
580
- class="fermi-level-line"
581
- {x1}
582
- {x2}
583
- {y1}
584
- {y2}
585
- stroke="var(--dos-fermi-line-color, light-dark(#e74c3c, #ff6b6b))"
586
- stroke-width="var(--dos-fermi-line-width, 1.5)"
587
- stroke-dasharray="var(--dos-fermi-line-dash, 6,3)"
588
- opacity="var(--dos-fermi-line-opacity, 0.8)"
589
- />
590
- <!-- Fermi level label -->
591
- {#if is_horizontal}
592
- <text
593
- class="fermi-level-label"
594
- x={width - pad.r + 4}
595
- y={fermi_pos}
596
- dy="0.35em"
597
- font-size="10"
598
- fill="var(--dos-fermi-line-color, light-dark(#e74c3c, #ff6b6b))"
599
- opacity="0.9"
600
- >
601
- E<tspan dy="2" font-size="8">F</tspan>
602
- </text>
603
- {:else}
604
- <text
605
- class="fermi-level-label"
606
- x={fermi_pos}
607
- y={pad.t - 4}
608
- text-anchor="middle"
609
- font-size="10"
610
- fill="var(--dos-fermi-line-color, light-dark(#e74c3c, #ff6b6b))"
611
- opacity="0.9"
612
- >
613
- E<tspan dy="2" font-size="8">F</tspan>
614
- </text>
615
- {/if}
616
- {/if}
617
-
618
- <!-- Reference frequency line -->
619
- {@const ref_pos = reference_frequency !== null
620
- ? (is_horizontal
621
- ? y_scale_fn(reference_frequency)
622
- : x_scale_fn(reference_frequency))
623
- : NaN}
624
- {#if Number.isFinite(ref_pos)}
625
- {@const [x1, x2, y1, y2] = is_horizontal
626
- ? [pad.l, width - pad.r, ref_pos, ref_pos]
627
- : [ref_pos, ref_pos, pad.t, height - pad.b]}
628
- <line
629
- {x1}
630
- {x2}
631
- {y1}
632
- {y2}
633
- stroke="var(--dos-reference-line-color, light-dark(#d48860, #c47850))"
634
- stroke-width="var(--dos-reference-line-width, 1)"
635
- stroke-dasharray="var(--dos-reference-line-dash, 4,3)"
636
- opacity="var(--dos-reference-line-opacity, 0.5)"
637
- />
638
- {/if}
639
- {/snippet}
640
- </ScatterPlot>
641
- {:else}
642
- <EmptyState message="No valid DOS data to display" />
643
- {/if}
644
-
645
- <style>
646
- /* Control row layout */
647
- .pane-row {
648
- display: flex;
649
- align-items: center;
650
- gap: 0.5em;
651
- margin: 0.3em 0;
652
- font-size: 0.9em;
653
- }
654
- .pane-row label {
655
- min-width: 4em;
656
- flex-shrink: 0;
657
- }
658
- .pane-row input[type='range'] {
659
- flex: 1;
660
- min-width: 4em;
661
- }
662
- .pane-row select {
663
- flex: 1;
664
- min-width: 0;
665
- }
666
- /* Spin mode button group */
667
- .dos-spin-modes {
668
- display: flex;
669
- gap: 2px;
670
- flex-wrap: wrap;
671
- }
672
- .spin-mode-btn {
673
- padding: 4px 8px;
674
- border: 1px solid var(--border-color, light-dark(#d1d5db, #4b5563));
675
- background: var(--btn-bg, light-dark(#f3f4f6, #374151));
676
- border-radius: var(--border-radius, 3pt);
677
- cursor: pointer;
678
- font-size: 1em;
679
- transition: all 0.15s ease;
680
- min-width: 2em;
681
- }
682
- .spin-mode-btn:hover {
683
- background: var(--btn-bg-hover, light-dark(#e5e7eb, #4b5563));
684
- }
685
- .spin-mode-btn.active {
686
- background: var(--btn-bg-active, light-dark(#dbeafe, #1e40af));
687
- border-color: var(--btn-border-active, light-dark(#3b82f6, #60a5fa));
688
- color: var(--btn-color-active, light-dark(#1d4ed8, #93c5fd));
689
- }
690
- /* Sigma value display */
691
- .sigma-value {
692
- font-family: var(--font-mono, monospace);
693
- font-size: 0.9em;
694
- min-width: 3.5em;
695
- text-align: right;
696
- }
697
- </style>