matterviz 0.3.4 → 0.3.6

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 (852) hide show
  1. package/.vscode/launch.json +13 -0
  2. package/.vscodeignore +7 -0
  3. package/dist/assets/STLExporter-BpTH3YHE.js +8 -0
  4. package/dist/assets/browser-DdDecX_W.js +1 -0
  5. package/dist/assets/export-qgn-H9y6.js +2 -0
  6. package/dist/assets/main-DiKYzti2.css +1 -0
  7. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  8. package/dist/extension.js +31293 -0
  9. package/dist/src/lib/FilePicker.svelte +360 -0
  10. package/dist/src/lib/MillerIndexInput.svelte +66 -0
  11. package/dist/src/lib/api/mp.ts +26 -0
  12. package/dist/src/lib/api/optimade.ts +204 -0
  13. package/dist/src/lib/app.css +247 -0
  14. package/dist/src/lib/brillouin/BrillouinZone.svelte +549 -0
  15. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +144 -0
  16. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +146 -0
  17. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  18. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +476 -0
  19. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +92 -0
  20. package/dist/src/lib/brillouin/compute.ts +529 -0
  21. package/dist/src/lib/brillouin/index.ts +8 -0
  22. package/dist/src/lib/brillouin/types.ts +51 -0
  23. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +327 -0
  24. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
  25. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
  26. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +94 -0
  27. package/dist/src/lib/chempot-diagram/chempot-worker.ts +11 -0
  28. package/dist/src/lib/chempot-diagram/color.ts +42 -0
  29. package/dist/src/lib/chempot-diagram/compute.ts +1014 -0
  30. package/dist/src/lib/chempot-diagram/index.ts +6 -0
  31. package/dist/src/lib/chempot-diagram/pointer.ts +56 -0
  32. package/dist/src/lib/chempot-diagram/temperature.ts +77 -0
  33. package/dist/src/lib/chempot-diagram/types.ts +130 -0
  34. package/dist/src/lib/colors/index.ts +249 -0
  35. package/dist/src/lib/composition/BarChart.svelte +297 -0
  36. package/dist/src/lib/composition/BubbleChart.svelte +218 -0
  37. package/dist/src/lib/composition/Composition.svelte +165 -0
  38. package/dist/src/lib/composition/Formula.svelte +268 -0
  39. package/dist/src/lib/composition/FormulaFilter.svelte +1257 -0
  40. package/dist/src/lib/composition/PieChart.svelte +323 -0
  41. package/dist/src/lib/composition/format.ts +155 -0
  42. package/dist/src/lib/composition/index.ts +37 -0
  43. package/dist/src/lib/composition/parse.ts +605 -0
  44. package/dist/src/lib/constants.ts +134 -0
  45. package/dist/src/lib/controls.ts +42 -0
  46. package/dist/src/lib/convex-hull/ConvexHull.svelte +157 -0
  47. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +825 -0
  48. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +1801 -0
  49. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +1398 -0
  50. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +535 -0
  51. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +125 -0
  52. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +929 -0
  53. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +131 -0
  54. package/dist/src/lib/convex-hull/GasPressureControls.svelte +247 -0
  55. package/dist/src/lib/convex-hull/StructurePopup.svelte +151 -0
  56. package/dist/src/lib/convex-hull/TemperatureSlider.svelte +140 -0
  57. package/dist/src/lib/convex-hull/barycentric-coords.ts +246 -0
  58. package/dist/src/lib/convex-hull/demo-temperature.ts +63 -0
  59. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +405 -0
  60. package/dist/src/lib/convex-hull/helpers.ts +932 -0
  61. package/dist/src/lib/convex-hull/index.ts +202 -0
  62. package/dist/src/lib/convex-hull/thermodynamics.ts +2192 -0
  63. package/dist/src/lib/convex-hull/types.ts +267 -0
  64. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +311 -0
  65. package/dist/src/lib/coordination/calc-coordination.ts +93 -0
  66. package/dist/src/lib/coordination/index.ts +9 -0
  67. package/dist/src/lib/effects.svelte.ts +48 -0
  68. package/dist/src/lib/element/BohrAtom.svelte +147 -0
  69. package/dist/src/lib/element/ElementHeading.svelte +26 -0
  70. package/dist/src/lib/element/ElementPhoto.svelte +57 -0
  71. package/dist/src/lib/element/ElementStats.svelte +80 -0
  72. package/dist/src/lib/element/ElementTile.svelte +484 -0
  73. package/dist/src/lib/element/data.json.gz.d.ts +4 -0
  74. package/dist/src/lib/element/data.ts +14 -0
  75. package/dist/src/lib/element/index.ts +8 -0
  76. package/dist/src/lib/element/types.ts +62 -0
  77. package/dist/src/lib/feedback/ClickFeedback.svelte +58 -0
  78. package/dist/src/lib/feedback/DragOverlay.svelte +42 -0
  79. package/dist/src/lib/feedback/index.ts +4 -0
  80. package/dist/src/lib/fermi-surface/FermiSlice.svelte +189 -0
  81. package/dist/src/lib/fermi-surface/FermiSurface.svelte +600 -0
  82. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +448 -0
  83. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +794 -0
  84. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
  85. package/dist/src/lib/fermi-surface/compute.ts +728 -0
  86. package/dist/src/lib/fermi-surface/constants.ts +32 -0
  87. package/dist/src/lib/fermi-surface/export.ts +64 -0
  88. package/dist/src/lib/fermi-surface/index.ts +14 -0
  89. package/dist/src/lib/fermi-surface/marching-cubes.ts +3 -0
  90. package/dist/src/lib/fermi-surface/parse.ts +574 -0
  91. package/dist/src/lib/fermi-surface/symmetry.ts +56 -0
  92. package/dist/src/lib/fermi-surface/types.ts +159 -0
  93. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
  94. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  95. package/dist/src/lib/heatmap-matrix/index.ts +167 -0
  96. package/dist/src/lib/heatmap-matrix/shared.ts +7 -0
  97. package/dist/src/lib/icons.ts +650 -0
  98. package/dist/src/lib/index.ts +61 -0
  99. package/dist/src/lib/io/decompress.ts +92 -0
  100. package/dist/src/lib/io/export.ts +385 -0
  101. package/dist/src/lib/io/fetch.ts +46 -0
  102. package/dist/src/lib/io/file-drop.ts +51 -0
  103. package/dist/src/lib/io/index.ts +7 -0
  104. package/dist/src/lib/io/is-binary.ts +24 -0
  105. package/dist/src/lib/io/types.ts +8 -0
  106. package/dist/src/lib/io/url-drop.ts +141 -0
  107. package/dist/src/lib/isosurface/Isosurface.svelte +285 -0
  108. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +277 -0
  109. package/dist/src/lib/isosurface/index.ts +7 -0
  110. package/dist/src/lib/isosurface/parse.ts +656 -0
  111. package/dist/src/lib/isosurface/slice.ts +175 -0
  112. package/dist/src/lib/isosurface/types.ts +309 -0
  113. package/dist/src/lib/labels.ts +320 -0
  114. package/dist/src/lib/layout/FullscreenToggle.svelte +50 -0
  115. package/dist/src/lib/layout/InfoCard.svelte +120 -0
  116. package/dist/src/lib/layout/InfoTag.svelte +185 -0
  117. package/dist/src/lib/layout/PropertyFilter.svelte +246 -0
  118. package/dist/src/lib/layout/SettingsSection.svelte +148 -0
  119. package/dist/src/lib/layout/SubpageGrid.svelte +82 -0
  120. package/dist/src/lib/layout/fullscreen.ts +65 -0
  121. package/dist/src/lib/layout/index.ts +11 -0
  122. package/dist/src/lib/layout/json-tree/JsonNode.svelte +548 -0
  123. package/dist/src/lib/layout/json-tree/JsonTree.svelte +1230 -0
  124. package/dist/src/lib/layout/json-tree/JsonValue.svelte +334 -0
  125. package/dist/src/lib/layout/json-tree/index.ts +3 -0
  126. package/dist/src/lib/layout/json-tree/types.ts +126 -0
  127. package/dist/src/lib/layout/json-tree/utils.ts +682 -0
  128. package/dist/src/lib/marching-cubes.ts +614 -0
  129. package/dist/src/lib/math.ts +1081 -0
  130. package/dist/src/lib/overlays/ContextMenu.svelte +162 -0
  131. package/dist/src/lib/overlays/CopyButton.svelte +45 -0
  132. package/dist/src/lib/overlays/DragControlTab.svelte +98 -0
  133. package/dist/src/lib/overlays/DraggablePane.svelte +487 -0
  134. package/dist/src/lib/overlays/InfoPaneCards.svelte +149 -0
  135. package/dist/src/lib/overlays/index.ts +3 -0
  136. package/dist/src/lib/periodic-table/PeriodicTable.svelte +469 -0
  137. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +557 -0
  138. package/dist/src/lib/periodic-table/PropertySelect.svelte +37 -0
  139. package/dist/src/lib/periodic-table/index.ts +12 -0
  140. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
  141. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +444 -0
  142. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
  143. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  144. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  145. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +203 -0
  146. package/dist/src/lib/phase-diagram/build-diagram.ts +186 -0
  147. package/dist/src/lib/phase-diagram/colors.ts +58 -0
  148. package/dist/src/lib/phase-diagram/diagram-input.ts +40 -0
  149. package/dist/src/lib/phase-diagram/index.ts +13 -0
  150. package/dist/src/lib/phase-diagram/parse.ts +348 -0
  151. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +1023 -0
  152. package/dist/src/lib/phase-diagram/types.ts +144 -0
  153. package/dist/src/lib/phase-diagram/utils.ts +775 -0
  154. package/dist/src/lib/plot/AxisLabel.svelte +51 -0
  155. package/dist/src/lib/plot/BarPlot.svelte +2113 -0
  156. package/dist/src/lib/plot/BarPlotControls.svelte +66 -0
  157. package/dist/src/lib/plot/BinnedScatterPlot.svelte +1114 -0
  158. package/dist/src/lib/plot/ColorBar.svelte +721 -0
  159. package/dist/src/lib/plot/ColorScaleSelect.svelte +54 -0
  160. package/dist/src/lib/plot/ElementScatter.svelte +63 -0
  161. package/dist/src/lib/plot/FillArea.svelte +223 -0
  162. package/dist/src/lib/plot/Histogram.svelte +1558 -0
  163. package/dist/src/lib/plot/HistogramControls.svelte +212 -0
  164. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +96 -0
  165. package/dist/src/lib/plot/Line.svelte +84 -0
  166. package/dist/src/lib/plot/PlotAxis.svelte +169 -0
  167. package/dist/src/lib/plot/PlotControls.svelte +537 -0
  168. package/dist/src/lib/plot/PlotLegend.svelte +569 -0
  169. package/dist/src/lib/plot/PlotTooltip.svelte +67 -0
  170. package/dist/src/lib/plot/PortalSelect.svelte +253 -0
  171. package/dist/src/lib/plot/ReferenceLine3D.svelte +156 -0
  172. package/dist/src/lib/plot/ReferencePlane.svelte +175 -0
  173. package/dist/src/lib/plot/ScatterPlot.svelte +2778 -0
  174. package/dist/src/lib/plot/ScatterPlot3D.svelte +529 -0
  175. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +437 -0
  176. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +912 -0
  177. package/dist/src/lib/plot/ScatterPlotControls.svelte +306 -0
  178. package/dist/src/lib/plot/ScatterPoint.svelte +182 -0
  179. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +293 -0
  180. package/dist/src/lib/plot/Surface3D.svelte +197 -0
  181. package/dist/src/lib/plot/ZeroLines.svelte +97 -0
  182. package/dist/src/lib/plot/ZoomRect.svelte +23 -0
  183. package/dist/src/lib/plot/adaptive-density.ts +316 -0
  184. package/dist/src/lib/plot/auto-place.ts +184 -0
  185. package/dist/src/lib/plot/axis-utils.ts +122 -0
  186. package/dist/src/lib/plot/binned-scatter-types.ts +83 -0
  187. package/dist/src/lib/plot/data-cleaning.ts +1069 -0
  188. package/dist/src/lib/plot/data-transform.ts +69 -0
  189. package/dist/src/lib/plot/defaults.ts +9 -0
  190. package/dist/src/lib/plot/fill-utils.ts +494 -0
  191. package/dist/src/lib/plot/hover-lock.svelte.ts +60 -0
  192. package/dist/src/lib/plot/index.ts +53 -0
  193. package/dist/src/lib/plot/interactions.ts +119 -0
  194. package/dist/src/lib/plot/layout.ts +425 -0
  195. package/dist/src/lib/plot/reference-line.ts +426 -0
  196. package/dist/src/lib/plot/scales.ts +654 -0
  197. package/dist/src/lib/plot/svg.ts +23 -0
  198. package/dist/src/lib/plot/types.ts +1144 -0
  199. package/dist/src/lib/plot/utils/label-placement.ts +541 -0
  200. package/dist/src/lib/plot/utils/series-visibility.ts +140 -0
  201. package/dist/src/lib/plot/utils.ts +11 -0
  202. package/dist/src/lib/rdf/RdfPlot.svelte +247 -0
  203. package/dist/src/lib/rdf/calc-rdf.ts +167 -0
  204. package/dist/src/lib/rdf/index.ts +27 -0
  205. package/dist/src/lib/sanitize.ts +126 -0
  206. package/dist/src/lib/settings.ts +1479 -0
  207. package/dist/src/lib/spectral/Bands.svelte +1040 -0
  208. package/dist/src/lib/spectral/BandsAndDos.svelte +134 -0
  209. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +252 -0
  210. package/dist/src/lib/spectral/Dos.svelte +697 -0
  211. package/dist/src/lib/spectral/helpers.ts +1381 -0
  212. package/dist/src/lib/spectral/index.ts +8 -0
  213. package/dist/src/lib/spectral/types.ts +112 -0
  214. package/dist/src/lib/state.svelte.ts +64 -0
  215. package/dist/src/lib/structure/Arrow.svelte +72 -0
  216. package/dist/src/lib/structure/AtomLegend.svelte +815 -0
  217. package/dist/src/lib/structure/Bond.svelte +140 -0
  218. package/dist/src/lib/structure/CanvasTooltip.svelte +33 -0
  219. package/dist/src/lib/structure/CellSelect.svelte +349 -0
  220. package/dist/src/lib/structure/Cylinder.svelte +45 -0
  221. package/dist/src/lib/structure/Lattice.svelte +196 -0
  222. package/dist/src/lib/structure/Structure.svelte +2248 -0
  223. package/dist/src/lib/structure/StructureControls.svelte +1273 -0
  224. package/dist/src/lib/structure/StructureExportPane.svelte +252 -0
  225. package/dist/src/lib/structure/StructureInfoPane.svelte +737 -0
  226. package/dist/src/lib/structure/StructureScene.svelte +2255 -0
  227. package/dist/src/lib/structure/atom-properties.ts +316 -0
  228. package/dist/src/lib/structure/bond-order-perception.ts +447 -0
  229. package/dist/src/lib/structure/bonding.ts +944 -0
  230. package/dist/src/lib/structure/export.ts +861 -0
  231. package/dist/src/lib/structure/index.ts +291 -0
  232. package/dist/src/lib/structure/label-placement.ts +130 -0
  233. package/dist/src/lib/structure/measure.ts +45 -0
  234. package/dist/src/lib/structure/parse.ts +1705 -0
  235. package/dist/src/lib/structure/partial-occupancy.ts +183 -0
  236. package/dist/src/lib/structure/pbc.ts +164 -0
  237. package/dist/src/lib/structure/supercell.ts +226 -0
  238. package/dist/src/lib/structure/validation.ts +11 -0
  239. package/dist/src/lib/symmetry/SymmetryStats.svelte +226 -0
  240. package/dist/src/lib/symmetry/WyckoffTable.svelte +120 -0
  241. package/dist/src/lib/symmetry/cell-transform.ts +118 -0
  242. package/dist/src/lib/symmetry/index.ts +348 -0
  243. package/dist/src/lib/symmetry/spacegroups.ts +404 -0
  244. package/dist/src/lib/table/HeatmapTable.svelte +1833 -0
  245. package/dist/src/lib/table/ToggleMenu.svelte +385 -0
  246. package/dist/src/lib/table/index.ts +139 -0
  247. package/dist/src/lib/theme/ThemeControl.svelte +53 -0
  248. package/dist/src/lib/theme/index.ts +107 -0
  249. package/dist/src/lib/theme/themes.mjs +297 -0
  250. package/dist/src/lib/time.ts +71 -0
  251. package/dist/src/lib/tooltip/TooltipContent.svelte +58 -0
  252. package/dist/src/lib/tooltip/index.ts +2 -0
  253. package/dist/src/lib/tooltip/types.ts +13 -0
  254. package/dist/src/lib/trajectory/Trajectory.svelte +1545 -0
  255. package/dist/src/lib/trajectory/TrajectoryError.svelte +128 -0
  256. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +357 -0
  257. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +313 -0
  258. package/dist/src/lib/trajectory/constants.ts +7 -0
  259. package/dist/src/lib/trajectory/extract.ts +196 -0
  260. package/dist/src/lib/trajectory/format-detect.ts +96 -0
  261. package/dist/src/lib/trajectory/frame-reader.ts +456 -0
  262. package/dist/src/lib/trajectory/helpers.ts +217 -0
  263. package/dist/src/lib/trajectory/index.ts +218 -0
  264. package/dist/src/lib/trajectory/parse/ase.ts +109 -0
  265. package/dist/src/lib/trajectory/parse/hdf5.ts +173 -0
  266. package/dist/src/lib/trajectory/parse/index.ts +411 -0
  267. package/dist/src/lib/trajectory/parse/lammps.ts +215 -0
  268. package/dist/src/lib/trajectory/parse/vasp.ts +102 -0
  269. package/dist/src/lib/trajectory/parse/xyz.ts +143 -0
  270. package/dist/src/lib/trajectory/plotting.ts +599 -0
  271. package/dist/src/lib/trajectory/types.ts +13 -0
  272. package/dist/src/lib/utils.ts +56 -0
  273. package/dist/src/lib/xrd/XrdPlot.svelte +615 -0
  274. package/dist/src/lib/xrd/broadening.ts +130 -0
  275. package/dist/src/lib/xrd/calc-xrd.ts +397 -0
  276. package/dist/src/lib/xrd/index.ts +38 -0
  277. package/dist/src/lib/xrd/parse.ts +858 -0
  278. package/dist/webview.js +29421 -0
  279. package/icon.png +0 -0
  280. package/license +1 -1
  281. package/matterviz-0.3.2.vsix +0 -0
  282. package/matterviz-0.3.4.vsix +0 -0
  283. package/matterviz-0.3.5.vsix +0 -0
  284. package/package.json +1461 -231
  285. package/readme.md +171 -98
  286. package/scripts/sync-config.ts +101 -0
  287. package/src/declarations.d.ts +2 -0
  288. package/src/extension.ts +972 -0
  289. package/src/node-io.ts +65 -0
  290. package/src/types.ts +17 -0
  291. package/src/webview/JsonBrowser.svelte +1079 -0
  292. package/src/webview/PlotPanel.svelte +346 -0
  293. package/src/webview/detect.ts +444 -0
  294. package/src/webview/main.ts +764 -0
  295. package/src/webview/plot-utils.ts +250 -0
  296. package/test-fixtures/all-viz-types.json.gz +0 -0
  297. package/test-fixtures/plot-demo-data.json.gz +0 -0
  298. package/tests/detect.test.ts +604 -0
  299. package/tests/extension.test.ts +2041 -0
  300. package/tests/node-io.test.ts +39 -0
  301. package/tests/plot-utils.test.ts +302 -0
  302. package/tests/vite-plugin-json-gz.test.ts +114 -0
  303. package/tests/vscode-mock.ts +18 -0
  304. package/tests/webview.test.ts +231 -0
  305. package/tsconfig.json +20 -0
  306. package/vite-plugin-json-gz.ts +29 -0
  307. package/vite.config.ts +34 -0
  308. package/vite.extension.config.ts +34 -0
  309. package/dist/EmptyState.svelte.d.ts +0 -9
  310. package/dist/FilePicker.svelte +0 -360
  311. package/dist/FilePicker.svelte.d.ts +0 -17
  312. package/dist/Icon.svelte.d.ts +0 -13
  313. package/dist/MillerIndexInput.svelte +0 -66
  314. package/dist/MillerIndexInput.svelte.d.ts +0 -7
  315. package/dist/api/mp.d.ts +0 -6
  316. package/dist/api/mp.js +0 -22
  317. package/dist/api/optimade.d.ts +0 -45
  318. package/dist/api/optimade.js +0 -135
  319. package/dist/app.css +0 -240
  320. package/dist/brillouin/BrillouinZone.svelte +0 -543
  321. package/dist/brillouin/BrillouinZone.svelte.d.ts +0 -83
  322. package/dist/brillouin/BrillouinZoneControls.svelte +0 -144
  323. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +0 -17
  324. package/dist/brillouin/BrillouinZoneExportPane.svelte +0 -148
  325. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +0 -15
  326. package/dist/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  327. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +0 -13
  328. package/dist/brillouin/BrillouinZoneScene.svelte +0 -476
  329. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +0 -48
  330. package/dist/brillouin/BrillouinZoneTooltip.svelte +0 -92
  331. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +0 -8
  332. package/dist/brillouin/compute.d.ts +0 -17
  333. package/dist/brillouin/compute.js +0 -422
  334. package/dist/brillouin/index.d.ts +0 -8
  335. package/dist/brillouin/index.js +0 -8
  336. package/dist/brillouin/types.d.ts +0 -48
  337. package/dist/brillouin/types.js +0 -1
  338. package/dist/chempot-diagram/ChemPotDiagram.svelte +0 -327
  339. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +0 -13
  340. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +0 -847
  341. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +0 -16
  342. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +0 -3194
  343. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +0 -16
  344. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +0 -7
  345. package/dist/chempot-diagram/async-compute.svelte.d.ts +0 -3
  346. package/dist/chempot-diagram/async-compute.svelte.js +0 -77
  347. package/dist/chempot-diagram/chempot-worker.d.ts +0 -1
  348. package/dist/chempot-diagram/chempot-worker.js +0 -11
  349. package/dist/chempot-diagram/color.d.ts +0 -10
  350. package/dist/chempot-diagram/color.js +0 -32
  351. package/dist/chempot-diagram/compute.d.ts +0 -48
  352. package/dist/chempot-diagram/compute.js +0 -812
  353. package/dist/chempot-diagram/index.d.ts +0 -6
  354. package/dist/chempot-diagram/index.js +0 -6
  355. package/dist/chempot-diagram/pointer.d.ts +0 -16
  356. package/dist/chempot-diagram/pointer.js +0 -40
  357. package/dist/chempot-diagram/temperature.d.ts +0 -15
  358. package/dist/chempot-diagram/temperature.js +0 -36
  359. package/dist/chempot-diagram/types.d.ts +0 -86
  360. package/dist/chempot-diagram/types.js +0 -28
  361. package/dist/colors/index.d.ts +0 -47
  362. package/dist/colors/index.js +0 -203
  363. package/dist/composition/BarChart.svelte +0 -297
  364. package/dist/composition/BarChart.svelte.d.ts +0 -39
  365. package/dist/composition/BubbleChart.svelte +0 -218
  366. package/dist/composition/BubbleChart.svelte.d.ts +0 -28
  367. package/dist/composition/Composition.svelte +0 -164
  368. package/dist/composition/Composition.svelte.d.ts +0 -15
  369. package/dist/composition/Formula.svelte +0 -265
  370. package/dist/composition/Formula.svelte.d.ts +0 -19
  371. package/dist/composition/FormulaFilter.svelte +0 -1259
  372. package/dist/composition/FormulaFilter.svelte.d.ts +0 -51
  373. package/dist/composition/PieChart.svelte +0 -323
  374. package/dist/composition/PieChart.svelte.d.ts +0 -37
  375. package/dist/composition/format.d.ts +0 -15
  376. package/dist/composition/format.js +0 -109
  377. package/dist/composition/index.d.ts +0 -20
  378. package/dist/composition/index.js +0 -14
  379. package/dist/composition/parse.d.ts +0 -55
  380. package/dist/composition/parse.js +0 -459
  381. package/dist/constants.d.ts +0 -29
  382. package/dist/constants.js +0 -105
  383. package/dist/controls.d.ts +0 -14
  384. package/dist/controls.js +0 -30
  385. package/dist/convex-hull/ConvexHull.svelte +0 -157
  386. package/dist/convex-hull/ConvexHull.svelte.d.ts +0 -13
  387. package/dist/convex-hull/ConvexHull2D.svelte +0 -813
  388. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +0 -11
  389. package/dist/convex-hull/ConvexHull3D.svelte +0 -1788
  390. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +0 -8
  391. package/dist/convex-hull/ConvexHull4D.svelte +0 -1374
  392. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +0 -8
  393. package/dist/convex-hull/ConvexHullControls.svelte +0 -546
  394. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +0 -48
  395. package/dist/convex-hull/ConvexHullInfoPane.svelte +0 -115
  396. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +0 -18
  397. package/dist/convex-hull/ConvexHullStats.svelte +0 -905
  398. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +0 -15
  399. package/dist/convex-hull/ConvexHullTooltip.svelte +0 -131
  400. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +0 -33
  401. package/dist/convex-hull/GasPressureControls.svelte +0 -247
  402. package/dist/convex-hull/GasPressureControls.svelte.d.ts +0 -11
  403. package/dist/convex-hull/StructurePopup.svelte +0 -116
  404. package/dist/convex-hull/StructurePopup.svelte.d.ts +0 -18
  405. package/dist/convex-hull/TemperatureSlider.svelte +0 -137
  406. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +0 -8
  407. package/dist/convex-hull/barycentric-coords.d.ts +0 -18
  408. package/dist/convex-hull/barycentric-coords.js +0 -182
  409. package/dist/convex-hull/demo-temperature.d.ts +0 -6
  410. package/dist/convex-hull/demo-temperature.js +0 -40
  411. package/dist/convex-hull/gas-thermodynamics.d.ts +0 -16
  412. package/dist/convex-hull/gas-thermodynamics.js +0 -316
  413. package/dist/convex-hull/helpers.d.ts +0 -103
  414. package/dist/convex-hull/helpers.js +0 -671
  415. package/dist/convex-hull/index.d.ts +0 -118
  416. package/dist/convex-hull/index.js +0 -57
  417. package/dist/convex-hull/thermodynamics.d.ts +0 -66
  418. package/dist/convex-hull/thermodynamics.js +0 -1752
  419. package/dist/convex-hull/types.d.ts +0 -162
  420. package/dist/convex-hull/types.js +0 -36
  421. package/dist/coordination/CoordinationBarPlot.svelte +0 -311
  422. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +0 -30
  423. package/dist/coordination/calc-coordination.d.ts +0 -15
  424. package/dist/coordination/calc-coordination.js +0 -63
  425. package/dist/coordination/index.d.ts +0 -8
  426. package/dist/coordination/index.js +0 -7
  427. package/dist/element/BohrAtom.svelte +0 -149
  428. package/dist/element/BohrAtom.svelte.d.ts +0 -20
  429. package/dist/element/ElementHeading.svelte +0 -26
  430. package/dist/element/ElementHeading.svelte.d.ts +0 -8
  431. package/dist/element/ElementPhoto.svelte +0 -57
  432. package/dist/element/ElementPhoto.svelte.d.ts +0 -9
  433. package/dist/element/ElementStats.svelte +0 -80
  434. package/dist/element/ElementStats.svelte.d.ts +0 -8
  435. package/dist/element/ElementTile.svelte +0 -484
  436. package/dist/element/ElementTile.svelte.d.ts +0 -29
  437. package/dist/element/Nucleus.svelte.d.ts +0 -17
  438. package/dist/element/data.d.ts +0 -3
  439. package/dist/element/data.js +0 -2
  440. package/dist/element/data.json.gz.d.ts +0 -2
  441. package/dist/element/index.d.ts +0 -8
  442. package/dist/element/index.js +0 -8
  443. package/dist/element/types.d.ts +0 -57
  444. package/dist/element/types.js +0 -1
  445. package/dist/feedback/ClickFeedback.svelte +0 -58
  446. package/dist/feedback/ClickFeedback.svelte.d.ts +0 -12
  447. package/dist/feedback/DragOverlay.svelte +0 -42
  448. package/dist/feedback/DragOverlay.svelte.d.ts +0 -7
  449. package/dist/feedback/Spinner.svelte.d.ts +0 -7
  450. package/dist/feedback/StatusMessage.svelte.d.ts +0 -9
  451. package/dist/feedback/index.d.ts +0 -4
  452. package/dist/feedback/index.js +0 -4
  453. package/dist/fermi-surface/FermiSlice.svelte +0 -189
  454. package/dist/fermi-surface/FermiSlice.svelte.d.ts +0 -24
  455. package/dist/fermi-surface/FermiSurface.svelte +0 -597
  456. package/dist/fermi-surface/FermiSurface.svelte.d.ts +0 -83
  457. package/dist/fermi-surface/FermiSurfaceControls.svelte +0 -452
  458. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +0 -35
  459. package/dist/fermi-surface/FermiSurfaceScene.svelte +0 -792
  460. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +0 -50
  461. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  462. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +0 -8
  463. package/dist/fermi-surface/compute.d.ts +0 -5
  464. package/dist/fermi-surface/compute.js +0 -538
  465. package/dist/fermi-surface/constants.d.ts +0 -9
  466. package/dist/fermi-surface/constants.js +0 -27
  467. package/dist/fermi-surface/export.d.ts +0 -5
  468. package/dist/fermi-surface/export.js +0 -63
  469. package/dist/fermi-surface/index.d.ts +0 -12
  470. package/dist/fermi-surface/index.js +0 -13
  471. package/dist/fermi-surface/marching-cubes.d.ts +0 -2
  472. package/dist/fermi-surface/marching-cubes.js +0 -2
  473. package/dist/fermi-surface/parse.d.ts +0 -2
  474. package/dist/fermi-surface/parse.js +0 -495
  475. package/dist/fermi-surface/symmetry.d.ts +0 -3
  476. package/dist/fermi-surface/symmetry.js +0 -46
  477. package/dist/fermi-surface/types.d.ts +0 -113
  478. package/dist/fermi-surface/types.js +0 -4
  479. package/dist/heatmap-matrix/HeatmapMatrix.svelte +0 -1527
  480. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +0 -110
  481. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  482. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +0 -30
  483. package/dist/heatmap-matrix/index.d.ts +0 -53
  484. package/dist/heatmap-matrix/index.js +0 -100
  485. package/dist/heatmap-matrix/shared.d.ts +0 -2
  486. package/dist/heatmap-matrix/shared.js +0 -4
  487. package/dist/icons.d.ts +0 -569
  488. package/dist/icons.js +0 -648
  489. package/dist/index.d.ts +0 -39
  490. package/dist/index.js +0 -39
  491. package/dist/io/decompress.d.ts +0 -10
  492. package/dist/io/decompress.js +0 -69
  493. package/dist/io/export.d.ts +0 -16
  494. package/dist/io/export.js +0 -312
  495. package/dist/io/fetch.d.ts +0 -5
  496. package/dist/io/fetch.js +0 -39
  497. package/dist/io/file-drop.d.ts +0 -7
  498. package/dist/io/file-drop.js +0 -43
  499. package/dist/io/index.d.ts +0 -7
  500. package/dist/io/index.js +0 -7
  501. package/dist/io/is-binary.d.ts +0 -1
  502. package/dist/io/is-binary.js +0 -5
  503. package/dist/io/types.d.ts +0 -8
  504. package/dist/io/types.js +0 -1
  505. package/dist/io/url-drop.d.ts +0 -2
  506. package/dist/io/url-drop.js +0 -117
  507. package/dist/isosurface/Isosurface.svelte +0 -285
  508. package/dist/isosurface/Isosurface.svelte.d.ts +0 -8
  509. package/dist/isosurface/IsosurfaceControls.svelte +0 -291
  510. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +0 -9
  511. package/dist/isosurface/index.d.ts +0 -5
  512. package/dist/isosurface/index.js +0 -6
  513. package/dist/isosurface/parse.d.ts +0 -6
  514. package/dist/isosurface/parse.js +0 -553
  515. package/dist/isosurface/slice.d.ts +0 -11
  516. package/dist/isosurface/slice.js +0 -140
  517. package/dist/isosurface/types.d.ts +0 -56
  518. package/dist/isosurface/types.js +0 -227
  519. package/dist/labels.d.ts +0 -53
  520. package/dist/labels.js +0 -274
  521. package/dist/layout/FullscreenToggle.svelte +0 -50
  522. package/dist/layout/FullscreenToggle.svelte.d.ts +0 -7
  523. package/dist/layout/InfoCard.svelte +0 -120
  524. package/dist/layout/InfoCard.svelte.d.ts +0 -21
  525. package/dist/layout/InfoTag.svelte +0 -183
  526. package/dist/layout/InfoTag.svelte.d.ts +0 -19
  527. package/dist/layout/PropertyFilter.svelte +0 -244
  528. package/dist/layout/PropertyFilter.svelte.d.ts +0 -24
  529. package/dist/layout/SettingsSection.svelte +0 -148
  530. package/dist/layout/SettingsSection.svelte.d.ts +0 -17
  531. package/dist/layout/SubpageGrid.svelte +0 -82
  532. package/dist/layout/SubpageGrid.svelte.d.ts +0 -14
  533. package/dist/layout/fullscreen.d.ts +0 -9
  534. package/dist/layout/fullscreen.js +0 -53
  535. package/dist/layout/index.d.ts +0 -10
  536. package/dist/layout/index.js +0 -8
  537. package/dist/layout/json-tree/JsonNode.svelte +0 -547
  538. package/dist/layout/json-tree/JsonNode.svelte.d.ts +0 -11
  539. package/dist/layout/json-tree/JsonTree.svelte +0 -1222
  540. package/dist/layout/json-tree/JsonTree.svelte.d.ts +0 -6
  541. package/dist/layout/json-tree/JsonValue.svelte +0 -334
  542. package/dist/layout/json-tree/JsonValue.svelte.d.ts +0 -9
  543. package/dist/layout/json-tree/index.d.ts +0 -3
  544. package/dist/layout/json-tree/index.js +0 -3
  545. package/dist/layout/json-tree/types.d.ts +0 -73
  546. package/dist/layout/json-tree/types.js +0 -3
  547. package/dist/layout/json-tree/utils.d.ts +0 -29
  548. package/dist/layout/json-tree/utils.js +0 -648
  549. package/dist/marching-cubes.d.ts +0 -14
  550. package/dist/marching-cubes.js +0 -542
  551. package/dist/math.d.ts +0 -91
  552. package/dist/math.js +0 -896
  553. package/dist/overlays/ContextMenu.svelte +0 -162
  554. package/dist/overlays/ContextMenu.svelte.d.ts +0 -25
  555. package/dist/overlays/DraggablePane.svelte +0 -564
  556. package/dist/overlays/DraggablePane.svelte.d.ts +0 -36
  557. package/dist/overlays/index.d.ts +0 -2
  558. package/dist/overlays/index.js +0 -2
  559. package/dist/periodic-table/PeriodicTable.svelte +0 -469
  560. package/dist/periodic-table/PeriodicTable.svelte.d.ts +0 -55
  561. package/dist/periodic-table/PeriodicTableControls.svelte +0 -557
  562. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +0 -24
  563. package/dist/periodic-table/PropertySelect.svelte +0 -37
  564. package/dist/periodic-table/PropertySelect.svelte.d.ts +0 -13
  565. package/dist/periodic-table/TableInset.svelte.d.ts +0 -9
  566. package/dist/periodic-table/index.d.ts +0 -10
  567. package/dist/periodic-table/index.js +0 -4
  568. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  569. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +0 -44
  570. package/dist/phase-diagram/PhaseDiagramControls.svelte +0 -451
  571. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +0 -30
  572. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  573. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +0 -15
  574. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +0 -192
  575. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +0 -19
  576. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +0 -392
  577. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +0 -16
  578. package/dist/phase-diagram/TdbInfoPanel.svelte +0 -203
  579. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +0 -12
  580. package/dist/phase-diagram/build-diagram.d.ts +0 -11
  581. package/dist/phase-diagram/build-diagram.js +0 -167
  582. package/dist/phase-diagram/colors.d.ts +0 -35
  583. package/dist/phase-diagram/colors.js +0 -51
  584. package/dist/phase-diagram/diagram-input.d.ts +0 -33
  585. package/dist/phase-diagram/diagram-input.js +0 -3
  586. package/dist/phase-diagram/index.d.ts +0 -13
  587. package/dist/phase-diagram/index.js +0 -13
  588. package/dist/phase-diagram/parse.d.ts +0 -55
  589. package/dist/phase-diagram/parse.js +0 -276
  590. package/dist/phase-diagram/svg-to-diagram.d.ts +0 -2
  591. package/dist/phase-diagram/svg-to-diagram.js +0 -869
  592. package/dist/phase-diagram/types.d.ts +0 -99
  593. package/dist/phase-diagram/types.js +0 -1
  594. package/dist/phase-diagram/utils.d.ts +0 -118
  595. package/dist/phase-diagram/utils.js +0 -606
  596. package/dist/plot/AxisLabel.svelte +0 -51
  597. package/dist/plot/AxisLabel.svelte.d.ts +0 -16
  598. package/dist/plot/BarPlot.svelte +0 -2256
  599. package/dist/plot/BarPlot.svelte.d.ts +0 -82
  600. package/dist/plot/BarPlotControls.svelte +0 -66
  601. package/dist/plot/BarPlotControls.svelte.d.ts +0 -18
  602. package/dist/plot/ColorBar.svelte +0 -719
  603. package/dist/plot/ColorBar.svelte.d.ts +0 -31
  604. package/dist/plot/ColorScaleSelect.svelte +0 -54
  605. package/dist/plot/ColorScaleSelect.svelte.d.ts +0 -15
  606. package/dist/plot/ElementScatter.svelte +0 -63
  607. package/dist/plot/ElementScatter.svelte.d.ts +0 -14
  608. package/dist/plot/FillArea.svelte +0 -226
  609. package/dist/plot/FillArea.svelte.d.ts +0 -20
  610. package/dist/plot/Histogram.svelte +0 -1654
  611. package/dist/plot/Histogram.svelte.d.ts +0 -50
  612. package/dist/plot/HistogramControls.svelte +0 -212
  613. package/dist/plot/HistogramControls.svelte.d.ts +0 -22
  614. package/dist/plot/InteractiveAxisLabel.svelte +0 -94
  615. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +0 -14
  616. package/dist/plot/Line.svelte +0 -85
  617. package/dist/plot/Line.svelte.d.ts +0 -15
  618. package/dist/plot/PlotControls.svelte +0 -537
  619. package/dist/plot/PlotControls.svelte.d.ts +0 -4
  620. package/dist/plot/PlotLegend.svelte +0 -498
  621. package/dist/plot/PlotLegend.svelte.d.ts +0 -25
  622. package/dist/plot/PlotTooltip.svelte +0 -67
  623. package/dist/plot/PlotTooltip.svelte.d.ts +0 -17
  624. package/dist/plot/PortalSelect.svelte +0 -253
  625. package/dist/plot/PortalSelect.svelte.d.ts +0 -16
  626. package/dist/plot/ReferenceLine.svelte.d.ts +0 -20
  627. package/dist/plot/ReferenceLine3D.svelte +0 -154
  628. package/dist/plot/ReferenceLine3D.svelte.d.ts +0 -14
  629. package/dist/plot/ReferencePlane.svelte +0 -178
  630. package/dist/plot/ReferencePlane.svelte.d.ts +0 -14
  631. package/dist/plot/ScatterPlot.svelte +0 -2831
  632. package/dist/plot/ScatterPlot.svelte.d.ts +0 -92
  633. package/dist/plot/ScatterPlot3D.svelte +0 -499
  634. package/dist/plot/ScatterPlot3D.svelte.d.ts +0 -94
  635. package/dist/plot/ScatterPlot3DControls.svelte +0 -437
  636. package/dist/plot/ScatterPlot3DControls.svelte.d.ts +0 -20
  637. package/dist/plot/ScatterPlot3DScene.svelte +0 -912
  638. package/dist/plot/ScatterPlot3DScene.svelte.d.ts +0 -74
  639. package/dist/plot/ScatterPlotControls.svelte +0 -307
  640. package/dist/plot/ScatterPlotControls.svelte.d.ts +0 -17
  641. package/dist/plot/ScatterPoint.svelte +0 -185
  642. package/dist/plot/ScatterPoint.svelte.d.ts +0 -19
  643. package/dist/plot/SpacegroupBarPlot.svelte +0 -292
  644. package/dist/plot/SpacegroupBarPlot.svelte.d.ts +0 -9
  645. package/dist/plot/Surface3D.svelte +0 -200
  646. package/dist/plot/Surface3D.svelte.d.ts +0 -13
  647. package/dist/plot/ZeroLines.svelte +0 -96
  648. package/dist/plot/ZeroLines.svelte.d.ts +0 -32
  649. package/dist/plot/ZoomRect.svelte +0 -23
  650. package/dist/plot/ZoomRect.svelte.d.ts +0 -8
  651. package/dist/plot/axis-utils.d.ts +0 -19
  652. package/dist/plot/axis-utils.js +0 -80
  653. package/dist/plot/data-cleaning.d.ts +0 -37
  654. package/dist/plot/data-cleaning.js +0 -855
  655. package/dist/plot/data-transform.d.ts +0 -16
  656. package/dist/plot/data-transform.js +0 -45
  657. package/dist/plot/defaults.d.ts +0 -19
  658. package/dist/plot/defaults.js +0 -9
  659. package/dist/plot/fill-utils.d.ts +0 -51
  660. package/dist/plot/fill-utils.js +0 -337
  661. package/dist/plot/hover-lock.svelte.d.ts +0 -14
  662. package/dist/plot/hover-lock.svelte.js +0 -46
  663. package/dist/plot/index.d.ts +0 -43
  664. package/dist/plot/index.js +0 -37
  665. package/dist/plot/interactions.d.ts +0 -12
  666. package/dist/plot/interactions.js +0 -100
  667. package/dist/plot/layout.d.ts +0 -60
  668. package/dist/plot/layout.js +0 -230
  669. package/dist/plot/reference-line.d.ts +0 -60
  670. package/dist/plot/reference-line.js +0 -316
  671. package/dist/plot/scales.d.ts +0 -48
  672. package/dist/plot/scales.js +0 -484
  673. package/dist/plot/svg.d.ts +0 -1
  674. package/dist/plot/svg.js +0 -11
  675. package/dist/plot/types.d.ts +0 -863
  676. package/dist/plot/types.js +0 -103
  677. package/dist/plot/utils/label-placement.d.ts +0 -47
  678. package/dist/plot/utils/label-placement.js +0 -256
  679. package/dist/plot/utils/series-visibility.d.ts +0 -9
  680. package/dist/plot/utils/series-visibility.js +0 -67
  681. package/dist/plot/utils.d.ts +0 -1
  682. package/dist/plot/utils.js +0 -14
  683. package/dist/rdf/RdfPlot.svelte +0 -247
  684. package/dist/rdf/RdfPlot.svelte.d.ts +0 -27
  685. package/dist/rdf/calc-rdf.d.ts +0 -4
  686. package/dist/rdf/calc-rdf.js +0 -111
  687. package/dist/rdf/index.d.ts +0 -23
  688. package/dist/rdf/index.js +0 -2
  689. package/dist/sanitize.d.ts +0 -4
  690. package/dist/sanitize.js +0 -107
  691. package/dist/settings.d.ts +0 -253
  692. package/dist/settings.js +0 -1123
  693. package/dist/spectral/Bands.svelte +0 -1040
  694. package/dist/spectral/Bands.svelte.d.ts +0 -40
  695. package/dist/spectral/BandsAndDos.svelte +0 -128
  696. package/dist/spectral/BandsAndDos.svelte.d.ts +0 -18
  697. package/dist/spectral/BrillouinBandsDos.svelte +0 -248
  698. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +0 -20
  699. package/dist/spectral/Dos.svelte +0 -697
  700. package/dist/spectral/Dos.svelte.d.ts +0 -29
  701. package/dist/spectral/helpers.d.ts +0 -117
  702. package/dist/spectral/helpers.js +0 -1023
  703. package/dist/spectral/index.d.ts +0 -6
  704. package/dist/spectral/index.js +0 -7
  705. package/dist/spectral/types.d.ts +0 -84
  706. package/dist/spectral/types.js +0 -2
  707. package/dist/state.svelte.d.ts +0 -25
  708. package/dist/state.svelte.js +0 -45
  709. package/dist/structure/Arrow.svelte +0 -72
  710. package/dist/structure/Arrow.svelte.d.ts +0 -15
  711. package/dist/structure/AtomLegend.svelte +0 -798
  712. package/dist/structure/AtomLegend.svelte.d.ts +0 -34
  713. package/dist/structure/Bond.svelte +0 -140
  714. package/dist/structure/Bond.svelte.d.ts +0 -9
  715. package/dist/structure/CanvasTooltip.svelte +0 -33
  716. package/dist/structure/CanvasTooltip.svelte.d.ts +0 -12
  717. package/dist/structure/CellSelect.svelte +0 -351
  718. package/dist/structure/CellSelect.svelte.d.ts +0 -13
  719. package/dist/structure/Cylinder.svelte +0 -45
  720. package/dist/structure/Cylinder.svelte.d.ts +0 -10
  721. package/dist/structure/Lattice.svelte +0 -196
  722. package/dist/structure/Lattice.svelte.d.ts +0 -17
  723. package/dist/structure/Structure.svelte +0 -1857
  724. package/dist/structure/Structure.svelte.d.ts +0 -83
  725. package/dist/structure/StructureControls.svelte +0 -1184
  726. package/dist/structure/StructureControls.svelte.d.ts +0 -31
  727. package/dist/structure/StructureExportPane.svelte +0 -251
  728. package/dist/structure/StructureExportPane.svelte.d.ts +0 -17
  729. package/dist/structure/StructureInfoPane.svelte +0 -434
  730. package/dist/structure/StructureInfoPane.svelte.d.ts +0 -18
  731. package/dist/structure/StructureScene.svelte +0 -1574
  732. package/dist/structure/StructureScene.svelte.d.ts +0 -104
  733. package/dist/structure/atom-properties.d.ts +0 -37
  734. package/dist/structure/atom-properties.js +0 -198
  735. package/dist/structure/bonding.d.ts +0 -33
  736. package/dist/structure/bonding.js +0 -304
  737. package/dist/structure/export.d.ts +0 -20
  738. package/dist/structure/export.js +0 -725
  739. package/dist/structure/ferrox-wasm-types.d.ts +0 -46
  740. package/dist/structure/ferrox-wasm-types.js +0 -18
  741. package/dist/structure/ferrox-wasm.d.ts +0 -94
  742. package/dist/structure/ferrox-wasm.js +0 -249
  743. package/dist/structure/index.d.ts +0 -110
  744. package/dist/structure/index.js +0 -168
  745. package/dist/structure/measure.d.ts +0 -6
  746. package/dist/structure/measure.js +0 -29
  747. package/dist/structure/parse.d.ts +0 -65
  748. package/dist/structure/parse.js +0 -1374
  749. package/dist/structure/partial-occupancy.d.ts +0 -25
  750. package/dist/structure/partial-occupancy.js +0 -99
  751. package/dist/structure/pbc.d.ts +0 -9
  752. package/dist/structure/pbc.js +0 -123
  753. package/dist/structure/supercell.d.ts +0 -8
  754. package/dist/structure/supercell.js +0 -137
  755. package/dist/structure/validation.d.ts +0 -2
  756. package/dist/structure/validation.js +0 -10
  757. package/dist/symmetry/SymmetryStats.svelte +0 -226
  758. package/dist/symmetry/SymmetryStats.svelte.d.ts +0 -21
  759. package/dist/symmetry/WyckoffTable.svelte +0 -113
  760. package/dist/symmetry/WyckoffTable.svelte.d.ts +0 -11
  761. package/dist/symmetry/cell-transform.d.ts +0 -12
  762. package/dist/symmetry/cell-transform.js +0 -77
  763. package/dist/symmetry/index.d.ts +0 -43
  764. package/dist/symmetry/index.js +0 -229
  765. package/dist/symmetry/spacegroups.d.ts +0 -9
  766. package/dist/symmetry/spacegroups.js +0 -394
  767. package/dist/table/HeatmapTable.svelte +0 -1854
  768. package/dist/table/HeatmapTable.svelte.d.ts +0 -49
  769. package/dist/table/ToggleMenu.svelte +0 -376
  770. package/dist/table/ToggleMenu.svelte.d.ts +0 -11
  771. package/dist/table/index.d.ts +0 -74
  772. package/dist/table/index.js +0 -38
  773. package/dist/theme/ThemeControl.svelte +0 -53
  774. package/dist/theme/ThemeControl.svelte.d.ts +0 -9
  775. package/dist/theme/index.d.ts +0 -29
  776. package/dist/theme/index.js +0 -79
  777. package/dist/theme/themes.mjs +0 -285
  778. package/dist/time.d.ts +0 -4
  779. package/dist/time.js +0 -70
  780. package/dist/tooltip/TooltipContent.svelte +0 -58
  781. package/dist/tooltip/TooltipContent.svelte.d.ts +0 -31
  782. package/dist/tooltip/index.d.ts +0 -2
  783. package/dist/tooltip/index.js +0 -2
  784. package/dist/tooltip/types.d.ts +0 -8
  785. package/dist/tooltip/types.js +0 -1
  786. package/dist/trajectory/Trajectory.svelte +0 -1517
  787. package/dist/trajectory/Trajectory.svelte.d.ts +0 -77
  788. package/dist/trajectory/TrajectoryError.svelte +0 -128
  789. package/dist/trajectory/TrajectoryError.svelte.d.ts +0 -13
  790. package/dist/trajectory/TrajectoryExportPane.svelte +0 -357
  791. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +0 -17
  792. package/dist/trajectory/TrajectoryInfoPane.svelte +0 -387
  793. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +0 -17
  794. package/dist/trajectory/constants.d.ts +0 -6
  795. package/dist/trajectory/constants.js +0 -7
  796. package/dist/trajectory/extract.d.ts +0 -5
  797. package/dist/trajectory/extract.js +0 -162
  798. package/dist/trajectory/format-detect.d.ts +0 -9
  799. package/dist/trajectory/format-detect.js +0 -76
  800. package/dist/trajectory/frame-reader.d.ts +0 -17
  801. package/dist/trajectory/frame-reader.js +0 -332
  802. package/dist/trajectory/helpers.d.ts +0 -14
  803. package/dist/trajectory/helpers.js +0 -172
  804. package/dist/trajectory/index.d.ts +0 -63
  805. package/dist/trajectory/index.js +0 -126
  806. package/dist/trajectory/parse/ase.d.ts +0 -2
  807. package/dist/trajectory/parse/ase.js +0 -77
  808. package/dist/trajectory/parse/hdf5.d.ts +0 -2
  809. package/dist/trajectory/parse/hdf5.js +0 -129
  810. package/dist/trajectory/parse/index.d.ts +0 -12
  811. package/dist/trajectory/parse/index.js +0 -299
  812. package/dist/trajectory/parse/lammps.d.ts +0 -5
  813. package/dist/trajectory/parse/lammps.js +0 -179
  814. package/dist/trajectory/parse/vasp.d.ts +0 -2
  815. package/dist/trajectory/parse/vasp.js +0 -68
  816. package/dist/trajectory/parse/xyz.d.ts +0 -2
  817. package/dist/trajectory/parse/xyz.js +0 -110
  818. package/dist/trajectory/plotting.d.ts +0 -28
  819. package/dist/trajectory/plotting.js +0 -423
  820. package/dist/trajectory/types.d.ts +0 -11
  821. package/dist/trajectory/types.js +0 -1
  822. package/dist/utils.d.ts +0 -5
  823. package/dist/utils.js +0 -36
  824. package/dist/xrd/XrdPlot.svelte +0 -615
  825. package/dist/xrd/XrdPlot.svelte.d.ts +0 -28
  826. package/dist/xrd/broadening.d.ts +0 -20
  827. package/dist/xrd/broadening.js +0 -97
  828. package/dist/xrd/calc-xrd.d.ts +0 -37
  829. package/dist/xrd/calc-xrd.js +0 -337
  830. package/dist/xrd/index.d.ts +0 -37
  831. package/dist/xrd/index.js +0 -4
  832. package/dist/xrd/parse.d.ts +0 -13
  833. package/dist/xrd/parse.js +0 -749
  834. /package/dist/{EmptyState.svelte → src/lib/EmptyState.svelte} +0 -0
  835. /package/dist/{Icon.svelte → src/lib/Icon.svelte} +0 -0
  836. /package/dist/{chempot-diagram → src/lib/chempot-diagram}/ChemPotScene3D.svelte +0 -0
  837. /package/dist/{colors → src/lib/colors}/alloy-colors.json +0 -0
  838. /package/dist/{colors → src/lib/colors}/dark-mode-colors.json +0 -0
  839. /package/dist/{colors → src/lib/colors}/jmol-colors.json +0 -0
  840. /package/dist/{colors → src/lib/colors}/muted-colors.json +0 -0
  841. /package/dist/{colors → src/lib/colors}/pastel-colors.json +0 -0
  842. /package/dist/{colors → src/lib/colors}/vesta-colors.json +0 -0
  843. /package/dist/{element → src/lib/element}/Nucleus.svelte +0 -0
  844. /package/dist/{element → src/lib/element}/data.json +0 -0
  845. /package/dist/{element → src/lib/element}/data.json.gz +0 -0
  846. /package/dist/{element → src/lib/element}/data.schema.json +0 -0
  847. /package/dist/{element-image-urls.json → src/lib/element-image-urls.json} +0 -0
  848. /package/dist/{feedback → src/lib/feedback}/Spinner.svelte +0 -0
  849. /package/dist/{feedback → src/lib/feedback}/StatusMessage.svelte +0 -0
  850. /package/dist/{periodic-table → src/lib/periodic-table}/TableInset.svelte +0 -0
  851. /package/dist/{plot → src/lib/plot}/ReferenceLine.svelte +0 -0
  852. /package/dist/{xrd → src/lib/xrd}/atomic_scattering_params.json +0 -0
@@ -1,2 +0,0 @@
1
- import type { BandGridData, FermiSurfaceData } from './types';
2
- export declare function parse_fermi_file(content: string, filename?: string): BandGridData | FermiSurfaceData | null;
@@ -1,495 +0,0 @@
1
- import * as constants from './constants';
2
- import { compute_vertex_normals } from './marching-cubes';
3
- const parse_number_tokens = (line) => line.split(/\s+/).filter(Boolean);
4
- // Parse whitespace-separated floats from a line (optimized with unary +)
5
- function parse_floats(line) {
6
- return parse_number_tokens(line).map((part) => +part);
7
- }
8
- // Parse whitespace-separated integers from a line
9
- function parse_ints(line) {
10
- return parse_number_tokens(line).map((part) => parseInt(part, 10));
11
- }
12
- // Parse BXSF (Band-XSF) format used by XCrySDen, Quantum ESPRESSO, etc.
13
- // Format specification: http://www.xcrysden.org/doc/XSF.html
14
- function parse_bxsf(content) {
15
- const lines = content.split(/\r?\n/).map((line) => line.trim());
16
- let line_idx = 0;
17
- // Helper to get next non-empty, non-comment line
18
- const next_line = () => {
19
- while (line_idx < lines.length) {
20
- const line = lines[line_idx++];
21
- if (line && !line.startsWith(`#`))
22
- return line;
23
- }
24
- throw new Error(`Unexpected end of BXSF file`);
25
- };
26
- // Find BEGIN_BLOCK_BANDGRID_3D
27
- while (line_idx < lines.length) {
28
- if (lines[line_idx].includes(`BEGIN_BLOCK_BANDGRID_3D`)) {
29
- line_idx++;
30
- break;
31
- }
32
- line_idx++;
33
- }
34
- if (line_idx >= lines.length) {
35
- throw new Error(`BXSF file missing BEGIN_BLOCK_BANDGRID_3D`);
36
- }
37
- // Skip block identifier line (e.g. "band_energies")
38
- next_line();
39
- // Parse BEGIN_BANDGRID_3D or BANDGRID_3D_BANDS (both variants exist)
40
- const bandgrid_line = next_line();
41
- if (!bandgrid_line.includes(`BANDGRID_3D`)) {
42
- throw new Error(`Expected BANDGRID_3D header, got: ${bandgrid_line}`);
43
- }
44
- // Parse number of bands
45
- const n_bands = parseInt(next_line(), 10);
46
- if (isNaN(n_bands) || n_bands <= 0) {
47
- throw new Error(`Invalid number of bands in BXSF file`);
48
- }
49
- // Parse grid dimensions (nx ny nz)
50
- const grid_dims = parse_ints(next_line());
51
- if (grid_dims.length !== 3) {
52
- throw new Error(`Expected 3 grid dimensions, got ${grid_dims.length}`);
53
- }
54
- const k_grid = [grid_dims[0], grid_dims[1], grid_dims[2]];
55
- // Parse origin
56
- const origin_vals = parse_floats(next_line());
57
- if (origin_vals.length !== 3) {
58
- throw new Error(`Expected 3 origin values, got ${origin_vals.length}`);
59
- }
60
- const origin = [origin_vals[0], origin_vals[1], origin_vals[2]];
61
- // Parse 3 spanning vectors (reciprocal lattice)
62
- const spanning_vectors = [
63
- parse_floats(next_line()).slice(0, 3),
64
- parse_floats(next_line()).slice(0, 3),
65
- parse_floats(next_line()).slice(0, 3),
66
- ];
67
- // Validate spanning vectors
68
- for (const vec of spanning_vectors) {
69
- if (vec.length !== 3 || vec.some(isNaN)) {
70
- throw new Error(`Invalid spanning vector in BXSF file`);
71
- }
72
- }
73
- // Parse band data
74
- // Format: BAND: band_number followed by energy values on grid
75
- const energies = [[]]; // [spin=1][band][kx][ky][kz]
76
- const [nx, ny, nz] = k_grid;
77
- const total_points = nx * ny * nz;
78
- for (let band_idx = 0; band_idx < n_bands; band_idx++) {
79
- // Find BAND: line
80
- let band_line = next_line();
81
- while (!band_line.startsWith(`BAND:`)) {
82
- band_line = next_line();
83
- }
84
- // Read energy values for this band
85
- const energy_values = [];
86
- while (energy_values.length < total_points) {
87
- const line = next_line();
88
- if (line.startsWith(`END_BANDGRID`) || line.startsWith(`BAND:`)) {
89
- // Unread this line: after next_line() returns, line_idx points past the
90
- // returned line, so decrementing by 1 restores to the line just read
91
- line_idx--;
92
- break;
93
- }
94
- energy_values.push(...parse_floats(line));
95
- }
96
- if (energy_values.length < total_points) {
97
- throw new Error(`Band ${band_idx}: expected ${total_points} values, got ${energy_values.length}`);
98
- }
99
- // Reshape into 3D grid [kx][ky][kz] (preallocated for speed)
100
- const band_grid = new Array(nx);
101
- let val_idx = 0;
102
- for (let ix = 0; ix < nx; ix++) {
103
- const iy_arr = new Array(ny);
104
- for (let iy = 0; iy < ny; iy++) {
105
- const iz_arr = energy_values.slice(val_idx, val_idx + nz);
106
- val_idx += nz;
107
- iy_arr[iy] = iz_arr;
108
- }
109
- band_grid[ix] = iy_arr;
110
- }
111
- energies[0].push(band_grid);
112
- }
113
- // Try to find Fermi energy (often in a comment or as FERMI_ENERGY keyword)
114
- let fermi_energy = 0;
115
- for (const line of lines) {
116
- const lower = line.toLowerCase();
117
- if (lower.includes(`fermi`) && lower.includes(`energy`)) {
118
- // Match patterns like "Fermi Energy = 5.123" or "fermi_energy: -0.5"
119
- const match = /(?:=|:)\s*([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)/i.exec(line);
120
- if (match) {
121
- fermi_energy = parseFloat(match[1]);
122
- break;
123
- }
124
- }
125
- }
126
- return {
127
- energies,
128
- k_grid,
129
- k_lattice: spanning_vectors,
130
- fermi_energy,
131
- n_bands,
132
- n_spins: 1,
133
- origin,
134
- };
135
- }
136
- // Parse FRMSF format used by FermiSurfer
137
- // Format: https://mitsuaki1987.github.io/fermisurfer/en/_build/html/ops.html
138
- function parse_frmsf(content) {
139
- const lines = content
140
- .split(/\r?\n/)
141
- .map((line) => line.trim())
142
- .filter(Boolean);
143
- let line_idx = 0;
144
- // Line 1: grid dimensions (ng[0] ng[1] ng[2])
145
- const grid_dims = parse_ints(lines[line_idx++]);
146
- if (grid_dims.length !== 3) {
147
- throw new Error(`FRMSF: Expected 3 grid dimensions`);
148
- }
149
- const k_grid = [grid_dims[0], grid_dims[1], grid_dims[2]];
150
- // Line 2: lshift (grid shift type)
151
- // 0 = Monkhorst-Pack grid (shifted)
152
- // 1 = Gamma-centered grid
153
- // 2 = Gamma + half grid shift
154
- const lshift = parseInt(lines[line_idx++], 10);
155
- if (isNaN(lshift) || lshift < 0 || lshift > 2) {
156
- throw new Error(`FRMSF: Invalid lshift value (expected 0, 1, or 2)`);
157
- }
158
- // Line 3: number of bands
159
- const n_bands = parseInt(lines[line_idx++], 10);
160
- if (isNaN(n_bands) || n_bands <= 0) {
161
- throw new Error(`FRMSF: Invalid number of bands`);
162
- }
163
- // FRMSF format has single spin channel (no spin-polarized support in standard format)
164
- const n_spins = 1;
165
- // Lines 4-6: reciprocal lattice vectors (in Bohr^-1, convert to Å^-1)
166
- const inv_bohr = 1 / constants.BOHR_TO_ANGSTROM;
167
- const k_lattice = [
168
- parse_floats(lines[line_idx++])
169
- .slice(0, 3)
170
- .map((val) => val * inv_bohr),
171
- parse_floats(lines[line_idx++])
172
- .slice(0, 3)
173
- .map((val) => val * inv_bohr),
174
- parse_floats(lines[line_idx++])
175
- .slice(0, 3)
176
- .map((val) => val * inv_bohr),
177
- ];
178
- const [nx, ny, nz] = k_grid;
179
- const total_points = nx * ny * nz;
180
- // Parse band energies for each spin and band
181
- // FRMSF format: one energy value per line per grid point. Any additional columns
182
- // (e.g. auxiliary color/velocity data) are ignored to prevent grid corruption.
183
- const energies = [];
184
- for (let spin_idx = 0; spin_idx < n_spins; spin_idx++) {
185
- energies[spin_idx] = [];
186
- for (let band_idx = 0; band_idx < n_bands; band_idx++) {
187
- const energy_values = [];
188
- // Read energy values (first value per line only, ignore auxiliary columns)
189
- while (energy_values.length < total_points && line_idx < lines.length) {
190
- const line = lines[line_idx];
191
- const first_token = line?.split(/\s+/)[0];
192
- if (first_token && !isNaN(parseFloat(first_token))) {
193
- energy_values.push(parseFloat(first_token));
194
- line_idx++;
195
- }
196
- else {
197
- break;
198
- }
199
- }
200
- if (energy_values.length < total_points) {
201
- throw new Error(`FRMSF spin ${spin_idx} band ${band_idx}: expected ${total_points} values, got ${energy_values.length}`);
202
- }
203
- // Reshape into 3D grid [kx][ky][kz]
204
- const band_grid = [];
205
- let val_idx = 0;
206
- for (let ix = 0; ix < nx; ix++) {
207
- band_grid[ix] = [];
208
- for (let iy = 0; iy < ny; iy++) {
209
- band_grid[ix][iy] = [];
210
- for (let iz = 0; iz < nz; iz++) {
211
- // FRMSF uses Hartree, convert to eV
212
- band_grid[ix][iy][iz] = energy_values[val_idx++] * constants.HARTREE_TO_EV;
213
- }
214
- }
215
- }
216
- energies[spin_idx].push(band_grid);
217
- }
218
- }
219
- return {
220
- energies,
221
- k_grid,
222
- k_lattice,
223
- fermi_energy: 0, // FRMSF typically expects Fermi level at 0
224
- n_bands,
225
- n_spins,
226
- };
227
- }
228
- // Validate that an object has the required Isosurface shape
229
- function is_valid_isosurface(obj) {
230
- if (!obj || typeof obj !== `object`)
231
- return false;
232
- const isosurface_obj = obj;
233
- const vertices = isosurface_obj.vertices;
234
- const faces = isosurface_obj.faces;
235
- const normals = isosurface_obj.normals;
236
- const band_index = isosurface_obj.band_index;
237
- const spin = isosurface_obj.spin;
238
- if (!Array.isArray(vertices) || vertices.length === 0)
239
- return false;
240
- if (!Array.isArray(faces))
241
- return false;
242
- if (!Array.isArray(normals))
243
- return false;
244
- if (typeof band_index !== `number` || !Number.isFinite(band_index))
245
- return false;
246
- if (spin !== null && spin !== `up` && spin !== `down`)
247
- return false;
248
- return true;
249
- }
250
- // Validate FermiSurfaceData shape
251
- function is_valid_fermi_surface_data(obj) {
252
- if (!obj || typeof obj !== `object`)
253
- return false;
254
- const data = obj;
255
- // Check required fields
256
- if (!Array.isArray(data.isosurfaces))
257
- return false;
258
- if (!Array.isArray(data.k_lattice) || data.k_lattice.length !== 3)
259
- return false;
260
- if (typeof data.fermi_energy !== `number`)
261
- return false;
262
- if (data.reciprocal_cell !== `wigner_seitz` && data.reciprocal_cell !== `parallelepiped`) {
263
- return false;
264
- }
265
- if (!data.metadata || typeof data.metadata !== `object`)
266
- return false;
267
- // Validate each isosurface
268
- for (const iso of data.isosurfaces) {
269
- if (!is_valid_isosurface(iso))
270
- return false;
271
- }
272
- return true;
273
- }
274
- // Parse Matterviz/IFermi JSON format for Fermi surface data
275
- // Throws on invalid input; returns parsed data on success
276
- function parse_fermi_json(content) {
277
- const data = JSON.parse(content);
278
- // Check if it's already in our FermiSurfaceData format with full validation
279
- if (data.isosurfaces && Array.isArray(data.isosurfaces)) {
280
- if (is_valid_fermi_surface_data(data)) {
281
- return data;
282
- }
283
- throw new Error(`Invalid FermiSurfaceData JSON: isosurfaces array present but missing required fields`);
284
- }
285
- // Check if it's IFermi format (isosurfaces is an object keyed by band index)
286
- if (data[`@class`] === `FermiSurface` &&
287
- data.isosurfaces &&
288
- typeof data.isosurfaces === `object`) {
289
- return parse_ifermi_surface(data);
290
- }
291
- // Check if it's BandGridData (raw grid data)
292
- if (data.energies && data.k_grid && data.k_lattice) {
293
- // Minimal validation of required fields
294
- if (!Array.isArray(data.energies) ||
295
- !Array.isArray(data.k_grid) ||
296
- data.k_grid.length !== 3 ||
297
- !Array.isArray(data.k_lattice) ||
298
- data.k_lattice.length !== 3)
299
- throw new Error(`Invalid BandGridData JSON: malformed required fields`);
300
- return data;
301
- }
302
- // Try to extract from nested structure (e.g. IFermi output)
303
- if (data.fermi_surface) {
304
- return data.fermi_surface;
305
- }
306
- if (data.band_structure?.energies || data.bands?.energies) {
307
- const bs = data.band_structure || data.bands;
308
- return {
309
- energies: bs.energies,
310
- k_grid: bs.k_grid || bs.kgrid,
311
- k_lattice: bs.k_lattice || bs.reciprocal_lattice,
312
- fermi_energy: bs.fermi_energy || bs.efermi || 0,
313
- n_bands: bs.n_bands || bs.nbands || bs.energies[0]?.length || 0,
314
- n_spins: bs.n_spins || bs.nspins || bs.energies.length || 1,
315
- };
316
- }
317
- // Check for pymatgen BandStructure format (k-path, not k-grid)
318
- // These files cannot be used for Fermi surface visualization directly
319
- if (data.bs?.[`@class`] === `BandStructure` || data[`@class`] === `BandStructure`) {
320
- throw new Error(`This is a pymatgen BandStructure file (band data along k-path). ` +
321
- `Fermi surface visualization requires a uniform 3D k-grid of eigenvalues. ` +
322
- `Use IFermi or a BXSF/FRMSF file instead.`);
323
- }
324
- throw new Error(`Unrecognized JSON format: missing required fields for Fermi surface data`);
325
- }
326
- // Parse IFermi's JSON output format
327
- function parse_ifermi_surface(data) {
328
- const isosurfaces_obj = data.isosurfaces;
329
- const reciprocal_space = data.reciprocal_space;
330
- // Extract reciprocal lattice
331
- const k_lattice = reciprocal_space?.reciprocal_lattice
332
- ? reciprocal_space.reciprocal_lattice
333
- : [
334
- [1, 0, 0],
335
- [0, 1, 0],
336
- [0, 0, 1],
337
- ];
338
- // Convert IFermi isosurfaces to our format
339
- const isosurfaces = [];
340
- const band_indices = new Set();
341
- let has_spin = false;
342
- for (const [band_key, iso_list] of Object.entries(isosurfaces_obj)) {
343
- const band_index = parseInt(band_key, 10);
344
- // spin is determined by sign: positive = up, negative = down
345
- const spin = band_index < 0 ? `down` : `up`;
346
- const abs_band_idx = Math.abs(band_index);
347
- band_indices.add(abs_band_idx);
348
- if (band_index < 0)
349
- has_spin = true;
350
- for (const ifermi_iso of iso_list) {
351
- const vertices = ifermi_iso.vertices;
352
- const faces = ifermi_iso.faces;
353
- // Compute vertex normals from faces
354
- const normals = compute_vertex_normals(vertices, faces);
355
- // Extract properties if available
356
- let properties;
357
- if (ifermi_iso.properties) {
358
- // IFermi stores properties like fermi_velocity, spin, etc.
359
- const prop_keys = Object.keys(ifermi_iso.properties);
360
- if (prop_keys.length > 0) {
361
- // Use first available property as vertex colors
362
- properties = ifermi_iso.properties[prop_keys[0]];
363
- }
364
- }
365
- // Parse dimensionality
366
- let dimensionality;
367
- if (ifermi_iso.dimensionality) {
368
- const dim = ifermi_iso.dimensionality.toLowerCase();
369
- if (dim.includes(`1d`) || dim === `1d`)
370
- dimensionality = `1D`;
371
- else if (dim.includes(`quasi`) || dim === `quasi-2d`)
372
- dimensionality = `quasi-2D`;
373
- else if (dim.includes(`2d`) || dim === `2d`)
374
- dimensionality = `2D`;
375
- else if (dim.includes(`3d`) || dim === `3d`)
376
- dimensionality = `3D`;
377
- }
378
- // Compute area for this isosurface using fan triangulation for N-gons
379
- let area = 0;
380
- for (const face of faces) {
381
- if (face.length < 3)
382
- continue;
383
- // Validate face indices are within bounds to prevent NaN from undefined vertices
384
- if (face.some((idx) => idx < 0 || idx >= vertices.length))
385
- continue;
386
- // Fan triangulation: for N vertices, create N-2 triangles (0,1,2), (0,2,3), ...
387
- const v0 = vertices[face[0]];
388
- for (let fan_idx = 1; fan_idx < face.length - 1; fan_idx++) {
389
- const v1 = vertices[face[fan_idx]];
390
- const v2 = vertices[face[fan_idx + 1]];
391
- const e1 = [v1[0] - v0[0], v1[1] - v0[1], v1[2] - v0[2]];
392
- const e2 = [v2[0] - v0[0], v2[1] - v0[1], v2[2] - v0[2]];
393
- const cross = [
394
- e1[1] * e2[2] - e1[2] * e2[1],
395
- e1[2] * e2[0] - e1[0] * e2[2],
396
- e1[0] * e2[1] - e1[1] * e2[0],
397
- ];
398
- area += 0.5 * Math.hypot(cross[0], cross[1], cross[2]);
399
- }
400
- }
401
- isosurfaces.push({
402
- vertices,
403
- faces,
404
- normals,
405
- properties,
406
- band_index: abs_band_idx,
407
- spin,
408
- area,
409
- dimensionality,
410
- orientation: ifermi_iso.orientation,
411
- });
412
- }
413
- }
414
- // Compute total surface area
415
- const total_area = isosurfaces.reduce((sum, iso) => sum + (iso.area || 0), 0);
416
- return {
417
- isosurfaces,
418
- k_lattice,
419
- fermi_energy: 0, // IFermi surfaces are typically relative to Fermi level
420
- reciprocal_cell: `wigner_seitz`, // IFermi typically uses Wigner-Seitz cells
421
- metadata: {
422
- n_bands: band_indices.size,
423
- n_surfaces: isosurfaces.length,
424
- total_area,
425
- source_format: `ifermi-json`,
426
- has_spin,
427
- has_velocities: isosurfaces.some((iso) => iso.properties !== undefined),
428
- },
429
- };
430
- }
431
- // Auto-detect file format and parse accordingly
432
- export function parse_fermi_file(content, filename) {
433
- const lower_name = filename?.toLowerCase() || ``;
434
- // Detect by filename extension
435
- if (lower_name.endsWith(`.bxsf`) || lower_name.endsWith(`.bxsf.gz`)) {
436
- try {
437
- return parse_bxsf(content);
438
- }
439
- catch (error) {
440
- console.error(`BXSF parse error:`, error);
441
- return null;
442
- }
443
- }
444
- if (lower_name.endsWith(`.frmsf`) || lower_name.endsWith(`.frmsf.gz`)) {
445
- try {
446
- return parse_frmsf(content);
447
- }
448
- catch (error) {
449
- console.error(`FRMSF parse error:`, error);
450
- return null;
451
- }
452
- }
453
- if (lower_name.endsWith(`.json`) || lower_name.endsWith(`.json.gz`)) {
454
- try {
455
- return parse_fermi_json(content);
456
- }
457
- catch (error) {
458
- console.error(`JSON parse error:`, error);
459
- return null;
460
- }
461
- }
462
- // Try auto-detection based on content
463
- const trimmed = content.trim();
464
- // BXSF format detection
465
- if (trimmed.includes(`BEGIN_BLOCK_BANDGRID_3D`) || trimmed.includes(`BEGIN_BANDGRID_3D`)) {
466
- try {
467
- return parse_bxsf(content);
468
- }
469
- catch (error) {
470
- console.error(`BXSF auto-detect parse error:`, error);
471
- }
472
- }
473
- // JSON format detection
474
- if (trimmed.startsWith(`{`) || trimmed.startsWith(`[`)) {
475
- try {
476
- return parse_fermi_json(content);
477
- }
478
- catch (error) {
479
- console.error(`JSON auto-detect parse error:`, error);
480
- }
481
- }
482
- // FRMSF format detection (starts with grid dimensions)
483
- const first_line = trimmed.split(/\r?\n/)[0];
484
- const first_tokens = first_line.split(/\s+/).filter(Boolean);
485
- if (first_tokens.length === 3 && first_tokens.every((t) => /^\d+$/.test(t))) {
486
- try {
487
- return parse_frmsf(content);
488
- }
489
- catch (error) {
490
- console.error(`FRMSF auto-detect parse error:`, error);
491
- }
492
- }
493
- console.warn(`Could not detect Fermi surface file format for: ${filename}`);
494
- return null;
495
- }
@@ -1,3 +0,0 @@
1
- import type { Matrix4Tuple } from '../math';
2
- export declare const IDENTITY_4x4: Matrix4Tuple;
3
- export declare const OH_SYMMETRY_MATRICES: Matrix4Tuple[];
@@ -1,46 +0,0 @@
1
- // Identity 4x4 matrix (column-major for Three.js)
2
- // oxfmt-ignore
3
- export const IDENTITY_4x4 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
4
- // All permutations of (0, 1, 2) for axis swaps
5
- const AXIS_PERMUTATIONS = [
6
- [0, 1, 2],
7
- [0, 2, 1],
8
- [1, 0, 2],
9
- [1, 2, 0],
10
- [2, 0, 1],
11
- [2, 1, 0],
12
- ];
13
- // All sign combinations for coordinate flips
14
- const SIGN_COMBINATIONS = [
15
- [1, 1, 1],
16
- [1, 1, -1],
17
- [1, -1, 1],
18
- [1, -1, -1],
19
- [-1, 1, 1],
20
- [-1, 1, -1],
21
- [-1, -1, 1],
22
- [-1, -1, -1],
23
- ];
24
- // Generate the 48 symmetry operations of the cubic Oh point group.
25
- // These are all combinations of axis permutations (6) and sign flips (8).
26
- // Used to tile the irreducible BZ to fill the full first Brillouin zone.
27
- function generate_oh_symmetry_matrices() {
28
- const matrices = [];
29
- for (const perm of AXIS_PERMUTATIONS) {
30
- for (const sign of SIGN_COMBINATIONS) {
31
- // Column-major 4x4 matrix: element at (row, col) is at index col*4 + row
32
- const mat = new Array(16).fill(0);
33
- mat[15] = 1; // w component
34
- // Build 3x3 rotation part: M[row][col] = sign[row] if perm[row] === col
35
- for (let col = 0; col < 3; col++) {
36
- for (let row = 0; row < 3; row++) {
37
- mat[col * 4 + row] = perm[row] === col ? sign[row] : 0;
38
- }
39
- }
40
- matrices.push(mat);
41
- }
42
- }
43
- return matrices;
44
- }
45
- // Pre-computed Oh symmetry matrices (48 operations)
46
- export const OH_SYMMETRY_MATRICES = generate_oh_symmetry_matrices();
@@ -1,113 +0,0 @@
1
- import type { Matrix3x3, Vec3 } from '../math';
2
- import type { TooltipConfig, TooltipProp } from '../tooltip';
3
- export type SpinChannel = `up` | `down` | null;
4
- export type RepresentationMode = `solid` | `wireframe` | `transparent`;
5
- export type ColorProperty = `band` | `velocity` | `spin` | `custom`;
6
- export type ReciprocalCellType = `wigner_seitz` | `parallelepiped`;
7
- export type SurfaceDimensionality = `1D` | `2D` | `quasi-2D` | `3D`;
8
- export interface Isosurface {
9
- vertices: Vec3[];
10
- faces: number[][];
11
- normals: Vec3[];
12
- properties?: number[];
13
- vector_properties?: Vec3[];
14
- band_index: number;
15
- spin: SpinChannel;
16
- area?: number;
17
- dimensionality?: SurfaceDimensionality;
18
- orientation?: Vec3 | null;
19
- avg_velocity?: number;
20
- }
21
- export interface FermiSurfaceData {
22
- isosurfaces: Isosurface[];
23
- k_lattice: Matrix3x3;
24
- fermi_energy: number;
25
- reciprocal_cell: ReciprocalCellType;
26
- metadata: FermiSurfaceMetadata;
27
- }
28
- export interface FermiSurfaceMetadata {
29
- n_bands: number;
30
- n_surfaces: number;
31
- total_area: number;
32
- source_format?: string;
33
- source_file?: string;
34
- has_spin?: boolean;
35
- has_velocities?: boolean;
36
- has_spin_texture?: boolean;
37
- is_irreducible?: boolean;
38
- }
39
- export type EnergyGrid5D = number[][][][][];
40
- export type VectorGrid5D = Vec3[][][][][];
41
- export interface BandGridData {
42
- energies: EnergyGrid5D;
43
- k_grid: Vec3;
44
- k_lattice: Matrix3x3;
45
- fermi_energy: number;
46
- velocities?: VectorGrid5D;
47
- spin_texture?: VectorGrid5D;
48
- n_bands: number;
49
- n_spins: number;
50
- origin?: Vec3;
51
- }
52
- export interface FermiSliceData {
53
- isolines: Isoline[];
54
- plane_normal: Vec3;
55
- plane_distance: number;
56
- k_lattice_2d: [Vec3, Vec3];
57
- metadata: {
58
- n_lines: number;
59
- has_properties: boolean;
60
- };
61
- }
62
- export interface Isoline {
63
- points: Vec3[];
64
- points_2d: [number, number][];
65
- properties?: number[];
66
- band_index: number;
67
- spin: SpinChannel;
68
- is_closed: boolean;
69
- }
70
- export interface FermiSurfaceOptions {
71
- mu?: number;
72
- wigner_seitz?: boolean;
73
- compute_velocities?: boolean;
74
- compute_dimensionality?: boolean;
75
- selected_bands?: number[];
76
- selected_spins?: SpinChannel[];
77
- interpolation_factor?: number;
78
- }
79
- export interface FermiSliceOptions {
80
- miller_indices?: Vec3;
81
- distance?: number;
82
- }
83
- export interface FermiFileLoadData {
84
- fermi_data?: FermiSurfaceData;
85
- band_data?: BandGridData;
86
- filename: string;
87
- file_size: number;
88
- }
89
- export interface FermiErrorData {
90
- error_msg: string;
91
- filename?: string;
92
- }
93
- export interface FermiHoverData {
94
- band_index: number;
95
- spin: SpinChannel;
96
- position_cartesian: Vec3;
97
- position_fractional: Vec3 | null;
98
- screen_position: {
99
- x: number;
100
- y: number;
101
- };
102
- surface_color?: string;
103
- property_value?: number;
104
- property_name?: string;
105
- is_tiled?: boolean;
106
- symmetry_index?: number;
107
- }
108
- export type FermiTooltipConfig = TooltipConfig<FermiHoverData>;
109
- export type FermiTooltipProp = TooltipProp<FermiHoverData, [{
110
- hover_data: FermiHoverData;
111
- }]>;
112
- export declare const is_fermi_surface_data: (data: BandGridData | FermiSurfaceData | null) => data is FermiSurfaceData;
113
- export declare const is_band_grid_data: (data: BandGridData | FermiSurfaceData | null) => data is BandGridData;
@@ -1,4 +0,0 @@
1
- // Type guard: checks if parsed result is FermiSurfaceData (has pre-computed isosurfaces)
2
- export const is_fermi_surface_data = (data) => data !== null && `isosurfaces` in data;
3
- // Type guard: checks if parsed result is BandGridData (raw band grid, needs extraction)
4
- export const is_band_grid_data = (data) => data !== null && `energies` in data;