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
@@ -0,0 +1,107 @@
1
+ import { calc_lattice_params, euclidean_dist, matrix_inverse_3x3, pbc_dist, } from '../math';
2
+ import { make_supercell } from '../structure/supercell';
3
+ // Calculate radial distribution function
4
+ export function calculate_rdf(structure, options = {}) {
5
+ const { center_species, neighbor_species, cutoff = 15, n_bins = 75, auto_expand = true, expansion_factor = 2.0, } = options;
6
+ let { pbc = [true, true, true] } = options;
7
+ if (cutoff <= 0 || n_bins <= 0) {
8
+ throw new Error(`cutoff and n_bins must be positive`);
9
+ }
10
+ // Validate structure has lattice
11
+ if (!structure.lattice?.matrix) {
12
+ throw new Error(`Structure must have a lattice for RDF calculation`);
13
+ }
14
+ let lattice = structure.lattice.matrix;
15
+ let { sites } = structure;
16
+ // Expand structure if needed to ensure shortest lattice vector is expansion_factor× the cutoff
17
+ // This prevents artificial close contacts at cell boundaries when using PBC
18
+ // Standard practice uses 2.0-2.5× to eliminate finite-size effects
19
+ if (auto_expand) {
20
+ const { a, b, c } = calc_lattice_params(lattice);
21
+ const min_size = cutoff * expansion_factor;
22
+ const [n_a, n_b, n_c] = [a, b, c].map((len) => Math.ceil(min_size / len));
23
+ if (n_a > 1 || n_b > 1 || n_c > 1) {
24
+ const expanded_structure = make_supercell(structure, [n_a, n_b, n_c], false);
25
+ sites = expanded_structure.sites;
26
+ lattice = expanded_structure.lattice.matrix;
27
+ pbc = [false, false, false]; // Disable PBC since we explicitly expanded the structure
28
+ }
29
+ }
30
+ const bin_size = cutoff / n_bins;
31
+ const r = Array.from({ length: n_bins }, (_, idx) => (idx + 0.5) * bin_size);
32
+ const g_r = new Array(n_bins).fill(0);
33
+ if (sites.length === 0)
34
+ return { r, g_r };
35
+ // Note: Sites with mixed occupancy are treated as the first species only.
36
+ // TODO For proper occupancy support, contributions should be weighted by species occupancy.
37
+ const elements = sites.map((s) => s.species[0].element);
38
+ const centers = center_species
39
+ ? sites.filter((_, idx) => elements[idx] === center_species)
40
+ : sites;
41
+ const neighbors = neighbor_species
42
+ ? sites.filter((_, idx) => elements[idx] === neighbor_species)
43
+ : sites;
44
+ if (centers.length === 0 || neighbors.length === 0) {
45
+ const element_pair = center_species && neighbor_species
46
+ ? [center_species, neighbor_species]
47
+ : undefined;
48
+ return { r, g_r, element_pair };
49
+ }
50
+ // Calculate distances and bin them
51
+ const use_pbc = pbc.some((flag) => flag);
52
+ // Pre-compute lattice inverse once to avoid O(P) inversions in inner loop
53
+ const lattice_inv = use_pbc ? matrix_inverse_3x3(lattice) : undefined;
54
+ for (const center of centers) {
55
+ for (const neighbor of neighbors) {
56
+ if (center === neighbor)
57
+ continue;
58
+ const dist = use_pbc
59
+ ? pbc_dist(center.xyz, neighbor.xyz, lattice, lattice_inv, pbc)
60
+ : euclidean_dist(center.xyz, neighbor.xyz);
61
+ if (dist > 0 && dist < cutoff) {
62
+ g_r[Math.min(Math.floor(dist / bin_size), n_bins - 1)]++;
63
+ }
64
+ }
65
+ }
66
+ // Normalize
67
+ const n_pairs = center_species === neighbor_species
68
+ ? centers.length * (neighbors.length - 1)
69
+ : centers.length * neighbors.length;
70
+ if (n_pairs > 0) {
71
+ const volume = calc_lattice_params(lattice).volume;
72
+ for (let idx = 0; idx < n_bins; idx++) {
73
+ g_r[idx] /= n_pairs * ((4 * Math.PI * r[idx] ** 2 * bin_size) / volume);
74
+ }
75
+ }
76
+ const element_pair = center_species && neighbor_species
77
+ ? [center_species, neighbor_species]
78
+ : undefined;
79
+ return { r, g_r, element_pair };
80
+ }
81
+ // Calculate RDF for all element pairs
82
+ export function calculate_all_pair_rdfs(structure, options = {}) {
83
+ const elems = [...new Set(structure.sites.map((s) => s.species[0].element))].sort();
84
+ // If auto_expand is true, expand the structure once and reuse it for all pairs
85
+ // to avoid repeated supercell computations
86
+ let structure_to_use = structure;
87
+ if (options.auto_expand !== false) {
88
+ const { cutoff = 15, expansion_factor = 2.0 } = options;
89
+ const lattice = structure.lattice?.matrix;
90
+ if (lattice) {
91
+ const { a, b, c } = calc_lattice_params(lattice);
92
+ const min_size = cutoff * expansion_factor;
93
+ const [n_a, n_b, n_c] = [a, b, c].map((len) => Math.ceil(min_size / len));
94
+ if (n_a > 1 || n_b > 1 || n_c > 1) {
95
+ structure_to_use = make_supercell(structure, [n_a, n_b, n_c], false);
96
+ }
97
+ }
98
+ }
99
+ // Pass auto_expand=false since we've already expanded, and pbc=false for expanded structure
100
+ const pbc = [false, false, false];
101
+ const rdf_options = { ...options, auto_expand: false, pbc };
102
+ return elems.flatMap((el1, idx1) => elems.slice(idx1).map((el2) => calculate_rdf(structure_to_use, {
103
+ ...rdf_options,
104
+ center_species: el1,
105
+ neighbor_species: el2,
106
+ })));
107
+ }
@@ -0,0 +1,22 @@
1
+ import type { Pbc } from '../structure';
2
+ export { calculate_all_pair_rdfs, calculate_rdf } from './calc-rdf';
3
+ export { default as RdfPlot } from './RdfPlot.svelte';
4
+ export type RdfPattern = {
5
+ r: number[];
6
+ g_r: number[];
7
+ element_pair?: [string, string];
8
+ };
9
+ export interface RdfEntry {
10
+ label: string;
11
+ pattern: RdfPattern;
12
+ color?: string;
13
+ }
14
+ export interface RdfOptions {
15
+ center_species?: string;
16
+ neighbor_species?: string;
17
+ cutoff?: number;
18
+ n_bins?: number;
19
+ pbc?: Pbc;
20
+ auto_expand?: boolean;
21
+ expansion_factor?: number;
22
+ }
@@ -0,0 +1,2 @@
1
+ export { calculate_all_pair_rdfs, calculate_rdf } from './calc-rdf';
2
+ export { default as RdfPlot } from './RdfPlot.svelte';
@@ -1,10 +1,11 @@
1
+ import type { D3SymbolName } from './labels';
1
2
  import type { Vec3 } from './math';
2
- import type { D3SymbolName, Markers, Orientation } from './plot';
3
+ import type { Orientation } from './plot';
3
4
  import type { BondingStrategy } from './structure/bonding';
4
5
  export interface SettingType<T = unknown> {
5
6
  value: T;
6
7
  description: string;
7
- enum?: readonly string[];
8
+ enum?: Readonly<Record<Extract<T, string>, string>>;
8
9
  minimum?: number;
9
10
  maximum?: number;
10
11
  minItems?: number;
@@ -13,6 +14,64 @@ export interface SettingType<T = unknown> {
13
14
  }
14
15
  export declare const show_bonds_options: readonly ["never", "always", "crystals", "molecules"];
15
16
  export type ShowBonds = (typeof show_bonds_options)[number];
17
+ export type CameraProjection = `perspective` | `orthographic`;
18
+ type DisplayConfigType = {
19
+ x_grid: SettingType<boolean>;
20
+ y_grid: SettingType<boolean>;
21
+ y2_grid: SettingType<boolean>;
22
+ x_zero_line: SettingType<boolean>;
23
+ y_zero_line: SettingType<boolean>;
24
+ };
25
+ type BarStyleType = {
26
+ color: SettingType<string>;
27
+ opacity: SettingType<number>;
28
+ stroke_width: SettingType<number>;
29
+ stroke_color: SettingType<string>;
30
+ stroke_opacity: SettingType<number>;
31
+ };
32
+ type PointStyleType = {
33
+ size: SettingType<number>;
34
+ color: SettingType<string>;
35
+ opacity: SettingType<number>;
36
+ stroke_width: SettingType<number>;
37
+ stroke_color: SettingType<string>;
38
+ stroke_opacity: SettingType<number>;
39
+ };
40
+ type LineStyleType = {
41
+ width: SettingType<number>;
42
+ color: SettingType<string>;
43
+ opacity: SettingType<number>;
44
+ dash: SettingType<string>;
45
+ };
46
+ type SimpleBarStyleType = {
47
+ color: SettingType<string>;
48
+ opacity: SettingType<number>;
49
+ };
50
+ type SimpleLineStyleType = {
51
+ width: SettingType<number>;
52
+ color: SettingType<string>;
53
+ };
54
+ type PhaseDiagramCommonType = {
55
+ camera_zoom: SettingType<number>;
56
+ camera_center_x: SettingType<number>;
57
+ camera_center_y: SettingType<number>;
58
+ color_mode: SettingType<`stability` | `energy`>;
59
+ color_scale: SettingType<string>;
60
+ show_stable: SettingType<boolean>;
61
+ show_unstable: SettingType<boolean>;
62
+ show_stable_labels: SettingType<boolean>;
63
+ show_unstable_labels: SettingType<boolean>;
64
+ max_hull_dist_show_phases: SettingType<number>;
65
+ max_hull_dist_show_labels: SettingType<number>;
66
+ fullscreen: SettingType<boolean>;
67
+ info_pane_open: SettingType<boolean>;
68
+ legend_pane_open: SettingType<boolean>;
69
+ };
70
+ type PhaseDiagramWith3DType = PhaseDiagramCommonType & {
71
+ show_hull_faces: SettingType<boolean>;
72
+ hull_face_color: SettingType<string>;
73
+ hull_face_opacity: SettingType<number>;
74
+ };
16
75
  export interface SettingsConfig {
17
76
  color_scheme: SettingType<string>;
18
77
  background_color: SettingType<string>;
@@ -29,7 +88,7 @@ export interface SettingsConfig {
29
88
  bonding_strategy: SettingType<BondingStrategy>;
30
89
  show_gizmo: SettingType<boolean>;
31
90
  camera_position: SettingType<Vec3>;
32
- camera_projection: SettingType<`perspective` | `orthographic`>;
91
+ camera_projection: SettingType<CameraProjection>;
33
92
  initial_zoom: SettingType<number>;
34
93
  fov: SettingType<number>;
35
94
  rotation_damping: SettingType<number>;
@@ -77,11 +136,6 @@ export interface SettingsConfig {
77
136
  text_file_threshold: SettingType<number>;
78
137
  use_indexing: SettingType<boolean>;
79
138
  chunk_size: SettingType<number>;
80
- histogram_mode: SettingType<`overlay` | `single`>;
81
- histogram_show_legend: SettingType<boolean>;
82
- histogram_bin_count: SettingType<number>;
83
- histogram_bar_opacity: SettingType<number>;
84
- histogram_bar_stroke_width: SettingType<number>;
85
139
  step_label_format: SettingType<string>;
86
140
  property_value_format: SettingType<string>;
87
141
  tooltip_format: SettingType<string>;
@@ -107,10 +161,11 @@ export interface SettingsConfig {
107
161
  auto_fit_range: SettingType<boolean>;
108
162
  grid_lines: SettingType<boolean>;
109
163
  axis_labels: SettingType<boolean>;
110
- show_zero_lines: SettingType<boolean>;
111
- x_grid: SettingType<boolean>;
112
- y_grid: SettingType<boolean>;
113
- y2_grid: SettingType<boolean>;
164
+ show_x_zero_line: SettingType<boolean>;
165
+ show_y_zero_line: SettingType<boolean>;
166
+ show_x_grid: SettingType<boolean>;
167
+ show_y_grid: SettingType<boolean>;
168
+ show_y2_grid: SettingType<boolean>;
114
169
  x_format: SettingType<string>;
115
170
  y_format: SettingType<string>;
116
171
  y2_format: SettingType<string>;
@@ -120,84 +175,39 @@ export interface SettingsConfig {
120
175
  y_ticks: SettingType<number>;
121
176
  };
122
177
  scatter: {
123
- point_size: SettingType<number>;
124
178
  show_legend: SettingType<boolean>;
125
- markers: SettingType<Markers>;
126
- point_color: SettingType<string>;
127
- point_opacity: SettingType<number>;
128
- point_stroke_width: SettingType<number>;
129
- point_stroke_color: SettingType<string>;
130
- point_stroke_opacity: SettingType<number>;
131
- line_width: SettingType<number>;
132
- line_color: SettingType<string>;
133
- line_opacity: SettingType<number>;
134
- line_dash: SettingType<string>;
135
179
  show_points: SettingType<boolean>;
136
180
  show_lines: SettingType<boolean>;
137
181
  symbol_type: SettingType<D3SymbolName>;
182
+ display: DisplayConfigType;
183
+ point: PointStyleType;
184
+ line: LineStyleType;
185
+ };
186
+ histogram: {
187
+ mode: SettingType<`overlay` | `single`>;
188
+ show_legend: SettingType<boolean>;
189
+ bin_count: SettingType<number>;
190
+ bar: BarStyleType;
191
+ display: DisplayConfigType;
192
+ };
193
+ bar: {
194
+ display: DisplayConfigType;
195
+ bar: SimpleBarStyleType;
196
+ line: SimpleLineStyleType;
138
197
  };
139
198
  composition: {
140
199
  display_mode: SettingType<`pie` | `bubble` | `bar`>;
141
200
  color_scheme: SettingType<string>;
142
201
  };
143
202
  phase_diagram: {
144
- binary: {
145
- camera_zoom: SettingType<number>;
146
- camera_center_x: SettingType<number>;
147
- camera_center_y: SettingType<number>;
148
- color_mode: SettingType<`stability` | `energy`>;
149
- color_scale: SettingType<string>;
150
- show_stable: SettingType<boolean>;
151
- show_unstable: SettingType<boolean>;
152
- show_stable_labels: SettingType<boolean>;
153
- show_unstable_labels: SettingType<boolean>;
154
- energy_threshold: SettingType<number>;
155
- label_energy_threshold: SettingType<number>;
156
- fullscreen: SettingType<boolean>;
157
- info_pane_open: SettingType<boolean>;
158
- legend_pane_open: SettingType<boolean>;
159
- };
160
- ternary: {
203
+ binary: PhaseDiagramCommonType;
204
+ ternary: PhaseDiagramWith3DType & {
161
205
  camera_elevation: SettingType<number>;
162
206
  camera_azimuth: SettingType<number>;
163
- camera_zoom: SettingType<number>;
164
- camera_center_x: SettingType<number>;
165
- camera_center_y: SettingType<number>;
166
- color_mode: SettingType<`stability` | `energy`>;
167
- color_scale: SettingType<string>;
168
- show_stable: SettingType<boolean>;
169
- show_unstable: SettingType<boolean>;
170
- show_stable_labels: SettingType<boolean>;
171
- show_unstable_labels: SettingType<boolean>;
172
- energy_threshold: SettingType<number>;
173
- label_energy_threshold: SettingType<number>;
174
- show_hull_faces: SettingType<boolean>;
175
- hull_face_color: SettingType<string>;
176
- hull_face_opacity: SettingType<number>;
177
- fullscreen: SettingType<boolean>;
178
- info_pane_open: SettingType<boolean>;
179
- legend_pane_open: SettingType<boolean>;
180
207
  };
181
- quaternary: {
208
+ quaternary: PhaseDiagramWith3DType & {
182
209
  camera_rotation_x: SettingType<number>;
183
210
  camera_rotation_y: SettingType<number>;
184
- camera_zoom: SettingType<number>;
185
- camera_center_x: SettingType<number>;
186
- camera_center_y: SettingType<number>;
187
- color_mode: SettingType<`stability` | `energy`>;
188
- color_scale: SettingType<string>;
189
- show_stable: SettingType<boolean>;
190
- show_unstable: SettingType<boolean>;
191
- show_stable_labels: SettingType<boolean>;
192
- show_unstable_labels: SettingType<boolean>;
193
- show_hull_faces: SettingType<boolean>;
194
- hull_face_color: SettingType<string>;
195
- hull_face_opacity: SettingType<number>;
196
- energy_threshold: SettingType<number>;
197
- label_energy_threshold: SettingType<number>;
198
- fullscreen: SettingType<boolean>;
199
- info_pane_open: SettingType<boolean>;
200
- legend_pane_open: SettingType<boolean>;
201
211
  };
202
212
  };
203
213
  }
@@ -213,3 +223,4 @@ export declare const DEFAULTS: DefaultSettings;
213
223
  export declare const merge: (user?: Partial<DefaultSettings>) => DefaultSettings;
214
224
  export type PhaseDiagramDefaults = DefaultSettings[`phase_diagram`];
215
225
  export declare const PD_DEFAULTS: PhaseDiagramDefaults;
226
+ export {};