matterviz 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EmptyState.svelte +10 -4
- package/dist/FilePicker.svelte +12 -14
- package/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +2 -2
- package/dist/app.css +53 -0
- package/dist/brillouin/BrillouinZone.svelte +132 -219
- package/dist/brillouin/BrillouinZone.svelte.d.ts +9 -20
- package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
- package/dist/brillouin/BrillouinZoneExportPane.svelte +47 -96
- package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +1 -1
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +15 -42
- package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +2 -3
- package/dist/brillouin/BrillouinZoneScene.svelte +63 -230
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +3 -23
- package/dist/brillouin/ReciprocalVectors.svelte +39 -0
- package/dist/brillouin/ReciprocalVectors.svelte.d.ts +9 -0
- package/dist/brillouin/compute.d.ts +2 -0
- package/dist/brillouin/compute.js +80 -77
- package/dist/brillouin/geometry.d.ts +8 -0
- package/dist/brillouin/geometry.js +57 -0
- package/dist/brillouin/index.d.ts +2 -0
- package/dist/brillouin/index.js +2 -0
- package/dist/brillouin/types.d.ts +2 -2
- package/dist/chempot-diagram/ChemPotDiagram.svelte +33 -38
- package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +143 -246
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +4 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +652 -976
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +7 -1
- package/dist/chempot-diagram/async-compute.svelte.js +1 -1
- package/dist/chempot-diagram/color.d.ts +3 -6
- package/dist/chempot-diagram/color.js +5 -5
- package/dist/chempot-diagram/compute.d.ts +3 -3
- package/dist/chempot-diagram/compute.js +3 -1
- package/dist/chempot-diagram/controls-state.svelte.d.ts +10 -0
- package/dist/chempot-diagram/controls-state.svelte.js +42 -0
- package/dist/chempot-diagram/export.d.ts +47 -0
- package/dist/chempot-diagram/export.js +133 -0
- package/dist/chempot-diagram/index.d.ts +1 -0
- package/dist/chempot-diagram/index.js +1 -0
- package/dist/chempot-diagram/pointer.d.ts +0 -10
- package/dist/chempot-diagram/pointer.js +4 -4
- package/dist/chempot-diagram/types.d.ts +3 -3
- package/dist/colors/index.d.ts +0 -4
- package/dist/colors/index.js +21 -22
- package/dist/composition/BarChart.svelte +37 -31
- package/dist/composition/BubbleChart.svelte +17 -17
- package/dist/composition/Composition.svelte +7 -11
- package/dist/composition/Formula.svelte +18 -25
- package/dist/composition/FormulaFilter.svelte +96 -98
- package/dist/composition/PieChart.svelte +60 -46
- package/dist/composition/chem-sys.js +3 -2
- package/dist/composition/format.js +4 -3
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/parse.d.ts +2 -3
- package/dist/composition/parse.js +27 -28
- package/dist/constants.js +11 -9
- package/dist/controls.d.ts +1 -0
- package/dist/controls.js +0 -1
- package/dist/convex-hull/ConvexHull.svelte +20 -25
- package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -4
- package/dist/convex-hull/ConvexHull2D.svelte +176 -256
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +269 -804
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +236 -755
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHullChrome.svelte +264 -0
- package/dist/convex-hull/ConvexHullChrome.svelte.d.ts +30 -0
- package/dist/convex-hull/ConvexHullControls.svelte +128 -49
- package/dist/convex-hull/ConvexHullControls.svelte.d.ts +7 -6
- package/dist/convex-hull/ConvexHullInfoPane.svelte +18 -5
- package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +6 -5
- package/dist/convex-hull/ConvexHullStats.svelte +210 -351
- package/dist/convex-hull/ConvexHullStats.svelte.d.ts +3 -1
- package/dist/convex-hull/ConvexHullTooltip.svelte +16 -14
- package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +2 -1
- package/dist/convex-hull/GasPressureControls.svelte +5 -12
- package/dist/convex-hull/StructurePopup.svelte +17 -21
- package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
- package/dist/convex-hull/TemperatureSlider.svelte +4 -10
- package/dist/convex-hull/barycentric-coords.d.ts +2 -4
- package/dist/convex-hull/barycentric-coords.js +6 -33
- package/dist/convex-hull/canvas-interactions.svelte.d.ts +79 -0
- package/dist/convex-hull/canvas-interactions.svelte.js +279 -0
- package/dist/convex-hull/helpers.d.ts +47 -17
- package/dist/convex-hull/helpers.js +186 -101
- package/dist/convex-hull/hull-state.svelte.d.ts +44 -0
- package/dist/convex-hull/hull-state.svelte.js +124 -0
- package/dist/convex-hull/index.d.ts +9 -7
- package/dist/convex-hull/index.js +7 -2
- package/dist/convex-hull/thermodynamics.js +109 -937
- package/dist/convex-hull/types.d.ts +12 -4
- package/dist/convex-hull/types.js +12 -0
- package/dist/coordination/CoordinationBarPlot.svelte +41 -43
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
- package/dist/coordination/calc-coordination.d.ts +1 -1
- package/dist/coordination/calc-coordination.js +28 -25
- package/dist/element/BohrAtom.svelte +6 -8
- package/dist/element/ElementHeading.svelte +4 -1
- package/dist/element/ElementPhoto.svelte +11 -9
- package/dist/element/ElementStats.svelte +12 -10
- package/dist/element/ElementTile.svelte +24 -29
- package/dist/element/ElementTile.svelte.d.ts +1 -1
- package/dist/element/Nucleus.svelte +4 -2
- package/dist/element/data.d.ts +1 -2
- package/dist/element/helpers.d.ts +4 -0
- package/dist/element/helpers.js +18 -0
- package/dist/element/index.d.ts +1 -0
- package/dist/element/index.js +3 -0
- package/dist/feedback/DragOverlay.svelte +5 -3
- package/dist/feedback/DragOverlay.svelte.d.ts +2 -1
- package/dist/feedback/StatusMessage.svelte +20 -7
- package/dist/fermi-surface/FermiSlice.svelte +21 -18
- package/dist/fermi-surface/FermiSurface.svelte +78 -165
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +9 -20
- package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
- package/dist/fermi-surface/FermiSurfaceScene.svelte +93 -272
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +3 -23
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
- package/dist/fermi-surface/compute.js +14 -13
- package/dist/fermi-surface/export.js +4 -15
- package/dist/fermi-surface/index.d.ts +0 -1
- package/dist/fermi-surface/index.js +0 -1
- package/dist/fermi-surface/parse.d.ts +1 -1
- package/dist/fermi-surface/parse.js +84 -97
- package/dist/fermi-surface/types.d.ts +2 -2
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +161 -185
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +6 -5
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +12 -9
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +5 -5
- package/dist/heatmap-matrix/index.d.ts +8 -2
- package/dist/icons.d.ts +4 -0
- package/dist/icons.js +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/io/ExportPane.svelte +170 -0
- package/dist/io/ExportPane.svelte.d.ts +17 -0
- package/dist/io/decompress.d.ts +2 -1
- package/dist/io/decompress.js +22 -36
- package/dist/io/export.d.ts +9 -1
- package/dist/io/export.js +37 -29
- package/dist/io/fetch.d.ts +2 -4
- package/dist/io/fetch.js +0 -11
- package/dist/io/file-drop.d.ts +7 -0
- package/dist/io/file-drop.js +13 -0
- package/dist/io/index.d.ts +1 -0
- package/dist/io/index.js +3 -0
- package/dist/io/is-binary.d.ts +9 -0
- package/dist/io/is-binary.js +45 -1
- package/dist/io/types.d.ts +13 -0
- package/dist/io/url-drop.js +13 -25
- package/dist/isosurface/Isosurface.svelte +17 -23
- package/dist/isosurface/IsosurfaceControls.svelte +37 -42
- package/dist/isosurface/parse-vaspwave.d.ts +3 -0
- package/dist/isosurface/parse-vaspwave.js +138 -0
- package/dist/isosurface/parse.js +50 -48
- package/dist/labels.d.ts +6 -2
- package/dist/labels.js +44 -14
- package/dist/layout/FullscreenButton.svelte +34 -0
- package/dist/layout/FullscreenButton.svelte.d.ts +10 -0
- package/dist/layout/FullscreenToggle.svelte +12 -12
- package/dist/layout/InfoCard.svelte +7 -18
- package/dist/layout/InfoTag.svelte +1 -3
- package/dist/layout/NumberRangeInput.svelte +46 -0
- package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
- package/dist/layout/PropertyFilter.svelte +2 -6
- package/dist/layout/SettingsSection.svelte +21 -17
- package/dist/layout/SubpageGrid.svelte +3 -1
- package/dist/layout/ViewerChrome.svelte +115 -0
- package/dist/layout/ViewerChrome.svelte.d.ts +18 -0
- package/dist/layout/fullscreen.d.ts +4 -0
- package/dist/layout/fullscreen.js +3 -5
- package/dist/layout/fullscreen.svelte.d.ts +8 -0
- package/dist/layout/fullscreen.svelte.js +36 -0
- package/dist/layout/index.d.ts +4 -0
- package/dist/layout/index.js +4 -0
- package/dist/layout/json-tree/JsonNode.svelte +8 -11
- package/dist/layout/json-tree/JsonTree.svelte +53 -77
- package/dist/layout/json-tree/JsonValue.svelte +7 -15
- package/dist/layout/json-tree/utils.js +14 -23
- package/dist/math.d.ts +9 -3
- package/dist/math.js +37 -21
- package/dist/overlays/ContextMenu.svelte +4 -2
- package/dist/overlays/CopyButton.svelte +11 -5
- package/dist/overlays/DragControlTab.svelte +6 -1
- package/dist/overlays/DraggablePane.svelte +81 -26
- package/dist/overlays/DraggablePane.svelte.d.ts +1 -0
- package/dist/overlays/GlassChip.svelte +30 -0
- package/dist/overlays/GlassChip.svelte.d.ts +8 -0
- package/dist/overlays/InfoPaneCards.svelte +11 -23
- package/dist/overlays/index.d.ts +11 -0
- package/dist/overlays/index.js +26 -0
- package/dist/overlays/portal.d.ts +2 -0
- package/dist/overlays/portal.js +14 -0
- package/dist/periodic-table/PeriodicTable.svelte +115 -146
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
- package/dist/periodic-table/PeriodicTableControls.svelte +11 -63
- package/dist/periodic-table/TableInset.svelte +9 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +50 -71
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
- package/dist/phase-diagram/PhaseDiagramControls.svelte +73 -96
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +4 -3
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +4 -2
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +2 -3
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +49 -134
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +3 -4
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
- package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
- package/dist/phase-diagram/build-diagram.js +3 -3
- package/dist/phase-diagram/colors.js +1 -1
- package/dist/phase-diagram/diagram-input.d.ts +1 -2
- package/dist/phase-diagram/parse.d.ts +2 -1
- package/dist/phase-diagram/parse.js +15 -15
- package/dist/phase-diagram/svg-to-diagram.js +21 -15
- package/dist/phase-diagram/utils.js +2 -3
- package/dist/plot/bar/BarPlot.svelte +494 -692
- package/dist/plot/bar/BarPlot.svelte.d.ts +9 -15
- package/dist/plot/bar/BarPlotControls.svelte +1 -3
- package/dist/plot/bar/BarPlotControls.svelte.d.ts +5 -7
- package/dist/plot/bar/SpacegroupBarPlot.svelte +31 -37
- package/dist/plot/bar/data.d.ts +5 -4
- package/dist/plot/bar/data.js +2 -1
- package/dist/plot/box/BoxPlot.svelte +361 -439
- package/dist/plot/box/BoxPlot.svelte.d.ts +6 -3
- package/dist/plot/box/BoxPlotControls.svelte.d.ts +1 -1
- package/dist/plot/box/Violin.svelte.d.ts +2 -1
- package/dist/plot/box/box-plot.d.ts +3 -2
- package/dist/plot/box/box-plot.js +6 -3
- package/dist/plot/box/kde.d.ts +2 -1
- package/dist/plot/box/kde.js +4 -4
- package/dist/plot/core/auto-place.d.ts +1 -1
- package/dist/plot/core/auto-place.js +5 -2
- package/dist/plot/core/axis-utils.d.ts +12 -7
- package/dist/plot/core/axis-utils.js +48 -48
- package/dist/plot/core/components/AxisLabel.svelte +82 -20
- package/dist/plot/core/components/AxisLabel.svelte.d.ts +1 -0
- package/dist/plot/core/components/ColorBar.svelte +106 -111
- package/dist/plot/core/components/ColorBar.svelte.d.ts +5 -4
- package/dist/plot/core/components/ColorScaleSelect.svelte +1 -1
- package/dist/plot/core/components/FillArea.svelte +10 -17
- package/dist/plot/core/components/HierarchyControls.svelte +249 -0
- package/dist/plot/{sunburst/SunburstControls.svelte.d.ts → core/components/HierarchyControls.svelte.d.ts} +12 -8
- package/dist/plot/core/components/InteractiveAxisLabel.svelte +1 -1
- package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +1 -1
- package/dist/plot/core/components/Line.svelte +21 -11
- package/dist/plot/core/components/Line.svelte.d.ts +5 -2
- package/dist/plot/core/components/PlotAxis.svelte +42 -18
- package/dist/plot/core/components/PlotAxis.svelte.d.ts +2 -1
- package/dist/plot/core/components/PlotControls.svelte +65 -41
- package/dist/plot/core/components/PlotControls.svelte.d.ts +1 -1
- package/dist/plot/core/components/PlotLegend.svelte +31 -35
- package/dist/plot/core/components/PlotMarginals.svelte +616 -0
- package/dist/plot/core/components/PlotMarginals.svelte.d.ts +15 -0
- package/dist/plot/core/components/PlotTooltip.svelte +1 -1
- package/dist/plot/core/components/PortalSelect.svelte +4 -8
- package/dist/plot/core/components/ReferenceLine.svelte +27 -24
- package/dist/plot/core/components/ReferenceLine3D.svelte +56 -59
- package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +4 -4
- package/dist/plot/core/components/ReferencePlane.svelte +9 -10
- package/dist/plot/core/components/ReferencePlane.svelte.d.ts +4 -4
- package/dist/plot/core/components/ZeroLines.svelte +4 -8
- package/dist/plot/core/components/ZoomRect.svelte +1 -2
- package/dist/plot/core/components/index.d.ts +1 -0
- package/dist/plot/core/components/index.js +1 -0
- package/dist/plot/core/data-cleaning-signal.d.ts +46 -0
- package/dist/plot/core/data-cleaning-signal.js +467 -0
- package/dist/plot/core/data-cleaning.d.ts +2 -42
- package/dist/plot/core/data-cleaning.js +29 -476
- package/dist/plot/core/data-transform.js +9 -5
- package/dist/plot/core/fill-utils.d.ts +7 -4
- package/dist/plot/core/fill-utils.js +34 -9
- package/dist/plot/core/index.d.ts +1 -0
- package/dist/plot/core/index.js +1 -0
- package/dist/plot/core/interactions.d.ts +5 -1
- package/dist/plot/core/interactions.js +14 -2
- package/dist/plot/core/layout.d.ts +3 -1
- package/dist/plot/core/layout.js +22 -13
- package/dist/plot/core/marginals.d.ts +170 -0
- package/dist/plot/core/marginals.js +436 -0
- package/dist/plot/core/pan-zoom.svelte.d.ts +35 -0
- package/dist/plot/core/pan-zoom.svelte.js +221 -0
- package/dist/plot/core/placed-tween.svelte.d.ts +21 -0
- package/dist/plot/core/placed-tween.svelte.js +68 -0
- package/dist/plot/core/reference-line.d.ts +10 -10
- package/dist/plot/core/reference-line.js +7 -7
- package/dist/plot/core/scales.d.ts +40 -25
- package/dist/plot/core/scales.js +49 -21
- package/dist/plot/core/svg.d.ts +2 -1
- package/dist/plot/core/types/fills.d.ts +101 -0
- package/dist/plot/core/types/fills.js +15 -0
- package/dist/plot/core/types/plot-3d.d.ts +87 -0
- package/dist/plot/core/types/plot-3d.js +4 -0
- package/dist/plot/core/types/reference-lines.d.ts +140 -0
- package/dist/plot/core/types/reference-lines.js +9 -0
- package/dist/plot/core/types.d.ts +47 -331
- package/dist/plot/core/types.js +23 -20
- package/dist/plot/core/utils/hierarchy-chart.d.ts +51 -0
- package/dist/plot/core/utils/hierarchy-chart.js +179 -0
- package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
- package/dist/plot/core/utils/hierarchy-labels.js +99 -0
- package/dist/plot/core/utils/label-placement.d.ts +1 -1
- package/dist/plot/core/utils/label-placement.js +5 -5
- package/dist/plot/core/utils.d.ts +2 -1
- package/dist/plot/histogram/Histogram.svelte +373 -631
- package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
- package/dist/plot/histogram/HistogramControls.svelte +30 -28
- package/dist/plot/histogram/HistogramControls.svelte.d.ts +1 -1
- package/dist/plot/histogram/histogram.d.ts +31 -0
- package/dist/plot/histogram/histogram.js +70 -0
- package/dist/plot/histogram/index.d.ts +1 -0
- package/dist/plot/histogram/index.js +1 -0
- package/dist/plot/index.d.ts +1 -0
- package/dist/plot/index.js +1 -0
- package/dist/plot/sankey/Sankey.svelte +79 -73
- package/dist/plot/sankey/Sankey.svelte.d.ts +3 -3
- package/dist/plot/sankey/SankeyControls.svelte +22 -16
- package/dist/plot/sankey/sankey.js +3 -1
- package/dist/plot/scatter/BinnedScatterPlot.svelte +264 -112
- package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +11 -4
- package/dist/plot/scatter/ElementScatter.svelte +4 -1
- package/dist/plot/scatter/ScatterPlot.svelte +623 -821
- package/dist/plot/scatter/ScatterPlot.svelte.d.ts +9 -15
- package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
- package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
- package/dist/plot/scatter/ScatterPoint.svelte +16 -9
- package/dist/plot/scatter/binned-scatter-types.d.ts +6 -12
- package/dist/plot/scatter/binned-scatter-types.js +6 -1
- package/dist/plot/scatter/index.d.ts +1 -1
- package/dist/plot/scatter/scatter-data.d.ts +1 -1
- package/dist/plot/scatter/scatter-data.js +8 -7
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte +40 -60
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +6 -14
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +17 -15
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +5 -5
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +232 -234
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +5 -14
- package/dist/plot/scatter-3d/Surface3D.svelte +9 -17
- package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +4 -3
- package/dist/plot/sunburst/Sunburst.svelte +256 -338
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +4 -3
- package/dist/plot/sunburst/index.d.ts +1 -1
- package/dist/plot/sunburst/index.js +2 -1
- package/dist/plot/sunburst/render.d.ts +2 -2
- package/dist/plot/sunburst/render.js +47 -22
- package/dist/plot/sunburst/sunburst.d.ts +5 -1
- package/dist/plot/sunburst/sunburst.js +14 -4
- package/dist/plot/treemap/Treemap.svelte +907 -0
- package/dist/plot/treemap/Treemap.svelte.d.ts +84 -0
- package/dist/plot/treemap/index.d.ts +3 -0
- package/dist/plot/treemap/index.js +4 -0
- package/dist/plot/treemap/treemap.d.ts +26 -0
- package/dist/plot/treemap/treemap.js +99 -0
- package/dist/rdf/RdfPlot.svelte +22 -26
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +4 -8
- package/dist/sanitize.js +14 -3
- package/dist/scene/SceneCamera.svelte +62 -0
- package/dist/scene/SceneCamera.svelte.d.ts +19 -0
- package/dist/scene/bind-renderer.svelte.d.ts +2 -0
- package/dist/scene/bind-renderer.svelte.js +22 -0
- package/dist/scene/index.d.ts +4 -0
- package/dist/scene/index.js +5 -0
- package/dist/scene/props.js +52 -0
- package/dist/scene/types.d.ts +26 -0
- package/dist/scene/types.js +1 -0
- package/dist/settings.d.ts +33 -11
- package/dist/settings.js +136 -51
- package/dist/spectral/Bands.svelte +231 -237
- package/dist/spectral/Bands.svelte.d.ts +3 -2
- package/dist/spectral/BandsAndDos.svelte +29 -29
- package/dist/spectral/BrillouinBandsDos.svelte +21 -29
- package/dist/spectral/Dos.svelte +75 -77
- package/dist/spectral/Dos.svelte.d.ts +2 -1
- package/dist/spectral/helpers.d.ts +9 -9
- package/dist/spectral/helpers.js +66 -70
- package/dist/state.svelte.d.ts +0 -7
- package/dist/state.svelte.js +5 -24
- package/dist/structure/Arrow.svelte +6 -21
- package/dist/structure/ArrowInstances.svelte +160 -0
- package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
- package/dist/structure/AtomLegend.svelte +115 -75
- package/dist/structure/AtomLegend.svelte.d.ts +1 -1
- package/dist/structure/Bond.svelte +31 -23
- package/dist/structure/CanvasTooltip.svelte +16 -3
- package/dist/structure/CellSelect.svelte +22 -29
- package/dist/structure/CellSelect.svelte.d.ts +2 -1
- package/dist/structure/Cylinder.svelte +24 -40
- package/dist/structure/InstancedAtoms.svelte +114 -0
- package/dist/structure/InstancedAtoms.svelte.d.ts +15 -0
- package/dist/structure/Lattice.svelte +85 -149
- package/dist/structure/SiteLabels.svelte +122 -0
- package/dist/structure/SiteLabels.svelte.d.ts +18 -0
- package/dist/structure/Structure.svelte +725 -735
- package/dist/structure/Structure.svelte.d.ts +8 -16
- package/dist/structure/StructureCarousel.svelte +630 -0
- package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
- package/dist/structure/StructureControls.svelte +298 -325
- package/dist/structure/StructureControls.svelte.d.ts +5 -3
- package/dist/structure/StructureExportPane.svelte +62 -168
- package/dist/structure/StructureExportPane.svelte.d.ts +4 -5
- package/dist/structure/StructureInfoPane.svelte +77 -69
- package/dist/structure/StructureInfoPane.svelte.d.ts +6 -6
- package/dist/structure/StructureScene.svelte +758 -600
- package/dist/structure/StructureScene.svelte.d.ts +24 -20
- package/dist/structure/StructureViewport.svelte +386 -0
- package/dist/structure/StructureViewport.svelte.d.ts +63 -0
- package/dist/structure/atom-label-placement.d.ts +18 -0
- package/dist/structure/atom-label-placement.js +115 -0
- package/dist/structure/atom-properties.d.ts +3 -1
- package/dist/structure/atom-properties.js +115 -54
- package/dist/structure/bond-order-perception.js +2 -4
- package/dist/structure/bonding.d.ts +12 -2
- package/dist/structure/bonding.js +172 -73
- package/dist/structure/edit-history.d.ts +6 -0
- package/dist/structure/edit-history.js +27 -0
- package/dist/structure/export.d.ts +25 -4
- package/dist/structure/export.js +103 -153
- package/dist/structure/format-detect.d.ts +1 -0
- package/dist/structure/format-detect.js +22 -0
- package/dist/structure/geometry.d.ts +9 -0
- package/dist/structure/geometry.js +27 -0
- package/dist/structure/index.d.ts +18 -1
- package/dist/structure/index.js +15 -2
- package/dist/structure/measure.d.ts +1 -1
- package/dist/structure/measure.js +6 -12
- package/dist/structure/parse.d.ts +5 -3
- package/dist/structure/parse.js +551 -567
- package/dist/structure/partial-occupancy.d.ts +0 -1
- package/dist/structure/partial-occupancy.js +5 -3
- package/dist/structure/pbc.d.ts +1 -1
- package/dist/structure/pbc.js +204 -51
- package/dist/structure/polyhedra.d.ts +40 -0
- package/dist/structure/polyhedra.js +587 -0
- package/dist/structure/site.d.ts +4 -0
- package/dist/structure/site.js +1 -0
- package/dist/structure/supercell.d.ts +1 -2
- package/dist/structure/supercell.js +10 -15
- package/dist/structure/validation.js +5 -6
- package/dist/symmetry/SymmetryElementControls.svelte +69 -0
- package/dist/symmetry/SymmetryElementControls.svelte.d.ts +9 -0
- package/dist/symmetry/SymmetryElements.svelte +350 -0
- package/dist/symmetry/SymmetryElements.svelte.d.ts +24 -0
- package/dist/symmetry/SymmetryStats.svelte +142 -49
- package/dist/symmetry/WyckoffTable.svelte +58 -16
- package/dist/symmetry/WyckoffTable.svelte.d.ts +3 -0
- package/dist/symmetry/cell-transform.js +8 -14
- package/dist/symmetry/index.d.ts +15 -4
- package/dist/symmetry/index.js +308 -81
- package/dist/symmetry/spacegroups.d.ts +5 -1
- package/dist/symmetry/spacegroups.js +18 -3
- package/dist/symmetry/symmetry-elements.d.ts +33 -0
- package/dist/symmetry/symmetry-elements.js +521 -0
- package/dist/symmetry/wyckoff-db.d.ts +9 -0
- package/dist/symmetry/wyckoff-db.js +87 -0
- package/dist/table/HeatmapTable.svelte +1104 -378
- package/dist/table/HeatmapTable.svelte.d.ts +12 -2
- package/dist/table/ToggleMenu.svelte +5 -12
- package/dist/table/index.d.ts +21 -6
- package/dist/table/index.js +34 -21
- package/dist/theme/ThemeControl.svelte +16 -8
- package/dist/theme/index.d.ts +1 -5
- package/dist/theme/index.js +4 -10
- package/dist/theme/themes.mjs +14 -7
- package/dist/tooltip/KCoords.svelte +4 -1
- package/dist/tooltip/TooltipContent.svelte +2 -5
- package/dist/trajectory/Trajectory.svelte +556 -352
- package/dist/trajectory/Trajectory.svelte.d.ts +10 -22
- package/dist/trajectory/TrajectoryError.svelte +11 -8
- package/dist/trajectory/TrajectoryExportPane.svelte +28 -54
- package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +4 -5
- package/dist/trajectory/TrajectoryInfoPane.svelte +88 -99
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +3 -2
- package/dist/trajectory/constants.js +6 -2
- package/dist/trajectory/extract.js +73 -71
- package/dist/trajectory/format-detect.d.ts +0 -1
- package/dist/trajectory/format-detect.js +13 -17
- package/dist/trajectory/frame-reader.d.ts +2 -1
- package/dist/trajectory/frame-reader.js +74 -136
- package/dist/trajectory/helpers.d.ts +12 -2
- package/dist/trajectory/helpers.js +68 -37
- package/dist/trajectory/index.d.ts +1 -0
- package/dist/trajectory/index.js +3 -0
- package/dist/trajectory/parse/ase.d.ts +9 -1
- package/dist/trajectory/parse/ase.js +47 -32
- package/dist/trajectory/parse/diagnostics.d.ts +3 -0
- package/dist/trajectory/parse/diagnostics.js +14 -0
- package/dist/trajectory/parse/h5-utils.d.ts +13 -0
- package/dist/trajectory/parse/h5-utils.js +109 -0
- package/dist/trajectory/parse/hdf5.d.ts +1 -1
- package/dist/trajectory/parse/hdf5.js +116 -106
- package/dist/trajectory/parse/index.d.ts +3 -4
- package/dist/trajectory/parse/index.js +68 -119
- package/dist/trajectory/parse/lammps.d.ts +0 -2
- package/dist/trajectory/parse/lammps.js +14 -16
- package/dist/trajectory/parse/pymatgen.d.ts +2 -0
- package/dist/trajectory/parse/pymatgen.js +74 -0
- package/dist/trajectory/parse/vasp.js +13 -9
- package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
- package/dist/trajectory/parse/vaspout-electronic.js +207 -0
- package/dist/trajectory/parse/vaspout-h5.d.ts +5 -0
- package/dist/trajectory/parse/vaspout-h5.js +284 -0
- package/dist/trajectory/parse/xyz.d.ts +9 -21
- package/dist/trajectory/parse/xyz.js +38 -39
- package/dist/trajectory/plotting.d.ts +8 -10
- package/dist/trajectory/plotting.js +102 -127
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +8 -1
- package/dist/xrd/XrdPlot.svelte +56 -85
- package/dist/xrd/broadening.d.ts +2 -1
- package/dist/xrd/broadening.js +2 -1
- package/dist/xrd/calc-xrd.js +8 -15
- package/dist/xrd/index.d.ts +2 -2
- package/dist/xrd/parse.d.ts +0 -1
- package/dist/xrd/parse.js +56 -73
- package/package.json +77 -36
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/element/data.json +0 -11864
- package/dist/fermi-surface/marching-cubes.d.ts +0 -2
- package/dist/fermi-surface/marching-cubes.js +0 -2
- package/dist/plot/core/hover-lock.svelte.d.ts +0 -14
- package/dist/plot/core/hover-lock.svelte.js +0 -45
- package/dist/plot/sunburst/SunburstControls.svelte +0 -200
- package/dist/structure/label-placement.d.ts +0 -14
- package/dist/structure/label-placement.js +0 -72
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { format_num } from '../labels'
|
|
3
|
-
import {
|
|
4
|
-
FullscreenToggle,
|
|
5
|
-
set_fullscreen_bg,
|
|
6
|
-
setup_fullscreen_effect,
|
|
7
|
-
} from '../layout'
|
|
3
|
+
import { FullscreenToggle, set_fullscreen_bg, setup_fullscreen_effect } from '../layout'
|
|
8
4
|
import { sanitize_svg } from '../sanitize'
|
|
9
5
|
import { compute_bounding_box_2d, polygon_centroid, type Vec2 } from '../math'
|
|
10
6
|
import type { AxisConfig } from '../plot'
|
|
@@ -116,9 +112,7 @@
|
|
|
116
112
|
// Custom tooltip - can be a snippet (replaces default), config object (adds prefix/suffix),
|
|
117
113
|
// or false to disable tooltip entirely
|
|
118
114
|
tooltip?: Snippet<[PhaseHoverInfo]> | PhaseDiagramTooltipConfig | false
|
|
119
|
-
children?: Snippet<
|
|
120
|
-
[{ width: number; height: number; fullscreen: boolean }]
|
|
121
|
-
>
|
|
115
|
+
children?: Snippet<[{ width: number; height: number; fullscreen: boolean }]>
|
|
122
116
|
} = $props()
|
|
123
117
|
|
|
124
118
|
// Shared icon/toggle styling for controls and export panes
|
|
@@ -210,9 +204,7 @@
|
|
|
210
204
|
|
|
211
205
|
// y_scale maps data temperatures to SVG coordinates
|
|
212
206
|
// We keep this in data units so region vertices render correctly
|
|
213
|
-
const y_scale = $derived(
|
|
214
|
-
scaleLinear().domain(temp_range).range([bottom, top]),
|
|
215
|
-
)
|
|
207
|
+
const y_scale = $derived(scaleLinear().domain(temp_range).range([bottom, top]))
|
|
216
208
|
|
|
217
209
|
// y_scale_display maps display temperatures (after unit conversion) to SVG
|
|
218
210
|
// Used for axis labels and ticks
|
|
@@ -221,9 +213,7 @@
|
|
|
221
213
|
)
|
|
222
214
|
|
|
223
215
|
// Generate tick values using d3 scale's built-in ticks method
|
|
224
|
-
const x_ticks = $derived(
|
|
225
|
-
x_scale.ticks(typeof x_axis.ticks === `number` ? x_axis.ticks : 5),
|
|
226
|
-
)
|
|
216
|
+
const x_ticks = $derived(x_scale.ticks(typeof x_axis.ticks === `number` ? x_axis.ticks : 5))
|
|
227
217
|
// Use display scale for y ticks so they show converted temperatures
|
|
228
218
|
const y_ticks = $derived(
|
|
229
219
|
y_scale_display.ticks(typeof y_axis.ticks === `number` ? y_axis.ticks : 6),
|
|
@@ -262,9 +252,7 @@
|
|
|
262
252
|
const transformed_boundaries = $derived(
|
|
263
253
|
(effective_data?.boundaries ?? []).map((boundary) => ({
|
|
264
254
|
...boundary,
|
|
265
|
-
svg_path: generate_boundary_path(
|
|
266
|
-
transform_vertices(boundary.points, x_scale, y_scale),
|
|
267
|
-
),
|
|
255
|
+
svg_path: generate_boundary_path(transform_vertices(boundary.points, x_scale, y_scale)),
|
|
268
256
|
})),
|
|
269
257
|
)
|
|
270
258
|
|
|
@@ -354,11 +342,7 @@
|
|
|
354
342
|
})
|
|
355
343
|
|
|
356
344
|
// Find nearest special point within threshold (in SVG pixels)
|
|
357
|
-
function find_nearby_special_point(
|
|
358
|
-
svg_x: number,
|
|
359
|
-
svg_y: number,
|
|
360
|
-
threshold: number = 20,
|
|
361
|
-
) {
|
|
345
|
+
function find_nearby_special_point(svg_x: number, svg_y: number, threshold: number = 20) {
|
|
362
346
|
let nearest: (typeof transformed_special_points)[0] | null = null
|
|
363
347
|
let min_dist = threshold
|
|
364
348
|
for (const point of transformed_special_points) {
|
|
@@ -372,19 +356,14 @@
|
|
|
372
356
|
}
|
|
373
357
|
|
|
374
358
|
// Pointer move handler (unified mouse/touch via Pointer Events API)
|
|
375
|
-
function handle_pointer_move(
|
|
376
|
-
event: PointerEvent & { currentTarget: SVGElement },
|
|
377
|
-
) {
|
|
359
|
+
function handle_pointer_move(event: PointerEvent & { currentTarget: SVGElement }) {
|
|
378
360
|
const svg = event.currentTarget
|
|
379
361
|
const rect = svg.getBoundingClientRect()
|
|
380
362
|
const svg_x = event.clientX - rect.left
|
|
381
363
|
const svg_y = event.clientY - rect.top
|
|
382
364
|
|
|
383
365
|
// Check if within plot area
|
|
384
|
-
if (
|
|
385
|
-
svg_x < left || svg_x > right || svg_y < top || svg_y > bottom ||
|
|
386
|
-
!effective_data
|
|
387
|
-
) {
|
|
366
|
+
if (svg_x < left || svg_x > right || svg_y < top || svg_y > bottom || !effective_data) {
|
|
388
367
|
clear_hover()
|
|
389
368
|
return
|
|
390
369
|
}
|
|
@@ -395,9 +374,7 @@
|
|
|
395
374
|
const region = find_phase_at_point(composition, temperature, effective_data)
|
|
396
375
|
|
|
397
376
|
// Check for nearby special point
|
|
398
|
-
const nearby_special = show_special_points
|
|
399
|
-
? find_nearby_special_point(svg_x, svg_y)
|
|
400
|
-
: null
|
|
377
|
+
const nearby_special = show_special_points ? find_nearby_special_point(svg_x, svg_y) : null
|
|
401
378
|
|
|
402
379
|
if (region) {
|
|
403
380
|
hovered_region = region
|
|
@@ -406,11 +383,9 @@
|
|
|
406
383
|
composition,
|
|
407
384
|
temperature,
|
|
408
385
|
position: { x: event.clientX, y: event.clientY },
|
|
409
|
-
lever_rule: calculate_lever_rule(region, composition, temperature) ||
|
|
410
|
-
undefined,
|
|
386
|
+
lever_rule: calculate_lever_rule(region, composition, temperature) || undefined,
|
|
411
387
|
vertical_lever_rule:
|
|
412
|
-
calculate_vertical_lever_rule(region, composition, temperature) ||
|
|
413
|
-
undefined,
|
|
388
|
+
calculate_vertical_lever_rule(region, composition, temperature) || undefined,
|
|
414
389
|
special_point: nearby_special || undefined,
|
|
415
390
|
}
|
|
416
391
|
on_phase_hover?.(hover_info)
|
|
@@ -462,9 +437,7 @@
|
|
|
462
437
|
const comp_unit = $derived(effective_data?.composition_unit ?? `at%`)
|
|
463
438
|
|
|
464
439
|
// Pseudo-binary support: format compound names with subscripts when enabled
|
|
465
|
-
const use_subscripts = $derived(
|
|
466
|
-
effective_data?.pseudo_binary?.use_subscripts ?? true,
|
|
467
|
-
)
|
|
440
|
+
const use_subscripts = $derived(effective_data?.pseudo_binary?.use_subscripts ?? true)
|
|
468
441
|
|
|
469
442
|
// Formatted component labels for SVG axis labels (with tspan subscripts if compound)
|
|
470
443
|
const component_a_svg = $derived(format_formula_svg(component_a, use_subscripts))
|
|
@@ -545,7 +518,7 @@
|
|
|
545
518
|
|
|
546
519
|
<div
|
|
547
520
|
{...rest}
|
|
548
|
-
class=
|
|
521
|
+
class={[`binary-phase-diagram`, rest.class]}
|
|
549
522
|
class:fullscreen
|
|
550
523
|
bind:this={wrapper}
|
|
551
524
|
bind:clientWidth={width}
|
|
@@ -593,7 +566,7 @@
|
|
|
593
566
|
bind:editor_open
|
|
594
567
|
bind:diagram_input
|
|
595
568
|
data={effective_data}
|
|
596
|
-
ondata={(edited) => data_override = edited}
|
|
569
|
+
ondata={(edited) => (data_override = edited)}
|
|
597
570
|
icon_style={pane_icon_style}
|
|
598
571
|
toggle_props={pane_toggle_props}
|
|
599
572
|
/>
|
|
@@ -667,8 +640,8 @@
|
|
|
667
640
|
<path
|
|
668
641
|
d={region.svg_path}
|
|
669
642
|
fill={region.gradient
|
|
670
|
-
|
|
671
|
-
|
|
643
|
+
? `url(#${gradient_uid}-${region.id})`
|
|
644
|
+
: region.color || get_phase_color(region.name)}
|
|
672
645
|
stroke="none"
|
|
673
646
|
class:hovered={hovered_region?.id === region.id}
|
|
674
647
|
/>
|
|
@@ -683,7 +656,7 @@
|
|
|
683
656
|
d={boundary.svg_path}
|
|
684
657
|
fill="none"
|
|
685
658
|
stroke={boundary.style?.color ?? merged_config.colors.boundary}
|
|
686
|
-
stroke-width={boundary.style?.width
|
|
659
|
+
stroke-width={boundary.style?.width ?? 2}
|
|
687
660
|
stroke-dasharray={boundary.style?.dash || ``}
|
|
688
661
|
stroke-linecap="round"
|
|
689
662
|
stroke-linejoin="round"
|
|
@@ -698,7 +671,8 @@
|
|
|
698
671
|
{#each transformed_regions as region (region.id)}
|
|
699
672
|
{@const line_height = merged_config.font_size * 1.2}
|
|
700
673
|
<g
|
|
701
|
-
transform="translate({region.label_pos[0]}, {region
|
|
674
|
+
transform="translate({region.label_pos[0]}, {region
|
|
675
|
+
.label_pos[1]}) rotate({region.label_rotation}) scale({region.label_scale})"
|
|
702
676
|
>
|
|
703
677
|
{#each region.label_lines as line, line_idx (line_idx)}
|
|
704
678
|
<text
|
|
@@ -726,34 +700,34 @@
|
|
|
726
700
|
{@const y_bot = y_scale(vlr.bottom_temperature)}
|
|
727
701
|
{@const y_top = y_scale(vlr.top_temperature)}
|
|
728
702
|
{@render tie_line_viz(
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
703
|
+
cx,
|
|
704
|
+
y_bot,
|
|
705
|
+
cx,
|
|
706
|
+
y_top,
|
|
707
|
+
[
|
|
708
|
+
{ cx, cy: y_bot, color: get_phase_color(vlr.bottom_phase, `rgb`) },
|
|
709
|
+
{ cx, cy: y_top, color: get_phase_color(vlr.top_phase, `rgb`) },
|
|
710
|
+
],
|
|
711
|
+
cx,
|
|
712
|
+
y_scale(effective_hover_info.temperature),
|
|
713
|
+
)}
|
|
740
714
|
{:else if lever_rule_mode === `horizontal` && effective_hover_info?.lever_rule}
|
|
741
715
|
{@const lr = effective_hover_info.lever_rule}
|
|
742
716
|
{@const cy = y_scale(effective_hover_info.temperature)}
|
|
743
717
|
{@const x_l = x_scale(lr.left_composition)}
|
|
744
718
|
{@const x_r = x_scale(lr.right_composition)}
|
|
745
719
|
{@render tie_line_viz(
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
720
|
+
x_l,
|
|
721
|
+
cy,
|
|
722
|
+
x_r,
|
|
723
|
+
cy,
|
|
724
|
+
[
|
|
725
|
+
{ cx: x_l, cy, color: get_phase_color(lr.left_phase, `rgb`) },
|
|
726
|
+
{ cx: x_r, cy, color: get_phase_color(lr.right_phase, `rgb`) },
|
|
727
|
+
],
|
|
728
|
+
x_scale(effective_hover_info.composition),
|
|
729
|
+
cy,
|
|
730
|
+
)}
|
|
757
731
|
{/if}
|
|
758
732
|
|
|
759
733
|
<!-- Special points (rendered last for highest z-index) -->
|
|
@@ -996,8 +970,7 @@
|
|
|
996
970
|
.binary-phase-diagram :global(.pd-editor-toggle) {
|
|
997
971
|
opacity: 1;
|
|
998
972
|
}
|
|
999
|
-
.binary-phase-diagram:is(:hover, :focus-within)
|
|
1000
|
-
:is(:global(.pane-toggle), .header-controls),
|
|
973
|
+
.binary-phase-diagram:is(:hover, :focus-within) :is(:global(.pane-toggle), .header-controls),
|
|
1001
974
|
.binary-phase-diagram :global(.pane-toggle:is(:focus-visible, [aria-expanded='true'])),
|
|
1002
975
|
.header-controls:has(:global(.pane-open)) {
|
|
1003
976
|
opacity: 1;
|
|
@@ -1024,7 +997,12 @@
|
|
|
1024
997
|
pointer-events: none; /* Let hit-area handle events */
|
|
1025
998
|
}
|
|
1026
999
|
/* Grouped pointer-events: none */
|
|
1027
|
-
.region-label,
|
|
1000
|
+
.region-label,
|
|
1001
|
+
.tie-line,
|
|
1002
|
+
.tooltip-container,
|
|
1003
|
+
.copy-feedback,
|
|
1004
|
+
.grid,
|
|
1005
|
+
.region-labels {
|
|
1028
1006
|
pointer-events: none;
|
|
1029
1007
|
}
|
|
1030
1008
|
.region-label {
|
|
@@ -1081,7 +1059,8 @@
|
|
|
1081
1059
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
1082
1060
|
}
|
|
1083
1061
|
@keyframes copy-fade-up {
|
|
1084
|
-
0%,
|
|
1062
|
+
0%,
|
|
1063
|
+
70% {
|
|
1085
1064
|
opacity: 1;
|
|
1086
1065
|
}
|
|
1087
1066
|
100% {
|
|
@@ -31,14 +31,12 @@ type $$ComponentProps = HTMLAttributes<HTMLDivElement> & {
|
|
|
31
31
|
x_axis?: AxisConfig;
|
|
32
32
|
y_axis?: AxisConfig;
|
|
33
33
|
tooltip?: Snippet<[PhaseHoverInfo]> | PhaseDiagramTooltipConfig | false;
|
|
34
|
-
children?: Snippet<[
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
]>;
|
|
34
|
+
children?: Snippet<[{
|
|
35
|
+
width: number;
|
|
36
|
+
height: number;
|
|
37
|
+
fullscreen: boolean;
|
|
38
|
+
}]>;
|
|
41
39
|
};
|
|
42
|
-
declare const IsobaricBinaryPhaseDiagram: import("svelte").Component<$$ComponentProps, {}, "
|
|
40
|
+
declare const IsobaricBinaryPhaseDiagram: import("svelte").Component<$$ComponentProps, {}, "show_labels" | "y_axis" | "fullscreen" | "wrapper" | "controls_open" | "x_axis" | "config" | "export_pane_open" | "png_dpi" | "show_grid" | "show_boundaries" | "show_special_points" | "show_component_labels" | "lever_rule_mode" | "editor_open" | "diagram_input" | "hovered_region" | "display_temp_unit">;
|
|
43
41
|
type IsobaricBinaryPhaseDiagram = ReturnType<typeof IsobaricBinaryPhaseDiagram>;
|
|
44
42
|
export default IsobaricBinaryPhaseDiagram;
|
|
@@ -1,7 +1,9 @@
|
|
|
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'
|
|
6
|
+
import NumberRangeInput from '../layout/NumberRangeInput.svelte'
|
|
5
7
|
import SettingsSection from '../layout/SettingsSection.svelte'
|
|
6
8
|
import DraggablePane from '../overlays/DraggablePane.svelte'
|
|
7
9
|
import type { AxisConfig } from '../plot'
|
|
@@ -58,8 +60,8 @@
|
|
|
58
60
|
enable_export?: boolean
|
|
59
61
|
png_dpi?: number
|
|
60
62
|
// Pane customization
|
|
61
|
-
pane_props?:
|
|
62
|
-
toggle_props?:
|
|
63
|
+
pane_props?: PaneProps
|
|
64
|
+
toggle_props?: PaneToggleProps
|
|
63
65
|
// Custom content snippets
|
|
64
66
|
children?: Snippet<[{ controls_open: boolean }]>
|
|
65
67
|
post_children?: Snippet<[{ controls_open: boolean }]>
|
|
@@ -77,9 +79,7 @@
|
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
// Helper to update nested config properties
|
|
80
|
-
function update_nested<
|
|
81
|
-
K extends keyof Pick<PhaseDiagramConfig, `colors` | `tie_line`>,
|
|
82
|
-
>(
|
|
82
|
+
function update_nested<K extends keyof Pick<PhaseDiagramConfig, `colors` | `tie_line`>>(
|
|
83
83
|
key: K,
|
|
84
84
|
prop: string,
|
|
85
85
|
value: string | number,
|
|
@@ -100,25 +100,6 @@
|
|
|
100
100
|
const has_special_points = $derived((data?.special_points?.length ?? 0) > 0)
|
|
101
101
|
</script>
|
|
102
102
|
|
|
103
|
-
<!-- Reusable snippet for number + range input pairs -->
|
|
104
|
-
{#snippet num_range(
|
|
105
|
-
label: string,
|
|
106
|
-
value: number,
|
|
107
|
-
min: number,
|
|
108
|
-
max: number,
|
|
109
|
-
step: number,
|
|
110
|
-
on_change: (val: number) => void,
|
|
111
|
-
tip: string,
|
|
112
|
-
)}
|
|
113
|
-
{@const oninput = (ev: Event & { currentTarget: HTMLInputElement }) =>
|
|
114
|
-
on_change(Number(ev.currentTarget.value))}
|
|
115
|
-
<label {@attach tooltip({ content: tip })}>
|
|
116
|
-
{label}
|
|
117
|
-
<input type="number" {min} {max} {step} {value} {oninput} />
|
|
118
|
-
<input type="range" {min} {max} {step} {value} {oninput} />
|
|
119
|
-
</label>
|
|
120
|
-
{/snippet}
|
|
121
|
-
|
|
122
103
|
<DraggablePane
|
|
123
104
|
bind:show={controls_open}
|
|
124
105
|
pane_props={{
|
|
@@ -176,9 +157,7 @@
|
|
|
176
157
|
Special Pts
|
|
177
158
|
</label>
|
|
178
159
|
{/if}
|
|
179
|
-
<label
|
|
180
|
-
{@attach tooltip({ content: `Show component labels at axes` })}
|
|
181
|
-
>
|
|
160
|
+
<label {@attach tooltip({ content: `Show component labels at axes` })}>
|
|
182
161
|
<input type="checkbox" bind:checked={show_component_labels} />
|
|
183
162
|
Comp. Labels
|
|
184
163
|
</label>
|
|
@@ -194,43 +173,40 @@
|
|
|
194
173
|
}}
|
|
195
174
|
on_reset={() => {
|
|
196
175
|
update_config(`font_size`, PHASE_DIAGRAM_DEFAULTS.font_size)
|
|
197
|
-
update_config(
|
|
198
|
-
`special_point_radius`,
|
|
199
|
-
PHASE_DIAGRAM_DEFAULTS.special_point_radius,
|
|
200
|
-
)
|
|
176
|
+
update_config(`special_point_radius`, PHASE_DIAGRAM_DEFAULTS.special_point_radius)
|
|
201
177
|
}}
|
|
202
178
|
>
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
)}
|
|
179
|
+
<NumberRangeInput
|
|
180
|
+
min={8}
|
|
181
|
+
max={20}
|
|
182
|
+
step={1}
|
|
183
|
+
title="Font size for axis labels and tick marks"
|
|
184
|
+
bind:value={() => merged_config.font_size, (val) => update_config(`font_size`, val)}
|
|
185
|
+
>Font size</NumberRangeInput
|
|
186
|
+
>
|
|
212
187
|
{#if has_special_points}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
188
|
+
<NumberRangeInput
|
|
189
|
+
min={2}
|
|
190
|
+
max={12}
|
|
191
|
+
step={1}
|
|
192
|
+
title="Radius of special point markers (eutectic, peritectic, etc.)"
|
|
193
|
+
bind:value={
|
|
194
|
+
() => merged_config.special_point_radius,
|
|
195
|
+
(val) => update_config(`special_point_radius`, val)
|
|
196
|
+
}>Special pt radius</NumberRangeInput
|
|
197
|
+
>
|
|
222
198
|
{/if}
|
|
223
199
|
</SettingsSection>
|
|
224
200
|
|
|
225
201
|
<!-- Colors Section -->
|
|
226
202
|
{@const color_options = [
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
203
|
+
[`background`, `#ffffff`, `Background`, `Background color of the plot area`],
|
|
204
|
+
[`grid`, `#888888`, `Grid`, `Color of grid lines`],
|
|
205
|
+
[`boundary`, `#333333`, `Boundaries`, `Color of phase boundary lines`],
|
|
206
|
+
[`special_point`, `#d32f2f`, `Special Pts`, `Color of special point markers`],
|
|
207
|
+
[`axis`, `#333333`, `Axis`, `Color of axis lines`],
|
|
208
|
+
[`text`, `#333333`, `Text`, `Color of text labels`],
|
|
209
|
+
] as const}
|
|
234
210
|
<SettingsSection
|
|
235
211
|
title="Colors"
|
|
236
212
|
current_values={{ ...merged_config.colors }}
|
|
@@ -280,40 +256,43 @@
|
|
|
280
256
|
</label>
|
|
281
257
|
</div>
|
|
282
258
|
</span>
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
259
|
+
<NumberRangeInput
|
|
260
|
+
min={0.5}
|
|
261
|
+
max={5}
|
|
262
|
+
step={0.5}
|
|
263
|
+
title="Thickness of the tie-line"
|
|
264
|
+
bind:value={
|
|
265
|
+
() => merged_config.tie_line.stroke_width,
|
|
266
|
+
(val) => update_nested(`tie_line`, `stroke_width`, val)
|
|
267
|
+
}>Line width</NumberRangeInput
|
|
268
|
+
>
|
|
269
|
+
<NumberRangeInput
|
|
270
|
+
min={2}
|
|
271
|
+
max={10}
|
|
272
|
+
step={1}
|
|
273
|
+
title="Radius of phase boundary endpoint markers"
|
|
274
|
+
bind:value={
|
|
275
|
+
() => merged_config.tie_line.endpoint_radius,
|
|
276
|
+
(val) => update_nested(`tie_line`, `endpoint_radius`, val)
|
|
277
|
+
}>Endpoint radius</NumberRangeInput
|
|
278
|
+
>
|
|
279
|
+
<NumberRangeInput
|
|
280
|
+
min={2}
|
|
281
|
+
max={10}
|
|
282
|
+
step={1}
|
|
283
|
+
title="Radius of the cursor position marker"
|
|
284
|
+
bind:value={
|
|
285
|
+
() => merged_config.tie_line.cursor_radius,
|
|
286
|
+
(val) => update_nested(`tie_line`, `cursor_radius`, val)
|
|
287
|
+
}>Cursor radius</NumberRangeInput
|
|
288
|
+
>
|
|
310
289
|
</SettingsSection>
|
|
311
290
|
|
|
312
291
|
<!-- Axis Configuration Section -->
|
|
313
292
|
{@const axis_configs = [
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
293
|
+
[x_axis, `x`, comp_unit, `composition`],
|
|
294
|
+
[y_axis, `y`, temp_unit, `temperature`],
|
|
295
|
+
] as const}
|
|
317
296
|
<SettingsSection
|
|
318
297
|
title="Axes"
|
|
319
298
|
current_values={{ x_ticks: x_axis.ticks, y_ticks: y_axis.ticks }}
|
|
@@ -352,7 +331,9 @@
|
|
|
352
331
|
}}
|
|
353
332
|
>
|
|
354
333
|
<label
|
|
355
|
-
{@attach tooltip({
|
|
334
|
+
{@attach tooltip({
|
|
335
|
+
content: `DPI (dots per inch) for PNG export. Higher values produce larger, higher-quality images.`,
|
|
336
|
+
})}
|
|
356
337
|
>
|
|
357
338
|
PNG DPI
|
|
358
339
|
<input
|
|
@@ -363,15 +344,11 @@
|
|
|
363
344
|
style="width: 3.5em"
|
|
364
345
|
bind:value={png_dpi}
|
|
365
346
|
/>
|
|
366
|
-
<input
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
bind:value={png_dpi}
|
|
372
|
-
/>
|
|
373
|
-
<span style="font-size: 0.85em; opacity: 0.7">{format_num(png_dpi, `d`)}
|
|
374
|
-
dpi</span>
|
|
347
|
+
<input type="range" min={72} max={600} step={50} bind:value={png_dpi} />
|
|
348
|
+
<span style="font-size: 0.85em; opacity: 0.7"
|
|
349
|
+
>{format_num(png_dpi, `d`)}
|
|
350
|
+
dpi</span
|
|
351
|
+
>
|
|
375
352
|
</label>
|
|
376
353
|
</SettingsSection>
|
|
377
354
|
{/if}
|
|
@@ -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" | "config" | "png_dpi" | "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'
|
|
@@ -21,7 +22,7 @@
|
|
|
21
22
|
data?: PhaseDiagramData | null
|
|
22
23
|
ondata?: (data: PhaseDiagramData) => void
|
|
23
24
|
icon_style?: string
|
|
24
|
-
toggle_props?:
|
|
25
|
+
toggle_props?: PaneToggleProps
|
|
25
26
|
} = $props()
|
|
26
27
|
|
|
27
28
|
// The source object currently displayed (DiagramInput or PhaseDiagramData)
|
|
@@ -110,7 +111,8 @@
|
|
|
110
111
|
animation: fade-out 3s ease-out forwards;
|
|
111
112
|
}
|
|
112
113
|
@keyframes fade-out {
|
|
113
|
-
0%,
|
|
114
|
+
0%,
|
|
115
|
+
80% {
|
|
114
116
|
opacity: 1;
|
|
115
117
|
}
|
|
116
118
|
100% {
|
|
@@ -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>;
|