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
@@ -1,1479 +0,0 @@
1
- // MatterViz settings schema - single source of truth for all MatterViz settings
2
- // Used by both main package and VSCode extension
3
-
4
- import type { ColorScaleType, D3InterpolateName } from '$lib/colors'
5
- import type { HullFaceColorMode } from '$lib/convex-hull/types'
6
- import type { D3SymbolName } from '$lib/labels'
7
- import { symbol_names } from '$lib/labels'
8
- import type { Vec3 } from '$lib/math'
9
- import type { Orientation } from '$lib/plot'
10
- import type { BondingStrategy } from '$lib/structure/bonding'
11
- import { merge_nested } from './utils'
12
-
13
- // SettingType interface with optional context to control where settings apply
14
- // context: 'web' = web browser only, 'editor' = VSCode extension only, 'notebook' = Jupyter/marimo only, 'all' or undefined = all contexts
15
- export interface SettingType<T = unknown> {
16
- value: T
17
- description: string
18
- enum?: Readonly<Record<Extract<T, string>, string>>
19
- minimum?: number
20
- maximum?: number
21
- minItems?: number
22
- maxItems?: number
23
- context?: `web` | `editor` | `notebook` | `all`
24
- }
25
-
26
- export const SHOW_BONDS_OPTIONS = [`never`, `always`, `crystals`, `molecules`] as const
27
- export type ShowBonds = (typeof SHOW_BONDS_OPTIONS)[number]
28
-
29
- export type CameraProjection = `perspective` | `orthographic`
30
-
31
- export const VECTOR_COLOR_MODES = [
32
- `auto`,
33
- `element`,
34
- `spin_direction`,
35
- `magnitude`,
36
- `uniform`,
37
- ] as const
38
- export type VectorColorMode = (typeof VECTOR_COLOR_MODES)[number]
39
-
40
- // Per-key configuration for site vector layers (force, magmom, spin, etc.)
41
- export type VectorLayerConfig = {
42
- visible: boolean
43
- color: string | null // null = auto from palette
44
- scale: number | null // null = use global scale only (multiplier of 1.0)
45
- }
46
-
47
- export const ATOM_COLOR_MODE_OPTIONS = [
48
- `element`,
49
- `coordination`,
50
- `wyckoff`,
51
- `custom`,
52
- ] as const
53
- export type AtomColorMode = (typeof ATOM_COLOR_MODE_OPTIONS)[number]
54
-
55
- // Reusable type definitions for common setting patterns
56
- type DisplayConfigType = {
57
- x_grid: SettingType<boolean>
58
- y_grid: SettingType<boolean>
59
- y2_grid: SettingType<boolean>
60
- x_zero_line: SettingType<boolean>
61
- y_zero_line: SettingType<boolean>
62
- }
63
-
64
- type BarStyleType = {
65
- color: SettingType<string>
66
- opacity: SettingType<number>
67
- stroke_width: SettingType<number>
68
- stroke_color: SettingType<string>
69
- stroke_opacity: SettingType<number>
70
- }
71
-
72
- type PointStyleType = {
73
- size: SettingType<number>
74
- color: SettingType<string>
75
- opacity: SettingType<number>
76
- stroke_width: SettingType<number>
77
- stroke_color: SettingType<string>
78
- stroke_opacity: SettingType<number>
79
- }
80
-
81
- type LineStyleType = {
82
- width: SettingType<number>
83
- color: SettingType<string>
84
- opacity: SettingType<number>
85
- dash: SettingType<string>
86
- }
87
-
88
- type SimpleBarStyleType = {
89
- color: SettingType<string>
90
- opacity: SettingType<number>
91
- border_radius: SettingType<number>
92
- }
93
-
94
- type SimpleLineStyleType = { width: SettingType<number>; color: SettingType<string> }
95
-
96
- type ConvexHullCommonType = {
97
- camera_zoom: SettingType<number>
98
- camera_center_x: SettingType<number>
99
- camera_center_y: SettingType<number>
100
- color_mode: SettingType<`stability` | `energy`>
101
- color_scale: SettingType<string>
102
- show_stable: SettingType<boolean>
103
- show_unstable: SettingType<boolean>
104
- show_stable_labels: SettingType<boolean>
105
- show_unstable_labels: SettingType<boolean>
106
- max_hull_dist_show_phases: SettingType<number>
107
- max_hull_dist_show_labels: SettingType<number>
108
- fullscreen: SettingType<boolean>
109
- info_pane_open: SettingType<boolean>
110
- legend_pane_open: SettingType<boolean>
111
- }
112
-
113
- type ConvexHullWith3DType = ConvexHullCommonType & {
114
- show_hull_faces: SettingType<boolean>
115
- hull_face_color: SettingType<string>
116
- hull_face_opacity: SettingType<number>
117
- hull_face_color_mode: SettingType<HullFaceColorMode>
118
- }
119
-
120
- export interface SettingsConfig {
121
- // General display settings
122
- color_scheme: SettingType<string>
123
- background_color: SettingType<string>
124
- background_opacity: SettingType<number>
125
-
126
- // Symmetry Analysis
127
- symmetry: {
128
- symprec: SettingType<number>
129
- algo: SettingType<`Moyo` | `Spglib`>
130
- }
131
-
132
- structure: {
133
- // Structure viewer settings
134
- // Atoms & Bonds
135
- atom_radius: SettingType<number>
136
- same_size_atoms: SettingType<boolean>
137
- show_atoms: SettingType<boolean>
138
- show_image_atoms: SettingType<boolean>
139
- sphere_segments: SettingType<number>
140
- bond_thickness: SettingType<number>
141
- auto_bond_order: SettingType<boolean>
142
- aromatic_display: SettingType<`aromatic` | `kekule`>
143
- show_bonds: SettingType<ShowBonds>
144
- bond_color: SettingType<string>
145
- bonding_strategy: SettingType<BondingStrategy>
146
- atom_color_mode: SettingType<AtomColorMode>
147
- atom_color_scale: SettingType<D3InterpolateName>
148
- atom_color_scale_type: SettingType<ColorScaleType>
149
-
150
- // Camera & Controls
151
- show_gizmo: SettingType<boolean>
152
- camera_position: SettingType<Vec3>
153
- camera_projection: SettingType<CameraProjection>
154
- initial_zoom: SettingType<number>
155
- fov: SettingType<number>
156
- rotation_damping: SettingType<number>
157
- rotate_speed: SettingType<number>
158
- zoom_speed: SettingType<number>
159
- pan_speed: SettingType<number>
160
- zoom_to_cursor: SettingType<boolean>
161
- max_zoom: SettingType<number | undefined>
162
- min_zoom: SettingType<number | undefined>
163
- auto_rotate: SettingType<number>
164
- // Manual rotation controls [x, y, z] in radians
165
- rotation: SettingType<Vec3>
166
-
167
- // Labels & Lighting
168
- show_site_labels: SettingType<boolean>
169
- show_site_indices: SettingType<boolean>
170
- site_label_size: SettingType<number>
171
- site_label_color: SettingType<string>
172
- site_label_bg_color: SettingType<string>
173
- site_label_padding: SettingType<number>
174
- site_label_offset: SettingType<Vec3>
175
- ambient_light: SettingType<number>
176
- directional_light: SettingType<number>
177
-
178
- // Site Vectors (force, magmom, spin) & Lattice
179
- vector_configs: SettingType<Record<string, VectorLayerConfig>>
180
- vector_scale: SettingType<number>
181
- vector_color: SettingType<string>
182
- vector_color_mode: SettingType<VectorColorMode>
183
- vector_color_scale: SettingType<D3InterpolateName>
184
- vector_normalize: SettingType<boolean>
185
- vector_uniform_thickness: SettingType<boolean>
186
- vector_origin_gap: SettingType<number>
187
- vector_shaft_radius: SettingType<number>
188
- vector_arrow_head_radius: SettingType<number>
189
- vector_arrow_head_length: SettingType<number>
190
- show_cell: SettingType<boolean>
191
- show_cell_vectors: SettingType<boolean>
192
- cell_edge_opacity: SettingType<number>
193
- cell_surface_opacity: SettingType<number>
194
- cell_edge_color: SettingType<string>
195
- cell_surface_color: SettingType<string>
196
- cell_edge_width: SettingType<number>
197
- fullscreen_toggle: SettingType<boolean>
198
- }
199
-
200
- trajectory: {
201
- // Trajectory viewer settings
202
- // Core trajectory settings
203
- auto_play: SettingType<boolean>
204
- fps: SettingType<number>
205
- fps_range: SettingType<[number, number]>
206
- display_mode: SettingType<
207
- `structure+scatter` | `structure` | `scatter` | `histogram` | `structure+histogram`
208
- >
209
- show_controls: SettingType<boolean>
210
- fullscreen_toggle: SettingType<boolean>
211
- step_labels: SettingType<number>
212
- layout: SettingType<`auto` | Orientation>
213
-
214
- // File handling and loading
215
- allow_file_drop: SettingType<boolean>
216
- bin_file_threshold: SettingType<number>
217
- text_file_threshold: SettingType<number>
218
- use_indexing: SettingType<boolean>
219
- chunk_size: SettingType<number>
220
-
221
- // Formatting
222
- step_label_format: SettingType<string>
223
- property_value_format: SettingType<string>
224
- tooltip_format: SettingType<string>
225
-
226
- // UI/UX
227
- enable_keyboard_shortcuts: SettingType<boolean>
228
- show_parsing_progress: SettingType<boolean>
229
- compact_controls: SettingType<boolean>
230
- show_filename_in_controls: SettingType<boolean>
231
-
232
- // Playback behavior
233
- smooth_playback: SettingType<boolean>
234
- loop_playback: SettingType<boolean>
235
- pause_on_hover: SettingType<boolean>
236
- highlight_current_frame: SettingType<boolean>
237
- show_frame_info: SettingType<boolean>
238
-
239
- // Performance
240
- max_frames_in_memory: SettingType<number>
241
- memory_usage_warning_threshold: SettingType<number>
242
- enable_performance_monitoring: SettingType<boolean>
243
- prefetch_frames: SettingType<number>
244
- cache_parsed_data: SettingType<boolean>
245
- }
246
-
247
- plot: {
248
- // General plot settings
249
- animation_duration: SettingType<number>
250
- enable_zoom: SettingType<boolean>
251
- zoom_factor: SettingType<number>
252
- auto_fit_range: SettingType<boolean>
253
- grid_lines: SettingType<boolean>
254
- axis_labels: SettingType<boolean>
255
- show_x_zero_line: SettingType<boolean>
256
- show_y_zero_line: SettingType<boolean>
257
- show_x_grid: SettingType<boolean>
258
- show_x2_grid: SettingType<boolean>
259
- show_y_grid: SettingType<boolean>
260
- show_y2_grid: SettingType<boolean>
261
- x_format: SettingType<string>
262
- x2_format: SettingType<string>
263
- y_format: SettingType<string>
264
- y2_format: SettingType<string>
265
- x_scale_type: SettingType<string>
266
- y_scale_type: SettingType<string>
267
- x_ticks: SettingType<number>
268
- y_ticks: SettingType<number>
269
- }
270
-
271
- scatter: {
272
- // Scatter plot settings
273
- show_legend: SettingType<boolean>
274
- show_points: SettingType<boolean>
275
- show_lines: SettingType<boolean>
276
- symbol_type: SettingType<D3SymbolName>
277
- display: DisplayConfigType
278
- point: PointStyleType
279
- line: LineStyleType
280
- }
281
-
282
- histogram: {
283
- // Histogram settings
284
- mode: SettingType<`overlay` | `single`>
285
- show_legend: SettingType<boolean>
286
- bin_count: SettingType<number>
287
- bar: BarStyleType
288
- display: DisplayConfigType
289
- }
290
-
291
- bar: {
292
- // Bar plot settings
293
- display: DisplayConfigType
294
- bar: SimpleBarStyleType
295
- line: SimpleLineStyleType
296
- }
297
-
298
- composition: {
299
- // Composition specific settings
300
- display_mode: SettingType<`pie` | `bubble` | `bar`>
301
- color_scheme: SettingType<string>
302
- }
303
-
304
- convex_hull: {
305
- // Convex hull defaults (binary/ternary/quaternary)
306
- binary: ConvexHullCommonType
307
- ternary: ConvexHullWith3DType & {
308
- camera_elevation: SettingType<number>
309
- camera_azimuth: SettingType<number>
310
- }
311
- quaternary: ConvexHullWith3DType & {
312
- camera_rotation_x: SettingType<number>
313
- camera_rotation_y: SettingType<number>
314
- }
315
- }
316
- }
317
-
318
- const DISPLAY_CONFIG = {
319
- x_grid: {
320
- value: true,
321
- description: `Show X-axis grid lines`,
322
- },
323
- y_grid: {
324
- value: true,
325
- description: `Show Y-axis grid lines`,
326
- },
327
- y2_grid: {
328
- value: false,
329
- description: `Show Y2-axis grid lines`,
330
- },
331
- x_zero_line: {
332
- value: true,
333
- description: `Show X-axis zero reference line`,
334
- },
335
- y_zero_line: {
336
- value: true,
337
- description: `Show Y-axis zero reference line`,
338
- },
339
- } as const
340
-
341
- // Complete settings configuration with values, descriptions, and constraints
342
- export const SETTINGS_CONFIG: SettingsConfig = {
343
- // General display settings
344
- color_scheme: {
345
- value: `Vesta`,
346
- description: `Color scheme for atoms and bonds`,
347
- enum: {
348
- Vesta: `Vesta`,
349
- Jmol: `Jmol`,
350
- Alloy: `Alloy`,
351
- Pastel: `Pastel`,
352
- Muted: `Muted`,
353
- 'Dark Mode': `Dark Mode`,
354
- },
355
- },
356
- background_color: {
357
- value: `#000000`,
358
- description: `Background color of the 3D viewport`,
359
- },
360
- background_opacity: {
361
- value: 0,
362
- description: `Opacity of the background (0.0 = transparent, 1.0 = opaque)`,
363
- minimum: 0,
364
- maximum: 1,
365
- },
366
-
367
- // Symmetry Analysis
368
- symmetry: {
369
- symprec: {
370
- value: 1e-4,
371
- description: `Symmetry precision tolerance for spacegroup detection`,
372
- minimum: 1e-8,
373
- maximum: 1,
374
- },
375
- algo: {
376
- value: `Moyo` as const,
377
- description: `Algorithm for symmetry analysis`,
378
- enum: { Moyo: `Moyo`, Spglib: `Spglib` },
379
- },
380
- },
381
-
382
- // Structure viewer settings
383
- structure: {
384
- // Atoms & Bonds
385
- atom_radius: {
386
- value: 0.7,
387
- description: `Radius multiplier for atoms (0.7 = standard atomic radii)`,
388
- minimum: 0.1,
389
- maximum: 3.0,
390
- },
391
- same_size_atoms: {
392
- value: false,
393
- description: `Render all atoms with the same size regardless of element`,
394
- },
395
- show_atoms: {
396
- value: true,
397
- description: `Display atoms in the structure`,
398
- },
399
- show_image_atoms: {
400
- value: true,
401
- description: `Show atoms on the edge of the cell that are not part of the primitive basis`,
402
- },
403
- sphere_segments: {
404
- value: 20,
405
- description: `Number of segments for sphere rendering (higher = smoother)`,
406
- minimum: 8,
407
- maximum: 64,
408
- },
409
- bond_thickness: {
410
- value: 0.07,
411
- description: `Thickness of bonds relative to atom radius`,
412
- minimum: 0.01,
413
- maximum: 1.0,
414
- },
415
- auto_bond_order: {
416
- value: false,
417
- description: `Automatically perceive double/triple/aromatic bonds from geometry (main-group/organic; metals fall back to single)`,
418
- },
419
- aromatic_display: {
420
- value: `aromatic`,
421
- description: `How to render perceived aromatic rings`,
422
- enum: { aromatic: `Aromatic (1.5)`, kekule: `Kekulé (alternating)` },
423
- },
424
- show_bonds: {
425
- value: `always`,
426
- description: `When to display bonds between atoms`,
427
- enum: Object.fromEntries(
428
- SHOW_BONDS_OPTIONS.map((key) => [key, key[0].toUpperCase() + key.slice(1)]),
429
- ) as Readonly<Record<ShowBonds, string>>,
430
- },
431
- bond_color: {
432
- value: `#666666`,
433
- description: `Color for bonds (hex color code)`,
434
- },
435
- bonding_strategy: {
436
- value: `electroneg_ratio`,
437
- description: `Method for determining bonds between atoms`,
438
- enum: {
439
- electroneg_ratio: `Electronegativity Ratio`,
440
- solid_angle: `Solid Angle`,
441
- },
442
- },
443
- atom_color_mode: {
444
- value: `element`,
445
- description: `Property to use for atom coloring`,
446
- enum: {
447
- element: `Element`,
448
- coordination: `Coordination Number`,
449
- wyckoff: `Wyckoff Position`,
450
- } as Readonly<Record<AtomColorMode, string>>,
451
- },
452
- atom_color_scale: {
453
- value: `interpolateViridis`,
454
- description: `D3 color scale for property-based coloring (e.g. interpolateViridis, interpolatePlasma)`,
455
- },
456
- atom_color_scale_type: {
457
- value: `continuous`,
458
- description: `Color scale type for property-based coloring`,
459
- enum: {
460
- continuous: `Continuous Gradient`,
461
- categorical: `Discrete Categories`,
462
- },
463
- },
464
-
465
- // Camera & Controls
466
- show_gizmo: {
467
- value: true,
468
- description: `Show orientation gizmo in the corner of structure viewer`,
469
- },
470
- camera_position: {
471
- value: [0, 0, 0] as const,
472
- description: `Initial camera position [x, y, z]`,
473
- minItems: 3,
474
- maxItems: 3,
475
- },
476
- camera_projection: {
477
- value: `orthographic` as const,
478
- description: `Camera projection type`,
479
- enum: {
480
- perspective: `Perspective`,
481
- orthographic: `Orthographic`,
482
- },
483
- },
484
- initial_zoom: {
485
- value: 35,
486
- description: `Initial zoom level for orthographic projection (ignored for perspective)`,
487
- minimum: 0.1,
488
- maximum: 200,
489
- },
490
- fov: {
491
- value: 10,
492
- description: `Field of view in degrees for perspective projection`,
493
- minimum: 10,
494
- maximum: 150,
495
- },
496
- rotation_damping: {
497
- value: 0.1,
498
- description: `Camera rotation damping factor (0 = no damping, 1 = heavy damping)`,
499
- minimum: 0,
500
- maximum: 1,
501
- },
502
- rotate_speed: {
503
- value: 1.0,
504
- description: `Mouse rotation sensitivity (set to 0 to disable rotation)`,
505
- minimum: 0,
506
- maximum: 2.0,
507
- },
508
- zoom_speed: {
509
- value: 0.5,
510
- description: `Mouse wheel zoom sensitivity`,
511
- minimum: 0.1,
512
- maximum: 2.0,
513
- },
514
- pan_speed: {
515
- value: 0.5,
516
- description: `Mouse pan sensitivity`,
517
- minimum: 0.1,
518
- maximum: 2.0,
519
- },
520
- zoom_to_cursor: {
521
- value: false,
522
- description: `Zoom toward cursor position instead of scene center (double click canvas to reset camera)`,
523
- },
524
- max_zoom: {
525
- value: 500,
526
- description: `Maximum zoom level (orthographic: larger = more zoomed out, perspective: larger = further away)`,
527
- },
528
- min_zoom: {
529
- value: 10,
530
- description: `Minimum zoom level (orthographic: smaller = more zoomed in, perspective: smaller = closer)`,
531
- },
532
- auto_rotate: {
533
- value: 0.2,
534
- description: `Automatic rotation speed (0 = disabled, positive = clockwise)`,
535
- minimum: 0,
536
- maximum: 10,
537
- },
538
- rotation: {
539
- value: [0, 0, 0] as const,
540
- 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.`,
541
- minItems: 3,
542
- maxItems: 3,
543
- },
544
-
545
- // Labels & Lighting
546
- show_site_labels: {
547
- value: false,
548
- description: `Show element labels on atoms`,
549
- },
550
- show_site_indices: {
551
- value: false,
552
- description: `Show site index numbers on atoms`,
553
- },
554
- site_label_size: {
555
- value: 1,
556
- description: `Font size for atom labels`,
557
- minimum: 0.5,
558
- maximum: 5,
559
- },
560
- site_label_color: {
561
- value: `#111111`,
562
- description: `Text color for atom labels`,
563
- },
564
- site_label_bg_color: {
565
- value: `color-mix(in srgb, #000000 0%, transparent)`,
566
- description: `Background color for atom labels`,
567
- },
568
- site_label_padding: {
569
- value: 2,
570
- description: `Padding around atom labels in pixels`,
571
- minimum: 0,
572
- maximum: 20,
573
- },
574
- site_label_offset: {
575
- value: [0, 0.5, 0] as const,
576
- description: `3D offset for atom labels [x, y, z]`,
577
- minItems: 3,
578
- maxItems: 3,
579
- },
580
- ambient_light: {
581
- value: 1.5,
582
- description: `Ambient light intensity (0 = dark, higher = brighter)`,
583
- minimum: 0,
584
- maximum: 4,
585
- },
586
- directional_light: {
587
- value: 2.2,
588
- description: `Directional light intensity (0 = no shadows, higher = stronger shadows)`,
589
- minimum: 0,
590
- maximum: 4,
591
- },
592
-
593
- // Site Vectors (force, magmom, spin) & Lattice
594
- vector_configs: {
595
- value: {} as Record<string, VectorLayerConfig>,
596
- 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.`,
597
- },
598
- vector_scale: {
599
- value: 1.0,
600
- description: `Scale factor for site vector arrows`,
601
- minimum: 0.1,
602
- maximum: 10.0,
603
- },
604
- vector_color: {
605
- value: `#ff0000`,
606
- description: `Color for site vector arrows (used in uniform mode and as fallback)`,
607
- },
608
- vector_color_mode: {
609
- value: `auto` as VectorColorMode,
610
- 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).`,
611
- },
612
- vector_color_scale: {
613
- value: `interpolateViridis` as D3InterpolateName,
614
- description: `D3 color scale for magnitude coloring mode`,
615
- },
616
- vector_normalize: {
617
- value: false,
618
- description: `Show all arrows at the same length (direction only). Useful for spin/magmom visualization where orientation matters but magnitude does not.`,
619
- },
620
- vector_uniform_thickness: {
621
- value: false,
622
- description: `Use the same shaft and head size for all arrows regardless of length. When off (default), thickness scales with arrow length.`,
623
- },
624
- vector_origin_gap: {
625
- value: 0,
626
- 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.`,
627
- minimum: 0,
628
- maximum: 0.5,
629
- },
630
- vector_shaft_radius: {
631
- value: -0.03,
632
- description: `Radius of vector shaft (negative = relative to length, positive = absolute)`,
633
- minimum: -0.1,
634
- maximum: 0.1,
635
- },
636
- vector_arrow_head_radius: {
637
- value: -0.06,
638
- description: `Radius of vector arrow head (negative = relative to length, positive = absolute)`,
639
- minimum: -0.2,
640
- maximum: 0.2,
641
- },
642
- vector_arrow_head_length: {
643
- value: -0.15,
644
- description: `Length of vector arrow head (negative = relative to length, positive = absolute)`,
645
- minimum: -0.5,
646
- maximum: 0.5,
647
- },
648
- show_cell: {
649
- value: false,
650
- description: `Display system cell`,
651
- },
652
- show_cell_vectors: {
653
- value: true,
654
- description: `Display cell vectors`,
655
- },
656
- cell_edge_opacity: {
657
- value: 0.3,
658
- description: `Opacity of cell edge lines`,
659
- minimum: 0,
660
- maximum: 1,
661
- },
662
- cell_surface_opacity: {
663
- value: 0.1,
664
- description: `Opacity of cell surfaces`,
665
- minimum: 0,
666
- maximum: 1,
667
- },
668
- cell_edge_color: {
669
- value: `#808080`,
670
- description: `Color of cell edges`,
671
- },
672
- cell_surface_color: {
673
- value: `#e0e0e0`,
674
- description: `Color of cell surfaces`,
675
- },
676
- cell_edge_width: {
677
- value: 1.5,
678
- description: `Width of cell edge lines`,
679
- minimum: 0.5,
680
- maximum: 5.0,
681
- },
682
- fullscreen_toggle: {
683
- value: true,
684
- description: `Show fullscreen toggle button (web-only, always false in other contexts)`,
685
- context: `web`,
686
- },
687
- },
688
-
689
- // Trajectory viewer settings
690
- trajectory: {
691
- // Core trajectory settings
692
- auto_play: {
693
- value: false,
694
- description: `Automatically start playing trajectory when opened`,
695
- },
696
- fps: {
697
- value: 10,
698
- description: `Frames per second for trajectory playback`,
699
- minimum: 0.1,
700
- maximum: 60,
701
- },
702
- fps_range: {
703
- value: [0.2, 60] as const,
704
- description: `Allowed range for playback speed [min, max]`,
705
- minItems: 2,
706
- maxItems: 2,
707
- },
708
- display_mode: {
709
- value: `structure+scatter` as const,
710
- description: `Visualization mode for trajectory data`,
711
- enum: {
712
- 'structure+scatter': `Structure + Scatter`,
713
- structure: `Structure`,
714
- scatter: `Scatter`,
715
- histogram: `Histogram`,
716
- 'structure+histogram': `Structure + Histogram`,
717
- },
718
- },
719
- show_controls: {
720
- value: true,
721
- description: `Show playback controls`,
722
- },
723
- fullscreen_toggle: {
724
- value: true,
725
- description: `Show fullscreen toggle button (web-only, always false in other contexts)`,
726
- context: `web`,
727
- },
728
- step_labels: {
729
- value: 5,
730
- description: `Number of frame labels to display`,
731
- minimum: 0,
732
- maximum: 20,
733
- },
734
- layout: {
735
- value: `auto` as const,
736
- description: `Layout arrangement for trajectory viewer`,
737
- enum: {
738
- auto: `Auto`,
739
- horizontal: `Horizontal`,
740
- vertical: `Vertical`,
741
- },
742
- },
743
-
744
- // File handling and loading
745
- allow_file_drop: {
746
- value: true,
747
- description: `Allow drag-and-drop of trajectory files`,
748
- },
749
- bin_file_threshold: {
750
- value: 50000000,
751
- description: `File size threshold for binary loading (bytes)`,
752
- minimum: 1000000,
753
- maximum: 500000000,
754
- },
755
- text_file_threshold: {
756
- value: 25000000,
757
- description: `File size threshold for text loading (bytes)`,
758
- minimum: 500000,
759
- maximum: 250000000,
760
- },
761
- use_indexing: {
762
- value: false,
763
- description: `Use frame indexing for large trajectories`,
764
- },
765
- chunk_size: {
766
- value: 1000,
767
- description: `Number of frames to process at once`,
768
- minimum: 10,
769
- maximum: 10000,
770
- },
771
-
772
- // Formatting
773
- step_label_format: {
774
- value: `.3~s`,
775
- description: `Number format for step labels (D3 format specifier)`,
776
- },
777
- property_value_format: {
778
- value: `.2~s`,
779
- description: `Number format for property values (D3 format specifier)`,
780
- },
781
- tooltip_format: {
782
- value: `.3~s`,
783
- description: `Number format for tooltips (D3 format specifier)`,
784
- },
785
-
786
- // UI/UX
787
- enable_keyboard_shortcuts: {
788
- value: true,
789
- description: `Enable keyboard shortcuts for playback`,
790
- },
791
- show_parsing_progress: {
792
- value: true,
793
- description: `Show progress indicator while parsing files`,
794
- },
795
- compact_controls: {
796
- value: false,
797
- description: `Use compact layout for playback controls`,
798
- },
799
- show_filename_in_controls: {
800
- value: true,
801
- description: `Display filename in control pane`,
802
- },
803
-
804
- // Playback behavior
805
- smooth_playback: {
806
- value: false,
807
- description: `Use smooth interpolation between frames`,
808
- },
809
- loop_playback: {
810
- value: true,
811
- description: `Loop trajectory playback`,
812
- },
813
- pause_on_hover: {
814
- value: false,
815
- description: `Pause playback when hovering over controls`,
816
- },
817
- highlight_current_frame: {
818
- value: true,
819
- description: `Highlight current frame in timeline`,
820
- },
821
- show_frame_info: {
822
- value: true,
823
- description: `Show frame information overlay`,
824
- },
825
-
826
- // Performance
827
- max_frames_in_memory: {
828
- value: 1000,
829
- description: `Maximum frames to keep in memory`,
830
- minimum: 10,
831
- maximum: 10000,
832
- },
833
- memory_usage_warning_threshold: {
834
- value: 500,
835
- description: `Frame count threshold for memory warnings`,
836
- minimum: 10,
837
- maximum: 5000,
838
- },
839
- enable_performance_monitoring: {
840
- value: false,
841
- description: `Enable performance monitoring`,
842
- },
843
- prefetch_frames: {
844
- value: 5,
845
- description: `Number of frames to prefetch ahead`,
846
- minimum: 0,
847
- maximum: 100,
848
- },
849
- cache_parsed_data: {
850
- value: true,
851
- description: `Cache parsed trajectory data`,
852
- },
853
- },
854
-
855
- // Histogram specific
856
- histogram: {
857
- mode: {
858
- value: `overlay` as const,
859
- description: `Histogram display mode. 'overlay' shows multiple histograms in the same plot, 'single' shows a single histogram`,
860
- enum: {
861
- overlay: `Overlay`,
862
- single: `Single`,
863
- },
864
- },
865
- show_legend: {
866
- value: true,
867
- description: `Show legend in histogram plots`,
868
- },
869
- bin_count: {
870
- value: 100,
871
- description: `Number of bins for histogram plots`,
872
- minimum: 1,
873
- maximum: 1000,
874
- },
875
- bar: {
876
- color: {
877
- value: `#4A9EFF`,
878
- description: `Histogram bar fill color`,
879
- },
880
- opacity: {
881
- value: 0.7,
882
- description: `Histogram bar opacity`,
883
- minimum: 0,
884
- maximum: 1,
885
- },
886
- stroke_width: {
887
- value: 1,
888
- description: `Histogram bar stroke width`,
889
- minimum: 0,
890
- maximum: 5,
891
- },
892
- stroke_color: {
893
- value: `#000000`,
894
- description: `Histogram bar stroke color`,
895
- },
896
- stroke_opacity: {
897
- value: 0.5,
898
- description: `Histogram bar stroke opacity`,
899
- minimum: 0,
900
- maximum: 1,
901
- },
902
- },
903
- display: DISPLAY_CONFIG,
904
- },
905
-
906
- // Bar plot specific
907
- bar: {
908
- bar: {
909
- color: {
910
- value: `#4A9EFF`,
911
- description: `Bar plot fill color`,
912
- },
913
- opacity: {
914
- value: 0.6,
915
- description: `Bar plot opacity (overlay mode)`,
916
- minimum: 0,
917
- maximum: 1,
918
- },
919
- border_radius: {
920
- value: 3,
921
- description: `Corner radius for bar tops (px)`,
922
- minimum: 0,
923
- maximum: 10,
924
- },
925
- },
926
- line: {
927
- width: {
928
- value: 2,
929
- description: `Bar plot line width`,
930
- minimum: 0.5,
931
- maximum: 10,
932
- },
933
- color: {
934
- value: `#4A9EFF`,
935
- description: `Bar plot line color`,
936
- },
937
- },
938
- display: DISPLAY_CONFIG,
939
- },
940
-
941
- // Composition specific
942
- composition: {
943
- display_mode: {
944
- value: `pie` as const,
945
- description: `Display mode for composition data`,
946
- enum: {
947
- pie: `Pie`,
948
- bubble: `Bubble`,
949
- bar: `Bar`,
950
- },
951
- },
952
- color_scheme: {
953
- value: `Vesta`,
954
- description: `Color scheme for composition visualization`,
955
- enum: {
956
- Vesta: `Vesta`,
957
- Jmol: `Jmol`,
958
- Alloy: `Alloy`,
959
- Pastel: `Pastel`,
960
- Muted: `Muted`,
961
- 'Dark Mode': `Dark Mode`,
962
- },
963
- },
964
- },
965
-
966
- // Scatter plot specific
967
- scatter: {
968
- symbol_type: {
969
- value: `Circle`,
970
- description: `Default symbol type for scatter plots`,
971
- enum: Object.fromEntries(symbol_names.map((name) => [name, name])) as Readonly<
972
- Record<D3SymbolName, string>
973
- >,
974
- },
975
- show_legend: {
976
- value: true,
977
- description: `Show legend in scatter plots`,
978
- },
979
- show_points: {
980
- value: true,
981
- description: `Show points in scatter plots`,
982
- },
983
- show_lines: {
984
- value: true,
985
- description: `Show connecting lines in scatter plots`,
986
- },
987
- display: DISPLAY_CONFIG,
988
- point: {
989
- size: {
990
- value: 4,
991
- description: `Point size for scatter plots`,
992
- minimum: 1,
993
- maximum: 20,
994
- },
995
- color: {
996
- value: `#4A9EFF`,
997
- description: `Default color for scatter plot points`,
998
- },
999
- opacity: {
1000
- value: 1,
1001
- description: `Opacity of scatter plot points`,
1002
- minimum: 0,
1003
- maximum: 1,
1004
- },
1005
- stroke_width: {
1006
- value: 1,
1007
- description: `Stroke width for scatter plot points`,
1008
- minimum: 0,
1009
- maximum: 5,
1010
- },
1011
- stroke_color: {
1012
- value: `#000000`,
1013
- description: `Stroke color for scatter plot points`,
1014
- },
1015
- stroke_opacity: {
1016
- value: 1,
1017
- description: `Stroke opacity for scatter plot points`,
1018
- minimum: 0,
1019
- maximum: 1,
1020
- },
1021
- },
1022
- line: {
1023
- width: {
1024
- value: 2,
1025
- description: `Line width for scatter plot connections`,
1026
- minimum: 0.5,
1027
- maximum: 10,
1028
- },
1029
- color: {
1030
- value: `#4A9EFF`,
1031
- description: `Default color for scatter plot lines`,
1032
- },
1033
- opacity: {
1034
- value: 1,
1035
- description: `Opacity of scatter plot lines`,
1036
- minimum: 0,
1037
- maximum: 1,
1038
- },
1039
- dash: {
1040
- value: `solid`,
1041
- description: `Line dash pattern for scatter plots (e.g. "4,4" for dashed)`,
1042
- },
1043
- },
1044
- },
1045
-
1046
- // Plot general
1047
- plot: {
1048
- animation_duration: {
1049
- value: 200,
1050
- description: `Duration of plot animations in milliseconds`,
1051
- minimum: 0,
1052
- maximum: 2000,
1053
- },
1054
- enable_zoom: {
1055
- value: true,
1056
- description: `Enable zooming in plots`,
1057
- },
1058
- zoom_factor: {
1059
- value: 1.5,
1060
- description: `Zoom factor for plot interactions`,
1061
- minimum: 1.1,
1062
- maximum: 5.0,
1063
- },
1064
- auto_fit_range: {
1065
- value: true,
1066
- description: `Automatically fit plot range to data`,
1067
- },
1068
- grid_lines: {
1069
- value: true,
1070
- description: `Show grid lines in plots`,
1071
- },
1072
- axis_labels: {
1073
- value: true,
1074
- description: `Show axis labels in plots`,
1075
- },
1076
- show_x_zero_line: {
1077
- value: true,
1078
- description: `Show X-axis zero reference line`,
1079
- },
1080
- show_y_zero_line: {
1081
- value: true,
1082
- description: `Show Y-axis zero reference line`,
1083
- },
1084
- show_x_grid: {
1085
- value: true,
1086
- description: `Show X-axis grid lines`,
1087
- },
1088
- show_x2_grid: {
1089
- value: false,
1090
- description: `Show secondary X-axis grid lines`,
1091
- },
1092
- show_y_grid: {
1093
- value: true,
1094
- description: `Show Y-axis grid lines`,
1095
- },
1096
- show_y2_grid: {
1097
- value: true,
1098
- description: `Show secondary Y-axis grid lines`,
1099
- },
1100
- x_format: {
1101
- value: `.2~s`,
1102
- description: `Number format for X-axis ticks (D3 format specifier)`,
1103
- },
1104
- x2_format: {
1105
- value: ``,
1106
- description: `Number format for secondary X-axis ticks (D3 format specifier)`,
1107
- },
1108
- y_format: {
1109
- value: `d`,
1110
- description: `Number format for Y-axis ticks (D3 format specifier)`,
1111
- },
1112
- y2_format: {
1113
- value: ``,
1114
- description: `Number format for secondary Y-axis ticks (D3 format specifier)`,
1115
- },
1116
- x_scale_type: {
1117
- value: `linear`,
1118
- description: `Scale type for X-axis`,
1119
- enum: {
1120
- linear: `Linear`,
1121
- log: `Log`,
1122
- },
1123
- },
1124
- y_scale_type: {
1125
- value: `linear`,
1126
- description: `Scale type for Y-axis`,
1127
- enum: {
1128
- linear: `Linear`,
1129
- log: `Log`,
1130
- },
1131
- },
1132
- x_ticks: {
1133
- value: 8,
1134
- description: `Number of ticks on X-axis`,
1135
- minimum: 2,
1136
- maximum: 20,
1137
- },
1138
- y_ticks: {
1139
- value: 6,
1140
- description: `Number of ticks on Y-axis`,
1141
- minimum: 2,
1142
- maximum: 20,
1143
- },
1144
- },
1145
-
1146
- convex_hull: {
1147
- // Convex hull defaults (binary/ternary/quaternary)
1148
- binary: {
1149
- camera_zoom: {
1150
- value: 1.0,
1151
- description: `Initial zoom for binary (2D) convex hull`,
1152
- minimum: 0.1,
1153
- maximum: 10,
1154
- },
1155
- camera_center_x: {
1156
- value: 0,
1157
- description: `Initial X center for binary (2D) convex hull`,
1158
- },
1159
- camera_center_y: {
1160
- value: 0,
1161
- description: `Initial Y center for binary (2D) convex hull`,
1162
- },
1163
- color_mode: {
1164
- value: `energy`,
1165
- description: `Color mode for 2D convex hull points`,
1166
- enum: {
1167
- stability: `Stability`,
1168
- energy: `Energy`,
1169
- },
1170
- },
1171
- color_scale: {
1172
- value: `interpolateViridis`,
1173
- description: `D3 interpolate color scale for 2D convex hull energy mode`,
1174
- },
1175
- show_stable: {
1176
- value: true,
1177
- description: `Show stable phases in 2D convex hull`,
1178
- },
1179
- show_unstable: {
1180
- value: true,
1181
- description: `Show unstable phases in 2D convex hull`,
1182
- },
1183
- show_stable_labels: {
1184
- value: true,
1185
- description: `Show labels for stable phases in 2D convex hull`,
1186
- },
1187
- show_unstable_labels: {
1188
- value: false,
1189
- description: `Show labels for unstable phases in 2D convex hull`,
1190
- },
1191
- max_hull_dist_show_phases: {
1192
- value: 0.1,
1193
- description: `Max eV/atom above hull for showing unstable entries in 2D convex hull`,
1194
- minimum: 0,
1195
- maximum: 2,
1196
- },
1197
- max_hull_dist_show_labels: {
1198
- value: 0.1,
1199
- description: `Max eV/atom above hull for labeling unstable entries in 2D convex hull`,
1200
- minimum: 0,
1201
- maximum: 2,
1202
- },
1203
- fullscreen: {
1204
- value: false,
1205
- description: `Start in fullscreen for 2D convex hull`,
1206
- },
1207
- info_pane_open: {
1208
- value: false,
1209
- description: `Info pane open by default for 2D convex hull`,
1210
- },
1211
- legend_pane_open: {
1212
- value: false,
1213
- description: `Legend pane open by default for 2D convex hull`,
1214
- },
1215
- },
1216
- ternary: {
1217
- camera_elevation: {
1218
- value: 45,
1219
- description: `Initial camera elevation (deg) for ternary (3D) convex hull`,
1220
- minimum: -180,
1221
- maximum: 180,
1222
- },
1223
- camera_azimuth: {
1224
- value: 60,
1225
- description: `Initial camera azimuth (deg) for ternary (3D) convex hull`,
1226
- minimum: -360,
1227
- maximum: 360,
1228
- },
1229
- camera_zoom: {
1230
- value: 1.5,
1231
- description: `Initial camera zoom for ternary (3D) convex hull`,
1232
- minimum: 0.1,
1233
- maximum: 10,
1234
- },
1235
- camera_center_x: {
1236
- value: 0,
1237
- description: `Initial X center for ternary (3D) convex hull`,
1238
- },
1239
- camera_center_y: {
1240
- value: -50,
1241
- description: `Initial Y center for ternary (3D) convex hull`,
1242
- },
1243
- color_mode: {
1244
- value: `energy`,
1245
- description: `Color mode for 3D convex hull points`,
1246
- enum: {
1247
- stability: `Stability`,
1248
- energy: `Energy`,
1249
- },
1250
- },
1251
- color_scale: {
1252
- value: `interpolateViridis`,
1253
- description: `D3 interpolate color scale for 3D convex hull energy mode`,
1254
- },
1255
- show_stable: {
1256
- value: true,
1257
- description: `Show stable phases in 3D convex hull`,
1258
- },
1259
- show_unstable: {
1260
- value: true,
1261
- description: `Show unstable phases in 3D convex hull`,
1262
- },
1263
- show_stable_labels: {
1264
- value: true,
1265
- description: `Show labels for stable phases in 3D convex hull`,
1266
- },
1267
- show_unstable_labels: {
1268
- value: false,
1269
- description: `Show labels for unstable phases in 3D convex hull`,
1270
- },
1271
- max_hull_dist_show_phases: {
1272
- value: 0.5,
1273
- description: `Max eV/atom above hull for showing unstable entries in 3D convex hull`,
1274
- minimum: 0,
1275
- maximum: 2,
1276
- },
1277
- max_hull_dist_show_labels: {
1278
- value: 0.1,
1279
- description: `Max eV/atom above hull for labeling unstable entries in 3D convex hull`,
1280
- minimum: 0,
1281
- maximum: 2,
1282
- },
1283
- show_hull_faces: {
1284
- value: true,
1285
- description: `Render lower hull faces in 3D convex hull`,
1286
- },
1287
- hull_face_color: {
1288
- value: `#4caf50`,
1289
- description: `Color for lower hull faces in 3D convex hull`,
1290
- },
1291
- hull_face_opacity: {
1292
- value: 0.3,
1293
- description: `Opacity for hull faces in 3D convex hull (0-1)`,
1294
- minimum: 0,
1295
- maximum: 1,
1296
- },
1297
- hull_face_color_mode: {
1298
- value: `uniform`,
1299
- description: `Coloring mode for hull faces: uniform (single color), formation_energy (by E_form), dominant_element (by element), or facet_index (categorical)`,
1300
- enum: {
1301
- uniform: `Uniform`,
1302
- formation_energy: `Formation energy`,
1303
- dominant_element: `Dominant element`,
1304
- facet_index: `Facet index`,
1305
- },
1306
- },
1307
- fullscreen: {
1308
- value: false,
1309
- description: `Start in fullscreen for 3D convex hull`,
1310
- },
1311
- info_pane_open: {
1312
- value: false,
1313
- description: `Info pane open by default for 3D convex hull`,
1314
- },
1315
- legend_pane_open: {
1316
- value: false,
1317
- description: `Legend pane open by default for 3D convex hull`,
1318
- },
1319
- },
1320
- quaternary: {
1321
- camera_rotation_x: {
1322
- value: -0.6,
1323
- description: `Initial camera X rotation (rad) for quaternary (4D) convex hull`,
1324
- minimum: -6.283,
1325
- maximum: 6.283,
1326
- },
1327
- camera_rotation_y: {
1328
- value: 0.8,
1329
- description: `Initial camera Y rotation (rad) for quaternary (4D) convex hull`,
1330
- minimum: -6.283,
1331
- maximum: 6.283,
1332
- },
1333
- camera_zoom: {
1334
- value: 1.4,
1335
- description: `Initial camera zoom for quaternary (4D) convex hull`,
1336
- minimum: 0.1,
1337
- maximum: 20,
1338
- },
1339
- camera_center_x: {
1340
- value: 0,
1341
- description: `Initial X center for quaternary (4D) convex hull`,
1342
- },
1343
- camera_center_y: {
1344
- value: 20,
1345
- description: `Initial Y center for quaternary (4D) convex hull`,
1346
- },
1347
- color_mode: {
1348
- value: `energy`,
1349
- description: `Color mode for 4D convex hull points`,
1350
- enum: {
1351
- stability: `Stability`,
1352
- energy: `Energy`,
1353
- },
1354
- },
1355
- color_scale: {
1356
- value: `interpolateViridis`,
1357
- description: `D3 interpolate color scale for 4D convex hull energy mode`,
1358
- },
1359
- show_stable: {
1360
- value: true,
1361
- description: `Show stable phases in 4D convex hull`,
1362
- },
1363
- show_unstable: {
1364
- value: true,
1365
- description: `Show unstable phases in 4D convex hull`,
1366
- },
1367
- show_stable_labels: {
1368
- value: true,
1369
- description: `Show labels for stable phases in 4D convex hull`,
1370
- },
1371
- show_unstable_labels: {
1372
- value: false,
1373
- description: `Show labels for unstable phases in 4D convex hull`,
1374
- },
1375
- show_hull_faces: {
1376
- value: true,
1377
- description: `Show convex hull faces in 4D convex hull`,
1378
- },
1379
- hull_face_color: {
1380
- value: `#4caf50`,
1381
- description: `Color for hull faces in 4D convex hull`,
1382
- },
1383
- hull_face_opacity: {
1384
- value: 0.03,
1385
- description: `Opacity for hull faces in 4D convex hull (0-1)`,
1386
- minimum: 0,
1387
- maximum: 1,
1388
- },
1389
- hull_face_color_mode: {
1390
- value: `dominant_element`,
1391
- description: `Coloring mode for hull faces: uniform (single color), formation_energy (by E_form), dominant_element (by element), or facet_index (categorical)`,
1392
- enum: {
1393
- uniform: `Uniform`,
1394
- formation_energy: `Formation energy`,
1395
- dominant_element: `Dominant element`,
1396
- facet_index: `Facet index`,
1397
- },
1398
- },
1399
- max_hull_dist_show_phases: {
1400
- value: 0.1,
1401
- description: `Max eV/atom above hull for showing unstable entries in 4D convex hull`,
1402
- minimum: 0,
1403
- maximum: 2,
1404
- },
1405
- max_hull_dist_show_labels: {
1406
- value: 0.1,
1407
- description: `Max eV/atom above hull for labeling unstable entries in 4D convex hull`,
1408
- minimum: 0,
1409
- maximum: 2,
1410
- },
1411
- fullscreen: {
1412
- value: false,
1413
- description: `Start in fullscreen for 4D convex hull`,
1414
- },
1415
- info_pane_open: {
1416
- value: false,
1417
- description: `Info pane open by default for 4D convex hull`,
1418
- },
1419
- legend_pane_open: {
1420
- value: false,
1421
- description: `Legend pane open by default for 4D convex hull`,
1422
- },
1423
- },
1424
- },
1425
- }
1426
-
1427
- // Extract the value types for runtime use (up to 3 nested levels)
1428
- export type DefaultSettings = {
1429
- [K in keyof SettingsConfig]: SettingsConfig[K] extends SettingType<infer T>
1430
- ? T
1431
- : SettingsConfig[K] extends Record<string, unknown>
1432
- ? {
1433
- [NK in keyof SettingsConfig[K]]: SettingsConfig[K][NK] extends SettingType<infer T>
1434
- ? T
1435
- : SettingsConfig[K][NK] extends Record<string, unknown>
1436
- ? {
1437
- [NNK in keyof SettingsConfig[K][NK]]: SettingsConfig[K][NK][NNK] extends SettingType<
1438
- infer T
1439
- >
1440
- ? T
1441
- : never
1442
- }
1443
- : never
1444
- }
1445
- : never
1446
- }
1447
-
1448
- // Extract values from settings config for runtime use
1449
- const extract_values = (
1450
- config: SettingsConfig | SettingType | Record<string, unknown>,
1451
- ): DefaultSettings => {
1452
- const result = {} as Record<string, unknown>
1453
- for (const [key, value] of Object.entries(config)) {
1454
- if (value && typeof value === `object` && `value` in value) {
1455
- result[key] = (value as SettingType).value
1456
- } else if (value && typeof value === `object`) {
1457
- result[key] = extract_values(value as Record<string, unknown>)
1458
- }
1459
- }
1460
- return result as DefaultSettings
1461
- }
1462
-
1463
- // Runtime defaults - extracted values for use in components
1464
- export const DEFAULTS = extract_values(SETTINGS_CONFIG)
1465
-
1466
- // Helper to merge with defaults - handles nested structure
1467
- export const merge = (user?: Partial<DefaultSettings>): DefaultSettings =>
1468
- ({
1469
- ...DEFAULTS,
1470
- ...user,
1471
- structure: merge_nested(DEFAULTS.structure, user?.structure),
1472
- trajectory: merge_nested(DEFAULTS.trajectory, user?.trajectory),
1473
- composition: merge_nested(DEFAULTS.composition, user?.composition),
1474
- plot: merge_nested(DEFAULTS.plot, user?.plot),
1475
- scatter: merge_nested(DEFAULTS.scatter, user?.scatter),
1476
- histogram: merge_nested(DEFAULTS.histogram, user?.histogram),
1477
- bar: merge_nested(DEFAULTS.bar, user?.bar),
1478
- convex_hull: merge_nested(DEFAULTS.convex_hull, user?.convex_hull),
1479
- }) as DefaultSettings