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
package/dist/xrd/broadening.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
const LOG_2 = Math.log(2);
|
|
2
|
-
export const DEFAULT_BROADENING = {
|
|
3
|
-
U: 0.04,
|
|
4
|
-
V: -0.02,
|
|
5
|
-
W: 0.02,
|
|
6
|
-
shape_factor: 0.5, // Mixed Gaussian/Lorentzian
|
|
7
|
-
};
|
|
8
|
-
// Calculates the Full Width at Half Maximum (FWHM) at a given theta angle
|
|
9
|
-
// using the Caglioti formula: FWHM^2 = U * tan^2(theta) + V * tan(theta) + W
|
|
10
|
-
export function caglioti_fwhm(two_theta, // Angle in degrees (2θ)
|
|
11
|
-
U, // Caglioti parameter U
|
|
12
|
-
V, // Caglioti parameter V
|
|
13
|
-
W) {
|
|
14
|
-
// FWHM in degrees (2θ)
|
|
15
|
-
const theta_rad = (two_theta / 2) * (Math.PI / 180);
|
|
16
|
-
const tan_theta = Math.tan(theta_rad);
|
|
17
|
-
const fwhm_sq = U * tan_theta ** 2 + V * tan_theta + W;
|
|
18
|
-
// Ensure non-negative squared width
|
|
19
|
-
return Math.sqrt(Math.max(1e-9, fwhm_sq));
|
|
20
|
-
}
|
|
21
|
-
// Normalized Gaussian profile. x: position, x0: peak center, fwhm: Full Width at Half Maximum
|
|
22
|
-
function gaussian(x, x0, fwhm) {
|
|
23
|
-
// Intensity at x
|
|
24
|
-
const safe_fwhm = Math.max(fwhm, 1e-9);
|
|
25
|
-
const sigma = safe_fwhm / (2 * Math.sqrt(2 * LOG_2));
|
|
26
|
-
const prefactor = 1 / (sigma * Math.sqrt(2 * Math.PI));
|
|
27
|
-
const exponent = -((x - x0) ** 2) / (2 * sigma ** 2);
|
|
28
|
-
return prefactor * Math.exp(exponent);
|
|
29
|
-
}
|
|
30
|
-
// Normalized Lorentzian profile. x: position, x0: peak center, fwhm: Full Width at Half Maximum
|
|
31
|
-
function lorentzian(x, x0, fwhm) {
|
|
32
|
-
// Intensity at x
|
|
33
|
-
const safe_fwhm = Math.max(fwhm, 1e-9);
|
|
34
|
-
const gamma = safe_fwhm / 2;
|
|
35
|
-
const prefactor = 1 / (Math.PI * gamma);
|
|
36
|
-
const denominator = 1 + ((x - x0) / gamma) ** 2;
|
|
37
|
-
return prefactor / denominator;
|
|
38
|
-
}
|
|
39
|
-
// Pseudo-Voigt profile (linear combination of Gaussian and Lorentzian).
|
|
40
|
-
export function pseudo_voigt(x, // Position
|
|
41
|
-
x0, // Peak center
|
|
42
|
-
fwhm, // Full Width at Half Maximum
|
|
43
|
-
eta) {
|
|
44
|
-
// Intensity at x
|
|
45
|
-
// Clamp eta to [0, 1]
|
|
46
|
-
const safe_eta = Math.max(0, Math.min(1, eta));
|
|
47
|
-
return safe_eta * lorentzian(x, x0, fwhm) + (1 - safe_eta) * gaussian(x, x0, fwhm);
|
|
48
|
-
}
|
|
49
|
-
// Computes a broadened XRD pattern from discrete peaks.
|
|
50
|
-
export function compute_broadened_pattern(pattern, // Discrete XRD pattern (peaks)
|
|
51
|
-
params, // Broadening parameters (U, V, W, shape_factor)
|
|
52
|
-
range, // Angular range [min, max] in degrees
|
|
53
|
-
step_size = 0.02) {
|
|
54
|
-
// Continuous broadened pattern
|
|
55
|
-
if (!Number.isFinite(step_size) || step_size <= 0) {
|
|
56
|
-
throw new Error(`step_size must be > 0 and finite`);
|
|
57
|
-
}
|
|
58
|
-
const [min_angle, max_angle] = range;
|
|
59
|
-
if (!Number.isFinite(min_angle) || !Number.isFinite(max_angle) || max_angle <= min_angle) {
|
|
60
|
-
throw new Error(`range must be finite and max > min`);
|
|
61
|
-
}
|
|
62
|
-
const { U, V, W, shape_factor } = params;
|
|
63
|
-
// Create x grid
|
|
64
|
-
const n_steps = Math.ceil((max_angle - min_angle) / step_size);
|
|
65
|
-
const xs = new Float32Array(n_steps);
|
|
66
|
-
const ys = new Float32Array(n_steps);
|
|
67
|
-
for (let idx = 0; idx < n_steps; idx++) {
|
|
68
|
-
xs[idx] = min_angle + idx * step_size;
|
|
69
|
-
}
|
|
70
|
-
const { x: peak_pos, y: peak_int } = pattern;
|
|
71
|
-
// Optimization: Process each peak and add to grid
|
|
72
|
-
for (let peak_idx = 0; peak_idx < peak_pos.length; peak_idx++) {
|
|
73
|
-
const x0 = peak_pos[peak_idx];
|
|
74
|
-
const intensity = peak_int[peak_idx];
|
|
75
|
-
// Skip negligible peaks
|
|
76
|
-
if (intensity < 1e-5)
|
|
77
|
-
continue;
|
|
78
|
-
// Skip peaks outside range (with some buffer)
|
|
79
|
-
if (x0 < min_angle - 5 || x0 > max_angle + 5)
|
|
80
|
-
continue;
|
|
81
|
-
const fwhm = caglioti_fwhm(x0, U, V, W);
|
|
82
|
-
// Define window for calculation (e.g. +/- 10 * FWHM or fixed reasonable range)
|
|
83
|
-
// Lorentzian tails are long, so we need a decent window.
|
|
84
|
-
// 20 * FWHM is usually sufficient for visual purposes.
|
|
85
|
-
const window = 20 * fwhm;
|
|
86
|
-
const start_idx = Math.max(0, Math.floor((x0 - window - min_angle) / step_size));
|
|
87
|
-
const end_idx = Math.min(n_steps - 1, Math.ceil((x0 + window - min_angle) / step_size));
|
|
88
|
-
for (let idx = start_idx; idx <= end_idx; idx++) {
|
|
89
|
-
const x = xs[idx];
|
|
90
|
-
ys[idx] += intensity * pseudo_voigt(x, x0, fwhm, shape_factor);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// Convert back to number[]
|
|
94
|
-
// We don't map hkls to continuous profile points usually,
|
|
95
|
-
// or we could try to map them to the nearest peak, but for now leave undefined.
|
|
96
|
-
return { x: Array.from(xs), y: Array.from(ys) };
|
|
97
|
-
}
|
package/dist/xrd/calc-xrd.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { Crystal } from '../structure/index';
|
|
2
|
-
import type { PatternEntry, XrdOptions, XrdPattern } from './index';
|
|
3
|
-
export declare const WAVELENGTHS: {
|
|
4
|
-
readonly CuKa: 1.54184;
|
|
5
|
-
readonly CuKa2: 1.54439;
|
|
6
|
-
readonly CuKa1: 1.54056;
|
|
7
|
-
readonly CuKb1: 1.39222;
|
|
8
|
-
readonly MoKa: 0.71073;
|
|
9
|
-
readonly MoKa2: 0.71359;
|
|
10
|
-
readonly MoKa1: 0.7093;
|
|
11
|
-
readonly MoKb1: 0.63229;
|
|
12
|
-
readonly CrKa: 2.291;
|
|
13
|
-
readonly CrKa2: 2.29361;
|
|
14
|
-
readonly CrKa1: 2.2897;
|
|
15
|
-
readonly CrKb1: 2.08487;
|
|
16
|
-
readonly FeKa: 1.93735;
|
|
17
|
-
readonly FeKa2: 1.93998;
|
|
18
|
-
readonly FeKa1: 1.93604;
|
|
19
|
-
readonly FeKb1: 1.75661;
|
|
20
|
-
readonly CoKa: 1.79026;
|
|
21
|
-
readonly CoKa2: 1.79285;
|
|
22
|
-
readonly CoKa1: 1.78896;
|
|
23
|
-
readonly CoKb1: 1.63079;
|
|
24
|
-
readonly AgKa: 0.560885;
|
|
25
|
-
readonly AgKa2: 0.563813;
|
|
26
|
-
readonly AgKa1: 0.559421;
|
|
27
|
-
readonly AgKb1: 0.497082;
|
|
28
|
-
};
|
|
29
|
-
export type RadiationKey = keyof typeof WAVELENGTHS;
|
|
30
|
-
export declare function compute_xrd_pattern(structure: Crystal, options?: XrdOptions): XrdPattern;
|
|
31
|
-
export declare function add_xrd_pattern(content: string | ArrayBufferLike, // File content as string or ArrayBuffer
|
|
32
|
-
filename: string, // Name of the file (used to detect format)
|
|
33
|
-
wavelength: number | null): Promise<{
|
|
34
|
-
pattern?: PatternEntry;
|
|
35
|
-
error?: string;
|
|
36
|
-
}>;
|
|
37
|
-
export declare const AVAILABLE_RADIATION: RadiationKey[];
|
package/dist/xrd/calc-xrd.js
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { element_data } from '../element';
|
|
2
|
-
import * as math from '../math';
|
|
3
|
-
import { parse_any_structure } from '../structure/parse';
|
|
4
|
-
import { is_crystal } from '../structure/validation';
|
|
5
|
-
// Single source of truth for atomic scattering params
|
|
6
|
-
import ATOMIC_SCATTERING_PARAMS from './atomic_scattering_params.json' with { type: 'json' };
|
|
7
|
-
import { is_xrd_data_file, parse_xrd_file } from './parse';
|
|
8
|
-
// XRD wavelengths in Angstrom (Å)
|
|
9
|
-
export const WAVELENGTHS = {
|
|
10
|
-
CuKa: 1.54184,
|
|
11
|
-
CuKa2: 1.54439,
|
|
12
|
-
CuKa1: 1.54056,
|
|
13
|
-
CuKb1: 1.39222,
|
|
14
|
-
MoKa: 0.71073,
|
|
15
|
-
MoKa2: 0.71359,
|
|
16
|
-
MoKa1: 0.7093,
|
|
17
|
-
MoKb1: 0.63229,
|
|
18
|
-
CrKa: 2.291,
|
|
19
|
-
CrKa2: 2.29361,
|
|
20
|
-
CrKa1: 2.2897,
|
|
21
|
-
CrKb1: 2.08487,
|
|
22
|
-
FeKa: 1.93735,
|
|
23
|
-
FeKa2: 1.93998,
|
|
24
|
-
FeKa1: 1.93604,
|
|
25
|
-
FeKb1: 1.75661,
|
|
26
|
-
CoKa: 1.79026,
|
|
27
|
-
CoKa2: 1.79285,
|
|
28
|
-
CoKa1: 1.78896,
|
|
29
|
-
CoKb1: 1.63079,
|
|
30
|
-
AgKa: 0.560885,
|
|
31
|
-
AgKa2: 0.563813,
|
|
32
|
-
AgKa1: 0.559421,
|
|
33
|
-
AgKb1: 0.497082,
|
|
34
|
-
};
|
|
35
|
-
// Type guard to safely check if a string is a valid RadiationKey
|
|
36
|
-
function is_radiation_key(key) {
|
|
37
|
-
return key in WAVELENGTHS;
|
|
38
|
-
}
|
|
39
|
-
// Tolerances from pymatgen.analysis.diffraction.core
|
|
40
|
-
const TWO_THETA_TOL = 1e-5;
|
|
41
|
-
const SCALED_INTENSITY_TOL = 1e-3;
|
|
42
|
-
const ELEMENT_Z = Object.fromEntries(element_data.map((entry) => [entry.symbol, entry.number]));
|
|
43
|
-
function get_unique_families(hkls) {
|
|
44
|
-
// Port of pymatgen's get_unique_families: group Miller indices by absolute-value permutations
|
|
45
|
-
const key_map = new Map();
|
|
46
|
-
for (const hkl of hkls) {
|
|
47
|
-
const abs_sorted = hkl.map((val) => Math.abs(val)).sort((x, y) => x - y);
|
|
48
|
-
const key = abs_sorted.join(`,`);
|
|
49
|
-
const list = key_map.get(key);
|
|
50
|
-
if (list)
|
|
51
|
-
list.push(hkl);
|
|
52
|
-
else
|
|
53
|
-
key_map.set(key, [hkl]);
|
|
54
|
-
}
|
|
55
|
-
// Choose representative with max tuple (lexicographic) like numpy max(val)
|
|
56
|
-
const family_map = new Map();
|
|
57
|
-
for (const group of key_map.values()) {
|
|
58
|
-
let representative = group[0];
|
|
59
|
-
for (const candidate of group) {
|
|
60
|
-
const better = candidate[0] > representative[0] ||
|
|
61
|
-
(candidate[0] === representative[0] &&
|
|
62
|
-
(candidate[1] > representative[1] ||
|
|
63
|
-
(candidate[1] === representative[1] && candidate[2] > representative[2])));
|
|
64
|
-
if (better)
|
|
65
|
-
representative = candidate;
|
|
66
|
-
}
|
|
67
|
-
family_map.set(representative.join(`,`), group.length);
|
|
68
|
-
}
|
|
69
|
-
return family_map;
|
|
70
|
-
}
|
|
71
|
-
function compute_reciprocal_lattice_rows(structure) {
|
|
72
|
-
// For row-wise lattice matrix A (rows are a, b, c), reciprocal rows are inv(A)^T
|
|
73
|
-
const direct = structure.lattice.matrix;
|
|
74
|
-
const inv = math.matrix_inverse_3x3(direct);
|
|
75
|
-
const recip = math.transpose_3x3_matrix(inv);
|
|
76
|
-
return recip;
|
|
77
|
-
}
|
|
78
|
-
function enumerate_reciprocal_points(recip_rows, max_radius, min_radius) {
|
|
79
|
-
const recip_b1 = recip_rows[0];
|
|
80
|
-
const recip_b2 = recip_rows[1];
|
|
81
|
-
const recip_b3 = recip_rows[2];
|
|
82
|
-
const n1 = Math.max(Math.hypot(...recip_b1), 1e-12);
|
|
83
|
-
const n2 = Math.max(Math.hypot(...recip_b2), 1e-12);
|
|
84
|
-
const n3 = Math.max(Math.hypot(...recip_b3), 1e-12);
|
|
85
|
-
const h_max = Math.ceil(max_radius / n1 + 2);
|
|
86
|
-
const k_max = Math.ceil(max_radius / n2 + 2);
|
|
87
|
-
const l_max = Math.ceil(max_radius / n3 + 2);
|
|
88
|
-
// Safety cap to avoid pathological enumeration volume
|
|
89
|
-
const CAP = 512;
|
|
90
|
-
if (Math.max(h_max, k_max, l_max) > CAP) {
|
|
91
|
-
throw new Error(`enumerate_reciprocal_points: max(h,k,l) exceeds cap ${CAP}`);
|
|
92
|
-
}
|
|
93
|
-
const points = [];
|
|
94
|
-
for (let h_idx = -h_max; h_idx <= h_max; h_idx++) {
|
|
95
|
-
for (let k_idx = -k_max; k_idx <= k_max; k_idx++) {
|
|
96
|
-
for (let l_idx = -l_max; l_idx <= l_max; l_idx++) {
|
|
97
|
-
if (h_idx === 0 && k_idx === 0 && l_idx === 0)
|
|
98
|
-
continue;
|
|
99
|
-
const h_mul_b1 = math.scale(recip_b1, h_idx);
|
|
100
|
-
const k_mul_b2 = math.scale(recip_b2, k_idx);
|
|
101
|
-
const l_mul_b3 = math.scale(recip_b3, l_idx);
|
|
102
|
-
const g_vec = math.add(h_mul_b1, k_mul_b2, l_mul_b3);
|
|
103
|
-
const g_norm = Math.hypot(...g_vec);
|
|
104
|
-
if (g_norm < min_radius || g_norm > max_radius)
|
|
105
|
-
continue;
|
|
106
|
-
points.push({ hkl: [h_idx, k_idx, l_idx], g_norm });
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// Sort by (g_norm asc, -h, -k, -l) to mimic pymatgen ordering
|
|
111
|
-
points.sort((p1, p2) => p1.g_norm !== p2.g_norm
|
|
112
|
-
? p1.g_norm - p2.g_norm
|
|
113
|
-
: p2.hkl[0] !== p1.hkl[0]
|
|
114
|
-
? p2.hkl[0] - p1.hkl[0]
|
|
115
|
-
: p2.hkl[1] !== p1.hkl[1]
|
|
116
|
-
? p2.hkl[1] - p1.hkl[1]
|
|
117
|
-
: p2.hkl[2] - p1.hkl[2]);
|
|
118
|
-
return points;
|
|
119
|
-
}
|
|
120
|
-
export function compute_xrd_pattern(structure, options = {}) {
|
|
121
|
-
const wl_input = options.wavelength ?? `CuKa`;
|
|
122
|
-
let wavelength;
|
|
123
|
-
if (typeof wl_input === `number`) {
|
|
124
|
-
if (!Number.isFinite(wl_input) || wl_input <= 0) {
|
|
125
|
-
throw new Error(`Invalid wavelength: ${wl_input}. Must be a finite positive number.`);
|
|
126
|
-
}
|
|
127
|
-
wavelength = wl_input;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
if (!is_radiation_key(wl_input)) {
|
|
131
|
-
throw new Error(`Unknown radiation key: ${wl_input}`);
|
|
132
|
-
}
|
|
133
|
-
wavelength = WAVELENGTHS[wl_input];
|
|
134
|
-
}
|
|
135
|
-
// Symmetry refinement (symprec > 0) is not implemented in TS version.
|
|
136
|
-
// Option retained for API parity.
|
|
137
|
-
// const symprec = options.symprec ?? 0
|
|
138
|
-
const recip_rows = compute_reciprocal_lattice_rows(structure);
|
|
139
|
-
// Bragg condition bounds: reciprocal vector length r = 2 sin(theta) / lambda
|
|
140
|
-
const two_theta_range = options.two_theta_range === null ? null : (options.two_theta_range ?? [0, 180]);
|
|
141
|
-
const [min_radius, max_radius] = two_theta_range === null
|
|
142
|
-
? [0, 2 / wavelength]
|
|
143
|
-
: (([t_min, t_max]) => {
|
|
144
|
-
const r_min = (2 * Math.sin((t_min / 2) * (Math.PI / 180))) / wavelength;
|
|
145
|
-
const r_max = (2 * Math.sin((t_max / 2) * (Math.PI / 180))) / wavelength;
|
|
146
|
-
return [r_min, r_max];
|
|
147
|
-
})(two_theta_range);
|
|
148
|
-
const recip_points = enumerate_reciprocal_points(recip_rows, max_radius, min_radius);
|
|
149
|
-
const coeffs = [];
|
|
150
|
-
const frac_coords = [];
|
|
151
|
-
const occus = [];
|
|
152
|
-
const dw_factors = [];
|
|
153
|
-
const debye_waller_factors = options.debye_waller_factors ?? {};
|
|
154
|
-
for (const site of structure.sites) {
|
|
155
|
-
for (const species of site.species) {
|
|
156
|
-
const element_symbol = species.element;
|
|
157
|
-
if (ELEMENT_Z[element_symbol] === undefined) {
|
|
158
|
-
throw new Error(`Unknown atomic number for element ${element_symbol}`);
|
|
159
|
-
}
|
|
160
|
-
const raw_coeff = ATOMIC_SCATTERING_PARAMS[element_symbol];
|
|
161
|
-
if (!raw_coeff) {
|
|
162
|
-
throw new Error(`No atomic scattering coefficients for ${element_symbol}. Extend ATOMIC_SCATTERING_PARAMS.`);
|
|
163
|
-
}
|
|
164
|
-
let coeff_entry;
|
|
165
|
-
if (Array.isArray(raw_coeff)) {
|
|
166
|
-
const a_arr = raw_coeff.map(([a]) => a);
|
|
167
|
-
const b_arr = raw_coeff.map(([_, b]) => b);
|
|
168
|
-
coeff_entry = { a: a_arr, b: b_arr };
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
coeff_entry = { a: raw_coeff.a.slice(), b: raw_coeff.b.slice(), c: raw_coeff.c };
|
|
172
|
-
}
|
|
173
|
-
coeffs.push(coeff_entry);
|
|
174
|
-
frac_coords.push(site.abc);
|
|
175
|
-
occus.push(species.occu);
|
|
176
|
-
dw_factors.push(debye_waller_factors[element_symbol] ?? 0);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
// Accumulate peaks by merging two_thetas within tolerance
|
|
180
|
-
const peaks = new Map();
|
|
181
|
-
const two_thetas = [];
|
|
182
|
-
const merge_tol = options.peak_merge_tol ?? TWO_THETA_TOL;
|
|
183
|
-
const scaled_tol = options.scaled_intensity_tol ?? SCALED_INTENSITY_TOL;
|
|
184
|
-
for (const entry of recip_points) {
|
|
185
|
-
const hkl = entry.hkl;
|
|
186
|
-
const g_norm = entry.g_norm;
|
|
187
|
-
if (g_norm === 0)
|
|
188
|
-
continue;
|
|
189
|
-
const asin_arg = (wavelength * g_norm) / 2;
|
|
190
|
-
// asin domain can exceed 1 by FP error — clamp to avoid NaN
|
|
191
|
-
const clamped_asin_arg = Math.min(1, Math.max(-1, asin_arg));
|
|
192
|
-
const theta = Math.asin(clamped_asin_arg);
|
|
193
|
-
const sin_theta_over_lambda = g_norm / 2;
|
|
194
|
-
const sin_theta_over_lambda_sq = sin_theta_over_lambda * sin_theta_over_lambda;
|
|
195
|
-
// g.r for all fractional coords
|
|
196
|
-
const g_dot_r_all = frac_coords.map((frac_coord) => math.dot(frac_coord, hkl));
|
|
197
|
-
// Atomic scattering factors (vectorized style)
|
|
198
|
-
const f_scattering = coeffs.map((coeff_entry) => {
|
|
199
|
-
const { a: a_arr, b: b_arr } = coeff_entry;
|
|
200
|
-
const num_terms = Math.min(a_arr.length, b_arr.length);
|
|
201
|
-
const sum_terms = a_arr
|
|
202
|
-
.slice(0, num_terms)
|
|
203
|
-
.reduce((sum, a_i, term_idx) => sum + a_i * Math.exp(-b_arr[term_idx] * sin_theta_over_lambda_sq), 0);
|
|
204
|
-
return sum_terms + (coeff_entry.c ?? 0);
|
|
205
|
-
});
|
|
206
|
-
const dw_corr = dw_factors.map((dw_b) => Math.exp(-dw_b * sin_theta_over_lambda_sq));
|
|
207
|
-
// Structure factor sum: sum(fs * occu * exp(2πi g·r) * DW)
|
|
208
|
-
const { real: f_real, imag: f_imag } = f_scattering.reduce((acc, fs, idx) => {
|
|
209
|
-
const phase = 2 * Math.PI * g_dot_r_all[idx];
|
|
210
|
-
const weight = fs * occus[idx] * dw_corr[idx];
|
|
211
|
-
const real = acc.real + weight * Math.cos(phase);
|
|
212
|
-
const imag = acc.imag + weight * Math.sin(phase);
|
|
213
|
-
return { real, imag };
|
|
214
|
-
}, { real: 0, imag: 0 });
|
|
215
|
-
const sin_theta = Math.sin(theta);
|
|
216
|
-
const cos_theta = Math.cos(theta);
|
|
217
|
-
const denom_raw = sin_theta * sin_theta * Math.abs(cos_theta);
|
|
218
|
-
// Clamp denominator away from zero to avoid Inf/NaN when 2θ → 180° (cosθ → 0)
|
|
219
|
-
const denom = Math.max(denom_raw, 1e-12);
|
|
220
|
-
const lorentz = (1 + Math.cos(2 * theta) ** 2) / denom;
|
|
221
|
-
const intensity_hkl = (f_real * f_real + f_imag * f_imag) * lorentz;
|
|
222
|
-
const two_theta = math.to_degrees(2 * theta);
|
|
223
|
-
// Use (h, k, l) always. For hexagonal systems, pymatgen presents Miller–Bravais (h, k, i, l),
|
|
224
|
-
// but downstream components expect 3-index HKL. Keep 3-index form to match types/consumers.
|
|
225
|
-
const hkl_to_store = [hkl[0], hkl[1], hkl[2]];
|
|
226
|
-
// Merge peaks within tolerance
|
|
227
|
-
let found_index = null;
|
|
228
|
-
for (let idx = 0; idx < two_thetas.length; idx++) {
|
|
229
|
-
if (Math.abs(two_thetas[idx] - two_theta) < merge_tol) {
|
|
230
|
-
found_index = idx;
|
|
231
|
-
break;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
if (found_index !== null) {
|
|
235
|
-
const key = two_thetas[found_index];
|
|
236
|
-
const item = peaks.get(key);
|
|
237
|
-
if (item) {
|
|
238
|
-
item.intensity += intensity_hkl;
|
|
239
|
-
item.hkls.push(hkl_to_store);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
const d_hkl = 1 / g_norm;
|
|
244
|
-
peaks.set(two_theta, { intensity: intensity_hkl, hkls: [hkl_to_store], d_hkl });
|
|
245
|
-
two_thetas.push(two_theta);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
if (peaks.size === 0)
|
|
249
|
-
return { x: [], y: [] };
|
|
250
|
-
// Scale intensities so that the max intensity is 100, and filter by scaled tol
|
|
251
|
-
const max_intensity = Math.max(...Array.from(peaks.values()).map((peak) => peak.intensity));
|
|
252
|
-
const xs = [];
|
|
253
|
-
const ys = [];
|
|
254
|
-
const hkls_out = [];
|
|
255
|
-
const d_out = [];
|
|
256
|
-
const sorted_two_thetas = Array.from(peaks.keys()).sort((a, b) => a - b);
|
|
257
|
-
for (const angle of sorted_two_thetas) {
|
|
258
|
-
const item = peaks.get(angle);
|
|
259
|
-
if (!item)
|
|
260
|
-
continue;
|
|
261
|
-
const scaled_val = (item.intensity / max_intensity) * 100;
|
|
262
|
-
if (scaled_val > scaled_tol) {
|
|
263
|
-
xs.push(angle);
|
|
264
|
-
ys.push(item.intensity);
|
|
265
|
-
const fam = get_unique_families(item.hkls);
|
|
266
|
-
const fam_array = [];
|
|
267
|
-
for (const [repr_key, multiplicity] of fam.entries()) {
|
|
268
|
-
const repr = repr_key.split(`,`).map((num_str) => parseInt(num_str, 10));
|
|
269
|
-
fam_array.push({ hkl: repr, multiplicity });
|
|
270
|
-
}
|
|
271
|
-
hkls_out.push(fam_array);
|
|
272
|
-
d_out.push(item.d_hkl);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
// Final scaling if requested
|
|
276
|
-
if (options.scaled ?? true) {
|
|
277
|
-
const max_y = Math.max(1, ...ys);
|
|
278
|
-
for (let idx = 0; idx < ys.length; idx++)
|
|
279
|
-
ys[idx] = (ys[idx] / max_y) * 100;
|
|
280
|
-
}
|
|
281
|
-
return { x: xs, y: ys, hkls: hkls_out, d_hkls: d_out };
|
|
282
|
-
}
|
|
283
|
-
// Process dropped file content and return an XRD pattern.
|
|
284
|
-
// Supports both direct XRD data files (.xy, .brml) and structure files
|
|
285
|
-
// (which are used to compute theoretical XRD patterns).
|
|
286
|
-
export async function add_xrd_pattern(content, // File content as string or ArrayBuffer
|
|
287
|
-
filename, // Name of the file (used to detect format)
|
|
288
|
-
wavelength) {
|
|
289
|
-
// Object with pattern entry or error message
|
|
290
|
-
try {
|
|
291
|
-
// Check if file is a direct XRD data file (.xy, .brml)
|
|
292
|
-
if (is_xrd_data_file(filename)) {
|
|
293
|
-
// Convert ArrayBufferLike to ArrayBuffer if needed (handles SharedArrayBuffer)
|
|
294
|
-
let buffer_content;
|
|
295
|
-
if (typeof content === `string`) {
|
|
296
|
-
buffer_content = content;
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
buffer_content = new Uint8Array(content).buffer;
|
|
300
|
-
}
|
|
301
|
-
const pattern = await parse_xrd_file(buffer_content, filename);
|
|
302
|
-
if (pattern && pattern.x.length > 0) {
|
|
303
|
-
return { pattern: { label: filename || `XRD data`, pattern } };
|
|
304
|
-
}
|
|
305
|
-
// Get base extension (strip .gz if present) for error message
|
|
306
|
-
const base_name = filename.toLowerCase().replace(/\.gz$/, ``);
|
|
307
|
-
const ext = base_name.split(`.`).pop()?.toUpperCase() || `XRD`;
|
|
308
|
-
const format_hints = {
|
|
309
|
-
XY: `Expected 2-column format: "2theta intensity" (space/tab/comma separated)`,
|
|
310
|
-
XYE: `Expected 3-column format: "2theta intensity error" (space/tab/comma separated)`,
|
|
311
|
-
BRML: `Expected Bruker RAW/BRML ZIP archive with RawData XML`,
|
|
312
|
-
XRDML: `Expected PANalytical XRDML format with dataPoints section`,
|
|
313
|
-
};
|
|
314
|
-
const hint = format_hints[ext] || `Check file format and encoding`;
|
|
315
|
-
return { error: `Failed to parse ${ext} file: no valid data found. ${hint}` };
|
|
316
|
-
}
|
|
317
|
-
// Otherwise, try to parse as a structure file and compute XRD pattern
|
|
318
|
-
const text_content = typeof content === `string` ? content : new TextDecoder().decode(content);
|
|
319
|
-
const parsed_structure = parse_any_structure(text_content, filename);
|
|
320
|
-
if (is_crystal(parsed_structure)) {
|
|
321
|
-
const pattern = compute_xrd_pattern(parsed_structure, {
|
|
322
|
-
wavelength: typeof wavelength === `number` ? wavelength : undefined,
|
|
323
|
-
});
|
|
324
|
-
return { pattern: { label: filename || `Dropped structure`, pattern } };
|
|
325
|
-
}
|
|
326
|
-
return {
|
|
327
|
-
error: `Cannot compute XRD: structure must have a lattice and atomic sites. ` +
|
|
328
|
-
`Supported formats: CIF, POSCAR, JSON, XYZ`,
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
catch (exc) {
|
|
332
|
-
return {
|
|
333
|
-
error: `Failed to compute XRD pattern: ${exc instanceof Error ? exc.message : String(exc)}`,
|
|
334
|
-
};
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
export const AVAILABLE_RADIATION = Object.keys(WAVELENGTHS);
|
package/dist/xrd/index.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { CompositionType } from '../composition';
|
|
2
|
-
import type { Vec3 } from '../math';
|
|
3
|
-
import type { RadiationKey } from './calc-xrd';
|
|
4
|
-
export * from './broadening';
|
|
5
|
-
export * from './calc-xrd';
|
|
6
|
-
export * from './parse';
|
|
7
|
-
export { default as XrdPlot } from './XrdPlot.svelte';
|
|
8
|
-
export type Hkl = Vec3;
|
|
9
|
-
export type HklObj = {
|
|
10
|
-
hkl: Hkl;
|
|
11
|
-
multiplicity?: number;
|
|
12
|
-
};
|
|
13
|
-
export type RecipPoint = {
|
|
14
|
-
hkl: Hkl;
|
|
15
|
-
g_norm: number;
|
|
16
|
-
};
|
|
17
|
-
export type HklFormat = `compact` | `full` | null;
|
|
18
|
-
export type XrdPattern = {
|
|
19
|
-
x: number[];
|
|
20
|
-
y: number[];
|
|
21
|
-
hkls?: HklObj[][];
|
|
22
|
-
d_hkls?: number[];
|
|
23
|
-
};
|
|
24
|
-
export type XrdOptions = {
|
|
25
|
-
wavelength?: number | RadiationKey;
|
|
26
|
-
symprec?: number;
|
|
27
|
-
debye_waller_factors?: CompositionType;
|
|
28
|
-
scaled?: boolean;
|
|
29
|
-
two_theta_range?: [number, number] | null;
|
|
30
|
-
peak_merge_tol?: number;
|
|
31
|
-
scaled_intensity_tol?: number;
|
|
32
|
-
};
|
|
33
|
-
export interface PatternEntry {
|
|
34
|
-
label: string;
|
|
35
|
-
pattern: XrdPattern;
|
|
36
|
-
color?: string;
|
|
37
|
-
}
|
package/dist/xrd/index.js
DELETED
package/dist/xrd/parse.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { XrdPattern } from './index';
|
|
2
|
-
export declare function parse_xy_file(content: string): XrdPattern | null;
|
|
3
|
-
export declare function parse_xye_file(content: string): XrdPattern | null;
|
|
4
|
-
export declare function parse_ras_file(content: string): XrdPattern | null;
|
|
5
|
-
export declare function parse_uxd_file(content: string): XrdPattern | null;
|
|
6
|
-
export declare function parse_gsas_file(content: string): XrdPattern | null;
|
|
7
|
-
export declare function parse_bruker_raw_file(data: ArrayBuffer): XrdPattern | null;
|
|
8
|
-
export declare function parse_brml_file(data: ArrayBuffer): Promise<XrdPattern | null>;
|
|
9
|
-
export declare function parse_xrdml_file(content: string): XrdPattern | null;
|
|
10
|
-
export declare const XRD_FILE_EXTENSIONS: readonly ["xy", "xye", "csv", "dat", "asc", "txt", "ras", "uxd", "gsas", "gsa", "gda", "fxye", "xrdml", "brml", "raw"];
|
|
11
|
-
export type XrdFileExtension = (typeof XRD_FILE_EXTENSIONS)[number];
|
|
12
|
-
export declare function parse_xrd_file(content: string | ArrayBuffer, filename: string): Promise<XrdPattern | null>;
|
|
13
|
-
export declare function is_xrd_data_file(filename: string): boolean;
|