@opendata-ai/openchart-core 8.0.0-rc.9 → 8.0.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/dist/index.d.ts +363 -43
- package/dist/index.js +39 -18
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +1 -2
- package/schema/chart.schema.json +373 -67
- package/schema/table.schema.json +35 -1
- package/schema/vizspec.schema.json +950 -152
- package/src/accessibility/__tests__/alt-text.test.ts +0 -110
- package/src/accessibility/__tests__/aria.test.ts +0 -125
- package/src/accessibility/alt-text.ts +0 -155
- package/src/accessibility/aria.ts +0 -75
- package/src/accessibility/index.ts +0 -6
- package/src/colors/__tests__/colorblind.test.ts +0 -75
- package/src/colors/__tests__/contrast.test.ts +0 -119
- package/src/colors/__tests__/palettes.test.ts +0 -74
- package/src/colors/colorblind.ts +0 -131
- package/src/colors/contrast.ts +0 -143
- package/src/colors/index.ts +0 -36
- package/src/colors/palettes.ts +0 -206
- package/src/helpers/__tests__/deep-merge.test.ts +0 -54
- package/src/helpers/__tests__/spec-builders.test.ts +0 -338
- package/src/helpers/deep-merge.ts +0 -29
- package/src/helpers/spec-builders.ts +0 -479
- package/src/index.ts +0 -215
- package/src/labels/__tests__/collision.test.ts +0 -310
- package/src/labels/collision.ts +0 -249
- package/src/labels/index.ts +0 -13
- package/src/layout/__tests__/chrome.test.ts +0 -208
- package/src/layout/__tests__/text-measure.test.ts +0 -57
- package/src/layout/chrome.ts +0 -470
- package/src/layout/index.ts +0 -18
- package/src/layout/text-measure.ts +0 -404
- package/src/layout/text-wrap.ts +0 -93
- package/src/locale/__tests__/format.test.ts +0 -606
- package/src/locale/format.ts +0 -459
- package/src/locale/index.ts +0 -21
- package/src/responsive/__tests__/breakpoints.test.ts +0 -146
- package/src/responsive/__tests__/metrics.test.ts +0 -52
- package/src/responsive/breakpoints.ts +0 -177
- package/src/responsive/index.ts +0 -53
- package/src/responsive/metrics.ts +0 -299
- package/src/schema/__tests__/generated-artifacts.test.ts +0 -42
- package/src/schema/__tests__/schema.test.ts +0 -179
- package/src/styles/__tests__/reduced-motion-selectors.test.ts +0 -28
- package/src/styles/animation.css +0 -213
- package/src/styles/base.css +0 -102
- package/src/styles/chrome.css +0 -174
- package/src/styles/dark.css +0 -44
- package/src/styles/graph.css +0 -135
- package/src/styles/index.css +0 -28
- package/src/styles/keyframes.css +0 -151
- package/src/styles/legend.css +0 -18
- package/src/styles/reduced-motion.css +0 -67
- package/src/styles/series-search.css +0 -153
- package/src/styles/sparkline.css +0 -16
- package/src/styles/table-animation.css +0 -93
- package/src/styles/table.css +0 -398
- package/src/styles/token-definitions.ts +0 -199
- package/src/styles/tokens.css +0 -156
- package/src/styles/tooltip.css +0 -126
- package/src/styles/you-draw-it.css +0 -126
- package/src/theme/__tests__/dark-mode.test.ts +0 -232
- package/src/theme/__tests__/defaults.test.ts +0 -73
- package/src/theme/__tests__/resolve.test.ts +0 -277
- package/src/theme/dark-mode.ts +0 -258
- package/src/theme/defaults.ts +0 -110
- package/src/theme/index.ts +0 -8
- package/src/theme/presets.ts +0 -64
- package/src/theme/resolve.ts +0 -312
- package/src/types/__tests__/encoding.test.ts +0 -368
- package/src/types/__tests__/gradient.test.ts +0 -95
- package/src/types/__tests__/spec.test.ts +0 -499
- package/src/types/encoding.ts +0 -280
- package/src/types/events.ts +0 -236
- package/src/types/index.ts +0 -290
- package/src/types/layout.ts +0 -2024
- package/src/types/schema-roots.ts +0 -32
- package/src/types/spec.ts +0 -2925
- package/src/types/table.ts +0 -108
- package/src/types/theme.ts +0 -209
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"$ref": "#/definitions/TileMapSpec"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
"$ref": "#/definitions/
|
|
30
|
+
"$ref": "#/definitions/GeoMapSpec"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"$ref": "#/definitions/BarListSpec"
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
|
-
"description": "Top-level visualization spec: union discriminated by structural shape.\n\n- ChartSpec: has `mark` field (no `type`, no `layer`)\n- LayerSpec: has `layer` field\n- TableSpec: has `type: 'table'`\n- GraphSpec: has `type: 'graph'`\n- SankeySpec: has `type: 'sankey'`\n- TileMapSpec: has `type: 'tilemap'`\n-
|
|
36
|
+
"description": "Top-level visualization spec: union discriminated by structural shape.\n\n- ChartSpec: has `mark` field (no `type`, no `layer`)\n- LayerSpec: has `layer` field\n- TableSpec: has `type: 'table'`\n- GraphSpec: has `type: 'graph'`\n- SankeySpec: has `type: 'sankey'`\n- TileMapSpec: has `type: 'tilemap'`\n- GeoMapSpec: has `type: 'map'`\n- BarListSpec: has `type: 'barlist'`\n\nElection parliament (hemicycle) charts are `ChartSpec` with `mark: 'parliament'`, not a separate top-level type: seat data (party + seats) maps naturally onto encoding.color/y like arc and waffle, and riding the existing chart pipeline gets scales, legend, tooltips, a11y, and dark mode for free instead of a second bespoke compile path (see `packages/engine/src/charts/parliament/`)."
|
|
37
37
|
},
|
|
38
38
|
"ChartSpec": {
|
|
39
39
|
"anyOf": [
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"size": {
|
|
142
142
|
"type": "number",
|
|
143
|
-
"description": "
|
|
143
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
144
144
|
},
|
|
145
145
|
"filled": {
|
|
146
146
|
"type": "boolean",
|
|
@@ -181,8 +181,15 @@
|
|
|
181
181
|
"description": "Clip marks to the chart area."
|
|
182
182
|
},
|
|
183
183
|
"trendline": {
|
|
184
|
-
"
|
|
185
|
-
|
|
184
|
+
"anyOf": [
|
|
185
|
+
{
|
|
186
|
+
"type": "boolean"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
186
193
|
},
|
|
187
194
|
"dx": {
|
|
188
195
|
"type": "number",
|
|
@@ -409,7 +416,7 @@
|
|
|
409
416
|
},
|
|
410
417
|
"size": {
|
|
411
418
|
"type": "number",
|
|
412
|
-
"description": "
|
|
419
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
413
420
|
},
|
|
414
421
|
"filled": {
|
|
415
422
|
"type": "boolean",
|
|
@@ -450,8 +457,15 @@
|
|
|
450
457
|
"description": "Clip marks to the chart area."
|
|
451
458
|
},
|
|
452
459
|
"trendline": {
|
|
453
|
-
"
|
|
454
|
-
|
|
460
|
+
"anyOf": [
|
|
461
|
+
{
|
|
462
|
+
"type": "boolean"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
466
|
+
}
|
|
467
|
+
],
|
|
468
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
455
469
|
},
|
|
456
470
|
"dx": {
|
|
457
471
|
"type": "number",
|
|
@@ -678,7 +692,7 @@
|
|
|
678
692
|
},
|
|
679
693
|
"size": {
|
|
680
694
|
"type": "number",
|
|
681
|
-
"description": "
|
|
695
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
682
696
|
},
|
|
683
697
|
"filled": {
|
|
684
698
|
"type": "boolean",
|
|
@@ -719,8 +733,15 @@
|
|
|
719
733
|
"description": "Clip marks to the chart area."
|
|
720
734
|
},
|
|
721
735
|
"trendline": {
|
|
722
|
-
"
|
|
723
|
-
|
|
736
|
+
"anyOf": [
|
|
737
|
+
{
|
|
738
|
+
"type": "boolean"
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
742
|
+
}
|
|
743
|
+
],
|
|
744
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
724
745
|
},
|
|
725
746
|
"dx": {
|
|
726
747
|
"type": "number",
|
|
@@ -947,7 +968,7 @@
|
|
|
947
968
|
},
|
|
948
969
|
"size": {
|
|
949
970
|
"type": "number",
|
|
950
|
-
"description": "
|
|
971
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
951
972
|
},
|
|
952
973
|
"filled": {
|
|
953
974
|
"type": "boolean",
|
|
@@ -988,8 +1009,15 @@
|
|
|
988
1009
|
"description": "Clip marks to the chart area."
|
|
989
1010
|
},
|
|
990
1011
|
"trendline": {
|
|
991
|
-
"
|
|
992
|
-
|
|
1012
|
+
"anyOf": [
|
|
1013
|
+
{
|
|
1014
|
+
"type": "boolean"
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
1018
|
+
}
|
|
1019
|
+
],
|
|
1020
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
993
1021
|
},
|
|
994
1022
|
"dx": {
|
|
995
1023
|
"type": "number",
|
|
@@ -1216,7 +1244,7 @@
|
|
|
1216
1244
|
},
|
|
1217
1245
|
"size": {
|
|
1218
1246
|
"type": "number",
|
|
1219
|
-
"description": "
|
|
1247
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
1220
1248
|
},
|
|
1221
1249
|
"filled": {
|
|
1222
1250
|
"type": "boolean",
|
|
@@ -1257,8 +1285,15 @@
|
|
|
1257
1285
|
"description": "Clip marks to the chart area."
|
|
1258
1286
|
},
|
|
1259
1287
|
"trendline": {
|
|
1260
|
-
"
|
|
1261
|
-
|
|
1288
|
+
"anyOf": [
|
|
1289
|
+
{
|
|
1290
|
+
"type": "boolean"
|
|
1291
|
+
},
|
|
1292
|
+
{
|
|
1293
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
1294
|
+
}
|
|
1295
|
+
],
|
|
1296
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
1262
1297
|
},
|
|
1263
1298
|
"dx": {
|
|
1264
1299
|
"type": "number",
|
|
@@ -1485,7 +1520,7 @@
|
|
|
1485
1520
|
},
|
|
1486
1521
|
"size": {
|
|
1487
1522
|
"type": "number",
|
|
1488
|
-
"description": "
|
|
1523
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
1489
1524
|
},
|
|
1490
1525
|
"filled": {
|
|
1491
1526
|
"type": "boolean",
|
|
@@ -1526,8 +1561,15 @@
|
|
|
1526
1561
|
"description": "Clip marks to the chart area."
|
|
1527
1562
|
},
|
|
1528
1563
|
"trendline": {
|
|
1529
|
-
"
|
|
1530
|
-
|
|
1564
|
+
"anyOf": [
|
|
1565
|
+
{
|
|
1566
|
+
"type": "boolean"
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
1570
|
+
}
|
|
1571
|
+
],
|
|
1572
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
1531
1573
|
},
|
|
1532
1574
|
"dx": {
|
|
1533
1575
|
"type": "number",
|
|
@@ -1754,7 +1796,7 @@
|
|
|
1754
1796
|
},
|
|
1755
1797
|
"size": {
|
|
1756
1798
|
"type": "number",
|
|
1757
|
-
"description": "
|
|
1799
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
1758
1800
|
},
|
|
1759
1801
|
"filled": {
|
|
1760
1802
|
"type": "boolean",
|
|
@@ -1795,8 +1837,15 @@
|
|
|
1795
1837
|
"description": "Clip marks to the chart area."
|
|
1796
1838
|
},
|
|
1797
1839
|
"trendline": {
|
|
1798
|
-
"
|
|
1799
|
-
|
|
1840
|
+
"anyOf": [
|
|
1841
|
+
{
|
|
1842
|
+
"type": "boolean"
|
|
1843
|
+
},
|
|
1844
|
+
{
|
|
1845
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
1846
|
+
}
|
|
1847
|
+
],
|
|
1848
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
1800
1849
|
},
|
|
1801
1850
|
"dx": {
|
|
1802
1851
|
"type": "number",
|
|
@@ -2023,7 +2072,7 @@
|
|
|
2023
2072
|
},
|
|
2024
2073
|
"size": {
|
|
2025
2074
|
"type": "number",
|
|
2026
|
-
"description": "
|
|
2075
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
2027
2076
|
},
|
|
2028
2077
|
"filled": {
|
|
2029
2078
|
"type": "boolean",
|
|
@@ -2064,8 +2113,15 @@
|
|
|
2064
2113
|
"description": "Clip marks to the chart area."
|
|
2065
2114
|
},
|
|
2066
2115
|
"trendline": {
|
|
2067
|
-
"
|
|
2068
|
-
|
|
2116
|
+
"anyOf": [
|
|
2117
|
+
{
|
|
2118
|
+
"type": "boolean"
|
|
2119
|
+
},
|
|
2120
|
+
{
|
|
2121
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
2122
|
+
}
|
|
2123
|
+
],
|
|
2124
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
2069
2125
|
},
|
|
2070
2126
|
"dx": {
|
|
2071
2127
|
"type": "number",
|
|
@@ -2292,7 +2348,7 @@
|
|
|
2292
2348
|
},
|
|
2293
2349
|
"size": {
|
|
2294
2350
|
"type": "number",
|
|
2295
|
-
"description": "
|
|
2351
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
2296
2352
|
},
|
|
2297
2353
|
"filled": {
|
|
2298
2354
|
"type": "boolean",
|
|
@@ -2333,8 +2389,15 @@
|
|
|
2333
2389
|
"description": "Clip marks to the chart area."
|
|
2334
2390
|
},
|
|
2335
2391
|
"trendline": {
|
|
2336
|
-
"
|
|
2337
|
-
|
|
2392
|
+
"anyOf": [
|
|
2393
|
+
{
|
|
2394
|
+
"type": "boolean"
|
|
2395
|
+
},
|
|
2396
|
+
{
|
|
2397
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
2398
|
+
}
|
|
2399
|
+
],
|
|
2400
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
2338
2401
|
},
|
|
2339
2402
|
"dx": {
|
|
2340
2403
|
"type": "number",
|
|
@@ -2561,7 +2624,7 @@
|
|
|
2561
2624
|
},
|
|
2562
2625
|
"size": {
|
|
2563
2626
|
"type": "number",
|
|
2564
|
-
"description": "
|
|
2627
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
2565
2628
|
},
|
|
2566
2629
|
"filled": {
|
|
2567
2630
|
"type": "boolean",
|
|
@@ -2602,8 +2665,15 @@
|
|
|
2602
2665
|
"description": "Clip marks to the chart area."
|
|
2603
2666
|
},
|
|
2604
2667
|
"trendline": {
|
|
2605
|
-
"
|
|
2606
|
-
|
|
2668
|
+
"anyOf": [
|
|
2669
|
+
{
|
|
2670
|
+
"type": "boolean"
|
|
2671
|
+
},
|
|
2672
|
+
{
|
|
2673
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
2674
|
+
}
|
|
2675
|
+
],
|
|
2676
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
2607
2677
|
},
|
|
2608
2678
|
"dx": {
|
|
2609
2679
|
"type": "number",
|
|
@@ -2830,7 +2900,7 @@
|
|
|
2830
2900
|
},
|
|
2831
2901
|
"size": {
|
|
2832
2902
|
"type": "number",
|
|
2833
|
-
"description": "
|
|
2903
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
2834
2904
|
},
|
|
2835
2905
|
"filled": {
|
|
2836
2906
|
"type": "boolean",
|
|
@@ -2871,8 +2941,15 @@
|
|
|
2871
2941
|
"description": "Clip marks to the chart area."
|
|
2872
2942
|
},
|
|
2873
2943
|
"trendline": {
|
|
2874
|
-
"
|
|
2875
|
-
|
|
2944
|
+
"anyOf": [
|
|
2945
|
+
{
|
|
2946
|
+
"type": "boolean"
|
|
2947
|
+
},
|
|
2948
|
+
{
|
|
2949
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
2950
|
+
}
|
|
2951
|
+
],
|
|
2952
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
2876
2953
|
},
|
|
2877
2954
|
"dx": {
|
|
2878
2955
|
"type": "number",
|
|
@@ -3099,7 +3176,7 @@
|
|
|
3099
3176
|
},
|
|
3100
3177
|
"size": {
|
|
3101
3178
|
"type": "number",
|
|
3102
|
-
"description": "
|
|
3179
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
3103
3180
|
},
|
|
3104
3181
|
"filled": {
|
|
3105
3182
|
"type": "boolean",
|
|
@@ -3140,8 +3217,15 @@
|
|
|
3140
3217
|
"description": "Clip marks to the chart area."
|
|
3141
3218
|
},
|
|
3142
3219
|
"trendline": {
|
|
3143
|
-
"
|
|
3144
|
-
|
|
3220
|
+
"anyOf": [
|
|
3221
|
+
{
|
|
3222
|
+
"type": "boolean"
|
|
3223
|
+
},
|
|
3224
|
+
{
|
|
3225
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
3226
|
+
}
|
|
3227
|
+
],
|
|
3228
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
3145
3229
|
},
|
|
3146
3230
|
"dx": {
|
|
3147
3231
|
"type": "number",
|
|
@@ -3368,7 +3452,7 @@
|
|
|
3368
3452
|
},
|
|
3369
3453
|
"size": {
|
|
3370
3454
|
"type": "number",
|
|
3371
|
-
"description": "
|
|
3455
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
3372
3456
|
},
|
|
3373
3457
|
"filled": {
|
|
3374
3458
|
"type": "boolean",
|
|
@@ -3409,8 +3493,15 @@
|
|
|
3409
3493
|
"description": "Clip marks to the chart area."
|
|
3410
3494
|
},
|
|
3411
3495
|
"trendline": {
|
|
3412
|
-
"
|
|
3413
|
-
|
|
3496
|
+
"anyOf": [
|
|
3497
|
+
{
|
|
3498
|
+
"type": "boolean"
|
|
3499
|
+
},
|
|
3500
|
+
{
|
|
3501
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
3502
|
+
}
|
|
3503
|
+
],
|
|
3504
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
3414
3505
|
},
|
|
3415
3506
|
"dx": {
|
|
3416
3507
|
"type": "number",
|
|
@@ -3637,7 +3728,7 @@
|
|
|
3637
3728
|
},
|
|
3638
3729
|
"size": {
|
|
3639
3730
|
"type": "number",
|
|
3640
|
-
"description": "
|
|
3731
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
3641
3732
|
},
|
|
3642
3733
|
"filled": {
|
|
3643
3734
|
"type": "boolean",
|
|
@@ -3678,8 +3769,15 @@
|
|
|
3678
3769
|
"description": "Clip marks to the chart area."
|
|
3679
3770
|
},
|
|
3680
3771
|
"trendline": {
|
|
3681
|
-
"
|
|
3682
|
-
|
|
3772
|
+
"anyOf": [
|
|
3773
|
+
{
|
|
3774
|
+
"type": "boolean"
|
|
3775
|
+
},
|
|
3776
|
+
{
|
|
3777
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
3778
|
+
}
|
|
3779
|
+
],
|
|
3780
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
3683
3781
|
},
|
|
3684
3782
|
"dx": {
|
|
3685
3783
|
"type": "number",
|
|
@@ -3906,7 +4004,7 @@
|
|
|
3906
4004
|
},
|
|
3907
4005
|
"size": {
|
|
3908
4006
|
"type": "number",
|
|
3909
|
-
"description": "
|
|
4007
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
3910
4008
|
},
|
|
3911
4009
|
"filled": {
|
|
3912
4010
|
"type": "boolean",
|
|
@@ -3947,8 +4045,15 @@
|
|
|
3947
4045
|
"description": "Clip marks to the chart area."
|
|
3948
4046
|
},
|
|
3949
4047
|
"trendline": {
|
|
3950
|
-
"
|
|
3951
|
-
|
|
4048
|
+
"anyOf": [
|
|
4049
|
+
{
|
|
4050
|
+
"type": "boolean"
|
|
4051
|
+
},
|
|
4052
|
+
{
|
|
4053
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
4054
|
+
}
|
|
4055
|
+
],
|
|
4056
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
3952
4057
|
},
|
|
3953
4058
|
"dx": {
|
|
3954
4059
|
"type": "number",
|
|
@@ -4175,7 +4280,7 @@
|
|
|
4175
4280
|
},
|
|
4176
4281
|
"size": {
|
|
4177
4282
|
"type": "number",
|
|
4178
|
-
"description": "
|
|
4283
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
4179
4284
|
},
|
|
4180
4285
|
"filled": {
|
|
4181
4286
|
"type": "boolean",
|
|
@@ -4216,8 +4321,15 @@
|
|
|
4216
4321
|
"description": "Clip marks to the chart area."
|
|
4217
4322
|
},
|
|
4218
4323
|
"trendline": {
|
|
4219
|
-
"
|
|
4220
|
-
|
|
4324
|
+
"anyOf": [
|
|
4325
|
+
{
|
|
4326
|
+
"type": "boolean"
|
|
4327
|
+
},
|
|
4328
|
+
{
|
|
4329
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
4330
|
+
}
|
|
4331
|
+
],
|
|
4332
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
4221
4333
|
},
|
|
4222
4334
|
"dx": {
|
|
4223
4335
|
"type": "number",
|
|
@@ -4484,6 +4596,29 @@
|
|
|
4484
4596
|
"additionalProperties": false,
|
|
4485
4597
|
"description": "Radial gradient definition. Coordinates are in [0,1] normalized space relative to the mark's bounding box."
|
|
4486
4598
|
},
|
|
4599
|
+
"TrendlineConfig": {
|
|
4600
|
+
"type": "object",
|
|
4601
|
+
"properties": {
|
|
4602
|
+
"layer": {
|
|
4603
|
+
"type": "string",
|
|
4604
|
+
"enum": [
|
|
4605
|
+
"above",
|
|
4606
|
+
"below"
|
|
4607
|
+
],
|
|
4608
|
+
"description": "Stacking order relative to the point marks. `'below'` (default) draws the line behind the dots; `'above'` draws it on top so it stays visible over a dense cloud."
|
|
4609
|
+
},
|
|
4610
|
+
"stroke": {
|
|
4611
|
+
"type": "string",
|
|
4612
|
+
"description": "Stroke color. Defaults to the theme's high-contrast text color so the line reads on both light and dark grounds. Set an explicit CSS color to override."
|
|
4613
|
+
},
|
|
4614
|
+
"strokeWidth": {
|
|
4615
|
+
"type": "number",
|
|
4616
|
+
"description": "Stroke width in pixels. Defaults to 1.5. Over a dense cloud with `layer: 'above'`, a heavier line (e.g. 2.5) stays legible where the thin default disappears into the dots."
|
|
4617
|
+
}
|
|
4618
|
+
},
|
|
4619
|
+
"additionalProperties": false,
|
|
4620
|
+
"description": "Configuration for the scatter regression trend line. Passed as the object form of `MarkDef.trendline`."
|
|
4621
|
+
},
|
|
4487
4622
|
"ArcEncoding<DataRow>": {
|
|
4488
4623
|
"type": "object",
|
|
4489
4624
|
"properties": {
|
|
@@ -4518,7 +4653,7 @@
|
|
|
4518
4653
|
"$ref": "#/definitions/ValueDef"
|
|
4519
4654
|
}
|
|
4520
4655
|
],
|
|
4521
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
4656
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
4522
4657
|
},
|
|
4523
4658
|
"detail": {
|
|
4524
4659
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -4583,6 +4718,14 @@
|
|
|
4583
4718
|
"facet": {
|
|
4584
4719
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
4585
4720
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
4721
|
+
},
|
|
4722
|
+
"row": {
|
|
4723
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
4724
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
4725
|
+
},
|
|
4726
|
+
"column": {
|
|
4727
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
4728
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
4586
4729
|
}
|
|
4587
4730
|
},
|
|
4588
4731
|
"required": [
|
|
@@ -5092,12 +5235,13 @@
|
|
|
5092
5235
|
"type": "string",
|
|
5093
5236
|
"enum": [
|
|
5094
5237
|
"top",
|
|
5238
|
+
"top-left",
|
|
5095
5239
|
"right",
|
|
5096
5240
|
"bottom",
|
|
5097
5241
|
"bottom-right",
|
|
5098
5242
|
"inline"
|
|
5099
5243
|
],
|
|
5100
|
-
"description": "Legend position at a given breakpoint."
|
|
5244
|
+
"description": "Legend position at a given breakpoint. `'top-left'` is a map-only overlay position: the legend floats inside the map area's top-left corner (with its own backdrop) instead of reserving a block of figure height. Charts treat it as the default position."
|
|
5101
5245
|
},
|
|
5102
5246
|
"AnnotationOffset": {
|
|
5103
5247
|
"type": "object",
|
|
@@ -5889,6 +6033,10 @@
|
|
|
5889
6033
|
"color": {
|
|
5890
6034
|
"type": "string",
|
|
5891
6035
|
"description": "Text color (CSS color string)."
|
|
6036
|
+
},
|
|
6037
|
+
"maxLines": {
|
|
6038
|
+
"type": "number",
|
|
6039
|
+
"description": "Maximum number of lines this chrome text may wrap to. Additional lines are dropped and the last kept line is truncated with an ellipsis. Bounds the chrome's contribution to layout height at any container width. Applies whether the font size comes from the theme default or an explicit override. Caps height only, not horizontal overflow of a single unbreakable word."
|
|
5892
6040
|
}
|
|
5893
6041
|
},
|
|
5894
6042
|
"additionalProperties": false,
|
|
@@ -6941,7 +7089,7 @@
|
|
|
6941
7089
|
"update": {
|
|
6942
7090
|
"anyOf": [
|
|
6943
7091
|
{
|
|
6944
|
-
"$ref": "#/definitions/
|
|
7092
|
+
"$ref": "#/definitions/UpdatePhaseConfig"
|
|
6945
7093
|
},
|
|
6946
7094
|
{
|
|
6947
7095
|
"type": "boolean"
|
|
@@ -7022,6 +7170,36 @@
|
|
|
7022
7170
|
"additionalProperties": false,
|
|
7023
7171
|
"description": "Stagger configuration for sequential element reveal."
|
|
7024
7172
|
},
|
|
7173
|
+
"UpdatePhaseConfig": {
|
|
7174
|
+
"type": "object",
|
|
7175
|
+
"properties": {
|
|
7176
|
+
"duration": {
|
|
7177
|
+
"type": "number",
|
|
7178
|
+
"description": "Duration in ms. Default: 500 for enter."
|
|
7179
|
+
},
|
|
7180
|
+
"ease": {
|
|
7181
|
+
"$ref": "#/definitions/AnimationEase",
|
|
7182
|
+
"description": "Easing preset. Default: 'smooth'."
|
|
7183
|
+
},
|
|
7184
|
+
"stagger": {
|
|
7185
|
+
"anyOf": [
|
|
7186
|
+
{
|
|
7187
|
+
"$ref": "#/definitions/AnimationStagger"
|
|
7188
|
+
},
|
|
7189
|
+
{
|
|
7190
|
+
"type": "boolean"
|
|
7191
|
+
}
|
|
7192
|
+
],
|
|
7193
|
+
"description": "Stagger config. true = defaults, false = no stagger. Default: true for enter."
|
|
7194
|
+
},
|
|
7195
|
+
"maxMarks": {
|
|
7196
|
+
"type": "number",
|
|
7197
|
+
"description": "Maximum mark count that still runs a tweened data-update transition. Default: 500. Above the cap the chart swaps instantly instead, because per-frame SVG attribute writes on thousands of elements drop frames on low-end devices. Raise it deliberately when the audience is desktop-heavy and you have measured the frame budget."
|
|
7198
|
+
}
|
|
7199
|
+
},
|
|
7200
|
+
"additionalProperties": false,
|
|
7201
|
+
"description": "Data-update phase config. Adds `maxMarks` on top of the shared phase options; the cap is meaningless for enter/exit, which animate via CSS."
|
|
7202
|
+
},
|
|
7025
7203
|
"Display": {
|
|
7026
7204
|
"type": "string",
|
|
7027
7205
|
"enum": [
|
|
@@ -7183,7 +7361,7 @@
|
|
|
7183
7361
|
"$ref": "#/definitions/ValueDef"
|
|
7184
7362
|
}
|
|
7185
7363
|
],
|
|
7186
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
7364
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7187
7365
|
},
|
|
7188
7366
|
"detail": {
|
|
7189
7367
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7248,6 +7426,14 @@
|
|
|
7248
7426
|
"facet": {
|
|
7249
7427
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7250
7428
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
7429
|
+
},
|
|
7430
|
+
"row": {
|
|
7431
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7432
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
7433
|
+
},
|
|
7434
|
+
"column": {
|
|
7435
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7436
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7251
7437
|
}
|
|
7252
7438
|
},
|
|
7253
7439
|
"required": [
|
|
@@ -7294,7 +7480,7 @@
|
|
|
7294
7480
|
"$ref": "#/definitions/ValueDef"
|
|
7295
7481
|
}
|
|
7296
7482
|
],
|
|
7297
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
7483
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7298
7484
|
},
|
|
7299
7485
|
"detail": {
|
|
7300
7486
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7359,6 +7545,14 @@
|
|
|
7359
7545
|
"facet": {
|
|
7360
7546
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7361
7547
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
7548
|
+
},
|
|
7549
|
+
"row": {
|
|
7550
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7551
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
7552
|
+
},
|
|
7553
|
+
"column": {
|
|
7554
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7555
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7362
7556
|
}
|
|
7363
7557
|
},
|
|
7364
7558
|
"required": [
|
|
@@ -7405,7 +7599,7 @@
|
|
|
7405
7599
|
"$ref": "#/definitions/ValueDef"
|
|
7406
7600
|
}
|
|
7407
7601
|
],
|
|
7408
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
7602
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7409
7603
|
},
|
|
7410
7604
|
"detail": {
|
|
7411
7605
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7470,6 +7664,14 @@
|
|
|
7470
7664
|
"facet": {
|
|
7471
7665
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7472
7666
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
7667
|
+
},
|
|
7668
|
+
"row": {
|
|
7669
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7670
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
7671
|
+
},
|
|
7672
|
+
"column": {
|
|
7673
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7674
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7473
7675
|
}
|
|
7474
7676
|
},
|
|
7475
7677
|
"required": [
|
|
@@ -7516,7 +7718,7 @@
|
|
|
7516
7718
|
"$ref": "#/definitions/ValueDef"
|
|
7517
7719
|
}
|
|
7518
7720
|
],
|
|
7519
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
7721
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7520
7722
|
},
|
|
7521
7723
|
"detail": {
|
|
7522
7724
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7581,6 +7783,14 @@
|
|
|
7581
7783
|
"facet": {
|
|
7582
7784
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7583
7785
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
7786
|
+
},
|
|
7787
|
+
"row": {
|
|
7788
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7789
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
7790
|
+
},
|
|
7791
|
+
"column": {
|
|
7792
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7793
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7584
7794
|
}
|
|
7585
7795
|
},
|
|
7586
7796
|
"required": [
|
|
@@ -7627,7 +7837,7 @@
|
|
|
7627
7837
|
"$ref": "#/definitions/ValueDef"
|
|
7628
7838
|
}
|
|
7629
7839
|
],
|
|
7630
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
7840
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7631
7841
|
},
|
|
7632
7842
|
"detail": {
|
|
7633
7843
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7692,6 +7902,14 @@
|
|
|
7692
7902
|
"facet": {
|
|
7693
7903
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7694
7904
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
7905
|
+
},
|
|
7906
|
+
"row": {
|
|
7907
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7908
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
7909
|
+
},
|
|
7910
|
+
"column": {
|
|
7911
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7912
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7695
7913
|
}
|
|
7696
7914
|
},
|
|
7697
7915
|
"required": [
|
|
@@ -7738,7 +7956,7 @@
|
|
|
7738
7956
|
"$ref": "#/definitions/ValueDef"
|
|
7739
7957
|
}
|
|
7740
7958
|
],
|
|
7741
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
7959
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7742
7960
|
},
|
|
7743
7961
|
"detail": {
|
|
7744
7962
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7803,6 +8021,14 @@
|
|
|
7803
8021
|
"facet": {
|
|
7804
8022
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7805
8023
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8024
|
+
},
|
|
8025
|
+
"row": {
|
|
8026
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8027
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8028
|
+
},
|
|
8029
|
+
"column": {
|
|
8030
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8031
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7806
8032
|
}
|
|
7807
8033
|
},
|
|
7808
8034
|
"required": [
|
|
@@ -7849,7 +8075,7 @@
|
|
|
7849
8075
|
"$ref": "#/definitions/ValueDef"
|
|
7850
8076
|
}
|
|
7851
8077
|
],
|
|
7852
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8078
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7853
8079
|
},
|
|
7854
8080
|
"detail": {
|
|
7855
8081
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -7914,6 +8140,14 @@
|
|
|
7914
8140
|
"facet": {
|
|
7915
8141
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
7916
8142
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8143
|
+
},
|
|
8144
|
+
"row": {
|
|
8145
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8146
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8147
|
+
},
|
|
8148
|
+
"column": {
|
|
8149
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8150
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
7917
8151
|
}
|
|
7918
8152
|
},
|
|
7919
8153
|
"additionalProperties": false,
|
|
@@ -7956,7 +8190,7 @@
|
|
|
7956
8190
|
"$ref": "#/definitions/ValueDef"
|
|
7957
8191
|
}
|
|
7958
8192
|
],
|
|
7959
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8193
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
7960
8194
|
},
|
|
7961
8195
|
"detail": {
|
|
7962
8196
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8021,6 +8255,14 @@
|
|
|
8021
8255
|
"facet": {
|
|
8022
8256
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8023
8257
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8258
|
+
},
|
|
8259
|
+
"row": {
|
|
8260
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8261
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8262
|
+
},
|
|
8263
|
+
"column": {
|
|
8264
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8265
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8024
8266
|
}
|
|
8025
8267
|
},
|
|
8026
8268
|
"required": [
|
|
@@ -8064,7 +8306,7 @@
|
|
|
8064
8306
|
"$ref": "#/definitions/ValueDef"
|
|
8065
8307
|
}
|
|
8066
8308
|
],
|
|
8067
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8309
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8068
8310
|
},
|
|
8069
8311
|
"detail": {
|
|
8070
8312
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8129,6 +8371,14 @@
|
|
|
8129
8371
|
"facet": {
|
|
8130
8372
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8131
8373
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8374
|
+
},
|
|
8375
|
+
"row": {
|
|
8376
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8377
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8378
|
+
},
|
|
8379
|
+
"column": {
|
|
8380
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8381
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8132
8382
|
}
|
|
8133
8383
|
},
|
|
8134
8384
|
"required": [
|
|
@@ -8174,7 +8424,7 @@
|
|
|
8174
8424
|
"$ref": "#/definitions/ValueDef"
|
|
8175
8425
|
}
|
|
8176
8426
|
],
|
|
8177
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8427
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8178
8428
|
},
|
|
8179
8429
|
"detail": {
|
|
8180
8430
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8239,6 +8489,14 @@
|
|
|
8239
8489
|
"facet": {
|
|
8240
8490
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8241
8491
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8492
|
+
},
|
|
8493
|
+
"row": {
|
|
8494
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8495
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8496
|
+
},
|
|
8497
|
+
"column": {
|
|
8498
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8499
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8242
8500
|
}
|
|
8243
8501
|
},
|
|
8244
8502
|
"required": [
|
|
@@ -8284,7 +8542,7 @@
|
|
|
8284
8542
|
"$ref": "#/definitions/ValueDef"
|
|
8285
8543
|
}
|
|
8286
8544
|
],
|
|
8287
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8545
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8288
8546
|
},
|
|
8289
8547
|
"detail": {
|
|
8290
8548
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8349,6 +8607,14 @@
|
|
|
8349
8607
|
"facet": {
|
|
8350
8608
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8351
8609
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8610
|
+
},
|
|
8611
|
+
"row": {
|
|
8612
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8613
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8614
|
+
},
|
|
8615
|
+
"column": {
|
|
8616
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8617
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8352
8618
|
}
|
|
8353
8619
|
},
|
|
8354
8620
|
"required": [
|
|
@@ -8395,7 +8661,7 @@
|
|
|
8395
8661
|
"$ref": "#/definitions/ValueDef"
|
|
8396
8662
|
}
|
|
8397
8663
|
],
|
|
8398
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8664
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8399
8665
|
},
|
|
8400
8666
|
"detail": {
|
|
8401
8667
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8460,6 +8726,14 @@
|
|
|
8460
8726
|
"facet": {
|
|
8461
8727
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8462
8728
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8729
|
+
},
|
|
8730
|
+
"row": {
|
|
8731
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8732
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8733
|
+
},
|
|
8734
|
+
"column": {
|
|
8735
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8736
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8463
8737
|
}
|
|
8464
8738
|
},
|
|
8465
8739
|
"required": [
|
|
@@ -8506,7 +8780,7 @@
|
|
|
8506
8780
|
"$ref": "#/definitions/ValueDef"
|
|
8507
8781
|
}
|
|
8508
8782
|
],
|
|
8509
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8783
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8510
8784
|
},
|
|
8511
8785
|
"detail": {
|
|
8512
8786
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8571,6 +8845,14 @@
|
|
|
8571
8845
|
"facet": {
|
|
8572
8846
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8573
8847
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8848
|
+
},
|
|
8849
|
+
"row": {
|
|
8850
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8851
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8852
|
+
},
|
|
8853
|
+
"column": {
|
|
8854
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8855
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8574
8856
|
}
|
|
8575
8857
|
},
|
|
8576
8858
|
"additionalProperties": false,
|
|
@@ -8603,7 +8885,7 @@
|
|
|
8603
8885
|
"$ref": "#/definitions/ValueDef"
|
|
8604
8886
|
}
|
|
8605
8887
|
],
|
|
8606
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
8888
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8607
8889
|
},
|
|
8608
8890
|
"detail": {
|
|
8609
8891
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8668,6 +8950,14 @@
|
|
|
8668
8950
|
"facet": {
|
|
8669
8951
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8670
8952
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
8953
|
+
},
|
|
8954
|
+
"row": {
|
|
8955
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8956
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
8957
|
+
},
|
|
8958
|
+
"column": {
|
|
8959
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8960
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8671
8961
|
}
|
|
8672
8962
|
},
|
|
8673
8963
|
"required": [
|
|
@@ -8711,7 +9001,7 @@
|
|
|
8711
9001
|
"$ref": "#/definitions/ValueDef"
|
|
8712
9002
|
}
|
|
8713
9003
|
],
|
|
8714
|
-
"description": "Size channel. Used by point/bubble charts to scale
|
|
9004
|
+
"description": "Size channel. Used by point/bubble charts to scale dots by a quantitative field, area-proportionally (sqrt curve). The units are dot RADII in px: `scale.range` defaults to [3, 30] for scatter, and a bare `{ value }` constant expands to `mark.size`, also a radius. This differs from Vega-Lite, where point size is an area in px^2 -- VL-scale values (60-900) are rejected by validation with the conversion. Accepts a conditional definition to vary size based on data predicates."
|
|
8715
9005
|
},
|
|
8716
9006
|
"detail": {
|
|
8717
9007
|
"$ref": "#/definitions/EncodingChannel%3CDataRow%3E",
|
|
@@ -8776,6 +9066,14 @@
|
|
|
8776
9066
|
"facet": {
|
|
8777
9067
|
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
8778
9068
|
"description": "Facet channel: partitions data into a grid of small-multiple panels. Each unique value of the facet field produces one panel. Panels share scales by default; use `resolve: { scale: { y: 'independent' } }` for per-panel axes."
|
|
9069
|
+
},
|
|
9070
|
+
"row": {
|
|
9071
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
9072
|
+
"description": "Row facet channel: partitions data into vertically-stacked panels. Each unique value of the row field produces one panel, arranged in a single column. Shares the x-axis scale by default; y-axis is independent. Mutually exclusive with `facet` and `column`."
|
|
9073
|
+
},
|
|
9074
|
+
"column": {
|
|
9075
|
+
"$ref": "#/definitions/FacetChannel%3CDataRow%3E",
|
|
9076
|
+
"description": "Column facet channel: partitions data into side-by-side panels. Each unique value of the column field produces one panel, arranged in a single row. Shares the y-axis scale by default; x-axis is independent. Mutually exclusive with `facet` and `row`."
|
|
8779
9077
|
}
|
|
8780
9078
|
},
|
|
8781
9079
|
"required": [
|
|
@@ -8867,7 +9165,7 @@
|
|
|
8867
9165
|
"items": {
|
|
8868
9166
|
"$ref": "#/definitions/Annotation"
|
|
8869
9167
|
},
|
|
8870
|
-
"description": "Annotations
|
|
9168
|
+
"description": "Annotations for the layered chart. When present, these are the annotations rendered and available for editing. When absent, falls back to the first leaf layer's annotations. Annotations on second and later leaf layers are not rendered.\n\nFor edit persistence: the `data-annotation-index` stamped on each rendered annotation maps to this array (or the first leaf's if this is unset). Place annotations here for reliable index-based edit matching."
|
|
8871
9169
|
},
|
|
8872
9170
|
"labels": {
|
|
8873
9171
|
"$ref": "#/definitions/LabelSpec",
|
|
@@ -8902,7 +9200,7 @@
|
|
|
8902
9200
|
"items": {
|
|
8903
9201
|
"type": "string"
|
|
8904
9202
|
},
|
|
8905
|
-
"description": "
|
|
9203
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
8906
9204
|
},
|
|
8907
9205
|
"endpointLabels": {
|
|
8908
9206
|
"anyOf": [
|
|
@@ -9022,7 +9320,7 @@
|
|
|
9022
9320
|
},
|
|
9023
9321
|
"size": {
|
|
9024
9322
|
"type": "number",
|
|
9025
|
-
"description": "
|
|
9323
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
9026
9324
|
},
|
|
9027
9325
|
"filled": {
|
|
9028
9326
|
"type": "boolean",
|
|
@@ -9063,8 +9361,15 @@
|
|
|
9063
9361
|
"description": "Clip marks to the chart area."
|
|
9064
9362
|
},
|
|
9065
9363
|
"trendline": {
|
|
9066
|
-
"
|
|
9067
|
-
|
|
9364
|
+
"anyOf": [
|
|
9365
|
+
{
|
|
9366
|
+
"type": "boolean"
|
|
9367
|
+
},
|
|
9368
|
+
{
|
|
9369
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
9370
|
+
}
|
|
9371
|
+
],
|
|
9372
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
9068
9373
|
},
|
|
9069
9374
|
"dx": {
|
|
9070
9375
|
"type": "number",
|
|
@@ -9202,6 +9507,14 @@
|
|
|
9202
9507
|
"$ref": "#/definitions/Chrome",
|
|
9203
9508
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
9204
9509
|
},
|
|
9510
|
+
"chromeLayout": {
|
|
9511
|
+
"type": "string",
|
|
9512
|
+
"enum": [
|
|
9513
|
+
"subtract",
|
|
9514
|
+
"grow"
|
|
9515
|
+
],
|
|
9516
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
9517
|
+
},
|
|
9205
9518
|
"title": {
|
|
9206
9519
|
"anyOf": [
|
|
9207
9520
|
{
|
|
@@ -9310,7 +9623,7 @@
|
|
|
9310
9623
|
"items": {
|
|
9311
9624
|
"type": "string"
|
|
9312
9625
|
},
|
|
9313
|
-
"description": "Series names to hide from rendering
|
|
9626
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
9314
9627
|
},
|
|
9315
9628
|
"seriesStyles": {
|
|
9316
9629
|
"type": "object",
|
|
@@ -9471,7 +9784,7 @@
|
|
|
9471
9784
|
},
|
|
9472
9785
|
"size": {
|
|
9473
9786
|
"type": "number",
|
|
9474
|
-
"description": "
|
|
9787
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
9475
9788
|
},
|
|
9476
9789
|
"filled": {
|
|
9477
9790
|
"type": "boolean",
|
|
@@ -9512,8 +9825,15 @@
|
|
|
9512
9825
|
"description": "Clip marks to the chart area."
|
|
9513
9826
|
},
|
|
9514
9827
|
"trendline": {
|
|
9515
|
-
"
|
|
9516
|
-
|
|
9828
|
+
"anyOf": [
|
|
9829
|
+
{
|
|
9830
|
+
"type": "boolean"
|
|
9831
|
+
},
|
|
9832
|
+
{
|
|
9833
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
9834
|
+
}
|
|
9835
|
+
],
|
|
9836
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
9517
9837
|
},
|
|
9518
9838
|
"dx": {
|
|
9519
9839
|
"type": "number",
|
|
@@ -9651,6 +9971,14 @@
|
|
|
9651
9971
|
"$ref": "#/definitions/Chrome",
|
|
9652
9972
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
9653
9973
|
},
|
|
9974
|
+
"chromeLayout": {
|
|
9975
|
+
"type": "string",
|
|
9976
|
+
"enum": [
|
|
9977
|
+
"subtract",
|
|
9978
|
+
"grow"
|
|
9979
|
+
],
|
|
9980
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
9981
|
+
},
|
|
9654
9982
|
"title": {
|
|
9655
9983
|
"anyOf": [
|
|
9656
9984
|
{
|
|
@@ -9759,7 +10087,7 @@
|
|
|
9759
10087
|
"items": {
|
|
9760
10088
|
"type": "string"
|
|
9761
10089
|
},
|
|
9762
|
-
"description": "Series names to hide from rendering
|
|
10090
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
9763
10091
|
},
|
|
9764
10092
|
"seriesStyles": {
|
|
9765
10093
|
"type": "object",
|
|
@@ -9920,7 +10248,7 @@
|
|
|
9920
10248
|
},
|
|
9921
10249
|
"size": {
|
|
9922
10250
|
"type": "number",
|
|
9923
|
-
"description": "
|
|
10251
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
9924
10252
|
},
|
|
9925
10253
|
"filled": {
|
|
9926
10254
|
"type": "boolean",
|
|
@@ -9961,8 +10289,15 @@
|
|
|
9961
10289
|
"description": "Clip marks to the chart area."
|
|
9962
10290
|
},
|
|
9963
10291
|
"trendline": {
|
|
9964
|
-
"
|
|
9965
|
-
|
|
10292
|
+
"anyOf": [
|
|
10293
|
+
{
|
|
10294
|
+
"type": "boolean"
|
|
10295
|
+
},
|
|
10296
|
+
{
|
|
10297
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
10298
|
+
}
|
|
10299
|
+
],
|
|
10300
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
9966
10301
|
},
|
|
9967
10302
|
"dx": {
|
|
9968
10303
|
"type": "number",
|
|
@@ -10100,6 +10435,14 @@
|
|
|
10100
10435
|
"$ref": "#/definitions/Chrome",
|
|
10101
10436
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
10102
10437
|
},
|
|
10438
|
+
"chromeLayout": {
|
|
10439
|
+
"type": "string",
|
|
10440
|
+
"enum": [
|
|
10441
|
+
"subtract",
|
|
10442
|
+
"grow"
|
|
10443
|
+
],
|
|
10444
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
10445
|
+
},
|
|
10103
10446
|
"title": {
|
|
10104
10447
|
"anyOf": [
|
|
10105
10448
|
{
|
|
@@ -10208,7 +10551,7 @@
|
|
|
10208
10551
|
"items": {
|
|
10209
10552
|
"type": "string"
|
|
10210
10553
|
},
|
|
10211
|
-
"description": "Series names to hide from rendering
|
|
10554
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
10212
10555
|
},
|
|
10213
10556
|
"seriesStyles": {
|
|
10214
10557
|
"type": "object",
|
|
@@ -10369,7 +10712,7 @@
|
|
|
10369
10712
|
},
|
|
10370
10713
|
"size": {
|
|
10371
10714
|
"type": "number",
|
|
10372
|
-
"description": "
|
|
10715
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
10373
10716
|
},
|
|
10374
10717
|
"filled": {
|
|
10375
10718
|
"type": "boolean",
|
|
@@ -10410,8 +10753,15 @@
|
|
|
10410
10753
|
"description": "Clip marks to the chart area."
|
|
10411
10754
|
},
|
|
10412
10755
|
"trendline": {
|
|
10413
|
-
"
|
|
10414
|
-
|
|
10756
|
+
"anyOf": [
|
|
10757
|
+
{
|
|
10758
|
+
"type": "boolean"
|
|
10759
|
+
},
|
|
10760
|
+
{
|
|
10761
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
10762
|
+
}
|
|
10763
|
+
],
|
|
10764
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
10415
10765
|
},
|
|
10416
10766
|
"dx": {
|
|
10417
10767
|
"type": "number",
|
|
@@ -10549,6 +10899,14 @@
|
|
|
10549
10899
|
"$ref": "#/definitions/Chrome",
|
|
10550
10900
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
10551
10901
|
},
|
|
10902
|
+
"chromeLayout": {
|
|
10903
|
+
"type": "string",
|
|
10904
|
+
"enum": [
|
|
10905
|
+
"subtract",
|
|
10906
|
+
"grow"
|
|
10907
|
+
],
|
|
10908
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
10909
|
+
},
|
|
10552
10910
|
"title": {
|
|
10553
10911
|
"anyOf": [
|
|
10554
10912
|
{
|
|
@@ -10657,7 +11015,7 @@
|
|
|
10657
11015
|
"items": {
|
|
10658
11016
|
"type": "string"
|
|
10659
11017
|
},
|
|
10660
|
-
"description": "Series names to hide from rendering
|
|
11018
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
10661
11019
|
},
|
|
10662
11020
|
"seriesStyles": {
|
|
10663
11021
|
"type": "object",
|
|
@@ -10818,7 +11176,7 @@
|
|
|
10818
11176
|
},
|
|
10819
11177
|
"size": {
|
|
10820
11178
|
"type": "number",
|
|
10821
|
-
"description": "
|
|
11179
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
10822
11180
|
},
|
|
10823
11181
|
"filled": {
|
|
10824
11182
|
"type": "boolean",
|
|
@@ -10859,8 +11217,15 @@
|
|
|
10859
11217
|
"description": "Clip marks to the chart area."
|
|
10860
11218
|
},
|
|
10861
11219
|
"trendline": {
|
|
10862
|
-
"
|
|
10863
|
-
|
|
11220
|
+
"anyOf": [
|
|
11221
|
+
{
|
|
11222
|
+
"type": "boolean"
|
|
11223
|
+
},
|
|
11224
|
+
{
|
|
11225
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
11226
|
+
}
|
|
11227
|
+
],
|
|
11228
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
10864
11229
|
},
|
|
10865
11230
|
"dx": {
|
|
10866
11231
|
"type": "number",
|
|
@@ -10998,6 +11363,14 @@
|
|
|
10998
11363
|
"$ref": "#/definitions/Chrome",
|
|
10999
11364
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
11000
11365
|
},
|
|
11366
|
+
"chromeLayout": {
|
|
11367
|
+
"type": "string",
|
|
11368
|
+
"enum": [
|
|
11369
|
+
"subtract",
|
|
11370
|
+
"grow"
|
|
11371
|
+
],
|
|
11372
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
11373
|
+
},
|
|
11001
11374
|
"title": {
|
|
11002
11375
|
"anyOf": [
|
|
11003
11376
|
{
|
|
@@ -11106,7 +11479,7 @@
|
|
|
11106
11479
|
"items": {
|
|
11107
11480
|
"type": "string"
|
|
11108
11481
|
},
|
|
11109
|
-
"description": "Series names to hide from rendering
|
|
11482
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
11110
11483
|
},
|
|
11111
11484
|
"seriesStyles": {
|
|
11112
11485
|
"type": "object",
|
|
@@ -11267,7 +11640,7 @@
|
|
|
11267
11640
|
},
|
|
11268
11641
|
"size": {
|
|
11269
11642
|
"type": "number",
|
|
11270
|
-
"description": "
|
|
11643
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
11271
11644
|
},
|
|
11272
11645
|
"filled": {
|
|
11273
11646
|
"type": "boolean",
|
|
@@ -11308,8 +11681,15 @@
|
|
|
11308
11681
|
"description": "Clip marks to the chart area."
|
|
11309
11682
|
},
|
|
11310
11683
|
"trendline": {
|
|
11311
|
-
"
|
|
11312
|
-
|
|
11684
|
+
"anyOf": [
|
|
11685
|
+
{
|
|
11686
|
+
"type": "boolean"
|
|
11687
|
+
},
|
|
11688
|
+
{
|
|
11689
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
11690
|
+
}
|
|
11691
|
+
],
|
|
11692
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
11313
11693
|
},
|
|
11314
11694
|
"dx": {
|
|
11315
11695
|
"type": "number",
|
|
@@ -11447,6 +11827,14 @@
|
|
|
11447
11827
|
"$ref": "#/definitions/Chrome",
|
|
11448
11828
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
11449
11829
|
},
|
|
11830
|
+
"chromeLayout": {
|
|
11831
|
+
"type": "string",
|
|
11832
|
+
"enum": [
|
|
11833
|
+
"subtract",
|
|
11834
|
+
"grow"
|
|
11835
|
+
],
|
|
11836
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
11837
|
+
},
|
|
11450
11838
|
"title": {
|
|
11451
11839
|
"anyOf": [
|
|
11452
11840
|
{
|
|
@@ -11555,7 +11943,7 @@
|
|
|
11555
11943
|
"items": {
|
|
11556
11944
|
"type": "string"
|
|
11557
11945
|
},
|
|
11558
|
-
"description": "Series names to hide from rendering
|
|
11946
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
11559
11947
|
},
|
|
11560
11948
|
"seriesStyles": {
|
|
11561
11949
|
"type": "object",
|
|
@@ -11716,7 +12104,7 @@
|
|
|
11716
12104
|
},
|
|
11717
12105
|
"size": {
|
|
11718
12106
|
"type": "number",
|
|
11719
|
-
"description": "
|
|
12107
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
11720
12108
|
},
|
|
11721
12109
|
"filled": {
|
|
11722
12110
|
"type": "boolean",
|
|
@@ -11757,8 +12145,15 @@
|
|
|
11757
12145
|
"description": "Clip marks to the chart area."
|
|
11758
12146
|
},
|
|
11759
12147
|
"trendline": {
|
|
11760
|
-
"
|
|
11761
|
-
|
|
12148
|
+
"anyOf": [
|
|
12149
|
+
{
|
|
12150
|
+
"type": "boolean"
|
|
12151
|
+
},
|
|
12152
|
+
{
|
|
12153
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
12154
|
+
}
|
|
12155
|
+
],
|
|
12156
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
11762
12157
|
},
|
|
11763
12158
|
"dx": {
|
|
11764
12159
|
"type": "number",
|
|
@@ -11896,6 +12291,14 @@
|
|
|
11896
12291
|
"$ref": "#/definitions/Chrome",
|
|
11897
12292
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
11898
12293
|
},
|
|
12294
|
+
"chromeLayout": {
|
|
12295
|
+
"type": "string",
|
|
12296
|
+
"enum": [
|
|
12297
|
+
"subtract",
|
|
12298
|
+
"grow"
|
|
12299
|
+
],
|
|
12300
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
12301
|
+
},
|
|
11899
12302
|
"title": {
|
|
11900
12303
|
"anyOf": [
|
|
11901
12304
|
{
|
|
@@ -12004,7 +12407,7 @@
|
|
|
12004
12407
|
"items": {
|
|
12005
12408
|
"type": "string"
|
|
12006
12409
|
},
|
|
12007
|
-
"description": "Series names to hide from rendering
|
|
12410
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
12008
12411
|
},
|
|
12009
12412
|
"seriesStyles": {
|
|
12010
12413
|
"type": "object",
|
|
@@ -12165,7 +12568,7 @@
|
|
|
12165
12568
|
},
|
|
12166
12569
|
"size": {
|
|
12167
12570
|
"type": "number",
|
|
12168
|
-
"description": "
|
|
12571
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
12169
12572
|
},
|
|
12170
12573
|
"filled": {
|
|
12171
12574
|
"type": "boolean",
|
|
@@ -12206,8 +12609,15 @@
|
|
|
12206
12609
|
"description": "Clip marks to the chart area."
|
|
12207
12610
|
},
|
|
12208
12611
|
"trendline": {
|
|
12209
|
-
"
|
|
12210
|
-
|
|
12612
|
+
"anyOf": [
|
|
12613
|
+
{
|
|
12614
|
+
"type": "boolean"
|
|
12615
|
+
},
|
|
12616
|
+
{
|
|
12617
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
12618
|
+
}
|
|
12619
|
+
],
|
|
12620
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
12211
12621
|
},
|
|
12212
12622
|
"dx": {
|
|
12213
12623
|
"type": "number",
|
|
@@ -12345,6 +12755,14 @@
|
|
|
12345
12755
|
"$ref": "#/definitions/Chrome",
|
|
12346
12756
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
12347
12757
|
},
|
|
12758
|
+
"chromeLayout": {
|
|
12759
|
+
"type": "string",
|
|
12760
|
+
"enum": [
|
|
12761
|
+
"subtract",
|
|
12762
|
+
"grow"
|
|
12763
|
+
],
|
|
12764
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
12765
|
+
},
|
|
12348
12766
|
"title": {
|
|
12349
12767
|
"anyOf": [
|
|
12350
12768
|
{
|
|
@@ -12453,7 +12871,7 @@
|
|
|
12453
12871
|
"items": {
|
|
12454
12872
|
"type": "string"
|
|
12455
12873
|
},
|
|
12456
|
-
"description": "Series names to hide from rendering
|
|
12874
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
12457
12875
|
},
|
|
12458
12876
|
"seriesStyles": {
|
|
12459
12877
|
"type": "object",
|
|
@@ -12614,7 +13032,7 @@
|
|
|
12614
13032
|
},
|
|
12615
13033
|
"size": {
|
|
12616
13034
|
"type": "number",
|
|
12617
|
-
"description": "
|
|
13035
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
12618
13036
|
},
|
|
12619
13037
|
"filled": {
|
|
12620
13038
|
"type": "boolean",
|
|
@@ -12655,8 +13073,15 @@
|
|
|
12655
13073
|
"description": "Clip marks to the chart area."
|
|
12656
13074
|
},
|
|
12657
13075
|
"trendline": {
|
|
12658
|
-
"
|
|
12659
|
-
|
|
13076
|
+
"anyOf": [
|
|
13077
|
+
{
|
|
13078
|
+
"type": "boolean"
|
|
13079
|
+
},
|
|
13080
|
+
{
|
|
13081
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
13082
|
+
}
|
|
13083
|
+
],
|
|
13084
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
12660
13085
|
},
|
|
12661
13086
|
"dx": {
|
|
12662
13087
|
"type": "number",
|
|
@@ -12794,6 +13219,14 @@
|
|
|
12794
13219
|
"$ref": "#/definitions/Chrome",
|
|
12795
13220
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
12796
13221
|
},
|
|
13222
|
+
"chromeLayout": {
|
|
13223
|
+
"type": "string",
|
|
13224
|
+
"enum": [
|
|
13225
|
+
"subtract",
|
|
13226
|
+
"grow"
|
|
13227
|
+
],
|
|
13228
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
13229
|
+
},
|
|
12797
13230
|
"title": {
|
|
12798
13231
|
"anyOf": [
|
|
12799
13232
|
{
|
|
@@ -12902,7 +13335,7 @@
|
|
|
12902
13335
|
"items": {
|
|
12903
13336
|
"type": "string"
|
|
12904
13337
|
},
|
|
12905
|
-
"description": "Series names to hide from rendering
|
|
13338
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
12906
13339
|
},
|
|
12907
13340
|
"seriesStyles": {
|
|
12908
13341
|
"type": "object",
|
|
@@ -13063,7 +13496,7 @@
|
|
|
13063
13496
|
},
|
|
13064
13497
|
"size": {
|
|
13065
13498
|
"type": "number",
|
|
13066
|
-
"description": "
|
|
13499
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
13067
13500
|
},
|
|
13068
13501
|
"filled": {
|
|
13069
13502
|
"type": "boolean",
|
|
@@ -13104,8 +13537,15 @@
|
|
|
13104
13537
|
"description": "Clip marks to the chart area."
|
|
13105
13538
|
},
|
|
13106
13539
|
"trendline": {
|
|
13107
|
-
"
|
|
13108
|
-
|
|
13540
|
+
"anyOf": [
|
|
13541
|
+
{
|
|
13542
|
+
"type": "boolean"
|
|
13543
|
+
},
|
|
13544
|
+
{
|
|
13545
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
13546
|
+
}
|
|
13547
|
+
],
|
|
13548
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
13109
13549
|
},
|
|
13110
13550
|
"dx": {
|
|
13111
13551
|
"type": "number",
|
|
@@ -13243,6 +13683,14 @@
|
|
|
13243
13683
|
"$ref": "#/definitions/Chrome",
|
|
13244
13684
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
13245
13685
|
},
|
|
13686
|
+
"chromeLayout": {
|
|
13687
|
+
"type": "string",
|
|
13688
|
+
"enum": [
|
|
13689
|
+
"subtract",
|
|
13690
|
+
"grow"
|
|
13691
|
+
],
|
|
13692
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
13693
|
+
},
|
|
13246
13694
|
"title": {
|
|
13247
13695
|
"anyOf": [
|
|
13248
13696
|
{
|
|
@@ -13351,7 +13799,7 @@
|
|
|
13351
13799
|
"items": {
|
|
13352
13800
|
"type": "string"
|
|
13353
13801
|
},
|
|
13354
|
-
"description": "Series names to hide from rendering
|
|
13802
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
13355
13803
|
},
|
|
13356
13804
|
"seriesStyles": {
|
|
13357
13805
|
"type": "object",
|
|
@@ -13512,7 +13960,7 @@
|
|
|
13512
13960
|
},
|
|
13513
13961
|
"size": {
|
|
13514
13962
|
"type": "number",
|
|
13515
|
-
"description": "
|
|
13963
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
13516
13964
|
},
|
|
13517
13965
|
"filled": {
|
|
13518
13966
|
"type": "boolean",
|
|
@@ -13553,8 +14001,15 @@
|
|
|
13553
14001
|
"description": "Clip marks to the chart area."
|
|
13554
14002
|
},
|
|
13555
14003
|
"trendline": {
|
|
13556
|
-
"
|
|
13557
|
-
|
|
14004
|
+
"anyOf": [
|
|
14005
|
+
{
|
|
14006
|
+
"type": "boolean"
|
|
14007
|
+
},
|
|
14008
|
+
{
|
|
14009
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
14010
|
+
}
|
|
14011
|
+
],
|
|
14012
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
13558
14013
|
},
|
|
13559
14014
|
"dx": {
|
|
13560
14015
|
"type": "number",
|
|
@@ -13692,6 +14147,14 @@
|
|
|
13692
14147
|
"$ref": "#/definitions/Chrome",
|
|
13693
14148
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
13694
14149
|
},
|
|
14150
|
+
"chromeLayout": {
|
|
14151
|
+
"type": "string",
|
|
14152
|
+
"enum": [
|
|
14153
|
+
"subtract",
|
|
14154
|
+
"grow"
|
|
14155
|
+
],
|
|
14156
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
14157
|
+
},
|
|
13695
14158
|
"title": {
|
|
13696
14159
|
"anyOf": [
|
|
13697
14160
|
{
|
|
@@ -13800,7 +14263,7 @@
|
|
|
13800
14263
|
"items": {
|
|
13801
14264
|
"type": "string"
|
|
13802
14265
|
},
|
|
13803
|
-
"description": "Series names to hide from rendering
|
|
14266
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
13804
14267
|
},
|
|
13805
14268
|
"seriesStyles": {
|
|
13806
14269
|
"type": "object",
|
|
@@ -13961,7 +14424,7 @@
|
|
|
13961
14424
|
},
|
|
13962
14425
|
"size": {
|
|
13963
14426
|
"type": "number",
|
|
13964
|
-
"description": "
|
|
14427
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
13965
14428
|
},
|
|
13966
14429
|
"filled": {
|
|
13967
14430
|
"type": "boolean",
|
|
@@ -14002,8 +14465,15 @@
|
|
|
14002
14465
|
"description": "Clip marks to the chart area."
|
|
14003
14466
|
},
|
|
14004
14467
|
"trendline": {
|
|
14005
|
-
"
|
|
14006
|
-
|
|
14468
|
+
"anyOf": [
|
|
14469
|
+
{
|
|
14470
|
+
"type": "boolean"
|
|
14471
|
+
},
|
|
14472
|
+
{
|
|
14473
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
14474
|
+
}
|
|
14475
|
+
],
|
|
14476
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
14007
14477
|
},
|
|
14008
14478
|
"dx": {
|
|
14009
14479
|
"type": "number",
|
|
@@ -14141,6 +14611,14 @@
|
|
|
14141
14611
|
"$ref": "#/definitions/Chrome",
|
|
14142
14612
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
14143
14613
|
},
|
|
14614
|
+
"chromeLayout": {
|
|
14615
|
+
"type": "string",
|
|
14616
|
+
"enum": [
|
|
14617
|
+
"subtract",
|
|
14618
|
+
"grow"
|
|
14619
|
+
],
|
|
14620
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
14621
|
+
},
|
|
14144
14622
|
"title": {
|
|
14145
14623
|
"anyOf": [
|
|
14146
14624
|
{
|
|
@@ -14249,7 +14727,7 @@
|
|
|
14249
14727
|
"items": {
|
|
14250
14728
|
"type": "string"
|
|
14251
14729
|
},
|
|
14252
|
-
"description": "Series names to hide from rendering
|
|
14730
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
14253
14731
|
},
|
|
14254
14732
|
"seriesStyles": {
|
|
14255
14733
|
"type": "object",
|
|
@@ -14410,7 +14888,7 @@
|
|
|
14410
14888
|
},
|
|
14411
14889
|
"size": {
|
|
14412
14890
|
"type": "number",
|
|
14413
|
-
"description": "
|
|
14891
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
14414
14892
|
},
|
|
14415
14893
|
"filled": {
|
|
14416
14894
|
"type": "boolean",
|
|
@@ -14451,8 +14929,15 @@
|
|
|
14451
14929
|
"description": "Clip marks to the chart area."
|
|
14452
14930
|
},
|
|
14453
14931
|
"trendline": {
|
|
14454
|
-
"
|
|
14455
|
-
|
|
14932
|
+
"anyOf": [
|
|
14933
|
+
{
|
|
14934
|
+
"type": "boolean"
|
|
14935
|
+
},
|
|
14936
|
+
{
|
|
14937
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
14938
|
+
}
|
|
14939
|
+
],
|
|
14940
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
14456
14941
|
},
|
|
14457
14942
|
"dx": {
|
|
14458
14943
|
"type": "number",
|
|
@@ -14590,6 +15075,14 @@
|
|
|
14590
15075
|
"$ref": "#/definitions/Chrome",
|
|
14591
15076
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
14592
15077
|
},
|
|
15078
|
+
"chromeLayout": {
|
|
15079
|
+
"type": "string",
|
|
15080
|
+
"enum": [
|
|
15081
|
+
"subtract",
|
|
15082
|
+
"grow"
|
|
15083
|
+
],
|
|
15084
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
15085
|
+
},
|
|
14593
15086
|
"title": {
|
|
14594
15087
|
"anyOf": [
|
|
14595
15088
|
{
|
|
@@ -14698,7 +15191,7 @@
|
|
|
14698
15191
|
"items": {
|
|
14699
15192
|
"type": "string"
|
|
14700
15193
|
},
|
|
14701
|
-
"description": "Series names to hide from rendering
|
|
15194
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
14702
15195
|
},
|
|
14703
15196
|
"seriesStyles": {
|
|
14704
15197
|
"type": "object",
|
|
@@ -14859,7 +15352,7 @@
|
|
|
14859
15352
|
},
|
|
14860
15353
|
"size": {
|
|
14861
15354
|
"type": "number",
|
|
14862
|
-
"description": "
|
|
15355
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
14863
15356
|
},
|
|
14864
15357
|
"filled": {
|
|
14865
15358
|
"type": "boolean",
|
|
@@ -14900,8 +15393,15 @@
|
|
|
14900
15393
|
"description": "Clip marks to the chart area."
|
|
14901
15394
|
},
|
|
14902
15395
|
"trendline": {
|
|
14903
|
-
"
|
|
14904
|
-
|
|
15396
|
+
"anyOf": [
|
|
15397
|
+
{
|
|
15398
|
+
"type": "boolean"
|
|
15399
|
+
},
|
|
15400
|
+
{
|
|
15401
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
15402
|
+
}
|
|
15403
|
+
],
|
|
15404
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
14905
15405
|
},
|
|
14906
15406
|
"dx": {
|
|
14907
15407
|
"type": "number",
|
|
@@ -15039,6 +15539,14 @@
|
|
|
15039
15539
|
"$ref": "#/definitions/Chrome",
|
|
15040
15540
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
15041
15541
|
},
|
|
15542
|
+
"chromeLayout": {
|
|
15543
|
+
"type": "string",
|
|
15544
|
+
"enum": [
|
|
15545
|
+
"subtract",
|
|
15546
|
+
"grow"
|
|
15547
|
+
],
|
|
15548
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
15549
|
+
},
|
|
15042
15550
|
"title": {
|
|
15043
15551
|
"anyOf": [
|
|
15044
15552
|
{
|
|
@@ -15147,7 +15655,7 @@
|
|
|
15147
15655
|
"items": {
|
|
15148
15656
|
"type": "string"
|
|
15149
15657
|
},
|
|
15150
|
-
"description": "Series names to hide from rendering
|
|
15658
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
15151
15659
|
},
|
|
15152
15660
|
"seriesStyles": {
|
|
15153
15661
|
"type": "object",
|
|
@@ -15308,7 +15816,7 @@
|
|
|
15308
15816
|
},
|
|
15309
15817
|
"size": {
|
|
15310
15818
|
"type": "number",
|
|
15311
|
-
"description": "
|
|
15819
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
15312
15820
|
},
|
|
15313
15821
|
"filled": {
|
|
15314
15822
|
"type": "boolean",
|
|
@@ -15349,8 +15857,15 @@
|
|
|
15349
15857
|
"description": "Clip marks to the chart area."
|
|
15350
15858
|
},
|
|
15351
15859
|
"trendline": {
|
|
15352
|
-
"
|
|
15353
|
-
|
|
15860
|
+
"anyOf": [
|
|
15861
|
+
{
|
|
15862
|
+
"type": "boolean"
|
|
15863
|
+
},
|
|
15864
|
+
{
|
|
15865
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
15866
|
+
}
|
|
15867
|
+
],
|
|
15868
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
15354
15869
|
},
|
|
15355
15870
|
"dx": {
|
|
15356
15871
|
"type": "number",
|
|
@@ -15488,6 +16003,14 @@
|
|
|
15488
16003
|
"$ref": "#/definitions/Chrome",
|
|
15489
16004
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
15490
16005
|
},
|
|
16006
|
+
"chromeLayout": {
|
|
16007
|
+
"type": "string",
|
|
16008
|
+
"enum": [
|
|
16009
|
+
"subtract",
|
|
16010
|
+
"grow"
|
|
16011
|
+
],
|
|
16012
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
16013
|
+
},
|
|
15491
16014
|
"title": {
|
|
15492
16015
|
"anyOf": [
|
|
15493
16016
|
{
|
|
@@ -15596,7 +16119,7 @@
|
|
|
15596
16119
|
"items": {
|
|
15597
16120
|
"type": "string"
|
|
15598
16121
|
},
|
|
15599
|
-
"description": "Series names to hide from rendering
|
|
16122
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
15600
16123
|
},
|
|
15601
16124
|
"seriesStyles": {
|
|
15602
16125
|
"type": "object",
|
|
@@ -15757,7 +16280,7 @@
|
|
|
15757
16280
|
},
|
|
15758
16281
|
"size": {
|
|
15759
16282
|
"type": "number",
|
|
15760
|
-
"description": "
|
|
16283
|
+
"description": "Bar/column marks: fixed bar thickness in pixels. When set, bars are this height (horizontal) or width (vertical), centered within the band.\n\nPoint marks: the dot RADIUS in pixels (default 5, typical 2-12). This is NOT Vega-Lite's point `size`, which is an area in px^2 -- a VL size of 110 corresponds to `size: 6` here (r = sqrt(area / pi)). Validation rejects values above 50 with the conversion."
|
|
15761
16284
|
},
|
|
15762
16285
|
"filled": {
|
|
15763
16286
|
"type": "boolean",
|
|
@@ -15798,8 +16321,15 @@
|
|
|
15798
16321
|
"description": "Clip marks to the chart area."
|
|
15799
16322
|
},
|
|
15800
16323
|
"trendline": {
|
|
15801
|
-
"
|
|
15802
|
-
|
|
16324
|
+
"anyOf": [
|
|
16325
|
+
{
|
|
16326
|
+
"type": "boolean"
|
|
16327
|
+
},
|
|
16328
|
+
{
|
|
16329
|
+
"$ref": "#/definitions/TrendlineConfig"
|
|
16330
|
+
}
|
|
16331
|
+
],
|
|
16332
|
+
"description": "Overlay a least-squares regression line on scatter (point) marks. Defaults to true. Set `mark: { type: 'point', trendline: false }` to suppress it when the chart already carries its own reference line (e.g. a manual x=y diagonal in a separate layer), which would otherwise produce two competing diagonals.\n\nPass an object to control stacking order: the line renders `below` the points by default, but a dense scatter (thousands of overlapping dots) fully occludes a line drawn underneath, so `{ layer: 'above' }` lifts the reference line over the cloud."
|
|
15803
16333
|
},
|
|
15804
16334
|
"dx": {
|
|
15805
16335
|
"type": "number",
|
|
@@ -15937,6 +16467,14 @@
|
|
|
15937
16467
|
"$ref": "#/definitions/Chrome",
|
|
15938
16468
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
15939
16469
|
},
|
|
16470
|
+
"chromeLayout": {
|
|
16471
|
+
"type": "string",
|
|
16472
|
+
"enum": [
|
|
16473
|
+
"subtract",
|
|
16474
|
+
"grow"
|
|
16475
|
+
],
|
|
16476
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
16477
|
+
},
|
|
15940
16478
|
"title": {
|
|
15941
16479
|
"anyOf": [
|
|
15942
16480
|
{
|
|
@@ -16045,7 +16583,7 @@
|
|
|
16045
16583
|
"items": {
|
|
16046
16584
|
"type": "string"
|
|
16047
16585
|
},
|
|
16048
|
-
"description": "Series names to hide from rendering
|
|
16586
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
16049
16587
|
},
|
|
16050
16588
|
"seriesStyles": {
|
|
16051
16589
|
"type": "object",
|
|
@@ -16198,7 +16736,7 @@
|
|
|
16198
16736
|
"items": {
|
|
16199
16737
|
"$ref": "#/definitions/Annotation"
|
|
16200
16738
|
},
|
|
16201
|
-
"description": "Annotations
|
|
16739
|
+
"description": "Annotations for the layered chart. When present, these are the annotations rendered and available for editing. When absent, falls back to the first leaf layer's annotations. Annotations on second and later leaf layers are not rendered.\n\nFor edit persistence: the `data-annotation-index` stamped on each rendered annotation maps to this array (or the first leaf's if this is unset). Place annotations here for reliable index-based edit matching."
|
|
16202
16740
|
},
|
|
16203
16741
|
"labels": {
|
|
16204
16742
|
"$ref": "#/definitions/LabelSpec",
|
|
@@ -16233,7 +16771,7 @@
|
|
|
16233
16771
|
"items": {
|
|
16234
16772
|
"type": "string"
|
|
16235
16773
|
},
|
|
16236
|
-
"description": "
|
|
16774
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
16237
16775
|
},
|
|
16238
16776
|
"endpointLabels": {
|
|
16239
16777
|
"anyOf": [
|
|
@@ -16570,6 +17108,34 @@
|
|
|
16570
17108
|
"$ref": "#/definitions/DarkMode",
|
|
16571
17109
|
"description": "Dark mode behavior."
|
|
16572
17110
|
},
|
|
17111
|
+
"animation": {
|
|
17112
|
+
"$ref": "#/definitions/GraphAnimationSpec",
|
|
17113
|
+
"description": "Motion configuration. DEFAULT-ON: omit for full defaults, `false` to opt out of choreography (layout warmup still applies)."
|
|
17114
|
+
},
|
|
17115
|
+
"interaction": {
|
|
17116
|
+
"$ref": "#/definitions/GraphInteractionConfig",
|
|
17117
|
+
"description": "Interaction behavior (hover mode, select-fly, opt-in physics)."
|
|
17118
|
+
},
|
|
17119
|
+
"legend": {
|
|
17120
|
+
"anyOf": [
|
|
17121
|
+
{
|
|
17122
|
+
"type": "boolean"
|
|
17123
|
+
},
|
|
17124
|
+
{
|
|
17125
|
+
"type": "object",
|
|
17126
|
+
"properties": {
|
|
17127
|
+
"interactive": {
|
|
17128
|
+
"type": "boolean"
|
|
17129
|
+
},
|
|
17130
|
+
"counts": {
|
|
17131
|
+
"type": "boolean"
|
|
17132
|
+
}
|
|
17133
|
+
},
|
|
17134
|
+
"additionalProperties": false
|
|
17135
|
+
}
|
|
17136
|
+
],
|
|
17137
|
+
"description": "Built-in legend. Interactive by default. Set `false` if you render your own legend, so the built-in filter UI doesn't compete with it."
|
|
17138
|
+
},
|
|
16573
17139
|
"watermark": {
|
|
16574
17140
|
"type": "boolean",
|
|
16575
17141
|
"description": "Whether to show the tryOpenData.ai watermark. Defaults to true."
|
|
@@ -16628,7 +17194,11 @@
|
|
|
16628
17194
|
},
|
|
16629
17195
|
"nodeSize": {
|
|
16630
17196
|
"$ref": "#/definitions/GraphEncodingChannel",
|
|
16631
|
-
"description": "Size mapping for nodes."
|
|
17197
|
+
"description": "Size mapping for nodes. `scale.type` defaults to `'sqrt'` (area-perceptual, today's behavior); set `scale.type: 'linear'` for a linear radius ramp. `scale.range` sets the pixel radius extent (default `[3, 12]`)."
|
|
17198
|
+
},
|
|
17199
|
+
"nodeOpacity": {
|
|
17200
|
+
"$ref": "#/definitions/GraphEncodingChannel",
|
|
17201
|
+
"description": "Opacity mapping for nodes (VL opacity channel). Quantitative fields map linearly to `[0.25, 1]`; `scale.range` overrides.\n\nNOTE: there is deliberately no `edgeOpacity` channel — edge alpha is owned by the interaction alpha-tier machinery (hover dimming, search)."
|
|
16632
17202
|
},
|
|
16633
17203
|
"edgeColor": {
|
|
16634
17204
|
"$ref": "#/definitions/GraphEncodingChannel",
|
|
@@ -16645,6 +17215,10 @@
|
|
|
16645
17215
|
"nodeLabel": {
|
|
16646
17216
|
"$ref": "#/definitions/GraphEncodingChannel",
|
|
16647
17217
|
"description": "Label field for nodes."
|
|
17218
|
+
},
|
|
17219
|
+
"nodeLabelPriority": {
|
|
17220
|
+
"$ref": "#/definitions/GraphEncodingChannel",
|
|
17221
|
+
"description": "Label priority mapping for nodes. Maps a quantitative field to a 0-1 priority range; higher values are shown first as the user zooms in. Omit to use the default degree-based priority. `nodeOverrides[id].alwaysShowLabel` still wins as the hard override."
|
|
16648
17222
|
}
|
|
16649
17223
|
},
|
|
16650
17224
|
"additionalProperties": false,
|
|
@@ -16664,6 +17238,42 @@
|
|
|
16664
17238
|
"scale": {
|
|
16665
17239
|
"$ref": "#/definitions/ScaleConfig",
|
|
16666
17240
|
"description": "Scale configuration. Auto-derived from data if omitted."
|
|
17241
|
+
},
|
|
17242
|
+
"sort": {
|
|
17243
|
+
"anyOf": [
|
|
17244
|
+
{
|
|
17245
|
+
"type": "string",
|
|
17246
|
+
"const": "ascending"
|
|
17247
|
+
},
|
|
17248
|
+
{
|
|
17249
|
+
"type": "string",
|
|
17250
|
+
"const": "descending"
|
|
17251
|
+
},
|
|
17252
|
+
{
|
|
17253
|
+
"type": "null"
|
|
17254
|
+
},
|
|
17255
|
+
{
|
|
17256
|
+
"type": "array",
|
|
17257
|
+
"items": {
|
|
17258
|
+
"type": "string"
|
|
17259
|
+
}
|
|
17260
|
+
}
|
|
17261
|
+
],
|
|
17262
|
+
"description": "Category ordering for the color domain and legend. Graph channels default `'ascending'` (VL-aligned, deterministic); `string[]` pins an explicit order; `null` keeps data order.\n\nNOTE: chart encoding channels keep data-order — this graph default is a deliberate divergence this release (see docs/migrating-v8.md)."
|
|
17263
|
+
},
|
|
17264
|
+
"highlight": {
|
|
17265
|
+
"anyOf": [
|
|
17266
|
+
{
|
|
17267
|
+
"type": "string"
|
|
17268
|
+
},
|
|
17269
|
+
{
|
|
17270
|
+
"type": "array",
|
|
17271
|
+
"items": {
|
|
17272
|
+
"type": "string"
|
|
17273
|
+
}
|
|
17274
|
+
}
|
|
17275
|
+
],
|
|
17276
|
+
"description": "Category values to emphasize on load; the rest dim. Mirrors the chart `encoding.color.highlight` value list. Distinct from the `highlight()` runtime verb and `interaction.hover.mode`."
|
|
16667
17277
|
}
|
|
16668
17278
|
},
|
|
16669
17279
|
"required": [
|
|
@@ -16717,6 +17327,35 @@
|
|
|
16717
17327
|
"centerForce": {
|
|
16718
17328
|
"type": "boolean",
|
|
16719
17329
|
"description": "Whether to apply center force (default true)."
|
|
17330
|
+
},
|
|
17331
|
+
"seed": {
|
|
17332
|
+
"type": "number",
|
|
17333
|
+
"description": "Deterministic layout seed. Same spec + seed ⇒ identical settled layout within a given execution path (worker vs sync parity is not guaranteed)."
|
|
17334
|
+
},
|
|
17335
|
+
"energy": {
|
|
17336
|
+
"type": "string",
|
|
17337
|
+
"enum": [
|
|
17338
|
+
"gentle",
|
|
17339
|
+
"balanced",
|
|
17340
|
+
"energetic"
|
|
17341
|
+
],
|
|
17342
|
+
"description": "Repulsion preset (plain-language, no d3 jargon): `gentle`/`balanced`/`energetic` → chargeStrength −150/−300/−600 and velocityDecay 0.5/0.4/0.3. A raw `chargeStrength` wins over the preset."
|
|
17343
|
+
},
|
|
17344
|
+
"settle": {
|
|
17345
|
+
"type": "string",
|
|
17346
|
+
"enum": [
|
|
17347
|
+
"quick",
|
|
17348
|
+
"balanced",
|
|
17349
|
+
"thorough"
|
|
17350
|
+
],
|
|
17351
|
+
"description": "Settle-speed preset: `quick`/`balanced`/`thorough` → alphaDecay 0.05/0.0228/0.01. Higher = faster cool-down, less final refinement."
|
|
17352
|
+
},
|
|
17353
|
+
"warmup": {
|
|
17354
|
+
"type": [
|
|
17355
|
+
"boolean",
|
|
17356
|
+
"number"
|
|
17357
|
+
],
|
|
17358
|
+
"description": "Headless settle ticks run before the first paint. `true` → 100 ticks under a 250ms budget; a number sets an explicit tick count; `false` disables.\n\nLives in `layout`, NOT `animation`, on purpose: warmup *reduces* motion, so it must survive `animation: false` (opt-out consumers get less settling chaos, not more)."
|
|
16720
17359
|
}
|
|
16721
17360
|
},
|
|
16722
17361
|
"required": [
|
|
@@ -16752,6 +17391,157 @@
|
|
|
16752
17391
|
"additionalProperties": false,
|
|
16753
17392
|
"description": "Per-node visual overrides, keyed by node id."
|
|
16754
17393
|
},
|
|
17394
|
+
"GraphAnimationSpec": {
|
|
17395
|
+
"anyOf": [
|
|
17396
|
+
{
|
|
17397
|
+
"type": "boolean"
|
|
17398
|
+
},
|
|
17399
|
+
{
|
|
17400
|
+
"$ref": "#/definitions/GraphAnimationConfig"
|
|
17401
|
+
}
|
|
17402
|
+
],
|
|
17403
|
+
"description": "Graph motion spec.\n- omitted → full defaults (default-ON)\n- `false` → no choreography (warmup still applies)\n- object → per-phase control\n\n`prefers-reduced-motion` is always respected regardless of this value."
|
|
17404
|
+
},
|
|
17405
|
+
"GraphAnimationConfig": {
|
|
17406
|
+
"type": "object",
|
|
17407
|
+
"properties": {
|
|
17408
|
+
"enter": {
|
|
17409
|
+
"anyOf": [
|
|
17410
|
+
{
|
|
17411
|
+
"$ref": "#/definitions/AnimationPhaseConfig"
|
|
17412
|
+
},
|
|
17413
|
+
{
|
|
17414
|
+
"type": "boolean"
|
|
17415
|
+
}
|
|
17416
|
+
],
|
|
17417
|
+
"description": "Node/edge reveal on first render. Default `{ duration: 500, ease: 'smooth', stagger: true }`."
|
|
17418
|
+
},
|
|
17419
|
+
"update": {
|
|
17420
|
+
"anyOf": [
|
|
17421
|
+
{
|
|
17422
|
+
"$ref": "#/definitions/AnimationPhaseConfig"
|
|
17423
|
+
},
|
|
17424
|
+
{
|
|
17425
|
+
"type": "boolean"
|
|
17426
|
+
}
|
|
17427
|
+
],
|
|
17428
|
+
"description": "Data-update enter-fade for newly added marks. Default `{ duration: 300, ease: 'smooth' }`."
|
|
17429
|
+
},
|
|
17430
|
+
"exit": {
|
|
17431
|
+
"anyOf": [
|
|
17432
|
+
{
|
|
17433
|
+
"$ref": "#/definitions/AnimationPhaseConfig"
|
|
17434
|
+
},
|
|
17435
|
+
{
|
|
17436
|
+
"type": "boolean"
|
|
17437
|
+
}
|
|
17438
|
+
],
|
|
17439
|
+
"description": "Ghost fade-out for removed marks. Default `{ duration: 300, ease: 'smooth' }`."
|
|
17440
|
+
},
|
|
17441
|
+
"camera": {
|
|
17442
|
+
"anyOf": [
|
|
17443
|
+
{
|
|
17444
|
+
"type": "object",
|
|
17445
|
+
"properties": {
|
|
17446
|
+
"duration": {
|
|
17447
|
+
"type": "number"
|
|
17448
|
+
},
|
|
17449
|
+
"ease": {
|
|
17450
|
+
"$ref": "#/definitions/AnimationEase"
|
|
17451
|
+
}
|
|
17452
|
+
},
|
|
17453
|
+
"additionalProperties": false
|
|
17454
|
+
},
|
|
17455
|
+
{
|
|
17456
|
+
"type": "boolean"
|
|
17457
|
+
}
|
|
17458
|
+
],
|
|
17459
|
+
"description": "Camera flight easing. Default duration `'auto'` (derived from the zoom distance)."
|
|
17460
|
+
},
|
|
17461
|
+
"hover": {
|
|
17462
|
+
"anyOf": [
|
|
17463
|
+
{
|
|
17464
|
+
"type": "object",
|
|
17465
|
+
"properties": {
|
|
17466
|
+
"duration": {
|
|
17467
|
+
"type": "number"
|
|
17468
|
+
},
|
|
17469
|
+
"ease": {
|
|
17470
|
+
"$ref": "#/definitions/AnimationEase"
|
|
17471
|
+
}
|
|
17472
|
+
},
|
|
17473
|
+
"additionalProperties": false
|
|
17474
|
+
},
|
|
17475
|
+
{
|
|
17476
|
+
"type": "boolean"
|
|
17477
|
+
}
|
|
17478
|
+
],
|
|
17479
|
+
"description": "Hover emphasis crossfade. Default `{ duration: 150, ease: 'smooth' }`."
|
|
17480
|
+
}
|
|
17481
|
+
},
|
|
17482
|
+
"additionalProperties": false,
|
|
17483
|
+
"description": "Per-phase and per-behavior motion config for a graph.\n\nDEFAULT-ON semantics (deliberately different from charts, which are opt-in): omit `animation` → the resolver returns full defaults; `animation: false` → no choreography (but `layout.warmup` still applies); a per-phase `false` disables just that phase. Graphs are default-on because physics motion already exists on load and choreography reduces the chaos."
|
|
17484
|
+
},
|
|
17485
|
+
"GraphInteractionConfig": {
|
|
17486
|
+
"type": "object",
|
|
17487
|
+
"properties": {
|
|
17488
|
+
"hover": {
|
|
17489
|
+
"type": "object",
|
|
17490
|
+
"properties": {
|
|
17491
|
+
"mode": {
|
|
17492
|
+
"type": "string",
|
|
17493
|
+
"enum": [
|
|
17494
|
+
"neighbors",
|
|
17495
|
+
"category",
|
|
17496
|
+
"node",
|
|
17497
|
+
"none"
|
|
17498
|
+
]
|
|
17499
|
+
},
|
|
17500
|
+
"dimOpacity": {
|
|
17501
|
+
"type": "number"
|
|
17502
|
+
}
|
|
17503
|
+
},
|
|
17504
|
+
"additionalProperties": false,
|
|
17505
|
+
"description": "Hover emphasis behavior. `neighbors` (default) lights the hovered node and its adjacency; `category` lights same-category nodes; `node` lights only the hovered node; `none` disables. `dimOpacity` (default 0.15) is the node dim tier. Named `mode` (not `highlight`) to avoid colliding with the three other meanings of \"highlight\" (the encoding value list, the `highlight()` verb)."
|
|
17506
|
+
},
|
|
17507
|
+
"select": {
|
|
17508
|
+
"type": "object",
|
|
17509
|
+
"properties": {
|
|
17510
|
+
"flyTo": {
|
|
17511
|
+
"type": "boolean"
|
|
17512
|
+
}
|
|
17513
|
+
},
|
|
17514
|
+
"additionalProperties": false,
|
|
17515
|
+
"description": "Selecting a node flies the camera to it. Default `false`."
|
|
17516
|
+
},
|
|
17517
|
+
"cursorRepulsion": {
|
|
17518
|
+
"anyOf": [
|
|
17519
|
+
{
|
|
17520
|
+
"type": "boolean"
|
|
17521
|
+
},
|
|
17522
|
+
{
|
|
17523
|
+
"type": "object",
|
|
17524
|
+
"properties": {
|
|
17525
|
+
"radius": {
|
|
17526
|
+
"type": "number"
|
|
17527
|
+
},
|
|
17528
|
+
"strength": {
|
|
17529
|
+
"type": "number"
|
|
17530
|
+
}
|
|
17531
|
+
},
|
|
17532
|
+
"additionalProperties": false
|
|
17533
|
+
}
|
|
17534
|
+
],
|
|
17535
|
+
"description": "Opt-in cursor repulsion (nodes drift away from the pointer). Disabled under `prefers-reduced-motion` and above the node-count gate."
|
|
17536
|
+
},
|
|
17537
|
+
"springyDrag": {
|
|
17538
|
+
"type": "boolean",
|
|
17539
|
+
"description": "Opt-in springy node drag (user-initiated; no reduced-motion gate)."
|
|
17540
|
+
}
|
|
17541
|
+
},
|
|
17542
|
+
"additionalProperties": false,
|
|
17543
|
+
"description": "Interaction behavior for a graph (hover mode, select-fly, opt-in physics)."
|
|
17544
|
+
},
|
|
16755
17545
|
"SankeySpec": {
|
|
16756
17546
|
"type": "object",
|
|
16757
17547
|
"properties": {
|
|
@@ -17192,7 +17982,7 @@
|
|
|
17192
17982
|
],
|
|
17193
17983
|
"description": "Sequential color palette names available for tile maps."
|
|
17194
17984
|
},
|
|
17195
|
-
"
|
|
17985
|
+
"GeoMapSpec": {
|
|
17196
17986
|
"type": "object",
|
|
17197
17987
|
"properties": {
|
|
17198
17988
|
"type": {
|
|
@@ -17201,7 +17991,7 @@
|
|
|
17201
17991
|
"description": "Discriminant: always \"map\"."
|
|
17202
17992
|
},
|
|
17203
17993
|
"geo": {
|
|
17204
|
-
"$ref": "#/definitions/
|
|
17994
|
+
"$ref": "#/definitions/GeoMapGeo",
|
|
17205
17995
|
"description": "Geo configuration: TopoJSON features, join key, and projection."
|
|
17206
17996
|
},
|
|
17207
17997
|
"data": {
|
|
@@ -17212,7 +18002,7 @@
|
|
|
17212
18002
|
"description": "Tabular data to join to geo features."
|
|
17213
18003
|
},
|
|
17214
18004
|
"encoding": {
|
|
17215
|
-
"$ref": "#/definitions/
|
|
18005
|
+
"$ref": "#/definitions/GeoMapEncoding",
|
|
17216
18006
|
"description": "Encoding channels mapping data fields to visual properties."
|
|
17217
18007
|
},
|
|
17218
18008
|
"chrome": {
|
|
@@ -17236,7 +18026,7 @@
|
|
|
17236
18026
|
"description": "Whether to show the tryOpenData.ai watermark. Defaults to true."
|
|
17237
18027
|
},
|
|
17238
18028
|
"points": {
|
|
17239
|
-
"$ref": "#/definitions/
|
|
18029
|
+
"$ref": "#/definitions/GeoMapPointsLayer",
|
|
17240
18030
|
"description": "Optional point/symbol layer rendered above choropleth features."
|
|
17241
18031
|
},
|
|
17242
18032
|
"animation": {
|
|
@@ -17257,7 +18047,7 @@
|
|
|
17257
18047
|
],
|
|
17258
18048
|
"additionalProperties": false
|
|
17259
18049
|
},
|
|
17260
|
-
"
|
|
18050
|
+
"GeoMapGeo": {
|
|
17261
18051
|
"type": "object",
|
|
17262
18052
|
"properties": {
|
|
17263
18053
|
"features": {
|
|
@@ -17268,13 +18058,13 @@
|
|
|
17268
18058
|
"description": "Field in the TopoJSON feature properties to use as the join key. Defaults to 'id'."
|
|
17269
18059
|
},
|
|
17270
18060
|
"projection": {
|
|
17271
|
-
"$ref": "#/definitions/
|
|
18061
|
+
"$ref": "#/definitions/GeoMapProjection",
|
|
17272
18062
|
"description": "Map projection. Defaults to 'albersUsa'."
|
|
17273
18063
|
},
|
|
17274
18064
|
"focus": {
|
|
17275
18065
|
"anyOf": [
|
|
17276
18066
|
{
|
|
17277
|
-
"$ref": "#/definitions/
|
|
18067
|
+
"$ref": "#/definitions/GeoMapFocus"
|
|
17278
18068
|
},
|
|
17279
18069
|
{
|
|
17280
18070
|
"type": "null"
|
|
@@ -17289,7 +18079,7 @@
|
|
|
17289
18079
|
"additionalProperties": false,
|
|
17290
18080
|
"description": "Geo configuration for map specs."
|
|
17291
18081
|
},
|
|
17292
|
-
"
|
|
18082
|
+
"GeoMapProjection": {
|
|
17293
18083
|
"type": "string",
|
|
17294
18084
|
"enum": [
|
|
17295
18085
|
"albersUsa",
|
|
@@ -17299,7 +18089,7 @@
|
|
|
17299
18089
|
],
|
|
17300
18090
|
"description": "Supported map projections."
|
|
17301
18091
|
},
|
|
17302
|
-
"
|
|
18092
|
+
"GeoMapFocus": {
|
|
17303
18093
|
"anyOf": [
|
|
17304
18094
|
{
|
|
17305
18095
|
"type": "string"
|
|
@@ -17351,7 +18141,7 @@
|
|
|
17351
18141
|
"type": "object",
|
|
17352
18142
|
"properties": {
|
|
17353
18143
|
"points": {
|
|
17354
|
-
"$ref": "#/definitions/
|
|
18144
|
+
"$ref": "#/definitions/GeoMapPointsFocus"
|
|
17355
18145
|
},
|
|
17356
18146
|
"padding": {
|
|
17357
18147
|
"type": "number"
|
|
@@ -17364,7 +18154,7 @@
|
|
|
17364
18154
|
}
|
|
17365
18155
|
]
|
|
17366
18156
|
},
|
|
17367
|
-
"
|
|
18157
|
+
"GeoMapPointsFocus": {
|
|
17368
18158
|
"anyOf": [
|
|
17369
18159
|
{
|
|
17370
18160
|
"type": "boolean",
|
|
@@ -17392,7 +18182,7 @@
|
|
|
17392
18182
|
],
|
|
17393
18183
|
"description": "Fit the point layer's cluster. `true` fits every point; `{ field, value }` fits only the points whose data row has `row[field] === value` (e.g. only the campuses rated \"F\"), which lets a story pan between sub-clusters."
|
|
17394
18184
|
},
|
|
17395
|
-
"
|
|
18185
|
+
"GeoMapEncoding": {
|
|
17396
18186
|
"type": "object",
|
|
17397
18187
|
"properties": {
|
|
17398
18188
|
"key": {
|
|
@@ -17421,7 +18211,7 @@
|
|
|
17421
18211
|
"additionalProperties": false,
|
|
17422
18212
|
"description": "Encoding channels specific to map visualizations."
|
|
17423
18213
|
},
|
|
17424
|
-
"
|
|
18214
|
+
"GeoMapPointsLayer": {
|
|
17425
18215
|
"type": "object",
|
|
17426
18216
|
"properties": {
|
|
17427
18217
|
"data": {
|
|
@@ -17459,7 +18249,7 @@
|
|
|
17459
18249
|
}
|
|
17460
18250
|
}
|
|
17461
18251
|
],
|
|
17462
|
-
"description": "Tooltip channel(s), same shape as
|
|
18252
|
+
"description": "Tooltip channel(s), same shape as GeoMapEncoding.tooltip."
|
|
17463
18253
|
},
|
|
17464
18254
|
"key": {
|
|
17465
18255
|
"$ref": "#/definitions/EncodingChannel",
|
|
@@ -17619,6 +18409,14 @@
|
|
|
17619
18409
|
"$ref": "#/definitions/Chrome",
|
|
17620
18410
|
"description": "Editorial chrome (title, subtitle, source, etc.)."
|
|
17621
18411
|
},
|
|
18412
|
+
"chromeLayout": {
|
|
18413
|
+
"type": "string",
|
|
18414
|
+
"enum": [
|
|
18415
|
+
"subtract",
|
|
18416
|
+
"grow"
|
|
18417
|
+
],
|
|
18418
|
+
"description": "How chrome height interacts with the container height budget.\n\n- `'subtract'` (default): the container height is fixed and chrome text (title/subtitle/source) is subtracted from it, shrinking the plot. This is the historical behavior.\n- `'grow'`: the container height is treated as the *plot* budget, and the rendered SVG grows taller by the measured chrome height. The plot keeps its full budget (minus axis/padding overhead) regardless of how many lines the title wraps to.\n\n`'grow'` is a no-op for faceted specs in this version."
|
|
18419
|
+
},
|
|
17622
18420
|
"title": {
|
|
17623
18421
|
"anyOf": [
|
|
17624
18422
|
{
|
|
@@ -17727,7 +18525,7 @@
|
|
|
17727
18525
|
"items": {
|
|
17728
18526
|
"type": "string"
|
|
17729
18527
|
},
|
|
17730
|
-
"description": "Series names to hide from rendering
|
|
18528
|
+
"description": "Series names to hide from rendering by default. This is the authored persistence target for legend visibility. Runtime legend toggles (legend-toggle edit events) layer on top of this via ephemeral runtime sets but never modify it."
|
|
17731
18529
|
},
|
|
17732
18530
|
"seriesStyles": {
|
|
17733
18531
|
"type": "object",
|