matterviz 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EmptyState.svelte +10 -4
- package/dist/FilePicker.svelte +12 -14
- package/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +2 -2
- package/dist/app.css +53 -0
- package/dist/brillouin/BrillouinZone.svelte +75 -85
- package/dist/brillouin/BrillouinZone.svelte.d.ts +5 -7
- package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
- package/dist/brillouin/BrillouinZoneExportPane.svelte +18 -14
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +6 -10
- package/dist/brillouin/BrillouinZoneScene.svelte +26 -39
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram.svelte +33 -38
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +62 -74
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +511 -547
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/async-compute.svelte.js +1 -1
- package/dist/chempot-diagram/controls-state.svelte.js +1 -1
- package/dist/colors/index.d.ts +0 -4
- package/dist/colors/index.js +19 -20
- package/dist/composition/BarChart.svelte +37 -31
- package/dist/composition/BubbleChart.svelte +17 -17
- package/dist/composition/Composition.svelte +7 -11
- package/dist/composition/Formula.svelte +18 -25
- package/dist/composition/FormulaFilter.svelte +92 -95
- package/dist/composition/PieChart.svelte +55 -41
- package/dist/composition/format.js +1 -1
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/parse.d.ts +2 -2
- package/dist/composition/parse.js +11 -10
- package/dist/constants.js +11 -9
- package/dist/convex-hull/ConvexHull.svelte +12 -15
- package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull2D.svelte +93 -92
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +109 -140
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +75 -94
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHullChrome.svelte +36 -40
- package/dist/convex-hull/ConvexHullControls.svelte +46 -48
- package/dist/convex-hull/ConvexHullStats.svelte +193 -195
- package/dist/convex-hull/ConvexHullTooltip.svelte +5 -12
- package/dist/convex-hull/GasPressureControls.svelte +5 -12
- package/dist/convex-hull/StructurePopup.svelte +17 -21
- package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
- package/dist/convex-hull/TemperatureSlider.svelte +4 -10
- package/dist/convex-hull/canvas-interactions.svelte.js +2 -1
- package/dist/convex-hull/helpers.d.ts +8 -10
- package/dist/convex-hull/helpers.js +36 -36
- package/dist/convex-hull/hull-state.svelte.d.ts +1 -1
- package/dist/convex-hull/thermodynamics.js +18 -17
- package/dist/coordination/CoordinationBarPlot.svelte +38 -33
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
- package/dist/coordination/calc-coordination.d.ts +1 -1
- package/dist/coordination/calc-coordination.js +28 -25
- package/dist/element/BohrAtom.svelte +5 -8
- package/dist/element/ElementHeading.svelte +4 -1
- package/dist/element/ElementPhoto.svelte +11 -9
- package/dist/element/ElementStats.svelte +12 -10
- package/dist/element/ElementTile.svelte +24 -29
- package/dist/element/Nucleus.svelte +4 -2
- package/dist/element/data.d.ts +1 -2
- package/dist/element/helpers.d.ts +4 -0
- package/dist/element/helpers.js +18 -0
- package/dist/element/index.d.ts +1 -4
- package/dist/element/index.js +3 -18
- package/dist/feedback/DragOverlay.svelte +5 -5
- package/dist/feedback/DragOverlay.svelte.d.ts +2 -2
- package/dist/feedback/StatusMessage.svelte +7 -4
- package/dist/fermi-surface/FermiSlice.svelte +21 -18
- package/dist/fermi-surface/FermiSurface.svelte +14 -22
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +5 -7
- package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceScene.svelte +37 -64
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
- package/dist/fermi-surface/compute.js +3 -3
- package/dist/fermi-surface/parse.js +22 -24
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +109 -148
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +2 -2
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +9 -7
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +1 -1
- package/dist/heatmap-matrix/index.d.ts +5 -0
- package/dist/icons.d.ts +4 -0
- package/dist/icons.js +4 -0
- package/dist/io/ExportPane.svelte +10 -6
- package/dist/io/decompress.d.ts +2 -1
- package/dist/io/decompress.js +22 -35
- package/dist/io/export.d.ts +4 -0
- package/dist/io/export.js +5 -1
- package/dist/io/fetch.d.ts +0 -3
- package/dist/io/fetch.js +0 -11
- package/dist/io/index.d.ts +0 -1
- package/dist/io/index.js +2 -9
- package/dist/io/is-binary.d.ts +9 -0
- package/dist/io/is-binary.js +45 -1
- package/dist/io/url-drop.js +13 -25
- package/dist/isosurface/Isosurface.svelte +17 -23
- package/dist/isosurface/IsosurfaceControls.svelte +37 -42
- package/dist/isosurface/parse-vaspwave.d.ts +3 -0
- package/dist/isosurface/parse-vaspwave.js +138 -0
- package/dist/isosurface/parse.js +6 -6
- package/dist/labels.d.ts +6 -2
- package/dist/labels.js +43 -13
- package/dist/layout/FullscreenButton.svelte +2 -1
- package/dist/layout/FullscreenToggle.svelte +10 -4
- package/dist/layout/InfoCard.svelte +7 -18
- package/dist/layout/InfoTag.svelte +1 -3
- package/dist/layout/NumberRangeInput.svelte +46 -0
- package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
- package/dist/layout/PropertyFilter.svelte +2 -6
- package/dist/layout/SettingsSection.svelte +21 -17
- package/dist/layout/SubpageGrid.svelte +3 -1
- package/dist/layout/ViewerChrome.svelte +9 -10
- package/dist/layout/ViewerChrome.svelte.d.ts +2 -1
- package/dist/layout/fullscreen.js +3 -5
- package/dist/layout/fullscreen.svelte.js +1 -2
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/index.js +1 -0
- package/dist/layout/json-tree/JsonNode.svelte +8 -11
- package/dist/layout/json-tree/JsonTree.svelte +53 -77
- package/dist/layout/json-tree/JsonValue.svelte +7 -15
- package/dist/layout/json-tree/utils.js +14 -23
- package/dist/math.d.ts +2 -0
- package/dist/math.js +19 -0
- package/dist/overlays/ContextMenu.svelte +4 -2
- package/dist/overlays/CopyButton.svelte +11 -5
- package/dist/overlays/DragControlTab.svelte +6 -1
- package/dist/overlays/DraggablePane.svelte +81 -26
- package/dist/overlays/DraggablePane.svelte.d.ts +1 -0
- package/dist/overlays/GlassChip.svelte +30 -0
- package/dist/overlays/GlassChip.svelte.d.ts +8 -0
- package/dist/overlays/InfoPaneCards.svelte +11 -23
- package/dist/overlays/index.d.ts +7 -0
- package/dist/overlays/index.js +26 -0
- package/dist/overlays/portal.d.ts +2 -0
- package/dist/overlays/portal.js +14 -0
- package/dist/periodic-table/PeriodicTable.svelte +113 -145
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
- package/dist/periodic-table/PeriodicTableControls.svelte +11 -63
- package/dist/periodic-table/TableInset.svelte +9 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +50 -71
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
- package/dist/phase-diagram/PhaseDiagramControls.svelte +70 -94
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +12 -12
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
- package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
- package/dist/phase-diagram/build-diagram.js +3 -3
- package/dist/phase-diagram/diagram-input.d.ts +1 -2
- package/dist/phase-diagram/parse.js +15 -15
- package/dist/phase-diagram/svg-to-diagram.js +21 -15
- package/dist/phase-diagram/utils.js +2 -3
- package/dist/plot/bar/BarPlot.svelte +430 -391
- package/dist/plot/bar/BarPlot.svelte.d.ts +2 -0
- package/dist/plot/bar/BarPlotControls.svelte +1 -3
- package/dist/plot/bar/BarPlotControls.svelte.d.ts +4 -6
- package/dist/plot/bar/SpacegroupBarPlot.svelte +29 -36
- package/dist/plot/bar/data.d.ts +5 -4
- package/dist/plot/bar/data.js +2 -1
- package/dist/plot/box/BoxPlot.svelte +301 -209
- package/dist/plot/box/BoxPlot.svelte.d.ts +2 -0
- package/dist/plot/box/Violin.svelte.d.ts +1 -0
- package/dist/plot/box/box-plot.js +1 -1
- package/dist/plot/core/auto-place.js +1 -1
- package/dist/plot/core/axis-utils.d.ts +12 -7
- package/dist/plot/core/axis-utils.js +48 -48
- package/dist/plot/core/components/AxisLabel.svelte +82 -20
- package/dist/plot/core/components/AxisLabel.svelte.d.ts +1 -0
- package/dist/plot/core/components/ColorBar.svelte +101 -106
- package/dist/plot/core/components/ColorScaleSelect.svelte +1 -1
- package/dist/plot/core/components/FillArea.svelte +10 -17
- package/dist/plot/core/components/HierarchyControls.svelte +249 -0
- package/dist/plot/{sunburst/SunburstControls.svelte.d.ts → core/components/HierarchyControls.svelte.d.ts} +12 -8
- package/dist/plot/core/components/InteractiveAxisLabel.svelte +1 -1
- package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +1 -1
- package/dist/plot/core/components/Line.svelte +18 -9
- package/dist/plot/core/components/Line.svelte.d.ts +2 -0
- package/dist/plot/core/components/PlotAxis.svelte +40 -17
- package/dist/plot/core/components/PlotControls.svelte +65 -41
- package/dist/plot/core/components/PlotLegend.svelte +31 -35
- package/dist/plot/core/components/PlotMarginals.svelte +616 -0
- package/dist/plot/core/components/PlotMarginals.svelte.d.ts +15 -0
- package/dist/plot/core/components/PlotTooltip.svelte +1 -1
- package/dist/plot/core/components/PortalSelect.svelte +4 -8
- package/dist/plot/core/components/ReferenceLine.svelte +27 -24
- package/dist/plot/core/components/ReferenceLine3D.svelte +54 -57
- package/dist/plot/core/components/ReferencePlane.svelte +7 -8
- package/dist/plot/core/components/ZeroLines.svelte +4 -8
- package/dist/plot/core/components/ZoomRect.svelte +1 -2
- package/dist/plot/core/components/index.d.ts +1 -0
- package/dist/plot/core/components/index.js +1 -0
- package/dist/plot/core/data-cleaning-signal.d.ts +46 -0
- package/dist/plot/core/data-cleaning-signal.js +467 -0
- package/dist/plot/core/data-cleaning.d.ts +2 -42
- package/dist/plot/core/data-cleaning.js +27 -474
- package/dist/plot/core/data-transform.js +9 -5
- package/dist/plot/core/fill-utils.d.ts +3 -1
- package/dist/plot/core/fill-utils.js +28 -6
- package/dist/plot/core/index.d.ts +1 -0
- package/dist/plot/core/index.js +1 -0
- package/dist/plot/core/interactions.js +0 -2
- package/dist/plot/core/layout.d.ts +3 -1
- package/dist/plot/core/layout.js +22 -13
- package/dist/plot/core/marginals.d.ts +170 -0
- package/dist/plot/core/marginals.js +436 -0
- package/dist/plot/core/reference-line.js +1 -1
- package/dist/plot/core/scales.d.ts +23 -0
- package/dist/plot/core/scales.js +39 -13
- package/dist/plot/core/types/fills.d.ts +101 -0
- package/dist/plot/core/types/fills.js +15 -0
- package/dist/plot/core/types/plot-3d.d.ts +87 -0
- package/dist/plot/core/types/plot-3d.js +4 -0
- package/dist/plot/core/types/reference-lines.d.ts +140 -0
- package/dist/plot/core/types/reference-lines.js +9 -0
- package/dist/plot/core/types.d.ts +29 -324
- package/dist/plot/core/types.js +23 -20
- package/dist/plot/core/utils/hierarchy-chart.d.ts +51 -0
- package/dist/plot/core/utils/hierarchy-chart.js +179 -0
- package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
- package/dist/plot/core/utils/hierarchy-labels.js +99 -0
- package/dist/plot/core/utils/label-placement.js +2 -2
- package/dist/plot/histogram/Histogram.svelte +304 -325
- package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
- package/dist/plot/histogram/HistogramControls.svelte +30 -28
- package/dist/plot/histogram/histogram.d.ts +31 -0
- package/dist/plot/histogram/histogram.js +70 -0
- package/dist/plot/histogram/index.d.ts +1 -0
- package/dist/plot/histogram/index.js +1 -0
- package/dist/plot/index.d.ts +1 -0
- package/dist/plot/index.js +1 -0
- package/dist/plot/sankey/Sankey.svelte +78 -69
- package/dist/plot/sankey/Sankey.svelte.d.ts +2 -2
- package/dist/plot/sankey/SankeyControls.svelte +22 -16
- package/dist/plot/scatter/BinnedScatterPlot.svelte +263 -109
- package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +7 -0
- package/dist/plot/scatter/ElementScatter.svelte +4 -1
- package/dist/plot/scatter/ScatterPlot.svelte +477 -385
- package/dist/plot/scatter/ScatterPlot.svelte.d.ts +2 -0
- package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
- package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
- package/dist/plot/scatter/ScatterPoint.svelte +16 -9
- package/dist/plot/scatter/binned-scatter-types.d.ts +3 -2
- package/dist/plot/scatter/binned-scatter-types.js +6 -1
- package/dist/plot/scatter/scatter-data.d.ts +1 -1
- package/dist/plot/scatter/scatter-data.js +8 -7
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte +25 -34
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +2 -2
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +8 -5
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +113 -116
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +2 -2
- package/dist/plot/scatter-3d/Surface3D.svelte +4 -13
- package/dist/plot/sunburst/Sunburst.svelte +251 -329
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +2 -2
- package/dist/plot/sunburst/index.d.ts +1 -1
- package/dist/plot/sunburst/index.js +2 -1
- package/dist/plot/sunburst/render.d.ts +2 -2
- package/dist/plot/sunburst/render.js +47 -22
- package/dist/plot/sunburst/sunburst.d.ts +5 -1
- package/dist/plot/sunburst/sunburst.js +10 -3
- package/dist/plot/treemap/Treemap.svelte +907 -0
- package/dist/plot/treemap/Treemap.svelte.d.ts +84 -0
- package/dist/plot/treemap/index.d.ts +3 -0
- package/dist/plot/treemap/index.js +4 -0
- package/dist/plot/treemap/treemap.d.ts +26 -0
- package/dist/plot/treemap/treemap.js +99 -0
- package/dist/rdf/RdfPlot.svelte +22 -26
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +4 -8
- package/dist/sanitize.js +1 -1
- package/dist/scene/bind-renderer.svelte.js +14 -6
- package/dist/settings.d.ts +19 -9
- package/dist/settings.js +77 -50
- package/dist/spectral/Bands.svelte +223 -230
- package/dist/spectral/BandsAndDos.svelte +11 -9
- package/dist/spectral/BrillouinBandsDos.svelte +19 -27
- package/dist/spectral/Dos.svelte +70 -73
- package/dist/spectral/helpers.d.ts +3 -3
- package/dist/spectral/helpers.js +25 -35
- package/dist/state.svelte.js +5 -18
- package/dist/structure/Arrow.svelte +5 -18
- package/dist/structure/ArrowInstances.svelte +160 -0
- package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
- package/dist/structure/AtomLegend.svelte +115 -75
- package/dist/structure/AtomLegend.svelte.d.ts +1 -1
- package/dist/structure/Bond.svelte +31 -23
- package/dist/structure/CanvasTooltip.svelte +15 -3
- package/dist/structure/CellSelect.svelte +11 -26
- package/dist/structure/Cylinder.svelte +24 -40
- package/dist/structure/InstancedAtoms.svelte +114 -0
- package/dist/structure/InstancedAtoms.svelte.d.ts +15 -0
- package/dist/structure/Lattice.svelte +85 -149
- package/dist/structure/SiteLabels.svelte +122 -0
- package/dist/structure/SiteLabels.svelte.d.ts +18 -0
- package/dist/structure/Structure.svelte +473 -419
- package/dist/structure/Structure.svelte.d.ts +4 -2
- package/dist/structure/StructureCarousel.svelte +630 -0
- package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
- package/dist/structure/StructureControls.svelte +157 -399
- package/dist/structure/StructureControls.svelte.d.ts +1 -1
- package/dist/structure/StructureExportPane.svelte +17 -21
- package/dist/structure/StructureInfoPane.svelte +72 -66
- package/dist/structure/StructureInfoPane.svelte.d.ts +1 -1
- package/dist/structure/StructureScene.svelte +467 -476
- package/dist/structure/StructureScene.svelte.d.ts +3 -1
- package/dist/structure/StructureViewport.svelte +386 -0
- package/dist/structure/StructureViewport.svelte.d.ts +63 -0
- package/dist/structure/atom-label-placement.d.ts +16 -12
- package/dist/structure/atom-label-placement.js +70 -37
- package/dist/structure/atom-properties.d.ts +2 -0
- package/dist/structure/atom-properties.js +104 -38
- package/dist/structure/bonding.d.ts +10 -3
- package/dist/structure/bonding.js +84 -28
- package/dist/structure/edit-history.d.ts +6 -0
- package/dist/structure/edit-history.js +27 -0
- package/dist/structure/export.d.ts +1 -0
- package/dist/structure/export.js +39 -31
- package/dist/structure/format-detect.d.ts +1 -0
- package/dist/structure/format-detect.js +22 -0
- package/dist/structure/geometry.d.ts +9 -0
- package/dist/structure/geometry.js +27 -0
- package/dist/structure/index.d.ts +16 -1
- package/dist/structure/index.js +13 -2
- package/dist/structure/measure.d.ts +1 -1
- package/dist/structure/measure.js +6 -12
- package/dist/structure/parse.d.ts +2 -1
- package/dist/structure/parse.js +243 -222
- package/dist/structure/partial-occupancy.js +4 -2
- package/dist/structure/pbc.js +78 -98
- package/dist/structure/polyhedra.d.ts +0 -1
- package/dist/structure/polyhedra.js +3 -18
- package/dist/structure/supercell.d.ts +1 -2
- package/dist/structure/supercell.js +7 -13
- package/dist/symmetry/SymmetryElements.svelte +11 -15
- package/dist/symmetry/SymmetryStats.svelte +56 -68
- package/dist/symmetry/WyckoffTable.svelte +5 -24
- package/dist/symmetry/cell-transform.js +1 -0
- package/dist/symmetry/index.d.ts +1 -0
- package/dist/symmetry/index.js +8 -2
- package/dist/symmetry/spacegroups.js +3 -2
- package/dist/table/HeatmapTable.svelte +1102 -365
- package/dist/table/HeatmapTable.svelte.d.ts +12 -2
- package/dist/table/ToggleMenu.svelte +5 -12
- package/dist/table/index.d.ts +21 -6
- package/dist/table/index.js +34 -21
- package/dist/theme/ThemeControl.svelte +16 -8
- package/dist/theme/index.d.ts +1 -5
- package/dist/theme/index.js +4 -10
- package/dist/theme/themes.mjs +14 -7
- package/dist/tooltip/KCoords.svelte +4 -1
- package/dist/tooltip/TooltipContent.svelte +2 -5
- package/dist/trajectory/Trajectory.svelte +515 -308
- package/dist/trajectory/Trajectory.svelte.d.ts +1 -1
- package/dist/trajectory/TrajectoryError.svelte +11 -8
- package/dist/trajectory/TrajectoryExportPane.svelte +14 -31
- package/dist/trajectory/TrajectoryInfoPane.svelte +85 -97
- package/dist/trajectory/extract.js +56 -34
- package/dist/trajectory/format-detect.js +11 -9
- package/dist/trajectory/frame-reader.d.ts +2 -0
- package/dist/trajectory/frame-reader.js +33 -29
- package/dist/trajectory/helpers.d.ts +2 -0
- package/dist/trajectory/helpers.js +18 -7
- package/dist/trajectory/index.d.ts +1 -0
- package/dist/trajectory/index.js +3 -0
- package/dist/trajectory/parse/h5-utils.d.ts +13 -0
- package/dist/trajectory/parse/h5-utils.js +109 -0
- package/dist/trajectory/parse/hdf5.d.ts +1 -1
- package/dist/trajectory/parse/hdf5.js +116 -106
- package/dist/trajectory/parse/index.d.ts +2 -3
- package/dist/trajectory/parse/index.js +17 -20
- package/dist/trajectory/parse/lammps.js +8 -12
- package/dist/trajectory/parse/vasp.js +10 -7
- package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
- package/dist/trajectory/parse/vaspout-electronic.js +207 -0
- package/dist/trajectory/parse/vaspout-h5.d.ts +5 -0
- package/dist/trajectory/parse/vaspout-h5.js +284 -0
- package/dist/trajectory/parse/xyz.js +11 -7
- package/dist/trajectory/plotting.d.ts +8 -9
- package/dist/trajectory/plotting.js +99 -27
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +7 -0
- package/dist/xrd/XrdPlot.svelte +47 -61
- package/dist/xrd/broadening.js +2 -1
- package/dist/xrd/calc-xrd.js +2 -4
- package/dist/xrd/parse.d.ts +0 -1
- package/dist/xrd/parse.js +56 -73
- package/package.json +61 -33
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/plot/sunburst/SunburstControls.svelte +0 -200
|
@@ -2,6 +2,7 @@ import type { D3InterpolateName } from '../../colors';
|
|
|
2
2
|
import type { Point2D } from '../../math';
|
|
3
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
8
|
import type { TweenOptions } from 'svelte/motion';
|
|
@@ -63,6 +64,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
63
64
|
on_axis_change?: (axis: `x` | `x2` | `y` | `y2`, key: string, new_series: DataSeries<Metadata>[]) => void;
|
|
64
65
|
on_error?: (error: AxisLoadError) => void;
|
|
65
66
|
pan?: PanConfig;
|
|
67
|
+
marginals?: MarginalsProp;
|
|
66
68
|
};
|
|
67
69
|
exports: {};
|
|
68
70
|
bindings: "display" | "x2_axis" | "y_axis" | "y2_axis" | "fullscreen" | "wrapper" | "series" | "hovered" | "ref_lines" | "x_axis" | "tooltip_point" | "fill_regions" | "selected_series_idx";
|
|
@@ -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" | "x2_axis" | "y_axis" | "y2_axis" | "x_axis" | "
|
|
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,12 +1,13 @@
|
|
|
1
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 { ColorScaleConfig, LabelPlacementConfig, ScatterHandlerProps, SizeScaleConfig } from '../core/types';
|
|
4
|
+
import type { ColorScaleConfig, LabelPlacementConfig, RefLine, ScatterHandlerProps, SizeScaleConfig } from '../core/types';
|
|
5
5
|
import type { ComponentProps, Snippet } from 'svelte';
|
|
6
6
|
export type BinnedColorScaleConfig = ColorScaleConfig | D3InterpolateName;
|
|
7
7
|
export type BinnedSizeScaleConfig = SizeScaleConfig & {
|
|
8
8
|
pick_radius?: number | `auto`;
|
|
9
9
|
};
|
|
10
|
+
export declare const DEFAULT_BINNED_SIZE_SCALE: BinnedSizeScaleConfig;
|
|
10
11
|
export type BinnedDensityConfig = {
|
|
11
12
|
bin_px?: number;
|
|
12
13
|
color_scale?: BinnedColorScaleConfig;
|
|
@@ -27,7 +28,7 @@ export type BinnedRefLine = {
|
|
|
27
28
|
width?: number;
|
|
28
29
|
};
|
|
29
30
|
export type BinnedOverlaysConfig = {
|
|
30
|
-
ref_lines?: BinnedRefLine[];
|
|
31
|
+
ref_lines?: (BinnedRefLine | RefLine)[];
|
|
31
32
|
};
|
|
32
33
|
export type BinnedPointBasePayload<Metadata extends Record<string, unknown> = Record<string, unknown>> = ScatterHandlerProps<Metadata> & {
|
|
33
34
|
point: DenseInternalPoint<Metadata>;
|
|
@@ -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;
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
LegendConfig,
|
|
20
20
|
RefLine3D,
|
|
21
21
|
RefPlane,
|
|
22
|
-
ScaleType,
|
|
23
22
|
Scatter3DHandlerEvent,
|
|
24
23
|
SizeScaleConfig,
|
|
25
24
|
StyleOverrides3D,
|
|
26
25
|
Surface3DConfig,
|
|
27
26
|
} from '../core/types'
|
|
27
|
+
import { SCALE_DEFAULTS } from '../core/types'
|
|
28
28
|
import { Canvas } from '@threlte/core'
|
|
29
29
|
import * as extras from '@threlte/extras'
|
|
30
30
|
import { onMount } from 'svelte'
|
|
@@ -54,17 +54,9 @@
|
|
|
54
54
|
},
|
|
55
55
|
styles = {},
|
|
56
56
|
// Color and size scaling
|
|
57
|
-
color_scale =
|
|
58
|
-
type: `linear` as ScaleType,
|
|
59
|
-
scheme: `interpolateViridis` as D3InterpolateName,
|
|
60
|
-
value_range: undefined,
|
|
61
|
-
},
|
|
57
|
+
color_scale = SCALE_DEFAULTS.color,
|
|
62
58
|
color_bar = {},
|
|
63
|
-
size_scale =
|
|
64
|
-
type: `linear` as ScaleType,
|
|
65
|
-
radius_range: [0.05, 0.2],
|
|
66
|
-
value_range: undefined,
|
|
67
|
-
},
|
|
59
|
+
size_scale = SCALE_DEFAULTS.size_3d,
|
|
68
60
|
// Legend
|
|
69
61
|
legend = {},
|
|
70
62
|
// Camera settings
|
|
@@ -119,7 +111,7 @@
|
|
|
119
111
|
display?: DisplayConfig3D
|
|
120
112
|
styles?: StyleOverrides3D
|
|
121
113
|
color_scale?: ColorScaleConfig | D3InterpolateName
|
|
122
|
-
color_bar?: ComponentProps<typeof ColorBar> & { margin?: number | Sides } | null
|
|
114
|
+
color_bar?: (ComponentProps<typeof ColorBar> & { margin?: number | Sides }) | null
|
|
123
115
|
size_scale?: SizeScaleConfig
|
|
124
116
|
legend?: LegendConfig | null
|
|
125
117
|
camera_position?: Vec3
|
|
@@ -150,9 +142,7 @@
|
|
|
150
142
|
orbit_controls?: ComponentProps<typeof extras.OrbitControls>[`ref`]
|
|
151
143
|
tooltip?: Snippet<[Scatter3DHandlerEvent<Metadata>]>
|
|
152
144
|
children?: Snippet<[{ height: number; width: number; fullscreen: boolean }]>
|
|
153
|
-
header_controls?: Snippet<
|
|
154
|
-
[{ height: number; width: number; fullscreen: boolean }]
|
|
155
|
-
>
|
|
145
|
+
header_controls?: Snippet<[{ height: number; width: number; fullscreen: boolean }]>
|
|
156
146
|
controls_extra?: Snippet
|
|
157
147
|
} = $props()
|
|
158
148
|
|
|
@@ -160,7 +150,7 @@
|
|
|
160
150
|
|
|
161
151
|
// Track mounted state to avoid SSR/hydration mismatch with Canvas
|
|
162
152
|
let mounted = $state(false)
|
|
163
|
-
onMount(() => mounted = true)
|
|
153
|
+
onMount(() => (mounted = true))
|
|
164
154
|
|
|
165
155
|
const series_visibility_keys = $derived.by((): string[] => {
|
|
166
156
|
const id_counts = new Map<string | number, number>()
|
|
@@ -190,8 +180,9 @@
|
|
|
190
180
|
}
|
|
191
181
|
})
|
|
192
182
|
let series_visibility = $derived(
|
|
193
|
-
series.map(
|
|
194
|
-
|
|
183
|
+
series.map(
|
|
184
|
+
(srs, idx) =>
|
|
185
|
+
visibility_overrides.get(series_visibility_keys[idx]) ?? srs?.visible ?? true,
|
|
195
186
|
),
|
|
196
187
|
)
|
|
197
188
|
|
|
@@ -219,16 +210,14 @@
|
|
|
219
210
|
|
|
220
211
|
// Collect all color values for color bar
|
|
221
212
|
let all_color_values = $derived(
|
|
222
|
-
series
|
|
223
|
-
|
|
224
|
-
|
|
213
|
+
series
|
|
214
|
+
.filter(Boolean)
|
|
215
|
+
.flatMap((srs) => srs.color_values?.filter((val): val is number => val != null) ?? []),
|
|
225
216
|
)
|
|
226
217
|
|
|
227
218
|
let auto_color_range = $derived(calculate_domain(all_color_values))
|
|
228
219
|
|
|
229
|
-
let color_scale_fn = $derived(
|
|
230
|
-
create_color_scale(normalized_color_scale, auto_color_range),
|
|
231
|
-
)
|
|
220
|
+
let color_scale_fn = $derived(create_color_scale(normalized_color_scale, auto_color_range))
|
|
232
221
|
|
|
233
222
|
// Legend data
|
|
234
223
|
let legend_data = $derived(
|
|
@@ -244,10 +233,9 @@
|
|
|
244
233
|
display_style: {
|
|
245
234
|
symbol_type: `Circle` as const,
|
|
246
235
|
symbol_color: srs?.point_style
|
|
247
|
-
? (Array.isArray(srs.point_style)
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
series_color
|
|
236
|
+
? ((Array.isArray(srs.point_style)
|
|
237
|
+
? srs.point_style[0]?.fill
|
|
238
|
+
: srs.point_style?.fill) ?? series_color)
|
|
251
239
|
: series_color,
|
|
252
240
|
},
|
|
253
241
|
has_explicit_label: Boolean(srs?.label),
|
|
@@ -306,7 +294,7 @@
|
|
|
306
294
|
bind:clientWidth={width}
|
|
307
295
|
bind:clientHeight={height}
|
|
308
296
|
{...rest}
|
|
309
|
-
class=
|
|
297
|
+
class={[`scatter-3d`, rest.class]}
|
|
310
298
|
class:fullscreen
|
|
311
299
|
>
|
|
312
300
|
{#if width && height}
|
|
@@ -391,9 +379,9 @@
|
|
|
391
379
|
<!-- Color Bar -->
|
|
392
380
|
{#if color_bar && all_color_values.length > 0}
|
|
393
381
|
{@const color_domain = [
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
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}
|
|
397
385
|
<ColorBar
|
|
398
386
|
tick_labels={4}
|
|
399
387
|
tick_side="primary"
|
|
@@ -401,7 +389,8 @@
|
|
|
401
389
|
color_scale_domain={color_domain}
|
|
402
390
|
scale_type={normalized_color_scale.type}
|
|
403
391
|
range={color_domain?.every((val) => val != null) ? color_domain : undefined}
|
|
404
|
-
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
|
+
``}"
|
|
405
394
|
bar_style="width: 200px; height: 16px; {color_bar?.style ?? ``}"
|
|
406
395
|
{...color_bar}
|
|
407
396
|
/>
|
|
@@ -508,7 +497,9 @@
|
|
|
508
497
|
div.scatter-3d :global(.pane-toggle),
|
|
509
498
|
div.scatter-3d .header-controls {
|
|
510
499
|
opacity: 0;
|
|
511
|
-
transition:
|
|
500
|
+
transition:
|
|
501
|
+
opacity 0.2s,
|
|
502
|
+
background-color 0.2s;
|
|
512
503
|
}
|
|
513
504
|
div.scatter-3d:hover :global(.pane-toggle),
|
|
514
505
|
div.scatter-3d:hover .header-controls,
|
|
@@ -64,7 +64,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
64
64
|
controls_extra?: Snippet;
|
|
65
65
|
};
|
|
66
66
|
exports: {};
|
|
67
|
-
bindings: "fullscreen" | "wrapper" | "hovered" | "
|
|
67
|
+
bindings: "fullscreen" | "wrapper" | "hovered" | "camera" | "camera_position" | "orbit_controls" | "scene" | "tooltip_point";
|
|
68
68
|
slots: {};
|
|
69
69
|
events: {};
|
|
70
70
|
};
|
|
@@ -72,7 +72,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
|
|
|
72
72
|
props(): ReturnType<typeof $$render<Metadata>>['props'];
|
|
73
73
|
events(): ReturnType<typeof $$render<Metadata>>['events'];
|
|
74
74
|
slots(): ReturnType<typeof $$render<Metadata>>['slots'];
|
|
75
|
-
bindings(): "fullscreen" | "wrapper" | "hovered" | "
|
|
75
|
+
bindings(): "fullscreen" | "wrapper" | "hovered" | "camera" | "camera_position" | "orbit_controls" | "scene" | "tooltip_point";
|
|
76
76
|
exports(): {};
|
|
77
77
|
}
|
|
78
78
|
interface $$IsomorphicComponent {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
} from '../core/types'
|
|
15
15
|
import { calculate_domain } from '../core/scales'
|
|
16
16
|
import { unique_id } from '../core/utils'
|
|
17
|
+
import { parse_num_token } from '../../utils'
|
|
17
18
|
import type { ComponentProps, Snippet } from 'svelte'
|
|
18
19
|
|
|
19
20
|
// Unique ID prefix to avoid conflicts when multiple instances on same page
|
|
@@ -69,8 +70,8 @@
|
|
|
69
70
|
|
|
70
71
|
// Helpers to update display properties - avoids verbose inline handlers
|
|
71
72
|
const update_display = (key: keyof DisplayConfig3D) => (event: InputControlEvent) => {
|
|
72
|
-
const parsed =
|
|
73
|
-
// Guard against
|
|
73
|
+
const parsed = parse_num_token(get_input_value(event))
|
|
74
|
+
// Guard against cleared/invalid input - preserve existing value
|
|
74
75
|
if (!Number.isNaN(parsed)) display = { ...display, [key]: parsed }
|
|
75
76
|
}
|
|
76
77
|
const toggle_display = (key: keyof DisplayConfig3D) => () => {
|
|
@@ -356,9 +357,11 @@
|
|
|
356
357
|
{#if series.length > 0 || surfaces.length > 0}
|
|
357
358
|
<div class="data-summary">
|
|
358
359
|
{#if series.length > 0}
|
|
359
|
-
<span
|
|
360
|
-
|
|
361
|
-
|
|
360
|
+
<span
|
|
361
|
+
>{series.length} series · {series
|
|
362
|
+
.reduce((sum, srs) => sum + srs.x.length, 0)
|
|
363
|
+
.toLocaleString()} points</span
|
|
364
|
+
>
|
|
362
365
|
{/if}
|
|
363
366
|
{#if surfaces.length > 0}
|
|
364
367
|
<span>{surfaces.length} {surfaces.length === 1 ? `surface` : `surfaces`}</span>
|