matterviz 0.4.1 → 0.4.2
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/dist/EmptyState.svelte +10 -4
- package/dist/FilePicker.svelte +12 -14
- package/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +2 -2
- package/dist/app.css +53 -0
- package/dist/brillouin/BrillouinZone.svelte +75 -85
- package/dist/brillouin/BrillouinZone.svelte.d.ts +5 -7
- package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
- package/dist/brillouin/BrillouinZoneExportPane.svelte +18 -14
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +6 -10
- package/dist/brillouin/BrillouinZoneScene.svelte +26 -39
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram.svelte +33 -38
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +62 -74
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +511 -547
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/async-compute.svelte.js +1 -1
- package/dist/chempot-diagram/controls-state.svelte.js +1 -1
- package/dist/colors/index.d.ts +0 -4
- package/dist/colors/index.js +19 -20
- package/dist/composition/BarChart.svelte +37 -31
- package/dist/composition/BubbleChart.svelte +17 -17
- package/dist/composition/Composition.svelte +7 -11
- package/dist/composition/Formula.svelte +18 -25
- package/dist/composition/FormulaFilter.svelte +92 -95
- package/dist/composition/PieChart.svelte +55 -41
- package/dist/composition/format.js +1 -1
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/parse.d.ts +2 -2
- package/dist/composition/parse.js +11 -10
- package/dist/constants.js +11 -9
- package/dist/convex-hull/ConvexHull.svelte +12 -15
- package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull2D.svelte +93 -92
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +109 -140
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +75 -94
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHullChrome.svelte +36 -40
- package/dist/convex-hull/ConvexHullControls.svelte +46 -48
- package/dist/convex-hull/ConvexHullStats.svelte +193 -195
- package/dist/convex-hull/ConvexHullTooltip.svelte +5 -12
- package/dist/convex-hull/GasPressureControls.svelte +5 -12
- package/dist/convex-hull/StructurePopup.svelte +17 -21
- package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
- package/dist/convex-hull/TemperatureSlider.svelte +4 -10
- package/dist/convex-hull/canvas-interactions.svelte.js +2 -1
- package/dist/convex-hull/helpers.d.ts +8 -10
- package/dist/convex-hull/helpers.js +36 -36
- package/dist/convex-hull/hull-state.svelte.d.ts +1 -1
- package/dist/convex-hull/thermodynamics.js +18 -17
- package/dist/coordination/CoordinationBarPlot.svelte +38 -33
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
- package/dist/coordination/calc-coordination.d.ts +1 -1
- package/dist/coordination/calc-coordination.js +28 -25
- package/dist/element/BohrAtom.svelte +5 -8
- package/dist/element/ElementHeading.svelte +4 -1
- package/dist/element/ElementPhoto.svelte +11 -9
- package/dist/element/ElementStats.svelte +12 -10
- package/dist/element/ElementTile.svelte +24 -29
- package/dist/element/Nucleus.svelte +4 -2
- package/dist/element/data.d.ts +1 -2
- package/dist/element/helpers.d.ts +4 -0
- package/dist/element/helpers.js +18 -0
- package/dist/element/index.d.ts +1 -4
- package/dist/element/index.js +3 -18
- package/dist/feedback/DragOverlay.svelte +5 -5
- package/dist/feedback/DragOverlay.svelte.d.ts +2 -2
- package/dist/feedback/StatusMessage.svelte +7 -4
- package/dist/fermi-surface/FermiSlice.svelte +21 -18
- package/dist/fermi-surface/FermiSurface.svelte +14 -22
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +5 -7
- package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceScene.svelte +37 -64
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
- package/dist/fermi-surface/compute.js +3 -3
- package/dist/fermi-surface/parse.js +22 -24
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +109 -148
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +2 -2
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +9 -7
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +1 -1
- package/dist/heatmap-matrix/index.d.ts +5 -0
- package/dist/icons.d.ts +4 -0
- package/dist/icons.js +4 -0
- package/dist/io/ExportPane.svelte +10 -6
- package/dist/io/decompress.d.ts +2 -1
- package/dist/io/decompress.js +22 -35
- package/dist/io/export.d.ts +4 -0
- package/dist/io/export.js +5 -1
- package/dist/io/fetch.d.ts +0 -3
- package/dist/io/fetch.js +0 -11
- package/dist/io/index.d.ts +0 -1
- package/dist/io/index.js +2 -9
- package/dist/io/is-binary.d.ts +9 -0
- package/dist/io/is-binary.js +45 -1
- package/dist/io/url-drop.js +13 -25
- package/dist/isosurface/Isosurface.svelte +17 -23
- package/dist/isosurface/IsosurfaceControls.svelte +37 -42
- package/dist/isosurface/parse-vaspwave.d.ts +3 -0
- package/dist/isosurface/parse-vaspwave.js +138 -0
- package/dist/isosurface/parse.js +6 -6
- package/dist/labels.d.ts +6 -2
- package/dist/labels.js +43 -13
- package/dist/layout/FullscreenButton.svelte +2 -1
- package/dist/layout/FullscreenToggle.svelte +10 -4
- package/dist/layout/InfoCard.svelte +7 -18
- package/dist/layout/InfoTag.svelte +1 -3
- package/dist/layout/NumberRangeInput.svelte +46 -0
- package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
- package/dist/layout/PropertyFilter.svelte +2 -6
- package/dist/layout/SettingsSection.svelte +21 -17
- package/dist/layout/SubpageGrid.svelte +3 -1
- package/dist/layout/ViewerChrome.svelte +9 -10
- package/dist/layout/ViewerChrome.svelte.d.ts +2 -1
- package/dist/layout/fullscreen.js +3 -5
- package/dist/layout/fullscreen.svelte.js +1 -2
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/index.js +1 -0
- package/dist/layout/json-tree/JsonNode.svelte +8 -11
- package/dist/layout/json-tree/JsonTree.svelte +53 -77
- package/dist/layout/json-tree/JsonValue.svelte +7 -15
- package/dist/layout/json-tree/utils.js +14 -23
- package/dist/math.d.ts +2 -0
- package/dist/math.js +19 -0
- package/dist/overlays/ContextMenu.svelte +4 -2
- package/dist/overlays/CopyButton.svelte +11 -5
- package/dist/overlays/DragControlTab.svelte +6 -1
- package/dist/overlays/DraggablePane.svelte +81 -26
- package/dist/overlays/DraggablePane.svelte.d.ts +1 -0
- package/dist/overlays/GlassChip.svelte +30 -0
- package/dist/overlays/GlassChip.svelte.d.ts +8 -0
- package/dist/overlays/InfoPaneCards.svelte +11 -23
- package/dist/overlays/index.d.ts +7 -0
- package/dist/overlays/index.js +26 -0
- package/dist/overlays/portal.d.ts +2 -0
- package/dist/overlays/portal.js +14 -0
- package/dist/periodic-table/PeriodicTable.svelte +113 -145
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
- package/dist/periodic-table/PeriodicTableControls.svelte +11 -63
- package/dist/periodic-table/TableInset.svelte +9 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +50 -71
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
- package/dist/phase-diagram/PhaseDiagramControls.svelte +70 -94
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +12 -12
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
- package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
- package/dist/phase-diagram/build-diagram.js +3 -3
- package/dist/phase-diagram/diagram-input.d.ts +1 -2
- package/dist/phase-diagram/parse.js +15 -15
- package/dist/phase-diagram/svg-to-diagram.js +21 -15
- package/dist/phase-diagram/utils.js +2 -3
- package/dist/plot/bar/BarPlot.svelte +430 -391
- package/dist/plot/bar/BarPlot.svelte.d.ts +2 -0
- package/dist/plot/bar/BarPlotControls.svelte +1 -3
- package/dist/plot/bar/BarPlotControls.svelte.d.ts +4 -6
- package/dist/plot/bar/SpacegroupBarPlot.svelte +29 -36
- package/dist/plot/bar/data.d.ts +5 -4
- package/dist/plot/bar/data.js +2 -1
- package/dist/plot/box/BoxPlot.svelte +301 -209
- package/dist/plot/box/BoxPlot.svelte.d.ts +2 -0
- package/dist/plot/box/Violin.svelte.d.ts +1 -0
- package/dist/plot/box/box-plot.js +1 -1
- package/dist/plot/core/auto-place.js +1 -1
- package/dist/plot/core/axis-utils.d.ts +12 -7
- package/dist/plot/core/axis-utils.js +48 -48
- package/dist/plot/core/components/AxisLabel.svelte +82 -20
- package/dist/plot/core/components/AxisLabel.svelte.d.ts +1 -0
- package/dist/plot/core/components/ColorBar.svelte +101 -106
- package/dist/plot/core/components/ColorScaleSelect.svelte +1 -1
- package/dist/plot/core/components/FillArea.svelte +10 -17
- package/dist/plot/core/components/HierarchyControls.svelte +249 -0
- package/dist/plot/{sunburst/SunburstControls.svelte.d.ts → core/components/HierarchyControls.svelte.d.ts} +12 -8
- package/dist/plot/core/components/InteractiveAxisLabel.svelte +1 -1
- package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +1 -1
- package/dist/plot/core/components/Line.svelte +18 -9
- package/dist/plot/core/components/Line.svelte.d.ts +2 -0
- package/dist/plot/core/components/PlotAxis.svelte +40 -17
- package/dist/plot/core/components/PlotControls.svelte +65 -41
- package/dist/plot/core/components/PlotLegend.svelte +31 -35
- package/dist/plot/core/components/PlotMarginals.svelte +616 -0
- package/dist/plot/core/components/PlotMarginals.svelte.d.ts +15 -0
- package/dist/plot/core/components/PlotTooltip.svelte +1 -1
- package/dist/plot/core/components/PortalSelect.svelte +4 -8
- package/dist/plot/core/components/ReferenceLine.svelte +27 -24
- package/dist/plot/core/components/ReferenceLine3D.svelte +54 -57
- package/dist/plot/core/components/ReferencePlane.svelte +7 -8
- package/dist/plot/core/components/ZeroLines.svelte +4 -8
- package/dist/plot/core/components/ZoomRect.svelte +1 -2
- package/dist/plot/core/components/index.d.ts +1 -0
- package/dist/plot/core/components/index.js +1 -0
- package/dist/plot/core/data-cleaning-signal.d.ts +46 -0
- package/dist/plot/core/data-cleaning-signal.js +467 -0
- package/dist/plot/core/data-cleaning.d.ts +2 -42
- package/dist/plot/core/data-cleaning.js +27 -474
- package/dist/plot/core/data-transform.js +9 -5
- package/dist/plot/core/fill-utils.d.ts +3 -1
- package/dist/plot/core/fill-utils.js +28 -6
- package/dist/plot/core/index.d.ts +1 -0
- package/dist/plot/core/index.js +1 -0
- package/dist/plot/core/interactions.js +0 -2
- package/dist/plot/core/layout.d.ts +3 -1
- package/dist/plot/core/layout.js +22 -13
- package/dist/plot/core/marginals.d.ts +170 -0
- package/dist/plot/core/marginals.js +436 -0
- package/dist/plot/core/reference-line.js +1 -1
- package/dist/plot/core/scales.d.ts +23 -0
- package/dist/plot/core/scales.js +39 -13
- package/dist/plot/core/types/fills.d.ts +101 -0
- package/dist/plot/core/types/fills.js +15 -0
- package/dist/plot/core/types/plot-3d.d.ts +87 -0
- package/dist/plot/core/types/plot-3d.js +4 -0
- package/dist/plot/core/types/reference-lines.d.ts +140 -0
- package/dist/plot/core/types/reference-lines.js +9 -0
- package/dist/plot/core/types.d.ts +29 -324
- package/dist/plot/core/types.js +23 -20
- package/dist/plot/core/utils/hierarchy-chart.d.ts +51 -0
- package/dist/plot/core/utils/hierarchy-chart.js +179 -0
- package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
- package/dist/plot/core/utils/hierarchy-labels.js +99 -0
- package/dist/plot/core/utils/label-placement.js +2 -2
- package/dist/plot/histogram/Histogram.svelte +304 -325
- package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
- package/dist/plot/histogram/HistogramControls.svelte +30 -28
- package/dist/plot/histogram/histogram.d.ts +31 -0
- package/dist/plot/histogram/histogram.js +70 -0
- package/dist/plot/histogram/index.d.ts +1 -0
- package/dist/plot/histogram/index.js +1 -0
- package/dist/plot/index.d.ts +1 -0
- package/dist/plot/index.js +1 -0
- package/dist/plot/sankey/Sankey.svelte +78 -69
- package/dist/plot/sankey/Sankey.svelte.d.ts +2 -2
- package/dist/plot/sankey/SankeyControls.svelte +22 -16
- package/dist/plot/scatter/BinnedScatterPlot.svelte +263 -109
- package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +7 -0
- package/dist/plot/scatter/ElementScatter.svelte +4 -1
- package/dist/plot/scatter/ScatterPlot.svelte +477 -385
- package/dist/plot/scatter/ScatterPlot.svelte.d.ts +2 -0
- package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
- package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
- package/dist/plot/scatter/ScatterPoint.svelte +16 -9
- package/dist/plot/scatter/binned-scatter-types.d.ts +3 -2
- package/dist/plot/scatter/binned-scatter-types.js +6 -1
- package/dist/plot/scatter/scatter-data.d.ts +1 -1
- package/dist/plot/scatter/scatter-data.js +8 -7
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte +25 -34
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +2 -2
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +8 -5
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +113 -116
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +2 -2
- package/dist/plot/scatter-3d/Surface3D.svelte +4 -13
- package/dist/plot/sunburst/Sunburst.svelte +251 -329
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +2 -2
- package/dist/plot/sunburst/index.d.ts +1 -1
- package/dist/plot/sunburst/index.js +2 -1
- package/dist/plot/sunburst/render.d.ts +2 -2
- package/dist/plot/sunburst/render.js +47 -22
- package/dist/plot/sunburst/sunburst.d.ts +5 -1
- package/dist/plot/sunburst/sunburst.js +10 -3
- package/dist/plot/treemap/Treemap.svelte +907 -0
- package/dist/plot/treemap/Treemap.svelte.d.ts +84 -0
- package/dist/plot/treemap/index.d.ts +3 -0
- package/dist/plot/treemap/index.js +4 -0
- package/dist/plot/treemap/treemap.d.ts +26 -0
- package/dist/plot/treemap/treemap.js +99 -0
- package/dist/rdf/RdfPlot.svelte +22 -26
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +4 -8
- package/dist/sanitize.js +1 -1
- package/dist/scene/bind-renderer.svelte.js +14 -6
- package/dist/settings.d.ts +19 -9
- package/dist/settings.js +77 -50
- package/dist/spectral/Bands.svelte +223 -230
- package/dist/spectral/BandsAndDos.svelte +11 -9
- package/dist/spectral/BrillouinBandsDos.svelte +19 -27
- package/dist/spectral/Dos.svelte +70 -73
- package/dist/spectral/helpers.d.ts +3 -3
- package/dist/spectral/helpers.js +25 -35
- package/dist/state.svelte.js +5 -18
- package/dist/structure/Arrow.svelte +5 -18
- package/dist/structure/ArrowInstances.svelte +160 -0
- package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
- package/dist/structure/AtomLegend.svelte +115 -75
- package/dist/structure/AtomLegend.svelte.d.ts +1 -1
- package/dist/structure/Bond.svelte +31 -23
- package/dist/structure/CanvasTooltip.svelte +15 -3
- package/dist/structure/CellSelect.svelte +11 -26
- package/dist/structure/Cylinder.svelte +24 -40
- package/dist/structure/InstancedAtoms.svelte +114 -0
- package/dist/structure/InstancedAtoms.svelte.d.ts +15 -0
- package/dist/structure/Lattice.svelte +85 -149
- package/dist/structure/SiteLabels.svelte +122 -0
- package/dist/structure/SiteLabels.svelte.d.ts +18 -0
- package/dist/structure/Structure.svelte +473 -419
- package/dist/structure/Structure.svelte.d.ts +4 -2
- package/dist/structure/StructureCarousel.svelte +630 -0
- package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
- package/dist/structure/StructureControls.svelte +157 -399
- package/dist/structure/StructureControls.svelte.d.ts +1 -1
- package/dist/structure/StructureExportPane.svelte +17 -21
- package/dist/structure/StructureInfoPane.svelte +72 -66
- package/dist/structure/StructureInfoPane.svelte.d.ts +1 -1
- package/dist/structure/StructureScene.svelte +467 -476
- package/dist/structure/StructureScene.svelte.d.ts +3 -1
- package/dist/structure/StructureViewport.svelte +386 -0
- package/dist/structure/StructureViewport.svelte.d.ts +63 -0
- package/dist/structure/atom-label-placement.d.ts +16 -12
- package/dist/structure/atom-label-placement.js +70 -37
- package/dist/structure/atom-properties.d.ts +2 -0
- package/dist/structure/atom-properties.js +104 -38
- package/dist/structure/bonding.d.ts +10 -3
- package/dist/structure/bonding.js +84 -28
- package/dist/structure/edit-history.d.ts +6 -0
- package/dist/structure/edit-history.js +27 -0
- package/dist/structure/export.d.ts +1 -0
- package/dist/structure/export.js +39 -31
- package/dist/structure/format-detect.d.ts +1 -0
- package/dist/structure/format-detect.js +22 -0
- package/dist/structure/geometry.d.ts +9 -0
- package/dist/structure/geometry.js +27 -0
- package/dist/structure/index.d.ts +16 -1
- package/dist/structure/index.js +13 -2
- package/dist/structure/measure.d.ts +1 -1
- package/dist/structure/measure.js +6 -12
- package/dist/structure/parse.d.ts +2 -1
- package/dist/structure/parse.js +243 -222
- package/dist/structure/partial-occupancy.js +4 -2
- package/dist/structure/pbc.js +78 -98
- package/dist/structure/polyhedra.d.ts +0 -1
- package/dist/structure/polyhedra.js +3 -18
- package/dist/structure/supercell.d.ts +1 -2
- package/dist/structure/supercell.js +7 -13
- package/dist/symmetry/SymmetryElements.svelte +11 -15
- package/dist/symmetry/SymmetryStats.svelte +56 -68
- package/dist/symmetry/WyckoffTable.svelte +5 -24
- package/dist/symmetry/cell-transform.js +1 -0
- package/dist/symmetry/index.d.ts +1 -0
- package/dist/symmetry/index.js +8 -2
- package/dist/symmetry/spacegroups.js +3 -2
- package/dist/table/HeatmapTable.svelte +1102 -365
- package/dist/table/HeatmapTable.svelte.d.ts +12 -2
- package/dist/table/ToggleMenu.svelte +5 -12
- package/dist/table/index.d.ts +21 -6
- package/dist/table/index.js +34 -21
- package/dist/theme/ThemeControl.svelte +16 -8
- package/dist/theme/index.d.ts +1 -5
- package/dist/theme/index.js +4 -10
- package/dist/theme/themes.mjs +14 -7
- package/dist/tooltip/KCoords.svelte +4 -1
- package/dist/tooltip/TooltipContent.svelte +2 -5
- package/dist/trajectory/Trajectory.svelte +515 -308
- package/dist/trajectory/Trajectory.svelte.d.ts +1 -1
- package/dist/trajectory/TrajectoryError.svelte +11 -8
- package/dist/trajectory/TrajectoryExportPane.svelte +14 -31
- package/dist/trajectory/TrajectoryInfoPane.svelte +85 -97
- package/dist/trajectory/extract.js +56 -34
- package/dist/trajectory/format-detect.js +11 -9
- package/dist/trajectory/frame-reader.d.ts +2 -0
- package/dist/trajectory/frame-reader.js +33 -29
- package/dist/trajectory/helpers.d.ts +2 -0
- package/dist/trajectory/helpers.js +18 -7
- package/dist/trajectory/index.d.ts +1 -0
- package/dist/trajectory/index.js +3 -0
- package/dist/trajectory/parse/h5-utils.d.ts +13 -0
- package/dist/trajectory/parse/h5-utils.js +109 -0
- package/dist/trajectory/parse/hdf5.d.ts +1 -1
- package/dist/trajectory/parse/hdf5.js +116 -106
- package/dist/trajectory/parse/index.d.ts +2 -3
- package/dist/trajectory/parse/index.js +17 -20
- package/dist/trajectory/parse/lammps.js +8 -12
- package/dist/trajectory/parse/vasp.js +10 -7
- package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
- package/dist/trajectory/parse/vaspout-electronic.js +207 -0
- package/dist/trajectory/parse/vaspout-h5.d.ts +5 -0
- package/dist/trajectory/parse/vaspout-h5.js +284 -0
- package/dist/trajectory/parse/xyz.js +11 -7
- package/dist/trajectory/plotting.d.ts +8 -9
- package/dist/trajectory/plotting.js +99 -27
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +7 -0
- package/dist/xrd/XrdPlot.svelte +47 -61
- package/dist/xrd/broadening.js +2 -1
- package/dist/xrd/calc-xrd.js +2 -4
- package/dist/xrd/parse.d.ts +0 -1
- package/dist/xrd/parse.js +56 -73
- package/package.json +61 -33
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/plot/sunburst/SunburstControls.svelte +0 -200
|
@@ -28,6 +28,6 @@ type $$ComponentProps = Omit<ComponentProps<typeof DraggablePane>, `children`> &
|
|
|
28
28
|
pane_props?: PaneProps;
|
|
29
29
|
toggle_props?: PaneToggleProps;
|
|
30
30
|
};
|
|
31
|
-
declare const StructureControls: import("svelte").Component<$$ComponentProps, {}, "color_scheme" | "controls_open" | "background_color" | "background_opacity" | "
|
|
31
|
+
declare const StructureControls: import("svelte").Component<$$ComponentProps, {}, "color_scheme" | "controls_open" | "background_color" | "background_opacity" | "show_image_atoms" | "lattice_props" | "atom_color_config" | "volumetric_data" | "isosurface_settings" | "scene_props" | "supercell_scaling" | "cell_type" | "active_volume_idx" | "supercell_loading">;
|
|
32
32
|
type StructureControls = ReturnType<typeof StructureControls>;
|
|
33
33
|
export default StructureControls;
|
|
@@ -34,26 +34,22 @@
|
|
|
34
34
|
{
|
|
35
35
|
label: `JSON`,
|
|
36
36
|
format: `json`,
|
|
37
|
-
hint:
|
|
38
|
-
`<a href="https://pymatgen.org" target="_blank">Pymatgen</a> JSON format - Python Materials Genomics structure serialization, widely used in computational materials science`,
|
|
37
|
+
hint: `<a href="https://pymatgen.org" target="_blank">Pymatgen</a> JSON format - Python Materials Genomics structure serialization, widely used in computational materials science`,
|
|
39
38
|
},
|
|
40
39
|
{
|
|
41
40
|
label: `XYZ`,
|
|
42
41
|
format: `xyz`,
|
|
43
|
-
hint:
|
|
44
|
-
`<a href="https://wiki.fysik.dtu.dk/ase" target="_blank">ASE</a> extended XYZ format - human-readable atomic coordinates used by the Atomic Simulation Environment`,
|
|
42
|
+
hint: `<a href="https://wiki.fysik.dtu.dk/ase" target="_blank">ASE</a> extended XYZ format - human-readable atomic coordinates used by the Atomic Simulation Environment`,
|
|
45
43
|
},
|
|
46
44
|
{
|
|
47
45
|
label: `CIF`,
|
|
48
46
|
format: `cif`,
|
|
49
|
-
hint:
|
|
50
|
-
`Crystallographic Information File - standard format from the <a href="https://iucr.org" target="_blank">IUCr</a> for crystal structure data exchange`,
|
|
47
|
+
hint: `Crystallographic Information File - standard format from the <a href="https://iucr.org" target="_blank">IUCr</a> for crystal structure data exchange`,
|
|
51
48
|
},
|
|
52
49
|
{
|
|
53
50
|
label: `POSCAR`,
|
|
54
51
|
format: `poscar`,
|
|
55
|
-
hint:
|
|
56
|
-
`<a href="https://vasp.at" target="_blank">VASP</a> POSCAR format - input geometry file for the Vienna Ab initio Simulation Package`,
|
|
52
|
+
hint: `<a href="https://vasp.at" target="_blank">VASP</a> POSCAR format - input geometry file for the Vienna Ab initio Simulation Package`,
|
|
57
53
|
},
|
|
58
54
|
] as const
|
|
59
55
|
|
|
@@ -61,14 +57,12 @@
|
|
|
61
57
|
{
|
|
62
58
|
label: `GLB`,
|
|
63
59
|
format: `glb`,
|
|
64
|
-
hint:
|
|
65
|
-
`Export as GLB (binary GLTF) - preserves element colors and materials, ideal for visualization in Blender, Unity, web viewers`,
|
|
60
|
+
hint: `Export as GLB (binary GLTF) - preserves element colors and materials, ideal for visualization in Blender, Unity, web viewers`,
|
|
66
61
|
},
|
|
67
62
|
{
|
|
68
63
|
label: `OBJ`,
|
|
69
64
|
format: `obj`,
|
|
70
|
-
hint:
|
|
71
|
-
`Export as OBJ (Wavefront Object) - widely supported 3D format with material references, works in most 3D applications`,
|
|
65
|
+
hint: `Export as OBJ (Wavefront Object) - widely supported 3D format with material references, works in most 3D applications`,
|
|
72
66
|
},
|
|
73
67
|
] as const
|
|
74
68
|
|
|
@@ -113,16 +107,18 @@
|
|
|
113
107
|
},
|
|
114
108
|
{
|
|
115
109
|
title: `Export as image`,
|
|
116
|
-
items: [
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
110
|
+
items: [
|
|
111
|
+
{
|
|
112
|
+
label: `PNG`,
|
|
113
|
+
disabled: !has_canvas,
|
|
114
|
+
show_dpi: true,
|
|
115
|
+
on_download: () => {
|
|
116
|
+
const canvas = wrapper?.querySelector(`canvas`)
|
|
117
|
+
if (canvas) export_canvas_as_png(canvas, structure, png_dpi, scene, camera)
|
|
118
|
+
else console.warn(`Canvas element not found for PNG export`)
|
|
119
|
+
},
|
|
124
120
|
},
|
|
125
|
-
|
|
121
|
+
],
|
|
126
122
|
},
|
|
127
123
|
{
|
|
128
124
|
title: `Export as 3D model`,
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import type { MoyoDataset } from '@spglib/moyo-wasm'
|
|
17
17
|
import type { ComponentProps } from 'svelte'
|
|
18
18
|
import type { HTMLAttributes } from 'svelte/elements'
|
|
19
|
-
import {
|
|
19
|
+
import { create_clipboard_feedback } from '../overlays'
|
|
20
20
|
|
|
21
21
|
type SiteDetail = {
|
|
22
22
|
label: string
|
|
@@ -41,8 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
label: `Atom Selection`,
|
|
44
|
-
value:
|
|
45
|
-
`Click atoms to select them, then pick distance or angle mode to measure all pairwise distances/angles`,
|
|
44
|
+
value: `Click atoms to select them, then pick distance or angle mode to measure all pairwise distances/angles`,
|
|
46
45
|
},
|
|
47
46
|
{
|
|
48
47
|
label: `Navigation`,
|
|
@@ -54,8 +53,7 @@
|
|
|
54
53
|
},
|
|
55
54
|
{
|
|
56
55
|
label: `Colors`,
|
|
57
|
-
value:
|
|
58
|
-
`Click legend labels to change colors, double-click to reset, right-click to remap elements`,
|
|
56
|
+
value: `Click legend labels to change colors, double-click to reset, right-click to remap elements`,
|
|
59
57
|
},
|
|
60
58
|
{
|
|
61
59
|
label: `Keyboard`,
|
|
@@ -86,28 +84,16 @@
|
|
|
86
84
|
sym_data?: MoyoDataset | null // Symmetry analysis data (bindable for external access)
|
|
87
85
|
} = $props()
|
|
88
86
|
|
|
89
|
-
|
|
87
|
+
const { copied, copy } = create_clipboard_feedback()
|
|
90
88
|
let sites_expanded = $state(false)
|
|
91
89
|
let site_filter = $state(``)
|
|
92
90
|
let site_window_start = $state(0)
|
|
93
91
|
let site_cards_el = $state<HTMLDivElement>()
|
|
94
92
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
await navigator.clipboard.writeText(`${label}: ${value}`)
|
|
98
|
-
copied_items.add(key)
|
|
99
|
-
setTimeout(() => copied_items.delete(key), 1000)
|
|
100
|
-
} catch (error) {
|
|
101
|
-
console.error(`Failed to copy to clipboard:`, error)
|
|
102
|
-
}
|
|
103
|
-
}
|
|
93
|
+
const copy_to_clipboard = (label: string, value: string, key: string): Promise<void> =>
|
|
94
|
+
copy(`${label}: ${value}`, key)
|
|
104
95
|
|
|
105
|
-
function copy_event(
|
|
106
|
-
event: MouseEvent,
|
|
107
|
-
label: string,
|
|
108
|
-
value: string,
|
|
109
|
-
key: string,
|
|
110
|
-
) {
|
|
96
|
+
function copy_event(event: MouseEvent, label: string, value: string, key: string) {
|
|
111
97
|
event.stopPropagation()
|
|
112
98
|
copy_to_clipboard(label, value, key)
|
|
113
99
|
}
|
|
@@ -128,9 +114,8 @@
|
|
|
128
114
|
: [...selected_sites, site_idx]
|
|
129
115
|
return
|
|
130
116
|
}
|
|
131
|
-
selected_sites =
|
|
132
|
-
? []
|
|
133
|
-
: [site_idx]
|
|
117
|
+
selected_sites =
|
|
118
|
+
selected_sites.length === 1 && selected_sites[0] === site_idx ? [] : [site_idx]
|
|
134
119
|
}
|
|
135
120
|
|
|
136
121
|
function update_site_filter(event: Event): void {
|
|
@@ -161,9 +146,10 @@
|
|
|
161
146
|
current_card.parentElement?.querySelectorAll<HTMLDivElement>(`.site-card`) ?? [],
|
|
162
147
|
)
|
|
163
148
|
const current_idx = sibling_cards.indexOf(current_card)
|
|
164
|
-
const next_idx =
|
|
165
|
-
|
|
166
|
-
|
|
149
|
+
const next_idx =
|
|
150
|
+
event.key === `ArrowDown`
|
|
151
|
+
? Math.min(current_idx + 1, sibling_cards.length - 1)
|
|
152
|
+
: Math.max(current_idx - 1, 0)
|
|
167
153
|
sibling_cards[next_idx]?.focus()
|
|
168
154
|
}
|
|
169
155
|
|
|
@@ -171,10 +157,9 @@
|
|
|
171
157
|
element_data?.find((element_record) => element_record.symbol === element)?.name || element
|
|
172
158
|
|
|
173
159
|
const site_summary = (card: SiteCard): string =>
|
|
174
|
-
[
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
].join(`; `)
|
|
160
|
+
[card.element_name, ...card.details.map(({ label, value }) => `${label}: ${value}`)].join(
|
|
161
|
+
`; `,
|
|
162
|
+
)
|
|
178
163
|
|
|
179
164
|
function format_site_property(prop_key: string, prop_value: unknown): SiteDetail | null {
|
|
180
165
|
if (prop_value == null) return null
|
|
@@ -187,14 +172,16 @@
|
|
|
187
172
|
let tooltip: string | undefined
|
|
188
173
|
|
|
189
174
|
if (
|
|
190
|
-
prop_key === `force` &&
|
|
191
|
-
|
|
175
|
+
prop_key === `force` &&
|
|
176
|
+
Array.isArray(prop_value) &&
|
|
177
|
+
prop_value.length === 3 &&
|
|
178
|
+
prop_value.every((value) => typeof value === `number`)
|
|
192
179
|
) {
|
|
193
180
|
const force_values = prop_value as [number, number, number]
|
|
194
181
|
const value = `${format_num(Math.hypot(...force_values), `.3~f`)} eV/Å`
|
|
195
|
-
tooltip = `Force vector: ${
|
|
196
|
-
|
|
197
|
-
|
|
182
|
+
tooltip = `Force vector: ${force_values
|
|
183
|
+
.map((force) => format_num(force, `.3~f`))
|
|
184
|
+
.join(`, `)} eV/Å`
|
|
198
185
|
return { label: prop_key, value, key: prop_key, tooltip }
|
|
199
186
|
}
|
|
200
187
|
if (prop_key === `magmom` || prop_key.includes(`magnet`)) {
|
|
@@ -206,7 +193,7 @@
|
|
|
206
193
|
|
|
207
194
|
const value = Array.isArray(prop_value)
|
|
208
195
|
? format_value_list(prop_value)
|
|
209
|
-
: format_numeric_value(prop_value) ?? String(prop_value)
|
|
196
|
+
: (format_numeric_value(prop_value) ?? String(prop_value))
|
|
210
197
|
return { label: prop_key, value, key: prop_key }
|
|
211
198
|
}
|
|
212
199
|
|
|
@@ -269,7 +256,9 @@
|
|
|
269
256
|
// Symmetry Info
|
|
270
257
|
if (`lattice` in structure && sym_data) {
|
|
271
258
|
const { operations } = sym_data
|
|
272
|
-
let translations = 0,
|
|
259
|
+
let translations = 0,
|
|
260
|
+
rotations = 0,
|
|
261
|
+
roto_translations = 0
|
|
273
262
|
for (const op of operations) {
|
|
274
263
|
const has_translation = op.translation.some((offset) => offset !== 0)
|
|
275
264
|
const is_identity = String(op.rotation) === `1,0,0,0,1,0,0,0,1`
|
|
@@ -278,14 +267,15 @@
|
|
|
278
267
|
else roto_translations++
|
|
279
268
|
}
|
|
280
269
|
|
|
281
|
-
const international_symbol = (
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
270
|
+
const international_symbol = (
|
|
271
|
+
sym_data as MoyoDataset & {
|
|
272
|
+
international_short?: string
|
|
273
|
+
}
|
|
274
|
+
).international_short
|
|
275
|
+
const space_group_symbol = (sym_data.hm_symbol ?? international_symbol)?.replaceAll(
|
|
276
|
+
/\s+/g,
|
|
277
|
+
``,
|
|
278
|
+
)
|
|
289
279
|
const space_group_value = space_group_symbol
|
|
290
280
|
? `${sym_data.number} (${space_group_symbol})`
|
|
291
281
|
: String(sym_data.number)
|
|
@@ -294,8 +284,16 @@
|
|
|
294
284
|
title: `Symmetry`,
|
|
295
285
|
items: [
|
|
296
286
|
{ label: `Space Group`, value: space_group_value, key: `symmetry-space-group` },
|
|
297
|
-
{
|
|
298
|
-
|
|
287
|
+
{
|
|
288
|
+
label: `Hall Number`,
|
|
289
|
+
value: String(sym_data.hall_number),
|
|
290
|
+
key: `symmetry-hall-number`,
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
label: `Pearson Symbol`,
|
|
294
|
+
value: sym_data.pearson_symbol,
|
|
295
|
+
key: `symmetry-pearson-symbol`,
|
|
296
|
+
},
|
|
299
297
|
{
|
|
300
298
|
label: `Symmetry Ops`,
|
|
301
299
|
value: `${operations.length} (${translations} trans, ${rotations} rot, ${roto_translations} roto-trans)`,
|
|
@@ -347,9 +345,9 @@
|
|
|
347
345
|
element_name,
|
|
348
346
|
title,
|
|
349
347
|
details,
|
|
350
|
-
search_text: `${title} ${element} ${element_name} ${
|
|
351
|
-
|
|
352
|
-
|
|
348
|
+
search_text: `${title} ${element} ${element_name} ${details
|
|
349
|
+
.map(({ label, value }) => `${label} ${value}`)
|
|
350
|
+
.join(` `)}`.toLowerCase(),
|
|
353
351
|
}
|
|
354
352
|
})
|
|
355
353
|
})
|
|
@@ -382,8 +380,7 @@
|
|
|
382
380
|
if (!pane_open || selected_site_idx === undefined) return
|
|
383
381
|
const visible_idx = visible_site_cards.findIndex(({ idx }) => idx === selected_site_idx)
|
|
384
382
|
if (visible_idx === -1) return
|
|
385
|
-
const selected_window_start = Math.floor(visible_idx / SITE_WINDOW_SIZE) *
|
|
386
|
-
SITE_WINDOW_SIZE
|
|
383
|
+
const selected_window_start = Math.floor(visible_idx / SITE_WINDOW_SIZE) * SITE_WINDOW_SIZE
|
|
387
384
|
if (selected_window_start !== site_window_start) {
|
|
388
385
|
site_window_start = selected_window_start
|
|
389
386
|
return
|
|
@@ -434,7 +431,7 @@
|
|
|
434
431
|
>
|
|
435
432
|
<span>{@html sanitize_html(label)}</span>
|
|
436
433
|
<span title={tooltip}>{@html sanitize_html(value)}</span>
|
|
437
|
-
{#if key &&
|
|
434
|
+
{#if key && copied.has(key)}
|
|
438
435
|
<Icon
|
|
439
436
|
icon="Check"
|
|
440
437
|
style="color: var(--success-color, #10b981); width: 12px; height: 12px"
|
|
@@ -447,8 +444,8 @@
|
|
|
447
444
|
{#if section.title === `Symmetry` && wyckoff_positions.length > 0}
|
|
448
445
|
<WyckoffTable
|
|
449
446
|
{wyckoff_positions}
|
|
450
|
-
on_hover={(site_indices) => highlighted_sites = site_indices ?? []}
|
|
451
|
-
on_click={(site_indices) => selected_sites = site_indices ?? []}
|
|
447
|
+
on_hover={(site_indices) => (highlighted_sites = site_indices ?? [])}
|
|
448
|
+
on_click={(site_indices) => (selected_sites = site_indices ?? [])}
|
|
452
449
|
style="width: 100%; margin-top: 0.5em; font-size: 0.8em"
|
|
453
450
|
/>
|
|
454
451
|
{/if}
|
|
@@ -472,7 +469,9 @@
|
|
|
472
469
|
{/if}
|
|
473
470
|
</div>
|
|
474
471
|
{#if sites_hidden_by_threshold}
|
|
475
|
-
<p class="sites-note">
|
|
472
|
+
<p class="sites-note">
|
|
473
|
+
Site list hidden for this {structure.sites.length}-site structure.
|
|
474
|
+
</p>
|
|
476
475
|
{:else if site_cards.length > 0}
|
|
477
476
|
<input
|
|
478
477
|
class="site-filter"
|
|
@@ -491,19 +490,21 @@
|
|
|
491
490
|
type="button"
|
|
492
491
|
disabled={site_window_start === 0}
|
|
493
492
|
onclick={() =>
|
|
494
|
-
site_window_start = Math.max(0, site_window_start - SITE_WINDOW_SIZE)}
|
|
493
|
+
(site_window_start = Math.max(0, site_window_start - SITE_WINDOW_SIZE))}
|
|
495
494
|
>
|
|
496
495
|
Previous
|
|
497
496
|
</button>
|
|
498
|
-
<span
|
|
497
|
+
<span
|
|
498
|
+
>{site_window_start + 1}-{site_window_end} of {visible_site_cards.length}</span
|
|
499
|
+
>
|
|
499
500
|
<button
|
|
500
501
|
type="button"
|
|
501
502
|
disabled={site_window_end >= visible_site_cards.length}
|
|
502
503
|
onclick={() =>
|
|
503
|
-
site_window_start = Math.min(
|
|
504
|
+
(site_window_start = Math.min(
|
|
504
505
|
Math.max(0, visible_site_cards.length - SITE_WINDOW_SIZE),
|
|
505
506
|
site_window_start + SITE_WINDOW_SIZE,
|
|
506
|
-
)}
|
|
507
|
+
))}
|
|
507
508
|
>
|
|
508
509
|
Next
|
|
509
510
|
</button>
|
|
@@ -511,8 +512,8 @@
|
|
|
511
512
|
{/if}
|
|
512
513
|
<div class="site-cards" bind:this={site_cards_el}>
|
|
513
514
|
{#each rendered_site_cards as card (card.idx)}
|
|
514
|
-
{@const is_highlighted =
|
|
515
|
-
hovered_site_idx === card.idx}
|
|
515
|
+
{@const is_highlighted =
|
|
516
|
+
highlighted_sites.includes(card.idx) || hovered_site_idx === card.idx}
|
|
516
517
|
{@const is_selected = selected_sites.includes(card.idx)}
|
|
517
518
|
<div
|
|
518
519
|
class="site-card"
|
|
@@ -539,9 +540,14 @@
|
|
|
539
540
|
<CopyButton
|
|
540
541
|
label="Copy {card.title}"
|
|
541
542
|
title="Copy {card.title}"
|
|
542
|
-
copied={
|
|
543
|
+
copied={copied.has(`site-${card.idx}-summary`)}
|
|
543
544
|
onclick={(event) =>
|
|
544
|
-
copy_event(
|
|
545
|
+
copy_event(
|
|
546
|
+
event,
|
|
547
|
+
card.title,
|
|
548
|
+
site_summary(card),
|
|
549
|
+
`site-${card.idx}-summary`,
|
|
550
|
+
)}
|
|
545
551
|
/>
|
|
546
552
|
</div>
|
|
547
553
|
<div class="site-card-details">
|
|
@@ -552,7 +558,7 @@
|
|
|
552
558
|
<CopyButton
|
|
553
559
|
label="Copy {card.title} {detail.label}"
|
|
554
560
|
title="Copy {detail.label}"
|
|
555
|
-
copied={
|
|
561
|
+
copied={copied.has(`site-${card.idx}-${detail.key}`)}
|
|
556
562
|
onclick={(event) =>
|
|
557
563
|
copy_event(
|
|
558
564
|
event,
|
|
@@ -14,6 +14,6 @@ type $$ComponentProps = Omit<HTMLAttributes<HTMLDivElement>, `onclose`> & {
|
|
|
14
14
|
selected_sites?: number[];
|
|
15
15
|
sym_data?: MoyoDataset | null;
|
|
16
16
|
};
|
|
17
|
-
declare const StructureInfoPane: import("svelte").Component<$$ComponentProps, {}, "selected_sites" | "
|
|
17
|
+
declare const StructureInfoPane: import("svelte").Component<$$ComponentProps, {}, "selected_sites" | "hovered_site_idx" | "pane_open" | "highlighted_sites">;
|
|
18
18
|
type StructureInfoPane = ReturnType<typeof StructureInfoPane>;
|
|
19
19
|
export default StructureInfoPane;
|