matterviz 0.3.6 → 0.3.7

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 (863) hide show
  1. package/dist/EmptyState.svelte.d.ts +9 -0
  2. package/dist/FilePicker.svelte +360 -0
  3. package/dist/FilePicker.svelte.d.ts +17 -0
  4. package/dist/Icon.svelte.d.ts +13 -0
  5. package/dist/MillerIndexInput.svelte +66 -0
  6. package/dist/MillerIndexInput.svelte.d.ts +7 -0
  7. package/dist/api/mp.d.ts +6 -0
  8. package/dist/api/mp.js +22 -0
  9. package/dist/api/optimade.d.ts +45 -0
  10. package/dist/api/optimade.js +135 -0
  11. package/dist/brillouin/BrillouinZone.svelte +549 -0
  12. package/dist/brillouin/BrillouinZone.svelte.d.ts +83 -0
  13. package/dist/brillouin/BrillouinZoneControls.svelte +144 -0
  14. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +17 -0
  15. package/dist/brillouin/BrillouinZoneExportPane.svelte +146 -0
  16. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
  17. package/dist/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  18. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
  19. package/dist/brillouin/BrillouinZoneScene.svelte +476 -0
  20. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +48 -0
  21. package/dist/brillouin/BrillouinZoneTooltip.svelte +92 -0
  22. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +8 -0
  23. package/dist/brillouin/compute.d.ts +17 -0
  24. package/dist/brillouin/compute.js +426 -0
  25. package/dist/brillouin/index.d.ts +8 -0
  26. package/dist/brillouin/index.js +7 -0
  27. package/dist/brillouin/types.d.ts +43 -0
  28. package/dist/brillouin/types.js +1 -0
  29. package/dist/chempot-diagram/ChemPotDiagram.svelte +327 -0
  30. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
  31. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +846 -0
  32. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
  33. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3193 -0
  34. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
  35. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
  36. package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
  37. package/dist/chempot-diagram/async-compute.svelte.js +78 -0
  38. package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
  39. package/dist/chempot-diagram/chempot-worker.js +11 -0
  40. package/dist/chempot-diagram/color.d.ts +10 -0
  41. package/dist/chempot-diagram/color.js +32 -0
  42. package/dist/chempot-diagram/compute.d.ts +48 -0
  43. package/dist/chempot-diagram/compute.js +806 -0
  44. package/dist/chempot-diagram/index.d.ts +6 -0
  45. package/dist/chempot-diagram/index.js +6 -0
  46. package/dist/chempot-diagram/pointer.d.ts +16 -0
  47. package/dist/chempot-diagram/pointer.js +40 -0
  48. package/dist/chempot-diagram/temperature.d.ts +15 -0
  49. package/dist/chempot-diagram/temperature.js +34 -0
  50. package/dist/chempot-diagram/types.d.ts +81 -0
  51. package/dist/chempot-diagram/types.js +28 -0
  52. package/dist/colors/index.d.ts +47 -0
  53. package/dist/colors/index.js +203 -0
  54. package/dist/composition/BarChart.svelte +297 -0
  55. package/dist/composition/BarChart.svelte.d.ts +39 -0
  56. package/dist/composition/BubbleChart.svelte +218 -0
  57. package/dist/composition/BubbleChart.svelte.d.ts +28 -0
  58. package/dist/composition/Composition.svelte +165 -0
  59. package/dist/composition/Composition.svelte.d.ts +15 -0
  60. package/dist/composition/Formula.svelte +268 -0
  61. package/dist/composition/Formula.svelte.d.ts +19 -0
  62. package/dist/composition/FormulaFilter.svelte +1257 -0
  63. package/dist/composition/FormulaFilter.svelte.d.ts +51 -0
  64. package/dist/composition/PieChart.svelte +323 -0
  65. package/dist/composition/PieChart.svelte.d.ts +37 -0
  66. package/dist/composition/format.d.ts +15 -0
  67. package/dist/composition/format.js +109 -0
  68. package/dist/composition/index.d.ts +20 -0
  69. package/dist/composition/index.js +14 -0
  70. package/dist/composition/parse.d.ts +56 -0
  71. package/dist/composition/parse.js +474 -0
  72. package/dist/constants.d.ts +29 -0
  73. package/dist/constants.js +99 -0
  74. package/dist/controls.d.ts +14 -0
  75. package/dist/controls.js +30 -0
  76. package/dist/convex-hull/ConvexHull.svelte +157 -0
  77. package/dist/convex-hull/ConvexHull.svelte.d.ts +13 -0
  78. package/dist/convex-hull/ConvexHull2D.svelte +825 -0
  79. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +11 -0
  80. package/dist/convex-hull/ConvexHull3D.svelte +1801 -0
  81. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +8 -0
  82. package/dist/convex-hull/ConvexHull4D.svelte +1398 -0
  83. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +8 -0
  84. package/dist/convex-hull/ConvexHullControls.svelte +535 -0
  85. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +48 -0
  86. package/dist/convex-hull/ConvexHullInfoPane.svelte +125 -0
  87. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +20 -0
  88. package/dist/convex-hull/ConvexHullStats.svelte +929 -0
  89. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +17 -0
  90. package/dist/convex-hull/ConvexHullTooltip.svelte +131 -0
  91. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +33 -0
  92. package/dist/convex-hull/GasPressureControls.svelte +247 -0
  93. package/dist/convex-hull/GasPressureControls.svelte.d.ts +11 -0
  94. package/dist/convex-hull/StructurePopup.svelte +151 -0
  95. package/dist/convex-hull/StructurePopup.svelte.d.ts +18 -0
  96. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +8 -0
  97. package/dist/convex-hull/barycentric-coords.d.ts +18 -0
  98. package/dist/convex-hull/barycentric-coords.js +182 -0
  99. package/dist/convex-hull/demo-temperature.d.ts +6 -0
  100. package/dist/convex-hull/demo-temperature.js +40 -0
  101. package/dist/convex-hull/gas-thermodynamics.d.ts +16 -0
  102. package/dist/convex-hull/gas-thermodynamics.js +314 -0
  103. package/dist/convex-hull/helpers.d.ts +114 -0
  104. package/dist/convex-hull/helpers.js +710 -0
  105. package/dist/convex-hull/index.d.ts +119 -0
  106. package/dist/convex-hull/index.js +58 -0
  107. package/dist/convex-hull/thermodynamics.d.ts +67 -0
  108. package/dist/convex-hull/thermodynamics.js +1752 -0
  109. package/dist/convex-hull/types.d.ts +162 -0
  110. package/dist/convex-hull/types.js +36 -0
  111. package/dist/coordination/CoordinationBarPlot.svelte +311 -0
  112. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +30 -0
  113. package/dist/coordination/calc-coordination.d.ts +15 -0
  114. package/dist/coordination/calc-coordination.js +63 -0
  115. package/dist/coordination/index.d.ts +8 -0
  116. package/dist/coordination/index.js +7 -0
  117. package/dist/effects.svelte.d.ts +12 -0
  118. package/dist/effects.svelte.js +37 -0
  119. package/dist/element/BohrAtom.svelte.d.ts +20 -0
  120. package/dist/element/ElementHeading.svelte +26 -0
  121. package/dist/element/ElementHeading.svelte.d.ts +8 -0
  122. package/dist/element/ElementPhoto.svelte +57 -0
  123. package/dist/element/ElementPhoto.svelte.d.ts +9 -0
  124. package/dist/element/ElementStats.svelte +80 -0
  125. package/dist/element/ElementStats.svelte.d.ts +8 -0
  126. package/dist/element/ElementTile.svelte +484 -0
  127. package/dist/element/ElementTile.svelte.d.ts +29 -0
  128. package/dist/element/Nucleus.svelte.d.ts +17 -0
  129. package/dist/element/data.d.ts +2 -0
  130. package/dist/element/data.js +2 -0
  131. package/dist/element/index.d.ts +8 -0
  132. package/dist/element/index.js +7 -0
  133. package/dist/element/types.d.ts +57 -0
  134. package/dist/element/types.js +1 -0
  135. package/dist/feedback/ClickFeedback.svelte +58 -0
  136. package/dist/feedback/ClickFeedback.svelte.d.ts +12 -0
  137. package/dist/feedback/DragOverlay.svelte +42 -0
  138. package/dist/feedback/DragOverlay.svelte.d.ts +7 -0
  139. package/dist/feedback/Spinner.svelte.d.ts +7 -0
  140. package/dist/feedback/StatusMessage.svelte.d.ts +9 -0
  141. package/dist/feedback/index.d.ts +4 -0
  142. package/dist/feedback/index.js +4 -0
  143. package/dist/fermi-surface/FermiSlice.svelte +189 -0
  144. package/dist/fermi-surface/FermiSlice.svelte.d.ts +24 -0
  145. package/dist/fermi-surface/FermiSurface.svelte +600 -0
  146. package/dist/fermi-surface/FermiSurface.svelte.d.ts +83 -0
  147. package/dist/fermi-surface/FermiSurfaceControls.svelte +448 -0
  148. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +35 -0
  149. package/dist/fermi-surface/FermiSurfaceScene.svelte +794 -0
  150. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +50 -0
  151. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +111 -0
  152. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +8 -0
  153. package/dist/fermi-surface/compute.d.ts +5 -0
  154. package/dist/fermi-surface/compute.js +538 -0
  155. package/dist/fermi-surface/constants.d.ts +9 -0
  156. package/dist/fermi-surface/constants.js +27 -0
  157. package/dist/fermi-surface/export.d.ts +5 -0
  158. package/dist/fermi-surface/export.js +50 -0
  159. package/dist/fermi-surface/index.d.ts +12 -0
  160. package/dist/fermi-surface/index.js +13 -0
  161. package/dist/fermi-surface/marching-cubes.d.ts +2 -0
  162. package/dist/fermi-surface/marching-cubes.js +2 -0
  163. package/dist/fermi-surface/parse.d.ts +2 -0
  164. package/dist/fermi-surface/parse.js +491 -0
  165. package/dist/fermi-surface/symmetry.d.ts +3 -0
  166. package/dist/fermi-surface/symmetry.js +46 -0
  167. package/dist/fermi-surface/types.d.ts +110 -0
  168. package/dist/fermi-surface/types.js +4 -0
  169. package/dist/heatmap-matrix/HeatmapMatrix.svelte +1545 -0
  170. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
  171. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  172. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
  173. package/dist/heatmap-matrix/index.d.ts +53 -0
  174. package/dist/heatmap-matrix/index.js +100 -0
  175. package/dist/heatmap-matrix/shared.d.ts +2 -0
  176. package/dist/heatmap-matrix/shared.js +4 -0
  177. package/dist/icons.d.ts +569 -0
  178. package/dist/icons.js +648 -0
  179. package/dist/index.d.ts +39 -0
  180. package/dist/index.js +39 -0
  181. package/dist/io/decompress.d.ts +11 -0
  182. package/dist/io/decompress.js +74 -0
  183. package/dist/io/export.d.ts +16 -0
  184. package/dist/io/export.js +316 -0
  185. package/dist/io/fetch.d.ts +5 -0
  186. package/dist/io/fetch.js +39 -0
  187. package/dist/io/file-drop.d.ts +7 -0
  188. package/dist/io/file-drop.js +43 -0
  189. package/dist/io/index.d.ts +7 -0
  190. package/dist/io/index.js +6 -0
  191. package/dist/io/is-binary.d.ts +1 -0
  192. package/dist/io/is-binary.js +20 -0
  193. package/dist/io/types.d.ts +8 -0
  194. package/dist/io/types.js +1 -0
  195. package/dist/io/url-drop.d.ts +2 -0
  196. package/dist/io/url-drop.js +123 -0
  197. package/dist/isosurface/Isosurface.svelte +285 -0
  198. package/dist/isosurface/Isosurface.svelte.d.ts +8 -0
  199. package/dist/isosurface/IsosurfaceControls.svelte +277 -0
  200. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +9 -0
  201. package/dist/isosurface/index.d.ts +5 -0
  202. package/dist/isosurface/index.js +6 -0
  203. package/dist/isosurface/parse.d.ts +6 -0
  204. package/dist/isosurface/parse.js +553 -0
  205. package/dist/isosurface/slice.d.ts +11 -0
  206. package/dist/isosurface/slice.js +140 -0
  207. package/dist/isosurface/types.d.ts +56 -0
  208. package/dist/isosurface/types.js +227 -0
  209. package/dist/labels.d.ts +53 -0
  210. package/dist/labels.js +277 -0
  211. package/dist/layout/FullscreenToggle.svelte +50 -0
  212. package/dist/layout/FullscreenToggle.svelte.d.ts +7 -0
  213. package/dist/layout/InfoCard.svelte +120 -0
  214. package/dist/layout/InfoCard.svelte.d.ts +21 -0
  215. package/dist/layout/InfoTag.svelte +185 -0
  216. package/dist/layout/InfoTag.svelte.d.ts +19 -0
  217. package/dist/layout/PropertyFilter.svelte +246 -0
  218. package/dist/layout/PropertyFilter.svelte.d.ts +24 -0
  219. package/dist/layout/SettingsSection.svelte +148 -0
  220. package/dist/layout/SettingsSection.svelte.d.ts +17 -0
  221. package/dist/layout/SubpageGrid.svelte +82 -0
  222. package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
  223. package/dist/layout/fullscreen.d.ts +9 -0
  224. package/dist/layout/fullscreen.js +53 -0
  225. package/dist/layout/index.d.ts +10 -0
  226. package/dist/layout/index.js +8 -0
  227. package/dist/layout/json-tree/JsonNode.svelte +548 -0
  228. package/dist/layout/json-tree/JsonNode.svelte.d.ts +11 -0
  229. package/dist/layout/json-tree/JsonTree.svelte +1230 -0
  230. package/dist/layout/json-tree/JsonTree.svelte.d.ts +6 -0
  231. package/dist/layout/json-tree/JsonValue.svelte.d.ts +9 -0
  232. package/dist/layout/json-tree/index.d.ts +3 -0
  233. package/dist/layout/json-tree/index.js +3 -0
  234. package/dist/layout/json-tree/types.d.ts +74 -0
  235. package/dist/layout/json-tree/types.js +2 -0
  236. package/dist/layout/json-tree/utils.d.ts +29 -0
  237. package/dist/layout/json-tree/utils.js +641 -0
  238. package/dist/marching-cubes.d.ts +14 -0
  239. package/dist/marching-cubes.js +540 -0
  240. package/dist/math.d.ts +101 -0
  241. package/dist/math.js +905 -0
  242. package/dist/overlays/ContextMenu.svelte +162 -0
  243. package/dist/overlays/ContextMenu.svelte.d.ts +25 -0
  244. package/dist/overlays/CopyButton.svelte +45 -0
  245. package/dist/overlays/CopyButton.svelte.d.ts +8 -0
  246. package/dist/overlays/DragControlTab.svelte +98 -0
  247. package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
  248. package/dist/overlays/DraggablePane.svelte +487 -0
  249. package/dist/overlays/DraggablePane.svelte.d.ts +36 -0
  250. package/dist/overlays/InfoPaneCards.svelte +149 -0
  251. package/dist/overlays/InfoPaneCards.svelte.d.ts +22 -0
  252. package/dist/overlays/index.d.ts +3 -0
  253. package/dist/overlays/index.js +3 -0
  254. package/dist/periodic-table/PeriodicTable.svelte +469 -0
  255. package/dist/periodic-table/PeriodicTable.svelte.d.ts +55 -0
  256. package/dist/periodic-table/PeriodicTableControls.svelte +557 -0
  257. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +24 -0
  258. package/dist/periodic-table/PropertySelect.svelte +37 -0
  259. package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
  260. package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
  261. package/dist/periodic-table/index.d.ts +10 -0
  262. package/dist/periodic-table/index.js +4 -0
  263. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1086 -0
  264. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +44 -0
  265. package/dist/phase-diagram/PhaseDiagramControls.svelte +444 -0
  266. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +30 -0
  267. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +126 -0
  268. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
  269. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  270. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +19 -0
  271. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  272. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +16 -0
  273. package/dist/phase-diagram/TdbInfoPanel.svelte +203 -0
  274. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +12 -0
  275. package/dist/phase-diagram/build-diagram.d.ts +11 -0
  276. package/dist/phase-diagram/build-diagram.js +160 -0
  277. package/dist/phase-diagram/colors.d.ts +35 -0
  278. package/dist/phase-diagram/colors.js +51 -0
  279. package/dist/phase-diagram/diagram-input.d.ts +29 -0
  280. package/dist/phase-diagram/diagram-input.js +3 -0
  281. package/dist/phase-diagram/index.d.ts +13 -0
  282. package/dist/phase-diagram/index.js +11 -0
  283. package/dist/phase-diagram/parse.d.ts +55 -0
  284. package/dist/phase-diagram/parse.js +272 -0
  285. package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
  286. package/dist/phase-diagram/svg-to-diagram.js +867 -0
  287. package/dist/phase-diagram/types.d.ts +93 -0
  288. package/dist/phase-diagram/types.js +1 -0
  289. package/dist/phase-diagram/utils.d.ts +118 -0
  290. package/dist/phase-diagram/utils.js +604 -0
  291. package/dist/plot/AxisLabel.svelte +51 -0
  292. package/dist/plot/AxisLabel.svelte.d.ts +16 -0
  293. package/dist/plot/BarPlot.svelte +2113 -0
  294. package/dist/plot/BarPlot.svelte.d.ts +84 -0
  295. package/dist/plot/BarPlotControls.svelte +66 -0
  296. package/dist/plot/BarPlotControls.svelte.d.ts +18 -0
  297. package/dist/plot/BinnedScatterPlot.svelte +1114 -0
  298. package/dist/plot/BinnedScatterPlot.svelte.d.ts +66 -0
  299. package/dist/plot/ColorBar.svelte +721 -0
  300. package/dist/plot/ColorBar.svelte.d.ts +31 -0
  301. package/dist/plot/ColorScaleSelect.svelte +54 -0
  302. package/dist/plot/ColorScaleSelect.svelte.d.ts +15 -0
  303. package/dist/plot/ElementScatter.svelte +63 -0
  304. package/dist/plot/ElementScatter.svelte.d.ts +14 -0
  305. package/dist/plot/FillArea.svelte.d.ts +21 -0
  306. package/dist/plot/Histogram.svelte +1558 -0
  307. package/dist/plot/Histogram.svelte.d.ts +50 -0
  308. package/dist/plot/HistogramControls.svelte +212 -0
  309. package/dist/plot/HistogramControls.svelte.d.ts +22 -0
  310. package/dist/plot/InteractiveAxisLabel.svelte +96 -0
  311. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +14 -0
  312. package/dist/plot/Line.svelte +84 -0
  313. package/dist/plot/Line.svelte.d.ts +15 -0
  314. package/dist/plot/PlotAxis.svelte +169 -0
  315. package/dist/plot/PlotAxis.svelte.d.ts +24 -0
  316. package/dist/plot/PlotControls.svelte +537 -0
  317. package/dist/plot/PlotControls.svelte.d.ts +4 -0
  318. package/dist/plot/PlotLegend.svelte +569 -0
  319. package/dist/plot/PlotLegend.svelte.d.ts +29 -0
  320. package/dist/plot/PlotTooltip.svelte +67 -0
  321. package/dist/plot/PlotTooltip.svelte.d.ts +17 -0
  322. package/dist/plot/PortalSelect.svelte +253 -0
  323. package/dist/plot/PortalSelect.svelte.d.ts +16 -0
  324. package/dist/plot/ReferenceLine.svelte.d.ts +20 -0
  325. package/dist/plot/ReferenceLine3D.svelte +156 -0
  326. package/dist/plot/ReferenceLine3D.svelte.d.ts +14 -0
  327. package/dist/plot/ReferencePlane.svelte +175 -0
  328. package/dist/plot/ReferencePlane.svelte.d.ts +14 -0
  329. package/dist/plot/ScatterPlot.svelte +2778 -0
  330. package/dist/plot/ScatterPlot.svelte.d.ts +96 -0
  331. package/dist/plot/ScatterPlot3D.svelte +529 -0
  332. package/dist/plot/ScatterPlot3D.svelte.d.ts +95 -0
  333. package/dist/plot/ScatterPlot3DControls.svelte +437 -0
  334. package/dist/plot/ScatterPlot3DControls.svelte.d.ts +20 -0
  335. package/dist/plot/ScatterPlot3DScene.svelte +912 -0
  336. package/dist/plot/ScatterPlot3DScene.svelte.d.ts +74 -0
  337. package/dist/plot/ScatterPlotControls.svelte +306 -0
  338. package/dist/plot/ScatterPlotControls.svelte.d.ts +17 -0
  339. package/dist/plot/ScatterPoint.svelte +182 -0
  340. package/dist/plot/ScatterPoint.svelte.d.ts +22 -0
  341. package/dist/plot/SpacegroupBarPlot.svelte +293 -0
  342. package/dist/plot/SpacegroupBarPlot.svelte.d.ts +9 -0
  343. package/dist/plot/Surface3D.svelte +197 -0
  344. package/dist/plot/Surface3D.svelte.d.ts +13 -0
  345. package/dist/plot/ZeroLines.svelte +97 -0
  346. package/dist/plot/ZeroLines.svelte.d.ts +33 -0
  347. package/dist/plot/ZoomRect.svelte +23 -0
  348. package/dist/plot/ZoomRect.svelte.d.ts +8 -0
  349. package/dist/plot/adaptive-density.d.ts +69 -0
  350. package/dist/plot/adaptive-density.js +191 -0
  351. package/dist/plot/auto-place.d.ts +43 -0
  352. package/dist/plot/auto-place.js +122 -0
  353. package/dist/plot/axis-utils.d.ts +19 -0
  354. package/dist/plot/axis-utils.js +78 -0
  355. package/dist/plot/binned-scatter-types.d.ts +59 -0
  356. package/dist/plot/binned-scatter-types.js +1 -0
  357. package/dist/plot/data-cleaning.d.ts +37 -0
  358. package/dist/plot/data-cleaning.js +855 -0
  359. package/dist/plot/data-transform.d.ts +16 -0
  360. package/dist/plot/data-transform.js +45 -0
  361. package/dist/plot/defaults.d.ts +19 -0
  362. package/dist/plot/defaults.js +9 -0
  363. package/dist/plot/fill-utils.d.ts +46 -0
  364. package/dist/plot/fill-utils.js +322 -0
  365. package/dist/plot/hover-lock.svelte.d.ts +14 -0
  366. package/dist/plot/hover-lock.svelte.js +46 -0
  367. package/dist/plot/index.d.ts +41 -0
  368. package/dist/plot/index.js +39 -0
  369. package/dist/plot/interactions.d.ts +12 -0
  370. package/dist/plot/interactions.js +101 -0
  371. package/dist/plot/layout.d.ts +78 -0
  372. package/dist/plot/layout.js +273 -0
  373. package/dist/plot/reference-line.d.ts +60 -0
  374. package/dist/plot/reference-line.js +314 -0
  375. package/dist/plot/scales.d.ts +48 -0
  376. package/dist/plot/scales.js +481 -0
  377. package/dist/plot/svg.d.ts +1 -0
  378. package/dist/plot/svg.js +11 -0
  379. package/dist/plot/types.d.ts +831 -0
  380. package/dist/plot/types.js +99 -0
  381. package/dist/plot/utils/label-placement.d.ts +68 -0
  382. package/dist/plot/utils/label-placement.js +326 -0
  383. package/dist/plot/utils/series-visibility.d.ts +15 -0
  384. package/dist/plot/utils/series-visibility.js +85 -0
  385. package/dist/plot/utils.d.ts +1 -0
  386. package/dist/plot/utils.js +14 -0
  387. package/dist/rdf/RdfPlot.svelte +247 -0
  388. package/dist/rdf/RdfPlot.svelte.d.ts +27 -0
  389. package/dist/rdf/calc-rdf.d.ts +4 -0
  390. package/dist/rdf/calc-rdf.js +111 -0
  391. package/dist/rdf/index.d.ts +23 -0
  392. package/dist/rdf/index.js +2 -0
  393. package/dist/sanitize.d.ts +6 -0
  394. package/dist/sanitize.js +116 -0
  395. package/dist/settings.d.ts +255 -0
  396. package/dist/settings.js +1132 -0
  397. package/dist/spectral/Bands.svelte +1040 -0
  398. package/dist/spectral/Bands.svelte.d.ts +40 -0
  399. package/dist/spectral/BandsAndDos.svelte +134 -0
  400. package/dist/spectral/BandsAndDos.svelte.d.ts +18 -0
  401. package/dist/spectral/BrillouinBandsDos.svelte +252 -0
  402. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +20 -0
  403. package/dist/spectral/Dos.svelte +697 -0
  404. package/dist/spectral/Dos.svelte.d.ts +29 -0
  405. package/dist/spectral/helpers.d.ts +119 -0
  406. package/dist/spectral/helpers.js +1032 -0
  407. package/dist/spectral/index.d.ts +6 -0
  408. package/dist/spectral/index.js +6 -0
  409. package/dist/spectral/types.d.ts +84 -0
  410. package/dist/spectral/types.js +2 -0
  411. package/dist/state.svelte.d.ts +25 -0
  412. package/dist/state.svelte.js +45 -0
  413. package/dist/structure/Arrow.svelte +72 -0
  414. package/dist/structure/Arrow.svelte.d.ts +15 -0
  415. package/dist/structure/AtomLegend.svelte +815 -0
  416. package/dist/structure/AtomLegend.svelte.d.ts +35 -0
  417. package/dist/structure/Bond.svelte +140 -0
  418. package/dist/structure/Bond.svelte.d.ts +9 -0
  419. package/dist/structure/CanvasTooltip.svelte +33 -0
  420. package/dist/structure/CanvasTooltip.svelte.d.ts +12 -0
  421. package/dist/structure/CellSelect.svelte +349 -0
  422. package/dist/structure/CellSelect.svelte.d.ts +13 -0
  423. package/dist/structure/Cylinder.svelte +45 -0
  424. package/dist/structure/Cylinder.svelte.d.ts +10 -0
  425. package/dist/structure/Lattice.svelte +196 -0
  426. package/dist/structure/Lattice.svelte.d.ts +17 -0
  427. package/dist/structure/Structure.svelte +2248 -0
  428. package/dist/structure/Structure.svelte.d.ts +89 -0
  429. package/dist/structure/StructureControls.svelte +1273 -0
  430. package/dist/structure/StructureControls.svelte.d.ts +31 -0
  431. package/dist/structure/StructureExportPane.svelte +252 -0
  432. package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
  433. package/dist/structure/StructureInfoPane.svelte +737 -0
  434. package/dist/structure/StructureInfoPane.svelte.d.ts +19 -0
  435. package/dist/structure/StructureScene.svelte +2255 -0
  436. package/dist/structure/StructureScene.svelte.d.ts +111 -0
  437. package/dist/structure/atom-properties.d.ts +37 -0
  438. package/dist/structure/atom-properties.js +200 -0
  439. package/dist/structure/bond-order-perception.d.ts +13 -0
  440. package/dist/structure/bond-order-perception.js +384 -0
  441. package/dist/structure/bonding.d.ts +68 -0
  442. package/dist/structure/bonding.js +696 -0
  443. package/dist/structure/export.d.ts +20 -0
  444. package/dist/structure/export.js +727 -0
  445. package/dist/structure/index.d.ts +126 -0
  446. package/dist/structure/index.js +169 -0
  447. package/dist/structure/label-placement.d.ts +14 -0
  448. package/dist/structure/label-placement.js +72 -0
  449. package/dist/structure/measure.d.ts +6 -0
  450. package/dist/structure/measure.js +29 -0
  451. package/dist/structure/parse.d.ts +66 -0
  452. package/dist/structure/parse.js +1392 -0
  453. package/dist/structure/partial-occupancy.d.ts +25 -0
  454. package/dist/structure/partial-occupancy.js +99 -0
  455. package/dist/structure/pbc.d.ts +9 -0
  456. package/dist/structure/pbc.js +123 -0
  457. package/dist/structure/supercell.d.ts +8 -0
  458. package/dist/structure/supercell.js +170 -0
  459. package/dist/structure/validation.d.ts +2 -0
  460. package/dist/structure/validation.js +10 -0
  461. package/dist/symmetry/SymmetryStats.svelte +226 -0
  462. package/dist/symmetry/SymmetryStats.svelte.d.ts +21 -0
  463. package/dist/symmetry/WyckoffTable.svelte +120 -0
  464. package/dist/symmetry/WyckoffTable.svelte.d.ts +11 -0
  465. package/dist/symmetry/cell-transform.d.ts +12 -0
  466. package/dist/symmetry/cell-transform.js +91 -0
  467. package/dist/symmetry/index.d.ts +43 -0
  468. package/dist/symmetry/index.js +228 -0
  469. package/dist/symmetry/spacegroups.d.ts +9 -0
  470. package/dist/symmetry/spacegroups.js +394 -0
  471. package/dist/table/HeatmapTable.svelte +1833 -0
  472. package/dist/table/HeatmapTable.svelte.d.ts +49 -0
  473. package/dist/table/ToggleMenu.svelte +385 -0
  474. package/dist/table/ToggleMenu.svelte.d.ts +11 -0
  475. package/dist/table/index.d.ts +74 -0
  476. package/dist/table/index.js +38 -0
  477. package/dist/theme/ThemeControl.svelte +53 -0
  478. package/dist/theme/ThemeControl.svelte.d.ts +9 -0
  479. package/dist/theme/index.d.ts +29 -0
  480. package/dist/theme/index.js +79 -0
  481. package/dist/time.d.ts +4 -0
  482. package/dist/time.js +70 -0
  483. package/dist/tooltip/TooltipContent.svelte +58 -0
  484. package/dist/tooltip/TooltipContent.svelte.d.ts +31 -0
  485. package/dist/tooltip/index.d.ts +2 -0
  486. package/dist/tooltip/index.js +1 -0
  487. package/dist/tooltip/types.d.ts +8 -0
  488. package/dist/tooltip/types.js +1 -0
  489. package/dist/trajectory/Trajectory.svelte +1545 -0
  490. package/dist/trajectory/Trajectory.svelte.d.ts +77 -0
  491. package/dist/trajectory/TrajectoryError.svelte +128 -0
  492. package/dist/trajectory/TrajectoryError.svelte.d.ts +13 -0
  493. package/dist/trajectory/TrajectoryExportPane.svelte +357 -0
  494. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +17 -0
  495. package/dist/trajectory/TrajectoryInfoPane.svelte +313 -0
  496. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +17 -0
  497. package/dist/trajectory/constants.d.ts +6 -0
  498. package/dist/trajectory/constants.js +7 -0
  499. package/dist/trajectory/extract.d.ts +5 -0
  500. package/dist/trajectory/extract.js +162 -0
  501. package/dist/trajectory/format-detect.d.ts +9 -0
  502. package/dist/trajectory/format-detect.js +76 -0
  503. package/dist/trajectory/frame-reader.d.ts +17 -0
  504. package/dist/trajectory/frame-reader.js +332 -0
  505. package/dist/trajectory/helpers.d.ts +15 -0
  506. package/dist/trajectory/helpers.js +164 -0
  507. package/dist/trajectory/index.d.ts +63 -0
  508. package/dist/trajectory/index.js +126 -0
  509. package/dist/trajectory/parse/ase.d.ts +2 -0
  510. package/dist/trajectory/parse/ase.js +73 -0
  511. package/dist/trajectory/parse/hdf5.d.ts +2 -0
  512. package/dist/trajectory/parse/hdf5.js +127 -0
  513. package/dist/trajectory/parse/index.d.ts +12 -0
  514. package/dist/trajectory/parse/index.js +298 -0
  515. package/dist/trajectory/parse/lammps.d.ts +5 -0
  516. package/dist/trajectory/parse/lammps.js +179 -0
  517. package/dist/trajectory/parse/vasp.d.ts +2 -0
  518. package/dist/trajectory/parse/vasp.js +68 -0
  519. package/dist/trajectory/parse/xyz.d.ts +2 -0
  520. package/dist/trajectory/parse/xyz.js +110 -0
  521. package/dist/trajectory/plotting.d.ts +28 -0
  522. package/dist/trajectory/plotting.js +423 -0
  523. package/dist/trajectory/types.d.ts +11 -0
  524. package/dist/trajectory/types.js +1 -0
  525. package/dist/utils.d.ts +6 -0
  526. package/dist/utils.js +45 -0
  527. package/dist/xrd/XrdPlot.svelte +615 -0
  528. package/dist/xrd/XrdPlot.svelte.d.ts +28 -0
  529. package/dist/xrd/broadening.d.ts +20 -0
  530. package/dist/xrd/broadening.js +97 -0
  531. package/dist/xrd/calc-xrd.d.ts +37 -0
  532. package/dist/xrd/calc-xrd.js +336 -0
  533. package/dist/xrd/index.d.ts +37 -0
  534. package/dist/xrd/index.js +4 -0
  535. package/dist/xrd/parse.d.ts +13 -0
  536. package/dist/xrd/parse.js +749 -0
  537. package/license +1 -1
  538. package/package.json +232 -1457
  539. package/readme.md +98 -171
  540. package/.vscode/launch.json +0 -13
  541. package/.vscodeignore +0 -7
  542. package/dist/assets/STLExporter-BpTH3YHE.js +0 -8
  543. package/dist/assets/browser-DdDecX_W.js +0 -1
  544. package/dist/assets/export-qgn-H9y6.js +0 -2
  545. package/dist/assets/main-DiKYzti2.css +0 -1
  546. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  547. package/dist/extension.js +0 -31293
  548. package/dist/src/lib/FilePicker.svelte +0 -360
  549. package/dist/src/lib/MillerIndexInput.svelte +0 -66
  550. package/dist/src/lib/api/mp.ts +0 -26
  551. package/dist/src/lib/api/optimade.ts +0 -204
  552. package/dist/src/lib/brillouin/BrillouinZone.svelte +0 -549
  553. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +0 -144
  554. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +0 -146
  555. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  556. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +0 -476
  557. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +0 -92
  558. package/dist/src/lib/brillouin/compute.ts +0 -529
  559. package/dist/src/lib/brillouin/index.ts +0 -8
  560. package/dist/src/lib/brillouin/types.ts +0 -51
  561. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +0 -327
  562. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +0 -846
  563. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +0 -3193
  564. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +0 -94
  565. package/dist/src/lib/chempot-diagram/chempot-worker.ts +0 -11
  566. package/dist/src/lib/chempot-diagram/color.ts +0 -42
  567. package/dist/src/lib/chempot-diagram/compute.ts +0 -1014
  568. package/dist/src/lib/chempot-diagram/index.ts +0 -6
  569. package/dist/src/lib/chempot-diagram/pointer.ts +0 -56
  570. package/dist/src/lib/chempot-diagram/temperature.ts +0 -77
  571. package/dist/src/lib/chempot-diagram/types.ts +0 -130
  572. package/dist/src/lib/colors/index.ts +0 -249
  573. package/dist/src/lib/composition/BarChart.svelte +0 -297
  574. package/dist/src/lib/composition/BubbleChart.svelte +0 -218
  575. package/dist/src/lib/composition/Composition.svelte +0 -165
  576. package/dist/src/lib/composition/Formula.svelte +0 -268
  577. package/dist/src/lib/composition/FormulaFilter.svelte +0 -1257
  578. package/dist/src/lib/composition/PieChart.svelte +0 -323
  579. package/dist/src/lib/composition/format.ts +0 -155
  580. package/dist/src/lib/composition/index.ts +0 -37
  581. package/dist/src/lib/composition/parse.ts +0 -605
  582. package/dist/src/lib/constants.ts +0 -134
  583. package/dist/src/lib/controls.ts +0 -42
  584. package/dist/src/lib/convex-hull/ConvexHull.svelte +0 -157
  585. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +0 -825
  586. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +0 -1801
  587. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +0 -1398
  588. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +0 -535
  589. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +0 -125
  590. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +0 -929
  591. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +0 -131
  592. package/dist/src/lib/convex-hull/GasPressureControls.svelte +0 -247
  593. package/dist/src/lib/convex-hull/StructurePopup.svelte +0 -151
  594. package/dist/src/lib/convex-hull/barycentric-coords.ts +0 -246
  595. package/dist/src/lib/convex-hull/demo-temperature.ts +0 -63
  596. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +0 -405
  597. package/dist/src/lib/convex-hull/helpers.ts +0 -932
  598. package/dist/src/lib/convex-hull/index.ts +0 -202
  599. package/dist/src/lib/convex-hull/thermodynamics.ts +0 -2192
  600. package/dist/src/lib/convex-hull/types.ts +0 -267
  601. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +0 -311
  602. package/dist/src/lib/coordination/calc-coordination.ts +0 -93
  603. package/dist/src/lib/coordination/index.ts +0 -9
  604. package/dist/src/lib/effects.svelte.ts +0 -48
  605. package/dist/src/lib/element/ElementHeading.svelte +0 -26
  606. package/dist/src/lib/element/ElementPhoto.svelte +0 -57
  607. package/dist/src/lib/element/ElementStats.svelte +0 -80
  608. package/dist/src/lib/element/ElementTile.svelte +0 -484
  609. package/dist/src/lib/element/data.ts +0 -14
  610. package/dist/src/lib/element/index.ts +0 -8
  611. package/dist/src/lib/element/types.ts +0 -62
  612. package/dist/src/lib/feedback/ClickFeedback.svelte +0 -58
  613. package/dist/src/lib/feedback/DragOverlay.svelte +0 -42
  614. package/dist/src/lib/feedback/index.ts +0 -4
  615. package/dist/src/lib/fermi-surface/FermiSlice.svelte +0 -189
  616. package/dist/src/lib/fermi-surface/FermiSurface.svelte +0 -600
  617. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +0 -448
  618. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +0 -794
  619. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  620. package/dist/src/lib/fermi-surface/compute.ts +0 -728
  621. package/dist/src/lib/fermi-surface/constants.ts +0 -32
  622. package/dist/src/lib/fermi-surface/export.ts +0 -64
  623. package/dist/src/lib/fermi-surface/index.ts +0 -14
  624. package/dist/src/lib/fermi-surface/marching-cubes.ts +0 -3
  625. package/dist/src/lib/fermi-surface/parse.ts +0 -574
  626. package/dist/src/lib/fermi-surface/symmetry.ts +0 -56
  627. package/dist/src/lib/fermi-surface/types.ts +0 -159
  628. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +0 -1545
  629. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  630. package/dist/src/lib/heatmap-matrix/index.ts +0 -167
  631. package/dist/src/lib/heatmap-matrix/shared.ts +0 -7
  632. package/dist/src/lib/icons.ts +0 -650
  633. package/dist/src/lib/index.ts +0 -61
  634. package/dist/src/lib/io/decompress.ts +0 -92
  635. package/dist/src/lib/io/export.ts +0 -385
  636. package/dist/src/lib/io/fetch.ts +0 -46
  637. package/dist/src/lib/io/file-drop.ts +0 -51
  638. package/dist/src/lib/io/index.ts +0 -7
  639. package/dist/src/lib/io/is-binary.ts +0 -24
  640. package/dist/src/lib/io/types.ts +0 -8
  641. package/dist/src/lib/io/url-drop.ts +0 -141
  642. package/dist/src/lib/isosurface/Isosurface.svelte +0 -285
  643. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +0 -277
  644. package/dist/src/lib/isosurface/index.ts +0 -7
  645. package/dist/src/lib/isosurface/parse.ts +0 -656
  646. package/dist/src/lib/isosurface/slice.ts +0 -175
  647. package/dist/src/lib/isosurface/types.ts +0 -309
  648. package/dist/src/lib/labels.ts +0 -320
  649. package/dist/src/lib/layout/FullscreenToggle.svelte +0 -50
  650. package/dist/src/lib/layout/InfoCard.svelte +0 -120
  651. package/dist/src/lib/layout/InfoTag.svelte +0 -185
  652. package/dist/src/lib/layout/PropertyFilter.svelte +0 -246
  653. package/dist/src/lib/layout/SettingsSection.svelte +0 -148
  654. package/dist/src/lib/layout/SubpageGrid.svelte +0 -82
  655. package/dist/src/lib/layout/fullscreen.ts +0 -65
  656. package/dist/src/lib/layout/index.ts +0 -11
  657. package/dist/src/lib/layout/json-tree/JsonNode.svelte +0 -548
  658. package/dist/src/lib/layout/json-tree/JsonTree.svelte +0 -1230
  659. package/dist/src/lib/layout/json-tree/index.ts +0 -3
  660. package/dist/src/lib/layout/json-tree/types.ts +0 -126
  661. package/dist/src/lib/layout/json-tree/utils.ts +0 -682
  662. package/dist/src/lib/marching-cubes.ts +0 -614
  663. package/dist/src/lib/math.ts +0 -1081
  664. package/dist/src/lib/overlays/ContextMenu.svelte +0 -162
  665. package/dist/src/lib/overlays/CopyButton.svelte +0 -45
  666. package/dist/src/lib/overlays/DragControlTab.svelte +0 -98
  667. package/dist/src/lib/overlays/DraggablePane.svelte +0 -487
  668. package/dist/src/lib/overlays/InfoPaneCards.svelte +0 -149
  669. package/dist/src/lib/overlays/index.ts +0 -3
  670. package/dist/src/lib/periodic-table/PeriodicTable.svelte +0 -469
  671. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +0 -557
  672. package/dist/src/lib/periodic-table/PropertySelect.svelte +0 -37
  673. package/dist/src/lib/periodic-table/index.ts +0 -12
  674. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  675. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +0 -444
  676. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  677. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +0 -184
  678. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +0 -391
  679. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +0 -203
  680. package/dist/src/lib/phase-diagram/build-diagram.ts +0 -186
  681. package/dist/src/lib/phase-diagram/colors.ts +0 -58
  682. package/dist/src/lib/phase-diagram/diagram-input.ts +0 -40
  683. package/dist/src/lib/phase-diagram/index.ts +0 -13
  684. package/dist/src/lib/phase-diagram/parse.ts +0 -348
  685. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +0 -1023
  686. package/dist/src/lib/phase-diagram/types.ts +0 -144
  687. package/dist/src/lib/phase-diagram/utils.ts +0 -775
  688. package/dist/src/lib/plot/AxisLabel.svelte +0 -51
  689. package/dist/src/lib/plot/BarPlot.svelte +0 -2113
  690. package/dist/src/lib/plot/BarPlotControls.svelte +0 -66
  691. package/dist/src/lib/plot/BinnedScatterPlot.svelte +0 -1114
  692. package/dist/src/lib/plot/ColorBar.svelte +0 -721
  693. package/dist/src/lib/plot/ColorScaleSelect.svelte +0 -54
  694. package/dist/src/lib/plot/ElementScatter.svelte +0 -63
  695. package/dist/src/lib/plot/Histogram.svelte +0 -1558
  696. package/dist/src/lib/plot/HistogramControls.svelte +0 -212
  697. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +0 -96
  698. package/dist/src/lib/plot/Line.svelte +0 -84
  699. package/dist/src/lib/plot/PlotAxis.svelte +0 -169
  700. package/dist/src/lib/plot/PlotControls.svelte +0 -537
  701. package/dist/src/lib/plot/PlotLegend.svelte +0 -569
  702. package/dist/src/lib/plot/PlotTooltip.svelte +0 -67
  703. package/dist/src/lib/plot/PortalSelect.svelte +0 -253
  704. package/dist/src/lib/plot/ReferenceLine3D.svelte +0 -156
  705. package/dist/src/lib/plot/ReferencePlane.svelte +0 -175
  706. package/dist/src/lib/plot/ScatterPlot.svelte +0 -2778
  707. package/dist/src/lib/plot/ScatterPlot3D.svelte +0 -529
  708. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +0 -437
  709. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +0 -912
  710. package/dist/src/lib/plot/ScatterPlotControls.svelte +0 -306
  711. package/dist/src/lib/plot/ScatterPoint.svelte +0 -182
  712. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +0 -293
  713. package/dist/src/lib/plot/Surface3D.svelte +0 -197
  714. package/dist/src/lib/plot/ZeroLines.svelte +0 -97
  715. package/dist/src/lib/plot/ZoomRect.svelte +0 -23
  716. package/dist/src/lib/plot/adaptive-density.ts +0 -316
  717. package/dist/src/lib/plot/auto-place.ts +0 -184
  718. package/dist/src/lib/plot/axis-utils.ts +0 -122
  719. package/dist/src/lib/plot/binned-scatter-types.ts +0 -83
  720. package/dist/src/lib/plot/data-cleaning.ts +0 -1069
  721. package/dist/src/lib/plot/data-transform.ts +0 -69
  722. package/dist/src/lib/plot/defaults.ts +0 -9
  723. package/dist/src/lib/plot/fill-utils.ts +0 -494
  724. package/dist/src/lib/plot/hover-lock.svelte.ts +0 -60
  725. package/dist/src/lib/plot/index.ts +0 -53
  726. package/dist/src/lib/plot/interactions.ts +0 -119
  727. package/dist/src/lib/plot/layout.ts +0 -425
  728. package/dist/src/lib/plot/reference-line.ts +0 -426
  729. package/dist/src/lib/plot/scales.ts +0 -654
  730. package/dist/src/lib/plot/svg.ts +0 -23
  731. package/dist/src/lib/plot/types.ts +0 -1144
  732. package/dist/src/lib/plot/utils/label-placement.ts +0 -541
  733. package/dist/src/lib/plot/utils/series-visibility.ts +0 -140
  734. package/dist/src/lib/plot/utils.ts +0 -11
  735. package/dist/src/lib/rdf/RdfPlot.svelte +0 -247
  736. package/dist/src/lib/rdf/calc-rdf.ts +0 -167
  737. package/dist/src/lib/rdf/index.ts +0 -27
  738. package/dist/src/lib/sanitize.ts +0 -126
  739. package/dist/src/lib/settings.ts +0 -1479
  740. package/dist/src/lib/spectral/Bands.svelte +0 -1040
  741. package/dist/src/lib/spectral/BandsAndDos.svelte +0 -134
  742. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +0 -252
  743. package/dist/src/lib/spectral/Dos.svelte +0 -697
  744. package/dist/src/lib/spectral/helpers.ts +0 -1381
  745. package/dist/src/lib/spectral/index.ts +0 -8
  746. package/dist/src/lib/spectral/types.ts +0 -112
  747. package/dist/src/lib/state.svelte.ts +0 -64
  748. package/dist/src/lib/structure/Arrow.svelte +0 -72
  749. package/dist/src/lib/structure/AtomLegend.svelte +0 -815
  750. package/dist/src/lib/structure/Bond.svelte +0 -140
  751. package/dist/src/lib/structure/CanvasTooltip.svelte +0 -33
  752. package/dist/src/lib/structure/CellSelect.svelte +0 -349
  753. package/dist/src/lib/structure/Cylinder.svelte +0 -45
  754. package/dist/src/lib/structure/Lattice.svelte +0 -196
  755. package/dist/src/lib/structure/Structure.svelte +0 -2248
  756. package/dist/src/lib/structure/StructureControls.svelte +0 -1273
  757. package/dist/src/lib/structure/StructureExportPane.svelte +0 -252
  758. package/dist/src/lib/structure/StructureInfoPane.svelte +0 -737
  759. package/dist/src/lib/structure/StructureScene.svelte +0 -2255
  760. package/dist/src/lib/structure/atom-properties.ts +0 -316
  761. package/dist/src/lib/structure/bond-order-perception.ts +0 -447
  762. package/dist/src/lib/structure/bonding.ts +0 -944
  763. package/dist/src/lib/structure/export.ts +0 -861
  764. package/dist/src/lib/structure/index.ts +0 -291
  765. package/dist/src/lib/structure/label-placement.ts +0 -130
  766. package/dist/src/lib/structure/measure.ts +0 -45
  767. package/dist/src/lib/structure/parse.ts +0 -1705
  768. package/dist/src/lib/structure/partial-occupancy.ts +0 -183
  769. package/dist/src/lib/structure/pbc.ts +0 -164
  770. package/dist/src/lib/structure/supercell.ts +0 -226
  771. package/dist/src/lib/structure/validation.ts +0 -11
  772. package/dist/src/lib/symmetry/SymmetryStats.svelte +0 -226
  773. package/dist/src/lib/symmetry/WyckoffTable.svelte +0 -120
  774. package/dist/src/lib/symmetry/cell-transform.ts +0 -118
  775. package/dist/src/lib/symmetry/index.ts +0 -348
  776. package/dist/src/lib/symmetry/spacegroups.ts +0 -404
  777. package/dist/src/lib/table/HeatmapTable.svelte +0 -1833
  778. package/dist/src/lib/table/ToggleMenu.svelte +0 -385
  779. package/dist/src/lib/table/index.ts +0 -139
  780. package/dist/src/lib/theme/ThemeControl.svelte +0 -53
  781. package/dist/src/lib/theme/index.ts +0 -107
  782. package/dist/src/lib/time.ts +0 -71
  783. package/dist/src/lib/tooltip/TooltipContent.svelte +0 -58
  784. package/dist/src/lib/tooltip/index.ts +0 -2
  785. package/dist/src/lib/tooltip/types.ts +0 -13
  786. package/dist/src/lib/trajectory/Trajectory.svelte +0 -1545
  787. package/dist/src/lib/trajectory/TrajectoryError.svelte +0 -128
  788. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +0 -357
  789. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +0 -313
  790. package/dist/src/lib/trajectory/constants.ts +0 -7
  791. package/dist/src/lib/trajectory/extract.ts +0 -196
  792. package/dist/src/lib/trajectory/format-detect.ts +0 -96
  793. package/dist/src/lib/trajectory/frame-reader.ts +0 -456
  794. package/dist/src/lib/trajectory/helpers.ts +0 -217
  795. package/dist/src/lib/trajectory/index.ts +0 -218
  796. package/dist/src/lib/trajectory/parse/ase.ts +0 -109
  797. package/dist/src/lib/trajectory/parse/hdf5.ts +0 -173
  798. package/dist/src/lib/trajectory/parse/index.ts +0 -411
  799. package/dist/src/lib/trajectory/parse/lammps.ts +0 -215
  800. package/dist/src/lib/trajectory/parse/vasp.ts +0 -102
  801. package/dist/src/lib/trajectory/parse/xyz.ts +0 -143
  802. package/dist/src/lib/trajectory/plotting.ts +0 -599
  803. package/dist/src/lib/trajectory/types.ts +0 -13
  804. package/dist/src/lib/utils.ts +0 -56
  805. package/dist/src/lib/xrd/XrdPlot.svelte +0 -615
  806. package/dist/src/lib/xrd/broadening.ts +0 -130
  807. package/dist/src/lib/xrd/calc-xrd.ts +0 -397
  808. package/dist/src/lib/xrd/index.ts +0 -38
  809. package/dist/src/lib/xrd/parse.ts +0 -858
  810. package/dist/webview.js +0 -29421
  811. package/icon.png +0 -0
  812. package/matterviz-0.3.2.vsix +0 -0
  813. package/matterviz-0.3.4.vsix +0 -0
  814. package/matterviz-0.3.5.vsix +0 -0
  815. package/scripts/sync-config.ts +0 -101
  816. package/src/declarations.d.ts +0 -2
  817. package/src/extension.ts +0 -972
  818. package/src/node-io.ts +0 -65
  819. package/src/types.ts +0 -17
  820. package/src/webview/JsonBrowser.svelte +0 -1079
  821. package/src/webview/PlotPanel.svelte +0 -346
  822. package/src/webview/detect.ts +0 -444
  823. package/src/webview/main.ts +0 -764
  824. package/src/webview/plot-utils.ts +0 -250
  825. package/test-fixtures/all-viz-types.json.gz +0 -0
  826. package/test-fixtures/plot-demo-data.json.gz +0 -0
  827. package/tests/detect.test.ts +0 -604
  828. package/tests/extension.test.ts +0 -2041
  829. package/tests/node-io.test.ts +0 -39
  830. package/tests/plot-utils.test.ts +0 -302
  831. package/tests/vite-plugin-json-gz.test.ts +0 -114
  832. package/tests/vscode-mock.ts +0 -18
  833. package/tests/webview.test.ts +0 -231
  834. package/tsconfig.json +0 -20
  835. package/vite-plugin-json-gz.ts +0 -29
  836. package/vite.config.ts +0 -34
  837. package/vite.extension.config.ts +0 -34
  838. /package/dist/{src/lib/EmptyState.svelte → EmptyState.svelte} +0 -0
  839. /package/dist/{src/lib/Icon.svelte → Icon.svelte} +0 -0
  840. /package/dist/{src/lib/app.css → app.css} +0 -0
  841. /package/dist/{src/lib/chempot-diagram → chempot-diagram}/ChemPotScene3D.svelte +0 -0
  842. /package/dist/{src/lib/colors → colors}/alloy-colors.json +0 -0
  843. /package/dist/{src/lib/colors → colors}/dark-mode-colors.json +0 -0
  844. /package/dist/{src/lib/colors → colors}/jmol-colors.json +0 -0
  845. /package/dist/{src/lib/colors → colors}/muted-colors.json +0 -0
  846. /package/dist/{src/lib/colors → colors}/pastel-colors.json +0 -0
  847. /package/dist/{src/lib/colors → colors}/vesta-colors.json +0 -0
  848. /package/dist/{src/lib/convex-hull → convex-hull}/TemperatureSlider.svelte +0 -0
  849. /package/dist/{src/lib/element → element}/BohrAtom.svelte +0 -0
  850. /package/dist/{src/lib/element → element}/Nucleus.svelte +0 -0
  851. /package/dist/{src/lib/element → element}/data.json +0 -0
  852. /package/dist/{src/lib/element → element}/data.json.gz +0 -0
  853. /package/dist/{src/lib/element → element}/data.json.gz.d.ts +0 -0
  854. /package/dist/{src/lib/element → element}/data.schema.json +0 -0
  855. /package/dist/{src/lib/element-image-urls.json → element-image-urls.json} +0 -0
  856. /package/dist/{src/lib/feedback → feedback}/Spinner.svelte +0 -0
  857. /package/dist/{src/lib/feedback → feedback}/StatusMessage.svelte +0 -0
  858. /package/dist/{src/lib/layout → layout}/json-tree/JsonValue.svelte +0 -0
  859. /package/dist/{src/lib/periodic-table → periodic-table}/TableInset.svelte +0 -0
  860. /package/dist/{src/lib/plot → plot}/FillArea.svelte +0 -0
  861. /package/dist/{src/lib/plot → plot}/ReferenceLine.svelte +0 -0
  862. /package/dist/{src/lib/theme → theme}/themes.mjs +0 -0
  863. /package/dist/{src/lib/xrd → xrd}/atomic_scattering_params.json +0 -0
@@ -0,0 +1,1132 @@
1
+ // MatterViz settings schema - single source of truth for all MatterViz settings
2
+ // Used by both main package and VSCode extension
3
+ import { symbol_names } from './labels';
4
+ import { merge_nested } from './utils';
5
+ export const SHOW_BONDS_OPTIONS = [`never`, `always`, `crystals`, `molecules`];
6
+ export const VECTOR_COLOR_MODES = [
7
+ `auto`,
8
+ `element`,
9
+ `spin_direction`,
10
+ `magnitude`,
11
+ `uniform`,
12
+ ];
13
+ export const ATOM_COLOR_MODE_OPTIONS = [
14
+ `element`,
15
+ `coordination`,
16
+ `wyckoff`,
17
+ `custom`,
18
+ ];
19
+ const DISPLAY_CONFIG = {
20
+ x_grid: {
21
+ value: true,
22
+ description: `Show X-axis grid lines`,
23
+ },
24
+ y_grid: {
25
+ value: true,
26
+ description: `Show Y-axis grid lines`,
27
+ },
28
+ y2_grid: {
29
+ value: false,
30
+ description: `Show Y2-axis grid lines`,
31
+ },
32
+ x_zero_line: {
33
+ value: true,
34
+ description: `Show X-axis zero reference line`,
35
+ },
36
+ y_zero_line: {
37
+ value: true,
38
+ description: `Show Y-axis zero reference line`,
39
+ },
40
+ };
41
+ // Complete settings configuration with values, descriptions, and constraints
42
+ export const SETTINGS_CONFIG = {
43
+ // General display settings
44
+ color_scheme: {
45
+ value: `Vesta`,
46
+ description: `Color scheme for atoms and bonds`,
47
+ enum: {
48
+ Vesta: `Vesta`,
49
+ Jmol: `Jmol`,
50
+ Alloy: `Alloy`,
51
+ Pastel: `Pastel`,
52
+ Muted: `Muted`,
53
+ 'Dark Mode': `Dark Mode`,
54
+ },
55
+ },
56
+ background_color: {
57
+ value: `#000000`,
58
+ description: `Background color of the 3D viewport`,
59
+ },
60
+ background_opacity: {
61
+ value: 0,
62
+ description: `Opacity of the background (0.0 = transparent, 1.0 = opaque)`,
63
+ minimum: 0,
64
+ maximum: 1,
65
+ },
66
+ // Symmetry Analysis
67
+ symmetry: {
68
+ symprec: {
69
+ value: 1e-4,
70
+ description: `Symmetry precision tolerance for spacegroup detection`,
71
+ minimum: 1e-8,
72
+ maximum: 1,
73
+ },
74
+ algo: {
75
+ value: `Moyo`,
76
+ description: `Algorithm for symmetry analysis`,
77
+ enum: { Moyo: `Moyo`, Spglib: `Spglib` },
78
+ },
79
+ },
80
+ // Structure viewer settings
81
+ structure: {
82
+ // Atoms & Bonds
83
+ atom_radius: {
84
+ value: 0.7,
85
+ description: `Radius multiplier for atoms (0.7 = standard atomic radii)`,
86
+ minimum: 0.1,
87
+ maximum: 3.0,
88
+ },
89
+ same_size_atoms: {
90
+ value: false,
91
+ description: `Render all atoms with the same size regardless of element`,
92
+ },
93
+ show_atoms: {
94
+ value: true,
95
+ description: `Display atoms in the structure`,
96
+ },
97
+ show_image_atoms: {
98
+ value: true,
99
+ description: `Show atoms on the edge of the cell that are not part of the primitive basis`,
100
+ },
101
+ sphere_segments: {
102
+ value: 20,
103
+ description: `Number of segments for sphere rendering (higher = smoother)`,
104
+ minimum: 8,
105
+ maximum: 64,
106
+ },
107
+ bond_thickness: {
108
+ value: 0.07,
109
+ description: `Thickness of bonds relative to atom radius`,
110
+ minimum: 0.01,
111
+ maximum: 1.0,
112
+ },
113
+ auto_bond_order: {
114
+ value: false,
115
+ description: `Automatically perceive double/triple/aromatic bonds from geometry (main-group/organic; metals fall back to single)`,
116
+ },
117
+ aromatic_display: {
118
+ value: `aromatic`,
119
+ description: `How to render perceived aromatic rings`,
120
+ enum: { aromatic: `Aromatic (1.5)`, kekule: `Kekulé (alternating)` },
121
+ },
122
+ show_bonds: {
123
+ value: `always`,
124
+ description: `When to display bonds between atoms`,
125
+ enum: Object.fromEntries(SHOW_BONDS_OPTIONS.map((key) => [key, key[0].toUpperCase() + key.slice(1)])),
126
+ },
127
+ bond_color: {
128
+ value: `#666666`,
129
+ description: `Color for bonds (hex color code)`,
130
+ },
131
+ bonding_strategy: {
132
+ value: `electroneg_ratio`,
133
+ description: `Method for determining bonds between atoms`,
134
+ enum: {
135
+ electroneg_ratio: `Electronegativity Ratio`,
136
+ solid_angle: `Solid Angle`,
137
+ },
138
+ },
139
+ atom_color_mode: {
140
+ value: `element`,
141
+ description: `Property to use for atom coloring`,
142
+ enum: {
143
+ element: `Element`,
144
+ coordination: `Coordination Number`,
145
+ wyckoff: `Wyckoff Position`,
146
+ },
147
+ },
148
+ atom_color_scale: {
149
+ value: `interpolateViridis`,
150
+ description: `D3 color scale for property-based coloring (e.g. interpolateViridis, interpolatePlasma)`,
151
+ },
152
+ atom_color_scale_type: {
153
+ value: `continuous`,
154
+ description: `Color scale type for property-based coloring`,
155
+ enum: {
156
+ continuous: `Continuous Gradient`,
157
+ categorical: `Discrete Categories`,
158
+ },
159
+ },
160
+ // Camera & Controls
161
+ show_gizmo: {
162
+ value: true,
163
+ description: `Show orientation gizmo in the corner of structure viewer`,
164
+ },
165
+ camera_position: {
166
+ value: [0, 0, 0],
167
+ description: `Initial camera position [x, y, z]`,
168
+ minItems: 3,
169
+ maxItems: 3,
170
+ },
171
+ camera_projection: {
172
+ value: `orthographic`,
173
+ description: `Camera projection type`,
174
+ enum: {
175
+ perspective: `Perspective`,
176
+ orthographic: `Orthographic`,
177
+ },
178
+ },
179
+ initial_zoom: {
180
+ value: 35,
181
+ description: `Initial zoom level for orthographic projection (ignored for perspective)`,
182
+ minimum: 0.1,
183
+ maximum: 200,
184
+ },
185
+ fov: {
186
+ value: 10,
187
+ description: `Field of view in degrees for perspective projection`,
188
+ minimum: 10,
189
+ maximum: 150,
190
+ },
191
+ rotation_damping: {
192
+ value: 0.1,
193
+ description: `Camera rotation damping factor (0 = no damping, 1 = heavy damping)`,
194
+ minimum: 0,
195
+ maximum: 1,
196
+ },
197
+ rotate_speed: {
198
+ value: 1.0,
199
+ description: `Mouse rotation sensitivity (set to 0 to disable rotation)`,
200
+ minimum: 0,
201
+ maximum: 2.0,
202
+ },
203
+ zoom_speed: {
204
+ value: 0.5,
205
+ description: `Mouse wheel zoom sensitivity`,
206
+ minimum: 0.1,
207
+ maximum: 2.0,
208
+ },
209
+ pan_speed: {
210
+ value: 0.5,
211
+ description: `Mouse pan sensitivity`,
212
+ minimum: 0.1,
213
+ maximum: 2.0,
214
+ },
215
+ zoom_to_cursor: {
216
+ value: false,
217
+ description: `Zoom toward cursor position instead of scene center (double click canvas to reset camera)`,
218
+ },
219
+ max_zoom: {
220
+ value: 500,
221
+ description: `Maximum zoom level (orthographic: larger = more zoomed out, perspective: larger = further away)`,
222
+ },
223
+ min_zoom: {
224
+ value: 10,
225
+ description: `Minimum zoom level (orthographic: smaller = more zoomed in, perspective: smaller = closer)`,
226
+ },
227
+ auto_rotate: {
228
+ value: 0.2,
229
+ description: `Automatic rotation speed (0 = disabled, positive = clockwise)`,
230
+ minimum: 0,
231
+ maximum: 10,
232
+ },
233
+ rotation: {
234
+ value: [0, 0, 0],
235
+ description: `Manual rotation around X, Y, Z axes, displayed in degrees [0, 360] but normalized as radians to [-π, π] for each of [x, y, z]. Combines additively with auto-rotation when both are active.`,
236
+ minItems: 3,
237
+ maxItems: 3,
238
+ },
239
+ // Labels & Lighting
240
+ show_site_labels: {
241
+ value: false,
242
+ description: `Show element labels on atoms`,
243
+ },
244
+ show_site_indices: {
245
+ value: false,
246
+ description: `Show site index numbers on atoms`,
247
+ },
248
+ site_label_size: {
249
+ value: 1,
250
+ description: `Font size for atom labels`,
251
+ minimum: 0.5,
252
+ maximum: 5,
253
+ },
254
+ site_label_color: {
255
+ value: `#111111`,
256
+ description: `Text color for atom labels`,
257
+ },
258
+ site_label_bg_color: {
259
+ value: `color-mix(in srgb, #000000 0%, transparent)`,
260
+ description: `Background color for atom labels`,
261
+ },
262
+ site_label_padding: {
263
+ value: 2,
264
+ description: `Padding around atom labels in pixels`,
265
+ minimum: 0,
266
+ maximum: 20,
267
+ },
268
+ site_label_offset: {
269
+ value: [0, 0.5, 0],
270
+ description: `3D offset for atom labels [x, y, z]`,
271
+ minItems: 3,
272
+ maxItems: 3,
273
+ },
274
+ ambient_light: {
275
+ value: 1.5,
276
+ description: `Ambient light intensity (0 = dark, higher = brighter)`,
277
+ minimum: 0,
278
+ maximum: 4,
279
+ },
280
+ directional_light: {
281
+ value: 2.2,
282
+ description: `Directional light intensity (0 = no shadows, higher = stronger shadows)`,
283
+ minimum: 0,
284
+ maximum: 4,
285
+ },
286
+ // Site Vectors (force, magmom, spin) & Lattice
287
+ vector_configs: {
288
+ value: {},
289
+ description: `Per-key configuration for site vector layers. Keys map to site property names (e.g. force, magmom, force_DFT). Auto-populated when a structure with vector data loads.`,
290
+ },
291
+ vector_scale: {
292
+ value: 1.0,
293
+ description: `Scale factor for site vector arrows`,
294
+ minimum: 0.1,
295
+ maximum: 10.0,
296
+ },
297
+ vector_color: {
298
+ value: `#ff0000`,
299
+ description: `Color for site vector arrows (used in uniform mode and as fallback)`,
300
+ },
301
+ vector_color_mode: {
302
+ value: `auto`,
303
+ description: `How to color arrows. auto = element for force, spin-direction for magmom/spin. element = majority species color. spin_direction = red/blue by z-component. magnitude = continuous color scale by vector length. uniform = single color (vector_color).`,
304
+ },
305
+ vector_color_scale: {
306
+ value: `interpolateViridis`,
307
+ description: `D3 color scale for magnitude coloring mode`,
308
+ },
309
+ vector_normalize: {
310
+ value: false,
311
+ description: `Show all arrows at the same length (direction only). Useful for spin/magmom visualization where orientation matters but magnitude does not.`,
312
+ },
313
+ vector_uniform_thickness: {
314
+ value: false,
315
+ description: `Use the same shaft and head size for all arrows regardless of length. When off (default), thickness scales with arrow length.`,
316
+ },
317
+ vector_origin_gap: {
318
+ value: 0,
319
+ description: `Fraction of visual atom radius to offset each arrow origin when multiple vectors are shown per site. 0 = all from atom center, 0.5 = halfway to surface.`,
320
+ minimum: 0,
321
+ maximum: 0.5,
322
+ },
323
+ vector_shaft_radius: {
324
+ value: -0.03,
325
+ description: `Radius of vector shaft (negative = relative to length, positive = absolute)`,
326
+ minimum: -0.1,
327
+ maximum: 0.1,
328
+ },
329
+ vector_arrow_head_radius: {
330
+ value: -0.06,
331
+ description: `Radius of vector arrow head (negative = relative to length, positive = absolute)`,
332
+ minimum: -0.2,
333
+ maximum: 0.2,
334
+ },
335
+ vector_arrow_head_length: {
336
+ value: -0.15,
337
+ description: `Length of vector arrow head (negative = relative to length, positive = absolute)`,
338
+ minimum: -0.5,
339
+ maximum: 0.5,
340
+ },
341
+ show_cell: {
342
+ value: false,
343
+ description: `Display system cell`,
344
+ },
345
+ show_cell_vectors: {
346
+ value: true,
347
+ description: `Display cell vectors`,
348
+ },
349
+ cell_edge_opacity: {
350
+ value: 0.3,
351
+ description: `Opacity of cell edge lines`,
352
+ minimum: 0,
353
+ maximum: 1,
354
+ },
355
+ cell_surface_opacity: {
356
+ value: 0.1,
357
+ description: `Opacity of cell surfaces`,
358
+ minimum: 0,
359
+ maximum: 1,
360
+ },
361
+ cell_edge_color: {
362
+ value: `#808080`,
363
+ description: `Color of cell edges`,
364
+ },
365
+ cell_surface_color: {
366
+ value: `#e0e0e0`,
367
+ description: `Color of cell surfaces`,
368
+ },
369
+ cell_edge_width: {
370
+ value: 1.5,
371
+ description: `Width of cell edge lines`,
372
+ minimum: 0.5,
373
+ maximum: 5.0,
374
+ },
375
+ fullscreen_toggle: {
376
+ value: true,
377
+ description: `Show fullscreen toggle button (web-only, always false in other contexts)`,
378
+ context: `web`,
379
+ },
380
+ },
381
+ // Trajectory viewer settings
382
+ trajectory: {
383
+ // Core trajectory settings
384
+ auto_play: {
385
+ value: false,
386
+ description: `Automatically start playing trajectory when opened`,
387
+ },
388
+ fps: {
389
+ value: 10,
390
+ description: `Frames per second for trajectory playback`,
391
+ minimum: 0.1,
392
+ maximum: 60,
393
+ },
394
+ fps_range: {
395
+ value: [0.2, 60],
396
+ description: `Allowed range for playback speed [min, max]`,
397
+ minItems: 2,
398
+ maxItems: 2,
399
+ },
400
+ display_mode: {
401
+ value: `structure+scatter`,
402
+ description: `Visualization mode for trajectory data`,
403
+ enum: {
404
+ 'structure+scatter': `Structure + Scatter`,
405
+ structure: `Structure`,
406
+ scatter: `Scatter`,
407
+ histogram: `Histogram`,
408
+ 'structure+histogram': `Structure + Histogram`,
409
+ },
410
+ },
411
+ show_controls: {
412
+ value: true,
413
+ description: `Show playback controls`,
414
+ },
415
+ fullscreen_toggle: {
416
+ value: true,
417
+ description: `Show fullscreen toggle button (web-only, always false in other contexts)`,
418
+ context: `web`,
419
+ },
420
+ step_labels: {
421
+ value: 5,
422
+ description: `Number of frame labels to display`,
423
+ minimum: 0,
424
+ maximum: 20,
425
+ },
426
+ layout: {
427
+ value: `auto`,
428
+ description: `Layout arrangement for trajectory viewer`,
429
+ enum: {
430
+ auto: `Auto`,
431
+ horizontal: `Horizontal`,
432
+ vertical: `Vertical`,
433
+ },
434
+ },
435
+ // File handling and loading
436
+ allow_file_drop: {
437
+ value: true,
438
+ description: `Allow drag-and-drop of trajectory files`,
439
+ },
440
+ bin_file_threshold: {
441
+ value: 50000000,
442
+ description: `File size threshold for binary loading (bytes)`,
443
+ minimum: 1000000,
444
+ maximum: 500000000,
445
+ },
446
+ text_file_threshold: {
447
+ value: 25000000,
448
+ description: `File size threshold for text loading (bytes)`,
449
+ minimum: 500000,
450
+ maximum: 250000000,
451
+ },
452
+ use_indexing: {
453
+ value: false,
454
+ description: `Use frame indexing for large trajectories`,
455
+ },
456
+ chunk_size: {
457
+ value: 1000,
458
+ description: `Number of frames to process at once`,
459
+ minimum: 10,
460
+ maximum: 10000,
461
+ },
462
+ // Formatting
463
+ step_label_format: {
464
+ value: `.3~s`,
465
+ description: `Number format for step labels (D3 format specifier)`,
466
+ },
467
+ property_value_format: {
468
+ value: `.2~s`,
469
+ description: `Number format for property values (D3 format specifier)`,
470
+ },
471
+ tooltip_format: {
472
+ value: `.3~s`,
473
+ description: `Number format for tooltips (D3 format specifier)`,
474
+ },
475
+ // UI/UX
476
+ enable_keyboard_shortcuts: {
477
+ value: true,
478
+ description: `Enable keyboard shortcuts for playback`,
479
+ },
480
+ show_parsing_progress: {
481
+ value: true,
482
+ description: `Show progress indicator while parsing files`,
483
+ },
484
+ compact_controls: {
485
+ value: false,
486
+ description: `Use compact layout for playback controls`,
487
+ },
488
+ show_filename_in_controls: {
489
+ value: true,
490
+ description: `Display filename in control pane`,
491
+ },
492
+ // Playback behavior
493
+ smooth_playback: {
494
+ value: false,
495
+ description: `Use smooth interpolation between frames`,
496
+ },
497
+ loop_playback: {
498
+ value: true,
499
+ description: `Loop trajectory playback`,
500
+ },
501
+ pause_on_hover: {
502
+ value: false,
503
+ description: `Pause playback when hovering over controls`,
504
+ },
505
+ highlight_current_frame: {
506
+ value: true,
507
+ description: `Highlight current frame in timeline`,
508
+ },
509
+ show_frame_info: {
510
+ value: true,
511
+ description: `Show frame information overlay`,
512
+ },
513
+ // Performance
514
+ max_frames_in_memory: {
515
+ value: 1000,
516
+ description: `Maximum frames to keep in memory`,
517
+ minimum: 10,
518
+ maximum: 10000,
519
+ },
520
+ memory_usage_warning_threshold: {
521
+ value: 500,
522
+ description: `Frame count threshold for memory warnings`,
523
+ minimum: 10,
524
+ maximum: 5000,
525
+ },
526
+ enable_performance_monitoring: {
527
+ value: false,
528
+ description: `Enable performance monitoring`,
529
+ },
530
+ prefetch_frames: {
531
+ value: 5,
532
+ description: `Number of frames to prefetch ahead`,
533
+ minimum: 0,
534
+ maximum: 100,
535
+ },
536
+ cache_parsed_data: {
537
+ value: true,
538
+ description: `Cache parsed trajectory data`,
539
+ },
540
+ },
541
+ // Histogram specific
542
+ histogram: {
543
+ mode: {
544
+ value: `overlay`,
545
+ description: `Histogram display mode. 'overlay' shows multiple histograms in the same plot, 'single' shows a single histogram`,
546
+ enum: {
547
+ overlay: `Overlay`,
548
+ single: `Single`,
549
+ },
550
+ },
551
+ show_legend: {
552
+ value: true,
553
+ description: `Show legend in histogram plots`,
554
+ },
555
+ bin_count: {
556
+ value: 100,
557
+ description: `Number of bins for histogram plots`,
558
+ minimum: 1,
559
+ maximum: 1000,
560
+ },
561
+ bar: {
562
+ color: {
563
+ value: `#4A9EFF`,
564
+ description: `Histogram bar fill color`,
565
+ },
566
+ opacity: {
567
+ value: 0.7,
568
+ description: `Histogram bar opacity`,
569
+ minimum: 0,
570
+ maximum: 1,
571
+ },
572
+ stroke_width: {
573
+ value: 1,
574
+ description: `Histogram bar stroke width`,
575
+ minimum: 0,
576
+ maximum: 5,
577
+ },
578
+ stroke_color: {
579
+ value: `#000000`,
580
+ description: `Histogram bar stroke color`,
581
+ },
582
+ stroke_opacity: {
583
+ value: 0.5,
584
+ description: `Histogram bar stroke opacity`,
585
+ minimum: 0,
586
+ maximum: 1,
587
+ },
588
+ },
589
+ display: DISPLAY_CONFIG,
590
+ },
591
+ // Bar plot specific
592
+ bar: {
593
+ bar: {
594
+ color: {
595
+ value: `#4A9EFF`,
596
+ description: `Bar plot fill color`,
597
+ },
598
+ opacity: {
599
+ value: 0.6,
600
+ description: `Bar plot opacity (overlay mode)`,
601
+ minimum: 0,
602
+ maximum: 1,
603
+ },
604
+ border_radius: {
605
+ value: 3,
606
+ description: `Corner radius for bar tops (px)`,
607
+ minimum: 0,
608
+ maximum: 10,
609
+ },
610
+ },
611
+ line: {
612
+ width: {
613
+ value: 2,
614
+ description: `Bar plot line width`,
615
+ minimum: 0.5,
616
+ maximum: 10,
617
+ },
618
+ color: {
619
+ value: `#4A9EFF`,
620
+ description: `Bar plot line color`,
621
+ },
622
+ },
623
+ display: DISPLAY_CONFIG,
624
+ },
625
+ // Composition specific
626
+ composition: {
627
+ display_mode: {
628
+ value: `pie`,
629
+ description: `Display mode for composition data`,
630
+ enum: {
631
+ pie: `Pie`,
632
+ bubble: `Bubble`,
633
+ bar: `Bar`,
634
+ },
635
+ },
636
+ color_scheme: {
637
+ value: `Vesta`,
638
+ description: `Color scheme for composition visualization`,
639
+ enum: {
640
+ Vesta: `Vesta`,
641
+ Jmol: `Jmol`,
642
+ Alloy: `Alloy`,
643
+ Pastel: `Pastel`,
644
+ Muted: `Muted`,
645
+ 'Dark Mode': `Dark Mode`,
646
+ },
647
+ },
648
+ },
649
+ // Scatter plot specific
650
+ scatter: {
651
+ symbol_type: {
652
+ value: `Circle`,
653
+ description: `Default symbol type for scatter plots`,
654
+ enum: Object.fromEntries(symbol_names.map((name) => [name, name])),
655
+ },
656
+ show_legend: {
657
+ value: true,
658
+ description: `Show legend in scatter plots`,
659
+ },
660
+ show_points: {
661
+ value: true,
662
+ description: `Show points in scatter plots`,
663
+ },
664
+ show_lines: {
665
+ value: true,
666
+ description: `Show connecting lines in scatter plots`,
667
+ },
668
+ display: DISPLAY_CONFIG,
669
+ point: {
670
+ size: {
671
+ value: 4,
672
+ description: `Point size for scatter plots`,
673
+ minimum: 1,
674
+ maximum: 20,
675
+ },
676
+ color: {
677
+ value: `#4A9EFF`,
678
+ description: `Default color for scatter plot points`,
679
+ },
680
+ opacity: {
681
+ value: 1,
682
+ description: `Opacity of scatter plot points`,
683
+ minimum: 0,
684
+ maximum: 1,
685
+ },
686
+ stroke_width: {
687
+ value: 1,
688
+ description: `Stroke width for scatter plot points`,
689
+ minimum: 0,
690
+ maximum: 5,
691
+ },
692
+ stroke_color: {
693
+ value: `#000000`,
694
+ description: `Stroke color for scatter plot points`,
695
+ },
696
+ stroke_opacity: {
697
+ value: 1,
698
+ description: `Stroke opacity for scatter plot points`,
699
+ minimum: 0,
700
+ maximum: 1,
701
+ },
702
+ },
703
+ line: {
704
+ width: {
705
+ value: 2,
706
+ description: `Line width for scatter plot connections`,
707
+ minimum: 0.5,
708
+ maximum: 10,
709
+ },
710
+ color: {
711
+ value: `#4A9EFF`,
712
+ description: `Default color for scatter plot lines`,
713
+ },
714
+ opacity: {
715
+ value: 1,
716
+ description: `Opacity of scatter plot lines`,
717
+ minimum: 0,
718
+ maximum: 1,
719
+ },
720
+ dash: {
721
+ value: `solid`,
722
+ description: `Line dash pattern for scatter plots (e.g. "4,4" for dashed)`,
723
+ },
724
+ },
725
+ },
726
+ // Plot general
727
+ plot: {
728
+ animation_duration: {
729
+ value: 200,
730
+ description: `Duration of plot animations in milliseconds`,
731
+ minimum: 0,
732
+ maximum: 2000,
733
+ },
734
+ enable_zoom: {
735
+ value: true,
736
+ description: `Enable zooming in plots`,
737
+ },
738
+ zoom_factor: {
739
+ value: 1.5,
740
+ description: `Zoom factor for plot interactions`,
741
+ minimum: 1.1,
742
+ maximum: 5.0,
743
+ },
744
+ auto_fit_range: {
745
+ value: true,
746
+ description: `Automatically fit plot range to data`,
747
+ },
748
+ grid_lines: {
749
+ value: true,
750
+ description: `Show grid lines in plots`,
751
+ },
752
+ axis_labels: {
753
+ value: true,
754
+ description: `Show axis labels in plots`,
755
+ },
756
+ show_x_zero_line: {
757
+ value: true,
758
+ description: `Show X-axis zero reference line`,
759
+ },
760
+ show_y_zero_line: {
761
+ value: true,
762
+ description: `Show Y-axis zero reference line`,
763
+ },
764
+ show_x_grid: {
765
+ value: true,
766
+ description: `Show X-axis grid lines`,
767
+ },
768
+ show_x2_grid: {
769
+ value: false,
770
+ description: `Show secondary X-axis grid lines`,
771
+ },
772
+ show_y_grid: {
773
+ value: true,
774
+ description: `Show Y-axis grid lines`,
775
+ },
776
+ show_y2_grid: {
777
+ value: true,
778
+ description: `Show secondary Y-axis grid lines`,
779
+ },
780
+ x_format: {
781
+ value: `.2~s`,
782
+ description: `Number format for X-axis ticks (D3 format specifier)`,
783
+ },
784
+ x2_format: {
785
+ value: ``,
786
+ description: `Number format for secondary X-axis ticks (D3 format specifier)`,
787
+ },
788
+ y_format: {
789
+ value: `d`,
790
+ description: `Number format for Y-axis ticks (D3 format specifier)`,
791
+ },
792
+ y2_format: {
793
+ value: ``,
794
+ description: `Number format for secondary Y-axis ticks (D3 format specifier)`,
795
+ },
796
+ x_scale_type: {
797
+ value: `linear`,
798
+ description: `Scale type for X-axis`,
799
+ enum: {
800
+ linear: `Linear`,
801
+ log: `Log`,
802
+ },
803
+ },
804
+ y_scale_type: {
805
+ value: `linear`,
806
+ description: `Scale type for Y-axis`,
807
+ enum: {
808
+ linear: `Linear`,
809
+ log: `Log`,
810
+ },
811
+ },
812
+ x_ticks: {
813
+ value: 8,
814
+ description: `Number of ticks on X-axis`,
815
+ minimum: 2,
816
+ maximum: 20,
817
+ },
818
+ y_ticks: {
819
+ value: 6,
820
+ description: `Number of ticks on Y-axis`,
821
+ minimum: 2,
822
+ maximum: 20,
823
+ },
824
+ },
825
+ convex_hull: {
826
+ // Convex hull defaults (binary/ternary/quaternary)
827
+ binary: {
828
+ camera_zoom: {
829
+ value: 1.0,
830
+ description: `Initial zoom for binary (2D) convex hull`,
831
+ minimum: 0.1,
832
+ maximum: 10,
833
+ },
834
+ camera_center_x: {
835
+ value: 0,
836
+ description: `Initial X center for binary (2D) convex hull`,
837
+ },
838
+ camera_center_y: {
839
+ value: 0,
840
+ description: `Initial Y center for binary (2D) convex hull`,
841
+ },
842
+ color_mode: {
843
+ value: `energy`,
844
+ description: `Color mode for 2D convex hull points`,
845
+ enum: {
846
+ stability: `Stability`,
847
+ energy: `Energy`,
848
+ },
849
+ },
850
+ color_scale: {
851
+ value: `interpolateViridis`,
852
+ description: `D3 interpolate color scale for 2D convex hull energy mode`,
853
+ },
854
+ show_stable: {
855
+ value: true,
856
+ description: `Show stable phases in 2D convex hull`,
857
+ },
858
+ show_unstable: {
859
+ value: true,
860
+ description: `Show unstable phases in 2D convex hull`,
861
+ },
862
+ show_stable_labels: {
863
+ value: true,
864
+ description: `Show labels for stable phases in 2D convex hull`,
865
+ },
866
+ show_unstable_labels: {
867
+ value: false,
868
+ description: `Show labels for unstable phases in 2D convex hull`,
869
+ },
870
+ max_hull_dist_show_phases: {
871
+ value: 0.1,
872
+ description: `Max eV/atom above hull for showing unstable entries in 2D convex hull`,
873
+ minimum: 0,
874
+ maximum: 2,
875
+ },
876
+ max_hull_dist_show_labels: {
877
+ value: 0.1,
878
+ description: `Max eV/atom above hull for labeling unstable entries in 2D convex hull`,
879
+ minimum: 0,
880
+ maximum: 2,
881
+ },
882
+ fullscreen: {
883
+ value: false,
884
+ description: `Start in fullscreen for 2D convex hull`,
885
+ },
886
+ info_pane_open: {
887
+ value: false,
888
+ description: `Info pane open by default for 2D convex hull`,
889
+ },
890
+ legend_pane_open: {
891
+ value: false,
892
+ description: `Legend pane open by default for 2D convex hull`,
893
+ },
894
+ },
895
+ ternary: {
896
+ camera_elevation: {
897
+ value: 45,
898
+ description: `Initial camera elevation (deg) for ternary (3D) convex hull`,
899
+ minimum: -180,
900
+ maximum: 180,
901
+ },
902
+ camera_azimuth: {
903
+ value: 60,
904
+ description: `Initial camera azimuth (deg) for ternary (3D) convex hull`,
905
+ minimum: -360,
906
+ maximum: 360,
907
+ },
908
+ camera_zoom: {
909
+ value: 1.5,
910
+ description: `Initial camera zoom for ternary (3D) convex hull`,
911
+ minimum: 0.1,
912
+ maximum: 10,
913
+ },
914
+ camera_center_x: {
915
+ value: 0,
916
+ description: `Initial X center for ternary (3D) convex hull`,
917
+ },
918
+ camera_center_y: {
919
+ value: -50,
920
+ description: `Initial Y center for ternary (3D) convex hull`,
921
+ },
922
+ color_mode: {
923
+ value: `energy`,
924
+ description: `Color mode for 3D convex hull points`,
925
+ enum: {
926
+ stability: `Stability`,
927
+ energy: `Energy`,
928
+ },
929
+ },
930
+ color_scale: {
931
+ value: `interpolateViridis`,
932
+ description: `D3 interpolate color scale for 3D convex hull energy mode`,
933
+ },
934
+ show_stable: {
935
+ value: true,
936
+ description: `Show stable phases in 3D convex hull`,
937
+ },
938
+ show_unstable: {
939
+ value: true,
940
+ description: `Show unstable phases in 3D convex hull`,
941
+ },
942
+ show_stable_labels: {
943
+ value: true,
944
+ description: `Show labels for stable phases in 3D convex hull`,
945
+ },
946
+ show_unstable_labels: {
947
+ value: false,
948
+ description: `Show labels for unstable phases in 3D convex hull`,
949
+ },
950
+ max_hull_dist_show_phases: {
951
+ value: 0.5,
952
+ description: `Max eV/atom above hull for showing unstable entries in 3D convex hull`,
953
+ minimum: 0,
954
+ maximum: 2,
955
+ },
956
+ max_hull_dist_show_labels: {
957
+ value: 0.1,
958
+ description: `Max eV/atom above hull for labeling unstable entries in 3D convex hull`,
959
+ minimum: 0,
960
+ maximum: 2,
961
+ },
962
+ show_hull_faces: {
963
+ value: true,
964
+ description: `Render lower hull faces in 3D convex hull`,
965
+ },
966
+ hull_face_color: {
967
+ value: `#4caf50`,
968
+ description: `Color for lower hull faces in 3D convex hull`,
969
+ },
970
+ hull_face_opacity: {
971
+ value: 0.3,
972
+ description: `Opacity for hull faces in 3D convex hull (0-1)`,
973
+ minimum: 0,
974
+ maximum: 1,
975
+ },
976
+ hull_face_color_mode: {
977
+ value: `uniform`,
978
+ description: `Coloring mode for hull faces: uniform (single color), formation_energy (by E_form), dominant_element (by element), or facet_index (categorical)`,
979
+ enum: {
980
+ uniform: `Uniform`,
981
+ formation_energy: `Formation energy`,
982
+ dominant_element: `Dominant element`,
983
+ facet_index: `Facet index`,
984
+ },
985
+ },
986
+ fullscreen: {
987
+ value: false,
988
+ description: `Start in fullscreen for 3D convex hull`,
989
+ },
990
+ info_pane_open: {
991
+ value: false,
992
+ description: `Info pane open by default for 3D convex hull`,
993
+ },
994
+ legend_pane_open: {
995
+ value: false,
996
+ description: `Legend pane open by default for 3D convex hull`,
997
+ },
998
+ },
999
+ quaternary: {
1000
+ camera_rotation_x: {
1001
+ value: -0.6,
1002
+ description: `Initial camera X rotation (rad) for quaternary (4D) convex hull`,
1003
+ minimum: -6.283,
1004
+ maximum: 6.283,
1005
+ },
1006
+ camera_rotation_y: {
1007
+ value: 0.8,
1008
+ description: `Initial camera Y rotation (rad) for quaternary (4D) convex hull`,
1009
+ minimum: -6.283,
1010
+ maximum: 6.283,
1011
+ },
1012
+ camera_zoom: {
1013
+ value: 1.4,
1014
+ description: `Initial camera zoom for quaternary (4D) convex hull`,
1015
+ minimum: 0.1,
1016
+ maximum: 20,
1017
+ },
1018
+ camera_center_x: {
1019
+ value: 0,
1020
+ description: `Initial X center for quaternary (4D) convex hull`,
1021
+ },
1022
+ camera_center_y: {
1023
+ value: 20,
1024
+ description: `Initial Y center for quaternary (4D) convex hull`,
1025
+ },
1026
+ color_mode: {
1027
+ value: `energy`,
1028
+ description: `Color mode for 4D convex hull points`,
1029
+ enum: {
1030
+ stability: `Stability`,
1031
+ energy: `Energy`,
1032
+ },
1033
+ },
1034
+ color_scale: {
1035
+ value: `interpolateViridis`,
1036
+ description: `D3 interpolate color scale for 4D convex hull energy mode`,
1037
+ },
1038
+ show_stable: {
1039
+ value: true,
1040
+ description: `Show stable phases in 4D convex hull`,
1041
+ },
1042
+ show_unstable: {
1043
+ value: true,
1044
+ description: `Show unstable phases in 4D convex hull`,
1045
+ },
1046
+ show_stable_labels: {
1047
+ value: true,
1048
+ description: `Show labels for stable phases in 4D convex hull`,
1049
+ },
1050
+ show_unstable_labels: {
1051
+ value: false,
1052
+ description: `Show labels for unstable phases in 4D convex hull`,
1053
+ },
1054
+ show_hull_faces: {
1055
+ value: true,
1056
+ description: `Show convex hull faces in 4D convex hull`,
1057
+ },
1058
+ hull_face_color: {
1059
+ value: `#4caf50`,
1060
+ description: `Color for hull faces in 4D convex hull`,
1061
+ },
1062
+ hull_face_opacity: {
1063
+ value: 0.03,
1064
+ description: `Opacity for hull faces in 4D convex hull (0-1)`,
1065
+ minimum: 0,
1066
+ maximum: 1,
1067
+ },
1068
+ hull_face_color_mode: {
1069
+ value: `dominant_element`,
1070
+ description: `Coloring mode for hull faces: uniform (single color), formation_energy (by E_form), dominant_element (by element), or facet_index (categorical)`,
1071
+ enum: {
1072
+ uniform: `Uniform`,
1073
+ formation_energy: `Formation energy`,
1074
+ dominant_element: `Dominant element`,
1075
+ facet_index: `Facet index`,
1076
+ },
1077
+ },
1078
+ max_hull_dist_show_phases: {
1079
+ value: 0.1,
1080
+ description: `Max eV/atom above hull for showing unstable entries in 4D convex hull`,
1081
+ minimum: 0,
1082
+ maximum: 2,
1083
+ },
1084
+ max_hull_dist_show_labels: {
1085
+ value: 0.1,
1086
+ description: `Max eV/atom above hull for labeling unstable entries in 4D convex hull`,
1087
+ minimum: 0,
1088
+ maximum: 2,
1089
+ },
1090
+ fullscreen: {
1091
+ value: false,
1092
+ description: `Start in fullscreen for 4D convex hull`,
1093
+ },
1094
+ info_pane_open: {
1095
+ value: false,
1096
+ description: `Info pane open by default for 4D convex hull`,
1097
+ },
1098
+ legend_pane_open: {
1099
+ value: false,
1100
+ description: `Legend pane open by default for 4D convex hull`,
1101
+ },
1102
+ },
1103
+ },
1104
+ };
1105
+ // Extract values from settings config for runtime use
1106
+ const extract_values = (config) => {
1107
+ const result = {};
1108
+ for (const [key, value] of Object.entries(config)) {
1109
+ if (value && typeof value === `object` && `value` in value) {
1110
+ result[key] = value.value;
1111
+ }
1112
+ else if (value && typeof value === `object`) {
1113
+ result[key] = extract_values(value);
1114
+ }
1115
+ }
1116
+ return result;
1117
+ };
1118
+ // Runtime defaults - extracted values for use in components
1119
+ export const DEFAULTS = extract_values(SETTINGS_CONFIG);
1120
+ // Helper to merge with defaults - handles nested structure
1121
+ export const merge = (user) => ({
1122
+ ...DEFAULTS,
1123
+ ...user,
1124
+ structure: merge_nested(DEFAULTS.structure, user?.structure),
1125
+ trajectory: merge_nested(DEFAULTS.trajectory, user?.trajectory),
1126
+ composition: merge_nested(DEFAULTS.composition, user?.composition),
1127
+ plot: merge_nested(DEFAULTS.plot, user?.plot),
1128
+ scatter: merge_nested(DEFAULTS.scatter, user?.scatter),
1129
+ histogram: merge_nested(DEFAULTS.histogram, user?.histogram),
1130
+ bar: merge_nested(DEFAULTS.bar, user?.bar),
1131
+ convex_hull: merge_nested(DEFAULTS.convex_hull, user?.convex_hull),
1132
+ });