@pond-ts/react 0.38.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 +84 -1
  2. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -8,7 +8,9 @@ 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.38.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
13
+ [0.39.0]: https://github.com/pjm17971/pond-ts/compare/v0.38.0...v0.39.0
12
14
  [0.38.0]: https://github.com/pjm17971/pond-ts/compare/v0.37.0...v0.38.0
13
15
  [0.37.0]: https://github.com/pjm17971/pond-ts/compare/v0.36.0...v0.37.0
14
16
  [0.36.0]: https://github.com/pjm17971/pond-ts/compare/v0.35.0...v0.36.0
@@ -34,6 +36,87 @@ patch bumps are strictly additive.
34
36
  [0.19.0]: https://github.com/pjm17971/pond-ts/compare/v0.18.0...v0.19.0
35
37
  [0.18.0]: https://github.com/pjm17971/pond-ts/compare/v0.17.1...v0.18.0
36
38
 
39
+ ## [Unreleased]
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
+
61
+ ### Fixed
62
+
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)
69
+
70
+ ## [0.39.0] — 2026-07-03
71
+
72
+ A `@pond-ts/charts` release: the **crosshair reticle + annotation-layout** wave,
73
+ driven by the Tidal terminal. `pond-ts`, `@pond-ts/react`, and `@pond-ts/fit`
74
+ carry no code changes — republished in lock-step (peer ranges widen to `^0.39.0`).
75
+
76
+ ### Added
77
+
78
+ - `@pond-ts/charts`: **`<ChartContainer crosshairSnap>`** (default `true`) — the
79
+ `cursor="crosshair"` reticle centres on the nearest data point; `false` gives a
80
+ **free** reticle whose horizontal line + value follow the pointer y
81
+ (`yScale.invert`), while the vertical line still snaps its x to the data grid
82
+ for a clean time readout.
83
+ - `@pond-ts/charts`: **coincident marker labels merge** — labelled `<Marker>`s at
84
+ the same x fold into one chip (`"a, b, c"`) instead of stacking; their x-axis
85
+ indicator pills dedup to one.
86
+ - `@pond-ts/charts`: **x-axis indicator pills lane-stack** when they'd overlap
87
+ (each connector lengthens to its lane).
88
+
89
+ ### Changed
90
+
91
+ - `@pond-ts/charts`: **`cursor="crosshair"` is now a single reticle** — a
92
+ full-height dashed vertical + full-width dashed horizontal line + a centre dot +
93
+ one value pill, with the time pill connected to the vertical line. (Was
94
+ per-series dots + on-axis pills; the per-series readout stays on `flag` /
95
+ `inline`.)
96
+ - `@pond-ts/charts`: top-flag **labels pack per row** — a label only contends with
97
+ labels in its own row's top space (a bottom-row label no longer dodges a
98
+ top-row one at the same x). A dragged mark is excluded from the pack, so static
99
+ marks hold their lanes as it crosses them (no phantom lane swaps). A marker's
100
+ staff now hangs from the top of its (stacked) flag.
101
+
102
+ ### Fixed
103
+
104
+ - `@pond-ts/charts`: the crosshair x-axis pill and marker pills read the axis's
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)
119
+
37
120
  ## [0.38.0] — 2026-07-03
38
121
 
39
122
  A `@pond-ts/charts` release: **axis-edge value indicators + the crosshair
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pond-ts/react",
3
- "version": "0.38.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.38.0",
36
+ "pond-ts": "^0.40.0",
37
37
  "react": "^18.0.0 || ^19.0.0"
38
38
  },
39
39
  "devDependencies": {