semiotic 3.5.1 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CLAUDE.md +21 -19
  2. package/README.md +22 -16
  3. package/ai/chartSuggestions.cjs +191 -3
  4. package/ai/componentMetadata.cjs +3 -3
  5. package/ai/dist/mcp-server.js +266 -48
  6. package/ai/examples.md +68 -0
  7. package/ai/schema.json +900 -1
  8. package/ai/system-prompt.md +4 -1
  9. package/dist/components/Tooltip/FlippingTooltip.d.ts +16 -1
  10. package/dist/components/charts/geo/FlowMap.d.ts +13 -4
  11. package/dist/components/charts/index.d.ts +6 -0
  12. package/dist/components/charts/network/OrbitDiagram.d.ts +5 -5
  13. package/dist/components/charts/network/ProcessSankey.d.ts +141 -0
  14. package/dist/components/charts/network/processSankey/algorithm.d.ts +136 -0
  15. package/dist/components/charts/network/processSankey/buildScenes.d.ts +45 -0
  16. package/dist/components/charts/network/processSankey/ribbonInputs.d.ts +32 -0
  17. package/dist/components/charts/network/processSankey/streamingLayout.d.ts +58 -0
  18. package/dist/components/charts/network/processSankey/tooltipUtils.d.ts +41 -0
  19. package/dist/components/charts/ordinal/BarChart.d.ts +12 -0
  20. package/dist/components/charts/ordinal/DotPlot.d.ts +9 -0
  21. package/dist/components/charts/ordinal/GaugeChart.d.ts +20 -0
  22. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +5 -0
  23. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +14 -11
  24. package/dist/components/charts/realtime/defaultRealtimeTooltip.d.ts +19 -0
  25. package/dist/components/charts/shared/axisExtent.d.ts +59 -0
  26. package/dist/components/charts/shared/chartSpecs.d.ts +75 -0
  27. package/dist/components/charts/shared/colorUtils.d.ts +8 -2
  28. package/dist/components/charts/shared/networkUtils.d.ts +3 -5
  29. package/dist/components/charts/shared/radialGeometry.d.ts +99 -0
  30. package/dist/components/charts/shared/regressionUtils.d.ts +59 -0
  31. package/dist/components/charts/shared/selectionUtils.d.ts +8 -1
  32. package/dist/components/charts/shared/streamPropsHelpers.d.ts +5 -0
  33. package/dist/components/charts/shared/types.d.ts +13 -0
  34. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +75 -0
  35. package/dist/components/charts/shared/useEncodingDomain.d.ts +48 -0
  36. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -1
  37. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +148 -0
  38. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +87 -0
  39. package/dist/components/charts/shared/useSeriesFeatures.d.ts +57 -0
  40. package/dist/components/charts/shared/useStreamStatus.d.ts +33 -0
  41. package/dist/components/charts/shared/useXYLineStyle.d.ts +69 -0
  42. package/dist/components/charts/shared/useXYPointStyle.d.ts +87 -0
  43. package/dist/components/charts/xy/AreaChart.d.ts +24 -0
  44. package/dist/components/charts/xy/BubbleChart.d.ts +9 -0
  45. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +16 -0
  46. package/dist/components/charts/xy/DifferenceChart.d.ts +172 -0
  47. package/dist/components/charts/xy/Scatterplot.d.ts +34 -0
  48. package/dist/components/geometry/ribbonGeometry.d.ts +76 -0
  49. package/dist/components/semiotic-ai.d.ts +2 -0
  50. package/dist/components/semiotic-network.d.ts +4 -0
  51. package/dist/components/semiotic-realtime.d.ts +2 -0
  52. package/dist/components/semiotic-utils.d.ts +4 -0
  53. package/dist/components/semiotic-xy.d.ts +2 -0
  54. package/dist/components/semiotic.d.ts +3 -3
  55. package/dist/components/server/serverChartConfigs.d.ts +2 -0
  56. package/dist/components/stream/GeoPipelineStore.d.ts +21 -0
  57. package/dist/components/stream/OrdinalSVGOverlay.d.ts +8 -0
  58. package/dist/components/stream/PipelineStore.d.ts +5 -0
  59. package/dist/components/stream/SVGOverlay.d.ts +18 -0
  60. package/dist/components/stream/annotationAccessorResolver.d.ts +39 -0
  61. package/dist/components/stream/geoTypes.d.ts +12 -0
  62. package/dist/components/stream/ordinalTypes.d.ts +12 -0
  63. package/dist/components/stream/renderers/cornerRadii.d.ts +33 -0
  64. package/dist/components/stream/types.d.ts +23 -0
  65. package/dist/components/types/legendTypes.d.ts +1 -1
  66. package/dist/geo.min.js +1 -1
  67. package/dist/geo.module.min.js +1 -1
  68. package/dist/network.min.js +1 -1
  69. package/dist/network.module.min.js +1 -1
  70. package/dist/ordinal.min.js +1 -1
  71. package/dist/ordinal.module.min.js +1 -1
  72. package/dist/realtime.min.js +1 -1
  73. package/dist/realtime.module.min.js +1 -1
  74. package/dist/semiotic-ai.d.ts +2 -0
  75. package/dist/semiotic-ai.min.js +1 -1
  76. package/dist/semiotic-ai.module.min.js +1 -1
  77. package/dist/semiotic-network.d.ts +4 -0
  78. package/dist/semiotic-realtime.d.ts +2 -0
  79. package/dist/semiotic-recipes.min.js +1 -1
  80. package/dist/semiotic-recipes.module.min.js +1 -1
  81. package/dist/semiotic-utils.d.ts +4 -0
  82. package/dist/semiotic-utils.min.js +1 -1
  83. package/dist/semiotic-utils.module.min.js +1 -1
  84. package/dist/semiotic-xy.d.ts +2 -0
  85. package/dist/semiotic.d.ts +3 -3
  86. package/dist/semiotic.min.js +1 -1
  87. package/dist/semiotic.module.min.js +1 -1
  88. package/dist/server.min.js +1 -1
  89. package/dist/server.module.min.js +1 -1
  90. package/dist/xy.min.js +1 -1
  91. package/dist/xy.module.min.js +1 -1
  92. package/package.json +10 -5
package/ai/schema.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "name": "semiotic",
4
- "version": "3.5.1",
4
+ "version": "3.5.2",
5
5
  "description": "React data visualization library for charts, networks, and beyond",
6
6
  "tools": [
7
7
  {
@@ -93,6 +93,15 @@
93
93
  ]
94
94
  }
95
95
  },
96
+ "axisExtent": {
97
+ "type": "string",
98
+ "enum": [
99
+ "nice",
100
+ "exact"
101
+ ],
102
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
103
+ "default": "nice"
104
+ },
96
105
  "xLabel": {
97
106
  "type": "string"
98
107
  },
@@ -171,6 +180,14 @@
171
180
  "type": "number",
172
181
  "description": "Opacity of the filled area (0-1)",
173
182
  "default": 0.3
183
+ },
184
+ "forecast": {
185
+ "type": "object",
186
+ "description": "Forecast overlay config — tagged training/observed/forecast region with optional envelope. See ForecastConfig."
187
+ },
188
+ "anomaly": {
189
+ "type": "object",
190
+ "description": "Anomaly overlay config — ±σ band + anomaly dot annotations. See AnomalyConfig."
174
191
  }
175
192
  },
176
193
  "required": [
@@ -268,6 +285,15 @@
268
285
  ]
269
286
  }
270
287
  },
288
+ "axisExtent": {
289
+ "type": "string",
290
+ "enum": [
291
+ "nice",
292
+ "exact"
293
+ ],
294
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
295
+ "default": "nice"
296
+ },
271
297
  "xLabel": {
272
298
  "type": "string"
273
299
  },
@@ -334,6 +360,14 @@
334
360
  "lineWidth": {
335
361
  "type": "number",
336
362
  "default": 2
363
+ },
364
+ "forecast": {
365
+ "type": "object",
366
+ "description": "Forecast overlay config — tagged training/observed/forecast region with optional envelope. See ForecastConfig."
367
+ },
368
+ "anomaly": {
369
+ "type": "object",
370
+ "description": "Anomaly overlay config — ±σ band + anomaly dot annotations. See AnomalyConfig."
337
371
  }
338
372
  },
339
373
  "required": [
@@ -431,6 +465,15 @@
431
465
  ]
432
466
  }
433
467
  },
468
+ "axisExtent": {
469
+ "type": "string",
470
+ "enum": [
471
+ "nice",
472
+ "exact"
473
+ ],
474
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
475
+ "default": "nice"
476
+ },
434
477
  "xLabel": {
435
478
  "type": "string"
436
479
  },
@@ -595,6 +638,15 @@
595
638
  ]
596
639
  }
597
640
  },
641
+ "axisExtent": {
642
+ "type": "string",
643
+ "enum": [
644
+ "nice",
645
+ "exact"
646
+ ],
647
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
648
+ "default": "nice"
649
+ },
598
650
  "xLabel": {
599
651
  "type": "string"
600
652
  },
@@ -642,6 +694,22 @@
642
694
  "pointOpacity": {
643
695
  "type": "number",
644
696
  "default": 0.8
697
+ },
698
+ "regression": {
699
+ "type": [
700
+ "boolean",
701
+ "string",
702
+ "object"
703
+ ],
704
+ "description": "Overlay a regression line. true = linear, 'linear' | 'polynomial' | 'loess' = method, or full RegressionConfig object. Sugar over the trend annotation."
705
+ },
706
+ "forecast": {
707
+ "type": "object",
708
+ "description": "Forecast overlay config — tagged future points + optional envelope. See ForecastConfig."
709
+ },
710
+ "anomaly": {
711
+ "type": "object",
712
+ "description": "Anomaly overlay config — ±σ band + anomaly dot annotations. See AnomalyConfig."
645
713
  }
646
714
  },
647
715
  "required": [
@@ -739,6 +807,15 @@
739
807
  ]
740
808
  }
741
809
  },
810
+ "axisExtent": {
811
+ "type": "string",
812
+ "enum": [
813
+ "nice",
814
+ "exact"
815
+ ],
816
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
817
+ "default": "nice"
818
+ },
742
819
  "xLabel": {
743
820
  "type": "string"
744
821
  },
@@ -900,6 +977,15 @@
900
977
  ]
901
978
  }
902
979
  },
980
+ "axisExtent": {
981
+ "type": "string",
982
+ "enum": [
983
+ "nice",
984
+ "exact"
985
+ ],
986
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
987
+ "default": "nice"
988
+ },
903
989
  "xLabel": {
904
990
  "type": "string"
905
991
  },
@@ -1026,6 +1112,15 @@
1026
1112
  ]
1027
1113
  }
1028
1114
  },
1115
+ "axisExtent": {
1116
+ "type": "string",
1117
+ "enum": [
1118
+ "nice",
1119
+ "exact"
1120
+ ],
1121
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
1122
+ "default": "nice"
1123
+ },
1029
1124
  "xLabel": {
1030
1125
  "type": "string"
1031
1126
  },
@@ -1181,6 +1276,15 @@
1181
1276
  ]
1182
1277
  }
1183
1278
  },
1279
+ "axisExtent": {
1280
+ "type": "string",
1281
+ "enum": [
1282
+ "nice",
1283
+ "exact"
1284
+ ],
1285
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
1286
+ "default": "nice"
1287
+ },
1184
1288
  "xLabel": {
1185
1289
  "type": "string"
1186
1290
  },
@@ -1230,6 +1334,14 @@
1230
1334
  "bubbleStrokeColor": {
1231
1335
  "type": "string",
1232
1336
  "default": "white"
1337
+ },
1338
+ "regression": {
1339
+ "type": [
1340
+ "boolean",
1341
+ "string",
1342
+ "object"
1343
+ ],
1344
+ "description": "Overlay a regression line on the bubbles. Same shape as Scatterplot's regression prop."
1233
1345
  }
1234
1346
  },
1235
1347
  "required": [
@@ -1331,6 +1443,15 @@
1331
1443
  ]
1332
1444
  }
1333
1445
  },
1446
+ "axisExtent": {
1447
+ "type": "string",
1448
+ "enum": [
1449
+ "nice",
1450
+ "exact"
1451
+ ],
1452
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
1453
+ "default": "nice"
1454
+ },
1334
1455
  "xLabel": {
1335
1456
  "type": "string"
1336
1457
  },
@@ -1486,6 +1607,15 @@
1486
1607
  ]
1487
1608
  }
1488
1609
  },
1610
+ "axisExtent": {
1611
+ "type": "string",
1612
+ "enum": [
1613
+ "nice",
1614
+ "exact"
1615
+ ],
1616
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
1617
+ "default": "nice"
1618
+ },
1489
1619
  "xLabel": {
1490
1620
  "type": "string"
1491
1621
  },
@@ -1534,6 +1664,22 @@
1534
1664
  "function"
1535
1665
  ],
1536
1666
  "description": "Accessor for unique point IDs, used by point-anchored annotations"
1667
+ },
1668
+ "regression": {
1669
+ "type": [
1670
+ "boolean",
1671
+ "string",
1672
+ "object"
1673
+ ],
1674
+ "description": "Overlay a regression line under the connected path. Same shape as Scatterplot's regression prop."
1675
+ },
1676
+ "forecast": {
1677
+ "type": "object",
1678
+ "description": "Forecast overlay config — same shape as LineChart's forecast prop."
1679
+ },
1680
+ "anomaly": {
1681
+ "type": "object",
1682
+ "description": "Anomaly overlay config — ±σ band + anomaly dot annotations."
1537
1683
  }
1538
1684
  },
1539
1685
  "required": [
@@ -1631,6 +1777,15 @@
1631
1777
  ]
1632
1778
  }
1633
1779
  },
1780
+ "axisExtent": {
1781
+ "type": "string",
1782
+ "enum": [
1783
+ "nice",
1784
+ "exact"
1785
+ ],
1786
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
1787
+ "default": "nice"
1788
+ },
1634
1789
  "categoryLabel": {
1635
1790
  "type": "string"
1636
1791
  },
@@ -1680,6 +1835,14 @@
1680
1835
  "barPadding": {
1681
1836
  "type": "number",
1682
1837
  "default": 40
1838
+ },
1839
+ "regression": {
1840
+ "type": [
1841
+ "boolean",
1842
+ "string",
1843
+ "object"
1844
+ ],
1845
+ "description": "Overlay a regression line through the bar tops. Accepts true (linear), a method ('linear' | 'polynomial' | 'loess'), or a full RegressionConfig. Pixels resolve through the band scale."
1683
1846
  }
1684
1847
  },
1685
1848
  "required": [
@@ -1778,6 +1941,15 @@
1778
1941
  ]
1779
1942
  }
1780
1943
  },
1944
+ "axisExtent": {
1945
+ "type": "string",
1946
+ "enum": [
1947
+ "nice",
1948
+ "exact"
1949
+ ],
1950
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
1951
+ "default": "nice"
1952
+ },
1781
1953
  "categoryLabel": {
1782
1954
  "type": "string"
1783
1955
  },
@@ -1926,6 +2098,15 @@
1926
2098
  ]
1927
2099
  }
1928
2100
  },
2101
+ "axisExtent": {
2102
+ "type": "string",
2103
+ "enum": [
2104
+ "nice",
2105
+ "exact"
2106
+ ],
2107
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
2108
+ "default": "nice"
2109
+ },
1929
2110
  "categoryLabel": {
1930
2111
  "type": "string"
1931
2112
  },
@@ -2083,6 +2264,15 @@
2083
2264
  ]
2084
2265
  }
2085
2266
  },
2267
+ "axisExtent": {
2268
+ "type": "string",
2269
+ "enum": [
2270
+ "nice",
2271
+ "exact"
2272
+ ],
2273
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
2274
+ "default": "nice"
2275
+ },
2086
2276
  "categoryLabel": {
2087
2277
  "type": "string"
2088
2278
  },
@@ -2226,6 +2416,15 @@
2226
2416
  ]
2227
2417
  }
2228
2418
  },
2419
+ "axisExtent": {
2420
+ "type": "string",
2421
+ "enum": [
2422
+ "nice",
2423
+ "exact"
2424
+ ],
2425
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
2426
+ "default": "nice"
2427
+ },
2229
2428
  "categoryLabel": {
2230
2429
  "type": "string"
2231
2430
  },
@@ -2383,6 +2582,15 @@
2383
2582
  ]
2384
2583
  }
2385
2584
  },
2585
+ "axisExtent": {
2586
+ "type": "string",
2587
+ "enum": [
2588
+ "nice",
2589
+ "exact"
2590
+ ],
2591
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
2592
+ "default": "nice"
2593
+ },
2386
2594
  "categoryLabel": {
2387
2595
  "type": "string"
2388
2596
  },
@@ -2527,6 +2735,15 @@
2527
2735
  ]
2528
2736
  }
2529
2737
  },
2738
+ "axisExtent": {
2739
+ "type": "string",
2740
+ "enum": [
2741
+ "nice",
2742
+ "exact"
2743
+ ],
2744
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
2745
+ "default": "nice"
2746
+ },
2530
2747
  "categoryLabel": {
2531
2748
  "type": "string"
2532
2749
  },
@@ -2664,6 +2881,15 @@
2664
2881
  ]
2665
2882
  }
2666
2883
  },
2884
+ "axisExtent": {
2885
+ "type": "string",
2886
+ "enum": [
2887
+ "nice",
2888
+ "exact"
2889
+ ],
2890
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
2891
+ "default": "nice"
2892
+ },
2667
2893
  "categoryLabel": {
2668
2894
  "type": "string"
2669
2895
  },
@@ -2814,6 +3040,15 @@
2814
3040
  ]
2815
3041
  }
2816
3042
  },
3043
+ "axisExtent": {
3044
+ "type": "string",
3045
+ "enum": [
3046
+ "nice",
3047
+ "exact"
3048
+ ],
3049
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3050
+ "default": "nice"
3051
+ },
2817
3052
  "categoryLabel": {
2818
3053
  "type": "string"
2819
3054
  },
@@ -2946,6 +3181,15 @@
2946
3181
  ]
2947
3182
  }
2948
3183
  },
3184
+ "axisExtent": {
3185
+ "type": "string",
3186
+ "enum": [
3187
+ "nice",
3188
+ "exact"
3189
+ ],
3190
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3191
+ "default": "nice"
3192
+ },
2949
3193
  "categoryLabel": {
2950
3194
  "type": "string"
2951
3195
  },
@@ -2997,6 +3241,14 @@
2997
3241
  "categoryPadding": {
2998
3242
  "type": "number",
2999
3243
  "default": 10
3244
+ },
3245
+ "regression": {
3246
+ "type": [
3247
+ "boolean",
3248
+ "string",
3249
+ "object"
3250
+ ],
3251
+ "description": "Overlay a regression line through the dots. Same shape as Scatterplot's regression prop."
3000
3252
  }
3001
3253
  },
3002
3254
  "required": [
@@ -3094,6 +3346,15 @@
3094
3346
  ]
3095
3347
  }
3096
3348
  },
3349
+ "axisExtent": {
3350
+ "type": "string",
3351
+ "enum": [
3352
+ "nice",
3353
+ "exact"
3354
+ ],
3355
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3356
+ "default": "nice"
3357
+ },
3097
3358
  "data": {
3098
3359
  "type": "array",
3099
3360
  "description": "Array of data objects"
@@ -3213,6 +3474,15 @@
3213
3474
  ]
3214
3475
  }
3215
3476
  },
3477
+ "axisExtent": {
3478
+ "type": "string",
3479
+ "enum": [
3480
+ "nice",
3481
+ "exact"
3482
+ ],
3483
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3484
+ "default": "nice"
3485
+ },
3216
3486
  "data": {
3217
3487
  "type": "array",
3218
3488
  "description": "Array of data objects"
@@ -3344,6 +3614,15 @@
3344
3614
  ]
3345
3615
  }
3346
3616
  },
3617
+ "axisExtent": {
3618
+ "type": "string",
3619
+ "enum": [
3620
+ "nice",
3621
+ "exact"
3622
+ ],
3623
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3624
+ "default": "nice"
3625
+ },
3347
3626
  "value": {
3348
3627
  "type": "number",
3349
3628
  "description": "Current gauge value"
@@ -3365,6 +3644,10 @@
3365
3644
  "description": "Arc thickness as fraction of radius (0-1)",
3366
3645
  "default": 0.3
3367
3646
  },
3647
+ "cornerRadius": {
3648
+ "type": "number",
3649
+ "description": "Pixel radius for rounded segment ends. Same semantics as DonutChart's cornerRadius. Omit for sharp corners."
3650
+ },
3368
3651
  "sweep": {
3369
3652
  "type": "number",
3370
3653
  "description": "Arc sweep angle in degrees (gap centered at bottom)",
@@ -3480,6 +3763,15 @@
3480
3763
  ]
3481
3764
  }
3482
3765
  },
3766
+ "axisExtent": {
3767
+ "type": "string",
3768
+ "enum": [
3769
+ "nice",
3770
+ "exact"
3771
+ ],
3772
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3773
+ "default": "nice"
3774
+ },
3483
3775
  "nodes": {
3484
3776
  "type": "array",
3485
3777
  "description": "Array of node objects"
@@ -3662,6 +3954,15 @@
3662
3954
  ]
3663
3955
  }
3664
3956
  },
3957
+ "axisExtent": {
3958
+ "type": "string",
3959
+ "enum": [
3960
+ "nice",
3961
+ "exact"
3962
+ ],
3963
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
3964
+ "default": "nice"
3965
+ },
3665
3966
  "edges": {
3666
3967
  "type": "array",
3667
3968
  "description": "Array of edge objects with source, target, and value"
@@ -3849,6 +4150,15 @@
3849
4150
  ]
3850
4151
  }
3851
4152
  },
4153
+ "axisExtent": {
4154
+ "type": "string",
4155
+ "enum": [
4156
+ "nice",
4157
+ "exact"
4158
+ ],
4159
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
4160
+ "default": "nice"
4161
+ },
3852
4162
  "edges": {
3853
4163
  "type": "array",
3854
4164
  "description": "Array of edge objects with source, target, and value"
@@ -4014,6 +4324,15 @@
4014
4324
  ]
4015
4325
  }
4016
4326
  },
4327
+ "axisExtent": {
4328
+ "type": "string",
4329
+ "enum": [
4330
+ "nice",
4331
+ "exact"
4332
+ ],
4333
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
4334
+ "default": "nice"
4335
+ },
4017
4336
  "data": {
4018
4337
  "type": "object",
4019
4338
  "description": "Root node object with nested children"
@@ -4183,6 +4502,15 @@
4183
4502
  ]
4184
4503
  }
4185
4504
  },
4505
+ "axisExtent": {
4506
+ "type": "string",
4507
+ "enum": [
4508
+ "nice",
4509
+ "exact"
4510
+ ],
4511
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
4512
+ "default": "nice"
4513
+ },
4186
4514
  "data": {
4187
4515
  "type": "object",
4188
4516
  "description": "Root node object with nested children"
@@ -4318,6 +4646,15 @@
4318
4646
  ]
4319
4647
  }
4320
4648
  },
4649
+ "axisExtent": {
4650
+ "type": "string",
4651
+ "enum": [
4652
+ "nice",
4653
+ "exact"
4654
+ ],
4655
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
4656
+ "default": "nice"
4657
+ },
4321
4658
  "data": {
4322
4659
  "type": "object",
4323
4660
  "description": "Root node object with nested children"
@@ -4457,6 +4794,15 @@
4457
4794
  ]
4458
4795
  }
4459
4796
  },
4797
+ "axisExtent": {
4798
+ "type": "string",
4799
+ "enum": [
4800
+ "nice",
4801
+ "exact"
4802
+ ],
4803
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
4804
+ "default": "nice"
4805
+ },
4460
4806
  "data": {
4461
4807
  "type": "object",
4462
4808
  "description": "Hierarchical root object with children: { name: 'root', children: [...] }"
@@ -5442,6 +5788,15 @@
5442
5788
  ]
5443
5789
  }
5444
5790
  },
5791
+ "axisExtent": {
5792
+ "type": "string",
5793
+ "enum": [
5794
+ "nice",
5795
+ "exact"
5796
+ ],
5797
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
5798
+ "default": "nice"
5799
+ },
5445
5800
  "categoryLabel": {
5446
5801
  "type": "string"
5447
5802
  },
@@ -5605,6 +5960,15 @@
5605
5960
  ]
5606
5961
  }
5607
5962
  },
5963
+ "axisExtent": {
5964
+ "type": "string",
5965
+ "enum": [
5966
+ "nice",
5967
+ "exact"
5968
+ ],
5969
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
5970
+ "default": "nice"
5971
+ },
5608
5972
  "categoryLabel": {
5609
5973
  "type": "string"
5610
5974
  },
@@ -5655,6 +6019,10 @@
5655
6019
  "description": "Padding between lanes in pixels",
5656
6020
  "default": 40
5657
6021
  },
6022
+ "roundedTop": {
6023
+ "type": "number",
6024
+ "description": "Rounded corner radius (px) applied to the outermost ends of each lane — left+right for horizontal, top+bottom for vertical. Middle segments stay square; single-segment lanes round all four corners."
6025
+ },
5658
6026
  "brush": {
5659
6027
  "type": "boolean",
5660
6028
  "description": "Enable value-axis brush selection"
@@ -5782,6 +6150,15 @@
5782
6150
  ]
5783
6151
  }
5784
6152
  },
6153
+ "axisExtent": {
6154
+ "type": "string",
6155
+ "enum": [
6156
+ "nice",
6157
+ "exact"
6158
+ ],
6159
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6160
+ "default": "nice"
6161
+ },
5785
6162
  "data": {
5786
6163
  "type": "array"
5787
6164
  },
@@ -5885,6 +6262,15 @@
5885
6262
  ]
5886
6263
  }
5887
6264
  },
6265
+ "axisExtent": {
6266
+ "type": "string",
6267
+ "enum": [
6268
+ "nice",
6269
+ "exact"
6270
+ ],
6271
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6272
+ "default": "nice"
6273
+ },
5888
6274
  "data": {
5889
6275
  "type": "array"
5890
6276
  }
@@ -5983,6 +6369,15 @@
5983
6369
  ]
5984
6370
  }
5985
6371
  },
6372
+ "axisExtent": {
6373
+ "type": "string",
6374
+ "enum": [
6375
+ "nice",
6376
+ "exact"
6377
+ ],
6378
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6379
+ "default": "nice"
6380
+ },
5986
6381
  "areas": {
5987
6382
  "type": [
5988
6383
  "array",
@@ -6096,6 +6491,15 @@
6096
6491
  ]
6097
6492
  }
6098
6493
  },
6494
+ "axisExtent": {
6495
+ "type": "string",
6496
+ "enum": [
6497
+ "nice",
6498
+ "exact"
6499
+ ],
6500
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6501
+ "default": "nice"
6502
+ },
6099
6503
  "points": {
6100
6504
  "type": "array"
6101
6505
  },
@@ -6221,6 +6625,15 @@
6221
6625
  ]
6222
6626
  }
6223
6627
  },
6628
+ "axisExtent": {
6629
+ "type": "string",
6630
+ "enum": [
6631
+ "nice",
6632
+ "exact"
6633
+ ],
6634
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6635
+ "default": "nice"
6636
+ },
6224
6637
  "flows": {
6225
6638
  "type": "array"
6226
6639
  },
@@ -6232,6 +6645,12 @@
6232
6645
  "string",
6233
6646
  "function"
6234
6647
  ]
6648
+ },
6649
+ "lineIdAccessor": {
6650
+ "type": [
6651
+ "string",
6652
+ "function"
6653
+ ]
6235
6654
  }
6236
6655
  },
6237
6656
  "required": [
@@ -6329,6 +6748,15 @@
6329
6748
  ]
6330
6749
  }
6331
6750
  },
6751
+ "axisExtent": {
6752
+ "type": "string",
6753
+ "enum": [
6754
+ "nice",
6755
+ "exact"
6756
+ ],
6757
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6758
+ "default": "nice"
6759
+ },
6332
6760
  "points": {
6333
6761
  "type": "array"
6334
6762
  },
@@ -6347,6 +6775,477 @@
6347
6775
  ]
6348
6776
  }
6349
6777
  }
6778
+ },
6779
+ {
6780
+ "type": "function",
6781
+ "function": {
6782
+ "name": "ProcessSankey",
6783
+ "description": "Temporal sankey with a real time x-axis. Edges carry startTime/endTime; nodes can declare an explicit xExtent lifetime. Use for timestamped flow events (PR commits, campaign-finance contributions, supply-chain shipments).",
6784
+ "parameters": {
6785
+ "type": "object",
6786
+ "properties": {
6787
+ "width": {
6788
+ "type": "number",
6789
+ "default": 600
6790
+ },
6791
+ "height": {
6792
+ "type": "number",
6793
+ "default": 400
6794
+ },
6795
+ "margin": {
6796
+ "type": "object"
6797
+ },
6798
+ "className": {
6799
+ "type": "string"
6800
+ },
6801
+ "title": {
6802
+ "type": "string"
6803
+ },
6804
+ "enableHover": {
6805
+ "type": "boolean",
6806
+ "default": true
6807
+ },
6808
+ "showLegend": {
6809
+ "type": "boolean"
6810
+ },
6811
+ "showGrid": {
6812
+ "type": "boolean",
6813
+ "default": false
6814
+ },
6815
+ "colorBy": {
6816
+ "type": [
6817
+ "string",
6818
+ "function"
6819
+ ]
6820
+ },
6821
+ "colorScheme": {
6822
+ "type": [
6823
+ "string",
6824
+ "array"
6825
+ ],
6826
+ "default": "category10"
6827
+ },
6828
+ "tooltip": {
6829
+ "type": [
6830
+ "boolean",
6831
+ "function",
6832
+ "object"
6833
+ ]
6834
+ },
6835
+ "annotations": {
6836
+ "type": "array",
6837
+ "description": "Annotation objects to render on the chart. Each must have a `type` field. Position using your data field names (e.g. { type: \"widget\", month: \"Jan\", revenue: 500 }). Supported types: \"widget\" (arbitrary HTML/React content via foreignObject — v3 replacement for htmlAnnotationRules), \"label\" (callout with connector), \"callout\" (circle + label), \"text\" (plain label), \"y-threshold\" (horizontal reference line), \"x-threshold\" (vertical reference line), \"band\" (shaded y-region), \"enclose\" (circle around points), \"rect-enclose\" (rect around points), \"highlight\" (colored dots on filtered points), \"trend\" (regression line), \"envelope\" (upper/lower bounds), \"anomaly-band\" (mean ± stddev), \"forecast\" (extrapolated trend). Widget annotations accept: content (ReactNode), dx, dy, width, height, anchor (\"fixed\"|\"latest\"|\"sticky\"). Threshold annotations accept: value, label, color, strokeWidth, strokeDasharray. Enclose annotations accept: coordinates (array of data objects), label, color, padding.",
6838
+ "items": {
6839
+ "type": "object",
6840
+ "properties": {
6841
+ "type": {
6842
+ "type": "string",
6843
+ "enum": [
6844
+ "widget",
6845
+ "label",
6846
+ "callout",
6847
+ "text",
6848
+ "bracket",
6849
+ "y-threshold",
6850
+ "x-threshold",
6851
+ "band",
6852
+ "enclose",
6853
+ "rect-enclose",
6854
+ "highlight",
6855
+ "trend",
6856
+ "envelope",
6857
+ "anomaly-band",
6858
+ "forecast"
6859
+ ],
6860
+ "description": "Annotation type"
6861
+ }
6862
+ },
6863
+ "required": [
6864
+ "type"
6865
+ ]
6866
+ }
6867
+ },
6868
+ "axisExtent": {
6869
+ "type": "string",
6870
+ "enum": [
6871
+ "nice",
6872
+ "exact"
6873
+ ],
6874
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
6875
+ "default": "nice"
6876
+ },
6877
+ "edges": {
6878
+ "type": "array",
6879
+ "description": "Array of timed edge records with source, target, value, startTime, endTime. Omit for push-mode."
6880
+ },
6881
+ "nodes": {
6882
+ "type": "array",
6883
+ "description": "Optional array of node objects. Nodes may carry an `xExtent: [start, end]` to bound the lane explicitly."
6884
+ },
6885
+ "domain": {
6886
+ "type": "array",
6887
+ "description": "[tStart, tEnd] of the chart's x-axis (required)."
6888
+ },
6889
+ "axisTicks": {
6890
+ "type": "array",
6891
+ "description": "Optional [{ date, label }] tick array for the time axis."
6892
+ },
6893
+ "sourceAccessor": {
6894
+ "type": [
6895
+ "string",
6896
+ "function"
6897
+ ],
6898
+ "default": "source"
6899
+ },
6900
+ "targetAccessor": {
6901
+ "type": [
6902
+ "string",
6903
+ "function"
6904
+ ],
6905
+ "default": "target"
6906
+ },
6907
+ "valueAccessor": {
6908
+ "type": [
6909
+ "string",
6910
+ "function"
6911
+ ],
6912
+ "default": "value"
6913
+ },
6914
+ "nodeIdAccessor": {
6915
+ "type": [
6916
+ "string",
6917
+ "function"
6918
+ ],
6919
+ "default": "id"
6920
+ },
6921
+ "startTimeAccessor": {
6922
+ "type": [
6923
+ "string",
6924
+ "function"
6925
+ ],
6926
+ "default": "startTime"
6927
+ },
6928
+ "endTimeAccessor": {
6929
+ "type": [
6930
+ "string",
6931
+ "function"
6932
+ ],
6933
+ "default": "endTime"
6934
+ },
6935
+ "xExtentAccessor": {
6936
+ "type": [
6937
+ "string",
6938
+ "function"
6939
+ ],
6940
+ "default": "xExtent"
6941
+ },
6942
+ "edgeIdAccessor": {
6943
+ "type": [
6944
+ "string",
6945
+ "function"
6946
+ ],
6947
+ "default": "id"
6948
+ },
6949
+ "legendPosition": {
6950
+ "type": "string",
6951
+ "enum": [
6952
+ "right",
6953
+ "left",
6954
+ "top",
6955
+ "bottom"
6956
+ ],
6957
+ "default": "right"
6958
+ },
6959
+ "pairing": {
6960
+ "type": "string",
6961
+ "enum": [
6962
+ "value",
6963
+ "temporal"
6964
+ ],
6965
+ "description": "Edge-side pairing strategy at transit nodes.",
6966
+ "default": "temporal"
6967
+ },
6968
+ "packing": {
6969
+ "type": "string",
6970
+ "enum": [
6971
+ "off",
6972
+ "reuse"
6973
+ ],
6974
+ "description": "Lane reuse — pack lifetime-disjoint nodes into the same row.",
6975
+ "default": "reuse"
6976
+ },
6977
+ "laneOrder": {
6978
+ "type": "string",
6979
+ "enum": [
6980
+ "insertion",
6981
+ "crossing-min",
6982
+ "inside-out",
6983
+ "crossing-min+inside-out"
6984
+ ],
6985
+ "default": "crossing-min"
6986
+ },
6987
+ "ribbonLane": {
6988
+ "type": "string",
6989
+ "enum": [
6990
+ "source",
6991
+ "target",
6992
+ "both"
6993
+ ],
6994
+ "default": "both"
6995
+ },
6996
+ "lifetimeMode": {
6997
+ "type": "string",
6998
+ "enum": [
6999
+ "full",
7000
+ "half"
7001
+ ],
7002
+ "default": "half"
7003
+ },
7004
+ "showLaneRails": {
7005
+ "type": "boolean",
7006
+ "default": false
7007
+ },
7008
+ "showQualityReadout": {
7009
+ "type": "boolean",
7010
+ "default": false
7011
+ },
7012
+ "edgeOpacity": {
7013
+ "type": "number",
7014
+ "default": 0.35
7015
+ },
7016
+ "showParticles": {
7017
+ "type": "boolean",
7018
+ "default": false
7019
+ },
7020
+ "particleStyle": {
7021
+ "type": "object",
7022
+ "description": "ParticleStyle config — same shape as SankeyDiagram. Defaults from DEFAULT_PARTICLE_STYLE (radius 3, opacity 0.7, spawnRate 0.1, maxPerEdge 50)."
7023
+ }
7024
+ },
7025
+ "required": [
7026
+ "domain"
7027
+ ]
7028
+ }
7029
+ }
7030
+ },
7031
+ {
7032
+ "type": "function",
7033
+ "function": {
7034
+ "name": "DifferenceChart",
7035
+ "description": "Two-series difference chart: fills the area between series A and series B with a color that switches at each crossover — A's color where A > B, B's color where B > A. Crossovers are linearly interpolated so segments meet at zero-width vertices. Both series can be drawn as overlay lines on top of the fill. Classic uses: temperature anomaly (actual vs. normal), forecast accuracy (actual vs. predicted), budget variance.",
7036
+ "parameters": {
7037
+ "type": "object",
7038
+ "properties": {
7039
+ "width": {
7040
+ "type": "number",
7041
+ "default": 600
7042
+ },
7043
+ "height": {
7044
+ "type": "number",
7045
+ "default": 400
7046
+ },
7047
+ "margin": {
7048
+ "type": "object"
7049
+ },
7050
+ "className": {
7051
+ "type": "string"
7052
+ },
7053
+ "title": {
7054
+ "type": "string"
7055
+ },
7056
+ "enableHover": {
7057
+ "type": "boolean",
7058
+ "default": true
7059
+ },
7060
+ "showLegend": {
7061
+ "type": "boolean"
7062
+ },
7063
+ "showGrid": {
7064
+ "type": "boolean",
7065
+ "default": false
7066
+ },
7067
+ "colorBy": {
7068
+ "type": [
7069
+ "string",
7070
+ "function"
7071
+ ]
7072
+ },
7073
+ "colorScheme": {
7074
+ "type": [
7075
+ "string",
7076
+ "array"
7077
+ ],
7078
+ "default": "category10"
7079
+ },
7080
+ "tooltip": {
7081
+ "type": [
7082
+ "boolean",
7083
+ "function",
7084
+ "object"
7085
+ ]
7086
+ },
7087
+ "annotations": {
7088
+ "type": "array",
7089
+ "description": "Annotation objects to render on the chart. Each must have a `type` field. Position using your data field names (e.g. { type: \"widget\", month: \"Jan\", revenue: 500 }). Supported types: \"widget\" (arbitrary HTML/React content via foreignObject — v3 replacement for htmlAnnotationRules), \"label\" (callout with connector), \"callout\" (circle + label), \"text\" (plain label), \"y-threshold\" (horizontal reference line), \"x-threshold\" (vertical reference line), \"band\" (shaded y-region), \"enclose\" (circle around points), \"rect-enclose\" (rect around points), \"highlight\" (colored dots on filtered points), \"trend\" (regression line), \"envelope\" (upper/lower bounds), \"anomaly-band\" (mean ± stddev), \"forecast\" (extrapolated trend). Widget annotations accept: content (ReactNode), dx, dy, width, height, anchor (\"fixed\"|\"latest\"|\"sticky\"). Threshold annotations accept: value, label, color, strokeWidth, strokeDasharray. Enclose annotations accept: coordinates (array of data objects), label, color, padding.",
7090
+ "items": {
7091
+ "type": "object",
7092
+ "properties": {
7093
+ "type": {
7094
+ "type": "string",
7095
+ "enum": [
7096
+ "widget",
7097
+ "label",
7098
+ "callout",
7099
+ "text",
7100
+ "bracket",
7101
+ "y-threshold",
7102
+ "x-threshold",
7103
+ "band",
7104
+ "enclose",
7105
+ "rect-enclose",
7106
+ "highlight",
7107
+ "trend",
7108
+ "envelope",
7109
+ "anomaly-band",
7110
+ "forecast"
7111
+ ],
7112
+ "description": "Annotation type"
7113
+ }
7114
+ },
7115
+ "required": [
7116
+ "type"
7117
+ ]
7118
+ }
7119
+ },
7120
+ "axisExtent": {
7121
+ "type": "string",
7122
+ "enum": [
7123
+ "nice",
7124
+ "exact"
7125
+ ],
7126
+ "description": "Tick endpoint mode. \"nice\" rounds endpoints to readable values; \"exact\" pins the first and last tick to the actual data min and max with equidistant intermediates. Affects XY x/y axes and ordinal value axis only.",
7127
+ "default": "nice"
7128
+ },
7129
+ "xLabel": {
7130
+ "type": "string"
7131
+ },
7132
+ "yLabel": {
7133
+ "type": "string"
7134
+ },
7135
+ "data": {
7136
+ "type": "array",
7137
+ "description": "Array of `{x, a, b}` objects. Omit for push API mode."
7138
+ },
7139
+ "xAccessor": {
7140
+ "type": [
7141
+ "string",
7142
+ "function"
7143
+ ],
7144
+ "description": "Key for x values",
7145
+ "default": "x"
7146
+ },
7147
+ "seriesAAccessor": {
7148
+ "type": [
7149
+ "string",
7150
+ "function"
7151
+ ],
7152
+ "description": "Key for series A values",
7153
+ "default": "a"
7154
+ },
7155
+ "seriesBAccessor": {
7156
+ "type": [
7157
+ "string",
7158
+ "function"
7159
+ ],
7160
+ "description": "Key for series B values",
7161
+ "default": "b"
7162
+ },
7163
+ "seriesALabel": {
7164
+ "type": "string",
7165
+ "description": "Display label for series A in legend + tooltip",
7166
+ "default": "A"
7167
+ },
7168
+ "seriesBLabel": {
7169
+ "type": "string",
7170
+ "description": "Display label for series B",
7171
+ "default": "B"
7172
+ },
7173
+ "seriesAColor": {
7174
+ "type": "string",
7175
+ "description": "Fill color when series A is higher. Defaults to var(--semiotic-danger)."
7176
+ },
7177
+ "seriesBColor": {
7178
+ "type": "string",
7179
+ "description": "Fill color when series B is higher. Defaults to var(--semiotic-info)."
7180
+ },
7181
+ "showLines": {
7182
+ "type": "boolean",
7183
+ "description": "Draw the two series as overlay lines on top of the fill",
7184
+ "default": true
7185
+ },
7186
+ "lineWidth": {
7187
+ "type": "number",
7188
+ "default": 1.5
7189
+ },
7190
+ "showPoints": {
7191
+ "type": "boolean",
7192
+ "description": "Show points at each data vertex on the overlay lines",
7193
+ "default": false
7194
+ },
7195
+ "pointRadius": {
7196
+ "type": "number",
7197
+ "default": 3
7198
+ },
7199
+ "curve": {
7200
+ "type": "string",
7201
+ "enum": [
7202
+ "linear",
7203
+ "monotoneX",
7204
+ "monotoneY",
7205
+ "step",
7206
+ "stepAfter",
7207
+ "stepBefore",
7208
+ "basis",
7209
+ "cardinal",
7210
+ "catmullRom"
7211
+ ],
7212
+ "default": "linear"
7213
+ },
7214
+ "areaOpacity": {
7215
+ "type": "number",
7216
+ "description": "Difference fill opacity (0-1)",
7217
+ "default": 0.6
7218
+ },
7219
+ "gradientFill": {
7220
+ "type": [
7221
+ "boolean",
7222
+ "object"
7223
+ ],
7224
+ "description": "Tip→base gradient across each segment; same shape as AreaChart.gradientFill"
7225
+ },
7226
+ "xExtent": {
7227
+ "type": "array",
7228
+ "description": "Fixed x domain `[min, max]`. Either bound may be `undefined`."
7229
+ },
7230
+ "yExtent": {
7231
+ "type": "array",
7232
+ "description": "Fixed y domain `[min, max]`. Either bound may be `undefined`."
7233
+ },
7234
+ "pointIdAccessor": {
7235
+ "type": [
7236
+ "string",
7237
+ "function"
7238
+ ],
7239
+ "description": "Stable ID for push-mode remove()/update()"
7240
+ },
7241
+ "windowSize": {
7242
+ "type": "number",
7243
+ "description": "Max raw rows in the push buffer; older rows evict FIFO. Recommended for long-running streams."
7244
+ }
7245
+ },
7246
+ "required": []
7247
+ }
7248
+ }
6350
7249
  }
6351
7250
  ]
6352
7251
  }