@opendata-ai/openchart-core 8.4.0 → 8.5.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.
@@ -18473,6 +18473,10 @@
18473
18473
  ],
18474
18474
  "description": "Mobile priority for cards mode (below 400px): 1 renders first and spans the row, 2 renders as a label/value pair, 3 is hidden. Defaults to 2 (1 for the first column)."
18475
18475
  },
18476
+ "total": {
18477
+ "type": "boolean",
18478
+ "description": "Whether the total row sums this column. Defaults to true for quantitative columns with a summable cell type (text/bar/heatmap); set `false` to leave the total row blank for this column instead."
18479
+ },
18476
18480
  "heatmap": {
18477
18481
  "$ref": "#/definitions/HeatmapColumnConfig",
18478
18482
  "description": "Heatmap: color the cell background based on numeric value."
@@ -18792,6 +18796,14 @@
18792
18796
  "watermark": {
18793
18797
  "type": "boolean",
18794
18798
  "description": "Whether to show the OpenData watermark. Defaults to true."
18799
+ },
18800
+ "dimensions": {
18801
+ "type": "number",
18802
+ "enum": [
18803
+ 2,
18804
+ 3
18805
+ ],
18806
+ "description": "Render in two or three dimensions. Defaults to `2` (the Canvas renderer).\n\n`3` renders with WebGL. The 3D renderer ships on its own subpath so three.js never enters the default bundle, and it must be imported before the graph mounts:\n\n```ts import '@opendata-ai/openchart-vanilla/graph-3d'; ```\n\n(Framework hosts import their own package's mirror of the subpath: `@opendata-ai/openchart-react/graph-3d`, `@opendata-ai/openchart-vue/graph-3d`, `@opendata-ai/openchart-svelte/graph-3d`.) Mounting a `dimensions: 3` spec without that import throws.\n\n3D differs from 2D in these ways:\n- Labels use a fixed budget re-ranked by camera distance, not the 2D priority declutter, so distant labels drop out.\n- The simulation runs on the main thread (no worker, no wall-clock warmup budget).\n- Keyboard navigation, SVG export, `interaction.cursorRepulsion` and `interaction.springyDrag` are unsupported. Each warns and is ignored. (`layout.type` of `'radial'` or `'hierarchical'` is rejected by spec validation in both dimensions, so it never reaches either renderer.)\n- `getCamera()` returns a pose rather than a zoom transform: `x`/`y` are the look-at point in world units, alongside `position` and `target`. In 2D they are the zoom transform's translate in pixels. `onCameraChange` carries the same payload, so persisted camera state has to be keyed on the dimension it came from. Both are typed `GraphCamera` (vanilla), whose `position`/`target` are optional because only 3D sets them.\n- A structural `update()` reheats the whole layout globally, so settled nodes drift; 2D applies a local impulse instead.\n- Above 2000 nodes the spec warns and falls back to 2D.\n- `nodeOverrides[*].stroke` and `strokeWidth` are ignored (no ring)."
18795
18807
  }
18796
18808
  },
18797
18809
  "required": [