matterviz 0.3.5 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +13 -0
- package/.vscodeignore +7 -0
- package/dist/assets/STLExporter-BpTH3YHE.js +8 -0
- package/dist/assets/browser-DdDecX_W.js +1 -0
- package/dist/assets/export-qgn-H9y6.js +2 -0
- package/dist/assets/main-DiKYzti2.css +1 -0
- package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
- package/dist/extension.js +31293 -0
- package/dist/src/lib/FilePicker.svelte +360 -0
- package/dist/src/lib/MillerIndexInput.svelte +66 -0
- package/dist/src/lib/api/mp.ts +26 -0
- package/dist/src/lib/api/optimade.ts +204 -0
- package/dist/src/lib/brillouin/BrillouinZone.svelte +549 -0
- package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +144 -0
- package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +146 -0
- package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +146 -0
- package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +476 -0
- package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +92 -0
- package/dist/src/lib/brillouin/compute.ts +529 -0
- package/dist/src/lib/brillouin/index.ts +8 -0
- package/dist/src/lib/brillouin/types.ts +51 -0
- package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +327 -0
- package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
- package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
- package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +94 -0
- package/dist/src/lib/chempot-diagram/chempot-worker.ts +11 -0
- package/dist/src/lib/chempot-diagram/color.ts +42 -0
- package/dist/src/lib/chempot-diagram/compute.ts +1014 -0
- package/dist/src/lib/chempot-diagram/index.ts +6 -0
- package/dist/src/lib/chempot-diagram/pointer.ts +56 -0
- package/dist/src/lib/chempot-diagram/temperature.ts +77 -0
- package/dist/src/lib/chempot-diagram/types.ts +130 -0
- package/dist/src/lib/colors/index.ts +249 -0
- package/dist/src/lib/composition/BarChart.svelte +297 -0
- package/dist/src/lib/composition/BubbleChart.svelte +218 -0
- package/dist/src/lib/composition/Composition.svelte +165 -0
- package/dist/src/lib/composition/Formula.svelte +268 -0
- package/dist/src/lib/composition/FormulaFilter.svelte +1257 -0
- package/dist/src/lib/composition/PieChart.svelte +323 -0
- package/dist/src/lib/composition/format.ts +155 -0
- package/dist/src/lib/composition/index.ts +37 -0
- package/dist/src/lib/composition/parse.ts +605 -0
- package/dist/src/lib/constants.ts +134 -0
- package/dist/src/lib/controls.ts +42 -0
- package/dist/src/lib/convex-hull/ConvexHull.svelte +157 -0
- package/dist/src/lib/convex-hull/ConvexHull2D.svelte +825 -0
- package/dist/src/lib/convex-hull/ConvexHull3D.svelte +1801 -0
- package/dist/src/lib/convex-hull/ConvexHull4D.svelte +1398 -0
- package/dist/src/lib/convex-hull/ConvexHullControls.svelte +535 -0
- package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +125 -0
- package/dist/src/lib/convex-hull/ConvexHullStats.svelte +929 -0
- package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +131 -0
- package/dist/src/lib/convex-hull/GasPressureControls.svelte +247 -0
- package/dist/src/lib/convex-hull/StructurePopup.svelte +151 -0
- package/dist/src/lib/convex-hull/TemperatureSlider.svelte +140 -0
- package/dist/src/lib/convex-hull/barycentric-coords.ts +246 -0
- package/dist/src/lib/convex-hull/demo-temperature.ts +63 -0
- package/dist/src/lib/convex-hull/gas-thermodynamics.ts +405 -0
- package/dist/src/lib/convex-hull/helpers.ts +932 -0
- package/dist/src/lib/convex-hull/index.ts +202 -0
- package/dist/src/lib/convex-hull/thermodynamics.ts +2192 -0
- package/dist/src/lib/convex-hull/types.ts +267 -0
- package/dist/src/lib/coordination/CoordinationBarPlot.svelte +311 -0
- package/dist/src/lib/coordination/calc-coordination.ts +93 -0
- package/dist/src/lib/coordination/index.ts +9 -0
- package/dist/src/lib/effects.svelte.ts +48 -0
- package/dist/src/lib/element/BohrAtom.svelte +147 -0
- package/dist/src/lib/element/ElementHeading.svelte +26 -0
- package/dist/src/lib/element/ElementPhoto.svelte +57 -0
- package/dist/src/lib/element/ElementStats.svelte +80 -0
- package/dist/src/lib/element/ElementTile.svelte +484 -0
- package/dist/src/lib/element/data.json.gz.d.ts +4 -0
- package/dist/src/lib/element/data.ts +14 -0
- package/dist/src/lib/element/index.ts +8 -0
- package/dist/src/lib/element/types.ts +62 -0
- package/dist/src/lib/feedback/ClickFeedback.svelte +58 -0
- package/dist/src/lib/feedback/DragOverlay.svelte +42 -0
- package/dist/src/lib/feedback/index.ts +4 -0
- package/dist/src/lib/fermi-surface/FermiSlice.svelte +189 -0
- package/dist/src/lib/fermi-surface/FermiSurface.svelte +600 -0
- package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +448 -0
- package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +794 -0
- package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
- package/dist/src/lib/fermi-surface/compute.ts +728 -0
- package/dist/src/lib/fermi-surface/constants.ts +32 -0
- package/dist/src/lib/fermi-surface/export.ts +64 -0
- package/dist/src/lib/fermi-surface/index.ts +14 -0
- package/dist/src/lib/fermi-surface/marching-cubes.ts +3 -0
- package/dist/src/lib/fermi-surface/parse.ts +574 -0
- package/dist/src/lib/fermi-surface/symmetry.ts +56 -0
- package/dist/src/lib/fermi-surface/types.ts +159 -0
- package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
- package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
- package/dist/src/lib/heatmap-matrix/index.ts +167 -0
- package/dist/src/lib/heatmap-matrix/shared.ts +7 -0
- package/dist/src/lib/icons.ts +650 -0
- package/dist/src/lib/index.ts +61 -0
- package/dist/src/lib/io/decompress.ts +92 -0
- package/dist/src/lib/io/export.ts +385 -0
- package/dist/src/lib/io/fetch.ts +46 -0
- package/dist/src/lib/io/file-drop.ts +51 -0
- package/dist/src/lib/io/index.ts +7 -0
- package/dist/src/lib/io/is-binary.ts +24 -0
- package/dist/src/lib/io/types.ts +8 -0
- package/dist/src/lib/io/url-drop.ts +141 -0
- package/dist/src/lib/isosurface/Isosurface.svelte +285 -0
- package/dist/src/lib/isosurface/IsosurfaceControls.svelte +277 -0
- package/dist/src/lib/isosurface/index.ts +7 -0
- package/dist/src/lib/isosurface/parse.ts +656 -0
- package/dist/src/lib/isosurface/slice.ts +175 -0
- package/dist/src/lib/isosurface/types.ts +309 -0
- package/dist/src/lib/labels.ts +320 -0
- package/dist/src/lib/layout/FullscreenToggle.svelte +50 -0
- package/dist/src/lib/layout/InfoCard.svelte +120 -0
- package/dist/src/lib/layout/InfoTag.svelte +185 -0
- package/dist/src/lib/layout/PropertyFilter.svelte +246 -0
- package/dist/src/lib/layout/SettingsSection.svelte +148 -0
- package/dist/src/lib/layout/SubpageGrid.svelte +82 -0
- package/dist/src/lib/layout/fullscreen.ts +65 -0
- package/dist/src/lib/layout/index.ts +11 -0
- package/dist/src/lib/layout/json-tree/JsonNode.svelte +548 -0
- package/dist/src/lib/layout/json-tree/JsonTree.svelte +1230 -0
- package/dist/src/lib/layout/json-tree/JsonValue.svelte +334 -0
- package/dist/src/lib/layout/json-tree/index.ts +3 -0
- package/dist/src/lib/layout/json-tree/types.ts +126 -0
- package/dist/src/lib/layout/json-tree/utils.ts +682 -0
- package/dist/src/lib/marching-cubes.ts +614 -0
- package/dist/src/lib/math.ts +1081 -0
- package/dist/src/lib/overlays/ContextMenu.svelte +162 -0
- package/dist/src/lib/overlays/CopyButton.svelte +45 -0
- package/dist/src/lib/overlays/DragControlTab.svelte +98 -0
- package/dist/src/lib/overlays/DraggablePane.svelte +487 -0
- package/dist/src/lib/overlays/InfoPaneCards.svelte +149 -0
- package/dist/src/lib/overlays/index.ts +3 -0
- package/dist/src/lib/periodic-table/PeriodicTable.svelte +469 -0
- package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +557 -0
- package/dist/src/lib/periodic-table/PropertySelect.svelte +37 -0
- package/dist/src/lib/periodic-table/index.ts +12 -0
- package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
- package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +444 -0
- package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
- package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
- package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
- package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +203 -0
- package/dist/src/lib/phase-diagram/build-diagram.ts +186 -0
- package/dist/src/lib/phase-diagram/colors.ts +58 -0
- package/dist/src/lib/phase-diagram/diagram-input.ts +40 -0
- package/dist/src/lib/phase-diagram/index.ts +13 -0
- package/dist/src/lib/phase-diagram/parse.ts +348 -0
- package/dist/src/lib/phase-diagram/svg-to-diagram.ts +1023 -0
- package/dist/src/lib/phase-diagram/types.ts +144 -0
- package/dist/src/lib/phase-diagram/utils.ts +775 -0
- package/dist/src/lib/plot/AxisLabel.svelte +51 -0
- package/dist/src/lib/plot/BarPlot.svelte +2113 -0
- package/dist/src/lib/plot/BarPlotControls.svelte +66 -0
- package/dist/src/lib/plot/BinnedScatterPlot.svelte +1114 -0
- package/dist/src/lib/plot/ColorBar.svelte +721 -0
- package/dist/src/lib/plot/ColorScaleSelect.svelte +54 -0
- package/dist/src/lib/plot/ElementScatter.svelte +63 -0
- package/dist/src/lib/plot/FillArea.svelte +223 -0
- package/dist/src/lib/plot/Histogram.svelte +1558 -0
- package/dist/src/lib/plot/HistogramControls.svelte +212 -0
- package/dist/src/lib/plot/InteractiveAxisLabel.svelte +96 -0
- package/dist/src/lib/plot/Line.svelte +84 -0
- package/dist/src/lib/plot/PlotAxis.svelte +169 -0
- package/dist/src/lib/plot/PlotControls.svelte +537 -0
- package/dist/src/lib/plot/PlotLegend.svelte +569 -0
- package/dist/src/lib/plot/PlotTooltip.svelte +67 -0
- package/dist/src/lib/plot/PortalSelect.svelte +253 -0
- package/dist/src/lib/plot/ReferenceLine3D.svelte +156 -0
- package/dist/src/lib/plot/ReferencePlane.svelte +175 -0
- package/dist/src/lib/plot/ScatterPlot.svelte +2778 -0
- package/dist/src/lib/plot/ScatterPlot3D.svelte +529 -0
- package/dist/src/lib/plot/ScatterPlot3DControls.svelte +437 -0
- package/dist/src/lib/plot/ScatterPlot3DScene.svelte +912 -0
- package/dist/src/lib/plot/ScatterPlotControls.svelte +306 -0
- package/dist/src/lib/plot/ScatterPoint.svelte +182 -0
- package/dist/src/lib/plot/SpacegroupBarPlot.svelte +293 -0
- package/dist/src/lib/plot/Surface3D.svelte +197 -0
- package/dist/src/lib/plot/ZeroLines.svelte +97 -0
- package/dist/src/lib/plot/ZoomRect.svelte +23 -0
- package/dist/src/lib/plot/adaptive-density.ts +316 -0
- package/dist/src/lib/plot/auto-place.ts +184 -0
- package/dist/src/lib/plot/axis-utils.ts +122 -0
- package/dist/src/lib/plot/binned-scatter-types.ts +83 -0
- package/dist/src/lib/plot/data-cleaning.ts +1069 -0
- package/dist/src/lib/plot/data-transform.ts +69 -0
- package/dist/src/lib/plot/defaults.ts +9 -0
- package/dist/src/lib/plot/fill-utils.ts +494 -0
- package/dist/src/lib/plot/hover-lock.svelte.ts +60 -0
- package/dist/src/lib/plot/index.ts +53 -0
- package/dist/src/lib/plot/interactions.ts +119 -0
- package/dist/src/lib/plot/layout.ts +425 -0
- package/dist/src/lib/plot/reference-line.ts +426 -0
- package/dist/src/lib/plot/scales.ts +654 -0
- package/dist/src/lib/plot/svg.ts +23 -0
- package/dist/src/lib/plot/types.ts +1144 -0
- package/dist/src/lib/plot/utils/label-placement.ts +541 -0
- package/dist/src/lib/plot/utils/series-visibility.ts +140 -0
- package/dist/src/lib/plot/utils.ts +11 -0
- package/dist/src/lib/rdf/RdfPlot.svelte +247 -0
- package/dist/src/lib/rdf/calc-rdf.ts +167 -0
- package/dist/src/lib/rdf/index.ts +27 -0
- package/dist/src/lib/sanitize.ts +126 -0
- package/dist/src/lib/settings.ts +1479 -0
- package/dist/src/lib/spectral/Bands.svelte +1040 -0
- package/dist/src/lib/spectral/BandsAndDos.svelte +134 -0
- package/dist/src/lib/spectral/BrillouinBandsDos.svelte +252 -0
- package/dist/src/lib/spectral/Dos.svelte +697 -0
- package/dist/src/lib/spectral/helpers.ts +1381 -0
- package/dist/src/lib/spectral/index.ts +8 -0
- package/dist/src/lib/spectral/types.ts +112 -0
- package/dist/src/lib/state.svelte.ts +64 -0
- package/dist/src/lib/structure/Arrow.svelte +72 -0
- package/dist/src/lib/structure/AtomLegend.svelte +815 -0
- package/dist/src/lib/structure/Bond.svelte +140 -0
- package/dist/src/lib/structure/CanvasTooltip.svelte +33 -0
- package/dist/src/lib/structure/CellSelect.svelte +349 -0
- package/dist/src/lib/structure/Cylinder.svelte +45 -0
- package/dist/src/lib/structure/Lattice.svelte +196 -0
- package/dist/src/lib/structure/Structure.svelte +2248 -0
- package/dist/src/lib/structure/StructureControls.svelte +1273 -0
- package/dist/src/lib/structure/StructureExportPane.svelte +252 -0
- package/dist/src/lib/structure/StructureInfoPane.svelte +737 -0
- package/dist/src/lib/structure/StructureScene.svelte +2255 -0
- package/dist/src/lib/structure/atom-properties.ts +316 -0
- package/dist/src/lib/structure/bond-order-perception.ts +447 -0
- package/dist/src/lib/structure/bonding.ts +944 -0
- package/dist/src/lib/structure/export.ts +861 -0
- package/dist/src/lib/structure/index.ts +291 -0
- package/dist/src/lib/structure/label-placement.ts +130 -0
- package/dist/src/lib/structure/measure.ts +45 -0
- package/dist/src/lib/structure/parse.ts +1705 -0
- package/dist/src/lib/structure/partial-occupancy.ts +183 -0
- package/dist/src/lib/structure/pbc.ts +164 -0
- package/dist/src/lib/structure/supercell.ts +226 -0
- package/dist/src/lib/structure/validation.ts +11 -0
- package/dist/src/lib/symmetry/SymmetryStats.svelte +226 -0
- package/dist/src/lib/symmetry/WyckoffTable.svelte +120 -0
- package/dist/src/lib/symmetry/cell-transform.ts +118 -0
- package/dist/src/lib/symmetry/index.ts +348 -0
- package/dist/src/lib/symmetry/spacegroups.ts +404 -0
- package/dist/src/lib/table/HeatmapTable.svelte +1833 -0
- package/dist/src/lib/table/ToggleMenu.svelte +385 -0
- package/dist/src/lib/table/index.ts +139 -0
- package/dist/src/lib/theme/ThemeControl.svelte +53 -0
- package/dist/src/lib/theme/index.ts +107 -0
- package/dist/src/lib/theme/themes.mjs +297 -0
- package/dist/src/lib/time.ts +71 -0
- package/dist/src/lib/tooltip/TooltipContent.svelte +58 -0
- package/dist/src/lib/tooltip/index.ts +2 -0
- package/dist/src/lib/tooltip/types.ts +13 -0
- package/dist/src/lib/trajectory/Trajectory.svelte +1545 -0
- package/dist/src/lib/trajectory/TrajectoryError.svelte +128 -0
- package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +357 -0
- package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +313 -0
- package/dist/src/lib/trajectory/constants.ts +7 -0
- package/dist/src/lib/trajectory/extract.ts +196 -0
- package/dist/src/lib/trajectory/format-detect.ts +96 -0
- package/dist/src/lib/trajectory/frame-reader.ts +456 -0
- package/dist/src/lib/trajectory/helpers.ts +217 -0
- package/dist/src/lib/trajectory/index.ts +218 -0
- package/dist/src/lib/trajectory/parse/ase.ts +109 -0
- package/dist/src/lib/trajectory/parse/hdf5.ts +173 -0
- package/dist/src/lib/trajectory/parse/index.ts +411 -0
- package/dist/src/lib/trajectory/parse/lammps.ts +215 -0
- package/dist/src/lib/trajectory/parse/vasp.ts +102 -0
- package/dist/src/lib/trajectory/parse/xyz.ts +143 -0
- package/dist/src/lib/trajectory/plotting.ts +599 -0
- package/dist/src/lib/trajectory/types.ts +13 -0
- package/dist/src/lib/utils.ts +56 -0
- package/dist/src/lib/xrd/XrdPlot.svelte +615 -0
- package/dist/src/lib/xrd/broadening.ts +130 -0
- package/dist/src/lib/xrd/calc-xrd.ts +397 -0
- package/dist/src/lib/xrd/index.ts +38 -0
- package/dist/src/lib/xrd/parse.ts +858 -0
- package/dist/webview.js +29421 -0
- package/icon.png +0 -0
- package/license +1 -1
- package/matterviz-0.3.2.vsix +0 -0
- package/matterviz-0.3.4.vsix +0 -0
- package/matterviz-0.3.5.vsix +0 -0
- package/package.json +1460 -215
- package/readme.md +171 -98
- package/scripts/sync-config.ts +101 -0
- package/src/declarations.d.ts +2 -0
- package/src/extension.ts +972 -0
- package/src/node-io.ts +65 -0
- package/src/types.ts +17 -0
- package/src/webview/JsonBrowser.svelte +1079 -0
- package/src/webview/PlotPanel.svelte +346 -0
- package/src/webview/detect.ts +444 -0
- package/src/webview/main.ts +764 -0
- package/src/webview/plot-utils.ts +250 -0
- package/test-fixtures/all-viz-types.json.gz +0 -0
- package/test-fixtures/plot-demo-data.json.gz +0 -0
- package/tests/detect.test.ts +604 -0
- package/tests/extension.test.ts +2041 -0
- package/tests/node-io.test.ts +39 -0
- package/tests/plot-utils.test.ts +302 -0
- package/tests/vite-plugin-json-gz.test.ts +114 -0
- package/tests/vscode-mock.ts +18 -0
- package/tests/webview.test.ts +231 -0
- package/tsconfig.json +20 -0
- package/vite-plugin-json-gz.ts +29 -0
- package/vite.config.ts +34 -0
- package/vite.extension.config.ts +34 -0
- package/dist/EmptyState.svelte.d.ts +0 -9
- package/dist/FilePicker.svelte +0 -360
- package/dist/FilePicker.svelte.d.ts +0 -17
- package/dist/Icon.svelte.d.ts +0 -13
- package/dist/MillerIndexInput.svelte +0 -66
- package/dist/MillerIndexInput.svelte.d.ts +0 -7
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/api/optimade.d.ts +0 -45
- package/dist/api/optimade.js +0 -135
- package/dist/brillouin/BrillouinZone.svelte +0 -546
- package/dist/brillouin/BrillouinZone.svelte.d.ts +0 -83
- package/dist/brillouin/BrillouinZoneControls.svelte +0 -144
- package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +0 -17
- package/dist/brillouin/BrillouinZoneExportPane.svelte +0 -148
- package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +0 -15
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +0 -146
- package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +0 -13
- package/dist/brillouin/BrillouinZoneScene.svelte +0 -476
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +0 -48
- package/dist/brillouin/BrillouinZoneTooltip.svelte +0 -92
- package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +0 -8
- package/dist/brillouin/compute.d.ts +0 -17
- package/dist/brillouin/compute.js +0 -426
- package/dist/brillouin/index.d.ts +0 -8
- package/dist/brillouin/index.js +0 -8
- package/dist/brillouin/types.d.ts +0 -48
- package/dist/brillouin/types.js +0 -1
- package/dist/chempot-diagram/ChemPotDiagram.svelte +0 -327
- package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +0 -13
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +0 -847
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +0 -16
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +0 -3194
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +0 -16
- package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +0 -7
- package/dist/chempot-diagram/async-compute.svelte.d.ts +0 -3
- package/dist/chempot-diagram/async-compute.svelte.js +0 -78
- package/dist/chempot-diagram/chempot-worker.d.ts +0 -1
- package/dist/chempot-diagram/chempot-worker.js +0 -11
- package/dist/chempot-diagram/color.d.ts +0 -10
- package/dist/chempot-diagram/color.js +0 -32
- package/dist/chempot-diagram/compute.d.ts +0 -48
- package/dist/chempot-diagram/compute.js +0 -812
- package/dist/chempot-diagram/index.d.ts +0 -6
- package/dist/chempot-diagram/index.js +0 -6
- package/dist/chempot-diagram/pointer.d.ts +0 -16
- package/dist/chempot-diagram/pointer.js +0 -40
- package/dist/chempot-diagram/temperature.d.ts +0 -15
- package/dist/chempot-diagram/temperature.js +0 -36
- package/dist/chempot-diagram/types.d.ts +0 -86
- package/dist/chempot-diagram/types.js +0 -28
- package/dist/colors/index.d.ts +0 -47
- package/dist/colors/index.js +0 -203
- package/dist/composition/BarChart.svelte +0 -297
- package/dist/composition/BarChart.svelte.d.ts +0 -39
- package/dist/composition/BubbleChart.svelte +0 -218
- package/dist/composition/BubbleChart.svelte.d.ts +0 -28
- package/dist/composition/Composition.svelte +0 -164
- package/dist/composition/Composition.svelte.d.ts +0 -15
- package/dist/composition/Formula.svelte +0 -265
- package/dist/composition/Formula.svelte.d.ts +0 -19
- package/dist/composition/FormulaFilter.svelte +0 -1259
- package/dist/composition/FormulaFilter.svelte.d.ts +0 -51
- package/dist/composition/PieChart.svelte +0 -323
- package/dist/composition/PieChart.svelte.d.ts +0 -37
- package/dist/composition/format.d.ts +0 -15
- package/dist/composition/format.js +0 -109
- package/dist/composition/index.d.ts +0 -20
- package/dist/composition/index.js +0 -14
- package/dist/composition/parse.d.ts +0 -55
- package/dist/composition/parse.js +0 -459
- package/dist/constants.d.ts +0 -29
- package/dist/constants.js +0 -99
- package/dist/controls.d.ts +0 -14
- package/dist/controls.js +0 -30
- package/dist/convex-hull/ConvexHull.svelte +0 -157
- package/dist/convex-hull/ConvexHull.svelte.d.ts +0 -13
- package/dist/convex-hull/ConvexHull2D.svelte +0 -814
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +0 -11
- package/dist/convex-hull/ConvexHull3D.svelte +0 -1790
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +0 -8
- package/dist/convex-hull/ConvexHull4D.svelte +0 -1386
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +0 -8
- package/dist/convex-hull/ConvexHullControls.svelte +0 -546
- package/dist/convex-hull/ConvexHullControls.svelte.d.ts +0 -48
- package/dist/convex-hull/ConvexHullInfoPane.svelte +0 -122
- package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +0 -18
- package/dist/convex-hull/ConvexHullStats.svelte +0 -922
- package/dist/convex-hull/ConvexHullStats.svelte.d.ts +0 -15
- package/dist/convex-hull/ConvexHullTooltip.svelte +0 -131
- package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +0 -33
- package/dist/convex-hull/GasPressureControls.svelte +0 -247
- package/dist/convex-hull/GasPressureControls.svelte.d.ts +0 -11
- package/dist/convex-hull/StructurePopup.svelte +0 -116
- package/dist/convex-hull/StructurePopup.svelte.d.ts +0 -18
- package/dist/convex-hull/TemperatureSlider.svelte +0 -137
- package/dist/convex-hull/TemperatureSlider.svelte.d.ts +0 -8
- package/dist/convex-hull/barycentric-coords.d.ts +0 -18
- package/dist/convex-hull/barycentric-coords.js +0 -182
- package/dist/convex-hull/demo-temperature.d.ts +0 -6
- package/dist/convex-hull/demo-temperature.js +0 -40
- package/dist/convex-hull/gas-thermodynamics.d.ts +0 -16
- package/dist/convex-hull/gas-thermodynamics.js +0 -316
- package/dist/convex-hull/helpers.d.ts +0 -103
- package/dist/convex-hull/helpers.js +0 -689
- package/dist/convex-hull/index.d.ts +0 -118
- package/dist/convex-hull/index.js +0 -57
- package/dist/convex-hull/thermodynamics.d.ts +0 -66
- package/dist/convex-hull/thermodynamics.js +0 -1752
- package/dist/convex-hull/types.d.ts +0 -162
- package/dist/convex-hull/types.js +0 -36
- package/dist/coordination/CoordinationBarPlot.svelte +0 -311
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +0 -30
- package/dist/coordination/calc-coordination.d.ts +0 -15
- package/dist/coordination/calc-coordination.js +0 -63
- package/dist/coordination/index.d.ts +0 -8
- package/dist/coordination/index.js +0 -7
- package/dist/element/BohrAtom.svelte +0 -147
- package/dist/element/BohrAtom.svelte.d.ts +0 -20
- package/dist/element/ElementHeading.svelte +0 -26
- package/dist/element/ElementHeading.svelte.d.ts +0 -8
- package/dist/element/ElementPhoto.svelte +0 -57
- package/dist/element/ElementPhoto.svelte.d.ts +0 -9
- package/dist/element/ElementStats.svelte +0 -80
- package/dist/element/ElementStats.svelte.d.ts +0 -8
- package/dist/element/ElementTile.svelte +0 -484
- package/dist/element/ElementTile.svelte.d.ts +0 -29
- package/dist/element/Nucleus.svelte.d.ts +0 -17
- package/dist/element/data.d.ts +0 -2
- package/dist/element/data.js +0 -2
- package/dist/element/data.json.gz.d.ts +0 -2
- package/dist/element/index.d.ts +0 -8
- package/dist/element/index.js +0 -8
- package/dist/element/types.d.ts +0 -57
- package/dist/element/types.js +0 -1
- package/dist/feedback/ClickFeedback.svelte +0 -58
- package/dist/feedback/ClickFeedback.svelte.d.ts +0 -12
- package/dist/feedback/DragOverlay.svelte +0 -42
- package/dist/feedback/DragOverlay.svelte.d.ts +0 -7
- package/dist/feedback/Spinner.svelte.d.ts +0 -7
- package/dist/feedback/StatusMessage.svelte.d.ts +0 -9
- package/dist/feedback/index.d.ts +0 -4
- package/dist/feedback/index.js +0 -4
- package/dist/fermi-surface/FermiSlice.svelte +0 -189
- package/dist/fermi-surface/FermiSlice.svelte.d.ts +0 -24
- package/dist/fermi-surface/FermiSurface.svelte +0 -600
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +0 -83
- package/dist/fermi-surface/FermiSurfaceControls.svelte +0 -452
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +0 -35
- package/dist/fermi-surface/FermiSurfaceScene.svelte +0 -792
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +0 -50
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +0 -8
- package/dist/fermi-surface/compute.d.ts +0 -5
- package/dist/fermi-surface/compute.js +0 -538
- package/dist/fermi-surface/constants.d.ts +0 -9
- package/dist/fermi-surface/constants.js +0 -27
- package/dist/fermi-surface/export.d.ts +0 -5
- package/dist/fermi-surface/export.js +0 -63
- package/dist/fermi-surface/index.d.ts +0 -12
- package/dist/fermi-surface/index.js +0 -13
- package/dist/fermi-surface/marching-cubes.d.ts +0 -2
- package/dist/fermi-surface/marching-cubes.js +0 -2
- package/dist/fermi-surface/parse.d.ts +0 -2
- package/dist/fermi-surface/parse.js +0 -495
- package/dist/fermi-surface/symmetry.d.ts +0 -3
- package/dist/fermi-surface/symmetry.js +0 -46
- package/dist/fermi-surface/types.d.ts +0 -113
- package/dist/fermi-surface/types.js +0 -4
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +0 -1527
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +0 -110
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +0 -30
- package/dist/heatmap-matrix/index.d.ts +0 -53
- package/dist/heatmap-matrix/index.js +0 -100
- package/dist/heatmap-matrix/shared.d.ts +0 -2
- package/dist/heatmap-matrix/shared.js +0 -4
- package/dist/icons.d.ts +0 -569
- package/dist/icons.js +0 -648
- package/dist/index.d.ts +0 -39
- package/dist/index.js +0 -39
- package/dist/io/decompress.d.ts +0 -10
- package/dist/io/decompress.js +0 -74
- package/dist/io/export.d.ts +0 -16
- package/dist/io/export.js +0 -316
- package/dist/io/fetch.d.ts +0 -5
- package/dist/io/fetch.js +0 -39
- package/dist/io/file-drop.d.ts +0 -7
- package/dist/io/file-drop.js +0 -43
- package/dist/io/index.d.ts +0 -7
- package/dist/io/index.js +0 -7
- package/dist/io/is-binary.d.ts +0 -1
- package/dist/io/is-binary.js +0 -20
- package/dist/io/types.d.ts +0 -8
- package/dist/io/types.js +0 -1
- package/dist/io/url-drop.d.ts +0 -2
- package/dist/io/url-drop.js +0 -117
- package/dist/isosurface/Isosurface.svelte +0 -285
- package/dist/isosurface/Isosurface.svelte.d.ts +0 -8
- package/dist/isosurface/IsosurfaceControls.svelte +0 -291
- package/dist/isosurface/IsosurfaceControls.svelte.d.ts +0 -9
- package/dist/isosurface/index.d.ts +0 -5
- package/dist/isosurface/index.js +0 -6
- package/dist/isosurface/parse.d.ts +0 -6
- package/dist/isosurface/parse.js +0 -553
- package/dist/isosurface/slice.d.ts +0 -11
- package/dist/isosurface/slice.js +0 -140
- package/dist/isosurface/types.d.ts +0 -56
- package/dist/isosurface/types.js +0 -227
- package/dist/labels.d.ts +0 -53
- package/dist/labels.js +0 -274
- package/dist/layout/FullscreenToggle.svelte +0 -50
- package/dist/layout/FullscreenToggle.svelte.d.ts +0 -7
- package/dist/layout/InfoCard.svelte +0 -120
- package/dist/layout/InfoCard.svelte.d.ts +0 -21
- package/dist/layout/InfoTag.svelte +0 -183
- package/dist/layout/InfoTag.svelte.d.ts +0 -19
- package/dist/layout/PropertyFilter.svelte +0 -244
- package/dist/layout/PropertyFilter.svelte.d.ts +0 -24
- package/dist/layout/SettingsSection.svelte +0 -148
- package/dist/layout/SettingsSection.svelte.d.ts +0 -17
- package/dist/layout/SubpageGrid.svelte +0 -82
- package/dist/layout/SubpageGrid.svelte.d.ts +0 -14
- package/dist/layout/fullscreen.d.ts +0 -9
- package/dist/layout/fullscreen.js +0 -53
- package/dist/layout/index.d.ts +0 -10
- package/dist/layout/index.js +0 -8
- package/dist/layout/json-tree/JsonNode.svelte +0 -548
- package/dist/layout/json-tree/JsonNode.svelte.d.ts +0 -11
- package/dist/layout/json-tree/JsonTree.svelte +0 -1222
- package/dist/layout/json-tree/JsonTree.svelte.d.ts +0 -6
- package/dist/layout/json-tree/JsonValue.svelte +0 -334
- package/dist/layout/json-tree/JsonValue.svelte.d.ts +0 -9
- package/dist/layout/json-tree/index.d.ts +0 -3
- package/dist/layout/json-tree/index.js +0 -3
- package/dist/layout/json-tree/types.d.ts +0 -73
- package/dist/layout/json-tree/types.js +0 -3
- package/dist/layout/json-tree/utils.d.ts +0 -29
- package/dist/layout/json-tree/utils.js +0 -649
- package/dist/marching-cubes.d.ts +0 -14
- package/dist/marching-cubes.js +0 -542
- package/dist/math.d.ts +0 -91
- package/dist/math.js +0 -896
- package/dist/overlays/ContextMenu.svelte +0 -162
- package/dist/overlays/ContextMenu.svelte.d.ts +0 -25
- package/dist/overlays/CopyButton.svelte +0 -45
- package/dist/overlays/CopyButton.svelte.d.ts +0 -8
- package/dist/overlays/DraggablePane.svelte +0 -564
- package/dist/overlays/DraggablePane.svelte.d.ts +0 -36
- package/dist/overlays/InfoPaneCards.svelte +0 -149
- package/dist/overlays/InfoPaneCards.svelte.d.ts +0 -22
- package/dist/overlays/index.d.ts +0 -2
- package/dist/overlays/index.js +0 -2
- package/dist/periodic-table/PeriodicTable.svelte +0 -469
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +0 -55
- package/dist/periodic-table/PeriodicTableControls.svelte +0 -557
- package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +0 -24
- package/dist/periodic-table/PropertySelect.svelte +0 -37
- package/dist/periodic-table/PropertySelect.svelte.d.ts +0 -13
- package/dist/periodic-table/TableInset.svelte.d.ts +0 -9
- package/dist/periodic-table/index.d.ts +0 -10
- package/dist/periodic-table/index.js +0 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1084
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +0 -44
- package/dist/phase-diagram/PhaseDiagramControls.svelte +0 -449
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +0 -30
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +0 -15
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +0 -192
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +0 -19
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +0 -392
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +0 -16
- package/dist/phase-diagram/TdbInfoPanel.svelte +0 -203
- package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +0 -12
- package/dist/phase-diagram/build-diagram.d.ts +0 -11
- package/dist/phase-diagram/build-diagram.js +0 -167
- package/dist/phase-diagram/colors.d.ts +0 -35
- package/dist/phase-diagram/colors.js +0 -51
- package/dist/phase-diagram/diagram-input.d.ts +0 -33
- package/dist/phase-diagram/diagram-input.js +0 -3
- package/dist/phase-diagram/index.d.ts +0 -13
- package/dist/phase-diagram/index.js +0 -13
- package/dist/phase-diagram/parse.d.ts +0 -55
- package/dist/phase-diagram/parse.js +0 -276
- package/dist/phase-diagram/svg-to-diagram.d.ts +0 -2
- package/dist/phase-diagram/svg-to-diagram.js +0 -867
- package/dist/phase-diagram/types.d.ts +0 -99
- package/dist/phase-diagram/types.js +0 -1
- package/dist/phase-diagram/utils.d.ts +0 -118
- package/dist/phase-diagram/utils.js +0 -606
- package/dist/plot/AxisLabel.svelte +0 -51
- package/dist/plot/AxisLabel.svelte.d.ts +0 -16
- package/dist/plot/BarPlot.svelte +0 -2265
- package/dist/plot/BarPlot.svelte.d.ts +0 -83
- package/dist/plot/BarPlotControls.svelte +0 -66
- package/dist/plot/BarPlotControls.svelte.d.ts +0 -18
- package/dist/plot/ColorBar.svelte +0 -719
- package/dist/plot/ColorBar.svelte.d.ts +0 -31
- package/dist/plot/ColorScaleSelect.svelte +0 -54
- package/dist/plot/ColorScaleSelect.svelte.d.ts +0 -15
- package/dist/plot/ElementScatter.svelte +0 -63
- package/dist/plot/ElementScatter.svelte.d.ts +0 -14
- package/dist/plot/FillArea.svelte +0 -225
- package/dist/plot/FillArea.svelte.d.ts +0 -21
- package/dist/plot/Histogram.svelte +0 -1672
- package/dist/plot/Histogram.svelte.d.ts +0 -50
- package/dist/plot/HistogramControls.svelte +0 -212
- package/dist/plot/HistogramControls.svelte.d.ts +0 -22
- package/dist/plot/InteractiveAxisLabel.svelte +0 -94
- package/dist/plot/InteractiveAxisLabel.svelte.d.ts +0 -14
- package/dist/plot/Line.svelte +0 -84
- package/dist/plot/Line.svelte.d.ts +0 -15
- package/dist/plot/PlotControls.svelte +0 -537
- package/dist/plot/PlotControls.svelte.d.ts +0 -4
- package/dist/plot/PlotLegend.svelte +0 -569
- package/dist/plot/PlotLegend.svelte.d.ts +0 -29
- package/dist/plot/PlotTooltip.svelte +0 -67
- package/dist/plot/PlotTooltip.svelte.d.ts +0 -17
- package/dist/plot/PortalSelect.svelte +0 -253
- package/dist/plot/PortalSelect.svelte.d.ts +0 -16
- package/dist/plot/ReferenceLine.svelte.d.ts +0 -20
- package/dist/plot/ReferenceLine3D.svelte +0 -154
- package/dist/plot/ReferenceLine3D.svelte.d.ts +0 -14
- package/dist/plot/ReferencePlane.svelte +0 -178
- package/dist/plot/ReferencePlane.svelte.d.ts +0 -14
- package/dist/plot/ScatterPlot.svelte +0 -2845
- package/dist/plot/ScatterPlot.svelte.d.ts +0 -93
- package/dist/plot/ScatterPlot3D.svelte +0 -502
- package/dist/plot/ScatterPlot3D.svelte.d.ts +0 -94
- package/dist/plot/ScatterPlot3DControls.svelte +0 -437
- package/dist/plot/ScatterPlot3DControls.svelte.d.ts +0 -20
- package/dist/plot/ScatterPlot3DScene.svelte +0 -912
- package/dist/plot/ScatterPlot3DScene.svelte.d.ts +0 -74
- package/dist/plot/ScatterPlotControls.svelte +0 -307
- package/dist/plot/ScatterPlotControls.svelte.d.ts +0 -17
- package/dist/plot/ScatterPoint.svelte +0 -191
- package/dist/plot/ScatterPoint.svelte.d.ts +0 -21
- package/dist/plot/SpacegroupBarPlot.svelte +0 -293
- package/dist/plot/SpacegroupBarPlot.svelte.d.ts +0 -9
- package/dist/plot/Surface3D.svelte +0 -200
- package/dist/plot/Surface3D.svelte.d.ts +0 -13
- package/dist/plot/ZeroLines.svelte +0 -96
- package/dist/plot/ZeroLines.svelte.d.ts +0 -32
- package/dist/plot/ZoomRect.svelte +0 -23
- package/dist/plot/ZoomRect.svelte.d.ts +0 -8
- package/dist/plot/axis-utils.d.ts +0 -19
- package/dist/plot/axis-utils.js +0 -80
- package/dist/plot/data-cleaning.d.ts +0 -37
- package/dist/plot/data-cleaning.js +0 -855
- package/dist/plot/data-transform.d.ts +0 -16
- package/dist/plot/data-transform.js +0 -45
- package/dist/plot/defaults.d.ts +0 -19
- package/dist/plot/defaults.js +0 -9
- package/dist/plot/fill-utils.d.ts +0 -51
- package/dist/plot/fill-utils.js +0 -337
- package/dist/plot/hover-lock.svelte.d.ts +0 -14
- package/dist/plot/hover-lock.svelte.js +0 -46
- package/dist/plot/index.d.ts +0 -37
- package/dist/plot/index.js +0 -37
- package/dist/plot/interactions.d.ts +0 -12
- package/dist/plot/interactions.js +0 -100
- package/dist/plot/layout.d.ts +0 -60
- package/dist/plot/layout.js +0 -230
- package/dist/plot/reference-line.d.ts +0 -60
- package/dist/plot/reference-line.js +0 -316
- package/dist/plot/scales.d.ts +0 -48
- package/dist/plot/scales.js +0 -484
- package/dist/plot/svg.d.ts +0 -1
- package/dist/plot/svg.js +0 -11
- package/dist/plot/types.d.ts +0 -859
- package/dist/plot/types.js +0 -103
- package/dist/plot/utils/label-placement.d.ts +0 -47
- package/dist/plot/utils/label-placement.js +0 -256
- package/dist/plot/utils/series-visibility.d.ts +0 -9
- package/dist/plot/utils/series-visibility.js +0 -67
- package/dist/plot/utils.d.ts +0 -1
- package/dist/plot/utils.js +0 -14
- package/dist/rdf/RdfPlot.svelte +0 -247
- package/dist/rdf/RdfPlot.svelte.d.ts +0 -27
- package/dist/rdf/calc-rdf.d.ts +0 -4
- package/dist/rdf/calc-rdf.js +0 -111
- package/dist/rdf/index.d.ts +0 -23
- package/dist/rdf/index.js +0 -2
- package/dist/sanitize.d.ts +0 -4
- package/dist/sanitize.js +0 -114
- package/dist/settings.d.ts +0 -255
- package/dist/settings.js +0 -1132
- package/dist/spectral/Bands.svelte +0 -1040
- package/dist/spectral/Bands.svelte.d.ts +0 -40
- package/dist/spectral/BandsAndDos.svelte +0 -128
- package/dist/spectral/BandsAndDos.svelte.d.ts +0 -18
- package/dist/spectral/BrillouinBandsDos.svelte +0 -248
- package/dist/spectral/BrillouinBandsDos.svelte.d.ts +0 -20
- package/dist/spectral/Dos.svelte +0 -697
- package/dist/spectral/Dos.svelte.d.ts +0 -29
- package/dist/spectral/helpers.d.ts +0 -117
- package/dist/spectral/helpers.js +0 -1023
- package/dist/spectral/index.d.ts +0 -6
- package/dist/spectral/index.js +0 -7
- package/dist/spectral/types.d.ts +0 -84
- package/dist/spectral/types.js +0 -2
- package/dist/state.svelte.d.ts +0 -25
- package/dist/state.svelte.js +0 -45
- package/dist/structure/Arrow.svelte +0 -72
- package/dist/structure/Arrow.svelte.d.ts +0 -15
- package/dist/structure/AtomLegend.svelte +0 -798
- package/dist/structure/AtomLegend.svelte.d.ts +0 -34
- package/dist/structure/Bond.svelte +0 -140
- package/dist/structure/Bond.svelte.d.ts +0 -9
- package/dist/structure/CanvasTooltip.svelte +0 -33
- package/dist/structure/CanvasTooltip.svelte.d.ts +0 -12
- package/dist/structure/CellSelect.svelte +0 -351
- package/dist/structure/CellSelect.svelte.d.ts +0 -13
- package/dist/structure/Cylinder.svelte +0 -45
- package/dist/structure/Cylinder.svelte.d.ts +0 -10
- package/dist/structure/Lattice.svelte +0 -196
- package/dist/structure/Lattice.svelte.d.ts +0 -17
- package/dist/structure/Structure.svelte +0 -1999
- package/dist/structure/Structure.svelte.d.ts +0 -87
- package/dist/structure/StructureControls.svelte +0 -1298
- package/dist/structure/StructureControls.svelte.d.ts +0 -31
- package/dist/structure/StructureExportPane.svelte +0 -251
- package/dist/structure/StructureExportPane.svelte.d.ts +0 -17
- package/dist/structure/StructureInfoPane.svelte +0 -735
- package/dist/structure/StructureInfoPane.svelte.d.ts +0 -19
- package/dist/structure/StructureScene.svelte +0 -1905
- package/dist/structure/StructureScene.svelte.d.ts +0 -108
- package/dist/structure/atom-properties.d.ts +0 -37
- package/dist/structure/atom-properties.js +0 -200
- package/dist/structure/bond-order-perception.d.ts +0 -13
- package/dist/structure/bond-order-perception.js +0 -367
- package/dist/structure/bonding.d.ts +0 -42
- package/dist/structure/bonding.js +0 -525
- package/dist/structure/export.d.ts +0 -20
- package/dist/structure/export.js +0 -727
- package/dist/structure/index.d.ts +0 -125
- package/dist/structure/index.js +0 -171
- package/dist/structure/label-placement.d.ts +0 -14
- package/dist/structure/label-placement.js +0 -72
- package/dist/structure/measure.d.ts +0 -6
- package/dist/structure/measure.js +0 -29
- package/dist/structure/parse.d.ts +0 -66
- package/dist/structure/parse.js +0 -1363
- package/dist/structure/partial-occupancy.d.ts +0 -25
- package/dist/structure/partial-occupancy.js +0 -99
- package/dist/structure/pbc.d.ts +0 -9
- package/dist/structure/pbc.js +0 -123
- package/dist/structure/supercell.d.ts +0 -8
- package/dist/structure/supercell.js +0 -170
- package/dist/structure/validation.d.ts +0 -2
- package/dist/structure/validation.js +0 -10
- package/dist/symmetry/SymmetryStats.svelte +0 -226
- package/dist/symmetry/SymmetryStats.svelte.d.ts +0 -21
- package/dist/symmetry/WyckoffTable.svelte +0 -113
- package/dist/symmetry/WyckoffTable.svelte.d.ts +0 -11
- package/dist/symmetry/cell-transform.d.ts +0 -12
- package/dist/symmetry/cell-transform.js +0 -91
- package/dist/symmetry/index.d.ts +0 -43
- package/dist/symmetry/index.js +0 -229
- package/dist/symmetry/spacegroups.d.ts +0 -9
- package/dist/symmetry/spacegroups.js +0 -394
- package/dist/table/HeatmapTable.svelte +0 -1854
- package/dist/table/HeatmapTable.svelte.d.ts +0 -49
- package/dist/table/ToggleMenu.svelte +0 -376
- package/dist/table/ToggleMenu.svelte.d.ts +0 -11
- package/dist/table/index.d.ts +0 -74
- package/dist/table/index.js +0 -38
- package/dist/theme/ThemeControl.svelte +0 -53
- package/dist/theme/ThemeControl.svelte.d.ts +0 -9
- package/dist/theme/index.d.ts +0 -29
- package/dist/theme/index.js +0 -79
- package/dist/theme/themes.mjs +0 -285
- package/dist/time.d.ts +0 -4
- package/dist/time.js +0 -70
- package/dist/tooltip/TooltipContent.svelte +0 -58
- package/dist/tooltip/TooltipContent.svelte.d.ts +0 -31
- package/dist/tooltip/index.d.ts +0 -2
- package/dist/tooltip/index.js +0 -2
- package/dist/tooltip/types.d.ts +0 -8
- package/dist/tooltip/types.js +0 -1
- package/dist/trajectory/Trajectory.svelte +0 -1517
- package/dist/trajectory/Trajectory.svelte.d.ts +0 -77
- package/dist/trajectory/TrajectoryError.svelte +0 -128
- package/dist/trajectory/TrajectoryError.svelte.d.ts +0 -13
- package/dist/trajectory/TrajectoryExportPane.svelte +0 -357
- package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +0 -17
- package/dist/trajectory/TrajectoryInfoPane.svelte +0 -313
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +0 -17
- package/dist/trajectory/constants.d.ts +0 -6
- package/dist/trajectory/constants.js +0 -7
- package/dist/trajectory/extract.d.ts +0 -5
- package/dist/trajectory/extract.js +0 -162
- package/dist/trajectory/format-detect.d.ts +0 -9
- package/dist/trajectory/format-detect.js +0 -76
- package/dist/trajectory/frame-reader.d.ts +0 -17
- package/dist/trajectory/frame-reader.js +0 -332
- package/dist/trajectory/helpers.d.ts +0 -14
- package/dist/trajectory/helpers.js +0 -172
- package/dist/trajectory/index.d.ts +0 -63
- package/dist/trajectory/index.js +0 -126
- package/dist/trajectory/parse/ase.d.ts +0 -2
- package/dist/trajectory/parse/ase.js +0 -73
- package/dist/trajectory/parse/hdf5.d.ts +0 -2
- package/dist/trajectory/parse/hdf5.js +0 -127
- package/dist/trajectory/parse/index.d.ts +0 -12
- package/dist/trajectory/parse/index.js +0 -299
- package/dist/trajectory/parse/lammps.d.ts +0 -5
- package/dist/trajectory/parse/lammps.js +0 -179
- package/dist/trajectory/parse/vasp.d.ts +0 -2
- package/dist/trajectory/parse/vasp.js +0 -68
- package/dist/trajectory/parse/xyz.d.ts +0 -2
- package/dist/trajectory/parse/xyz.js +0 -110
- package/dist/trajectory/plotting.d.ts +0 -28
- package/dist/trajectory/plotting.js +0 -423
- package/dist/trajectory/types.d.ts +0 -11
- package/dist/trajectory/types.js +0 -1
- package/dist/utils.d.ts +0 -5
- package/dist/utils.js +0 -36
- package/dist/xrd/XrdPlot.svelte +0 -615
- package/dist/xrd/XrdPlot.svelte.d.ts +0 -28
- package/dist/xrd/broadening.d.ts +0 -20
- package/dist/xrd/broadening.js +0 -97
- package/dist/xrd/calc-xrd.d.ts +0 -37
- package/dist/xrd/calc-xrd.js +0 -337
- package/dist/xrd/index.d.ts +0 -37
- package/dist/xrd/index.js +0 -4
- package/dist/xrd/parse.d.ts +0 -13
- package/dist/xrd/parse.js +0 -749
- /package/dist/{EmptyState.svelte → src/lib/EmptyState.svelte} +0 -0
- /package/dist/{Icon.svelte → src/lib/Icon.svelte} +0 -0
- /package/dist/{app.css → src/lib/app.css} +0 -0
- /package/dist/{chempot-diagram → src/lib/chempot-diagram}/ChemPotScene3D.svelte +0 -0
- /package/dist/{colors → src/lib/colors}/alloy-colors.json +0 -0
- /package/dist/{colors → src/lib/colors}/dark-mode-colors.json +0 -0
- /package/dist/{colors → src/lib/colors}/jmol-colors.json +0 -0
- /package/dist/{colors → src/lib/colors}/muted-colors.json +0 -0
- /package/dist/{colors → src/lib/colors}/pastel-colors.json +0 -0
- /package/dist/{colors → src/lib/colors}/vesta-colors.json +0 -0
- /package/dist/{element → src/lib/element}/Nucleus.svelte +0 -0
- /package/dist/{element → src/lib/element}/data.json +0 -0
- /package/dist/{element → src/lib/element}/data.json.gz +0 -0
- /package/dist/{element → src/lib/element}/data.schema.json +0 -0
- /package/dist/{element-image-urls.json → src/lib/element-image-urls.json} +0 -0
- /package/dist/{feedback → src/lib/feedback}/Spinner.svelte +0 -0
- /package/dist/{feedback → src/lib/feedback}/StatusMessage.svelte +0 -0
- /package/dist/{periodic-table → src/lib/periodic-table}/TableInset.svelte +0 -0
- /package/dist/{plot → src/lib/plot}/ReferenceLine.svelte +0 -0
- /package/dist/{xrd → src/lib/xrd}/atomic_scattering_params.json +0 -0
|
@@ -1,525 +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
|
-
const is_zero_cell_shift = (cell_shift) => cell_shift === undefined || cell_shift.every((val) => val === 0);
|
|
9
|
-
const format_cell_shift = (cell_shift) => {
|
|
10
|
-
if (cell_shift === undefined || is_zero_cell_shift(cell_shift))
|
|
11
|
-
return ``;
|
|
12
|
-
return `@${cell_shift.join(`,`)}`;
|
|
13
|
-
};
|
|
14
|
-
const negate_cell_shift = (cell_shift) => cell_shift.map((val) => (val === 0 ? 0 : -val));
|
|
15
|
-
const normalize_bond_endpoints = (site_idx_1, site_idx_2, cell_shift) => {
|
|
16
|
-
const ordered = site_idx_1 < site_idx_2
|
|
17
|
-
? { site_idx_1, site_idx_2 }
|
|
18
|
-
: { site_idx_1: site_idx_2, site_idx_2: site_idx_1 };
|
|
19
|
-
if (cell_shift === undefined || is_zero_cell_shift(cell_shift))
|
|
20
|
-
return ordered;
|
|
21
|
-
return {
|
|
22
|
-
...ordered,
|
|
23
|
-
cell_shift: site_idx_1 < site_idx_2 ? cell_shift : negate_cell_shift(cell_shift),
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
export const normalize_structure_bond = (site_idx_1, site_idx_2, order, cell_shift) => {
|
|
27
|
-
const bond = normalize_bond_endpoints(site_idx_1, site_idx_2, cell_shift);
|
|
28
|
-
return { ...bond, order };
|
|
29
|
-
};
|
|
30
|
-
export const get_bond_key = (idx_1, idx_2, cell_shift) => {
|
|
31
|
-
const normalized = normalize_bond_endpoints(idx_1, idx_2, cell_shift);
|
|
32
|
-
return `${normalized.site_idx_1}-${normalized.site_idx_2}${format_cell_shift(normalized.cell_shift)}`;
|
|
33
|
-
};
|
|
34
|
-
export const merge_bond_edits = (base_bonds, added, removed, overrides) => {
|
|
35
|
-
const key_for = (bond) => get_bond_key(bond.site_idx_1, bond.site_idx_2, bond.cell_shift);
|
|
36
|
-
const merged = new Map(base_bonds.map((bond) => [key_for(bond), bond]));
|
|
37
|
-
for (const bond of removed)
|
|
38
|
-
merged.delete(key_for(bond));
|
|
39
|
-
// Apply additions before overrides so user-set bond orders win even if
|
|
40
|
-
// callers accidentally pass overlapping edit lists.
|
|
41
|
-
for (const bond of added)
|
|
42
|
-
merged.set(key_for(bond), bond);
|
|
43
|
-
for (const bond of overrides)
|
|
44
|
-
merged.set(key_for(bond), bond);
|
|
45
|
-
return [...merged.values()];
|
|
46
|
-
};
|
|
47
|
-
const is_record = (value) => typeof value === `object` && value !== null;
|
|
48
|
-
export function normalize_bond_order(order) {
|
|
49
|
-
if (order === `aromatic`)
|
|
50
|
-
return order;
|
|
51
|
-
if (order === 1 || order === 1.5 || order === 2 || order === 3)
|
|
52
|
-
return order;
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
function normalize_cell_shift(cell_shift) {
|
|
56
|
-
if (cell_shift === undefined)
|
|
57
|
-
return undefined;
|
|
58
|
-
if (!Array.isArray(cell_shift) || cell_shift.length !== 3)
|
|
59
|
-
return null;
|
|
60
|
-
return cell_shift.some((val) => typeof val !== `number` || !Number.isInteger(val))
|
|
61
|
-
? null
|
|
62
|
-
: cell_shift;
|
|
63
|
-
}
|
|
64
|
-
function lattice_translation(structure, cell_shift) {
|
|
65
|
-
if (cell_shift === undefined || is_zero_cell_shift(cell_shift))
|
|
66
|
-
return [0, 0, 0];
|
|
67
|
-
if (!(`lattice` in structure)) {
|
|
68
|
-
throw new Error(`Explicit bond cell_shift requires a crystal lattice`);
|
|
69
|
-
}
|
|
70
|
-
const [shift_a, shift_b, shift_c] = cell_shift;
|
|
71
|
-
const [vec_a, vec_b, vec_c] = structure.lattice.matrix;
|
|
72
|
-
return math.add(math.scale(vec_a, shift_a), math.scale(vec_b, shift_b), math.scale(vec_c, shift_c));
|
|
73
|
-
}
|
|
74
|
-
export function structure_bond_to_bond_pair(structure, bond) {
|
|
75
|
-
const { site_idx_1, site_idx_2, order, cell_shift } = bond;
|
|
76
|
-
const site_1 = structure.sites[site_idx_1];
|
|
77
|
-
const site_2 = structure.sites[site_idx_2];
|
|
78
|
-
if (!site_1 || !site_2) {
|
|
79
|
-
throw new Error(`Cannot create bond pair for invalid site indices ${site_idx_1}, ${site_idx_2}`);
|
|
80
|
-
}
|
|
81
|
-
const pos_1 = site_1.xyz;
|
|
82
|
-
const pos_2 = math.add(site_2.xyz, lattice_translation(structure, cell_shift));
|
|
83
|
-
return {
|
|
84
|
-
pos_1,
|
|
85
|
-
pos_2,
|
|
86
|
-
site_idx_1,
|
|
87
|
-
site_idx_2,
|
|
88
|
-
bond_length: math.euclidean_dist(pos_1, pos_2),
|
|
89
|
-
strength: 1,
|
|
90
|
-
bond_order: order,
|
|
91
|
-
cell_shift,
|
|
92
|
-
transform_matrix: compute_bond_transform(pos_1, pos_2),
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
export function get_explicit_bond_metadata(structure) {
|
|
96
|
-
const raw_bonds = structure.properties?.bonds;
|
|
97
|
-
if (raw_bonds === undefined)
|
|
98
|
-
return [];
|
|
99
|
-
if (!Array.isArray(raw_bonds)) {
|
|
100
|
-
console.warn(`Ignoring structure.properties.bonds because it is not an array`);
|
|
101
|
-
return [];
|
|
102
|
-
}
|
|
103
|
-
const explicit_bonds = new Map();
|
|
104
|
-
for (const [entry_idx, raw_bond] of raw_bonds.entries()) {
|
|
105
|
-
if (!is_record(raw_bond)) {
|
|
106
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: expected object`);
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
const { order } = raw_bond;
|
|
110
|
-
const site_idx_1 = raw_bond.site_idx_1;
|
|
111
|
-
const site_idx_2 = raw_bond.site_idx_2;
|
|
112
|
-
if (typeof site_idx_1 !== `number` ||
|
|
113
|
-
typeof site_idx_2 !== `number` ||
|
|
114
|
-
!Number.isInteger(site_idx_1) ||
|
|
115
|
-
!Number.isInteger(site_idx_2)) {
|
|
116
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: site indices must be integers`);
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
if (site_idx_1 < 0 ||
|
|
120
|
-
site_idx_2 < 0 ||
|
|
121
|
-
site_idx_1 >= structure.sites.length ||
|
|
122
|
-
site_idx_2 >= structure.sites.length) {
|
|
123
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: site indices ${site_idx_1}, ${site_idx_2} are out of range for ${structure.sites.length} sites`);
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
if (site_idx_1 === site_idx_2) {
|
|
127
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: endpoints match`);
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
const bond_order = normalize_bond_order(order);
|
|
131
|
-
if (bond_order === null) {
|
|
132
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: unsupported order ${String(order)}`);
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
const cell_shift = normalize_cell_shift(raw_bond.cell_shift);
|
|
136
|
-
if (cell_shift === null) {
|
|
137
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: cell_shift must be three integers`);
|
|
138
|
-
continue;
|
|
139
|
-
}
|
|
140
|
-
if (cell_shift !== undefined &&
|
|
141
|
-
!is_zero_cell_shift(cell_shift) &&
|
|
142
|
-
!(`lattice` in structure)) {
|
|
143
|
-
console.warn(`Ignoring invalid explicit bond at index ${entry_idx}: cell_shift requires a crystal lattice`);
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
const key = get_bond_key(site_idx_1, site_idx_2, cell_shift);
|
|
147
|
-
if (explicit_bonds.has(key)) {
|
|
148
|
-
console.warn(`Duplicate explicit bond definition at index ${entry_idx} for site indices ${site_idx_1}, ${site_idx_2} with order ${bond_order}; will overwrite the previous entry`);
|
|
149
|
-
}
|
|
150
|
-
explicit_bonds.set(key, normalize_structure_bond(site_idx_1, site_idx_2, bond_order, cell_shift));
|
|
151
|
-
}
|
|
152
|
-
return [...explicit_bonds.values()];
|
|
153
|
-
}
|
|
154
|
-
export function apply_explicit_bond_metadata(structure, bonds) {
|
|
155
|
-
const explicit_bonds = get_explicit_bond_metadata(structure);
|
|
156
|
-
if (explicit_bonds.length === 0)
|
|
157
|
-
return bonds;
|
|
158
|
-
const explicit_by_key = new Map(explicit_bonds.map((bond) => [
|
|
159
|
-
get_bond_key(bond.site_idx_1, bond.site_idx_2, bond.cell_shift),
|
|
160
|
-
bond,
|
|
161
|
-
]));
|
|
162
|
-
const merged = bonds.map((bond) => {
|
|
163
|
-
const key = get_bond_key(bond.site_idx_1, bond.site_idx_2, bond.cell_shift);
|
|
164
|
-
const explicit = explicit_by_key.get(key);
|
|
165
|
-
if (!explicit)
|
|
166
|
-
return bond;
|
|
167
|
-
explicit_by_key.delete(key);
|
|
168
|
-
return { ...bond, bond_order: explicit.order };
|
|
169
|
-
});
|
|
170
|
-
for (const explicit_bond of explicit_by_key.values()) {
|
|
171
|
-
merged.push(structure_bond_to_bond_pair(structure, explicit_bond));
|
|
172
|
-
}
|
|
173
|
-
return merged;
|
|
174
|
-
}
|
|
175
|
-
export function scale_and_offset_bond_matrix(transform_matrix, offset, radius_scale) {
|
|
176
|
-
const matrix = new Float32Array(transform_matrix);
|
|
177
|
-
// Column-major 4x4 layout: 0-2 are the right vector, 8-10 are the forward
|
|
178
|
-
// vector. Scale orientation columns for cylinder radius, not translation.
|
|
179
|
-
for (const matrix_idx of [0, 1, 2, 8, 9, 10]) {
|
|
180
|
-
matrix[matrix_idx] *= radius_scale;
|
|
181
|
-
}
|
|
182
|
-
const right_len = Math.hypot(matrix[0], matrix[1], matrix[2]) || 1;
|
|
183
|
-
const offset_dir = [
|
|
184
|
-
matrix[0] / right_len,
|
|
185
|
-
matrix[1] / right_len,
|
|
186
|
-
matrix[2] / right_len,
|
|
187
|
-
];
|
|
188
|
-
matrix[12] += offset_dir[0] * offset;
|
|
189
|
-
matrix[13] += offset_dir[1] * offset;
|
|
190
|
-
matrix[14] += offset_dir[2] * offset;
|
|
191
|
-
return matrix;
|
|
192
|
-
}
|
|
193
|
-
export function get_bond_render_matrices(bond, bond_thickness) {
|
|
194
|
-
const order = bond.bond_order ?? 1;
|
|
195
|
-
const gap = bond_thickness * 1.8;
|
|
196
|
-
const offsets_and_scales = order === 2
|
|
197
|
-
? [
|
|
198
|
-
[-gap / 2, 0.65],
|
|
199
|
-
[gap / 2, 0.65],
|
|
200
|
-
]
|
|
201
|
-
: order === 3
|
|
202
|
-
? [
|
|
203
|
-
[-gap, 0.55],
|
|
204
|
-
[0, 0.55],
|
|
205
|
-
[gap, 0.55],
|
|
206
|
-
]
|
|
207
|
-
: order === 1.5 || order === `aromatic`
|
|
208
|
-
? [
|
|
209
|
-
[-gap / 2, 0.75],
|
|
210
|
-
[gap / 2, 0.4],
|
|
211
|
-
]
|
|
212
|
-
: [];
|
|
213
|
-
return offsets_and_scales.length === 0
|
|
214
|
-
? [bond.transform_matrix]
|
|
215
|
-
: offsets_and_scales.map(([offset, radius_scale]) => scale_and_offset_bond_matrix(bond.transform_matrix, offset, radius_scale));
|
|
216
|
-
}
|
|
217
|
-
// Get the species with highest occupancy from a site.
|
|
218
|
-
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 });
|
|
219
|
-
// Helper to extract numeric index from site properties
|
|
220
|
-
function get_orig_idx(site, fallback) {
|
|
221
|
-
const props = site.properties;
|
|
222
|
-
if (!props)
|
|
223
|
-
return fallback;
|
|
224
|
-
const raw = props.orig_unit_cell_idx ?? props.orig_site_idx;
|
|
225
|
-
if (raw === undefined)
|
|
226
|
-
return fallback;
|
|
227
|
-
const num = Number(raw);
|
|
228
|
-
return Number.isFinite(num) ? num : fallback;
|
|
229
|
-
}
|
|
230
|
-
// Compute 4x4 transformation matrix for bond cylinder between two positions.
|
|
231
|
-
// Uses Y-up, right-handed coordinate system convention for Three.js compatibility.
|
|
232
|
-
export function compute_bond_transform(pos_1, pos_2) {
|
|
233
|
-
const [dx, dy, dz] = math.subtract(pos_2, pos_1);
|
|
234
|
-
const height = Math.hypot(dx, dy, dz);
|
|
235
|
-
if (height < 1e-10) {
|
|
236
|
-
return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
237
|
-
}
|
|
238
|
-
const [dir_x, dir_y, dir_z] = [dx / height, dy / height, dz / height];
|
|
239
|
-
let [m00, m01, m02, m10, m11, m12, m20, m21, m22] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
240
|
-
// Special case: bond pointing straight up (+Y)
|
|
241
|
-
if (Math.abs(dir_y - 1.0) < 1e-10) {
|
|
242
|
-
;
|
|
243
|
-
[m00, m01, m02, m10, m11, m12, m20, m21, m22] = [1, 0, 0, 0, 1, 0, 0, 0, 1];
|
|
244
|
-
}
|
|
245
|
-
else if (Math.abs(dir_y + 1.0) < 1e-10) {
|
|
246
|
-
// Special case: bond pointing straight down (-Y)
|
|
247
|
-
;
|
|
248
|
-
[m00, m01, m02, m10, m11, m12, m20, m21, m22] = [1, 0, 0, 0, -1, 0, 0, 0, 1];
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
// General case: construct orthonormal basis (right, dir, up)
|
|
252
|
-
// Right vector: perpendicular to dir in XZ plane
|
|
253
|
-
const [rx, rz] = [-dir_z, dir_x];
|
|
254
|
-
const r_len = Math.hypot(rx, rz);
|
|
255
|
-
const [right_x, right_z] = [rx / r_len, rz / r_len];
|
|
256
|
-
// Up vector: cross product of dir and right
|
|
257
|
-
const [up_x, up_y, up_z] = [
|
|
258
|
-
dir_y * right_z,
|
|
259
|
-
dir_z * right_x - dir_x * right_z,
|
|
260
|
-
-dir_y * right_x,
|
|
261
|
-
];
|
|
262
|
-
[m00, m01, m02, m10, m11, m12, m20, m21, m22] = [
|
|
263
|
-
right_x,
|
|
264
|
-
dir_x,
|
|
265
|
-
up_x,
|
|
266
|
-
0,
|
|
267
|
-
dir_y,
|
|
268
|
-
up_y,
|
|
269
|
-
right_z,
|
|
270
|
-
dir_z,
|
|
271
|
-
up_z,
|
|
272
|
-
];
|
|
273
|
-
}
|
|
274
|
-
// Position at midpoint between the two atoms
|
|
275
|
-
const [px, py, pz] = [
|
|
276
|
-
(pos_1[0] + pos_2[0]) / 2,
|
|
277
|
-
(pos_1[1] + pos_2[1]) / 2,
|
|
278
|
-
(pos_1[2] + pos_2[2]) / 2,
|
|
279
|
-
];
|
|
280
|
-
return new Float32Array([
|
|
281
|
-
// Return flattened column-major 4x4 matrix for Three.js
|
|
282
|
-
m00,
|
|
283
|
-
m10,
|
|
284
|
-
m20,
|
|
285
|
-
0,
|
|
286
|
-
m01 * height,
|
|
287
|
-
m11 * height,
|
|
288
|
-
m21 * height,
|
|
289
|
-
0,
|
|
290
|
-
m02,
|
|
291
|
-
m12,
|
|
292
|
-
m22,
|
|
293
|
-
0,
|
|
294
|
-
px,
|
|
295
|
-
py,
|
|
296
|
-
pz,
|
|
297
|
-
1,
|
|
298
|
-
]);
|
|
299
|
-
}
|
|
300
|
-
// Build spatial grid by dividing 3D space into cubic cells.
|
|
301
|
-
function build_spatial_grid(sites, cell_size) {
|
|
302
|
-
const grid = new Map();
|
|
303
|
-
for (let idx = 0; idx < sites.length; idx++) {
|
|
304
|
-
const [x, y, z] = sites[idx].xyz.map((coord) => Math.floor(coord / cell_size));
|
|
305
|
-
const key = `${x},${y},${z}`;
|
|
306
|
-
const cell = grid.get(key);
|
|
307
|
-
if (cell)
|
|
308
|
-
cell.push(idx);
|
|
309
|
-
else
|
|
310
|
-
grid.set(key, [idx]);
|
|
311
|
-
}
|
|
312
|
-
return grid;
|
|
313
|
-
}
|
|
314
|
-
// Get all site indices in 3x3x3 cube of cells around position.
|
|
315
|
-
function get_neighbors_from_grid(pos, grid, cell_size) {
|
|
316
|
-
const [cx, cy, cz] = [
|
|
317
|
-
Math.floor(pos[0] / cell_size),
|
|
318
|
-
Math.floor(pos[1] / cell_size),
|
|
319
|
-
Math.floor(pos[2] / cell_size),
|
|
320
|
-
];
|
|
321
|
-
const neighbors = [];
|
|
322
|
-
for (let dx = -1; dx <= 1; dx++) {
|
|
323
|
-
for (let dy = -1; dy <= 1; dy++) {
|
|
324
|
-
for (let dz = -1; dz <= 1; dz++) {
|
|
325
|
-
const cell = grid.get(`${cx + dx},${cy + dy},${cz + dz}`);
|
|
326
|
-
if (cell)
|
|
327
|
-
neighbors.push(...cell);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return neighbors;
|
|
332
|
-
}
|
|
333
|
-
// Setup spatial decomposition for structures with >50 atoms.
|
|
334
|
-
function setup_spatial_grid(sites, cutoff) {
|
|
335
|
-
const use_grid = sites.length > 50;
|
|
336
|
-
return use_grid ? { grid: build_spatial_grid(sites, cutoff), cell_size: cutoff } : null;
|
|
337
|
-
}
|
|
338
|
-
// Get candidate neighbor indices using spatial grid or all sites.
|
|
339
|
-
const get_candidates = (pos, sites, spatial) => spatial
|
|
340
|
-
? get_neighbors_from_grid(pos, spatial.grid, spatial.cell_size)
|
|
341
|
-
: Array.from({ length: sites.length }, (_, idx) => idx);
|
|
342
|
-
export const BONDING_STRATEGIES = { electroneg_ratio, solid_angle };
|
|
343
|
-
// Electronegativity-based bonding with chemical preferences.
|
|
344
|
-
// This algorithm considers electronegativity differences between atoms, metal/nonmetal
|
|
345
|
-
// properties, and distance to determine bond strength. Bonds are only created if the
|
|
346
|
-
// computed strength exceeds the strength_threshold parameter (default: 0.3).
|
|
347
|
-
export function electroneg_ratio(structure, { electronegativity_threshold = 1.7, // Max electronegativity difference for bonding
|
|
348
|
-
max_distance_ratio = 2.0, // Max distance as multiple of sum of covalent radii
|
|
349
|
-
min_bond_dist = 0.4, // Minimum bond distance in Angstroms
|
|
350
|
-
metal_metal_penalty = 0.7, // Strength penalty for metal-metal bonds
|
|
351
|
-
metal_nonmetal_bonus = 1.5, // Strength bonus for metal-nonmetal bonds
|
|
352
|
-
similar_electronegativity_bonus = 1.2, // Bonus for similar electronegativity
|
|
353
|
-
same_species_penalty = 0.5, // Penalty for bonds between same element
|
|
354
|
-
strength_threshold = 0.3, // Minimum bond strength to include in results
|
|
355
|
-
} = {}) {
|
|
356
|
-
const { sites } = structure;
|
|
357
|
-
if (sites.length < 2)
|
|
358
|
-
return [];
|
|
359
|
-
const bonds = [];
|
|
360
|
-
const min_dist_sq = min_bond_dist ** 2;
|
|
361
|
-
const closest = new Map();
|
|
362
|
-
const props = sites.map((site) => {
|
|
363
|
-
const majority = get_majority_species(site);
|
|
364
|
-
const elem = majority.element;
|
|
365
|
-
const data = element_lookup.get(elem);
|
|
366
|
-
return {
|
|
367
|
-
element: elem,
|
|
368
|
-
electroneg: data?.electronegativity ?? 2.0,
|
|
369
|
-
is_metal: data?.metal ?? false,
|
|
370
|
-
is_nonmetal: data?.nonmetal ?? false,
|
|
371
|
-
radius: elem ? covalent_radii.get(elem) : undefined,
|
|
372
|
-
};
|
|
373
|
-
});
|
|
374
|
-
let max_radius = 0;
|
|
375
|
-
for (const radius of covalent_radii.values()) {
|
|
376
|
-
if (radius > max_radius)
|
|
377
|
-
max_radius = radius;
|
|
378
|
-
}
|
|
379
|
-
const max_cutoff = max_radius * 2 * max_distance_ratio;
|
|
380
|
-
const spatial = setup_spatial_grid(sites, max_cutoff);
|
|
381
|
-
const potential_bonds = [];
|
|
382
|
-
for (let idx_a = 0; idx_a < sites.length - 1; idx_a++) {
|
|
383
|
-
const [x1, y1, z1] = sites[idx_a].xyz;
|
|
384
|
-
const props_a = props[idx_a];
|
|
385
|
-
for (const idx_b of get_candidates(sites[idx_a].xyz, sites, spatial)) {
|
|
386
|
-
if (idx_b <= idx_a)
|
|
387
|
-
continue;
|
|
388
|
-
const [x2, y2, z2] = sites[idx_b].xyz;
|
|
389
|
-
const props_b = props[idx_b];
|
|
390
|
-
const [dx, dy, dz] = [x2 - x1, y2 - y1, z2 - z1];
|
|
391
|
-
const dist_sq = dx * dx + dy * dy + dz * dz;
|
|
392
|
-
const dist = Math.sqrt(dist_sq);
|
|
393
|
-
if (dist_sq < min_dist_sq || !props_a.radius || !props_b.radius)
|
|
394
|
-
continue;
|
|
395
|
-
const expected = props_a.radius + props_b.radius;
|
|
396
|
-
if (dist > expected * max_distance_ratio)
|
|
397
|
-
continue;
|
|
398
|
-
const electroneg_diff = Math.abs(props_a.electroneg - props_b.electroneg);
|
|
399
|
-
const electroneg_balance = electroneg_diff / (props_a.electroneg + props_b.electroneg);
|
|
400
|
-
let bond_strength = 1.0;
|
|
401
|
-
if (props_a.is_metal && props_b.is_metal) {
|
|
402
|
-
bond_strength *= metal_metal_penalty;
|
|
403
|
-
}
|
|
404
|
-
else if ((props_a.is_metal && props_b.is_nonmetal) ||
|
|
405
|
-
(props_a.is_nonmetal && props_b.is_metal)) {
|
|
406
|
-
bond_strength *= metal_nonmetal_bonus;
|
|
407
|
-
if (electroneg_diff > electronegativity_threshold)
|
|
408
|
-
bond_strength *= 1.3;
|
|
409
|
-
}
|
|
410
|
-
else if (electroneg_diff < 0.5) {
|
|
411
|
-
bond_strength *= similar_electronegativity_bonus;
|
|
412
|
-
}
|
|
413
|
-
const dist_weight = Math.exp(-((dist / expected - 1) ** 2) / 0.18);
|
|
414
|
-
const electroneg_weight = 1.0 - 0.3 * electroneg_balance;
|
|
415
|
-
let strength = bond_strength * dist_weight * electroneg_weight;
|
|
416
|
-
if (props_a.element === props_b.element)
|
|
417
|
-
strength *= same_species_penalty;
|
|
418
|
-
// If raw strength is already too low, we can skip early
|
|
419
|
-
// (penalty will only reduce it further)
|
|
420
|
-
if (strength <= strength_threshold)
|
|
421
|
-
continue;
|
|
422
|
-
// Use helper logic to handle both supercell and image atoms with robust normalization
|
|
423
|
-
const orig_idx_a = get_orig_idx(sites[idx_a], idx_a);
|
|
424
|
-
const orig_idx_b = get_orig_idx(sites[idx_b], idx_b);
|
|
425
|
-
// Update closest known normalized distance (dist / expected) for original atoms
|
|
426
|
-
// Normalized distance handles atoms of different sizes better than raw distance
|
|
427
|
-
// (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)
|
|
428
|
-
const norm_dist = dist / expected;
|
|
429
|
-
const closest_dist_a = closest.get(orig_idx_a) ?? Infinity;
|
|
430
|
-
if (norm_dist < closest_dist_a)
|
|
431
|
-
closest.set(orig_idx_a, norm_dist);
|
|
432
|
-
const closest_dist_b = closest.get(orig_idx_b) ?? Infinity;
|
|
433
|
-
if (norm_dist < closest_dist_b)
|
|
434
|
-
closest.set(orig_idx_b, norm_dist);
|
|
435
|
-
potential_bonds.push({
|
|
436
|
-
site_idx_1: idx_a,
|
|
437
|
-
site_idx_2: idx_b,
|
|
438
|
-
dist,
|
|
439
|
-
expected_dist: expected,
|
|
440
|
-
base_strength: strength,
|
|
441
|
-
orig_idx_a,
|
|
442
|
-
orig_idx_b,
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
// Second pass: Apply penalties and filter
|
|
447
|
-
for (const bond of potential_bonds) {
|
|
448
|
-
const { site_idx_1, site_idx_2, dist, expected_dist, base_strength, orig_idx_a, orig_idx_b, } = bond;
|
|
449
|
-
const closest_dist_a = closest.get(orig_idx_a) ?? Infinity;
|
|
450
|
-
const closest_dist_b = closest.get(orig_idx_b) ?? Infinity;
|
|
451
|
-
const norm_dist = dist / expected_dist;
|
|
452
|
-
let strength = base_strength;
|
|
453
|
-
// Apply penalty if this bond is much longer (relative to radii) than the closest known bond
|
|
454
|
-
if (norm_dist > closest_dist_a) {
|
|
455
|
-
strength *= Math.exp(-(norm_dist / closest_dist_a - 1) / 0.5);
|
|
456
|
-
}
|
|
457
|
-
if (orig_idx_b !== orig_idx_a && norm_dist > closest_dist_b) {
|
|
458
|
-
strength *= Math.exp(-(norm_dist / closest_dist_b - 1) / 0.5);
|
|
459
|
-
}
|
|
460
|
-
if (strength > strength_threshold) {
|
|
461
|
-
bonds.push({
|
|
462
|
-
pos_1: sites[site_idx_1].xyz,
|
|
463
|
-
pos_2: sites[site_idx_2].xyz,
|
|
464
|
-
site_idx_1,
|
|
465
|
-
site_idx_2,
|
|
466
|
-
bond_length: dist,
|
|
467
|
-
strength,
|
|
468
|
-
transform_matrix: compute_bond_transform(sites[site_idx_1].xyz, sites[site_idx_2].xyz),
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
return apply_explicit_bond_metadata(structure, bonds);
|
|
473
|
-
}
|
|
474
|
-
// Solid angle-based bonding using geometric proximity heuristics.
|
|
475
|
-
// Inspired by Voronoi tessellation without having to actually compute Voronoi cells.
|
|
476
|
-
// This algorithm computes bond strength based on the solid angle subtended by atoms
|
|
477
|
-
// and their distance penalty. Bonds are only created if the computed strength exceeds
|
|
478
|
-
// the strength_threshold parameter.
|
|
479
|
-
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, } = {}) {
|
|
480
|
-
const { sites } = structure;
|
|
481
|
-
if (sites.length < 2)
|
|
482
|
-
return [];
|
|
483
|
-
const bonds = [];
|
|
484
|
-
const min_dist_sq = min_bond_dist ** 2;
|
|
485
|
-
const max_dist_sq = max_distance ** 2;
|
|
486
|
-
const spatial = setup_spatial_grid(sites, max_distance);
|
|
487
|
-
for (let idx_a = 0; idx_a < sites.length - 1; idx_a++) {
|
|
488
|
-
const [x1, y1, z1] = sites[idx_a].xyz;
|
|
489
|
-
const majority_a = get_majority_species(sites[idx_a]);
|
|
490
|
-
const radius_a = majority_a.element ? covalent_radii.get(majority_a.element) : undefined;
|
|
491
|
-
for (const idx_b of get_candidates(sites[idx_a].xyz, sites, spatial)) {
|
|
492
|
-
if (idx_b <= idx_a)
|
|
493
|
-
continue;
|
|
494
|
-
const [x2, y2, z2] = sites[idx_b].xyz;
|
|
495
|
-
const majority_b = get_majority_species(sites[idx_b]);
|
|
496
|
-
const radius_b = majority_b.element ? covalent_radii.get(majority_b.element) : undefined;
|
|
497
|
-
const [dx, dy, dz] = [x2 - x1, y2 - y1, z2 - z1];
|
|
498
|
-
const dist_sq = dx * dx + dy * dy + dz * dz;
|
|
499
|
-
const dist = Math.sqrt(dist_sq);
|
|
500
|
-
if (dist_sq < min_dist_sq || dist_sq > max_dist_sq || !radius_a || !radius_b) {
|
|
501
|
-
continue;
|
|
502
|
-
}
|
|
503
|
-
const avg_radius = (radius_a + radius_b) / 2.0;
|
|
504
|
-
const face_area = Math.PI * avg_radius * avg_radius;
|
|
505
|
-
const bond_solid_angle = face_area / dist_sq;
|
|
506
|
-
if (bond_solid_angle < min_solid_angle || face_area < min_face_area)
|
|
507
|
-
continue;
|
|
508
|
-
const dist_penalty = Math.exp(-((dist / (radius_a + radius_b) - 1) ** 2) / 0.4);
|
|
509
|
-
const angle_strength = Math.min(bond_solid_angle / (4.0 * Math.PI), 1.0);
|
|
510
|
-
const strength = angle_strength * dist_penalty;
|
|
511
|
-
if (strength > strength_threshold) {
|
|
512
|
-
bonds.push({
|
|
513
|
-
pos_1: sites[idx_a].xyz,
|
|
514
|
-
pos_2: sites[idx_b].xyz,
|
|
515
|
-
site_idx_1: idx_a,
|
|
516
|
-
site_idx_2: idx_b,
|
|
517
|
-
bond_length: dist,
|
|
518
|
-
strength,
|
|
519
|
-
transform_matrix: compute_bond_transform(sites[idx_a].xyz, sites[idx_b].xyz),
|
|
520
|
-
});
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
return apply_explicit_bond_metadata(structure, bonds);
|
|
525
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { AnyStructure } from './';
|
|
2
|
-
import type { BufferGeometry, Material, Scene } from 'three';
|
|
3
|
-
import { Color } from 'three';
|
|
4
|
-
export declare function has_color_property(mat: Material): mat is Material & {
|
|
5
|
-
color: Color;
|
|
6
|
-
};
|
|
7
|
-
export declare function extract_bond_color_for_instance(geometry: BufferGeometry, instance_idx: number): Color | null;
|
|
8
|
-
export declare function clean_geometry_for_export(geometry: BufferGeometry): void;
|
|
9
|
-
export declare function generate_mtl_content(scene: Scene): string;
|
|
10
|
-
export declare function create_structure_filename(structure: AnyStructure | undefined, extension: string): string;
|
|
11
|
-
export declare function structure_to_xyz_str(structure?: AnyStructure): string;
|
|
12
|
-
export declare function structure_to_cif_str(structure?: AnyStructure): string;
|
|
13
|
-
export declare function structure_to_poscar_str(structure?: AnyStructure): string;
|
|
14
|
-
export declare function structure_to_json_str(structure?: AnyStructure): string;
|
|
15
|
-
export declare function export_structure_as_cif(structure?: AnyStructure): void;
|
|
16
|
-
export declare function export_structure_as_poscar(structure?: AnyStructure): void;
|
|
17
|
-
export declare function export_structure_as_xyz(structure?: AnyStructure): void;
|
|
18
|
-
export declare function export_structure_as_json(structure?: AnyStructure): void;
|
|
19
|
-
export declare function export_structure_as_glb(scene: Scene | null, structure: AnyStructure | undefined): void;
|
|
20
|
-
export declare function export_structure_as_obj(scene: Scene | null, structure: AnyStructure | undefined): void;
|