pond-ts 0.31.1 → 0.32.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.
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.31.1...HEAD
11
+ [Unreleased]: https://github.com/pjm17971/pond-ts/compare/v0.32.0...HEAD
12
+ [0.32.0]: https://github.com/pjm17971/pond-ts/compare/v0.31.2...v0.32.0
13
+ [0.31.2]: https://github.com/pjm17971/pond-ts/compare/v0.31.1...v0.31.2
12
14
  [0.31.1]: https://github.com/pjm17971/pond-ts/compare/v0.30.0...v0.31.1
13
15
  [0.31.0]: https://github.com/pjm17971/pond-ts/compare/v0.30.0...3c4e8bd
14
16
  [0.30.0]: https://github.com/pjm17971/pond-ts/compare/v0.29.0...v0.30.0
@@ -25,6 +27,58 @@ patch bumps are strictly additive.
25
27
  [0.19.0]: https://github.com/pjm17971/pond-ts/compare/v0.18.0...v0.19.0
26
28
  [0.18.0]: https://github.com/pjm17971/pond-ts/compare/v0.17.1...v0.18.0
27
29
 
30
+ ## [0.32.0] — 2026-06-29
31
+
32
+ A `@pond-ts/charts` release: value-axis support across the fill/bar layers, plus
33
+ explicit y-axis ticks and the annotation primitives. `pond-ts`,
34
+ `@pond-ts/react`, and `@pond-ts/fit` are unchanged this cycle — republished in
35
+ lock-step at the same version.
36
+
37
+ ### Added
38
+
39
+ - **Charts — explicit y-axis ticks.** `<YAxis ticks={[{ at, label }]}>` places
40
+ ticks (and their gridlines) at chosen values with custom labels, mirroring
41
+ `<XAxis ticks>`; `ticks={[]}` draws none. (#303)
42
+ - **Charts — value-axis (`ValueSeries`) support for `<AreaChart>`,
43
+ `<BandChart>`, and `<BarChart>`.** Each now accepts a `ValueSeries`
44
+ (`series.byValue('dist')`) and plots against its monotonic value axis
45
+ (distance, cumulative work, …), not just time — joining `<LineChart>`, which
46
+ already did. The container infers the x-axis kind from the data, so there is
47
+ no axis-type prop. `BarChart` derives each bar's span from neighbour spacing
48
+ on a point-keyed value axis (the splits/laps case). (#304, #307)
49
+ - **Charts — annotations: `<Region>`, `<Marker>`, `<Baseline>`.** User-authored
50
+ marks in a distinct register — a shaded x-span, a vertical x line, and a
51
+ horizontal value line — with flag labels, a three-level depth ramp, and opt-in
52
+ interaction modes (inspect-select, single-edit, drag-resize, create-tool
53
+ gestures) coordinated by the container (cross-row guide lines,
54
+ snap-to-guideline, z-order). Adds `ChartContainer` annotation props
55
+ (`creating` / `editAnnotations` / `onCreate` / `onSelectAnnotation` /
56
+ `onHoverAnnotation` / `onEditAnnotation` / `snap`) and a `ChartTheme.annotation`
57
+ depth theme. (#306)
58
+
59
+ ### Changed
60
+
61
+ - **Charts — the fill/bar layer `series` prop widens (additive).**
62
+ `AreaChartProps` / `BandChartProps` / `BarChartProps` now accept
63
+ `TimeSeries | ValueSeries`; the new second generic defaults, so existing
64
+ one-type-argument uses (`AreaChartProps<S>`, `<AreaChart<S>>`) compile
65
+ unchanged. (#304, #307)
66
+
67
+ ## [0.31.2] — 2026-06-29
68
+
69
+ ### Fixed
70
+
71
+ - **`pond-ts` column methods survive consumer tree-shaking.** The column-API
72
+ methods (`hasMissing`, `at`, `min`, `slice`, …) are mounted onto the column
73
+ prototypes by a side-effect module (`dist/column.js`); the previous
74
+ `sideEffects: ["./dist/column.js"]` per-file glob was dropped by some bundlers
75
+ (notably Rollup production builds under pnpm), so
76
+ `series.column('x').hasMissing()` could throw in production. `pond-ts` now
77
+ declares `sideEffects: true`, matching the other `@pond-ts` packages — robust
78
+ regardless of bundler or symlink layout, at the cost of whole-package
79
+ tree-shaking (the column prototype augmentation makes that unsafe anyway).
80
+ (estela#98.)
81
+
28
82
  ## [0.31.1] — 2026-06-28
29
83
 
30
84
  ### Fixed
package/dist/column.d.ts CHANGED
@@ -25,6 +25,13 @@
25
25
  * Augmenting the existing class in-place — runtime _and_ at the
26
26
  * type level — keeps the substrate untouched and ships the
27
27
  * methods on every existing construction site.
28
+ *
29
+ * **Packaging — do not narrow `sideEffects`.** The barrel imports this
30
+ * module only for its side effect, so `packages/core/package.json` must
31
+ * keep `sideEffects: true`. The earlier per-file glob
32
+ * (`["./dist/column.js"]`) was silently dropped by some bundlers under
33
+ * pnpm + Rollup production builds, tree-shaking this module away so
34
+ * `series.column('x').hasMissing()` threw at runtime (v0.31.2; estela#98).
28
35
  */
29
36
  import { ArrayColumn, BooleanColumn, ChunkedArrayColumn, ChunkedBooleanColumn, ChunkedFloat64Column, ChunkedStringColumn, Float64Column, IntervalKeyColumn, StringColumn, TimeKeyColumn, TimeRangeKeyColumn } from './columnar/index.js';
30
37
  import type { ScalarValue } from './columnar/index.js';
package/dist/column.js CHANGED
@@ -25,6 +25,13 @@
25
25
  * Augmenting the existing class in-place — runtime _and_ at the
26
26
  * type level — keeps the substrate untouched and ships the
27
27
  * methods on every existing construction site.
28
+ *
29
+ * **Packaging — do not narrow `sideEffects`.** The barrel imports this
30
+ * module only for its side effect, so `packages/core/package.json` must
31
+ * keep `sideEffects: true`. The earlier per-file glob
32
+ * (`["./dist/column.js"]`) was silently dropped by some bundlers under
33
+ * pnpm + Rollup production builds, tree-shaking this module away so
34
+ * `series.column('x').hasMissing()` threw at runtime (v0.31.2; estela#98).
28
35
  */
29
36
  import { ArrayColumn, BooleanColumn, ChunkedArrayColumn, ChunkedBooleanColumn, ChunkedFloat64Column, ChunkedStringColumn, Float64Column, IntervalKeyColumn, StringColumn, TimeKeyColumn, TimeRangeKeyColumn, materializeChunkedArray, materializeChunkedBoolean, materializeChunkedFloat64, materializeChunkedString, } from './columnar/index.js';
30
37
  import { resolveReducer } from './reducers/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pond-ts",
3
- "version": "0.31.1",
3
+ "version": "0.32.0",
4
4
  "description": "TypeScript-first time series primitives",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -11,9 +11,7 @@
11
11
  "type": "module",
12
12
  "main": "dist/index.js",
13
13
  "types": "dist/index.d.ts",
14
- "sideEffects": [
15
- "./dist/column.js"
16
- ],
14
+ "sideEffects": true,
17
15
  "exports": {
18
16
  ".": {
19
17
  "types": "./dist/index.d.ts",