matterviz 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (926) hide show
  1. package/dist/EmptyState.svelte.d.ts +9 -0
  2. package/dist/FilePicker.svelte +360 -0
  3. package/dist/FilePicker.svelte.d.ts +17 -0
  4. package/dist/Icon.svelte +44 -0
  5. package/dist/Icon.svelte.d.ts +13 -0
  6. package/dist/MillerIndexInput.svelte +66 -0
  7. package/dist/MillerIndexInput.svelte.d.ts +7 -0
  8. package/dist/api/mp.d.ts +6 -0
  9. package/dist/api/mp.js +22 -0
  10. package/dist/api/optimade.d.ts +45 -0
  11. package/dist/api/optimade.js +141 -0
  12. package/dist/app.css +244 -0
  13. package/dist/brillouin/BrillouinZone.svelte +554 -0
  14. package/dist/brillouin/BrillouinZone.svelte.d.ts +84 -0
  15. package/dist/brillouin/BrillouinZoneControls.svelte +144 -0
  16. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +17 -0
  17. package/dist/brillouin/BrillouinZoneExportPane.svelte +146 -0
  18. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
  19. package/dist/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  20. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
  21. package/dist/brillouin/BrillouinZoneScene.svelte +522 -0
  22. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +49 -0
  23. package/dist/brillouin/BrillouinZoneTooltip.svelte +83 -0
  24. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +8 -0
  25. package/dist/brillouin/compute.d.ts +17 -0
  26. package/dist/brillouin/compute.js +422 -0
  27. package/dist/brillouin/index.d.ts +8 -0
  28. package/dist/brillouin/index.js +7 -0
  29. package/dist/brillouin/types.d.ts +43 -0
  30. package/dist/brillouin/types.js +1 -0
  31. package/dist/chempot-diagram/ChemPotDiagram.svelte +328 -0
  32. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
  33. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +843 -0
  34. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
  35. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3191 -0
  36. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
  37. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
  38. package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
  39. package/dist/chempot-diagram/async-compute.svelte.js +80 -0
  40. package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
  41. package/dist/chempot-diagram/chempot-worker.js +12 -0
  42. package/dist/chempot-diagram/color.d.ts +10 -0
  43. package/dist/chempot-diagram/color.js +32 -0
  44. package/dist/chempot-diagram/compute.d.ts +48 -0
  45. package/dist/chempot-diagram/compute.js +804 -0
  46. package/dist/chempot-diagram/index.d.ts +6 -0
  47. package/dist/chempot-diagram/index.js +6 -0
  48. package/dist/chempot-diagram/pointer.d.ts +16 -0
  49. package/dist/chempot-diagram/pointer.js +40 -0
  50. package/dist/chempot-diagram/temperature.d.ts +15 -0
  51. package/dist/chempot-diagram/temperature.js +34 -0
  52. package/dist/chempot-diagram/types.d.ts +81 -0
  53. package/dist/chempot-diagram/types.js +28 -0
  54. package/dist/colors/index.d.ts +47 -0
  55. package/dist/colors/index.js +204 -0
  56. package/dist/composition/BarChart.svelte +297 -0
  57. package/dist/composition/BarChart.svelte.d.ts +39 -0
  58. package/dist/composition/BubbleChart.svelte +218 -0
  59. package/dist/composition/BubbleChart.svelte.d.ts +28 -0
  60. package/dist/composition/Composition.svelte +165 -0
  61. package/dist/composition/Composition.svelte.d.ts +15 -0
  62. package/dist/composition/Formula.svelte +268 -0
  63. package/dist/composition/Formula.svelte.d.ts +19 -0
  64. package/dist/composition/FormulaFilter.svelte +1263 -0
  65. package/dist/composition/FormulaFilter.svelte.d.ts +51 -0
  66. package/dist/composition/PieChart.svelte +324 -0
  67. package/dist/composition/PieChart.svelte.d.ts +37 -0
  68. package/dist/composition/chem-sys.d.ts +8 -0
  69. package/dist/composition/chem-sys.js +85 -0
  70. package/dist/composition/format.d.ts +15 -0
  71. package/dist/composition/format.js +111 -0
  72. package/dist/composition/index.d.ts +21 -0
  73. package/dist/composition/index.js +15 -0
  74. package/dist/composition/parse.d.ts +56 -0
  75. package/dist/composition/parse.js +486 -0
  76. package/dist/constants.d.ts +29 -0
  77. package/dist/constants.js +99 -0
  78. package/dist/controls.d.ts +14 -0
  79. package/dist/controls.js +30 -0
  80. package/dist/convex-hull/ConvexHull.svelte +157 -0
  81. package/dist/convex-hull/ConvexHull.svelte.d.ts +13 -0
  82. package/dist/convex-hull/ConvexHull2D.svelte +827 -0
  83. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +11 -0
  84. package/dist/convex-hull/ConvexHull3D.svelte +1801 -0
  85. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +8 -0
  86. package/dist/convex-hull/ConvexHull4D.svelte +1394 -0
  87. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +8 -0
  88. package/dist/convex-hull/ConvexHullControls.svelte +535 -0
  89. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +48 -0
  90. package/dist/convex-hull/ConvexHullInfoPane.svelte +125 -0
  91. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +20 -0
  92. package/dist/convex-hull/ConvexHullStats.svelte +929 -0
  93. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +17 -0
  94. package/dist/convex-hull/ConvexHullTooltip.svelte +131 -0
  95. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +33 -0
  96. package/dist/convex-hull/GasPressureControls.svelte +247 -0
  97. package/dist/convex-hull/GasPressureControls.svelte.d.ts +11 -0
  98. package/dist/convex-hull/StructurePopup.svelte +151 -0
  99. package/dist/convex-hull/StructurePopup.svelte.d.ts +18 -0
  100. package/dist/convex-hull/TemperatureSlider.svelte +140 -0
  101. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +8 -0
  102. package/dist/convex-hull/barycentric-coords.d.ts +18 -0
  103. package/dist/convex-hull/barycentric-coords.js +182 -0
  104. package/dist/convex-hull/demo-temperature.d.ts +6 -0
  105. package/dist/convex-hull/demo-temperature.js +38 -0
  106. package/dist/convex-hull/gas-thermodynamics.d.ts +16 -0
  107. package/dist/convex-hull/gas-thermodynamics.js +306 -0
  108. package/dist/convex-hull/helpers.d.ts +117 -0
  109. package/dist/convex-hull/helpers.js +718 -0
  110. package/dist/convex-hull/index.d.ts +119 -0
  111. package/dist/convex-hull/index.js +58 -0
  112. package/dist/convex-hull/thermodynamics.d.ts +67 -0
  113. package/dist/convex-hull/thermodynamics.js +1757 -0
  114. package/dist/convex-hull/types.d.ts +162 -0
  115. package/dist/convex-hull/types.js +36 -0
  116. package/dist/coordination/CoordinationBarPlot.svelte +311 -0
  117. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +30 -0
  118. package/dist/coordination/calc-coordination.d.ts +15 -0
  119. package/dist/coordination/calc-coordination.js +63 -0
  120. package/dist/coordination/index.d.ts +8 -0
  121. package/dist/coordination/index.js +7 -0
  122. package/dist/effects.svelte.d.ts +12 -0
  123. package/dist/effects.svelte.js +37 -0
  124. package/dist/element/BohrAtom.svelte.d.ts +20 -0
  125. package/dist/element/ElementHeading.svelte +26 -0
  126. package/dist/element/ElementHeading.svelte.d.ts +8 -0
  127. package/dist/element/ElementPhoto.svelte +57 -0
  128. package/dist/element/ElementPhoto.svelte.d.ts +9 -0
  129. package/dist/element/ElementStats.svelte +80 -0
  130. package/dist/element/ElementStats.svelte.d.ts +8 -0
  131. package/dist/element/ElementTile.svelte +484 -0
  132. package/dist/element/ElementTile.svelte.d.ts +29 -0
  133. package/dist/element/Nucleus.svelte.d.ts +17 -0
  134. package/dist/element/data.d.ts +2 -0
  135. package/dist/element/data.js +2 -0
  136. package/dist/element/index.d.ts +8 -0
  137. package/dist/element/index.js +7 -0
  138. package/dist/element/types.d.ts +57 -0
  139. package/dist/element/types.js +1 -0
  140. package/dist/feedback/ClickFeedback.svelte +58 -0
  141. package/dist/feedback/ClickFeedback.svelte.d.ts +12 -0
  142. package/dist/feedback/DragOverlay.svelte +42 -0
  143. package/dist/feedback/DragOverlay.svelte.d.ts +7 -0
  144. package/dist/feedback/Spinner.svelte.d.ts +7 -0
  145. package/dist/feedback/StatusMessage.svelte.d.ts +9 -0
  146. package/dist/feedback/index.d.ts +4 -0
  147. package/dist/feedback/index.js +4 -0
  148. package/dist/fermi-surface/FermiSlice.svelte +197 -0
  149. package/dist/fermi-surface/FermiSlice.svelte.d.ts +24 -0
  150. package/dist/fermi-surface/FermiSurface.svelte +606 -0
  151. package/dist/fermi-surface/FermiSurface.svelte.d.ts +83 -0
  152. package/dist/fermi-surface/FermiSurfaceControls.svelte +448 -0
  153. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +35 -0
  154. package/dist/fermi-surface/FermiSurfaceScene.svelte +797 -0
  155. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +50 -0
  156. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +85 -0
  157. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +8 -0
  158. package/dist/fermi-surface/compute.d.ts +5 -0
  159. package/dist/fermi-surface/compute.js +538 -0
  160. package/dist/fermi-surface/constants.d.ts +9 -0
  161. package/dist/fermi-surface/constants.js +27 -0
  162. package/dist/fermi-surface/export.d.ts +5 -0
  163. package/dist/fermi-surface/export.js +51 -0
  164. package/dist/fermi-surface/index.d.ts +12 -0
  165. package/dist/fermi-surface/index.js +13 -0
  166. package/dist/fermi-surface/marching-cubes.d.ts +2 -0
  167. package/dist/fermi-surface/marching-cubes.js +2 -0
  168. package/dist/fermi-surface/parse.d.ts +2 -0
  169. package/dist/fermi-surface/parse.js +494 -0
  170. package/dist/fermi-surface/symmetry.d.ts +3 -0
  171. package/dist/fermi-surface/symmetry.js +46 -0
  172. package/dist/fermi-surface/types.d.ts +111 -0
  173. package/dist/fermi-surface/types.js +4 -0
  174. package/dist/heatmap-matrix/HeatmapMatrix.svelte +1547 -0
  175. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
  176. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  177. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
  178. package/dist/heatmap-matrix/index.d.ts +53 -0
  179. package/dist/heatmap-matrix/index.js +100 -0
  180. package/dist/heatmap-matrix/shared.d.ts +2 -0
  181. package/dist/heatmap-matrix/shared.js +4 -0
  182. package/dist/icons.d.ts +569 -0
  183. package/dist/icons.js +648 -0
  184. package/dist/index.d.ts +39 -0
  185. package/dist/index.js +39 -0
  186. package/dist/io/decompress.d.ts +11 -0
  187. package/dist/io/decompress.js +76 -0
  188. package/dist/io/export.d.ts +16 -0
  189. package/dist/io/export.js +338 -0
  190. package/dist/io/fetch.d.ts +5 -0
  191. package/dist/io/fetch.js +43 -0
  192. package/dist/io/file-drop.d.ts +7 -0
  193. package/dist/io/file-drop.js +42 -0
  194. package/dist/io/index.d.ts +7 -0
  195. package/dist/io/index.js +6 -0
  196. package/dist/io/is-binary.d.ts +1 -0
  197. package/dist/io/is-binary.js +20 -0
  198. package/dist/io/types.d.ts +8 -0
  199. package/dist/io/types.js +1 -0
  200. package/dist/io/url-drop.d.ts +2 -0
  201. package/dist/io/url-drop.js +154 -0
  202. package/dist/isosurface/Isosurface.svelte +285 -0
  203. package/dist/isosurface/Isosurface.svelte.d.ts +8 -0
  204. package/dist/isosurface/IsosurfaceControls.svelte +277 -0
  205. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +9 -0
  206. package/dist/isosurface/index.d.ts +5 -0
  207. package/dist/isosurface/index.js +6 -0
  208. package/dist/isosurface/parse.d.ts +6 -0
  209. package/dist/isosurface/parse.js +552 -0
  210. package/dist/isosurface/slice.d.ts +11 -0
  211. package/dist/isosurface/slice.js +141 -0
  212. package/dist/isosurface/types.d.ts +56 -0
  213. package/dist/isosurface/types.js +227 -0
  214. package/dist/keyboard.d.ts +3 -0
  215. package/dist/keyboard.js +23 -0
  216. package/dist/labels.d.ts +53 -0
  217. package/dist/labels.js +278 -0
  218. package/dist/layout/FullscreenToggle.svelte +50 -0
  219. package/dist/layout/FullscreenToggle.svelte.d.ts +7 -0
  220. package/dist/layout/InfoCard.svelte +120 -0
  221. package/dist/layout/InfoCard.svelte.d.ts +21 -0
  222. package/dist/layout/InfoTag.svelte +185 -0
  223. package/dist/layout/InfoTag.svelte.d.ts +19 -0
  224. package/dist/layout/PropertyFilter.svelte +247 -0
  225. package/dist/layout/PropertyFilter.svelte.d.ts +24 -0
  226. package/dist/layout/SettingsSection.svelte +148 -0
  227. package/dist/layout/SettingsSection.svelte.d.ts +17 -0
  228. package/dist/layout/SubpageGrid.svelte +82 -0
  229. package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
  230. package/dist/layout/fullscreen.d.ts +9 -0
  231. package/dist/layout/fullscreen.js +53 -0
  232. package/dist/layout/index.d.ts +10 -0
  233. package/dist/layout/index.js +8 -0
  234. package/dist/layout/json-tree/JsonNode.svelte +548 -0
  235. package/dist/layout/json-tree/JsonNode.svelte.d.ts +11 -0
  236. package/dist/layout/json-tree/JsonTree.svelte +1230 -0
  237. package/dist/layout/json-tree/JsonTree.svelte.d.ts +6 -0
  238. package/dist/layout/json-tree/JsonValue.svelte.d.ts +9 -0
  239. package/dist/layout/json-tree/index.d.ts +3 -0
  240. package/dist/layout/json-tree/index.js +3 -0
  241. package/dist/layout/json-tree/types.d.ts +74 -0
  242. package/dist/layout/json-tree/types.js +2 -0
  243. package/dist/layout/json-tree/utils.d.ts +29 -0
  244. package/dist/layout/json-tree/utils.js +642 -0
  245. package/dist/marching-cubes.d.ts +14 -0
  246. package/dist/marching-cubes.js +535 -0
  247. package/dist/math.d.ts +105 -0
  248. package/dist/math.js +920 -0
  249. package/dist/overlays/ContextMenu.svelte +162 -0
  250. package/dist/overlays/ContextMenu.svelte.d.ts +25 -0
  251. package/dist/overlays/CopyButton.svelte +45 -0
  252. package/dist/overlays/CopyButton.svelte.d.ts +8 -0
  253. package/dist/overlays/DragControlTab.svelte +98 -0
  254. package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
  255. package/dist/overlays/DraggablePane.svelte +487 -0
  256. package/dist/overlays/DraggablePane.svelte.d.ts +36 -0
  257. package/dist/overlays/InfoPaneCards.svelte +149 -0
  258. package/dist/overlays/InfoPaneCards.svelte.d.ts +22 -0
  259. package/dist/overlays/index.d.ts +3 -0
  260. package/dist/overlays/index.js +3 -0
  261. package/dist/periodic-table/PeriodicTable.svelte +480 -0
  262. package/dist/periodic-table/PeriodicTable.svelte.d.ts +55 -0
  263. package/dist/periodic-table/PeriodicTableControls.svelte +557 -0
  264. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +24 -0
  265. package/dist/periodic-table/PropertySelect.svelte +38 -0
  266. package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
  267. package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
  268. package/dist/periodic-table/index.d.ts +10 -0
  269. package/dist/periodic-table/index.js +4 -0
  270. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1092 -0
  271. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +44 -0
  272. package/dist/phase-diagram/PhaseDiagramControls.svelte +444 -0
  273. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +30 -0
  274. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +127 -0
  275. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
  276. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  277. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +19 -0
  278. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  279. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +16 -0
  280. package/dist/phase-diagram/TdbInfoPanel.svelte +203 -0
  281. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +12 -0
  282. package/dist/phase-diagram/build-diagram.d.ts +11 -0
  283. package/dist/phase-diagram/build-diagram.js +160 -0
  284. package/dist/phase-diagram/colors.d.ts +35 -0
  285. package/dist/phase-diagram/colors.js +51 -0
  286. package/dist/phase-diagram/diagram-input.d.ts +29 -0
  287. package/dist/phase-diagram/diagram-input.js +3 -0
  288. package/dist/phase-diagram/index.d.ts +13 -0
  289. package/dist/phase-diagram/index.js +11 -0
  290. package/dist/phase-diagram/parse.d.ts +55 -0
  291. package/dist/phase-diagram/parse.js +273 -0
  292. package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
  293. package/dist/phase-diagram/svg-to-diagram.js +867 -0
  294. package/dist/phase-diagram/types.d.ts +93 -0
  295. package/dist/phase-diagram/types.js +1 -0
  296. package/dist/phase-diagram/utils.d.ts +118 -0
  297. package/dist/phase-diagram/utils.js +600 -0
  298. package/dist/plot/bar/BarPlot.svelte +1755 -0
  299. package/dist/plot/bar/BarPlot.svelte.d.ts +84 -0
  300. package/dist/plot/bar/BarPlotControls.svelte +67 -0
  301. package/dist/plot/bar/BarPlotControls.svelte.d.ts +18 -0
  302. package/dist/plot/bar/SpacegroupBarPlot.svelte +293 -0
  303. package/dist/plot/bar/SpacegroupBarPlot.svelte.d.ts +9 -0
  304. package/dist/plot/bar/data.d.ts +40 -0
  305. package/dist/plot/bar/data.js +154 -0
  306. package/dist/plot/bar/geometry.d.ts +39 -0
  307. package/dist/plot/bar/geometry.js +60 -0
  308. package/dist/plot/bar/index.d.ts +3 -0
  309. package/dist/plot/bar/index.js +3 -0
  310. package/dist/plot/box/BoxPlot.svelte +1462 -0
  311. package/dist/plot/box/BoxPlot.svelte.d.ts +94 -0
  312. package/dist/plot/box/BoxPlotControls.svelte +109 -0
  313. package/dist/plot/box/BoxPlotControls.svelte.d.ts +19 -0
  314. package/dist/plot/box/Violin.svelte +14 -0
  315. package/dist/plot/box/Violin.svelte.d.ts +70 -0
  316. package/dist/plot/box/box-plot.d.ts +55 -0
  317. package/dist/plot/box/box-plot.js +126 -0
  318. package/dist/plot/box/index.d.ts +5 -0
  319. package/dist/plot/box/index.js +5 -0
  320. package/dist/plot/box/kde.d.ts +16 -0
  321. package/dist/plot/box/kde.js +160 -0
  322. package/dist/plot/box/quantile.d.ts +3 -0
  323. package/dist/plot/box/quantile.js +53 -0
  324. package/dist/plot/core/auto-place.d.ts +43 -0
  325. package/dist/plot/core/auto-place.js +122 -0
  326. package/dist/plot/core/axis-utils.d.ts +46 -0
  327. package/dist/plot/core/axis-utils.js +110 -0
  328. package/dist/plot/core/components/AxisLabel.svelte +51 -0
  329. package/dist/plot/core/components/AxisLabel.svelte.d.ts +16 -0
  330. package/dist/plot/core/components/ColorBar.svelte +724 -0
  331. package/dist/plot/core/components/ColorBar.svelte.d.ts +31 -0
  332. package/dist/plot/core/components/ColorScaleSelect.svelte +55 -0
  333. package/dist/plot/core/components/ColorScaleSelect.svelte.d.ts +15 -0
  334. package/dist/plot/core/components/ControlPane.svelte +46 -0
  335. package/dist/plot/core/components/ControlPane.svelte.d.ts +13 -0
  336. package/dist/plot/core/components/FillArea.svelte +234 -0
  337. package/dist/plot/core/components/FillArea.svelte.d.ts +21 -0
  338. package/dist/plot/core/components/InteractiveAxisLabel.svelte +96 -0
  339. package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +14 -0
  340. package/dist/plot/core/components/Line.svelte +101 -0
  341. package/dist/plot/core/components/Line.svelte.d.ts +15 -0
  342. package/dist/plot/core/components/PlotAxis.svelte +171 -0
  343. package/dist/plot/core/components/PlotAxis.svelte.d.ts +25 -0
  344. package/dist/plot/core/components/PlotControls.svelte +525 -0
  345. package/dist/plot/core/components/PlotControls.svelte.d.ts +4 -0
  346. package/dist/plot/core/components/PlotLegend.svelte +580 -0
  347. package/dist/plot/core/components/PlotLegend.svelte.d.ts +30 -0
  348. package/dist/plot/core/components/PlotTooltip.svelte +83 -0
  349. package/dist/plot/core/components/PlotTooltip.svelte.d.ts +25 -0
  350. package/dist/plot/core/components/PortalSelect.svelte +257 -0
  351. package/dist/plot/core/components/PortalSelect.svelte.d.ts +16 -0
  352. package/dist/plot/core/components/ReferenceLine.svelte +204 -0
  353. package/dist/plot/core/components/ReferenceLine.svelte.d.ts +20 -0
  354. package/dist/plot/core/components/ReferenceLine3D.svelte +156 -0
  355. package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +14 -0
  356. package/dist/plot/core/components/ReferencePlane.svelte +175 -0
  357. package/dist/plot/core/components/ReferencePlane.svelte.d.ts +14 -0
  358. package/dist/plot/core/components/ZeroLines.svelte +97 -0
  359. package/dist/plot/core/components/ZeroLines.svelte.d.ts +33 -0
  360. package/dist/plot/core/components/ZoomRect.svelte +23 -0
  361. package/dist/plot/core/components/ZoomRect.svelte.d.ts +8 -0
  362. package/dist/plot/core/components/index.d.ts +17 -0
  363. package/dist/plot/core/components/index.js +17 -0
  364. package/dist/plot/core/data-cleaning.d.ts +107 -0
  365. package/dist/plot/core/data-cleaning.js +853 -0
  366. package/dist/plot/core/data-transform.d.ts +16 -0
  367. package/dist/plot/core/data-transform.js +45 -0
  368. package/dist/plot/core/fill-utils.d.ts +33 -0
  369. package/dist/plot/core/fill-utils.js +388 -0
  370. package/dist/plot/core/hover-lock.svelte.d.ts +14 -0
  371. package/dist/plot/core/hover-lock.svelte.js +45 -0
  372. package/dist/plot/core/index.d.ts +10 -0
  373. package/dist/plot/core/index.js +11 -0
  374. package/dist/plot/core/interactions.d.ts +35 -0
  375. package/dist/plot/core/interactions.js +195 -0
  376. package/dist/plot/core/layout.d.ts +79 -0
  377. package/dist/plot/core/layout.js +281 -0
  378. package/dist/plot/core/reference-line.d.ts +60 -0
  379. package/dist/plot/core/reference-line.js +301 -0
  380. package/dist/plot/core/scales.d.ts +48 -0
  381. package/dist/plot/core/scales.js +480 -0
  382. package/dist/plot/core/svg.d.ts +2 -0
  383. package/dist/plot/core/svg.js +41 -0
  384. package/dist/plot/core/types.d.ts +771 -0
  385. package/dist/plot/core/types.js +99 -0
  386. package/dist/plot/core/utils/label-placement.d.ts +68 -0
  387. package/dist/plot/core/utils/label-placement.js +326 -0
  388. package/dist/plot/core/utils/series-visibility.d.ts +26 -0
  389. package/dist/plot/core/utils/series-visibility.js +112 -0
  390. package/dist/plot/core/utils.d.ts +11 -0
  391. package/dist/plot/core/utils.js +27 -0
  392. package/dist/plot/histogram/Histogram.svelte +1418 -0
  393. package/dist/plot/histogram/Histogram.svelte.d.ts +50 -0
  394. package/dist/plot/histogram/HistogramControls.svelte +212 -0
  395. package/dist/plot/histogram/HistogramControls.svelte.d.ts +22 -0
  396. package/dist/plot/histogram/index.d.ts +2 -0
  397. package/dist/plot/histogram/index.js +2 -0
  398. package/dist/plot/index.d.ts +8 -0
  399. package/dist/plot/index.js +10 -0
  400. package/dist/plot/sankey/Sankey.svelte +700 -0
  401. package/dist/plot/sankey/Sankey.svelte.d.ts +74 -0
  402. package/dist/plot/sankey/SankeyControls.svelte +98 -0
  403. package/dist/plot/sankey/SankeyControls.svelte.d.ts +19 -0
  404. package/dist/plot/sankey/index.d.ts +4 -0
  405. package/dist/plot/sankey/index.js +3 -0
  406. package/dist/plot/sankey/sankey-types.d.ts +42 -0
  407. package/dist/plot/sankey/sankey-types.js +4 -0
  408. package/dist/plot/sankey/sankey.d.ts +52 -0
  409. package/dist/plot/sankey/sankey.js +187 -0
  410. package/dist/plot/scatter/BinnedScatterPlot.svelte +1116 -0
  411. package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +66 -0
  412. package/dist/plot/scatter/ElementScatter.svelte +63 -0
  413. package/dist/plot/scatter/ElementScatter.svelte.d.ts +14 -0
  414. package/dist/plot/scatter/ScatterPlot.svelte +2357 -0
  415. package/dist/plot/scatter/ScatterPlot.svelte.d.ts +96 -0
  416. package/dist/plot/scatter/ScatterPlotControls.svelte +307 -0
  417. package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +17 -0
  418. package/dist/plot/scatter/ScatterPoint.svelte +182 -0
  419. package/dist/plot/scatter/ScatterPoint.svelte.d.ts +22 -0
  420. package/dist/plot/scatter/adaptive-density.d.ts +79 -0
  421. package/dist/plot/scatter/adaptive-density.js +217 -0
  422. package/dist/plot/scatter/binned-scatter-types.d.ts +59 -0
  423. package/dist/plot/scatter/binned-scatter-types.js +1 -0
  424. package/dist/plot/scatter/index.d.ts +7 -0
  425. package/dist/plot/scatter/index.js +5 -0
  426. package/dist/plot/scatter/scatter-data.d.ts +19 -0
  427. package/dist/plot/scatter/scatter-data.js +212 -0
  428. package/dist/plot/scatter-3d/ScatterPlot3D.svelte +531 -0
  429. package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +95 -0
  430. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +438 -0
  431. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +20 -0
  432. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +912 -0
  433. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +74 -0
  434. package/dist/plot/scatter-3d/Surface3D.svelte +197 -0
  435. package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +13 -0
  436. package/dist/plot/scatter-3d/index.d.ts +4 -0
  437. package/dist/plot/scatter-3d/index.js +4 -0
  438. package/dist/plot/sunburst/Sunburst.svelte +1045 -0
  439. package/dist/plot/sunburst/Sunburst.svelte.d.ts +96 -0
  440. package/dist/plot/sunburst/SunburstControls.svelte +200 -0
  441. package/dist/plot/sunburst/SunburstControls.svelte.d.ts +26 -0
  442. package/dist/plot/sunburst/index.d.ts +4 -0
  443. package/dist/plot/sunburst/index.js +4 -0
  444. package/dist/plot/sunburst/render.d.ts +34 -0
  445. package/dist/plot/sunburst/render.js +122 -0
  446. package/dist/plot/sunburst/sunburst.d.ts +62 -0
  447. package/dist/plot/sunburst/sunburst.js +266 -0
  448. package/dist/rdf/RdfPlot.svelte +248 -0
  449. package/dist/rdf/RdfPlot.svelte.d.ts +27 -0
  450. package/dist/rdf/calc-rdf.d.ts +4 -0
  451. package/dist/rdf/calc-rdf.js +98 -0
  452. package/dist/rdf/index.d.ts +23 -0
  453. package/dist/rdf/index.js +2 -0
  454. package/dist/sanitize.d.ts +6 -0
  455. package/dist/sanitize.js +116 -0
  456. package/dist/settings.d.ts +319 -0
  457. package/dist/settings.js +1394 -0
  458. package/dist/spectral/Bands.svelte +1050 -0
  459. package/dist/spectral/Bands.svelte.d.ts +39 -0
  460. package/dist/spectral/BandsAndDos.svelte +134 -0
  461. package/dist/spectral/BandsAndDos.svelte.d.ts +18 -0
  462. package/dist/spectral/BrillouinBandsDos.svelte +264 -0
  463. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +20 -0
  464. package/dist/spectral/Dos.svelte +688 -0
  465. package/dist/spectral/Dos.svelte.d.ts +29 -0
  466. package/dist/spectral/helpers.d.ts +121 -0
  467. package/dist/spectral/helpers.js +1098 -0
  468. package/dist/spectral/index.d.ts +6 -0
  469. package/dist/spectral/index.js +6 -0
  470. package/dist/spectral/types.d.ts +84 -0
  471. package/dist/spectral/types.js +2 -0
  472. package/dist/state.svelte.d.ts +25 -0
  473. package/dist/state.svelte.js +45 -0
  474. package/dist/structure/Arrow.svelte +72 -0
  475. package/dist/structure/Arrow.svelte.d.ts +15 -0
  476. package/dist/structure/AtomLegend.svelte +814 -0
  477. package/dist/structure/AtomLegend.svelte.d.ts +35 -0
  478. package/dist/structure/Bond.svelte +140 -0
  479. package/dist/structure/Bond.svelte.d.ts +9 -0
  480. package/dist/structure/CanvasTooltip.svelte +33 -0
  481. package/dist/structure/CanvasTooltip.svelte.d.ts +12 -0
  482. package/dist/structure/CellSelect.svelte +348 -0
  483. package/dist/structure/CellSelect.svelte.d.ts +13 -0
  484. package/dist/structure/Cylinder.svelte +49 -0
  485. package/dist/structure/Cylinder.svelte.d.ts +13 -0
  486. package/dist/structure/Lattice.svelte +196 -0
  487. package/dist/structure/Lattice.svelte.d.ts +17 -0
  488. package/dist/structure/Structure.svelte +2254 -0
  489. package/dist/structure/Structure.svelte.d.ts +89 -0
  490. package/dist/structure/StructureControls.svelte +1273 -0
  491. package/dist/structure/StructureControls.svelte.d.ts +31 -0
  492. package/dist/structure/StructureExportPane.svelte +252 -0
  493. package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
  494. package/dist/structure/StructureInfoPane.svelte +736 -0
  495. package/dist/structure/StructureInfoPane.svelte.d.ts +19 -0
  496. package/dist/structure/StructureScene.svelte +2256 -0
  497. package/dist/structure/StructureScene.svelte.d.ts +111 -0
  498. package/dist/structure/atom-properties.d.ts +37 -0
  499. package/dist/structure/atom-properties.js +200 -0
  500. package/dist/structure/bond-order-perception.d.ts +13 -0
  501. package/dist/structure/bond-order-perception.js +384 -0
  502. package/dist/structure/bonding.d.ts +69 -0
  503. package/dist/structure/bonding.js +724 -0
  504. package/dist/structure/export.d.ts +20 -0
  505. package/dist/structure/export.js +731 -0
  506. package/dist/structure/index.d.ts +124 -0
  507. package/dist/structure/index.js +167 -0
  508. package/dist/structure/label-placement.d.ts +14 -0
  509. package/dist/structure/label-placement.js +72 -0
  510. package/dist/structure/measure.d.ts +7 -0
  511. package/dist/structure/measure.js +30 -0
  512. package/dist/structure/parse.d.ts +66 -0
  513. package/dist/structure/parse.js +1410 -0
  514. package/dist/structure/partial-occupancy.d.ts +25 -0
  515. package/dist/structure/partial-occupancy.js +99 -0
  516. package/dist/structure/pbc.d.ts +9 -0
  517. package/dist/structure/pbc.js +127 -0
  518. package/dist/structure/supercell.d.ts +8 -0
  519. package/dist/structure/supercell.js +170 -0
  520. package/dist/structure/validation.d.ts +2 -0
  521. package/dist/structure/validation.js +10 -0
  522. package/dist/symmetry/SymmetryStats.svelte +226 -0
  523. package/dist/symmetry/SymmetryStats.svelte.d.ts +21 -0
  524. package/dist/symmetry/WyckoffTable.svelte +120 -0
  525. package/dist/symmetry/WyckoffTable.svelte.d.ts +11 -0
  526. package/dist/symmetry/cell-transform.d.ts +12 -0
  527. package/dist/symmetry/cell-transform.js +91 -0
  528. package/dist/symmetry/index.d.ts +43 -0
  529. package/dist/symmetry/index.js +226 -0
  530. package/dist/symmetry/spacegroups.d.ts +16 -0
  531. package/dist/symmetry/spacegroups.js +429 -0
  532. package/dist/table/HeatmapTable.svelte +1885 -0
  533. package/dist/table/HeatmapTable.svelte.d.ts +49 -0
  534. package/dist/table/ToggleMenu.svelte +385 -0
  535. package/dist/table/ToggleMenu.svelte.d.ts +11 -0
  536. package/dist/table/index.d.ts +72 -0
  537. package/dist/table/index.js +38 -0
  538. package/dist/theme/ThemeControl.svelte +53 -0
  539. package/dist/theme/ThemeControl.svelte.d.ts +9 -0
  540. package/dist/theme/index.d.ts +29 -0
  541. package/dist/theme/index.js +79 -0
  542. package/dist/time.d.ts +4 -0
  543. package/dist/time.js +70 -0
  544. package/dist/tooltip/KCoords.svelte +45 -0
  545. package/dist/tooltip/KCoords.svelte.d.ts +8 -0
  546. package/dist/tooltip/TooltipContent.svelte +58 -0
  547. package/dist/tooltip/TooltipContent.svelte.d.ts +31 -0
  548. package/dist/tooltip/index.d.ts +3 -0
  549. package/dist/tooltip/index.js +2 -0
  550. package/dist/tooltip/types.d.ts +8 -0
  551. package/dist/tooltip/types.js +1 -0
  552. package/dist/trajectory/Trajectory.svelte +1571 -0
  553. package/dist/trajectory/Trajectory.svelte.d.ts +78 -0
  554. package/dist/trajectory/TrajectoryError.svelte +128 -0
  555. package/dist/trajectory/TrajectoryError.svelte.d.ts +13 -0
  556. package/dist/trajectory/TrajectoryExportPane.svelte +358 -0
  557. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +17 -0
  558. package/dist/trajectory/TrajectoryInfoPane.svelte +314 -0
  559. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +17 -0
  560. package/dist/trajectory/constants.d.ts +6 -0
  561. package/dist/trajectory/constants.js +7 -0
  562. package/dist/trajectory/extract.d.ts +5 -0
  563. package/dist/trajectory/extract.js +162 -0
  564. package/dist/trajectory/format-detect.d.ts +10 -0
  565. package/dist/trajectory/format-detect.js +90 -0
  566. package/dist/trajectory/frame-reader.d.ts +17 -0
  567. package/dist/trajectory/frame-reader.js +299 -0
  568. package/dist/trajectory/helpers.d.ts +15 -0
  569. package/dist/trajectory/helpers.js +164 -0
  570. package/dist/trajectory/index.d.ts +63 -0
  571. package/dist/trajectory/index.js +126 -0
  572. package/dist/trajectory/parse/ase.d.ts +2 -0
  573. package/dist/trajectory/parse/ase.js +73 -0
  574. package/dist/trajectory/parse/hdf5.d.ts +2 -0
  575. package/dist/trajectory/parse/hdf5.js +127 -0
  576. package/dist/trajectory/parse/index.d.ts +12 -0
  577. package/dist/trajectory/parse/index.js +306 -0
  578. package/dist/trajectory/parse/lammps.d.ts +5 -0
  579. package/dist/trajectory/parse/lammps.js +179 -0
  580. package/dist/trajectory/parse/vasp.d.ts +2 -0
  581. package/dist/trajectory/parse/vasp.js +87 -0
  582. package/dist/trajectory/parse/xyz.d.ts +26 -0
  583. package/dist/trajectory/parse/xyz.js +123 -0
  584. package/dist/trajectory/plotting.d.ts +28 -0
  585. package/dist/trajectory/plotting.js +423 -0
  586. package/dist/trajectory/types.d.ts +11 -0
  587. package/dist/trajectory/types.js +1 -0
  588. package/dist/utils.d.ts +7 -0
  589. package/dist/utils.js +47 -0
  590. package/dist/xrd/XrdPlot.svelte +616 -0
  591. package/dist/xrd/XrdPlot.svelte.d.ts +28 -0
  592. package/dist/xrd/broadening.d.ts +20 -0
  593. package/dist/xrd/broadening.js +97 -0
  594. package/dist/xrd/calc-xrd.d.ts +37 -0
  595. package/dist/xrd/calc-xrd.js +339 -0
  596. package/dist/xrd/index.d.ts +37 -0
  597. package/dist/xrd/index.js +4 -0
  598. package/dist/xrd/parse.d.ts +13 -0
  599. package/dist/xrd/parse.js +749 -0
  600. package/license +1 -1
  601. package/package.json +237 -1458
  602. package/readme.md +98 -171
  603. package/.vscode/launch.json +0 -13
  604. package/.vscodeignore +0 -7
  605. package/dist/assets/STLExporter-BpTH3YHE.js +0 -8
  606. package/dist/assets/browser-DdDecX_W.js +0 -1
  607. package/dist/assets/export-qgn-H9y6.js +0 -2
  608. package/dist/assets/main-DiKYzti2.css +0 -1
  609. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  610. package/dist/extension.js +0 -31293
  611. package/dist/src/lib/FilePicker.svelte +0 -360
  612. package/dist/src/lib/Icon.svelte +0 -41
  613. package/dist/src/lib/MillerIndexInput.svelte +0 -66
  614. package/dist/src/lib/api/mp.ts +0 -26
  615. package/dist/src/lib/api/optimade.ts +0 -204
  616. package/dist/src/lib/app.css +0 -247
  617. package/dist/src/lib/brillouin/BrillouinZone.svelte +0 -549
  618. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +0 -144
  619. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +0 -146
  620. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  621. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +0 -476
  622. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +0 -92
  623. package/dist/src/lib/brillouin/compute.ts +0 -529
  624. package/dist/src/lib/brillouin/index.ts +0 -8
  625. package/dist/src/lib/brillouin/types.ts +0 -51
  626. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +0 -327
  627. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +0 -846
  628. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +0 -3193
  629. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +0 -94
  630. package/dist/src/lib/chempot-diagram/chempot-worker.ts +0 -11
  631. package/dist/src/lib/chempot-diagram/color.ts +0 -42
  632. package/dist/src/lib/chempot-diagram/compute.ts +0 -1014
  633. package/dist/src/lib/chempot-diagram/index.ts +0 -6
  634. package/dist/src/lib/chempot-diagram/pointer.ts +0 -56
  635. package/dist/src/lib/chempot-diagram/temperature.ts +0 -77
  636. package/dist/src/lib/chempot-diagram/types.ts +0 -130
  637. package/dist/src/lib/colors/index.ts +0 -249
  638. package/dist/src/lib/composition/BarChart.svelte +0 -297
  639. package/dist/src/lib/composition/BubbleChart.svelte +0 -218
  640. package/dist/src/lib/composition/Composition.svelte +0 -165
  641. package/dist/src/lib/composition/Formula.svelte +0 -268
  642. package/dist/src/lib/composition/FormulaFilter.svelte +0 -1257
  643. package/dist/src/lib/composition/PieChart.svelte +0 -323
  644. package/dist/src/lib/composition/format.ts +0 -155
  645. package/dist/src/lib/composition/index.ts +0 -37
  646. package/dist/src/lib/composition/parse.ts +0 -605
  647. package/dist/src/lib/constants.ts +0 -134
  648. package/dist/src/lib/controls.ts +0 -42
  649. package/dist/src/lib/convex-hull/ConvexHull.svelte +0 -157
  650. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +0 -825
  651. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +0 -1801
  652. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +0 -1398
  653. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +0 -535
  654. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +0 -125
  655. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +0 -929
  656. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +0 -131
  657. package/dist/src/lib/convex-hull/GasPressureControls.svelte +0 -247
  658. package/dist/src/lib/convex-hull/StructurePopup.svelte +0 -151
  659. package/dist/src/lib/convex-hull/TemperatureSlider.svelte +0 -140
  660. package/dist/src/lib/convex-hull/barycentric-coords.ts +0 -246
  661. package/dist/src/lib/convex-hull/demo-temperature.ts +0 -63
  662. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +0 -405
  663. package/dist/src/lib/convex-hull/helpers.ts +0 -932
  664. package/dist/src/lib/convex-hull/index.ts +0 -202
  665. package/dist/src/lib/convex-hull/thermodynamics.ts +0 -2192
  666. package/dist/src/lib/convex-hull/types.ts +0 -267
  667. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +0 -311
  668. package/dist/src/lib/coordination/calc-coordination.ts +0 -93
  669. package/dist/src/lib/coordination/index.ts +0 -9
  670. package/dist/src/lib/effects.svelte.ts +0 -48
  671. package/dist/src/lib/element/ElementHeading.svelte +0 -26
  672. package/dist/src/lib/element/ElementPhoto.svelte +0 -57
  673. package/dist/src/lib/element/ElementStats.svelte +0 -80
  674. package/dist/src/lib/element/ElementTile.svelte +0 -484
  675. package/dist/src/lib/element/data.ts +0 -14
  676. package/dist/src/lib/element/index.ts +0 -8
  677. package/dist/src/lib/element/types.ts +0 -62
  678. package/dist/src/lib/feedback/ClickFeedback.svelte +0 -58
  679. package/dist/src/lib/feedback/DragOverlay.svelte +0 -42
  680. package/dist/src/lib/feedback/index.ts +0 -4
  681. package/dist/src/lib/fermi-surface/FermiSlice.svelte +0 -189
  682. package/dist/src/lib/fermi-surface/FermiSurface.svelte +0 -600
  683. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +0 -448
  684. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +0 -794
  685. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  686. package/dist/src/lib/fermi-surface/compute.ts +0 -728
  687. package/dist/src/lib/fermi-surface/constants.ts +0 -32
  688. package/dist/src/lib/fermi-surface/export.ts +0 -64
  689. package/dist/src/lib/fermi-surface/index.ts +0 -14
  690. package/dist/src/lib/fermi-surface/marching-cubes.ts +0 -3
  691. package/dist/src/lib/fermi-surface/parse.ts +0 -574
  692. package/dist/src/lib/fermi-surface/symmetry.ts +0 -56
  693. package/dist/src/lib/fermi-surface/types.ts +0 -159
  694. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +0 -1545
  695. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  696. package/dist/src/lib/heatmap-matrix/index.ts +0 -167
  697. package/dist/src/lib/heatmap-matrix/shared.ts +0 -7
  698. package/dist/src/lib/icons.ts +0 -650
  699. package/dist/src/lib/index.ts +0 -61
  700. package/dist/src/lib/io/decompress.ts +0 -92
  701. package/dist/src/lib/io/export.ts +0 -385
  702. package/dist/src/lib/io/fetch.ts +0 -46
  703. package/dist/src/lib/io/file-drop.ts +0 -51
  704. package/dist/src/lib/io/index.ts +0 -7
  705. package/dist/src/lib/io/is-binary.ts +0 -24
  706. package/dist/src/lib/io/types.ts +0 -8
  707. package/dist/src/lib/io/url-drop.ts +0 -141
  708. package/dist/src/lib/isosurface/Isosurface.svelte +0 -285
  709. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +0 -277
  710. package/dist/src/lib/isosurface/index.ts +0 -7
  711. package/dist/src/lib/isosurface/parse.ts +0 -656
  712. package/dist/src/lib/isosurface/slice.ts +0 -175
  713. package/dist/src/lib/isosurface/types.ts +0 -309
  714. package/dist/src/lib/labels.ts +0 -320
  715. package/dist/src/lib/layout/FullscreenToggle.svelte +0 -50
  716. package/dist/src/lib/layout/InfoCard.svelte +0 -120
  717. package/dist/src/lib/layout/InfoTag.svelte +0 -185
  718. package/dist/src/lib/layout/PropertyFilter.svelte +0 -246
  719. package/dist/src/lib/layout/SettingsSection.svelte +0 -148
  720. package/dist/src/lib/layout/SubpageGrid.svelte +0 -82
  721. package/dist/src/lib/layout/fullscreen.ts +0 -65
  722. package/dist/src/lib/layout/index.ts +0 -11
  723. package/dist/src/lib/layout/json-tree/JsonNode.svelte +0 -548
  724. package/dist/src/lib/layout/json-tree/JsonTree.svelte +0 -1230
  725. package/dist/src/lib/layout/json-tree/index.ts +0 -3
  726. package/dist/src/lib/layout/json-tree/types.ts +0 -126
  727. package/dist/src/lib/layout/json-tree/utils.ts +0 -682
  728. package/dist/src/lib/marching-cubes.ts +0 -614
  729. package/dist/src/lib/math.ts +0 -1081
  730. package/dist/src/lib/overlays/ContextMenu.svelte +0 -162
  731. package/dist/src/lib/overlays/CopyButton.svelte +0 -45
  732. package/dist/src/lib/overlays/DragControlTab.svelte +0 -98
  733. package/dist/src/lib/overlays/DraggablePane.svelte +0 -487
  734. package/dist/src/lib/overlays/InfoPaneCards.svelte +0 -149
  735. package/dist/src/lib/overlays/index.ts +0 -3
  736. package/dist/src/lib/periodic-table/PeriodicTable.svelte +0 -469
  737. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +0 -557
  738. package/dist/src/lib/periodic-table/PropertySelect.svelte +0 -37
  739. package/dist/src/lib/periodic-table/index.ts +0 -12
  740. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  741. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +0 -444
  742. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  743. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +0 -184
  744. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +0 -391
  745. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +0 -203
  746. package/dist/src/lib/phase-diagram/build-diagram.ts +0 -186
  747. package/dist/src/lib/phase-diagram/colors.ts +0 -58
  748. package/dist/src/lib/phase-diagram/diagram-input.ts +0 -40
  749. package/dist/src/lib/phase-diagram/index.ts +0 -13
  750. package/dist/src/lib/phase-diagram/parse.ts +0 -348
  751. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +0 -1023
  752. package/dist/src/lib/phase-diagram/types.ts +0 -144
  753. package/dist/src/lib/phase-diagram/utils.ts +0 -775
  754. package/dist/src/lib/plot/AxisLabel.svelte +0 -51
  755. package/dist/src/lib/plot/BarPlot.svelte +0 -2113
  756. package/dist/src/lib/plot/BarPlotControls.svelte +0 -66
  757. package/dist/src/lib/plot/BinnedScatterPlot.svelte +0 -1114
  758. package/dist/src/lib/plot/ColorBar.svelte +0 -721
  759. package/dist/src/lib/plot/ColorScaleSelect.svelte +0 -54
  760. package/dist/src/lib/plot/ElementScatter.svelte +0 -63
  761. package/dist/src/lib/plot/FillArea.svelte +0 -223
  762. package/dist/src/lib/plot/Histogram.svelte +0 -1558
  763. package/dist/src/lib/plot/HistogramControls.svelte +0 -212
  764. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +0 -96
  765. package/dist/src/lib/plot/Line.svelte +0 -84
  766. package/dist/src/lib/plot/PlotAxis.svelte +0 -169
  767. package/dist/src/lib/plot/PlotControls.svelte +0 -537
  768. package/dist/src/lib/plot/PlotLegend.svelte +0 -569
  769. package/dist/src/lib/plot/PlotTooltip.svelte +0 -67
  770. package/dist/src/lib/plot/PortalSelect.svelte +0 -253
  771. package/dist/src/lib/plot/ReferenceLine.svelte +0 -204
  772. package/dist/src/lib/plot/ReferenceLine3D.svelte +0 -156
  773. package/dist/src/lib/plot/ReferencePlane.svelte +0 -175
  774. package/dist/src/lib/plot/ScatterPlot.svelte +0 -2778
  775. package/dist/src/lib/plot/ScatterPlot3D.svelte +0 -529
  776. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +0 -437
  777. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +0 -912
  778. package/dist/src/lib/plot/ScatterPlotControls.svelte +0 -306
  779. package/dist/src/lib/plot/ScatterPoint.svelte +0 -182
  780. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +0 -293
  781. package/dist/src/lib/plot/Surface3D.svelte +0 -197
  782. package/dist/src/lib/plot/ZeroLines.svelte +0 -97
  783. package/dist/src/lib/plot/ZoomRect.svelte +0 -23
  784. package/dist/src/lib/plot/adaptive-density.ts +0 -316
  785. package/dist/src/lib/plot/auto-place.ts +0 -184
  786. package/dist/src/lib/plot/axis-utils.ts +0 -122
  787. package/dist/src/lib/plot/binned-scatter-types.ts +0 -83
  788. package/dist/src/lib/plot/data-cleaning.ts +0 -1069
  789. package/dist/src/lib/plot/data-transform.ts +0 -69
  790. package/dist/src/lib/plot/defaults.ts +0 -9
  791. package/dist/src/lib/plot/fill-utils.ts +0 -494
  792. package/dist/src/lib/plot/hover-lock.svelte.ts +0 -60
  793. package/dist/src/lib/plot/index.ts +0 -53
  794. package/dist/src/lib/plot/interactions.ts +0 -119
  795. package/dist/src/lib/plot/layout.ts +0 -425
  796. package/dist/src/lib/plot/reference-line.ts +0 -426
  797. package/dist/src/lib/plot/scales.ts +0 -654
  798. package/dist/src/lib/plot/svg.ts +0 -23
  799. package/dist/src/lib/plot/types.ts +0 -1144
  800. package/dist/src/lib/plot/utils/label-placement.ts +0 -541
  801. package/dist/src/lib/plot/utils/series-visibility.ts +0 -140
  802. package/dist/src/lib/plot/utils.ts +0 -11
  803. package/dist/src/lib/rdf/RdfPlot.svelte +0 -247
  804. package/dist/src/lib/rdf/calc-rdf.ts +0 -167
  805. package/dist/src/lib/rdf/index.ts +0 -27
  806. package/dist/src/lib/sanitize.ts +0 -126
  807. package/dist/src/lib/settings.ts +0 -1479
  808. package/dist/src/lib/spectral/Bands.svelte +0 -1040
  809. package/dist/src/lib/spectral/BandsAndDos.svelte +0 -134
  810. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +0 -252
  811. package/dist/src/lib/spectral/Dos.svelte +0 -697
  812. package/dist/src/lib/spectral/helpers.ts +0 -1381
  813. package/dist/src/lib/spectral/index.ts +0 -8
  814. package/dist/src/lib/spectral/types.ts +0 -112
  815. package/dist/src/lib/state.svelte.ts +0 -64
  816. package/dist/src/lib/structure/Arrow.svelte +0 -72
  817. package/dist/src/lib/structure/AtomLegend.svelte +0 -815
  818. package/dist/src/lib/structure/Bond.svelte +0 -140
  819. package/dist/src/lib/structure/CanvasTooltip.svelte +0 -33
  820. package/dist/src/lib/structure/CellSelect.svelte +0 -349
  821. package/dist/src/lib/structure/Cylinder.svelte +0 -45
  822. package/dist/src/lib/structure/Lattice.svelte +0 -196
  823. package/dist/src/lib/structure/Structure.svelte +0 -2248
  824. package/dist/src/lib/structure/StructureControls.svelte +0 -1273
  825. package/dist/src/lib/structure/StructureExportPane.svelte +0 -252
  826. package/dist/src/lib/structure/StructureInfoPane.svelte +0 -737
  827. package/dist/src/lib/structure/StructureScene.svelte +0 -2255
  828. package/dist/src/lib/structure/atom-properties.ts +0 -316
  829. package/dist/src/lib/structure/bond-order-perception.ts +0 -447
  830. package/dist/src/lib/structure/bonding.ts +0 -944
  831. package/dist/src/lib/structure/export.ts +0 -861
  832. package/dist/src/lib/structure/index.ts +0 -291
  833. package/dist/src/lib/structure/label-placement.ts +0 -130
  834. package/dist/src/lib/structure/measure.ts +0 -45
  835. package/dist/src/lib/structure/parse.ts +0 -1705
  836. package/dist/src/lib/structure/partial-occupancy.ts +0 -183
  837. package/dist/src/lib/structure/pbc.ts +0 -164
  838. package/dist/src/lib/structure/supercell.ts +0 -226
  839. package/dist/src/lib/structure/validation.ts +0 -11
  840. package/dist/src/lib/symmetry/SymmetryStats.svelte +0 -226
  841. package/dist/src/lib/symmetry/WyckoffTable.svelte +0 -120
  842. package/dist/src/lib/symmetry/cell-transform.ts +0 -118
  843. package/dist/src/lib/symmetry/index.ts +0 -348
  844. package/dist/src/lib/symmetry/spacegroups.ts +0 -404
  845. package/dist/src/lib/table/HeatmapTable.svelte +0 -1833
  846. package/dist/src/lib/table/ToggleMenu.svelte +0 -385
  847. package/dist/src/lib/table/index.ts +0 -139
  848. package/dist/src/lib/theme/ThemeControl.svelte +0 -53
  849. package/dist/src/lib/theme/index.ts +0 -107
  850. package/dist/src/lib/time.ts +0 -71
  851. package/dist/src/lib/tooltip/TooltipContent.svelte +0 -58
  852. package/dist/src/lib/tooltip/index.ts +0 -2
  853. package/dist/src/lib/tooltip/types.ts +0 -13
  854. package/dist/src/lib/trajectory/Trajectory.svelte +0 -1545
  855. package/dist/src/lib/trajectory/TrajectoryError.svelte +0 -128
  856. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +0 -357
  857. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +0 -313
  858. package/dist/src/lib/trajectory/constants.ts +0 -7
  859. package/dist/src/lib/trajectory/extract.ts +0 -196
  860. package/dist/src/lib/trajectory/format-detect.ts +0 -96
  861. package/dist/src/lib/trajectory/frame-reader.ts +0 -456
  862. package/dist/src/lib/trajectory/helpers.ts +0 -217
  863. package/dist/src/lib/trajectory/index.ts +0 -218
  864. package/dist/src/lib/trajectory/parse/ase.ts +0 -109
  865. package/dist/src/lib/trajectory/parse/hdf5.ts +0 -173
  866. package/dist/src/lib/trajectory/parse/index.ts +0 -411
  867. package/dist/src/lib/trajectory/parse/lammps.ts +0 -215
  868. package/dist/src/lib/trajectory/parse/vasp.ts +0 -102
  869. package/dist/src/lib/trajectory/parse/xyz.ts +0 -143
  870. package/dist/src/lib/trajectory/plotting.ts +0 -599
  871. package/dist/src/lib/trajectory/types.ts +0 -13
  872. package/dist/src/lib/utils.ts +0 -56
  873. package/dist/src/lib/xrd/XrdPlot.svelte +0 -615
  874. package/dist/src/lib/xrd/broadening.ts +0 -130
  875. package/dist/src/lib/xrd/calc-xrd.ts +0 -397
  876. package/dist/src/lib/xrd/index.ts +0 -38
  877. package/dist/src/lib/xrd/parse.ts +0 -858
  878. package/dist/webview.js +0 -29421
  879. package/icon.png +0 -0
  880. package/matterviz-0.3.2.vsix +0 -0
  881. package/matterviz-0.3.4.vsix +0 -0
  882. package/matterviz-0.3.5.vsix +0 -0
  883. package/scripts/sync-config.ts +0 -101
  884. package/src/declarations.d.ts +0 -2
  885. package/src/extension.ts +0 -972
  886. package/src/node-io.ts +0 -65
  887. package/src/types.ts +0 -17
  888. package/src/webview/JsonBrowser.svelte +0 -1079
  889. package/src/webview/PlotPanel.svelte +0 -346
  890. package/src/webview/detect.ts +0 -444
  891. package/src/webview/main.ts +0 -764
  892. package/src/webview/plot-utils.ts +0 -250
  893. package/test-fixtures/all-viz-types.json.gz +0 -0
  894. package/test-fixtures/plot-demo-data.json.gz +0 -0
  895. package/tests/detect.test.ts +0 -604
  896. package/tests/extension.test.ts +0 -2041
  897. package/tests/node-io.test.ts +0 -39
  898. package/tests/plot-utils.test.ts +0 -302
  899. package/tests/vite-plugin-json-gz.test.ts +0 -114
  900. package/tests/vscode-mock.ts +0 -18
  901. package/tests/webview.test.ts +0 -231
  902. package/tsconfig.json +0 -20
  903. package/vite-plugin-json-gz.ts +0 -29
  904. package/vite.config.ts +0 -34
  905. package/vite.extension.config.ts +0 -34
  906. /package/dist/{src/lib/EmptyState.svelte → EmptyState.svelte} +0 -0
  907. /package/dist/{src/lib/chempot-diagram → chempot-diagram}/ChemPotScene3D.svelte +0 -0
  908. /package/dist/{src/lib/colors → colors}/alloy-colors.json +0 -0
  909. /package/dist/{src/lib/colors → colors}/dark-mode-colors.json +0 -0
  910. /package/dist/{src/lib/colors → colors}/jmol-colors.json +0 -0
  911. /package/dist/{src/lib/colors → colors}/muted-colors.json +0 -0
  912. /package/dist/{src/lib/colors → colors}/pastel-colors.json +0 -0
  913. /package/dist/{src/lib/colors → colors}/vesta-colors.json +0 -0
  914. /package/dist/{src/lib/element → element}/BohrAtom.svelte +0 -0
  915. /package/dist/{src/lib/element → element}/Nucleus.svelte +0 -0
  916. /package/dist/{src/lib/element → element}/data.json +0 -0
  917. /package/dist/{src/lib/element → element}/data.json.gz +0 -0
  918. /package/dist/{src/lib/element → element}/data.json.gz.d.ts +0 -0
  919. /package/dist/{src/lib/element → element}/data.schema.json +0 -0
  920. /package/dist/{src/lib/element-image-urls.json → element-image-urls.json} +0 -0
  921. /package/dist/{src/lib/feedback → feedback}/Spinner.svelte +0 -0
  922. /package/dist/{src/lib/feedback → feedback}/StatusMessage.svelte +0 -0
  923. /package/dist/{src/lib/layout → layout}/json-tree/JsonValue.svelte +0 -0
  924. /package/dist/{src/lib/periodic-table → periodic-table}/TableInset.svelte +0 -0
  925. /package/dist/{src/lib/theme → theme}/themes.mjs +0 -0
  926. /package/dist/{src/lib/xrd → xrd}/atomic_scattering_params.json +0 -0
@@ -0,0 +1,522 @@
1
+ <script lang="ts">
2
+ import { AXIS_COLORS, NEG_AXIS_COLORS } from '../colors'
3
+ import type { Vec3 } from '../math'
4
+ import * as math from '../math'
5
+ import { type CameraProjection, DEFAULTS } from '../settings'
6
+ import Arrow from '../structure/Arrow.svelte'
7
+ import Cylinder from '../structure/Cylinder.svelte'
8
+ import { T, useThrelte } from '@threlte/core'
9
+ import * as extras from '@threlte/extras'
10
+ import type { ComponentProps } from 'svelte'
11
+ import type { Camera, Scene } from 'three'
12
+ import { BufferAttribute, BufferGeometry, Vector3 } from 'three'
13
+ import type { BrillouinZoneData, BZHoverData, IrreducibleBZData } from './types'
14
+
15
+ // Threlte pointer event type for mesh interactions
16
+ type ThreltePointerEvent = { point: Vector3; nativeEvent: PointerEvent }
17
+
18
+ let {
19
+ bz_data = $bindable(),
20
+ camera_position = $bindable(),
21
+ camera_projection = $bindable(`perspective`),
22
+ surface_color = $bindable(`#4488ff`),
23
+ surface_opacity = $bindable(0.3),
24
+ edge_color = $bindable(`#000000`),
25
+ edge_width = $bindable(0.05),
26
+ show_vectors = $bindable(true),
27
+ vector_scale = $bindable(1.0),
28
+ // Irreducible BZ options
29
+ show_ibz = false,
30
+ ibz_data = null as IrreducibleBZData | null,
31
+ ibz_color = `#ff8844`,
32
+ ibz_opacity = 0.5,
33
+ rotation_damping = DEFAULTS.structure.rotation_damping,
34
+ max_zoom = DEFAULTS.structure.max_zoom,
35
+ min_zoom = DEFAULTS.structure.min_zoom,
36
+ rotate_speed = DEFAULTS.structure.rotate_speed,
37
+ zoom_speed = DEFAULTS.structure.zoom_speed,
38
+ pan_speed = DEFAULTS.structure.pan_speed,
39
+ zoom_to_cursor = DEFAULTS.structure.zoom_to_cursor,
40
+ fov = DEFAULTS.structure.fov,
41
+ initial_zoom = DEFAULTS.structure.initial_zoom,
42
+ ambient_light = DEFAULTS.structure.ambient_light,
43
+ directional_light = DEFAULTS.structure.directional_light,
44
+ gizmo = DEFAULTS.structure.show_gizmo,
45
+ auto_rotate = DEFAULTS.structure.auto_rotate,
46
+ camera_is_moving = $bindable(false),
47
+ scene = $bindable(),
48
+ camera = $bindable(),
49
+ k_path_points = [],
50
+ k_path_labels = [],
51
+ hovered_k_point = null,
52
+ hovered_qpoint_index = null,
53
+ hover_data = $bindable<BZHoverData | null>(null),
54
+ on_kpath_hover,
55
+ }: {
56
+ bz_data?: BrillouinZoneData
57
+ camera_position?: Vec3 | undefined
58
+ camera_projection?: CameraProjection
59
+ surface_color?: string
60
+ surface_opacity?: number
61
+ edge_color?: string
62
+ edge_width?: number
63
+ show_vectors?: boolean
64
+ vector_scale?: number
65
+ // Irreducible BZ options
66
+ show_ibz?: boolean
67
+ ibz_data?: IrreducibleBZData | null
68
+ ibz_color?: string
69
+ ibz_opacity?: number
70
+ rotation_damping?: number
71
+ max_zoom?: number
72
+ min_zoom?: number
73
+ rotate_speed?: number
74
+ zoom_speed?: number
75
+ pan_speed?: number
76
+ zoom_to_cursor?: boolean
77
+ fov?: number
78
+ initial_zoom?: number
79
+ ambient_light?: number
80
+ directional_light?: number
81
+ gizmo?: boolean | ComponentProps<typeof extras.Gizmo>
82
+ auto_rotate?: number
83
+ camera_is_moving?: boolean
84
+ scene?: Scene
85
+ camera?: Camera
86
+ k_path_points?: Vec3[]
87
+ k_path_labels?: { position: Vec3; label: string | null }[]
88
+ hovered_k_point?: Vec3 | null
89
+ hovered_qpoint_index?: number | null
90
+ hover_data?: BZHoverData | null
91
+ on_kpath_hover?: (qpoint_index: number | null) => void
92
+ } = $props()
93
+
94
+ const threlte = useThrelte()
95
+ $effect(() => {
96
+ scene = threlte.scene
97
+ camera = threlte.camera.current
98
+ if (threlte.renderer) {
99
+ Object.assign(threlte.renderer.domElement, { __renderer: threlte.renderer })
100
+ }
101
+ })
102
+
103
+ extras.interactivity()
104
+
105
+ // Compute centroid of BZ vertices for proper rotation center
106
+ const rotation_target = $derived.by((): Vec3 => {
107
+ if (!bz_data?.vertices || bz_data.vertices.length === 0) return [0, 0, 0]
108
+ const sum = bz_data.vertices.reduce(
109
+ (acc, v) => math.add(acc, v),
110
+ [0, 0, 0] as Vec3,
111
+ )
112
+ return math.scale(sum, 1 / bz_data.vertices.length)
113
+ })
114
+
115
+ // BZ size for camera positioning: average magnitude of k-vectors
116
+ const bz_size = $derived.by(() => {
117
+ if (!bz_data?.k_lattice) return 10
118
+ const mags = bz_data.k_lattice.map((vec) => Math.hypot(...vec))
119
+ return mags.reduce((sum, mag) => sum + mag, 0) / 3
120
+ })
121
+
122
+ const computed_camera_position = $derived.by(() =>
123
+ camera_position || ([10, 3, 8].map((coord) => coord * Math.max(1, bz_size)) as Vec3)
124
+ )
125
+
126
+ const gizmo_props = $derived({
127
+ background: { enabled: false },
128
+ className: `responsive-gizmo`,
129
+ ...Object.fromEntries(
130
+ [...AXIS_COLORS, ...NEG_AXIS_COLORS].map(([axis, color, hover]) => [
131
+ axis,
132
+ {
133
+ color,
134
+ labelColor: `#111`,
135
+ opacity: axis.startsWith(`n`) ? 0.9 : 0.8,
136
+ hover: {
137
+ color: hover,
138
+ labelColor: `#222`,
139
+ opacity: axis.startsWith(`n`) ? 1 : 0.9,
140
+ },
141
+ },
142
+ ]),
143
+ ),
144
+ ...(typeof gizmo === `object` ? gizmo : {}),
145
+ offset: { left: 5, bottom: 5 },
146
+ })
147
+
148
+ const is_ortho = $derived(camera_projection === `orthographic`)
149
+ const orbit_controls_props = $derived({
150
+ position: [0, 0, 0],
151
+ target: rotation_target,
152
+ enableRotate: rotate_speed > 0,
153
+ rotateSpeed: rotate_speed,
154
+ enableZoom: zoom_speed > 0,
155
+ zoomSpeed: is_ortho ? zoom_speed * 2 : zoom_speed,
156
+ zoomToCursor: zoom_to_cursor,
157
+ enablePan: pan_speed > 0,
158
+ panSpeed: pan_speed,
159
+ maxZoom: max_zoom,
160
+ minZoom: min_zoom,
161
+ autoRotate: Boolean(auto_rotate),
162
+ autoRotateSpeed: auto_rotate,
163
+ enableDamping: Boolean(rotation_damping),
164
+ dampingFactor: rotation_damping,
165
+ onstart: () => (camera_is_moving = true),
166
+ onend: () => (camera_is_moving = false),
167
+ })
168
+
169
+ const vector_colors = [`red`, `green`, `blue`]
170
+ const vector_labels = [`b₁`, `b₂`, `b₃`]
171
+
172
+ // K-path styling. The invisible hover proxy is twice the visible thickness so the cursor
173
+ // snaps to the path even when it isn't directly over the thin visible segment.
174
+ const KPATH_THICKNESS = 0.12
175
+ const KPATH_HOVER_THICKNESS = KPATH_THICKNESS * 2
176
+
177
+ // Threshold for skipping k-path segments that bridge a path discontinuity (e.g. `U|K`).
178
+ // Band paths are densely sampled, so legit segments are tiny; a discontinuity jumps by
179
+ // a fraction of the zone. Skip segments far longer than the median sampling step.
180
+ const k_path_seg_cutoff = $derived.by(() => {
181
+ if (!k_path_points || k_path_points.length < 3) return Infinity
182
+ const lens = k_path_points
183
+ .slice(1)
184
+ .map((pt, idx) => Math.hypot(...math.subtract(pt as Vec3, k_path_points[idx] as Vec3)))
185
+ .sort((len_a, len_b) => len_a - len_b)
186
+ return lens[Math.floor(lens.length / 2)] * 10
187
+ })
188
+
189
+ // Create mesh geometry from faces with fan triangulation
190
+ function create_mesh_geometry(
191
+ vertices: Vec3[],
192
+ faces: number[][],
193
+ ): BufferGeometry | null {
194
+ if (faces.length === 0) return null
195
+
196
+ const positions: number[] = []
197
+ const normals: number[] = []
198
+
199
+ for (const face of faces) {
200
+ if (face.length < 3) continue
201
+ for (let face_idx = 1; face_idx < face.length - 1; face_idx++) {
202
+ const indices = [face[0], face[face_idx], face[face_idx + 1]]
203
+ if (indices.some((idx) => idx < 0 || idx >= vertices.length)) continue
204
+ const [v0, v1, v2] = indices.map((idx) => vertices[idx])
205
+ positions.push(...v0, ...v1, ...v2)
206
+
207
+ const e1: Vec3 = math.subtract(v1, v0)
208
+ const e2: Vec3 = math.subtract(v2, v0)
209
+ const normal_vec = math.cross_3d(e1, e2)
210
+ const len = Math.hypot(...normal_vec)
211
+ const norm = len > 1e-10 ? normal_vec.map((coord) => coord / len) : [0, 0, 0]
212
+ normals.push(...norm, ...norm, ...norm)
213
+ }
214
+ }
215
+
216
+ const geometry = new BufferGeometry()
217
+ geometry.setAttribute(
218
+ `position`,
219
+ new BufferAttribute(new Float32Array(positions), 3),
220
+ )
221
+ geometry.setAttribute(`normal`, new BufferAttribute(new Float32Array(normals), 3))
222
+ geometry.computeBoundingSphere()
223
+ return geometry
224
+ }
225
+
226
+ const bz_geometry = $derived(
227
+ bz_data ? create_mesh_geometry(bz_data.vertices, bz_data.faces) : null,
228
+ )
229
+ const ibz_geometry = $derived(
230
+ show_ibz && ibz_data
231
+ ? create_mesh_geometry(ibz_data.vertices, ibz_data.faces)
232
+ : null,
233
+ )
234
+
235
+ // Separate effects to avoid disposing one geometry when only the other changes
236
+ $effect(() => {
237
+ const prev = bz_geometry
238
+ return () => prev?.dispose()
239
+ })
240
+ $effect(() => {
241
+ const prev = ibz_geometry
242
+ return () => prev?.dispose()
243
+ })
244
+
245
+ // Compute inverse of k_lattice for Cartesian->fractional conversion
246
+ const k_lattice_inv = $derived.by(() => {
247
+ if (!bz_data?.k_lattice) return null
248
+ try {
249
+ return math.matrix_inverse_3x3(bz_data.k_lattice)
250
+ } catch {
251
+ return null
252
+ }
253
+ })
254
+
255
+ // Convert Cartesian k-coordinates to fractional (reciprocal lattice units)
256
+ function cartesian_to_fractional(cart: Vec3): Vec3 | null {
257
+ if (!k_lattice_inv) return null
258
+ return math.mat3x3_vec3_multiply(k_lattice_inv, cart)
259
+ }
260
+
261
+ // Throttle state for pointer move events
262
+ let last_hover_time = 0
263
+ let last_hover_mesh: `bz` | `ibz` | null = null
264
+ const HOVER_THROTTLE_MS = 16 // ~60fps
265
+
266
+ // Reset throttle when bz_data changes to ensure immediate response
267
+ $effect(() => {
268
+ if (bz_data) {
269
+ last_hover_time = 0
270
+ last_hover_mesh = null
271
+ }
272
+ })
273
+
274
+ // Track IBZ hover state - IBZ takes priority over BZ
275
+ let ibz_hovered = false
276
+ $effect(() => {
277
+ if (!show_ibz) {
278
+ ibz_hovered = false
279
+ // Clear hover tooltip if it was showing IBZ data
280
+ if (hover_data?.is_ibz) hover_data = null
281
+ }
282
+ })
283
+
284
+ // Create hover data from pointer event
285
+ function create_hover_data(
286
+ event: ThreltePointerEvent,
287
+ is_ibz: boolean,
288
+ ): BZHoverData | null {
289
+ if (!bz_data) return null
290
+
291
+ const position_cartesian: Vec3 = [event.point.x, event.point.y, event.point.z]
292
+ const position_fractional = cartesian_to_fractional(position_cartesian)
293
+
294
+ const { clientX, clientY } = event.nativeEvent
295
+ const ibz_vol = ibz_data?.volume ?? null
296
+ // Round to nearest integer since symmetry multiplicity is the point group order
297
+ const symmetry_multiplicity = ibz_vol != null && ibz_vol > 0
298
+ ? Math.round(bz_data.volume / ibz_vol)
299
+ : null
300
+
301
+ return {
302
+ position_cartesian,
303
+ position_fractional,
304
+ screen_position: { x: clientX, y: clientY },
305
+ is_ibz,
306
+ bz_order: bz_data.order,
307
+ bz_volume: bz_data.volume,
308
+ ibz_volume: ibz_vol,
309
+ symmetry_multiplicity,
310
+ }
311
+ }
312
+
313
+ // Throttled hover handler - IBZ takes priority over BZ
314
+ function handle_hover(event: ThreltePointerEvent, is_ibz: boolean): void {
315
+ if (is_ibz) ibz_hovered = true
316
+ else if (ibz_hovered) return // BZ defers to IBZ
317
+
318
+ const mesh = is_ibz ? `ibz` : `bz`
319
+ const now = performance.now()
320
+ // Bypass throttle when switching meshes for responsive transitions
321
+ if (last_hover_mesh === mesh && now - last_hover_time < HOVER_THROTTLE_MS) return
322
+
323
+ last_hover_time = now
324
+ last_hover_mesh = mesh
325
+ hover_data = create_hover_data(event, is_ibz)
326
+ }
327
+
328
+ // Leave handler - IBZ clears state, BZ only clears if IBZ not hovered
329
+ function handle_leave(is_ibz: boolean): void {
330
+ if (is_ibz) ibz_hovered = false
331
+ if (is_ibz || !ibz_hovered) hover_data = null
332
+ }
333
+
334
+ // K-path hover: report the nearer endpoint's q-point index of the hovered segment
335
+ function handle_kpath_hover(event: ThreltePointerEvent, seg_idx: number): void {
336
+ const { point } = event
337
+ const [from, to] = [k_path_points[seg_idx], k_path_points[seg_idx + 1]]
338
+ if (!from || !to) return
339
+ const dist_sq = (pt: Vec3) =>
340
+ (point.x - pt[0]) ** 2 + (point.y - pt[1]) ** 2 + (point.z - pt[2]) ** 2
341
+ on_kpath_hover?.(dist_sq(from) <= dist_sq(to) ? seg_idx : seg_idx + 1)
342
+ }
343
+ </script>
344
+
345
+ {#if camera_projection === `perspective`}
346
+ <T.PerspectiveCamera makeDefault position={computed_camera_position} {fov}>
347
+ <extras.OrbitControls {...orbit_controls_props}>
348
+ {#if gizmo}<extras.Gizmo {...gizmo_props} />{/if}
349
+ </extras.OrbitControls>
350
+ </T.PerspectiveCamera>
351
+ {:else}
352
+ <T.OrthographicCamera
353
+ makeDefault
354
+ position={computed_camera_position}
355
+ zoom={initial_zoom}
356
+ near={-100}
357
+ >
358
+ <extras.OrbitControls {...orbit_controls_props}>
359
+ {#if gizmo}<extras.Gizmo {...gizmo_props} />{/if}
360
+ </extras.OrbitControls>
361
+ </T.OrthographicCamera>
362
+ {/if}
363
+
364
+ <T.DirectionalLight position={[3, 10, 10]} intensity={directional_light} />
365
+ <T.AmbientLight intensity={ambient_light} />
366
+
367
+ <T.Group position={rotation_target}>
368
+ {#if bz_data}
369
+ <!-- Brillouin zone surface mesh -->
370
+ {#if bz_geometry}
371
+ <T.Mesh
372
+ geometry={bz_geometry}
373
+ onpointermove={(e: ThreltePointerEvent) => handle_hover(e, false)}
374
+ onpointerleave={() => handle_leave(false)}
375
+ >
376
+ <T.MeshStandardMaterial
377
+ color={surface_color}
378
+ transparent
379
+ opacity={surface_opacity}
380
+ side={2}
381
+ depthWrite={false}
382
+ />
383
+ </T.Mesh>
384
+ {/if}
385
+
386
+ <!-- BZ edges -->
387
+ {#each bz_data.edges as edge_segment, edge_idx (`bz-edge-${edge_idx}`)}
388
+ {@const [from, to] = edge_segment}
389
+ <Cylinder {from} {to} thickness={edge_width} color={edge_color} />
390
+ {/each}
391
+
392
+ <!-- Irreducible BZ surface mesh -->
393
+ {#if show_ibz && ibz_geometry}
394
+ <T.Mesh
395
+ geometry={ibz_geometry}
396
+ onpointermove={(e: ThreltePointerEvent) => handle_hover(e, true)}
397
+ onpointerleave={() => handle_leave(true)}
398
+ >
399
+ <T.MeshStandardMaterial
400
+ color={ibz_color}
401
+ transparent
402
+ opacity={ibz_opacity}
403
+ side={2}
404
+ depthWrite={false}
405
+ />
406
+ </T.Mesh>
407
+ {/if}
408
+
409
+ <!-- IBZ edges -->
410
+ {#if show_ibz && ibz_data}
411
+ {#each ibz_data.edges as edge_segment, edge_idx (`ibz-edge-${edge_idx}`)}
412
+ {@const [from, to] = edge_segment}
413
+ <Cylinder {from} {to} thickness={edge_width * 1.5} color={ibz_color} />
414
+ {/each}
415
+ {/if}
416
+
417
+ <!-- Reciprocal lattice vectors -->
418
+ {#if show_vectors && bz_data.k_lattice}
419
+ {#each bz_data.k_lattice as vec, idx (idx)}
420
+ {@const scaled_vec = vec.map((coord) => coord * vector_scale) as Vec3}
421
+ {@const label_position = scaled_vec.map((coord) => coord * 1.15) as Vec3}
422
+ <Arrow
423
+ position={[0, 0, 0]}
424
+ vector={scaled_vec}
425
+ color={vector_colors[idx]}
426
+ scale={1}
427
+ shaft_radius={bz_size * 0.008}
428
+ arrow_head_radius={bz_size * 0.028}
429
+ arrow_head_length={-0.1}
430
+ />
431
+ <!-- Vector label beyond tip -->
432
+ <extras.HTML center position={label_position}>
433
+ <span
434
+ style:color={vector_colors[idx]}
435
+ style:font-size="1.2em"
436
+ >
437
+ {vector_labels[idx]}
438
+ </span>
439
+ </extras.HTML>
440
+ {/each}
441
+ {/if}
442
+
443
+ <!-- K-path visualization -->
444
+ {#if k_path_points && k_path_points.length > 1}
445
+ {#each k_path_points.slice(0, -1) as
446
+ from_point,
447
+ idx
448
+ (`${from_point}-${k_path_points[idx + 1]}#${idx}`)
449
+ }
450
+ {@const to_point = k_path_points[idx + 1]}
451
+ {@const seg_len = Math.hypot(
452
+ ...math.subtract(to_point as Vec3, from_point as Vec3),
453
+ )}
454
+ {@const is_hovered = hovered_qpoint_index !== null &&
455
+ (idx === hovered_qpoint_index || idx === hovered_qpoint_index - 1)}
456
+ {#if seg_len <= k_path_seg_cutoff}
457
+ <Cylinder
458
+ from={from_point as Vec3}
459
+ to={to_point as Vec3}
460
+ thickness={KPATH_THICKNESS}
461
+ color={is_hovered ? `#ff6b35` : `#ffcc00`}
462
+ />
463
+ <!-- Invisible wider proxy: lets the cursor snap to the path within ~2× its radius -->
464
+ <Cylinder
465
+ from={from_point as Vec3}
466
+ to={to_point as Vec3}
467
+ thickness={KPATH_HOVER_THICKNESS}
468
+ opacity={0}
469
+ onpointermove={(event: ThreltePointerEvent) => handle_kpath_hover(event, idx)}
470
+ onpointerleave={() => on_kpath_hover?.(null)}
471
+ />
472
+ {/if}
473
+ {/each}
474
+ {/if}
475
+
476
+ <!-- Symmetry point spheres at labeled k-path points -->
477
+ {#if k_path_labels}
478
+ {#each k_path_labels as { position, label }, idx (`sphere-${idx}`)}
479
+ {#if label}
480
+ <T.Mesh position={[position[0], position[1], position[2]]}>
481
+ <T.SphereGeometry args={[0.015, 16, 16]} />
482
+ <T.MeshStandardMaterial color="#ffcc00" metalness={0.3} roughness={0.7} />
483
+ </T.Mesh>
484
+ {/if}
485
+ {/each}
486
+ {/if}
487
+
488
+ <!-- Symmetry point labels on k-path -->
489
+ {#if k_path_labels}
490
+ {#each k_path_labels as { position, label }, idx (`${label}-${idx}`)}
491
+ {#if label}
492
+ <extras.HTML center position={position.map((coord) => coord * 1.1) as Vec3}>
493
+ <span
494
+ style="background: rgba(0, 0, 0, 0.3); padding: 0 3px; border-radius: 2px; color: white"
495
+ >
496
+ {label}
497
+ </span>
498
+ </extras.HTML>
499
+ {/if}
500
+ {/each}
501
+ {/if}
502
+
503
+ <!-- Hovered k-point highlight -->
504
+ {#if hovered_k_point}
505
+ <T.Mesh position={hovered_k_point}>
506
+ <T.SphereGeometry args={[0.03, 16, 16]} />
507
+ <T.MeshStandardMaterial
508
+ color="#ff0000"
509
+ emissive="#ff0000"
510
+ emissiveIntensity={1.2}
511
+ />
512
+ </T.Mesh>
513
+ {/if}
514
+ {/if}
515
+ </T.Group>
516
+
517
+ <style>
518
+ :global(.brillouin-zone .responsive-gizmo) {
519
+ width: clamp(70px, 18cqmin, 100px) !important;
520
+ height: clamp(70px, 18cqmin, 100px) !important;
521
+ }
522
+ </style>
@@ -0,0 +1,49 @@
1
+ import type { Vec3 } from '../math';
2
+ import { type CameraProjection } from '../settings';
3
+ import * as extras from '@threlte/extras';
4
+ import type { ComponentProps } from 'svelte';
5
+ import type { Camera, Scene } from 'three';
6
+ import type { BrillouinZoneData, BZHoverData, IrreducibleBZData } from './types';
7
+ type $$ComponentProps = {
8
+ bz_data?: BrillouinZoneData;
9
+ camera_position?: Vec3 | undefined;
10
+ camera_projection?: CameraProjection;
11
+ surface_color?: string;
12
+ surface_opacity?: number;
13
+ edge_color?: string;
14
+ edge_width?: number;
15
+ show_vectors?: boolean;
16
+ vector_scale?: number;
17
+ show_ibz?: boolean;
18
+ ibz_data?: IrreducibleBZData | null;
19
+ ibz_color?: string;
20
+ ibz_opacity?: number;
21
+ rotation_damping?: number;
22
+ max_zoom?: number;
23
+ min_zoom?: number;
24
+ rotate_speed?: number;
25
+ zoom_speed?: number;
26
+ pan_speed?: number;
27
+ zoom_to_cursor?: boolean;
28
+ fov?: number;
29
+ initial_zoom?: number;
30
+ ambient_light?: number;
31
+ directional_light?: number;
32
+ gizmo?: boolean | ComponentProps<typeof extras.Gizmo>;
33
+ auto_rotate?: number;
34
+ camera_is_moving?: boolean;
35
+ scene?: Scene;
36
+ camera?: Camera;
37
+ k_path_points?: Vec3[];
38
+ k_path_labels?: {
39
+ position: Vec3;
40
+ label: string | null;
41
+ }[];
42
+ hovered_k_point?: Vec3 | null;
43
+ hovered_qpoint_index?: number | null;
44
+ hover_data?: BZHoverData | null;
45
+ on_kpath_hover?: (qpoint_index: number | null) => void;
46
+ };
47
+ declare const BrillouinZoneScene: import("svelte").Component<$$ComponentProps, {}, "camera_position" | "camera_projection" | "vector_scale" | "camera" | "scene" | "camera_is_moving" | "surface_color" | "surface_opacity" | "edge_color" | "edge_width" | "show_vectors" | "bz_data" | "hover_data">;
48
+ type BrillouinZoneScene = ReturnType<typeof BrillouinZoneScene>;
49
+ export default BrillouinZoneScene;
@@ -0,0 +1,83 @@
1
+ <script lang="ts">
2
+ // Tooltip component for Brillouin zone hover information
3
+ // Displays k-coordinates, BZ order, volume, and IBZ-specific info
4
+ import { format_num } from '../labels'
5
+ import { KCoords, TooltipContent } from '../tooltip'
6
+ import type { BZHoverData, BZTooltipProp } from './types'
7
+
8
+ let {
9
+ hover_data,
10
+ tooltip,
11
+ }: {
12
+ hover_data: BZHoverData
13
+ tooltip?: BZTooltipProp
14
+ } = $props()
15
+
16
+ // Ordinal for BZ order (only 1-3 in practice)
17
+ const ordinal = (num: number) => `${num}${[`th`, `st`, `nd`, `rd`][num] ?? `th`}`
18
+ </script>
19
+
20
+ <TooltipContent data={hover_data} snippet_arg={{ hover_data }} {tooltip}>
21
+ <div class="bz-tooltip-content">
22
+ {#if hover_data.is_ibz || hover_data.bz_order > 1}
23
+ <div class="bz-tooltip-title">
24
+ {#if hover_data.is_ibz}<strong>Irreducible BZ</strong>{/if}
25
+ {#if hover_data.bz_order > 1}
26
+ <span class="bz-tooltip-badge">{ordinal(hover_data.bz_order)}</span>
27
+ {/if}
28
+ </div>
29
+ {/if}
30
+ <KCoords
31
+ cartesian={hover_data.position_cartesian}
32
+ fractional={hover_data.position_fractional}
33
+ />
34
+ <div class="bz-tooltip-row">
35
+ <span class="bz-tooltip-label">BZ Volume:</span>
36
+ <span>{format_num(hover_data.bz_volume, `.4~`)} Å⁻³</span>
37
+ </div>
38
+ {#if hover_data.is_ibz && hover_data.ibz_volume != null}
39
+ <div class="bz-tooltip-row">
40
+ <span class="bz-tooltip-label">IBZ Volume:</span>
41
+ <span>{format_num(hover_data.ibz_volume, `.4~`)} Å⁻³</span>
42
+ </div>
43
+ {#if hover_data.symmetry_multiplicity != null}
44
+ <div class="bz-tooltip-symmetry">
45
+ Symmetry: 1/{Math.round(hover_data.symmetry_multiplicity)} of BZ
46
+ </div>
47
+ {/if}
48
+ {/if}
49
+ </div>
50
+ </TooltipContent>
51
+
52
+ <style>
53
+ .bz-tooltip-content {
54
+ max-width: var(--bz-tooltip-max-width, 250px);
55
+ }
56
+ .bz-tooltip-title {
57
+ margin-bottom: 4px;
58
+ }
59
+ .bz-tooltip-badge {
60
+ font-size: 0.85em;
61
+ padding: 1px 4px;
62
+ border-radius: 3px;
63
+ font-weight: 500;
64
+ background: #666;
65
+ color: white;
66
+ }
67
+ .bz-tooltip-badge:not(:first-child) {
68
+ margin-left: 6px;
69
+ }
70
+ .bz-tooltip-row {
71
+ display: flex;
72
+ gap: 4px;
73
+ }
74
+ .bz-tooltip-label {
75
+ opacity: 0.8;
76
+ min-width: 75px;
77
+ }
78
+ .bz-tooltip-symmetry {
79
+ margin-top: 2px;
80
+ opacity: 0.8;
81
+ font-style: italic;
82
+ }
83
+ </style>
@@ -0,0 +1,8 @@
1
+ import type { BZHoverData, BZTooltipProp } from './types';
2
+ type $$ComponentProps = {
3
+ hover_data: BZHoverData;
4
+ tooltip?: BZTooltipProp;
5
+ };
6
+ declare const BrillouinZoneTooltip: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type BrillouinZoneTooltip = ReturnType<typeof BrillouinZoneTooltip>;
8
+ export default BrillouinZoneTooltip;
@@ -0,0 +1,17 @@
1
+ import type { Matrix3x3, Vec3 } from '../math';
2
+ import type { MoyoDataset } from '@spglib/moyo-wasm';
3
+ import type { BrillouinZoneData, ConvexHullData, IrreducibleBZData } from './types';
4
+ export declare function extract_point_group_from_operations(operations: MoyoDataset[`operations`]): Matrix3x3[];
5
+ export declare function fractional_to_cartesian_rotation(W: Matrix3x3, k_lattice: Matrix3x3): Matrix3x3;
6
+ export declare function reciprocal_lattice(real_lattice: Matrix3x3): Matrix3x3;
7
+ export declare function generate_bz_vertices(k_lattice: Matrix3x3, order?: 1 | 2 | 3, max_planes_by_order?: Record<1 | 2 | 3, number>): Vec3[];
8
+ export declare function compute_convex_hull(vertices: Vec3[], edge_sharp_angle_deg?: number): ConvexHullData;
9
+ export declare function compute_brillouin_zone(k_lattice: Matrix3x3, order?: 1 | 2 | 3, edge_sharp_angle_deg?: number, // Angle threshold for edge extraction (default 5°, increase for fewer edges, decrease for more)
10
+ max_planes_by_order?: Record<number, number>): BrillouinZoneData;
11
+ type ClippingPlane = {
12
+ normal: Vec3;
13
+ dist: number;
14
+ };
15
+ export declare function compute_ibz_clipping_planes(point_group_ops: Matrix3x3[]): ClippingPlane[];
16
+ export declare function compute_irreducible_bz(bz_data: BrillouinZoneData, point_group_ops: Matrix3x3[], edge_sharp_angle_deg?: number): IrreducibleBZData | null;
17
+ export {};