matterviz 0.3.5 → 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 (855) 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/brillouin/BrillouinZone.svelte +549 -0
  14. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +144 -0
  15. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +146 -0
  16. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  17. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +476 -0
  18. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +92 -0
  19. package/dist/src/lib/brillouin/compute.ts +529 -0
  20. package/dist/src/lib/brillouin/index.ts +8 -0
  21. package/dist/src/lib/brillouin/types.ts +51 -0
  22. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +327 -0
  23. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
  24. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
  25. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +94 -0
  26. package/dist/src/lib/chempot-diagram/chempot-worker.ts +11 -0
  27. package/dist/src/lib/chempot-diagram/color.ts +42 -0
  28. package/dist/src/lib/chempot-diagram/compute.ts +1014 -0
  29. package/dist/src/lib/chempot-diagram/index.ts +6 -0
  30. package/dist/src/lib/chempot-diagram/pointer.ts +56 -0
  31. package/dist/src/lib/chempot-diagram/temperature.ts +77 -0
  32. package/dist/src/lib/chempot-diagram/types.ts +130 -0
  33. package/dist/src/lib/colors/index.ts +249 -0
  34. package/dist/src/lib/composition/BarChart.svelte +297 -0
  35. package/dist/src/lib/composition/BubbleChart.svelte +218 -0
  36. package/dist/src/lib/composition/Composition.svelte +165 -0
  37. package/dist/src/lib/composition/Formula.svelte +268 -0
  38. package/dist/src/lib/composition/FormulaFilter.svelte +1257 -0
  39. package/dist/src/lib/composition/PieChart.svelte +323 -0
  40. package/dist/src/lib/composition/format.ts +155 -0
  41. package/dist/src/lib/composition/index.ts +37 -0
  42. package/dist/src/lib/composition/parse.ts +605 -0
  43. package/dist/src/lib/constants.ts +134 -0
  44. package/dist/src/lib/controls.ts +42 -0
  45. package/dist/src/lib/convex-hull/ConvexHull.svelte +157 -0
  46. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +825 -0
  47. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +1801 -0
  48. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +1398 -0
  49. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +535 -0
  50. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +125 -0
  51. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +929 -0
  52. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +131 -0
  53. package/dist/src/lib/convex-hull/GasPressureControls.svelte +247 -0
  54. package/dist/src/lib/convex-hull/StructurePopup.svelte +151 -0
  55. package/dist/src/lib/convex-hull/TemperatureSlider.svelte +140 -0
  56. package/dist/src/lib/convex-hull/barycentric-coords.ts +246 -0
  57. package/dist/src/lib/convex-hull/demo-temperature.ts +63 -0
  58. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +405 -0
  59. package/dist/src/lib/convex-hull/helpers.ts +932 -0
  60. package/dist/src/lib/convex-hull/index.ts +202 -0
  61. package/dist/src/lib/convex-hull/thermodynamics.ts +2192 -0
  62. package/dist/src/lib/convex-hull/types.ts +267 -0
  63. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +311 -0
  64. package/dist/src/lib/coordination/calc-coordination.ts +93 -0
  65. package/dist/src/lib/coordination/index.ts +9 -0
  66. package/dist/src/lib/effects.svelte.ts +48 -0
  67. package/dist/src/lib/element/BohrAtom.svelte +147 -0
  68. package/dist/src/lib/element/ElementHeading.svelte +26 -0
  69. package/dist/src/lib/element/ElementPhoto.svelte +57 -0
  70. package/dist/src/lib/element/ElementStats.svelte +80 -0
  71. package/dist/src/lib/element/ElementTile.svelte +484 -0
  72. package/dist/src/lib/element/data.json.gz.d.ts +4 -0
  73. package/dist/src/lib/element/data.ts +14 -0
  74. package/dist/src/lib/element/index.ts +8 -0
  75. package/dist/src/lib/element/types.ts +62 -0
  76. package/dist/src/lib/feedback/ClickFeedback.svelte +58 -0
  77. package/dist/src/lib/feedback/DragOverlay.svelte +42 -0
  78. package/dist/src/lib/feedback/index.ts +4 -0
  79. package/dist/src/lib/fermi-surface/FermiSlice.svelte +189 -0
  80. package/dist/src/lib/fermi-surface/FermiSurface.svelte +600 -0
  81. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +448 -0
  82. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +794 -0
  83. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
  84. package/dist/src/lib/fermi-surface/compute.ts +728 -0
  85. package/dist/src/lib/fermi-surface/constants.ts +32 -0
  86. package/dist/src/lib/fermi-surface/export.ts +64 -0
  87. package/dist/src/lib/fermi-surface/index.ts +14 -0
  88. package/dist/src/lib/fermi-surface/marching-cubes.ts +3 -0
  89. package/dist/src/lib/fermi-surface/parse.ts +574 -0
  90. package/dist/src/lib/fermi-surface/symmetry.ts +56 -0
  91. package/dist/src/lib/fermi-surface/types.ts +159 -0
  92. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
  93. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  94. package/dist/src/lib/heatmap-matrix/index.ts +167 -0
  95. package/dist/src/lib/heatmap-matrix/shared.ts +7 -0
  96. package/dist/src/lib/icons.ts +650 -0
  97. package/dist/src/lib/index.ts +61 -0
  98. package/dist/src/lib/io/decompress.ts +92 -0
  99. package/dist/src/lib/io/export.ts +385 -0
  100. package/dist/src/lib/io/fetch.ts +46 -0
  101. package/dist/src/lib/io/file-drop.ts +51 -0
  102. package/dist/src/lib/io/index.ts +7 -0
  103. package/dist/src/lib/io/is-binary.ts +24 -0
  104. package/dist/src/lib/io/types.ts +8 -0
  105. package/dist/src/lib/io/url-drop.ts +141 -0
  106. package/dist/src/lib/isosurface/Isosurface.svelte +285 -0
  107. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +277 -0
  108. package/dist/src/lib/isosurface/index.ts +7 -0
  109. package/dist/src/lib/isosurface/parse.ts +656 -0
  110. package/dist/src/lib/isosurface/slice.ts +175 -0
  111. package/dist/src/lib/isosurface/types.ts +309 -0
  112. package/dist/src/lib/labels.ts +320 -0
  113. package/dist/src/lib/layout/FullscreenToggle.svelte +50 -0
  114. package/dist/src/lib/layout/InfoCard.svelte +120 -0
  115. package/dist/src/lib/layout/InfoTag.svelte +185 -0
  116. package/dist/src/lib/layout/PropertyFilter.svelte +246 -0
  117. package/dist/src/lib/layout/SettingsSection.svelte +148 -0
  118. package/dist/src/lib/layout/SubpageGrid.svelte +82 -0
  119. package/dist/src/lib/layout/fullscreen.ts +65 -0
  120. package/dist/src/lib/layout/index.ts +11 -0
  121. package/dist/src/lib/layout/json-tree/JsonNode.svelte +548 -0
  122. package/dist/src/lib/layout/json-tree/JsonTree.svelte +1230 -0
  123. package/dist/src/lib/layout/json-tree/JsonValue.svelte +334 -0
  124. package/dist/src/lib/layout/json-tree/index.ts +3 -0
  125. package/dist/src/lib/layout/json-tree/types.ts +126 -0
  126. package/dist/src/lib/layout/json-tree/utils.ts +682 -0
  127. package/dist/src/lib/marching-cubes.ts +614 -0
  128. package/dist/src/lib/math.ts +1081 -0
  129. package/dist/src/lib/overlays/ContextMenu.svelte +162 -0
  130. package/dist/src/lib/overlays/CopyButton.svelte +45 -0
  131. package/dist/src/lib/overlays/DragControlTab.svelte +98 -0
  132. package/dist/src/lib/overlays/DraggablePane.svelte +487 -0
  133. package/dist/src/lib/overlays/InfoPaneCards.svelte +149 -0
  134. package/dist/src/lib/overlays/index.ts +3 -0
  135. package/dist/src/lib/periodic-table/PeriodicTable.svelte +469 -0
  136. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +557 -0
  137. package/dist/src/lib/periodic-table/PropertySelect.svelte +37 -0
  138. package/dist/src/lib/periodic-table/index.ts +12 -0
  139. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
  140. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +444 -0
  141. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
  142. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  143. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  144. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +203 -0
  145. package/dist/src/lib/phase-diagram/build-diagram.ts +186 -0
  146. package/dist/src/lib/phase-diagram/colors.ts +58 -0
  147. package/dist/src/lib/phase-diagram/diagram-input.ts +40 -0
  148. package/dist/src/lib/phase-diagram/index.ts +13 -0
  149. package/dist/src/lib/phase-diagram/parse.ts +348 -0
  150. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +1023 -0
  151. package/dist/src/lib/phase-diagram/types.ts +144 -0
  152. package/dist/src/lib/phase-diagram/utils.ts +775 -0
  153. package/dist/src/lib/plot/AxisLabel.svelte +51 -0
  154. package/dist/src/lib/plot/BarPlot.svelte +2113 -0
  155. package/dist/src/lib/plot/BarPlotControls.svelte +66 -0
  156. package/dist/src/lib/plot/BinnedScatterPlot.svelte +1114 -0
  157. package/dist/src/lib/plot/ColorBar.svelte +721 -0
  158. package/dist/src/lib/plot/ColorScaleSelect.svelte +54 -0
  159. package/dist/src/lib/plot/ElementScatter.svelte +63 -0
  160. package/dist/src/lib/plot/FillArea.svelte +223 -0
  161. package/dist/src/lib/plot/Histogram.svelte +1558 -0
  162. package/dist/src/lib/plot/HistogramControls.svelte +212 -0
  163. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +96 -0
  164. package/dist/src/lib/plot/Line.svelte +84 -0
  165. package/dist/src/lib/plot/PlotAxis.svelte +169 -0
  166. package/dist/src/lib/plot/PlotControls.svelte +537 -0
  167. package/dist/src/lib/plot/PlotLegend.svelte +569 -0
  168. package/dist/src/lib/plot/PlotTooltip.svelte +67 -0
  169. package/dist/src/lib/plot/PortalSelect.svelte +253 -0
  170. package/dist/src/lib/plot/ReferenceLine3D.svelte +156 -0
  171. package/dist/src/lib/plot/ReferencePlane.svelte +175 -0
  172. package/dist/src/lib/plot/ScatterPlot.svelte +2778 -0
  173. package/dist/src/lib/plot/ScatterPlot3D.svelte +529 -0
  174. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +437 -0
  175. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +912 -0
  176. package/dist/src/lib/plot/ScatterPlotControls.svelte +306 -0
  177. package/dist/src/lib/plot/ScatterPoint.svelte +182 -0
  178. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +293 -0
  179. package/dist/src/lib/plot/Surface3D.svelte +197 -0
  180. package/dist/src/lib/plot/ZeroLines.svelte +97 -0
  181. package/dist/src/lib/plot/ZoomRect.svelte +23 -0
  182. package/dist/src/lib/plot/adaptive-density.ts +316 -0
  183. package/dist/src/lib/plot/auto-place.ts +184 -0
  184. package/dist/src/lib/plot/axis-utils.ts +122 -0
  185. package/dist/src/lib/plot/binned-scatter-types.ts +83 -0
  186. package/dist/src/lib/plot/data-cleaning.ts +1069 -0
  187. package/dist/src/lib/plot/data-transform.ts +69 -0
  188. package/dist/src/lib/plot/defaults.ts +9 -0
  189. package/dist/src/lib/plot/fill-utils.ts +494 -0
  190. package/dist/src/lib/plot/hover-lock.svelte.ts +60 -0
  191. package/dist/src/lib/plot/index.ts +53 -0
  192. package/dist/src/lib/plot/interactions.ts +119 -0
  193. package/dist/src/lib/plot/layout.ts +425 -0
  194. package/dist/src/lib/plot/reference-line.ts +426 -0
  195. package/dist/src/lib/plot/scales.ts +654 -0
  196. package/dist/src/lib/plot/svg.ts +23 -0
  197. package/dist/src/lib/plot/types.ts +1144 -0
  198. package/dist/src/lib/plot/utils/label-placement.ts +541 -0
  199. package/dist/src/lib/plot/utils/series-visibility.ts +140 -0
  200. package/dist/src/lib/plot/utils.ts +11 -0
  201. package/dist/src/lib/rdf/RdfPlot.svelte +247 -0
  202. package/dist/src/lib/rdf/calc-rdf.ts +167 -0
  203. package/dist/src/lib/rdf/index.ts +27 -0
  204. package/dist/src/lib/sanitize.ts +126 -0
  205. package/dist/src/lib/settings.ts +1479 -0
  206. package/dist/src/lib/spectral/Bands.svelte +1040 -0
  207. package/dist/src/lib/spectral/BandsAndDos.svelte +134 -0
  208. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +252 -0
  209. package/dist/src/lib/spectral/Dos.svelte +697 -0
  210. package/dist/src/lib/spectral/helpers.ts +1381 -0
  211. package/dist/src/lib/spectral/index.ts +8 -0
  212. package/dist/src/lib/spectral/types.ts +112 -0
  213. package/dist/src/lib/state.svelte.ts +64 -0
  214. package/dist/src/lib/structure/Arrow.svelte +72 -0
  215. package/dist/src/lib/structure/AtomLegend.svelte +815 -0
  216. package/dist/src/lib/structure/Bond.svelte +140 -0
  217. package/dist/src/lib/structure/CanvasTooltip.svelte +33 -0
  218. package/dist/src/lib/structure/CellSelect.svelte +349 -0
  219. package/dist/src/lib/structure/Cylinder.svelte +45 -0
  220. package/dist/src/lib/structure/Lattice.svelte +196 -0
  221. package/dist/src/lib/structure/Structure.svelte +2248 -0
  222. package/dist/src/lib/structure/StructureControls.svelte +1273 -0
  223. package/dist/src/lib/structure/StructureExportPane.svelte +252 -0
  224. package/dist/src/lib/structure/StructureInfoPane.svelte +737 -0
  225. package/dist/src/lib/structure/StructureScene.svelte +2255 -0
  226. package/dist/src/lib/structure/atom-properties.ts +316 -0
  227. package/dist/src/lib/structure/bond-order-perception.ts +447 -0
  228. package/dist/src/lib/structure/bonding.ts +944 -0
  229. package/dist/src/lib/structure/export.ts +861 -0
  230. package/dist/src/lib/structure/index.ts +291 -0
  231. package/dist/src/lib/structure/label-placement.ts +130 -0
  232. package/dist/src/lib/structure/measure.ts +45 -0
  233. package/dist/src/lib/structure/parse.ts +1705 -0
  234. package/dist/src/lib/structure/partial-occupancy.ts +183 -0
  235. package/dist/src/lib/structure/pbc.ts +164 -0
  236. package/dist/src/lib/structure/supercell.ts +226 -0
  237. package/dist/src/lib/structure/validation.ts +11 -0
  238. package/dist/src/lib/symmetry/SymmetryStats.svelte +226 -0
  239. package/dist/src/lib/symmetry/WyckoffTable.svelte +120 -0
  240. package/dist/src/lib/symmetry/cell-transform.ts +118 -0
  241. package/dist/src/lib/symmetry/index.ts +348 -0
  242. package/dist/src/lib/symmetry/spacegroups.ts +404 -0
  243. package/dist/src/lib/table/HeatmapTable.svelte +1833 -0
  244. package/dist/src/lib/table/ToggleMenu.svelte +385 -0
  245. package/dist/src/lib/table/index.ts +139 -0
  246. package/dist/src/lib/theme/ThemeControl.svelte +53 -0
  247. package/dist/src/lib/theme/index.ts +107 -0
  248. package/dist/src/lib/theme/themes.mjs +297 -0
  249. package/dist/src/lib/time.ts +71 -0
  250. package/dist/src/lib/tooltip/TooltipContent.svelte +58 -0
  251. package/dist/src/lib/tooltip/index.ts +2 -0
  252. package/dist/src/lib/tooltip/types.ts +13 -0
  253. package/dist/src/lib/trajectory/Trajectory.svelte +1545 -0
  254. package/dist/src/lib/trajectory/TrajectoryError.svelte +128 -0
  255. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +357 -0
  256. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +313 -0
  257. package/dist/src/lib/trajectory/constants.ts +7 -0
  258. package/dist/src/lib/trajectory/extract.ts +196 -0
  259. package/dist/src/lib/trajectory/format-detect.ts +96 -0
  260. package/dist/src/lib/trajectory/frame-reader.ts +456 -0
  261. package/dist/src/lib/trajectory/helpers.ts +217 -0
  262. package/dist/src/lib/trajectory/index.ts +218 -0
  263. package/dist/src/lib/trajectory/parse/ase.ts +109 -0
  264. package/dist/src/lib/trajectory/parse/hdf5.ts +173 -0
  265. package/dist/src/lib/trajectory/parse/index.ts +411 -0
  266. package/dist/src/lib/trajectory/parse/lammps.ts +215 -0
  267. package/dist/src/lib/trajectory/parse/vasp.ts +102 -0
  268. package/dist/src/lib/trajectory/parse/xyz.ts +143 -0
  269. package/dist/src/lib/trajectory/plotting.ts +599 -0
  270. package/dist/src/lib/trajectory/types.ts +13 -0
  271. package/dist/src/lib/utils.ts +56 -0
  272. package/dist/src/lib/xrd/XrdPlot.svelte +615 -0
  273. package/dist/src/lib/xrd/broadening.ts +130 -0
  274. package/dist/src/lib/xrd/calc-xrd.ts +397 -0
  275. package/dist/src/lib/xrd/index.ts +38 -0
  276. package/dist/src/lib/xrd/parse.ts +858 -0
  277. package/dist/webview.js +29421 -0
  278. package/icon.png +0 -0
  279. package/license +1 -1
  280. package/matterviz-0.3.2.vsix +0 -0
  281. package/matterviz-0.3.4.vsix +0 -0
  282. package/matterviz-0.3.5.vsix +0 -0
  283. package/package.json +1460 -215
  284. package/readme.md +171 -98
  285. package/scripts/sync-config.ts +101 -0
  286. package/src/declarations.d.ts +2 -0
  287. package/src/extension.ts +972 -0
  288. package/src/node-io.ts +65 -0
  289. package/src/types.ts +17 -0
  290. package/src/webview/JsonBrowser.svelte +1079 -0
  291. package/src/webview/PlotPanel.svelte +346 -0
  292. package/src/webview/detect.ts +444 -0
  293. package/src/webview/main.ts +764 -0
  294. package/src/webview/plot-utils.ts +250 -0
  295. package/test-fixtures/all-viz-types.json.gz +0 -0
  296. package/test-fixtures/plot-demo-data.json.gz +0 -0
  297. package/tests/detect.test.ts +604 -0
  298. package/tests/extension.test.ts +2041 -0
  299. package/tests/node-io.test.ts +39 -0
  300. package/tests/plot-utils.test.ts +302 -0
  301. package/tests/vite-plugin-json-gz.test.ts +114 -0
  302. package/tests/vscode-mock.ts +18 -0
  303. package/tests/webview.test.ts +231 -0
  304. package/tsconfig.json +20 -0
  305. package/vite-plugin-json-gz.ts +29 -0
  306. package/vite.config.ts +34 -0
  307. package/vite.extension.config.ts +34 -0
  308. package/dist/EmptyState.svelte.d.ts +0 -9
  309. package/dist/FilePicker.svelte +0 -360
  310. package/dist/FilePicker.svelte.d.ts +0 -17
  311. package/dist/Icon.svelte.d.ts +0 -13
  312. package/dist/MillerIndexInput.svelte +0 -66
  313. package/dist/MillerIndexInput.svelte.d.ts +0 -7
  314. package/dist/api/mp.d.ts +0 -6
  315. package/dist/api/mp.js +0 -22
  316. package/dist/api/optimade.d.ts +0 -45
  317. package/dist/api/optimade.js +0 -135
  318. package/dist/brillouin/BrillouinZone.svelte +0 -546
  319. package/dist/brillouin/BrillouinZone.svelte.d.ts +0 -83
  320. package/dist/brillouin/BrillouinZoneControls.svelte +0 -144
  321. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +0 -17
  322. package/dist/brillouin/BrillouinZoneExportPane.svelte +0 -148
  323. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +0 -15
  324. package/dist/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  325. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +0 -13
  326. package/dist/brillouin/BrillouinZoneScene.svelte +0 -476
  327. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +0 -48
  328. package/dist/brillouin/BrillouinZoneTooltip.svelte +0 -92
  329. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +0 -8
  330. package/dist/brillouin/compute.d.ts +0 -17
  331. package/dist/brillouin/compute.js +0 -426
  332. package/dist/brillouin/index.d.ts +0 -8
  333. package/dist/brillouin/index.js +0 -8
  334. package/dist/brillouin/types.d.ts +0 -48
  335. package/dist/brillouin/types.js +0 -1
  336. package/dist/chempot-diagram/ChemPotDiagram.svelte +0 -327
  337. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +0 -13
  338. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +0 -847
  339. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +0 -16
  340. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +0 -3194
  341. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +0 -16
  342. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +0 -7
  343. package/dist/chempot-diagram/async-compute.svelte.d.ts +0 -3
  344. package/dist/chempot-diagram/async-compute.svelte.js +0 -78
  345. package/dist/chempot-diagram/chempot-worker.d.ts +0 -1
  346. package/dist/chempot-diagram/chempot-worker.js +0 -11
  347. package/dist/chempot-diagram/color.d.ts +0 -10
  348. package/dist/chempot-diagram/color.js +0 -32
  349. package/dist/chempot-diagram/compute.d.ts +0 -48
  350. package/dist/chempot-diagram/compute.js +0 -812
  351. package/dist/chempot-diagram/index.d.ts +0 -6
  352. package/dist/chempot-diagram/index.js +0 -6
  353. package/dist/chempot-diagram/pointer.d.ts +0 -16
  354. package/dist/chempot-diagram/pointer.js +0 -40
  355. package/dist/chempot-diagram/temperature.d.ts +0 -15
  356. package/dist/chempot-diagram/temperature.js +0 -36
  357. package/dist/chempot-diagram/types.d.ts +0 -86
  358. package/dist/chempot-diagram/types.js +0 -28
  359. package/dist/colors/index.d.ts +0 -47
  360. package/dist/colors/index.js +0 -203
  361. package/dist/composition/BarChart.svelte +0 -297
  362. package/dist/composition/BarChart.svelte.d.ts +0 -39
  363. package/dist/composition/BubbleChart.svelte +0 -218
  364. package/dist/composition/BubbleChart.svelte.d.ts +0 -28
  365. package/dist/composition/Composition.svelte +0 -164
  366. package/dist/composition/Composition.svelte.d.ts +0 -15
  367. package/dist/composition/Formula.svelte +0 -265
  368. package/dist/composition/Formula.svelte.d.ts +0 -19
  369. package/dist/composition/FormulaFilter.svelte +0 -1259
  370. package/dist/composition/FormulaFilter.svelte.d.ts +0 -51
  371. package/dist/composition/PieChart.svelte +0 -323
  372. package/dist/composition/PieChart.svelte.d.ts +0 -37
  373. package/dist/composition/format.d.ts +0 -15
  374. package/dist/composition/format.js +0 -109
  375. package/dist/composition/index.d.ts +0 -20
  376. package/dist/composition/index.js +0 -14
  377. package/dist/composition/parse.d.ts +0 -55
  378. package/dist/composition/parse.js +0 -459
  379. package/dist/constants.d.ts +0 -29
  380. package/dist/constants.js +0 -99
  381. package/dist/controls.d.ts +0 -14
  382. package/dist/controls.js +0 -30
  383. package/dist/convex-hull/ConvexHull.svelte +0 -157
  384. package/dist/convex-hull/ConvexHull.svelte.d.ts +0 -13
  385. package/dist/convex-hull/ConvexHull2D.svelte +0 -814
  386. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +0 -11
  387. package/dist/convex-hull/ConvexHull3D.svelte +0 -1790
  388. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +0 -8
  389. package/dist/convex-hull/ConvexHull4D.svelte +0 -1386
  390. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +0 -8
  391. package/dist/convex-hull/ConvexHullControls.svelte +0 -546
  392. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +0 -48
  393. package/dist/convex-hull/ConvexHullInfoPane.svelte +0 -122
  394. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +0 -18
  395. package/dist/convex-hull/ConvexHullStats.svelte +0 -922
  396. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +0 -15
  397. package/dist/convex-hull/ConvexHullTooltip.svelte +0 -131
  398. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +0 -33
  399. package/dist/convex-hull/GasPressureControls.svelte +0 -247
  400. package/dist/convex-hull/GasPressureControls.svelte.d.ts +0 -11
  401. package/dist/convex-hull/StructurePopup.svelte +0 -116
  402. package/dist/convex-hull/StructurePopup.svelte.d.ts +0 -18
  403. package/dist/convex-hull/TemperatureSlider.svelte +0 -137
  404. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +0 -8
  405. package/dist/convex-hull/barycentric-coords.d.ts +0 -18
  406. package/dist/convex-hull/barycentric-coords.js +0 -182
  407. package/dist/convex-hull/demo-temperature.d.ts +0 -6
  408. package/dist/convex-hull/demo-temperature.js +0 -40
  409. package/dist/convex-hull/gas-thermodynamics.d.ts +0 -16
  410. package/dist/convex-hull/gas-thermodynamics.js +0 -316
  411. package/dist/convex-hull/helpers.d.ts +0 -103
  412. package/dist/convex-hull/helpers.js +0 -689
  413. package/dist/convex-hull/index.d.ts +0 -118
  414. package/dist/convex-hull/index.js +0 -57
  415. package/dist/convex-hull/thermodynamics.d.ts +0 -66
  416. package/dist/convex-hull/thermodynamics.js +0 -1752
  417. package/dist/convex-hull/types.d.ts +0 -162
  418. package/dist/convex-hull/types.js +0 -36
  419. package/dist/coordination/CoordinationBarPlot.svelte +0 -311
  420. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +0 -30
  421. package/dist/coordination/calc-coordination.d.ts +0 -15
  422. package/dist/coordination/calc-coordination.js +0 -63
  423. package/dist/coordination/index.d.ts +0 -8
  424. package/dist/coordination/index.js +0 -7
  425. package/dist/element/BohrAtom.svelte +0 -147
  426. package/dist/element/BohrAtom.svelte.d.ts +0 -20
  427. package/dist/element/ElementHeading.svelte +0 -26
  428. package/dist/element/ElementHeading.svelte.d.ts +0 -8
  429. package/dist/element/ElementPhoto.svelte +0 -57
  430. package/dist/element/ElementPhoto.svelte.d.ts +0 -9
  431. package/dist/element/ElementStats.svelte +0 -80
  432. package/dist/element/ElementStats.svelte.d.ts +0 -8
  433. package/dist/element/ElementTile.svelte +0 -484
  434. package/dist/element/ElementTile.svelte.d.ts +0 -29
  435. package/dist/element/Nucleus.svelte.d.ts +0 -17
  436. package/dist/element/data.d.ts +0 -2
  437. package/dist/element/data.js +0 -2
  438. package/dist/element/data.json.gz.d.ts +0 -2
  439. package/dist/element/index.d.ts +0 -8
  440. package/dist/element/index.js +0 -8
  441. package/dist/element/types.d.ts +0 -57
  442. package/dist/element/types.js +0 -1
  443. package/dist/feedback/ClickFeedback.svelte +0 -58
  444. package/dist/feedback/ClickFeedback.svelte.d.ts +0 -12
  445. package/dist/feedback/DragOverlay.svelte +0 -42
  446. package/dist/feedback/DragOverlay.svelte.d.ts +0 -7
  447. package/dist/feedback/Spinner.svelte.d.ts +0 -7
  448. package/dist/feedback/StatusMessage.svelte.d.ts +0 -9
  449. package/dist/feedback/index.d.ts +0 -4
  450. package/dist/feedback/index.js +0 -4
  451. package/dist/fermi-surface/FermiSlice.svelte +0 -189
  452. package/dist/fermi-surface/FermiSlice.svelte.d.ts +0 -24
  453. package/dist/fermi-surface/FermiSurface.svelte +0 -600
  454. package/dist/fermi-surface/FermiSurface.svelte.d.ts +0 -83
  455. package/dist/fermi-surface/FermiSurfaceControls.svelte +0 -452
  456. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +0 -35
  457. package/dist/fermi-surface/FermiSurfaceScene.svelte +0 -792
  458. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +0 -50
  459. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  460. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +0 -8
  461. package/dist/fermi-surface/compute.d.ts +0 -5
  462. package/dist/fermi-surface/compute.js +0 -538
  463. package/dist/fermi-surface/constants.d.ts +0 -9
  464. package/dist/fermi-surface/constants.js +0 -27
  465. package/dist/fermi-surface/export.d.ts +0 -5
  466. package/dist/fermi-surface/export.js +0 -63
  467. package/dist/fermi-surface/index.d.ts +0 -12
  468. package/dist/fermi-surface/index.js +0 -13
  469. package/dist/fermi-surface/marching-cubes.d.ts +0 -2
  470. package/dist/fermi-surface/marching-cubes.js +0 -2
  471. package/dist/fermi-surface/parse.d.ts +0 -2
  472. package/dist/fermi-surface/parse.js +0 -495
  473. package/dist/fermi-surface/symmetry.d.ts +0 -3
  474. package/dist/fermi-surface/symmetry.js +0 -46
  475. package/dist/fermi-surface/types.d.ts +0 -113
  476. package/dist/fermi-surface/types.js +0 -4
  477. package/dist/heatmap-matrix/HeatmapMatrix.svelte +0 -1527
  478. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +0 -110
  479. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  480. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +0 -30
  481. package/dist/heatmap-matrix/index.d.ts +0 -53
  482. package/dist/heatmap-matrix/index.js +0 -100
  483. package/dist/heatmap-matrix/shared.d.ts +0 -2
  484. package/dist/heatmap-matrix/shared.js +0 -4
  485. package/dist/icons.d.ts +0 -569
  486. package/dist/icons.js +0 -648
  487. package/dist/index.d.ts +0 -39
  488. package/dist/index.js +0 -39
  489. package/dist/io/decompress.d.ts +0 -10
  490. package/dist/io/decompress.js +0 -74
  491. package/dist/io/export.d.ts +0 -16
  492. package/dist/io/export.js +0 -316
  493. package/dist/io/fetch.d.ts +0 -5
  494. package/dist/io/fetch.js +0 -39
  495. package/dist/io/file-drop.d.ts +0 -7
  496. package/dist/io/file-drop.js +0 -43
  497. package/dist/io/index.d.ts +0 -7
  498. package/dist/io/index.js +0 -7
  499. package/dist/io/is-binary.d.ts +0 -1
  500. package/dist/io/is-binary.js +0 -20
  501. package/dist/io/types.d.ts +0 -8
  502. package/dist/io/types.js +0 -1
  503. package/dist/io/url-drop.d.ts +0 -2
  504. package/dist/io/url-drop.js +0 -117
  505. package/dist/isosurface/Isosurface.svelte +0 -285
  506. package/dist/isosurface/Isosurface.svelte.d.ts +0 -8
  507. package/dist/isosurface/IsosurfaceControls.svelte +0 -291
  508. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +0 -9
  509. package/dist/isosurface/index.d.ts +0 -5
  510. package/dist/isosurface/index.js +0 -6
  511. package/dist/isosurface/parse.d.ts +0 -6
  512. package/dist/isosurface/parse.js +0 -553
  513. package/dist/isosurface/slice.d.ts +0 -11
  514. package/dist/isosurface/slice.js +0 -140
  515. package/dist/isosurface/types.d.ts +0 -56
  516. package/dist/isosurface/types.js +0 -227
  517. package/dist/labels.d.ts +0 -53
  518. package/dist/labels.js +0 -274
  519. package/dist/layout/FullscreenToggle.svelte +0 -50
  520. package/dist/layout/FullscreenToggle.svelte.d.ts +0 -7
  521. package/dist/layout/InfoCard.svelte +0 -120
  522. package/dist/layout/InfoCard.svelte.d.ts +0 -21
  523. package/dist/layout/InfoTag.svelte +0 -183
  524. package/dist/layout/InfoTag.svelte.d.ts +0 -19
  525. package/dist/layout/PropertyFilter.svelte +0 -244
  526. package/dist/layout/PropertyFilter.svelte.d.ts +0 -24
  527. package/dist/layout/SettingsSection.svelte +0 -148
  528. package/dist/layout/SettingsSection.svelte.d.ts +0 -17
  529. package/dist/layout/SubpageGrid.svelte +0 -82
  530. package/dist/layout/SubpageGrid.svelte.d.ts +0 -14
  531. package/dist/layout/fullscreen.d.ts +0 -9
  532. package/dist/layout/fullscreen.js +0 -53
  533. package/dist/layout/index.d.ts +0 -10
  534. package/dist/layout/index.js +0 -8
  535. package/dist/layout/json-tree/JsonNode.svelte +0 -548
  536. package/dist/layout/json-tree/JsonNode.svelte.d.ts +0 -11
  537. package/dist/layout/json-tree/JsonTree.svelte +0 -1222
  538. package/dist/layout/json-tree/JsonTree.svelte.d.ts +0 -6
  539. package/dist/layout/json-tree/JsonValue.svelte +0 -334
  540. package/dist/layout/json-tree/JsonValue.svelte.d.ts +0 -9
  541. package/dist/layout/json-tree/index.d.ts +0 -3
  542. package/dist/layout/json-tree/index.js +0 -3
  543. package/dist/layout/json-tree/types.d.ts +0 -73
  544. package/dist/layout/json-tree/types.js +0 -3
  545. package/dist/layout/json-tree/utils.d.ts +0 -29
  546. package/dist/layout/json-tree/utils.js +0 -649
  547. package/dist/marching-cubes.d.ts +0 -14
  548. package/dist/marching-cubes.js +0 -542
  549. package/dist/math.d.ts +0 -91
  550. package/dist/math.js +0 -896
  551. package/dist/overlays/ContextMenu.svelte +0 -162
  552. package/dist/overlays/ContextMenu.svelte.d.ts +0 -25
  553. package/dist/overlays/CopyButton.svelte +0 -45
  554. package/dist/overlays/CopyButton.svelte.d.ts +0 -8
  555. package/dist/overlays/DraggablePane.svelte +0 -564
  556. package/dist/overlays/DraggablePane.svelte.d.ts +0 -36
  557. package/dist/overlays/InfoPaneCards.svelte +0 -149
  558. package/dist/overlays/InfoPaneCards.svelte.d.ts +0 -22
  559. package/dist/overlays/index.d.ts +0 -2
  560. package/dist/overlays/index.js +0 -2
  561. package/dist/periodic-table/PeriodicTable.svelte +0 -469
  562. package/dist/periodic-table/PeriodicTable.svelte.d.ts +0 -55
  563. package/dist/periodic-table/PeriodicTableControls.svelte +0 -557
  564. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +0 -24
  565. package/dist/periodic-table/PropertySelect.svelte +0 -37
  566. package/dist/periodic-table/PropertySelect.svelte.d.ts +0 -13
  567. package/dist/periodic-table/TableInset.svelte.d.ts +0 -9
  568. package/dist/periodic-table/index.d.ts +0 -10
  569. package/dist/periodic-table/index.js +0 -4
  570. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1084
  571. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +0 -44
  572. package/dist/phase-diagram/PhaseDiagramControls.svelte +0 -449
  573. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +0 -30
  574. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  575. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +0 -15
  576. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +0 -192
  577. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +0 -19
  578. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +0 -392
  579. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +0 -16
  580. package/dist/phase-diagram/TdbInfoPanel.svelte +0 -203
  581. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +0 -12
  582. package/dist/phase-diagram/build-diagram.d.ts +0 -11
  583. package/dist/phase-diagram/build-diagram.js +0 -167
  584. package/dist/phase-diagram/colors.d.ts +0 -35
  585. package/dist/phase-diagram/colors.js +0 -51
  586. package/dist/phase-diagram/diagram-input.d.ts +0 -33
  587. package/dist/phase-diagram/diagram-input.js +0 -3
  588. package/dist/phase-diagram/index.d.ts +0 -13
  589. package/dist/phase-diagram/index.js +0 -13
  590. package/dist/phase-diagram/parse.d.ts +0 -55
  591. package/dist/phase-diagram/parse.js +0 -276
  592. package/dist/phase-diagram/svg-to-diagram.d.ts +0 -2
  593. package/dist/phase-diagram/svg-to-diagram.js +0 -867
  594. package/dist/phase-diagram/types.d.ts +0 -99
  595. package/dist/phase-diagram/types.js +0 -1
  596. package/dist/phase-diagram/utils.d.ts +0 -118
  597. package/dist/phase-diagram/utils.js +0 -606
  598. package/dist/plot/AxisLabel.svelte +0 -51
  599. package/dist/plot/AxisLabel.svelte.d.ts +0 -16
  600. package/dist/plot/BarPlot.svelte +0 -2265
  601. package/dist/plot/BarPlot.svelte.d.ts +0 -83
  602. package/dist/plot/BarPlotControls.svelte +0 -66
  603. package/dist/plot/BarPlotControls.svelte.d.ts +0 -18
  604. package/dist/plot/ColorBar.svelte +0 -719
  605. package/dist/plot/ColorBar.svelte.d.ts +0 -31
  606. package/dist/plot/ColorScaleSelect.svelte +0 -54
  607. package/dist/plot/ColorScaleSelect.svelte.d.ts +0 -15
  608. package/dist/plot/ElementScatter.svelte +0 -63
  609. package/dist/plot/ElementScatter.svelte.d.ts +0 -14
  610. package/dist/plot/FillArea.svelte +0 -225
  611. package/dist/plot/FillArea.svelte.d.ts +0 -21
  612. package/dist/plot/Histogram.svelte +0 -1672
  613. package/dist/plot/Histogram.svelte.d.ts +0 -50
  614. package/dist/plot/HistogramControls.svelte +0 -212
  615. package/dist/plot/HistogramControls.svelte.d.ts +0 -22
  616. package/dist/plot/InteractiveAxisLabel.svelte +0 -94
  617. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +0 -14
  618. package/dist/plot/Line.svelte +0 -84
  619. package/dist/plot/Line.svelte.d.ts +0 -15
  620. package/dist/plot/PlotControls.svelte +0 -537
  621. package/dist/plot/PlotControls.svelte.d.ts +0 -4
  622. package/dist/plot/PlotLegend.svelte +0 -569
  623. package/dist/plot/PlotLegend.svelte.d.ts +0 -29
  624. package/dist/plot/PlotTooltip.svelte +0 -67
  625. package/dist/plot/PlotTooltip.svelte.d.ts +0 -17
  626. package/dist/plot/PortalSelect.svelte +0 -253
  627. package/dist/plot/PortalSelect.svelte.d.ts +0 -16
  628. package/dist/plot/ReferenceLine.svelte.d.ts +0 -20
  629. package/dist/plot/ReferenceLine3D.svelte +0 -154
  630. package/dist/plot/ReferenceLine3D.svelte.d.ts +0 -14
  631. package/dist/plot/ReferencePlane.svelte +0 -178
  632. package/dist/plot/ReferencePlane.svelte.d.ts +0 -14
  633. package/dist/plot/ScatterPlot.svelte +0 -2845
  634. package/dist/plot/ScatterPlot.svelte.d.ts +0 -93
  635. package/dist/plot/ScatterPlot3D.svelte +0 -502
  636. package/dist/plot/ScatterPlot3D.svelte.d.ts +0 -94
  637. package/dist/plot/ScatterPlot3DControls.svelte +0 -437
  638. package/dist/plot/ScatterPlot3DControls.svelte.d.ts +0 -20
  639. package/dist/plot/ScatterPlot3DScene.svelte +0 -912
  640. package/dist/plot/ScatterPlot3DScene.svelte.d.ts +0 -74
  641. package/dist/plot/ScatterPlotControls.svelte +0 -307
  642. package/dist/plot/ScatterPlotControls.svelte.d.ts +0 -17
  643. package/dist/plot/ScatterPoint.svelte +0 -191
  644. package/dist/plot/ScatterPoint.svelte.d.ts +0 -21
  645. package/dist/plot/SpacegroupBarPlot.svelte +0 -293
  646. package/dist/plot/SpacegroupBarPlot.svelte.d.ts +0 -9
  647. package/dist/plot/Surface3D.svelte +0 -200
  648. package/dist/plot/Surface3D.svelte.d.ts +0 -13
  649. package/dist/plot/ZeroLines.svelte +0 -96
  650. package/dist/plot/ZeroLines.svelte.d.ts +0 -32
  651. package/dist/plot/ZoomRect.svelte +0 -23
  652. package/dist/plot/ZoomRect.svelte.d.ts +0 -8
  653. package/dist/plot/axis-utils.d.ts +0 -19
  654. package/dist/plot/axis-utils.js +0 -80
  655. package/dist/plot/data-cleaning.d.ts +0 -37
  656. package/dist/plot/data-cleaning.js +0 -855
  657. package/dist/plot/data-transform.d.ts +0 -16
  658. package/dist/plot/data-transform.js +0 -45
  659. package/dist/plot/defaults.d.ts +0 -19
  660. package/dist/plot/defaults.js +0 -9
  661. package/dist/plot/fill-utils.d.ts +0 -51
  662. package/dist/plot/fill-utils.js +0 -337
  663. package/dist/plot/hover-lock.svelte.d.ts +0 -14
  664. package/dist/plot/hover-lock.svelte.js +0 -46
  665. package/dist/plot/index.d.ts +0 -37
  666. package/dist/plot/index.js +0 -37
  667. package/dist/plot/interactions.d.ts +0 -12
  668. package/dist/plot/interactions.js +0 -100
  669. package/dist/plot/layout.d.ts +0 -60
  670. package/dist/plot/layout.js +0 -230
  671. package/dist/plot/reference-line.d.ts +0 -60
  672. package/dist/plot/reference-line.js +0 -316
  673. package/dist/plot/scales.d.ts +0 -48
  674. package/dist/plot/scales.js +0 -484
  675. package/dist/plot/svg.d.ts +0 -1
  676. package/dist/plot/svg.js +0 -11
  677. package/dist/plot/types.d.ts +0 -859
  678. package/dist/plot/types.js +0 -103
  679. package/dist/plot/utils/label-placement.d.ts +0 -47
  680. package/dist/plot/utils/label-placement.js +0 -256
  681. package/dist/plot/utils/series-visibility.d.ts +0 -9
  682. package/dist/plot/utils/series-visibility.js +0 -67
  683. package/dist/plot/utils.d.ts +0 -1
  684. package/dist/plot/utils.js +0 -14
  685. package/dist/rdf/RdfPlot.svelte +0 -247
  686. package/dist/rdf/RdfPlot.svelte.d.ts +0 -27
  687. package/dist/rdf/calc-rdf.d.ts +0 -4
  688. package/dist/rdf/calc-rdf.js +0 -111
  689. package/dist/rdf/index.d.ts +0 -23
  690. package/dist/rdf/index.js +0 -2
  691. package/dist/sanitize.d.ts +0 -4
  692. package/dist/sanitize.js +0 -114
  693. package/dist/settings.d.ts +0 -255
  694. package/dist/settings.js +0 -1132
  695. package/dist/spectral/Bands.svelte +0 -1040
  696. package/dist/spectral/Bands.svelte.d.ts +0 -40
  697. package/dist/spectral/BandsAndDos.svelte +0 -128
  698. package/dist/spectral/BandsAndDos.svelte.d.ts +0 -18
  699. package/dist/spectral/BrillouinBandsDos.svelte +0 -248
  700. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +0 -20
  701. package/dist/spectral/Dos.svelte +0 -697
  702. package/dist/spectral/Dos.svelte.d.ts +0 -29
  703. package/dist/spectral/helpers.d.ts +0 -117
  704. package/dist/spectral/helpers.js +0 -1023
  705. package/dist/spectral/index.d.ts +0 -6
  706. package/dist/spectral/index.js +0 -7
  707. package/dist/spectral/types.d.ts +0 -84
  708. package/dist/spectral/types.js +0 -2
  709. package/dist/state.svelte.d.ts +0 -25
  710. package/dist/state.svelte.js +0 -45
  711. package/dist/structure/Arrow.svelte +0 -72
  712. package/dist/structure/Arrow.svelte.d.ts +0 -15
  713. package/dist/structure/AtomLegend.svelte +0 -798
  714. package/dist/structure/AtomLegend.svelte.d.ts +0 -34
  715. package/dist/structure/Bond.svelte +0 -140
  716. package/dist/structure/Bond.svelte.d.ts +0 -9
  717. package/dist/structure/CanvasTooltip.svelte +0 -33
  718. package/dist/structure/CanvasTooltip.svelte.d.ts +0 -12
  719. package/dist/structure/CellSelect.svelte +0 -351
  720. package/dist/structure/CellSelect.svelte.d.ts +0 -13
  721. package/dist/structure/Cylinder.svelte +0 -45
  722. package/dist/structure/Cylinder.svelte.d.ts +0 -10
  723. package/dist/structure/Lattice.svelte +0 -196
  724. package/dist/structure/Lattice.svelte.d.ts +0 -17
  725. package/dist/structure/Structure.svelte +0 -1999
  726. package/dist/structure/Structure.svelte.d.ts +0 -87
  727. package/dist/structure/StructureControls.svelte +0 -1298
  728. package/dist/structure/StructureControls.svelte.d.ts +0 -31
  729. package/dist/structure/StructureExportPane.svelte +0 -251
  730. package/dist/structure/StructureExportPane.svelte.d.ts +0 -17
  731. package/dist/structure/StructureInfoPane.svelte +0 -735
  732. package/dist/structure/StructureInfoPane.svelte.d.ts +0 -19
  733. package/dist/structure/StructureScene.svelte +0 -1905
  734. package/dist/structure/StructureScene.svelte.d.ts +0 -108
  735. package/dist/structure/atom-properties.d.ts +0 -37
  736. package/dist/structure/atom-properties.js +0 -200
  737. package/dist/structure/bond-order-perception.d.ts +0 -13
  738. package/dist/structure/bond-order-perception.js +0 -367
  739. package/dist/structure/bonding.d.ts +0 -42
  740. package/dist/structure/bonding.js +0 -525
  741. package/dist/structure/export.d.ts +0 -20
  742. package/dist/structure/export.js +0 -727
  743. package/dist/structure/index.d.ts +0 -125
  744. package/dist/structure/index.js +0 -171
  745. package/dist/structure/label-placement.d.ts +0 -14
  746. package/dist/structure/label-placement.js +0 -72
  747. package/dist/structure/measure.d.ts +0 -6
  748. package/dist/structure/measure.js +0 -29
  749. package/dist/structure/parse.d.ts +0 -66
  750. package/dist/structure/parse.js +0 -1363
  751. package/dist/structure/partial-occupancy.d.ts +0 -25
  752. package/dist/structure/partial-occupancy.js +0 -99
  753. package/dist/structure/pbc.d.ts +0 -9
  754. package/dist/structure/pbc.js +0 -123
  755. package/dist/structure/supercell.d.ts +0 -8
  756. package/dist/structure/supercell.js +0 -170
  757. package/dist/structure/validation.d.ts +0 -2
  758. package/dist/structure/validation.js +0 -10
  759. package/dist/symmetry/SymmetryStats.svelte +0 -226
  760. package/dist/symmetry/SymmetryStats.svelte.d.ts +0 -21
  761. package/dist/symmetry/WyckoffTable.svelte +0 -113
  762. package/dist/symmetry/WyckoffTable.svelte.d.ts +0 -11
  763. package/dist/symmetry/cell-transform.d.ts +0 -12
  764. package/dist/symmetry/cell-transform.js +0 -91
  765. package/dist/symmetry/index.d.ts +0 -43
  766. package/dist/symmetry/index.js +0 -229
  767. package/dist/symmetry/spacegroups.d.ts +0 -9
  768. package/dist/symmetry/spacegroups.js +0 -394
  769. package/dist/table/HeatmapTable.svelte +0 -1854
  770. package/dist/table/HeatmapTable.svelte.d.ts +0 -49
  771. package/dist/table/ToggleMenu.svelte +0 -376
  772. package/dist/table/ToggleMenu.svelte.d.ts +0 -11
  773. package/dist/table/index.d.ts +0 -74
  774. package/dist/table/index.js +0 -38
  775. package/dist/theme/ThemeControl.svelte +0 -53
  776. package/dist/theme/ThemeControl.svelte.d.ts +0 -9
  777. package/dist/theme/index.d.ts +0 -29
  778. package/dist/theme/index.js +0 -79
  779. package/dist/theme/themes.mjs +0 -285
  780. package/dist/time.d.ts +0 -4
  781. package/dist/time.js +0 -70
  782. package/dist/tooltip/TooltipContent.svelte +0 -58
  783. package/dist/tooltip/TooltipContent.svelte.d.ts +0 -31
  784. package/dist/tooltip/index.d.ts +0 -2
  785. package/dist/tooltip/index.js +0 -2
  786. package/dist/tooltip/types.d.ts +0 -8
  787. package/dist/tooltip/types.js +0 -1
  788. package/dist/trajectory/Trajectory.svelte +0 -1517
  789. package/dist/trajectory/Trajectory.svelte.d.ts +0 -77
  790. package/dist/trajectory/TrajectoryError.svelte +0 -128
  791. package/dist/trajectory/TrajectoryError.svelte.d.ts +0 -13
  792. package/dist/trajectory/TrajectoryExportPane.svelte +0 -357
  793. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +0 -17
  794. package/dist/trajectory/TrajectoryInfoPane.svelte +0 -313
  795. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +0 -17
  796. package/dist/trajectory/constants.d.ts +0 -6
  797. package/dist/trajectory/constants.js +0 -7
  798. package/dist/trajectory/extract.d.ts +0 -5
  799. package/dist/trajectory/extract.js +0 -162
  800. package/dist/trajectory/format-detect.d.ts +0 -9
  801. package/dist/trajectory/format-detect.js +0 -76
  802. package/dist/trajectory/frame-reader.d.ts +0 -17
  803. package/dist/trajectory/frame-reader.js +0 -332
  804. package/dist/trajectory/helpers.d.ts +0 -14
  805. package/dist/trajectory/helpers.js +0 -172
  806. package/dist/trajectory/index.d.ts +0 -63
  807. package/dist/trajectory/index.js +0 -126
  808. package/dist/trajectory/parse/ase.d.ts +0 -2
  809. package/dist/trajectory/parse/ase.js +0 -73
  810. package/dist/trajectory/parse/hdf5.d.ts +0 -2
  811. package/dist/trajectory/parse/hdf5.js +0 -127
  812. package/dist/trajectory/parse/index.d.ts +0 -12
  813. package/dist/trajectory/parse/index.js +0 -299
  814. package/dist/trajectory/parse/lammps.d.ts +0 -5
  815. package/dist/trajectory/parse/lammps.js +0 -179
  816. package/dist/trajectory/parse/vasp.d.ts +0 -2
  817. package/dist/trajectory/parse/vasp.js +0 -68
  818. package/dist/trajectory/parse/xyz.d.ts +0 -2
  819. package/dist/trajectory/parse/xyz.js +0 -110
  820. package/dist/trajectory/plotting.d.ts +0 -28
  821. package/dist/trajectory/plotting.js +0 -423
  822. package/dist/trajectory/types.d.ts +0 -11
  823. package/dist/trajectory/types.js +0 -1
  824. package/dist/utils.d.ts +0 -5
  825. package/dist/utils.js +0 -36
  826. package/dist/xrd/XrdPlot.svelte +0 -615
  827. package/dist/xrd/XrdPlot.svelte.d.ts +0 -28
  828. package/dist/xrd/broadening.d.ts +0 -20
  829. package/dist/xrd/broadening.js +0 -97
  830. package/dist/xrd/calc-xrd.d.ts +0 -37
  831. package/dist/xrd/calc-xrd.js +0 -337
  832. package/dist/xrd/index.d.ts +0 -37
  833. package/dist/xrd/index.js +0 -4
  834. package/dist/xrd/parse.d.ts +0 -13
  835. package/dist/xrd/parse.js +0 -749
  836. /package/dist/{EmptyState.svelte → src/lib/EmptyState.svelte} +0 -0
  837. /package/dist/{Icon.svelte → src/lib/Icon.svelte} +0 -0
  838. /package/dist/{app.css → src/lib/app.css} +0 -0
  839. /package/dist/{chempot-diagram → src/lib/chempot-diagram}/ChemPotScene3D.svelte +0 -0
  840. /package/dist/{colors → src/lib/colors}/alloy-colors.json +0 -0
  841. /package/dist/{colors → src/lib/colors}/dark-mode-colors.json +0 -0
  842. /package/dist/{colors → src/lib/colors}/jmol-colors.json +0 -0
  843. /package/dist/{colors → src/lib/colors}/muted-colors.json +0 -0
  844. /package/dist/{colors → src/lib/colors}/pastel-colors.json +0 -0
  845. /package/dist/{colors → src/lib/colors}/vesta-colors.json +0 -0
  846. /package/dist/{element → src/lib/element}/Nucleus.svelte +0 -0
  847. /package/dist/{element → src/lib/element}/data.json +0 -0
  848. /package/dist/{element → src/lib/element}/data.json.gz +0 -0
  849. /package/dist/{element → src/lib/element}/data.schema.json +0 -0
  850. /package/dist/{element-image-urls.json → src/lib/element-image-urls.json} +0 -0
  851. /package/dist/{feedback → src/lib/feedback}/Spinner.svelte +0 -0
  852. /package/dist/{feedback → src/lib/feedback}/StatusMessage.svelte +0 -0
  853. /package/dist/{periodic-table → src/lib/periodic-table}/TableInset.svelte +0 -0
  854. /package/dist/{plot → src/lib/plot}/ReferenceLine.svelte +0 -0
  855. /package/dist/{xrd → src/lib/xrd}/atomic_scattering_params.json +0 -0
@@ -1,538 +0,0 @@
1
- // Fermi surface computation and analysis functions
2
- import * as math from '../math';
3
- import { EPS } from '../math';
4
- import { CLOSED_CONTOUR_TOLERANCE, IRREDUCIBLE_BZ_MIN_VERTICES, IRREDUCIBLE_BZ_TOLERANCE, SPANNING_THRESHOLD, } from './constants';
5
- import { marching_cubes } from './marching-cubes';
6
- // Precompute Catmull-Rom coefficients for a given t value
7
- // Returns [c0, c1, c2, c3] where result = c0*p0 + c1*p1 + c2*p2 + c3*p3
8
- function catmull_rom_coeffs(t) {
9
- const t2 = t * t;
10
- const t3 = t2 * t;
11
- const c1 = 0.5 * (-t + 2 * t2 - t3);
12
- const c2 = 0.5 * (2 - 5 * t2 + 3 * t3);
13
- const c3 = 0.5 * (t + 4 * t2 - 3 * t3);
14
- const c4 = 0.5 * (-t2 + t3);
15
- return [c1, c2, c3, c4];
16
- }
17
- // Tricubic interpolation with cached wrap indices and precomputed coefficients
18
- function tricubic_interpolate(grid, fx, fy, fz, nx, ny, nz) {
19
- // Get integer and fractional parts
20
- const ix = Math.floor(fx);
21
- const iy = Math.floor(fy);
22
- const iz = Math.floor(fz);
23
- // Precompute Catmull-Rom coefficients
24
- const [cx0, cx1, cx2, cx3] = catmull_rom_coeffs(fx - ix);
25
- const [cy0, cy1, cy2, cy3] = catmull_rom_coeffs(fy - iy);
26
- const [cz0, cz1, cz2, cz3] = catmull_rom_coeffs(fz - iz);
27
- // Precompute wrapped indices (avoid modulo in inner loop)
28
- const wrap_x = (v) => ((v % nx) + nx) % nx;
29
- const wrap_y = (v) => ((v % ny) + ny) % ny;
30
- const wrap_z = (v) => ((v % nz) + nz) % nz;
31
- const wx = [wrap_x(ix - 1), wrap_x(ix), wrap_x(ix + 1), wrap_x(ix + 2)];
32
- const wy = [wrap_y(iy - 1), wrap_y(iy), wrap_y(iy + 1), wrap_y(iy + 2)];
33
- const wz = [wrap_z(iz - 1), wrap_z(iz), wrap_z(iz + 1), wrap_z(iz + 2)];
34
- // Interpolate along z, then y, then x (fully inlined)
35
- let result = 0;
36
- const cx = [cx0, cx1, cx2, cx3];
37
- const cy = [cy0, cy1, cy2, cy3];
38
- const cz = [cz0, cz1, cz2, cz3];
39
- for (let xi = 0; xi < 4; xi++) {
40
- const row = grid[wx[xi]];
41
- let y_sum = 0;
42
- for (let yi = 0; yi < 4; yi++) {
43
- const col = row[wy[yi]];
44
- // Inline z interpolation
45
- y_sum +=
46
- cy[yi] *
47
- (cz[0] * col[wz[0]] + cz[1] * col[wz[1]] + cz[2] * col[wz[2]] + cz[3] * col[wz[3]]);
48
- }
49
- result += cx[xi] * y_sum;
50
- }
51
- return result;
52
- }
53
- // Upsample a 3D grid using tricubic interpolation for smoother surfaces
54
- function upsample_grid(grid, factor) {
55
- if (factor <= 1)
56
- return grid;
57
- const nx = grid.length;
58
- const ny = grid[0]?.length || 0;
59
- const nz = grid[0]?.[0]?.length || 0;
60
- const new_nx = Math.round(nx * factor);
61
- const new_ny = Math.round(ny * factor);
62
- const new_nz = Math.round(nz * factor);
63
- // Precompute fractional coordinates for each axis
64
- const fx_arr = new Float64Array(new_nx);
65
- const fy_arr = new Float64Array(new_ny);
66
- const fz_arr = new Float64Array(new_nz);
67
- for (let ix = 0; ix < new_nx; ix++)
68
- fx_arr[ix] = (ix / new_nx) * nx;
69
- for (let iy = 0; iy < new_ny; iy++)
70
- fy_arr[iy] = (iy / new_ny) * ny;
71
- for (let iz = 0; iz < new_nz; iz++)
72
- fz_arr[iz] = (iz / new_nz) * nz;
73
- // Preallocate output grid
74
- const new_grid = Array(new_nx);
75
- for (let ix = 0; ix < new_nx; ix++) {
76
- const fx = fx_arr[ix];
77
- const iy_arr = Array(new_ny);
78
- for (let iy = 0; iy < new_ny; iy++) {
79
- const fy = fy_arr[iy];
80
- const iz_arr = new Float64Array(new_nz);
81
- for (let iz = 0; iz < new_nz; iz++) {
82
- iz_arr[iz] = tricubic_interpolate(grid, fx, fy, fz_arr[iz], nx, ny, nz);
83
- }
84
- // Convert Float64Array back to regular array for compatibility
85
- iy_arr[iy] = Array.from(iz_arr);
86
- }
87
- new_grid[ix] = iy_arr;
88
- }
89
- return new_grid;
90
- }
91
- // Extract Fermi surface from band grid data
92
- export function extract_fermi_surface(band_data, options = {}) {
93
- const { mu = 0, wigner_seitz = true, compute_velocities = false, compute_dimensionality = false, selected_bands, interpolation_factor = 1, selected_spins, } = options;
94
- const iso_value = band_data.fermi_energy + mu;
95
- const isosurfaces = [];
96
- let total_area = 0;
97
- // Process each spin channel and band
98
- for (let spin_idx = 0; spin_idx < band_data.n_spins; spin_idx++) {
99
- const spin = band_data.n_spins === 2 ? (spin_idx === 0 ? `up` : `down`) : null;
100
- // Skip if spin not selected
101
- if (selected_spins && !selected_spins.includes(spin))
102
- continue;
103
- for (let band_idx = 0; band_idx < band_data.n_bands; band_idx++) {
104
- // Skip if band not selected
105
- if (selected_bands && !selected_bands.includes(band_idx))
106
- continue;
107
- const raw_energies = band_data.energies[spin_idx][band_idx];
108
- // Check if Fermi level intersects this band
109
- if (!band_intersects_fermi(raw_energies, iso_value))
110
- continue;
111
- // Apply interpolation for smoother surfaces
112
- const energies = interpolation_factor > 1
113
- ? upsample_grid(raw_energies, interpolation_factor)
114
- : raw_energies;
115
- // Extract isosurface using marching cubes
116
- // Use periodic: false because BXSF grids include both endpoints (k=0 and k=1)
117
- // which are equivalent due to BZ periodicity. This matches scikit-image behavior.
118
- const mc_result = marching_cubes(energies, iso_value, band_data.k_lattice, {
119
- periodic: false,
120
- interpolate: true,
121
- });
122
- if (mc_result.vertices.length === 0)
123
- continue;
124
- // Build isosurface
125
- // Note: We don't clip to Wigner-Seitz BZ here because marching cubes output is in
126
- // a centered parallelepiped cell. BZ symmetry tiling in renderer handles full BZ.
127
- const isosurface = {
128
- vertices: mc_result.vertices,
129
- faces: mc_result.faces,
130
- normals: mc_result.normals,
131
- band_index: band_idx,
132
- spin,
133
- };
134
- // Compute surface area
135
- isosurface.area = compute_surface_area(isosurface);
136
- total_area += isosurface.area;
137
- // Compute Fermi velocities if requested
138
- if (compute_velocities && band_data.velocities) {
139
- isosurface.properties = compute_fermi_velocities(isosurface, band_data.velocities[spin_idx][band_idx], band_data.k_lattice, band_data.k_grid);
140
- isosurface.avg_velocity =
141
- isosurface.properties.reduce((s, v) => s + v, 0) / isosurface.properties.length;
142
- }
143
- // Compute dimensionality if requested
144
- if (compute_dimensionality) {
145
- const { dimensionality, orientation } = analyze_surface_topology(isosurface, null);
146
- isosurface.dimensionality = dimensionality;
147
- isosurface.orientation = orientation;
148
- }
149
- isosurfaces.push(isosurface);
150
- }
151
- }
152
- const metadata = {
153
- n_bands: band_data.n_bands,
154
- n_surfaces: isosurfaces.length,
155
- total_area,
156
- has_spin: band_data.n_spins === 2,
157
- has_velocities: compute_velocities && band_data.velocities !== undefined,
158
- };
159
- return {
160
- isosurfaces,
161
- k_lattice: band_data.k_lattice,
162
- fermi_energy: band_data.fermi_energy,
163
- reciprocal_cell: wigner_seitz ? `wigner_seitz` : `parallelepiped`,
164
- metadata,
165
- };
166
- }
167
- // Check if Fermi level intersects a band (has values both above and below)
168
- function band_intersects_fermi(energies, iso_value) {
169
- let has_below = false;
170
- let has_above = false;
171
- for (const plane of energies) {
172
- for (const row of plane) {
173
- for (const energy of row) {
174
- if (energy < iso_value)
175
- has_below = true;
176
- else if (energy > iso_value)
177
- has_above = true;
178
- if (has_below && has_above)
179
- return true;
180
- }
181
- }
182
- }
183
- return false;
184
- }
185
- // Compute surface area of an isosurface (assumes triangular faces from marching cubes)
186
- export function compute_surface_area(surface) {
187
- let total_area = 0;
188
- const verts = surface.vertices;
189
- for (const face of surface.faces) {
190
- if (face.length < 3)
191
- continue;
192
- const [v0x, v0y, v0z] = verts[face[0]];
193
- const [v1x, v1y, v1z] = verts[face[1]];
194
- const [v2x, v2y, v2z] = verts[face[2]];
195
- // Inlined edge subtraction and cross product
196
- const [e1x, e1y, e1z] = [v1x - v0x, v1y - v0y, v1z - v0z];
197
- const [e2x, e2y, e2z] = [v2x - v0x, v2y - v0y, v2z - v0z];
198
- const cx = e1y * e2z - e1z * e2y;
199
- const cy = e1z * e2x - e1x * e2z;
200
- const cz = e1x * e2y - e1y * e2x;
201
- // Area is half the magnitude of cross product
202
- total_area += Math.sqrt(cx * cx + cy * cy + cz * cz) * 0.5;
203
- }
204
- return total_area;
205
- }
206
- // Compute Fermi velocities at surface vertices
207
- function compute_fermi_velocities(surface, velocity_grid, k_lattice, k_grid) {
208
- const [nx, ny, nz] = k_grid;
209
- const velocities = [];
210
- // Inverse of k_lattice for Cartesian to fractional conversion
211
- const k_inv = math.matrix_inverse_3x3(k_lattice);
212
- for (const vertex of surface.vertices) {
213
- // Convert Cartesian to fractional coordinates
214
- const frac = math.mat3x3_vec3_multiply(k_inv, vertex);
215
- // Wrap to [0, 1)
216
- const wrapped = [
217
- ((frac[0] % 1) + 1) % 1,
218
- ((frac[1] % 1) + 1) % 1,
219
- ((frac[2] % 1) + 1) % 1,
220
- ];
221
- // Grid indices (with interpolation)
222
- const gx = wrapped[0] * nx;
223
- const gy = wrapped[1] * ny;
224
- const gz = wrapped[2] * nz;
225
- // Trilinear interpolation of velocity
226
- const velocity = trilinear_interpolate_vec3(velocity_grid, gx, gy, gz);
227
- velocities.push(Math.hypot(...velocity)); // magnitude
228
- }
229
- return velocities;
230
- }
231
- // Trilinear interpolation for Vec3 grid
232
- // Note: Assumes x, y, z are non-negative (e.g. from wrapped fractional coordinates)
233
- function trilinear_interpolate_vec3(grid, x, y, z) {
234
- const nx = grid.length;
235
- const ny = grid[0]?.length || 0;
236
- const nz = grid[0]?.[0]?.length || 0;
237
- // Guard against empty or malformed grids to prevent division by zero in modulo
238
- if (nx === 0 || ny === 0 || nz === 0)
239
- return [0, 0, 0];
240
- // Use safe modulo pattern to handle negative values from floating-point edge cases
241
- const safe_mod = (val, n) => ((val % n) + n) % n;
242
- const x0 = safe_mod(Math.floor(x), nx);
243
- const y0 = safe_mod(Math.floor(y), ny);
244
- const z0 = safe_mod(Math.floor(z), nz);
245
- const x1 = (x0 + 1) % nx;
246
- const y1 = (y0 + 1) % ny;
247
- const z1 = (z0 + 1) % nz;
248
- const xd = x - Math.floor(x);
249
- const yd = y - Math.floor(y);
250
- const zd = z - Math.floor(z);
251
- const c000 = grid[x0][y0][z0];
252
- const c001 = grid[x0][y0][z1];
253
- const c010 = grid[x0][y1][z0];
254
- const c011 = grid[x0][y1][z1];
255
- const c100 = grid[x1][y0][z0];
256
- const c101 = grid[x1][y0][z1];
257
- const c110 = grid[x1][y1][z0];
258
- const c111 = grid[x1][y1][z1];
259
- const c00 = math.lerp_vec3(c000, c100, xd);
260
- const c01 = math.lerp_vec3(c001, c101, xd);
261
- const c10 = math.lerp_vec3(c010, c110, xd);
262
- const c11 = math.lerp_vec3(c011, c111, xd);
263
- const c0 = math.lerp_vec3(c00, c10, yd);
264
- const c1 = math.lerp_vec3(c01, c11, yd);
265
- return math.lerp_vec3(c0, c1, zd);
266
- }
267
- // Analyze surface topology to determine dimensionality
268
- function analyze_surface_topology(surface, bz_data) {
269
- if (surface.vertices.length === 0) {
270
- return { dimensionality: `3D`, orientation: null };
271
- }
272
- // Check if surface spans the full BZ in each direction
273
- const bz_extent = bz_data
274
- ? math.compute_bounding_box(bz_data.vertices)
275
- : { min: [-1, -1, -1], max: [1, 1, 1] };
276
- const surface_extent = math.compute_bounding_box(surface.vertices);
277
- // Check spanning in each direction
278
- const spans = [false, false, false];
279
- for (let axis_idx = 0; axis_idx < 3; axis_idx++) {
280
- const bz_size = bz_extent.max[axis_idx] - bz_extent.min[axis_idx];
281
- const surface_size = surface_extent.max[axis_idx] - surface_extent.min[axis_idx];
282
- // Consider spanning if surface covers significant fraction of BZ extent
283
- spans[axis_idx] = surface_size > SPANNING_THRESHOLD * bz_size;
284
- }
285
- const n_spanning = spans.filter(Boolean).length;
286
- if (n_spanning === 0) {
287
- // Closed surface, no spanning directions
288
- return { dimensionality: `3D`, orientation: null };
289
- }
290
- else if (n_spanning === 1) {
291
- // 2D sheet spanning one direction
292
- const axis_idx = spans.indexOf(true);
293
- const orientation = [0, 0, 0];
294
- orientation[axis_idx] = 1;
295
- return { dimensionality: `2D`, orientation };
296
- }
297
- else if (n_spanning === 2) {
298
- // 1D noodle-like (tube spanning 2 directions, bounded in 1)
299
- const axis_idx = spans.indexOf(false);
300
- const orientation = [0, 0, 0];
301
- orientation[axis_idx] = 1;
302
- return { dimensionality: `1D`, orientation };
303
- }
304
- else {
305
- // Spans all 3 directions - complex warped network
306
- return { dimensionality: `quasi-2D`, orientation: null };
307
- }
308
- }
309
- // Compute 2D Fermi slice along a specified plane
310
- export function compute_fermi_slice(fermi_data, options = {}) {
311
- const { miller_indices = [0, 0, 1], distance = 0 } = options;
312
- // Validate miller indices are not all zero
313
- if (miller_indices[0] === 0 && miller_indices[1] === 0 && miller_indices[2] === 0) {
314
- throw new Error(`Invalid miller indices [0, 0, 0]: at least one index must be non-zero to define a plane`);
315
- }
316
- // Compute plane normal in Cartesian coordinates
317
- const plane_normal = math.add(math.add(math.scale(fermi_data.k_lattice[0], miller_indices[0]), math.scale(fermi_data.k_lattice[1], miller_indices[1])), math.scale(fermi_data.k_lattice[2], miller_indices[2]));
318
- const normal_len = Math.hypot(...plane_normal);
319
- if (normal_len < EPS) {
320
- throw new Error(`Degenerate plane normal: k_lattice vectors produce a zero-length normal for miller indices [${miller_indices.join(`, `)}]`);
321
- }
322
- const unit_normal = math.normalize_vec3(plane_normal);
323
- // Compute in-plane basis vectors
324
- const [in_plane_u, in_plane_v] = math.compute_in_plane_basis(unit_normal);
325
- // Slice each isosurface
326
- const isolines = [];
327
- for (const surface of fermi_data.isosurfaces) {
328
- const lines = slice_surface_with_plane(surface, unit_normal, distance, in_plane_u, in_plane_v);
329
- isolines.push(...lines);
330
- }
331
- return {
332
- isolines,
333
- plane_normal: unit_normal,
334
- plane_distance: distance,
335
- k_lattice_2d: [in_plane_u, in_plane_v],
336
- metadata: {
337
- n_lines: isolines.length,
338
- has_properties: isolines.some((line) => line.properties !== undefined),
339
- },
340
- };
341
- }
342
- // Helper to create edge key (sorted vertex indices)
343
- const make_edge_key = (v0_idx, v1_idx) => `${Math.min(v0_idx, v1_idx)},${Math.max(v0_idx, v1_idx)}`;
344
- // Compute intersection point on an edge
345
- function compute_edge_intersection(surface, vertex_distances, v0_idx, v1_idx) {
346
- const d0 = vertex_distances[v0_idx];
347
- const d1 = vertex_distances[v1_idx];
348
- // Edge must cross the plane (opposite signs)
349
- if (d0 * d1 >= 0)
350
- return null;
351
- const t = d0 / (d0 - d1);
352
- const v0 = surface.vertices[v0_idx];
353
- const v1 = surface.vertices[v1_idx];
354
- const point = [
355
- v0[0] + t * (v1[0] - v0[0]),
356
- v0[1] + t * (v1[1] - v0[1]),
357
- v0[2] + t * (v1[2] - v0[2]),
358
- ];
359
- let property;
360
- if (surface.properties) {
361
- property =
362
- surface.properties[v0_idx] +
363
- t * (surface.properties[v1_idx] - surface.properties[v0_idx]);
364
- }
365
- return { point, property };
366
- }
367
- // Slice a surface with a plane to get isolines
368
- // Uses contour tracing to produce properly ordered line segments
369
- function slice_surface_with_plane(surface, plane_normal, plane_distance, in_plane_u, in_plane_v) {
370
- if (surface.vertices.length === 0 || surface.faces.length === 0)
371
- return [];
372
- // Compute signed distance of each vertex to plane
373
- const vertex_distances = surface.vertices.map((vert) => math.dot(vert, plane_normal) - plane_distance);
374
- const face_segments = [];
375
- const edge_to_faces = new Map(); // edge_key -> face indices
376
- for (let face_idx = 0; face_idx < surface.faces.length; face_idx++) {
377
- const face = surface.faces[face_idx];
378
- if (face.length < 3)
379
- continue;
380
- // Find which edges of this face cross the plane
381
- const crossing_edges = [];
382
- for (let edge_idx = 0; edge_idx < face.length; edge_idx++) {
383
- const v0_idx = face[edge_idx];
384
- const v1_idx = face[(edge_idx + 1) % face.length];
385
- const edge_key = make_edge_key(v0_idx, v1_idx);
386
- const intersection = compute_edge_intersection(surface, vertex_distances, v0_idx, v1_idx);
387
- if (intersection) {
388
- crossing_edges.push({ edge_key, intersection });
389
- // Register this face with the edge
390
- const faces = edge_to_faces.get(edge_key) || [];
391
- faces.push(face_idx);
392
- edge_to_faces.set(edge_key, faces);
393
- }
394
- }
395
- // A face intersected by a plane has exactly 2 crossing edges
396
- if (crossing_edges.length === 2) {
397
- face_segments.push({
398
- face_idx,
399
- edge_keys: [crossing_edges[0].edge_key, crossing_edges[1].edge_key],
400
- points: [crossing_edges[0].intersection.point, crossing_edges[1].intersection.point],
401
- properties: surface.properties
402
- ? [
403
- crossing_edges[0].intersection.property ?? 0,
404
- crossing_edges[1].intersection.property ?? 0,
405
- ]
406
- : undefined,
407
- });
408
- }
409
- }
410
- if (face_segments.length === 0)
411
- return [];
412
- // Build face_idx -> segment map for O(1) lookup
413
- const face_to_segment = new Map();
414
- for (const seg of face_segments) {
415
- face_to_segment.set(seg.face_idx, seg);
416
- }
417
- // Precompute in-plane basis dot products for faster 2D projection
418
- const [ux, uy, uz] = in_plane_u;
419
- const [vx, vy, vz] = in_plane_v;
420
- // Trace connected contours by following adjacent faces
421
- const used_faces = new Set();
422
- const isolines = [];
423
- for (const start_segment of face_segments) {
424
- if (used_faces.has(start_segment.face_idx))
425
- continue;
426
- // Start a new contour from this segment
427
- // Use arrays that we'll reverse at the end instead of unshift (O(1) vs O(n))
428
- const forward_points = [start_segment.points[1]];
429
- const backward_points = [];
430
- const forward_props = start_segment.properties
431
- ? [start_segment.properties[1]]
432
- : undefined;
433
- const backward_props = start_segment.properties ? [] : undefined;
434
- used_faces.add(start_segment.face_idx);
435
- // Helper to trace in one direction
436
- const trace_direction = (initial_edge, points, props) => {
437
- let current_edge = initial_edge;
438
- let found_next = true;
439
- while (found_next) {
440
- found_next = false;
441
- const adjacent_faces = edge_to_faces.get(current_edge);
442
- if (!adjacent_faces)
443
- break;
444
- for (const adj_face_idx of adjacent_faces) {
445
- if (used_faces.has(adj_face_idx))
446
- continue;
447
- const adj_segment = face_to_segment.get(adj_face_idx);
448
- if (!adj_segment)
449
- continue;
450
- // Find which end connects to current_edge
451
- let next_point_idx;
452
- let next_edge;
453
- if (adj_segment.edge_keys[0] === current_edge) {
454
- next_point_idx = 1;
455
- next_edge = adj_segment.edge_keys[1];
456
- }
457
- else if (adj_segment.edge_keys[1] === current_edge) {
458
- next_point_idx = 0;
459
- next_edge = adj_segment.edge_keys[0];
460
- }
461
- else {
462
- continue;
463
- }
464
- points.push(adj_segment.points[next_point_idx]);
465
- if (props && adj_segment.properties) {
466
- props.push(adj_segment.properties[next_point_idx]);
467
- }
468
- used_faces.add(adj_face_idx);
469
- current_edge = next_edge;
470
- found_next = true;
471
- break;
472
- }
473
- }
474
- };
475
- // Trace forward and backward
476
- trace_direction(start_segment.edge_keys[1], forward_points, forward_props);
477
- trace_direction(start_segment.edge_keys[0], backward_points, backward_props);
478
- // Combine: backward (reversed) + start_point[0] + forward
479
- backward_points.reverse();
480
- if (backward_props)
481
- backward_props.reverse();
482
- const contour_points = [
483
- ...backward_points,
484
- start_segment.points[0],
485
- ...forward_points,
486
- ];
487
- const contour_props = backward_props && forward_props && start_segment.properties
488
- ? [...backward_props, start_segment.properties[0], ...forward_props]
489
- : undefined;
490
- // Check if contour is closed
491
- const first = contour_points[0];
492
- const last = contour_points[contour_points.length - 1];
493
- const is_closed = math.euclidean_dist(first, last) < CLOSED_CONTOUR_TOLERANCE;
494
- // Project to 2D (inlined dot product for speed)
495
- const points_2d = Array(contour_points.length);
496
- for (let idx = 0; idx < contour_points.length; idx++) {
497
- const point = contour_points[idx];
498
- points_2d[idx] = [
499
- point[0] * ux + point[1] * uy + point[2] * uz,
500
- point[0] * vx + point[1] * vy + point[2] * vz,
501
- ];
502
- }
503
- isolines.push({
504
- points: contour_points,
505
- points_2d,
506
- properties: contour_props,
507
- band_index: surface.band_index,
508
- spin: surface.spin,
509
- is_closed,
510
- });
511
- }
512
- return isolines;
513
- }
514
- // Detect if Fermi surface data appears to cover only the irreducible BZ wedge.
515
- // For cubic Oh symmetry, this is the region where all vertices are in the first octant
516
- // (x >= 0, y >= 0, z >= 0) with some tolerance. Such data needs tiling to show the full BZ.
517
- export function detect_irreducible_bz(fermi_data) {
518
- if (fermi_data.isosurfaces.length === 0)
519
- return false;
520
- // Check if all vertices are in the positive octant (with small tolerance for numerical error)
521
- let all_positive = true;
522
- let vertex_count = 0;
523
- for (const surface of fermi_data.isosurfaces) {
524
- for (const vertex of surface.vertices) {
525
- vertex_count++;
526
- if (vertex[0] < -IRREDUCIBLE_BZ_TOLERANCE ||
527
- vertex[1] < -IRREDUCIBLE_BZ_TOLERANCE ||
528
- vertex[2] < -IRREDUCIBLE_BZ_TOLERANCE) {
529
- all_positive = false;
530
- break;
531
- }
532
- }
533
- if (!all_positive)
534
- break;
535
- }
536
- // Only consider it irreducible if we have significant data and all positive
537
- return all_positive && vertex_count > IRREDUCIBLE_BZ_MIN_VERTICES;
538
- }
@@ -1,9 +0,0 @@
1
- export declare const MAX_TRIANGLES_FOR_TILING = 50000;
2
- export declare const HOVER_THROTTLE_MS = 16;
3
- export declare const CLOSED_CONTOUR_TOLERANCE = 0.000001;
4
- export declare const IRREDUCIBLE_BZ_TOLERANCE = 0.01;
5
- export declare const IRREDUCIBLE_BZ_MIN_VERTICES = 10;
6
- export declare const SPANNING_THRESHOLD = 0.8;
7
- export declare const BOHR_TO_ANGSTROM = 0.529177;
8
- export declare const HARTREE_TO_EV = 27.2114;
9
- export declare const BAND_COLORS: readonly ["#e41a1c", "#377eb8", "#4daf4a", "#984ea3", "#ff7f00", "#ffff33", "#a65628", "#f781bf", "#999999", "#66c2a5"];
@@ -1,27 +0,0 @@
1
- // Constants and thresholds for Fermi surface computation
2
- // Maximum triangles for BZ symmetry tiling (48x for Oh symmetry)
3
- // Above this, tiling is auto-disabled for performance
4
- export const MAX_TRIANGLES_FOR_TILING = 50_000;
5
- // Throttle interval (ms) for pointer move events during hover
6
- // Prevents expensive nearest-vertex O(n) lookups from causing UI jank
7
- export const HOVER_THROTTLE_MS = 16; // ~60fps
8
- // Numerical tolerances
9
- export const CLOSED_CONTOUR_TOLERANCE = 1e-6; // Distance threshold for detecting closed contours
10
- export const IRREDUCIBLE_BZ_TOLERANCE = 0.01; // Threshold for detecting irreducible BZ (vertices in positive octant)
11
- export const IRREDUCIBLE_BZ_MIN_VERTICES = 10; // Minimum significant vertex count for irreducible BZ detection
12
- export const SPANNING_THRESHOLD = 0.8; // Fraction of BZ extent a surface must cover to be considered "spanning" that direction
13
- export const BOHR_TO_ANGSTROM = 0.529177; // 1 Bohr = 0.529177 Angstrom
14
- export const HARTREE_TO_EV = 27.2114; // 1 Hartree = 27.2114 eV
15
- // Band colors (ColorBrewer Set1 palette for categorical data)
16
- export const BAND_COLORS = [
17
- `#e41a1c`, // red
18
- `#377eb8`, // blue
19
- `#4daf4a`, // green
20
- `#984ea3`, // purple
21
- `#ff7f00`, // orange
22
- `#ffff33`, // yellow
23
- `#a65628`, // brown
24
- `#f781bf`, // pink
25
- `#999999`, // gray
26
- `#66c2a5`, // teal
27
- ];
@@ -1,5 +0,0 @@
1
- import type { Scene } from 'three';
2
- export declare function export_to_stl(scene: Scene, filename: string): Promise<void>;
3
- export declare function export_to_obj(scene: Scene, filename: string): Promise<void>;
4
- export declare function export_to_gltf(scene: Scene, filename: string): Promise<void>;
5
- export declare function export_scene(scene: Scene, format: `stl` | `obj` | `gltf`, filename: string): Promise<void>;
@@ -1,63 +0,0 @@
1
- // Dynamic imports for Three.js exporters (tree-shaking friendly)
2
- async function get_stl_exporter() {
3
- const { STLExporter } = await import(`three/addons/exporters/STLExporter.js`);
4
- return new STLExporter();
5
- }
6
- async function get_obj_exporter() {
7
- const { OBJExporter } = await import(`three/addons/exporters/OBJExporter.js`);
8
- return new OBJExporter();
9
- }
10
- async function get_gltf_exporter() {
11
- const { GLTFExporter } = await import(`three/addons/exporters/GLTFExporter.js`);
12
- return new GLTFExporter();
13
- }
14
- // Helper to trigger file download
15
- function download_file(content, filename, mime_type) {
16
- const blob = new Blob([content], { type: mime_type });
17
- const url = URL.createObjectURL(blob);
18
- const link = document.createElement(`a`);
19
- link.href = url;
20
- link.download = filename;
21
- document.body.appendChild(link);
22
- link.click();
23
- document.body.removeChild(link);
24
- URL.revokeObjectURL(url);
25
- }
26
- // Export scene to STL format (good for 3D printing)
27
- export async function export_to_stl(scene, filename) {
28
- const exporter = await get_stl_exporter();
29
- const result = exporter.parse(scene, { binary: true });
30
- // Binary STL returns DataView, convert to ArrayBuffer for Blob
31
- const buffer = result instanceof DataView ? result.buffer : result;
32
- download_file(buffer, `${filename}.stl`, `application/octet-stream`);
33
- }
34
- // Export scene to OBJ format (widely compatible)
35
- export async function export_to_obj(scene, filename) {
36
- const exporter = await get_obj_exporter();
37
- const result = exporter.parse(scene);
38
- download_file(result, `${filename}.obj`, `text/plain`);
39
- }
40
- // Export scene to GLTF format (modern web/AR standard)
41
- export async function export_to_gltf(scene, filename) {
42
- const exporter = await get_gltf_exporter();
43
- return new Promise((resolve, reject) => {
44
- exporter.parse(scene, (gltf) => {
45
- const output = JSON.stringify(gltf, null, 2);
46
- download_file(output, `${filename}.gltf`, `application/json`);
47
- resolve();
48
- }, (error) => reject(error), { binary: false });
49
- });
50
- }
51
- // Main export function that dispatches to the appropriate format
52
- export function export_scene(scene, format, filename) {
53
- switch (format) {
54
- case `stl`:
55
- return export_to_stl(scene, filename);
56
- case `obj`:
57
- return export_to_obj(scene, filename);
58
- case `gltf`:
59
- return export_to_gltf(scene, filename);
60
- default:
61
- return Promise.reject(new Error(`Unsupported export format: ${format}`));
62
- }
63
- }
@@ -1,12 +0,0 @@
1
- export { default as FermiSlice } from './FermiSlice.svelte';
2
- export { default as FermiSurface } from './FermiSurface.svelte';
3
- export { default as FermiSurfaceControls } from './FermiSurfaceControls.svelte';
4
- export { default as FermiSurfaceScene } from './FermiSurfaceScene.svelte';
5
- export { default as FermiSurfaceTooltip } from './FermiSurfaceTooltip.svelte';
6
- export * from './compute';
7
- export * from './constants';
8
- export * from './export';
9
- export * from './marching-cubes';
10
- export * from './parse';
11
- export * from './symmetry';
12
- export * from './types';
@@ -1,13 +0,0 @@
1
- // Fermi surface visualization module
2
- export { default as FermiSlice } from './FermiSlice.svelte';
3
- export { default as FermiSurface } from './FermiSurface.svelte';
4
- export { default as FermiSurfaceControls } from './FermiSurfaceControls.svelte';
5
- export { default as FermiSurfaceScene } from './FermiSurfaceScene.svelte';
6
- export { default as FermiSurfaceTooltip } from './FermiSurfaceTooltip.svelte';
7
- export * from './compute';
8
- export * from './constants';
9
- export * from './export';
10
- export * from './marching-cubes';
11
- export * from './parse';
12
- export * from './symmetry';
13
- export * from './types';
@@ -1,2 +0,0 @@
1
- export { compute_vertex_normals, marching_cubes } from '../marching-cubes';
2
- export type { MarchingCubesOptions, MarchingCubesResult } from '../marching-cubes';
@@ -1,2 +0,0 @@
1
- // Re-export from shared location for backward compatibility
2
- export { compute_vertex_normals, marching_cubes } from '../marching-cubes';