matterviz 0.3.6 → 0.3.7
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.d.ts +9 -0
- package/dist/FilePicker.svelte +360 -0
- package/dist/FilePicker.svelte.d.ts +17 -0
- package/dist/Icon.svelte.d.ts +13 -0
- package/dist/MillerIndexInput.svelte +66 -0
- package/dist/MillerIndexInput.svelte.d.ts +7 -0
- package/dist/api/mp.d.ts +6 -0
- package/dist/api/mp.js +22 -0
- package/dist/api/optimade.d.ts +45 -0
- package/dist/api/optimade.js +135 -0
- package/dist/brillouin/BrillouinZone.svelte +549 -0
- package/dist/brillouin/BrillouinZone.svelte.d.ts +83 -0
- package/dist/brillouin/BrillouinZoneControls.svelte +144 -0
- package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +17 -0
- package/dist/brillouin/BrillouinZoneExportPane.svelte +146 -0
- package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +146 -0
- package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
- package/dist/brillouin/BrillouinZoneScene.svelte +476 -0
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +48 -0
- package/dist/brillouin/BrillouinZoneTooltip.svelte +92 -0
- package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +8 -0
- package/dist/brillouin/compute.d.ts +17 -0
- package/dist/brillouin/compute.js +426 -0
- package/dist/brillouin/index.d.ts +8 -0
- package/dist/brillouin/index.js +7 -0
- package/dist/brillouin/types.d.ts +43 -0
- package/dist/brillouin/types.js +1 -0
- package/dist/chempot-diagram/ChemPotDiagram.svelte +327 -0
- package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
- package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
- package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
- package/dist/chempot-diagram/async-compute.svelte.js +78 -0
- package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
- package/dist/chempot-diagram/chempot-worker.js +11 -0
- package/dist/chempot-diagram/color.d.ts +10 -0
- package/dist/chempot-diagram/color.js +32 -0
- package/dist/chempot-diagram/compute.d.ts +48 -0
- package/dist/chempot-diagram/compute.js +806 -0
- package/dist/chempot-diagram/index.d.ts +6 -0
- package/dist/chempot-diagram/index.js +6 -0
- package/dist/chempot-diagram/pointer.d.ts +16 -0
- package/dist/chempot-diagram/pointer.js +40 -0
- package/dist/chempot-diagram/temperature.d.ts +15 -0
- package/dist/chempot-diagram/temperature.js +34 -0
- package/dist/chempot-diagram/types.d.ts +81 -0
- package/dist/chempot-diagram/types.js +28 -0
- package/dist/colors/index.d.ts +47 -0
- package/dist/colors/index.js +203 -0
- package/dist/composition/BarChart.svelte +297 -0
- package/dist/composition/BarChart.svelte.d.ts +39 -0
- package/dist/composition/BubbleChart.svelte +218 -0
- package/dist/composition/BubbleChart.svelte.d.ts +28 -0
- package/dist/composition/Composition.svelte +165 -0
- package/dist/composition/Composition.svelte.d.ts +15 -0
- package/dist/composition/Formula.svelte +268 -0
- package/dist/composition/Formula.svelte.d.ts +19 -0
- package/dist/composition/FormulaFilter.svelte +1257 -0
- package/dist/composition/FormulaFilter.svelte.d.ts +51 -0
- package/dist/composition/PieChart.svelte +323 -0
- package/dist/composition/PieChart.svelte.d.ts +37 -0
- package/dist/composition/format.d.ts +15 -0
- package/dist/composition/format.js +109 -0
- package/dist/composition/index.d.ts +20 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/parse.d.ts +56 -0
- package/dist/composition/parse.js +474 -0
- package/dist/constants.d.ts +29 -0
- package/dist/constants.js +99 -0
- package/dist/controls.d.ts +14 -0
- package/dist/controls.js +30 -0
- package/dist/convex-hull/ConvexHull.svelte +157 -0
- package/dist/convex-hull/ConvexHull.svelte.d.ts +13 -0
- package/dist/convex-hull/ConvexHull2D.svelte +825 -0
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +11 -0
- package/dist/convex-hull/ConvexHull3D.svelte +1801 -0
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +8 -0
- package/dist/convex-hull/ConvexHull4D.svelte +1398 -0
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +8 -0
- package/dist/convex-hull/ConvexHullControls.svelte +535 -0
- package/dist/convex-hull/ConvexHullControls.svelte.d.ts +48 -0
- package/dist/convex-hull/ConvexHullInfoPane.svelte +125 -0
- package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +20 -0
- package/dist/convex-hull/ConvexHullStats.svelte +929 -0
- package/dist/convex-hull/ConvexHullStats.svelte.d.ts +17 -0
- package/dist/convex-hull/ConvexHullTooltip.svelte +131 -0
- package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +33 -0
- package/dist/convex-hull/GasPressureControls.svelte +247 -0
- package/dist/convex-hull/GasPressureControls.svelte.d.ts +11 -0
- package/dist/convex-hull/StructurePopup.svelte +151 -0
- package/dist/convex-hull/StructurePopup.svelte.d.ts +18 -0
- package/dist/convex-hull/TemperatureSlider.svelte.d.ts +8 -0
- package/dist/convex-hull/barycentric-coords.d.ts +18 -0
- package/dist/convex-hull/barycentric-coords.js +182 -0
- package/dist/convex-hull/demo-temperature.d.ts +6 -0
- package/dist/convex-hull/demo-temperature.js +40 -0
- package/dist/convex-hull/gas-thermodynamics.d.ts +16 -0
- package/dist/convex-hull/gas-thermodynamics.js +314 -0
- package/dist/convex-hull/helpers.d.ts +114 -0
- package/dist/convex-hull/helpers.js +710 -0
- package/dist/convex-hull/index.d.ts +119 -0
- package/dist/convex-hull/index.js +58 -0
- package/dist/convex-hull/thermodynamics.d.ts +67 -0
- package/dist/convex-hull/thermodynamics.js +1752 -0
- package/dist/convex-hull/types.d.ts +162 -0
- package/dist/convex-hull/types.js +36 -0
- package/dist/coordination/CoordinationBarPlot.svelte +311 -0
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +30 -0
- package/dist/coordination/calc-coordination.d.ts +15 -0
- package/dist/coordination/calc-coordination.js +63 -0
- package/dist/coordination/index.d.ts +8 -0
- package/dist/coordination/index.js +7 -0
- package/dist/effects.svelte.d.ts +12 -0
- package/dist/effects.svelte.js +37 -0
- package/dist/element/BohrAtom.svelte.d.ts +20 -0
- package/dist/element/ElementHeading.svelte +26 -0
- package/dist/element/ElementHeading.svelte.d.ts +8 -0
- package/dist/element/ElementPhoto.svelte +57 -0
- package/dist/element/ElementPhoto.svelte.d.ts +9 -0
- package/dist/element/ElementStats.svelte +80 -0
- package/dist/element/ElementStats.svelte.d.ts +8 -0
- package/dist/element/ElementTile.svelte +484 -0
- package/dist/element/ElementTile.svelte.d.ts +29 -0
- package/dist/element/Nucleus.svelte.d.ts +17 -0
- package/dist/element/data.d.ts +2 -0
- package/dist/element/data.js +2 -0
- package/dist/element/index.d.ts +8 -0
- package/dist/element/index.js +7 -0
- package/dist/element/types.d.ts +57 -0
- package/dist/element/types.js +1 -0
- package/dist/feedback/ClickFeedback.svelte +58 -0
- package/dist/feedback/ClickFeedback.svelte.d.ts +12 -0
- package/dist/feedback/DragOverlay.svelte +42 -0
- package/dist/feedback/DragOverlay.svelte.d.ts +7 -0
- package/dist/feedback/Spinner.svelte.d.ts +7 -0
- package/dist/feedback/StatusMessage.svelte.d.ts +9 -0
- package/dist/feedback/index.d.ts +4 -0
- package/dist/feedback/index.js +4 -0
- package/dist/fermi-surface/FermiSlice.svelte +189 -0
- package/dist/fermi-surface/FermiSlice.svelte.d.ts +24 -0
- package/dist/fermi-surface/FermiSurface.svelte +600 -0
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +83 -0
- package/dist/fermi-surface/FermiSurfaceControls.svelte +448 -0
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +35 -0
- package/dist/fermi-surface/FermiSurfaceScene.svelte +794 -0
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +50 -0
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +8 -0
- package/dist/fermi-surface/compute.d.ts +5 -0
- package/dist/fermi-surface/compute.js +538 -0
- package/dist/fermi-surface/constants.d.ts +9 -0
- package/dist/fermi-surface/constants.js +27 -0
- package/dist/fermi-surface/export.d.ts +5 -0
- package/dist/fermi-surface/export.js +50 -0
- package/dist/fermi-surface/index.d.ts +12 -0
- package/dist/fermi-surface/index.js +13 -0
- package/dist/fermi-surface/marching-cubes.d.ts +2 -0
- package/dist/fermi-surface/marching-cubes.js +2 -0
- package/dist/fermi-surface/parse.d.ts +2 -0
- package/dist/fermi-surface/parse.js +491 -0
- package/dist/fermi-surface/symmetry.d.ts +3 -0
- package/dist/fermi-surface/symmetry.js +46 -0
- package/dist/fermi-surface/types.d.ts +110 -0
- package/dist/fermi-surface/types.js +4 -0
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
- package/dist/heatmap-matrix/index.d.ts +53 -0
- package/dist/heatmap-matrix/index.js +100 -0
- package/dist/heatmap-matrix/shared.d.ts +2 -0
- package/dist/heatmap-matrix/shared.js +4 -0
- package/dist/icons.d.ts +569 -0
- package/dist/icons.js +648 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +39 -0
- package/dist/io/decompress.d.ts +11 -0
- package/dist/io/decompress.js +74 -0
- package/dist/io/export.d.ts +16 -0
- package/dist/io/export.js +316 -0
- package/dist/io/fetch.d.ts +5 -0
- package/dist/io/fetch.js +39 -0
- package/dist/io/file-drop.d.ts +7 -0
- package/dist/io/file-drop.js +43 -0
- package/dist/io/index.d.ts +7 -0
- package/dist/io/index.js +6 -0
- package/dist/io/is-binary.d.ts +1 -0
- package/dist/io/is-binary.js +20 -0
- package/dist/io/types.d.ts +8 -0
- package/dist/io/types.js +1 -0
- package/dist/io/url-drop.d.ts +2 -0
- package/dist/io/url-drop.js +123 -0
- package/dist/isosurface/Isosurface.svelte +285 -0
- package/dist/isosurface/Isosurface.svelte.d.ts +8 -0
- package/dist/isosurface/IsosurfaceControls.svelte +277 -0
- package/dist/isosurface/IsosurfaceControls.svelte.d.ts +9 -0
- package/dist/isosurface/index.d.ts +5 -0
- package/dist/isosurface/index.js +6 -0
- package/dist/isosurface/parse.d.ts +6 -0
- package/dist/isosurface/parse.js +553 -0
- package/dist/isosurface/slice.d.ts +11 -0
- package/dist/isosurface/slice.js +140 -0
- package/dist/isosurface/types.d.ts +56 -0
- package/dist/isosurface/types.js +227 -0
- package/dist/labels.d.ts +53 -0
- package/dist/labels.js +277 -0
- package/dist/layout/FullscreenToggle.svelte +50 -0
- package/dist/layout/FullscreenToggle.svelte.d.ts +7 -0
- package/dist/layout/InfoCard.svelte +120 -0
- package/dist/layout/InfoCard.svelte.d.ts +21 -0
- package/dist/layout/InfoTag.svelte +185 -0
- package/dist/layout/InfoTag.svelte.d.ts +19 -0
- package/dist/layout/PropertyFilter.svelte +246 -0
- package/dist/layout/PropertyFilter.svelte.d.ts +24 -0
- package/dist/layout/SettingsSection.svelte +148 -0
- package/dist/layout/SettingsSection.svelte.d.ts +17 -0
- package/dist/layout/SubpageGrid.svelte +82 -0
- package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
- package/dist/layout/fullscreen.d.ts +9 -0
- package/dist/layout/fullscreen.js +53 -0
- package/dist/layout/index.d.ts +10 -0
- package/dist/layout/index.js +8 -0
- package/dist/layout/json-tree/JsonNode.svelte +548 -0
- package/dist/layout/json-tree/JsonNode.svelte.d.ts +11 -0
- package/dist/layout/json-tree/JsonTree.svelte +1230 -0
- package/dist/layout/json-tree/JsonTree.svelte.d.ts +6 -0
- package/dist/layout/json-tree/JsonValue.svelte.d.ts +9 -0
- package/dist/layout/json-tree/index.d.ts +3 -0
- package/dist/layout/json-tree/index.js +3 -0
- package/dist/layout/json-tree/types.d.ts +74 -0
- package/dist/layout/json-tree/types.js +2 -0
- package/dist/layout/json-tree/utils.d.ts +29 -0
- package/dist/layout/json-tree/utils.js +641 -0
- package/dist/marching-cubes.d.ts +14 -0
- package/dist/marching-cubes.js +540 -0
- package/dist/math.d.ts +101 -0
- package/dist/math.js +905 -0
- package/dist/overlays/ContextMenu.svelte +162 -0
- package/dist/overlays/ContextMenu.svelte.d.ts +25 -0
- package/dist/overlays/CopyButton.svelte +45 -0
- package/dist/overlays/CopyButton.svelte.d.ts +8 -0
- package/dist/overlays/DragControlTab.svelte +98 -0
- package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
- package/dist/overlays/DraggablePane.svelte +487 -0
- package/dist/overlays/DraggablePane.svelte.d.ts +36 -0
- package/dist/overlays/InfoPaneCards.svelte +149 -0
- package/dist/overlays/InfoPaneCards.svelte.d.ts +22 -0
- package/dist/overlays/index.d.ts +3 -0
- package/dist/overlays/index.js +3 -0
- package/dist/periodic-table/PeriodicTable.svelte +469 -0
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +55 -0
- package/dist/periodic-table/PeriodicTableControls.svelte +557 -0
- package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +24 -0
- package/dist/periodic-table/PropertySelect.svelte +37 -0
- package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
- package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
- package/dist/periodic-table/index.d.ts +10 -0
- package/dist/periodic-table/index.js +4 -0
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +44 -0
- package/dist/phase-diagram/PhaseDiagramControls.svelte +444 -0
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +30 -0
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +19 -0
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +16 -0
- package/dist/phase-diagram/TdbInfoPanel.svelte +203 -0
- package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +12 -0
- package/dist/phase-diagram/build-diagram.d.ts +11 -0
- package/dist/phase-diagram/build-diagram.js +160 -0
- package/dist/phase-diagram/colors.d.ts +35 -0
- package/dist/phase-diagram/colors.js +51 -0
- package/dist/phase-diagram/diagram-input.d.ts +29 -0
- package/dist/phase-diagram/diagram-input.js +3 -0
- package/dist/phase-diagram/index.d.ts +13 -0
- package/dist/phase-diagram/index.js +11 -0
- package/dist/phase-diagram/parse.d.ts +55 -0
- package/dist/phase-diagram/parse.js +272 -0
- package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
- package/dist/phase-diagram/svg-to-diagram.js +867 -0
- package/dist/phase-diagram/types.d.ts +93 -0
- package/dist/phase-diagram/types.js +1 -0
- package/dist/phase-diagram/utils.d.ts +118 -0
- package/dist/phase-diagram/utils.js +604 -0
- package/dist/plot/AxisLabel.svelte +51 -0
- package/dist/plot/AxisLabel.svelte.d.ts +16 -0
- package/dist/plot/BarPlot.svelte +2113 -0
- package/dist/plot/BarPlot.svelte.d.ts +84 -0
- package/dist/plot/BarPlotControls.svelte +66 -0
- package/dist/plot/BarPlotControls.svelte.d.ts +18 -0
- package/dist/plot/BinnedScatterPlot.svelte +1114 -0
- package/dist/plot/BinnedScatterPlot.svelte.d.ts +66 -0
- package/dist/plot/ColorBar.svelte +721 -0
- package/dist/plot/ColorBar.svelte.d.ts +31 -0
- package/dist/plot/ColorScaleSelect.svelte +54 -0
- package/dist/plot/ColorScaleSelect.svelte.d.ts +15 -0
- package/dist/plot/ElementScatter.svelte +63 -0
- package/dist/plot/ElementScatter.svelte.d.ts +14 -0
- package/dist/plot/FillArea.svelte.d.ts +21 -0
- package/dist/plot/Histogram.svelte +1558 -0
- package/dist/plot/Histogram.svelte.d.ts +50 -0
- package/dist/plot/HistogramControls.svelte +212 -0
- package/dist/plot/HistogramControls.svelte.d.ts +22 -0
- package/dist/plot/InteractiveAxisLabel.svelte +96 -0
- package/dist/plot/InteractiveAxisLabel.svelte.d.ts +14 -0
- package/dist/plot/Line.svelte +84 -0
- package/dist/plot/Line.svelte.d.ts +15 -0
- package/dist/plot/PlotAxis.svelte +169 -0
- package/dist/plot/PlotAxis.svelte.d.ts +24 -0
- package/dist/plot/PlotControls.svelte +537 -0
- package/dist/plot/PlotControls.svelte.d.ts +4 -0
- package/dist/plot/PlotLegend.svelte +569 -0
- package/dist/plot/PlotLegend.svelte.d.ts +29 -0
- package/dist/plot/PlotTooltip.svelte +67 -0
- package/dist/plot/PlotTooltip.svelte.d.ts +17 -0
- package/dist/plot/PortalSelect.svelte +253 -0
- package/dist/plot/PortalSelect.svelte.d.ts +16 -0
- package/dist/plot/ReferenceLine.svelte.d.ts +20 -0
- package/dist/plot/ReferenceLine3D.svelte +156 -0
- package/dist/plot/ReferenceLine3D.svelte.d.ts +14 -0
- package/dist/plot/ReferencePlane.svelte +175 -0
- package/dist/plot/ReferencePlane.svelte.d.ts +14 -0
- package/dist/plot/ScatterPlot.svelte +2778 -0
- package/dist/plot/ScatterPlot.svelte.d.ts +96 -0
- package/dist/plot/ScatterPlot3D.svelte +529 -0
- package/dist/plot/ScatterPlot3D.svelte.d.ts +95 -0
- package/dist/plot/ScatterPlot3DControls.svelte +437 -0
- package/dist/plot/ScatterPlot3DControls.svelte.d.ts +20 -0
- package/dist/plot/ScatterPlot3DScene.svelte +912 -0
- package/dist/plot/ScatterPlot3DScene.svelte.d.ts +74 -0
- package/dist/plot/ScatterPlotControls.svelte +306 -0
- package/dist/plot/ScatterPlotControls.svelte.d.ts +17 -0
- package/dist/plot/ScatterPoint.svelte +182 -0
- package/dist/plot/ScatterPoint.svelte.d.ts +22 -0
- package/dist/plot/SpacegroupBarPlot.svelte +293 -0
- package/dist/plot/SpacegroupBarPlot.svelte.d.ts +9 -0
- package/dist/plot/Surface3D.svelte +197 -0
- package/dist/plot/Surface3D.svelte.d.ts +13 -0
- package/dist/plot/ZeroLines.svelte +97 -0
- package/dist/plot/ZeroLines.svelte.d.ts +33 -0
- package/dist/plot/ZoomRect.svelte +23 -0
- package/dist/plot/ZoomRect.svelte.d.ts +8 -0
- package/dist/plot/adaptive-density.d.ts +69 -0
- package/dist/plot/adaptive-density.js +191 -0
- package/dist/plot/auto-place.d.ts +43 -0
- package/dist/plot/auto-place.js +122 -0
- package/dist/plot/axis-utils.d.ts +19 -0
- package/dist/plot/axis-utils.js +78 -0
- package/dist/plot/binned-scatter-types.d.ts +59 -0
- package/dist/plot/binned-scatter-types.js +1 -0
- package/dist/plot/data-cleaning.d.ts +37 -0
- package/dist/plot/data-cleaning.js +855 -0
- package/dist/plot/data-transform.d.ts +16 -0
- package/dist/plot/data-transform.js +45 -0
- package/dist/plot/defaults.d.ts +19 -0
- package/dist/plot/defaults.js +9 -0
- package/dist/plot/fill-utils.d.ts +46 -0
- package/dist/plot/fill-utils.js +322 -0
- package/dist/plot/hover-lock.svelte.d.ts +14 -0
- package/dist/plot/hover-lock.svelte.js +46 -0
- package/dist/plot/index.d.ts +41 -0
- package/dist/plot/index.js +39 -0
- package/dist/plot/interactions.d.ts +12 -0
- package/dist/plot/interactions.js +101 -0
- package/dist/plot/layout.d.ts +78 -0
- package/dist/plot/layout.js +273 -0
- package/dist/plot/reference-line.d.ts +60 -0
- package/dist/plot/reference-line.js +314 -0
- package/dist/plot/scales.d.ts +48 -0
- package/dist/plot/scales.js +481 -0
- package/dist/plot/svg.d.ts +1 -0
- package/dist/plot/svg.js +11 -0
- package/dist/plot/types.d.ts +831 -0
- package/dist/plot/types.js +99 -0
- package/dist/plot/utils/label-placement.d.ts +68 -0
- package/dist/plot/utils/label-placement.js +326 -0
- package/dist/plot/utils/series-visibility.d.ts +15 -0
- package/dist/plot/utils/series-visibility.js +85 -0
- package/dist/plot/utils.d.ts +1 -0
- package/dist/plot/utils.js +14 -0
- package/dist/rdf/RdfPlot.svelte +247 -0
- package/dist/rdf/RdfPlot.svelte.d.ts +27 -0
- package/dist/rdf/calc-rdf.d.ts +4 -0
- package/dist/rdf/calc-rdf.js +111 -0
- package/dist/rdf/index.d.ts +23 -0
- package/dist/rdf/index.js +2 -0
- package/dist/sanitize.d.ts +6 -0
- package/dist/sanitize.js +116 -0
- package/dist/settings.d.ts +255 -0
- package/dist/settings.js +1132 -0
- package/dist/spectral/Bands.svelte +1040 -0
- package/dist/spectral/Bands.svelte.d.ts +40 -0
- package/dist/spectral/BandsAndDos.svelte +134 -0
- package/dist/spectral/BandsAndDos.svelte.d.ts +18 -0
- package/dist/spectral/BrillouinBandsDos.svelte +252 -0
- package/dist/spectral/BrillouinBandsDos.svelte.d.ts +20 -0
- package/dist/spectral/Dos.svelte +697 -0
- package/dist/spectral/Dos.svelte.d.ts +29 -0
- package/dist/spectral/helpers.d.ts +119 -0
- package/dist/spectral/helpers.js +1032 -0
- package/dist/spectral/index.d.ts +6 -0
- package/dist/spectral/index.js +6 -0
- package/dist/spectral/types.d.ts +84 -0
- package/dist/spectral/types.js +2 -0
- package/dist/state.svelte.d.ts +25 -0
- package/dist/state.svelte.js +45 -0
- package/dist/structure/Arrow.svelte +72 -0
- package/dist/structure/Arrow.svelte.d.ts +15 -0
- package/dist/structure/AtomLegend.svelte +815 -0
- package/dist/structure/AtomLegend.svelte.d.ts +35 -0
- package/dist/structure/Bond.svelte +140 -0
- package/dist/structure/Bond.svelte.d.ts +9 -0
- package/dist/structure/CanvasTooltip.svelte +33 -0
- package/dist/structure/CanvasTooltip.svelte.d.ts +12 -0
- package/dist/structure/CellSelect.svelte +349 -0
- package/dist/structure/CellSelect.svelte.d.ts +13 -0
- package/dist/structure/Cylinder.svelte +45 -0
- package/dist/structure/Cylinder.svelte.d.ts +10 -0
- package/dist/structure/Lattice.svelte +196 -0
- package/dist/structure/Lattice.svelte.d.ts +17 -0
- package/dist/structure/Structure.svelte +2248 -0
- package/dist/structure/Structure.svelte.d.ts +89 -0
- package/dist/structure/StructureControls.svelte +1273 -0
- package/dist/structure/StructureControls.svelte.d.ts +31 -0
- package/dist/structure/StructureExportPane.svelte +252 -0
- package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
- package/dist/structure/StructureInfoPane.svelte +737 -0
- package/dist/structure/StructureInfoPane.svelte.d.ts +19 -0
- package/dist/structure/StructureScene.svelte +2255 -0
- package/dist/structure/StructureScene.svelte.d.ts +111 -0
- package/dist/structure/atom-properties.d.ts +37 -0
- package/dist/structure/atom-properties.js +200 -0
- package/dist/structure/bond-order-perception.d.ts +13 -0
- package/dist/structure/bond-order-perception.js +384 -0
- package/dist/structure/bonding.d.ts +68 -0
- package/dist/structure/bonding.js +696 -0
- package/dist/structure/export.d.ts +20 -0
- package/dist/structure/export.js +727 -0
- package/dist/structure/index.d.ts +126 -0
- package/dist/structure/index.js +169 -0
- package/dist/structure/label-placement.d.ts +14 -0
- package/dist/structure/label-placement.js +72 -0
- package/dist/structure/measure.d.ts +6 -0
- package/dist/structure/measure.js +29 -0
- package/dist/structure/parse.d.ts +66 -0
- package/dist/structure/parse.js +1392 -0
- package/dist/structure/partial-occupancy.d.ts +25 -0
- package/dist/structure/partial-occupancy.js +99 -0
- package/dist/structure/pbc.d.ts +9 -0
- package/dist/structure/pbc.js +123 -0
- package/dist/structure/supercell.d.ts +8 -0
- package/dist/structure/supercell.js +170 -0
- package/dist/structure/validation.d.ts +2 -0
- package/dist/structure/validation.js +10 -0
- package/dist/symmetry/SymmetryStats.svelte +226 -0
- package/dist/symmetry/SymmetryStats.svelte.d.ts +21 -0
- package/dist/symmetry/WyckoffTable.svelte +120 -0
- package/dist/symmetry/WyckoffTable.svelte.d.ts +11 -0
- package/dist/symmetry/cell-transform.d.ts +12 -0
- package/dist/symmetry/cell-transform.js +91 -0
- package/dist/symmetry/index.d.ts +43 -0
- package/dist/symmetry/index.js +228 -0
- package/dist/symmetry/spacegroups.d.ts +9 -0
- package/dist/symmetry/spacegroups.js +394 -0
- package/dist/table/HeatmapTable.svelte +1833 -0
- package/dist/table/HeatmapTable.svelte.d.ts +49 -0
- package/dist/table/ToggleMenu.svelte +385 -0
- package/dist/table/ToggleMenu.svelte.d.ts +11 -0
- package/dist/table/index.d.ts +74 -0
- package/dist/table/index.js +38 -0
- package/dist/theme/ThemeControl.svelte +53 -0
- package/dist/theme/ThemeControl.svelte.d.ts +9 -0
- package/dist/theme/index.d.ts +29 -0
- package/dist/theme/index.js +79 -0
- package/dist/time.d.ts +4 -0
- package/dist/time.js +70 -0
- package/dist/tooltip/TooltipContent.svelte +58 -0
- package/dist/tooltip/TooltipContent.svelte.d.ts +31 -0
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/tooltip/types.d.ts +8 -0
- package/dist/tooltip/types.js +1 -0
- package/dist/trajectory/Trajectory.svelte +1545 -0
- package/dist/trajectory/Trajectory.svelte.d.ts +77 -0
- package/dist/trajectory/TrajectoryError.svelte +128 -0
- package/dist/trajectory/TrajectoryError.svelte.d.ts +13 -0
- package/dist/trajectory/TrajectoryExportPane.svelte +357 -0
- package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +17 -0
- package/dist/trajectory/TrajectoryInfoPane.svelte +313 -0
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +17 -0
- package/dist/trajectory/constants.d.ts +6 -0
- package/dist/trajectory/constants.js +7 -0
- package/dist/trajectory/extract.d.ts +5 -0
- package/dist/trajectory/extract.js +162 -0
- package/dist/trajectory/format-detect.d.ts +9 -0
- package/dist/trajectory/format-detect.js +76 -0
- package/dist/trajectory/frame-reader.d.ts +17 -0
- package/dist/trajectory/frame-reader.js +332 -0
- package/dist/trajectory/helpers.d.ts +15 -0
- package/dist/trajectory/helpers.js +164 -0
- package/dist/trajectory/index.d.ts +63 -0
- package/dist/trajectory/index.js +126 -0
- package/dist/trajectory/parse/ase.d.ts +2 -0
- package/dist/trajectory/parse/ase.js +73 -0
- package/dist/trajectory/parse/hdf5.d.ts +2 -0
- package/dist/trajectory/parse/hdf5.js +127 -0
- package/dist/trajectory/parse/index.d.ts +12 -0
- package/dist/trajectory/parse/index.js +298 -0
- package/dist/trajectory/parse/lammps.d.ts +5 -0
- package/dist/trajectory/parse/lammps.js +179 -0
- package/dist/trajectory/parse/vasp.d.ts +2 -0
- package/dist/trajectory/parse/vasp.js +68 -0
- package/dist/trajectory/parse/xyz.d.ts +2 -0
- package/dist/trajectory/parse/xyz.js +110 -0
- package/dist/trajectory/plotting.d.ts +28 -0
- package/dist/trajectory/plotting.js +423 -0
- package/dist/trajectory/types.d.ts +11 -0
- package/dist/trajectory/types.js +1 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.js +45 -0
- package/dist/xrd/XrdPlot.svelte +615 -0
- package/dist/xrd/XrdPlot.svelte.d.ts +28 -0
- package/dist/xrd/broadening.d.ts +20 -0
- package/dist/xrd/broadening.js +97 -0
- package/dist/xrd/calc-xrd.d.ts +37 -0
- package/dist/xrd/calc-xrd.js +336 -0
- package/dist/xrd/index.d.ts +37 -0
- package/dist/xrd/index.js +4 -0
- package/dist/xrd/parse.d.ts +13 -0
- package/dist/xrd/parse.js +749 -0
- package/license +1 -1
- package/package.json +232 -1457
- package/readme.md +98 -171
- package/.vscode/launch.json +0 -13
- package/.vscodeignore +0 -7
- package/dist/assets/STLExporter-BpTH3YHE.js +0 -8
- package/dist/assets/browser-DdDecX_W.js +0 -1
- package/dist/assets/export-qgn-H9y6.js +0 -2
- package/dist/assets/main-DiKYzti2.css +0 -1
- package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
- package/dist/extension.js +0 -31293
- package/dist/src/lib/FilePicker.svelte +0 -360
- package/dist/src/lib/MillerIndexInput.svelte +0 -66
- package/dist/src/lib/api/mp.ts +0 -26
- package/dist/src/lib/api/optimade.ts +0 -204
- package/dist/src/lib/brillouin/BrillouinZone.svelte +0 -549
- package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +0 -144
- package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +0 -146
- package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +0 -146
- package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +0 -476
- package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +0 -92
- package/dist/src/lib/brillouin/compute.ts +0 -529
- package/dist/src/lib/brillouin/index.ts +0 -8
- package/dist/src/lib/brillouin/types.ts +0 -51
- package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +0 -327
- package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +0 -846
- package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +0 -3193
- package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +0 -94
- package/dist/src/lib/chempot-diagram/chempot-worker.ts +0 -11
- package/dist/src/lib/chempot-diagram/color.ts +0 -42
- package/dist/src/lib/chempot-diagram/compute.ts +0 -1014
- package/dist/src/lib/chempot-diagram/index.ts +0 -6
- package/dist/src/lib/chempot-diagram/pointer.ts +0 -56
- package/dist/src/lib/chempot-diagram/temperature.ts +0 -77
- package/dist/src/lib/chempot-diagram/types.ts +0 -130
- package/dist/src/lib/colors/index.ts +0 -249
- package/dist/src/lib/composition/BarChart.svelte +0 -297
- package/dist/src/lib/composition/BubbleChart.svelte +0 -218
- package/dist/src/lib/composition/Composition.svelte +0 -165
- package/dist/src/lib/composition/Formula.svelte +0 -268
- package/dist/src/lib/composition/FormulaFilter.svelte +0 -1257
- package/dist/src/lib/composition/PieChart.svelte +0 -323
- package/dist/src/lib/composition/format.ts +0 -155
- package/dist/src/lib/composition/index.ts +0 -37
- package/dist/src/lib/composition/parse.ts +0 -605
- package/dist/src/lib/constants.ts +0 -134
- package/dist/src/lib/controls.ts +0 -42
- package/dist/src/lib/convex-hull/ConvexHull.svelte +0 -157
- package/dist/src/lib/convex-hull/ConvexHull2D.svelte +0 -825
- package/dist/src/lib/convex-hull/ConvexHull3D.svelte +0 -1801
- package/dist/src/lib/convex-hull/ConvexHull4D.svelte +0 -1398
- package/dist/src/lib/convex-hull/ConvexHullControls.svelte +0 -535
- package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +0 -125
- package/dist/src/lib/convex-hull/ConvexHullStats.svelte +0 -929
- package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +0 -131
- package/dist/src/lib/convex-hull/GasPressureControls.svelte +0 -247
- package/dist/src/lib/convex-hull/StructurePopup.svelte +0 -151
- package/dist/src/lib/convex-hull/barycentric-coords.ts +0 -246
- package/dist/src/lib/convex-hull/demo-temperature.ts +0 -63
- package/dist/src/lib/convex-hull/gas-thermodynamics.ts +0 -405
- package/dist/src/lib/convex-hull/helpers.ts +0 -932
- package/dist/src/lib/convex-hull/index.ts +0 -202
- package/dist/src/lib/convex-hull/thermodynamics.ts +0 -2192
- package/dist/src/lib/convex-hull/types.ts +0 -267
- package/dist/src/lib/coordination/CoordinationBarPlot.svelte +0 -311
- package/dist/src/lib/coordination/calc-coordination.ts +0 -93
- package/dist/src/lib/coordination/index.ts +0 -9
- package/dist/src/lib/effects.svelte.ts +0 -48
- package/dist/src/lib/element/ElementHeading.svelte +0 -26
- package/dist/src/lib/element/ElementPhoto.svelte +0 -57
- package/dist/src/lib/element/ElementStats.svelte +0 -80
- package/dist/src/lib/element/ElementTile.svelte +0 -484
- package/dist/src/lib/element/data.ts +0 -14
- package/dist/src/lib/element/index.ts +0 -8
- package/dist/src/lib/element/types.ts +0 -62
- package/dist/src/lib/feedback/ClickFeedback.svelte +0 -58
- package/dist/src/lib/feedback/DragOverlay.svelte +0 -42
- package/dist/src/lib/feedback/index.ts +0 -4
- package/dist/src/lib/fermi-surface/FermiSlice.svelte +0 -189
- package/dist/src/lib/fermi-surface/FermiSurface.svelte +0 -600
- package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +0 -448
- package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +0 -794
- package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
- package/dist/src/lib/fermi-surface/compute.ts +0 -728
- package/dist/src/lib/fermi-surface/constants.ts +0 -32
- package/dist/src/lib/fermi-surface/export.ts +0 -64
- package/dist/src/lib/fermi-surface/index.ts +0 -14
- package/dist/src/lib/fermi-surface/marching-cubes.ts +0 -3
- package/dist/src/lib/fermi-surface/parse.ts +0 -574
- package/dist/src/lib/fermi-surface/symmetry.ts +0 -56
- package/dist/src/lib/fermi-surface/types.ts +0 -159
- package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +0 -1545
- package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
- package/dist/src/lib/heatmap-matrix/index.ts +0 -167
- package/dist/src/lib/heatmap-matrix/shared.ts +0 -7
- package/dist/src/lib/icons.ts +0 -650
- package/dist/src/lib/index.ts +0 -61
- package/dist/src/lib/io/decompress.ts +0 -92
- package/dist/src/lib/io/export.ts +0 -385
- package/dist/src/lib/io/fetch.ts +0 -46
- package/dist/src/lib/io/file-drop.ts +0 -51
- package/dist/src/lib/io/index.ts +0 -7
- package/dist/src/lib/io/is-binary.ts +0 -24
- package/dist/src/lib/io/types.ts +0 -8
- package/dist/src/lib/io/url-drop.ts +0 -141
- package/dist/src/lib/isosurface/Isosurface.svelte +0 -285
- package/dist/src/lib/isosurface/IsosurfaceControls.svelte +0 -277
- package/dist/src/lib/isosurface/index.ts +0 -7
- package/dist/src/lib/isosurface/parse.ts +0 -656
- package/dist/src/lib/isosurface/slice.ts +0 -175
- package/dist/src/lib/isosurface/types.ts +0 -309
- package/dist/src/lib/labels.ts +0 -320
- package/dist/src/lib/layout/FullscreenToggle.svelte +0 -50
- package/dist/src/lib/layout/InfoCard.svelte +0 -120
- package/dist/src/lib/layout/InfoTag.svelte +0 -185
- package/dist/src/lib/layout/PropertyFilter.svelte +0 -246
- package/dist/src/lib/layout/SettingsSection.svelte +0 -148
- package/dist/src/lib/layout/SubpageGrid.svelte +0 -82
- package/dist/src/lib/layout/fullscreen.ts +0 -65
- package/dist/src/lib/layout/index.ts +0 -11
- package/dist/src/lib/layout/json-tree/JsonNode.svelte +0 -548
- package/dist/src/lib/layout/json-tree/JsonTree.svelte +0 -1230
- package/dist/src/lib/layout/json-tree/index.ts +0 -3
- package/dist/src/lib/layout/json-tree/types.ts +0 -126
- package/dist/src/lib/layout/json-tree/utils.ts +0 -682
- package/dist/src/lib/marching-cubes.ts +0 -614
- package/dist/src/lib/math.ts +0 -1081
- package/dist/src/lib/overlays/ContextMenu.svelte +0 -162
- package/dist/src/lib/overlays/CopyButton.svelte +0 -45
- package/dist/src/lib/overlays/DragControlTab.svelte +0 -98
- package/dist/src/lib/overlays/DraggablePane.svelte +0 -487
- package/dist/src/lib/overlays/InfoPaneCards.svelte +0 -149
- package/dist/src/lib/overlays/index.ts +0 -3
- package/dist/src/lib/periodic-table/PeriodicTable.svelte +0 -469
- package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +0 -557
- package/dist/src/lib/periodic-table/PropertySelect.svelte +0 -37
- package/dist/src/lib/periodic-table/index.ts +0 -12
- package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
- package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +0 -444
- package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
- package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +0 -184
- package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +0 -391
- package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +0 -203
- package/dist/src/lib/phase-diagram/build-diagram.ts +0 -186
- package/dist/src/lib/phase-diagram/colors.ts +0 -58
- package/dist/src/lib/phase-diagram/diagram-input.ts +0 -40
- package/dist/src/lib/phase-diagram/index.ts +0 -13
- package/dist/src/lib/phase-diagram/parse.ts +0 -348
- package/dist/src/lib/phase-diagram/svg-to-diagram.ts +0 -1023
- package/dist/src/lib/phase-diagram/types.ts +0 -144
- package/dist/src/lib/phase-diagram/utils.ts +0 -775
- package/dist/src/lib/plot/AxisLabel.svelte +0 -51
- package/dist/src/lib/plot/BarPlot.svelte +0 -2113
- package/dist/src/lib/plot/BarPlotControls.svelte +0 -66
- package/dist/src/lib/plot/BinnedScatterPlot.svelte +0 -1114
- package/dist/src/lib/plot/ColorBar.svelte +0 -721
- package/dist/src/lib/plot/ColorScaleSelect.svelte +0 -54
- package/dist/src/lib/plot/ElementScatter.svelte +0 -63
- package/dist/src/lib/plot/Histogram.svelte +0 -1558
- package/dist/src/lib/plot/HistogramControls.svelte +0 -212
- package/dist/src/lib/plot/InteractiveAxisLabel.svelte +0 -96
- package/dist/src/lib/plot/Line.svelte +0 -84
- package/dist/src/lib/plot/PlotAxis.svelte +0 -169
- package/dist/src/lib/plot/PlotControls.svelte +0 -537
- package/dist/src/lib/plot/PlotLegend.svelte +0 -569
- package/dist/src/lib/plot/PlotTooltip.svelte +0 -67
- package/dist/src/lib/plot/PortalSelect.svelte +0 -253
- package/dist/src/lib/plot/ReferenceLine3D.svelte +0 -156
- package/dist/src/lib/plot/ReferencePlane.svelte +0 -175
- package/dist/src/lib/plot/ScatterPlot.svelte +0 -2778
- package/dist/src/lib/plot/ScatterPlot3D.svelte +0 -529
- package/dist/src/lib/plot/ScatterPlot3DControls.svelte +0 -437
- package/dist/src/lib/plot/ScatterPlot3DScene.svelte +0 -912
- package/dist/src/lib/plot/ScatterPlotControls.svelte +0 -306
- package/dist/src/lib/plot/ScatterPoint.svelte +0 -182
- package/dist/src/lib/plot/SpacegroupBarPlot.svelte +0 -293
- package/dist/src/lib/plot/Surface3D.svelte +0 -197
- package/dist/src/lib/plot/ZeroLines.svelte +0 -97
- package/dist/src/lib/plot/ZoomRect.svelte +0 -23
- package/dist/src/lib/plot/adaptive-density.ts +0 -316
- package/dist/src/lib/plot/auto-place.ts +0 -184
- package/dist/src/lib/plot/axis-utils.ts +0 -122
- package/dist/src/lib/plot/binned-scatter-types.ts +0 -83
- package/dist/src/lib/plot/data-cleaning.ts +0 -1069
- package/dist/src/lib/plot/data-transform.ts +0 -69
- package/dist/src/lib/plot/defaults.ts +0 -9
- package/dist/src/lib/plot/fill-utils.ts +0 -494
- package/dist/src/lib/plot/hover-lock.svelte.ts +0 -60
- package/dist/src/lib/plot/index.ts +0 -53
- package/dist/src/lib/plot/interactions.ts +0 -119
- package/dist/src/lib/plot/layout.ts +0 -425
- package/dist/src/lib/plot/reference-line.ts +0 -426
- package/dist/src/lib/plot/scales.ts +0 -654
- package/dist/src/lib/plot/svg.ts +0 -23
- package/dist/src/lib/plot/types.ts +0 -1144
- package/dist/src/lib/plot/utils/label-placement.ts +0 -541
- package/dist/src/lib/plot/utils/series-visibility.ts +0 -140
- package/dist/src/lib/plot/utils.ts +0 -11
- package/dist/src/lib/rdf/RdfPlot.svelte +0 -247
- package/dist/src/lib/rdf/calc-rdf.ts +0 -167
- package/dist/src/lib/rdf/index.ts +0 -27
- package/dist/src/lib/sanitize.ts +0 -126
- package/dist/src/lib/settings.ts +0 -1479
- package/dist/src/lib/spectral/Bands.svelte +0 -1040
- package/dist/src/lib/spectral/BandsAndDos.svelte +0 -134
- package/dist/src/lib/spectral/BrillouinBandsDos.svelte +0 -252
- package/dist/src/lib/spectral/Dos.svelte +0 -697
- package/dist/src/lib/spectral/helpers.ts +0 -1381
- package/dist/src/lib/spectral/index.ts +0 -8
- package/dist/src/lib/spectral/types.ts +0 -112
- package/dist/src/lib/state.svelte.ts +0 -64
- package/dist/src/lib/structure/Arrow.svelte +0 -72
- package/dist/src/lib/structure/AtomLegend.svelte +0 -815
- package/dist/src/lib/structure/Bond.svelte +0 -140
- package/dist/src/lib/structure/CanvasTooltip.svelte +0 -33
- package/dist/src/lib/structure/CellSelect.svelte +0 -349
- package/dist/src/lib/structure/Cylinder.svelte +0 -45
- package/dist/src/lib/structure/Lattice.svelte +0 -196
- package/dist/src/lib/structure/Structure.svelte +0 -2248
- package/dist/src/lib/structure/StructureControls.svelte +0 -1273
- package/dist/src/lib/structure/StructureExportPane.svelte +0 -252
- package/dist/src/lib/structure/StructureInfoPane.svelte +0 -737
- package/dist/src/lib/structure/StructureScene.svelte +0 -2255
- package/dist/src/lib/structure/atom-properties.ts +0 -316
- package/dist/src/lib/structure/bond-order-perception.ts +0 -447
- package/dist/src/lib/structure/bonding.ts +0 -944
- package/dist/src/lib/structure/export.ts +0 -861
- package/dist/src/lib/structure/index.ts +0 -291
- package/dist/src/lib/structure/label-placement.ts +0 -130
- package/dist/src/lib/structure/measure.ts +0 -45
- package/dist/src/lib/structure/parse.ts +0 -1705
- package/dist/src/lib/structure/partial-occupancy.ts +0 -183
- package/dist/src/lib/structure/pbc.ts +0 -164
- package/dist/src/lib/structure/supercell.ts +0 -226
- package/dist/src/lib/structure/validation.ts +0 -11
- package/dist/src/lib/symmetry/SymmetryStats.svelte +0 -226
- package/dist/src/lib/symmetry/WyckoffTable.svelte +0 -120
- package/dist/src/lib/symmetry/cell-transform.ts +0 -118
- package/dist/src/lib/symmetry/index.ts +0 -348
- package/dist/src/lib/symmetry/spacegroups.ts +0 -404
- package/dist/src/lib/table/HeatmapTable.svelte +0 -1833
- package/dist/src/lib/table/ToggleMenu.svelte +0 -385
- package/dist/src/lib/table/index.ts +0 -139
- package/dist/src/lib/theme/ThemeControl.svelte +0 -53
- package/dist/src/lib/theme/index.ts +0 -107
- package/dist/src/lib/time.ts +0 -71
- package/dist/src/lib/tooltip/TooltipContent.svelte +0 -58
- package/dist/src/lib/tooltip/index.ts +0 -2
- package/dist/src/lib/tooltip/types.ts +0 -13
- package/dist/src/lib/trajectory/Trajectory.svelte +0 -1545
- package/dist/src/lib/trajectory/TrajectoryError.svelte +0 -128
- package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +0 -357
- package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +0 -313
- package/dist/src/lib/trajectory/constants.ts +0 -7
- package/dist/src/lib/trajectory/extract.ts +0 -196
- package/dist/src/lib/trajectory/format-detect.ts +0 -96
- package/dist/src/lib/trajectory/frame-reader.ts +0 -456
- package/dist/src/lib/trajectory/helpers.ts +0 -217
- package/dist/src/lib/trajectory/index.ts +0 -218
- package/dist/src/lib/trajectory/parse/ase.ts +0 -109
- package/dist/src/lib/trajectory/parse/hdf5.ts +0 -173
- package/dist/src/lib/trajectory/parse/index.ts +0 -411
- package/dist/src/lib/trajectory/parse/lammps.ts +0 -215
- package/dist/src/lib/trajectory/parse/vasp.ts +0 -102
- package/dist/src/lib/trajectory/parse/xyz.ts +0 -143
- package/dist/src/lib/trajectory/plotting.ts +0 -599
- package/dist/src/lib/trajectory/types.ts +0 -13
- package/dist/src/lib/utils.ts +0 -56
- package/dist/src/lib/xrd/XrdPlot.svelte +0 -615
- package/dist/src/lib/xrd/broadening.ts +0 -130
- package/dist/src/lib/xrd/calc-xrd.ts +0 -397
- package/dist/src/lib/xrd/index.ts +0 -38
- package/dist/src/lib/xrd/parse.ts +0 -858
- package/dist/webview.js +0 -29421
- package/icon.png +0 -0
- 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/scripts/sync-config.ts +0 -101
- package/src/declarations.d.ts +0 -2
- package/src/extension.ts +0 -972
- package/src/node-io.ts +0 -65
- package/src/types.ts +0 -17
- package/src/webview/JsonBrowser.svelte +0 -1079
- package/src/webview/PlotPanel.svelte +0 -346
- package/src/webview/detect.ts +0 -444
- package/src/webview/main.ts +0 -764
- package/src/webview/plot-utils.ts +0 -250
- 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 +0 -604
- package/tests/extension.test.ts +0 -2041
- package/tests/node-io.test.ts +0 -39
- package/tests/plot-utils.test.ts +0 -302
- package/tests/vite-plugin-json-gz.test.ts +0 -114
- package/tests/vscode-mock.ts +0 -18
- package/tests/webview.test.ts +0 -231
- package/tsconfig.json +0 -20
- package/vite-plugin-json-gz.ts +0 -29
- package/vite.config.ts +0 -34
- package/vite.extension.config.ts +0 -34
- /package/dist/{src/lib/EmptyState.svelte → EmptyState.svelte} +0 -0
- /package/dist/{src/lib/Icon.svelte → Icon.svelte} +0 -0
- /package/dist/{src/lib/app.css → app.css} +0 -0
- /package/dist/{src/lib/chempot-diagram → chempot-diagram}/ChemPotScene3D.svelte +0 -0
- /package/dist/{src/lib/colors → colors}/alloy-colors.json +0 -0
- /package/dist/{src/lib/colors → colors}/dark-mode-colors.json +0 -0
- /package/dist/{src/lib/colors → colors}/jmol-colors.json +0 -0
- /package/dist/{src/lib/colors → colors}/muted-colors.json +0 -0
- /package/dist/{src/lib/colors → colors}/pastel-colors.json +0 -0
- /package/dist/{src/lib/colors → colors}/vesta-colors.json +0 -0
- /package/dist/{src/lib/convex-hull → convex-hull}/TemperatureSlider.svelte +0 -0
- /package/dist/{src/lib/element → element}/BohrAtom.svelte +0 -0
- /package/dist/{src/lib/element → element}/Nucleus.svelte +0 -0
- /package/dist/{src/lib/element → element}/data.json +0 -0
- /package/dist/{src/lib/element → element}/data.json.gz +0 -0
- /package/dist/{src/lib/element → element}/data.json.gz.d.ts +0 -0
- /package/dist/{src/lib/element → element}/data.schema.json +0 -0
- /package/dist/{src/lib/element-image-urls.json → element-image-urls.json} +0 -0
- /package/dist/{src/lib/feedback → feedback}/Spinner.svelte +0 -0
- /package/dist/{src/lib/feedback → feedback}/StatusMessage.svelte +0 -0
- /package/dist/{src/lib/layout → layout}/json-tree/JsonValue.svelte +0 -0
- /package/dist/{src/lib/periodic-table → periodic-table}/TableInset.svelte +0 -0
- /package/dist/{src/lib/plot → plot}/FillArea.svelte +0 -0
- /package/dist/{src/lib/plot → plot}/ReferenceLine.svelte +0 -0
- /package/dist/{src/lib/theme → theme}/themes.mjs +0 -0
- /package/dist/{src/lib/xrd → xrd}/atomic_scattering_params.json +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Point2D, Vec2 } from '../math';
|
|
2
|
+
export type NumericArray = ArrayLike<number>;
|
|
3
|
+
export interface DensePointSeries<Metadata = Record<string, unknown>> {
|
|
4
|
+
id?: string | number;
|
|
5
|
+
label?: string;
|
|
6
|
+
x: NumericArray;
|
|
7
|
+
y: NumericArray;
|
|
8
|
+
metadata?: Metadata[] | Metadata;
|
|
9
|
+
point_ids?: ArrayLike<string | number>;
|
|
10
|
+
size_values?: ArrayLike<number | null>;
|
|
11
|
+
color?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DenseInternalPoint<Metadata = Record<string, unknown>> {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
series_idx: number;
|
|
17
|
+
point_idx: number;
|
|
18
|
+
metadata?: Metadata;
|
|
19
|
+
point_id?: string | number;
|
|
20
|
+
size_value?: number | null;
|
|
21
|
+
cx: number;
|
|
22
|
+
cy: number;
|
|
23
|
+
}
|
|
24
|
+
export interface DensityBinResult {
|
|
25
|
+
counts: Uint32Array;
|
|
26
|
+
first_point_idxs: Int32Array;
|
|
27
|
+
first_series_idxs: Int32Array;
|
|
28
|
+
max_count: number;
|
|
29
|
+
visible_count: number;
|
|
30
|
+
x_bins: number;
|
|
31
|
+
y_bins: number;
|
|
32
|
+
}
|
|
33
|
+
export interface DensityBin {
|
|
34
|
+
x_bin: number;
|
|
35
|
+
y_bin: number;
|
|
36
|
+
count: number;
|
|
37
|
+
x_range: Vec2;
|
|
38
|
+
y_range: Vec2;
|
|
39
|
+
}
|
|
40
|
+
export interface PickNearestOptions {
|
|
41
|
+
x_range: Vec2;
|
|
42
|
+
y_range: Vec2;
|
|
43
|
+
x_scale: (value: number) => number;
|
|
44
|
+
y_scale: (value: number) => number;
|
|
45
|
+
radius_px?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface PickIndex<Metadata = Record<string, unknown>> {
|
|
48
|
+
cells: Map<string, DenseInternalPoint<Metadata>[]>;
|
|
49
|
+
cell_size: number;
|
|
50
|
+
radius_px: number;
|
|
51
|
+
}
|
|
52
|
+
export interface PlotRect {
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
}
|
|
58
|
+
export declare const get_metadata_at: <Metadata>(metadata: DensePointSeries<Metadata>[`metadata`], point_idx: number) => Metadata | undefined;
|
|
59
|
+
export declare const range_bounds: (range: Vec2) => Vec2;
|
|
60
|
+
export declare function series_extents(series: readonly DensePointSeries[]): {
|
|
61
|
+
x: Vec2;
|
|
62
|
+
y: Vec2;
|
|
63
|
+
};
|
|
64
|
+
export declare function bin_points(series: readonly DensePointSeries[], x_range: Vec2, y_range: Vec2, x_bins: number, y_bins: number): DensityBinResult;
|
|
65
|
+
export declare function density_bin_at_point(density: DensityBinResult, pointer: Point2D, plot_rect: PlotRect, x_range: Vec2, y_range: Vec2): DensityBin | null;
|
|
66
|
+
export declare function should_render_points(visible_count: number, plot_area_px: number, max_points: number, max_points_per_px: number): boolean;
|
|
67
|
+
export declare function build_pick_index<Metadata>(series: readonly DensePointSeries<Metadata>[], options: PickNearestOptions): PickIndex<Metadata>;
|
|
68
|
+
export declare function pick_from_index<Metadata>(index: PickIndex<Metadata>, pointer: Point2D): DenseInternalPoint<Metadata> | null;
|
|
69
|
+
export declare function first_point_in_bin<Metadata>(series: readonly DensePointSeries<Metadata>[], density: DensityBinResult, bin: Pick<DensityBin, `x_bin` | `y_bin`>, x_scale: (value: number) => number, y_scale: (value: number) => number): DenseInternalPoint<Metadata> | null;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
export const get_metadata_at = (metadata, point_idx) => (Array.isArray(metadata) ? metadata[point_idx] : metadata);
|
|
2
|
+
const cell_key = (x_bin, y_bin) => `${x_bin},${y_bin}`;
|
|
3
|
+
export const range_bounds = (range) => range[0] <= range[1] ? range : [range[1], range[0]];
|
|
4
|
+
const in_bounds = (value, min, max) => Number.isFinite(value) && value >= min && value <= max;
|
|
5
|
+
const value_bin = (value, min, span, bins) => Math.min(bins - 1, Math.max(0, Math.floor(((value - min) / span) * bins)));
|
|
6
|
+
const series_length = (srs) => Math.min(srs.x.length, srs.y.length);
|
|
7
|
+
const padded_extent = (min, max) => {
|
|
8
|
+
if (!Number.isFinite(min) || !Number.isFinite(max))
|
|
9
|
+
return [0, 1];
|
|
10
|
+
if (min === max)
|
|
11
|
+
return [min - 0.5, max + 0.5];
|
|
12
|
+
const padding = (max - min) * 0.05;
|
|
13
|
+
return [min - padding, max + padding];
|
|
14
|
+
};
|
|
15
|
+
export function series_extents(series) {
|
|
16
|
+
let x_min = Infinity;
|
|
17
|
+
let x_max = -Infinity;
|
|
18
|
+
let y_min = Infinity;
|
|
19
|
+
let y_max = -Infinity;
|
|
20
|
+
for (const srs of series) {
|
|
21
|
+
const n_points = series_length(srs);
|
|
22
|
+
for (let idx = 0; idx < n_points; idx++) {
|
|
23
|
+
const x = srs.x[idx];
|
|
24
|
+
const y = srs.y[idx];
|
|
25
|
+
if (Number.isFinite(x)) {
|
|
26
|
+
if (x < x_min)
|
|
27
|
+
x_min = x;
|
|
28
|
+
if (x > x_max)
|
|
29
|
+
x_max = x;
|
|
30
|
+
}
|
|
31
|
+
if (Number.isFinite(y)) {
|
|
32
|
+
if (y < y_min)
|
|
33
|
+
y_min = y;
|
|
34
|
+
if (y > y_max)
|
|
35
|
+
y_max = y;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return { x: padded_extent(x_min, x_max), y: padded_extent(y_min, y_max) };
|
|
40
|
+
}
|
|
41
|
+
export function bin_points(series, x_range, y_range, x_bins, y_bins) {
|
|
42
|
+
const counts = new Uint32Array(x_bins * y_bins);
|
|
43
|
+
const first_point_idxs = new Int32Array(counts.length);
|
|
44
|
+
const first_series_idxs = new Int32Array(counts.length);
|
|
45
|
+
const [x_min, x_max] = range_bounds(x_range);
|
|
46
|
+
const [y_min, y_max] = range_bounds(y_range);
|
|
47
|
+
const x_span = x_max - x_min || 1;
|
|
48
|
+
const y_span = y_max - y_min || 1;
|
|
49
|
+
const x_bin_scale = x_bins / x_span;
|
|
50
|
+
const y_bin_scale = y_bins / y_span;
|
|
51
|
+
const last_x_bin = x_bins - 1;
|
|
52
|
+
const last_y_bin = y_bins - 1;
|
|
53
|
+
let visible_count = 0;
|
|
54
|
+
let max_count = 0;
|
|
55
|
+
for (let series_idx = 0; series_idx < series.length; series_idx++) {
|
|
56
|
+
const srs = series[series_idx];
|
|
57
|
+
const n_points = series_length(srs);
|
|
58
|
+
for (let point_idx = 0; point_idx < n_points; point_idx++) {
|
|
59
|
+
const x = srs.x[point_idx];
|
|
60
|
+
const y = srs.y[point_idx];
|
|
61
|
+
if (!Number.isFinite(x) ||
|
|
62
|
+
!Number.isFinite(y) ||
|
|
63
|
+
x < x_min ||
|
|
64
|
+
x > x_max ||
|
|
65
|
+
y < y_min ||
|
|
66
|
+
y > y_max)
|
|
67
|
+
continue;
|
|
68
|
+
const raw_x_bin = Math.floor((x - x_min) * x_bin_scale);
|
|
69
|
+
const raw_y_bin = Math.floor((y - y_min) * y_bin_scale);
|
|
70
|
+
const x_bin = raw_x_bin > last_x_bin ? last_x_bin : raw_x_bin;
|
|
71
|
+
const y_bin = raw_y_bin > last_y_bin ? last_y_bin : raw_y_bin;
|
|
72
|
+
const idx = y_bin * x_bins + x_bin;
|
|
73
|
+
const count = ++counts[idx];
|
|
74
|
+
if (count === 1) {
|
|
75
|
+
first_series_idxs[idx] = series_idx;
|
|
76
|
+
first_point_idxs[idx] = point_idx;
|
|
77
|
+
}
|
|
78
|
+
visible_count++;
|
|
79
|
+
if (count > max_count)
|
|
80
|
+
max_count = count;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
counts,
|
|
85
|
+
first_point_idxs,
|
|
86
|
+
first_series_idxs,
|
|
87
|
+
max_count,
|
|
88
|
+
visible_count,
|
|
89
|
+
x_bins,
|
|
90
|
+
y_bins,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export function density_bin_at_point(density, pointer, plot_rect, x_range, y_range) {
|
|
94
|
+
const rel_x = pointer.x - plot_rect.x;
|
|
95
|
+
const rel_y = pointer.y - plot_rect.y;
|
|
96
|
+
if (rel_x < 0 || rel_y < 0 || rel_x >= plot_rect.width || rel_y >= plot_rect.height) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const x_bin = value_bin(rel_x, 0, plot_rect.width || 1, density.x_bins);
|
|
100
|
+
// Screen coordinates grow downward, while density bins use bottom-up data Y.
|
|
101
|
+
const y_bin = density.y_bins - 1 - value_bin(rel_y, 0, plot_rect.height || 1, density.y_bins);
|
|
102
|
+
const count = density.counts[y_bin * density.x_bins + x_bin];
|
|
103
|
+
if (!count)
|
|
104
|
+
return null;
|
|
105
|
+
const [x_min, x_max] = range_bounds(x_range);
|
|
106
|
+
const [y_min, y_max] = range_bounds(y_range);
|
|
107
|
+
const x_step = (x_max - x_min || 1) / density.x_bins;
|
|
108
|
+
const y_step = (y_max - y_min || 1) / density.y_bins;
|
|
109
|
+
return {
|
|
110
|
+
x_bin,
|
|
111
|
+
y_bin,
|
|
112
|
+
count,
|
|
113
|
+
x_range: [x_min + x_bin * x_step, x_min + (x_bin + 1) * x_step],
|
|
114
|
+
y_range: [y_min + y_bin * y_step, y_min + (y_bin + 1) * y_step],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
export function should_render_points(visible_count, plot_area_px, max_points, max_points_per_px) {
|
|
118
|
+
return (visible_count <= max_points ||
|
|
119
|
+
(plot_area_px > 0 && visible_count / plot_area_px <= max_points_per_px));
|
|
120
|
+
}
|
|
121
|
+
const internal_point = (srs, series_idx, point_idx, x_scale, y_scale) => {
|
|
122
|
+
const x = srs.x[point_idx];
|
|
123
|
+
const y = srs.y[point_idx];
|
|
124
|
+
return {
|
|
125
|
+
x,
|
|
126
|
+
y,
|
|
127
|
+
cx: x_scale(x),
|
|
128
|
+
cy: y_scale(y),
|
|
129
|
+
series_idx,
|
|
130
|
+
point_idx,
|
|
131
|
+
metadata: get_metadata_at(srs.metadata, point_idx),
|
|
132
|
+
point_id: srs.point_ids?.[point_idx],
|
|
133
|
+
size_value: srs.size_values?.[point_idx],
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
export function build_pick_index(series, options) {
|
|
137
|
+
const { x_range, y_range, x_scale, y_scale, radius_px = 12 } = options;
|
|
138
|
+
const [x_min, x_max] = range_bounds(x_range);
|
|
139
|
+
const [y_min, y_max] = range_bounds(y_range);
|
|
140
|
+
const cell_size = Math.max(1, radius_px);
|
|
141
|
+
const cells = new Map();
|
|
142
|
+
for (let series_idx = 0; series_idx < series.length; series_idx++) {
|
|
143
|
+
const srs = series[series_idx];
|
|
144
|
+
const n_points = series_length(srs);
|
|
145
|
+
for (let point_idx = 0; point_idx < n_points; point_idx++) {
|
|
146
|
+
const x = srs.x[point_idx];
|
|
147
|
+
const y = srs.y[point_idx];
|
|
148
|
+
if (!in_bounds(x, x_min, x_max) || !in_bounds(y, y_min, y_max))
|
|
149
|
+
continue;
|
|
150
|
+
const point = internal_point(srs, series_idx, point_idx, x_scale, y_scale);
|
|
151
|
+
const key = cell_key(Math.floor(point.cx / cell_size), Math.floor(point.cy / cell_size));
|
|
152
|
+
const points = cells.get(key);
|
|
153
|
+
if (points)
|
|
154
|
+
points.push(point);
|
|
155
|
+
else
|
|
156
|
+
cells.set(key, [point]);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return { cells, cell_size, radius_px };
|
|
160
|
+
}
|
|
161
|
+
export function pick_from_index(index, pointer) {
|
|
162
|
+
const radius_sq = index.radius_px ** 2;
|
|
163
|
+
const center_x = Math.floor(pointer.x / index.cell_size);
|
|
164
|
+
const center_y = Math.floor(pointer.y / index.cell_size);
|
|
165
|
+
const cell_radius = Math.ceil(index.radius_px / index.cell_size);
|
|
166
|
+
let best = null;
|
|
167
|
+
let best_dist_sq = radius_sq;
|
|
168
|
+
for (let y_bin = center_y - cell_radius; y_bin <= center_y + cell_radius; y_bin++) {
|
|
169
|
+
for (let x_bin = center_x - cell_radius; x_bin <= center_x + cell_radius; x_bin++) {
|
|
170
|
+
for (const point of index.cells.get(cell_key(x_bin, y_bin)) ?? []) {
|
|
171
|
+
const dx = pointer.x - point.cx;
|
|
172
|
+
const dy = pointer.y - point.cy;
|
|
173
|
+
const dist_sq = dx * dx + dy * dy;
|
|
174
|
+
if (dist_sq > best_dist_sq)
|
|
175
|
+
continue;
|
|
176
|
+
best_dist_sq = dist_sq;
|
|
177
|
+
best = point;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return best;
|
|
182
|
+
}
|
|
183
|
+
export function first_point_in_bin(series, density, bin, x_scale, y_scale) {
|
|
184
|
+
const idx = bin.y_bin * density.x_bins + bin.x_bin;
|
|
185
|
+
if (!density.counts[idx])
|
|
186
|
+
return null;
|
|
187
|
+
const series_idx = density.first_series_idxs[idx];
|
|
188
|
+
const point_idx = density.first_point_idxs[idx];
|
|
189
|
+
const srs = series[series_idx];
|
|
190
|
+
return srs ? internal_point(srs, series_idx, point_idx, x_scale, y_scale) : null;
|
|
191
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Sides } from './layout';
|
|
2
|
+
export declare const DECOR_GAP = 8;
|
|
3
|
+
type Pt = {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
type Size = {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const has_explicit_position: (style?: string | null) => boolean;
|
|
12
|
+
export declare const measured_footprint: (el: HTMLElement | null | undefined, fallback: Size) => Size;
|
|
13
|
+
export declare function build_obstacles_norm(series: {
|
|
14
|
+
points: Pt[];
|
|
15
|
+
draws_line?: boolean;
|
|
16
|
+
}[], base_w: number, base_h: number): Pt[];
|
|
17
|
+
export declare function clip_bar(vertical: boolean, cross: number, a: number, b: number): {
|
|
18
|
+
points: Pt[];
|
|
19
|
+
draws_line: boolean;
|
|
20
|
+
} | null;
|
|
21
|
+
export type DecorationInput = {
|
|
22
|
+
footprint: Size;
|
|
23
|
+
clearance?: number;
|
|
24
|
+
};
|
|
25
|
+
export type DecorationLayout = {
|
|
26
|
+
pad: Required<Sides>;
|
|
27
|
+
legend_outside: boolean;
|
|
28
|
+
legend_pos: Pt;
|
|
29
|
+
colorbar_outside: boolean;
|
|
30
|
+
colorbar_style: string;
|
|
31
|
+
};
|
|
32
|
+
export declare function place_decorations(cfg: {
|
|
33
|
+
base_pad: Required<Sides>;
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
obstacles_norm: Pt[];
|
|
37
|
+
legend?: DecorationInput | null;
|
|
38
|
+
colorbar?: (DecorationInput & {
|
|
39
|
+
horizontal?: boolean;
|
|
40
|
+
}) | null;
|
|
41
|
+
gap?: number;
|
|
42
|
+
}): DecorationLayout;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { compute_element_placement, sample_series_obstacle_points } from './layout';
|
|
2
|
+
// Shared "move a decoration (legend/colorbar) outside the plot when interior overlap is
|
|
3
|
+
// unavoidable" logic, reused by every 2D plot (ScatterPlot/BarPlot/Histogram/BinnedScatterPlot).
|
|
4
|
+
export const DECOR_GAP = 8; // px gap between an outside decoration and the plot edge
|
|
5
|
+
// True when the user pinned a decoration via its style (an edge property or position:absolute),
|
|
6
|
+
// in which case auto-placement must leave it alone.
|
|
7
|
+
export const has_explicit_position = (style) => /(^|[;{]\s*)(top|bottom|left|right)\s*:|position\s*:\s*absolute/.test(style ?? ``);
|
|
8
|
+
// A decoration's pixel footprint: its rendered box once laid out, else `fallback` (offset dims read
|
|
9
|
+
// 0 before first render). Used to decide crowding before the real size is known.
|
|
10
|
+
export const measured_footprint = (el, fallback) => el?.offsetWidth && el?.offsetHeight
|
|
11
|
+
? { width: el.offsetWidth, height: el.offsetHeight }
|
|
12
|
+
: fallback;
|
|
13
|
+
// Build the obstacle field in normalized [0,1] plot coords from one or more series. Callers pass
|
|
14
|
+
// points already normalized to [0,1] with y=0 at the top. Built from data (not pixel scales) so the
|
|
15
|
+
// crowding decision below is independent of any margins reserved for outside decorations — this
|
|
16
|
+
// prevents a reserve -> data-shift -> re-decide oscillation loop.
|
|
17
|
+
export function build_obstacles_norm(series, base_w, base_h) {
|
|
18
|
+
const step = 12 / Math.max(base_w, base_h, 1);
|
|
19
|
+
const out = [];
|
|
20
|
+
for (const srs of series) {
|
|
21
|
+
// avoid out.push(...arr): a long series would overflow the call-stack arg limit
|
|
22
|
+
for (const pt of sample_series_obstacle_points(srs.points, srs.draws_line ?? false, step)) {
|
|
23
|
+
if (isFinite(pt.x) && isFinite(pt.y))
|
|
24
|
+
out.push(pt);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return out;
|
|
28
|
+
}
|
|
29
|
+
// Build an obstacle segment for one bar, clipped to the visible [0,1]x[0,1] box (null if off-plot).
|
|
30
|
+
// Clipping is essential: when zoomed in, off-screen bars normalize to huge coords and would make
|
|
31
|
+
// sample_series_obstacle_points emit millions of points. `cross` is the fixed bar position; `a`/`b`
|
|
32
|
+
// are the span endpoints (baseline -> tip) along the other axis.
|
|
33
|
+
export function clip_bar(vertical, cross, a, b) {
|
|
34
|
+
if (!(cross >= 0 && cross <= 1))
|
|
35
|
+
return null;
|
|
36
|
+
const lo = Math.max(0, Math.min(a, b));
|
|
37
|
+
const hi = Math.min(1, Math.max(a, b));
|
|
38
|
+
if (hi < lo)
|
|
39
|
+
return null;
|
|
40
|
+
const points = vertical
|
|
41
|
+
? [
|
|
42
|
+
{ x: cross, y: lo },
|
|
43
|
+
{ x: cross, y: hi },
|
|
44
|
+
]
|
|
45
|
+
: [
|
|
46
|
+
{ x: lo, y: cross },
|
|
47
|
+
{ x: hi, y: cross },
|
|
48
|
+
];
|
|
49
|
+
return { points, draws_line: true };
|
|
50
|
+
}
|
|
51
|
+
// A decoration is "crowded out" only when even the emptiest interior spot is at least this dense
|
|
52
|
+
// relative to the plot-wide average. A single clear region (e.g. one sparse quadrant) keeps the
|
|
53
|
+
// decoration inside; a roughly uniformly-full plot pushes it out. Using a relative ratio (not "any
|
|
54
|
+
// overlap") keeps the decision stable for wide decorations that merely clip a dense neighbor.
|
|
55
|
+
const CROWDING_RATIO = 0.5;
|
|
56
|
+
// True when even the best interior spot for `footprint` (px) is too dense to host the decoration
|
|
57
|
+
function is_crowded(obstacles, footprint, base_w, base_h, clearance) {
|
|
58
|
+
if (!obstacles.length || base_w <= 0 || base_h <= 0)
|
|
59
|
+
return false;
|
|
60
|
+
const fw = footprint.width / base_w;
|
|
61
|
+
const fh = footprint.height / base_h;
|
|
62
|
+
if (fw >= 1 || fh >= 1)
|
|
63
|
+
return true; // too big to fit inside -> outside
|
|
64
|
+
const best = compute_element_placement({
|
|
65
|
+
plot_bounds: { x: 0, y: 0, width: 1, height: 1 },
|
|
66
|
+
element_size: { width: fw, height: fh },
|
|
67
|
+
axis_clearance: clearance / Math.min(base_w, base_h),
|
|
68
|
+
points: obstacles,
|
|
69
|
+
});
|
|
70
|
+
const in_box = obstacles.filter((pt) => pt.x >= best.x && pt.x <= best.x + fw && pt.y >= best.y && pt.y <= best.y + fh).length;
|
|
71
|
+
// expected count if obstacles were spread uniformly = total * box-area fraction
|
|
72
|
+
return in_box > CROWDING_RATIO * obstacles.length * fw * fh;
|
|
73
|
+
}
|
|
74
|
+
// Decide which decorations must move outside (interior placement unavoidably overlaps data), the
|
|
75
|
+
// reserved padding, and the outside positions/styles. `base_pad` must be decoration-independent so
|
|
76
|
+
// the crowding decision can't see the reservation it produces.
|
|
77
|
+
export function place_decorations(cfg) {
|
|
78
|
+
const { base_pad, width, height, obstacles_norm, legend, colorbar, gap = DECOR_GAP } = cfg;
|
|
79
|
+
const base_w = width - base_pad.l - base_pad.r;
|
|
80
|
+
const base_h = height - base_pad.t - base_pad.b;
|
|
81
|
+
const colorbar_outside = colorbar != null &&
|
|
82
|
+
is_crowded(obstacles_norm, colorbar.footprint, base_w, base_h, colorbar.clearance ?? 15);
|
|
83
|
+
const cbar_horizontal = colorbar?.horizontal ?? false;
|
|
84
|
+
const colorbar_takes_right = colorbar_outside && !cbar_horizontal; // vertical colorbar -> right
|
|
85
|
+
const cbar_w = colorbar?.footprint.width ?? 0;
|
|
86
|
+
const cbar_h = colorbar?.footprint.height ?? 0;
|
|
87
|
+
const legend_outside = legend != null &&
|
|
88
|
+
is_crowded(obstacles_norm, legend.footprint, base_w, base_h, legend.clearance ?? 12);
|
|
89
|
+
const legend_w = legend?.footprint.width ?? 0;
|
|
90
|
+
const legend_h = legend?.footprint.height ?? 0;
|
|
91
|
+
// Put a narrow/tall legend on the right (wastes less reserved margin than a wide bottom strip);
|
|
92
|
+
// a wide/short legend goes below. Skip the right side if a vertical colorbar already took it.
|
|
93
|
+
const legend_right = legend_outside && !colorbar_takes_right && legend_h * base_w > legend_w * base_h;
|
|
94
|
+
const legend_bottom = legend_outside && !legend_right;
|
|
95
|
+
// colorbar: horizontal -> above (reserves top), vertical -> right. legend: right or bottom.
|
|
96
|
+
// A right legend replaces the plot's right margin (it sits flush at the edge), so reserve only its
|
|
97
|
+
// width + a gap on each side instead of stacking it on top of base_pad.r (which left a wide gap).
|
|
98
|
+
const pad = {
|
|
99
|
+
t: base_pad.t + (colorbar_outside && cbar_horizontal ? cbar_h + gap : 0),
|
|
100
|
+
l: base_pad.l,
|
|
101
|
+
b: base_pad.b + (legend_bottom ? legend_h + gap : 0),
|
|
102
|
+
r: legend_right
|
|
103
|
+
? legend_w + 2 * gap
|
|
104
|
+
: base_pad.r + (colorbar_takes_right ? cbar_w + gap : 0),
|
|
105
|
+
};
|
|
106
|
+
const colorbar_style = !colorbar_outside
|
|
107
|
+
? ``
|
|
108
|
+
: cbar_horizontal
|
|
109
|
+
? `position: absolute; top: ${gap}px; inset-inline: 0; margin-inline: auto; width: calc(100% - ${base_pad.l + base_pad.r}px); max-width: 100%;`
|
|
110
|
+
: `position: absolute; right: ${gap}px; inset-block: 0; margin-block: auto; height: calc(100% - ${base_pad.t + base_pad.b}px); max-height: 100%;`;
|
|
111
|
+
// right: flush to the right edge, vertically centered in the plot area; bottom: centered below
|
|
112
|
+
const legend_pos = legend_right
|
|
113
|
+
? {
|
|
114
|
+
x: width - legend_w - gap,
|
|
115
|
+
y: base_pad.t + (height - base_pad.t - base_pad.b - legend_h) / 2,
|
|
116
|
+
}
|
|
117
|
+
: {
|
|
118
|
+
x: base_pad.l + (width - base_pad.l - base_pad.r - legend_w) / 2,
|
|
119
|
+
y: height - legend_h - gap,
|
|
120
|
+
};
|
|
121
|
+
return { pad, legend_outside, legend_pos, colorbar_outside, colorbar_style };
|
|
122
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AxisConfig, AxisLoadError, BarSeries, DataLoaderFn, DataSeries } from './types';
|
|
2
|
+
type AxisType = `x` | `x2` | `y` | `y2`;
|
|
3
|
+
export declare function merge_series_state<T extends DataSeries | BarSeries>(old_series: T[], new_series: T[]): T[];
|
|
4
|
+
export interface AxisChangeState<T extends DataSeries | BarSeries> {
|
|
5
|
+
get_axis: (axis: AxisType) => AxisConfig;
|
|
6
|
+
set_axis: (axis: AxisType, config: AxisConfig) => void;
|
|
7
|
+
get_series: () => T[];
|
|
8
|
+
set_series: (series: T[]) => void;
|
|
9
|
+
get_loading: () => AxisType | null;
|
|
10
|
+
set_loading: (axis: AxisType | null) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function create_axis_change_handler<T extends DataSeries | BarSeries>(state: AxisChangeState<T>, data_loader: DataLoaderFn<Record<string, unknown>, T> | undefined, on_axis_change?: (axis: AxisType, key: string, new_series: T[]) => void, on_error?: (error: AxisLoadError) => void): (axis: AxisType, key: string) => Promise<void>;
|
|
13
|
+
export declare const AXIS_LABEL_CONTAINER: {
|
|
14
|
+
readonly width: 200;
|
|
15
|
+
readonly height: 24;
|
|
16
|
+
readonly x_offset: 100;
|
|
17
|
+
readonly y_offset: 12;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Shared utilities for interactive axis functionality
|
|
2
|
+
// Merge new series with preserved UI state from old series.
|
|
3
|
+
// Matches by stable id first, then by index only for ordered id-less series.
|
|
4
|
+
export function merge_series_state(old_series, new_series) {
|
|
5
|
+
// Build id lookup map for O(1) matching (string or number ids)
|
|
6
|
+
const by_id = new Map();
|
|
7
|
+
for (const srs of old_series) {
|
|
8
|
+
if (srs.id !== undefined && srs.id !== ``)
|
|
9
|
+
by_id.set(srs.id, srs);
|
|
10
|
+
}
|
|
11
|
+
return new_series.map((new_srs, idx) => {
|
|
12
|
+
const old_srs = new_srs.id !== undefined && new_srs.id !== `` ? by_id.get(new_srs.id) : old_series[idx];
|
|
13
|
+
if (!old_srs) {
|
|
14
|
+
return new_srs;
|
|
15
|
+
}
|
|
16
|
+
// Preserve UI state: visibility and styling from old series if not in new
|
|
17
|
+
const result = { ...new_srs };
|
|
18
|
+
result.visible ??= old_srs.visible;
|
|
19
|
+
// Preserve style properties only when key exists in BOTH series (guards against
|
|
20
|
+
// cross-type injection when T is a union like DataSeries | BarSeries)
|
|
21
|
+
for (const key of [`point_style`, `line_style`, `color`]) {
|
|
22
|
+
if (key in old_srs && key in new_srs && result[key] === undefined) {
|
|
23
|
+
result[key] = old_srs[key];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
// Handle axis property change - loads new data via data_loader
|
|
30
|
+
// Returns a function bound to the component's state accessors
|
|
31
|
+
export function create_axis_change_handler(state, data_loader, on_axis_change, on_error) {
|
|
32
|
+
return async (axis, key) => {
|
|
33
|
+
if (!data_loader || state.get_loading())
|
|
34
|
+
return;
|
|
35
|
+
const axis_config = state.get_axis(axis);
|
|
36
|
+
const prev_key = axis_config.selected_key;
|
|
37
|
+
// Skip if key unchanged AND series already loaded (allows initial load when series empty)
|
|
38
|
+
if (prev_key === key && state.get_series().length > 0)
|
|
39
|
+
return;
|
|
40
|
+
// Update selected_key immediately for UI feedback
|
|
41
|
+
state.set_axis(axis, { ...axis_config, selected_key: key });
|
|
42
|
+
state.set_loading(axis);
|
|
43
|
+
try {
|
|
44
|
+
const result = await data_loader(axis, key, state.get_series());
|
|
45
|
+
// Merge new series with preserved state from old series
|
|
46
|
+
const merged = merge_series_state(state.get_series(), result.series);
|
|
47
|
+
state.set_series(merged);
|
|
48
|
+
// Update axis label/unit if provided
|
|
49
|
+
if (result.axis_label || result.axis_unit) {
|
|
50
|
+
const current = state.get_axis(axis);
|
|
51
|
+
state.set_axis(axis, {
|
|
52
|
+
...current,
|
|
53
|
+
label: result.axis_label ?? current.label,
|
|
54
|
+
unit: result.axis_unit ?? current.unit,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
on_axis_change?.(axis, key, merged);
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
console.error(`Failed to load data for ${axis}=${key}:`, err);
|
|
61
|
+
// Revert selection
|
|
62
|
+
state.set_axis(axis, { ...state.get_axis(axis), selected_key: prev_key });
|
|
63
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
64
|
+
on_error?.({ axis, key, message });
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
state.set_loading(null);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// Constants for axis label foreignObject positioning (all values in px)
|
|
72
|
+
// Use minimal dimensions - overflow: visible handles any dropdown expansion
|
|
73
|
+
export const AXIS_LABEL_CONTAINER = {
|
|
74
|
+
width: 200, // container width for centering; dropdown can overflow
|
|
75
|
+
height: 24, // single line height; dropdown options overflow downward
|
|
76
|
+
x_offset: 100, // half of width for horizontal centering
|
|
77
|
+
y_offset: 12, // half of height for vertical centering
|
|
78
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { D3ColorSchemeName, D3InterpolateName } from '../colors';
|
|
2
|
+
import type { DenseInternalPoint } from './adaptive-density';
|
|
3
|
+
import type ColorBar from './ColorBar.svelte';
|
|
4
|
+
import type { LabelPlacementConfig, ScaleType, ScatterHandlerProps } from './types';
|
|
5
|
+
import type { ComponentProps, Snippet } from 'svelte';
|
|
6
|
+
export type BinnedColorScaleConfig = {
|
|
7
|
+
type?: ScaleType;
|
|
8
|
+
scheme?: D3ColorSchemeName | D3InterpolateName;
|
|
9
|
+
value_range?: [number, number];
|
|
10
|
+
} | D3InterpolateName;
|
|
11
|
+
export type BinnedSizeScaleConfig = {
|
|
12
|
+
type?: ScaleType;
|
|
13
|
+
radius_range?: [number, number];
|
|
14
|
+
value_range?: [number, number];
|
|
15
|
+
pick_radius?: number | `auto`;
|
|
16
|
+
};
|
|
17
|
+
export type BinnedDensityConfig = {
|
|
18
|
+
bin_px?: number;
|
|
19
|
+
color_scale?: BinnedColorScaleConfig;
|
|
20
|
+
color_bar?: ComponentProps<typeof ColorBar> | null;
|
|
21
|
+
auto_point_mode?: false | {
|
|
22
|
+
max_points?: number;
|
|
23
|
+
max_points_per_px?: number;
|
|
24
|
+
};
|
|
25
|
+
bin_click?: `zoom` | `point` | `none`;
|
|
26
|
+
};
|
|
27
|
+
export type BinnedRefLine = {
|
|
28
|
+
x1: number;
|
|
29
|
+
y1: number;
|
|
30
|
+
x2: number;
|
|
31
|
+
y2: number;
|
|
32
|
+
color?: string;
|
|
33
|
+
dash?: string;
|
|
34
|
+
width?: number;
|
|
35
|
+
};
|
|
36
|
+
export type BinnedOverlaysConfig = {
|
|
37
|
+
ref_lines?: BinnedRefLine[];
|
|
38
|
+
};
|
|
39
|
+
export type BinnedPointBasePayload<Metadata extends Record<string, unknown> = Record<string, unknown>> = ScatterHandlerProps<Metadata> & {
|
|
40
|
+
point: DenseInternalPoint<Metadata>;
|
|
41
|
+
color?: string;
|
|
42
|
+
};
|
|
43
|
+
export type BinnedPointDataFn<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>> = (payload: BinnedPointBasePayload<Metadata>) => PointData | null | undefined;
|
|
44
|
+
export type BinnedPointPayload<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>> = BinnedPointBasePayload<Metadata> & {
|
|
45
|
+
point_data?: PointData;
|
|
46
|
+
};
|
|
47
|
+
export type BinnedPointTooltipPayload<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>> = BinnedPointPayload<Metadata, PointData>;
|
|
48
|
+
export type BinnedPointLabelPlacementConfig = Partial<LabelPlacementConfig>;
|
|
49
|
+
export type BinnedPointLabelsConfig<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>> = {
|
|
50
|
+
render?: Snippet<[BinnedPointPayload<Metadata, PointData>]>;
|
|
51
|
+
measure_text?: (payload: BinnedPointPayload<Metadata, PointData>) => string;
|
|
52
|
+
font_size?: string;
|
|
53
|
+
max_count?: number;
|
|
54
|
+
gap_px?: number;
|
|
55
|
+
placement?: BinnedPointLabelPlacementConfig;
|
|
56
|
+
leaders?: {
|
|
57
|
+
min_length_px?: number;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { CleaningConfig, CleaningQuality, CleaningResult, DataSeries, InstabilityResult, InvalidValueMode, LocalOutlierConfig, LocalOutlierResult, PhysicalBounds } from './types';
|
|
2
|
+
export declare function compute_local_variance(values: number[], window_size: number): number[];
|
|
3
|
+
export declare function detect_instability(x_values: readonly number[], y_values: readonly number[], config?: Pick<CleaningConfig, `oscillation_weights` | `oscillation_threshold` | `window_size`>): InstabilityResult;
|
|
4
|
+
export declare function smooth_moving_average(values: number[], window: number): number[];
|
|
5
|
+
export declare function smooth_savitzky_golay(values: number[], window: number, polynomial_order?: number): number[];
|
|
6
|
+
export declare function remove_local_outliers(y_values: readonly number[], config?: LocalOutlierConfig): LocalOutlierResult;
|
|
7
|
+
export declare function handle_invalid_values(values: number[], mode: InvalidValueMode): {
|
|
8
|
+
cleaned: number[];
|
|
9
|
+
removed_indices: number[];
|
|
10
|
+
invalid_count: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function apply_bounds(x_values: readonly number[], y_values: number[], bounds: PhysicalBounds): {
|
|
13
|
+
y: number[];
|
|
14
|
+
violations: number;
|
|
15
|
+
filtered_indices: number[];
|
|
16
|
+
};
|
|
17
|
+
export declare function sync_metadata<M>(metadata: M[] | M | undefined, kept_indices: number[]): M[] | M | undefined;
|
|
18
|
+
export declare function clean_series<T extends DataSeries>(series: T, config?: CleaningConfig): CleaningResult<T>;
|
|
19
|
+
export declare function clean_multi_series(x_values: readonly number[], y_arrays: number[][], config?: CleaningConfig): {
|
|
20
|
+
x: number[];
|
|
21
|
+
cleaned_y: number[][];
|
|
22
|
+
quality: CleaningQuality[];
|
|
23
|
+
};
|
|
24
|
+
export declare function clean_xyz(x_values: readonly number[], y_values: readonly number[], z_values: readonly number[], config?: CleaningConfig & {
|
|
25
|
+
primary_axis?: `x` | `y` | `z`;
|
|
26
|
+
}): {
|
|
27
|
+
x: number[];
|
|
28
|
+
y: number[];
|
|
29
|
+
z: number[];
|
|
30
|
+
quality: CleaningQuality;
|
|
31
|
+
};
|
|
32
|
+
export declare function clean_trajectory_props(props: Record<string, number[]>, config?: CleaningConfig & {
|
|
33
|
+
independent_axis?: string;
|
|
34
|
+
}): {
|
|
35
|
+
props: Record<string, number[]>;
|
|
36
|
+
quality: Record<string, CleaningQuality>;
|
|
37
|
+
};
|