matterviz 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (926) 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 +44 -0
  5. package/dist/Icon.svelte.d.ts +13 -0
  6. package/dist/MillerIndexInput.svelte +66 -0
  7. package/dist/MillerIndexInput.svelte.d.ts +7 -0
  8. package/dist/api/mp.d.ts +6 -0
  9. package/dist/api/mp.js +22 -0
  10. package/dist/api/optimade.d.ts +45 -0
  11. package/dist/api/optimade.js +141 -0
  12. package/dist/app.css +244 -0
  13. package/dist/brillouin/BrillouinZone.svelte +554 -0
  14. package/dist/brillouin/BrillouinZone.svelte.d.ts +84 -0
  15. package/dist/brillouin/BrillouinZoneControls.svelte +144 -0
  16. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +17 -0
  17. package/dist/brillouin/BrillouinZoneExportPane.svelte +146 -0
  18. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
  19. package/dist/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  20. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
  21. package/dist/brillouin/BrillouinZoneScene.svelte +522 -0
  22. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +49 -0
  23. package/dist/brillouin/BrillouinZoneTooltip.svelte +83 -0
  24. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +8 -0
  25. package/dist/brillouin/compute.d.ts +17 -0
  26. package/dist/brillouin/compute.js +422 -0
  27. package/dist/brillouin/index.d.ts +8 -0
  28. package/dist/brillouin/index.js +7 -0
  29. package/dist/brillouin/types.d.ts +43 -0
  30. package/dist/brillouin/types.js +1 -0
  31. package/dist/chempot-diagram/ChemPotDiagram.svelte +328 -0
  32. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
  33. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +843 -0
  34. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
  35. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3191 -0
  36. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
  37. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
  38. package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
  39. package/dist/chempot-diagram/async-compute.svelte.js +80 -0
  40. package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
  41. package/dist/chempot-diagram/chempot-worker.js +12 -0
  42. package/dist/chempot-diagram/color.d.ts +10 -0
  43. package/dist/chempot-diagram/color.js +32 -0
  44. package/dist/chempot-diagram/compute.d.ts +48 -0
  45. package/dist/chempot-diagram/compute.js +804 -0
  46. package/dist/chempot-diagram/index.d.ts +6 -0
  47. package/dist/chempot-diagram/index.js +6 -0
  48. package/dist/chempot-diagram/pointer.d.ts +16 -0
  49. package/dist/chempot-diagram/pointer.js +40 -0
  50. package/dist/chempot-diagram/temperature.d.ts +15 -0
  51. package/dist/chempot-diagram/temperature.js +34 -0
  52. package/dist/chempot-diagram/types.d.ts +81 -0
  53. package/dist/chempot-diagram/types.js +28 -0
  54. package/dist/colors/index.d.ts +47 -0
  55. package/dist/colors/index.js +204 -0
  56. package/dist/composition/BarChart.svelte +297 -0
  57. package/dist/composition/BarChart.svelte.d.ts +39 -0
  58. package/dist/composition/BubbleChart.svelte +218 -0
  59. package/dist/composition/BubbleChart.svelte.d.ts +28 -0
  60. package/dist/composition/Composition.svelte +165 -0
  61. package/dist/composition/Composition.svelte.d.ts +15 -0
  62. package/dist/composition/Formula.svelte +268 -0
  63. package/dist/composition/Formula.svelte.d.ts +19 -0
  64. package/dist/composition/FormulaFilter.svelte +1263 -0
  65. package/dist/composition/FormulaFilter.svelte.d.ts +51 -0
  66. package/dist/composition/PieChart.svelte +324 -0
  67. package/dist/composition/PieChart.svelte.d.ts +37 -0
  68. package/dist/composition/chem-sys.d.ts +8 -0
  69. package/dist/composition/chem-sys.js +85 -0
  70. package/dist/composition/format.d.ts +15 -0
  71. package/dist/composition/format.js +111 -0
  72. package/dist/composition/index.d.ts +21 -0
  73. package/dist/composition/index.js +15 -0
  74. package/dist/composition/parse.d.ts +56 -0
  75. package/dist/composition/parse.js +486 -0
  76. package/dist/constants.d.ts +29 -0
  77. package/dist/constants.js +99 -0
  78. package/dist/controls.d.ts +14 -0
  79. package/dist/controls.js +30 -0
  80. package/dist/convex-hull/ConvexHull.svelte +157 -0
  81. package/dist/convex-hull/ConvexHull.svelte.d.ts +13 -0
  82. package/dist/convex-hull/ConvexHull2D.svelte +827 -0
  83. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +11 -0
  84. package/dist/convex-hull/ConvexHull3D.svelte +1801 -0
  85. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +8 -0
  86. package/dist/convex-hull/ConvexHull4D.svelte +1394 -0
  87. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +8 -0
  88. package/dist/convex-hull/ConvexHullControls.svelte +535 -0
  89. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +48 -0
  90. package/dist/convex-hull/ConvexHullInfoPane.svelte +125 -0
  91. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +20 -0
  92. package/dist/convex-hull/ConvexHullStats.svelte +929 -0
  93. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +17 -0
  94. package/dist/convex-hull/ConvexHullTooltip.svelte +131 -0
  95. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +33 -0
  96. package/dist/convex-hull/GasPressureControls.svelte +247 -0
  97. package/dist/convex-hull/GasPressureControls.svelte.d.ts +11 -0
  98. package/dist/convex-hull/StructurePopup.svelte +151 -0
  99. package/dist/convex-hull/StructurePopup.svelte.d.ts +18 -0
  100. package/dist/convex-hull/TemperatureSlider.svelte +140 -0
  101. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +8 -0
  102. package/dist/convex-hull/barycentric-coords.d.ts +18 -0
  103. package/dist/convex-hull/barycentric-coords.js +182 -0
  104. package/dist/convex-hull/demo-temperature.d.ts +6 -0
  105. package/dist/convex-hull/demo-temperature.js +38 -0
  106. package/dist/convex-hull/gas-thermodynamics.d.ts +16 -0
  107. package/dist/convex-hull/gas-thermodynamics.js +306 -0
  108. package/dist/convex-hull/helpers.d.ts +117 -0
  109. package/dist/convex-hull/helpers.js +718 -0
  110. package/dist/convex-hull/index.d.ts +119 -0
  111. package/dist/convex-hull/index.js +58 -0
  112. package/dist/convex-hull/thermodynamics.d.ts +67 -0
  113. package/dist/convex-hull/thermodynamics.js +1757 -0
  114. package/dist/convex-hull/types.d.ts +162 -0
  115. package/dist/convex-hull/types.js +36 -0
  116. package/dist/coordination/CoordinationBarPlot.svelte +311 -0
  117. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +30 -0
  118. package/dist/coordination/calc-coordination.d.ts +15 -0
  119. package/dist/coordination/calc-coordination.js +63 -0
  120. package/dist/coordination/index.d.ts +8 -0
  121. package/dist/coordination/index.js +7 -0
  122. package/dist/effects.svelte.d.ts +12 -0
  123. package/dist/effects.svelte.js +37 -0
  124. package/dist/element/BohrAtom.svelte.d.ts +20 -0
  125. package/dist/element/ElementHeading.svelte +26 -0
  126. package/dist/element/ElementHeading.svelte.d.ts +8 -0
  127. package/dist/element/ElementPhoto.svelte +57 -0
  128. package/dist/element/ElementPhoto.svelte.d.ts +9 -0
  129. package/dist/element/ElementStats.svelte +80 -0
  130. package/dist/element/ElementStats.svelte.d.ts +8 -0
  131. package/dist/element/ElementTile.svelte +484 -0
  132. package/dist/element/ElementTile.svelte.d.ts +29 -0
  133. package/dist/element/Nucleus.svelte.d.ts +17 -0
  134. package/dist/element/data.d.ts +2 -0
  135. package/dist/element/data.js +2 -0
  136. package/dist/element/index.d.ts +8 -0
  137. package/dist/element/index.js +7 -0
  138. package/dist/element/types.d.ts +57 -0
  139. package/dist/element/types.js +1 -0
  140. package/dist/feedback/ClickFeedback.svelte +58 -0
  141. package/dist/feedback/ClickFeedback.svelte.d.ts +12 -0
  142. package/dist/feedback/DragOverlay.svelte +42 -0
  143. package/dist/feedback/DragOverlay.svelte.d.ts +7 -0
  144. package/dist/feedback/Spinner.svelte.d.ts +7 -0
  145. package/dist/feedback/StatusMessage.svelte.d.ts +9 -0
  146. package/dist/feedback/index.d.ts +4 -0
  147. package/dist/feedback/index.js +4 -0
  148. package/dist/fermi-surface/FermiSlice.svelte +197 -0
  149. package/dist/fermi-surface/FermiSlice.svelte.d.ts +24 -0
  150. package/dist/fermi-surface/FermiSurface.svelte +606 -0
  151. package/dist/fermi-surface/FermiSurface.svelte.d.ts +83 -0
  152. package/dist/fermi-surface/FermiSurfaceControls.svelte +448 -0
  153. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +35 -0
  154. package/dist/fermi-surface/FermiSurfaceScene.svelte +797 -0
  155. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +50 -0
  156. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +85 -0
  157. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +8 -0
  158. package/dist/fermi-surface/compute.d.ts +5 -0
  159. package/dist/fermi-surface/compute.js +538 -0
  160. package/dist/fermi-surface/constants.d.ts +9 -0
  161. package/dist/fermi-surface/constants.js +27 -0
  162. package/dist/fermi-surface/export.d.ts +5 -0
  163. package/dist/fermi-surface/export.js +51 -0
  164. package/dist/fermi-surface/index.d.ts +12 -0
  165. package/dist/fermi-surface/index.js +13 -0
  166. package/dist/fermi-surface/marching-cubes.d.ts +2 -0
  167. package/dist/fermi-surface/marching-cubes.js +2 -0
  168. package/dist/fermi-surface/parse.d.ts +2 -0
  169. package/dist/fermi-surface/parse.js +494 -0
  170. package/dist/fermi-surface/symmetry.d.ts +3 -0
  171. package/dist/fermi-surface/symmetry.js +46 -0
  172. package/dist/fermi-surface/types.d.ts +111 -0
  173. package/dist/fermi-surface/types.js +4 -0
  174. package/dist/heatmap-matrix/HeatmapMatrix.svelte +1547 -0
  175. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
  176. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  177. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
  178. package/dist/heatmap-matrix/index.d.ts +53 -0
  179. package/dist/heatmap-matrix/index.js +100 -0
  180. package/dist/heatmap-matrix/shared.d.ts +2 -0
  181. package/dist/heatmap-matrix/shared.js +4 -0
  182. package/dist/icons.d.ts +569 -0
  183. package/dist/icons.js +648 -0
  184. package/dist/index.d.ts +39 -0
  185. package/dist/index.js +39 -0
  186. package/dist/io/decompress.d.ts +11 -0
  187. package/dist/io/decompress.js +76 -0
  188. package/dist/io/export.d.ts +16 -0
  189. package/dist/io/export.js +338 -0
  190. package/dist/io/fetch.d.ts +5 -0
  191. package/dist/io/fetch.js +43 -0
  192. package/dist/io/file-drop.d.ts +7 -0
  193. package/dist/io/file-drop.js +42 -0
  194. package/dist/io/index.d.ts +7 -0
  195. package/dist/io/index.js +6 -0
  196. package/dist/io/is-binary.d.ts +1 -0
  197. package/dist/io/is-binary.js +20 -0
  198. package/dist/io/types.d.ts +8 -0
  199. package/dist/io/types.js +1 -0
  200. package/dist/io/url-drop.d.ts +2 -0
  201. package/dist/io/url-drop.js +154 -0
  202. package/dist/isosurface/Isosurface.svelte +285 -0
  203. package/dist/isosurface/Isosurface.svelte.d.ts +8 -0
  204. package/dist/isosurface/IsosurfaceControls.svelte +277 -0
  205. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +9 -0
  206. package/dist/isosurface/index.d.ts +5 -0
  207. package/dist/isosurface/index.js +6 -0
  208. package/dist/isosurface/parse.d.ts +6 -0
  209. package/dist/isosurface/parse.js +552 -0
  210. package/dist/isosurface/slice.d.ts +11 -0
  211. package/dist/isosurface/slice.js +141 -0
  212. package/dist/isosurface/types.d.ts +56 -0
  213. package/dist/isosurface/types.js +227 -0
  214. package/dist/keyboard.d.ts +3 -0
  215. package/dist/keyboard.js +23 -0
  216. package/dist/labels.d.ts +53 -0
  217. package/dist/labels.js +278 -0
  218. package/dist/layout/FullscreenToggle.svelte +50 -0
  219. package/dist/layout/FullscreenToggle.svelte.d.ts +7 -0
  220. package/dist/layout/InfoCard.svelte +120 -0
  221. package/dist/layout/InfoCard.svelte.d.ts +21 -0
  222. package/dist/layout/InfoTag.svelte +185 -0
  223. package/dist/layout/InfoTag.svelte.d.ts +19 -0
  224. package/dist/layout/PropertyFilter.svelte +247 -0
  225. package/dist/layout/PropertyFilter.svelte.d.ts +24 -0
  226. package/dist/layout/SettingsSection.svelte +148 -0
  227. package/dist/layout/SettingsSection.svelte.d.ts +17 -0
  228. package/dist/layout/SubpageGrid.svelte +82 -0
  229. package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
  230. package/dist/layout/fullscreen.d.ts +9 -0
  231. package/dist/layout/fullscreen.js +53 -0
  232. package/dist/layout/index.d.ts +10 -0
  233. package/dist/layout/index.js +8 -0
  234. package/dist/layout/json-tree/JsonNode.svelte +548 -0
  235. package/dist/layout/json-tree/JsonNode.svelte.d.ts +11 -0
  236. package/dist/layout/json-tree/JsonTree.svelte +1230 -0
  237. package/dist/layout/json-tree/JsonTree.svelte.d.ts +6 -0
  238. package/dist/layout/json-tree/JsonValue.svelte.d.ts +9 -0
  239. package/dist/layout/json-tree/index.d.ts +3 -0
  240. package/dist/layout/json-tree/index.js +3 -0
  241. package/dist/layout/json-tree/types.d.ts +74 -0
  242. package/dist/layout/json-tree/types.js +2 -0
  243. package/dist/layout/json-tree/utils.d.ts +29 -0
  244. package/dist/layout/json-tree/utils.js +642 -0
  245. package/dist/marching-cubes.d.ts +14 -0
  246. package/dist/marching-cubes.js +535 -0
  247. package/dist/math.d.ts +105 -0
  248. package/dist/math.js +920 -0
  249. package/dist/overlays/ContextMenu.svelte +162 -0
  250. package/dist/overlays/ContextMenu.svelte.d.ts +25 -0
  251. package/dist/overlays/CopyButton.svelte +45 -0
  252. package/dist/overlays/CopyButton.svelte.d.ts +8 -0
  253. package/dist/overlays/DragControlTab.svelte +98 -0
  254. package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
  255. package/dist/overlays/DraggablePane.svelte +487 -0
  256. package/dist/overlays/DraggablePane.svelte.d.ts +36 -0
  257. package/dist/overlays/InfoPaneCards.svelte +149 -0
  258. package/dist/overlays/InfoPaneCards.svelte.d.ts +22 -0
  259. package/dist/overlays/index.d.ts +3 -0
  260. package/dist/overlays/index.js +3 -0
  261. package/dist/periodic-table/PeriodicTable.svelte +480 -0
  262. package/dist/periodic-table/PeriodicTable.svelte.d.ts +55 -0
  263. package/dist/periodic-table/PeriodicTableControls.svelte +557 -0
  264. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +24 -0
  265. package/dist/periodic-table/PropertySelect.svelte +38 -0
  266. package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
  267. package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
  268. package/dist/periodic-table/index.d.ts +10 -0
  269. package/dist/periodic-table/index.js +4 -0
  270. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1092 -0
  271. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +44 -0
  272. package/dist/phase-diagram/PhaseDiagramControls.svelte +444 -0
  273. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +30 -0
  274. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +127 -0
  275. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
  276. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  277. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +19 -0
  278. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  279. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +16 -0
  280. package/dist/phase-diagram/TdbInfoPanel.svelte +203 -0
  281. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +12 -0
  282. package/dist/phase-diagram/build-diagram.d.ts +11 -0
  283. package/dist/phase-diagram/build-diagram.js +160 -0
  284. package/dist/phase-diagram/colors.d.ts +35 -0
  285. package/dist/phase-diagram/colors.js +51 -0
  286. package/dist/phase-diagram/diagram-input.d.ts +29 -0
  287. package/dist/phase-diagram/diagram-input.js +3 -0
  288. package/dist/phase-diagram/index.d.ts +13 -0
  289. package/dist/phase-diagram/index.js +11 -0
  290. package/dist/phase-diagram/parse.d.ts +55 -0
  291. package/dist/phase-diagram/parse.js +273 -0
  292. package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
  293. package/dist/phase-diagram/svg-to-diagram.js +867 -0
  294. package/dist/phase-diagram/types.d.ts +93 -0
  295. package/dist/phase-diagram/types.js +1 -0
  296. package/dist/phase-diagram/utils.d.ts +118 -0
  297. package/dist/phase-diagram/utils.js +600 -0
  298. package/dist/plot/bar/BarPlot.svelte +1755 -0
  299. package/dist/plot/bar/BarPlot.svelte.d.ts +84 -0
  300. package/dist/plot/bar/BarPlotControls.svelte +67 -0
  301. package/dist/plot/bar/BarPlotControls.svelte.d.ts +18 -0
  302. package/dist/plot/bar/SpacegroupBarPlot.svelte +293 -0
  303. package/dist/plot/bar/SpacegroupBarPlot.svelte.d.ts +9 -0
  304. package/dist/plot/bar/data.d.ts +40 -0
  305. package/dist/plot/bar/data.js +154 -0
  306. package/dist/plot/bar/geometry.d.ts +39 -0
  307. package/dist/plot/bar/geometry.js +60 -0
  308. package/dist/plot/bar/index.d.ts +3 -0
  309. package/dist/plot/bar/index.js +3 -0
  310. package/dist/plot/box/BoxPlot.svelte +1462 -0
  311. package/dist/plot/box/BoxPlot.svelte.d.ts +94 -0
  312. package/dist/plot/box/BoxPlotControls.svelte +109 -0
  313. package/dist/plot/box/BoxPlotControls.svelte.d.ts +19 -0
  314. package/dist/plot/box/Violin.svelte +14 -0
  315. package/dist/plot/box/Violin.svelte.d.ts +70 -0
  316. package/dist/plot/box/box-plot.d.ts +55 -0
  317. package/dist/plot/box/box-plot.js +126 -0
  318. package/dist/plot/box/index.d.ts +5 -0
  319. package/dist/plot/box/index.js +5 -0
  320. package/dist/plot/box/kde.d.ts +16 -0
  321. package/dist/plot/box/kde.js +160 -0
  322. package/dist/plot/box/quantile.d.ts +3 -0
  323. package/dist/plot/box/quantile.js +53 -0
  324. package/dist/plot/core/auto-place.d.ts +43 -0
  325. package/dist/plot/core/auto-place.js +122 -0
  326. package/dist/plot/core/axis-utils.d.ts +46 -0
  327. package/dist/plot/core/axis-utils.js +110 -0
  328. package/dist/plot/core/components/AxisLabel.svelte +51 -0
  329. package/dist/plot/core/components/AxisLabel.svelte.d.ts +16 -0
  330. package/dist/plot/core/components/ColorBar.svelte +724 -0
  331. package/dist/plot/core/components/ColorBar.svelte.d.ts +31 -0
  332. package/dist/plot/core/components/ColorScaleSelect.svelte +55 -0
  333. package/dist/plot/core/components/ColorScaleSelect.svelte.d.ts +15 -0
  334. package/dist/plot/core/components/ControlPane.svelte +46 -0
  335. package/dist/plot/core/components/ControlPane.svelte.d.ts +13 -0
  336. package/dist/plot/core/components/FillArea.svelte +234 -0
  337. package/dist/plot/core/components/FillArea.svelte.d.ts +21 -0
  338. package/dist/plot/core/components/InteractiveAxisLabel.svelte +96 -0
  339. package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +14 -0
  340. package/dist/plot/core/components/Line.svelte +101 -0
  341. package/dist/plot/core/components/Line.svelte.d.ts +15 -0
  342. package/dist/plot/core/components/PlotAxis.svelte +171 -0
  343. package/dist/plot/core/components/PlotAxis.svelte.d.ts +25 -0
  344. package/dist/plot/core/components/PlotControls.svelte +525 -0
  345. package/dist/plot/core/components/PlotControls.svelte.d.ts +4 -0
  346. package/dist/plot/core/components/PlotLegend.svelte +580 -0
  347. package/dist/plot/core/components/PlotLegend.svelte.d.ts +30 -0
  348. package/dist/plot/core/components/PlotTooltip.svelte +83 -0
  349. package/dist/plot/core/components/PlotTooltip.svelte.d.ts +25 -0
  350. package/dist/plot/core/components/PortalSelect.svelte +257 -0
  351. package/dist/plot/core/components/PortalSelect.svelte.d.ts +16 -0
  352. package/dist/plot/core/components/ReferenceLine.svelte +204 -0
  353. package/dist/plot/core/components/ReferenceLine.svelte.d.ts +20 -0
  354. package/dist/plot/core/components/ReferenceLine3D.svelte +156 -0
  355. package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +14 -0
  356. package/dist/plot/core/components/ReferencePlane.svelte +175 -0
  357. package/dist/plot/core/components/ReferencePlane.svelte.d.ts +14 -0
  358. package/dist/plot/core/components/ZeroLines.svelte +97 -0
  359. package/dist/plot/core/components/ZeroLines.svelte.d.ts +33 -0
  360. package/dist/plot/core/components/ZoomRect.svelte +23 -0
  361. package/dist/plot/core/components/ZoomRect.svelte.d.ts +8 -0
  362. package/dist/plot/core/components/index.d.ts +17 -0
  363. package/dist/plot/core/components/index.js +17 -0
  364. package/dist/plot/core/data-cleaning.d.ts +107 -0
  365. package/dist/plot/core/data-cleaning.js +853 -0
  366. package/dist/plot/core/data-transform.d.ts +16 -0
  367. package/dist/plot/core/data-transform.js +45 -0
  368. package/dist/plot/core/fill-utils.d.ts +33 -0
  369. package/dist/plot/core/fill-utils.js +388 -0
  370. package/dist/plot/core/hover-lock.svelte.d.ts +14 -0
  371. package/dist/plot/core/hover-lock.svelte.js +45 -0
  372. package/dist/plot/core/index.d.ts +10 -0
  373. package/dist/plot/core/index.js +11 -0
  374. package/dist/plot/core/interactions.d.ts +35 -0
  375. package/dist/plot/core/interactions.js +195 -0
  376. package/dist/plot/core/layout.d.ts +79 -0
  377. package/dist/plot/core/layout.js +281 -0
  378. package/dist/plot/core/reference-line.d.ts +60 -0
  379. package/dist/plot/core/reference-line.js +301 -0
  380. package/dist/plot/core/scales.d.ts +48 -0
  381. package/dist/plot/core/scales.js +480 -0
  382. package/dist/plot/core/svg.d.ts +2 -0
  383. package/dist/plot/core/svg.js +41 -0
  384. package/dist/plot/core/types.d.ts +771 -0
  385. package/dist/plot/core/types.js +99 -0
  386. package/dist/plot/core/utils/label-placement.d.ts +68 -0
  387. package/dist/plot/core/utils/label-placement.js +326 -0
  388. package/dist/plot/core/utils/series-visibility.d.ts +26 -0
  389. package/dist/plot/core/utils/series-visibility.js +112 -0
  390. package/dist/plot/core/utils.d.ts +11 -0
  391. package/dist/plot/core/utils.js +27 -0
  392. package/dist/plot/histogram/Histogram.svelte +1418 -0
  393. package/dist/plot/histogram/Histogram.svelte.d.ts +50 -0
  394. package/dist/plot/histogram/HistogramControls.svelte +212 -0
  395. package/dist/plot/histogram/HistogramControls.svelte.d.ts +22 -0
  396. package/dist/plot/histogram/index.d.ts +2 -0
  397. package/dist/plot/histogram/index.js +2 -0
  398. package/dist/plot/index.d.ts +8 -0
  399. package/dist/plot/index.js +10 -0
  400. package/dist/plot/sankey/Sankey.svelte +700 -0
  401. package/dist/plot/sankey/Sankey.svelte.d.ts +74 -0
  402. package/dist/plot/sankey/SankeyControls.svelte +98 -0
  403. package/dist/plot/sankey/SankeyControls.svelte.d.ts +19 -0
  404. package/dist/plot/sankey/index.d.ts +4 -0
  405. package/dist/plot/sankey/index.js +3 -0
  406. package/dist/plot/sankey/sankey-types.d.ts +42 -0
  407. package/dist/plot/sankey/sankey-types.js +4 -0
  408. package/dist/plot/sankey/sankey.d.ts +52 -0
  409. package/dist/plot/sankey/sankey.js +187 -0
  410. package/dist/plot/scatter/BinnedScatterPlot.svelte +1116 -0
  411. package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +66 -0
  412. package/dist/plot/scatter/ElementScatter.svelte +63 -0
  413. package/dist/plot/scatter/ElementScatter.svelte.d.ts +14 -0
  414. package/dist/plot/scatter/ScatterPlot.svelte +2357 -0
  415. package/dist/plot/scatter/ScatterPlot.svelte.d.ts +96 -0
  416. package/dist/plot/scatter/ScatterPlotControls.svelte +307 -0
  417. package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +17 -0
  418. package/dist/plot/scatter/ScatterPoint.svelte +182 -0
  419. package/dist/plot/scatter/ScatterPoint.svelte.d.ts +22 -0
  420. package/dist/plot/scatter/adaptive-density.d.ts +79 -0
  421. package/dist/plot/scatter/adaptive-density.js +217 -0
  422. package/dist/plot/scatter/binned-scatter-types.d.ts +59 -0
  423. package/dist/plot/scatter/binned-scatter-types.js +1 -0
  424. package/dist/plot/scatter/index.d.ts +7 -0
  425. package/dist/plot/scatter/index.js +5 -0
  426. package/dist/plot/scatter/scatter-data.d.ts +19 -0
  427. package/dist/plot/scatter/scatter-data.js +212 -0
  428. package/dist/plot/scatter-3d/ScatterPlot3D.svelte +531 -0
  429. package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +95 -0
  430. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +438 -0
  431. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +20 -0
  432. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +912 -0
  433. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +74 -0
  434. package/dist/plot/scatter-3d/Surface3D.svelte +197 -0
  435. package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +13 -0
  436. package/dist/plot/scatter-3d/index.d.ts +4 -0
  437. package/dist/plot/scatter-3d/index.js +4 -0
  438. package/dist/plot/sunburst/Sunburst.svelte +1045 -0
  439. package/dist/plot/sunburst/Sunburst.svelte.d.ts +96 -0
  440. package/dist/plot/sunburst/SunburstControls.svelte +200 -0
  441. package/dist/plot/sunburst/SunburstControls.svelte.d.ts +26 -0
  442. package/dist/plot/sunburst/index.d.ts +4 -0
  443. package/dist/plot/sunburst/index.js +4 -0
  444. package/dist/plot/sunburst/render.d.ts +34 -0
  445. package/dist/plot/sunburst/render.js +122 -0
  446. package/dist/plot/sunburst/sunburst.d.ts +62 -0
  447. package/dist/plot/sunburst/sunburst.js +266 -0
  448. package/dist/rdf/RdfPlot.svelte +248 -0
  449. package/dist/rdf/RdfPlot.svelte.d.ts +27 -0
  450. package/dist/rdf/calc-rdf.d.ts +4 -0
  451. package/dist/rdf/calc-rdf.js +98 -0
  452. package/dist/rdf/index.d.ts +23 -0
  453. package/dist/rdf/index.js +2 -0
  454. package/dist/sanitize.d.ts +6 -0
  455. package/dist/sanitize.js +116 -0
  456. package/dist/settings.d.ts +319 -0
  457. package/dist/settings.js +1394 -0
  458. package/dist/spectral/Bands.svelte +1050 -0
  459. package/dist/spectral/Bands.svelte.d.ts +39 -0
  460. package/dist/spectral/BandsAndDos.svelte +134 -0
  461. package/dist/spectral/BandsAndDos.svelte.d.ts +18 -0
  462. package/dist/spectral/BrillouinBandsDos.svelte +264 -0
  463. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +20 -0
  464. package/dist/spectral/Dos.svelte +688 -0
  465. package/dist/spectral/Dos.svelte.d.ts +29 -0
  466. package/dist/spectral/helpers.d.ts +121 -0
  467. package/dist/spectral/helpers.js +1098 -0
  468. package/dist/spectral/index.d.ts +6 -0
  469. package/dist/spectral/index.js +6 -0
  470. package/dist/spectral/types.d.ts +84 -0
  471. package/dist/spectral/types.js +2 -0
  472. package/dist/state.svelte.d.ts +25 -0
  473. package/dist/state.svelte.js +45 -0
  474. package/dist/structure/Arrow.svelte +72 -0
  475. package/dist/structure/Arrow.svelte.d.ts +15 -0
  476. package/dist/structure/AtomLegend.svelte +814 -0
  477. package/dist/structure/AtomLegend.svelte.d.ts +35 -0
  478. package/dist/structure/Bond.svelte +140 -0
  479. package/dist/structure/Bond.svelte.d.ts +9 -0
  480. package/dist/structure/CanvasTooltip.svelte +33 -0
  481. package/dist/structure/CanvasTooltip.svelte.d.ts +12 -0
  482. package/dist/structure/CellSelect.svelte +348 -0
  483. package/dist/structure/CellSelect.svelte.d.ts +13 -0
  484. package/dist/structure/Cylinder.svelte +49 -0
  485. package/dist/structure/Cylinder.svelte.d.ts +13 -0
  486. package/dist/structure/Lattice.svelte +196 -0
  487. package/dist/structure/Lattice.svelte.d.ts +17 -0
  488. package/dist/structure/Structure.svelte +2254 -0
  489. package/dist/structure/Structure.svelte.d.ts +89 -0
  490. package/dist/structure/StructureControls.svelte +1273 -0
  491. package/dist/structure/StructureControls.svelte.d.ts +31 -0
  492. package/dist/structure/StructureExportPane.svelte +252 -0
  493. package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
  494. package/dist/structure/StructureInfoPane.svelte +736 -0
  495. package/dist/structure/StructureInfoPane.svelte.d.ts +19 -0
  496. package/dist/structure/StructureScene.svelte +2256 -0
  497. package/dist/structure/StructureScene.svelte.d.ts +111 -0
  498. package/dist/structure/atom-properties.d.ts +37 -0
  499. package/dist/structure/atom-properties.js +200 -0
  500. package/dist/structure/bond-order-perception.d.ts +13 -0
  501. package/dist/structure/bond-order-perception.js +384 -0
  502. package/dist/structure/bonding.d.ts +69 -0
  503. package/dist/structure/bonding.js +724 -0
  504. package/dist/structure/export.d.ts +20 -0
  505. package/dist/structure/export.js +731 -0
  506. package/dist/structure/index.d.ts +124 -0
  507. package/dist/structure/index.js +167 -0
  508. package/dist/structure/label-placement.d.ts +14 -0
  509. package/dist/structure/label-placement.js +72 -0
  510. package/dist/structure/measure.d.ts +7 -0
  511. package/dist/structure/measure.js +30 -0
  512. package/dist/structure/parse.d.ts +66 -0
  513. package/dist/structure/parse.js +1410 -0
  514. package/dist/structure/partial-occupancy.d.ts +25 -0
  515. package/dist/structure/partial-occupancy.js +99 -0
  516. package/dist/structure/pbc.d.ts +9 -0
  517. package/dist/structure/pbc.js +127 -0
  518. package/dist/structure/supercell.d.ts +8 -0
  519. package/dist/structure/supercell.js +170 -0
  520. package/dist/structure/validation.d.ts +2 -0
  521. package/dist/structure/validation.js +10 -0
  522. package/dist/symmetry/SymmetryStats.svelte +226 -0
  523. package/dist/symmetry/SymmetryStats.svelte.d.ts +21 -0
  524. package/dist/symmetry/WyckoffTable.svelte +120 -0
  525. package/dist/symmetry/WyckoffTable.svelte.d.ts +11 -0
  526. package/dist/symmetry/cell-transform.d.ts +12 -0
  527. package/dist/symmetry/cell-transform.js +91 -0
  528. package/dist/symmetry/index.d.ts +43 -0
  529. package/dist/symmetry/index.js +226 -0
  530. package/dist/symmetry/spacegroups.d.ts +16 -0
  531. package/dist/symmetry/spacegroups.js +429 -0
  532. package/dist/table/HeatmapTable.svelte +1885 -0
  533. package/dist/table/HeatmapTable.svelte.d.ts +49 -0
  534. package/dist/table/ToggleMenu.svelte +385 -0
  535. package/dist/table/ToggleMenu.svelte.d.ts +11 -0
  536. package/dist/table/index.d.ts +72 -0
  537. package/dist/table/index.js +38 -0
  538. package/dist/theme/ThemeControl.svelte +53 -0
  539. package/dist/theme/ThemeControl.svelte.d.ts +9 -0
  540. package/dist/theme/index.d.ts +29 -0
  541. package/dist/theme/index.js +79 -0
  542. package/dist/time.d.ts +4 -0
  543. package/dist/time.js +70 -0
  544. package/dist/tooltip/KCoords.svelte +45 -0
  545. package/dist/tooltip/KCoords.svelte.d.ts +8 -0
  546. package/dist/tooltip/TooltipContent.svelte +58 -0
  547. package/dist/tooltip/TooltipContent.svelte.d.ts +31 -0
  548. package/dist/tooltip/index.d.ts +3 -0
  549. package/dist/tooltip/index.js +2 -0
  550. package/dist/tooltip/types.d.ts +8 -0
  551. package/dist/tooltip/types.js +1 -0
  552. package/dist/trajectory/Trajectory.svelte +1571 -0
  553. package/dist/trajectory/Trajectory.svelte.d.ts +78 -0
  554. package/dist/trajectory/TrajectoryError.svelte +128 -0
  555. package/dist/trajectory/TrajectoryError.svelte.d.ts +13 -0
  556. package/dist/trajectory/TrajectoryExportPane.svelte +358 -0
  557. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +17 -0
  558. package/dist/trajectory/TrajectoryInfoPane.svelte +314 -0
  559. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +17 -0
  560. package/dist/trajectory/constants.d.ts +6 -0
  561. package/dist/trajectory/constants.js +7 -0
  562. package/dist/trajectory/extract.d.ts +5 -0
  563. package/dist/trajectory/extract.js +162 -0
  564. package/dist/trajectory/format-detect.d.ts +10 -0
  565. package/dist/trajectory/format-detect.js +90 -0
  566. package/dist/trajectory/frame-reader.d.ts +17 -0
  567. package/dist/trajectory/frame-reader.js +299 -0
  568. package/dist/trajectory/helpers.d.ts +15 -0
  569. package/dist/trajectory/helpers.js +164 -0
  570. package/dist/trajectory/index.d.ts +63 -0
  571. package/dist/trajectory/index.js +126 -0
  572. package/dist/trajectory/parse/ase.d.ts +2 -0
  573. package/dist/trajectory/parse/ase.js +73 -0
  574. package/dist/trajectory/parse/hdf5.d.ts +2 -0
  575. package/dist/trajectory/parse/hdf5.js +127 -0
  576. package/dist/trajectory/parse/index.d.ts +12 -0
  577. package/dist/trajectory/parse/index.js +306 -0
  578. package/dist/trajectory/parse/lammps.d.ts +5 -0
  579. package/dist/trajectory/parse/lammps.js +179 -0
  580. package/dist/trajectory/parse/vasp.d.ts +2 -0
  581. package/dist/trajectory/parse/vasp.js +87 -0
  582. package/dist/trajectory/parse/xyz.d.ts +26 -0
  583. package/dist/trajectory/parse/xyz.js +123 -0
  584. package/dist/trajectory/plotting.d.ts +28 -0
  585. package/dist/trajectory/plotting.js +423 -0
  586. package/dist/trajectory/types.d.ts +11 -0
  587. package/dist/trajectory/types.js +1 -0
  588. package/dist/utils.d.ts +7 -0
  589. package/dist/utils.js +47 -0
  590. package/dist/xrd/XrdPlot.svelte +616 -0
  591. package/dist/xrd/XrdPlot.svelte.d.ts +28 -0
  592. package/dist/xrd/broadening.d.ts +20 -0
  593. package/dist/xrd/broadening.js +97 -0
  594. package/dist/xrd/calc-xrd.d.ts +37 -0
  595. package/dist/xrd/calc-xrd.js +339 -0
  596. package/dist/xrd/index.d.ts +37 -0
  597. package/dist/xrd/index.js +4 -0
  598. package/dist/xrd/parse.d.ts +13 -0
  599. package/dist/xrd/parse.js +749 -0
  600. package/license +1 -1
  601. package/package.json +237 -1458
  602. package/readme.md +98 -171
  603. package/.vscode/launch.json +0 -13
  604. package/.vscodeignore +0 -7
  605. package/dist/assets/STLExporter-BpTH3YHE.js +0 -8
  606. package/dist/assets/browser-DdDecX_W.js +0 -1
  607. package/dist/assets/export-qgn-H9y6.js +0 -2
  608. package/dist/assets/main-DiKYzti2.css +0 -1
  609. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  610. package/dist/extension.js +0 -31293
  611. package/dist/src/lib/FilePicker.svelte +0 -360
  612. package/dist/src/lib/Icon.svelte +0 -41
  613. package/dist/src/lib/MillerIndexInput.svelte +0 -66
  614. package/dist/src/lib/api/mp.ts +0 -26
  615. package/dist/src/lib/api/optimade.ts +0 -204
  616. package/dist/src/lib/app.css +0 -247
  617. package/dist/src/lib/brillouin/BrillouinZone.svelte +0 -549
  618. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +0 -144
  619. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +0 -146
  620. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  621. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +0 -476
  622. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +0 -92
  623. package/dist/src/lib/brillouin/compute.ts +0 -529
  624. package/dist/src/lib/brillouin/index.ts +0 -8
  625. package/dist/src/lib/brillouin/types.ts +0 -51
  626. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +0 -327
  627. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +0 -846
  628. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +0 -3193
  629. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +0 -94
  630. package/dist/src/lib/chempot-diagram/chempot-worker.ts +0 -11
  631. package/dist/src/lib/chempot-diagram/color.ts +0 -42
  632. package/dist/src/lib/chempot-diagram/compute.ts +0 -1014
  633. package/dist/src/lib/chempot-diagram/index.ts +0 -6
  634. package/dist/src/lib/chempot-diagram/pointer.ts +0 -56
  635. package/dist/src/lib/chempot-diagram/temperature.ts +0 -77
  636. package/dist/src/lib/chempot-diagram/types.ts +0 -130
  637. package/dist/src/lib/colors/index.ts +0 -249
  638. package/dist/src/lib/composition/BarChart.svelte +0 -297
  639. package/dist/src/lib/composition/BubbleChart.svelte +0 -218
  640. package/dist/src/lib/composition/Composition.svelte +0 -165
  641. package/dist/src/lib/composition/Formula.svelte +0 -268
  642. package/dist/src/lib/composition/FormulaFilter.svelte +0 -1257
  643. package/dist/src/lib/composition/PieChart.svelte +0 -323
  644. package/dist/src/lib/composition/format.ts +0 -155
  645. package/dist/src/lib/composition/index.ts +0 -37
  646. package/dist/src/lib/composition/parse.ts +0 -605
  647. package/dist/src/lib/constants.ts +0 -134
  648. package/dist/src/lib/controls.ts +0 -42
  649. package/dist/src/lib/convex-hull/ConvexHull.svelte +0 -157
  650. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +0 -825
  651. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +0 -1801
  652. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +0 -1398
  653. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +0 -535
  654. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +0 -125
  655. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +0 -929
  656. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +0 -131
  657. package/dist/src/lib/convex-hull/GasPressureControls.svelte +0 -247
  658. package/dist/src/lib/convex-hull/StructurePopup.svelte +0 -151
  659. package/dist/src/lib/convex-hull/TemperatureSlider.svelte +0 -140
  660. package/dist/src/lib/convex-hull/barycentric-coords.ts +0 -246
  661. package/dist/src/lib/convex-hull/demo-temperature.ts +0 -63
  662. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +0 -405
  663. package/dist/src/lib/convex-hull/helpers.ts +0 -932
  664. package/dist/src/lib/convex-hull/index.ts +0 -202
  665. package/dist/src/lib/convex-hull/thermodynamics.ts +0 -2192
  666. package/dist/src/lib/convex-hull/types.ts +0 -267
  667. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +0 -311
  668. package/dist/src/lib/coordination/calc-coordination.ts +0 -93
  669. package/dist/src/lib/coordination/index.ts +0 -9
  670. package/dist/src/lib/effects.svelte.ts +0 -48
  671. package/dist/src/lib/element/ElementHeading.svelte +0 -26
  672. package/dist/src/lib/element/ElementPhoto.svelte +0 -57
  673. package/dist/src/lib/element/ElementStats.svelte +0 -80
  674. package/dist/src/lib/element/ElementTile.svelte +0 -484
  675. package/dist/src/lib/element/data.ts +0 -14
  676. package/dist/src/lib/element/index.ts +0 -8
  677. package/dist/src/lib/element/types.ts +0 -62
  678. package/dist/src/lib/feedback/ClickFeedback.svelte +0 -58
  679. package/dist/src/lib/feedback/DragOverlay.svelte +0 -42
  680. package/dist/src/lib/feedback/index.ts +0 -4
  681. package/dist/src/lib/fermi-surface/FermiSlice.svelte +0 -189
  682. package/dist/src/lib/fermi-surface/FermiSurface.svelte +0 -600
  683. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +0 -448
  684. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +0 -794
  685. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  686. package/dist/src/lib/fermi-surface/compute.ts +0 -728
  687. package/dist/src/lib/fermi-surface/constants.ts +0 -32
  688. package/dist/src/lib/fermi-surface/export.ts +0 -64
  689. package/dist/src/lib/fermi-surface/index.ts +0 -14
  690. package/dist/src/lib/fermi-surface/marching-cubes.ts +0 -3
  691. package/dist/src/lib/fermi-surface/parse.ts +0 -574
  692. package/dist/src/lib/fermi-surface/symmetry.ts +0 -56
  693. package/dist/src/lib/fermi-surface/types.ts +0 -159
  694. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +0 -1545
  695. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  696. package/dist/src/lib/heatmap-matrix/index.ts +0 -167
  697. package/dist/src/lib/heatmap-matrix/shared.ts +0 -7
  698. package/dist/src/lib/icons.ts +0 -650
  699. package/dist/src/lib/index.ts +0 -61
  700. package/dist/src/lib/io/decompress.ts +0 -92
  701. package/dist/src/lib/io/export.ts +0 -385
  702. package/dist/src/lib/io/fetch.ts +0 -46
  703. package/dist/src/lib/io/file-drop.ts +0 -51
  704. package/dist/src/lib/io/index.ts +0 -7
  705. package/dist/src/lib/io/is-binary.ts +0 -24
  706. package/dist/src/lib/io/types.ts +0 -8
  707. package/dist/src/lib/io/url-drop.ts +0 -141
  708. package/dist/src/lib/isosurface/Isosurface.svelte +0 -285
  709. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +0 -277
  710. package/dist/src/lib/isosurface/index.ts +0 -7
  711. package/dist/src/lib/isosurface/parse.ts +0 -656
  712. package/dist/src/lib/isosurface/slice.ts +0 -175
  713. package/dist/src/lib/isosurface/types.ts +0 -309
  714. package/dist/src/lib/labels.ts +0 -320
  715. package/dist/src/lib/layout/FullscreenToggle.svelte +0 -50
  716. package/dist/src/lib/layout/InfoCard.svelte +0 -120
  717. package/dist/src/lib/layout/InfoTag.svelte +0 -185
  718. package/dist/src/lib/layout/PropertyFilter.svelte +0 -246
  719. package/dist/src/lib/layout/SettingsSection.svelte +0 -148
  720. package/dist/src/lib/layout/SubpageGrid.svelte +0 -82
  721. package/dist/src/lib/layout/fullscreen.ts +0 -65
  722. package/dist/src/lib/layout/index.ts +0 -11
  723. package/dist/src/lib/layout/json-tree/JsonNode.svelte +0 -548
  724. package/dist/src/lib/layout/json-tree/JsonTree.svelte +0 -1230
  725. package/dist/src/lib/layout/json-tree/index.ts +0 -3
  726. package/dist/src/lib/layout/json-tree/types.ts +0 -126
  727. package/dist/src/lib/layout/json-tree/utils.ts +0 -682
  728. package/dist/src/lib/marching-cubes.ts +0 -614
  729. package/dist/src/lib/math.ts +0 -1081
  730. package/dist/src/lib/overlays/ContextMenu.svelte +0 -162
  731. package/dist/src/lib/overlays/CopyButton.svelte +0 -45
  732. package/dist/src/lib/overlays/DragControlTab.svelte +0 -98
  733. package/dist/src/lib/overlays/DraggablePane.svelte +0 -487
  734. package/dist/src/lib/overlays/InfoPaneCards.svelte +0 -149
  735. package/dist/src/lib/overlays/index.ts +0 -3
  736. package/dist/src/lib/periodic-table/PeriodicTable.svelte +0 -469
  737. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +0 -557
  738. package/dist/src/lib/periodic-table/PropertySelect.svelte +0 -37
  739. package/dist/src/lib/periodic-table/index.ts +0 -12
  740. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  741. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +0 -444
  742. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  743. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +0 -184
  744. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +0 -391
  745. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +0 -203
  746. package/dist/src/lib/phase-diagram/build-diagram.ts +0 -186
  747. package/dist/src/lib/phase-diagram/colors.ts +0 -58
  748. package/dist/src/lib/phase-diagram/diagram-input.ts +0 -40
  749. package/dist/src/lib/phase-diagram/index.ts +0 -13
  750. package/dist/src/lib/phase-diagram/parse.ts +0 -348
  751. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +0 -1023
  752. package/dist/src/lib/phase-diagram/types.ts +0 -144
  753. package/dist/src/lib/phase-diagram/utils.ts +0 -775
  754. package/dist/src/lib/plot/AxisLabel.svelte +0 -51
  755. package/dist/src/lib/plot/BarPlot.svelte +0 -2113
  756. package/dist/src/lib/plot/BarPlotControls.svelte +0 -66
  757. package/dist/src/lib/plot/BinnedScatterPlot.svelte +0 -1114
  758. package/dist/src/lib/plot/ColorBar.svelte +0 -721
  759. package/dist/src/lib/plot/ColorScaleSelect.svelte +0 -54
  760. package/dist/src/lib/plot/ElementScatter.svelte +0 -63
  761. package/dist/src/lib/plot/FillArea.svelte +0 -223
  762. package/dist/src/lib/plot/Histogram.svelte +0 -1558
  763. package/dist/src/lib/plot/HistogramControls.svelte +0 -212
  764. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +0 -96
  765. package/dist/src/lib/plot/Line.svelte +0 -84
  766. package/dist/src/lib/plot/PlotAxis.svelte +0 -169
  767. package/dist/src/lib/plot/PlotControls.svelte +0 -537
  768. package/dist/src/lib/plot/PlotLegend.svelte +0 -569
  769. package/dist/src/lib/plot/PlotTooltip.svelte +0 -67
  770. package/dist/src/lib/plot/PortalSelect.svelte +0 -253
  771. package/dist/src/lib/plot/ReferenceLine.svelte +0 -204
  772. package/dist/src/lib/plot/ReferenceLine3D.svelte +0 -156
  773. package/dist/src/lib/plot/ReferencePlane.svelte +0 -175
  774. package/dist/src/lib/plot/ScatterPlot.svelte +0 -2778
  775. package/dist/src/lib/plot/ScatterPlot3D.svelte +0 -529
  776. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +0 -437
  777. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +0 -912
  778. package/dist/src/lib/plot/ScatterPlotControls.svelte +0 -306
  779. package/dist/src/lib/plot/ScatterPoint.svelte +0 -182
  780. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +0 -293
  781. package/dist/src/lib/plot/Surface3D.svelte +0 -197
  782. package/dist/src/lib/plot/ZeroLines.svelte +0 -97
  783. package/dist/src/lib/plot/ZoomRect.svelte +0 -23
  784. package/dist/src/lib/plot/adaptive-density.ts +0 -316
  785. package/dist/src/lib/plot/auto-place.ts +0 -184
  786. package/dist/src/lib/plot/axis-utils.ts +0 -122
  787. package/dist/src/lib/plot/binned-scatter-types.ts +0 -83
  788. package/dist/src/lib/plot/data-cleaning.ts +0 -1069
  789. package/dist/src/lib/plot/data-transform.ts +0 -69
  790. package/dist/src/lib/plot/defaults.ts +0 -9
  791. package/dist/src/lib/plot/fill-utils.ts +0 -494
  792. package/dist/src/lib/plot/hover-lock.svelte.ts +0 -60
  793. package/dist/src/lib/plot/index.ts +0 -53
  794. package/dist/src/lib/plot/interactions.ts +0 -119
  795. package/dist/src/lib/plot/layout.ts +0 -425
  796. package/dist/src/lib/plot/reference-line.ts +0 -426
  797. package/dist/src/lib/plot/scales.ts +0 -654
  798. package/dist/src/lib/plot/svg.ts +0 -23
  799. package/dist/src/lib/plot/types.ts +0 -1144
  800. package/dist/src/lib/plot/utils/label-placement.ts +0 -541
  801. package/dist/src/lib/plot/utils/series-visibility.ts +0 -140
  802. package/dist/src/lib/plot/utils.ts +0 -11
  803. package/dist/src/lib/rdf/RdfPlot.svelte +0 -247
  804. package/dist/src/lib/rdf/calc-rdf.ts +0 -167
  805. package/dist/src/lib/rdf/index.ts +0 -27
  806. package/dist/src/lib/sanitize.ts +0 -126
  807. package/dist/src/lib/settings.ts +0 -1479
  808. package/dist/src/lib/spectral/Bands.svelte +0 -1040
  809. package/dist/src/lib/spectral/BandsAndDos.svelte +0 -134
  810. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +0 -252
  811. package/dist/src/lib/spectral/Dos.svelte +0 -697
  812. package/dist/src/lib/spectral/helpers.ts +0 -1381
  813. package/dist/src/lib/spectral/index.ts +0 -8
  814. package/dist/src/lib/spectral/types.ts +0 -112
  815. package/dist/src/lib/state.svelte.ts +0 -64
  816. package/dist/src/lib/structure/Arrow.svelte +0 -72
  817. package/dist/src/lib/structure/AtomLegend.svelte +0 -815
  818. package/dist/src/lib/structure/Bond.svelte +0 -140
  819. package/dist/src/lib/structure/CanvasTooltip.svelte +0 -33
  820. package/dist/src/lib/structure/CellSelect.svelte +0 -349
  821. package/dist/src/lib/structure/Cylinder.svelte +0 -45
  822. package/dist/src/lib/structure/Lattice.svelte +0 -196
  823. package/dist/src/lib/structure/Structure.svelte +0 -2248
  824. package/dist/src/lib/structure/StructureControls.svelte +0 -1273
  825. package/dist/src/lib/structure/StructureExportPane.svelte +0 -252
  826. package/dist/src/lib/structure/StructureInfoPane.svelte +0 -737
  827. package/dist/src/lib/structure/StructureScene.svelte +0 -2255
  828. package/dist/src/lib/structure/atom-properties.ts +0 -316
  829. package/dist/src/lib/structure/bond-order-perception.ts +0 -447
  830. package/dist/src/lib/structure/bonding.ts +0 -944
  831. package/dist/src/lib/structure/export.ts +0 -861
  832. package/dist/src/lib/structure/index.ts +0 -291
  833. package/dist/src/lib/structure/label-placement.ts +0 -130
  834. package/dist/src/lib/structure/measure.ts +0 -45
  835. package/dist/src/lib/structure/parse.ts +0 -1705
  836. package/dist/src/lib/structure/partial-occupancy.ts +0 -183
  837. package/dist/src/lib/structure/pbc.ts +0 -164
  838. package/dist/src/lib/structure/supercell.ts +0 -226
  839. package/dist/src/lib/structure/validation.ts +0 -11
  840. package/dist/src/lib/symmetry/SymmetryStats.svelte +0 -226
  841. package/dist/src/lib/symmetry/WyckoffTable.svelte +0 -120
  842. package/dist/src/lib/symmetry/cell-transform.ts +0 -118
  843. package/dist/src/lib/symmetry/index.ts +0 -348
  844. package/dist/src/lib/symmetry/spacegroups.ts +0 -404
  845. package/dist/src/lib/table/HeatmapTable.svelte +0 -1833
  846. package/dist/src/lib/table/ToggleMenu.svelte +0 -385
  847. package/dist/src/lib/table/index.ts +0 -139
  848. package/dist/src/lib/theme/ThemeControl.svelte +0 -53
  849. package/dist/src/lib/theme/index.ts +0 -107
  850. package/dist/src/lib/time.ts +0 -71
  851. package/dist/src/lib/tooltip/TooltipContent.svelte +0 -58
  852. package/dist/src/lib/tooltip/index.ts +0 -2
  853. package/dist/src/lib/tooltip/types.ts +0 -13
  854. package/dist/src/lib/trajectory/Trajectory.svelte +0 -1545
  855. package/dist/src/lib/trajectory/TrajectoryError.svelte +0 -128
  856. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +0 -357
  857. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +0 -313
  858. package/dist/src/lib/trajectory/constants.ts +0 -7
  859. package/dist/src/lib/trajectory/extract.ts +0 -196
  860. package/dist/src/lib/trajectory/format-detect.ts +0 -96
  861. package/dist/src/lib/trajectory/frame-reader.ts +0 -456
  862. package/dist/src/lib/trajectory/helpers.ts +0 -217
  863. package/dist/src/lib/trajectory/index.ts +0 -218
  864. package/dist/src/lib/trajectory/parse/ase.ts +0 -109
  865. package/dist/src/lib/trajectory/parse/hdf5.ts +0 -173
  866. package/dist/src/lib/trajectory/parse/index.ts +0 -411
  867. package/dist/src/lib/trajectory/parse/lammps.ts +0 -215
  868. package/dist/src/lib/trajectory/parse/vasp.ts +0 -102
  869. package/dist/src/lib/trajectory/parse/xyz.ts +0 -143
  870. package/dist/src/lib/trajectory/plotting.ts +0 -599
  871. package/dist/src/lib/trajectory/types.ts +0 -13
  872. package/dist/src/lib/utils.ts +0 -56
  873. package/dist/src/lib/xrd/XrdPlot.svelte +0 -615
  874. package/dist/src/lib/xrd/broadening.ts +0 -130
  875. package/dist/src/lib/xrd/calc-xrd.ts +0 -397
  876. package/dist/src/lib/xrd/index.ts +0 -38
  877. package/dist/src/lib/xrd/parse.ts +0 -858
  878. package/dist/webview.js +0 -29421
  879. package/icon.png +0 -0
  880. package/matterviz-0.3.2.vsix +0 -0
  881. package/matterviz-0.3.4.vsix +0 -0
  882. package/matterviz-0.3.5.vsix +0 -0
  883. package/scripts/sync-config.ts +0 -101
  884. package/src/declarations.d.ts +0 -2
  885. package/src/extension.ts +0 -972
  886. package/src/node-io.ts +0 -65
  887. package/src/types.ts +0 -17
  888. package/src/webview/JsonBrowser.svelte +0 -1079
  889. package/src/webview/PlotPanel.svelte +0 -346
  890. package/src/webview/detect.ts +0 -444
  891. package/src/webview/main.ts +0 -764
  892. package/src/webview/plot-utils.ts +0 -250
  893. package/test-fixtures/all-viz-types.json.gz +0 -0
  894. package/test-fixtures/plot-demo-data.json.gz +0 -0
  895. package/tests/detect.test.ts +0 -604
  896. package/tests/extension.test.ts +0 -2041
  897. package/tests/node-io.test.ts +0 -39
  898. package/tests/plot-utils.test.ts +0 -302
  899. package/tests/vite-plugin-json-gz.test.ts +0 -114
  900. package/tests/vscode-mock.ts +0 -18
  901. package/tests/webview.test.ts +0 -231
  902. package/tsconfig.json +0 -20
  903. package/vite-plugin-json-gz.ts +0 -29
  904. package/vite.config.ts +0 -34
  905. package/vite.extension.config.ts +0 -34
  906. /package/dist/{src/lib/EmptyState.svelte → EmptyState.svelte} +0 -0
  907. /package/dist/{src/lib/chempot-diagram → chempot-diagram}/ChemPotScene3D.svelte +0 -0
  908. /package/dist/{src/lib/colors → colors}/alloy-colors.json +0 -0
  909. /package/dist/{src/lib/colors → colors}/dark-mode-colors.json +0 -0
  910. /package/dist/{src/lib/colors → colors}/jmol-colors.json +0 -0
  911. /package/dist/{src/lib/colors → colors}/muted-colors.json +0 -0
  912. /package/dist/{src/lib/colors → colors}/pastel-colors.json +0 -0
  913. /package/dist/{src/lib/colors → colors}/vesta-colors.json +0 -0
  914. /package/dist/{src/lib/element → element}/BohrAtom.svelte +0 -0
  915. /package/dist/{src/lib/element → element}/Nucleus.svelte +0 -0
  916. /package/dist/{src/lib/element → element}/data.json +0 -0
  917. /package/dist/{src/lib/element → element}/data.json.gz +0 -0
  918. /package/dist/{src/lib/element → element}/data.json.gz.d.ts +0 -0
  919. /package/dist/{src/lib/element → element}/data.schema.json +0 -0
  920. /package/dist/{src/lib/element-image-urls.json → element-image-urls.json} +0 -0
  921. /package/dist/{src/lib/feedback → feedback}/Spinner.svelte +0 -0
  922. /package/dist/{src/lib/feedback → feedback}/StatusMessage.svelte +0 -0
  923. /package/dist/{src/lib/layout → layout}/json-tree/JsonValue.svelte +0 -0
  924. /package/dist/{src/lib/periodic-table → periodic-table}/TableInset.svelte +0 -0
  925. /package/dist/{src/lib/theme → theme}/themes.mjs +0 -0
  926. /package/dist/{src/lib/xrd → xrd}/atomic_scattering_params.json +0 -0
@@ -0,0 +1,84 @@
1
+ import type { D3ColorSchemeName, D3InterpolateName } from '../../colors';
2
+ import type { Point2D } from '../../math';
3
+ import type { AxisLoadError, BarHandlerProps, BarMode, BarSeries, BarStyle, BasePlotProps, DataLoaderFn, InternalPoint, LegendConfig, LineStyle, Orientation, PanConfig, PlotConfig, RefLine, RefLineEvent, ScaleType, UserContentProps } from '..';
4
+ import type { Snippet } from 'svelte';
5
+ import type { HTMLAttributes } from 'svelte/elements';
6
+ import { type TweenOptions } from 'svelte/motion';
7
+ declare function $$render<Metadata extends Record<string, unknown> = Record<string, unknown>>(): {
8
+ props: HTMLAttributes<HTMLDivElement> & BasePlotProps & PlotConfig & {
9
+ series?: BarSeries<Metadata>[];
10
+ orientation?: Orientation;
11
+ mode?: BarMode;
12
+ legend?: LegendConfig | null;
13
+ show_legend?: boolean;
14
+ bar?: BarStyle;
15
+ line?: LineStyle;
16
+ tooltip?: Snippet<[BarHandlerProps<Metadata>]>;
17
+ user_content?: Snippet<[UserContentProps]>;
18
+ header_controls?: Snippet<[{
19
+ height: number;
20
+ width: number;
21
+ fullscreen: boolean;
22
+ }]>;
23
+ controls_extra?: Snippet<[{
24
+ orientation: Orientation;
25
+ mode: BarMode;
26
+ } & Required<PlotConfig>]>;
27
+ change?: (data: BarHandlerProps<Metadata> | null) => void;
28
+ on_bar_click?: (data: BarHandlerProps<Metadata> & {
29
+ event: MouseEvent | KeyboardEvent;
30
+ }) => void;
31
+ on_bar_hover?: (data: (BarHandlerProps<Metadata> & {
32
+ event: MouseEvent | FocusEvent | KeyboardEvent;
33
+ }) | null) => void;
34
+ color_scale?: {
35
+ type?: ScaleType;
36
+ scheme?: D3ColorSchemeName | D3InterpolateName;
37
+ value_range?: [number, number];
38
+ } | D3InterpolateName;
39
+ size_scale?: {
40
+ type?: ScaleType;
41
+ radius_range?: [number, number];
42
+ value_range?: [number, number];
43
+ };
44
+ point_tween?: TweenOptions<Point2D>;
45
+ on_point_click?: (data: (BarHandlerProps<Metadata> & {
46
+ point: InternalPoint<Metadata>;
47
+ }) & {
48
+ event: MouseEvent | KeyboardEvent;
49
+ }) => void;
50
+ on_point_hover?: (data: ((BarHandlerProps<Metadata> & {
51
+ point: InternalPoint<Metadata>;
52
+ }) & {
53
+ event: MouseEvent | FocusEvent | KeyboardEvent;
54
+ }) | null) => void;
55
+ ref_lines?: RefLine[];
56
+ on_ref_line_click?: (event: RefLineEvent) => void;
57
+ on_ref_line_hover?: (event: RefLineEvent | null) => void;
58
+ data_loader?: DataLoaderFn<Metadata, BarSeries<Metadata>>;
59
+ on_axis_change?: (axis: `x` | `x2` | `y` | `y2`, key: string, new_series: BarSeries<Metadata>[]) => void;
60
+ on_error?: (error: AxisLoadError) => void;
61
+ pan?: PanConfig;
62
+ };
63
+ exports: {};
64
+ bindings: "orientation" | "display" | "mode" | "show_controls" | "fullscreen" | "series" | "hovered" | "ref_lines" | "controls_open" | "x_axis" | "y_axis" | "x2_axis" | "y2_axis";
65
+ slots: {};
66
+ events: {};
67
+ };
68
+ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Record<string, unknown>> {
69
+ props(): ReturnType<typeof $$render<Metadata>>['props'];
70
+ events(): ReturnType<typeof $$render<Metadata>>['events'];
71
+ slots(): ReturnType<typeof $$render<Metadata>>['slots'];
72
+ bindings(): "orientation" | "display" | "mode" | "show_controls" | "fullscreen" | "series" | "hovered" | "ref_lines" | "controls_open" | "x_axis" | "y_axis" | "x2_axis" | "y2_axis";
73
+ exports(): {};
74
+ }
75
+ interface $$IsomorphicComponent {
76
+ new <Metadata extends Record<string, unknown> = Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Metadata>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Metadata>['props']>, ReturnType<__sveltets_Render<Metadata>['events']>, ReturnType<__sveltets_Render<Metadata>['slots']>> & {
77
+ $$bindings?: ReturnType<__sveltets_Render<Metadata>['bindings']>;
78
+ } & ReturnType<__sveltets_Render<Metadata>['exports']>;
79
+ <Metadata extends Record<string, unknown> = Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<Metadata>['props']> & {}): ReturnType<__sveltets_Render<Metadata>['exports']>;
80
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
81
+ }
82
+ declare const BarPlot: $$IsomorphicComponent;
83
+ type BarPlot<Metadata extends Record<string, unknown> = Record<string, unknown>> = InstanceType<typeof BarPlot<Metadata>>;
84
+ export default BarPlot;
@@ -0,0 +1,67 @@
1
+ <script lang="ts">
2
+ import { SettingsSection } from '../../layout'
3
+ import type { BarMode, PlotConfig } from '..'
4
+ import { PlotControls } from '..'
5
+ import type { Orientation, PlotControlsProps } from '../core/types'
6
+ import { unique_id } from '../core/utils'
7
+ import type { Snippet } from 'svelte'
8
+
9
+ // Unique ID prefix to avoid conflicts when multiple instances on same page
10
+ const uid = unique_id(`bar-ctrl`)
11
+
12
+ let {
13
+ orientation = $bindable(`vertical`),
14
+ mode = $bindable(`overlay`),
15
+ x_axis = $bindable({}),
16
+ x2_axis = $bindable({}),
17
+ y_axis = $bindable({}),
18
+ y2_axis = $bindable({}),
19
+ display = $bindable({}),
20
+ show_controls = $bindable(false),
21
+ controls_open = $bindable(false),
22
+ children,
23
+ ...rest
24
+ }: Omit<PlotControlsProps, `children` | `post_children`> & {
25
+ orientation?: Orientation
26
+ mode?: BarMode
27
+ show_controls?: boolean
28
+ controls_open?: boolean
29
+ children?: Snippet<
30
+ [{ orientation: Orientation; mode: BarMode } & Required<PlotConfig>]
31
+ >
32
+ } = $props()
33
+ </script>
34
+
35
+ <PlotControls
36
+ bind:show_controls
37
+ bind:controls_open
38
+ bind:x_axis
39
+ bind:x2_axis
40
+ bind:y_axis
41
+ bind:y2_axis
42
+ bind:display
43
+ {...rest}
44
+ >
45
+ {@render children?.({ orientation, mode, x_axis, x2_axis, y_axis, y2_axis, display })}
46
+ <SettingsSection
47
+ title="Layout"
48
+ current_values={{ orientation, mode }}
49
+ style="display: flex; gap: 2ex"
50
+ >
51
+ <label style="flex: 1">
52
+ Orientation:
53
+ <select bind:value={orientation} id="{uid}-orientation">
54
+ <option value="vertical">Vertical</option>
55
+ <option value="horizontal">Horizontal</option>
56
+ </select>
57
+ </label>
58
+ <label style="flex: 1">
59
+ Mode:
60
+ <select bind:value={mode} id="{uid}-mode">
61
+ <option value="overlay">Overlay</option>
62
+ <option value="stacked">Stacked</option>
63
+ <option value="grouped">Grouped (Side-by-Side)</option>
64
+ </select>
65
+ </label>
66
+ </SettingsSection>
67
+ </PlotControls>
@@ -0,0 +1,18 @@
1
+ import type { BarMode, PlotConfig } from '..';
2
+ import type { Orientation, PlotControlsProps } from '../core/types';
3
+ import type { Snippet } from 'svelte';
4
+ type $$ComponentProps = Omit<PlotControlsProps, `children` | `post_children`> & {
5
+ orientation?: Orientation;
6
+ mode?: BarMode;
7
+ show_controls?: boolean;
8
+ controls_open?: boolean;
9
+ children?: Snippet<[
10
+ {
11
+ orientation: Orientation;
12
+ mode: BarMode;
13
+ } & Required<PlotConfig>
14
+ ]>;
15
+ };
16
+ declare const BarPlotControls: import("svelte").Component<$$ComponentProps, {}, "orientation" | "display" | "mode" | "show_controls" | "controls_open" | "x_axis" | "y_axis" | "x2_axis" | "y2_axis">;
17
+ type BarPlotControls = ReturnType<typeof BarPlotControls>;
18
+ export default BarPlotControls;
@@ -0,0 +1,293 @@
1
+ <script lang="ts">
2
+ import { format_num, format_value } from '../../labels'
3
+ import type { BarHandlerProps, BarSeries, TickConfig } from '..'
4
+ import { BarPlot } from '..'
5
+ import type { CrystalSystem } from '../../symmetry'
6
+ import * as symmetry from '../../symmetry'
7
+ import * as spg from '../../symmetry/spacegroups'
8
+ import type { ComponentProps } from 'svelte'
9
+ import { SvelteMap } from 'svelte/reactivity'
10
+
11
+ // Merge tick config with default rotation, preserving user overrides
12
+ const with_rotation = (
13
+ tick: TickConfig | undefined,
14
+ default_rot: number,
15
+ ): TickConfig => ({
16
+ ...tick,
17
+ label: { ...tick?.label, rotation: tick?.label?.rotation ?? default_rot },
18
+ })
19
+
20
+ const MAX_SPACEGROUP = 230
21
+ let {
22
+ data,
23
+ show_counts = true,
24
+ show_legend = false,
25
+ orientation = `vertical`,
26
+ x_axis = {},
27
+ y_axis = {},
28
+ ...rest
29
+ }: ComponentProps<typeof BarPlot> & {
30
+ data: (number | string)[]
31
+ show_counts?: boolean
32
+ } = $props()
33
+
34
+ // Normalize input data to space group numbers
35
+ const normalized_data = $derived(
36
+ data.map(spg.normalize_spacegroup).filter((sg): sg is number => sg !== null),
37
+ )
38
+
39
+ // Compute histogram of space group numbers
40
+ const histogram = $derived.by(() => {
41
+ const hist = new SvelteMap<number, number>()
42
+
43
+ // Count occurrences
44
+ for (const sg of normalized_data) {
45
+ hist.set(sg, (hist.get(sg) ?? 0) + 1)
46
+ }
47
+
48
+ return hist
49
+ })
50
+
51
+ // Group counts by crystal system
52
+ const crystal_system_stats = $derived.by(() => {
53
+ const stats = new SvelteMap<
54
+ CrystalSystem,
55
+ { count: number; spacegroups: number[] }
56
+ >()
57
+
58
+ for (const system of symmetry.CRYSTAL_SYSTEMS) {
59
+ stats.set(system, { count: 0, spacegroups: [] })
60
+ }
61
+
62
+ for (const [sg, count] of histogram) {
63
+ const system = spg.spacegroup_to_crystal_sys(sg)
64
+ if (!system) continue
65
+ const stat = stats.get(system)
66
+ if (!stat) continue
67
+ stat.count += count
68
+ stat.spacegroups.push(sg)
69
+ }
70
+
71
+ return stats
72
+ })
73
+
74
+ // Create sorted list of space groups for x-axis
75
+ const sorted_spacegroups = $derived(
76
+ Array.from(histogram.keys()).sort((a, b) => a - b),
77
+ )
78
+
79
+ // Smart tick selection: thin out ticks for dense data
80
+ const x_axis_ticks = $derived.by(() => {
81
+ const non_zero_count = sorted_spacegroups.filter(
82
+ (sg) => (histogram.get(sg) ?? 0) > 0,
83
+ ).length
84
+
85
+ // If data is dense (>40 space groups with data), show only multiples of 5
86
+ return non_zero_count > 40
87
+ ? sorted_spacegroups.filter((sg) => sg % 5 === 0)
88
+ : sorted_spacegroups
89
+ })
90
+
91
+ // Build BarSeries - one series per crystal system for proper coloring
92
+ const bar_series = $derived.by<BarSeries[]>(() => {
93
+ const series_by_system = new SvelteMap<
94
+ CrystalSystem,
95
+ { x: number[]; y: number[] }
96
+ >()
97
+
98
+ // Group data by crystal system
99
+ for (const sg of sorted_spacegroups) {
100
+ const system = spg.spacegroup_to_crystal_sys(sg)
101
+ if (system) {
102
+ let series = series_by_system.get(system)
103
+ if (!series) {
104
+ series = { x: [], y: [] }
105
+ series_by_system.set(system, series)
106
+ }
107
+ series.x.push(sg)
108
+ series.y.push(histogram.get(sg) ?? 0)
109
+ }
110
+ }
111
+
112
+ // Convert to BarSeries array, maintaining order of crystal systems
113
+ const result: BarSeries[] = []
114
+ for (const system of symmetry.CRYSTAL_SYSTEMS) {
115
+ const system_data = series_by_system.get(system)
116
+ if (system_data) {
117
+ const { x, y } = system_data
118
+ const color = symmetry.CRYSTAL_SYSTEM_COLORS[system]
119
+ result.push({ x, y, color, label: system, bar_width: 0.9, visible: true })
120
+ }
121
+ }
122
+ return result
123
+ })
124
+
125
+ // Always show full space group range (1-230)
126
+ const x_range: [number, number] = [0.5, MAX_SPACEGROUP + 0.5]
127
+
128
+ // Calculate crystal system region boundaries using full theoretical ranges
129
+ const crystal_system_regions = $derived.by(() => {
130
+ const [range_min, range_max] = x_range
131
+
132
+ return symmetry.CRYSTAL_SYSTEMS.map((system) => {
133
+ const [sg_start, sg_end] = symmetry.CRYSTAL_SYSTEM_RANGES[system]
134
+ const stats = crystal_system_stats.get(system)
135
+ const count = stats?.count ?? 0
136
+ const color = symmetry.CRYSTAL_SYSTEM_COLORS[system]
137
+ return { system, sg_start, sg_end, count, color }
138
+ }).filter(
139
+ (region) => region.sg_end >= range_min && region.sg_start <= range_max, // Only visible systems
140
+ )
141
+ })
142
+
143
+ const total_count = $derived(normalized_data.length)
144
+
145
+ // Build axis configurations based on orientation
146
+ const x_axis_config = $derived(
147
+ orientation === `horizontal` ? { ...x_axis, label: x_axis.label ?? `Counts` } : {
148
+ ...x_axis,
149
+ label: x_axis.label ?? `International Spacegroup Number`,
150
+ range: x_range,
151
+ ticks: x_axis_ticks,
152
+ tick: with_rotation(x_axis.tick, 90), // Rotate ticks 90° to avoid overlap
153
+ label_shift: { x: 0, y: 20, ...x_axis.label_shift }, // Move label down for rotated ticks
154
+ },
155
+ )
156
+
157
+ const y_axis_config = $derived(
158
+ orientation === `horizontal`
159
+ ? {
160
+ ...y_axis,
161
+ label: y_axis.label ?? `International Spacegroup Number`,
162
+ range: x_range,
163
+ ticks: x_axis_ticks,
164
+ tick: with_rotation(y_axis.tick, 0),
165
+ }
166
+ : { ...y_axis, label: y_axis.label ?? `Counts` },
167
+ )
168
+ </script>
169
+
170
+ {#snippet tooltip(info: BarHandlerProps)}
171
+ {@const { x: sg, y: count } = info}
172
+ {@const system = spg.spacegroup_to_crystal_sys(sg)}
173
+ Space Group: {format_value(sg, `.0f`)} ({spg.SPACEGROUP_NUM_TO_SYMBOL[sg]})<br />
174
+ {#if system}
175
+ Crystal System: {system}<br />
176
+ {/if}
177
+ Count: {format_value(count, `.0f`)}
178
+ {/snippet}
179
+
180
+ {#snippet user_content({ width, height, x_scale_fn, y_scale_fn, pad }: {
181
+ width: number
182
+ height: number
183
+ x_scale_fn: (x: number) => number
184
+ y_scale_fn: (y: number) => number
185
+ pad: { t: number; b: number; l: number; r: number }
186
+ })}
187
+ <g class="crystal-system-overlays" pointer-events="none">
188
+ {#each crystal_system_regions as region (region.system)}
189
+ {#if orientation === `vertical`}
190
+ {@const x_start = x_scale_fn(region.sg_start - 0.5)}
191
+ {@const x_end = x_scale_fn(region.sg_end + 0.5)}
192
+ {@const x_center = (x_start + x_end) / 2}
193
+ {@const rect_width = x_end - x_start}
194
+ <!-- Background colored rectangle (vertical mode) -->
195
+ <rect
196
+ x={x_start}
197
+ y={pad.t}
198
+ width={rect_width}
199
+ height={height - pad.t - pad.b}
200
+ fill={region.color}
201
+ opacity="0.15"
202
+ stroke={region.color}
203
+ stroke-width="1"
204
+ stroke-opacity="0.3"
205
+ />
206
+ <!-- Crystal system label (rotated 90 degrees) at top edge -->
207
+ <text
208
+ x={x_center}
209
+ y={pad.t + 15}
210
+ text-anchor="start"
211
+ font-size="14"
212
+ fill="var(--text-color, black)"
213
+ opacity="0.6"
214
+ transform="rotate(90, {x_center}, {pad.t + 15})"
215
+ >
216
+ {region.system}
217
+ </text>
218
+ <!-- Count annotation at top -->
219
+ {#if show_counts && total_count > 0}
220
+ {@const y_offset = region.system === `triclinic` ? -20 : -5}
221
+ <text
222
+ x={x_center}
223
+ y={pad.t + y_offset}
224
+ text-anchor="middle"
225
+ font-size="12"
226
+ fill="var(--text-color, black)"
227
+ >
228
+ {format_num(region.count, `,~`)} ({
229
+ format_num(region.count / total_count, `.1~%`)
230
+ })
231
+ </text>
232
+ {/if}
233
+ {:else}
234
+ {@const y_start = y_scale_fn(region.sg_end + 0.5)}
235
+ {@const y_end = y_scale_fn(region.sg_start - 0.5)}
236
+ {@const y_center = (y_start + y_end) / 2}
237
+ {@const rect_height = y_end - y_start}
238
+ <!-- Background colored rectangle (horizontal mode) -->
239
+ <rect
240
+ x={pad.l}
241
+ y={y_start}
242
+ width={width - pad.l - pad.r}
243
+ height={rect_height}
244
+ fill={region.color}
245
+ opacity="0.15"
246
+ stroke={region.color}
247
+ stroke-width="1"
248
+ stroke-opacity="0.3"
249
+ />
250
+ <!-- Crystal system label (horizontal) at left edge -->
251
+ <text
252
+ x={width - pad.r - 8}
253
+ y={y_center}
254
+ text-anchor="end"
255
+ dominant-baseline="central"
256
+ font-size="14"
257
+ fill="var(--text-color, black)"
258
+ opacity="0.6"
259
+ >
260
+ {region.system}
261
+ </text>
262
+ <!-- Count annotation at right -->
263
+ {#if show_counts && total_count > 0}
264
+ <text
265
+ x={width - pad.r + 5}
266
+ y={y_center}
267
+ text-anchor="start"
268
+ dominant-baseline="central"
269
+ font-size="12"
270
+ fill="var(--text-color, black)"
271
+ >
272
+ {format_num(region.count, `,~`)} ({
273
+ format_num(region.count / total_count, `.1~%`)
274
+ })
275
+ </text>
276
+ {/if}
277
+ {/if}
278
+ {/each}
279
+ </g>
280
+ {/snippet}
281
+
282
+ <BarPlot
283
+ {...rest}
284
+ series={bar_series}
285
+ {orientation}
286
+ mode="overlay"
287
+ x_axis={x_axis_config}
288
+ y_axis={y_axis_config}
289
+ {show_legend}
290
+ show_controls={false}
291
+ {tooltip}
292
+ {user_content}
293
+ />
@@ -0,0 +1,9 @@
1
+ import { BarPlot } from '..';
2
+ import type { ComponentProps } from 'svelte';
3
+ type $$ComponentProps = ComponentProps<typeof BarPlot> & {
4
+ data: (number | string)[];
5
+ show_counts?: boolean;
6
+ };
7
+ declare const SpacegroupBarPlot: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type SpacegroupBarPlot = ReturnType<typeof SpacegroupBarPlot>;
9
+ export default SpacegroupBarPlot;
@@ -0,0 +1,40 @@
1
+ import type { BarMode, BarSeries, Orientation, ScaleType } from '../core/types';
2
+ export type NumericBarSeries<Metadata = Record<string, unknown>> = Omit<BarSeries<Metadata>, `x`> & {
3
+ x: readonly number[];
4
+ };
5
+ export declare function normalize_categorical<Metadata = Record<string, unknown>>(series: readonly BarSeries<Metadata>[], explicit_categories?: readonly string[]): {
6
+ category_list: string[];
7
+ internal_series: NumericBarSeries<Metadata>[];
8
+ };
9
+ export interface BarAutoRangeOpts<Metadata = Record<string, unknown>> {
10
+ visible_series: readonly NumericBarSeries<Metadata>[];
11
+ y1_series: readonly NumericBarSeries<Metadata>[];
12
+ y2_series: readonly NumericBarSeries<Metadata>[];
13
+ x2_series: readonly NumericBarSeries<Metadata>[];
14
+ mode: BarMode;
15
+ orientation: Orientation;
16
+ range_padding: number;
17
+ category_count: number;
18
+ x_range: [number | null, number | null];
19
+ x_scale_type: ScaleType;
20
+ x_is_time: boolean;
21
+ x2_range: [number | null, number | null];
22
+ x2_scale_type: ScaleType;
23
+ x2_is_time: boolean;
24
+ y_range: [number | null, number | null];
25
+ y_scale_type: ScaleType;
26
+ y2_range: [number | null, number | null];
27
+ y2_scale_type: ScaleType;
28
+ }
29
+ export declare function compute_bar_auto_ranges<Metadata = Record<string, unknown>>(opts: BarAutoRangeOpts<Metadata>): {
30
+ x: number[];
31
+ x2: number[];
32
+ y: number[];
33
+ y2: number[];
34
+ };
35
+ export declare function compute_stacked_offsets<Metadata = Record<string, unknown>>(internal_series: readonly NumericBarSeries<Metadata>[], mode: BarMode): number[][];
36
+ export interface GroupInfo {
37
+ bar_series_count: number;
38
+ bar_series_indices: number[];
39
+ }
40
+ export declare function compute_group_info<Metadata = Record<string, unknown>>(internal_series: readonly NumericBarSeries<Metadata>[], mode: BarMode): GroupInfo;
@@ -0,0 +1,154 @@
1
+ // Pure data-shaping logic for BarPlot: categorical x-value normalization,
2
+ // auto-range computation (incl. stacked totals + zero-clamping), stacked-bar
3
+ // offsets and grouped-bar layout info. Extracted from BarPlot.svelte so the
4
+ // math is unit-testable without mounting the component.
5
+ import { get_nice_data_range } from '../core/scales';
6
+ import { get_scale_type_name } from '../core/types';
7
+ // Map string x values (categories) to integer indices shared across all series.
8
+ // Numeric-only input is passed through unchanged (same array identity).
9
+ export function normalize_categorical(series, explicit_categories) {
10
+ const is_categorical = series.some((srs) => srs.x.some((val) => typeof val === `string`));
11
+ const category_list = !is_categorical
12
+ ? []
13
+ : explicit_categories?.length
14
+ ? [...explicit_categories]
15
+ : [...new Set(series.flatMap((srs) => srs.x.map(String)))];
16
+ if (category_list.length === 0) {
17
+ // safe: when no categories were found, all x values are numeric
18
+ const internal_series = series;
19
+ return { category_list, internal_series };
20
+ }
21
+ const category_indices = category_list.map((_, idx) => idx);
22
+ const internal_series = series.map((srs) => {
23
+ const orig_map = new Map(srs.x.map((val, idx) => [String(val), idx]));
24
+ if (orig_map.size < srs.x.length) {
25
+ console.warn(`BarPlot: series "${srs.label ?? `?`}" has duplicate x values — last occurrence wins`);
26
+ }
27
+ // Resolve original index for each category (undefined if series lacks it)
28
+ const orig_indices = category_list.map((cat) => orig_map.get(cat));
29
+ const remap = (arr, fallback) => orig_indices.map((oi) => (oi != null ? (arr?.[oi] ?? fallback) : fallback));
30
+ // Reorder a per-point prop that may be a single value (broadcast, left as-is) or an
31
+ // array (must follow the category reordering, else point styles misalign with bars)
32
+ const remap_per_point = (prop) => Array.isArray(prop)
33
+ ? orig_indices.map((oi) => (oi != null ? prop[oi] : undefined))
34
+ : prop;
35
+ const bw_arr = Array.isArray(srs.bar_width) ? srs.bar_width : null;
36
+ const meta_arr = Array.isArray(srs.metadata) ? srs.metadata : null;
37
+ return {
38
+ ...srs,
39
+ x: category_indices,
40
+ y: remap(srs.y, srs.render_mode === `line` ? NaN : 0),
41
+ labels: remap(srs.labels, null),
42
+ metadata: orig_indices.map((oi) => oi != null ? (meta_arr ? meta_arr[oi] : srs.metadata) : undefined),
43
+ point_style: remap_per_point(srs.point_style),
44
+ point_hover: remap_per_point(srs.point_hover),
45
+ point_label: remap_per_point(srs.point_label),
46
+ point_offset: remap_per_point(srs.point_offset),
47
+ ...(bw_arr ? { bar_width: remap(bw_arr, 0.5) } : {}),
48
+ ...(srs.color_values ? { color_values: remap(srs.color_values, null) } : {}),
49
+ ...(srs.size_values ? { size_values: remap(srs.size_values, null) } : {}),
50
+ };
51
+ });
52
+ return { category_list, internal_series };
53
+ }
54
+ // Compute data-driven axis ranges for all four axes. In stacked mode the value
55
+ // range covers per-x stacked totals (positive and negative stacks separately);
56
+ // for linear/arcsinh scales the value axis is clamped to include 0 when all
57
+ // values share one sign and no explicit range is set.
58
+ export function compute_bar_auto_ranges(opts) {
59
+ const { visible_series, mode, orientation, range_padding, category_count } = opts;
60
+ const calc_y_range = (series_list, y_limit, scale_type) => {
61
+ let points = series_list.flatMap((srs) => srs.x.map((x_val, idx) => ({ x: x_val, y: srs.y[idx] })));
62
+ // In stacked mode, calculate stacked totals for accurate range (only for bars on the same axis)
63
+ if (mode === `stacked`) {
64
+ const stacked_totals = new Map();
65
+ // Only include visible bar series (not lines) in stacking
66
+ series_list
67
+ .filter((srs) => srs.render_mode !== `line`)
68
+ .forEach((srs) => srs.x.forEach((x_val, idx) => {
69
+ const y_val = srs.y[idx] ?? 0;
70
+ const totals = stacked_totals.get(x_val) ?? { pos: 0, neg: 0 };
71
+ if (y_val >= 0)
72
+ totals.pos += y_val;
73
+ else
74
+ totals.neg += y_val;
75
+ stacked_totals.set(x_val, totals);
76
+ }));
77
+ // Replace points with stacked totals + line series (which don't stack)
78
+ points = [
79
+ ...Array.from(stacked_totals).flatMap(([x_val, { pos, neg }]) => [
80
+ ...(pos > 0 ? [{ x: x_val, y: pos }] : []),
81
+ ...(neg < 0 ? [{ x: x_val, y: neg }] : []),
82
+ ]),
83
+ ...series_list
84
+ .filter((srs) => srs.render_mode === `line`)
85
+ .flatMap((srs) => srs.x.map((x_val, idx) => ({ x: x_val, y: srs.y[idx] }))),
86
+ ];
87
+ }
88
+ if (points.length === 0)
89
+ return [0, 1];
90
+ let computed_y_range = get_nice_data_range(points, (pt) => pt.y, y_limit, scale_type, range_padding, false);
91
+ // Bar value axes include 0 when all values share one sign - unless an explicit
92
+ // range is set or the scale is log (where 0 is invalid)
93
+ const type_name = get_scale_type_name(scale_type);
94
+ if ((type_name === `linear` || type_name === `arcsinh`) &&
95
+ y_limit[0] == null &&
96
+ y_limit[1] == null) {
97
+ const has_negative = points.some((pt) => pt.y < 0);
98
+ const has_positive = points.some((pt) => pt.y > 0);
99
+ if (has_positive && !has_negative)
100
+ computed_y_range = [0, computed_y_range[1]];
101
+ else if (has_negative && !has_positive)
102
+ computed_y_range = [computed_y_range[0], 0];
103
+ }
104
+ return computed_y_range;
105
+ };
106
+ const calc_x_range = (series_list, limit, scale_type, is_time) => {
107
+ const points = series_list.flatMap((srs) => srs.x.map((x_val) => ({ x: x_val, y: 0 })));
108
+ if (points.length === 0)
109
+ return [0, 1];
110
+ return get_nice_data_range(points, (pt) => pt.x, limit, scale_type, range_padding, is_time);
111
+ };
112
+ // Categorical x axes use a fixed range centered on integer indices
113
+ const x_auto_range = category_count > 0
114
+ ? [-0.5, category_count - 0.5]
115
+ : calc_x_range(visible_series.filter((srs) => (srs.x_axis ?? `x1`) === `x1`), opts.x_range, opts.x_scale_type, opts.x_is_time);
116
+ const x2_auto_range = calc_x_range(opts.x2_series, opts.x2_range, opts.x2_scale_type, opts.x2_is_time);
117
+ const y1_range = calc_y_range(opts.y1_series, opts.y_range, opts.y_scale_type);
118
+ const y2_auto_range = calc_y_range(opts.y2_series, opts.y2_range, opts.y2_scale_type);
119
+ // Map data ranges to axis ranges depending on orientation
120
+ return orientation === `horizontal`
121
+ ? { x: y1_range, x2: x2_auto_range, y: x_auto_range, y2: y2_auto_range }
122
+ : { x: x_auto_range, x2: x2_auto_range, y: y1_range, y2: y2_auto_range };
123
+ }
124
+ // Stack offsets indexed by [original series idx][bar idx] (only bar series in
125
+ // stacked mode contribute; hidden and line series get all-zero rows).
126
+ export function compute_stacked_offsets(internal_series, mode) {
127
+ if (mode !== `stacked`)
128
+ return [];
129
+ const offsets = internal_series.map((srs) => Array.from(srs.x, () => 0));
130
+ // Cumulative totals keyed by axis/sign/x value so series with misaligned x grids
131
+ // stack on the correct baseline (matching stacked totals in compute_bar_auto_ranges)
132
+ const acc = new Map();
133
+ internal_series.forEach((srs, series_idx) => {
134
+ if (!(srs?.visible ?? true) || srs.render_mode === `line`)
135
+ return;
136
+ srs.x.forEach((x_val, bar_idx) => {
137
+ const y_val = srs.y[bar_idx] ?? 0;
138
+ const key = `${srs.y_axis === `y2` ? `y2` : `y1`}:${y_val >= 0 ? `+` : `-`}:${x_val}`;
139
+ offsets[series_idx][bar_idx] = acc.get(key) ?? 0;
140
+ acc.set(key, (acc.get(key) ?? 0) + y_val);
141
+ });
142
+ });
143
+ return offsets;
144
+ }
145
+ // Group positions for grouped mode (side-by-side bars). Indices are original
146
+ // series indices so hidden/line series don't shift visible bars' slots.
147
+ export function compute_group_info(internal_series, mode) {
148
+ if (mode !== `grouped`)
149
+ return { bar_series_count: 0, bar_series_indices: [] };
150
+ const bar_series_indices = internal_series
151
+ .map((srs, idx) => ((srs?.visible ?? true) && srs.render_mode !== `line` ? idx : -1))
152
+ .filter((idx) => idx >= 0);
153
+ return { bar_series_count: bar_series_indices.length, bar_series_indices };
154
+ }