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
package/dist/xrd/XrdPlot.svelte
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
decompress_data_binary,
|
|
7
7
|
decompress_file,
|
|
8
8
|
detect_compression_format,
|
|
9
|
+
drag_over_handlers,
|
|
9
10
|
handle_url_drop,
|
|
10
11
|
} from '../io'
|
|
11
12
|
import { format_value } from '../labels'
|
|
@@ -31,13 +32,9 @@
|
|
|
31
32
|
function is_xrd_pattern(obj: unknown): obj is XrdPattern {
|
|
32
33
|
if (!obj || typeof obj !== `object`) return false
|
|
33
34
|
const pattern_obj = obj as { x?: unknown; y?: unknown }
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
return (
|
|
37
|
-
Array.isArray(x) &&
|
|
38
|
-
Array.isArray(y) &&
|
|
39
|
-
x.length === y.length
|
|
40
|
-
)
|
|
35
|
+
const x_vals = pattern_obj.x
|
|
36
|
+
const y_vals = pattern_obj.y
|
|
37
|
+
return Array.isArray(x_vals) && Array.isArray(y_vals) && x_vals.length === y_vals.length
|
|
41
38
|
}
|
|
42
39
|
|
|
43
40
|
function format_hkl(hkl: Hkl, format: HklFormat): string {
|
|
@@ -81,10 +78,8 @@
|
|
|
81
78
|
broadening_params = $bindable({ ...DEFAULT_BROADENING }),
|
|
82
79
|
controls = {},
|
|
83
80
|
...rest
|
|
84
|
-
}:
|
|
85
|
-
|
|
86
|
-
& ComponentProps<typeof ScatterPlot>
|
|
87
|
-
& {
|
|
81
|
+
}: ComponentProps<typeof BarPlot> &
|
|
82
|
+
ComponentProps<typeof ScatterPlot> & {
|
|
88
83
|
patterns:
|
|
89
84
|
| XrdPattern
|
|
90
85
|
| Record<string, XrdPattern | { pattern: XrdPattern; color?: string }>
|
|
@@ -114,31 +109,24 @@
|
|
|
114
109
|
const base_entries = Array.isArray(patterns)
|
|
115
110
|
? (patterns as PatternEntry[])
|
|
116
111
|
: is_xrd_pattern(patterns)
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
).map(([label, value]) =>
|
|
124
|
-
`pattern` in value
|
|
125
|
-
? { label, ...value }
|
|
126
|
-
: { label, pattern: value as XrdPattern }
|
|
127
|
-
)
|
|
112
|
+
? [{ label: `XRD Pattern`, pattern: patterns as XrdPattern }]
|
|
113
|
+
: Object.entries(
|
|
114
|
+
patterns as Record<string, XrdPattern | { pattern: XrdPattern; color?: string }>,
|
|
115
|
+
).map(([label, value]) =>
|
|
116
|
+
`pattern` in value ? { label, ...value } : { label, pattern: value as XrdPattern },
|
|
117
|
+
)
|
|
128
118
|
// Merge user-provided patterns with any dropped-on-the-fly entries
|
|
129
119
|
return [...base_entries, ...dropped_entries]
|
|
130
120
|
})
|
|
131
121
|
|
|
132
122
|
// Decide default show_angles
|
|
133
|
-
const actual_show_angles = $derived(
|
|
134
|
-
show_angles ?? pattern_entries.length <= 2,
|
|
135
|
-
)
|
|
123
|
+
const actual_show_angles = $derived(show_angles ?? pattern_entries.length <= 2)
|
|
136
124
|
|
|
137
125
|
// Compute global max intensity for normalization (as in pymatviz xrd_pattern)
|
|
138
126
|
const global_max_intensity = $derived.by(() => {
|
|
139
127
|
let max_val = 0
|
|
140
128
|
for (const entry of pattern_entries) {
|
|
141
|
-
for (const
|
|
129
|
+
for (const intensity of entry.pattern.y) if (intensity > max_val) max_val = intensity
|
|
142
130
|
}
|
|
143
131
|
return max_val || 1
|
|
144
132
|
})
|
|
@@ -159,7 +147,7 @@
|
|
|
159
147
|
})
|
|
160
148
|
|
|
161
149
|
// Scaled intensities are normalized to 0..100, add 10% top padding for peak labels
|
|
162
|
-
const intensity_range:
|
|
150
|
+
const intensity_range: Vec2 = [0, 110]
|
|
163
151
|
|
|
164
152
|
// Build BarPlot series from entries (for Discrete/Stick view)
|
|
165
153
|
const bar_series = $derived.by<BarSeries[]>(() => {
|
|
@@ -168,7 +156,7 @@
|
|
|
168
156
|
const include_name = pattern_entries.length > 1
|
|
169
157
|
// Add transparency when multiple series overlap
|
|
170
158
|
const alpha = pattern_entries.length > 1 ? 0.6 : 1
|
|
171
|
-
const scale = (
|
|
159
|
+
const scale = (y_val: number) => (y_val / global_max_intensity) * 100
|
|
172
160
|
return pattern_entries.map((entry, entry_idx) => {
|
|
173
161
|
const xs = entry.pattern.x
|
|
174
162
|
const ys = entry.pattern.y.map((val) => scale(val || 0))
|
|
@@ -220,12 +208,11 @@
|
|
|
220
208
|
metadata.push({ hkls, d: d_hkl, label: entry.label })
|
|
221
209
|
|
|
222
210
|
if (selected_indices.includes(idx)) {
|
|
223
|
-
const angle_text = actual_show_angles
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
: ``
|
|
211
|
+
const angle_text = actual_show_angles ? `${format_value(xs[idx], `.2f`)}°` : ``
|
|
212
|
+
const hkl_text =
|
|
213
|
+
hkls && hkl_format
|
|
214
|
+
? hkls.map((hkl_val) => format_hkl(hkl_val, hkl_format)).join(`, `)
|
|
215
|
+
: ``
|
|
229
216
|
// Use @ separator between hkl and angle for better clarity
|
|
230
217
|
const separator = hkl_text && angle_text ? ` @ ` : ``
|
|
231
218
|
const text = [hkl_text, angle_text].filter(Boolean).join(separator)
|
|
@@ -280,7 +267,7 @@
|
|
|
280
267
|
const all_ys = all_processed.flatMap((processed) => processed.broadened.y)
|
|
281
268
|
const max_y = Math.max(...all_ys, 1) // Avoid div by zero
|
|
282
269
|
|
|
283
|
-
const scale = (
|
|
270
|
+
const scale = (y_val: number) => (y_val / max_y) * 100
|
|
284
271
|
const base_color = entry.color ?? PLOT_COLORS[entry_idx % PLOT_COLORS.length]
|
|
285
272
|
// Add transparency when multiple series overlap
|
|
286
273
|
const alpha = all_processed.length > 1 ? 0.6 : 1
|
|
@@ -304,10 +291,7 @@
|
|
|
304
291
|
loading = true
|
|
305
292
|
error_msg = undefined
|
|
306
293
|
|
|
307
|
-
const compute_and_add = async (
|
|
308
|
-
content: string | ArrayBuffer,
|
|
309
|
-
filename: string,
|
|
310
|
-
) => {
|
|
294
|
+
const compute_and_add = async (content: string | ArrayBuffer, filename: string) => {
|
|
311
295
|
const result = await add_xrd_pattern(content, filename, wavelength)
|
|
312
296
|
if (result.error) {
|
|
313
297
|
error_msg = result.error
|
|
@@ -318,10 +302,9 @@
|
|
|
318
302
|
|
|
319
303
|
try {
|
|
320
304
|
// Handle URL-based drops
|
|
321
|
-
const handled = await handle_url_drop(
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
).catch(() => false)
|
|
305
|
+
const handled = await handle_url_drop(event, on_file_drop || compute_and_add).catch(
|
|
306
|
+
() => false,
|
|
307
|
+
)
|
|
325
308
|
if (handled) return
|
|
326
309
|
|
|
327
310
|
const file = event.dataTransfer?.files?.[0]
|
|
@@ -331,7 +314,7 @@
|
|
|
331
314
|
const compression_format = detect_compression_format(lower_name)
|
|
332
315
|
// Get base filename without compression extension
|
|
333
316
|
const base_name = compression_format
|
|
334
|
-
? lower_name.replace(/\.(gz|gzip)$/i, ``)
|
|
317
|
+
? lower_name.replace(/\.(?:gz|gzip)$/i, ``)
|
|
335
318
|
: lower_name
|
|
336
319
|
const base_ext = base_name.split(`.`).pop()
|
|
337
320
|
|
|
@@ -352,9 +335,7 @@
|
|
|
352
335
|
if (content) await (on_file_drop || compute_and_add)(content, filename)
|
|
353
336
|
}
|
|
354
337
|
} catch (exc) {
|
|
355
|
-
error_msg = `Failed to load file ${file.name}: ${
|
|
356
|
-
to_error(exc).message
|
|
357
|
-
}`
|
|
338
|
+
error_msg = `Failed to load file ${file.name}: ${to_error(exc).message}`
|
|
358
339
|
}
|
|
359
340
|
}
|
|
360
341
|
} finally {
|
|
@@ -380,11 +361,9 @@
|
|
|
380
361
|
</label>
|
|
381
362
|
|
|
382
363
|
{#if broadening_enabled}
|
|
383
|
-
<div
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
>
|
|
387
|
-
<label title="Caglioti U parameter">U:
|
|
364
|
+
<div class="pane-grid" style="display: grid; grid-template-columns: 1fr 1fr; gap: 1ex">
|
|
365
|
+
<label title="Caglioti U parameter"
|
|
366
|
+
>U:
|
|
388
367
|
<input
|
|
389
368
|
type="number"
|
|
390
369
|
step="0.001"
|
|
@@ -392,7 +371,8 @@
|
|
|
392
371
|
class="param-input"
|
|
393
372
|
/>
|
|
394
373
|
</label>
|
|
395
|
-
<label title="Caglioti V parameter"
|
|
374
|
+
<label title="Caglioti V parameter"
|
|
375
|
+
>V:
|
|
396
376
|
<input
|
|
397
377
|
type="number"
|
|
398
378
|
step="0.001"
|
|
@@ -400,7 +380,8 @@
|
|
|
400
380
|
class="param-input"
|
|
401
381
|
/>
|
|
402
382
|
</label>
|
|
403
|
-
<label title="Caglioti W parameter"
|
|
383
|
+
<label title="Caglioti W parameter"
|
|
384
|
+
>W:
|
|
404
385
|
<input
|
|
405
386
|
type="number"
|
|
406
387
|
step="0.001"
|
|
@@ -408,7 +389,8 @@
|
|
|
408
389
|
class="param-input"
|
|
409
390
|
/>
|
|
410
391
|
</label>
|
|
411
|
-
<label title="Pseudo-Voigt shape factor (0=Gaussian, 1=Lorentzian)"
|
|
392
|
+
<label title="Pseudo-Voigt shape factor (0=Gaussian, 1=Lorentzian)"
|
|
393
|
+
>η:
|
|
412
394
|
<input
|
|
413
395
|
type="number"
|
|
414
396
|
min="0"
|
|
@@ -437,8 +419,8 @@
|
|
|
437
419
|
{:else}
|
|
438
420
|
<StatusMessage
|
|
439
421
|
message={allow_file_drop
|
|
440
|
-
|
|
441
|
-
|
|
422
|
+
? `Drag and drop structure files (.cif, .json, etc.) or XRD data files (.xy, .csv, .ras, .uxd, .gsas, .xrdml, .brml, .raw, + .gz) here`
|
|
423
|
+
: `No XRD data to display`}
|
|
442
424
|
/>
|
|
443
425
|
{/if}
|
|
444
426
|
</EmptyState>
|
|
@@ -474,33 +456,27 @@
|
|
|
474
456
|
}}
|
|
475
457
|
{tooltip}
|
|
476
458
|
ondrop={handle_file_drop}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
}
|
|
482
|
-
ondragleave={(event) => {
|
|
483
|
-
event.preventDefault()
|
|
484
|
-
dragover = false
|
|
485
|
-
}}
|
|
486
|
-
class={(rest.class ?? ``) + (dragover ? ` dragover` : ``)}
|
|
459
|
+
{...drag_over_handlers({
|
|
460
|
+
allow: () => allow_file_drop,
|
|
461
|
+
set_dragover: (over) => (dragover = over),
|
|
462
|
+
})}
|
|
463
|
+
class={[rest.class, dragover && `dragover`]}
|
|
487
464
|
style={`overflow: visible; ${rest.style ?? ``}`}
|
|
488
465
|
{controls}
|
|
489
466
|
controls_extra={broadening_controls_snippet}
|
|
490
467
|
/>
|
|
491
468
|
{:else}
|
|
492
469
|
<!-- Discrete Stick View -->
|
|
493
|
-
{#snippet tooltip(
|
|
494
|
-
info: BarHandlerProps<{ label?: string; hkls?: Hkl[]; d?: number }>,
|
|
495
|
-
)}
|
|
470
|
+
{#snippet tooltip(info: BarHandlerProps<{ label?: string; hkls?: Hkl[]; d?: number }>)}
|
|
496
471
|
{@const angle_text = `${format_value(info.x, `.2f`)}°`}
|
|
497
472
|
{@const intensity_text = `${format_value(info.y, `.1f`)}`}
|
|
498
473
|
{@const hkls = info.metadata?.hkls}
|
|
499
|
-
{@const
|
|
500
|
-
{@const hkl_text =
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
474
|
+
{@const d_spacing = info.metadata?.d}
|
|
475
|
+
{@const hkl_text =
|
|
476
|
+
hkls && hkl_format
|
|
477
|
+
? hkls.map((hkl: Hkl) => format_hkl(hkl, hkl_format)).join(`, `)
|
|
478
|
+
: ``}
|
|
479
|
+
{@const d_text = d_spacing != null ? `${format_value(d_spacing, `.3f`)} Å` : ``}
|
|
504
480
|
{@html sanitize_html(info.metadata?.label ?? ``)}<br />
|
|
505
481
|
2θ: {angle_text}<br />
|
|
506
482
|
Intensity: {intensity_text}
|
|
@@ -533,16 +509,11 @@
|
|
|
533
509
|
}}
|
|
534
510
|
{tooltip}
|
|
535
511
|
ondrop={handle_file_drop}
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
}
|
|
541
|
-
ondragleave={(event) => {
|
|
542
|
-
event.preventDefault()
|
|
543
|
-
dragover = false
|
|
544
|
-
}}
|
|
545
|
-
class={(rest.class ?? ``) + (dragover ? ` dragover` : ``)}
|
|
512
|
+
{...drag_over_handlers({
|
|
513
|
+
allow: () => allow_file_drop,
|
|
514
|
+
set_dragover: (over) => (dragover = over),
|
|
515
|
+
})}
|
|
516
|
+
class={[rest.class, dragover && `dragover`]}
|
|
546
517
|
style={`overflow: visible; ${rest.style ?? ``}`}
|
|
547
518
|
show_controls={controls.show}
|
|
548
519
|
controls_open={controls.open}
|
package/dist/xrd/broadening.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Vec2 } from '../math';
|
|
1
2
|
import type { XrdPattern } from './index';
|
|
2
3
|
export type BroadeningParams = {
|
|
3
4
|
U: number;
|
|
@@ -16,5 +17,5 @@ fwhm: number, // Full Width at Half Maximum
|
|
|
16
17
|
eta: number): number;
|
|
17
18
|
export declare function compute_broadened_pattern(pattern: XrdPattern, // Discrete XRD pattern (peaks)
|
|
18
19
|
params: BroadeningParams, // Broadening parameters (U, V, W, shape_factor)
|
|
19
|
-
range:
|
|
20
|
+
range: Vec2, // Angular range [min, max] in degrees
|
|
20
21
|
step_size?: number): XrdPattern;
|
package/dist/xrd/broadening.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { clamp01 } from '../utils';
|
|
1
2
|
const LOG_2 = Math.log(2);
|
|
2
3
|
export const DEFAULT_BROADENING = {
|
|
3
4
|
U: 0.04,
|
|
@@ -43,7 +44,7 @@ fwhm, // Full Width at Half Maximum
|
|
|
43
44
|
eta) {
|
|
44
45
|
// Intensity at x
|
|
45
46
|
// Clamp eta to [0, 1]
|
|
46
|
-
const safe_eta =
|
|
47
|
+
const safe_eta = clamp01(eta);
|
|
47
48
|
return safe_eta * lorentzian(x, x0, fwhm) + (1 - safe_eta) * gaussian(x, x0, fwhm);
|
|
48
49
|
}
|
|
49
50
|
// Computes a broadened XRD pattern from discrete peaks.
|
package/dist/xrd/calc-xrd.js
CHANGED
|
@@ -67,13 +67,6 @@ function get_unique_families(hkls) {
|
|
|
67
67
|
}
|
|
68
68
|
return family_map;
|
|
69
69
|
}
|
|
70
|
-
function compute_reciprocal_lattice_rows(structure) {
|
|
71
|
-
// For row-wise lattice matrix A (rows are a, b, c), reciprocal rows are inv(A)^T
|
|
72
|
-
const direct = structure.lattice.matrix;
|
|
73
|
-
const inv = math.matrix_inverse_3x3(direct);
|
|
74
|
-
const recip = math.transpose_3x3_matrix(inv);
|
|
75
|
-
return recip;
|
|
76
|
-
}
|
|
77
70
|
function enumerate_reciprocal_points(recip_rows, direct_rows, max_radius, min_radius) {
|
|
78
71
|
const recip_b1 = recip_rows[0];
|
|
79
72
|
const recip_b2 = recip_rows[1];
|
|
@@ -128,10 +121,9 @@ export function compute_xrd_pattern(structure, options = {}) {
|
|
|
128
121
|
}
|
|
129
122
|
wavelength = WAVELENGTHS[wl_input];
|
|
130
123
|
}
|
|
131
|
-
// Symmetry refinement (symprec > 0) is not implemented in TS version.
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
const recip_rows = compute_reciprocal_lattice_rows(structure);
|
|
124
|
+
// Symmetry refinement (symprec > 0) is not implemented in TS version. Option retained for API parity.
|
|
125
|
+
// For row-wise lattice matrix A (rows are a, b, c), reciprocal rows are inv(A)^T
|
|
126
|
+
const recip_rows = math.transpose_3x3_matrix(math.matrix_inverse_3x3(structure.lattice.matrix));
|
|
135
127
|
// Bragg condition bounds: reciprocal vector length r = 2 sin(theta) / lambda
|
|
136
128
|
const two_theta_range = options.two_theta_range === null ? null : (options.two_theta_range ?? [0, 180]);
|
|
137
129
|
const [min_radius, max_radius] = two_theta_range === null
|
|
@@ -192,14 +184,15 @@ export function compute_xrd_pattern(structure, options = {}) {
|
|
|
192
184
|
const g_dot_r_all = frac_coords.map((frac_coord) => math.dot(frac_coord, hkl));
|
|
193
185
|
// Atomic scattering factors (vectorized style)
|
|
194
186
|
const f_scattering = coeffs.map((coeff_entry) => {
|
|
195
|
-
const { a: a_arr, b: b_arr, z } = coeff_entry;
|
|
187
|
+
const { a: a_arr, b: b_arr, z: atomic_number } = coeff_entry;
|
|
196
188
|
const num_terms = Math.min(a_arr.length, b_arr.length);
|
|
197
189
|
const sum_terms = a_arr
|
|
198
190
|
.slice(0, num_terms)
|
|
199
191
|
.reduce((sum, a_i, term_idx) => sum + a_i * Math.exp(-b_arr[term_idx] * sin_theta_over_lambda_sq), 0);
|
|
200
192
|
// pymatgen-style fitted params: f = Z − 41.78214·s²·Σ aᵢ·exp(−bᵢ·s²)
|
|
201
|
-
if (
|
|
202
|
-
return
|
|
193
|
+
if (atomic_number !== undefined) {
|
|
194
|
+
return atomic_number - 41.78214 * sin_theta_over_lambda_sq * sum_terms;
|
|
195
|
+
}
|
|
203
196
|
return sum_terms + (coeff_entry.c ?? 0);
|
|
204
197
|
});
|
|
205
198
|
const dw_corr = dw_factors.map((dw_b) => Math.exp(-dw_b * sin_theta_over_lambda_sq));
|
|
@@ -264,7 +257,7 @@ export function compute_xrd_pattern(structure, options = {}) {
|
|
|
264
257
|
const fam = get_unique_families(item.hkls);
|
|
265
258
|
const fam_array = [];
|
|
266
259
|
for (const [repr_key, multiplicity] of fam.entries()) {
|
|
267
|
-
const repr = repr_key.split(`,`).map(
|
|
260
|
+
const repr = repr_key.split(`,`).map(Number);
|
|
268
261
|
fam_array.push({ hkl: repr, multiplicity });
|
|
269
262
|
}
|
|
270
263
|
hkls_out.push(fam_array);
|
package/dist/xrd/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CompositionType } from '../composition';
|
|
2
|
-
import type { Vec3 } from '../math';
|
|
2
|
+
import type { Vec2, Vec3 } from '../math';
|
|
3
3
|
import type { RadiationKey } from './calc-xrd';
|
|
4
4
|
export * from './broadening';
|
|
5
5
|
export * from './calc-xrd';
|
|
@@ -26,7 +26,7 @@ export type XrdOptions = {
|
|
|
26
26
|
symprec?: number;
|
|
27
27
|
debye_waller_factors?: CompositionType;
|
|
28
28
|
scaled?: boolean;
|
|
29
|
-
two_theta_range?:
|
|
29
|
+
two_theta_range?: Vec2 | null;
|
|
30
30
|
peak_merge_tol?: number;
|
|
31
31
|
scaled_intensity_tol?: number;
|
|
32
32
|
};
|
package/dist/xrd/parse.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { XrdPattern } from './index';
|
|
2
2
|
export declare function parse_xy_file(content: string): XrdPattern | null;
|
|
3
|
-
export declare function parse_xye_file(content: string): XrdPattern | null;
|
|
4
3
|
export declare function parse_ras_file(content: string): XrdPattern | null;
|
|
5
4
|
export declare function parse_uxd_file(content: string): XrdPattern | null;
|
|
6
5
|
export declare function parse_gsas_file(content: string): XrdPattern | null;
|