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.
- 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/app.css +247 -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 +1461 -231
- 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/app.css +0 -240
- package/dist/brillouin/BrillouinZone.svelte +0 -543
- 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 -422
- 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 -77
- 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 -105
- 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 -813
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +0 -11
- package/dist/convex-hull/ConvexHull3D.svelte +0 -1788
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +0 -8
- package/dist/convex-hull/ConvexHull4D.svelte +0 -1374
- 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 -115
- package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +0 -18
- package/dist/convex-hull/ConvexHullStats.svelte +0 -905
- 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 -671
- 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 -149
- 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 -3
- 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 -597
- 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 -69
- package/dist/io/export.d.ts +0 -16
- package/dist/io/export.js +0 -312
- 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 -5
- 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 -547
- 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 -648
- 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/DraggablePane.svelte +0 -564
- package/dist/overlays/DraggablePane.svelte.d.ts +0 -36
- 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 -1086
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +0 -44
- package/dist/phase-diagram/PhaseDiagramControls.svelte +0 -451
- 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 -869
- 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 -2256
- package/dist/plot/BarPlot.svelte.d.ts +0 -82
- 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 -226
- package/dist/plot/FillArea.svelte.d.ts +0 -20
- package/dist/plot/Histogram.svelte +0 -1654
- 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 -85
- 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 -498
- package/dist/plot/PlotLegend.svelte.d.ts +0 -25
- 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 -2831
- package/dist/plot/ScatterPlot.svelte.d.ts +0 -92
- package/dist/plot/ScatterPlot3D.svelte +0 -499
- 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 -185
- package/dist/plot/ScatterPoint.svelte.d.ts +0 -19
- package/dist/plot/SpacegroupBarPlot.svelte +0 -292
- 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 -43
- 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 -863
- 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 -107
- package/dist/settings.d.ts +0 -253
- package/dist/settings.js +0 -1123
- 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 -1857
- package/dist/structure/Structure.svelte.d.ts +0 -83
- package/dist/structure/StructureControls.svelte +0 -1184
- 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 -434
- package/dist/structure/StructureInfoPane.svelte.d.ts +0 -18
- package/dist/structure/StructureScene.svelte +0 -1574
- package/dist/structure/StructureScene.svelte.d.ts +0 -104
- package/dist/structure/atom-properties.d.ts +0 -37
- package/dist/structure/atom-properties.js +0 -198
- package/dist/structure/bonding.d.ts +0 -33
- package/dist/structure/bonding.js +0 -304
- package/dist/structure/export.d.ts +0 -20
- package/dist/structure/export.js +0 -725
- package/dist/structure/ferrox-wasm-types.d.ts +0 -46
- package/dist/structure/ferrox-wasm-types.js +0 -18
- package/dist/structure/ferrox-wasm.d.ts +0 -94
- package/dist/structure/ferrox-wasm.js +0 -249
- package/dist/structure/index.d.ts +0 -110
- package/dist/structure/index.js +0 -168
- package/dist/structure/measure.d.ts +0 -6
- package/dist/structure/measure.js +0 -29
- package/dist/structure/parse.d.ts +0 -65
- package/dist/structure/parse.js +0 -1374
- 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 -137
- 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 -77
- 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 -387
- 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 -77
- package/dist/trajectory/parse/hdf5.d.ts +0 -2
- package/dist/trajectory/parse/hdf5.js +0 -129
- 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/{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
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import type { CompositionType } from '$lib/composition'
|
|
2
|
+
import type { ShowControlsProp } from '$lib/controls'
|
|
3
|
+
import type { ElementSymbol } from '$lib/element'
|
|
4
|
+
import type { Point2D, Point3D, Vec3 } from '$lib/math'
|
|
5
|
+
import type { Rect, Sides } from '$lib/plot/layout'
|
|
6
|
+
import type { AnyStructure } from '$lib/structure'
|
|
7
|
+
|
|
8
|
+
export interface StructurePopupStats {
|
|
9
|
+
id?: string
|
|
10
|
+
formula?: string
|
|
11
|
+
e_above_hull?: number
|
|
12
|
+
e_form?: number
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface StructurePopupContext {
|
|
16
|
+
structure: AnyStructure
|
|
17
|
+
stats?: StructurePopupStats
|
|
18
|
+
formula_html: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Unified convex hull entry interface supporting both pymatgen and Materials Project formats
|
|
22
|
+
export interface PhaseData {
|
|
23
|
+
// Core required fields
|
|
24
|
+
composition: CompositionType
|
|
25
|
+
energy: number
|
|
26
|
+
entry_id?: string
|
|
27
|
+
|
|
28
|
+
// Common computed fields
|
|
29
|
+
e_above_hull?: number
|
|
30
|
+
is_stable?: boolean
|
|
31
|
+
exclude_from_hull?: boolean // If true, entry is shown but not used in hull construction
|
|
32
|
+
energy_per_atom?: number
|
|
33
|
+
e_form_per_atom?: number // Formation energy per atom from fetch-mp-pd-data.py
|
|
34
|
+
reduced_formula?: string
|
|
35
|
+
name?: string
|
|
36
|
+
|
|
37
|
+
// Temperature-dependent free energies (replaces `energy` at selected T)
|
|
38
|
+
temperatures?: number[] // in Kelvin, use integers for exact matching
|
|
39
|
+
free_energies?: number[] // G(T) in eV, same length as temperatures
|
|
40
|
+
|
|
41
|
+
// Pymatgen-specific fields (optional)
|
|
42
|
+
'@module'?: string
|
|
43
|
+
'@class'?: string
|
|
44
|
+
correction?: number
|
|
45
|
+
energy_adjustments?: Record<string, number>[]
|
|
46
|
+
parameters?: Record<string, unknown>
|
|
47
|
+
data?: Record<string, unknown>
|
|
48
|
+
structure?: Record<string, unknown>
|
|
49
|
+
|
|
50
|
+
// Materials Project-specific fields (optional)
|
|
51
|
+
attributes?: Record<string, unknown>
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Processed phase data for convex hull calculations
|
|
55
|
+
export interface ProcessedPhaseData {
|
|
56
|
+
entries: PhaseData[]
|
|
57
|
+
stable_entries: PhaseData[]
|
|
58
|
+
unstable_entries: PhaseData[]
|
|
59
|
+
elements: ElementSymbol[]
|
|
60
|
+
el_refs: Record<string, PhaseData>
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export type MarkerSymbol = // Marker symbol types for convex hull entries
|
|
64
|
+
`circle` | `star` | `triangle` | `cross` | `diamond` | `square` | `wye`
|
|
65
|
+
|
|
66
|
+
// Hull face coloring modes for 3D/4D convex hull visualizations
|
|
67
|
+
export type HullFaceColorMode =
|
|
68
|
+
| `uniform` // Single user-selected color (default)
|
|
69
|
+
| `formation_energy` // Color by average formation energy of face vertices
|
|
70
|
+
| `dominant_element` // Color by element with highest concentration at centroid
|
|
71
|
+
| `facet_index` // Distinct categorical color per facet
|
|
72
|
+
|
|
73
|
+
export const HULL_FACE_COLOR_MODES: readonly HullFaceColorMode[] = [
|
|
74
|
+
`uniform`,
|
|
75
|
+
`formation_energy`,
|
|
76
|
+
`dominant_element`,
|
|
77
|
+
`facet_index`,
|
|
78
|
+
] as const
|
|
79
|
+
|
|
80
|
+
// Plot entry with 3D coordinates for quaternary diagrams
|
|
81
|
+
export interface ConvexHullEntry extends PhaseData, Point3D {
|
|
82
|
+
is_element: boolean
|
|
83
|
+
size?: number
|
|
84
|
+
marker?: MarkerSymbol // Optional marker symbol override (default: circle)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Configuration for convex hull display
|
|
88
|
+
export interface ConvexHullConfig {
|
|
89
|
+
width?: number
|
|
90
|
+
height?: number
|
|
91
|
+
margin?: Sides
|
|
92
|
+
unstable_threshold?: number // eV/atom threshold for showing unstable entries
|
|
93
|
+
show_labels?: boolean
|
|
94
|
+
show_hull?: boolean
|
|
95
|
+
point_size?: number
|
|
96
|
+
line_width?: number
|
|
97
|
+
font_size?: number
|
|
98
|
+
colors?: {
|
|
99
|
+
stable?: string
|
|
100
|
+
unstable?: string
|
|
101
|
+
hull_line?: string
|
|
102
|
+
background?: string
|
|
103
|
+
text?: string
|
|
104
|
+
edge?: string
|
|
105
|
+
tooltip_bg?: string
|
|
106
|
+
tooltip_text?: string
|
|
107
|
+
annotation?: string
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Legend configuration
|
|
112
|
+
export interface ConvexHullControlsType {
|
|
113
|
+
title?: string
|
|
114
|
+
show?: ShowControlsProp
|
|
115
|
+
position?: `top-left` | `top-right` | `bottom-left` | `bottom-right`
|
|
116
|
+
width?: number
|
|
117
|
+
show_counts?: boolean
|
|
118
|
+
show_color_toggle?: boolean
|
|
119
|
+
show_label_controls?: boolean
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Plane equation: normal·p + offset = 0
|
|
123
|
+
export interface Plane {
|
|
124
|
+
normal: Point3D
|
|
125
|
+
offset: number
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Internal face structure for Quickhull algorithm
|
|
129
|
+
export interface ConvexHullFace {
|
|
130
|
+
vertices: Vec3
|
|
131
|
+
plane: Plane
|
|
132
|
+
centroid: Point3D
|
|
133
|
+
outside_points: Set<number>
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Convex hull triangle with actual coordinate vertices (return type from compute_quickhull_triangles)
|
|
137
|
+
export interface ConvexHullTriangle {
|
|
138
|
+
vertices: [Point3D, Point3D, Point3D]
|
|
139
|
+
normal: Point3D
|
|
140
|
+
centroid: Point3D
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export interface LabelPlacement {
|
|
144
|
+
x: number
|
|
145
|
+
y: number
|
|
146
|
+
rect: Rect
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Hover data for tooltips
|
|
150
|
+
export interface HoverData3D<T = ConvexHullEntry> {
|
|
151
|
+
entry: T
|
|
152
|
+
position: Point2D
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Phase statistics
|
|
156
|
+
export interface PhaseStats {
|
|
157
|
+
total: number
|
|
158
|
+
unary: number
|
|
159
|
+
binary: number
|
|
160
|
+
ternary: number
|
|
161
|
+
quaternary: number
|
|
162
|
+
quinary_plus: number
|
|
163
|
+
stable: number
|
|
164
|
+
unstable: number
|
|
165
|
+
energy_range: { min: number; max: number; avg: number }
|
|
166
|
+
hull_distance: { max: number; avg: number }
|
|
167
|
+
elements: number
|
|
168
|
+
chemical_system: string
|
|
169
|
+
// Maximum arity used when computing stats — arity counts beyond this
|
|
170
|
+
// were zeroed. The UI uses this to decide which arity rows to display.
|
|
171
|
+
max_arity: number
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Numeric arity-count fields in PhaseStats (for type-safe indexing).
|
|
175
|
+
// Uses Extract to stay in sync with PhaseStats at compile time.
|
|
176
|
+
export type PhaseArityField = Extract<
|
|
177
|
+
keyof PhaseStats,
|
|
178
|
+
`unary` | `binary` | `ternary` | `quaternary` | `quinary_plus`
|
|
179
|
+
>
|
|
180
|
+
|
|
181
|
+
// Highlight styles for convex hull entries
|
|
182
|
+
export interface HighlightStyle {
|
|
183
|
+
effect?: `pulse` | `glow` | `size` | `color` | `both`
|
|
184
|
+
color?: string
|
|
185
|
+
size_multiplier?: number
|
|
186
|
+
opacity?: number
|
|
187
|
+
pulse_speed?: number
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// --- Gas Phase Thermodynamics ---
|
|
191
|
+
|
|
192
|
+
// Default temperature (Kelvin) for gas corrections when no temperature is specified
|
|
193
|
+
export const DEFAULT_GAS_TEMP = 300
|
|
194
|
+
|
|
195
|
+
// Supported gas species for chemical potential calculations
|
|
196
|
+
export type GasSpecies = `O2` | `N2` | `H2` | `CO` | `CO2` | `H2O` | `F2`
|
|
197
|
+
|
|
198
|
+
// All supported gas species as an array (for iteration)
|
|
199
|
+
export const GAS_SPECIES: readonly GasSpecies[] = [
|
|
200
|
+
`O2`,
|
|
201
|
+
`N2`,
|
|
202
|
+
`H2`,
|
|
203
|
+
`CO`,
|
|
204
|
+
`CO2`,
|
|
205
|
+
`H2O`,
|
|
206
|
+
`F2`,
|
|
207
|
+
] as const
|
|
208
|
+
|
|
209
|
+
// Default atmospheric partial pressures (in bar)
|
|
210
|
+
export const DEFAULT_GAS_PRESSURES: Readonly<Record<GasSpecies, number>> = {
|
|
211
|
+
O2: 0.2095, // ~21% in atmosphere
|
|
212
|
+
N2: 0.7809, // ~78% in atmosphere
|
|
213
|
+
H2: 0.1, // typical experimental
|
|
214
|
+
CO: 1e-6, // trace
|
|
215
|
+
CO2: 3.95e-4, // ~400 ppm in atmosphere
|
|
216
|
+
H2O: 0.03, // ~3% humidity
|
|
217
|
+
F2: 0.1, // typical experimental
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Interface for providing gas thermodynamic data (abstracted for privacy)
|
|
221
|
+
export interface GasThermodynamicsProvider {
|
|
222
|
+
// Get standard chemical potential μ°(T) at reference pressure P₀=1 bar
|
|
223
|
+
// Returns value in eV/molecule (not per atom)
|
|
224
|
+
get_standard_chemical_potential(gas: GasSpecies, T: number): number
|
|
225
|
+
|
|
226
|
+
// Get list of supported gas species
|
|
227
|
+
get_supported_gases(): GasSpecies[]
|
|
228
|
+
|
|
229
|
+
// Get valid temperature range [T_min, T_max] in Kelvin
|
|
230
|
+
get_temperature_range(): [number, number]
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Configuration for gas thermodynamics in convex hull calculations
|
|
234
|
+
export interface GasThermodynamicsConfig {
|
|
235
|
+
// Which gas species to enable (default: none)
|
|
236
|
+
enabled_gases?: GasSpecies[]
|
|
237
|
+
|
|
238
|
+
// Partial pressures for each gas (in bar, default: DEFAULT_GAS_PRESSURES)
|
|
239
|
+
pressures?: Partial<Record<GasSpecies, number>>
|
|
240
|
+
|
|
241
|
+
// Custom thermodynamic data provider (default: built-in data)
|
|
242
|
+
provider?: GasThermodynamicsProvider
|
|
243
|
+
|
|
244
|
+
// Element mapping: which elements are derived from which gases
|
|
245
|
+
// e.g., { O: 'O2', N: 'N2' } means O comes from O2 gas, N from N2 gas
|
|
246
|
+
// Default mapping is inferred from gas formula (O2 -> O, N2 -> N, etc.)
|
|
247
|
+
element_to_gas?: Partial<Record<ElementSymbol, GasSpecies>>
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Result of analyzing entries for gas-dependent data
|
|
251
|
+
export interface GasAnalysis {
|
|
252
|
+
// Whether any enabled gas affects the chemical system
|
|
253
|
+
has_gas_dependent_elements: boolean
|
|
254
|
+
// Elements that come from gas phases
|
|
255
|
+
gas_elements: ElementSymbol[]
|
|
256
|
+
// Gas species that are relevant for this system
|
|
257
|
+
relevant_gases: GasSpecies[]
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Position options for UI control panels (e.g., GasPressureControls)
|
|
261
|
+
export const GAS_CONTROL_POSITIONS = [
|
|
262
|
+
`top-left`,
|
|
263
|
+
`top-right`,
|
|
264
|
+
`bottom-left`,
|
|
265
|
+
`bottom-right`,
|
|
266
|
+
] as const
|
|
267
|
+
export type GasControlPosition = (typeof GAS_CONTROL_POSITIONS)[number]
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { PLOT_COLORS } from '$lib/colors'
|
|
3
|
+
import { StatusMessage } from '$lib/feedback'
|
|
4
|
+
import { create_file_drop_handler } from '$lib/io'
|
|
5
|
+
import { format_value } from '$lib/labels'
|
|
6
|
+
import { BarPlot } from '$lib/plot'
|
|
7
|
+
import type {
|
|
8
|
+
AxisConfig,
|
|
9
|
+
BarHandlerProps,
|
|
10
|
+
BarSeries,
|
|
11
|
+
Orientation,
|
|
12
|
+
} from '$lib/plot/types'
|
|
13
|
+
import type { AnyStructure } from '$lib/structure'
|
|
14
|
+
import type { BondingStrategy } from '$lib/structure/bonding'
|
|
15
|
+
import { parse_any_structure } from '$lib/structure/parse'
|
|
16
|
+
import { is_crystal } from '$lib/structure/validation'
|
|
17
|
+
import type { ComponentProps } from 'svelte'
|
|
18
|
+
import { SvelteMap, SvelteSet } from 'svelte/reactivity'
|
|
19
|
+
import { calc_coordination_nums, type CoordinationData } from './calc-coordination'
|
|
20
|
+
import type { SplitMode } from './index'
|
|
21
|
+
|
|
22
|
+
type CoordinationMetadata = {
|
|
23
|
+
element?: string
|
|
24
|
+
structure_label?: string
|
|
25
|
+
} & Record<string, unknown>
|
|
26
|
+
|
|
27
|
+
interface StructureEntry {
|
|
28
|
+
label: string
|
|
29
|
+
structure: AnyStructure
|
|
30
|
+
color?: string
|
|
31
|
+
data?: CoordinationData
|
|
32
|
+
}
|
|
33
|
+
let {
|
|
34
|
+
structures,
|
|
35
|
+
strategy = `electroneg_ratio`,
|
|
36
|
+
split_mode = `by_element`,
|
|
37
|
+
mode = $bindable(`grouped`),
|
|
38
|
+
orientation = `vertical` as Orientation,
|
|
39
|
+
x_axis = {},
|
|
40
|
+
y_axis = {},
|
|
41
|
+
allow_file_drop = true,
|
|
42
|
+
on_file_drop,
|
|
43
|
+
loading = $bindable(false),
|
|
44
|
+
error_msg = $bindable(),
|
|
45
|
+
...rest
|
|
46
|
+
}: Omit<ComponentProps<typeof BarPlot>, `series`> & {
|
|
47
|
+
structures:
|
|
48
|
+
| AnyStructure
|
|
49
|
+
| Record<string, AnyStructure | { structure: AnyStructure; color?: string }>
|
|
50
|
+
| StructureEntry[]
|
|
51
|
+
strategy?: BondingStrategy
|
|
52
|
+
split_mode?: SplitMode
|
|
53
|
+
x_axis?: AxisConfig
|
|
54
|
+
y_axis?: AxisConfig
|
|
55
|
+
allow_file_drop?: boolean
|
|
56
|
+
on_file_drop?: (content: string | ArrayBuffer, filename: string) => void
|
|
57
|
+
loading?: boolean
|
|
58
|
+
error_msg?: string
|
|
59
|
+
} = $props()
|
|
60
|
+
|
|
61
|
+
let dragover = $state(false)
|
|
62
|
+
let dropped_entries = $state<StructureEntry[]>([])
|
|
63
|
+
let is_horizontal = $derived(orientation === `horizontal`)
|
|
64
|
+
|
|
65
|
+
// Normalize input to consistent array of { label, structure, color }
|
|
66
|
+
const structure_entries = $derived.by<StructureEntry[]>(() => {
|
|
67
|
+
if (!structures) return []
|
|
68
|
+
|
|
69
|
+
const base_entries = Array.isArray(structures)
|
|
70
|
+
? (structures as StructureEntry[])
|
|
71
|
+
: (is_crystal(structures)
|
|
72
|
+
? [{ label: `Structure`, structure: structures as AnyStructure }]
|
|
73
|
+
: Object.entries(
|
|
74
|
+
structures as Record<
|
|
75
|
+
string,
|
|
76
|
+
AnyStructure | { structure: AnyStructure; color?: string }
|
|
77
|
+
>,
|
|
78
|
+
).map(([label, value]) =>
|
|
79
|
+
`structure` in value
|
|
80
|
+
? { label, ...value }
|
|
81
|
+
: { label, structure: value as AnyStructure }
|
|
82
|
+
))
|
|
83
|
+
|
|
84
|
+
// Merge user-provided structures with dropped structures
|
|
85
|
+
return [...base_entries, ...dropped_entries]
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
// Compute coordination data for each structure
|
|
89
|
+
const entries_with_data = $derived(structure_entries.map((entry) => ({
|
|
90
|
+
...entry,
|
|
91
|
+
data: calc_coordination_nums(entry.structure, strategy),
|
|
92
|
+
})))
|
|
93
|
+
|
|
94
|
+
// Compute appropriate ranges
|
|
95
|
+
const ranges = $derived.by(() => {
|
|
96
|
+
// CN axis should always start at 0 and show at least [0,4]
|
|
97
|
+
let max_cn = 4 // minimum max value
|
|
98
|
+
for (const entry of entries_with_data) {
|
|
99
|
+
for (const [cn] of entry.data.cn_histogram) max_cn = Math.max(max_cn, cn)
|
|
100
|
+
}
|
|
101
|
+
const cn_range: [number, number] = [-0.5, max_cn + 0.5]
|
|
102
|
+
|
|
103
|
+
return { count: [0, null] as [number, null], cn: cn_range } // Count axis should always start at 0
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
// Derive integer CN ticks for axis labels
|
|
107
|
+
const cn_ticks = $derived.by(() => {
|
|
108
|
+
const all_cns = new SvelteSet<number>()
|
|
109
|
+
// Always include minimum CN values 0-4
|
|
110
|
+
for (let idx = 0; idx <= 4; idx++) all_cns.add(idx)
|
|
111
|
+
// Add actual CN values from data
|
|
112
|
+
for (const entry of entries_with_data) {
|
|
113
|
+
for (const [cn] of entry.data.cn_histogram) all_cns.add(cn)
|
|
114
|
+
}
|
|
115
|
+
return Array.from(all_cns).sort((cn1, cn2) => cn1 - cn2)
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
// Build BarPlot series based on split_mode
|
|
119
|
+
const bar_series = $derived.by<BarSeries<CoordinationMetadata>[]>(() => {
|
|
120
|
+
if (split_mode === `by_element`) {
|
|
121
|
+
// One series per element across all structures
|
|
122
|
+
const element_series_map = new SvelteMap<string, Map<number, number>>()
|
|
123
|
+
|
|
124
|
+
// Collect all unique CNs across all elements
|
|
125
|
+
const all_cns = new SvelteSet<number>()
|
|
126
|
+
|
|
127
|
+
for (const entry of entries_with_data) {
|
|
128
|
+
for (const [element, cn_histogram] of entry.data.cn_histogram_by_element) {
|
|
129
|
+
if (!element_series_map.has(element)) {
|
|
130
|
+
element_series_map.set(element, new SvelteMap())
|
|
131
|
+
}
|
|
132
|
+
const element_map = element_series_map.get(element)
|
|
133
|
+
if (!element_map) continue
|
|
134
|
+
|
|
135
|
+
for (const [cn, count] of cn_histogram) {
|
|
136
|
+
all_cns.add(cn)
|
|
137
|
+
element_map.set(cn, (element_map.get(cn) ?? 0) + count)
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Sort CNs for consistent x-axis
|
|
143
|
+
const sorted_cns = Array.from(all_cns).sort((a, b) => a - b)
|
|
144
|
+
|
|
145
|
+
// Convert map to array and ensure all series have same x-values
|
|
146
|
+
return Array.from(element_series_map.entries())
|
|
147
|
+
.sort((a, b) => a[0].localeCompare(b[0]))
|
|
148
|
+
.map(([element, cn_map], idx) => {
|
|
149
|
+
return {
|
|
150
|
+
x: sorted_cns,
|
|
151
|
+
y: sorted_cns.map((cn) => cn_map.get(cn) ?? 0),
|
|
152
|
+
label: element,
|
|
153
|
+
color: PLOT_COLORS[idx % PLOT_COLORS.length],
|
|
154
|
+
bar_width: 0.8,
|
|
155
|
+
visible: true,
|
|
156
|
+
metadata: { element },
|
|
157
|
+
}
|
|
158
|
+
})
|
|
159
|
+
} else if (split_mode === `by_structure`) {
|
|
160
|
+
// One series per structure
|
|
161
|
+
// First collect all unique CNs
|
|
162
|
+
const all_cns = new SvelteSet<number>()
|
|
163
|
+
for (const entry of entries_with_data) {
|
|
164
|
+
for (const [cn] of entry.data.cn_histogram) {
|
|
165
|
+
all_cns.add(cn)
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const sorted_cns = Array.from(all_cns).sort((a, b) => a - b)
|
|
169
|
+
|
|
170
|
+
return entries_with_data.map((entry, idx) => {
|
|
171
|
+
return {
|
|
172
|
+
x: sorted_cns,
|
|
173
|
+
y: sorted_cns.map((cn) => entry.data.cn_histogram.get(cn) ?? 0),
|
|
174
|
+
label: entry.label,
|
|
175
|
+
color: entry.color ?? PLOT_COLORS[idx % PLOT_COLORS.length],
|
|
176
|
+
bar_width: 0.8,
|
|
177
|
+
visible: true,
|
|
178
|
+
metadata: { structure_label: entry.label },
|
|
179
|
+
}
|
|
180
|
+
})
|
|
181
|
+
} else {
|
|
182
|
+
// split_mode === 'none': combine all into single series
|
|
183
|
+
const combined_histogram = new SvelteMap<number, number>()
|
|
184
|
+
|
|
185
|
+
for (const entry of entries_with_data) {
|
|
186
|
+
for (const [cn, count] of entry.data.cn_histogram) {
|
|
187
|
+
combined_histogram.set(cn, (combined_histogram.get(cn) ?? 0) + count)
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const x_vals = Array.from(combined_histogram.keys()).sort((a, b) => a - b)
|
|
192
|
+
const y_vals = x_vals.map((cn) => combined_histogram.get(cn) ?? 0)
|
|
193
|
+
|
|
194
|
+
return [
|
|
195
|
+
{
|
|
196
|
+
x: x_vals,
|
|
197
|
+
y: y_vals,
|
|
198
|
+
label: `All Sites`,
|
|
199
|
+
color: PLOT_COLORS[0],
|
|
200
|
+
bar_width: 0.8,
|
|
201
|
+
visible: true,
|
|
202
|
+
metadata: {},
|
|
203
|
+
},
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
})
|
|
207
|
+
|
|
208
|
+
const compute_and_add = (content: string | ArrayBuffer, filename: string) => {
|
|
209
|
+
try {
|
|
210
|
+
const text_content = content instanceof ArrayBuffer
|
|
211
|
+
? new TextDecoder().decode(content)
|
|
212
|
+
: content
|
|
213
|
+
const parsed_structure = parse_any_structure(text_content, filename)
|
|
214
|
+
if (is_crystal(parsed_structure)) {
|
|
215
|
+
dropped_entries = [{
|
|
216
|
+
label: filename || `Dropped structure`,
|
|
217
|
+
structure: parsed_structure,
|
|
218
|
+
}, ...dropped_entries]
|
|
219
|
+
} else {
|
|
220
|
+
error_msg = `Structure has no lattice or sites; cannot compute coordination`
|
|
221
|
+
}
|
|
222
|
+
} catch (exc) {
|
|
223
|
+
error_msg = `Failed to process structure: ${
|
|
224
|
+
exc instanceof Error ? exc.message : String(exc)
|
|
225
|
+
}`
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
const handle_file_drop = create_file_drop_handler({
|
|
230
|
+
allow: () => allow_file_drop,
|
|
231
|
+
on_drop: (content, filename) =>
|
|
232
|
+
(on_file_drop || compute_and_add)(content, filename),
|
|
233
|
+
on_error: (msg) => {
|
|
234
|
+
error_msg = msg
|
|
235
|
+
},
|
|
236
|
+
set_loading: (val) => {
|
|
237
|
+
loading = val
|
|
238
|
+
if (val) [error_msg, dragover] = [undefined, false]
|
|
239
|
+
},
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
let display = $state({ x_zero_line: false, y_zero_line: false })
|
|
243
|
+
// Update display when orientation changes
|
|
244
|
+
$effect(() => {
|
|
245
|
+
display.x_zero_line = is_horizontal
|
|
246
|
+
display.y_zero_line = !is_horizontal
|
|
247
|
+
})
|
|
248
|
+
|
|
249
|
+
const cn_axis = { label: `Coordination Number`, format: `d` }
|
|
250
|
+
const count_axis = { label: `Count`, format: `d` }
|
|
251
|
+
</script>
|
|
252
|
+
|
|
253
|
+
<StatusMessage bind:message={error_msg} type="error" dismissible />
|
|
254
|
+
|
|
255
|
+
{#if bar_series.length === 0}
|
|
256
|
+
<StatusMessage
|
|
257
|
+
message={allow_file_drop
|
|
258
|
+
? `Drag and drop structure files here to compute coordination numbers`
|
|
259
|
+
: `No coordination data to display`}
|
|
260
|
+
/>
|
|
261
|
+
{:else}
|
|
262
|
+
{#snippet tooltip(info: BarHandlerProps<CoordinationMetadata>)}
|
|
263
|
+
{@const cn = info.x}
|
|
264
|
+
{@const count = info.y}
|
|
265
|
+
{@const element = info.metadata?.element}
|
|
266
|
+
{@const structure_label = info.metadata?.structure_label}
|
|
267
|
+
{#if element}
|
|
268
|
+
{element} —
|
|
269
|
+
{/if}
|
|
270
|
+
{#if structure_label}
|
|
271
|
+
{structure_label} —
|
|
272
|
+
{/if}
|
|
273
|
+
CN: {format_value(cn, `.0f`)}
|
|
274
|
+
<br />
|
|
275
|
+
Sites: {format_value(count, `.0f`)}
|
|
276
|
+
{/snippet}
|
|
277
|
+
|
|
278
|
+
<BarPlot
|
|
279
|
+
{...rest}
|
|
280
|
+
series={bar_series}
|
|
281
|
+
bind:orientation
|
|
282
|
+
bind:mode
|
|
283
|
+
x_axis={{
|
|
284
|
+
...(is_horizontal ? count_axis : cn_axis),
|
|
285
|
+
range: is_horizontal ? ranges.count : ranges.cn,
|
|
286
|
+
ticks: is_horizontal ? undefined : cn_ticks,
|
|
287
|
+
...x_axis,
|
|
288
|
+
label_shift: { y: 20, ...(is_horizontal ? y_axis : x_axis).label_shift },
|
|
289
|
+
}}
|
|
290
|
+
y_axis={{
|
|
291
|
+
...(is_horizontal ? cn_axis : count_axis),
|
|
292
|
+
range: is_horizontal ? ranges.cn : ranges.count,
|
|
293
|
+
ticks: is_horizontal ? cn_ticks : undefined,
|
|
294
|
+
...y_axis,
|
|
295
|
+
label_shift: { x: 2, ...(is_horizontal ? x_axis : y_axis).label_shift },
|
|
296
|
+
}}
|
|
297
|
+
bind:display
|
|
298
|
+
{tooltip}
|
|
299
|
+
ondrop={handle_file_drop}
|
|
300
|
+
ondragover={(event) => {
|
|
301
|
+
event.preventDefault()
|
|
302
|
+
if (!allow_file_drop) return
|
|
303
|
+
dragover = true
|
|
304
|
+
}}
|
|
305
|
+
ondragleave={(event) => {
|
|
306
|
+
event.preventDefault()
|
|
307
|
+
dragover = false
|
|
308
|
+
}}
|
|
309
|
+
class={(rest.class ?? ``) + (dragover ? ` dragover` : ``)}
|
|
310
|
+
/>
|
|
311
|
+
{/if}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { AnyStructure } from '$lib/structure'
|
|
2
|
+
import type { BondingStrategy } from '$lib/structure/bonding'
|
|
3
|
+
import { BONDING_STRATEGIES } from '$lib/structure/bonding'
|
|
4
|
+
|
|
5
|
+
export interface CoordinationSite {
|
|
6
|
+
site_idx: number
|
|
7
|
+
element: string
|
|
8
|
+
coordination_num: number
|
|
9
|
+
neighbor_elements: string[]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface CoordinationData {
|
|
13
|
+
sites: CoordinationSite[]
|
|
14
|
+
cn_by_element: Map<string, number[]>
|
|
15
|
+
cn_histogram: Map<number, number>
|
|
16
|
+
cn_histogram_by_element: Map<string, Map<number, number>>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Calculate coordination numbers for all sites in a structure using the specified bonding strategy.
|
|
20
|
+
//
|
|
21
|
+
// Note: This function operates on the sites present in the structure. For structures with periodic
|
|
22
|
+
// boundary conditions (PBC), image atoms should be added to the structure BEFORE calling this function
|
|
23
|
+
// to ensure atoms at cell boundaries have their full coordination environment calculated correctly.
|
|
24
|
+
// Use get_pbc_image_sites() from '$lib/structure/pbc' to expand the structure with image atoms.
|
|
25
|
+
//
|
|
26
|
+
// When working with PBC-expanded structures:
|
|
27
|
+
// - Image atoms are appended after the original sites
|
|
28
|
+
// - Bonds will be calculated between original and image atoms
|
|
29
|
+
// - Caller should extract coordination numbers for only the first N sites (original atoms)
|
|
30
|
+
export function calc_coordination_nums(
|
|
31
|
+
structure: AnyStructure,
|
|
32
|
+
strategy: BondingStrategy = `electroneg_ratio`,
|
|
33
|
+
): CoordinationData {
|
|
34
|
+
// Get bonds using the specified strategy
|
|
35
|
+
const bonds = BONDING_STRATEGIES[strategy](structure)
|
|
36
|
+
|
|
37
|
+
// Count neighbors for each site
|
|
38
|
+
const neighbor_counts = new Map<number, Set<number>>()
|
|
39
|
+
const sites = structure.sites
|
|
40
|
+
|
|
41
|
+
for (const bond of bonds) {
|
|
42
|
+
const { site_idx_1, site_idx_2 } = bond
|
|
43
|
+
if (!neighbor_counts.has(site_idx_1)) {
|
|
44
|
+
neighbor_counts.set(site_idx_1, new Set())
|
|
45
|
+
}
|
|
46
|
+
if (!neighbor_counts.has(site_idx_2)) {
|
|
47
|
+
neighbor_counts.set(site_idx_2, new Set())
|
|
48
|
+
}
|
|
49
|
+
const neighbors_1 = neighbor_counts.get(site_idx_1)
|
|
50
|
+
const neighbors_2 = neighbor_counts.get(site_idx_2)
|
|
51
|
+
if (neighbors_1) neighbors_1.add(site_idx_2)
|
|
52
|
+
if (neighbors_2) neighbors_2.add(site_idx_1)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Build coordination site data
|
|
56
|
+
const coordination_sites: CoordinationSite[] = []
|
|
57
|
+
const cn_by_element = new Map<string, number[]>()
|
|
58
|
+
const cn_histogram = new Map<number, number>()
|
|
59
|
+
const cn_histogram_by_element = new Map<string, Map<number, number>>()
|
|
60
|
+
|
|
61
|
+
for (const [site_idx, site] of sites.entries()) {
|
|
62
|
+
const element = site.species[0]?.element ?? `Unknown`
|
|
63
|
+
const neighbors_set = neighbor_counts.get(site_idx) ?? new Set()
|
|
64
|
+
const coordination_num = neighbors_set.size
|
|
65
|
+
|
|
66
|
+
// Get neighbor elements
|
|
67
|
+
const neighbor_elements = Array.from(neighbors_set).map(
|
|
68
|
+
(neighbor_idx) => sites[neighbor_idx].species[0]?.element ?? `Unknown`,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
coordination_sites.push({ site_idx, element, coordination_num, neighbor_elements })
|
|
72
|
+
|
|
73
|
+
// Update cn_by_element
|
|
74
|
+
const element_array = cn_by_element.get(element) ?? []
|
|
75
|
+
element_array.push(coordination_num)
|
|
76
|
+
cn_by_element.set(element, element_array)
|
|
77
|
+
|
|
78
|
+
// Update overall cn_histogram
|
|
79
|
+
cn_histogram.set(coordination_num, (cn_histogram.get(coordination_num) ?? 0) + 1)
|
|
80
|
+
|
|
81
|
+
// Update cn_histogram_by_element
|
|
82
|
+
const element_histogram = cn_histogram_by_element.get(element) ?? new Map()
|
|
83
|
+
element_histogram.set(coordination_num, (element_histogram.get(coordination_num) ?? 0) + 1)
|
|
84
|
+
cn_histogram_by_element.set(element, element_histogram)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
sites: coordination_sites,
|
|
89
|
+
cn_by_element,
|
|
90
|
+
cn_histogram,
|
|
91
|
+
cn_histogram_by_element,
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './calc-coordination'
|
|
2
|
+
export { default as CoordinationBarPlot } from './CoordinationBarPlot.svelte'
|
|
3
|
+
|
|
4
|
+
export const SPLIT_MODES = {
|
|
5
|
+
by_element: `By Element`,
|
|
6
|
+
by_structure: `By Structure`,
|
|
7
|
+
none: `Combined`,
|
|
8
|
+
} as const
|
|
9
|
+
export type SplitMode = keyof typeof SPLIT_MODES
|