matterviz 0.3.7 → 0.4.1
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/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +1 -1
- package/dist/api/optimade.js +32 -26
- package/dist/app.css +0 -3
- package/dist/brillouin/BrillouinZone.svelte +76 -148
- package/dist/brillouin/BrillouinZone.svelte.d.ts +6 -14
- package/dist/brillouin/BrillouinZoneExportPane.svelte +43 -96
- package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +1 -1
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +9 -32
- package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +2 -3
- package/dist/brillouin/BrillouinZoneScene.svelte +97 -205
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +4 -23
- package/dist/brillouin/BrillouinZoneTooltip.svelte +16 -25
- 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 +89 -90
- 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 +14 -13
- package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +109 -203
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +4 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +180 -470
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +7 -1
- package/dist/chempot-diagram/async-compute.svelte.js +3 -1
- package/dist/chempot-diagram/chempot-worker.js +2 -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 +4 -4
- package/dist/chempot-diagram/compute.js +20 -20
- 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.js +8 -7
- package/dist/composition/FormulaFilter.svelte +18 -11
- package/dist/composition/PieChart.svelte +11 -10
- package/dist/composition/chem-sys.d.ts +8 -0
- package/dist/composition/chem-sys.js +86 -0
- package/dist/composition/format.js +7 -4
- package/dist/composition/index.d.ts +1 -0
- package/dist/composition/index.js +1 -0
- package/dist/composition/parse.d.ts +0 -1
- package/dist/composition/parse.js +41 -31
- package/dist/controls.d.ts +1 -0
- package/dist/controls.js +0 -1
- package/dist/convex-hull/ConvexHull.svelte +8 -10
- package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -4
- package/dist/convex-hull/ConvexHull2D.svelte +106 -185
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +179 -683
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +183 -687
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHullChrome.svelte +268 -0
- package/dist/convex-hull/ConvexHullChrome.svelte.d.ts +30 -0
- package/dist/convex-hull/ConvexHullControls.svelte +88 -7
- 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 +36 -175
- package/dist/convex-hull/ConvexHullStats.svelte.d.ts +3 -1
- package/dist/convex-hull/ConvexHullTooltip.svelte +11 -2
- package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +2 -1
- package/dist/convex-hull/GasPressureControls.svelte +4 -4
- package/dist/convex-hull/TemperatureSlider.svelte +2 -2
- 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 +278 -0
- package/dist/convex-hull/demo-temperature.d.ts +1 -1
- package/dist/convex-hull/demo-temperature.js +20 -22
- package/dist/convex-hull/gas-thermodynamics.d.ts +2 -2
- package/dist/convex-hull/gas-thermodynamics.js +22 -30
- package/dist/convex-hull/helpers.d.ts +42 -7
- package/dist/convex-hull/helpers.js +171 -78
- 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 +10 -8
- package/dist/convex-hull/index.js +7 -2
- package/dist/convex-hull/thermodynamics.js +136 -960
- package/dist/convex-hull/types.d.ts +13 -5
- package/dist/convex-hull/types.js +12 -0
- package/dist/coordination/CoordinationBarPlot.svelte +27 -34
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
- package/dist/element/BohrAtom.svelte +2 -1
- package/dist/element/index.d.ts +4 -0
- package/dist/element/index.js +18 -0
- package/dist/feedback/DragOverlay.svelte +3 -1
- package/dist/feedback/DragOverlay.svelte.d.ts +1 -0
- package/dist/feedback/StatusMessage.svelte +13 -3
- package/dist/fermi-surface/FermiSlice.svelte +13 -5
- package/dist/fermi-surface/FermiSurface.svelte +78 -151
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +5 -14
- package/dist/fermi-surface/FermiSurfaceControls.svelte +1 -1
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceScene.svelte +72 -221
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +3 -23
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +8 -34
- package/dist/fermi-surface/compute.js +67 -66
- package/dist/fermi-surface/export.js +6 -16
- 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 +71 -79
- package/dist/fermi-surface/types.d.ts +3 -2
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +69 -52
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +4 -3
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +3 -2
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +5 -5
- package/dist/heatmap-matrix/index.d.ts +3 -2
- package/dist/heatmap-matrix/index.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/io/ExportPane.svelte +166 -0
- package/dist/io/ExportPane.svelte.d.ts +17 -0
- package/dist/io/decompress.js +5 -4
- package/dist/io/export.d.ts +9 -5
- package/dist/io/export.js +77 -51
- package/dist/io/fetch.d.ts +2 -1
- package/dist/io/fetch.js +5 -1
- package/dist/io/file-drop.d.ts +8 -1
- package/dist/io/file-drop.js +48 -36
- package/dist/io/index.d.ts +2 -0
- package/dist/io/index.js +10 -0
- package/dist/io/types.d.ts +13 -0
- package/dist/io/url-drop.js +64 -33
- package/dist/isosurface/parse.js +52 -51
- package/dist/isosurface/slice.js +5 -4
- package/dist/isosurface/types.js +1 -1
- package/dist/keyboard.d.ts +3 -0
- package/dist/keyboard.js +23 -0
- package/dist/labels.d.ts +1 -1
- package/dist/labels.js +9 -8
- package/dist/layout/FullscreenButton.svelte +33 -0
- package/dist/layout/FullscreenButton.svelte.d.ts +10 -0
- package/dist/layout/FullscreenToggle.svelte +8 -14
- package/dist/layout/PropertyFilter.svelte +3 -2
- package/dist/layout/SettingsSection.svelte +1 -1
- package/dist/layout/ViewerChrome.svelte +116 -0
- package/dist/layout/ViewerChrome.svelte.d.ts +17 -0
- package/dist/layout/fullscreen.d.ts +4 -0
- package/dist/layout/fullscreen.svelte.d.ts +8 -0
- package/dist/layout/fullscreen.svelte.js +37 -0
- package/dist/layout/index.d.ts +3 -0
- package/dist/layout/index.js +3 -0
- package/dist/layout/json-tree/JsonNode.svelte +1 -1
- package/dist/layout/json-tree/JsonTree.svelte +2 -2
- package/dist/layout/json-tree/utils.js +5 -4
- package/dist/marching-cubes.js +8 -13
- package/dist/math.d.ts +12 -4
- package/dist/math.js +42 -30
- package/dist/overlays/DraggablePane.svelte +4 -4
- package/dist/overlays/index.d.ts +4 -0
- package/dist/periodic-table/PeriodicTable.svelte +27 -15
- package/dist/periodic-table/PropertySelect.svelte +1 -0
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +9 -3
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +1 -1
- package/dist/phase-diagram/PhaseDiagramControls.svelte +3 -2
- 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 +47 -132
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +3 -4
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +1 -1
- package/dist/phase-diagram/build-diagram.js +2 -2
- package/dist/phase-diagram/colors.js +1 -1
- package/dist/phase-diagram/parse.d.ts +2 -1
- package/dist/phase-diagram/parse.js +6 -5
- package/dist/phase-diagram/types.d.ts +1 -1
- package/dist/phase-diagram/utils.d.ts +3 -3
- package/dist/phase-diagram/utils.js +8 -12
- package/dist/plot/{BarPlot.svelte → bar/BarPlot.svelte} +246 -841
- package/dist/plot/{BarPlot.svelte.d.ts → bar/BarPlot.svelte.d.ts} +8 -16
- package/dist/plot/{BarPlotControls.svelte → bar/BarPlotControls.svelte} +6 -5
- package/dist/plot/{BarPlotControls.svelte.d.ts → bar/BarPlotControls.svelte.d.ts} +3 -3
- package/dist/plot/{SpacegroupBarPlot.svelte → bar/SpacegroupBarPlot.svelte} +8 -7
- package/dist/plot/{SpacegroupBarPlot.svelte.d.ts → bar/SpacegroupBarPlot.svelte.d.ts} +1 -1
- package/dist/plot/bar/data.d.ts +40 -0
- package/dist/plot/bar/data.js +154 -0
- package/dist/plot/bar/geometry.d.ts +39 -0
- package/dist/plot/bar/geometry.js +60 -0
- package/dist/plot/bar/index.d.ts +3 -0
- package/dist/plot/bar/index.js +3 -0
- package/dist/plot/box/BoxPlot.svelte +1292 -0
- package/dist/plot/box/BoxPlot.svelte.d.ts +95 -0
- package/dist/plot/box/BoxPlotControls.svelte +109 -0
- package/dist/plot/box/BoxPlotControls.svelte.d.ts +19 -0
- package/dist/plot/box/Violin.svelte +14 -0
- package/dist/plot/box/Violin.svelte.d.ts +70 -0
- package/dist/plot/box/box-plot.d.ts +56 -0
- package/dist/plot/box/box-plot.js +129 -0
- package/dist/plot/box/index.d.ts +5 -0
- package/dist/plot/box/index.js +5 -0
- package/dist/plot/box/kde.d.ts +17 -0
- package/dist/plot/box/kde.js +160 -0
- package/dist/plot/box/quantile.d.ts +3 -0
- package/dist/plot/box/quantile.js +53 -0
- package/dist/plot/{auto-place.d.ts → core/auto-place.d.ts} +1 -1
- package/dist/plot/{auto-place.js → core/auto-place.js} +6 -3
- package/dist/plot/core/axis-utils.d.ts +46 -0
- package/dist/plot/core/axis-utils.js +110 -0
- package/dist/plot/{AxisLabel.svelte → core/components/AxisLabel.svelte} +2 -2
- package/dist/plot/{AxisLabel.svelte.d.ts → core/components/AxisLabel.svelte.d.ts} +1 -1
- package/dist/plot/{ColorBar.svelte → core/components/ColorBar.svelte} +41 -38
- package/dist/plot/{ColorBar.svelte.d.ts → core/components/ColorBar.svelte.d.ts} +7 -6
- package/dist/plot/{ColorScaleSelect.svelte → core/components/ColorScaleSelect.svelte} +4 -3
- package/dist/plot/{ColorScaleSelect.svelte.d.ts → core/components/ColorScaleSelect.svelte.d.ts} +2 -2
- package/dist/plot/core/components/ControlPane.svelte +46 -0
- package/dist/plot/core/components/ControlPane.svelte.d.ts +13 -0
- package/dist/plot/{FillArea.svelte → core/components/FillArea.svelte} +17 -6
- package/dist/plot/{FillArea.svelte.d.ts → core/components/FillArea.svelte.d.ts} +1 -1
- package/dist/plot/{InteractiveAxisLabel.svelte → core/components/InteractiveAxisLabel.svelte} +3 -3
- package/dist/plot/{InteractiveAxisLabel.svelte.d.ts → core/components/InteractiveAxisLabel.svelte.d.ts} +2 -2
- package/dist/plot/{Line.svelte → core/components/Line.svelte} +33 -15
- package/dist/plot/{Line.svelte.d.ts → core/components/Line.svelte.d.ts} +3 -2
- package/dist/plot/{PlotAxis.svelte → core/components/PlotAxis.svelte} +9 -6
- package/dist/plot/{PlotAxis.svelte.d.ts → core/components/PlotAxis.svelte.d.ts} +5 -3
- package/dist/plot/{PlotControls.svelte → core/components/PlotControls.svelte} +17 -29
- package/dist/plot/core/components/PlotControls.svelte.d.ts +4 -0
- package/dist/plot/{PlotLegend.svelte → core/components/PlotLegend.svelte} +21 -10
- package/dist/plot/{PlotLegend.svelte.d.ts → core/components/PlotLegend.svelte.d.ts} +3 -2
- package/dist/plot/{PlotTooltip.svelte → core/components/PlotTooltip.svelte} +17 -1
- package/dist/plot/{PlotTooltip.svelte.d.ts → core/components/PlotTooltip.svelte.d.ts} +8 -0
- package/dist/plot/{PortalSelect.svelte → core/components/PortalSelect.svelte} +11 -7
- package/dist/plot/{ReferenceLine.svelte → core/components/ReferenceLine.svelte} +3 -3
- package/dist/plot/{ReferenceLine.svelte.d.ts → core/components/ReferenceLine.svelte.d.ts} +1 -1
- package/dist/plot/{ReferenceLine3D.svelte → core/components/ReferenceLine3D.svelte} +5 -5
- package/dist/plot/{ReferenceLine3D.svelte.d.ts → core/components/ReferenceLine3D.svelte.d.ts} +5 -5
- package/dist/plot/{ReferencePlane.svelte → core/components/ReferencePlane.svelte} +8 -8
- package/dist/plot/{ReferencePlane.svelte.d.ts → core/components/ReferencePlane.svelte.d.ts} +5 -5
- package/dist/plot/{ZeroLines.svelte → core/components/ZeroLines.svelte} +3 -3
- package/dist/plot/{ZeroLines.svelte.d.ts → core/components/ZeroLines.svelte.d.ts} +3 -3
- package/dist/plot/{ZoomRect.svelte → core/components/ZoomRect.svelte} +1 -1
- package/dist/plot/{ZoomRect.svelte.d.ts → core/components/ZoomRect.svelte.d.ts} +1 -1
- package/dist/plot/core/components/index.d.ts +17 -0
- package/dist/plot/core/components/index.js +17 -0
- package/dist/plot/{data-cleaning.d.ts → core/data-cleaning.d.ts} +71 -1
- package/dist/plot/{data-cleaning.js → core/data-cleaning.js} +21 -23
- package/dist/plot/{data-transform.d.ts → core/data-transform.d.ts} +2 -2
- package/dist/plot/{data-transform.js → core/data-transform.js} +3 -3
- package/dist/plot/core/fill-utils.d.ts +34 -0
- package/dist/plot/core/fill-utils.js +391 -0
- package/dist/plot/core/index.d.ts +10 -0
- package/dist/plot/core/index.js +11 -0
- package/dist/plot/core/interactions.d.ts +39 -0
- package/dist/plot/core/interactions.js +209 -0
- package/dist/plot/{layout.d.ts → core/layout.d.ts} +1 -0
- package/dist/plot/{layout.js → core/layout.js} +16 -8
- 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/{reference-line.d.ts → core/reference-line.d.ts} +11 -11
- package/dist/plot/{reference-line.js → core/reference-line.js} +29 -42
- package/dist/plot/core/scales.d.ts +40 -0
- package/dist/plot/{scales.js → core/scales.js} +94 -93
- package/dist/plot/core/svg.d.ts +3 -0
- package/dist/plot/core/svg.js +41 -0
- package/dist/plot/{types.d.ts → core/types.d.ts} +36 -85
- package/dist/plot/{types.js → core/types.js} +1 -1
- package/dist/plot/{utils → core/utils}/label-placement.d.ts +3 -3
- package/dist/plot/{utils → core/utils}/label-placement.js +3 -3
- package/dist/plot/core/utils/series-visibility.d.ts +26 -0
- package/dist/plot/{utils → core/utils}/series-visibility.js +29 -2
- package/dist/plot/core/utils.d.ts +12 -0
- package/dist/plot/core/utils.js +27 -0
- package/dist/plot/{Histogram.svelte → histogram/Histogram.svelte} +174 -551
- package/dist/plot/{Histogram.svelte.d.ts → histogram/Histogram.svelte.d.ts} +2 -2
- package/dist/plot/{HistogramControls.svelte → histogram/HistogramControls.svelte} +6 -6
- package/dist/plot/{HistogramControls.svelte.d.ts → histogram/HistogramControls.svelte.d.ts} +4 -4
- package/dist/plot/histogram/index.d.ts +2 -0
- package/dist/plot/histogram/index.js +2 -0
- package/dist/plot/index.d.ts +8 -41
- package/dist/plot/index.js +10 -39
- package/dist/plot/sankey/Sankey.svelte +697 -0
- package/dist/plot/sankey/Sankey.svelte.d.ts +74 -0
- package/dist/plot/sankey/SankeyControls.svelte +98 -0
- package/dist/plot/sankey/SankeyControls.svelte.d.ts +19 -0
- package/dist/plot/sankey/index.d.ts +4 -0
- package/dist/plot/sankey/index.js +3 -0
- package/dist/plot/sankey/sankey-types.d.ts +42 -0
- package/dist/plot/sankey/sankey-types.js +4 -0
- package/dist/plot/sankey/sankey.d.ts +52 -0
- package/dist/plot/sankey/sankey.js +189 -0
- package/dist/plot/{BinnedScatterPlot.svelte → scatter/BinnedScatterPlot.svelte} +64 -64
- package/dist/plot/{BinnedScatterPlot.svelte.d.ts → scatter/BinnedScatterPlot.svelte.d.ts} +6 -6
- package/dist/plot/{ElementScatter.svelte → scatter/ElementScatter.svelte} +6 -6
- package/dist/plot/{ElementScatter.svelte.d.ts → scatter/ElementScatter.svelte.d.ts} +2 -2
- package/dist/plot/{ScatterPlot.svelte → scatter/ScatterPlot.svelte} +297 -1008
- package/dist/plot/{ScatterPlot.svelte.d.ts → scatter/ScatterPlot.svelte.d.ts} +10 -18
- package/dist/plot/{ScatterPlotControls.svelte → scatter/ScatterPlotControls.svelte} +6 -5
- package/dist/plot/{ScatterPlotControls.svelte.d.ts → scatter/ScatterPlotControls.svelte.d.ts} +2 -2
- package/dist/plot/{ScatterPoint.svelte → scatter/ScatterPoint.svelte} +7 -7
- package/dist/plot/{ScatterPoint.svelte.d.ts → scatter/ScatterPoint.svelte.d.ts} +3 -3
- package/dist/plot/{adaptive-density.d.ts → scatter/adaptive-density.d.ts} +14 -4
- package/dist/plot/{adaptive-density.js → scatter/adaptive-density.js} +46 -20
- package/dist/plot/{binned-scatter-types.d.ts → scatter/binned-scatter-types.d.ts} +5 -12
- package/dist/plot/scatter/index.d.ts +7 -0
- package/dist/plot/scatter/index.js +5 -0
- package/dist/plot/scatter/scatter-data.d.ts +19 -0
- package/dist/plot/scatter/scatter-data.js +212 -0
- package/dist/plot/{ScatterPlot3D.svelte → scatter-3d/ScatterPlot3D.svelte} +25 -34
- package/dist/plot/{ScatterPlot3D.svelte.d.ts → scatter-3d/ScatterPlot3D.svelte.d.ts} +9 -17
- package/dist/plot/{ScatterPlot3DControls.svelte → scatter-3d/ScatterPlot3DControls.svelte} +14 -14
- package/dist/plot/{ScatterPlot3DControls.svelte.d.ts → scatter-3d/ScatterPlot3DControls.svelte.d.ts} +6 -6
- package/dist/plot/{ScatterPlot3DScene.svelte → scatter-3d/ScatterPlot3DScene.svelte} +129 -128
- package/dist/plot/{ScatterPlot3DScene.svelte.d.ts → scatter-3d/ScatterPlot3DScene.svelte.d.ts} +6 -15
- package/dist/plot/{Surface3D.svelte → scatter-3d/Surface3D.svelte} +7 -6
- package/dist/plot/{Surface3D.svelte.d.ts → scatter-3d/Surface3D.svelte.d.ts} +5 -4
- package/dist/plot/scatter-3d/index.d.ts +4 -0
- package/dist/plot/scatter-3d/index.js +4 -0
- package/dist/plot/sunburst/Sunburst.svelte +1041 -0
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +97 -0
- package/dist/plot/sunburst/SunburstControls.svelte +200 -0
- package/dist/plot/sunburst/SunburstControls.svelte.d.ts +26 -0
- package/dist/plot/sunburst/index.d.ts +4 -0
- package/dist/plot/sunburst/index.js +4 -0
- package/dist/plot/sunburst/render.d.ts +34 -0
- package/dist/plot/sunburst/render.js +122 -0
- package/dist/plot/sunburst/sunburst.d.ts +62 -0
- package/dist/plot/sunburst/sunburst.js +269 -0
- package/dist/rdf/RdfPlot.svelte +2 -1
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +11 -24
- 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 +14 -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 +79 -3
- package/dist/settings.js +321 -1
- package/dist/spectral/Bands.svelte +47 -36
- package/dist/spectral/Bands.svelte.d.ts +6 -6
- package/dist/spectral/BandsAndDos.svelte +23 -25
- package/dist/spectral/BrillouinBandsDos.svelte +42 -30
- package/dist/spectral/Dos.svelte +15 -23
- package/dist/spectral/Dos.svelte.d.ts +4 -3
- package/dist/spectral/helpers.d.ts +8 -6
- package/dist/spectral/helpers.js +137 -65
- package/dist/state.svelte.d.ts +0 -7
- package/dist/state.svelte.js +0 -6
- package/dist/structure/Arrow.svelte +2 -4
- package/dist/structure/AtomLegend.svelte +8 -9
- package/dist/structure/AtomLegend.svelte.d.ts +1 -1
- package/dist/structure/CanvasTooltip.svelte +1 -0
- package/dist/structure/CellSelect.svelte +12 -5
- package/dist/structure/CellSelect.svelte.d.ts +2 -1
- package/dist/structure/Cylinder.svelte +12 -8
- package/dist/structure/Cylinder.svelte.d.ts +4 -1
- package/dist/structure/Lattice.svelte +2 -2
- package/dist/structure/Structure.svelte +365 -423
- package/dist/structure/Structure.svelte.d.ts +5 -15
- package/dist/structure/StructureControls.svelte +217 -2
- package/dist/structure/StructureControls.svelte.d.ts +5 -3
- package/dist/structure/StructureExportPane.svelte +54 -156
- package/dist/structure/StructureExportPane.svelte.d.ts +4 -5
- package/dist/structure/StructureInfoPane.svelte +10 -9
- package/dist/structure/StructureInfoPane.svelte.d.ts +5 -5
- package/dist/structure/StructureScene.svelte +376 -208
- package/dist/structure/StructureScene.svelte.d.ts +22 -20
- package/dist/structure/{label-placement.d.ts → atom-label-placement.d.ts} +3 -3
- package/dist/structure/{label-placement.js → atom-label-placement.js} +15 -5
- package/dist/structure/atom-properties.d.ts +1 -1
- package/dist/structure/atom-properties.js +17 -22
- package/dist/structure/bond-order-perception.js +3 -5
- package/dist/structure/bonding.d.ts +4 -0
- package/dist/structure/bonding.js +134 -63
- package/dist/structure/export.d.ts +24 -4
- package/dist/structure/export.js +89 -143
- package/dist/structure/index.d.ts +4 -4
- package/dist/structure/index.js +3 -3
- package/dist/structure/measure.d.ts +3 -2
- package/dist/structure/measure.js +6 -5
- package/dist/structure/parse.d.ts +3 -2
- package/dist/structure/parse.js +419 -438
- package/dist/structure/partial-occupancy.d.ts +0 -1
- package/dist/structure/partial-occupancy.js +1 -1
- package/dist/structure/pbc.d.ts +1 -1
- package/dist/structure/pbc.js +190 -13
- package/dist/structure/polyhedra.d.ts +41 -0
- package/dist/structure/polyhedra.js +602 -0
- package/dist/structure/site.d.ts +4 -0
- package/dist/structure/site.js +1 -0
- package/dist/structure/supercell.js +3 -2
- 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 +354 -0
- package/dist/symmetry/SymmetryElements.svelte.d.ts +24 -0
- package/dist/symmetry/SymmetryStats.svelte +113 -8
- package/dist/symmetry/WyckoffTable.svelte +68 -7
- package/dist/symmetry/WyckoffTable.svelte.d.ts +3 -0
- package/dist/symmetry/cell-transform.js +7 -14
- package/dist/symmetry/index.d.ts +14 -4
- package/dist/symmetry/index.js +291 -72
- package/dist/symmetry/spacegroups.d.ts +12 -1
- package/dist/symmetry/spacegroups.js +63 -14
- 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 +66 -25
- package/dist/table/HeatmapTable.svelte.d.ts +1 -1
- package/dist/table/index.d.ts +1 -3
- package/dist/table/index.js +1 -1
- package/dist/theme/index.js +8 -8
- package/dist/tooltip/KCoords.svelte +45 -0
- package/dist/tooltip/KCoords.svelte.d.ts +8 -0
- package/dist/tooltip/index.d.ts +1 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/trajectory/Trajectory.svelte +123 -100
- package/dist/trajectory/Trajectory.svelte.d.ts +11 -22
- package/dist/trajectory/TrajectoryExportPane.svelte +17 -25
- package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +4 -5
- package/dist/trajectory/TrajectoryInfoPane.svelte +5 -3
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +3 -2
- package/dist/trajectory/constants.js +6 -2
- package/dist/trajectory/extract.js +17 -37
- package/dist/trajectory/format-detect.d.ts +1 -1
- package/dist/trajectory/format-detect.js +27 -19
- package/dist/trajectory/frame-reader.d.ts +0 -1
- package/dist/trajectory/frame-reader.js +63 -162
- package/dist/trajectory/helpers.d.ts +10 -2
- package/dist/trajectory/helpers.js +56 -36
- package/dist/trajectory/index.js +1 -1
- 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/hdf5.js +1 -1
- package/dist/trajectory/parse/index.d.ts +1 -1
- package/dist/trajectory/parse/index.js +65 -105
- package/dist/trajectory/parse/lammps.d.ts +0 -2
- package/dist/trajectory/parse/lammps.js +8 -6
- package/dist/trajectory/parse/pymatgen.d.ts +2 -0
- package/dist/trajectory/parse/pymatgen.js +74 -0
- package/dist/trajectory/parse/vasp.js +38 -18
- package/dist/trajectory/parse/xyz.d.ts +13 -1
- package/dist/trajectory/parse/xyz.js +102 -94
- package/dist/trajectory/plotting.d.ts +1 -2
- package/dist/trajectory/plotting.js +16 -113
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +7 -5
- package/dist/xrd/XrdPlot.svelte +16 -30
- package/dist/xrd/broadening.d.ts +2 -1
- package/dist/xrd/calc-xrd.js +18 -20
- package/dist/xrd/index.d.ts +2 -2
- package/dist/xrd/parse.js +2 -2
- package/package.json +43 -26
- 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/PlotControls.svelte.d.ts +0 -4
- package/dist/plot/axis-utils.d.ts +0 -19
- package/dist/plot/axis-utils.js +0 -78
- package/dist/plot/defaults.d.ts +0 -19
- package/dist/plot/defaults.js +0 -9
- package/dist/plot/fill-utils.d.ts +0 -46
- package/dist/plot/fill-utils.js +0 -322
- package/dist/plot/hover-lock.svelte.d.ts +0 -14
- package/dist/plot/hover-lock.svelte.js +0 -46
- package/dist/plot/interactions.d.ts +0 -12
- package/dist/plot/interactions.js +0 -101
- package/dist/plot/scales.d.ts +0 -48
- package/dist/plot/svg.d.ts +0 -1
- package/dist/plot/svg.js +0 -11
- package/dist/plot/utils/series-visibility.d.ts +0 -15
- package/dist/plot/utils.d.ts +0 -1
- package/dist/plot/utils.js +0 -14
- /package/dist/plot/{PortalSelect.svelte.d.ts → core/components/PortalSelect.svelte.d.ts} +0 -0
- /package/dist/plot/{binned-scatter-types.js → scatter/binned-scatter-types.js} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { set_fullscreen_bg } from './fullscreen';
|
|
2
|
+
// Two-way sync between a bindable `fullscreen` flag, the browser fullscreen state of a wrapper, and the fullscreen background CSS var. Creates $effects (call during component init). Shared by BrillouinZone/FermiSurface/Structure viewers.
|
|
3
|
+
// TODO Trajectory.svelte still has its own fullscreen variant — migrate it here.
|
|
4
|
+
export function sync_fullscreen(opts) {
|
|
5
|
+
// Flag -> browser: enter/exit fullscreen when the bound flag changes
|
|
6
|
+
$effect(() => {
|
|
7
|
+
if (typeof window === `undefined`)
|
|
8
|
+
return;
|
|
9
|
+
const wrapper = opts.get_wrapper();
|
|
10
|
+
const fullscreen = opts.get_fullscreen();
|
|
11
|
+
const fs_el = document.fullscreenElement;
|
|
12
|
+
if (fullscreen && fs_el !== wrapper && wrapper) {
|
|
13
|
+
wrapper.requestFullscreen().catch((err) => {
|
|
14
|
+
console.error(err);
|
|
15
|
+
opts.on_request_error?.(err);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
else if (!fullscreen && fs_el === wrapper) {
|
|
19
|
+
document.exitFullscreen().catch(console.error);
|
|
20
|
+
}
|
|
21
|
+
set_fullscreen_bg(wrapper, fullscreen, opts.bg_css_var);
|
|
22
|
+
});
|
|
23
|
+
// Browser -> flag: track fullscreenchange events (covers Esc key, programmatic exit, ...)
|
|
24
|
+
$effect(() => {
|
|
25
|
+
if (typeof document === `undefined`)
|
|
26
|
+
return () => { };
|
|
27
|
+
const handler = () => {
|
|
28
|
+
// tie state to this component's own wrapper so another element entering fullscreen
|
|
29
|
+
// doesn't flip every viewer's flag (would also trigger a requestFullscreen cascade)
|
|
30
|
+
const is_fullscreen = document.fullscreenElement === opts.get_wrapper();
|
|
31
|
+
opts.set_fullscreen(is_fullscreen);
|
|
32
|
+
opts.on_change?.(is_fullscreen);
|
|
33
|
+
};
|
|
34
|
+
document.addEventListener(`fullscreenchange`, handler);
|
|
35
|
+
return () => document.removeEventListener(`fullscreenchange`, handler);
|
|
36
|
+
});
|
|
37
|
+
}
|
package/dist/layout/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './fullscreen';
|
|
2
|
+
export * from './fullscreen.svelte';
|
|
3
|
+
export { default as FullscreenButton } from './FullscreenButton.svelte';
|
|
2
4
|
export { default as FullscreenToggle } from './FullscreenToggle.svelte';
|
|
3
5
|
export { default as InfoCard } from './InfoCard.svelte';
|
|
4
6
|
export { default as InfoTag } from './InfoTag.svelte';
|
|
@@ -6,5 +8,6 @@ export * from './json-tree';
|
|
|
6
8
|
export { default as PropertyFilter } from './PropertyFilter.svelte';
|
|
7
9
|
export { default as SettingsSection } from './SettingsSection.svelte';
|
|
8
10
|
export { default as SubpageGrid } from './SubpageGrid.svelte';
|
|
11
|
+
export { default as ViewerChrome } from './ViewerChrome.svelte';
|
|
9
12
|
export type InfoTagVariant = `default` | `success` | `warning` | `error` | `info`;
|
|
10
13
|
export type InfoTagSize = `sm` | `md` | `lg`;
|
package/dist/layout/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from './fullscreen';
|
|
2
|
+
export * from './fullscreen.svelte';
|
|
3
|
+
export { default as FullscreenButton } from './FullscreenButton.svelte';
|
|
2
4
|
export { default as FullscreenToggle } from './FullscreenToggle.svelte';
|
|
3
5
|
export { default as InfoCard } from './InfoCard.svelte';
|
|
4
6
|
export { default as InfoTag } from './InfoTag.svelte';
|
|
@@ -6,3 +8,4 @@ export * from './json-tree';
|
|
|
6
8
|
export { default as PropertyFilter } from './PropertyFilter.svelte';
|
|
7
9
|
export { default as SettingsSection } from './SettingsSection.svelte';
|
|
8
10
|
export { default as SubpageGrid } from './SubpageGrid.svelte';
|
|
11
|
+
export { default as ViewerChrome } from './ViewerChrome.svelte';
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
// Get children based on value type
|
|
121
|
-
function get_children():
|
|
121
|
+
function get_children(): { key: string | number; value: unknown }[] {
|
|
122
122
|
if (!expandable) return []
|
|
123
123
|
|
|
124
124
|
if (value_type === `array`) {
|
|
@@ -252,8 +252,8 @@
|
|
|
252
252
|
const all_paths = collect_all_paths(value, root_path)
|
|
253
253
|
const descendants = target_path === `` ? all_paths : all_paths.filter(
|
|
254
254
|
(entry) =>
|
|
255
|
-
entry === target_path || entry.startsWith(target_path
|
|
256
|
-
entry.startsWith(target_path
|
|
255
|
+
entry === target_path || entry.startsWith(`${target_path}.`) ||
|
|
256
|
+
entry.startsWith(`${target_path}[`),
|
|
257
257
|
)
|
|
258
258
|
return descendants.includes(target_path)
|
|
259
259
|
? descendants
|
|
@@ -13,6 +13,7 @@ function safe_stringify(val) {
|
|
|
13
13
|
return `${inner}n`;
|
|
14
14
|
if (typeof inner === `symbol`)
|
|
15
15
|
return inner.toString();
|
|
16
|
+
// oxlint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- anonymous fns have name ``
|
|
16
17
|
if (typeof inner === `function`)
|
|
17
18
|
return `[Function: ${inner.name || `anonymous`}]`;
|
|
18
19
|
return inner;
|
|
@@ -93,7 +94,7 @@ function format_path_segment(segment, is_first = false) {
|
|
|
93
94
|
return is_first ? segment : `.${segment}`;
|
|
94
95
|
}
|
|
95
96
|
// Use bracket notation for keys with special characters
|
|
96
|
-
return `["${segment.
|
|
97
|
+
return `["${segment.replaceAll('"', `\\"`)}"]`;
|
|
97
98
|
}
|
|
98
99
|
// Format a full path from segments
|
|
99
100
|
// e.g., ["users", 0, "name"] -> "users[0].name"
|
|
@@ -317,7 +318,7 @@ export function parse_path(path) {
|
|
|
317
318
|
const num = Number(current);
|
|
318
319
|
if (Number.isNaN(num)) {
|
|
319
320
|
// Remove surrounding quotes and unescape internal quotes
|
|
320
|
-
const unquoted = current.
|
|
321
|
+
const unquoted = current.replaceAll(/^"|"$/g, ``).replaceAll('\\"', `"`);
|
|
321
322
|
segments.push(unquoted);
|
|
322
323
|
}
|
|
323
324
|
else
|
|
@@ -335,7 +336,7 @@ export function parse_path(path) {
|
|
|
335
336
|
// Apply same numeric/quoted-string logic as inside brackets
|
|
336
337
|
const num = Number(current);
|
|
337
338
|
if (Number.isNaN(num)) {
|
|
338
|
-
const unquoted = current.
|
|
339
|
+
const unquoted = current.replaceAll(/^"|"$/g, ``).replaceAll('\\"', `"`);
|
|
339
340
|
segments.push(unquoted);
|
|
340
341
|
}
|
|
341
342
|
else
|
|
@@ -407,7 +408,7 @@ export function set_at_path(root, path_str, new_value, root_label) {
|
|
|
407
408
|
const start = root_label && segments[0] === root_label ? 1 : 0;
|
|
408
409
|
if (start >= segments.length)
|
|
409
410
|
return new_value;
|
|
410
|
-
const cloned =
|
|
411
|
+
const cloned = structuredClone(root);
|
|
411
412
|
let current = cloned;
|
|
412
413
|
for (let idx = start; idx < segments.length - 1; idx++) {
|
|
413
414
|
const next = current[segments[idx]];
|
package/dist/marching-cubes.js
CHANGED
|
@@ -335,9 +335,11 @@ export function marching_cubes(grid, iso_value, k_lattice, options = {}) {
|
|
|
335
335
|
const vertices = [];
|
|
336
336
|
const faces = [];
|
|
337
337
|
const normals = [];
|
|
338
|
-
//
|
|
339
|
-
|
|
340
|
-
const
|
|
338
|
+
// Cache keys use UNWRAPPED grid coords (reach n in periodic mode, hence radix n+1):
|
|
339
|
+
// wrapping would merge vertices on opposite cell faces into cell-spanning triangles.
|
|
340
|
+
const key_nz = nz + 1;
|
|
341
|
+
const key_ny_nz = (ny + 1) * key_nz;
|
|
342
|
+
const max_flat = (nx + 1) * key_ny_nz; // for computing cache keys
|
|
341
343
|
// Use numeric cache key - safe for grids up to ~300³ (2^53 / 2 / max_flat)
|
|
342
344
|
// For much larger grids (>30M cells), consider switching to Map<string, number>
|
|
343
345
|
// with keys like `${flat1},${flat2}` or Map<bigint, number> to avoid
|
|
@@ -367,17 +369,10 @@ export function marching_cubes(grid, iso_value, k_lattice, options = {}) {
|
|
|
367
369
|
const ox2 = CUBE_VERTS_X[v2_idx];
|
|
368
370
|
const oy2 = CUBE_VERTS_Y[v2_idx];
|
|
369
371
|
const oz2 = CUBE_VERTS_Z[v2_idx];
|
|
370
|
-
//
|
|
371
|
-
const g1x = periodic ? wrap_grid_idx(ix + ox1, nx) : ix + ox1;
|
|
372
|
-
const g1y = periodic ? wrap_grid_idx(iy + oy1, ny) : iy + oy1;
|
|
373
|
-
const g1z = periodic ? wrap_grid_idx(iz + oz1, nz) : iz + oz1;
|
|
374
|
-
const g2x = periodic ? wrap_grid_idx(ix + ox2, nx) : ix + ox2;
|
|
375
|
-
const g2y = periodic ? wrap_grid_idx(iy + oy2, ny) : iy + oy2;
|
|
376
|
-
const g2z = periodic ? wrap_grid_idx(iz + oz2, nz) : iz + oz2;
|
|
377
|
-
// Create numeric cache key (sorted for consistency)
|
|
372
|
+
// Sorted numeric key from UNWRAPPED coords (value/gradient lookups wrap internally).
|
|
378
373
|
// Safe for grids up to ~300³ before exceeding Number.MAX_SAFE_INTEGER
|
|
379
|
-
const flat1 =
|
|
380
|
-
const flat2 =
|
|
374
|
+
const flat1 = (ix + ox1) * key_ny_nz + (iy + oy1) * key_nz + (iz + oz1);
|
|
375
|
+
const flat2 = (ix + ox2) * key_ny_nz + (iy + oy2) * key_nz + (iz + oz2);
|
|
381
376
|
const cache_key = flat1 < flat2 ? flat1 * max_flat + flat2 : flat2 * max_flat + flat1;
|
|
382
377
|
const cached = vertex_cache.get(cache_key);
|
|
383
378
|
if (cached !== undefined)
|
package/dist/math.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { LatticeParams, Pbc } from './structure/index';
|
|
|
2
2
|
export type Vec2 = [number, number];
|
|
3
3
|
export type Vec3 = [number, number, number];
|
|
4
4
|
export type Vec4 = [number, number, number, number];
|
|
5
|
+
export type Vec5 = [number, number, number, number, number];
|
|
5
6
|
export type Vec9 = [number, number, number, number, number, number, number, number, number];
|
|
6
7
|
export type Point2D = {
|
|
7
8
|
x: number;
|
|
@@ -51,12 +52,14 @@ export declare function matrix_inverse_3x3(matrix: Matrix3x3): Matrix3x3;
|
|
|
51
52
|
export declare function mat3x3_vec3_multiply(matrix: Matrix3x3, vector: Vec3): Vec3;
|
|
52
53
|
export declare function add<T extends NdVector>(...vecs: T[]): T;
|
|
53
54
|
export declare function subtract<T extends NdVector>(vec1: T, vec2: T): T;
|
|
55
|
+
export declare function dot(vec1: Matrix3x3, vec2: Matrix3x3): Matrix3x3;
|
|
56
|
+
export declare function dot(vec1: Matrix3x3, vec2: Vec3): Vec3;
|
|
54
57
|
export declare function dot(vec1: NdVector, vec2: NdVector): number;
|
|
55
58
|
export declare function dot(vec1: NdVector[], vec2: NdVector): number[];
|
|
56
59
|
export declare function dot(vec1: NdVector[], vec2: NdVector[]): number[][];
|
|
57
60
|
export declare function to_voigt(tensor: number[][]): number[];
|
|
58
|
-
export declare function from_voigt(voigt: number[]):
|
|
59
|
-
export declare function vec9_to_mat3x3(flat_array: number[]):
|
|
61
|
+
export declare function from_voigt(voigt: number[]): Matrix3x3;
|
|
62
|
+
export declare function vec9_to_mat3x3(flat_array: number[]): Matrix3x3;
|
|
60
63
|
export declare function tensor_to_flat_array(tensor: number[][]): number[];
|
|
61
64
|
export declare const transpose_3x3_matrix: (matrix: Matrix3x3) => Matrix3x3;
|
|
62
65
|
export declare function scale_lattice_matrix(orig_matrix: Matrix3x3, scaling_factors: Vec3): Matrix3x3;
|
|
@@ -78,7 +81,10 @@ export declare const lerp: (start: number, end: number, t: number) => number;
|
|
|
78
81
|
export declare const lerp_vec3: (start: Vec3, end: Vec3, t: number) => Vec3;
|
|
79
82
|
export declare const centered_frac: (val: number) => number;
|
|
80
83
|
export declare const vecs_equal: (vec_a?: Vec3, vec_b?: Vec3) => boolean;
|
|
81
|
-
|
|
84
|
+
type Normalized<T extends readonly number[]> = {
|
|
85
|
+
-readonly [K in keyof T]: number;
|
|
86
|
+
};
|
|
87
|
+
export declare function normalize_vec<T extends readonly number[]>(vec: T, fallback?: NoInfer<T>): Normalized<T>;
|
|
82
88
|
export declare function compute_in_plane_basis(normal: Vec3): [Vec3, Vec3];
|
|
83
89
|
export declare function are_coplanar(points: number[][], tolerance?: number): boolean;
|
|
84
90
|
export declare function merge_coplanar_triangles(positions: Float32Array, tolerance?: number): Float32Array;
|
|
@@ -86,7 +92,7 @@ export declare function compute_bounding_box(vertices: Vec3[]): {
|
|
|
86
92
|
min: Vec3;
|
|
87
93
|
max: Vec3;
|
|
88
94
|
};
|
|
89
|
-
export declare function is_square_matrix(matrix: unknown, dim: number):
|
|
95
|
+
export declare function is_square_matrix(matrix: unknown, dim: number): matrix is number[][];
|
|
90
96
|
export declare function point_in_polygon(point_x: number, point_y: number, vertices: Vec2[]): boolean;
|
|
91
97
|
export declare function compute_bounding_box_2d(vertices: Vec2[]): {
|
|
92
98
|
min: Vec2;
|
|
@@ -98,4 +104,6 @@ export declare function polygon_centroid(vertices: Vec2[]): Vec2;
|
|
|
98
104
|
export declare function solve_linear_system(A: number[][], // NxN coefficient matrix
|
|
99
105
|
b: number[]): number[] | null;
|
|
100
106
|
export declare const cross_2d: (origin: Vec2, point_a: Vec2, point_b: Vec2) => number;
|
|
107
|
+
export declare const monotone_chain: (sorted: Vec2[]) => Vec2[];
|
|
101
108
|
export declare function convex_hull_2d(points: Vec2[]): Vec2[];
|
|
109
|
+
export {};
|
package/dist/math.js
CHANGED
|
@@ -448,17 +448,19 @@ export const centered_frac = (val) => {
|
|
|
448
448
|
// Element-wise equality check for two optional Vec3s.
|
|
449
449
|
// Returns true if both are the same reference, or both are defined with equal components.
|
|
450
450
|
export const vecs_equal = (vec_a, vec_b) => vec_a === vec_b ||
|
|
451
|
-
(
|
|
452
|
-
|
|
451
|
+
(vec_a != null &&
|
|
452
|
+
vec_b != null &&
|
|
453
453
|
vec_a[0] === vec_b[0] &&
|
|
454
454
|
vec_a[1] === vec_b[1] &&
|
|
455
455
|
vec_a[2] === vec_b[2]);
|
|
456
|
-
// Normalize a
|
|
457
|
-
export function
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
456
|
+
// Normalize a vector of any length to unit length; returns `fallback` (or zeros) when ~zero.
|
|
457
|
+
export function normalize_vec(vec, fallback) {
|
|
458
|
+
let sum_sq = 0;
|
|
459
|
+
for (const coord of vec)
|
|
460
|
+
sum_sq += coord * coord;
|
|
461
|
+
const len = Math.sqrt(sum_sq);
|
|
462
|
+
const unit = len < EPS ? (fallback ?? vec.map(() => 0)) : vec.map((coord) => coord / len);
|
|
463
|
+
return unit;
|
|
462
464
|
}
|
|
463
465
|
// Compute orthonormal basis vectors in a plane perpendicular to `normal`.
|
|
464
466
|
// Uses Gram-Schmidt orthogonalization + cross product.
|
|
@@ -472,7 +474,7 @@ export function compute_in_plane_basis(normal) {
|
|
|
472
474
|
ref_vec[1] - dot_nr * normal[1],
|
|
473
475
|
ref_vec[2] - dot_nr * normal[2],
|
|
474
476
|
];
|
|
475
|
-
const u_vec =
|
|
477
|
+
const u_vec = normalize_vec(u_raw, [0, 1, 0]);
|
|
476
478
|
const v_vec = cross_3d(normal, u_vec);
|
|
477
479
|
return [u_vec, v_vec]; // u, v basis vectors
|
|
478
480
|
}
|
|
@@ -649,6 +651,7 @@ export function merge_coplanar_triangles(positions, tolerance = 1e-4) {
|
|
|
649
651
|
emit_tri(verts[0], verts[1], verts[2]);
|
|
650
652
|
}
|
|
651
653
|
};
|
|
654
|
+
const tri_area = (va, vb, vc) => 0.5 * Math.hypot(...cross_3d(subtract(vb, va), subtract(vc, va)));
|
|
652
655
|
for (const members of groups.values()) {
|
|
653
656
|
if (members.length === 1) {
|
|
654
657
|
emit_original(members);
|
|
@@ -692,6 +695,18 @@ export function merge_coplanar_triangles(positions, tolerance = 1e-4) {
|
|
|
692
695
|
}
|
|
693
696
|
return unique_verts[best_idx];
|
|
694
697
|
});
|
|
698
|
+
// Convex hull fills notches of concave patches, inventing area — keep originals then
|
|
699
|
+
let group_area = 0;
|
|
700
|
+
let fan_area = 0;
|
|
701
|
+
for (const tri_idx of members)
|
|
702
|
+
group_area += tri_area(...tri_planes[tri_idx].verts);
|
|
703
|
+
for (let idx = 1; idx < hull_3d.length - 1; idx++) {
|
|
704
|
+
fan_area += tri_area(hull_3d[0], hull_3d[idx], hull_3d[idx + 1]);
|
|
705
|
+
}
|
|
706
|
+
if (Math.abs(fan_area - group_area) > Math.max(group_area, 1e-12) * 1e-6) {
|
|
707
|
+
emit_original(members);
|
|
708
|
+
continue;
|
|
709
|
+
}
|
|
695
710
|
// Fan-triangulate from hull vertex 0
|
|
696
711
|
for (let idx = 1; idx < hull_3d.length - 1; idx++) {
|
|
697
712
|
emit_tri(hull_3d[0], hull_3d[idx], hull_3d[idx + 1]);
|
|
@@ -722,13 +737,14 @@ export function compute_bounding_box(vertices) {
|
|
|
722
737
|
}
|
|
723
738
|
return { min, max };
|
|
724
739
|
}
|
|
725
|
-
// Check if a matrix is square
|
|
740
|
+
// Check if a matrix is a finite-numeric square matrix of dimension NxN (type predicate
|
|
741
|
+
// so callers get number[][] narrowing without assertions). Rejects NaN/Infinity entries.
|
|
726
742
|
export function is_square_matrix(matrix, dim) {
|
|
727
743
|
if (!Array.isArray(matrix))
|
|
728
744
|
return false;
|
|
729
745
|
if (matrix.length !== dim)
|
|
730
746
|
return false;
|
|
731
|
-
return matrix.every((row) => Array.isArray(row) && row.length === dim);
|
|
747
|
+
return matrix.every((row) => Array.isArray(row) && row.length === dim && row.every((val) => Number.isFinite(val)));
|
|
732
748
|
}
|
|
733
749
|
// --- 2D Geometry Utilities ---
|
|
734
750
|
// Point-in-polygon test using ray casting algorithm
|
|
@@ -873,31 +889,27 @@ b) {
|
|
|
873
889
|
}
|
|
874
890
|
export const cross_2d = (origin, point_a, point_b) => (point_a[0] - origin[0]) * (point_b[1] - origin[1]) -
|
|
875
891
|
(point_a[1] - origin[1]) * (point_b[0] - origin[0]);
|
|
892
|
+
// One half of Andrew's monotone chain built from x-then-y *pre-sorted* points
|
|
893
|
+
// (lower chain; pass reversed input for the upper chain).
|
|
894
|
+
export const monotone_chain = (sorted) => {
|
|
895
|
+
const chain = [];
|
|
896
|
+
for (const pt of sorted) {
|
|
897
|
+
while (chain.length >= 2 &&
|
|
898
|
+
cross_2d(chain[chain.length - 2], chain[chain.length - 1], pt) <= 0) {
|
|
899
|
+
chain.pop();
|
|
900
|
+
}
|
|
901
|
+
chain.push(pt);
|
|
902
|
+
}
|
|
903
|
+
return chain;
|
|
904
|
+
};
|
|
876
905
|
// Full 2D convex hull via Andrew's monotone chain algorithm.
|
|
877
906
|
// Returns vertices in counter-clockwise order.
|
|
878
907
|
export function convex_hull_2d(points) {
|
|
879
908
|
if (points.length < 3)
|
|
880
909
|
return [...points];
|
|
881
910
|
const sorted = points.toSorted((a, b) => a[0] - b[0] || a[1] - b[1]);
|
|
882
|
-
|
|
883
|
-
const
|
|
884
|
-
for (const pt of sorted) {
|
|
885
|
-
while (lower.length >= 2 &&
|
|
886
|
-
cross_2d(lower[lower.length - 2], lower[lower.length - 1], pt) <= 0) {
|
|
887
|
-
lower.pop();
|
|
888
|
-
}
|
|
889
|
-
lower.push(pt);
|
|
890
|
-
}
|
|
891
|
-
// Upper hull
|
|
892
|
-
const upper = [];
|
|
893
|
-
for (let idx = sorted.length - 1; idx >= 0; idx--) {
|
|
894
|
-
const pt = sorted[idx];
|
|
895
|
-
while (upper.length >= 2 &&
|
|
896
|
-
cross_2d(upper[upper.length - 2], upper[upper.length - 1], pt) <= 0) {
|
|
897
|
-
upper.pop();
|
|
898
|
-
}
|
|
899
|
-
upper.push(pt);
|
|
900
|
-
}
|
|
911
|
+
const lower = monotone_chain(sorted);
|
|
912
|
+
const upper = monotone_chain(sorted.toReversed());
|
|
901
913
|
// Remove last point of each half (it's the first point of the other)
|
|
902
914
|
lower.pop();
|
|
903
915
|
upper.pop();
|
|
@@ -173,10 +173,10 @@
|
|
|
173
173
|
if (Date.now() - resize_end_time < 200) return
|
|
174
174
|
|
|
175
175
|
const target = event.target
|
|
176
|
-
const is_toggle_button = target instanceof Node &&
|
|
177
|
-
(target === toggle_pane_btn || toggle_pane_btn
|
|
178
|
-
const is_inside_pane = target instanceof Node &&
|
|
179
|
-
(target === pane_div || pane_div
|
|
176
|
+
const is_toggle_button = target instanceof Node &&
|
|
177
|
+
(target === toggle_pane_btn || (toggle_pane_btn?.contains(target) ?? false))
|
|
178
|
+
const is_inside_pane = target instanceof Node &&
|
|
179
|
+
(target === pane_div || (pane_div?.contains(target) ?? false))
|
|
180
180
|
|
|
181
181
|
if (!is_toggle_button && !is_inside_pane && !currently_dragging && !resizing) {
|
|
182
182
|
close_pane()
|
package/dist/overlays/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { ComponentProps } from 'svelte';
|
|
2
|
+
import type DraggablePane from './DraggablePane.svelte';
|
|
1
3
|
export { default as ContextMenu } from './ContextMenu.svelte';
|
|
2
4
|
export { default as DraggablePane } from './DraggablePane.svelte';
|
|
3
5
|
export { default as DragControlTab } from './DragControlTab.svelte';
|
|
6
|
+
export type PaneToggleProps = ComponentProps<typeof DraggablePane>[`toggle_props`];
|
|
7
|
+
export type PaneProps = ComponentProps<typeof DraggablePane>[`pane_props`];
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { is_color } from '../colors'
|
|
2
|
+
import { get_d3_interpolator, is_color } from '../colors'
|
|
3
3
|
import type { ChemicalElement, ElementCategory, ElementSymbol } from '../element'
|
|
4
4
|
import { element_data, ElementPhoto, ElementTile } from '../element'
|
|
5
5
|
import { ELEM_SYMBOLS } from '../labels'
|
|
6
6
|
import type { Point2D, Vec2 } from '../math'
|
|
7
7
|
import { ColorBar } from '../plot'
|
|
8
8
|
import { colors } from '../state.svelte'
|
|
9
|
-
import * as d3_sc from 'd3-scale-chromatic'
|
|
10
9
|
import type { ComponentProps, Snippet } from 'svelte'
|
|
11
10
|
import type { HTMLAttributes } from 'svelte/elements'
|
|
12
11
|
import type { D3InterpolateName } from '../colors'
|
|
@@ -30,7 +29,7 @@
|
|
|
30
29
|
active_elements = $bindable([]),
|
|
31
30
|
gap = `0.3cqw`,
|
|
32
31
|
inner_transition_metal_offset = 0.5,
|
|
33
|
-
lanth_act_tiles = tile_props?.show_symbol
|
|
32
|
+
lanth_act_tiles = tile_props?.show_symbol === false
|
|
34
33
|
? []
|
|
35
34
|
: [...default_f_block_inset_tiles],
|
|
36
35
|
lanth_act_style = ``,
|
|
@@ -115,8 +114,8 @@
|
|
|
115
114
|
`each element possibly omitting elements at the end, got ${heatmap_values.length}`,
|
|
116
115
|
)
|
|
117
116
|
return []
|
|
118
|
-
}
|
|
119
|
-
} else if (typeof heatmap_values
|
|
117
|
+
}return heatmap_values
|
|
118
|
+
} else if (typeof heatmap_values === `object`) {
|
|
120
119
|
const bad_keys = Object.keys(heatmap_values).filter(
|
|
121
120
|
(key) => !ELEM_SYMBOLS.includes(key as ElementSymbol),
|
|
122
121
|
)
|
|
@@ -143,7 +142,7 @@
|
|
|
143
142
|
|
|
144
143
|
function handle_key(event: KeyboardEvent) {
|
|
145
144
|
if (disabled || !active_element) return
|
|
146
|
-
if (event.key
|
|
145
|
+
if (event.key === `Enter`) onenter?.(active_element)
|
|
147
146
|
|
|
148
147
|
const arrow_keys = [`ArrowUp`, `ArrowDown`, `ArrowLeft`, `ArrowRight`]
|
|
149
148
|
if (!arrow_keys.includes(event.key)) return
|
|
@@ -186,26 +185,35 @@
|
|
|
186
185
|
}
|
|
187
186
|
|
|
188
187
|
let color_scale_fn = $derived(
|
|
189
|
-
typeof color_scale
|
|
188
|
+
typeof color_scale === `string` ? get_d3_interpolator(color_scale) : color_scale,
|
|
190
189
|
)
|
|
191
190
|
|
|
192
191
|
let cs_min = $derived(
|
|
193
192
|
color_scale_range[0] ??
|
|
194
|
-
(heat_values.length
|
|
193
|
+
(heat_values.length > 0
|
|
195
194
|
? Math.min(
|
|
196
|
-
...heat_values.flat().filter((
|
|
195
|
+
...heat_values.flat().filter((val): val is number => typeof val === `number`),
|
|
197
196
|
)
|
|
198
197
|
: 0),
|
|
199
198
|
)
|
|
200
199
|
let cs_max = $derived(
|
|
201
200
|
color_scale_range[1] ??
|
|
202
|
-
(heat_values.length
|
|
201
|
+
(heat_values.length > 0
|
|
203
202
|
? Math.max(
|
|
204
|
-
...heat_values.flat().filter((
|
|
203
|
+
...heat_values.flat().filter((val): val is number => typeof val === `number`),
|
|
205
204
|
)
|
|
206
205
|
: 1),
|
|
207
206
|
)
|
|
208
207
|
|
|
208
|
+
// smallest positive bound for log color mapping (matches the auto ColorBar's log scale)
|
|
209
|
+
let cs_min_pos = $derived.by(() => {
|
|
210
|
+
if (cs_min > 0) return cs_min
|
|
211
|
+
const pos = heat_values.flat().filter((val): val is number =>
|
|
212
|
+
typeof val === `number` && val > 0
|
|
213
|
+
)
|
|
214
|
+
return pos.length > 0 ? Math.min(...pos) : cs_max
|
|
215
|
+
})
|
|
216
|
+
|
|
209
217
|
let bg_color = $derived(
|
|
210
218
|
(
|
|
211
219
|
value: number | number[] | string | string[] | false,
|
|
@@ -217,7 +225,7 @@
|
|
|
217
225
|
}
|
|
218
226
|
|
|
219
227
|
// If it's already a color string, return it directly
|
|
220
|
-
if (is_color(value)) return value
|
|
228
|
+
if (is_color(value)) return value
|
|
221
229
|
|
|
222
230
|
// Return missing color for zero/invalid values or when no heatmap data
|
|
223
231
|
if (
|
|
@@ -238,8 +246,12 @@
|
|
|
238
246
|
const span = cs_max - cs_min
|
|
239
247
|
if (span === 0) return color_scale_fn?.(0.5) // midpoint when all values equal
|
|
240
248
|
|
|
241
|
-
if (log)
|
|
242
|
-
|
|
249
|
+
if (log) {
|
|
250
|
+
// log mapping matching the log ColorBar (value <= 0 returned missing_color above)
|
|
251
|
+
const log_span = Math.log(cs_max) - Math.log(cs_min_pos)
|
|
252
|
+
if (log_span === 0) return color_scale_fn?.(0.5)
|
|
253
|
+
value = (Math.log(value as number) - Math.log(cs_min_pos)) / log_span
|
|
254
|
+
} else value = ((value as number) - cs_min) / span
|
|
243
255
|
return color_scale_fn?.(value as number)
|
|
244
256
|
},
|
|
245
257
|
)
|
|
@@ -253,7 +265,7 @@
|
|
|
253
265
|
|
|
254
266
|
return value.map((val) => {
|
|
255
267
|
// If it's already a color string, return it directly
|
|
256
|
-
if (is_color(val)) return val
|
|
268
|
+
if (is_color(val)) return val
|
|
257
269
|
// Otherwise, map it through the color scale
|
|
258
270
|
return bg_color(val as number, element)
|
|
259
271
|
})
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
import { sanitize_svg } from '../sanitize'
|
|
9
9
|
import { compute_bounding_box_2d, polygon_centroid, type Vec2 } from '../math'
|
|
10
10
|
import type { AxisConfig } from '../plot'
|
|
11
|
-
import { constrain_tooltip_position } from '../plot/layout'
|
|
11
|
+
import { constrain_tooltip_position } from '../plot/core/layout'
|
|
12
|
+
import { unique_id } from '../plot/core/utils'
|
|
12
13
|
import { scaleLinear } from 'd3-scale'
|
|
13
14
|
import type { ComponentProps, Snippet } from 'svelte'
|
|
14
15
|
import type { HTMLAttributes } from 'svelte/elements'
|
|
@@ -124,6 +125,11 @@
|
|
|
124
125
|
const pane_icon_style = `width: 14px; height: 14px`
|
|
125
126
|
const pane_toggle_props = { style: `padding: 0` }
|
|
126
127
|
|
|
128
|
+
// Instance-unique prefix for gradient ids: region ids come from user data (e.g.
|
|
129
|
+
// 'liquid'), so two diagrams on one page would otherwise cross-reference each
|
|
130
|
+
// other's gradients (first-in-document wins, with that instance's pixel coords)
|
|
131
|
+
const gradient_uid = unique_id(`pd-gradient`)
|
|
132
|
+
|
|
127
133
|
// Rebuild diagram data when diagram_input changes ($derived auto-recomputes)
|
|
128
134
|
const rebuilt_data = $derived.by(() => {
|
|
129
135
|
if (!diagram_input) return null
|
|
@@ -619,7 +625,7 @@
|
|
|
619
625
|
{#each transformed_regions as region (region.id)}
|
|
620
626
|
{#if region.gradient}
|
|
621
627
|
<linearGradient
|
|
622
|
-
id="
|
|
628
|
+
id="{gradient_uid}-{region.id}"
|
|
623
629
|
x1={region.x_min}
|
|
624
630
|
x2={region.x_max}
|
|
625
631
|
y1="0"
|
|
@@ -661,7 +667,7 @@
|
|
|
661
667
|
<path
|
|
662
668
|
d={region.svg_path}
|
|
663
669
|
fill={region.gradient
|
|
664
|
-
? `url(
|
|
670
|
+
? `url(#${gradient_uid}-${region.id})`
|
|
665
671
|
: (region.color || get_phase_color(region.name))}
|
|
666
672
|
stroke="none"
|
|
667
673
|
class:hovered={hovered_region?.id === region.id}
|
|
@@ -39,6 +39,6 @@ type $$ComponentProps = HTMLAttributes<HTMLDivElement> & {
|
|
|
39
39
|
}
|
|
40
40
|
]>;
|
|
41
41
|
};
|
|
42
|
-
declare const IsobaricBinaryPhaseDiagram: import("svelte").Component<$$ComponentProps, {}, "
|
|
42
|
+
declare const IsobaricBinaryPhaseDiagram: import("svelte").Component<$$ComponentProps, {}, "show_labels" | "y_axis" | "fullscreen" | "wrapper" | "controls_open" | "x_axis" | "export_pane_open" | "png_dpi" | "config" | "show_grid" | "show_boundaries" | "show_special_points" | "show_component_labels" | "lever_rule_mode" | "editor_open" | "diagram_input" | "hovered_region" | "display_temp_unit">;
|
|
43
43
|
type IsobaricBinaryPhaseDiagram = ReturnType<typeof IsobaricBinaryPhaseDiagram>;
|
|
44
44
|
export default IsobaricBinaryPhaseDiagram;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import type { PaneProps, PaneToggleProps } from '../overlays'
|
|
2
3
|
// NOTE: Axis config objects must be reassigned (not mutated) to trigger $bindable reactivity.
|
|
3
4
|
import { css_color_to_hex } from '../colors'
|
|
4
5
|
import { format_num } from '../labels'
|
|
@@ -58,8 +59,8 @@
|
|
|
58
59
|
enable_export?: boolean
|
|
59
60
|
png_dpi?: number
|
|
60
61
|
// Pane customization
|
|
61
|
-
pane_props?:
|
|
62
|
-
toggle_props?:
|
|
62
|
+
pane_props?: PaneProps
|
|
63
|
+
toggle_props?: PaneToggleProps
|
|
63
64
|
// Custom content snippets
|
|
64
65
|
children?: Snippet<[{ controls_open: boolean }]>
|
|
65
66
|
post_children?: Snippet<[{ controls_open: boolean }]>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PaneProps, PaneToggleProps } from '../overlays';
|
|
1
2
|
import DraggablePane from '../overlays/DraggablePane.svelte';
|
|
2
3
|
import type { AxisConfig } from '../plot';
|
|
3
4
|
import type { ComponentProps, Snippet } from 'svelte';
|
|
@@ -16,8 +17,8 @@ type $$ComponentProps = Omit<ComponentProps<typeof DraggablePane>, `children`> &
|
|
|
16
17
|
data?: PhaseDiagramData;
|
|
17
18
|
enable_export?: boolean;
|
|
18
19
|
png_dpi?: number;
|
|
19
|
-
pane_props?:
|
|
20
|
-
toggle_props?:
|
|
20
|
+
pane_props?: PaneProps;
|
|
21
|
+
toggle_props?: PaneToggleProps;
|
|
21
22
|
children?: Snippet<[{
|
|
22
23
|
controls_open: boolean;
|
|
23
24
|
}]>;
|
|
@@ -25,6 +26,6 @@ type $$ComponentProps = Omit<ComponentProps<typeof DraggablePane>, `children`> &
|
|
|
25
26
|
controls_open: boolean;
|
|
26
27
|
}]>;
|
|
27
28
|
};
|
|
28
|
-
declare const PhaseDiagramControls: import("svelte").Component<$$ComponentProps, {}, "
|
|
29
|
+
declare const PhaseDiagramControls: import("svelte").Component<$$ComponentProps, {}, "show_labels" | "y_axis" | "controls_open" | "x_axis" | "png_dpi" | "config" | "show_grid" | "show_boundaries" | "show_special_points" | "show_component_labels" | "lever_rule_mode">;
|
|
29
30
|
type PhaseDiagramControls = ReturnType<typeof PhaseDiagramControls>;
|
|
30
31
|
export default PhaseDiagramControls;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import type { PaneToggleProps } from '../overlays'
|
|
2
3
|
import { JsonTree } from '../layout/json-tree'
|
|
3
4
|
import { set_at_path } from '../layout/json-tree/utils'
|
|
4
5
|
import DraggablePane from '../overlays/DraggablePane.svelte'
|
|
@@ -6,6 +7,7 @@
|
|
|
6
7
|
import { build_diagram } from './build-diagram'
|
|
7
8
|
import type { DiagramInput } from './diagram-input'
|
|
8
9
|
import type { PhaseDiagramData } from './types'
|
|
10
|
+
import { to_error } from '../utils'
|
|
9
11
|
|
|
10
12
|
let {
|
|
11
13
|
editor_open = $bindable(false),
|
|
@@ -20,7 +22,7 @@
|
|
|
20
22
|
data?: PhaseDiagramData | null
|
|
21
23
|
ondata?: (data: PhaseDiagramData) => void
|
|
22
24
|
icon_style?: string
|
|
23
|
-
toggle_props?:
|
|
25
|
+
toggle_props?: PaneToggleProps
|
|
24
26
|
} = $props()
|
|
25
27
|
|
|
26
28
|
// The source object currently displayed (DiagramInput or PhaseDiagramData)
|
|
@@ -54,7 +56,7 @@
|
|
|
54
56
|
build_diagram(updated as DiagramInput)
|
|
55
57
|
diagram_input = updated as DiagramInput
|
|
56
58
|
} catch (error) {
|
|
57
|
-
const msg = error
|
|
59
|
+
const msg = to_error(error).message
|
|
58
60
|
show_rejection(msg)
|
|
59
61
|
}
|
|
60
62
|
return
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { ComponentProps } from 'svelte';
|
|
1
|
+
import type { PaneToggleProps } from '../overlays';
|
|
3
2
|
import type { DiagramInput } from './diagram-input';
|
|
4
3
|
import type { PhaseDiagramData } from './types';
|
|
5
4
|
type $$ComponentProps = {
|
|
@@ -8,7 +7,7 @@ type $$ComponentProps = {
|
|
|
8
7
|
data?: PhaseDiagramData | null;
|
|
9
8
|
ondata?: (data: PhaseDiagramData) => void;
|
|
10
9
|
icon_style?: string;
|
|
11
|
-
toggle_props?:
|
|
10
|
+
toggle_props?: PaneToggleProps;
|
|
12
11
|
};
|
|
13
12
|
declare const PhaseDiagramEditorPane: import("svelte").Component<$$ComponentProps, {}, "editor_open" | "diagram_input">;
|
|
14
13
|
type PhaseDiagramEditorPane = ReturnType<typeof PhaseDiagramEditorPane>;
|