@pond-ts/react 0.39.0 → 0.40.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 (2) hide show
  1. package/CHANGELOG.md +41 -14
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -8,7 +8,8 @@ The `@pond-ts` packages — `pond-ts`, `@pond-ts/react`, `@pond-ts/charts`, and
8
8
  them all. Pre-1.0: minor bumps may include new features and type-level changes;
9
9
  patch bumps are strictly additive.
10
10
 
11
- [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.39.0...HEAD
11
+ [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.40.0...HEAD
12
+ [0.40.0]: https://github.com/pjm17971/pond-ts/compare/v0.39.0...v0.40.0
12
13
  [0.39.0]: https://github.com/pjm17971/pond-ts/compare/v0.38.0...v0.39.0
13
14
  [0.38.0]: https://github.com/pjm17971/pond-ts/compare/v0.37.0...v0.38.0
14
15
  [0.37.0]: https://github.com/pjm17971/pond-ts/compare/v0.36.0...v0.37.0
@@ -37,21 +38,34 @@ patch bumps are strictly additive.
37
38
 
38
39
  ## [Unreleased]
39
40
 
41
+ ## [0.40.0] — 2026-07-05
42
+
43
+ A **core + charts** release from the estela `DataChart`-port friction wave.
44
+ `@pond-ts/react` and `@pond-ts/fit` carry no code changes — republished in
45
+ lock-step (peer ranges widen to `^0.40.0`).
46
+
47
+ ### Added
48
+
49
+ - `pond-ts`: **`TimeSeries.fromColumns({ sort })`** — an opt-in `sort?: boolean`
50
+ (default `false`) that stable-sorts a columnar payload by key before
51
+ construction, the columnar counterpart of `fromJSON`'s `sort`. The default path
52
+ is unchanged: a decreasing key still throws (a backwards key on the trusted fast
53
+ door is a corruption signal, not silently accepted), and the `Float64Array`
54
+ zero-copy adoption is preserved when `sort` is unset. (#344)
55
+ - `@pond-ts/charts`: **controlled bar hover** — `<ChartContainer hovered
56
+ onHover>`, the transient-hover analog of the existing `selected` / `onSelect`
57
+ pair, keyed by the same `SelectInfo`. Pin a lit `<BarChart>` bar from a legend
58
+ or list row (`hovered`), or mirror a bar-originated hover out-of-band
59
+ (`onHover`); omit both for today's uncontrolled behavior. (#343)
60
+
40
61
  ### Fixed
41
62
 
42
- - **Charts — click-to-select an annotation now works while `panZoom` is on.** A
43
- _selectable but non-editable_ `<Region>` / `<Marker>` (one with no `onChange`)
44
- lets its press bubble to the plot so a drag can pan _through_ it. The plot
45
- captured the pointer on press to start the pan, and the browser then retargeted
46
- the resulting `click` onto the plot (Pointer Events spec: a captured pointer's
47
- compatibility mouse events fire on the capture target) silently dropping the
48
- mark's `onSelectAnnotation`. The plot now **defers** its pan pointer-capture
49
- until the pointer actually moves past the drag slop, so a click (no drag) leaves
50
- the pointer on the mark and its select fires, while a press-drag still pans
51
- through and the tracker still hides once the pan commits. Resolves the
52
- browser-dependent finding deferred from #308; adds
53
- `e2e/annotations-panzoom.spec.ts`, the first real-pointer-event behavior e2e for
54
- the annotation layer. (#309)
63
+ - `@pond-ts/charts`: **axis and layer registration are value-equality-guarded**
64
+ a fresh-but-value-equal `ticks` / `format` / `byValue()`-projected `series`
65
+ reference no longer re-registers the axis/layer, fixing a "Maximum update depth
66
+ exceeded" loop on frequently re-rendering (scrub-driven) charts. The layer and
67
+ axis docs gain a memoize note for `format` / `series` (an inline `format`
68
+ closure still must be hoisted a closure can't be value-compared). (#342)
55
69
 
56
70
  ## [0.39.0] — 2026-07-03
57
71
 
@@ -89,6 +103,19 @@ carry no code changes — republished in lock-step (peer ranges widen to `^0.39.
89
103
 
90
104
  - `@pond-ts/charts`: the crosshair x-axis pill and marker pills read the axis's
91
105
  own formatter (a value-axis / off-boundary time no longer shows a raw number).
106
+ - **Charts — click-to-select an annotation now works while `panZoom` is on.** A
107
+ _selectable but non-editable_ `<Region>` / `<Marker>` (one with no `onChange`)
108
+ lets its press bubble to the plot so a drag can pan _through_ it. The plot
109
+ captured the pointer on press to start the pan, and the browser then retargeted
110
+ the resulting `click` onto the plot (Pointer Events spec: a captured pointer's
111
+ compatibility mouse events fire on the capture target) — silently dropping the
112
+ mark's `onSelectAnnotation`. The plot now **defers** its pan pointer-capture
113
+ until the pointer actually moves past the drag slop, so a click (no drag) leaves
114
+ the pointer on the mark and its select fires, while a press-drag still pans
115
+ through and the tracker still hides once the pan commits. Resolves the
116
+ browser-dependent finding deferred from #308; adds
117
+ `e2e/annotations-panzoom.spec.ts`, the first real-pointer-event behavior e2e for
118
+ the annotation layer. (#309)
92
119
 
93
120
  ## [0.38.0] — 2026-07-03
94
121
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pond-ts/react",
3
- "version": "0.39.0",
3
+ "version": "0.40.0",
4
4
  "description": "React hooks for pond-ts live time series",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "test:runtime": "vitest run"
34
34
  },
35
35
  "peerDependencies": {
36
- "pond-ts": "^0.39.0",
36
+ "pond-ts": "^0.40.0",
37
37
  "react": "^18.0.0 || ^19.0.0"
38
38
  },
39
39
  "devDependencies": {