matterviz 0.3.1 → 0.3.3

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 (358) hide show
  1. package/dist/EmptyState.svelte +10 -2
  2. package/dist/FilePicker.svelte +154 -96
  3. package/dist/Icon.svelte +20 -14
  4. package/dist/MillerIndexInput.svelte +27 -21
  5. package/dist/api/optimade.js +6 -6
  6. package/dist/app.css +216 -178
  7. package/dist/brillouin/BrillouinZone.svelte +299 -198
  8. package/dist/brillouin/BrillouinZone.svelte.d.ts +1 -1
  9. package/dist/brillouin/BrillouinZoneControls.svelte +32 -5
  10. package/dist/brillouin/BrillouinZoneExportPane.svelte +74 -55
  11. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +1 -1
  12. package/dist/brillouin/BrillouinZoneInfoPane.svelte +99 -68
  13. package/dist/brillouin/BrillouinZoneScene.svelte +277 -165
  14. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -1
  15. package/dist/brillouin/BrillouinZoneTooltip.svelte +17 -7
  16. package/dist/brillouin/compute.js +11 -6
  17. package/dist/chempot-diagram/ChemPotDiagram.svelte +327 -0
  18. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
  19. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +847 -0
  20. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
  21. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3194 -0
  22. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
  23. package/dist/chempot-diagram/ChemPotScene3D.svelte +11 -0
  24. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
  25. package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
  26. package/dist/chempot-diagram/async-compute.svelte.js +77 -0
  27. package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
  28. package/dist/chempot-diagram/chempot-worker.js +11 -0
  29. package/dist/chempot-diagram/color.d.ts +10 -0
  30. package/dist/chempot-diagram/color.js +32 -0
  31. package/dist/chempot-diagram/compute.d.ts +48 -0
  32. package/dist/chempot-diagram/compute.js +812 -0
  33. package/dist/chempot-diagram/index.d.ts +6 -0
  34. package/dist/chempot-diagram/index.js +6 -0
  35. package/dist/chempot-diagram/pointer.d.ts +16 -0
  36. package/dist/chempot-diagram/pointer.js +40 -0
  37. package/dist/chempot-diagram/temperature.d.ts +15 -0
  38. package/dist/chempot-diagram/temperature.js +36 -0
  39. package/dist/chempot-diagram/types.d.ts +86 -0
  40. package/dist/chempot-diagram/types.js +28 -0
  41. package/dist/colors/index.d.ts +3 -1
  42. package/dist/colors/index.js +9 -3
  43. package/dist/composition/BarChart.svelte +141 -77
  44. package/dist/composition/BubbleChart.svelte +107 -52
  45. package/dist/composition/Composition.svelte +100 -79
  46. package/dist/composition/Formula.svelte +108 -62
  47. package/dist/composition/FormulaFilter.svelte +973 -353
  48. package/dist/composition/FormulaFilter.svelte.d.ts +35 -1
  49. package/dist/composition/PieChart.svelte +199 -99
  50. package/dist/composition/PieChart.svelte.d.ts +1 -1
  51. package/dist/composition/format.d.ts +5 -0
  52. package/dist/composition/format.js +20 -3
  53. package/dist/composition/parse.js +14 -9
  54. package/dist/convex-hull/ConvexHull.svelte +93 -38
  55. package/dist/convex-hull/ConvexHull2D.svelte +551 -393
  56. package/dist/convex-hull/ConvexHull3D.svelte +1303 -825
  57. package/dist/convex-hull/ConvexHull4D.svelte +1012 -686
  58. package/dist/convex-hull/ConvexHullControls.svelte +115 -28
  59. package/dist/convex-hull/ConvexHullInfoPane.svelte +29 -3
  60. package/dist/convex-hull/ConvexHullStats.svelte +821 -249
  61. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +6 -1
  62. package/dist/convex-hull/ConvexHullTooltip.svelte +41 -16
  63. package/dist/convex-hull/GasPressureControls.svelte +104 -61
  64. package/dist/convex-hull/StructurePopup.svelte +25 -4
  65. package/dist/convex-hull/TemperatureSlider.svelte +45 -25
  66. package/dist/convex-hull/barycentric-coords.js +13 -7
  67. package/dist/convex-hull/demo-temperature.d.ts +6 -0
  68. package/dist/convex-hull/demo-temperature.js +40 -0
  69. package/dist/convex-hull/gas-thermodynamics.js +17 -12
  70. package/dist/convex-hull/helpers.d.ts +10 -1
  71. package/dist/convex-hull/helpers.js +79 -38
  72. package/dist/convex-hull/index.d.ts +1 -0
  73. package/dist/convex-hull/index.js +1 -0
  74. package/dist/convex-hull/thermodynamics.d.ts +8 -21
  75. package/dist/convex-hull/thermodynamics.js +163 -69
  76. package/dist/convex-hull/types.d.ts +12 -12
  77. package/dist/convex-hull/types.js +0 -12
  78. package/dist/coordination/CoordinationBarPlot.svelte +232 -176
  79. package/dist/element/BohrAtom.svelte +56 -13
  80. package/dist/element/ElementHeading.svelte +7 -2
  81. package/dist/element/ElementPhoto.svelte +15 -9
  82. package/dist/element/ElementStats.svelte +10 -4
  83. package/dist/element/ElementTile.svelte +137 -73
  84. package/dist/element/Nucleus.svelte +39 -11
  85. package/dist/element/data.js +2 -14
  86. package/dist/element/data.json.gz +0 -0
  87. package/dist/element/types.d.ts +1 -0
  88. package/dist/feedback/ClickFeedback.svelte +16 -5
  89. package/dist/feedback/DragOverlay.svelte +10 -2
  90. package/dist/feedback/Spinner.svelte +4 -2
  91. package/dist/feedback/StatusMessage.svelte +8 -2
  92. package/dist/fermi-surface/FermiSlice.svelte +118 -88
  93. package/dist/fermi-surface/FermiSurface.svelte +336 -239
  94. package/dist/fermi-surface/FermiSurface.svelte.d.ts +1 -1
  95. package/dist/fermi-surface/FermiSurfaceControls.svelte +113 -46
  96. package/dist/fermi-surface/FermiSurfaceScene.svelte +536 -343
  97. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +1 -1
  98. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +14 -5
  99. package/dist/fermi-surface/compute.js +16 -20
  100. package/dist/fermi-surface/parse.js +37 -33
  101. package/dist/fermi-surface/symmetry.js +2 -7
  102. package/dist/fermi-surface/types.d.ts +3 -5
  103. package/dist/heatmap-matrix/HeatmapMatrix.svelte +1527 -0
  104. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
  105. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  106. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
  107. package/dist/heatmap-matrix/index.d.ts +53 -0
  108. package/dist/heatmap-matrix/index.js +100 -0
  109. package/dist/heatmap-matrix/shared.d.ts +2 -0
  110. package/dist/heatmap-matrix/shared.js +4 -0
  111. package/dist/icons.d.ts +111 -0
  112. package/dist/icons.js +158 -0
  113. package/dist/index.d.ts +5 -2
  114. package/dist/index.js +5 -2
  115. package/dist/io/decompress.js +1 -1
  116. package/dist/io/export.d.ts +3 -0
  117. package/dist/io/export.js +138 -140
  118. package/dist/io/file-drop.d.ts +7 -0
  119. package/dist/io/file-drop.js +43 -0
  120. package/dist/io/index.d.ts +2 -2
  121. package/dist/io/index.js +2 -112
  122. package/dist/io/is-binary.js +2 -3
  123. package/dist/io/types.d.ts +1 -0
  124. package/dist/io/url-drop.d.ts +2 -0
  125. package/dist/io/url-drop.js +117 -0
  126. package/dist/isosurface/Isosurface.svelte +220 -110
  127. package/dist/isosurface/IsosurfaceControls.svelte +65 -28
  128. package/dist/isosurface/parse.js +104 -56
  129. package/dist/isosurface/slice.d.ts +2 -1
  130. package/dist/isosurface/slice.js +8 -13
  131. package/dist/isosurface/types.d.ts +14 -1
  132. package/dist/isosurface/types.js +152 -5
  133. package/dist/labels.d.ts +2 -1
  134. package/dist/labels.js +12 -8
  135. package/dist/layout/FullscreenToggle.svelte +11 -2
  136. package/dist/layout/InfoCard.svelte +38 -6
  137. package/dist/layout/InfoTag.svelte +125 -94
  138. package/dist/layout/PropertyFilter.svelte +82 -37
  139. package/dist/layout/SettingsSection.svelte +85 -55
  140. package/dist/layout/SubpageGrid.svelte +82 -0
  141. package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
  142. package/dist/layout/index.d.ts +1 -0
  143. package/dist/layout/index.js +1 -0
  144. package/dist/layout/json-tree/JsonNode.svelte +266 -223
  145. package/dist/layout/json-tree/JsonTree.svelte +516 -429
  146. package/dist/layout/json-tree/JsonTree.svelte.d.ts +1 -1
  147. package/dist/layout/json-tree/JsonValue.svelte +281 -173
  148. package/dist/layout/json-tree/types.d.ts +10 -2
  149. package/dist/layout/json-tree/utils.d.ts +2 -0
  150. package/dist/layout/json-tree/utils.js +37 -2
  151. package/dist/marching-cubes.js +25 -2
  152. package/dist/math.d.ts +20 -17
  153. package/dist/math.js +474 -57
  154. package/dist/overlays/ContextMenu.svelte +66 -40
  155. package/dist/overlays/DraggablePane.svelte +331 -154
  156. package/dist/overlays/DraggablePane.svelte.d.ts +2 -0
  157. package/dist/periodic-table/PeriodicTable.svelte +278 -145
  158. package/dist/periodic-table/PeriodicTableControls.svelte +178 -128
  159. package/dist/periodic-table/PropertySelect.svelte +25 -7
  160. package/dist/periodic-table/TableInset.svelte +8 -3
  161. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +559 -267
  162. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -2
  163. package/dist/phase-diagram/PhaseDiagramControls.svelte +131 -51
  164. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +3 -2
  165. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
  166. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
  167. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +160 -110
  168. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +8 -1
  169. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +217 -86
  170. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +6 -3
  171. package/dist/phase-diagram/TdbInfoPanel.svelte +28 -4
  172. package/dist/phase-diagram/build-diagram.js +9 -9
  173. package/dist/phase-diagram/colors.js +1 -3
  174. package/dist/phase-diagram/index.d.ts +2 -0
  175. package/dist/phase-diagram/index.js +2 -0
  176. package/dist/phase-diagram/parse.js +10 -9
  177. package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
  178. package/dist/phase-diagram/svg-to-diagram.js +869 -0
  179. package/dist/phase-diagram/types.d.ts +10 -0
  180. package/dist/phase-diagram/utils.d.ts +8 -4
  181. package/dist/phase-diagram/utils.js +219 -74
  182. package/dist/plot/AxisLabel.svelte +51 -0
  183. package/dist/plot/AxisLabel.svelte.d.ts +16 -0
  184. package/dist/plot/BarPlot.svelte +1461 -768
  185. package/dist/plot/BarPlot.svelte.d.ts +3 -3
  186. package/dist/plot/BarPlotControls.svelte +33 -6
  187. package/dist/plot/BarPlotControls.svelte.d.ts +1 -1
  188. package/dist/plot/ColorBar.svelte +533 -383
  189. package/dist/plot/ColorBar.svelte.d.ts +1 -1
  190. package/dist/plot/ColorScaleSelect.svelte +28 -7
  191. package/dist/plot/ElementScatter.svelte +38 -16
  192. package/dist/plot/FillArea.svelte +152 -92
  193. package/dist/plot/Histogram.svelte +1162 -709
  194. package/dist/plot/Histogram.svelte.d.ts +1 -1
  195. package/dist/plot/HistogramControls.svelte +81 -18
  196. package/dist/plot/HistogramControls.svelte.d.ts +6 -2
  197. package/dist/plot/InteractiveAxisLabel.svelte +34 -11
  198. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +1 -1
  199. package/dist/plot/Line.svelte +63 -28
  200. package/dist/plot/PlotControls.svelte +221 -96
  201. package/dist/plot/PlotControls.svelte.d.ts +1 -1
  202. package/dist/plot/PlotLegend.svelte +174 -91
  203. package/dist/plot/PlotTooltip.svelte +45 -6
  204. package/dist/plot/PortalSelect.svelte +175 -146
  205. package/dist/plot/ReferenceLine.svelte +77 -22
  206. package/dist/plot/ReferenceLine.svelte.d.ts +1 -0
  207. package/dist/plot/ReferenceLine3D.svelte +132 -107
  208. package/dist/plot/ReferencePlane.svelte +146 -123
  209. package/dist/plot/ScatterPlot.svelte +1880 -1156
  210. package/dist/plot/ScatterPlot.svelte.d.ts +3 -3
  211. package/dist/plot/ScatterPlot3D.svelte +256 -131
  212. package/dist/plot/ScatterPlot3D.svelte.d.ts +2 -2
  213. package/dist/plot/ScatterPlot3DControls.svelte +300 -297
  214. package/dist/plot/ScatterPlot3DControls.svelte.d.ts +2 -1
  215. package/dist/plot/ScatterPlot3DScene.svelte +608 -406
  216. package/dist/plot/ScatterPlot3DScene.svelte.d.ts +2 -2
  217. package/dist/plot/ScatterPlotControls.svelte +150 -70
  218. package/dist/plot/ScatterPlotControls.svelte.d.ts +1 -1
  219. package/dist/plot/ScatterPoint.svelte +98 -26
  220. package/dist/plot/ScatterPoint.svelte.d.ts +1 -0
  221. package/dist/plot/SpacegroupBarPlot.svelte +142 -85
  222. package/dist/plot/Surface3D.svelte +159 -108
  223. package/dist/plot/ZeroLines.svelte +96 -0
  224. package/dist/plot/ZeroLines.svelte.d.ts +32 -0
  225. package/dist/plot/ZoomRect.svelte +23 -0
  226. package/dist/plot/ZoomRect.svelte.d.ts +8 -0
  227. package/dist/plot/axis-utils.d.ts +1 -1
  228. package/dist/plot/axis-utils.js +1 -3
  229. package/dist/plot/data-cleaning.js +12 -28
  230. package/dist/plot/data-transform.js +2 -1
  231. package/dist/plot/fill-utils.js +2 -0
  232. package/dist/plot/index.d.ts +6 -2
  233. package/dist/plot/index.js +6 -2
  234. package/dist/plot/interactions.d.ts +8 -10
  235. package/dist/plot/interactions.js +2 -3
  236. package/dist/plot/layout.d.ts +11 -2
  237. package/dist/plot/layout.js +44 -17
  238. package/dist/plot/reference-line.d.ts +5 -22
  239. package/dist/plot/reference-line.js +12 -84
  240. package/dist/plot/scales.js +24 -36
  241. package/dist/plot/types.d.ts +53 -40
  242. package/dist/plot/types.js +12 -7
  243. package/dist/plot/utils/label-placement.d.ts +32 -15
  244. package/dist/plot/utils/label-placement.js +227 -63
  245. package/dist/plot/utils/series-visibility.js +2 -3
  246. package/dist/plot/utils.d.ts +1 -0
  247. package/dist/plot/utils.js +14 -0
  248. package/dist/rdf/RdfPlot.svelte +173 -132
  249. package/dist/rdf/calc-rdf.js +4 -5
  250. package/dist/sanitize.d.ts +4 -0
  251. package/dist/sanitize.js +107 -0
  252. package/dist/settings.d.ts +21 -6
  253. package/dist/settings.js +63 -19
  254. package/dist/spectral/Bands.svelte +963 -412
  255. package/dist/spectral/Bands.svelte.d.ts +22 -2
  256. package/dist/spectral/BandsAndDos.svelte +90 -49
  257. package/dist/spectral/BrillouinBandsDos.svelte +151 -93
  258. package/dist/spectral/Dos.svelte +389 -258
  259. package/dist/spectral/helpers.d.ts +23 -1
  260. package/dist/spectral/helpers.js +119 -51
  261. package/dist/spectral/types.d.ts +2 -0
  262. package/dist/state.svelte.d.ts +1 -1
  263. package/dist/state.svelte.js +3 -2
  264. package/dist/structure/Arrow.svelte +59 -20
  265. package/dist/structure/AtomLegend.svelte +231 -129
  266. package/dist/structure/AtomLegend.svelte.d.ts +1 -1
  267. package/dist/structure/Bond.svelte +73 -47
  268. package/dist/structure/CanvasTooltip.svelte +10 -2
  269. package/dist/structure/CellSelect.svelte +148 -51
  270. package/dist/structure/Cylinder.svelte +33 -17
  271. package/dist/structure/Lattice.svelte +88 -33
  272. package/dist/structure/Structure.svelte +1077 -821
  273. package/dist/structure/Structure.svelte.d.ts +1 -1
  274. package/dist/structure/StructureControls.svelte +373 -139
  275. package/dist/structure/StructureControls.svelte.d.ts +1 -1
  276. package/dist/structure/StructureExportPane.svelte +124 -89
  277. package/dist/structure/StructureExportPane.svelte.d.ts +1 -1
  278. package/dist/structure/StructureInfoPane.svelte +304 -231
  279. package/dist/structure/StructureScene.svelte +919 -445
  280. package/dist/structure/StructureScene.svelte.d.ts +16 -7
  281. package/dist/structure/atom-properties.d.ts +6 -2
  282. package/dist/structure/atom-properties.js +42 -29
  283. package/dist/structure/bonding.js +6 -7
  284. package/dist/structure/export.js +22 -34
  285. package/dist/structure/ferrox-wasm-types.d.ts +3 -2
  286. package/dist/structure/ferrox-wasm-types.js +0 -3
  287. package/dist/structure/ferrox-wasm.d.ts +3 -2
  288. package/dist/structure/ferrox-wasm.js +2 -3
  289. package/dist/structure/index.d.ts +16 -0
  290. package/dist/structure/index.js +88 -6
  291. package/dist/structure/measure.d.ts +2 -2
  292. package/dist/structure/measure.js +4 -44
  293. package/dist/structure/parse.js +130 -155
  294. package/dist/structure/partial-occupancy.d.ts +25 -0
  295. package/dist/structure/partial-occupancy.js +99 -0
  296. package/dist/structure/pbc.d.ts +1 -0
  297. package/dist/structure/pbc.js +16 -6
  298. package/dist/structure/supercell.d.ts +2 -2
  299. package/dist/structure/supercell.js +12 -22
  300. package/dist/structure/validation.js +5 -3
  301. package/dist/symmetry/SymmetryStats.svelte +94 -37
  302. package/dist/symmetry/WyckoffTable.svelte +42 -14
  303. package/dist/symmetry/cell-transform.js +5 -3
  304. package/dist/symmetry/index.d.ts +7 -4
  305. package/dist/symmetry/index.js +87 -21
  306. package/dist/symmetry/spacegroups.js +148 -148
  307. package/dist/table/HeatmapTable.svelte +1112 -516
  308. package/dist/table/HeatmapTable.svelte.d.ts +12 -1
  309. package/dist/table/ToggleMenu.svelte +125 -90
  310. package/dist/table/index.d.ts +2 -0
  311. package/dist/table/index.js +2 -4
  312. package/dist/theme/ThemeControl.svelte +21 -12
  313. package/dist/time.js +4 -1
  314. package/dist/tooltip/TooltipContent.svelte +33 -8
  315. package/dist/trajectory/Trajectory.svelte +889 -687
  316. package/dist/trajectory/TrajectoryError.svelte +14 -3
  317. package/dist/trajectory/TrajectoryExportPane.svelte +148 -90
  318. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +1 -1
  319. package/dist/trajectory/TrajectoryInfoPane.svelte +272 -143
  320. package/dist/trajectory/constants.d.ts +6 -0
  321. package/dist/trajectory/constants.js +7 -0
  322. package/dist/trajectory/extract.js +13 -31
  323. package/dist/trajectory/format-detect.d.ts +9 -0
  324. package/dist/trajectory/format-detect.js +76 -0
  325. package/dist/trajectory/frame-reader.d.ts +17 -0
  326. package/dist/trajectory/frame-reader.js +332 -0
  327. package/dist/trajectory/helpers.d.ts +14 -0
  328. package/dist/trajectory/helpers.js +172 -0
  329. package/dist/trajectory/index.d.ts +1 -0
  330. package/dist/trajectory/index.js +23 -14
  331. package/dist/trajectory/parse/ase.d.ts +2 -0
  332. package/dist/trajectory/parse/ase.js +77 -0
  333. package/dist/trajectory/parse/hdf5.d.ts +2 -0
  334. package/dist/trajectory/parse/hdf5.js +129 -0
  335. package/dist/trajectory/parse/index.d.ts +12 -0
  336. package/dist/trajectory/parse/index.js +299 -0
  337. package/dist/trajectory/parse/lammps.d.ts +5 -0
  338. package/dist/trajectory/parse/lammps.js +179 -0
  339. package/dist/trajectory/parse/vasp.d.ts +2 -0
  340. package/dist/trajectory/parse/vasp.js +68 -0
  341. package/dist/trajectory/parse/xyz.d.ts +2 -0
  342. package/dist/trajectory/parse/xyz.js +110 -0
  343. package/dist/trajectory/plotting.js +13 -8
  344. package/dist/trajectory/types.d.ts +11 -0
  345. package/dist/trajectory/types.js +1 -0
  346. package/dist/utils.d.ts +3 -0
  347. package/dist/utils.js +17 -0
  348. package/dist/xrd/XrdPlot.svelte +337 -245
  349. package/dist/xrd/broadening.js +14 -9
  350. package/dist/xrd/calc-xrd.js +12 -19
  351. package/dist/xrd/parse.d.ts +1 -1
  352. package/dist/xrd/parse.js +17 -17
  353. package/package.json +103 -101
  354. package/readme.md +4 -4
  355. package/dist/trajectory/parse.d.ts +0 -42
  356. package/dist/trajectory/parse.js +0 -1267
  357. /package/dist/element/{data.json.d.ts → data.json.gz.d.ts} +0 -0
  358. /package/dist/theme/{themes.js → themes.mjs} +0 -0
@@ -45,6 +45,6 @@ type $$ComponentProps = {
45
45
  camera?: Camera;
46
46
  hover_data?: FermiHoverData | null;
47
47
  };
48
- declare const FermiSurfaceScene: import("svelte").Component<$$ComponentProps, {}, "camera_position" | "camera_projection" | "camera_is_moving" | "scene" | "camera" | "surface_opacity" | "bz_data" | "hover_data" | "fermi_data">;
48
+ declare const FermiSurfaceScene: import("svelte").Component<$$ComponentProps, {}, "camera_position" | "camera_projection" | "camera" | "scene" | "camera_is_moving" | "surface_opacity" | "bz_data" | "hover_data" | "fermi_data">;
49
49
  type FermiSurfaceScene = ReturnType<typeof FermiSurfaceScene>;
50
50
  export default FermiSurfaceScene;
@@ -1,8 +1,17 @@
1
- <script lang="ts">// Tooltip component for Fermi surface hover information
2
- // Displays band index, spin, k-coordinates, and optional property values
3
- import { format_num, format_vec3 } from '../labels';
4
- import { TooltipContent } from '../tooltip';
5
- let { hover_data, tooltip, } = $props();
1
+ <script lang="ts">
2
+ // Tooltip component for Fermi surface hover information
3
+ // Displays band index, spin, k-coordinates, and optional property values
4
+ import { format_num, format_vec3 } from '../labels'
5
+ import { TooltipContent } from '../tooltip'
6
+ import type { FermiHoverData, FermiTooltipProp } from './types'
7
+
8
+ let {
9
+ hover_data,
10
+ tooltip,
11
+ }: {
12
+ hover_data: FermiHoverData
13
+ tooltip?: FermiTooltipProp
14
+ } = $props()
6
15
  </script>
7
16
 
8
17
  <TooltipContent data={hover_data} snippet_arg={{ hover_data }} {tooltip}>
@@ -42,8 +42,9 @@ function tricubic_interpolate(grid, fx, fy, fz, nx, ny, nz) {
42
42
  for (let yi = 0; yi < 4; yi++) {
43
43
  const col = row[wy[yi]];
44
44
  // Inline z interpolation
45
- y_sum += cy[yi] * (cz[0] * col[wz[0]] + cz[1] * col[wz[1]] +
46
- cz[2] * col[wz[2]] + cz[3] * col[wz[3]]);
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]]);
47
48
  }
48
49
  result += cx[xi] * y_sum;
49
50
  }
@@ -95,9 +96,7 @@ export function extract_fermi_surface(band_data, options = {}) {
95
96
  let total_area = 0;
96
97
  // Process each spin channel and band
97
98
  for (let spin_idx = 0; spin_idx < band_data.n_spins; spin_idx++) {
98
- const spin = band_data.n_spins === 2
99
- ? (spin_idx === 0 ? `up` : `down`)
100
- : null;
99
+ const spin = band_data.n_spins === 2 ? (spin_idx === 0 ? `up` : `down`) : null;
101
100
  // Skip if spin not selected
102
101
  if (selected_spins && !selected_spins.includes(spin))
103
102
  continue;
@@ -138,8 +137,8 @@ export function extract_fermi_surface(band_data, options = {}) {
138
137
  // Compute Fermi velocities if requested
139
138
  if (compute_velocities && band_data.velocities) {
140
139
  isosurface.properties = compute_fermi_velocities(isosurface, band_data.velocities[spin_idx][band_idx], band_data.k_lattice, band_data.k_grid);
141
- isosurface.avg_velocity = isosurface.properties.reduce((s, v) => s + v, 0) /
142
- isosurface.properties.length;
140
+ isosurface.avg_velocity =
141
+ isosurface.properties.reduce((s, v) => s + v, 0) / isosurface.properties.length;
143
142
  }
144
143
  // Compute dimensionality if requested
145
144
  if (compute_dimensionality) {
@@ -309,7 +308,7 @@ function analyze_surface_topology(surface, bz_data) {
309
308
  }
310
309
  // Compute 2D Fermi slice along a specified plane
311
310
  export function compute_fermi_slice(fermi_data, options = {}) {
312
- const { miller_indices = [0, 0, 1], distance = 0, } = options;
311
+ const { miller_indices = [0, 0, 1], distance = 0 } = options;
313
312
  // Validate miller indices are not all zero
314
313
  if (miller_indices[0] === 0 && miller_indices[1] === 0 && miller_indices[2] === 0) {
315
314
  throw new Error(`Invalid miller indices [0, 0, 0]: at least one index must be non-zero to define a plane`);
@@ -336,7 +335,7 @@ export function compute_fermi_slice(fermi_data, options = {}) {
336
335
  k_lattice_2d: [in_plane_u, in_plane_v],
337
336
  metadata: {
338
337
  n_lines: isolines.length,
339
- has_properties: isolines.some((l) => l.properties !== undefined),
338
+ has_properties: isolines.some((line) => line.properties !== undefined),
340
339
  },
341
340
  };
342
341
  }
@@ -359,8 +358,9 @@ function compute_edge_intersection(surface, vertex_distances, v0_idx, v1_idx) {
359
358
  ];
360
359
  let property;
361
360
  if (surface.properties) {
362
- property = surface.properties[v0_idx] +
363
- t * (surface.properties[v1_idx] - surface.properties[v0_idx]);
361
+ property =
362
+ surface.properties[v0_idx] +
363
+ t * (surface.properties[v1_idx] - surface.properties[v0_idx]);
364
364
  }
365
365
  return { point, property };
366
366
  }
@@ -397,10 +397,7 @@ function slice_surface_with_plane(surface, plane_normal, plane_distance, in_plan
397
397
  face_segments.push({
398
398
  face_idx,
399
399
  edge_keys: [crossing_edges[0].edge_key, crossing_edges[1].edge_key],
400
- points: [
401
- crossing_edges[0].intersection.point,
402
- crossing_edges[1].intersection.point,
403
- ],
400
+ points: [crossing_edges[0].intersection.point, crossing_edges[1].intersection.point],
404
401
  properties: surface.properties
405
402
  ? [
406
403
  crossing_edges[0].intersection.property ?? 0,
@@ -487,8 +484,7 @@ function slice_surface_with_plane(surface, plane_normal, plane_distance, in_plan
487
484
  start_segment.points[0],
488
485
  ...forward_points,
489
486
  ];
490
- const contour_props = backward_props && forward_props &&
491
- start_segment.properties
487
+ const contour_props = backward_props && forward_props && start_segment.properties
492
488
  ? [...backward_props, start_segment.properties[0], ...forward_props]
493
489
  : undefined;
494
490
  // Check if contour is closed
@@ -498,10 +494,10 @@ function slice_surface_with_plane(surface, plane_normal, plane_distance, in_plan
498
494
  // Project to 2D (inlined dot product for speed)
499
495
  const points_2d = new Array(contour_points.length);
500
496
  for (let idx = 0; idx < contour_points.length; idx++) {
501
- const p = contour_points[idx];
497
+ const point = contour_points[idx];
502
498
  points_2d[idx] = [
503
- p[0] * ux + p[1] * uy + p[2] * uz,
504
- p[0] * vx + p[1] * vy + p[2] * vz,
499
+ point[0] * ux + point[1] * uy + point[2] * uz,
500
+ point[0] * vx + point[1] * vy + point[2] * vz,
505
501
  ];
506
502
  }
507
503
  isolines.push({
@@ -1,24 +1,13 @@
1
1
  import * as constants from './constants';
2
2
  import { compute_vertex_normals } from './marching-cubes';
3
+ const parse_number_tokens = (line) => line.split(/\s+/).filter(Boolean);
3
4
  // Parse whitespace-separated floats from a line (optimized with unary +)
4
5
  function parse_floats(line) {
5
- const parts = line.split(/\s+/);
6
- const result = [];
7
- for (let idx = 0; idx < parts.length; idx++) {
8
- if (parts[idx])
9
- result.push(+parts[idx]);
10
- }
11
- return result;
6
+ return parse_number_tokens(line).map((part) => +part);
12
7
  }
13
8
  // Parse whitespace-separated integers from a line
14
9
  function parse_ints(line) {
15
- const parts = line.split(/\s+/);
16
- const result = [];
17
- for (let idx = 0; idx < parts.length; idx++) {
18
- if (parts[idx])
19
- result.push(parseInt(parts[idx], 10));
20
- }
21
- return result;
10
+ return parse_number_tokens(line).map((part) => parseInt(part, 10));
22
11
  }
23
12
  // Parse BXSF (Band-XSF) format used by XCrySDen, Quantum ESPRESSO, etc.
24
13
  // Format specification: http://www.xcrysden.org/doc/XSF.html
@@ -127,7 +116,7 @@ function parse_bxsf(content) {
127
116
  const lower = line.toLowerCase();
128
117
  if (lower.includes(`fermi`) && lower.includes(`energy`)) {
129
118
  // Match patterns like "Fermi Energy = 5.123" or "fermi_energy: -0.5"
130
- const match = line.match(/(?:=|:)\s*([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)/i);
119
+ const match = /(?:=|:)\s*([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)/i.exec(line);
131
120
  if (match) {
132
121
  fermi_energy = parseFloat(match[1]);
133
122
  break;
@@ -147,7 +136,10 @@ function parse_bxsf(content) {
147
136
  // Parse FRMSF format used by FermiSurfer
148
137
  // Format: https://mitsuaki1987.github.io/fermisurfer/en/_build/html/ops.html
149
138
  function parse_frmsf(content) {
150
- const lines = content.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
139
+ const lines = content
140
+ .split(/\r?\n/)
141
+ .map((line) => line.trim())
142
+ .filter(Boolean);
151
143
  let line_idx = 0;
152
144
  // Line 1: grid dimensions (ng[0] ng[1] ng[2])
153
145
  const grid_dims = parse_ints(lines[line_idx++]);
@@ -173,9 +165,15 @@ function parse_frmsf(content) {
173
165
  // Lines 4-6: reciprocal lattice vectors (in Bohr^-1, convert to Å^-1)
174
166
  const inv_bohr = 1 / constants.BOHR_TO_ANGSTROM;
175
167
  const k_lattice = [
176
- parse_floats(lines[line_idx++]).slice(0, 3).map((val) => val * inv_bohr),
177
- parse_floats(lines[line_idx++]).slice(0, 3).map((val) => val * inv_bohr),
178
- parse_floats(lines[line_idx++]).slice(0, 3).map((val) => val * inv_bohr),
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),
179
177
  ];
180
178
  const [nx, ny, nz] = k_grid;
181
179
  const total_points = nx * ny * nz;
@@ -231,18 +229,21 @@ function parse_frmsf(content) {
231
229
  function is_valid_isosurface(obj) {
232
230
  if (!obj || typeof obj !== `object`)
233
231
  return false;
234
- const iso = obj;
235
- // Required array fields
236
- if (!Array.isArray(iso.vertices) || iso.vertices.length === 0)
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)
237
239
  return false;
238
- if (!Array.isArray(iso.faces))
240
+ if (!Array.isArray(faces))
239
241
  return false;
240
- if (!Array.isArray(iso.normals))
242
+ if (!Array.isArray(normals))
241
243
  return false;
242
- // Required scalar fields
243
- if (typeof iso.band_index !== `number`)
244
+ if (typeof band_index !== `number` || !Number.isFinite(band_index))
244
245
  return false;
245
- if (iso.spin !== null && iso.spin !== `up` && iso.spin !== `down`)
246
+ if (spin !== null && spin !== `up` && spin !== `down`)
246
247
  return false;
247
248
  return true;
248
249
  }
@@ -282,7 +283,8 @@ function parse_fermi_json(content) {
282
283
  throw new Error(`Invalid FermiSurfaceData JSON: isosurfaces array present but missing required fields`);
283
284
  }
284
285
  // Check if it's IFermi format (isosurfaces is an object keyed by band index)
285
- if (data[`@class`] === `FermiSurface` && data.isosurfaces &&
286
+ if (data[`@class`] === `FermiSurface` &&
287
+ data.isosurfaces &&
286
288
  typeof data.isosurfaces === `object`) {
287
289
  return parse_ifermi_surface(data);
288
290
  }
@@ -328,7 +330,11 @@ function parse_ifermi_surface(data) {
328
330
  // Extract reciprocal lattice
329
331
  const k_lattice = reciprocal_space?.reciprocal_lattice
330
332
  ? reciprocal_space.reciprocal_lattice
331
- : [[1, 0, 0], [0, 1, 0], [0, 0, 1]];
333
+ : [
334
+ [1, 0, 0],
335
+ [0, 1, 0],
336
+ [0, 0, 1],
337
+ ];
332
338
  // Convert IFermi isosurfaces to our format
333
339
  const isosurfaces = [];
334
340
  const band_indices = new Set();
@@ -456,8 +462,7 @@ export function parse_fermi_file(content, filename) {
456
462
  // Try auto-detection based on content
457
463
  const trimmed = content.trim();
458
464
  // BXSF format detection
459
- if (trimmed.includes(`BEGIN_BLOCK_BANDGRID_3D`) ||
460
- trimmed.includes(`BEGIN_BANDGRID_3D`)) {
465
+ if (trimmed.includes(`BEGIN_BLOCK_BANDGRID_3D`) || trimmed.includes(`BEGIN_BANDGRID_3D`)) {
461
466
  try {
462
467
  return parse_bxsf(content);
463
468
  }
@@ -477,8 +482,7 @@ export function parse_fermi_file(content, filename) {
477
482
  // FRMSF format detection (starts with grid dimensions)
478
483
  const first_line = trimmed.split(/\r?\n/)[0];
479
484
  const first_tokens = first_line.split(/\s+/).filter(Boolean);
480
- if (first_tokens.length === 3 &&
481
- first_tokens.every((t) => /^\d+$/.test(t))) {
485
+ if (first_tokens.length === 3 && first_tokens.every((t) => /^\d+$/.test(t))) {
482
486
  try {
483
487
  return parse_frmsf(content);
484
488
  }
@@ -1,11 +1,6 @@
1
1
  // Identity 4x4 matrix (column-major for Three.js)
2
- // deno-fmt-ignore
3
- export const IDENTITY_4x4 = [
4
- 1, 0, 0, 0,
5
- 0, 1, 0, 0,
6
- 0, 0, 1, 0,
7
- 0, 0, 0, 1,
8
- ];
2
+ // oxfmt-ignore
3
+ export const IDENTITY_4x4 = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
9
4
  // All permutations of (0, 1, 2) for axis swaps
10
5
  const AXIS_PERMUTATIONS = [
11
6
  [0, 1, 2],
@@ -106,10 +106,8 @@ export interface FermiHoverData {
106
106
  symmetry_index?: number;
107
107
  }
108
108
  export type FermiTooltipConfig = TooltipConfig<FermiHoverData>;
109
- export type FermiTooltipProp = TooltipProp<FermiHoverData, [
110
- {
111
- hover_data: FermiHoverData;
112
- }
113
- ]>;
109
+ export type FermiTooltipProp = TooltipProp<FermiHoverData, [{
110
+ hover_data: FermiHoverData;
111
+ }]>;
114
112
  export declare const is_fermi_surface_data: (data: BandGridData | FermiSurfaceData | null) => data is FermiSurfaceData;
115
113
  export declare const is_band_grid_data: (data: BandGridData | FermiSurfaceData | null) => data is BandGridData;