matterviz 0.4.1 → 0.4.3
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 +48 -60
- package/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +2 -2
- package/dist/api/optimade.js +10 -7
- package/dist/app.css +68 -0
- package/dist/brillouin/BrillouinZone.svelte +90 -91
- 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 +46 -68
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -1
- package/dist/brillouin/compute.js +10 -16
- package/dist/brillouin/geometry.js +2 -2
- package/dist/chempot-diagram/ChemPotDiagram.svelte +48 -50
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +61 -169
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +559 -755
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/async-compute.svelte.js +13 -14
- package/dist/chempot-diagram/color.d.ts +21 -1
- package/dist/chempot-diagram/color.js +70 -1
- package/dist/chempot-diagram/compute.d.ts +7 -0
- package/dist/chempot-diagram/compute.js +85 -26
- package/dist/chempot-diagram/controls-state.svelte.js +1 -1
- package/dist/chempot-diagram/export.js +1 -6
- package/dist/chempot-diagram/temperature.js +9 -10
- package/dist/colors/index.d.ts +0 -4
- package/dist/colors/index.js +19 -20
- package/dist/composition/BarChart.svelte +30 -26
- package/dist/composition/BubbleChart.svelte +17 -17
- package/dist/composition/Composition.svelte +10 -19
- package/dist/composition/Formula.svelte +20 -27
- package/dist/composition/FormulaFilter.svelte +115 -184
- package/dist/composition/PieChart.svelte +55 -41
- package/dist/composition/format.js +7 -9
- 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 +61 -115
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +17 -26
- 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 -94
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +127 -186
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +131 -180
- 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 +18 -22
- 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/gas-thermodynamics.js +21 -53
- package/dist/convex-hull/helpers.d.ts +8 -10
- package/dist/convex-hull/helpers.js +37 -43
- package/dist/convex-hull/hull-state.svelte.d.ts +1 -1
- package/dist/convex-hull/thermodynamics.js +37 -44
- package/dist/coordination/CoordinationBarPlot.svelte +49 -53
- 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 -9
- 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 +44 -67
- package/dist/element/Nucleus.svelte +4 -2
- package/dist/element/data.d.ts +3 -2
- package/dist/element/data.js +5 -1
- package/dist/element/helpers.d.ts +4 -0
- package/dist/element/helpers.js +18 -0
- package/dist/element/index.d.ts +2 -5
- package/dist/element/index.js +4 -19
- 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 +35 -44
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +7 -13
- package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceScene.svelte +64 -136
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
- package/dist/fermi-surface/compute.js +25 -58
- package/dist/fermi-surface/parse.js +54 -88
- package/dist/file-viewer/JsonBrowser.svelte +1043 -0
- package/dist/file-viewer/JsonBrowser.svelte.d.ts +9 -0
- package/dist/file-viewer/PlotPanel.svelte +350 -0
- package/dist/file-viewer/PlotPanel.svelte.d.ts +9 -0
- package/dist/file-viewer/TrajectoryWithDos.svelte +30 -0
- package/dist/file-viewer/TrajectoryWithDos.svelte.d.ts +10 -0
- package/dist/file-viewer/detect.d.ts +11 -0
- package/dist/file-viewer/detect.js +381 -0
- package/dist/file-viewer/eligibility.d.ts +4 -0
- package/dist/file-viewer/eligibility.js +53 -0
- package/dist/file-viewer/host-protocol.d.ts +50 -0
- package/dist/file-viewer/host-transfer.d.ts +25 -0
- package/dist/file-viewer/host-transfer.js +42 -0
- package/dist/file-viewer/index.d.ts +5 -0
- package/dist/file-viewer/index.js +5 -0
- package/dist/file-viewer/main.d.ts +44 -0
- package/dist/file-viewer/main.js +535 -0
- package/dist/file-viewer/parse.d.ts +9 -0
- package/dist/file-viewer/parse.js +170 -0
- package/dist/file-viewer/plot-utils.d.ts +24 -0
- package/dist/file-viewer/plot-utils.js +191 -0
- package/dist/file-viewer/types.d.ts +4 -0
- package/dist/file-viewer/types.js +5 -0
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +153 -219
- 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/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/io/ExportPane.svelte +11 -7
- package/dist/io/decompress.d.ts +4 -1
- package/dist/io/decompress.js +24 -36
- package/dist/io/export.d.ts +11 -4
- package/dist/io/export.js +75 -19
- package/dist/io/fetch.d.ts +0 -3
- package/dist/io/fetch.js +0 -11
- package/dist/io/file-drop.js +60 -35
- 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.d.ts +2 -0
- package/dist/io/url-drop.js +40 -40
- package/dist/isosurface/Isosurface.svelte +700 -215
- package/dist/isosurface/Isosurface.svelte.d.ts +7 -1
- package/dist/isosurface/IsosurfaceControls.svelte +590 -116
- package/dist/isosurface/IsosurfaceControls.svelte.d.ts +1 -1
- package/dist/isosurface/VolumeSlice.svelte +224 -0
- package/dist/isosurface/VolumeSlice.svelte.d.ts +28 -0
- package/dist/isosurface/coloring.d.ts +20 -0
- package/dist/isosurface/coloring.js +118 -0
- package/dist/isosurface/geometry-worker-types.d.ts +38 -0
- package/dist/isosurface/geometry.worker.d.ts +1 -0
- package/dist/isosurface/geometry.worker.js +59 -0
- package/dist/isosurface/grid.d.ts +10 -0
- package/dist/isosurface/grid.js +31 -0
- package/dist/isosurface/index.d.ts +4 -0
- package/dist/isosurface/index.js +4 -0
- 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/isosurface/profile.d.ts +12 -0
- package/dist/isosurface/profile.js +19 -0
- package/dist/isosurface/sampling.d.ts +34 -0
- package/dist/isosurface/sampling.js +408 -0
- package/dist/isosurface/slice-rendering.d.ts +13 -0
- package/dist/isosurface/slice-rendering.js +79 -0
- package/dist/isosurface/slice.d.ts +22 -2
- package/dist/isosurface/slice.js +200 -116
- package/dist/isosurface/types.d.ts +24 -1
- package/dist/isosurface/types.js +120 -8
- package/dist/json-path.d.ts +4 -0
- package/dist/json-path.js +89 -0
- package/dist/labels.d.ts +6 -2
- package/dist/labels.js +44 -14
- package/dist/layout/FullscreenButton.svelte +2 -1
- package/dist/layout/FullscreenToggle.svelte +10 -4
- package/dist/layout/InfoCard.svelte +8 -21
- 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 +57 -62
- package/dist/layout/SettingsSection.svelte.d.ts +6 -7
- package/dist/layout/SubpageGrid.svelte +3 -1
- package/dist/layout/ViewerChrome.svelte +16 -11
- 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 +22 -59
- package/dist/layout/json-tree/JsonTree.svelte +101 -172
- package/dist/layout/json-tree/JsonValue.svelte +9 -32
- package/dist/layout/json-tree/utils.d.ts +0 -3
- package/dist/layout/json-tree/utils.js +50 -188
- package/dist/marching-cubes.d.ts +8 -1
- package/dist/marching-cubes.js +115 -48
- package/dist/math.d.ts +5 -2
- package/dist/math.js +48 -38
- package/dist/overlays/ContextMenu.svelte +19 -34
- package/dist/overlays/CopyButton.svelte +11 -5
- package/dist/overlays/DragControlTab.svelte +6 -1
- package/dist/overlays/DraggablePane.svelte +110 -74
- package/dist/overlays/DraggablePane.svelte.d.ts +2 -1
- package/dist/overlays/GlassChip.svelte +32 -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 +37 -115
- package/dist/periodic-table/TableInset.svelte +9 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +68 -105
- 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 +4 -9
- 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 +28 -27
- package/dist/phase-diagram/utils.js +2 -3
- package/dist/plot/bar/BarPlot.svelte +461 -426
- 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 +46 -77
- package/dist/plot/bar/data.d.ts +5 -4
- package/dist/plot/bar/data.js +2 -1
- package/dist/plot/box/BoxPlot.svelte +322 -226
- 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.d.ts +1 -1
- package/dist/plot/core/auto-place.js +2 -2
- 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.d.ts +1 -2
- package/dist/plot/core/data-transform.js +9 -15
- 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 +15 -6
- package/dist/plot/core/layout.js +57 -38
- package/dist/plot/core/marginals.d.ts +170 -0
- package/dist/plot/core/marginals.js +436 -0
- package/dist/plot/core/pan-zoom.svelte.d.ts +2 -4
- package/dist/plot/core/pan-zoom.svelte.js +34 -17
- package/dist/plot/core/placed-tween.svelte.d.ts +3 -0
- package/dist/plot/core/placed-tween.svelte.js +68 -21
- 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/svg.js +0 -1
- 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 +52 -0
- package/dist/plot/core/utils/hierarchy-chart.js +191 -0
- package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
- package/dist/plot/core/utils/hierarchy-labels.js +100 -0
- package/dist/plot/core/utils/label-placement.js +2 -2
- package/dist/plot/histogram/Histogram.svelte +314 -340
- 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/sankey/sankey.js +13 -9
- package/dist/plot/scatter/BinnedScatterPlot.svelte +311 -141
- package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +7 -0
- package/dist/plot/scatter/ElementScatter.svelte +4 -1
- package/dist/plot/scatter/ScatterPlot.svelte +517 -410
- 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/adaptive-density.d.ts +1 -1
- package/dist/plot/scatter/adaptive-density.js +36 -20
- 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 +269 -347
- 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 +1022 -0
- package/dist/plot/treemap/Treemap.svelte.d.ts +90 -0
- package/dist/plot/treemap/index.d.ts +4 -0
- package/dist/plot/treemap/index.js +4 -0
- package/dist/plot/treemap/labels.d.ts +38 -0
- package/dist/plot/treemap/labels.js +80 -0
- package/dist/plot/treemap/treemap.d.ts +28 -0
- package/dist/plot/treemap/treemap.js +102 -0
- package/dist/rdf/RdfPlot.svelte +37 -59
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +63 -52
- package/dist/rdf/index.d.ts +0 -1
- package/dist/sanitize.js +85 -27
- package/dist/scene/SceneCamera.svelte +1 -1
- package/dist/scene/SceneCamera.svelte.d.ts +1 -1
- package/dist/scene/bind-renderer.svelte.js +14 -6
- package/dist/scene/index.d.ts +1 -2
- package/dist/scene/index.js +1 -1
- package/dist/scene/{props.js → props.svelte.js} +15 -1
- package/dist/settings.d.ts +19 -9
- package/dist/settings.js +229 -525
- package/dist/spectral/Bands.svelte +207 -221
- package/dist/spectral/BandsAndDos.svelte +11 -9
- package/dist/spectral/BrillouinBandsDos.svelte +19 -42
- package/dist/spectral/Dos.svelte +92 -93
- package/dist/spectral/helpers.d.ts +3 -3
- package/dist/spectral/helpers.js +65 -140
- 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 +120 -85
- package/dist/structure/AtomLegend.svelte.d.ts +2 -3
- package/dist/structure/Bond.svelte +31 -23
- package/dist/structure/CanvasTooltip.svelte +15 -3
- package/dist/structure/CellSelect.svelte +45 -35
- 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 +636 -504
- package/dist/structure/Structure.svelte.d.ts +4 -2
- package/dist/structure/StructureCarousel.svelte +637 -0
- package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
- package/dist/structure/StructureControls.svelte +165 -425
- package/dist/structure/StructureControls.svelte.d.ts +1 -1
- package/dist/structure/StructureExportPane.svelte +17 -21
- package/dist/structure/StructureInfoPane.svelte +128 -133
- package/dist/structure/StructureInfoPane.svelte.d.ts +1 -1
- package/dist/structure/StructureScene.svelte +535 -578
- package/dist/structure/StructureScene.svelte.d.ts +6 -2
- package/dist/structure/StructureViewport.svelte +451 -0
- package/dist/structure/StructureViewport.svelte.d.ts +65 -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 +105 -38
- package/dist/structure/bond-order-perception.js +3 -8
- package/dist/structure/bonding.d.ts +9 -3
- package/dist/structure/bonding.js +95 -46
- 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 +89 -105
- package/dist/structure/format-detect.d.ts +1 -0
- package/dist/structure/format-detect.js +20 -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 +15 -10
- 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 +272 -313
- package/dist/structure/partial-occupancy.js +10 -5
- package/dist/structure/pbc.js +85 -107
- package/dist/structure/polyhedra.d.ts +0 -1
- package/dist/structure/polyhedra.js +7 -21
- package/dist/structure/prop-groups.d.ts +85 -0
- package/dist/structure/prop-groups.js +18 -0
- 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 +55 -71
- package/dist/symmetry/WyckoffTable.svelte +10 -28
- package/dist/symmetry/cell-transform.js +6 -14
- package/dist/symmetry/index.d.ts +1 -0
- package/dist/symmetry/index.js +13 -10
- package/dist/symmetry/spacegroups.js +3 -2
- package/dist/table/HeatmapTable.svelte +1142 -447
- package/dist/table/HeatmapTable.svelte.d.ts +12 -2
- package/dist/table/ToggleMenu.svelte +168 -53
- package/dist/table/ToggleMenu.svelte.d.ts +1 -1
- 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/embedded.d.ts +18 -0
- package/dist/theme/embedded.js +206 -0
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.js +5 -12
- package/dist/theme/themes.mjs +44 -66
- package/dist/tooltip/KCoords.svelte +4 -1
- package/dist/tooltip/TooltipContent.svelte +3 -6
- package/dist/tooltip/TooltipContent.svelte.d.ts +1 -1
- package/dist/tooltip/index.d.ts +8 -1
- package/dist/trajectory/Trajectory.svelte +613 -386
- package/dist/trajectory/Trajectory.svelte.d.ts +1 -1
- package/dist/trajectory/TrajectoryError.svelte +12 -74
- package/dist/trajectory/TrajectoryExportPane.svelte +14 -32
- package/dist/trajectory/TrajectoryInfoPane.svelte +127 -164
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +2 -1
- package/dist/trajectory/extract.js +61 -49
- package/dist/trajectory/format-detect.d.ts +2 -0
- package/dist/trajectory/format-detect.js +17 -13
- package/dist/trajectory/frame-reader.d.ts +2 -0
- package/dist/trajectory/frame-reader.js +35 -32
- package/dist/trajectory/helpers.d.ts +2 -0
- package/dist/trajectory/helpers.js +34 -56
- package/dist/trajectory/index.d.ts +1 -0
- package/dist/trajectory/index.js +5 -8
- package/dist/trajectory/parse/ase.js +1 -1
- 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 +6 -6
- package/dist/trajectory/parse/index.js +25 -33
- 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 +4 -0
- package/dist/trajectory/parse/vaspout-h5.js +281 -0
- package/dist/trajectory/parse/xyz.js +59 -9
- package/dist/trajectory/plotting.d.ts +8 -9
- package/dist/trajectory/plotting.js +113 -64
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +7 -0
- package/dist/xrd/XrdPlot.svelte +79 -118
- package/dist/xrd/broadening.js +2 -1
- package/dist/xrd/calc-xrd.js +24 -62
- package/dist/xrd/parse.d.ts +0 -1
- package/dist/xrd/parse.js +69 -95
- package/package.json +94 -34
- package/readme.md +6 -5
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/plot/sunburst/SunburstControls.svelte +0 -200
- package/dist/scene/types.d.ts +0 -26
- package/dist/tooltip/types.d.ts +0 -8
- package/dist/trajectory/constants.d.ts +0 -6
- package/dist/trajectory/constants.js +0 -11
- /package/dist/{scene/types.js → file-viewer/host-protocol.js} +0 -0
- /package/dist/{tooltip/types.js → isosurface/geometry-worker-types.js} +0 -0
|
@@ -86,31 +86,31 @@ const LINE_PARSERS = [
|
|
|
86
86
|
{
|
|
87
87
|
// ELEMENT AL FCC_A1 2.698154E-02 4.5773304E+03 2.871870E+01!
|
|
88
88
|
prefix: `ELEMENT `,
|
|
89
|
-
pattern: /ELEMENT\s+(
|
|
89
|
+
pattern: /ELEMENT\s+(?<symbol>\S+)\s+(?<reference_phase>\S+)\s+(?<mass>[\d.E+-]+)\s+(?<enthalpy>[\d.E+-]+)\s+(?<entropy>[\d.E+-]+)/i,
|
|
90
90
|
handler: (match, data) => {
|
|
91
91
|
data.elements.push({
|
|
92
92
|
symbol: match[1].toUpperCase(),
|
|
93
93
|
reference_phase: match[2],
|
|
94
|
-
mass:
|
|
95
|
-
enthalpy:
|
|
96
|
-
entropy:
|
|
94
|
+
mass: Number(match[3]),
|
|
95
|
+
enthalpy: Number(match[4]),
|
|
96
|
+
entropy: Number(match[5]),
|
|
97
97
|
});
|
|
98
98
|
},
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
// PHASE LIQUID % 1 1.0 !
|
|
102
102
|
prefix: `PHASE `,
|
|
103
|
-
pattern: /PHASE\s+(
|
|
103
|
+
pattern: /PHASE\s+(?<name>\S+)\s+(?<model_hints>%\S*)\s+(?<count>\d+)\s+(?<sites>.+?)!/i,
|
|
104
104
|
handler: (match, data) => {
|
|
105
105
|
const sublattice_sites = match[4]
|
|
106
106
|
.trim()
|
|
107
107
|
.split(/\s+/)
|
|
108
|
-
.map(
|
|
108
|
+
.map(Number)
|
|
109
109
|
.filter((val) => !isNaN(val));
|
|
110
110
|
data.phases.push({
|
|
111
111
|
name: match[1],
|
|
112
112
|
model_hints: match[2],
|
|
113
|
-
sublattice_count:
|
|
113
|
+
sublattice_count: Math.trunc(Number(match[3])),
|
|
114
114
|
sublattice_sites,
|
|
115
115
|
});
|
|
116
116
|
},
|
|
@@ -118,7 +118,7 @@ const LINE_PARSERS = [
|
|
|
118
118
|
{
|
|
119
119
|
// CONSTITUENT FCC_A1 :AL,ZN : VA : !
|
|
120
120
|
prefix: `CONSTITUENT `,
|
|
121
|
-
pattern: /CONSTITUENT\s+(
|
|
121
|
+
pattern: /CONSTITUENT\s+(?<phase_name>\S+)\s*:\s*(?<constituents>.+?)!/i,
|
|
122
122
|
handler: (match, data) => {
|
|
123
123
|
const phase_name = match[1];
|
|
124
124
|
const constituents = match[2].split(`:`).map((sub) => sub
|
|
@@ -133,7 +133,7 @@ const LINE_PARSERS = [
|
|
|
133
133
|
{
|
|
134
134
|
// FUNCTION GHSERAL 298.15 expr1; 700 Y expr2; 933.47 Y expr3; 2900 N !
|
|
135
135
|
prefix: `FUNCTION `,
|
|
136
|
-
pattern: /FUNCTION\s+(
|
|
136
|
+
pattern: /FUNCTION\s+(?<name>\S+)\s+(?<body>.+?)!/i,
|
|
137
137
|
handler: (match, data) => {
|
|
138
138
|
const ranges = parse_temperature_ranges(match[2]);
|
|
139
139
|
if (ranges.length > 0) {
|
|
@@ -148,15 +148,15 @@ const LINE_PARSERS = [
|
|
|
148
148
|
{
|
|
149
149
|
// PARAMETER G(LIQUID,AL;0) 298.15 +GHSERAL+11005.029-11.841867*T; 6000 N !
|
|
150
150
|
prefix: `PARAMETER `,
|
|
151
|
-
pattern: /PARAMETER\s+(
|
|
151
|
+
pattern: /PARAMETER\s+(?<type>\w+)\((?<spec>[^)]+)\)\s+(?<expression>.+?)!/i,
|
|
152
152
|
handler: (match, data) => {
|
|
153
|
-
const spec_match = /([^,]+),([^;]+);(
|
|
153
|
+
const spec_match = /(?<phase>[^,]+),(?<constituents>[^;]+);(?<order>\d+)/.exec(match[2]);
|
|
154
154
|
if (spec_match) {
|
|
155
155
|
data.parameters.push({
|
|
156
156
|
type: match[1],
|
|
157
157
|
phase: spec_match[1],
|
|
158
158
|
constituents: spec_match[2].split(`,`).map((name) => name.trim()),
|
|
159
|
-
order:
|
|
159
|
+
order: Math.trunc(Number(spec_match[3])),
|
|
160
160
|
expression: match[3],
|
|
161
161
|
});
|
|
162
162
|
}
|
|
@@ -170,9 +170,9 @@ function parse_temperature_ranges(body) {
|
|
|
170
170
|
const trimmed = segment.trim();
|
|
171
171
|
if (!trimmed)
|
|
172
172
|
continue;
|
|
173
|
-
const temp_match = /^([\d.E+-]+)\s+(
|
|
173
|
+
const temp_match = /^(?<temp>[\d.E+-]+)\s+(?<expr>.+)/i.exec(trimmed);
|
|
174
174
|
if (temp_match) {
|
|
175
|
-
const next_temp =
|
|
175
|
+
const next_temp = Number(temp_match[1]);
|
|
176
176
|
const expr = temp_match[2].replace(/\s+[YN]\s*$/, ``).trim();
|
|
177
177
|
if (ranges.length > 0)
|
|
178
178
|
ranges[ranges.length - 1].max = next_temp;
|
|
@@ -191,7 +191,7 @@ function parse_tdb_line(line, data) {
|
|
|
191
191
|
parser.handler(match, data);
|
|
192
192
|
else if (parser.prefix === `ELEMENT `) {
|
|
193
193
|
// Fallback for simpler ELEMENT format: ELEMENT AL FCC_A1!
|
|
194
|
-
const simple_match = /ELEMENT\s+(
|
|
194
|
+
const simple_match = /ELEMENT\s+(?<symbol>\S+)\s+(?<reference_phase>\S+)/i.exec(line);
|
|
195
195
|
if (simple_match) {
|
|
196
196
|
data.elements.push({
|
|
197
197
|
symbol: simple_match[1].toUpperCase(),
|
|
@@ -81,7 +81,7 @@ function extract_matplotlib_ticks(doc, x_ticks, y_ticks) {
|
|
|
81
81
|
function extract_simple_ticks(doc, x_ticks, y_ticks) {
|
|
82
82
|
// Y-axis ticks: class="tick-text" with text-anchor: end
|
|
83
83
|
for (const text_el of Array.from(doc.querySelectorAll(`.tick-text`))) {
|
|
84
|
-
const value =
|
|
84
|
+
const value = leading_number(text_el.textContent);
|
|
85
85
|
if (isNaN(value))
|
|
86
86
|
continue;
|
|
87
87
|
// Find the immediately preceding sibling tick line (not just any line in parent)
|
|
@@ -97,7 +97,7 @@ function extract_simple_ticks(doc, x_ticks, y_ticks) {
|
|
|
97
97
|
}
|
|
98
98
|
// X-axis ticks: class="tick-text-x"
|
|
99
99
|
for (const text_el of Array.from(doc.querySelectorAll(`.tick-text-x`))) {
|
|
100
|
-
const value =
|
|
100
|
+
const value = leading_number(text_el.textContent);
|
|
101
101
|
if (isNaN(value))
|
|
102
102
|
continue;
|
|
103
103
|
const px_x = parse_float_attr(text_el, `x`);
|
|
@@ -116,7 +116,7 @@ function extract_mpds_scales(doc) {
|
|
|
116
116
|
// Extract all numeric text values to infer axis ranges
|
|
117
117
|
const numbers = [];
|
|
118
118
|
for (const text_el of Array.from(doc.querySelectorAll(`text`))) {
|
|
119
|
-
const val =
|
|
119
|
+
const val = leading_number(text_el.textContent);
|
|
120
120
|
if (!isNaN(val))
|
|
121
121
|
numbers.push(val);
|
|
122
122
|
}
|
|
@@ -232,13 +232,9 @@ function extract_boundaries(doc, format, x_scale, y_scale) {
|
|
|
232
232
|
const dy = Math.abs(coords.y2 - coords.y1);
|
|
233
233
|
if (dx < 15 && dy < 15)
|
|
234
234
|
continue;
|
|
235
|
-
// Check stroke-width to distinguish boundaries from axis lines
|
|
235
|
+
// Check stroke-width to distinguish boundaries from axis lines;
|
|
236
|
+
// only include lines with meaningful stroke
|
|
236
237
|
const stroke_width = parse_stroke_width(path_el) || 1;
|
|
237
|
-
// Axis patches (id="patch_*") are axis borders, not phase boundaries
|
|
238
|
-
const parent_id = group.getAttribute(`id`) ?? ``;
|
|
239
|
-
if (parent_id.startsWith(`patch_`))
|
|
240
|
-
continue;
|
|
241
|
-
// Only include lines with meaningful stroke
|
|
242
238
|
if (stroke_width < 1)
|
|
243
239
|
continue;
|
|
244
240
|
add_boundary(boundaries, coords, x_scale, y_scale, epsilon);
|
|
@@ -407,7 +403,13 @@ function extract_matplotlib_labels(doc, labels) {
|
|
|
407
403
|
if (!comment.includes(`+`))
|
|
408
404
|
continue; // skip axis labels (no "+")
|
|
409
405
|
// Clean LaTeX: "La$_2$NiO$_4$ + NiO" -> "La2NiO4 + NiO"
|
|
410
|
-
const text =
|
|
406
|
+
const text = comment
|
|
407
|
+
.trim()
|
|
408
|
+
.replaceAll(/\$_\{(?<digits>[^}]*)\}\$/g, `$1`) // $_{10}$ -> 10
|
|
409
|
+
.replaceAll(/\$_(?<digit>\d)\$/g, `$1`) // $_2$ -> 2
|
|
410
|
+
.replaceAll(`$`, ``) // remove any remaining $
|
|
411
|
+
.replaceAll(/\s+/g, ` `)
|
|
412
|
+
.trim();
|
|
411
413
|
// Get position from transform="translate(x, y)"
|
|
412
414
|
const pos = parse_translate(group.querySelector(`g[transform]`)) ?? parse_translate(group);
|
|
413
415
|
if (!pos)
|
|
@@ -668,20 +670,26 @@ function infer_mpds_components(doc) {
|
|
|
668
670
|
return [unique[0] ?? `A`, unique[1] ?? `B`];
|
|
669
671
|
}
|
|
670
672
|
// === Utility Functions ===
|
|
671
|
-
//
|
|
673
|
+
// Leading numeric prefix like parseFloat (`2px` -> 2, `600 K` -> 600, else NaN):
|
|
674
|
+
// Number() alone rejects unit-suffixed/annotated values that real SVG exports contain
|
|
675
|
+
function leading_number(text) {
|
|
676
|
+
const match = /^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/.exec(text?.trim() ?? ``);
|
|
677
|
+
return match ? Number(match[0]) : NaN;
|
|
678
|
+
}
|
|
679
|
+
// Parse stroke-width from style or direct attribute (0 if missing, `2px` units ok)
|
|
672
680
|
function parse_stroke_width(el) {
|
|
673
|
-
const style_match = /stroke-width:\s*([\d.]+)/.exec(el.getAttribute(`style`) ?? ``);
|
|
681
|
+
const style_match = /stroke-width:\s*(?<width>[\d.]+)/.exec(el.getAttribute(`style`) ?? ``);
|
|
674
682
|
if (style_match)
|
|
675
|
-
return
|
|
676
|
-
const
|
|
677
|
-
return
|
|
683
|
+
return Number(style_match[1]);
|
|
684
|
+
const parsed = leading_number(el.getAttribute(`stroke-width`));
|
|
685
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
678
686
|
}
|
|
679
687
|
// Parse a float attribute from an SVG element
|
|
680
688
|
function parse_float_attr(el, attr) {
|
|
681
689
|
const val = el.getAttribute(attr);
|
|
682
690
|
if (val === null)
|
|
683
691
|
return null;
|
|
684
|
-
const parsed =
|
|
692
|
+
const parsed = leading_number(val);
|
|
685
693
|
return isNaN(parsed) ? null : parsed;
|
|
686
694
|
}
|
|
687
695
|
// Extract a number from XML comment nodes inside a group element
|
|
@@ -689,7 +697,7 @@ function extract_comment_number(group) {
|
|
|
689
697
|
const walker = group.ownerDocument.createTreeWalker(group, NodeFilter.SHOW_COMMENT);
|
|
690
698
|
let node;
|
|
691
699
|
while ((node = walker.nextNode())) {
|
|
692
|
-
const value =
|
|
700
|
+
const value = leading_number(node.textContent);
|
|
693
701
|
if (!isNaN(value))
|
|
694
702
|
return value;
|
|
695
703
|
}
|
|
@@ -719,13 +727,6 @@ function find_comment_text(group) {
|
|
|
719
727
|
}
|
|
720
728
|
return null;
|
|
721
729
|
}
|
|
722
|
-
// Clean LaTeX subscript notation: "La$_2$NiO$_4$" -> "La2NiO4"
|
|
723
|
-
const clean_latex = (text) => text
|
|
724
|
-
.replaceAll(/\$_\{([^}]*)\}\$/g, `$1`) // $_{10}$ -> 10
|
|
725
|
-
.replaceAll(/\$_(\d)\$/g, `$1`) // $_2$ -> 2
|
|
726
|
-
.replaceAll(`$`, ``) // remove any remaining $
|
|
727
|
-
.replaceAll(/\s+/g, ` `)
|
|
728
|
-
.trim();
|
|
729
730
|
// Parse SVG path data into absolute line segments [x1,y1,x2,y2]
|
|
730
731
|
// Handles all SVG path commands (M/L/H/V/C/S/Q/T/A/Z, both absolute and relative)
|
|
731
732
|
// Curves (C/S/Q/T/A) are approximated as straight lines from start to endpoint
|
|
@@ -742,7 +743,7 @@ function parse_path_segments(path_str) {
|
|
|
742
743
|
return segments;
|
|
743
744
|
let idx = 0;
|
|
744
745
|
const peek = () => tokens[idx];
|
|
745
|
-
const next_num = () =>
|
|
746
|
+
const next_num = () => Number(tokens[idx++] || `0`);
|
|
746
747
|
while (idx < tokens.length) {
|
|
747
748
|
let cmd = peek() ?? ``;
|
|
748
749
|
if (cmd.length === 1 && /[A-Za-z]/.test(cmd)) {
|
|
@@ -825,10 +826,10 @@ function parse_ml_path(path_str) {
|
|
|
825
826
|
// Parse translate(x, y) or translate(x) from a transform attribute
|
|
826
827
|
// Single-arg translate uses implicit y=0 per SVG spec
|
|
827
828
|
function parse_translate(el) {
|
|
828
|
-
const match = /translate\(\s*([\d.eE+-]+)(?:\s*[,\s]\s*([\d.eE+-]+))?\s*\)/.exec(el?.getAttribute(`transform`) ?? ``);
|
|
829
|
+
const match = /translate\(\s*(?<x>[\d.eE+-]+)(?:\s*[,\s]\s*(?<y>[\d.eE+-]+))?\s*\)/.exec(el?.getAttribute(`transform`) ?? ``);
|
|
829
830
|
if (!match)
|
|
830
831
|
return null;
|
|
831
|
-
return [
|
|
832
|
+
return [Number(match[1]), match[2] ? Number(match[2]) : 0];
|
|
832
833
|
}
|
|
833
834
|
// Get translate X or Y from a group's transform attribute
|
|
834
835
|
function get_group_translate(el, axis) {
|
|
@@ -116,8 +116,7 @@ export function get_phase_color_key(name) {
|
|
|
116
116
|
}
|
|
117
117
|
// Get phase color - returns rgba() by default, or RGB string if format='rgb'
|
|
118
118
|
export function get_phase_color(name, format = `rgba`) {
|
|
119
|
-
const
|
|
120
|
-
const key = lower.includes(`+`) ? `two_phase` : get_phase_color_key(name);
|
|
119
|
+
const key = name.includes(`+`) ? `two_phase` : get_phase_color_key(name);
|
|
121
120
|
return format === `rgb` ? PHASE_COLOR_RGB[key] : PHASE_COLORS[key];
|
|
122
121
|
}
|
|
123
122
|
// Get gradient colors for multi-phase regions (2+ phases separated by '+')
|
|
@@ -523,7 +522,7 @@ function format_label_parts(label, use_subscripts, formatter) {
|
|
|
523
522
|
if (!use_subscripts)
|
|
524
523
|
return label;
|
|
525
524
|
return label
|
|
526
|
-
.split(/(
|
|
525
|
+
.split(/(?<separator>\s*\+\s*)/)
|
|
527
526
|
.map((part) => {
|
|
528
527
|
if (part.trim() === `+`)
|
|
529
528
|
return part;
|