matterviz 0.3.5 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/dist/MillerIndexInput.svelte +5 -5
  2. package/dist/api/optimade.js +3 -3
  3. package/dist/brillouin/BrillouinZone.svelte +5 -2
  4. package/dist/brillouin/BrillouinZone.svelte.d.ts +1 -1
  5. package/dist/brillouin/BrillouinZoneExportPane.svelte +1 -3
  6. package/dist/brillouin/BrillouinZoneInfoPane.svelte +1 -1
  7. package/dist/brillouin/BrillouinZoneScene.svelte +5 -5
  8. package/dist/brillouin/compute.js +21 -21
  9. package/dist/brillouin/index.d.ts +1 -1
  10. package/dist/brillouin/index.js +0 -1
  11. package/dist/brillouin/types.d.ts +8 -13
  12. package/dist/chempot-diagram/ChemPotDiagram.svelte +3 -3
  13. package/dist/chempot-diagram/ChemPotDiagram2D.svelte +3 -4
  14. package/dist/chempot-diagram/ChemPotDiagram3D.svelte +33 -34
  15. package/dist/chempot-diagram/compute.js +1 -7
  16. package/dist/chempot-diagram/temperature.d.ts +1 -1
  17. package/dist/chempot-diagram/temperature.js +1 -3
  18. package/dist/chempot-diagram/types.d.ts +4 -9
  19. package/dist/colors/index.js +5 -5
  20. package/dist/composition/Composition.svelte +2 -1
  21. package/dist/composition/Formula.svelte +7 -4
  22. package/dist/composition/FormulaFilter.svelte +1 -3
  23. package/dist/composition/format.js +4 -4
  24. package/dist/composition/parse.d.ts +2 -1
  25. package/dist/composition/parse.js +61 -46
  26. package/dist/convex-hull/ConvexHull2D.svelte +62 -51
  27. package/dist/convex-hull/ConvexHull3D.svelte +101 -90
  28. package/dist/convex-hull/ConvexHull4D.svelte +70 -58
  29. package/dist/convex-hull/ConvexHullControls.svelte +24 -35
  30. package/dist/convex-hull/ConvexHullInfoPane.svelte +8 -5
  31. package/dist/convex-hull/ConvexHullInfoPane.svelte.d.ts +2 -0
  32. package/dist/convex-hull/ConvexHullStats.svelte +9 -2
  33. package/dist/convex-hull/ConvexHullStats.svelte.d.ts +2 -0
  34. package/dist/convex-hull/GasPressureControls.svelte +7 -7
  35. package/dist/convex-hull/StructurePopup.svelte +65 -30
  36. package/dist/convex-hull/StructurePopup.svelte.d.ts +6 -6
  37. package/dist/convex-hull/TemperatureSlider.svelte +8 -5
  38. package/dist/convex-hull/barycentric-coords.d.ts +2 -2
  39. package/dist/convex-hull/barycentric-coords.js +2 -2
  40. package/dist/convex-hull/gas-thermodynamics.js +2 -4
  41. package/dist/convex-hull/helpers.d.ts +13 -2
  42. package/dist/convex-hull/helpers.js +37 -16
  43. package/dist/convex-hull/index.d.ts +1 -0
  44. package/dist/convex-hull/index.js +1 -0
  45. package/dist/convex-hull/thermodynamics.d.ts +2 -1
  46. package/dist/convex-hull/thermodynamics.js +7 -7
  47. package/dist/convex-hull/types.d.ts +15 -15
  48. package/dist/effects.svelte.d.ts +12 -0
  49. package/dist/effects.svelte.js +37 -0
  50. package/dist/element/BohrAtom.svelte +4 -4
  51. package/dist/element/data.json.gz.d.ts +3 -1
  52. package/dist/element/index.d.ts +1 -1
  53. package/dist/element/index.js +0 -1
  54. package/dist/fermi-surface/FermiSurface.svelte +4 -4
  55. package/dist/fermi-surface/FermiSurface.svelte.d.ts +1 -1
  56. package/dist/fermi-surface/FermiSurfaceControls.svelte +15 -19
  57. package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
  58. package/dist/fermi-surface/FermiSurfaceScene.svelte +8 -6
  59. package/dist/fermi-surface/compute.js +2 -2
  60. package/dist/fermi-surface/export.js +13 -26
  61. package/dist/fermi-surface/parse.js +8 -12
  62. package/dist/fermi-surface/types.d.ts +2 -5
  63. package/dist/heatmap-matrix/HeatmapMatrix.svelte +21 -3
  64. package/dist/heatmap-matrix/index.js +6 -6
  65. package/dist/io/decompress.d.ts +2 -1
  66. package/dist/io/decompress.js +1 -1
  67. package/dist/io/export.js +1 -1
  68. package/dist/io/index.d.ts +1 -1
  69. package/dist/io/index.js +0 -1
  70. package/dist/io/url-drop.js +7 -1
  71. package/dist/isosurface/IsosurfaceControls.svelte +11 -25
  72. package/dist/isosurface/slice.js +1 -1
  73. package/dist/isosurface/types.js +12 -12
  74. package/dist/labels.d.ts +1 -1
  75. package/dist/labels.js +14 -11
  76. package/dist/layout/InfoTag.svelte +6 -4
  77. package/dist/layout/PropertyFilter.svelte +4 -2
  78. package/dist/layout/json-tree/JsonTree.svelte +22 -14
  79. package/dist/layout/json-tree/JsonValue.svelte +2 -2
  80. package/dist/layout/json-tree/types.d.ts +3 -2
  81. package/dist/layout/json-tree/types.js +0 -1
  82. package/dist/layout/json-tree/utils.d.ts +4 -4
  83. package/dist/layout/json-tree/utils.js +12 -20
  84. package/dist/marching-cubes.js +13 -15
  85. package/dist/math.d.ts +11 -1
  86. package/dist/math.js +15 -6
  87. package/dist/overlays/DragControlTab.svelte +98 -0
  88. package/dist/overlays/DragControlTab.svelte.d.ts +8 -0
  89. package/dist/overlays/DraggablePane.svelte +7 -84
  90. package/dist/overlays/index.d.ts +1 -0
  91. package/dist/overlays/index.js +1 -0
  92. package/dist/periodic-table/PeriodicTable.svelte +11 -11
  93. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +4 -2
  94. package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +1 -1
  95. package/dist/phase-diagram/PhaseDiagramControls.svelte +4 -9
  96. package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
  97. package/dist/phase-diagram/PhaseDiagramExportPane.svelte +2 -10
  98. package/dist/phase-diagram/PhaseDiagramTooltip.svelte +2 -3
  99. package/dist/phase-diagram/TdbInfoPanel.svelte +3 -3
  100. package/dist/phase-diagram/build-diagram.js +11 -18
  101. package/dist/phase-diagram/diagram-input.d.ts +5 -9
  102. package/dist/phase-diagram/index.d.ts +2 -2
  103. package/dist/phase-diagram/index.js +0 -2
  104. package/dist/phase-diagram/parse.d.ts +2 -2
  105. package/dist/phase-diagram/parse.js +6 -10
  106. package/dist/phase-diagram/svg-to-diagram.js +15 -15
  107. package/dist/phase-diagram/types.d.ts +5 -11
  108. package/dist/phase-diagram/utils.d.ts +2 -2
  109. package/dist/phase-diagram/utils.js +9 -11
  110. package/dist/plot/BarPlot.svelte +162 -314
  111. package/dist/plot/BarPlot.svelte.d.ts +5 -4
  112. package/dist/plot/BarPlotControls.svelte.d.ts +1 -1
  113. package/dist/plot/BinnedScatterPlot.svelte +1114 -0
  114. package/dist/plot/BinnedScatterPlot.svelte.d.ts +66 -0
  115. package/dist/plot/ColorBar.svelte +19 -17
  116. package/dist/plot/ColorBar.svelte.d.ts +1 -1
  117. package/dist/plot/FillArea.svelte +2 -4
  118. package/dist/plot/FillArea.svelte.d.ts +1 -1
  119. package/dist/plot/Histogram.svelte +167 -281
  120. package/dist/plot/Histogram.svelte.d.ts +1 -1
  121. package/dist/plot/HistogramControls.svelte.d.ts +1 -1
  122. package/dist/plot/InteractiveAxisLabel.svelte +5 -3
  123. package/dist/plot/InteractiveAxisLabel.svelte.d.ts +1 -1
  124. package/dist/plot/PlotAxis.svelte +169 -0
  125. package/dist/plot/PlotAxis.svelte.d.ts +24 -0
  126. package/dist/plot/PlotControls.svelte.d.ts +1 -1
  127. package/dist/plot/ReferenceLine3D.svelte +53 -51
  128. package/dist/plot/ReferencePlane.svelte +39 -42
  129. package/dist/plot/ScatterPlot.svelte +300 -367
  130. package/dist/plot/ScatterPlot.svelte.d.ts +8 -5
  131. package/dist/plot/ScatterPlot3D.svelte +33 -6
  132. package/dist/plot/ScatterPlot3D.svelte.d.ts +3 -2
  133. package/dist/plot/ScatterPlot3DControls.svelte +9 -9
  134. package/dist/plot/ScatterPlotControls.svelte +3 -4
  135. package/dist/plot/ScatterPoint.svelte +18 -27
  136. package/dist/plot/ScatterPoint.svelte.d.ts +4 -3
  137. package/dist/plot/Surface3D.svelte +4 -7
  138. package/dist/plot/ZeroLines.svelte +2 -1
  139. package/dist/plot/ZeroLines.svelte.d.ts +2 -1
  140. package/dist/plot/ZoomRect.svelte +2 -2
  141. package/dist/plot/ZoomRect.svelte.d.ts +3 -3
  142. package/dist/plot/adaptive-density.d.ts +69 -0
  143. package/dist/plot/adaptive-density.js +191 -0
  144. package/dist/plot/auto-place.d.ts +43 -0
  145. package/dist/plot/auto-place.js +122 -0
  146. package/dist/plot/axis-utils.js +3 -5
  147. package/dist/plot/binned-scatter-types.d.ts +59 -0
  148. package/dist/plot/binned-scatter-types.js +1 -0
  149. package/dist/plot/data-cleaning.js +1 -1
  150. package/dist/plot/data-transform.js +1 -1
  151. package/dist/plot/fill-utils.d.ts +4 -9
  152. package/dist/plot/fill-utils.js +29 -44
  153. package/dist/plot/index.d.ts +4 -0
  154. package/dist/plot/index.js +2 -0
  155. package/dist/plot/interactions.d.ts +4 -4
  156. package/dist/plot/interactions.js +4 -3
  157. package/dist/plot/layout.d.ts +20 -2
  158. package/dist/plot/layout.js +59 -16
  159. package/dist/plot/reference-line.d.ts +1 -1
  160. package/dist/plot/reference-line.js +9 -11
  161. package/dist/plot/scales.d.ts +1 -1
  162. package/dist/plot/scales.js +20 -23
  163. package/dist/plot/types.d.ts +30 -58
  164. package/dist/plot/types.js +2 -6
  165. package/dist/plot/utils/label-placement.d.ts +24 -3
  166. package/dist/plot/utils/label-placement.js +82 -12
  167. package/dist/plot/utils/series-visibility.d.ts +8 -2
  168. package/dist/plot/utils/series-visibility.js +23 -5
  169. package/dist/rdf/RdfPlot.svelte +5 -5
  170. package/dist/rdf/calc-rdf.js +3 -3
  171. package/dist/sanitize.d.ts +2 -0
  172. package/dist/sanitize.js +2 -0
  173. package/dist/spectral/Bands.svelte +1 -1
  174. package/dist/spectral/BandsAndDos.svelte +22 -16
  175. package/dist/spectral/BrillouinBandsDos.svelte +20 -16
  176. package/dist/spectral/Dos.svelte +1 -1
  177. package/dist/spectral/helpers.d.ts +4 -2
  178. package/dist/spectral/helpers.js +44 -35
  179. package/dist/spectral/index.d.ts +1 -1
  180. package/dist/spectral/index.js +0 -1
  181. package/dist/structure/AtomLegend.svelte +23 -6
  182. package/dist/structure/AtomLegend.svelte.d.ts +1 -0
  183. package/dist/structure/CanvasTooltip.svelte +9 -9
  184. package/dist/structure/CanvasTooltip.svelte.d.ts +1 -1
  185. package/dist/structure/CellSelect.svelte +14 -16
  186. package/dist/structure/Structure.svelte +317 -68
  187. package/dist/structure/Structure.svelte.d.ts +4 -2
  188. package/dist/structure/StructureControls.svelte +20 -45
  189. package/dist/structure/StructureExportPane.svelte +2 -1
  190. package/dist/structure/StructureInfoPane.svelte +10 -8
  191. package/dist/structure/StructureScene.svelte +527 -177
  192. package/dist/structure/StructureScene.svelte.d.ts +5 -2
  193. package/dist/structure/atom-properties.js +4 -4
  194. package/dist/structure/bond-order-perception.js +115 -98
  195. package/dist/structure/bonding.d.ts +27 -1
  196. package/dist/structure/bonding.js +187 -16
  197. package/dist/structure/export.js +1 -1
  198. package/dist/structure/index.d.ts +3 -2
  199. package/dist/structure/index.js +0 -2
  200. package/dist/structure/parse.js +88 -59
  201. package/dist/symmetry/WyckoffTable.svelte +7 -0
  202. package/dist/symmetry/index.js +13 -14
  203. package/dist/table/HeatmapTable.svelte +45 -66
  204. package/dist/table/HeatmapTable.svelte.d.ts +1 -1
  205. package/dist/table/ToggleMenu.svelte +19 -10
  206. package/dist/theme/themes.mjs +12 -0
  207. package/dist/tooltip/index.d.ts +1 -1
  208. package/dist/tooltip/index.js +0 -1
  209. package/dist/trajectory/Trajectory.svelte +43 -15
  210. package/dist/trajectory/TrajectoryInfoPane.svelte +2 -2
  211. package/dist/trajectory/extract.js +1 -1
  212. package/dist/trajectory/frame-reader.js +4 -4
  213. package/dist/trajectory/helpers.d.ts +5 -4
  214. package/dist/trajectory/helpers.js +9 -17
  215. package/dist/trajectory/index.d.ts +2 -2
  216. package/dist/trajectory/index.js +2 -2
  217. package/dist/trajectory/parse/ase.js +4 -4
  218. package/dist/trajectory/parse/hdf5.js +1 -1
  219. package/dist/trajectory/parse/index.js +2 -3
  220. package/dist/trajectory/parse/lammps.js +1 -1
  221. package/dist/trajectory/parse/vasp.js +1 -1
  222. package/dist/trajectory/plotting.d.ts +1 -1
  223. package/dist/trajectory/plotting.js +38 -38
  224. package/dist/trajectory/types.d.ts +1 -1
  225. package/dist/utils.d.ts +1 -0
  226. package/dist/utils.js +9 -0
  227. package/dist/xrd/calc-xrd.js +3 -4
  228. package/dist/xrd/parse.js +1 -1
  229. package/package.json +42 -22
@@ -0,0 +1,66 @@
1
+ import type { Sides } from './layout';
2
+ import { type DensityBin, type DenseInternalPoint, type DensePointSeries } from './adaptive-density';
3
+ import type { AxisConfig, ScatterHandlerProps } from './types';
4
+ import type { Snippet } from 'svelte';
5
+ import type { HTMLAttributes } from 'svelte/elements';
6
+ import type { BinnedDensityConfig, BinnedOverlaysConfig, BinnedPointDataFn, BinnedPointLabelsConfig, BinnedPointTooltipPayload, BinnedSizeScaleConfig } from './binned-scatter-types';
7
+ declare function $$render<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>>(): {
8
+ props: Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
9
+ series: DensePointSeries<Metadata>[];
10
+ x_axis?: AxisConfig;
11
+ y_axis?: AxisConfig;
12
+ size_scale?: BinnedSizeScaleConfig;
13
+ density?: BinnedDensityConfig;
14
+ overlays?: BinnedOverlaysConfig;
15
+ padding?: Sides;
16
+ tooltip?: Snippet<[BinnedPointTooltipPayload<Metadata, PointData>]>;
17
+ point_data?: BinnedPointDataFn<Metadata, PointData>;
18
+ point_labels?: BinnedPointLabelsConfig<Metadata, PointData>;
19
+ selected_point_id?: string | number | null;
20
+ on_point_click?: (payload: ScatterHandlerProps<Metadata> & {
21
+ point: DenseInternalPoint<Metadata>;
22
+ event: MouseEvent;
23
+ color?: string;
24
+ point_data?: PointData;
25
+ }) => void;
26
+ on_density_zoom?: (payload: {
27
+ bin: DensityBin;
28
+ event: MouseEvent;
29
+ }) => void;
30
+ render_mode?: "density" | "points";
31
+ wrapper?: HTMLDivElement;
32
+ fullscreen?: boolean;
33
+ fullscreen_toggle?: boolean;
34
+ children?: Snippet<[{
35
+ height: number;
36
+ width: number;
37
+ fullscreen: boolean;
38
+ }]>;
39
+ header_controls?: Snippet<[{
40
+ height: number;
41
+ width: number;
42
+ fullscreen: boolean;
43
+ }]>;
44
+ };
45
+ exports: {};
46
+ bindings: "render_mode" | "fullscreen" | "wrapper";
47
+ slots: {};
48
+ events: {};
49
+ };
50
+ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>> {
51
+ props(): ReturnType<typeof $$render<Metadata, PointData>>['props'];
52
+ events(): ReturnType<typeof $$render<Metadata, PointData>>['events'];
53
+ slots(): ReturnType<typeof $$render<Metadata, PointData>>['slots'];
54
+ bindings(): "render_mode" | "fullscreen" | "wrapper";
55
+ exports(): {};
56
+ }
57
+ interface $$IsomorphicComponent {
58
+ new <Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Metadata, PointData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Metadata, PointData>['props']>, ReturnType<__sveltets_Render<Metadata, PointData>['events']>, ReturnType<__sveltets_Render<Metadata, PointData>['slots']>> & {
59
+ $$bindings?: ReturnType<__sveltets_Render<Metadata, PointData>['bindings']>;
60
+ } & ReturnType<__sveltets_Render<Metadata, PointData>['exports']>;
61
+ <Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<Metadata, PointData>['props']> & {}): ReturnType<__sveltets_Render<Metadata, PointData>['exports']>;
62
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
63
+ }
64
+ declare const BinnedScatterPlot: $$IsomorphicComponent;
65
+ type BinnedScatterPlot<Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>> = InstanceType<typeof BinnedScatterPlot<Metadata, PointData>>;
66
+ export default BinnedScatterPlot;
@@ -168,7 +168,7 @@
168
168
  let ticks_array: number[] = $derived.by(() => {
169
169
  if (Array.isArray(tick_labels)) {
170
170
  // Use user-provided ticks directly
171
- return tick_labels.map(Number).filter((n) => !isNaN(n))
171
+ return tick_labels.map(Number).filter((num) => !isNaN(num))
172
172
  }
173
173
 
174
174
  // Handle edge cases for number of ticks
@@ -230,8 +230,8 @@
230
230
  const log_min = Math.log10(scale_min)
231
231
  const log_max = Math.log10(scale_max)
232
232
  return [...Array(n_ticks).keys()].map((idx) => {
233
- const t = idx / (n_ticks - 1)
234
- const log_val = log_min + t * (log_max - log_min)
233
+ const fraction = idx / (n_ticks - 1)
234
+ const log_val = log_min + fraction * (log_max - log_min)
235
235
  return Math.pow(10, log_val)
236
236
  })
237
237
  }
@@ -241,8 +241,8 @@
241
241
  else {
242
242
  // Generate exactly n_ticks evenly spaced linear ticks
243
243
  return [...Array(n_ticks).keys()].map((idx) => {
244
- const t = idx / (n_ticks - 1)
245
- return scale_min + t * (scale_max - scale_min)
244
+ const fraction = idx / (n_ticks - 1)
245
+ return scale_min + fraction * (scale_max - scale_min)
246
246
  })
247
247
  }
248
248
  }
@@ -374,19 +374,19 @@
374
374
  }
375
375
 
376
376
  return [...Array(n_steps).keys()].map((_, idx) => {
377
- const t = idx / (n_steps - 1) // Normalized position 0 to 1
377
+ const fraction = idx / (n_steps - 1) // Normalized position 0 to 1
378
378
  let data_value: number
379
379
 
380
380
  if (use_log_interp) {
381
381
  data_value = log_span === 0
382
382
  ? adjusted_min_ramp
383
- : Math.pow(10, log_min + t * log_span)
383
+ : Math.pow(10, log_min + fraction * log_span)
384
384
  } else if (type_name === `arcsinh`) {
385
385
  data_value = asinh_span === 0
386
386
  ? min_ramp_domain
387
- : Math.sinh(asinh_min + t * asinh_span) * asinh_threshold
387
+ : Math.sinh(asinh_min + fraction * asinh_span) * asinh_threshold
388
388
  } else {
389
- data_value = min_ramp_domain + t * linear_span
389
+ data_value = min_ramp_domain + fraction * linear_span
390
390
  }
391
391
  return actual_color_scale_fn(data_value) ?? `transparent`
392
392
  })
@@ -470,17 +470,18 @@
470
470
  )
471
471
  let has_any_select = $derived(has_property_select || has_color_scale_select)
472
472
 
473
- // Initialize selected keys to first option when options provided but key undefined
474
- // This ensures state matches UI (which shows first option by default)
473
+ // Keep bindable selected keys valid so state matches the select's first-option fallback.
475
474
  $effect(() => {
476
- if (has_property_select && selected_property_key === undefined) {
477
- selected_property_key = property_options?.[0]?.key
478
- }
475
+ if (!property_options?.length) return
476
+ if (property_options.some((option) => option.key === selected_property_key)) return
477
+ selected_property_key = property_options[0]?.key
479
478
  })
480
479
  $effect(() => {
481
- if (has_color_scale_select && selected_color_scale_key === undefined) {
482
- selected_color_scale_key = color_scale_options?.[0]?.key
483
- }
480
+ if (!color_scale_options?.length) return
481
+ if (color_scale_options.some((option) => option.key === selected_color_scale_key)) return
482
+ const first_option = color_scale_options[0]
483
+ selected_color_scale_key = first_option.key
484
+ color_scale = first_option.scale
484
485
  })
485
486
 
486
487
  async function handle_property_change(new_key: string, prev_key?: string) {
@@ -697,6 +698,7 @@
697
698
  width: auto;
698
699
  &:is(.left, .right) {
699
700
  flex-direction: column;
701
+ justify-content: center; /* center title vertically along the bar height */
700
702
  }
701
703
  /* Rotate only the label element, not the entire row (keeps selects usable) */
702
704
  /* Only rotate when orientation is vertical AND title is on left/right side */
@@ -26,6 +26,6 @@ type $$ComponentProps = HTMLAttributes<HTMLDivElement> & {
26
26
  selected_color_scale_key?: string;
27
27
  on_color_scale_change?: (key: string) => void;
28
28
  };
29
- declare const ColorBar: import("svelte").Component<$$ComponentProps, {}, "title" | "range" | "color_scale" | "tick_labels" | "nice_range" | "selected_property_key" | "selected_color_scale_key">;
29
+ declare const ColorBar: import("svelte").Component<$$ComponentProps, {}, "title" | "color_scale" | "range" | "tick_labels" | "nice_range" | "selected_property_key" | "selected_color_scale_key">;
30
30
  type ColorBar = ReturnType<typeof ColorBar>;
31
31
  export default ColorBar;
@@ -17,7 +17,7 @@
17
17
  clip_path_id,
18
18
  x_scale_fn,
19
19
  y_scale_fn,
20
- hovered_region = null,
20
+ is_hovered = false,
21
21
  on_click,
22
22
  on_hover,
23
23
  tween_options,
@@ -28,7 +28,7 @@
28
28
  clip_path_id: string
29
29
  x_scale_fn: ((x: number) => number) & { invert?: (y: number) => number | Date }
30
30
  y_scale_fn: ((y: number) => number) & { invert?: (y: number) => number }
31
- hovered_region?: number | null
31
+ is_hovered?: boolean
32
32
  on_click?: (event: FillHandlerEvent) => void
33
33
  on_hover?: (event: FillHandlerEvent | null) => void
34
34
  tween_options?: TweenOptions<string>
@@ -40,8 +40,6 @@
40
40
  `fill-gradient-${region.id ?? region_idx}-${instance_id}`,
41
41
  )
42
42
 
43
- // Effective styling based on hover state
44
- let is_hovered = $derived(hovered_region === region_idx)
45
43
  let effective_opacity = $derived(
46
44
  is_hovered && region.hover_style?.fill_opacity != null
47
45
  ? region.hover_style.fill_opacity
@@ -11,7 +11,7 @@ type $$ComponentProps = {
11
11
  y_scale_fn: ((y: number) => number) & {
12
12
  invert?: (y: number) => number;
13
13
  };
14
- hovered_region?: number | null;
14
+ is_hovered?: boolean;
15
15
  on_click?: (event: FillHandlerEvent) => void;
16
16
  on_hover?: (event: FillHandlerEvent | null) => void;
17
17
  tween_options?: TweenOptions<string>;