matterviz 0.4.0 → 0.4.2

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 (527) hide show
  1. package/dist/EmptyState.svelte +10 -4
  2. package/dist/FilePicker.svelte +12 -14
  3. package/dist/Icon.svelte +7 -4
  4. package/dist/MillerIndexInput.svelte +2 -2
  5. package/dist/app.css +53 -0
  6. package/dist/brillouin/BrillouinZone.svelte +132 -219
  7. package/dist/brillouin/BrillouinZone.svelte.d.ts +9 -20
  8. package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
  9. package/dist/brillouin/BrillouinZoneExportPane.svelte +47 -96
  10. package/dist/brillouin/BrillouinZoneExportPane.svelte.d.ts +1 -1
  11. package/dist/brillouin/BrillouinZoneInfoPane.svelte +15 -42
  12. package/dist/brillouin/BrillouinZoneInfoPane.svelte.d.ts +2 -3
  13. package/dist/brillouin/BrillouinZoneScene.svelte +63 -230
  14. package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +3 -23
  15. package/dist/brillouin/ReciprocalVectors.svelte +39 -0
  16. package/dist/brillouin/ReciprocalVectors.svelte.d.ts +9 -0
  17. package/dist/brillouin/compute.d.ts +2 -0
  18. package/dist/brillouin/compute.js +80 -77
  19. package/dist/brillouin/geometry.d.ts +8 -0
  20. package/dist/brillouin/geometry.js +57 -0
  21. package/dist/brillouin/index.d.ts +2 -0
  22. package/dist/brillouin/index.js +2 -0
  23. package/dist/brillouin/types.d.ts +2 -2
  24. package/dist/chempot-diagram/ChemPotDiagram.svelte +33 -38
  25. package/dist/chempot-diagram/ChemPotDiagram.svelte.d.ts +1 -1
  26. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +143 -246
  27. package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +4 -1
  28. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +652 -976
  29. package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +7 -1
  30. package/dist/chempot-diagram/async-compute.svelte.js +1 -1
  31. package/dist/chempot-diagram/color.d.ts +3 -6
  32. package/dist/chempot-diagram/color.js +5 -5
  33. package/dist/chempot-diagram/compute.d.ts +3 -3
  34. package/dist/chempot-diagram/compute.js +3 -1
  35. package/dist/chempot-diagram/controls-state.svelte.d.ts +10 -0
  36. package/dist/chempot-diagram/controls-state.svelte.js +42 -0
  37. package/dist/chempot-diagram/export.d.ts +47 -0
  38. package/dist/chempot-diagram/export.js +133 -0
  39. package/dist/chempot-diagram/index.d.ts +1 -0
  40. package/dist/chempot-diagram/index.js +1 -0
  41. package/dist/chempot-diagram/pointer.d.ts +0 -10
  42. package/dist/chempot-diagram/pointer.js +4 -4
  43. package/dist/chempot-diagram/types.d.ts +3 -3
  44. package/dist/colors/index.d.ts +0 -4
  45. package/dist/colors/index.js +21 -22
  46. package/dist/composition/BarChart.svelte +37 -31
  47. package/dist/composition/BubbleChart.svelte +17 -17
  48. package/dist/composition/Composition.svelte +7 -11
  49. package/dist/composition/Formula.svelte +18 -25
  50. package/dist/composition/FormulaFilter.svelte +96 -98
  51. package/dist/composition/PieChart.svelte +60 -46
  52. package/dist/composition/chem-sys.js +3 -2
  53. package/dist/composition/format.js +4 -3
  54. package/dist/composition/index.d.ts +2 -0
  55. package/dist/composition/index.js +14 -0
  56. package/dist/composition/parse.d.ts +2 -3
  57. package/dist/composition/parse.js +27 -28
  58. package/dist/constants.js +11 -9
  59. package/dist/controls.d.ts +1 -0
  60. package/dist/controls.js +0 -1
  61. package/dist/convex-hull/ConvexHull.svelte +20 -25
  62. package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -4
  63. package/dist/convex-hull/ConvexHull2D.svelte +176 -256
  64. package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
  65. package/dist/convex-hull/ConvexHull3D.svelte +269 -804
  66. package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
  67. package/dist/convex-hull/ConvexHull4D.svelte +236 -755
  68. package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
  69. package/dist/convex-hull/ConvexHullChrome.svelte +264 -0
  70. package/dist/convex-hull/ConvexHullChrome.svelte.d.ts +30 -0
  71. package/dist/convex-hull/ConvexHullControls.svelte +128 -49
  72. package/dist/convex-hull/ConvexHullControls.svelte.d.ts +7 -6
  73. package/dist/convex-hull/ConvexHullInfoPane.svelte +18 -5
  74. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +6 -5
  75. package/dist/convex-hull/ConvexHullStats.svelte +210 -351
  76. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +3 -1
  77. package/dist/convex-hull/ConvexHullTooltip.svelte +16 -14
  78. package/dist/convex-hull/ConvexHullTooltip.svelte.d.ts +2 -1
  79. package/dist/convex-hull/GasPressureControls.svelte +5 -12
  80. package/dist/convex-hull/StructurePopup.svelte +17 -21
  81. package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
  82. package/dist/convex-hull/TemperatureSlider.svelte +4 -10
  83. package/dist/convex-hull/barycentric-coords.d.ts +2 -4
  84. package/dist/convex-hull/barycentric-coords.js +6 -33
  85. package/dist/convex-hull/canvas-interactions.svelte.d.ts +79 -0
  86. package/dist/convex-hull/canvas-interactions.svelte.js +279 -0
  87. package/dist/convex-hull/helpers.d.ts +47 -17
  88. package/dist/convex-hull/helpers.js +186 -101
  89. package/dist/convex-hull/hull-state.svelte.d.ts +44 -0
  90. package/dist/convex-hull/hull-state.svelte.js +124 -0
  91. package/dist/convex-hull/index.d.ts +9 -7
  92. package/dist/convex-hull/index.js +7 -2
  93. package/dist/convex-hull/thermodynamics.js +109 -937
  94. package/dist/convex-hull/types.d.ts +12 -4
  95. package/dist/convex-hull/types.js +12 -0
  96. package/dist/coordination/CoordinationBarPlot.svelte +41 -43
  97. package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
  98. package/dist/coordination/calc-coordination.d.ts +1 -1
  99. package/dist/coordination/calc-coordination.js +28 -25
  100. package/dist/element/BohrAtom.svelte +6 -8
  101. package/dist/element/ElementHeading.svelte +4 -1
  102. package/dist/element/ElementPhoto.svelte +11 -9
  103. package/dist/element/ElementStats.svelte +12 -10
  104. package/dist/element/ElementTile.svelte +24 -29
  105. package/dist/element/ElementTile.svelte.d.ts +1 -1
  106. package/dist/element/Nucleus.svelte +4 -2
  107. package/dist/element/data.d.ts +1 -2
  108. package/dist/element/helpers.d.ts +4 -0
  109. package/dist/element/helpers.js +18 -0
  110. package/dist/element/index.d.ts +1 -0
  111. package/dist/element/index.js +3 -0
  112. package/dist/feedback/DragOverlay.svelte +5 -3
  113. package/dist/feedback/DragOverlay.svelte.d.ts +2 -1
  114. package/dist/feedback/StatusMessage.svelte +20 -7
  115. package/dist/fermi-surface/FermiSlice.svelte +21 -18
  116. package/dist/fermi-surface/FermiSurface.svelte +78 -165
  117. package/dist/fermi-surface/FermiSurface.svelte.d.ts +9 -20
  118. package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
  119. package/dist/fermi-surface/FermiSurfaceScene.svelte +93 -272
  120. package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +3 -23
  121. package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
  122. package/dist/fermi-surface/compute.js +14 -13
  123. package/dist/fermi-surface/export.js +4 -15
  124. package/dist/fermi-surface/index.d.ts +0 -1
  125. package/dist/fermi-surface/index.js +0 -1
  126. package/dist/fermi-surface/parse.d.ts +1 -1
  127. package/dist/fermi-surface/parse.js +84 -97
  128. package/dist/fermi-surface/types.d.ts +2 -2
  129. package/dist/heatmap-matrix/HeatmapMatrix.svelte +161 -185
  130. package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +6 -5
  131. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +12 -9
  132. package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +5 -5
  133. package/dist/heatmap-matrix/index.d.ts +8 -2
  134. package/dist/icons.d.ts +4 -0
  135. package/dist/icons.js +4 -0
  136. package/dist/index.d.ts +1 -0
  137. package/dist/index.js +1 -0
  138. package/dist/io/ExportPane.svelte +170 -0
  139. package/dist/io/ExportPane.svelte.d.ts +17 -0
  140. package/dist/io/decompress.d.ts +2 -1
  141. package/dist/io/decompress.js +22 -36
  142. package/dist/io/export.d.ts +9 -1
  143. package/dist/io/export.js +37 -29
  144. package/dist/io/fetch.d.ts +2 -4
  145. package/dist/io/fetch.js +0 -11
  146. package/dist/io/file-drop.d.ts +7 -0
  147. package/dist/io/file-drop.js +13 -0
  148. package/dist/io/index.d.ts +1 -0
  149. package/dist/io/index.js +3 -0
  150. package/dist/io/is-binary.d.ts +9 -0
  151. package/dist/io/is-binary.js +45 -1
  152. package/dist/io/types.d.ts +13 -0
  153. package/dist/io/url-drop.js +13 -25
  154. package/dist/isosurface/Isosurface.svelte +17 -23
  155. package/dist/isosurface/IsosurfaceControls.svelte +37 -42
  156. package/dist/isosurface/parse-vaspwave.d.ts +3 -0
  157. package/dist/isosurface/parse-vaspwave.js +138 -0
  158. package/dist/isosurface/parse.js +50 -48
  159. package/dist/labels.d.ts +6 -2
  160. package/dist/labels.js +44 -14
  161. package/dist/layout/FullscreenButton.svelte +34 -0
  162. package/dist/layout/FullscreenButton.svelte.d.ts +10 -0
  163. package/dist/layout/FullscreenToggle.svelte +12 -12
  164. package/dist/layout/InfoCard.svelte +7 -18
  165. package/dist/layout/InfoTag.svelte +1 -3
  166. package/dist/layout/NumberRangeInput.svelte +46 -0
  167. package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
  168. package/dist/layout/PropertyFilter.svelte +2 -6
  169. package/dist/layout/SettingsSection.svelte +21 -17
  170. package/dist/layout/SubpageGrid.svelte +3 -1
  171. package/dist/layout/ViewerChrome.svelte +115 -0
  172. package/dist/layout/ViewerChrome.svelte.d.ts +18 -0
  173. package/dist/layout/fullscreen.d.ts +4 -0
  174. package/dist/layout/fullscreen.js +3 -5
  175. package/dist/layout/fullscreen.svelte.d.ts +8 -0
  176. package/dist/layout/fullscreen.svelte.js +36 -0
  177. package/dist/layout/index.d.ts +4 -0
  178. package/dist/layout/index.js +4 -0
  179. package/dist/layout/json-tree/JsonNode.svelte +8 -11
  180. package/dist/layout/json-tree/JsonTree.svelte +53 -77
  181. package/dist/layout/json-tree/JsonValue.svelte +7 -15
  182. package/dist/layout/json-tree/utils.js +14 -23
  183. package/dist/math.d.ts +9 -3
  184. package/dist/math.js +37 -21
  185. package/dist/overlays/ContextMenu.svelte +4 -2
  186. package/dist/overlays/CopyButton.svelte +11 -5
  187. package/dist/overlays/DragControlTab.svelte +6 -1
  188. package/dist/overlays/DraggablePane.svelte +81 -26
  189. package/dist/overlays/DraggablePane.svelte.d.ts +1 -0
  190. package/dist/overlays/GlassChip.svelte +30 -0
  191. package/dist/overlays/GlassChip.svelte.d.ts +8 -0
  192. package/dist/overlays/InfoPaneCards.svelte +11 -23
  193. package/dist/overlays/index.d.ts +11 -0
  194. package/dist/overlays/index.js +26 -0
  195. package/dist/overlays/portal.d.ts +2 -0
  196. package/dist/overlays/portal.js +14 -0
  197. package/dist/periodic-table/PeriodicTable.svelte +115 -146
  198. package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
  199. package/dist/periodic-table/PeriodicTableControls.svelte +11 -63
  200. package/dist/periodic-table/TableInset.svelte +9 -4
  201. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +50 -71
  202. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
  203. package/dist/phase-diagram/PhaseDiagramControls.svelte +73 -96
  204. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +4 -3
  205. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +4 -2
  206. package/dist/phase-diagram/PhaseDiagramEditorPane.svelte.d.ts +2 -3
  207. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +49 -134
  208. package/dist/phase-diagram/PhaseDiagramExportPane.svelte.d.ts +3 -4
  209. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
  210. package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
  211. package/dist/phase-diagram/build-diagram.js +3 -3
  212. package/dist/phase-diagram/colors.js +1 -1
  213. package/dist/phase-diagram/diagram-input.d.ts +1 -2
  214. package/dist/phase-diagram/parse.d.ts +2 -1
  215. package/dist/phase-diagram/parse.js +15 -15
  216. package/dist/phase-diagram/svg-to-diagram.js +21 -15
  217. package/dist/phase-diagram/utils.js +2 -3
  218. package/dist/plot/bar/BarPlot.svelte +494 -692
  219. package/dist/plot/bar/BarPlot.svelte.d.ts +9 -15
  220. package/dist/plot/bar/BarPlotControls.svelte +1 -3
  221. package/dist/plot/bar/BarPlotControls.svelte.d.ts +5 -7
  222. package/dist/plot/bar/SpacegroupBarPlot.svelte +31 -37
  223. package/dist/plot/bar/data.d.ts +5 -4
  224. package/dist/plot/bar/data.js +2 -1
  225. package/dist/plot/box/BoxPlot.svelte +361 -439
  226. package/dist/plot/box/BoxPlot.svelte.d.ts +6 -3
  227. package/dist/plot/box/BoxPlotControls.svelte.d.ts +1 -1
  228. package/dist/plot/box/Violin.svelte.d.ts +2 -1
  229. package/dist/plot/box/box-plot.d.ts +3 -2
  230. package/dist/plot/box/box-plot.js +6 -3
  231. package/dist/plot/box/kde.d.ts +2 -1
  232. package/dist/plot/box/kde.js +4 -4
  233. package/dist/plot/core/auto-place.d.ts +1 -1
  234. package/dist/plot/core/auto-place.js +5 -2
  235. package/dist/plot/core/axis-utils.d.ts +12 -7
  236. package/dist/plot/core/axis-utils.js +48 -48
  237. package/dist/plot/core/components/AxisLabel.svelte +82 -20
  238. package/dist/plot/core/components/AxisLabel.svelte.d.ts +1 -0
  239. package/dist/plot/core/components/ColorBar.svelte +106 -111
  240. package/dist/plot/core/components/ColorBar.svelte.d.ts +5 -4
  241. package/dist/plot/core/components/ColorScaleSelect.svelte +1 -1
  242. package/dist/plot/core/components/FillArea.svelte +10 -17
  243. package/dist/plot/core/components/HierarchyControls.svelte +249 -0
  244. package/dist/plot/{sunburst/SunburstControls.svelte.d.ts → core/components/HierarchyControls.svelte.d.ts} +12 -8
  245. package/dist/plot/core/components/InteractiveAxisLabel.svelte +1 -1
  246. package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +1 -1
  247. package/dist/plot/core/components/Line.svelte +21 -11
  248. package/dist/plot/core/components/Line.svelte.d.ts +5 -2
  249. package/dist/plot/core/components/PlotAxis.svelte +42 -18
  250. package/dist/plot/core/components/PlotAxis.svelte.d.ts +2 -1
  251. package/dist/plot/core/components/PlotControls.svelte +65 -41
  252. package/dist/plot/core/components/PlotControls.svelte.d.ts +1 -1
  253. package/dist/plot/core/components/PlotLegend.svelte +31 -35
  254. package/dist/plot/core/components/PlotMarginals.svelte +616 -0
  255. package/dist/plot/core/components/PlotMarginals.svelte.d.ts +15 -0
  256. package/dist/plot/core/components/PlotTooltip.svelte +1 -1
  257. package/dist/plot/core/components/PortalSelect.svelte +4 -8
  258. package/dist/plot/core/components/ReferenceLine.svelte +27 -24
  259. package/dist/plot/core/components/ReferenceLine3D.svelte +56 -59
  260. package/dist/plot/core/components/ReferenceLine3D.svelte.d.ts +4 -4
  261. package/dist/plot/core/components/ReferencePlane.svelte +9 -10
  262. package/dist/plot/core/components/ReferencePlane.svelte.d.ts +4 -4
  263. package/dist/plot/core/components/ZeroLines.svelte +4 -8
  264. package/dist/plot/core/components/ZoomRect.svelte +1 -2
  265. package/dist/plot/core/components/index.d.ts +1 -0
  266. package/dist/plot/core/components/index.js +1 -0
  267. package/dist/plot/core/data-cleaning-signal.d.ts +46 -0
  268. package/dist/plot/core/data-cleaning-signal.js +467 -0
  269. package/dist/plot/core/data-cleaning.d.ts +2 -42
  270. package/dist/plot/core/data-cleaning.js +29 -476
  271. package/dist/plot/core/data-transform.js +9 -5
  272. package/dist/plot/core/fill-utils.d.ts +7 -4
  273. package/dist/plot/core/fill-utils.js +34 -9
  274. package/dist/plot/core/index.d.ts +1 -0
  275. package/dist/plot/core/index.js +1 -0
  276. package/dist/plot/core/interactions.d.ts +5 -1
  277. package/dist/plot/core/interactions.js +14 -2
  278. package/dist/plot/core/layout.d.ts +3 -1
  279. package/dist/plot/core/layout.js +22 -13
  280. package/dist/plot/core/marginals.d.ts +170 -0
  281. package/dist/plot/core/marginals.js +436 -0
  282. package/dist/plot/core/pan-zoom.svelte.d.ts +35 -0
  283. package/dist/plot/core/pan-zoom.svelte.js +221 -0
  284. package/dist/plot/core/placed-tween.svelte.d.ts +21 -0
  285. package/dist/plot/core/placed-tween.svelte.js +68 -0
  286. package/dist/plot/core/reference-line.d.ts +10 -10
  287. package/dist/plot/core/reference-line.js +7 -7
  288. package/dist/plot/core/scales.d.ts +40 -25
  289. package/dist/plot/core/scales.js +49 -21
  290. package/dist/plot/core/svg.d.ts +2 -1
  291. package/dist/plot/core/types/fills.d.ts +101 -0
  292. package/dist/plot/core/types/fills.js +15 -0
  293. package/dist/plot/core/types/plot-3d.d.ts +87 -0
  294. package/dist/plot/core/types/plot-3d.js +4 -0
  295. package/dist/plot/core/types/reference-lines.d.ts +140 -0
  296. package/dist/plot/core/types/reference-lines.js +9 -0
  297. package/dist/plot/core/types.d.ts +47 -331
  298. package/dist/plot/core/types.js +23 -20
  299. package/dist/plot/core/utils/hierarchy-chart.d.ts +51 -0
  300. package/dist/plot/core/utils/hierarchy-chart.js +179 -0
  301. package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
  302. package/dist/plot/core/utils/hierarchy-labels.js +99 -0
  303. package/dist/plot/core/utils/label-placement.d.ts +1 -1
  304. package/dist/plot/core/utils/label-placement.js +5 -5
  305. package/dist/plot/core/utils.d.ts +2 -1
  306. package/dist/plot/histogram/Histogram.svelte +373 -631
  307. package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
  308. package/dist/plot/histogram/HistogramControls.svelte +30 -28
  309. package/dist/plot/histogram/HistogramControls.svelte.d.ts +1 -1
  310. package/dist/plot/histogram/histogram.d.ts +31 -0
  311. package/dist/plot/histogram/histogram.js +70 -0
  312. package/dist/plot/histogram/index.d.ts +1 -0
  313. package/dist/plot/histogram/index.js +1 -0
  314. package/dist/plot/index.d.ts +1 -0
  315. package/dist/plot/index.js +1 -0
  316. package/dist/plot/sankey/Sankey.svelte +79 -73
  317. package/dist/plot/sankey/Sankey.svelte.d.ts +3 -3
  318. package/dist/plot/sankey/SankeyControls.svelte +22 -16
  319. package/dist/plot/sankey/sankey.js +3 -1
  320. package/dist/plot/scatter/BinnedScatterPlot.svelte +264 -112
  321. package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +11 -4
  322. package/dist/plot/scatter/ElementScatter.svelte +4 -1
  323. package/dist/plot/scatter/ScatterPlot.svelte +623 -821
  324. package/dist/plot/scatter/ScatterPlot.svelte.d.ts +9 -15
  325. package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
  326. package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
  327. package/dist/plot/scatter/ScatterPoint.svelte +16 -9
  328. package/dist/plot/scatter/binned-scatter-types.d.ts +6 -12
  329. package/dist/plot/scatter/binned-scatter-types.js +6 -1
  330. package/dist/plot/scatter/index.d.ts +1 -1
  331. package/dist/plot/scatter/scatter-data.d.ts +1 -1
  332. package/dist/plot/scatter/scatter-data.js +8 -7
  333. package/dist/plot/scatter-3d/ScatterPlot3D.svelte +40 -60
  334. package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +6 -14
  335. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +17 -15
  336. package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte.d.ts +5 -5
  337. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +232 -234
  338. package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +5 -14
  339. package/dist/plot/scatter-3d/Surface3D.svelte +9 -17
  340. package/dist/plot/scatter-3d/Surface3D.svelte.d.ts +4 -3
  341. package/dist/plot/sunburst/Sunburst.svelte +256 -338
  342. package/dist/plot/sunburst/Sunburst.svelte.d.ts +4 -3
  343. package/dist/plot/sunburst/index.d.ts +1 -1
  344. package/dist/plot/sunburst/index.js +2 -1
  345. package/dist/plot/sunburst/render.d.ts +2 -2
  346. package/dist/plot/sunburst/render.js +47 -22
  347. package/dist/plot/sunburst/sunburst.d.ts +5 -1
  348. package/dist/plot/sunburst/sunburst.js +14 -4
  349. package/dist/plot/treemap/Treemap.svelte +907 -0
  350. package/dist/plot/treemap/Treemap.svelte.d.ts +84 -0
  351. package/dist/plot/treemap/index.d.ts +3 -0
  352. package/dist/plot/treemap/index.js +4 -0
  353. package/dist/plot/treemap/treemap.d.ts +26 -0
  354. package/dist/plot/treemap/treemap.js +99 -0
  355. package/dist/rdf/RdfPlot.svelte +22 -26
  356. package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
  357. package/dist/rdf/calc-rdf.js +4 -8
  358. package/dist/sanitize.js +14 -3
  359. package/dist/scene/SceneCamera.svelte +62 -0
  360. package/dist/scene/SceneCamera.svelte.d.ts +19 -0
  361. package/dist/scene/bind-renderer.svelte.d.ts +2 -0
  362. package/dist/scene/bind-renderer.svelte.js +22 -0
  363. package/dist/scene/index.d.ts +4 -0
  364. package/dist/scene/index.js +5 -0
  365. package/dist/scene/props.js +52 -0
  366. package/dist/scene/types.d.ts +26 -0
  367. package/dist/scene/types.js +1 -0
  368. package/dist/settings.d.ts +33 -11
  369. package/dist/settings.js +136 -51
  370. package/dist/spectral/Bands.svelte +231 -237
  371. package/dist/spectral/Bands.svelte.d.ts +3 -2
  372. package/dist/spectral/BandsAndDos.svelte +29 -29
  373. package/dist/spectral/BrillouinBandsDos.svelte +21 -29
  374. package/dist/spectral/Dos.svelte +75 -77
  375. package/dist/spectral/Dos.svelte.d.ts +2 -1
  376. package/dist/spectral/helpers.d.ts +9 -9
  377. package/dist/spectral/helpers.js +66 -70
  378. package/dist/state.svelte.d.ts +0 -7
  379. package/dist/state.svelte.js +5 -24
  380. package/dist/structure/Arrow.svelte +6 -21
  381. package/dist/structure/ArrowInstances.svelte +160 -0
  382. package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
  383. package/dist/structure/AtomLegend.svelte +115 -75
  384. package/dist/structure/AtomLegend.svelte.d.ts +1 -1
  385. package/dist/structure/Bond.svelte +31 -23
  386. package/dist/structure/CanvasTooltip.svelte +16 -3
  387. package/dist/structure/CellSelect.svelte +22 -29
  388. package/dist/structure/CellSelect.svelte.d.ts +2 -1
  389. package/dist/structure/Cylinder.svelte +24 -40
  390. package/dist/structure/InstancedAtoms.svelte +114 -0
  391. package/dist/structure/InstancedAtoms.svelte.d.ts +15 -0
  392. package/dist/structure/Lattice.svelte +85 -149
  393. package/dist/structure/SiteLabels.svelte +122 -0
  394. package/dist/structure/SiteLabels.svelte.d.ts +18 -0
  395. package/dist/structure/Structure.svelte +725 -735
  396. package/dist/structure/Structure.svelte.d.ts +8 -16
  397. package/dist/structure/StructureCarousel.svelte +630 -0
  398. package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
  399. package/dist/structure/StructureControls.svelte +298 -325
  400. package/dist/structure/StructureControls.svelte.d.ts +5 -3
  401. package/dist/structure/StructureExportPane.svelte +62 -168
  402. package/dist/structure/StructureExportPane.svelte.d.ts +4 -5
  403. package/dist/structure/StructureInfoPane.svelte +77 -69
  404. package/dist/structure/StructureInfoPane.svelte.d.ts +6 -6
  405. package/dist/structure/StructureScene.svelte +758 -600
  406. package/dist/structure/StructureScene.svelte.d.ts +24 -20
  407. package/dist/structure/StructureViewport.svelte +386 -0
  408. package/dist/structure/StructureViewport.svelte.d.ts +63 -0
  409. package/dist/structure/atom-label-placement.d.ts +18 -0
  410. package/dist/structure/atom-label-placement.js +115 -0
  411. package/dist/structure/atom-properties.d.ts +3 -1
  412. package/dist/structure/atom-properties.js +115 -54
  413. package/dist/structure/bond-order-perception.js +2 -4
  414. package/dist/structure/bonding.d.ts +12 -2
  415. package/dist/structure/bonding.js +172 -73
  416. package/dist/structure/edit-history.d.ts +6 -0
  417. package/dist/structure/edit-history.js +27 -0
  418. package/dist/structure/export.d.ts +25 -4
  419. package/dist/structure/export.js +103 -153
  420. package/dist/structure/format-detect.d.ts +1 -0
  421. package/dist/structure/format-detect.js +22 -0
  422. package/dist/structure/geometry.d.ts +9 -0
  423. package/dist/structure/geometry.js +27 -0
  424. package/dist/structure/index.d.ts +18 -1
  425. package/dist/structure/index.js +15 -2
  426. package/dist/structure/measure.d.ts +1 -1
  427. package/dist/structure/measure.js +6 -12
  428. package/dist/structure/parse.d.ts +5 -3
  429. package/dist/structure/parse.js +551 -567
  430. package/dist/structure/partial-occupancy.d.ts +0 -1
  431. package/dist/structure/partial-occupancy.js +5 -3
  432. package/dist/structure/pbc.d.ts +1 -1
  433. package/dist/structure/pbc.js +204 -51
  434. package/dist/structure/polyhedra.d.ts +40 -0
  435. package/dist/structure/polyhedra.js +587 -0
  436. package/dist/structure/site.d.ts +4 -0
  437. package/dist/structure/site.js +1 -0
  438. package/dist/structure/supercell.d.ts +1 -2
  439. package/dist/structure/supercell.js +10 -15
  440. package/dist/structure/validation.js +5 -6
  441. package/dist/symmetry/SymmetryElementControls.svelte +69 -0
  442. package/dist/symmetry/SymmetryElementControls.svelte.d.ts +9 -0
  443. package/dist/symmetry/SymmetryElements.svelte +350 -0
  444. package/dist/symmetry/SymmetryElements.svelte.d.ts +24 -0
  445. package/dist/symmetry/SymmetryStats.svelte +142 -49
  446. package/dist/symmetry/WyckoffTable.svelte +58 -16
  447. package/dist/symmetry/WyckoffTable.svelte.d.ts +3 -0
  448. package/dist/symmetry/cell-transform.js +8 -14
  449. package/dist/symmetry/index.d.ts +15 -4
  450. package/dist/symmetry/index.js +308 -81
  451. package/dist/symmetry/spacegroups.d.ts +5 -1
  452. package/dist/symmetry/spacegroups.js +18 -3
  453. package/dist/symmetry/symmetry-elements.d.ts +33 -0
  454. package/dist/symmetry/symmetry-elements.js +521 -0
  455. package/dist/symmetry/wyckoff-db.d.ts +9 -0
  456. package/dist/symmetry/wyckoff-db.js +87 -0
  457. package/dist/table/HeatmapTable.svelte +1104 -378
  458. package/dist/table/HeatmapTable.svelte.d.ts +12 -2
  459. package/dist/table/ToggleMenu.svelte +5 -12
  460. package/dist/table/index.d.ts +21 -6
  461. package/dist/table/index.js +34 -21
  462. package/dist/theme/ThemeControl.svelte +16 -8
  463. package/dist/theme/index.d.ts +1 -5
  464. package/dist/theme/index.js +4 -10
  465. package/dist/theme/themes.mjs +14 -7
  466. package/dist/tooltip/KCoords.svelte +4 -1
  467. package/dist/tooltip/TooltipContent.svelte +2 -5
  468. package/dist/trajectory/Trajectory.svelte +556 -352
  469. package/dist/trajectory/Trajectory.svelte.d.ts +10 -22
  470. package/dist/trajectory/TrajectoryError.svelte +11 -8
  471. package/dist/trajectory/TrajectoryExportPane.svelte +28 -54
  472. package/dist/trajectory/TrajectoryExportPane.svelte.d.ts +4 -5
  473. package/dist/trajectory/TrajectoryInfoPane.svelte +88 -99
  474. package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +3 -2
  475. package/dist/trajectory/constants.js +6 -2
  476. package/dist/trajectory/extract.js +73 -71
  477. package/dist/trajectory/format-detect.d.ts +0 -1
  478. package/dist/trajectory/format-detect.js +13 -17
  479. package/dist/trajectory/frame-reader.d.ts +2 -1
  480. package/dist/trajectory/frame-reader.js +74 -136
  481. package/dist/trajectory/helpers.d.ts +12 -2
  482. package/dist/trajectory/helpers.js +68 -37
  483. package/dist/trajectory/index.d.ts +1 -0
  484. package/dist/trajectory/index.js +3 -0
  485. package/dist/trajectory/parse/ase.d.ts +9 -1
  486. package/dist/trajectory/parse/ase.js +47 -32
  487. package/dist/trajectory/parse/diagnostics.d.ts +3 -0
  488. package/dist/trajectory/parse/diagnostics.js +14 -0
  489. package/dist/trajectory/parse/h5-utils.d.ts +13 -0
  490. package/dist/trajectory/parse/h5-utils.js +109 -0
  491. package/dist/trajectory/parse/hdf5.d.ts +1 -1
  492. package/dist/trajectory/parse/hdf5.js +116 -106
  493. package/dist/trajectory/parse/index.d.ts +3 -4
  494. package/dist/trajectory/parse/index.js +68 -119
  495. package/dist/trajectory/parse/lammps.d.ts +0 -2
  496. package/dist/trajectory/parse/lammps.js +14 -16
  497. package/dist/trajectory/parse/pymatgen.d.ts +2 -0
  498. package/dist/trajectory/parse/pymatgen.js +74 -0
  499. package/dist/trajectory/parse/vasp.js +13 -9
  500. package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
  501. package/dist/trajectory/parse/vaspout-electronic.js +207 -0
  502. package/dist/trajectory/parse/vaspout-h5.d.ts +5 -0
  503. package/dist/trajectory/parse/vaspout-h5.js +284 -0
  504. package/dist/trajectory/parse/xyz.d.ts +9 -21
  505. package/dist/trajectory/parse/xyz.js +38 -39
  506. package/dist/trajectory/plotting.d.ts +8 -10
  507. package/dist/trajectory/plotting.js +102 -127
  508. package/dist/utils.d.ts +4 -0
  509. package/dist/utils.js +8 -1
  510. package/dist/xrd/XrdPlot.svelte +56 -85
  511. package/dist/xrd/broadening.d.ts +2 -1
  512. package/dist/xrd/broadening.js +2 -1
  513. package/dist/xrd/calc-xrd.js +8 -15
  514. package/dist/xrd/index.d.ts +2 -2
  515. package/dist/xrd/parse.d.ts +0 -1
  516. package/dist/xrd/parse.js +56 -73
  517. package/package.json +77 -36
  518. package/dist/api/mp.d.ts +0 -6
  519. package/dist/api/mp.js +0 -22
  520. package/dist/element/data.json +0 -11864
  521. package/dist/fermi-surface/marching-cubes.d.ts +0 -2
  522. package/dist/fermi-surface/marching-cubes.js +0 -2
  523. package/dist/plot/core/hover-lock.svelte.d.ts +0 -14
  524. package/dist/plot/core/hover-lock.svelte.js +0 -45
  525. package/dist/plot/sunburst/SunburstControls.svelte +0 -200
  526. package/dist/structure/label-placement.d.ts +0 -14
  527. package/dist/structure/label-placement.js +0 -72
@@ -1,9 +1,10 @@
1
1
  import type { ColorScaleType, D3InterpolateName } from './colors';
2
2
  import type { HullFaceColorMode } from './convex-hull/types';
3
3
  import type { D3SymbolName } from './labels';
4
- import type { Vec3 } from './math';
4
+ import type { Vec2, Vec3 } from './math';
5
5
  import type { BandwidthOption, Orientation, SankeyNodeAlign, SankeyOrientation, SunburstLabelRotation, SunburstLabelText, SunburstShape, SunburstValueMode, ViolinKind, ViolinSide, WhiskerMode } from './plot';
6
6
  import type { BondingStrategy } from './structure/bonding';
7
+ import type { PolyhedraColorMode } from './structure/polyhedra';
7
8
  export interface SettingType<T = unknown> {
8
9
  value: T;
9
10
  description: string;
@@ -110,6 +111,15 @@ type ConvexHullWith3DType = ConvexHullCommonType & {
110
111
  hull_face_opacity: SettingType<number>;
111
112
  hull_face_color_mode: SettingType<HullFaceColorMode>;
112
113
  };
114
+ type HierarchyChartSettingsSchema = {
115
+ value_mode: SettingType<SunburstValueMode>;
116
+ max_depth: SettingType<number>;
117
+ min_fraction: SettingType<number>;
118
+ show_labels: SettingType<boolean>;
119
+ label_text: SettingType<SunburstLabelText>;
120
+ zoom_on_click: SettingType<boolean>;
121
+ show_breadcrumbs: SettingType<boolean>;
122
+ };
113
123
  export interface SettingsConfig {
114
124
  color_scheme: SettingType<string>;
115
125
  background_color: SettingType<string>;
@@ -130,6 +140,17 @@ export interface SettingsConfig {
130
140
  show_bonds: SettingType<ShowBonds>;
131
141
  bond_color: SettingType<string>;
132
142
  bonding_strategy: SettingType<BondingStrategy>;
143
+ show_polyhedra: SettingType<ShowBonds>;
144
+ polyhedra_opacity: SettingType<number>;
145
+ polyhedra_show_edges: SettingType<boolean>;
146
+ polyhedra_edge_color: SettingType<string>;
147
+ polyhedra_color_mode: SettingType<PolyhedraColorMode>;
148
+ polyhedra_color: SettingType<string>;
149
+ polyhedra_hide_center_atoms: SettingType<boolean>;
150
+ polyhedra_min_neighbors: SettingType<number>;
151
+ polyhedra_max_neighbors: SettingType<number>;
152
+ polyhedra_excluded_elements: SettingType<readonly string[]>;
153
+ polyhedra_included_elements: SettingType<readonly string[]>;
133
154
  atom_color_mode: SettingType<AtomColorMode>;
134
155
  atom_color_scale: SettingType<D3InterpolateName>;
135
156
  atom_color_scale_type: SettingType<ColorScaleType>;
@@ -179,7 +200,7 @@ export interface SettingsConfig {
179
200
  trajectory: {
180
201
  auto_play: SettingType<boolean>;
181
202
  fps: SettingType<number>;
182
- fps_range: SettingType<[number, number]>;
203
+ fps_range: SettingType<Vec2>;
183
204
  display_mode: SettingType<`structure+scatter` | `structure` | `scatter` | `histogram` | `structure+histogram`>;
184
205
  show_controls: SettingType<boolean>;
185
206
  fullscreen_toggle: SettingType<boolean>;
@@ -277,18 +298,16 @@ export interface SettingsConfig {
277
298
  show_node_labels: SettingType<boolean>;
278
299
  iterations: SettingType<number>;
279
300
  };
280
- sunburst: {
301
+ sunburst: HierarchyChartSettingsSchema & {
281
302
  shape: SettingType<SunburstShape>;
282
- value_mode: SettingType<SunburstValueMode>;
283
- max_depth: SettingType<number>;
284
303
  inner_radius: SettingType<number>;
285
304
  pad_angle: SettingType<number>;
286
- min_fraction: SettingType<number>;
287
- show_labels: SettingType<boolean>;
288
305
  label_rotation: SettingType<SunburstLabelRotation>;
289
- label_text: SettingType<SunburstLabelText>;
290
- zoom_on_click: SettingType<boolean>;
291
- show_breadcrumbs: SettingType<boolean>;
306
+ };
307
+ treemap: HierarchyChartSettingsSchema & {
308
+ padding_inner: SettingType<number>;
309
+ padding_top: SettingType<number>;
310
+ padding_outer: SettingType<number>;
292
311
  };
293
312
  composition: {
294
313
  display_mode: SettingType<`pie` | `bubble` | `bar`>;
@@ -315,5 +334,8 @@ export type DefaultSettings = {
315
334
  } : never;
316
335
  };
317
336
  export declare const DEFAULTS: DefaultSettings;
318
- export declare const merge: (user?: Partial<DefaultSettings>) => DefaultSettings;
337
+ export type PartialSettings = {
338
+ [Key in keyof DefaultSettings]?: DefaultSettings[Key] extends Record<string, unknown> ? Partial<DefaultSettings[Key]> : DefaultSettings[Key];
339
+ };
340
+ export declare const merge: (user?: PartialSettings) => DefaultSettings;
319
341
  export {};
package/dist/settings.js CHANGED
@@ -3,6 +3,8 @@
3
3
  import { symbol_names } from './labels';
4
4
  import { merge_nested } from './utils';
5
5
  export const SHOW_BONDS_OPTIONS = [`never`, `always`, `crystals`, `molecules`];
6
+ // Shared enum labels for never|always|crystals|molecules settings (bonds, polyhedra)
7
+ const SHOW_BONDS_ENUM = Object.fromEntries(SHOW_BONDS_OPTIONS.map((key) => [key, key[0].toUpperCase() + key.slice(1)]));
6
8
  export const VECTOR_COLOR_MODES = [
7
9
  `auto`,
8
10
  `element`,
@@ -38,6 +40,49 @@ const DISPLAY_CONFIG = {
38
40
  description: `Show Y-axis zero reference line`,
39
41
  },
40
42
  };
43
+ // Settings shared by the sunburst + treemap sections below so the two charts'
44
+ // options can't drift; `node` names the chart's visual unit (arc/cell) and
45
+ // `levels` its depth unit (rings/levels) in descriptions.
46
+ const hierarchy_chart_settings = (node, levels, zoom_desc) => ({
47
+ value_mode: {
48
+ value: `leaf-sum`,
49
+ description: `How node values are interpreted (plotly branchvalues semantics): leaf-sum ignores parent values, total treats every value as authoritative, remainder adds a node's own value on top of its children`,
50
+ enum: { 'leaf-sum': `Leaf sum`, total: `Total`, remainder: `Remainder` },
51
+ },
52
+ max_depth: {
53
+ value: 0,
54
+ description: `Number of ${levels} shown below the current zoom root (0 = all)`,
55
+ minimum: 0,
56
+ maximum: 10,
57
+ },
58
+ min_fraction: {
59
+ value: 0,
60
+ description: `Group sibling ${node}s smaller than this fraction of the total into one 'Other' ${node === `arc` ? `slice` : `cell`} per parent (0 = off)`,
61
+ minimum: 0,
62
+ maximum: 0.2,
63
+ },
64
+ show_labels: {
65
+ value: true,
66
+ description: `Show labels on ${node}s large enough to fit them`,
67
+ },
68
+ label_text: {
69
+ value: `label`,
70
+ description: `What ${node} labels display (percent is of the root total, parent-percent of the parent node)`,
71
+ enum: {
72
+ label: `Label`,
73
+ value: `Value`,
74
+ percent: `Percent`,
75
+ 'label+value': `Label + value`,
76
+ 'label+percent': `Label + percent`,
77
+ 'label+parent-percent': `Label + % of parent`,
78
+ },
79
+ },
80
+ zoom_on_click: { value: true, description: zoom_desc },
81
+ show_breadcrumbs: {
82
+ value: true,
83
+ description: `Show a clickable ${node === `arc` ? `trail` : `pathbar`} of ancestors when zoomed into a subtree`,
84
+ },
85
+ });
41
86
  // Complete settings configuration with values, descriptions, and constraints
42
87
  export const SETTINGS_CONFIG = {
43
88
  // General display settings
@@ -122,7 +167,7 @@ export const SETTINGS_CONFIG = {
122
167
  show_bonds: {
123
168
  value: `always`,
124
169
  description: `When to display bonds between atoms`,
125
- enum: Object.fromEntries(SHOW_BONDS_OPTIONS.map((key) => [key, key[0].toUpperCase() + key.slice(1)])),
170
+ enum: SHOW_BONDS_ENUM,
126
171
  },
127
172
  bond_color: {
128
173
  value: `#666666`,
@@ -136,6 +181,62 @@ export const SETTINGS_CONFIG = {
136
181
  solid_angle: `Solid Angle`,
137
182
  },
138
183
  },
184
+ show_polyhedra: {
185
+ value: `crystals`,
186
+ description: `When to render coordination polyhedra around cation-like centers`,
187
+ enum: SHOW_BONDS_ENUM,
188
+ },
189
+ polyhedra_opacity: {
190
+ value: 0.2,
191
+ description: `Opacity of coordination polyhedra faces`,
192
+ minimum: 0,
193
+ maximum: 1,
194
+ },
195
+ polyhedra_show_edges: {
196
+ value: true,
197
+ description: `Draw outlines along coordination polyhedra edges`,
198
+ },
199
+ polyhedra_edge_color: {
200
+ value: `#222222`,
201
+ description: `Color of coordination polyhedra edge lines`,
202
+ },
203
+ polyhedra_color_mode: {
204
+ value: `vertex`,
205
+ description: `Color polyhedra by the atoms at their corners, the center atom, or a single custom color`,
206
+ enum: {
207
+ vertex: `Vertex Atoms`,
208
+ center: `Center Atom`,
209
+ uniform: `Custom Color`,
210
+ },
211
+ },
212
+ polyhedra_color: {
213
+ value: `#4a90d9`,
214
+ description: `Custom polyhedra color (used when color mode is Custom Color)`,
215
+ },
216
+ polyhedra_hide_center_atoms: {
217
+ value: false,
218
+ description: `Hide the central atom of each rendered polyhedron`,
219
+ },
220
+ polyhedra_min_neighbors: {
221
+ value: 4,
222
+ description: `Minimum number of bonded neighbors (coordination number) to form a polyhedron`,
223
+ minimum: 4, // hulls of <4 points are degenerate and render nothing
224
+ maximum: 12,
225
+ },
226
+ polyhedra_max_neighbors: {
227
+ value: 8,
228
+ description: `Maximum number of bonded neighbors for a polyhedron (skips e.g. CN-12 cuboctahedra around large A-site cations)`,
229
+ minimum: 4,
230
+ maximum: 16,
231
+ },
232
+ polyhedra_excluded_elements: {
233
+ value: [],
234
+ description: `Elements excluded from acting as polyhedra centers`,
235
+ },
236
+ polyhedra_included_elements: {
237
+ value: [],
238
+ description: `Elements always allowed as polyhedra centers (overrides automatic hiding of spectator cations like alkali metals and the max neighbors cap)`,
239
+ },
139
240
  atom_color_mode: {
140
241
  value: `element`,
141
242
  description: `Property to use for atom coloring`,
@@ -289,7 +390,7 @@ export const SETTINGS_CONFIG = {
289
390
  description: `Per-key configuration for site vector layers. Keys map to site property names (e.g. force, magmom, force_DFT). Auto-populated when a structure with vector data loads.`,
290
391
  },
291
392
  vector_scale: {
292
- value: 1.0,
393
+ value: 0.75,
293
394
  description: `Scale factor for site vector arrows`,
294
395
  minimum: 0.1,
295
396
  maximum: 10.0,
@@ -311,8 +412,8 @@ export const SETTINGS_CONFIG = {
311
412
  description: `Show all arrows at the same length (direction only). Useful for spin/magmom visualization where orientation matters but magnitude does not.`,
312
413
  },
313
414
  vector_uniform_thickness: {
314
- value: false,
315
- description: `Use the same shaft and head size for all arrows regardless of length. When off (default), thickness scales with arrow length.`,
415
+ value: true,
416
+ description: `Use the same shaft and head size for all arrows regardless of length. Negative radii are scaled by characteristic atom spacing.`,
316
417
  },
317
418
  vector_origin_gap: {
318
419
  value: 0,
@@ -321,20 +422,20 @@ export const SETTINGS_CONFIG = {
321
422
  maximum: 0.5,
322
423
  },
323
424
  vector_shaft_radius: {
324
- value: -0.03,
325
- description: `Radius of vector shaft (negative = relative to length, positive = absolute)`,
425
+ value: -0.01,
426
+ description: `Radius of vector shaft (negative = relative to length or atom spacing with uniform thickness, positive = absolute)`,
326
427
  minimum: -0.1,
327
428
  maximum: 0.1,
328
429
  },
329
430
  vector_arrow_head_radius: {
330
- value: -0.06,
331
- description: `Radius of vector arrow head (negative = relative to length, positive = absolute)`,
431
+ value: -0.04,
432
+ description: `Radius of vector arrow head (negative = relative to length or atom spacing with uniform thickness, positive = absolute)`,
332
433
  minimum: -0.2,
333
434
  maximum: 0.2,
334
435
  },
335
436
  vector_arrow_head_length: {
336
- value: -0.15,
337
- description: `Length of vector arrow head (negative = relative to length, positive = absolute)`,
437
+ value: -0.1,
438
+ description: `Length of vector arrow head (negative = relative to length or atom spacing with uniform thickness, positive = absolute)`,
338
439
  minimum: -0.5,
339
440
  maximum: 0.5,
340
441
  },
@@ -693,7 +794,7 @@ export const SETTINGS_CONFIG = {
693
794
  maximum: 5,
694
795
  },
695
796
  stroke_color: {
696
- value: `#000000`,
797
+ value: `var(--text-color, black)`, // theme-responsive like axis/grid colors
697
798
  description: `Box outline color`,
698
799
  },
699
800
  border_radius: {
@@ -711,7 +812,7 @@ export const SETTINGS_CONFIG = {
711
812
  maximum: 5,
712
813
  },
713
814
  color: {
714
- value: `#000000`,
815
+ value: `var(--text-color, black)`, // theme-responsive like axis/grid colors
715
816
  description: `Whisker line color`,
716
817
  },
717
818
  cap_fraction: {
@@ -729,7 +830,7 @@ export const SETTINGS_CONFIG = {
729
830
  maximum: 6,
730
831
  },
731
832
  color: {
732
- value: `#000000`,
833
+ value: `var(--text-color, black)`, // theme-responsive like axis/grid colors
733
834
  description: `Median line color`,
734
835
  },
735
836
  },
@@ -812,22 +913,12 @@ export const SETTINGS_CONFIG = {
812
913
  },
813
914
  // Sunburst chart specific
814
915
  sunburst: {
916
+ ...hierarchy_chart_settings(`arc`, `rings`, `Clicking a branch arc zooms into that subtree (center circle zooms out)`),
815
917
  shape: {
816
918
  value: `sunburst`,
817
919
  description: `Chart geometry: polar rings (sunburst) or stacked rows (icicle)`,
818
920
  enum: { sunburst: `Sunburst`, icicle: `Icicle` },
819
921
  },
820
- value_mode: {
821
- value: `leaf-sum`,
822
- description: `How node values are interpreted (plotly branchvalues semantics): leaf-sum ignores parent values, total treats every value as authoritative, remainder adds a node's own value on top of its children`,
823
- enum: { 'leaf-sum': `Leaf sum`, total: `Total`, remainder: `Remainder` },
824
- },
825
- max_depth: {
826
- value: 0,
827
- description: `Number of rings shown below the current zoom root (0 = all)`,
828
- minimum: 0,
829
- maximum: 10,
830
- },
831
922
  inner_radius: {
832
923
  value: 0.25,
833
924
  description: `Center hole size as fraction of the outer radius`,
@@ -840,16 +931,6 @@ export const SETTINGS_CONFIG = {
840
931
  minimum: 0,
841
932
  maximum: 4,
842
933
  },
843
- min_fraction: {
844
- value: 0,
845
- description: `Group sibling arcs smaller than this fraction of the total into one 'Other' slice per parent (0 = off)`,
846
- minimum: 0,
847
- maximum: 0.2,
848
- },
849
- show_labels: {
850
- value: true,
851
- description: `Show labels on arcs large enough to fit them`,
852
- },
853
934
  label_rotation: {
854
935
  value: `auto`,
855
936
  description: `Arc label orientation (auto picks radial/tangential per arc)`,
@@ -860,24 +941,27 @@ export const SETTINGS_CONFIG = {
860
941
  horizontal: `Horizontal`,
861
942
  },
862
943
  },
863
- label_text: {
864
- value: `label`,
865
- description: `What arc labels display (percent is of the root total)`,
866
- enum: {
867
- label: `Label`,
868
- value: `Value`,
869
- percent: `Percent`,
870
- 'label+value': `Label + value`,
871
- 'label+percent': `Label + percent`,
872
- },
944
+ },
945
+ // Treemap chart specific
946
+ treemap: {
947
+ ...hierarchy_chart_settings(`cell`, `levels`, `Clicking any cell zooms into it, plotly-style (the breadcrumb pathbar zooms out)`),
948
+ padding_inner: {
949
+ value: 0,
950
+ description: `Pixel gap between sibling cells (0 = cells share a single stroke divider; gaps > 0 show the parent's fill)`,
951
+ minimum: 0,
952
+ maximum: 10,
873
953
  },
874
- zoom_on_click: {
875
- value: true,
876
- description: `Clicking a branch arc zooms into that subtree (center circle zooms out)`,
954
+ padding_top: {
955
+ value: 18,
956
+ description: `Pixel strip reserved at the top of branch cells for their label (0 = no headers)`,
957
+ minimum: 0,
958
+ maximum: 40,
877
959
  },
878
- show_breadcrumbs: {
879
- value: true,
880
- description: `Show a clickable trail of ancestors when zoomed into a subtree`,
960
+ padding_outer: {
961
+ value: 3,
962
+ description: `Pixel inset of child cells within their parent's left/right/bottom edges, so parents visibly enclose their subtree (plotly marker.pad)`,
963
+ minimum: 0,
964
+ maximum: 10,
881
965
  },
882
966
  },
883
967
  // Composition specific
@@ -926,7 +1010,7 @@ export const SETTINGS_CONFIG = {
926
1010
  display: DISPLAY_CONFIG,
927
1011
  point: {
928
1012
  size: {
929
- value: 4,
1013
+ value: 3,
930
1014
  description: `Point size for scatter plots`,
931
1015
  minimum: 1,
932
1016
  maximum: 20,
@@ -1390,5 +1474,6 @@ export const merge = (user) => ({
1390
1474
  box: merge_nested(DEFAULTS.box, user?.box),
1391
1475
  sankey: merge_nested(DEFAULTS.sankey, user?.sankey),
1392
1476
  sunburst: merge_nested(DEFAULTS.sunburst, user?.sunburst),
1477
+ treemap: merge_nested(DEFAULTS.treemap, user?.treemap),
1393
1478
  convex_hull: merge_nested(DEFAULTS.convex_hull, user?.convex_hull),
1394
1479
  });