matterviz 0.3.6 → 0.4.0

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 (926) 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 +44 -0
  5. package/dist/Icon.svelte.d.ts +13 -0
  6. package/dist/MillerIndexInput.svelte +66 -0
  7. package/dist/MillerIndexInput.svelte.d.ts +7 -0
  8. package/dist/api/mp.d.ts +6 -0
  9. package/dist/api/mp.js +22 -0
  10. package/dist/api/optimade.d.ts +45 -0
  11. package/dist/api/optimade.js +141 -0
  12. package/dist/app.css +244 -0
  13. package/dist/brillouin/BrillouinZone.svelte +554 -0
  14. package/dist/brillouin/BrillouinZone.svelte.d.ts +84 -0
  15. package/dist/brillouin/BrillouinZoneControls.svelte +144 -0
  16. package/dist/brillouin/BrillouinZoneControls.svelte.d.ts +17 -0
  17. package/dist/brillouin/BrillouinZoneExportPane.svelte +146 -0
  18. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +15 -0
  19. package/dist/brillouin/BrillouinZoneInfoPane.svelte +146 -0
  20. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +13 -0
  21. package/dist/brillouin/BrillouinZoneScene.svelte +522 -0
  22. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +49 -0
  23. package/dist/brillouin/BrillouinZoneTooltip.svelte +83 -0
  24. package/dist/brillouin/BrillouinZoneTooltip.svelte.d.ts +8 -0
  25. package/dist/brillouin/compute.d.ts +17 -0
  26. package/dist/brillouin/compute.js +422 -0
  27. package/dist/brillouin/index.d.ts +8 -0
  28. package/dist/brillouin/index.js +7 -0
  29. package/dist/brillouin/types.d.ts +43 -0
  30. package/dist/brillouin/types.js +1 -0
  31. package/dist/chempot-diagram/ChemPotDiagram.svelte +328 -0
  32. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +13 -0
  33. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +843 -0
  34. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +16 -0
  35. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +3191 -0
  36. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +16 -0
  37. package/dist/chempot-diagram/ChemPotScene3D.svelte.d.ts +7 -0
  38. package/dist/chempot-diagram/async-compute.svelte.d.ts +3 -0
  39. package/dist/chempot-diagram/async-compute.svelte.js +80 -0
  40. package/dist/chempot-diagram/chempot-worker.d.ts +1 -0
  41. package/dist/chempot-diagram/chempot-worker.js +12 -0
  42. package/dist/chempot-diagram/color.d.ts +10 -0
  43. package/dist/chempot-diagram/color.js +32 -0
  44. package/dist/chempot-diagram/compute.d.ts +48 -0
  45. package/dist/chempot-diagram/compute.js +804 -0
  46. package/dist/chempot-diagram/index.d.ts +6 -0
  47. package/dist/chempot-diagram/index.js +6 -0
  48. package/dist/chempot-diagram/pointer.d.ts +16 -0
  49. package/dist/chempot-diagram/pointer.js +40 -0
  50. package/dist/chempot-diagram/temperature.d.ts +15 -0
  51. package/dist/chempot-diagram/temperature.js +34 -0
  52. package/dist/chempot-diagram/types.d.ts +81 -0
  53. package/dist/chempot-diagram/types.js +28 -0
  54. package/dist/colors/index.d.ts +47 -0
  55. package/dist/colors/index.js +204 -0
  56. package/dist/composition/BarChart.svelte +297 -0
  57. package/dist/composition/BarChart.svelte.d.ts +39 -0
  58. package/dist/composition/BubbleChart.svelte +218 -0
  59. package/dist/composition/BubbleChart.svelte.d.ts +28 -0
  60. package/dist/composition/Composition.svelte +165 -0
  61. package/dist/composition/Composition.svelte.d.ts +15 -0
  62. package/dist/composition/Formula.svelte +268 -0
  63. package/dist/composition/Formula.svelte.d.ts +19 -0
  64. package/dist/composition/FormulaFilter.svelte +1263 -0
  65. package/dist/composition/FormulaFilter.svelte.d.ts +51 -0
  66. package/dist/composition/PieChart.svelte +324 -0
  67. package/dist/composition/PieChart.svelte.d.ts +37 -0
  68. package/dist/composition/chem-sys.d.ts +8 -0
  69. package/dist/composition/chem-sys.js +85 -0
  70. package/dist/composition/format.d.ts +15 -0
  71. package/dist/composition/format.js +111 -0
  72. package/dist/composition/index.d.ts +21 -0
  73. package/dist/composition/index.js +15 -0
  74. package/dist/composition/parse.d.ts +56 -0
  75. package/dist/composition/parse.js +486 -0
  76. package/dist/constants.d.ts +29 -0
  77. package/dist/constants.js +99 -0
  78. package/dist/controls.d.ts +14 -0
  79. package/dist/controls.js +30 -0
  80. package/dist/convex-hull/ConvexHull.svelte +157 -0
  81. package/dist/convex-hull/ConvexHull.svelte.d.ts +13 -0
  82. package/dist/convex-hull/ConvexHull2D.svelte +827 -0
  83. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +11 -0
  84. package/dist/convex-hull/ConvexHull3D.svelte +1801 -0
  85. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +8 -0
  86. package/dist/convex-hull/ConvexHull4D.svelte +1394 -0
  87. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +8 -0
  88. package/dist/convex-hull/ConvexHullControls.svelte +535 -0
  89. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +48 -0
  90. package/dist/convex-hull/ConvexHullInfoPane.svelte +125 -0
  91. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +20 -0
  92. package/dist/convex-hull/ConvexHullStats.svelte +929 -0
  93. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +17 -0
  94. package/dist/convex-hull/ConvexHullTooltip.svelte +131 -0
  95. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +33 -0
  96. package/dist/convex-hull/GasPressureControls.svelte +247 -0
  97. package/dist/convex-hull/GasPressureControls.svelte.d.ts +11 -0
  98. package/dist/convex-hull/StructurePopup.svelte +151 -0
  99. package/dist/convex-hull/StructurePopup.svelte.d.ts +18 -0
  100. package/dist/convex-hull/TemperatureSlider.svelte +140 -0
  101. package/dist/convex-hull/TemperatureSlider.svelte.d.ts +8 -0
  102. package/dist/convex-hull/barycentric-coords.d.ts +18 -0
  103. package/dist/convex-hull/barycentric-coords.js +182 -0
  104. package/dist/convex-hull/demo-temperature.d.ts +6 -0
  105. package/dist/convex-hull/demo-temperature.js +38 -0
  106. package/dist/convex-hull/gas-thermodynamics.d.ts +16 -0
  107. package/dist/convex-hull/gas-thermodynamics.js +306 -0
  108. package/dist/convex-hull/helpers.d.ts +117 -0
  109. package/dist/convex-hull/helpers.js +718 -0
  110. package/dist/convex-hull/index.d.ts +119 -0
  111. package/dist/convex-hull/index.js +58 -0
  112. package/dist/convex-hull/thermodynamics.d.ts +67 -0
  113. package/dist/convex-hull/thermodynamics.js +1757 -0
  114. package/dist/convex-hull/types.d.ts +162 -0
  115. package/dist/convex-hull/types.js +36 -0
  116. package/dist/coordination/CoordinationBarPlot.svelte +311 -0
  117. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +30 -0
  118. package/dist/coordination/calc-coordination.d.ts +15 -0
  119. package/dist/coordination/calc-coordination.js +63 -0
  120. package/dist/coordination/index.d.ts +8 -0
  121. package/dist/coordination/index.js +7 -0
  122. package/dist/effects.svelte.d.ts +12 -0
  123. package/dist/effects.svelte.js +37 -0
  124. package/dist/element/BohrAtom.svelte.d.ts +20 -0
  125. package/dist/element/ElementHeading.svelte +26 -0
  126. package/dist/element/ElementHeading.svelte.d.ts +8 -0
  127. package/dist/element/ElementPhoto.svelte +57 -0
  128. package/dist/element/ElementPhoto.svelte.d.ts +9 -0
  129. package/dist/element/ElementStats.svelte +80 -0
  130. package/dist/element/ElementStats.svelte.d.ts +8 -0
  131. package/dist/element/ElementTile.svelte +484 -0
  132. package/dist/element/ElementTile.svelte.d.ts +29 -0
  133. package/dist/element/Nucleus.svelte.d.ts +17 -0
  134. package/dist/element/data.d.ts +2 -0
  135. package/dist/element/data.js +2 -0
  136. package/dist/element/index.d.ts +8 -0
  137. package/dist/element/index.js +7 -0
  138. package/dist/element/types.d.ts +57 -0
  139. package/dist/element/types.js +1 -0
  140. package/dist/feedback/ClickFeedback.svelte +58 -0
  141. package/dist/feedback/ClickFeedback.svelte.d.ts +12 -0
  142. package/dist/feedback/DragOverlay.svelte +42 -0
  143. package/dist/feedback/DragOverlay.svelte.d.ts +7 -0
  144. package/dist/feedback/Spinner.svelte.d.ts +7 -0
  145. package/dist/feedback/StatusMessage.svelte.d.ts +9 -0
  146. package/dist/feedback/index.d.ts +4 -0
  147. package/dist/feedback/index.js +4 -0
  148. package/dist/fermi-surface/FermiSlice.svelte +197 -0
  149. package/dist/fermi-surface/FermiSlice.svelte.d.ts +24 -0
  150. package/dist/fermi-surface/FermiSurface.svelte +606 -0
  151. package/dist/fermi-surface/FermiSurface.svelte.d.ts +83 -0
  152. package/dist/fermi-surface/FermiSurfaceControls.svelte +448 -0
  153. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +35 -0
  154. package/dist/fermi-surface/FermiSurfaceScene.svelte +797 -0
  155. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +50 -0
  156. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +85 -0
  157. package/dist/fermi-surface/FermiSurfaceTooltip.svelte.d.ts +8 -0
  158. package/dist/fermi-surface/compute.d.ts +5 -0
  159. package/dist/fermi-surface/compute.js +538 -0
  160. package/dist/fermi-surface/constants.d.ts +9 -0
  161. package/dist/fermi-surface/constants.js +27 -0
  162. package/dist/fermi-surface/export.d.ts +5 -0
  163. package/dist/fermi-surface/export.js +51 -0
  164. package/dist/fermi-surface/index.d.ts +12 -0
  165. package/dist/fermi-surface/index.js +13 -0
  166. package/dist/fermi-surface/marching-cubes.d.ts +2 -0
  167. package/dist/fermi-surface/marching-cubes.js +2 -0
  168. package/dist/fermi-surface/parse.d.ts +2 -0
  169. package/dist/fermi-surface/parse.js +494 -0
  170. package/dist/fermi-surface/symmetry.d.ts +3 -0
  171. package/dist/fermi-surface/symmetry.js +46 -0
  172. package/dist/fermi-surface/types.d.ts +111 -0
  173. package/dist/fermi-surface/types.js +4 -0
  174. package/dist/heatmap-matrix/HeatmapMatrix.svelte +1547 -0
  175. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +110 -0
  176. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +225 -0
  177. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +30 -0
  178. package/dist/heatmap-matrix/index.d.ts +53 -0
  179. package/dist/heatmap-matrix/index.js +100 -0
  180. package/dist/heatmap-matrix/shared.d.ts +2 -0
  181. package/dist/heatmap-matrix/shared.js +4 -0
  182. package/dist/icons.d.ts +569 -0
  183. package/dist/icons.js +648 -0
  184. package/dist/index.d.ts +39 -0
  185. package/dist/index.js +39 -0
  186. package/dist/io/decompress.d.ts +11 -0
  187. package/dist/io/decompress.js +76 -0
  188. package/dist/io/export.d.ts +16 -0
  189. package/dist/io/export.js +338 -0
  190. package/dist/io/fetch.d.ts +5 -0
  191. package/dist/io/fetch.js +43 -0
  192. package/dist/io/file-drop.d.ts +7 -0
  193. package/dist/io/file-drop.js +42 -0
  194. package/dist/io/index.d.ts +7 -0
  195. package/dist/io/index.js +6 -0
  196. package/dist/io/is-binary.d.ts +1 -0
  197. package/dist/io/is-binary.js +20 -0
  198. package/dist/io/types.d.ts +8 -0
  199. package/dist/io/types.js +1 -0
  200. package/dist/io/url-drop.d.ts +2 -0
  201. package/dist/io/url-drop.js +154 -0
  202. package/dist/isosurface/Isosurface.svelte +285 -0
  203. package/dist/isosurface/Isosurface.svelte.d.ts +8 -0
  204. package/dist/isosurface/IsosurfaceControls.svelte +277 -0
  205. package/dist/isosurface/IsosurfaceControls.svelte.d.ts +9 -0
  206. package/dist/isosurface/index.d.ts +5 -0
  207. package/dist/isosurface/index.js +6 -0
  208. package/dist/isosurface/parse.d.ts +6 -0
  209. package/dist/isosurface/parse.js +552 -0
  210. package/dist/isosurface/slice.d.ts +11 -0
  211. package/dist/isosurface/slice.js +141 -0
  212. package/dist/isosurface/types.d.ts +56 -0
  213. package/dist/isosurface/types.js +227 -0
  214. package/dist/keyboard.d.ts +3 -0
  215. package/dist/keyboard.js +23 -0
  216. package/dist/labels.d.ts +53 -0
  217. package/dist/labels.js +278 -0
  218. package/dist/layout/FullscreenToggle.svelte +50 -0
  219. package/dist/layout/FullscreenToggle.svelte.d.ts +7 -0
  220. package/dist/layout/InfoCard.svelte +120 -0
  221. package/dist/layout/InfoCard.svelte.d.ts +21 -0
  222. package/dist/layout/InfoTag.svelte +185 -0
  223. package/dist/layout/InfoTag.svelte.d.ts +19 -0
  224. package/dist/layout/PropertyFilter.svelte +247 -0
  225. package/dist/layout/PropertyFilter.svelte.d.ts +24 -0
  226. package/dist/layout/SettingsSection.svelte +148 -0
  227. package/dist/layout/SettingsSection.svelte.d.ts +17 -0
  228. package/dist/layout/SubpageGrid.svelte +82 -0
  229. package/dist/layout/SubpageGrid.svelte.d.ts +14 -0
  230. package/dist/layout/fullscreen.d.ts +9 -0
  231. package/dist/layout/fullscreen.js +53 -0
  232. package/dist/layout/index.d.ts +10 -0
  233. package/dist/layout/index.js +8 -0
  234. package/dist/layout/json-tree/JsonNode.svelte +548 -0
  235. package/dist/layout/json-tree/JsonNode.svelte.d.ts +11 -0
  236. package/dist/layout/json-tree/JsonTree.svelte +1230 -0
  237. package/dist/layout/json-tree/JsonTree.svelte.d.ts +6 -0
  238. package/dist/layout/json-tree/JsonValue.svelte.d.ts +9 -0
  239. package/dist/layout/json-tree/index.d.ts +3 -0
  240. package/dist/layout/json-tree/index.js +3 -0
  241. package/dist/layout/json-tree/types.d.ts +74 -0
  242. package/dist/layout/json-tree/types.js +2 -0
  243. package/dist/layout/json-tree/utils.d.ts +29 -0
  244. package/dist/layout/json-tree/utils.js +642 -0
  245. package/dist/marching-cubes.d.ts +14 -0
  246. package/dist/marching-cubes.js +535 -0
  247. package/dist/math.d.ts +105 -0
  248. package/dist/math.js +920 -0
  249. package/dist/overlays/ContextMenu.svelte +162 -0
  250. package/dist/overlays/ContextMenu.svelte.d.ts +25 -0
  251. package/dist/overlays/CopyButton.svelte +45 -0
  252. package/dist/overlays/CopyButton.svelte.d.ts +8 -0
  253. package/dist/overlays/DragControlTab.svelte +98 -0
  254. package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
  255. package/dist/overlays/DraggablePane.svelte +487 -0
  256. package/dist/overlays/DraggablePane.svelte.d.ts +36 -0
  257. package/dist/overlays/InfoPaneCards.svelte +149 -0
  258. package/dist/overlays/InfoPaneCards.svelte.d.ts +22 -0
  259. package/dist/overlays/index.d.ts +3 -0
  260. package/dist/overlays/index.js +3 -0
  261. package/dist/periodic-table/PeriodicTable.svelte +480 -0
  262. package/dist/periodic-table/PeriodicTable.svelte.d.ts +55 -0
  263. package/dist/periodic-table/PeriodicTableControls.svelte +557 -0
  264. package/dist/periodic-table/PeriodicTableControls.svelte.d.ts +24 -0
  265. package/dist/periodic-table/PropertySelect.svelte +38 -0
  266. package/dist/periodic-table/PropertySelect.svelte.d.ts +13 -0
  267. package/dist/periodic-table/TableInset.svelte.d.ts +9 -0
  268. package/dist/periodic-table/index.d.ts +10 -0
  269. package/dist/periodic-table/index.js +4 -0
  270. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +1092 -0
  271. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +44 -0
  272. package/dist/phase-diagram/PhaseDiagramControls.svelte +444 -0
  273. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +30 -0
  274. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +127 -0
  275. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +15 -0
  276. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +184 -0
  277. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +19 -0
  278. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +391 -0
  279. package/dist/phase-diagram/PhaseDiagramTooltip.svelte.d.ts +16 -0
  280. package/dist/phase-diagram/TdbInfoPanel.svelte +203 -0
  281. package/dist/phase-diagram/TdbInfoPanel.svelte.d.ts +12 -0
  282. package/dist/phase-diagram/build-diagram.d.ts +11 -0
  283. package/dist/phase-diagram/build-diagram.js +160 -0
  284. package/dist/phase-diagram/colors.d.ts +35 -0
  285. package/dist/phase-diagram/colors.js +51 -0
  286. package/dist/phase-diagram/diagram-input.d.ts +29 -0
  287. package/dist/phase-diagram/diagram-input.js +3 -0
  288. package/dist/phase-diagram/index.d.ts +13 -0
  289. package/dist/phase-diagram/index.js +11 -0
  290. package/dist/phase-diagram/parse.d.ts +55 -0
  291. package/dist/phase-diagram/parse.js +273 -0
  292. package/dist/phase-diagram/svg-to-diagram.d.ts +2 -0
  293. package/dist/phase-diagram/svg-to-diagram.js +867 -0
  294. package/dist/phase-diagram/types.d.ts +93 -0
  295. package/dist/phase-diagram/types.js +1 -0
  296. package/dist/phase-diagram/utils.d.ts +118 -0
  297. package/dist/phase-diagram/utils.js +600 -0
  298. package/dist/plot/bar/BarPlot.svelte +1755 -0
  299. package/dist/plot/bar/BarPlot.svelte.d.ts +84 -0
  300. package/dist/plot/bar/BarPlotControls.svelte +67 -0
  301. package/dist/plot/bar/BarPlotControls.svelte.d.ts +18 -0
  302. package/dist/plot/bar/SpacegroupBarPlot.svelte +293 -0
  303. package/dist/plot/bar/SpacegroupBarPlot.svelte.d.ts +9 -0
  304. package/dist/plot/bar/data.d.ts +40 -0
  305. package/dist/plot/bar/data.js +154 -0
  306. package/dist/plot/bar/geometry.d.ts +39 -0
  307. package/dist/plot/bar/geometry.js +60 -0
  308. package/dist/plot/bar/index.d.ts +3 -0
  309. package/dist/plot/bar/index.js +3 -0
  310. package/dist/plot/box/BoxPlot.svelte +1462 -0
  311. package/dist/plot/box/BoxPlot.svelte.d.ts +94 -0
  312. package/dist/plot/box/BoxPlotControls.svelte +109 -0
  313. package/dist/plot/box/BoxPlotControls.svelte.d.ts +19 -0
  314. package/dist/plot/box/Violin.svelte +14 -0
  315. package/dist/plot/box/Violin.svelte.d.ts +70 -0
  316. package/dist/plot/box/box-plot.d.ts +55 -0
  317. package/dist/plot/box/box-plot.js +126 -0
  318. package/dist/plot/box/index.d.ts +5 -0
  319. package/dist/plot/box/index.js +5 -0
  320. package/dist/plot/box/kde.d.ts +16 -0
  321. package/dist/plot/box/kde.js +160 -0
  322. package/dist/plot/box/quantile.d.ts +3 -0
  323. package/dist/plot/box/quantile.js +53 -0
  324. package/dist/plot/core/auto-place.d.ts +43 -0
  325. package/dist/plot/core/auto-place.js +122 -0
  326. package/dist/plot/core/axis-utils.d.ts +46 -0
  327. package/dist/plot/core/axis-utils.js +110 -0
  328. package/dist/plot/core/components/AxisLabel.svelte +51 -0
  329. package/dist/plot/core/components/AxisLabel.svelte.d.ts +16 -0
  330. package/dist/plot/core/components/ColorBar.svelte +724 -0
  331. package/dist/plot/core/components/ColorBar.svelte.d.ts +31 -0
  332. package/dist/plot/core/components/ColorScaleSelect.svelte +55 -0
  333. package/dist/plot/core/components/ColorScaleSelect.svelte.d.ts +15 -0
  334. package/dist/plot/core/components/ControlPane.svelte +46 -0
  335. package/dist/plot/core/components/ControlPane.svelte.d.ts +13 -0
  336. package/dist/plot/core/components/FillArea.svelte +234 -0
  337. package/dist/plot/core/components/FillArea.svelte.d.ts +21 -0
  338. package/dist/plot/core/components/InteractiveAxisLabel.svelte +96 -0
  339. package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +14 -0
  340. package/dist/plot/core/components/Line.svelte +101 -0
  341. package/dist/plot/core/components/Line.svelte.d.ts +15 -0
  342. package/dist/plot/core/components/PlotAxis.svelte +171 -0
  343. package/dist/plot/core/components/PlotAxis.svelte.d.ts +25 -0
  344. package/dist/plot/core/components/PlotControls.svelte +525 -0
  345. package/dist/plot/core/components/PlotControls.svelte.d.ts +4 -0
  346. package/dist/plot/core/components/PlotLegend.svelte +580 -0
  347. package/dist/plot/core/components/PlotLegend.svelte.d.ts +30 -0
  348. package/dist/plot/core/components/PlotTooltip.svelte +83 -0
  349. package/dist/plot/core/components/PlotTooltip.svelte.d.ts +25 -0
  350. package/dist/plot/core/components/PortalSelect.svelte +257 -0
  351. package/dist/plot/core/components/PortalSelect.svelte.d.ts +16 -0
  352. package/dist/plot/core/components/ReferenceLine.svelte +204 -0
  353. package/dist/plot/core/components/ReferenceLine.svelte.d.ts +20 -0
  354. package/dist/plot/core/components/ReferenceLine3D.svelte +156 -0
  355. package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +14 -0
  356. package/dist/plot/core/components/ReferencePlane.svelte +175 -0
  357. package/dist/plot/core/components/ReferencePlane.svelte.d.ts +14 -0
  358. package/dist/plot/core/components/ZeroLines.svelte +97 -0
  359. package/dist/plot/core/components/ZeroLines.svelte.d.ts +33 -0
  360. package/dist/plot/core/components/ZoomRect.svelte +23 -0
  361. package/dist/plot/core/components/ZoomRect.svelte.d.ts +8 -0
  362. package/dist/plot/core/components/index.d.ts +17 -0
  363. package/dist/plot/core/components/index.js +17 -0
  364. package/dist/plot/core/data-cleaning.d.ts +107 -0
  365. package/dist/plot/core/data-cleaning.js +853 -0
  366. package/dist/plot/core/data-transform.d.ts +16 -0
  367. package/dist/plot/core/data-transform.js +45 -0
  368. package/dist/plot/core/fill-utils.d.ts +33 -0
  369. package/dist/plot/core/fill-utils.js +388 -0
  370. package/dist/plot/core/hover-lock.svelte.d.ts +14 -0
  371. package/dist/plot/core/hover-lock.svelte.js +45 -0
  372. package/dist/plot/core/index.d.ts +10 -0
  373. package/dist/plot/core/index.js +11 -0
  374. package/dist/plot/core/interactions.d.ts +35 -0
  375. package/dist/plot/core/interactions.js +195 -0
  376. package/dist/plot/core/layout.d.ts +79 -0
  377. package/dist/plot/core/layout.js +281 -0
  378. package/dist/plot/core/reference-line.d.ts +60 -0
  379. package/dist/plot/core/reference-line.js +301 -0
  380. package/dist/plot/core/scales.d.ts +48 -0
  381. package/dist/plot/core/scales.js +480 -0
  382. package/dist/plot/core/svg.d.ts +2 -0
  383. package/dist/plot/core/svg.js +41 -0
  384. package/dist/plot/core/types.d.ts +771 -0
  385. package/dist/plot/core/types.js +99 -0
  386. package/dist/plot/core/utils/label-placement.d.ts +68 -0
  387. package/dist/plot/core/utils/label-placement.js +326 -0
  388. package/dist/plot/core/utils/series-visibility.d.ts +26 -0
  389. package/dist/plot/core/utils/series-visibility.js +112 -0
  390. package/dist/plot/core/utils.d.ts +11 -0
  391. package/dist/plot/core/utils.js +27 -0
  392. package/dist/plot/histogram/Histogram.svelte +1418 -0
  393. package/dist/plot/histogram/Histogram.svelte.d.ts +50 -0
  394. package/dist/plot/histogram/HistogramControls.svelte +212 -0
  395. package/dist/plot/histogram/HistogramControls.svelte.d.ts +22 -0
  396. package/dist/plot/histogram/index.d.ts +2 -0
  397. package/dist/plot/histogram/index.js +2 -0
  398. package/dist/plot/index.d.ts +8 -0
  399. package/dist/plot/index.js +10 -0
  400. package/dist/plot/sankey/Sankey.svelte +700 -0
  401. package/dist/plot/sankey/Sankey.svelte.d.ts +74 -0
  402. package/dist/plot/sankey/SankeyControls.svelte +98 -0
  403. package/dist/plot/sankey/SankeyControls.svelte.d.ts +19 -0
  404. package/dist/plot/sankey/index.d.ts +4 -0
  405. package/dist/plot/sankey/index.js +3 -0
  406. package/dist/plot/sankey/sankey-types.d.ts +42 -0
  407. package/dist/plot/sankey/sankey-types.js +4 -0
  408. package/dist/plot/sankey/sankey.d.ts +52 -0
  409. package/dist/plot/sankey/sankey.js +187 -0
  410. package/dist/plot/scatter/BinnedScatterPlot.svelte +1116 -0
  411. package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +66 -0
  412. package/dist/plot/scatter/ElementScatter.svelte +63 -0
  413. package/dist/plot/scatter/ElementScatter.svelte.d.ts +14 -0
  414. package/dist/plot/scatter/ScatterPlot.svelte +2357 -0
  415. package/dist/plot/scatter/ScatterPlot.svelte.d.ts +96 -0
  416. package/dist/plot/scatter/ScatterPlotControls.svelte +307 -0
  417. package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +17 -0
  418. package/dist/plot/scatter/ScatterPoint.svelte +182 -0
  419. package/dist/plot/scatter/ScatterPoint.svelte.d.ts +22 -0
  420. package/dist/plot/scatter/adaptive-density.d.ts +79 -0
  421. package/dist/plot/scatter/adaptive-density.js +217 -0
  422. package/dist/plot/scatter/binned-scatter-types.d.ts +59 -0
  423. package/dist/plot/scatter/binned-scatter-types.js +1 -0
  424. package/dist/plot/scatter/index.d.ts +7 -0
  425. package/dist/plot/scatter/index.js +5 -0
  426. package/dist/plot/scatter/scatter-data.d.ts +19 -0
  427. package/dist/plot/scatter/scatter-data.js +212 -0
  428. package/dist/plot/scatter-3d/ScatterPlot3D.svelte +531 -0
  429. package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +95 -0
  430. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +438 -0
  431. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +20 -0
  432. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +912 -0
  433. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +74 -0
  434. package/dist/plot/scatter-3d/Surface3D.svelte +197 -0
  435. package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +13 -0
  436. package/dist/plot/scatter-3d/index.d.ts +4 -0
  437. package/dist/plot/scatter-3d/index.js +4 -0
  438. package/dist/plot/sunburst/Sunburst.svelte +1045 -0
  439. package/dist/plot/sunburst/Sunburst.svelte.d.ts +96 -0
  440. package/dist/plot/sunburst/SunburstControls.svelte +200 -0
  441. package/dist/plot/sunburst/SunburstControls.svelte.d.ts +26 -0
  442. package/dist/plot/sunburst/index.d.ts +4 -0
  443. package/dist/plot/sunburst/index.js +4 -0
  444. package/dist/plot/sunburst/render.d.ts +34 -0
  445. package/dist/plot/sunburst/render.js +122 -0
  446. package/dist/plot/sunburst/sunburst.d.ts +62 -0
  447. package/dist/plot/sunburst/sunburst.js +266 -0
  448. package/dist/rdf/RdfPlot.svelte +248 -0
  449. package/dist/rdf/RdfPlot.svelte.d.ts +27 -0
  450. package/dist/rdf/calc-rdf.d.ts +4 -0
  451. package/dist/rdf/calc-rdf.js +98 -0
  452. package/dist/rdf/index.d.ts +23 -0
  453. package/dist/rdf/index.js +2 -0
  454. package/dist/sanitize.d.ts +6 -0
  455. package/dist/sanitize.js +116 -0
  456. package/dist/settings.d.ts +319 -0
  457. package/dist/settings.js +1394 -0
  458. package/dist/spectral/Bands.svelte +1050 -0
  459. package/dist/spectral/Bands.svelte.d.ts +39 -0
  460. package/dist/spectral/BandsAndDos.svelte +134 -0
  461. package/dist/spectral/BandsAndDos.svelte.d.ts +18 -0
  462. package/dist/spectral/BrillouinBandsDos.svelte +264 -0
  463. package/dist/spectral/BrillouinBandsDos.svelte.d.ts +20 -0
  464. package/dist/spectral/Dos.svelte +688 -0
  465. package/dist/spectral/Dos.svelte.d.ts +29 -0
  466. package/dist/spectral/helpers.d.ts +121 -0
  467. package/dist/spectral/helpers.js +1098 -0
  468. package/dist/spectral/index.d.ts +6 -0
  469. package/dist/spectral/index.js +6 -0
  470. package/dist/spectral/types.d.ts +84 -0
  471. package/dist/spectral/types.js +2 -0
  472. package/dist/state.svelte.d.ts +25 -0
  473. package/dist/state.svelte.js +45 -0
  474. package/dist/structure/Arrow.svelte +72 -0
  475. package/dist/structure/Arrow.svelte.d.ts +15 -0
  476. package/dist/structure/AtomLegend.svelte +814 -0
  477. package/dist/structure/AtomLegend.svelte.d.ts +35 -0
  478. package/dist/structure/Bond.svelte +140 -0
  479. package/dist/structure/Bond.svelte.d.ts +9 -0
  480. package/dist/structure/CanvasTooltip.svelte +33 -0
  481. package/dist/structure/CanvasTooltip.svelte.d.ts +12 -0
  482. package/dist/structure/CellSelect.svelte +348 -0
  483. package/dist/structure/CellSelect.svelte.d.ts +13 -0
  484. package/dist/structure/Cylinder.svelte +49 -0
  485. package/dist/structure/Cylinder.svelte.d.ts +13 -0
  486. package/dist/structure/Lattice.svelte +196 -0
  487. package/dist/structure/Lattice.svelte.d.ts +17 -0
  488. package/dist/structure/Structure.svelte +2254 -0
  489. package/dist/structure/Structure.svelte.d.ts +89 -0
  490. package/dist/structure/StructureControls.svelte +1273 -0
  491. package/dist/structure/StructureControls.svelte.d.ts +31 -0
  492. package/dist/structure/StructureExportPane.svelte +252 -0
  493. package/dist/structure/StructureExportPane.svelte.d.ts +17 -0
  494. package/dist/structure/StructureInfoPane.svelte +736 -0
  495. package/dist/structure/StructureInfoPane.svelte.d.ts +19 -0
  496. package/dist/structure/StructureScene.svelte +2256 -0
  497. package/dist/structure/StructureScene.svelte.d.ts +111 -0
  498. package/dist/structure/atom-properties.d.ts +37 -0
  499. package/dist/structure/atom-properties.js +200 -0
  500. package/dist/structure/bond-order-perception.d.ts +13 -0
  501. package/dist/structure/bond-order-perception.js +384 -0
  502. package/dist/structure/bonding.d.ts +69 -0
  503. package/dist/structure/bonding.js +724 -0
  504. package/dist/structure/export.d.ts +20 -0
  505. package/dist/structure/export.js +731 -0
  506. package/dist/structure/index.d.ts +124 -0
  507. package/dist/structure/index.js +167 -0
  508. package/dist/structure/label-placement.d.ts +14 -0
  509. package/dist/structure/label-placement.js +72 -0
  510. package/dist/structure/measure.d.ts +7 -0
  511. package/dist/structure/measure.js +30 -0
  512. package/dist/structure/parse.d.ts +66 -0
  513. package/dist/structure/parse.js +1410 -0
  514. package/dist/structure/partial-occupancy.d.ts +25 -0
  515. package/dist/structure/partial-occupancy.js +99 -0
  516. package/dist/structure/pbc.d.ts +9 -0
  517. package/dist/structure/pbc.js +127 -0
  518. package/dist/structure/supercell.d.ts +8 -0
  519. package/dist/structure/supercell.js +170 -0
  520. package/dist/structure/validation.d.ts +2 -0
  521. package/dist/structure/validation.js +10 -0
  522. package/dist/symmetry/SymmetryStats.svelte +226 -0
  523. package/dist/symmetry/SymmetryStats.svelte.d.ts +21 -0
  524. package/dist/symmetry/WyckoffTable.svelte +120 -0
  525. package/dist/symmetry/WyckoffTable.svelte.d.ts +11 -0
  526. package/dist/symmetry/cell-transform.d.ts +12 -0
  527. package/dist/symmetry/cell-transform.js +91 -0
  528. package/dist/symmetry/index.d.ts +43 -0
  529. package/dist/symmetry/index.js +226 -0
  530. package/dist/symmetry/spacegroups.d.ts +16 -0
  531. package/dist/symmetry/spacegroups.js +429 -0
  532. package/dist/table/HeatmapTable.svelte +1885 -0
  533. package/dist/table/HeatmapTable.svelte.d.ts +49 -0
  534. package/dist/table/ToggleMenu.svelte +385 -0
  535. package/dist/table/ToggleMenu.svelte.d.ts +11 -0
  536. package/dist/table/index.d.ts +72 -0
  537. package/dist/table/index.js +38 -0
  538. package/dist/theme/ThemeControl.svelte +53 -0
  539. package/dist/theme/ThemeControl.svelte.d.ts +9 -0
  540. package/dist/theme/index.d.ts +29 -0
  541. package/dist/theme/index.js +79 -0
  542. package/dist/time.d.ts +4 -0
  543. package/dist/time.js +70 -0
  544. package/dist/tooltip/KCoords.svelte +45 -0
  545. package/dist/tooltip/KCoords.svelte.d.ts +8 -0
  546. package/dist/tooltip/TooltipContent.svelte +58 -0
  547. package/dist/tooltip/TooltipContent.svelte.d.ts +31 -0
  548. package/dist/tooltip/index.d.ts +3 -0
  549. package/dist/tooltip/index.js +2 -0
  550. package/dist/tooltip/types.d.ts +8 -0
  551. package/dist/tooltip/types.js +1 -0
  552. package/dist/trajectory/Trajectory.svelte +1571 -0
  553. package/dist/trajectory/Trajectory.svelte.d.ts +78 -0
  554. package/dist/trajectory/TrajectoryError.svelte +128 -0
  555. package/dist/trajectory/TrajectoryError.svelte.d.ts +13 -0
  556. package/dist/trajectory/TrajectoryExportPane.svelte +358 -0
  557. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +17 -0
  558. package/dist/trajectory/TrajectoryInfoPane.svelte +314 -0
  559. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +17 -0
  560. package/dist/trajectory/constants.d.ts +6 -0
  561. package/dist/trajectory/constants.js +7 -0
  562. package/dist/trajectory/extract.d.ts +5 -0
  563. package/dist/trajectory/extract.js +162 -0
  564. package/dist/trajectory/format-detect.d.ts +10 -0
  565. package/dist/trajectory/format-detect.js +90 -0
  566. package/dist/trajectory/frame-reader.d.ts +17 -0
  567. package/dist/trajectory/frame-reader.js +299 -0
  568. package/dist/trajectory/helpers.d.ts +15 -0
  569. package/dist/trajectory/helpers.js +164 -0
  570. package/dist/trajectory/index.d.ts +63 -0
  571. package/dist/trajectory/index.js +126 -0
  572. package/dist/trajectory/parse/ase.d.ts +2 -0
  573. package/dist/trajectory/parse/ase.js +73 -0
  574. package/dist/trajectory/parse/hdf5.d.ts +2 -0
  575. package/dist/trajectory/parse/hdf5.js +127 -0
  576. package/dist/trajectory/parse/index.d.ts +12 -0
  577. package/dist/trajectory/parse/index.js +306 -0
  578. package/dist/trajectory/parse/lammps.d.ts +5 -0
  579. package/dist/trajectory/parse/lammps.js +179 -0
  580. package/dist/trajectory/parse/vasp.d.ts +2 -0
  581. package/dist/trajectory/parse/vasp.js +87 -0
  582. package/dist/trajectory/parse/xyz.d.ts +26 -0
  583. package/dist/trajectory/parse/xyz.js +123 -0
  584. package/dist/trajectory/plotting.d.ts +28 -0
  585. package/dist/trajectory/plotting.js +423 -0
  586. package/dist/trajectory/types.d.ts +11 -0
  587. package/dist/trajectory/types.js +1 -0
  588. package/dist/utils.d.ts +7 -0
  589. package/dist/utils.js +47 -0
  590. package/dist/xrd/XrdPlot.svelte +616 -0
  591. package/dist/xrd/XrdPlot.svelte.d.ts +28 -0
  592. package/dist/xrd/broadening.d.ts +20 -0
  593. package/dist/xrd/broadening.js +97 -0
  594. package/dist/xrd/calc-xrd.d.ts +37 -0
  595. package/dist/xrd/calc-xrd.js +339 -0
  596. package/dist/xrd/index.d.ts +37 -0
  597. package/dist/xrd/index.js +4 -0
  598. package/dist/xrd/parse.d.ts +13 -0
  599. package/dist/xrd/parse.js +749 -0
  600. package/license +1 -1
  601. package/package.json +237 -1458
  602. package/readme.md +98 -171
  603. package/.vscode/launch.json +0 -13
  604. package/.vscodeignore +0 -7
  605. package/dist/assets/STLExporter-BpTH3YHE.js +0 -8
  606. package/dist/assets/browser-DdDecX_W.js +0 -1
  607. package/dist/assets/export-qgn-H9y6.js +0 -2
  608. package/dist/assets/main-DiKYzti2.css +0 -1
  609. package/dist/assets/moyo_wasm_bg-0ocwg7xY.wasm +0 -0
  610. package/dist/extension.js +0 -31293
  611. package/dist/src/lib/FilePicker.svelte +0 -360
  612. package/dist/src/lib/Icon.svelte +0 -41
  613. package/dist/src/lib/MillerIndexInput.svelte +0 -66
  614. package/dist/src/lib/api/mp.ts +0 -26
  615. package/dist/src/lib/api/optimade.ts +0 -204
  616. package/dist/src/lib/app.css +0 -247
  617. package/dist/src/lib/brillouin/BrillouinZone.svelte +0 -549
  618. package/dist/src/lib/brillouin/BrillouinZoneControls.svelte +0 -144
  619. package/dist/src/lib/brillouin/BrillouinZoneExportPane.svelte +0 -146
  620. package/dist/src/lib/brillouin/BrillouinZoneInfoPane.svelte +0 -146
  621. package/dist/src/lib/brillouin/BrillouinZoneScene.svelte +0 -476
  622. package/dist/src/lib/brillouin/BrillouinZoneTooltip.svelte +0 -92
  623. package/dist/src/lib/brillouin/compute.ts +0 -529
  624. package/dist/src/lib/brillouin/index.ts +0 -8
  625. package/dist/src/lib/brillouin/types.ts +0 -51
  626. package/dist/src/lib/chempot-diagram/ChemPotDiagram.svelte +0 -327
  627. package/dist/src/lib/chempot-diagram/ChemPotDiagram2D.svelte +0 -846
  628. package/dist/src/lib/chempot-diagram/ChemPotDiagram3D.svelte +0 -3193
  629. package/dist/src/lib/chempot-diagram/async-compute.svelte.ts +0 -94
  630. package/dist/src/lib/chempot-diagram/chempot-worker.ts +0 -11
  631. package/dist/src/lib/chempot-diagram/color.ts +0 -42
  632. package/dist/src/lib/chempot-diagram/compute.ts +0 -1014
  633. package/dist/src/lib/chempot-diagram/index.ts +0 -6
  634. package/dist/src/lib/chempot-diagram/pointer.ts +0 -56
  635. package/dist/src/lib/chempot-diagram/temperature.ts +0 -77
  636. package/dist/src/lib/chempot-diagram/types.ts +0 -130
  637. package/dist/src/lib/colors/index.ts +0 -249
  638. package/dist/src/lib/composition/BarChart.svelte +0 -297
  639. package/dist/src/lib/composition/BubbleChart.svelte +0 -218
  640. package/dist/src/lib/composition/Composition.svelte +0 -165
  641. package/dist/src/lib/composition/Formula.svelte +0 -268
  642. package/dist/src/lib/composition/FormulaFilter.svelte +0 -1257
  643. package/dist/src/lib/composition/PieChart.svelte +0 -323
  644. package/dist/src/lib/composition/format.ts +0 -155
  645. package/dist/src/lib/composition/index.ts +0 -37
  646. package/dist/src/lib/composition/parse.ts +0 -605
  647. package/dist/src/lib/constants.ts +0 -134
  648. package/dist/src/lib/controls.ts +0 -42
  649. package/dist/src/lib/convex-hull/ConvexHull.svelte +0 -157
  650. package/dist/src/lib/convex-hull/ConvexHull2D.svelte +0 -825
  651. package/dist/src/lib/convex-hull/ConvexHull3D.svelte +0 -1801
  652. package/dist/src/lib/convex-hull/ConvexHull4D.svelte +0 -1398
  653. package/dist/src/lib/convex-hull/ConvexHullControls.svelte +0 -535
  654. package/dist/src/lib/convex-hull/ConvexHullInfoPane.svelte +0 -125
  655. package/dist/src/lib/convex-hull/ConvexHullStats.svelte +0 -929
  656. package/dist/src/lib/convex-hull/ConvexHullTooltip.svelte +0 -131
  657. package/dist/src/lib/convex-hull/GasPressureControls.svelte +0 -247
  658. package/dist/src/lib/convex-hull/StructurePopup.svelte +0 -151
  659. package/dist/src/lib/convex-hull/TemperatureSlider.svelte +0 -140
  660. package/dist/src/lib/convex-hull/barycentric-coords.ts +0 -246
  661. package/dist/src/lib/convex-hull/demo-temperature.ts +0 -63
  662. package/dist/src/lib/convex-hull/gas-thermodynamics.ts +0 -405
  663. package/dist/src/lib/convex-hull/helpers.ts +0 -932
  664. package/dist/src/lib/convex-hull/index.ts +0 -202
  665. package/dist/src/lib/convex-hull/thermodynamics.ts +0 -2192
  666. package/dist/src/lib/convex-hull/types.ts +0 -267
  667. package/dist/src/lib/coordination/CoordinationBarPlot.svelte +0 -311
  668. package/dist/src/lib/coordination/calc-coordination.ts +0 -93
  669. package/dist/src/lib/coordination/index.ts +0 -9
  670. package/dist/src/lib/effects.svelte.ts +0 -48
  671. package/dist/src/lib/element/ElementHeading.svelte +0 -26
  672. package/dist/src/lib/element/ElementPhoto.svelte +0 -57
  673. package/dist/src/lib/element/ElementStats.svelte +0 -80
  674. package/dist/src/lib/element/ElementTile.svelte +0 -484
  675. package/dist/src/lib/element/data.ts +0 -14
  676. package/dist/src/lib/element/index.ts +0 -8
  677. package/dist/src/lib/element/types.ts +0 -62
  678. package/dist/src/lib/feedback/ClickFeedback.svelte +0 -58
  679. package/dist/src/lib/feedback/DragOverlay.svelte +0 -42
  680. package/dist/src/lib/feedback/index.ts +0 -4
  681. package/dist/src/lib/fermi-surface/FermiSlice.svelte +0 -189
  682. package/dist/src/lib/fermi-surface/FermiSurface.svelte +0 -600
  683. package/dist/src/lib/fermi-surface/FermiSurfaceControls.svelte +0 -448
  684. package/dist/src/lib/fermi-surface/FermiSurfaceScene.svelte +0 -794
  685. package/dist/src/lib/fermi-surface/FermiSurfaceTooltip.svelte +0 -111
  686. package/dist/src/lib/fermi-surface/compute.ts +0 -728
  687. package/dist/src/lib/fermi-surface/constants.ts +0 -32
  688. package/dist/src/lib/fermi-surface/export.ts +0 -64
  689. package/dist/src/lib/fermi-surface/index.ts +0 -14
  690. package/dist/src/lib/fermi-surface/marching-cubes.ts +0 -3
  691. package/dist/src/lib/fermi-surface/parse.ts +0 -574
  692. package/dist/src/lib/fermi-surface/symmetry.ts +0 -56
  693. package/dist/src/lib/fermi-surface/types.ts +0 -159
  694. package/dist/src/lib/heatmap-matrix/HeatmapMatrix.svelte +0 -1545
  695. package/dist/src/lib/heatmap-matrix/HeatmapMatrixControls.svelte +0 -225
  696. package/dist/src/lib/heatmap-matrix/index.ts +0 -167
  697. package/dist/src/lib/heatmap-matrix/shared.ts +0 -7
  698. package/dist/src/lib/icons.ts +0 -650
  699. package/dist/src/lib/index.ts +0 -61
  700. package/dist/src/lib/io/decompress.ts +0 -92
  701. package/dist/src/lib/io/export.ts +0 -385
  702. package/dist/src/lib/io/fetch.ts +0 -46
  703. package/dist/src/lib/io/file-drop.ts +0 -51
  704. package/dist/src/lib/io/index.ts +0 -7
  705. package/dist/src/lib/io/is-binary.ts +0 -24
  706. package/dist/src/lib/io/types.ts +0 -8
  707. package/dist/src/lib/io/url-drop.ts +0 -141
  708. package/dist/src/lib/isosurface/Isosurface.svelte +0 -285
  709. package/dist/src/lib/isosurface/IsosurfaceControls.svelte +0 -277
  710. package/dist/src/lib/isosurface/index.ts +0 -7
  711. package/dist/src/lib/isosurface/parse.ts +0 -656
  712. package/dist/src/lib/isosurface/slice.ts +0 -175
  713. package/dist/src/lib/isosurface/types.ts +0 -309
  714. package/dist/src/lib/labels.ts +0 -320
  715. package/dist/src/lib/layout/FullscreenToggle.svelte +0 -50
  716. package/dist/src/lib/layout/InfoCard.svelte +0 -120
  717. package/dist/src/lib/layout/InfoTag.svelte +0 -185
  718. package/dist/src/lib/layout/PropertyFilter.svelte +0 -246
  719. package/dist/src/lib/layout/SettingsSection.svelte +0 -148
  720. package/dist/src/lib/layout/SubpageGrid.svelte +0 -82
  721. package/dist/src/lib/layout/fullscreen.ts +0 -65
  722. package/dist/src/lib/layout/index.ts +0 -11
  723. package/dist/src/lib/layout/json-tree/JsonNode.svelte +0 -548
  724. package/dist/src/lib/layout/json-tree/JsonTree.svelte +0 -1230
  725. package/dist/src/lib/layout/json-tree/index.ts +0 -3
  726. package/dist/src/lib/layout/json-tree/types.ts +0 -126
  727. package/dist/src/lib/layout/json-tree/utils.ts +0 -682
  728. package/dist/src/lib/marching-cubes.ts +0 -614
  729. package/dist/src/lib/math.ts +0 -1081
  730. package/dist/src/lib/overlays/ContextMenu.svelte +0 -162
  731. package/dist/src/lib/overlays/CopyButton.svelte +0 -45
  732. package/dist/src/lib/overlays/DragControlTab.svelte +0 -98
  733. package/dist/src/lib/overlays/DraggablePane.svelte +0 -487
  734. package/dist/src/lib/overlays/InfoPaneCards.svelte +0 -149
  735. package/dist/src/lib/overlays/index.ts +0 -3
  736. package/dist/src/lib/periodic-table/PeriodicTable.svelte +0 -469
  737. package/dist/src/lib/periodic-table/PeriodicTableControls.svelte +0 -557
  738. package/dist/src/lib/periodic-table/PropertySelect.svelte +0 -37
  739. package/dist/src/lib/periodic-table/index.ts +0 -12
  740. package/dist/src/lib/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +0 -1086
  741. package/dist/src/lib/phase-diagram/PhaseDiagramControls.svelte +0 -444
  742. package/dist/src/lib/phase-diagram/PhaseDiagramEditorPane.svelte +0 -126
  743. package/dist/src/lib/phase-diagram/PhaseDiagramExportPane.svelte +0 -184
  744. package/dist/src/lib/phase-diagram/PhaseDiagramTooltip.svelte +0 -391
  745. package/dist/src/lib/phase-diagram/TdbInfoPanel.svelte +0 -203
  746. package/dist/src/lib/phase-diagram/build-diagram.ts +0 -186
  747. package/dist/src/lib/phase-diagram/colors.ts +0 -58
  748. package/dist/src/lib/phase-diagram/diagram-input.ts +0 -40
  749. package/dist/src/lib/phase-diagram/index.ts +0 -13
  750. package/dist/src/lib/phase-diagram/parse.ts +0 -348
  751. package/dist/src/lib/phase-diagram/svg-to-diagram.ts +0 -1023
  752. package/dist/src/lib/phase-diagram/types.ts +0 -144
  753. package/dist/src/lib/phase-diagram/utils.ts +0 -775
  754. package/dist/src/lib/plot/AxisLabel.svelte +0 -51
  755. package/dist/src/lib/plot/BarPlot.svelte +0 -2113
  756. package/dist/src/lib/plot/BarPlotControls.svelte +0 -66
  757. package/dist/src/lib/plot/BinnedScatterPlot.svelte +0 -1114
  758. package/dist/src/lib/plot/ColorBar.svelte +0 -721
  759. package/dist/src/lib/plot/ColorScaleSelect.svelte +0 -54
  760. package/dist/src/lib/plot/ElementScatter.svelte +0 -63
  761. package/dist/src/lib/plot/FillArea.svelte +0 -223
  762. package/dist/src/lib/plot/Histogram.svelte +0 -1558
  763. package/dist/src/lib/plot/HistogramControls.svelte +0 -212
  764. package/dist/src/lib/plot/InteractiveAxisLabel.svelte +0 -96
  765. package/dist/src/lib/plot/Line.svelte +0 -84
  766. package/dist/src/lib/plot/PlotAxis.svelte +0 -169
  767. package/dist/src/lib/plot/PlotControls.svelte +0 -537
  768. package/dist/src/lib/plot/PlotLegend.svelte +0 -569
  769. package/dist/src/lib/plot/PlotTooltip.svelte +0 -67
  770. package/dist/src/lib/plot/PortalSelect.svelte +0 -253
  771. package/dist/src/lib/plot/ReferenceLine.svelte +0 -204
  772. package/dist/src/lib/plot/ReferenceLine3D.svelte +0 -156
  773. package/dist/src/lib/plot/ReferencePlane.svelte +0 -175
  774. package/dist/src/lib/plot/ScatterPlot.svelte +0 -2778
  775. package/dist/src/lib/plot/ScatterPlot3D.svelte +0 -529
  776. package/dist/src/lib/plot/ScatterPlot3DControls.svelte +0 -437
  777. package/dist/src/lib/plot/ScatterPlot3DScene.svelte +0 -912
  778. package/dist/src/lib/plot/ScatterPlotControls.svelte +0 -306
  779. package/dist/src/lib/plot/ScatterPoint.svelte +0 -182
  780. package/dist/src/lib/plot/SpacegroupBarPlot.svelte +0 -293
  781. package/dist/src/lib/plot/Surface3D.svelte +0 -197
  782. package/dist/src/lib/plot/ZeroLines.svelte +0 -97
  783. package/dist/src/lib/plot/ZoomRect.svelte +0 -23
  784. package/dist/src/lib/plot/adaptive-density.ts +0 -316
  785. package/dist/src/lib/plot/auto-place.ts +0 -184
  786. package/dist/src/lib/plot/axis-utils.ts +0 -122
  787. package/dist/src/lib/plot/binned-scatter-types.ts +0 -83
  788. package/dist/src/lib/plot/data-cleaning.ts +0 -1069
  789. package/dist/src/lib/plot/data-transform.ts +0 -69
  790. package/dist/src/lib/plot/defaults.ts +0 -9
  791. package/dist/src/lib/plot/fill-utils.ts +0 -494
  792. package/dist/src/lib/plot/hover-lock.svelte.ts +0 -60
  793. package/dist/src/lib/plot/index.ts +0 -53
  794. package/dist/src/lib/plot/interactions.ts +0 -119
  795. package/dist/src/lib/plot/layout.ts +0 -425
  796. package/dist/src/lib/plot/reference-line.ts +0 -426
  797. package/dist/src/lib/plot/scales.ts +0 -654
  798. package/dist/src/lib/plot/svg.ts +0 -23
  799. package/dist/src/lib/plot/types.ts +0 -1144
  800. package/dist/src/lib/plot/utils/label-placement.ts +0 -541
  801. package/dist/src/lib/plot/utils/series-visibility.ts +0 -140
  802. package/dist/src/lib/plot/utils.ts +0 -11
  803. package/dist/src/lib/rdf/RdfPlot.svelte +0 -247
  804. package/dist/src/lib/rdf/calc-rdf.ts +0 -167
  805. package/dist/src/lib/rdf/index.ts +0 -27
  806. package/dist/src/lib/sanitize.ts +0 -126
  807. package/dist/src/lib/settings.ts +0 -1479
  808. package/dist/src/lib/spectral/Bands.svelte +0 -1040
  809. package/dist/src/lib/spectral/BandsAndDos.svelte +0 -134
  810. package/dist/src/lib/spectral/BrillouinBandsDos.svelte +0 -252
  811. package/dist/src/lib/spectral/Dos.svelte +0 -697
  812. package/dist/src/lib/spectral/helpers.ts +0 -1381
  813. package/dist/src/lib/spectral/index.ts +0 -8
  814. package/dist/src/lib/spectral/types.ts +0 -112
  815. package/dist/src/lib/state.svelte.ts +0 -64
  816. package/dist/src/lib/structure/Arrow.svelte +0 -72
  817. package/dist/src/lib/structure/AtomLegend.svelte +0 -815
  818. package/dist/src/lib/structure/Bond.svelte +0 -140
  819. package/dist/src/lib/structure/CanvasTooltip.svelte +0 -33
  820. package/dist/src/lib/structure/CellSelect.svelte +0 -349
  821. package/dist/src/lib/structure/Cylinder.svelte +0 -45
  822. package/dist/src/lib/structure/Lattice.svelte +0 -196
  823. package/dist/src/lib/structure/Structure.svelte +0 -2248
  824. package/dist/src/lib/structure/StructureControls.svelte +0 -1273
  825. package/dist/src/lib/structure/StructureExportPane.svelte +0 -252
  826. package/dist/src/lib/structure/StructureInfoPane.svelte +0 -737
  827. package/dist/src/lib/structure/StructureScene.svelte +0 -2255
  828. package/dist/src/lib/structure/atom-properties.ts +0 -316
  829. package/dist/src/lib/structure/bond-order-perception.ts +0 -447
  830. package/dist/src/lib/structure/bonding.ts +0 -944
  831. package/dist/src/lib/structure/export.ts +0 -861
  832. package/dist/src/lib/structure/index.ts +0 -291
  833. package/dist/src/lib/structure/label-placement.ts +0 -130
  834. package/dist/src/lib/structure/measure.ts +0 -45
  835. package/dist/src/lib/structure/parse.ts +0 -1705
  836. package/dist/src/lib/structure/partial-occupancy.ts +0 -183
  837. package/dist/src/lib/structure/pbc.ts +0 -164
  838. package/dist/src/lib/structure/supercell.ts +0 -226
  839. package/dist/src/lib/structure/validation.ts +0 -11
  840. package/dist/src/lib/symmetry/SymmetryStats.svelte +0 -226
  841. package/dist/src/lib/symmetry/WyckoffTable.svelte +0 -120
  842. package/dist/src/lib/symmetry/cell-transform.ts +0 -118
  843. package/dist/src/lib/symmetry/index.ts +0 -348
  844. package/dist/src/lib/symmetry/spacegroups.ts +0 -404
  845. package/dist/src/lib/table/HeatmapTable.svelte +0 -1833
  846. package/dist/src/lib/table/ToggleMenu.svelte +0 -385
  847. package/dist/src/lib/table/index.ts +0 -139
  848. package/dist/src/lib/theme/ThemeControl.svelte +0 -53
  849. package/dist/src/lib/theme/index.ts +0 -107
  850. package/dist/src/lib/time.ts +0 -71
  851. package/dist/src/lib/tooltip/TooltipContent.svelte +0 -58
  852. package/dist/src/lib/tooltip/index.ts +0 -2
  853. package/dist/src/lib/tooltip/types.ts +0 -13
  854. package/dist/src/lib/trajectory/Trajectory.svelte +0 -1545
  855. package/dist/src/lib/trajectory/TrajectoryError.svelte +0 -128
  856. package/dist/src/lib/trajectory/TrajectoryExportPane.svelte +0 -357
  857. package/dist/src/lib/trajectory/TrajectoryInfoPane.svelte +0 -313
  858. package/dist/src/lib/trajectory/constants.ts +0 -7
  859. package/dist/src/lib/trajectory/extract.ts +0 -196
  860. package/dist/src/lib/trajectory/format-detect.ts +0 -96
  861. package/dist/src/lib/trajectory/frame-reader.ts +0 -456
  862. package/dist/src/lib/trajectory/helpers.ts +0 -217
  863. package/dist/src/lib/trajectory/index.ts +0 -218
  864. package/dist/src/lib/trajectory/parse/ase.ts +0 -109
  865. package/dist/src/lib/trajectory/parse/hdf5.ts +0 -173
  866. package/dist/src/lib/trajectory/parse/index.ts +0 -411
  867. package/dist/src/lib/trajectory/parse/lammps.ts +0 -215
  868. package/dist/src/lib/trajectory/parse/vasp.ts +0 -102
  869. package/dist/src/lib/trajectory/parse/xyz.ts +0 -143
  870. package/dist/src/lib/trajectory/plotting.ts +0 -599
  871. package/dist/src/lib/trajectory/types.ts +0 -13
  872. package/dist/src/lib/utils.ts +0 -56
  873. package/dist/src/lib/xrd/XrdPlot.svelte +0 -615
  874. package/dist/src/lib/xrd/broadening.ts +0 -130
  875. package/dist/src/lib/xrd/calc-xrd.ts +0 -397
  876. package/dist/src/lib/xrd/index.ts +0 -38
  877. package/dist/src/lib/xrd/parse.ts +0 -858
  878. package/dist/webview.js +0 -29421
  879. package/icon.png +0 -0
  880. package/matterviz-0.3.2.vsix +0 -0
  881. package/matterviz-0.3.4.vsix +0 -0
  882. package/matterviz-0.3.5.vsix +0 -0
  883. package/scripts/sync-config.ts +0 -101
  884. package/src/declarations.d.ts +0 -2
  885. package/src/extension.ts +0 -972
  886. package/src/node-io.ts +0 -65
  887. package/src/types.ts +0 -17
  888. package/src/webview/JsonBrowser.svelte +0 -1079
  889. package/src/webview/PlotPanel.svelte +0 -346
  890. package/src/webview/detect.ts +0 -444
  891. package/src/webview/main.ts +0 -764
  892. package/src/webview/plot-utils.ts +0 -250
  893. package/test-fixtures/all-viz-types.json.gz +0 -0
  894. package/test-fixtures/plot-demo-data.json.gz +0 -0
  895. package/tests/detect.test.ts +0 -604
  896. package/tests/extension.test.ts +0 -2041
  897. package/tests/node-io.test.ts +0 -39
  898. package/tests/plot-utils.test.ts +0 -302
  899. package/tests/vite-plugin-json-gz.test.ts +0 -114
  900. package/tests/vscode-mock.ts +0 -18
  901. package/tests/webview.test.ts +0 -231
  902. package/tsconfig.json +0 -20
  903. package/vite-plugin-json-gz.ts +0 -29
  904. package/vite.config.ts +0 -34
  905. package/vite.extension.config.ts +0 -34
  906. /package/dist/{src/lib/EmptyState.svelte → EmptyState.svelte} +0 -0
  907. /package/dist/{src/lib/chempot-diagram → chempot-diagram}/ChemPotScene3D.svelte +0 -0
  908. /package/dist/{src/lib/colors → colors}/alloy-colors.json +0 -0
  909. /package/dist/{src/lib/colors → colors}/dark-mode-colors.json +0 -0
  910. /package/dist/{src/lib/colors → colors}/jmol-colors.json +0 -0
  911. /package/dist/{src/lib/colors → colors}/muted-colors.json +0 -0
  912. /package/dist/{src/lib/colors → colors}/pastel-colors.json +0 -0
  913. /package/dist/{src/lib/colors → colors}/vesta-colors.json +0 -0
  914. /package/dist/{src/lib/element → element}/BohrAtom.svelte +0 -0
  915. /package/dist/{src/lib/element → element}/Nucleus.svelte +0 -0
  916. /package/dist/{src/lib/element → element}/data.json +0 -0
  917. /package/dist/{src/lib/element → element}/data.json.gz +0 -0
  918. /package/dist/{src/lib/element → element}/data.json.gz.d.ts +0 -0
  919. /package/dist/{src/lib/element → element}/data.schema.json +0 -0
  920. /package/dist/{src/lib/element-image-urls.json → element-image-urls.json} +0 -0
  921. /package/dist/{src/lib/feedback → feedback}/Spinner.svelte +0 -0
  922. /package/dist/{src/lib/feedback → feedback}/StatusMessage.svelte +0 -0
  923. /package/dist/{src/lib/layout → layout}/json-tree/JsonValue.svelte +0 -0
  924. /package/dist/{src/lib/periodic-table → periodic-table}/TableInset.svelte +0 -0
  925. /package/dist/{src/lib/theme → theme}/themes.mjs +0 -0
  926. /package/dist/{src/lib/xrd → xrd}/atomic_scattering_params.json +0 -0
@@ -0,0 +1,1394 @@
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
+ // Box plot specific
626
+ box: {
627
+ whisker_mode: {
628
+ value: `tukey`,
629
+ description: `How whiskers are computed: 'tukey' (1.5*IQR), 'minmax' (data extremes), 'percentile' (5th/95th), or 'std' (mean ± std)`,
630
+ enum: {
631
+ tukey: `Tukey (1.5·IQR)`,
632
+ minmax: `Min/Max`,
633
+ percentile: `Percentile`,
634
+ std: `Std Dev`,
635
+ },
636
+ },
637
+ box_width: {
638
+ value: 0.8,
639
+ description: `Box width as a fraction of the category slot`,
640
+ minimum: 0.1,
641
+ maximum: 1,
642
+ },
643
+ show_outliers: {
644
+ value: true,
645
+ description: `Show outlier points beyond the whiskers`,
646
+ },
647
+ show_mean: {
648
+ value: false,
649
+ description: `Show the mean marker inside each box`,
650
+ },
651
+ kind: {
652
+ value: `box`,
653
+ description: `Glyph to draw per series: box, violin (KDE density), or both`,
654
+ enum: { box: `Box`, violin: `Violin`, 'violin+box': `Violin + Box` },
655
+ },
656
+ side: {
657
+ value: `both`,
658
+ description: `Which half of the slot a violin occupies (one-sided / split violins)`,
659
+ enum: { both: `Both`, positive: `Positive`, negative: `Negative` },
660
+ },
661
+ bandwidth: {
662
+ value: `silverman`,
663
+ description: `KDE bandwidth rule for violins`,
664
+ enum: { silverman: `Silverman`, scott: `Scott` },
665
+ },
666
+ violin_width: {
667
+ value: 0.9,
668
+ description: `Violin width as a fraction of the category slot`,
669
+ minimum: 0.1,
670
+ maximum: 1,
671
+ },
672
+ violin_box_width: {
673
+ value: 0.2,
674
+ description: `Inner box width (fraction of slot) when a box is drawn inside a violin`,
675
+ minimum: 0.05,
676
+ maximum: 1,
677
+ },
678
+ box: {
679
+ color: {
680
+ value: `#4A9EFF`,
681
+ description: `Box fill color`,
682
+ },
683
+ opacity: {
684
+ value: 0.6,
685
+ description: `Box fill opacity`,
686
+ minimum: 0,
687
+ maximum: 1,
688
+ },
689
+ stroke_width: {
690
+ value: 0.5,
691
+ description: `Box outline width`,
692
+ minimum: 0,
693
+ maximum: 5,
694
+ },
695
+ stroke_color: {
696
+ value: `#000000`,
697
+ description: `Box outline color`,
698
+ },
699
+ border_radius: {
700
+ value: 0,
701
+ description: `Corner radius for boxes (px)`,
702
+ minimum: 0,
703
+ maximum: 10,
704
+ },
705
+ },
706
+ whisker: {
707
+ width: {
708
+ value: 1,
709
+ description: `Whisker line width`,
710
+ minimum: 0.5,
711
+ maximum: 5,
712
+ },
713
+ color: {
714
+ value: `#000000`,
715
+ description: `Whisker line color`,
716
+ },
717
+ cap_fraction: {
718
+ value: 0.3,
719
+ description: `Whisker cap width as a fraction of the box width`,
720
+ minimum: 0,
721
+ maximum: 1,
722
+ },
723
+ },
724
+ median: {
725
+ width: {
726
+ value: 1.5,
727
+ description: `Median line width`,
728
+ minimum: 0.5,
729
+ maximum: 6,
730
+ },
731
+ color: {
732
+ value: `#000000`,
733
+ description: `Median line color`,
734
+ },
735
+ },
736
+ outlier: {
737
+ radius: {
738
+ value: 2.5,
739
+ description: `Outlier point radius (px)`,
740
+ minimum: 0.5,
741
+ maximum: 10,
742
+ },
743
+ opacity: {
744
+ value: 0.6,
745
+ description: `Outlier point opacity`,
746
+ minimum: 0,
747
+ maximum: 1,
748
+ },
749
+ stroke_width: {
750
+ value: 0,
751
+ description: `Outlier point stroke width`,
752
+ minimum: 0,
753
+ maximum: 3,
754
+ },
755
+ },
756
+ violin: {
757
+ opacity: {
758
+ value: 0.5,
759
+ description: `Violin fill opacity`,
760
+ minimum: 0,
761
+ maximum: 1,
762
+ },
763
+ stroke_width: {
764
+ value: 1,
765
+ description: `Violin outline width`,
766
+ minimum: 0,
767
+ maximum: 5,
768
+ },
769
+ },
770
+ display: DISPLAY_CONFIG,
771
+ },
772
+ // Sankey diagram specific
773
+ sankey: {
774
+ orientation: {
775
+ value: `horizontal`,
776
+ description: `Flow direction of the Sankey diagram`,
777
+ enum: { horizontal: `Horizontal`, vertical: `Vertical` },
778
+ },
779
+ node_align: {
780
+ value: `justify`,
781
+ description: `How nodes are aligned across columns (maps to d3-sankey alignment)`,
782
+ enum: { justify: `Justify`, left: `Left`, right: `Right`, center: `Center` },
783
+ },
784
+ node_width: {
785
+ value: 24,
786
+ description: `Node thickness in pixels`,
787
+ minimum: 4,
788
+ maximum: 60,
789
+ },
790
+ node_padding: {
791
+ value: 12,
792
+ description: `Vertical gap in pixels between nodes sharing a column`,
793
+ minimum: 0,
794
+ maximum: 40,
795
+ },
796
+ link_opacity: {
797
+ value: 0.5,
798
+ description: `Opacity of link ribbons`,
799
+ minimum: 0.05,
800
+ maximum: 1,
801
+ },
802
+ show_node_labels: {
803
+ value: true,
804
+ description: `Show node labels next to each node`,
805
+ },
806
+ iterations: {
807
+ value: 6,
808
+ description: `Number of d3-sankey relaxation iterations for node positioning`,
809
+ minimum: 0,
810
+ maximum: 64,
811
+ },
812
+ },
813
+ // Sunburst chart specific
814
+ sunburst: {
815
+ shape: {
816
+ value: `sunburst`,
817
+ description: `Chart geometry: polar rings (sunburst) or stacked rows (icicle)`,
818
+ enum: { sunburst: `Sunburst`, icicle: `Icicle` },
819
+ },
820
+ value_mode: {
821
+ value: `leaf-sum`,
822
+ description: `How node values are interpreted (plotly branchvalues semantics): leaf-sum ignores parent values, total treats every value as authoritative, remainder adds a node's own value on top of its children`,
823
+ enum: { 'leaf-sum': `Leaf sum`, total: `Total`, remainder: `Remainder` },
824
+ },
825
+ max_depth: {
826
+ value: 0,
827
+ description: `Number of rings shown below the current zoom root (0 = all)`,
828
+ minimum: 0,
829
+ maximum: 10,
830
+ },
831
+ inner_radius: {
832
+ value: 0.25,
833
+ description: `Center hole size as fraction of the outer radius`,
834
+ minimum: 0,
835
+ maximum: 0.8,
836
+ },
837
+ pad_angle: {
838
+ value: 0.1,
839
+ description: `Angular gap in degrees between sibling arcs`,
840
+ minimum: 0,
841
+ maximum: 4,
842
+ },
843
+ min_fraction: {
844
+ value: 0,
845
+ description: `Group sibling arcs smaller than this fraction of the total into one 'Other' slice per parent (0 = off)`,
846
+ minimum: 0,
847
+ maximum: 0.2,
848
+ },
849
+ show_labels: {
850
+ value: true,
851
+ description: `Show labels on arcs large enough to fit them`,
852
+ },
853
+ label_rotation: {
854
+ value: `auto`,
855
+ description: `Arc label orientation (auto picks radial/tangential per arc)`,
856
+ enum: {
857
+ auto: `Auto`,
858
+ radial: `Radial`,
859
+ tangential: `Tangential`,
860
+ horizontal: `Horizontal`,
861
+ },
862
+ },
863
+ label_text: {
864
+ value: `label`,
865
+ description: `What arc labels display (percent is of the root total)`,
866
+ enum: {
867
+ label: `Label`,
868
+ value: `Value`,
869
+ percent: `Percent`,
870
+ 'label+value': `Label + value`,
871
+ 'label+percent': `Label + percent`,
872
+ },
873
+ },
874
+ zoom_on_click: {
875
+ value: true,
876
+ description: `Clicking a branch arc zooms into that subtree (center circle zooms out)`,
877
+ },
878
+ show_breadcrumbs: {
879
+ value: true,
880
+ description: `Show a clickable trail of ancestors when zoomed into a subtree`,
881
+ },
882
+ },
883
+ // Composition specific
884
+ composition: {
885
+ display_mode: {
886
+ value: `pie`,
887
+ description: `Display mode for composition data`,
888
+ enum: {
889
+ pie: `Pie`,
890
+ bubble: `Bubble`,
891
+ bar: `Bar`,
892
+ },
893
+ },
894
+ color_scheme: {
895
+ value: `Vesta`,
896
+ description: `Color scheme for composition visualization`,
897
+ enum: {
898
+ Vesta: `Vesta`,
899
+ Jmol: `Jmol`,
900
+ Alloy: `Alloy`,
901
+ Pastel: `Pastel`,
902
+ Muted: `Muted`,
903
+ 'Dark Mode': `Dark Mode`,
904
+ },
905
+ },
906
+ },
907
+ // Scatter plot specific
908
+ scatter: {
909
+ symbol_type: {
910
+ value: `Circle`,
911
+ description: `Default symbol type for scatter plots`,
912
+ enum: Object.fromEntries(symbol_names.map((name) => [name, name])),
913
+ },
914
+ show_legend: {
915
+ value: true,
916
+ description: `Show legend in scatter plots`,
917
+ },
918
+ show_points: {
919
+ value: true,
920
+ description: `Show points in scatter plots`,
921
+ },
922
+ show_lines: {
923
+ value: true,
924
+ description: `Show connecting lines in scatter plots`,
925
+ },
926
+ display: DISPLAY_CONFIG,
927
+ point: {
928
+ size: {
929
+ value: 4,
930
+ description: `Point size for scatter plots`,
931
+ minimum: 1,
932
+ maximum: 20,
933
+ },
934
+ color: {
935
+ value: `#4A9EFF`,
936
+ description: `Default color for scatter plot points`,
937
+ },
938
+ opacity: {
939
+ value: 1,
940
+ description: `Opacity of scatter plot points`,
941
+ minimum: 0,
942
+ maximum: 1,
943
+ },
944
+ stroke_width: {
945
+ value: 1,
946
+ description: `Stroke width for scatter plot points`,
947
+ minimum: 0,
948
+ maximum: 5,
949
+ },
950
+ stroke_color: {
951
+ value: `#000000`,
952
+ description: `Stroke color for scatter plot points`,
953
+ },
954
+ stroke_opacity: {
955
+ value: 1,
956
+ description: `Stroke opacity for scatter plot points`,
957
+ minimum: 0,
958
+ maximum: 1,
959
+ },
960
+ },
961
+ line: {
962
+ width: {
963
+ value: 2,
964
+ description: `Line width for scatter plot connections`,
965
+ minimum: 0.5,
966
+ maximum: 10,
967
+ },
968
+ color: {
969
+ value: `#4A9EFF`,
970
+ description: `Default color for scatter plot lines`,
971
+ },
972
+ opacity: {
973
+ value: 1,
974
+ description: `Opacity of scatter plot lines`,
975
+ minimum: 0,
976
+ maximum: 1,
977
+ },
978
+ dash: {
979
+ value: `solid`,
980
+ description: `Line dash pattern for scatter plots (e.g. "4,4" for dashed)`,
981
+ },
982
+ },
983
+ },
984
+ // Plot general
985
+ plot: {
986
+ animation_duration: {
987
+ value: 200,
988
+ description: `Duration of plot animations in milliseconds`,
989
+ minimum: 0,
990
+ maximum: 2000,
991
+ },
992
+ enable_zoom: {
993
+ value: true,
994
+ description: `Enable zooming in plots`,
995
+ },
996
+ zoom_factor: {
997
+ value: 1.5,
998
+ description: `Zoom factor for plot interactions`,
999
+ minimum: 1.1,
1000
+ maximum: 5.0,
1001
+ },
1002
+ auto_fit_range: {
1003
+ value: true,
1004
+ description: `Automatically fit plot range to data`,
1005
+ },
1006
+ grid_lines: {
1007
+ value: true,
1008
+ description: `Show grid lines in plots`,
1009
+ },
1010
+ axis_labels: {
1011
+ value: true,
1012
+ description: `Show axis labels in plots`,
1013
+ },
1014
+ show_x_zero_line: {
1015
+ value: true,
1016
+ description: `Show X-axis zero reference line`,
1017
+ },
1018
+ show_y_zero_line: {
1019
+ value: true,
1020
+ description: `Show Y-axis zero reference line`,
1021
+ },
1022
+ show_x_grid: {
1023
+ value: true,
1024
+ description: `Show X-axis grid lines`,
1025
+ },
1026
+ show_x2_grid: {
1027
+ value: false,
1028
+ description: `Show secondary X-axis grid lines`,
1029
+ },
1030
+ show_y_grid: {
1031
+ value: true,
1032
+ description: `Show Y-axis grid lines`,
1033
+ },
1034
+ show_y2_grid: {
1035
+ value: true,
1036
+ description: `Show secondary Y-axis grid lines`,
1037
+ },
1038
+ x_format: {
1039
+ value: `.2~s`,
1040
+ description: `Number format for X-axis ticks (D3 format specifier)`,
1041
+ },
1042
+ x2_format: {
1043
+ value: ``,
1044
+ description: `Number format for secondary X-axis ticks (D3 format specifier)`,
1045
+ },
1046
+ y_format: {
1047
+ value: `d`,
1048
+ description: `Number format for Y-axis ticks (D3 format specifier)`,
1049
+ },
1050
+ y2_format: {
1051
+ value: ``,
1052
+ description: `Number format for secondary Y-axis ticks (D3 format specifier)`,
1053
+ },
1054
+ x_scale_type: {
1055
+ value: `linear`,
1056
+ description: `Scale type for X-axis`,
1057
+ enum: {
1058
+ linear: `Linear`,
1059
+ log: `Log`,
1060
+ },
1061
+ },
1062
+ y_scale_type: {
1063
+ value: `linear`,
1064
+ description: `Scale type for Y-axis`,
1065
+ enum: {
1066
+ linear: `Linear`,
1067
+ log: `Log`,
1068
+ },
1069
+ },
1070
+ x_ticks: {
1071
+ value: 8,
1072
+ description: `Number of ticks on X-axis`,
1073
+ minimum: 2,
1074
+ maximum: 20,
1075
+ },
1076
+ y_ticks: {
1077
+ value: 6,
1078
+ description: `Number of ticks on Y-axis`,
1079
+ minimum: 2,
1080
+ maximum: 20,
1081
+ },
1082
+ },
1083
+ convex_hull: {
1084
+ // Convex hull defaults (binary/ternary/quaternary)
1085
+ binary: {
1086
+ camera_zoom: {
1087
+ value: 1.0,
1088
+ description: `Initial zoom for binary (2D) convex hull`,
1089
+ minimum: 0.1,
1090
+ maximum: 10,
1091
+ },
1092
+ camera_center_x: {
1093
+ value: 0,
1094
+ description: `Initial X center for binary (2D) convex hull`,
1095
+ },
1096
+ camera_center_y: {
1097
+ value: 0,
1098
+ description: `Initial Y center for binary (2D) convex hull`,
1099
+ },
1100
+ color_mode: {
1101
+ value: `energy`,
1102
+ description: `Color mode for 2D convex hull points`,
1103
+ enum: {
1104
+ stability: `Stability`,
1105
+ energy: `Energy`,
1106
+ },
1107
+ },
1108
+ color_scale: {
1109
+ value: `interpolateViridis`,
1110
+ description: `D3 interpolate color scale for 2D convex hull energy mode`,
1111
+ },
1112
+ show_stable: {
1113
+ value: true,
1114
+ description: `Show stable phases in 2D convex hull`,
1115
+ },
1116
+ show_unstable: {
1117
+ value: true,
1118
+ description: `Show unstable phases in 2D convex hull`,
1119
+ },
1120
+ show_stable_labels: {
1121
+ value: true,
1122
+ description: `Show labels for stable phases in 2D convex hull`,
1123
+ },
1124
+ show_unstable_labels: {
1125
+ value: false,
1126
+ description: `Show labels for unstable phases in 2D convex hull`,
1127
+ },
1128
+ max_hull_dist_show_phases: {
1129
+ value: 0.1,
1130
+ description: `Max eV/atom above hull for showing unstable entries in 2D convex hull`,
1131
+ minimum: 0,
1132
+ maximum: 2,
1133
+ },
1134
+ max_hull_dist_show_labels: {
1135
+ value: 0.1,
1136
+ description: `Max eV/atom above hull for labeling unstable entries in 2D convex hull`,
1137
+ minimum: 0,
1138
+ maximum: 2,
1139
+ },
1140
+ fullscreen: {
1141
+ value: false,
1142
+ description: `Start in fullscreen for 2D convex hull`,
1143
+ },
1144
+ info_pane_open: {
1145
+ value: false,
1146
+ description: `Info pane open by default for 2D convex hull`,
1147
+ },
1148
+ legend_pane_open: {
1149
+ value: false,
1150
+ description: `Legend pane open by default for 2D convex hull`,
1151
+ },
1152
+ },
1153
+ ternary: {
1154
+ camera_elevation: {
1155
+ value: 45,
1156
+ description: `Initial camera elevation (deg) for ternary (3D) convex hull`,
1157
+ minimum: -180,
1158
+ maximum: 180,
1159
+ },
1160
+ camera_azimuth: {
1161
+ value: 60,
1162
+ description: `Initial camera azimuth (deg) for ternary (3D) convex hull`,
1163
+ minimum: -360,
1164
+ maximum: 360,
1165
+ },
1166
+ camera_zoom: {
1167
+ value: 1.5,
1168
+ description: `Initial camera zoom for ternary (3D) convex hull`,
1169
+ minimum: 0.1,
1170
+ maximum: 10,
1171
+ },
1172
+ camera_center_x: {
1173
+ value: 0,
1174
+ description: `Initial X center for ternary (3D) convex hull`,
1175
+ },
1176
+ camera_center_y: {
1177
+ value: -50,
1178
+ description: `Initial Y center for ternary (3D) convex hull`,
1179
+ },
1180
+ color_mode: {
1181
+ value: `energy`,
1182
+ description: `Color mode for 3D convex hull points`,
1183
+ enum: {
1184
+ stability: `Stability`,
1185
+ energy: `Energy`,
1186
+ },
1187
+ },
1188
+ color_scale: {
1189
+ value: `interpolateViridis`,
1190
+ description: `D3 interpolate color scale for 3D convex hull energy mode`,
1191
+ },
1192
+ show_stable: {
1193
+ value: true,
1194
+ description: `Show stable phases in 3D convex hull`,
1195
+ },
1196
+ show_unstable: {
1197
+ value: true,
1198
+ description: `Show unstable phases in 3D convex hull`,
1199
+ },
1200
+ show_stable_labels: {
1201
+ value: true,
1202
+ description: `Show labels for stable phases in 3D convex hull`,
1203
+ },
1204
+ show_unstable_labels: {
1205
+ value: false,
1206
+ description: `Show labels for unstable phases in 3D convex hull`,
1207
+ },
1208
+ max_hull_dist_show_phases: {
1209
+ value: 0.5,
1210
+ description: `Max eV/atom above hull for showing unstable entries in 3D convex hull`,
1211
+ minimum: 0,
1212
+ maximum: 2,
1213
+ },
1214
+ max_hull_dist_show_labels: {
1215
+ value: 0.1,
1216
+ description: `Max eV/atom above hull for labeling unstable entries in 3D convex hull`,
1217
+ minimum: 0,
1218
+ maximum: 2,
1219
+ },
1220
+ show_hull_faces: {
1221
+ value: true,
1222
+ description: `Render lower hull faces in 3D convex hull`,
1223
+ },
1224
+ hull_face_color: {
1225
+ value: `#4caf50`,
1226
+ description: `Color for lower hull faces in 3D convex hull`,
1227
+ },
1228
+ hull_face_opacity: {
1229
+ value: 0.3,
1230
+ description: `Opacity for hull faces in 3D convex hull (0-1)`,
1231
+ minimum: 0,
1232
+ maximum: 1,
1233
+ },
1234
+ hull_face_color_mode: {
1235
+ value: `uniform`,
1236
+ description: `Coloring mode for hull faces: uniform (single color), formation_energy (by E_form), dominant_element (by element), or facet_index (categorical)`,
1237
+ enum: {
1238
+ uniform: `Uniform`,
1239
+ formation_energy: `Formation energy`,
1240
+ dominant_element: `Dominant element`,
1241
+ facet_index: `Facet index`,
1242
+ },
1243
+ },
1244
+ fullscreen: {
1245
+ value: false,
1246
+ description: `Start in fullscreen for 3D convex hull`,
1247
+ },
1248
+ info_pane_open: {
1249
+ value: false,
1250
+ description: `Info pane open by default for 3D convex hull`,
1251
+ },
1252
+ legend_pane_open: {
1253
+ value: false,
1254
+ description: `Legend pane open by default for 3D convex hull`,
1255
+ },
1256
+ },
1257
+ quaternary: {
1258
+ camera_rotation_x: {
1259
+ value: -0.6,
1260
+ description: `Initial camera X rotation (rad) for quaternary (4D) convex hull`,
1261
+ minimum: -6.283,
1262
+ maximum: 6.283,
1263
+ },
1264
+ camera_rotation_y: {
1265
+ value: 0.8,
1266
+ description: `Initial camera Y rotation (rad) for quaternary (4D) convex hull`,
1267
+ minimum: -6.283,
1268
+ maximum: 6.283,
1269
+ },
1270
+ camera_zoom: {
1271
+ value: 1.4,
1272
+ description: `Initial camera zoom for quaternary (4D) convex hull`,
1273
+ minimum: 0.1,
1274
+ maximum: 20,
1275
+ },
1276
+ camera_center_x: {
1277
+ value: 0,
1278
+ description: `Initial X center for quaternary (4D) convex hull`,
1279
+ },
1280
+ camera_center_y: {
1281
+ value: 20,
1282
+ description: `Initial Y center for quaternary (4D) convex hull`,
1283
+ },
1284
+ color_mode: {
1285
+ value: `energy`,
1286
+ description: `Color mode for 4D convex hull points`,
1287
+ enum: {
1288
+ stability: `Stability`,
1289
+ energy: `Energy`,
1290
+ },
1291
+ },
1292
+ color_scale: {
1293
+ value: `interpolateViridis`,
1294
+ description: `D3 interpolate color scale for 4D convex hull energy mode`,
1295
+ },
1296
+ show_stable: {
1297
+ value: true,
1298
+ description: `Show stable phases in 4D convex hull`,
1299
+ },
1300
+ show_unstable: {
1301
+ value: true,
1302
+ description: `Show unstable phases in 4D convex hull`,
1303
+ },
1304
+ show_stable_labels: {
1305
+ value: true,
1306
+ description: `Show labels for stable phases in 4D convex hull`,
1307
+ },
1308
+ show_unstable_labels: {
1309
+ value: false,
1310
+ description: `Show labels for unstable phases in 4D convex hull`,
1311
+ },
1312
+ show_hull_faces: {
1313
+ value: true,
1314
+ description: `Show convex hull faces in 4D convex hull`,
1315
+ },
1316
+ hull_face_color: {
1317
+ value: `#4caf50`,
1318
+ description: `Color for hull faces in 4D convex hull`,
1319
+ },
1320
+ hull_face_opacity: {
1321
+ value: 0.03,
1322
+ description: `Opacity for hull faces in 4D convex hull (0-1)`,
1323
+ minimum: 0,
1324
+ maximum: 1,
1325
+ },
1326
+ hull_face_color_mode: {
1327
+ value: `dominant_element`,
1328
+ description: `Coloring mode for hull faces: uniform (single color), formation_energy (by E_form), dominant_element (by element), or facet_index (categorical)`,
1329
+ enum: {
1330
+ uniform: `Uniform`,
1331
+ formation_energy: `Formation energy`,
1332
+ dominant_element: `Dominant element`,
1333
+ facet_index: `Facet index`,
1334
+ },
1335
+ },
1336
+ max_hull_dist_show_phases: {
1337
+ value: 0.1,
1338
+ description: `Max eV/atom above hull for showing unstable entries in 4D convex hull`,
1339
+ minimum: 0,
1340
+ maximum: 2,
1341
+ },
1342
+ max_hull_dist_show_labels: {
1343
+ value: 0.1,
1344
+ description: `Max eV/atom above hull for labeling unstable entries in 4D convex hull`,
1345
+ minimum: 0,
1346
+ maximum: 2,
1347
+ },
1348
+ fullscreen: {
1349
+ value: false,
1350
+ description: `Start in fullscreen for 4D convex hull`,
1351
+ },
1352
+ info_pane_open: {
1353
+ value: false,
1354
+ description: `Info pane open by default for 4D convex hull`,
1355
+ },
1356
+ legend_pane_open: {
1357
+ value: false,
1358
+ description: `Legend pane open by default for 4D convex hull`,
1359
+ },
1360
+ },
1361
+ },
1362
+ };
1363
+ // Extract values from settings config for runtime use
1364
+ const extract_values = (config) => {
1365
+ const result = {};
1366
+ for (const [key, value] of Object.entries(config)) {
1367
+ if (value && typeof value === `object` && `value` in value) {
1368
+ result[key] = value.value;
1369
+ }
1370
+ else if (value && typeof value === `object`) {
1371
+ result[key] = extract_values(value);
1372
+ }
1373
+ }
1374
+ return result;
1375
+ };
1376
+ // Runtime defaults - extracted values for use in components
1377
+ export const DEFAULTS = extract_values(SETTINGS_CONFIG);
1378
+ // Helper to merge with defaults - handles nested structure
1379
+ export const merge = (user) => ({
1380
+ ...DEFAULTS,
1381
+ ...user,
1382
+ symmetry: merge_nested(DEFAULTS.symmetry, user?.symmetry),
1383
+ structure: merge_nested(DEFAULTS.structure, user?.structure),
1384
+ trajectory: merge_nested(DEFAULTS.trajectory, user?.trajectory),
1385
+ composition: merge_nested(DEFAULTS.composition, user?.composition),
1386
+ plot: merge_nested(DEFAULTS.plot, user?.plot),
1387
+ scatter: merge_nested(DEFAULTS.scatter, user?.scatter),
1388
+ histogram: merge_nested(DEFAULTS.histogram, user?.histogram),
1389
+ bar: merge_nested(DEFAULTS.bar, user?.bar),
1390
+ box: merge_nested(DEFAULTS.box, user?.box),
1391
+ sankey: merge_nested(DEFAULTS.sankey, user?.sankey),
1392
+ sunburst: merge_nested(DEFAULTS.sunburst, user?.sunburst),
1393
+ convex_hull: merge_nested(DEFAULTS.convex_hull, user?.convex_hull),
1394
+ });