ggaction 0.0.18 → 0.0.19
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 +50 -0
- package/README.md +6 -2
- package/knowledge/action-cards.json +1 -1
- package/knowledge/intent-taxonomy.json +1 -1
- package/knowledge/mcp-resources.json +1 -1
- package/package.json +1 -1
- package/src/actions/canvas/fitting.js +6 -2
- package/src/actions/charts/heatmap.js +4 -3
- package/src/actions/data/derived.js +11 -1
- package/src/actions/data/edit.js +2 -0
- package/src/actions/data/index.js +4 -0
- package/src/actions/data/regression.js +24 -16
- package/src/actions/data/regressionStatistics.js +73 -0
- package/src/actions/data/shared.js +5 -2
- package/src/actions/distributions/revision.js +24 -18
- package/src/actions/encodings/remove.js +11 -6
- package/src/actions/encodings/shared.js +26 -24
- package/src/actions/facets/actions.js +18 -7
- package/src/actions/facets/guides.js +2 -1
- package/src/actions/guides/axes/axes.js +30 -11
- package/src/actions/guides/axes/axis.js +58 -8
- package/src/actions/guides/axes/components.js +13 -13
- package/src/actions/guides/axes/edit.js +36 -24
- package/src/actions/guides/axes/labels.js +37 -27
- package/src/actions/guides/axes/lines.js +22 -20
- package/src/actions/guides/axes/remove.js +10 -6
- package/src/actions/guides/axes/tickGroups.js +8 -7
- package/src/actions/guides/axes/ticks.js +31 -22
- package/src/actions/guides/axes/titles.js +53 -60
- package/src/actions/guides/facadeAxes.js +33 -24
- package/src/actions/guides/facadeLegend.js +3 -3
- package/src/actions/guides/grids/grid.js +1 -1
- package/src/actions/guides/grids/resolve.js +48 -51
- package/src/actions/guides/legends/blocks.js +43 -19
- package/src/actions/guides/legends/categorical/actions.js +30 -7
- package/src/actions/guides/legends/categorical/components.js +3 -10
- package/src/actions/guides/legends/categorical/index.js +2 -0
- package/src/actions/guides/legends/categorical/layout.js +9 -13
- package/src/actions/guides/legends/categorical/options.js +8 -2
- package/src/actions/guides/legends/categorical/recipes.js +7 -3
- package/src/actions/guides/legends/categorical/resolve.js +9 -2
- package/src/actions/guides/legends/categorical/symbols.js +22 -8
- package/src/actions/guides/legends/colorSize.js +110 -0
- package/src/actions/guides/legends/combine.js +37 -0
- package/src/actions/guides/legends/continuous/colorSymbols.js +1 -1
- package/src/actions/guides/legends/continuous/common.js +1 -1
- package/src/actions/guides/legends/continuous/gradient.js +27 -13
- package/src/actions/guides/legends/continuous/opacity.js +16 -11
- package/src/actions/guides/legends/creation.js +2 -0
- package/src/actions/guides/legends/edit.js +1 -1
- package/src/actions/guides/legends/focused.js +6 -5
- package/src/actions/guides/legends/lane.js +1 -1
- package/src/actions/guides/legends/lifecycle.js +2 -1
- package/src/actions/guides/legends/remove.js +6 -3
- package/src/actions/guides/legends/size.js +16 -6
- package/src/actions/guides/legends/strokeWidth.js +2 -0
- package/src/actions/guides/legends/target.js +2 -79
- package/src/actions/guides/legends/transition.js +24 -5
- package/src/actions/guides/tickValues.js +8 -5
- package/src/actions/marks/bar/edit.js +23 -12
- package/src/actions/marks/bar/materialize.js +6 -1
- package/src/actions/marks/point/materialize.js +5 -1
- package/src/actions/marks/remove.js +10 -10
- package/src/actions/primitives/createGraphics.js +3 -2
- package/src/actions/primitives/editGraphics.js +15 -11
- package/src/actions/primitives/graphicProperties.js +1 -6
- package/src/actions/primitives/semanticAction.js +27 -1
- package/src/actions/primitives/semanticValidation/guide.js +11 -1
- package/src/actions/primitives/semanticValidation/layer.js +4 -0
- package/src/actions/regression/edit.js +15 -3
- package/src/actions/scales/channels.js +2 -2
- package/src/actions/scales/create.js +3 -3
- package/src/actions/scales/definitions.js +1 -1
- package/src/actions/scales/edit.js +1 -1
- package/src/actions/scales/editPolicy.js +3 -0
- package/src/actions/scales/patch.js +1 -1
- package/src/actions/scales/quantitativeColor.js +8 -3
- package/src/actions/theme/reconcile.js +50 -23
- package/src/core/compositionState.js +2 -2
- package/src/core/graphicProperties.js +1 -0
- package/src/core/programState.js +4 -0
- package/src/core/resourceReferences.js +2 -2
- package/src/core/validation.js +9 -0
- package/src/core/vocabulary.js +3 -0
- package/src/grammar/axisTextPlacement.js +1 -0
- package/src/grammar/colorSizeLegend.js +39 -0
- package/src/grammar/computed.js +23 -1
- package/src/grammar/datasetSchema.js +10 -2
- package/src/grammar/displayLabels.js +8 -0
- package/src/grammar/facets/guides.js +54 -31
- package/src/grammar/facets/legendIntent.js +65 -0
- package/src/grammar/guideDash.js +1 -0
- package/src/grammar/legendBlocks.js +1 -0
- package/src/grammar/legendBorder.js +9 -0
- package/src/grammar/legendClip.js +19 -0
- package/src/grammar/legendCombinations.js +45 -0
- package/src/grammar/legendGradient.js +9 -0
- package/src/grammar/legendGroups.js +1 -1
- package/src/grammar/legendOpacity.js +6 -0
- package/src/grammar/pointShapes.js +16 -2
- package/src/grammar/regression/derive.js +9 -1
- package/src/grammar/regression/models.js +60 -0
- package/src/grammar/regression/parameters.js +9 -1
- package/src/grammar/regression/statistics.js +64 -0
- package/src/grammar/scales/color.js +1 -1
- package/src/grammar/scales/colorConsumers.js +1 -1
- package/src/grammar/scales/definition.js +1 -1
- package/src/grammar/scales/types.js +1 -1
- package/src/grammar/schemas/concreteGraphic.js +3 -0
- package/src/grammar/schemas/graphic.js +3 -0
- package/src/grammar/schemas/graphicBounds.js +31 -7
- package/src/grammar/schemas/semanticPath.js +17 -2
- package/src/grammar/summary.js +1 -1
- package/src/grammar/timeUnit.js +6 -4
- package/src/grammar/transformTopology.js +1 -0
- package/src/grammar/transforms.js +11 -1
- package/src/inspectionDescriptors.js +1 -1
- package/src/layout/guideCollisions.js +9 -1
- package/src/layout/legendGroup.js +1 -1
- package/src/materialization/compositionSnapshot.js +2 -7
- package/src/materialization/coordinateBounds.js +17 -4
- package/src/materialization/facetGuides/edit.js +30 -0
- package/src/materialization/facetGuides/layout.js +1 -1
- package/src/materialization/facetGuides/owner.js +125 -0
- package/src/materialization/facetGuides/ownerLayout.js +71 -0
- package/src/materialization/facetGuides/placement.js +52 -6
- package/src/materialization/facetGuides/preparation.js +7 -0
- package/src/materialization/facets.js +1 -1
- package/src/materialization/graphicHierarchy.js +5 -1
- package/src/materialization/graphicTranslation.js +73 -0
- package/src/materialization/guides/layout.js +1 -1
- package/src/materialization/guides/resources.js +1 -1
- package/src/materialization/legendBorder.js +28 -0
- package/src/materialization/legendClip.js +76 -0
- package/src/materialization/legendGroups.js +1 -1
- package/src/materialization/legends.js +1 -1
- package/src/materialization/scaleGuideDependencies.js +13 -14
- package/src/materialization/scales/map.js +3 -0
- package/src/materialization/scales/resolve.js +2 -0
- package/src/materialization/typography.js +10 -2
- package/src/persistence/validation.js +174 -1
- package/src/persistence.js +1 -1
- package/src/renderers/canvas/index.js +20 -10
- package/src/renderers/canvas/isolated.js +166 -0
- package/src/renderers/canvas/limits.js +3 -0
- package/src/renderers/canvas/rect.js +1 -1
- package/src/renderers/pdf.js +2 -2
- package/src/renderers/png.js +2 -2
- package/src/renderers/svg.js +10 -3
- package/src/selectors/axes.js +1 -0
- package/src/selectors/graphicCapacity.js +38 -0
- package/src/version.js +1 -1
- package/types/basic.d.ts +2 -0
- package/types/index.d.ts +5 -0
- package/types/program.d.ts +206 -61
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,56 @@ All notable changes to `ggaction` are recorded in this file.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## [0.0.19] - 2026-10-17
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Named independent Cartesian axes retain their own scales, physical sides,
|
|
12
|
+
frame offsets, labels and titles across edits, facets and editable snapshots.
|
|
13
|
+
Complete axes support dashed ticks and per-value dash maps; focused text
|
|
14
|
+
editors support explicit alignment, baselines and along-axis title offsets.
|
|
15
|
+
- Facet parents can declare and edit a shared legend against the complete plot
|
|
16
|
+
union without enlarging individual panels. Selected blocks retain independent
|
|
17
|
+
anchors through layout and data replay.
|
|
18
|
+
- Added sampled size label maps, explicit categorical size-shape legend
|
|
19
|
+
combinations, channel-selected text editors, dashed legend borders,
|
|
20
|
+
independent gradient directions and bottom titles.
|
|
21
|
+
- Compatible same-field quantitative color and point-size encodings can share
|
|
22
|
+
one sampled legend with one label list; both original scale mappings remain
|
|
23
|
+
independent through edits, splitting, replay and editable snapshots.
|
|
24
|
+
- Sampled point-bearing legends support a clipping window without shrinking
|
|
25
|
+
encoded areas. Explicit symbol-layer opacity applies once to the complete
|
|
26
|
+
fill and outline, including SVG, Canvas, PNG and glyph-only PDF rasterization.
|
|
27
|
+
- Added native wedge and arrow point shapes with consistent area and anchors.
|
|
28
|
+
- Continuous color scales support signed-power transforms, cubehelix lightness
|
|
29
|
+
gamma and an explicit D50 white point for Lab/HCL interpolation. Existing
|
|
30
|
+
interpolation defaults and original-value legend labels are preserved.
|
|
31
|
+
- Computed expressions support calendar-year extraction and finite floor.
|
|
32
|
+
Exponential regression fits positive responses through existing regression APIs.
|
|
33
|
+
- `createRegressionStatisticsData` exposes observation counts, coefficients and
|
|
34
|
+
R-squared from the same linear fit. `editRegressionStatisticsData` replays
|
|
35
|
+
consumers atomically; editable snapshots retain compact fit statistics.
|
|
36
|
+
- Point layers preserve up to 50,000 selected observations and summaries retain
|
|
37
|
+
up to 30,000 groups without reducing source data; editing, facets and snapshots
|
|
38
|
+
retain those bounded results.
|
|
39
|
+
- Added opt-in difference compositing through `editBarMark`, with one source
|
|
40
|
+
for fill and outline, concrete SVG/Canvas output and glyph-only PDF rasterization.
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
|
|
44
|
+
- Closed Canvas rectangle outlines at all four corners so the first corner
|
|
45
|
+
uses its authored join instead of two open end caps.
|
|
46
|
+
- Combining categorical size and shape legends rejects conflicting inherited
|
|
47
|
+
block anchors unless the author explicitly repositions the combined block.
|
|
48
|
+
- Binned heatmaps preserve disabled axis titles and named axis arrays through
|
|
49
|
+
the same guide-owner validation used by other Cartesian charts.
|
|
50
|
+
- Facet parents restore each legend block's sampling window independently and
|
|
51
|
+
composed child windows preserve valid private graphic identities.
|
|
52
|
+
- Overflowing documentation signatures support keyboard scrolling and retain
|
|
53
|
+
accessible focus at mobile widths.
|
|
54
|
+
- Unattached ordinal scale edits validate palette ranges like creation, including
|
|
55
|
+
rebuilding Raincloud colors without losing their channel-specific checks.
|
|
56
|
+
|
|
7
57
|
## [0.0.18] - 2026-10-17
|
|
8
58
|
|
|
9
59
|
### Added
|
package/README.md
CHANGED
|
@@ -170,7 +170,7 @@ automatic undo stack; the application chooses which to retain or render.
|
|
|
170
170
|
|
|
171
171
|
Use `createLinePlot`, `createBarPlot`, `createHistogram`, and `createHeatmap` for
|
|
172
172
|
the other basic Cartesian charts. The `ggaction/basic` entry keeps this common
|
|
173
|
-
creation path at or below the current
|
|
173
|
+
creation path at or below the current 204,000-byte gzip regression ceiling while
|
|
174
174
|
each facade still records its mark, encoding, and guide actions as trace
|
|
175
175
|
children. Import from
|
|
176
176
|
`ggaction` when you need editing, selection, composition, alternative
|
|
@@ -248,7 +248,7 @@ the extra discussion required before public API or architecture changes.
|
|
|
248
248
|
|
|
249
249
|
## Status and development
|
|
250
250
|
|
|
251
|
-
> **Status:** `0.0.
|
|
251
|
+
> **Status:** `0.0.19` is the current experimental public release. APIs may change before `1.0.0`; changes are recorded in the [changelog](./CHANGELOG.md).
|
|
252
252
|
|
|
253
253
|
```bash
|
|
254
254
|
npm install
|
|
@@ -258,6 +258,10 @@ npm run test:render
|
|
|
258
258
|
npm run test:docs
|
|
259
259
|
```
|
|
260
260
|
|
|
261
|
+
The renderer development suite also needs Poppler's `pdftoppm` on `PATH` for
|
|
262
|
+
independent PDF pixel checks. The CI and protected release jobs install
|
|
263
|
+
`poppler-utils` explicitly; this is not a runtime package dependency.
|
|
264
|
+
|
|
261
265
|
## Related Links
|
|
262
266
|
|
|
263
267
|
- Action-trace demo: [Link](https://ggactionbot.github.io/action-trace-demo/)
|