matterviz 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EmptyState.svelte +10 -4
- package/dist/FilePicker.svelte +12 -14
- package/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +2 -2
- package/dist/app.css +53 -0
- package/dist/brillouin/BrillouinZone.svelte +132 -219
- package/dist/brillouin/BrillouinZone.svelte.d.ts +9 -20
- package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
- package/dist/brillouin/BrillouinZoneExportPane.svelte +47 -96
- package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +1 -1
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +15 -42
- package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +2 -3
- package/dist/brillouin/BrillouinZoneScene.svelte +63 -230
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +3 -23
- package/dist/brillouin/ReciprocalVectors.svelte +39 -0
- package/dist/brillouin/ReciprocalVectors.svelte.d.ts +9 -0
- package/dist/brillouin/compute.d.ts +2 -0
- package/dist/brillouin/compute.js +80 -77
- package/dist/brillouin/geometry.d.ts +8 -0
- package/dist/brillouin/geometry.js +57 -0
- package/dist/brillouin/index.d.ts +2 -0
- package/dist/brillouin/index.js +2 -0
- package/dist/brillouin/types.d.ts +2 -2
- package/dist/chempot-diagram/ChemPotDiagram.svelte +33 -38
- package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +143 -246
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +4 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +652 -976
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +7 -1
- package/dist/chempot-diagram/async-compute.svelte.js +1 -1
- package/dist/chempot-diagram/color.d.ts +3 -6
- package/dist/chempot-diagram/color.js +5 -5
- package/dist/chempot-diagram/compute.d.ts +3 -3
- package/dist/chempot-diagram/compute.js +3 -1
- package/dist/chempot-diagram/controls-state.svelte.d.ts +10 -0
- package/dist/chempot-diagram/controls-state.svelte.js +42 -0
- package/dist/chempot-diagram/export.d.ts +47 -0
- package/dist/chempot-diagram/export.js +133 -0
- package/dist/chempot-diagram/index.d.ts +1 -0
- package/dist/chempot-diagram/index.js +1 -0
- package/dist/chempot-diagram/pointer.d.ts +0 -10
- package/dist/chempot-diagram/pointer.js +4 -4
- package/dist/chempot-diagram/types.d.ts +3 -3
- package/dist/colors/index.d.ts +0 -4
- package/dist/colors/index.js +21 -22
- package/dist/composition/BarChart.svelte +37 -31
- package/dist/composition/BubbleChart.svelte +17 -17
- package/dist/composition/Composition.svelte +7 -11
- package/dist/composition/Formula.svelte +18 -25
- package/dist/composition/FormulaFilter.svelte +96 -98
- package/dist/composition/PieChart.svelte +60 -46
- package/dist/composition/chem-sys.js +3 -2
- package/dist/composition/format.js +4 -3
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/parse.d.ts +2 -3
- package/dist/composition/parse.js +27 -28
- package/dist/constants.js +11 -9
- package/dist/controls.d.ts +1 -0
- package/dist/controls.js +0 -1
- package/dist/convex-hull/ConvexHull.svelte +20 -25
- package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -4
- package/dist/convex-hull/ConvexHull2D.svelte +176 -256
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +269 -804
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +236 -755
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHullChrome.svelte +264 -0
- package/dist/convex-hull/ConvexHullChrome.svelte.d.ts +30 -0
- package/dist/convex-hull/ConvexHullControls.svelte +128 -49
- package/dist/convex-hull/ConvexHullControls.svelte.d.ts +7 -6
- package/dist/convex-hull/ConvexHullInfoPane.svelte +18 -5
- package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +6 -5
- package/dist/convex-hull/ConvexHullStats.svelte +210 -351
- package/dist/convex-hull/ConvexHullStats.svelte.d.ts +3 -1
- package/dist/convex-hull/ConvexHullTooltip.svelte +16 -14
- package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +2 -1
- package/dist/convex-hull/GasPressureControls.svelte +5 -12
- package/dist/convex-hull/StructurePopup.svelte +17 -21
- package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
- package/dist/convex-hull/TemperatureSlider.svelte +4 -10
- package/dist/convex-hull/barycentric-coords.d.ts +2 -4
- package/dist/convex-hull/barycentric-coords.js +6 -33
- package/dist/convex-hull/canvas-interactions.svelte.d.ts +79 -0
- package/dist/convex-hull/canvas-interactions.svelte.js +279 -0
- package/dist/convex-hull/helpers.d.ts +47 -17
- package/dist/convex-hull/helpers.js +186 -101
- package/dist/convex-hull/hull-state.svelte.d.ts +44 -0
- package/dist/convex-hull/hull-state.svelte.js +124 -0
- package/dist/convex-hull/index.d.ts +9 -7
- package/dist/convex-hull/index.js +7 -2
- package/dist/convex-hull/thermodynamics.js +109 -937
- package/dist/convex-hull/types.d.ts +12 -4
- package/dist/convex-hull/types.js +12 -0
- package/dist/coordination/CoordinationBarPlot.svelte +41 -43
- 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 +6 -8
- package/dist/element/ElementHeading.svelte +4 -1
- package/dist/element/ElementPhoto.svelte +11 -9
- package/dist/element/ElementStats.svelte +12 -10
- package/dist/element/ElementTile.svelte +24 -29
- package/dist/element/ElementTile.svelte.d.ts +1 -1
- package/dist/element/Nucleus.svelte +4 -2
- package/dist/element/data.d.ts +1 -2
- package/dist/element/helpers.d.ts +4 -0
- package/dist/element/helpers.js +18 -0
- package/dist/element/index.d.ts +1 -0
- package/dist/element/index.js +3 -0
- package/dist/feedback/DragOverlay.svelte +5 -3
- package/dist/feedback/DragOverlay.svelte.d.ts +2 -1
- package/dist/feedback/StatusMessage.svelte +20 -7
- package/dist/fermi-surface/FermiSlice.svelte +21 -18
- package/dist/fermi-surface/FermiSurface.svelte +78 -165
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +9 -20
- package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
- package/dist/fermi-surface/FermiSurfaceScene.svelte +93 -272
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +3 -23
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
- package/dist/fermi-surface/compute.js +14 -13
- package/dist/fermi-surface/export.js +4 -15
- package/dist/fermi-surface/index.d.ts +0 -1
- package/dist/fermi-surface/index.js +0 -1
- package/dist/fermi-surface/parse.d.ts +1 -1
- package/dist/fermi-surface/parse.js +84 -97
- package/dist/fermi-surface/types.d.ts +2 -2
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +161 -185
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +6 -5
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +12 -9
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +5 -5
- package/dist/heatmap-matrix/index.d.ts +8 -2
- package/dist/icons.d.ts +4 -0
- package/dist/icons.js +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/io/ExportPane.svelte +170 -0
- package/dist/io/ExportPane.svelte.d.ts +17 -0
- package/dist/io/decompress.d.ts +2 -1
- package/dist/io/decompress.js +22 -36
- package/dist/io/export.d.ts +9 -1
- package/dist/io/export.js +37 -29
- package/dist/io/fetch.d.ts +2 -4
- package/dist/io/fetch.js +0 -11
- package/dist/io/file-drop.d.ts +7 -0
- package/dist/io/file-drop.js +13 -0
- package/dist/io/index.d.ts +1 -0
- package/dist/io/index.js +3 -0
- package/dist/io/is-binary.d.ts +9 -0
- package/dist/io/is-binary.js +45 -1
- package/dist/io/types.d.ts +13 -0
- package/dist/io/url-drop.js +13 -25
- package/dist/isosurface/Isosurface.svelte +17 -23
- package/dist/isosurface/IsosurfaceControls.svelte +37 -42
- package/dist/isosurface/parse-vaspwave.d.ts +3 -0
- package/dist/isosurface/parse-vaspwave.js +138 -0
- package/dist/isosurface/parse.js +50 -48
- package/dist/labels.d.ts +6 -2
- package/dist/labels.js +44 -14
- package/dist/layout/FullscreenButton.svelte +34 -0
- package/dist/layout/FullscreenButton.svelte.d.ts +10 -0
- package/dist/layout/FullscreenToggle.svelte +12 -12
- package/dist/layout/InfoCard.svelte +7 -18
- package/dist/layout/InfoTag.svelte +1 -3
- package/dist/layout/NumberRangeInput.svelte +46 -0
- package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
- package/dist/layout/PropertyFilter.svelte +2 -6
- package/dist/layout/SettingsSection.svelte +21 -17
- package/dist/layout/SubpageGrid.svelte +3 -1
- package/dist/layout/ViewerChrome.svelte +115 -0
- package/dist/layout/ViewerChrome.svelte.d.ts +18 -0
- package/dist/layout/fullscreen.d.ts +4 -0
- package/dist/layout/fullscreen.js +3 -5
- package/dist/layout/fullscreen.svelte.d.ts +8 -0
- package/dist/layout/fullscreen.svelte.js +36 -0
- package/dist/layout/index.d.ts +4 -0
- package/dist/layout/index.js +4 -0
- package/dist/layout/json-tree/JsonNode.svelte +8 -11
- package/dist/layout/json-tree/JsonTree.svelte +53 -77
- package/dist/layout/json-tree/JsonValue.svelte +7 -15
- package/dist/layout/json-tree/utils.js +14 -23
- package/dist/math.d.ts +9 -3
- package/dist/math.js +37 -21
- package/dist/overlays/ContextMenu.svelte +4 -2
- package/dist/overlays/CopyButton.svelte +11 -5
- package/dist/overlays/DragControlTab.svelte +6 -1
- package/dist/overlays/DraggablePane.svelte +81 -26
- package/dist/overlays/DraggablePane.svelte.d.ts +1 -0
- package/dist/overlays/GlassChip.svelte +30 -0
- package/dist/overlays/GlassChip.svelte.d.ts +8 -0
- package/dist/overlays/InfoPaneCards.svelte +11 -23
- package/dist/overlays/index.d.ts +11 -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 +115 -146
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
- package/dist/periodic-table/PeriodicTableControls.svelte +11 -63
- package/dist/periodic-table/TableInset.svelte +9 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +50 -71
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
- package/dist/phase-diagram/PhaseDiagramControls.svelte +73 -96
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +4 -3
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +4 -2
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +2 -3
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +49 -134
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +3 -4
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
- package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
- package/dist/phase-diagram/build-diagram.js +3 -3
- package/dist/phase-diagram/colors.js +1 -1
- package/dist/phase-diagram/diagram-input.d.ts +1 -2
- package/dist/phase-diagram/parse.d.ts +2 -1
- package/dist/phase-diagram/parse.js +15 -15
- package/dist/phase-diagram/svg-to-diagram.js +21 -15
- package/dist/phase-diagram/utils.js +2 -3
- package/dist/plot/bar/BarPlot.svelte +494 -692
- package/dist/plot/bar/BarPlot.svelte.d.ts +9 -15
- package/dist/plot/bar/BarPlotControls.svelte +1 -3
- package/dist/plot/bar/BarPlotControls.svelte.d.ts +5 -7
- package/dist/plot/bar/SpacegroupBarPlot.svelte +31 -37
- package/dist/plot/bar/data.d.ts +5 -4
- package/dist/plot/bar/data.js +2 -1
- package/dist/plot/box/BoxPlot.svelte +361 -439
- package/dist/plot/box/BoxPlot.svelte.d.ts +6 -3
- package/dist/plot/box/BoxPlotControls.svelte.d.ts +1 -1
- package/dist/plot/box/Violin.svelte.d.ts +2 -1
- package/dist/plot/box/box-plot.d.ts +3 -2
- package/dist/plot/box/box-plot.js +6 -3
- package/dist/plot/box/kde.d.ts +2 -1
- package/dist/plot/box/kde.js +4 -4
- package/dist/plot/core/auto-place.d.ts +1 -1
- package/dist/plot/core/auto-place.js +5 -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 +106 -111
- package/dist/plot/core/components/ColorBar.svelte.d.ts +5 -4
- 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 +21 -11
- package/dist/plot/core/components/Line.svelte.d.ts +5 -2
- package/dist/plot/core/components/PlotAxis.svelte +42 -18
- package/dist/plot/core/components/PlotAxis.svelte.d.ts +2 -1
- package/dist/plot/core/components/PlotControls.svelte +65 -41
- package/dist/plot/core/components/PlotControls.svelte.d.ts +1 -1
- 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 +56 -59
- package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +4 -4
- package/dist/plot/core/components/ReferencePlane.svelte +9 -10
- package/dist/plot/core/components/ReferencePlane.svelte.d.ts +4 -4
- 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 +29 -476
- package/dist/plot/core/data-transform.js +9 -5
- package/dist/plot/core/fill-utils.d.ts +7 -4
- package/dist/plot/core/fill-utils.js +34 -9
- package/dist/plot/core/index.d.ts +1 -0
- package/dist/plot/core/index.js +1 -0
- package/dist/plot/core/interactions.d.ts +5 -1
- package/dist/plot/core/interactions.js +14 -2
- package/dist/plot/core/layout.d.ts +3 -1
- package/dist/plot/core/layout.js +22 -13
- package/dist/plot/core/marginals.d.ts +170 -0
- package/dist/plot/core/marginals.js +436 -0
- package/dist/plot/core/pan-zoom.svelte.d.ts +35 -0
- package/dist/plot/core/pan-zoom.svelte.js +221 -0
- package/dist/plot/core/placed-tween.svelte.d.ts +21 -0
- package/dist/plot/core/placed-tween.svelte.js +68 -0
- package/dist/plot/core/reference-line.d.ts +10 -10
- package/dist/plot/core/reference-line.js +7 -7
- package/dist/plot/core/scales.d.ts +40 -25
- package/dist/plot/core/scales.js +49 -21
- package/dist/plot/core/svg.d.ts +2 -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 +47 -331
- package/dist/plot/core/types.js +23 -20
- package/dist/plot/core/utils/hierarchy-chart.d.ts +51 -0
- package/dist/plot/core/utils/hierarchy-chart.js +179 -0
- package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
- package/dist/plot/core/utils/hierarchy-labels.js +99 -0
- package/dist/plot/core/utils/label-placement.d.ts +1 -1
- package/dist/plot/core/utils/label-placement.js +5 -5
- package/dist/plot/core/utils.d.ts +2 -1
- package/dist/plot/histogram/Histogram.svelte +373 -631
- package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
- package/dist/plot/histogram/HistogramControls.svelte +30 -28
- package/dist/plot/histogram/HistogramControls.svelte.d.ts +1 -1
- 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 +79 -73
- package/dist/plot/sankey/Sankey.svelte.d.ts +3 -3
- package/dist/plot/sankey/SankeyControls.svelte +22 -16
- package/dist/plot/sankey/sankey.js +3 -1
- package/dist/plot/scatter/BinnedScatterPlot.svelte +264 -112
- package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +11 -4
- package/dist/plot/scatter/ElementScatter.svelte +4 -1
- package/dist/plot/scatter/ScatterPlot.svelte +623 -821
- package/dist/plot/scatter/ScatterPlot.svelte.d.ts +9 -15
- package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
- package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
- package/dist/plot/scatter/ScatterPoint.svelte +16 -9
- package/dist/plot/scatter/binned-scatter-types.d.ts +6 -12
- package/dist/plot/scatter/binned-scatter-types.js +6 -1
- package/dist/plot/scatter/index.d.ts +1 -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 +40 -60
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +6 -14
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +17 -15
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +5 -5
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +232 -234
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +5 -14
- package/dist/plot/scatter-3d/Surface3D.svelte +9 -17
- package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +4 -3
- package/dist/plot/sunburst/Sunburst.svelte +256 -338
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +4 -3
- 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 +14 -4
- package/dist/plot/treemap/Treemap.svelte +907 -0
- package/dist/plot/treemap/Treemap.svelte.d.ts +84 -0
- package/dist/plot/treemap/index.d.ts +3 -0
- package/dist/plot/treemap/index.js +4 -0
- package/dist/plot/treemap/treemap.d.ts +26 -0
- package/dist/plot/treemap/treemap.js +99 -0
- package/dist/rdf/RdfPlot.svelte +22 -26
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +4 -8
- package/dist/sanitize.js +14 -3
- package/dist/scene/SceneCamera.svelte +62 -0
- package/dist/scene/SceneCamera.svelte.d.ts +19 -0
- package/dist/scene/bind-renderer.svelte.d.ts +2 -0
- package/dist/scene/bind-renderer.svelte.js +22 -0
- package/dist/scene/index.d.ts +4 -0
- package/dist/scene/index.js +5 -0
- package/dist/scene/props.js +52 -0
- package/dist/scene/types.d.ts +26 -0
- package/dist/scene/types.js +1 -0
- package/dist/settings.d.ts +33 -11
- package/dist/settings.js +136 -51
- package/dist/spectral/Bands.svelte +231 -237
- package/dist/spectral/Bands.svelte.d.ts +3 -2
- package/dist/spectral/BandsAndDos.svelte +29 -29
- package/dist/spectral/BrillouinBandsDos.svelte +21 -29
- package/dist/spectral/Dos.svelte +75 -77
- package/dist/spectral/Dos.svelte.d.ts +2 -1
- package/dist/spectral/helpers.d.ts +9 -9
- package/dist/spectral/helpers.js +66 -70
- package/dist/state.svelte.d.ts +0 -7
- package/dist/state.svelte.js +5 -24
- package/dist/structure/Arrow.svelte +6 -21
- package/dist/structure/ArrowInstances.svelte +160 -0
- package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
- package/dist/structure/AtomLegend.svelte +115 -75
- package/dist/structure/AtomLegend.svelte.d.ts +1 -1
- package/dist/structure/Bond.svelte +31 -23
- package/dist/structure/CanvasTooltip.svelte +16 -3
- package/dist/structure/CellSelect.svelte +22 -29
- package/dist/structure/CellSelect.svelte.d.ts +2 -1
- 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 +725 -735
- package/dist/structure/Structure.svelte.d.ts +8 -16
- package/dist/structure/StructureCarousel.svelte +630 -0
- package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
- package/dist/structure/StructureControls.svelte +298 -325
- package/dist/structure/StructureControls.svelte.d.ts +5 -3
- package/dist/structure/StructureExportPane.svelte +62 -168
- package/dist/structure/StructureExportPane.svelte.d.ts +4 -5
- package/dist/structure/StructureInfoPane.svelte +77 -69
- package/dist/structure/StructureInfoPane.svelte.d.ts +6 -6
- package/dist/structure/StructureScene.svelte +758 -600
- package/dist/structure/StructureScene.svelte.d.ts +24 -20
- package/dist/structure/StructureViewport.svelte +386 -0
- package/dist/structure/StructureViewport.svelte.d.ts +63 -0
- package/dist/structure/atom-label-placement.d.ts +18 -0
- package/dist/structure/atom-label-placement.js +115 -0
- package/dist/structure/atom-properties.d.ts +3 -1
- package/dist/structure/atom-properties.js +115 -54
- package/dist/structure/bond-order-perception.js +2 -4
- package/dist/structure/bonding.d.ts +12 -2
- package/dist/structure/bonding.js +172 -73
- package/dist/structure/edit-history.d.ts +6 -0
- package/dist/structure/edit-history.js +27 -0
- package/dist/structure/export.d.ts +25 -4
- package/dist/structure/export.js +103 -153
- package/dist/structure/format-detect.d.ts +1 -0
- package/dist/structure/format-detect.js +22 -0
- package/dist/structure/geometry.d.ts +9 -0
- package/dist/structure/geometry.js +27 -0
- package/dist/structure/index.d.ts +18 -1
- package/dist/structure/index.js +15 -2
- package/dist/structure/measure.d.ts +1 -1
- package/dist/structure/measure.js +6 -12
- package/dist/structure/parse.d.ts +5 -3
- package/dist/structure/parse.js +551 -567
- package/dist/structure/partial-occupancy.d.ts +0 -1
- package/dist/structure/partial-occupancy.js +5 -3
- package/dist/structure/pbc.d.ts +1 -1
- package/dist/structure/pbc.js +204 -51
- package/dist/structure/polyhedra.d.ts +40 -0
- package/dist/structure/polyhedra.js +587 -0
- package/dist/structure/site.d.ts +4 -0
- package/dist/structure/site.js +1 -0
- package/dist/structure/supercell.d.ts +1 -2
- package/dist/structure/supercell.js +10 -15
- package/dist/structure/validation.js +5 -6
- package/dist/symmetry/SymmetryElementControls.svelte +69 -0
- package/dist/symmetry/SymmetryElementControls.svelte.d.ts +9 -0
- package/dist/symmetry/SymmetryElements.svelte +350 -0
- package/dist/symmetry/SymmetryElements.svelte.d.ts +24 -0
- package/dist/symmetry/SymmetryStats.svelte +142 -49
- package/dist/symmetry/WyckoffTable.svelte +58 -16
- package/dist/symmetry/WyckoffTable.svelte.d.ts +3 -0
- package/dist/symmetry/cell-transform.js +8 -14
- package/dist/symmetry/index.d.ts +15 -4
- package/dist/symmetry/index.js +308 -81
- package/dist/symmetry/spacegroups.d.ts +5 -1
- package/dist/symmetry/spacegroups.js +18 -3
- package/dist/symmetry/symmetry-elements.d.ts +33 -0
- package/dist/symmetry/symmetry-elements.js +521 -0
- package/dist/symmetry/wyckoff-db.d.ts +9 -0
- package/dist/symmetry/wyckoff-db.js +87 -0
- package/dist/table/HeatmapTable.svelte +1104 -378
- package/dist/table/HeatmapTable.svelte.d.ts +12 -2
- package/dist/table/ToggleMenu.svelte +5 -12
- package/dist/table/index.d.ts +21 -6
- package/dist/table/index.js +34 -21
- package/dist/theme/ThemeControl.svelte +16 -8
- package/dist/theme/index.d.ts +1 -5
- package/dist/theme/index.js +4 -10
- package/dist/theme/themes.mjs +14 -7
- package/dist/tooltip/KCoords.svelte +4 -1
- package/dist/tooltip/TooltipContent.svelte +2 -5
- package/dist/trajectory/Trajectory.svelte +556 -352
- package/dist/trajectory/Trajectory.svelte.d.ts +10 -22
- package/dist/trajectory/TrajectoryError.svelte +11 -8
- package/dist/trajectory/TrajectoryExportPane.svelte +28 -54
- package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +4 -5
- package/dist/trajectory/TrajectoryInfoPane.svelte +88 -99
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +3 -2
- package/dist/trajectory/constants.js +6 -2
- package/dist/trajectory/extract.js +73 -71
- package/dist/trajectory/format-detect.d.ts +0 -1
- package/dist/trajectory/format-detect.js +13 -17
- package/dist/trajectory/frame-reader.d.ts +2 -1
- package/dist/trajectory/frame-reader.js +74 -136
- package/dist/trajectory/helpers.d.ts +12 -2
- package/dist/trajectory/helpers.js +68 -37
- package/dist/trajectory/index.d.ts +1 -0
- package/dist/trajectory/index.js +3 -0
- package/dist/trajectory/parse/ase.d.ts +9 -1
- package/dist/trajectory/parse/ase.js +47 -32
- package/dist/trajectory/parse/diagnostics.d.ts +3 -0
- package/dist/trajectory/parse/diagnostics.js +14 -0
- package/dist/trajectory/parse/h5-utils.d.ts +13 -0
- package/dist/trajectory/parse/h5-utils.js +109 -0
- package/dist/trajectory/parse/hdf5.d.ts +1 -1
- package/dist/trajectory/parse/hdf5.js +116 -106
- package/dist/trajectory/parse/index.d.ts +3 -4
- package/dist/trajectory/parse/index.js +68 -119
- package/dist/trajectory/parse/lammps.d.ts +0 -2
- package/dist/trajectory/parse/lammps.js +14 -16
- package/dist/trajectory/parse/pymatgen.d.ts +2 -0
- package/dist/trajectory/parse/pymatgen.js +74 -0
- package/dist/trajectory/parse/vasp.js +13 -9
- package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
- package/dist/trajectory/parse/vaspout-electronic.js +207 -0
- package/dist/trajectory/parse/vaspout-h5.d.ts +5 -0
- package/dist/trajectory/parse/vaspout-h5.js +284 -0
- package/dist/trajectory/parse/xyz.d.ts +9 -21
- package/dist/trajectory/parse/xyz.js +38 -39
- package/dist/trajectory/plotting.d.ts +8 -10
- package/dist/trajectory/plotting.js +102 -127
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +8 -1
- package/dist/xrd/XrdPlot.svelte +56 -85
- package/dist/xrd/broadening.d.ts +2 -1
- package/dist/xrd/broadening.js +2 -1
- package/dist/xrd/calc-xrd.js +8 -15
- package/dist/xrd/index.d.ts +2 -2
- package/dist/xrd/parse.d.ts +0 -1
- package/dist/xrd/parse.js +56 -73
- package/package.json +77 -36
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/element/data.json +0 -11864
- package/dist/fermi-surface/marching-cubes.d.ts +0 -2
- package/dist/fermi-surface/marching-cubes.js +0 -2
- package/dist/plot/core/hover-lock.svelte.d.ts +0 -14
- package/dist/plot/core/hover-lock.svelte.js +0 -45
- package/dist/plot/sunburst/SunburstControls.svelte +0 -200
- package/dist/structure/label-placement.d.ts +0 -14
- package/dist/structure/label-placement.js +0 -72
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { D3InterpolateName } from '../../colors';
|
|
2
2
|
import type { Point2D } from '../../math';
|
|
3
|
-
import type { AxisLoadError, BasePlotProps, ControlsConfig, DataLoaderFn, DataSeries, ErrorBand, FillHandlerEvent, FillRegion, HoverConfig, InternalPoint, LabelPlacementConfig, LegendConfig, PanConfig, PlotConfig, Point, RefLine, RefLineEvent,
|
|
3
|
+
import type { AxisLoadError, BasePlotProps, ColorScaleConfig, ControlsConfig, DataLoaderFn, DataSeries, ErrorBand, FillHandlerEvent, FillRegion, HoverConfig, InternalPoint, LabelPlacementConfig, LegendConfig, PanConfig, PlotConfig, Point, RefLine, RefLineEvent, ScatterHandlerEvent, ScatterHandlerProps, SizeScaleConfig, StyleOverrides, UserContentProps } from '..';
|
|
4
4
|
import { ColorBar } from '..';
|
|
5
|
+
import type { MarginalsProp } from '../core/marginals';
|
|
5
6
|
import type { ComponentProps, Snippet } from 'svelte';
|
|
6
7
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
7
|
-
import {
|
|
8
|
+
import type { TweenOptions } from 'svelte/motion';
|
|
8
9
|
import type { Sides } from '../core/layout';
|
|
9
10
|
declare function $$render<Metadata extends Record<string, unknown> = Record<string, unknown>>(): {
|
|
10
11
|
props: HTMLAttributes<HTMLDivElement> & Omit<BasePlotProps, "change"> & PlotConfig & {
|
|
@@ -31,16 +32,8 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
31
32
|
change?: (data: (Point<Metadata> & {
|
|
32
33
|
series: DataSeries<Metadata>;
|
|
33
34
|
}) | null) => void;
|
|
34
|
-
color_scale?:
|
|
35
|
-
|
|
36
|
-
scheme?: D3ColorSchemeName | D3InterpolateName;
|
|
37
|
-
value_range?: [number, number];
|
|
38
|
-
} | D3InterpolateName;
|
|
39
|
-
size_scale?: {
|
|
40
|
-
type?: ScaleType;
|
|
41
|
-
radius_range?: [number, number];
|
|
42
|
-
value_range?: [number, number];
|
|
43
|
-
};
|
|
35
|
+
color_scale?: ColorScaleConfig | D3InterpolateName;
|
|
36
|
+
size_scale?: SizeScaleConfig;
|
|
44
37
|
color_bar?: (ComponentProps<typeof ColorBar> & {
|
|
45
38
|
margin?: number | Sides;
|
|
46
39
|
tween?: TweenOptions<Point2D>;
|
|
@@ -71,9 +64,10 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
71
64
|
on_axis_change?: (axis: `x` | `x2` | `y` | `y2`, key: string, new_series: DataSeries<Metadata>[]) => void;
|
|
72
65
|
on_error?: (error: AxisLoadError) => void;
|
|
73
66
|
pan?: PanConfig;
|
|
67
|
+
marginals?: MarginalsProp;
|
|
74
68
|
};
|
|
75
69
|
exports: {};
|
|
76
|
-
bindings: "display" | "
|
|
70
|
+
bindings: "display" | "x2_axis" | "y_axis" | "y2_axis" | "fullscreen" | "wrapper" | "series" | "hovered" | "ref_lines" | "x_axis" | "tooltip_point" | "fill_regions" | "selected_series_idx";
|
|
77
71
|
slots: {};
|
|
78
72
|
events: {};
|
|
79
73
|
};
|
|
@@ -81,7 +75,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
|
|
|
81
75
|
props(): ReturnType<typeof $$render<Metadata>>['props'];
|
|
82
76
|
events(): ReturnType<typeof $$render<Metadata>>['events'];
|
|
83
77
|
slots(): ReturnType<typeof $$render<Metadata>>['slots'];
|
|
84
|
-
bindings(): "display" | "
|
|
78
|
+
bindings(): "display" | "x2_axis" | "y_axis" | "y2_axis" | "fullscreen" | "wrapper" | "series" | "hovered" | "ref_lines" | "x_axis" | "tooltip_point" | "fill_regions" | "selected_series_idx";
|
|
85
79
|
exports(): {};
|
|
86
80
|
}
|
|
87
81
|
interface $$IsomorphicComponent {
|
|
@@ -38,9 +38,7 @@
|
|
|
38
38
|
} = $props()
|
|
39
39
|
|
|
40
40
|
let non_null_series = $derived(series.filter((srs) => srs != null))
|
|
41
|
-
let visible_series = $derived(
|
|
42
|
-
non_null_series.filter((srs) => (srs.visible ?? true)),
|
|
43
|
-
)
|
|
41
|
+
let visible_series = $derived(non_null_series.filter((srs) => srs.visible ?? true))
|
|
44
42
|
let has_multiple_series = $derived(non_null_series.length > 1)
|
|
45
43
|
|
|
46
44
|
// Derive what marker types are present, and whether color/size are data-driven
|
|
@@ -55,7 +53,8 @@
|
|
|
55
53
|
visible_series.some((srs) => srs?.size_values?.some((val) => val != null)),
|
|
56
54
|
)
|
|
57
55
|
|
|
58
|
-
$effect(() => {
|
|
56
|
+
$effect(() => {
|
|
57
|
+
// Initialize show_points/show_lines from defaults
|
|
59
58
|
styles.show_points ??= DEFAULTS.scatter.show_points
|
|
60
59
|
styles.show_lines ??= DEFAULTS.scatter.show_lines
|
|
61
60
|
})
|
|
@@ -77,14 +76,14 @@
|
|
|
77
76
|
{...rest}
|
|
78
77
|
>
|
|
79
78
|
{@render children?.({
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
x_axis,
|
|
80
|
+
x2_axis,
|
|
81
|
+
y_axis,
|
|
82
|
+
y2_axis,
|
|
83
|
+
display,
|
|
84
|
+
styles,
|
|
85
|
+
selected_series_idx,
|
|
86
|
+
})}
|
|
88
87
|
{#if has_any_points || has_any_lines}
|
|
89
88
|
<SettingsSection
|
|
90
89
|
title="Markers"
|
|
@@ -97,14 +96,18 @@
|
|
|
97
96
|
>
|
|
98
97
|
{#if has_any_points}
|
|
99
98
|
<label
|
|
100
|
-
{@attach tooltip({
|
|
99
|
+
{@attach tooltip({
|
|
100
|
+
content: `Toggle visibility of data points in the scatter plot`,
|
|
101
|
+
})}
|
|
101
102
|
>
|
|
102
103
|
<input type="checkbox" bind:checked={styles.show_points} /> Show points
|
|
103
104
|
</label>
|
|
104
105
|
{/if}
|
|
105
106
|
{#if has_any_lines}
|
|
106
107
|
<label
|
|
107
|
-
{@attach tooltip({
|
|
108
|
+
{@attach tooltip({
|
|
109
|
+
content: `Toggle visibility of connecting lines between data points`,
|
|
110
|
+
})}
|
|
108
111
|
>
|
|
109
112
|
<input type="checkbox" bind:checked={styles.show_lines} /> Show lines
|
|
110
113
|
</label>
|
|
@@ -164,11 +167,7 @@
|
|
|
164
167
|
{#if !has_color_data}
|
|
165
168
|
<div class="pane-row" data-key="point.color">
|
|
166
169
|
<label for="{uid}-point-color">Color:</label>
|
|
167
|
-
<input
|
|
168
|
-
id="{uid}-point-color"
|
|
169
|
-
type="color"
|
|
170
|
-
bind:value={styles.point.color}
|
|
171
|
-
/>
|
|
170
|
+
<input id="{uid}-point-color" type="color" bind:value={styles.point.color} />
|
|
172
171
|
</div>
|
|
173
172
|
{/if}
|
|
174
173
|
<div class="pane-row" data-key="point.opacity">
|
|
@@ -12,6 +12,6 @@ type $$ComponentProps = Omit<PlotControlsProps, `children` | `post_children`> &
|
|
|
12
12
|
} & Required<PlotConfig>
|
|
13
13
|
]>;
|
|
14
14
|
};
|
|
15
|
-
declare const ScatterPlotControls: import("svelte").Component<$$ComponentProps, {}, "display" | "
|
|
15
|
+
declare const ScatterPlotControls: import("svelte").Component<$$ComponentProps, {}, "display" | "x2_axis" | "y_axis" | "y2_axis" | "x_axis" | "styles" | "selected_series_idx">;
|
|
16
16
|
type ScatterPlotControls = ReturnType<typeof ScatterPlotControls>;
|
|
17
17
|
export default ScatterPlotControls;
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
import type { HoverStyle, LabelStyle, Point } from '..'
|
|
4
4
|
import type { Point2D } from '../../math'
|
|
5
5
|
import type { PointStyle } from '../core/types'
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
estimate_label_size,
|
|
8
|
+
label_leader_segment,
|
|
9
|
+
} from '../core/utils/label-placement'
|
|
7
10
|
import { DEFAULTS } from '../../settings'
|
|
8
11
|
import * as d3_symbols from 'd3-shape'
|
|
9
12
|
import { symbol } from 'd3-shape'
|
|
@@ -103,13 +106,16 @@
|
|
|
103
106
|
{@const offset_x = label.offset?.x ?? 10}
|
|
104
107
|
{@const offset_y = label.offset?.y ?? 0}
|
|
105
108
|
{@const displacement = Math.hypot(offset_x, offset_y)}
|
|
106
|
-
{@const leader_line =
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
{@const leader_line =
|
|
110
|
+
displacement > leader_line_threshold
|
|
111
|
+
? label_leader_segment({
|
|
112
|
+
point: { x: 0, y: 0 },
|
|
113
|
+
point_radius: style.radius ?? 3,
|
|
114
|
+
label_center: { x: offset_x, y: offset_y },
|
|
115
|
+
label_size: label.size ?? estimate_label_size(label.text, label.font_size),
|
|
116
|
+
min_length: 6,
|
|
117
|
+
})
|
|
118
|
+
: null}
|
|
113
119
|
{#if leader_line}
|
|
114
120
|
<line
|
|
115
121
|
x1={leader_line.x1}
|
|
@@ -164,7 +170,8 @@
|
|
|
164
170
|
filter: blur(3px);
|
|
165
171
|
}
|
|
166
172
|
@keyframes ring-pulse {
|
|
167
|
-
0%,
|
|
173
|
+
0%,
|
|
174
|
+
100% {
|
|
168
175
|
opacity: 0.3;
|
|
169
176
|
transform: scale(1);
|
|
170
177
|
}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { D3InterpolateName } from '../../colors';
|
|
2
2
|
import type { DenseInternalPoint } from './adaptive-density';
|
|
3
3
|
import type ColorBar from '../core/components/ColorBar.svelte';
|
|
4
|
-
import type { LabelPlacementConfig,
|
|
4
|
+
import type { ColorScaleConfig, LabelPlacementConfig, RefLine, ScatterHandlerProps, SizeScaleConfig } from '../core/types';
|
|
5
5
|
import type { ComponentProps, Snippet } from 'svelte';
|
|
6
|
-
export type BinnedColorScaleConfig =
|
|
7
|
-
|
|
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];
|
|
6
|
+
export type BinnedColorScaleConfig = ColorScaleConfig | D3InterpolateName;
|
|
7
|
+
export type BinnedSizeScaleConfig = SizeScaleConfig & {
|
|
15
8
|
pick_radius?: number | `auto`;
|
|
16
9
|
};
|
|
10
|
+
export declare const DEFAULT_BINNED_SIZE_SCALE: BinnedSizeScaleConfig;
|
|
17
11
|
export type BinnedDensityConfig = {
|
|
18
12
|
bin_px?: number;
|
|
19
13
|
color_scale?: BinnedColorScaleConfig;
|
|
@@ -34,7 +28,7 @@ export type BinnedRefLine = {
|
|
|
34
28
|
width?: number;
|
|
35
29
|
};
|
|
36
30
|
export type BinnedOverlaysConfig = {
|
|
37
|
-
ref_lines?: BinnedRefLine[];
|
|
31
|
+
ref_lines?: (BinnedRefLine | RefLine)[];
|
|
38
32
|
};
|
|
39
33
|
export type BinnedPointBasePayload<Metadata extends Record<string, unknown> = Record<string, unknown>> = ScatterHandlerProps<Metadata> & {
|
|
40
34
|
point: DenseInternalPoint<Metadata>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { DensePointSeries } from './adaptive-density';
|
|
1
|
+
export type { DensePointSeries, NumericArray } from './adaptive-density';
|
|
2
2
|
export { default as BinnedScatterPlot } from './BinnedScatterPlot.svelte';
|
|
3
3
|
export type { BinnedColorScaleConfig, BinnedDensityConfig, BinnedOverlaysConfig, BinnedPointBasePayload, BinnedPointDataFn, BinnedPointLabelPlacementConfig, BinnedPointLabelsConfig, BinnedPointPayload, BinnedPointTooltipPayload, BinnedRefLine, BinnedSizeScaleConfig, } from './binned-scatter-types';
|
|
4
4
|
export { default as ElementScatter } from './ElementScatter.svelte';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DataSeries, FillRegion, InternalPoint, LegendItem, PointStyle } from '..';
|
|
2
2
|
import { type AxisRanges } from '../core/types';
|
|
3
|
-
export type
|
|
3
|
+
export { type AxisRanges } from '../core/types';
|
|
4
4
|
export declare function filter_series_to_ranges<Metadata = Record<string, unknown>>(series: readonly DataSeries<Metadata>[], ranges: AxisRanges): (DataSeries<Metadata> & {
|
|
5
5
|
filtered_data: InternalPoint<Metadata>[];
|
|
6
6
|
})[];
|
|
@@ -2,7 +2,8 @@ import { symbol_names } from '../../labels';
|
|
|
2
2
|
import { get_series_color, get_series_symbol, process_prop, } from '../core/data-transform';
|
|
3
3
|
import { is_fill_gradient } from '../core/fill-utils';
|
|
4
4
|
import { DEFAULT_MARKERS } from '../core/types';
|
|
5
|
-
|
|
5
|
+
export {} from '../core/types';
|
|
6
|
+
const in_range = (val, lo, hi) => val != null && Number.isFinite(val) && val >= Math.min(lo, hi) && val <= Math.max(lo, hi);
|
|
6
7
|
// Filter series data to only include points within bounds and augment with internal data.
|
|
7
8
|
// Full x/y arrays are kept on each returned series (via spread) so connecting lines can
|
|
8
9
|
// continue through off-range points; only filtered_data (rendered markers) is range-limited.
|
|
@@ -79,7 +80,7 @@ export function build_legend_data(series, computed_fills, color_scale_fn) {
|
|
|
79
80
|
const first_point_style = Array.isArray(data_series?.point_style)
|
|
80
81
|
? data_series.point_style[0]
|
|
81
82
|
: data_series?.point_style;
|
|
82
|
-
if (series_markers
|
|
83
|
+
if (series_markers.includes(`points`)) {
|
|
83
84
|
if (first_point_style) {
|
|
84
85
|
if (typeof first_point_style.symbol_type === `string` &&
|
|
85
86
|
symbol_names.includes(first_point_style.symbol_type)) {
|
|
@@ -101,7 +102,7 @@ export function build_legend_data(series, computed_fills, color_scale_fn) {
|
|
|
101
102
|
display_style.symbol_type = undefined;
|
|
102
103
|
display_style.symbol_color = undefined;
|
|
103
104
|
}
|
|
104
|
-
if (series_markers
|
|
105
|
+
if (series_markers.includes(`line`)) {
|
|
105
106
|
// Explicit line stroke, then color scale, then point colors, then series default
|
|
106
107
|
let line_color = data_series?.line_style?.stroke;
|
|
107
108
|
if (!line_color) {
|
|
@@ -172,7 +173,7 @@ export function build_legend_data(series, computed_fills, color_scale_fn) {
|
|
|
172
173
|
const is_transparent_or_none = (color) => !color ||
|
|
173
174
|
color === `none` ||
|
|
174
175
|
color === `transparent` ||
|
|
175
|
-
/rgba\([^)]+[,/]\s*0(
|
|
176
|
+
/rgba\([^)]+[,/]\s*0(?:\.0*)?\s*\)$/.test(color);
|
|
176
177
|
// Type-guard negation of is_transparent_or_none so usable colors narrow to string
|
|
177
178
|
const is_opaque_color = (color) => !is_transparent_or_none(color);
|
|
178
179
|
// Resolve tooltip background color: point color-scale value, then point fill, then point
|
|
@@ -186,12 +187,12 @@ export function pick_tooltip_bg(point, series, color_scale_fn) {
|
|
|
186
187
|
const fill_color = point_style?.fill;
|
|
187
188
|
if (is_opaque_color(fill_color))
|
|
188
189
|
return fill_color;
|
|
189
|
-
if (series_markers
|
|
190
|
+
if (series_markers.includes(`points`)) {
|
|
190
191
|
const stroke_color = point_style?.stroke;
|
|
191
192
|
if (is_opaque_color(stroke_color))
|
|
192
193
|
return stroke_color;
|
|
193
194
|
}
|
|
194
|
-
if (series_markers
|
|
195
|
+
if (series_markers.includes(`line`)) {
|
|
195
196
|
const line_style = series?.line_style ?? {};
|
|
196
197
|
const first_point_style = Array.isArray(series?.point_style)
|
|
197
198
|
? series?.point_style[0]
|
|
@@ -203,7 +204,7 @@ export function pick_tooltip_bg(point, series, color_scale_fn) {
|
|
|
203
204
|
}
|
|
204
205
|
if (is_transparent_or_none(line_color_candidate) && first_color_value != null)
|
|
205
206
|
line_color_candidate = color_scale_fn(first_color_value);
|
|
206
|
-
if (is_transparent_or_none(line_color_candidate) && series_markers
|
|
207
|
+
if (is_transparent_or_none(line_color_candidate) && series_markers.includes(`points`))
|
|
207
208
|
line_color_candidate = first_point_style?.stroke;
|
|
208
209
|
if (is_opaque_color(line_color_candidate))
|
|
209
210
|
return line_color_candidate;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
lang="ts"
|
|
3
3
|
generics="Metadata extends Record<string, unknown> = Record<string, unknown>"
|
|
4
4
|
>
|
|
5
|
-
import type {
|
|
5
|
+
import type { D3InterpolateName } from '../../colors'
|
|
6
6
|
import { FullscreenToggle } from '../../layout'
|
|
7
7
|
import type { Vec2, Vec3 } from '../../math'
|
|
8
8
|
import { ColorBar, PlotLegend } from '..'
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type {
|
|
12
12
|
AxisConfig3D,
|
|
13
13
|
CameraProjection3D,
|
|
14
|
+
ColorScaleConfig,
|
|
14
15
|
ControlsConfig3D,
|
|
15
16
|
DataSeries3D,
|
|
16
17
|
DisplayConfig3D,
|
|
@@ -18,11 +19,12 @@
|
|
|
18
19
|
LegendConfig,
|
|
19
20
|
RefLine3D,
|
|
20
21
|
RefPlane,
|
|
21
|
-
ScaleType,
|
|
22
22
|
Scatter3DHandlerEvent,
|
|
23
|
+
SizeScaleConfig,
|
|
23
24
|
StyleOverrides3D,
|
|
24
25
|
Surface3DConfig,
|
|
25
26
|
} from '../core/types'
|
|
27
|
+
import { SCALE_DEFAULTS } from '../core/types'
|
|
26
28
|
import { Canvas } from '@threlte/core'
|
|
27
29
|
import * as extras from '@threlte/extras'
|
|
28
30
|
import { onMount } from 'svelte'
|
|
@@ -30,7 +32,7 @@
|
|
|
30
32
|
import type { HTMLAttributes } from 'svelte/elements'
|
|
31
33
|
import { SvelteMap, SvelteSet } from 'svelte/reactivity'
|
|
32
34
|
import type { Camera, Scene } from 'three'
|
|
33
|
-
import { create_color_scale } from '../core/scales'
|
|
35
|
+
import { calculate_domain, create_color_scale } from '../core/scales'
|
|
34
36
|
import ScatterPlot3DControls from './ScatterPlot3DControls.svelte'
|
|
35
37
|
import ScatterPlot3DScene from './ScatterPlot3DScene.svelte'
|
|
36
38
|
|
|
@@ -52,17 +54,9 @@
|
|
|
52
54
|
},
|
|
53
55
|
styles = {},
|
|
54
56
|
// Color and size scaling
|
|
55
|
-
color_scale =
|
|
56
|
-
type: `linear` as ScaleType,
|
|
57
|
-
scheme: `interpolateViridis` as D3InterpolateName,
|
|
58
|
-
value_range: undefined,
|
|
59
|
-
},
|
|
57
|
+
color_scale = SCALE_DEFAULTS.color,
|
|
60
58
|
color_bar = {},
|
|
61
|
-
size_scale =
|
|
62
|
-
type: `linear` as ScaleType,
|
|
63
|
-
radius_range: [0.05, 0.2],
|
|
64
|
-
value_range: undefined,
|
|
65
|
-
},
|
|
59
|
+
size_scale = SCALE_DEFAULTS.size_3d,
|
|
66
60
|
// Legend
|
|
67
61
|
legend = {},
|
|
68
62
|
// Camera settings
|
|
@@ -116,17 +110,9 @@
|
|
|
116
110
|
z_axis?: AxisConfig3D
|
|
117
111
|
display?: DisplayConfig3D
|
|
118
112
|
styles?: StyleOverrides3D
|
|
119
|
-
color_scale?:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
value_range?: [number, number]
|
|
123
|
-
} | D3InterpolateName
|
|
124
|
-
color_bar?: ComponentProps<typeof ColorBar> & { margin?: number | Sides } | null
|
|
125
|
-
size_scale?: {
|
|
126
|
-
type?: ScaleType
|
|
127
|
-
radius_range?: [number, number]
|
|
128
|
-
value_range?: [number, number]
|
|
129
|
-
}
|
|
113
|
+
color_scale?: ColorScaleConfig | D3InterpolateName
|
|
114
|
+
color_bar?: (ComponentProps<typeof ColorBar> & { margin?: number | Sides }) | null
|
|
115
|
+
size_scale?: SizeScaleConfig
|
|
130
116
|
legend?: LegendConfig | null
|
|
131
117
|
camera_position?: Vec3
|
|
132
118
|
camera_projection?: CameraProjection3D
|
|
@@ -156,9 +142,7 @@
|
|
|
156
142
|
orbit_controls?: ComponentProps<typeof extras.OrbitControls>[`ref`]
|
|
157
143
|
tooltip?: Snippet<[Scatter3DHandlerEvent<Metadata>]>
|
|
158
144
|
children?: Snippet<[{ height: number; width: number; fullscreen: boolean }]>
|
|
159
|
-
header_controls?: Snippet<
|
|
160
|
-
[{ height: number; width: number; fullscreen: boolean }]
|
|
161
|
-
>
|
|
145
|
+
header_controls?: Snippet<[{ height: number; width: number; fullscreen: boolean }]>
|
|
162
146
|
controls_extra?: Snippet
|
|
163
147
|
} = $props()
|
|
164
148
|
|
|
@@ -166,7 +150,7 @@
|
|
|
166
150
|
|
|
167
151
|
// Track mounted state to avoid SSR/hydration mismatch with Canvas
|
|
168
152
|
let mounted = $state(false)
|
|
169
|
-
onMount(() => mounted = true)
|
|
153
|
+
onMount(() => (mounted = true))
|
|
170
154
|
|
|
171
155
|
const series_visibility_keys = $derived.by((): string[] => {
|
|
172
156
|
const id_counts = new Map<string | number, number>()
|
|
@@ -175,11 +159,14 @@
|
|
|
175
159
|
id_counts.set(srs.id, (id_counts.get(srs.id) ?? 0) + 1)
|
|
176
160
|
}
|
|
177
161
|
}
|
|
162
|
+
// Prefix classes stay disjoint: `idx:` keys have `x` at index 2 where `id:` keys
|
|
163
|
+
// have `:`, and `dup:` keys differ in first char. Within a class, idx is unique
|
|
164
|
+
// and bare ids are only used when they occur exactly once.
|
|
178
165
|
return series.map((srs, idx) => {
|
|
179
|
-
if (srs?.id === undefined || srs.id === ``) return
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
166
|
+
if (srs?.id === undefined || srs.id === ``) return `idx:${idx}`
|
|
167
|
+
// include typeof so numeric/string ids (1 vs "1") don't collide on the same key
|
|
168
|
+
const id_key = `${typeof srs.id}:${String(srs.id)}`
|
|
169
|
+
return id_counts.get(srs.id) === 1 ? `id:${id_key}` : `dup:${idx}:${id_key}`
|
|
183
170
|
})
|
|
184
171
|
})
|
|
185
172
|
|
|
@@ -193,8 +180,9 @@
|
|
|
193
180
|
}
|
|
194
181
|
})
|
|
195
182
|
let series_visibility = $derived(
|
|
196
|
-
series.map(
|
|
197
|
-
|
|
183
|
+
series.map(
|
|
184
|
+
(srs, idx) =>
|
|
185
|
+
visibility_overrides.get(series_visibility_keys[idx]) ?? srs?.visible ?? true,
|
|
198
186
|
),
|
|
199
187
|
)
|
|
200
188
|
|
|
@@ -222,24 +210,14 @@
|
|
|
222
210
|
|
|
223
211
|
// Collect all color values for color bar
|
|
224
212
|
let all_color_values = $derived(
|
|
225
|
-
series
|
|
226
|
-
|
|
227
|
-
|
|
213
|
+
series
|
|
214
|
+
.filter(Boolean)
|
|
215
|
+
.flatMap((srs) => srs.color_values?.filter((val): val is number => val != null) ?? []),
|
|
228
216
|
)
|
|
229
217
|
|
|
230
|
-
let auto_color_range = $derived
|
|
231
|
-
if (all_color_values.length === 0) return [0, 1]
|
|
232
|
-
let [min, max] = [Infinity, -Infinity]
|
|
233
|
-
for (const val of all_color_values) {
|
|
234
|
-
if (val < min) min = val
|
|
235
|
-
if (val > max) max = val
|
|
236
|
-
}
|
|
237
|
-
return [min, max]
|
|
238
|
-
})
|
|
218
|
+
let auto_color_range = $derived(calculate_domain(all_color_values))
|
|
239
219
|
|
|
240
|
-
let color_scale_fn = $derived(
|
|
241
|
-
create_color_scale(normalized_color_scale, auto_color_range),
|
|
242
|
-
)
|
|
220
|
+
let color_scale_fn = $derived(create_color_scale(normalized_color_scale, auto_color_range))
|
|
243
221
|
|
|
244
222
|
// Legend data
|
|
245
223
|
let legend_data = $derived(
|
|
@@ -255,10 +233,9 @@
|
|
|
255
233
|
display_style: {
|
|
256
234
|
symbol_type: `Circle` as const,
|
|
257
235
|
symbol_color: srs?.point_style
|
|
258
|
-
? (Array.isArray(srs.point_style)
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
series_color
|
|
236
|
+
? ((Array.isArray(srs.point_style)
|
|
237
|
+
? srs.point_style[0]?.fill
|
|
238
|
+
: srs.point_style?.fill) ?? series_color)
|
|
262
239
|
: series_color,
|
|
263
240
|
},
|
|
264
241
|
has_explicit_label: Boolean(srs?.label),
|
|
@@ -317,7 +294,7 @@
|
|
|
317
294
|
bind:clientWidth={width}
|
|
318
295
|
bind:clientHeight={height}
|
|
319
296
|
{...rest}
|
|
320
|
-
class=
|
|
297
|
+
class={[`scatter-3d`, rest.class]}
|
|
321
298
|
class:fullscreen
|
|
322
299
|
>
|
|
323
300
|
{#if width && height}
|
|
@@ -342,7 +319,7 @@
|
|
|
342
319
|
{z_axis}
|
|
343
320
|
{display}
|
|
344
321
|
{styles}
|
|
345
|
-
|
|
322
|
+
{color_scale_fn}
|
|
346
323
|
{size_scale}
|
|
347
324
|
{camera_position}
|
|
348
325
|
{camera_projection}
|
|
@@ -402,9 +379,9 @@
|
|
|
402
379
|
<!-- Color Bar -->
|
|
403
380
|
{#if color_bar && all_color_values.length > 0}
|
|
404
381
|
{@const color_domain = [
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
382
|
+
normalized_color_scale.value_range?.[0] ?? auto_color_range[0],
|
|
383
|
+
normalized_color_scale.value_range?.[1] ?? auto_color_range[1],
|
|
384
|
+
] as Vec2}
|
|
408
385
|
<ColorBar
|
|
409
386
|
tick_labels={4}
|
|
410
387
|
tick_side="primary"
|
|
@@ -412,7 +389,8 @@
|
|
|
412
389
|
color_scale_domain={color_domain}
|
|
413
390
|
scale_type={normalized_color_scale.type}
|
|
414
391
|
range={color_domain?.every((val) => val != null) ? color_domain : undefined}
|
|
415
|
-
wrapper_style="position: absolute; bottom: 2em; left: 2em; {color_bar?.wrapper_style ??
|
|
392
|
+
wrapper_style="position: absolute; bottom: 2em; left: 2em; {color_bar?.wrapper_style ??
|
|
393
|
+
``}"
|
|
416
394
|
bar_style="width: 200px; height: 16px; {color_bar?.style ?? ``}"
|
|
417
395
|
{...color_bar}
|
|
418
396
|
/>
|
|
@@ -519,7 +497,9 @@
|
|
|
519
497
|
div.scatter-3d :global(.pane-toggle),
|
|
520
498
|
div.scatter-3d .header-controls {
|
|
521
499
|
opacity: 0;
|
|
522
|
-
transition:
|
|
500
|
+
transition:
|
|
501
|
+
opacity 0.2s,
|
|
502
|
+
background-color 0.2s;
|
|
523
503
|
}
|
|
524
504
|
div.scatter-3d:hover :global(.pane-toggle),
|
|
525
505
|
div.scatter-3d:hover .header-controls,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { D3InterpolateName } from '../../colors';
|
|
2
2
|
import type { Vec3 } from '../../math';
|
|
3
3
|
import { ColorBar } from '..';
|
|
4
4
|
import type { Sides } from '../core/layout';
|
|
5
|
-
import type { AxisConfig3D, CameraProjection3D, ControlsConfig3D, DataSeries3D, DisplayConfig3D, InternalPoint3D, LegendConfig, RefLine3D, RefPlane,
|
|
5
|
+
import type { AxisConfig3D, CameraProjection3D, ColorScaleConfig, ControlsConfig3D, DataSeries3D, DisplayConfig3D, InternalPoint3D, LegendConfig, RefLine3D, RefPlane, Scatter3DHandlerEvent, SizeScaleConfig, StyleOverrides3D, Surface3DConfig } from '../core/types';
|
|
6
6
|
import * as extras from '@threlte/extras';
|
|
7
7
|
import type { ComponentProps, Snippet } from 'svelte';
|
|
8
8
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
@@ -18,19 +18,11 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
18
18
|
z_axis?: AxisConfig3D;
|
|
19
19
|
display?: DisplayConfig3D;
|
|
20
20
|
styles?: StyleOverrides3D;
|
|
21
|
-
color_scale?:
|
|
22
|
-
type?: ScaleType;
|
|
23
|
-
scheme?: D3ColorSchemeName | D3InterpolateName;
|
|
24
|
-
value_range?: [number, number];
|
|
25
|
-
} | D3InterpolateName;
|
|
21
|
+
color_scale?: ColorScaleConfig | D3InterpolateName;
|
|
26
22
|
color_bar?: (ComponentProps<typeof ColorBar> & {
|
|
27
23
|
margin?: number | Sides;
|
|
28
24
|
}) | null;
|
|
29
|
-
size_scale?:
|
|
30
|
-
type?: ScaleType;
|
|
31
|
-
radius_range?: [number, number];
|
|
32
|
-
value_range?: [number, number];
|
|
33
|
-
};
|
|
25
|
+
size_scale?: SizeScaleConfig;
|
|
34
26
|
legend?: LegendConfig | null;
|
|
35
27
|
camera_position?: Vec3;
|
|
36
28
|
camera_projection?: CameraProjection3D;
|
|
@@ -72,7 +64,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
72
64
|
controls_extra?: Snippet;
|
|
73
65
|
};
|
|
74
66
|
exports: {};
|
|
75
|
-
bindings: "fullscreen" | "
|
|
67
|
+
bindings: "fullscreen" | "wrapper" | "hovered" | "camera" | "camera_position" | "orbit_controls" | "scene" | "tooltip_point";
|
|
76
68
|
slots: {};
|
|
77
69
|
events: {};
|
|
78
70
|
};
|
|
@@ -80,7 +72,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
|
|
|
80
72
|
props(): ReturnType<typeof $$render<Metadata>>['props'];
|
|
81
73
|
events(): ReturnType<typeof $$render<Metadata>>['events'];
|
|
82
74
|
slots(): ReturnType<typeof $$render<Metadata>>['slots'];
|
|
83
|
-
bindings(): "fullscreen" | "
|
|
75
|
+
bindings(): "fullscreen" | "wrapper" | "hovered" | "camera" | "camera_position" | "orbit_controls" | "scene" | "tooltip_point";
|
|
84
76
|
exports(): {};
|
|
85
77
|
}
|
|
86
78
|
interface $$IsomorphicComponent {
|