matterviz 0.1.12 → 0.1.13

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.
Files changed (195) hide show
  1. package/dist/ContextMenu.svelte +1 -1
  2. package/dist/ContextMenu.svelte.d.ts +3 -3
  3. package/dist/DraggablePane.svelte +10 -5
  4. package/dist/DraggablePane.svelte.d.ts +3 -3
  5. package/dist/FilePicker.svelte.d.ts +3 -3
  6. package/dist/Icon.svelte.d.ts +3 -3
  7. package/dist/Nav.svelte +76 -31
  8. package/dist/SettingsSection.svelte.d.ts +3 -3
  9. package/dist/Spinner.svelte +18 -29
  10. package/dist/Spinner.svelte.d.ts +3 -3
  11. package/dist/app.css +4 -0
  12. package/dist/bands/Bands.svelte +216 -0
  13. package/dist/bands/Bands.svelte.d.ts +16 -0
  14. package/dist/bands/BandsAndDos.svelte +26 -0
  15. package/dist/bands/BandsAndDos.svelte.d.ts +16 -0
  16. package/dist/bands/Dos.svelte +124 -0
  17. package/dist/bands/Dos.svelte.d.ts +18 -0
  18. package/dist/bands/helpers.d.ts +11 -0
  19. package/dist/bands/helpers.js +195 -0
  20. package/dist/bands/index.d.ts +5 -0
  21. package/dist/bands/index.js +6 -0
  22. package/dist/bands/types.d.ts +54 -0
  23. package/dist/bands/types.js +2 -0
  24. package/dist/brillouin/BrillouinZone.svelte +373 -0
  25. package/dist/brillouin/BrillouinZone.svelte.d.ts +57 -0
  26. package/dist/brillouin/BrillouinZoneControls.svelte +88 -0
  27. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +14 -0
  28. package/dist/brillouin/BrillouinZoneExportPane.svelte +129 -0
  29. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
  30. package/dist/brillouin/BrillouinZoneInfoPane.svelte +115 -0
  31. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
  32. package/dist/brillouin/BrillouinZoneScene.svelte +180 -0
  33. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +34 -0
  34. package/dist/brillouin/compute.d.ts +7 -0
  35. package/dist/brillouin/compute.js +215 -0
  36. package/dist/brillouin/index.d.ts +7 -0
  37. package/dist/brillouin/index.js +7 -0
  38. package/dist/brillouin/types.d.ts +23 -0
  39. package/dist/brillouin/types.js +1 -0
  40. package/dist/composition/BarChart.svelte.d.ts +3 -3
  41. package/dist/composition/BubbleChart.svelte +7 -6
  42. package/dist/composition/BubbleChart.svelte.d.ts +3 -3
  43. package/dist/composition/Composition.svelte.d.ts +3 -3
  44. package/dist/composition/PieChart.svelte +1 -1
  45. package/dist/composition/PieChart.svelte.d.ts +3 -3
  46. package/dist/composition/parse.d.ts +3 -3
  47. package/dist/coordination/CoordinationBarPlot.svelte +241 -0
  48. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +29 -0
  49. package/dist/coordination/calc-coordination.d.ts +15 -0
  50. package/dist/coordination/calc-coordination.js +66 -0
  51. package/dist/coordination/index.d.ts +8 -0
  52. package/dist/coordination/index.js +7 -0
  53. package/dist/element/BohrAtom.svelte.d.ts +3 -3
  54. package/dist/element/ElementHeading.svelte.d.ts +3 -3
  55. package/dist/element/ElementPhoto.svelte.d.ts +3 -3
  56. package/dist/element/ElementStats.svelte.d.ts +3 -3
  57. package/dist/element/ElementTile.svelte +1 -1
  58. package/dist/element/ElementTile.svelte.d.ts +4 -4
  59. package/dist/element/Nucleus.svelte.d.ts +3 -3
  60. package/dist/icons.d.ts +4 -0
  61. package/dist/icons.js +4 -0
  62. package/dist/index.d.ts +5 -1
  63. package/dist/index.js +5 -1
  64. package/dist/io/export.d.ts +1 -6
  65. package/dist/io/export.js +12 -12
  66. package/dist/labels.d.ts +19 -0
  67. package/dist/labels.js +59 -0
  68. package/dist/math.d.ts +7 -2
  69. package/dist/math.js +24 -12
  70. package/dist/periodic-table/PeriodicTable.svelte.d.ts +3 -3
  71. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +3 -3
  72. package/dist/periodic-table/PropertySelect.svelte +1 -1
  73. package/dist/periodic-table/PropertySelect.svelte.d.ts +5 -4
  74. package/dist/periodic-table/TableInset.svelte.d.ts +3 -3
  75. package/dist/phase-diagram/PhaseDiagram2D.svelte +44 -107
  76. package/dist/phase-diagram/PhaseDiagram2D.svelte.d.ts +7 -27
  77. package/dist/phase-diagram/PhaseDiagram3D.svelte +67 -170
  78. package/dist/phase-diagram/PhaseDiagram3D.svelte.d.ts +7 -31
  79. package/dist/phase-diagram/PhaseDiagram4D.svelte +87 -145
  80. package/dist/phase-diagram/PhaseDiagram4D.svelte.d.ts +5 -28
  81. package/dist/phase-diagram/PhaseDiagramControls.svelte +9 -9
  82. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +6 -6
  83. package/dist/phase-diagram/PhaseDiagramInfoPane.svelte +4 -4
  84. package/dist/phase-diagram/PhaseDiagramInfoPane.svelte.d.ts +5 -5
  85. package/dist/phase-diagram/PhaseDiagramStats.svelte +9 -16
  86. package/dist/phase-diagram/PhaseDiagramStats.svelte.d.ts +3 -3
  87. package/dist/phase-diagram/StructurePopup.svelte.d.ts +3 -3
  88. package/dist/phase-diagram/barycentric-coords.js +13 -24
  89. package/dist/phase-diagram/helpers.d.ts +12 -14
  90. package/dist/phase-diagram/helpers.js +70 -23
  91. package/dist/phase-diagram/index.d.ts +58 -0
  92. package/dist/phase-diagram/index.js +44 -0
  93. package/dist/phase-diagram/thermodynamics.js +2 -3
  94. package/dist/phase-diagram/types.d.ts +3 -8
  95. package/dist/plot/BarPlot.svelte +474 -240
  96. package/dist/plot/BarPlot.svelte.d.ts +16 -37
  97. package/dist/plot/BarPlotControls.svelte +33 -201
  98. package/dist/plot/BarPlotControls.svelte.d.ts +11 -22
  99. package/dist/plot/ColorBar.svelte.d.ts +3 -3
  100. package/dist/plot/ColorScaleSelect.svelte +1 -1
  101. package/dist/plot/ColorScaleSelect.svelte.d.ts +3 -3
  102. package/dist/plot/ElementScatter.svelte +5 -5
  103. package/dist/plot/ElementScatter.svelte.d.ts +8 -8
  104. package/dist/plot/Histogram.svelte +318 -170
  105. package/dist/plot/Histogram.svelte.d.ts +21 -41
  106. package/dist/plot/HistogramControls.svelte +115 -347
  107. package/dist/plot/HistogramControls.svelte.d.ts +13 -28
  108. package/dist/plot/Line.svelte +1 -1
  109. package/dist/plot/Line.svelte.d.ts +4 -4
  110. package/dist/plot/PlotControls.svelte +280 -0
  111. package/dist/plot/PlotControls.svelte.d.ts +4 -0
  112. package/dist/plot/PlotLegend.svelte +9 -24
  113. package/dist/plot/PlotLegend.svelte.d.ts +3 -3
  114. package/dist/plot/ScatterPlot.svelte +536 -571
  115. package/dist/plot/ScatterPlot.svelte.d.ts +18 -90
  116. package/dist/plot/ScatterPlotControls.svelte +108 -316
  117. package/dist/plot/ScatterPlotControls.svelte.d.ts +11 -38
  118. package/dist/plot/ScatterPoint.svelte +1 -1
  119. package/dist/plot/ScatterPoint.svelte.d.ts +5 -5
  120. package/dist/plot/SpacegroupBarPlot.svelte +235 -0
  121. package/dist/plot/SpacegroupBarPlot.svelte.d.ts +9 -0
  122. package/dist/plot/data-transform.d.ts +2 -2
  123. package/dist/plot/data-transform.js +1 -5
  124. package/dist/plot/index.d.ts +12 -200
  125. package/dist/plot/index.js +14 -6
  126. package/dist/plot/layout.d.ts +10 -16
  127. package/dist/plot/layout.js +40 -25
  128. package/dist/plot/scales.d.ts +7 -8
  129. package/dist/plot/scales.js +22 -7
  130. package/dist/plot/types.d.ts +303 -0
  131. package/dist/plot/types.js +1 -0
  132. package/dist/rdf/RdfPlot.svelte +156 -0
  133. package/dist/rdf/RdfPlot.svelte.d.ts +20 -0
  134. package/dist/rdf/calc-rdf.d.ts +4 -0
  135. package/dist/rdf/calc-rdf.js +107 -0
  136. package/dist/rdf/index.d.ts +22 -0
  137. package/dist/rdf/index.js +2 -0
  138. package/dist/settings.d.ts +86 -75
  139. package/dist/settings.js +257 -155
  140. package/dist/structure/Bond.svelte +126 -110
  141. package/dist/structure/Bond.svelte.d.ts +7 -20
  142. package/dist/structure/CanvasTooltip.svelte.d.ts +4 -4
  143. package/dist/structure/Cylinder.svelte +29 -0
  144. package/dist/structure/Cylinder.svelte.d.ts +10 -0
  145. package/dist/structure/Lattice.svelte +1 -2
  146. package/dist/structure/Lattice.svelte.d.ts +3 -3
  147. package/dist/structure/Structure.svelte +23 -8
  148. package/dist/structure/Structure.svelte.d.ts +10 -7
  149. package/dist/structure/StructureControls.svelte +25 -134
  150. package/dist/structure/StructureControls.svelte.d.ts +4 -9
  151. package/dist/structure/StructureExportPane.svelte +188 -0
  152. package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
  153. package/dist/structure/StructureInfoPane.svelte.d.ts +3 -3
  154. package/dist/structure/StructureLegend.svelte +91 -27
  155. package/dist/structure/StructureLegend.svelte.d.ts +5 -4
  156. package/dist/structure/StructureScene.svelte +93 -100
  157. package/dist/structure/StructureScene.svelte.d.ts +15 -12
  158. package/dist/structure/Vector.svelte +19 -25
  159. package/dist/structure/Vector.svelte.d.ts +3 -3
  160. package/dist/structure/bonding.d.ts +16 -14
  161. package/dist/structure/bonding.js +207 -216
  162. package/dist/structure/export.d.ts +3 -0
  163. package/dist/structure/export.js +120 -0
  164. package/dist/structure/index.d.ts +15 -1
  165. package/dist/structure/index.js +2 -0
  166. package/dist/symmetry/WyckoffTable.svelte.d.ts +3 -3
  167. package/dist/symmetry/index.d.ts +1 -0
  168. package/dist/symmetry/index.js +1 -0
  169. package/dist/symmetry/spacegroups.d.ts +9 -0
  170. package/dist/symmetry/spacegroups.js +397 -0
  171. package/dist/theme/ThemeControl.svelte.d.ts +3 -3
  172. package/dist/theme/themes.js +2 -16
  173. package/dist/trajectory/Trajectory.svelte +52 -78
  174. package/dist/trajectory/Trajectory.svelte.d.ts +5 -5
  175. package/dist/trajectory/TrajectoryError.svelte.d.ts +3 -3
  176. package/dist/trajectory/TrajectoryExportPane.svelte +1 -1
  177. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +5 -5
  178. package/dist/trajectory/TrajectoryInfoPane.svelte +1 -1
  179. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +3 -3
  180. package/dist/trajectory/extract.js +2 -1
  181. package/dist/trajectory/index.d.ts +1 -1
  182. package/dist/trajectory/index.js +1 -1
  183. package/dist/trajectory/parse.js +21 -14
  184. package/dist/utils.d.ts +1 -0
  185. package/dist/utils.js +17 -0
  186. package/dist/xrd/XrdPlot.svelte +14 -11
  187. package/dist/xrd/XrdPlot.svelte.d.ts +6 -5
  188. package/package.json +20 -12
  189. package/readme.md +1 -1
  190. package/dist/material/MaterialCard.svelte +0 -123
  191. package/dist/material/MaterialCard.svelte.d.ts +0 -9
  192. package/dist/material/index.d.ts +0 -1
  193. package/dist/material/index.js +0 -1
  194. package/dist/plot/formatting.d.ts +0 -7
  195. package/dist/plot/formatting.js +0 -53
@@ -1,123 +0,0 @@
1
- <script lang="ts">import { format_num, InfoCard, superscript_digits } from '..';
2
- let { material, after_symmetry, ...rest } = $props();
3
- let data = $derived([
4
- {
5
- title: `Band Gap`,
6
- value: material.band_gap,
7
- unit: `eV`,
8
- tooltip: material.vbm && material.cbm
9
- ? `VBM: ${material.vbm}, CBM: ${material.cbm}`
10
- : ``,
11
- },
12
- {
13
- title: `Space Group`,
14
- value: `${material.symmetry?.number}`,
15
- unit: `(${material.symmetry?.symbol})`,
16
- condition: material.symmetry?.number,
17
- },
18
- {
19
- title: `E<sub>above hull</sub>`,
20
- value: 1000 * (material?.energy_above_hull ?? 0),
21
- unit: `meV/atom`,
22
- condition: `energy_above_hull` in material,
23
- },
24
- {
25
- title: `Predicted stable`,
26
- value: (material?.energy_above_hull ?? 0 > 0) ? `❌ No` : `✅ Yes`,
27
- condition: `energy_above_hull` in material,
28
- },
29
- {
30
- title: `Formation Energy`,
31
- value: material.formation_energy_per_atom,
32
- unit: `eV/atom`,
33
- },
34
- {
35
- title: `Experimentally Observed`,
36
- value: material.theoretical ? `❌ No` : `✅ Yes`,
37
- },
38
- { title: `Total Energy`, value: material.energy_per_atom, unit: `eV/atom` },
39
- {
40
- title: `Uncorrected Energy`,
41
- value: material.uncorrected_energy_per_atom,
42
- unit: `eV/atom`,
43
- condition: material.uncorrected_energy_per_atom != material.energy_per_atom,
44
- },
45
- { title: `Last updated`, value: material.last_updated?.$date.split(`T`)[0] },
46
- {
47
- title: `Origins`,
48
- value: Array.isArray(material.origins)
49
- ? material.origins.join(`, `)
50
- : material.origins,
51
- condition: material.origins?.length,
52
- },
53
- { title: `Voigt bulk modulus`, value: material.k_voigt, unit: `GPa` },
54
- { title: `Voigt shear modulus`, value: material.g_voigt, unit: `GPa` },
55
- { title: `Refractive index`, value: material.n },
56
- {
57
- title: `Is magnetic`,
58
- value: `${material.is_magnetic ? `yes` : `no`} ${material.is_magnetic
59
- ? `(${format_num(material.total_magnetization)} µB/f.u.)`
60
- : ``}`,
61
- tooltip: `µB: Bohr magneton, f.u.: formula unit`,
62
- },
63
- {
64
- title: `Ordering`,
65
- value: {
66
- NM: `non-magnetic`,
67
- FM: `ferromagnetic`,
68
- FiM: `ferrimagnetic`,
69
- AFM: `antiferromagnetic`,
70
- }[material.ordering] ?? `unknown`,
71
- },
72
- {
73
- title: `Possible oxidation states`,
74
- value: superscript_digits(material.possible_species?.join(` `) ?? ``),
75
- condition: material.possible_species?.length,
76
- },
77
- ]);
78
- </script>
79
-
80
- <InfoCard {data} {...rest} title="Material" />
81
-
82
- {@render after_symmetry?.()}
83
-
84
- <details>
85
- <summary>Related material IDs</summary>
86
- {#if material.task_ids?.length}
87
- <p>
88
- Task IDs: {#each material.task_ids as id (id)}
89
- <a href="https://materialsproject.org/tasks/{id}">{id}</a>
90
- {/each}
91
- </p>
92
- {/if}
93
- {#if material.database_IDs?.icsd?.length}
94
- <p>
95
- ICSD IDs: {#each material.database_IDs.icsd as id (id)}
96
- {@const href =
97
- `https://ccdc.cam.ac.uk/structures/Search?Ccdcid=${id}&DatabaseToSearch=ICSD`}
98
- <a {href}>{id}</a>
99
- {/each}
100
- </p>
101
- {/if}
102
- </details>
103
-
104
- <p class="warning">
105
- {material.warnings}
106
- </p>
107
-
108
- <style>
109
- .warning {
110
- color: var(--warning-color, darkred);
111
- }
112
- p {
113
- display: flex;
114
- flex-wrap: wrap;
115
- gap: 1ex 1em;
116
- font-size: smaller;
117
- }
118
- p a {
119
- background-color: rgba(255, 255, 255, 0.1);
120
- padding: 0 3pt;
121
- border-radius: 3pt;
122
- }
123
- </style>
@@ -1,9 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- interface Props extends HTMLAttributes<HTMLElementTagNameMap[`section`]> {
4
- material: Record<string, unknown>;
5
- after_symmetry?: Snippet;
6
- }
7
- declare const MaterialCard: import("svelte").Component<Props, {}, "">;
8
- type MaterialCard = ReturnType<typeof MaterialCard>;
9
- export default MaterialCard;
@@ -1 +0,0 @@
1
- export { default as MaterialCard } from './MaterialCard.svelte';
@@ -1 +0,0 @@
1
- export { default as MaterialCard } from './MaterialCard.svelte';
@@ -1,7 +0,0 @@
1
- import type { SymbolType } from 'd3-shape';
2
- import * as d3_symbols from 'd3-shape';
3
- export type D3Symbol = keyof typeof d3_symbols & `symbol${Capitalize<string>}`;
4
- export type D3SymbolName = Exclude<D3Symbol extends `symbol${infer Name}` ? Name : never, ``>;
5
- export declare const symbol_names: D3SymbolName[];
6
- export declare const symbol_map: Record<D3SymbolName, SymbolType>;
7
- export declare function format_value(value: number, formatter: string): string;
@@ -1,53 +0,0 @@
1
- import { format } from 'd3-format';
2
- import * as d3_symbols from 'd3-shape';
3
- import { timeFormat } from 'd3-time-format';
4
- export const symbol_names = [
5
- ...new Set([...d3_symbols.symbolsFill, ...d3_symbols.symbolsStroke]),
6
- ].map((sym) => {
7
- // Attempt to find the key associated with this symbol function object
8
- for (const key in d3_symbols) {
9
- if (Object.prototype.hasOwnProperty.call(d3_symbols, key) &&
10
- d3_symbols[key] === sym &&
11
- key.match(/symbol[A-Z]/))
12
- return key.substring(6);
13
- }
14
- });
15
- export const symbol_map = Object.fromEntries(symbol_names.map((name) => [name, d3_symbols[`symbol${name}`]]));
16
- // Format a value for display with optional time formatting
17
- export function format_value(value, formatter) {
18
- if (!formatter)
19
- return `${value}`;
20
- if (formatter.startsWith(`%`))
21
- return timeFormat(formatter)(new Date(value));
22
- // Handle special values consistently
23
- if (value === -Infinity)
24
- return `-Infinity`;
25
- if (value === Infinity)
26
- return `Infinity`;
27
- if (Number.isNaN(value))
28
- return `NaN`;
29
- let formatted = format(formatter)(value);
30
- // Replace unicode minus with ASCII minus for consistency
31
- formatted = formatted.replace(/−/g, `-`);
32
- // Handle percentage formatting - remove trailing zeros but keep appropriate precision
33
- if (formatter.includes(`%`)) {
34
- return formatted.includes(`.`)
35
- ? formatted.replace(/(\.\d*?)0+%$/, `$1%`).replace(/\.%$/, `%`)
36
- : formatted;
37
- }
38
- // Handle currency formatting - ensure proper decimal places
39
- if (formatter.includes(`$`)) {
40
- // If the formatter specifies decimal places (e.g., .2f), don't remove trailing zeros
41
- if (formatter.includes(`.`) && /\.\d+f/.test(formatter)) {
42
- return formatted;
43
- }
44
- // Otherwise, remove trailing zeros as usual
45
- return formatted.includes(`.`)
46
- ? formatted.replace(/(\.\d*?)0+$/, `$1`).replace(/\.$/, ``)
47
- : formatted;
48
- }
49
- // Remove trailing zeros after decimal point for other formats
50
- return formatted.includes(`.`)
51
- ? formatted.replace(/(\.\d*?)0+$/, `$1`).replace(/\.$/, ``)
52
- : formatted;
53
- }