matterviz 0.3.4 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (852) hide show
  1. package/.vscode/launch.json +13 -0
  2. package/.vscodeignore +7 -0
  3. package/dist/assets/STLExporter-BpTH3YHE.js +8 -0
  4. package/dist/assets/browser-DdDecX_W.js +1 -0
  5. package/dist/assets/export-qgn-H9y6.js +2 -0
  6. package/dist/assets/main-DiKYzti2.css +1 -0
  7. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  8. package/dist/extension.js +31293 -0
  9. package/dist/src/lib/FilePicker.svelte +360 -0
  10. package/dist/src/lib/MillerIndexInput.svelte +66 -0
  11. package/dist/src/lib/api/mp.ts +26 -0
  12. package/dist/src/lib/api/optimade.ts +204 -0
  13. package/dist/src/lib/app.css +247 -0
  14. package/dist/src/lib/brillouin/BrillouinZone.svelte +549 -0
  15. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +144 -0
  16. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +146 -0
  17. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  18. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +476 -0
  19. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +92 -0
  20. package/dist/src/lib/brillouin/compute.ts +529 -0
  21. package/dist/src/lib/brillouin/index.ts +8 -0
  22. package/dist/src/lib/brillouin/types.ts +51 -0
  23. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +327 -0
  24. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
  25. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
  26. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +94 -0
  27. package/dist/src/lib/chempot-diagram/chempot-worker.ts +11 -0
  28. package/dist/src/lib/chempot-diagram/color.ts +42 -0
  29. package/dist/src/lib/chempot-diagram/compute.ts +1014 -0
  30. package/dist/src/lib/chempot-diagram/index.ts +6 -0
  31. package/dist/src/lib/chempot-diagram/pointer.ts +56 -0
  32. package/dist/src/lib/chempot-diagram/temperature.ts +77 -0
  33. package/dist/src/lib/chempot-diagram/types.ts +130 -0
  34. package/dist/src/lib/colors/index.ts +249 -0
  35. package/dist/src/lib/composition/BarChart.svelte +297 -0
  36. package/dist/src/lib/composition/BubbleChart.svelte +218 -0
  37. package/dist/src/lib/composition/Composition.svelte +165 -0
  38. package/dist/src/lib/composition/Formula.svelte +268 -0
  39. package/dist/src/lib/composition/FormulaFilter.svelte +1257 -0
  40. package/dist/src/lib/composition/PieChart.svelte +323 -0
  41. package/dist/src/lib/composition/format.ts +155 -0
  42. package/dist/src/lib/composition/index.ts +37 -0
  43. package/dist/src/lib/composition/parse.ts +605 -0
  44. package/dist/src/lib/constants.ts +134 -0
  45. package/dist/src/lib/controls.ts +42 -0
  46. package/dist/src/lib/convex-hull/ConvexHull.svelte +157 -0
  47. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +825 -0
  48. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +1801 -0
  49. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +1398 -0
  50. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +535 -0
  51. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +125 -0
  52. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +929 -0
  53. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +131 -0
  54. package/dist/src/lib/convex-hull/GasPressureControls.svelte +247 -0
  55. package/dist/src/lib/convex-hull/StructurePopup.svelte +151 -0
  56. package/dist/src/lib/convex-hull/TemperatureSlider.svelte +140 -0
  57. package/dist/src/lib/convex-hull/barycentric-coords.ts +246 -0
  58. package/dist/src/lib/convex-hull/demo-temperature.ts +63 -0
  59. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +405 -0
  60. package/dist/src/lib/convex-hull/helpers.ts +932 -0
  61. package/dist/src/lib/convex-hull/index.ts +202 -0
  62. package/dist/src/lib/convex-hull/thermodynamics.ts +2192 -0
  63. package/dist/src/lib/convex-hull/types.ts +267 -0
  64. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +311 -0
  65. package/dist/src/lib/coordination/calc-coordination.ts +93 -0
  66. package/dist/src/lib/coordination/index.ts +9 -0
  67. package/dist/src/lib/effects.svelte.ts +48 -0
  68. package/dist/src/lib/element/BohrAtom.svelte +147 -0
  69. package/dist/src/lib/element/ElementHeading.svelte +26 -0
  70. package/dist/src/lib/element/ElementPhoto.svelte +57 -0
  71. package/dist/src/lib/element/ElementStats.svelte +80 -0
  72. package/dist/src/lib/element/ElementTile.svelte +484 -0
  73. package/dist/src/lib/element/data.json.gz.d.ts +4 -0
  74. package/dist/src/lib/element/data.ts +14 -0
  75. package/dist/src/lib/element/index.ts +8 -0
  76. package/dist/src/lib/element/types.ts +62 -0
  77. package/dist/src/lib/feedback/ClickFeedback.svelte +58 -0
  78. package/dist/src/lib/feedback/DragOverlay.svelte +42 -0
  79. package/dist/src/lib/feedback/index.ts +4 -0
  80. package/dist/src/lib/fermi-surface/FermiSlice.svelte +189 -0
  81. package/dist/src/lib/fermi-surface/FermiSurface.svelte +600 -0
  82. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +448 -0
  83. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +794 -0
  84. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
  85. package/dist/src/lib/fermi-surface/compute.ts +728 -0
  86. package/dist/src/lib/fermi-surface/constants.ts +32 -0
  87. package/dist/src/lib/fermi-surface/export.ts +64 -0
  88. package/dist/src/lib/fermi-surface/index.ts +14 -0
  89. package/dist/src/lib/fermi-surface/marching-cubes.ts +3 -0
  90. package/dist/src/lib/fermi-surface/parse.ts +574 -0
  91. package/dist/src/lib/fermi-surface/symmetry.ts +56 -0
  92. package/dist/src/lib/fermi-surface/types.ts +159 -0
  93. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
  94. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  95. package/dist/src/lib/heatmap-matrix/index.ts +167 -0
  96. package/dist/src/lib/heatmap-matrix/shared.ts +7 -0
  97. package/dist/src/lib/icons.ts +650 -0
  98. package/dist/src/lib/index.ts +61 -0
  99. package/dist/src/lib/io/decompress.ts +92 -0
  100. package/dist/src/lib/io/export.ts +385 -0
  101. package/dist/src/lib/io/fetch.ts +46 -0
  102. package/dist/src/lib/io/file-drop.ts +51 -0
  103. package/dist/src/lib/io/index.ts +7 -0
  104. package/dist/src/lib/io/is-binary.ts +24 -0
  105. package/dist/src/lib/io/types.ts +8 -0
  106. package/dist/src/lib/io/url-drop.ts +141 -0
  107. package/dist/src/lib/isosurface/Isosurface.svelte +285 -0
  108. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +277 -0
  109. package/dist/src/lib/isosurface/index.ts +7 -0
  110. package/dist/src/lib/isosurface/parse.ts +656 -0
  111. package/dist/src/lib/isosurface/slice.ts +175 -0
  112. package/dist/src/lib/isosurface/types.ts +309 -0
  113. package/dist/src/lib/labels.ts +320 -0
  114. package/dist/src/lib/layout/FullscreenToggle.svelte +50 -0
  115. package/dist/src/lib/layout/InfoCard.svelte +120 -0
  116. package/dist/src/lib/layout/InfoTag.svelte +185 -0
  117. package/dist/src/lib/layout/PropertyFilter.svelte +246 -0
  118. package/dist/src/lib/layout/SettingsSection.svelte +148 -0
  119. package/dist/src/lib/layout/SubpageGrid.svelte +82 -0
  120. package/dist/src/lib/layout/fullscreen.ts +65 -0
  121. package/dist/src/lib/layout/index.ts +11 -0
  122. package/dist/src/lib/layout/json-tree/JsonNode.svelte +548 -0
  123. package/dist/src/lib/layout/json-tree/JsonTree.svelte +1230 -0
  124. package/dist/src/lib/layout/json-tree/JsonValue.svelte +334 -0
  125. package/dist/src/lib/layout/json-tree/index.ts +3 -0
  126. package/dist/src/lib/layout/json-tree/types.ts +126 -0
  127. package/dist/src/lib/layout/json-tree/utils.ts +682 -0
  128. package/dist/src/lib/marching-cubes.ts +614 -0
  129. package/dist/src/lib/math.ts +1081 -0
  130. package/dist/src/lib/overlays/ContextMenu.svelte +162 -0
  131. package/dist/src/lib/overlays/CopyButton.svelte +45 -0
  132. package/dist/src/lib/overlays/DragControlTab.svelte +98 -0
  133. package/dist/src/lib/overlays/DraggablePane.svelte +487 -0
  134. package/dist/src/lib/overlays/InfoPaneCards.svelte +149 -0
  135. package/dist/src/lib/overlays/index.ts +3 -0
  136. package/dist/src/lib/periodic-table/PeriodicTable.svelte +469 -0
  137. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +557 -0
  138. package/dist/src/lib/periodic-table/PropertySelect.svelte +37 -0
  139. package/dist/src/lib/periodic-table/index.ts +12 -0
  140. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
  141. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +444 -0
  142. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
  143. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  144. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  145. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +203 -0
  146. package/dist/src/lib/phase-diagram/build-diagram.ts +186 -0
  147. package/dist/src/lib/phase-diagram/colors.ts +58 -0
  148. package/dist/src/lib/phase-diagram/diagram-input.ts +40 -0
  149. package/dist/src/lib/phase-diagram/index.ts +13 -0
  150. package/dist/src/lib/phase-diagram/parse.ts +348 -0
  151. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +1023 -0
  152. package/dist/src/lib/phase-diagram/types.ts +144 -0
  153. package/dist/src/lib/phase-diagram/utils.ts +775 -0
  154. package/dist/src/lib/plot/AxisLabel.svelte +51 -0
  155. package/dist/src/lib/plot/BarPlot.svelte +2113 -0
  156. package/dist/src/lib/plot/BarPlotControls.svelte +66 -0
  157. package/dist/src/lib/plot/BinnedScatterPlot.svelte +1114 -0
  158. package/dist/src/lib/plot/ColorBar.svelte +721 -0
  159. package/dist/src/lib/plot/ColorScaleSelect.svelte +54 -0
  160. package/dist/src/lib/plot/ElementScatter.svelte +63 -0
  161. package/dist/src/lib/plot/FillArea.svelte +223 -0
  162. package/dist/src/lib/plot/Histogram.svelte +1558 -0
  163. package/dist/src/lib/plot/HistogramControls.svelte +212 -0
  164. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +96 -0
  165. package/dist/src/lib/plot/Line.svelte +84 -0
  166. package/dist/src/lib/plot/PlotAxis.svelte +169 -0
  167. package/dist/src/lib/plot/PlotControls.svelte +537 -0
  168. package/dist/src/lib/plot/PlotLegend.svelte +569 -0
  169. package/dist/src/lib/plot/PlotTooltip.svelte +67 -0
  170. package/dist/src/lib/plot/PortalSelect.svelte +253 -0
  171. package/dist/src/lib/plot/ReferenceLine3D.svelte +156 -0
  172. package/dist/src/lib/plot/ReferencePlane.svelte +175 -0
  173. package/dist/src/lib/plot/ScatterPlot.svelte +2778 -0
  174. package/dist/src/lib/plot/ScatterPlot3D.svelte +529 -0
  175. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +437 -0
  176. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +912 -0
  177. package/dist/src/lib/plot/ScatterPlotControls.svelte +306 -0
  178. package/dist/src/lib/plot/ScatterPoint.svelte +182 -0
  179. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +293 -0
  180. package/dist/src/lib/plot/Surface3D.svelte +197 -0
  181. package/dist/src/lib/plot/ZeroLines.svelte +97 -0
  182. package/dist/src/lib/plot/ZoomRect.svelte +23 -0
  183. package/dist/src/lib/plot/adaptive-density.ts +316 -0
  184. package/dist/src/lib/plot/auto-place.ts +184 -0
  185. package/dist/src/lib/plot/axis-utils.ts +122 -0
  186. package/dist/src/lib/plot/binned-scatter-types.ts +83 -0
  187. package/dist/src/lib/plot/data-cleaning.ts +1069 -0
  188. package/dist/src/lib/plot/data-transform.ts +69 -0
  189. package/dist/src/lib/plot/defaults.ts +9 -0
  190. package/dist/src/lib/plot/fill-utils.ts +494 -0
  191. package/dist/src/lib/plot/hover-lock.svelte.ts +60 -0
  192. package/dist/src/lib/plot/index.ts +53 -0
  193. package/dist/src/lib/plot/interactions.ts +119 -0
  194. package/dist/src/lib/plot/layout.ts +425 -0
  195. package/dist/src/lib/plot/reference-line.ts +426 -0
  196. package/dist/src/lib/plot/scales.ts +654 -0
  197. package/dist/src/lib/plot/svg.ts +23 -0
  198. package/dist/src/lib/plot/types.ts +1144 -0
  199. package/dist/src/lib/plot/utils/label-placement.ts +541 -0
  200. package/dist/src/lib/plot/utils/series-visibility.ts +140 -0
  201. package/dist/src/lib/plot/utils.ts +11 -0
  202. package/dist/src/lib/rdf/RdfPlot.svelte +247 -0
  203. package/dist/src/lib/rdf/calc-rdf.ts +167 -0
  204. package/dist/src/lib/rdf/index.ts +27 -0
  205. package/dist/src/lib/sanitize.ts +126 -0
  206. package/dist/src/lib/settings.ts +1479 -0
  207. package/dist/src/lib/spectral/Bands.svelte +1040 -0
  208. package/dist/src/lib/spectral/BandsAndDos.svelte +134 -0
  209. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +252 -0
  210. package/dist/src/lib/spectral/Dos.svelte +697 -0
  211. package/dist/src/lib/spectral/helpers.ts +1381 -0
  212. package/dist/src/lib/spectral/index.ts +8 -0
  213. package/dist/src/lib/spectral/types.ts +112 -0
  214. package/dist/src/lib/state.svelte.ts +64 -0
  215. package/dist/src/lib/structure/Arrow.svelte +72 -0
  216. package/dist/src/lib/structure/AtomLegend.svelte +815 -0
  217. package/dist/src/lib/structure/Bond.svelte +140 -0
  218. package/dist/src/lib/structure/CanvasTooltip.svelte +33 -0
  219. package/dist/src/lib/structure/CellSelect.svelte +349 -0
  220. package/dist/src/lib/structure/Cylinder.svelte +45 -0
  221. package/dist/src/lib/structure/Lattice.svelte +196 -0
  222. package/dist/src/lib/structure/Structure.svelte +2248 -0
  223. package/dist/src/lib/structure/StructureControls.svelte +1273 -0
  224. package/dist/src/lib/structure/StructureExportPane.svelte +252 -0
  225. package/dist/src/lib/structure/StructureInfoPane.svelte +737 -0
  226. package/dist/src/lib/structure/StructureScene.svelte +2255 -0
  227. package/dist/src/lib/structure/atom-properties.ts +316 -0
  228. package/dist/src/lib/structure/bond-order-perception.ts +447 -0
  229. package/dist/src/lib/structure/bonding.ts +944 -0
  230. package/dist/src/lib/structure/export.ts +861 -0
  231. package/dist/src/lib/structure/index.ts +291 -0
  232. package/dist/src/lib/structure/label-placement.ts +130 -0
  233. package/dist/src/lib/structure/measure.ts +45 -0
  234. package/dist/src/lib/structure/parse.ts +1705 -0
  235. package/dist/src/lib/structure/partial-occupancy.ts +183 -0
  236. package/dist/src/lib/structure/pbc.ts +164 -0
  237. package/dist/src/lib/structure/supercell.ts +226 -0
  238. package/dist/src/lib/structure/validation.ts +11 -0
  239. package/dist/src/lib/symmetry/SymmetryStats.svelte +226 -0
  240. package/dist/src/lib/symmetry/WyckoffTable.svelte +120 -0
  241. package/dist/src/lib/symmetry/cell-transform.ts +118 -0
  242. package/dist/src/lib/symmetry/index.ts +348 -0
  243. package/dist/src/lib/symmetry/spacegroups.ts +404 -0
  244. package/dist/src/lib/table/HeatmapTable.svelte +1833 -0
  245. package/dist/src/lib/table/ToggleMenu.svelte +385 -0
  246. package/dist/src/lib/table/index.ts +139 -0
  247. package/dist/src/lib/theme/ThemeControl.svelte +53 -0
  248. package/dist/src/lib/theme/index.ts +107 -0
  249. package/dist/src/lib/theme/themes.mjs +297 -0
  250. package/dist/src/lib/time.ts +71 -0
  251. package/dist/src/lib/tooltip/TooltipContent.svelte +58 -0
  252. package/dist/src/lib/tooltip/index.ts +2 -0
  253. package/dist/src/lib/tooltip/types.ts +13 -0
  254. package/dist/src/lib/trajectory/Trajectory.svelte +1545 -0
  255. package/dist/src/lib/trajectory/TrajectoryError.svelte +128 -0
  256. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +357 -0
  257. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +313 -0
  258. package/dist/src/lib/trajectory/constants.ts +7 -0
  259. package/dist/src/lib/trajectory/extract.ts +196 -0
  260. package/dist/src/lib/trajectory/format-detect.ts +96 -0
  261. package/dist/src/lib/trajectory/frame-reader.ts +456 -0
  262. package/dist/src/lib/trajectory/helpers.ts +217 -0
  263. package/dist/src/lib/trajectory/index.ts +218 -0
  264. package/dist/src/lib/trajectory/parse/ase.ts +109 -0
  265. package/dist/src/lib/trajectory/parse/hdf5.ts +173 -0
  266. package/dist/src/lib/trajectory/parse/index.ts +411 -0
  267. package/dist/src/lib/trajectory/parse/lammps.ts +215 -0
  268. package/dist/src/lib/trajectory/parse/vasp.ts +102 -0
  269. package/dist/src/lib/trajectory/parse/xyz.ts +143 -0
  270. package/dist/src/lib/trajectory/plotting.ts +599 -0
  271. package/dist/src/lib/trajectory/types.ts +13 -0
  272. package/dist/src/lib/utils.ts +56 -0
  273. package/dist/src/lib/xrd/XrdPlot.svelte +615 -0
  274. package/dist/src/lib/xrd/broadening.ts +130 -0
  275. package/dist/src/lib/xrd/calc-xrd.ts +397 -0
  276. package/dist/src/lib/xrd/index.ts +38 -0
  277. package/dist/src/lib/xrd/parse.ts +858 -0
  278. package/dist/webview.js +29421 -0
  279. package/icon.png +0 -0
  280. package/license +1 -1
  281. package/matterviz-0.3.2.vsix +0 -0
  282. package/matterviz-0.3.4.vsix +0 -0
  283. package/matterviz-0.3.5.vsix +0 -0
  284. package/package.json +1461 -231
  285. package/readme.md +171 -98
  286. package/scripts/sync-config.ts +101 -0
  287. package/src/declarations.d.ts +2 -0
  288. package/src/extension.ts +972 -0
  289. package/src/node-io.ts +65 -0
  290. package/src/types.ts +17 -0
  291. package/src/webview/JsonBrowser.svelte +1079 -0
  292. package/src/webview/PlotPanel.svelte +346 -0
  293. package/src/webview/detect.ts +444 -0
  294. package/src/webview/main.ts +764 -0
  295. package/src/webview/plot-utils.ts +250 -0
  296. package/test-fixtures/all-viz-types.json.gz +0 -0
  297. package/test-fixtures/plot-demo-data.json.gz +0 -0
  298. package/tests/detect.test.ts +604 -0
  299. package/tests/extension.test.ts +2041 -0
  300. package/tests/node-io.test.ts +39 -0
  301. package/tests/plot-utils.test.ts +302 -0
  302. package/tests/vite-plugin-json-gz.test.ts +114 -0
  303. package/tests/vscode-mock.ts +18 -0
  304. package/tests/webview.test.ts +231 -0
  305. package/tsconfig.json +20 -0
  306. package/vite-plugin-json-gz.ts +29 -0
  307. package/vite.config.ts +34 -0
  308. package/vite.extension.config.ts +34 -0
  309. package/dist/EmptyState.svelte.d.ts +0 -9
  310. package/dist/FilePicker.svelte +0 -360
  311. package/dist/FilePicker.svelte.d.ts +0 -17
  312. package/dist/Icon.svelte.d.ts +0 -13
  313. package/dist/MillerIndexInput.svelte +0 -66
  314. package/dist/MillerIndexInput.svelte.d.ts +0 -7
  315. package/dist/api/mp.d.ts +0 -6
  316. package/dist/api/mp.js +0 -22
  317. package/dist/api/optimade.d.ts +0 -45
  318. package/dist/api/optimade.js +0 -135
  319. package/dist/app.css +0 -240
  320. package/dist/brillouin/BrillouinZone.svelte +0 -543
  321. package/dist/brillouin/BrillouinZone.svelte.d.ts +0 -83
  322. package/dist/brillouin/BrillouinZoneControls.svelte +0 -144
  323. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +0 -17
  324. package/dist/brillouin/BrillouinZoneExportPane.svelte +0 -148
  325. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +0 -15
  326. package/dist/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  327. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +0 -13
  328. package/dist/brillouin/BrillouinZoneScene.svelte +0 -476
  329. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +0 -48
  330. package/dist/brillouin/BrillouinZoneTooltip.svelte +0 -92
  331. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +0 -8
  332. package/dist/brillouin/compute.d.ts +0 -17
  333. package/dist/brillouin/compute.js +0 -422
  334. package/dist/brillouin/index.d.ts +0 -8
  335. package/dist/brillouin/index.js +0 -8
  336. package/dist/brillouin/types.d.ts +0 -48
  337. package/dist/brillouin/types.js +0 -1
  338. package/dist/chempot-diagram/ChemPotDiagram.svelte +0 -327
  339. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +0 -13
  340. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +0 -847
  341. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +0 -16
  342. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +0 -3194
  343. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +0 -16
  344. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +0 -7
  345. package/dist/chempot-diagram/async-compute.svelte.d.ts +0 -3
  346. package/dist/chempot-diagram/async-compute.svelte.js +0 -77
  347. package/dist/chempot-diagram/chempot-worker.d.ts +0 -1
  348. package/dist/chempot-diagram/chempot-worker.js +0 -11
  349. package/dist/chempot-diagram/color.d.ts +0 -10
  350. package/dist/chempot-diagram/color.js +0 -32
  351. package/dist/chempot-diagram/compute.d.ts +0 -48
  352. package/dist/chempot-diagram/compute.js +0 -812
  353. package/dist/chempot-diagram/index.d.ts +0 -6
  354. package/dist/chempot-diagram/index.js +0 -6
  355. package/dist/chempot-diagram/pointer.d.ts +0 -16
  356. package/dist/chempot-diagram/pointer.js +0 -40
  357. package/dist/chempot-diagram/temperature.d.ts +0 -15
  358. package/dist/chempot-diagram/temperature.js +0 -36
  359. package/dist/chempot-diagram/types.d.ts +0 -86
  360. package/dist/chempot-diagram/types.js +0 -28
  361. package/dist/colors/index.d.ts +0 -47
  362. package/dist/colors/index.js +0 -203
  363. package/dist/composition/BarChart.svelte +0 -297
  364. package/dist/composition/BarChart.svelte.d.ts +0 -39
  365. package/dist/composition/BubbleChart.svelte +0 -218
  366. package/dist/composition/BubbleChart.svelte.d.ts +0 -28
  367. package/dist/composition/Composition.svelte +0 -164
  368. package/dist/composition/Composition.svelte.d.ts +0 -15
  369. package/dist/composition/Formula.svelte +0 -265
  370. package/dist/composition/Formula.svelte.d.ts +0 -19
  371. package/dist/composition/FormulaFilter.svelte +0 -1259
  372. package/dist/composition/FormulaFilter.svelte.d.ts +0 -51
  373. package/dist/composition/PieChart.svelte +0 -323
  374. package/dist/composition/PieChart.svelte.d.ts +0 -37
  375. package/dist/composition/format.d.ts +0 -15
  376. package/dist/composition/format.js +0 -109
  377. package/dist/composition/index.d.ts +0 -20
  378. package/dist/composition/index.js +0 -14
  379. package/dist/composition/parse.d.ts +0 -55
  380. package/dist/composition/parse.js +0 -459
  381. package/dist/constants.d.ts +0 -29
  382. package/dist/constants.js +0 -105
  383. package/dist/controls.d.ts +0 -14
  384. package/dist/controls.js +0 -30
  385. package/dist/convex-hull/ConvexHull.svelte +0 -157
  386. package/dist/convex-hull/ConvexHull.svelte.d.ts +0 -13
  387. package/dist/convex-hull/ConvexHull2D.svelte +0 -813
  388. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +0 -11
  389. package/dist/convex-hull/ConvexHull3D.svelte +0 -1788
  390. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +0 -8
  391. package/dist/convex-hull/ConvexHull4D.svelte +0 -1374
  392. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +0 -8
  393. package/dist/convex-hull/ConvexHullControls.svelte +0 -546
  394. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +0 -48
  395. package/dist/convex-hull/ConvexHullInfoPane.svelte +0 -115
  396. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +0 -18
  397. package/dist/convex-hull/ConvexHullStats.svelte +0 -905
  398. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +0 -15
  399. package/dist/convex-hull/ConvexHullTooltip.svelte +0 -131
  400. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +0 -33
  401. package/dist/convex-hull/GasPressureControls.svelte +0 -247
  402. package/dist/convex-hull/GasPressureControls.svelte.d.ts +0 -11
  403. package/dist/convex-hull/StructurePopup.svelte +0 -116
  404. package/dist/convex-hull/StructurePopup.svelte.d.ts +0 -18
  405. package/dist/convex-hull/TemperatureSlider.svelte +0 -137
  406. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +0 -8
  407. package/dist/convex-hull/barycentric-coords.d.ts +0 -18
  408. package/dist/convex-hull/barycentric-coords.js +0 -182
  409. package/dist/convex-hull/demo-temperature.d.ts +0 -6
  410. package/dist/convex-hull/demo-temperature.js +0 -40
  411. package/dist/convex-hull/gas-thermodynamics.d.ts +0 -16
  412. package/dist/convex-hull/gas-thermodynamics.js +0 -316
  413. package/dist/convex-hull/helpers.d.ts +0 -103
  414. package/dist/convex-hull/helpers.js +0 -671
  415. package/dist/convex-hull/index.d.ts +0 -118
  416. package/dist/convex-hull/index.js +0 -57
  417. package/dist/convex-hull/thermodynamics.d.ts +0 -66
  418. package/dist/convex-hull/thermodynamics.js +0 -1752
  419. package/dist/convex-hull/types.d.ts +0 -162
  420. package/dist/convex-hull/types.js +0 -36
  421. package/dist/coordination/CoordinationBarPlot.svelte +0 -311
  422. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +0 -30
  423. package/dist/coordination/calc-coordination.d.ts +0 -15
  424. package/dist/coordination/calc-coordination.js +0 -63
  425. package/dist/coordination/index.d.ts +0 -8
  426. package/dist/coordination/index.js +0 -7
  427. package/dist/element/BohrAtom.svelte +0 -149
  428. package/dist/element/BohrAtom.svelte.d.ts +0 -20
  429. package/dist/element/ElementHeading.svelte +0 -26
  430. package/dist/element/ElementHeading.svelte.d.ts +0 -8
  431. package/dist/element/ElementPhoto.svelte +0 -57
  432. package/dist/element/ElementPhoto.svelte.d.ts +0 -9
  433. package/dist/element/ElementStats.svelte +0 -80
  434. package/dist/element/ElementStats.svelte.d.ts +0 -8
  435. package/dist/element/ElementTile.svelte +0 -484
  436. package/dist/element/ElementTile.svelte.d.ts +0 -29
  437. package/dist/element/Nucleus.svelte.d.ts +0 -17
  438. package/dist/element/data.d.ts +0 -3
  439. package/dist/element/data.js +0 -2
  440. package/dist/element/data.json.gz.d.ts +0 -2
  441. package/dist/element/index.d.ts +0 -8
  442. package/dist/element/index.js +0 -8
  443. package/dist/element/types.d.ts +0 -57
  444. package/dist/element/types.js +0 -1
  445. package/dist/feedback/ClickFeedback.svelte +0 -58
  446. package/dist/feedback/ClickFeedback.svelte.d.ts +0 -12
  447. package/dist/feedback/DragOverlay.svelte +0 -42
  448. package/dist/feedback/DragOverlay.svelte.d.ts +0 -7
  449. package/dist/feedback/Spinner.svelte.d.ts +0 -7
  450. package/dist/feedback/StatusMessage.svelte.d.ts +0 -9
  451. package/dist/feedback/index.d.ts +0 -4
  452. package/dist/feedback/index.js +0 -4
  453. package/dist/fermi-surface/FermiSlice.svelte +0 -189
  454. package/dist/fermi-surface/FermiSlice.svelte.d.ts +0 -24
  455. package/dist/fermi-surface/FermiSurface.svelte +0 -597
  456. package/dist/fermi-surface/FermiSurface.svelte.d.ts +0 -83
  457. package/dist/fermi-surface/FermiSurfaceControls.svelte +0 -452
  458. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +0 -35
  459. package/dist/fermi-surface/FermiSurfaceScene.svelte +0 -792
  460. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +0 -50
  461. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  462. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +0 -8
  463. package/dist/fermi-surface/compute.d.ts +0 -5
  464. package/dist/fermi-surface/compute.js +0 -538
  465. package/dist/fermi-surface/constants.d.ts +0 -9
  466. package/dist/fermi-surface/constants.js +0 -27
  467. package/dist/fermi-surface/export.d.ts +0 -5
  468. package/dist/fermi-surface/export.js +0 -63
  469. package/dist/fermi-surface/index.d.ts +0 -12
  470. package/dist/fermi-surface/index.js +0 -13
  471. package/dist/fermi-surface/marching-cubes.d.ts +0 -2
  472. package/dist/fermi-surface/marching-cubes.js +0 -2
  473. package/dist/fermi-surface/parse.d.ts +0 -2
  474. package/dist/fermi-surface/parse.js +0 -495
  475. package/dist/fermi-surface/symmetry.d.ts +0 -3
  476. package/dist/fermi-surface/symmetry.js +0 -46
  477. package/dist/fermi-surface/types.d.ts +0 -113
  478. package/dist/fermi-surface/types.js +0 -4
  479. package/dist/heatmap-matrix/HeatmapMatrix.svelte +0 -1527
  480. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +0 -110
  481. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  482. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +0 -30
  483. package/dist/heatmap-matrix/index.d.ts +0 -53
  484. package/dist/heatmap-matrix/index.js +0 -100
  485. package/dist/heatmap-matrix/shared.d.ts +0 -2
  486. package/dist/heatmap-matrix/shared.js +0 -4
  487. package/dist/icons.d.ts +0 -569
  488. package/dist/icons.js +0 -648
  489. package/dist/index.d.ts +0 -39
  490. package/dist/index.js +0 -39
  491. package/dist/io/decompress.d.ts +0 -10
  492. package/dist/io/decompress.js +0 -69
  493. package/dist/io/export.d.ts +0 -16
  494. package/dist/io/export.js +0 -312
  495. package/dist/io/fetch.d.ts +0 -5
  496. package/dist/io/fetch.js +0 -39
  497. package/dist/io/file-drop.d.ts +0 -7
  498. package/dist/io/file-drop.js +0 -43
  499. package/dist/io/index.d.ts +0 -7
  500. package/dist/io/index.js +0 -7
  501. package/dist/io/is-binary.d.ts +0 -1
  502. package/dist/io/is-binary.js +0 -5
  503. package/dist/io/types.d.ts +0 -8
  504. package/dist/io/types.js +0 -1
  505. package/dist/io/url-drop.d.ts +0 -2
  506. package/dist/io/url-drop.js +0 -117
  507. package/dist/isosurface/Isosurface.svelte +0 -285
  508. package/dist/isosurface/Isosurface.svelte.d.ts +0 -8
  509. package/dist/isosurface/IsosurfaceControls.svelte +0 -291
  510. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +0 -9
  511. package/dist/isosurface/index.d.ts +0 -5
  512. package/dist/isosurface/index.js +0 -6
  513. package/dist/isosurface/parse.d.ts +0 -6
  514. package/dist/isosurface/parse.js +0 -553
  515. package/dist/isosurface/slice.d.ts +0 -11
  516. package/dist/isosurface/slice.js +0 -140
  517. package/dist/isosurface/types.d.ts +0 -56
  518. package/dist/isosurface/types.js +0 -227
  519. package/dist/labels.d.ts +0 -53
  520. package/dist/labels.js +0 -274
  521. package/dist/layout/FullscreenToggle.svelte +0 -50
  522. package/dist/layout/FullscreenToggle.svelte.d.ts +0 -7
  523. package/dist/layout/InfoCard.svelte +0 -120
  524. package/dist/layout/InfoCard.svelte.d.ts +0 -21
  525. package/dist/layout/InfoTag.svelte +0 -183
  526. package/dist/layout/InfoTag.svelte.d.ts +0 -19
  527. package/dist/layout/PropertyFilter.svelte +0 -244
  528. package/dist/layout/PropertyFilter.svelte.d.ts +0 -24
  529. package/dist/layout/SettingsSection.svelte +0 -148
  530. package/dist/layout/SettingsSection.svelte.d.ts +0 -17
  531. package/dist/layout/SubpageGrid.svelte +0 -82
  532. package/dist/layout/SubpageGrid.svelte.d.ts +0 -14
  533. package/dist/layout/fullscreen.d.ts +0 -9
  534. package/dist/layout/fullscreen.js +0 -53
  535. package/dist/layout/index.d.ts +0 -10
  536. package/dist/layout/index.js +0 -8
  537. package/dist/layout/json-tree/JsonNode.svelte +0 -547
  538. package/dist/layout/json-tree/JsonNode.svelte.d.ts +0 -11
  539. package/dist/layout/json-tree/JsonTree.svelte +0 -1222
  540. package/dist/layout/json-tree/JsonTree.svelte.d.ts +0 -6
  541. package/dist/layout/json-tree/JsonValue.svelte +0 -334
  542. package/dist/layout/json-tree/JsonValue.svelte.d.ts +0 -9
  543. package/dist/layout/json-tree/index.d.ts +0 -3
  544. package/dist/layout/json-tree/index.js +0 -3
  545. package/dist/layout/json-tree/types.d.ts +0 -73
  546. package/dist/layout/json-tree/types.js +0 -3
  547. package/dist/layout/json-tree/utils.d.ts +0 -29
  548. package/dist/layout/json-tree/utils.js +0 -648
  549. package/dist/marching-cubes.d.ts +0 -14
  550. package/dist/marching-cubes.js +0 -542
  551. package/dist/math.d.ts +0 -91
  552. package/dist/math.js +0 -896
  553. package/dist/overlays/ContextMenu.svelte +0 -162
  554. package/dist/overlays/ContextMenu.svelte.d.ts +0 -25
  555. package/dist/overlays/DraggablePane.svelte +0 -564
  556. package/dist/overlays/DraggablePane.svelte.d.ts +0 -36
  557. package/dist/overlays/index.d.ts +0 -2
  558. package/dist/overlays/index.js +0 -2
  559. package/dist/periodic-table/PeriodicTable.svelte +0 -469
  560. package/dist/periodic-table/PeriodicTable.svelte.d.ts +0 -55
  561. package/dist/periodic-table/PeriodicTableControls.svelte +0 -557
  562. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +0 -24
  563. package/dist/periodic-table/PropertySelect.svelte +0 -37
  564. package/dist/periodic-table/PropertySelect.svelte.d.ts +0 -13
  565. package/dist/periodic-table/TableInset.svelte.d.ts +0 -9
  566. package/dist/periodic-table/index.d.ts +0 -10
  567. package/dist/periodic-table/index.js +0 -4
  568. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  569. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +0 -44
  570. package/dist/phase-diagram/PhaseDiagramControls.svelte +0 -451
  571. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +0 -30
  572. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  573. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +0 -15
  574. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +0 -192
  575. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +0 -19
  576. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +0 -392
  577. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +0 -16
  578. package/dist/phase-diagram/TdbInfoPanel.svelte +0 -203
  579. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +0 -12
  580. package/dist/phase-diagram/build-diagram.d.ts +0 -11
  581. package/dist/phase-diagram/build-diagram.js +0 -167
  582. package/dist/phase-diagram/colors.d.ts +0 -35
  583. package/dist/phase-diagram/colors.js +0 -51
  584. package/dist/phase-diagram/diagram-input.d.ts +0 -33
  585. package/dist/phase-diagram/diagram-input.js +0 -3
  586. package/dist/phase-diagram/index.d.ts +0 -13
  587. package/dist/phase-diagram/index.js +0 -13
  588. package/dist/phase-diagram/parse.d.ts +0 -55
  589. package/dist/phase-diagram/parse.js +0 -276
  590. package/dist/phase-diagram/svg-to-diagram.d.ts +0 -2
  591. package/dist/phase-diagram/svg-to-diagram.js +0 -869
  592. package/dist/phase-diagram/types.d.ts +0 -99
  593. package/dist/phase-diagram/types.js +0 -1
  594. package/dist/phase-diagram/utils.d.ts +0 -118
  595. package/dist/phase-diagram/utils.js +0 -606
  596. package/dist/plot/AxisLabel.svelte +0 -51
  597. package/dist/plot/AxisLabel.svelte.d.ts +0 -16
  598. package/dist/plot/BarPlot.svelte +0 -2256
  599. package/dist/plot/BarPlot.svelte.d.ts +0 -82
  600. package/dist/plot/BarPlotControls.svelte +0 -66
  601. package/dist/plot/BarPlotControls.svelte.d.ts +0 -18
  602. package/dist/plot/ColorBar.svelte +0 -719
  603. package/dist/plot/ColorBar.svelte.d.ts +0 -31
  604. package/dist/plot/ColorScaleSelect.svelte +0 -54
  605. package/dist/plot/ColorScaleSelect.svelte.d.ts +0 -15
  606. package/dist/plot/ElementScatter.svelte +0 -63
  607. package/dist/plot/ElementScatter.svelte.d.ts +0 -14
  608. package/dist/plot/FillArea.svelte +0 -226
  609. package/dist/plot/FillArea.svelte.d.ts +0 -20
  610. package/dist/plot/Histogram.svelte +0 -1654
  611. package/dist/plot/Histogram.svelte.d.ts +0 -50
  612. package/dist/plot/HistogramControls.svelte +0 -212
  613. package/dist/plot/HistogramControls.svelte.d.ts +0 -22
  614. package/dist/plot/InteractiveAxisLabel.svelte +0 -94
  615. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +0 -14
  616. package/dist/plot/Line.svelte +0 -85
  617. package/dist/plot/Line.svelte.d.ts +0 -15
  618. package/dist/plot/PlotControls.svelte +0 -537
  619. package/dist/plot/PlotControls.svelte.d.ts +0 -4
  620. package/dist/plot/PlotLegend.svelte +0 -498
  621. package/dist/plot/PlotLegend.svelte.d.ts +0 -25
  622. package/dist/plot/PlotTooltip.svelte +0 -67
  623. package/dist/plot/PlotTooltip.svelte.d.ts +0 -17
  624. package/dist/plot/PortalSelect.svelte +0 -253
  625. package/dist/plot/PortalSelect.svelte.d.ts +0 -16
  626. package/dist/plot/ReferenceLine.svelte.d.ts +0 -20
  627. package/dist/plot/ReferenceLine3D.svelte +0 -154
  628. package/dist/plot/ReferenceLine3D.svelte.d.ts +0 -14
  629. package/dist/plot/ReferencePlane.svelte +0 -178
  630. package/dist/plot/ReferencePlane.svelte.d.ts +0 -14
  631. package/dist/plot/ScatterPlot.svelte +0 -2831
  632. package/dist/plot/ScatterPlot.svelte.d.ts +0 -92
  633. package/dist/plot/ScatterPlot3D.svelte +0 -499
  634. package/dist/plot/ScatterPlot3D.svelte.d.ts +0 -94
  635. package/dist/plot/ScatterPlot3DControls.svelte +0 -437
  636. package/dist/plot/ScatterPlot3DControls.svelte.d.ts +0 -20
  637. package/dist/plot/ScatterPlot3DScene.svelte +0 -912
  638. package/dist/plot/ScatterPlot3DScene.svelte.d.ts +0 -74
  639. package/dist/plot/ScatterPlotControls.svelte +0 -307
  640. package/dist/plot/ScatterPlotControls.svelte.d.ts +0 -17
  641. package/dist/plot/ScatterPoint.svelte +0 -185
  642. package/dist/plot/ScatterPoint.svelte.d.ts +0 -19
  643. package/dist/plot/SpacegroupBarPlot.svelte +0 -292
  644. package/dist/plot/SpacegroupBarPlot.svelte.d.ts +0 -9
  645. package/dist/plot/Surface3D.svelte +0 -200
  646. package/dist/plot/Surface3D.svelte.d.ts +0 -13
  647. package/dist/plot/ZeroLines.svelte +0 -96
  648. package/dist/plot/ZeroLines.svelte.d.ts +0 -32
  649. package/dist/plot/ZoomRect.svelte +0 -23
  650. package/dist/plot/ZoomRect.svelte.d.ts +0 -8
  651. package/dist/plot/axis-utils.d.ts +0 -19
  652. package/dist/plot/axis-utils.js +0 -80
  653. package/dist/plot/data-cleaning.d.ts +0 -37
  654. package/dist/plot/data-cleaning.js +0 -855
  655. package/dist/plot/data-transform.d.ts +0 -16
  656. package/dist/plot/data-transform.js +0 -45
  657. package/dist/plot/defaults.d.ts +0 -19
  658. package/dist/plot/defaults.js +0 -9
  659. package/dist/plot/fill-utils.d.ts +0 -51
  660. package/dist/plot/fill-utils.js +0 -337
  661. package/dist/plot/hover-lock.svelte.d.ts +0 -14
  662. package/dist/plot/hover-lock.svelte.js +0 -46
  663. package/dist/plot/index.d.ts +0 -43
  664. package/dist/plot/index.js +0 -37
  665. package/dist/plot/interactions.d.ts +0 -12
  666. package/dist/plot/interactions.js +0 -100
  667. package/dist/plot/layout.d.ts +0 -60
  668. package/dist/plot/layout.js +0 -230
  669. package/dist/plot/reference-line.d.ts +0 -60
  670. package/dist/plot/reference-line.js +0 -316
  671. package/dist/plot/scales.d.ts +0 -48
  672. package/dist/plot/scales.js +0 -484
  673. package/dist/plot/svg.d.ts +0 -1
  674. package/dist/plot/svg.js +0 -11
  675. package/dist/plot/types.d.ts +0 -863
  676. package/dist/plot/types.js +0 -103
  677. package/dist/plot/utils/label-placement.d.ts +0 -47
  678. package/dist/plot/utils/label-placement.js +0 -256
  679. package/dist/plot/utils/series-visibility.d.ts +0 -9
  680. package/dist/plot/utils/series-visibility.js +0 -67
  681. package/dist/plot/utils.d.ts +0 -1
  682. package/dist/plot/utils.js +0 -14
  683. package/dist/rdf/RdfPlot.svelte +0 -247
  684. package/dist/rdf/RdfPlot.svelte.d.ts +0 -27
  685. package/dist/rdf/calc-rdf.d.ts +0 -4
  686. package/dist/rdf/calc-rdf.js +0 -111
  687. package/dist/rdf/index.d.ts +0 -23
  688. package/dist/rdf/index.js +0 -2
  689. package/dist/sanitize.d.ts +0 -4
  690. package/dist/sanitize.js +0 -107
  691. package/dist/settings.d.ts +0 -253
  692. package/dist/settings.js +0 -1123
  693. package/dist/spectral/Bands.svelte +0 -1040
  694. package/dist/spectral/Bands.svelte.d.ts +0 -40
  695. package/dist/spectral/BandsAndDos.svelte +0 -128
  696. package/dist/spectral/BandsAndDos.svelte.d.ts +0 -18
  697. package/dist/spectral/BrillouinBandsDos.svelte +0 -248
  698. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +0 -20
  699. package/dist/spectral/Dos.svelte +0 -697
  700. package/dist/spectral/Dos.svelte.d.ts +0 -29
  701. package/dist/spectral/helpers.d.ts +0 -117
  702. package/dist/spectral/helpers.js +0 -1023
  703. package/dist/spectral/index.d.ts +0 -6
  704. package/dist/spectral/index.js +0 -7
  705. package/dist/spectral/types.d.ts +0 -84
  706. package/dist/spectral/types.js +0 -2
  707. package/dist/state.svelte.d.ts +0 -25
  708. package/dist/state.svelte.js +0 -45
  709. package/dist/structure/Arrow.svelte +0 -72
  710. package/dist/structure/Arrow.svelte.d.ts +0 -15
  711. package/dist/structure/AtomLegend.svelte +0 -798
  712. package/dist/structure/AtomLegend.svelte.d.ts +0 -34
  713. package/dist/structure/Bond.svelte +0 -140
  714. package/dist/structure/Bond.svelte.d.ts +0 -9
  715. package/dist/structure/CanvasTooltip.svelte +0 -33
  716. package/dist/structure/CanvasTooltip.svelte.d.ts +0 -12
  717. package/dist/structure/CellSelect.svelte +0 -351
  718. package/dist/structure/CellSelect.svelte.d.ts +0 -13
  719. package/dist/structure/Cylinder.svelte +0 -45
  720. package/dist/structure/Cylinder.svelte.d.ts +0 -10
  721. package/dist/structure/Lattice.svelte +0 -196
  722. package/dist/structure/Lattice.svelte.d.ts +0 -17
  723. package/dist/structure/Structure.svelte +0 -1857
  724. package/dist/structure/Structure.svelte.d.ts +0 -83
  725. package/dist/structure/StructureControls.svelte +0 -1184
  726. package/dist/structure/StructureControls.svelte.d.ts +0 -31
  727. package/dist/structure/StructureExportPane.svelte +0 -251
  728. package/dist/structure/StructureExportPane.svelte.d.ts +0 -17
  729. package/dist/structure/StructureInfoPane.svelte +0 -434
  730. package/dist/structure/StructureInfoPane.svelte.d.ts +0 -18
  731. package/dist/structure/StructureScene.svelte +0 -1574
  732. package/dist/structure/StructureScene.svelte.d.ts +0 -104
  733. package/dist/structure/atom-properties.d.ts +0 -37
  734. package/dist/structure/atom-properties.js +0 -198
  735. package/dist/structure/bonding.d.ts +0 -33
  736. package/dist/structure/bonding.js +0 -304
  737. package/dist/structure/export.d.ts +0 -20
  738. package/dist/structure/export.js +0 -725
  739. package/dist/structure/ferrox-wasm-types.d.ts +0 -46
  740. package/dist/structure/ferrox-wasm-types.js +0 -18
  741. package/dist/structure/ferrox-wasm.d.ts +0 -94
  742. package/dist/structure/ferrox-wasm.js +0 -249
  743. package/dist/structure/index.d.ts +0 -110
  744. package/dist/structure/index.js +0 -168
  745. package/dist/structure/measure.d.ts +0 -6
  746. package/dist/structure/measure.js +0 -29
  747. package/dist/structure/parse.d.ts +0 -65
  748. package/dist/structure/parse.js +0 -1374
  749. package/dist/structure/partial-occupancy.d.ts +0 -25
  750. package/dist/structure/partial-occupancy.js +0 -99
  751. package/dist/structure/pbc.d.ts +0 -9
  752. package/dist/structure/pbc.js +0 -123
  753. package/dist/structure/supercell.d.ts +0 -8
  754. package/dist/structure/supercell.js +0 -137
  755. package/dist/structure/validation.d.ts +0 -2
  756. package/dist/structure/validation.js +0 -10
  757. package/dist/symmetry/SymmetryStats.svelte +0 -226
  758. package/dist/symmetry/SymmetryStats.svelte.d.ts +0 -21
  759. package/dist/symmetry/WyckoffTable.svelte +0 -113
  760. package/dist/symmetry/WyckoffTable.svelte.d.ts +0 -11
  761. package/dist/symmetry/cell-transform.d.ts +0 -12
  762. package/dist/symmetry/cell-transform.js +0 -77
  763. package/dist/symmetry/index.d.ts +0 -43
  764. package/dist/symmetry/index.js +0 -229
  765. package/dist/symmetry/spacegroups.d.ts +0 -9
  766. package/dist/symmetry/spacegroups.js +0 -394
  767. package/dist/table/HeatmapTable.svelte +0 -1854
  768. package/dist/table/HeatmapTable.svelte.d.ts +0 -49
  769. package/dist/table/ToggleMenu.svelte +0 -376
  770. package/dist/table/ToggleMenu.svelte.d.ts +0 -11
  771. package/dist/table/index.d.ts +0 -74
  772. package/dist/table/index.js +0 -38
  773. package/dist/theme/ThemeControl.svelte +0 -53
  774. package/dist/theme/ThemeControl.svelte.d.ts +0 -9
  775. package/dist/theme/index.d.ts +0 -29
  776. package/dist/theme/index.js +0 -79
  777. package/dist/theme/themes.mjs +0 -285
  778. package/dist/time.d.ts +0 -4
  779. package/dist/time.js +0 -70
  780. package/dist/tooltip/TooltipContent.svelte +0 -58
  781. package/dist/tooltip/TooltipContent.svelte.d.ts +0 -31
  782. package/dist/tooltip/index.d.ts +0 -2
  783. package/dist/tooltip/index.js +0 -2
  784. package/dist/tooltip/types.d.ts +0 -8
  785. package/dist/tooltip/types.js +0 -1
  786. package/dist/trajectory/Trajectory.svelte +0 -1517
  787. package/dist/trajectory/Trajectory.svelte.d.ts +0 -77
  788. package/dist/trajectory/TrajectoryError.svelte +0 -128
  789. package/dist/trajectory/TrajectoryError.svelte.d.ts +0 -13
  790. package/dist/trajectory/TrajectoryExportPane.svelte +0 -357
  791. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +0 -17
  792. package/dist/trajectory/TrajectoryInfoPane.svelte +0 -387
  793. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +0 -17
  794. package/dist/trajectory/constants.d.ts +0 -6
  795. package/dist/trajectory/constants.js +0 -7
  796. package/dist/trajectory/extract.d.ts +0 -5
  797. package/dist/trajectory/extract.js +0 -162
  798. package/dist/trajectory/format-detect.d.ts +0 -9
  799. package/dist/trajectory/format-detect.js +0 -76
  800. package/dist/trajectory/frame-reader.d.ts +0 -17
  801. package/dist/trajectory/frame-reader.js +0 -332
  802. package/dist/trajectory/helpers.d.ts +0 -14
  803. package/dist/trajectory/helpers.js +0 -172
  804. package/dist/trajectory/index.d.ts +0 -63
  805. package/dist/trajectory/index.js +0 -126
  806. package/dist/trajectory/parse/ase.d.ts +0 -2
  807. package/dist/trajectory/parse/ase.js +0 -77
  808. package/dist/trajectory/parse/hdf5.d.ts +0 -2
  809. package/dist/trajectory/parse/hdf5.js +0 -129
  810. package/dist/trajectory/parse/index.d.ts +0 -12
  811. package/dist/trajectory/parse/index.js +0 -299
  812. package/dist/trajectory/parse/lammps.d.ts +0 -5
  813. package/dist/trajectory/parse/lammps.js +0 -179
  814. package/dist/trajectory/parse/vasp.d.ts +0 -2
  815. package/dist/trajectory/parse/vasp.js +0 -68
  816. package/dist/trajectory/parse/xyz.d.ts +0 -2
  817. package/dist/trajectory/parse/xyz.js +0 -110
  818. package/dist/trajectory/plotting.d.ts +0 -28
  819. package/dist/trajectory/plotting.js +0 -423
  820. package/dist/trajectory/types.d.ts +0 -11
  821. package/dist/trajectory/types.js +0 -1
  822. package/dist/utils.d.ts +0 -5
  823. package/dist/utils.js +0 -36
  824. package/dist/xrd/XrdPlot.svelte +0 -615
  825. package/dist/xrd/XrdPlot.svelte.d.ts +0 -28
  826. package/dist/xrd/broadening.d.ts +0 -20
  827. package/dist/xrd/broadening.js +0 -97
  828. package/dist/xrd/calc-xrd.d.ts +0 -37
  829. package/dist/xrd/calc-xrd.js +0 -337
  830. package/dist/xrd/index.d.ts +0 -37
  831. package/dist/xrd/index.js +0 -4
  832. package/dist/xrd/parse.d.ts +0 -13
  833. package/dist/xrd/parse.js +0 -749
  834. /package/dist/{EmptyState.svelte → src/lib/EmptyState.svelte} +0 -0
  835. /package/dist/{Icon.svelte → src/lib/Icon.svelte} +0 -0
  836. /package/dist/{chempot-diagram → src/lib/chempot-diagram}/ChemPotScene3D.svelte +0 -0
  837. /package/dist/{colors → src/lib/colors}/alloy-colors.json +0 -0
  838. /package/dist/{colors → src/lib/colors}/dark-mode-colors.json +0 -0
  839. /package/dist/{colors → src/lib/colors}/jmol-colors.json +0 -0
  840. /package/dist/{colors → src/lib/colors}/muted-colors.json +0 -0
  841. /package/dist/{colors → src/lib/colors}/pastel-colors.json +0 -0
  842. /package/dist/{colors → src/lib/colors}/vesta-colors.json +0 -0
  843. /package/dist/{element → src/lib/element}/Nucleus.svelte +0 -0
  844. /package/dist/{element → src/lib/element}/data.json +0 -0
  845. /package/dist/{element → src/lib/element}/data.json.gz +0 -0
  846. /package/dist/{element → src/lib/element}/data.schema.json +0 -0
  847. /package/dist/{element-image-urls.json → src/lib/element-image-urls.json} +0 -0
  848. /package/dist/{feedback → src/lib/feedback}/Spinner.svelte +0 -0
  849. /package/dist/{feedback → src/lib/feedback}/StatusMessage.svelte +0 -0
  850. /package/dist/{periodic-table → src/lib/periodic-table}/TableInset.svelte +0 -0
  851. /package/dist/{plot → src/lib/plot}/ReferenceLine.svelte +0 -0
  852. /package/dist/{xrd → src/lib/xrd}/atomic_scattering_params.json +0 -0
@@ -1,104 +0,0 @@
1
- import type { D3InterpolateName } from '../colors';
2
- import type { ElementSymbol } from '../element';
3
- import type { IsosurfaceSettings, VolumetricData } from '../isosurface/types';
4
- import type { Vec3 } from '../math';
5
- import type { CameraProjection, ShowBonds, VectorColorMode, VectorLayerConfig } from '../settings';
6
- import type { AnyStructure, MeasureMode, Site } from './';
7
- import { Lattice } from './';
8
- import type { AtomColorConfig } from './atom-properties';
9
- import type { MoyoDataset } from '@spglib/moyo-wasm';
10
- import * as extras from '@threlte/extras';
11
- import { type ComponentProps, type Snippet } from 'svelte';
12
- import { SvelteMap } from 'svelte/reactivity';
13
- import { type Camera, type Scene } from 'three';
14
- import type { BondingStrategy } from './bonding';
15
- type $$ComponentProps = {
16
- structure?: AnyStructure;
17
- base_structure?: AnyStructure;
18
- atom_radius?: number;
19
- same_size_atoms?: boolean;
20
- camera_position?: [x: number, y: number, z: number];
21
- camera_target?: Vec3;
22
- camera_projection?: CameraProjection;
23
- rotation_damping?: number;
24
- max_zoom?: number;
25
- min_zoom?: number;
26
- rotate_speed?: number;
27
- zoom_speed?: number;
28
- pan_speed?: number;
29
- zoom_to_cursor?: boolean;
30
- show_atoms?: boolean;
31
- show_bonds?: ShowBonds;
32
- show_site_labels?: boolean;
33
- show_site_indices?: boolean;
34
- vector_configs?: Record<string, VectorLayerConfig>;
35
- vector_scale?: number;
36
- vector_color?: string;
37
- vector_color_mode?: VectorColorMode;
38
- vector_color_scale?: D3InterpolateName;
39
- vector_normalize?: boolean;
40
- vector_uniform_thickness?: boolean;
41
- vector_origin_gap?: number;
42
- vector_shaft_radius?: number;
43
- vector_arrow_head_radius?: number;
44
- vector_arrow_head_length?: number;
45
- gizmo?: boolean | ComponentProps<typeof extras.Gizmo>;
46
- hovered_idx?: number | null;
47
- hovered_site?: Site | null;
48
- float_fmt?: string;
49
- auto_rotate?: number;
50
- initial_zoom?: number;
51
- bond_thickness?: number;
52
- bond_color?: string;
53
- bonding_strategy?: BondingStrategy;
54
- bonding_options?: Record<string, unknown>;
55
- fov?: number;
56
- ambient_light?: number;
57
- directional_light?: number;
58
- sphere_segments?: number;
59
- lattice_props?: ComponentProps<typeof Lattice>;
60
- atom_label?: Snippet<[{
61
- site: Site;
62
- site_idx: number;
63
- }]>;
64
- site_label_size?: number;
65
- site_label_offset?: Vec3;
66
- site_label_bg_color?: string;
67
- site_label_color?: string;
68
- site_label_padding?: number;
69
- camera_is_moving?: boolean;
70
- width?: number;
71
- height?: number;
72
- measure_mode?: MeasureMode;
73
- selected_sites?: number[];
74
- measured_sites?: number[];
75
- added_bonds?: [number, number][];
76
- removed_bonds?: [number, number][];
77
- selection_highlight_color?: string;
78
- active_sites?: number[];
79
- active_highlight_color?: string;
80
- rotation?: Vec3;
81
- scene?: Scene;
82
- camera?: Camera;
83
- orbit_controls?: ComponentProps<typeof extras.OrbitControls>[`ref`];
84
- rotation_target_ref?: Vec3;
85
- initial_computed_zoom?: number;
86
- hidden_elements?: Set<ElementSymbol>;
87
- hidden_prop_vals?: Set<number | string>;
88
- element_radius_overrides?: Partial<Record<ElementSymbol, number>>;
89
- site_radius_overrides?: Map<number, number> | SvelteMap<number, number>;
90
- atom_color_config?: Partial<AtomColorConfig>;
91
- sym_data?: MoyoDataset | null;
92
- on_sites_moved?: (scene_indices: number[], delta: Vec3) => void;
93
- on_operation_start?: () => void;
94
- on_add_atom?: (xyz: Vec3, element: ElementSymbol) => void;
95
- add_atom_mode?: boolean;
96
- add_element?: ElementSymbol;
97
- cursor?: string;
98
- dragging_atoms?: boolean;
99
- volumetric_data?: VolumetricData;
100
- isosurface_settings?: IsosurfaceSettings;
101
- };
102
- declare const StructureScene: import("svelte").Component<$$ComponentProps, {}, "cursor" | "site_label_offset" | "vector_configs" | "camera" | "scene" | "orbit_controls" | "hidden_elements" | "hidden_prop_vals" | "element_radius_overrides" | "site_radius_overrides" | "selected_sites" | "hovered_idx" | "hovered_site" | "camera_is_moving" | "measured_sites" | "added_bonds" | "removed_bonds" | "active_sites" | "rotation_target_ref" | "initial_computed_zoom" | "add_atom_mode" | "add_element" | "dragging_atoms">;
103
- type StructureScene = ReturnType<typeof StructureScene>;
104
- export default StructureScene;
@@ -1,37 +0,0 @@
1
- import type { ColorScaleType, D3InterpolateName } from '../colors';
2
- import type { AtomColorMode } from '../settings';
3
- import type { AnyStructure, Site } from './';
4
- import type { BondingStrategy } from './bonding';
5
- import type { MoyoDataset } from '@spglib/moyo-wasm';
6
- export interface AtomColorConfig {
7
- mode: AtomColorMode;
8
- scale?: D3InterpolateName;
9
- scale_type: ColorScaleType;
10
- color_fn?: (site: Site, idx: number) => number | string;
11
- }
12
- export interface AtomPropertyColors {
13
- colors: string[];
14
- values: (number | string)[];
15
- min_value?: number;
16
- max_value?: number;
17
- unique_values?: (number | string)[];
18
- }
19
- type SymmetryDataWithOrigMap = MoyoDataset & {
20
- orig_site_indices_by_std_idx?: number[][];
21
- };
22
- export declare const get_d3_color_scales: () => string[];
23
- export declare function apply_color_scale(vals: number[], scale?: string, type?: ColorScaleType): {
24
- colors: string[];
25
- unique_values?: number[];
26
- };
27
- export declare const apply_categorical_color_scale: (vals: string[], scale?: string) => {
28
- colors: string[];
29
- unique_values: string[];
30
- };
31
- export declare const get_orig_site_idx: (site: Site | undefined, site_idx: number) => number;
32
- export declare function get_coordination_colors(structure: AnyStructure, strategy?: BondingStrategy, scale?: string, type?: ColorScaleType): AtomPropertyColors;
33
- export declare function get_wyckoff_colors(structure: AnyStructure, sym_data: SymmetryDataWithOrigMap | null, scale?: string): AtomPropertyColors;
34
- export declare function get_custom_colors(structure: AnyStructure, fn: (site: Site, idx: number) => number | string, scale?: string, type?: ColorScaleType): AtomPropertyColors;
35
- export declare function get_atom_colors(structure: AnyStructure, config: Partial<AtomColorConfig>, bonding_strategy?: BondingStrategy, sym_data?: MoyoDataset | null): AtomPropertyColors;
36
- export declare function get_property_colors(structure: AnyStructure | undefined, config: Partial<AtomColorConfig>, bonding_strategy: BondingStrategy, sym_data: MoyoDataset | null): AtomPropertyColors | null;
37
- export {};
@@ -1,198 +0,0 @@
1
- // Utility functions for computing atom properties and applying color scales
2
- import { calc_coordination_nums } from '../coordination';
3
- import * as math from '../math';
4
- import { wrap_to_unit_cell } from './pbc';
5
- import { rgb } from 'd3-color';
6
- import * as d3_sc from 'd3-scale-chromatic';
7
- const GRAY = `#808080`;
8
- const DEFAULT_COLOR_SCALE = `interpolateViridis`;
9
- export const get_d3_color_scales = () => Object.keys(d3_sc).filter((key) => key.startsWith(`interpolate`));
10
- const get_interpolator = (scale) => {
11
- const interp_fn = d3_sc[scale];
12
- if (typeof interp_fn !== `function`) {
13
- console.warn(`Unknown D3 scale: ${scale}, using ${DEFAULT_COLOR_SCALE}`);
14
- return d3_sc.interpolateViridis;
15
- }
16
- return interp_fn;
17
- };
18
- const to_hex = (interp_fn, t) => rgb(interp_fn(t)).formatHex();
19
- const build_image_site = (site, frac_to_cart, offset, orig_idx) => {
20
- const img_abc = [
21
- site.abc[0] + offset[0],
22
- site.abc[1] + offset[1],
23
- site.abc[2] + offset[2],
24
- ];
25
- return {
26
- ...site,
27
- abc: img_abc,
28
- xyz: frac_to_cart(img_abc),
29
- properties: { ...site.properties, orig_site_idx: orig_idx },
30
- };
31
- };
32
- const get_all_offsets = (pbc) => [-1, 0, 1]
33
- .flatMap((dx) => [-1, 0, 1].flatMap((dy) => [-1, 0, 1].map((dz) => [dx, dy, dz])))
34
- .filter(([dx, dy, dz]) => !(dx === 0 && dy === 0 && dz === 0) &&
35
- (pbc[0] || dx === 0) &&
36
- (pbc[1] || dy === 0) &&
37
- (pbc[2] || dz === 0));
38
- const make_categorical = (vals, scale, sort_fn) => {
39
- const interp_fn = get_interpolator(scale);
40
- const uniq = sort_fn ? [...new Set(vals)].sort(sort_fn) : [...new Set(vals)].sort();
41
- const colors = uniq.map((_, idx) => to_hex(interp_fn, uniq.length === 1 ? 0.5 : idx / (uniq.length - 1)));
42
- const map = new Map(uniq.map((val, idx) => [val, colors[idx]]));
43
- return {
44
- colors: vals.map((val) => map.get(val) ?? GRAY),
45
- unique_values: uniq,
46
- };
47
- };
48
- const build_prop_colors = (vals, colors, unique_values) => {
49
- const uniq = unique_values ?? [...new Set(vals)].sort((val_a, val_b) => val_a - val_b);
50
- // Use sorted uniq array to avoid spreading large arrays into Math.min/max
51
- const min_value = uniq.length > 0 ? uniq[0] : undefined;
52
- const max_value = uniq.at(-1);
53
- return { colors, values: vals, min_value, max_value, unique_values: uniq };
54
- };
55
- export function apply_color_scale(vals, scale = DEFAULT_COLOR_SCALE, type = `continuous`) {
56
- if (!vals.length)
57
- return { colors: [] };
58
- if (type === `categorical`) {
59
- const result = make_categorical(vals, scale, (val_a, val_b) => val_a - val_b);
60
- return { colors: result.colors, unique_values: result.unique_values };
61
- }
62
- const interp_fn = get_interpolator(scale);
63
- // Compute min/max in single pass to avoid spreading large arrays
64
- let [min, max] = [vals[0], vals[0]];
65
- for (const val of vals) {
66
- if (val < min)
67
- min = val;
68
- if (val > max)
69
- max = val;
70
- }
71
- return {
72
- colors: vals.map((val) => to_hex(interp_fn, max === min ? 0.5 : (val - min) / (max - min))),
73
- };
74
- }
75
- export const apply_categorical_color_scale = (vals, scale = DEFAULT_COLOR_SCALE) => vals.length ? make_categorical(vals, scale) : { colors: [], unique_values: [] };
76
- // Get original site index for property color lookup.
77
- // Supercell atoms use orig_unit_cell_idx, image atoms use orig_site_idx, otherwise use site_idx.
78
- export const get_orig_site_idx = (site, site_idx) => typeof site?.properties?.orig_unit_cell_idx === `number`
79
- ? site.properties.orig_unit_cell_idx
80
- : typeof site?.properties?.orig_site_idx === `number`
81
- ? site.properties.orig_site_idx
82
- : site_idx;
83
- // Expand structure with PBC images - use minimal expansion based on atom positions
84
- function expand_structure_for_pbc(structure) {
85
- if (!(`lattice` in structure) || !structure.lattice || !structure.sites.length) {
86
- return structure;
87
- }
88
- const { sites, lattice } = structure;
89
- const frac_to_cart = math.create_frac_to_cart(lattice.matrix);
90
- const pbc = lattice.pbc ?? [true, true, true];
91
- const all_offsets = get_all_offsets(pbc);
92
- // Small structures: expand all atoms
93
- if (sites.length < 20 || !pbc.some((periodic) => periodic)) {
94
- const image_sites = sites.flatMap((site, orig_idx) => all_offsets.map((offset) => build_image_site(site, frac_to_cart, offset, orig_idx)));
95
- return { ...structure, sites: [...sites, ...image_sites] };
96
- }
97
- // Large structures: only expand atoms near boundaries (within 5Å bond distance)
98
- const cutoff = [5.0 / lattice.a, 5.0 / lattice.b, 5.0 / lattice.c];
99
- const image_sites = sites.flatMap((site, orig_idx) => {
100
- const norm = wrap_to_unit_cell(site.abc);
101
- return all_offsets
102
- .filter(([dx, dy, dz]) => (dx === 0 || (dx === -1 ? norm[0] <= cutoff[0] : norm[0] >= 1 - cutoff[0])) &&
103
- (dy === 0 || (dy === -1 ? norm[1] <= cutoff[1] : norm[1] >= 1 - cutoff[1])) &&
104
- (dz === 0 || (dz === -1 ? norm[2] <= cutoff[2] : norm[2] >= 1 - cutoff[2])))
105
- .map((offset) => build_image_site(site, frac_to_cart, offset, orig_idx));
106
- });
107
- return { ...structure, sites: [...sites, ...image_sites] };
108
- }
109
- export function get_coordination_colors(structure, strategy = `electroneg_ratio`, scale = DEFAULT_COLOR_SCALE, type = `continuous`) {
110
- const orig_site_count = structure.sites.length;
111
- // Check if structure has periodic boundary conditions
112
- const has_lattice = `lattice` in structure && structure.lattice !== undefined;
113
- const pbc = has_lattice ? structure.lattice.pbc : undefined;
114
- const has_pbc = has_lattice && (pbc === undefined || pbc.some((is_periodic) => is_periodic));
115
- // For PBC structures, expand with images from neighboring cells for accurate coordination
116
- const coord_structure = has_pbc ? expand_structure_for_pbc(structure) : structure;
117
- // Calculate coordination numbers on the (potentially expanded) structure
118
- const all_coord_data = calc_coordination_nums(coord_structure, strategy);
119
- // Extract coordination numbers only for the original sites (not image atoms)
120
- const coord_nums = all_coord_data.sites
121
- .slice(0, orig_site_count)
122
- .map((site) => site.coordination_num);
123
- const { colors, unique_values } = apply_color_scale(coord_nums, scale, type);
124
- return build_prop_colors(coord_nums, colors, unique_values);
125
- }
126
- export function get_wyckoff_colors(structure, sym_data, scale = DEFAULT_COLOR_SCALE) {
127
- const n = structure.sites.length;
128
- if (!sym_data?.wyckoffs || sym_data.wyckoffs.length === 0) {
129
- return {
130
- colors: Array(n).fill(GRAY),
131
- values: Array(n).fill(`unknown`),
132
- unique_values: [`unknown`],
133
- };
134
- }
135
- const wyckoff_by_orig_idx = new Map();
136
- const mapping_by_std_idx = sym_data.orig_site_indices_by_std_idx;
137
- if (mapping_by_std_idx) {
138
- for (let std_idx = 0; std_idx < sym_data.wyckoffs.length; std_idx += 1) {
139
- const wyckoff = sym_data.wyckoffs[std_idx];
140
- for (const orig_idx of mapping_by_std_idx[std_idx] ?? []) {
141
- if (!wyckoff_by_orig_idx.has(orig_idx))
142
- wyckoff_by_orig_idx.set(orig_idx, wyckoff);
143
- }
144
- }
145
- }
146
- // Create unique orbit identifiers: Wyckoff position + element symbol
147
- const orbit_ids = structure.sites.map((site, idx) => {
148
- const sym_idx = get_orig_site_idx(site, idx);
149
- const mapped_wyckoff = wyckoff_by_orig_idx.get(sym_idx);
150
- if (mapped_wyckoff !== undefined) {
151
- const element = site.species[0]?.element ?? `?`;
152
- return mapped_wyckoff ? `${mapped_wyckoff}|${element}` : `unknown`;
153
- }
154
- if (sym_idx >= sym_data.wyckoffs.length) {
155
- console.error(`[get_wyckoff_colors] Site ${idx} (maps to ${sym_idx}) has no Wyckoff data. ` +
156
- `Structure has ${n} sites but symmetry data only has ${sym_data.wyckoffs.length}.`);
157
- return `unknown`;
158
- }
159
- const wyckoff = sym_data.wyckoffs[sym_idx];
160
- const element = site.species[0]?.element ?? `?`;
161
- return wyckoff ? `${wyckoff}|${element}` : `unknown`;
162
- });
163
- const { colors, unique_values } = apply_categorical_color_scale(orbit_ids, scale);
164
- return { colors, values: orbit_ids, unique_values };
165
- }
166
- export function get_custom_colors(structure, fn, scale = DEFAULT_COLOR_SCALE, type = `continuous`) {
167
- const vals = structure.sites.map((site, idx) => fn(site, idx));
168
- const is_num = vals.every((val) => typeof val === `number`);
169
- if (is_num) {
170
- const nums = vals;
171
- const { colors, unique_values } = apply_color_scale(nums, scale, type);
172
- return build_prop_colors(nums, colors, unique_values);
173
- }
174
- const strs = vals.map(String);
175
- const { colors, unique_values } = apply_categorical_color_scale(strs, scale);
176
- return { colors, values: strs, unique_values };
177
- }
178
- export function get_atom_colors(structure, config, bonding_strategy = `electroneg_ratio`, sym_data = null) {
179
- const { mode = `element`, scale = DEFAULT_COLOR_SCALE, scale_type = `continuous` } = config;
180
- if (mode === `coordination`) {
181
- return get_coordination_colors(structure, bonding_strategy, scale, scale_type);
182
- }
183
- if (mode === `wyckoff`)
184
- return get_wyckoff_colors(structure, sym_data, scale);
185
- if (mode === `custom` && config.color_fn) {
186
- return get_custom_colors(structure, config.color_fn, scale, scale_type);
187
- }
188
- // Element mode or custom without function, no property colors needed
189
- return { colors: [], values: [] };
190
- }
191
- // Helper: Get property colors with null safety check
192
- // Returns null if structure is missing, mode is element, or no colors computed
193
- export function get_property_colors(structure, config, bonding_strategy, sym_data) {
194
- if (!structure || config.mode === `element`)
195
- return null;
196
- const result = get_atom_colors(structure, config, bonding_strategy, sym_data);
197
- return result.colors.length ? result : null;
198
- }
@@ -1,33 +0,0 @@
1
- import type { Vec3 } from '../math';
2
- import type { AnyStructure, BondPair } from './';
3
- export declare function compute_bond_transform(pos_1: Vec3, pos_2: Vec3): Float32Array;
4
- export declare const BONDING_STRATEGIES: {
5
- readonly electroneg_ratio: typeof electroneg_ratio;
6
- readonly solid_angle: typeof solid_angle;
7
- };
8
- export type BondingStrategy = keyof typeof BONDING_STRATEGIES;
9
- export type BondingAlgo = (typeof BONDING_STRATEGIES)[BondingStrategy];
10
- export declare function electroneg_ratio(structure: AnyStructure, { electronegativity_threshold, // Max electronegativity difference for bonding
11
- max_distance_ratio, // Max distance as multiple of sum of covalent radii
12
- min_bond_dist, // Minimum bond distance in Angstroms
13
- metal_metal_penalty, // Strength penalty for metal-metal bonds
14
- metal_nonmetal_bonus, // Strength bonus for metal-nonmetal bonds
15
- similar_electronegativity_bonus, // Bonus for similar electronegativity
16
- same_species_penalty, // Penalty for bonds between same element
17
- strength_threshold, }?: {
18
- electronegativity_threshold?: number | undefined;
19
- max_distance_ratio?: number | undefined;
20
- min_bond_dist?: number | undefined;
21
- metal_metal_penalty?: number | undefined;
22
- metal_nonmetal_bonus?: number | undefined;
23
- similar_electronegativity_bonus?: number | undefined;
24
- same_species_penalty?: number | undefined;
25
- strength_threshold?: number | undefined;
26
- }): BondPair[];
27
- export declare function solid_angle(structure: AnyStructure, { min_solid_angle, min_face_area, max_distance, min_bond_dist, strength_threshold, }?: {
28
- min_solid_angle?: number | undefined;
29
- min_face_area?: number | undefined;
30
- max_distance?: number | undefined;
31
- min_bond_dist?: number | undefined;
32
- strength_threshold?: number | undefined;
33
- }): BondPair[];
@@ -1,304 +0,0 @@
1
- // Bonding algorithms for structure visualization
2
- import { element_data } from '../element';
3
- import * as math from '../math';
4
- const element_lookup = new Map(element_data.map((el) => [el.symbol, el]));
5
- const covalent_radii = new Map(element_data
6
- .filter((el) => el.covalent_radius !== null)
7
- .map((el) => [el.symbol, el.covalent_radius]));
8
- // Get the species with highest occupancy from a site.
9
- const get_majority_species = (site) => (site.species ?? []).reduce((max_species, species) => (species.occu > max_species.occu ? species : max_species), site.species?.[0] ?? { element: ``, occu: -1 });
10
- // Helper to extract numeric index from site properties
11
- function get_orig_idx(site, fallback) {
12
- const props = site.properties;
13
- if (!props)
14
- return fallback;
15
- const raw = props.orig_unit_cell_idx ?? props.orig_site_idx;
16
- if (raw === undefined)
17
- return fallback;
18
- const num = Number(raw);
19
- return Number.isFinite(num) ? num : fallback;
20
- }
21
- // Compute 4x4 transformation matrix for bond cylinder between two positions.
22
- // Uses Y-up, right-handed coordinate system convention for Three.js compatibility.
23
- export function compute_bond_transform(pos_1, pos_2) {
24
- const [dx, dy, dz] = math.subtract(pos_2, pos_1);
25
- const height = Math.hypot(dx, dy, dz);
26
- if (height < 1e-10) {
27
- return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
28
- }
29
- const [dir_x, dir_y, dir_z] = [dx / height, dy / height, dz / height];
30
- let [m00, m01, m02, m10, m11, m12, m20, m21, m22] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
31
- // Special case: bond pointing straight up (+Y)
32
- if (Math.abs(dir_y - 1.0) < 1e-10) {
33
- ;
34
- [m00, m01, m02, m10, m11, m12, m20, m21, m22] = [1, 0, 0, 0, 1, 0, 0, 0, 1];
35
- }
36
- else if (Math.abs(dir_y + 1.0) < 1e-10) {
37
- // Special case: bond pointing straight down (-Y)
38
- ;
39
- [m00, m01, m02, m10, m11, m12, m20, m21, m22] = [1, 0, 0, 0, -1, 0, 0, 0, 1];
40
- }
41
- else {
42
- // General case: construct orthonormal basis (right, dir, up)
43
- // Right vector: perpendicular to dir in XZ plane
44
- const [rx, rz] = [-dir_z, dir_x];
45
- const r_len = Math.hypot(rx, rz);
46
- const [right_x, right_z] = [rx / r_len, rz / r_len];
47
- // Up vector: cross product of dir and right
48
- const [up_x, up_y, up_z] = [
49
- dir_y * right_z,
50
- dir_z * right_x - dir_x * right_z,
51
- -dir_y * right_x,
52
- ];
53
- [m00, m01, m02, m10, m11, m12, m20, m21, m22] = [
54
- right_x,
55
- dir_x,
56
- up_x,
57
- 0,
58
- dir_y,
59
- up_y,
60
- right_z,
61
- dir_z,
62
- up_z,
63
- ];
64
- }
65
- // Position at midpoint between the two atoms
66
- const [px, py, pz] = [
67
- (pos_1[0] + pos_2[0]) / 2,
68
- (pos_1[1] + pos_2[1]) / 2,
69
- (pos_1[2] + pos_2[2]) / 2,
70
- ];
71
- return new Float32Array([
72
- // Return flattened column-major 4x4 matrix for Three.js
73
- ...[m00, m10, m20, 0],
74
- ...[m01 * height, m11 * height, m21 * height, 0],
75
- ...[m02, m12, m22, 0],
76
- ...[px, py, pz, 1],
77
- ]);
78
- }
79
- // Build spatial grid by dividing 3D space into cubic cells.
80
- function build_spatial_grid(sites, cell_size) {
81
- const grid = new Map();
82
- for (let idx = 0; idx < sites.length; idx++) {
83
- const [x, y, z] = sites[idx].xyz.map((coord) => Math.floor(coord / cell_size));
84
- const key = `${x},${y},${z}`;
85
- const cell = grid.get(key);
86
- if (cell)
87
- cell.push(idx);
88
- else
89
- grid.set(key, [idx]);
90
- }
91
- return grid;
92
- }
93
- // Get all site indices in 3x3x3 cube of cells around position.
94
- function get_neighbors_from_grid(pos, grid, cell_size) {
95
- const [cx, cy, cz] = [
96
- Math.floor(pos[0] / cell_size),
97
- Math.floor(pos[1] / cell_size),
98
- Math.floor(pos[2] / cell_size),
99
- ];
100
- const neighbors = [];
101
- for (let dx = -1; dx <= 1; dx++) {
102
- for (let dy = -1; dy <= 1; dy++) {
103
- for (let dz = -1; dz <= 1; dz++) {
104
- const cell = grid.get(`${cx + dx},${cy + dy},${cz + dz}`);
105
- if (cell)
106
- neighbors.push(...cell);
107
- }
108
- }
109
- }
110
- return neighbors;
111
- }
112
- // Setup spatial decomposition for structures with >50 atoms.
113
- function setup_spatial_grid(sites, cutoff) {
114
- const use_grid = sites.length > 50;
115
- return use_grid ? { grid: build_spatial_grid(sites, cutoff), cell_size: cutoff } : null;
116
- }
117
- // Get candidate neighbor indices using spatial grid or all sites.
118
- const get_candidates = (pos, sites, spatial) => spatial
119
- ? get_neighbors_from_grid(pos, spatial.grid, spatial.cell_size)
120
- : Array.from({ length: sites.length }, (_, idx) => idx);
121
- export const BONDING_STRATEGIES = { electroneg_ratio, solid_angle };
122
- // Electronegativity-based bonding with chemical preferences.
123
- // This algorithm considers electronegativity differences between atoms, metal/nonmetal
124
- // properties, and distance to determine bond strength. Bonds are only created if the
125
- // computed strength exceeds the strength_threshold parameter (default: 0.3).
126
- export function electroneg_ratio(structure, { electronegativity_threshold = 1.7, // Max electronegativity difference for bonding
127
- max_distance_ratio = 2.0, // Max distance as multiple of sum of covalent radii
128
- min_bond_dist = 0.4, // Minimum bond distance in Angstroms
129
- metal_metal_penalty = 0.7, // Strength penalty for metal-metal bonds
130
- metal_nonmetal_bonus = 1.5, // Strength bonus for metal-nonmetal bonds
131
- similar_electronegativity_bonus = 1.2, // Bonus for similar electronegativity
132
- same_species_penalty = 0.5, // Penalty for bonds between same element
133
- strength_threshold = 0.3, // Minimum bond strength to include in results
134
- } = {}) {
135
- const { sites } = structure;
136
- if (sites.length < 2)
137
- return [];
138
- const bonds = [];
139
- const min_dist_sq = min_bond_dist ** 2;
140
- const closest = new Map();
141
- const props = sites.map((site) => {
142
- const majority = get_majority_species(site);
143
- const elem = majority.element;
144
- const data = element_lookup.get(elem);
145
- return {
146
- element: elem,
147
- electroneg: data?.electronegativity ?? 2.0,
148
- is_metal: data?.metal ?? false,
149
- is_nonmetal: data?.nonmetal ?? false,
150
- radius: elem ? covalent_radii.get(elem) : undefined,
151
- };
152
- });
153
- let max_radius = 0;
154
- for (const radius of covalent_radii.values()) {
155
- if (radius > max_radius)
156
- max_radius = radius;
157
- }
158
- const max_cutoff = max_radius * 2 * max_distance_ratio;
159
- const spatial = setup_spatial_grid(sites, max_cutoff);
160
- const potential_bonds = [];
161
- for (let idx_a = 0; idx_a < sites.length - 1; idx_a++) {
162
- const [x1, y1, z1] = sites[idx_a].xyz;
163
- const props_a = props[idx_a];
164
- for (const idx_b of get_candidates(sites[idx_a].xyz, sites, spatial)) {
165
- if (idx_b <= idx_a)
166
- continue;
167
- const [x2, y2, z2] = sites[idx_b].xyz;
168
- const props_b = props[idx_b];
169
- const [dx, dy, dz] = [x2 - x1, y2 - y1, z2 - z1];
170
- const dist_sq = dx * dx + dy * dy + dz * dz;
171
- const dist = Math.sqrt(dist_sq);
172
- if (dist_sq < min_dist_sq || !props_a.radius || !props_b.radius)
173
- continue;
174
- const expected = props_a.radius + props_b.radius;
175
- if (dist > expected * max_distance_ratio)
176
- continue;
177
- const electroneg_diff = Math.abs(props_a.electroneg - props_b.electroneg);
178
- const electroneg_ratio = electroneg_diff / (props_a.electroneg + props_b.electroneg);
179
- let bond_strength = 1.0;
180
- if (props_a.is_metal && props_b.is_metal) {
181
- bond_strength *= metal_metal_penalty;
182
- }
183
- else if ((props_a.is_metal && props_b.is_nonmetal) ||
184
- (props_a.is_nonmetal && props_b.is_metal)) {
185
- bond_strength *= metal_nonmetal_bonus;
186
- if (electroneg_diff > electronegativity_threshold)
187
- bond_strength *= 1.3;
188
- }
189
- else if (electroneg_diff < 0.5) {
190
- bond_strength *= similar_electronegativity_bonus;
191
- }
192
- const dist_weight = Math.exp(-((dist / expected - 1) ** 2) / 0.18);
193
- const electroneg_weight = 1.0 - 0.3 * electroneg_ratio;
194
- let strength = bond_strength * dist_weight * electroneg_weight;
195
- if (props_a.element === props_b.element)
196
- strength *= same_species_penalty;
197
- // If raw strength is already too low, we can skip early
198
- // (penalty will only reduce it further)
199
- if (strength <= strength_threshold)
200
- continue;
201
- // Use helper logic to handle both supercell and image atoms with robust normalization
202
- const orig_idx_a = get_orig_idx(sites[idx_a], idx_a);
203
- const orig_idx_b = get_orig_idx(sites[idx_b], idx_b);
204
- // Update closest known normalized distance (dist / expected) for original atoms
205
- // Normalized distance handles atoms of different sizes better than raw distance
206
- // (e.g. C-H is short but C-C is longer; we don't want C-H to penalize C-C just because H is small)
207
- const norm_dist = dist / expected;
208
- const closest_dist_a = closest.get(orig_idx_a) ?? Infinity;
209
- if (norm_dist < closest_dist_a)
210
- closest.set(orig_idx_a, norm_dist);
211
- const closest_dist_b = closest.get(orig_idx_b) ?? Infinity;
212
- if (norm_dist < closest_dist_b)
213
- closest.set(orig_idx_b, norm_dist);
214
- potential_bonds.push({
215
- site_idx_1: idx_a,
216
- site_idx_2: idx_b,
217
- dist,
218
- expected_dist: expected,
219
- base_strength: strength,
220
- orig_idx_a,
221
- orig_idx_b,
222
- });
223
- }
224
- }
225
- // Second pass: Apply penalties and filter
226
- for (const bond of potential_bonds) {
227
- const { site_idx_1, site_idx_2, dist, expected_dist, base_strength, orig_idx_a, orig_idx_b, } = bond;
228
- const closest_dist_a = closest.get(orig_idx_a) ?? Infinity;
229
- const closest_dist_b = closest.get(orig_idx_b) ?? Infinity;
230
- const norm_dist = dist / expected_dist;
231
- let strength = base_strength;
232
- // Apply penalty if this bond is much longer (relative to radii) than the closest known bond
233
- if (norm_dist > closest_dist_a) {
234
- strength *= Math.exp(-(norm_dist / closest_dist_a - 1) / 0.5);
235
- }
236
- if (orig_idx_b !== orig_idx_a && norm_dist > closest_dist_b) {
237
- strength *= Math.exp(-(norm_dist / closest_dist_b - 1) / 0.5);
238
- }
239
- if (strength > strength_threshold) {
240
- bonds.push({
241
- pos_1: sites[site_idx_1].xyz,
242
- pos_2: sites[site_idx_2].xyz,
243
- site_idx_1,
244
- site_idx_2,
245
- bond_length: dist,
246
- strength,
247
- transform_matrix: compute_bond_transform(sites[site_idx_1].xyz, sites[site_idx_2].xyz),
248
- });
249
- }
250
- }
251
- return bonds;
252
- }
253
- // Solid angle-based bonding using geometric proximity heuristics.
254
- // Inspired by Voronoi tessellation without having to actually compute Voronoi cells.
255
- // This algorithm computes bond strength based on the solid angle subtended by atoms
256
- // and their distance penalty. Bonds are only created if the computed strength exceeds
257
- // the strength_threshold parameter.
258
- export function solid_angle(structure, { min_solid_angle = 0.01, min_face_area = 0.05, max_distance = 5.0, min_bond_dist = 0.4, strength_threshold = 0.05, } = {}) {
259
- const { sites } = structure;
260
- if (sites.length < 2)
261
- return [];
262
- const bonds = [];
263
- const min_dist_sq = min_bond_dist ** 2;
264
- const max_dist_sq = max_distance ** 2;
265
- const spatial = setup_spatial_grid(sites, max_distance);
266
- for (let idx_a = 0; idx_a < sites.length - 1; idx_a++) {
267
- const [x1, y1, z1] = sites[idx_a].xyz;
268
- const majority_a = get_majority_species(sites[idx_a]);
269
- const radius_a = majority_a.element ? covalent_radii.get(majority_a.element) : undefined;
270
- for (const idx_b of get_candidates(sites[idx_a].xyz, sites, spatial)) {
271
- if (idx_b <= idx_a)
272
- continue;
273
- const [x2, y2, z2] = sites[idx_b].xyz;
274
- const majority_b = get_majority_species(sites[idx_b]);
275
- const radius_b = majority_b.element ? covalent_radii.get(majority_b.element) : undefined;
276
- const [dx, dy, dz] = [x2 - x1, y2 - y1, z2 - z1];
277
- const dist_sq = dx * dx + dy * dy + dz * dz;
278
- const dist = Math.sqrt(dist_sq);
279
- if (dist_sq < min_dist_sq || dist_sq > max_dist_sq || !radius_a || !radius_b) {
280
- continue;
281
- }
282
- const avg_radius = (radius_a + radius_b) / 2.0;
283
- const face_area = Math.PI * avg_radius * avg_radius;
284
- const solid_angle = face_area / dist_sq;
285
- if (solid_angle < min_solid_angle || face_area < min_face_area)
286
- continue;
287
- const dist_penalty = Math.exp(-((dist / (radius_a + radius_b) - 1) ** 2) / 0.4);
288
- const angle_strength = Math.min(solid_angle / (4.0 * Math.PI), 1.0);
289
- const strength = angle_strength * dist_penalty;
290
- if (strength > strength_threshold) {
291
- bonds.push({
292
- pos_1: sites[idx_a].xyz,
293
- pos_2: sites[idx_b].xyz,
294
- site_idx_1: idx_a,
295
- site_idx_2: idx_b,
296
- bond_length: dist,
297
- strength,
298
- transform_matrix: compute_bond_transform(sites[idx_a].xyz, sites[idx_b].xyz),
299
- });
300
- }
301
- }
302
- }
303
- return bonds;
304
- }