chart-factory 0.1.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.
@@ -0,0 +1,864 @@
1
+ # Conformance matrix
2
+
3
+ > **Generated file — do not edit.** Source of truth: `metadata/*.mjs`
4
+ > (schema in [metadata/README.md](../metadata/README.md)). Regenerate with
5
+ > `npm run conformance`.
6
+
7
+ Universal options × builders. Legend: ✓ supported · ✗ intentionally
8
+ unsupported (reason in metadata) · 💥 **defective** (documented universal,
9
+ silently ignored — bug backlog) · `·` not applicable.
10
+
11
+ **79 builders · 1847 supported · 350 unsupported · 0 defective · 805 n/a**
12
+
13
+ ## Area
14
+
15
+ | Option | Basic | Diverging | Normalized | Smoothed | Stacked | Streamgraph |
16
+ |---|:---:|:---:|:---:|:---:|:---:|:---:|
17
+ | `xDomain` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
18
+ | `yDomain` | ✓ | ✓ | ✓* | ✓ | ✓ | ✓* |
19
+ | `xFormat` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
20
+ | `yFormat` | ✓ | ✓ | ✓ | ✓ | ✓ | · |
21
+ | `xLabel` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
22
+ | `yLabel` | ✓ | ✓ | ✓ | ✓ | ✓ | · |
23
+ | `color` | ✓ | · | · | ✓ | · | · |
24
+ | `colors` | · | · | ✓ | · | ✓ | ✓ |
25
+ | `colorMap` | · | · | ✗ | · | ✗ | ✗ |
26
+ | `showTooltip` | ✓ | ✓ | ✓* | ✓ | ✓* | ✓* |
27
+ | `tooltipContent` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
28
+ | `tooltipValueFormat` | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ |
29
+ | `annotations` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* |
30
+ | `extraLayers` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
31
+ | `onRender` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
32
+ | `title` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
33
+ | `subtitle` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
34
+ | `footer` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
35
+ | `story` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
36
+ | `legend` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
37
+ | `featured` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
38
+ | `state` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
39
+ | `emptyMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
40
+ | `errorMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
41
+ | `animate` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
42
+ | `nullGaps` | ✓ | ✓ | ✓* | ✓ | ✓* | ✓* |
43
+ | `logX` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
44
+ | `logY` | ✗ | ✗ | · | ✗ | ✗ | · |
45
+ | `niceX` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
46
+ | `linkGroup` | ✓ | ✓ | ✓* | ✓ | ✓* | ✓* |
47
+ | `brush` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
48
+ | `showXAxis` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
49
+ | `showYAxis` | ✓ | ✓ | ✓ | ✓ | ✓ | · |
50
+ | `showGridX` | · | · | · | · | · | ✓ |
51
+ | `showGridY` | ✓ | ✓ | ✓ | ✓ | ✓ | · |
52
+ | `showAxisLabels` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
53
+ | `xTickValues` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
54
+ | `yTickValues` | ✓ | ✓ | ✓ | ✓ | ✓ | · |
55
+
56
+ ## Line
57
+
58
+ | Option | AreaGradient | Basic | BumpChart | Combined | CumulativeVsMoving | DynamicBand | ForecastBand | GrowthRate | Multi | PulseAnomalies | Smoothed | Textures | Yearly | YoY |
59
+ |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
60
+ | `xDomain` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
61
+ | `yDomain` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ |
62
+ | `xFormat` | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
63
+ | `yFormat` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
64
+ | `xLabel` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
65
+ | `yLabel` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
66
+ | `color` | ✓ | ✓ | · | ✗ | ✗ | ✗ | ✗ | ✗ | · | ✗ | ✓ | · | ✓ | · |
67
+ | `colors` | · | · | ✓ | · | · | · | · | · | ✓ | · | · | ✗ | · | ✓ |
68
+ | `colorMap` | · | · | ✗ | · | · | · | · | · | · | · | · | · | · | · |
69
+ | `showTooltip` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ | ✓* | ✓ | ✓* |
70
+ | `tooltipContent` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
71
+ | `tooltipValueFormat` | ✓* | ✓* | ✗ | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* |
72
+ | `annotations` | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
73
+ | `extraLayers` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
74
+ | `onRender` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
75
+ | `title` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
76
+ | `subtitle` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
77
+ | `footer` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
78
+ | `story` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
79
+ | `legend` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
80
+ | `featured` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
81
+ | `state` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
82
+ | `emptyMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
83
+ | `errorMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
84
+ | `animate` | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓* | ✗ | ✗ | ✗ | ✗ |
85
+ | `nullGaps` | ✓ | ✓ | · | ✓* | ✓* | ✓* | ✓* | ✓ | ✓ | ✓* | ✓* | ✓ | ✓ | ✓ |
86
+ | `logX` | ✓* | ✓* | · | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* |
87
+ | `logY` | ✗ | ✗ | · | ✗ | ✗ | ✗ | ✗ | · | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
88
+ | `niceX` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
89
+ | `linkGroup` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ |
90
+ | `brush` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
91
+ | `showXAxis` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
92
+ | `showYAxis` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
93
+ | `showGridX` | · | · | · | · | · | · | · | · | · | · | · | · | · | · |
94
+ | `showGridY` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
95
+ | `showAxisLabels` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
96
+ | `xTickValues` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
97
+ | `yTickValues` | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
98
+
99
+ ## Slope
100
+
101
+ | Option | Animated | Bands | Basic | Categorical | Highlight | Indexed | Trend |
102
+ |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
103
+ | `xDomain` | · | · | · | · | · | · | · |
104
+ | `yDomain` | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ |
105
+ | `xFormat` | · | · | · | · | · | · | · |
106
+ | `yFormat` | · | · | · | · | · | · | · |
107
+ | `xLabel` | · | · | · | · | · | · | · |
108
+ | `yLabel` | · | · | · | · | · | · | · |
109
+ | `color` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
110
+ | `colors` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
111
+ | `colorMap` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
112
+ | `showTooltip` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
113
+ | `tooltipContent` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
114
+ | `tooltipValueFormat` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
115
+ | `annotations` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
116
+ | `extraLayers` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
117
+ | `onRender` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
118
+ | `title` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
119
+ | `subtitle` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
120
+ | `footer` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
121
+ | `story` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
122
+ | `legend` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
123
+ | `featured` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
124
+ | `state` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
125
+ | `emptyMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
126
+ | `errorMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
127
+ | `animate` | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
128
+ | `nullGaps` | · | · | · | · | · | · | · |
129
+ | `logX` | · | · | · | · | · | · | · |
130
+ | `logY` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
131
+ | `niceX` | · | · | · | · | · | · | · |
132
+ | `linkGroup` | · | · | · | · | · | · | · |
133
+ | `brush` | · | · | · | · | · | · | · |
134
+ | `showXAxis` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
135
+ | `showYAxis` | · | · | · | · | · | · | · |
136
+ | `showGridX` | · | · | · | · | · | · | · |
137
+ | `showGridY` | · | · | · | · | · | · | · |
138
+ | `showAxisLabels` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
139
+ | `xTickValues` | · | · | · | · | · | · | · |
140
+ | `yTickValues` | · | · | · | · | · | · | · |
141
+
142
+ ## Bar
143
+
144
+ | Option | Basic | Bullet | Diverging | Gantt | Grouped | Inline | LabelAbove | Likert | Progress | Pyramid | Range | Stacked | Vertical | VerticalNormalized | VerticalStacked | Waterfall |
145
+ |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
146
+ | `xDomain` | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓ | ✓* | ·* | ·* | ·* | ✓* |
147
+ | `yDomain` | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ✓* | ·* | ✓* | ·* |
148
+ | `xFormat` | ·* | ·* | ·* | ✓* | ·* | ·* | ·* | ·* | ·* | ·* | ✓* | ·* | ✓ | ✓ | ✓ | ✓* |
149
+ | `yFormat` | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ✓ | ✗ | ✓ | ·* |
150
+ | `xLabel` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
151
+ | `yLabel` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
152
+ | `color` | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ |
153
+ | `colors` | · | · | · | · | ✓ | · | · | ✓ | · | ✓ | · | ✓ | · | ✓ | ✓ | · |
154
+ | `colorMap` | · | · | · | ·* | ✗ | · | · | ✗ | ·* | ✗ | ·* | ✗ | · | ✗ | ✗ | ·* |
155
+ | `showTooltip` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
156
+ | `tooltipContent` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* |
157
+ | `tooltipValueFormat` | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ |
158
+ | `annotations` | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* |
159
+ | `extraLayers` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
160
+ | `onRender` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
161
+ | `title` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
162
+ | `subtitle` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
163
+ | `footer` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
164
+ | `story` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
165
+ | `legend` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
166
+ | `featured` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
167
+ | `state` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
168
+ | `emptyMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
169
+ | `errorMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
170
+ | `animate` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
171
+ | `nullGaps` | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* |
172
+ | `logX` | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ✗ | ·* | ·* | ·* | ·* | ·* |
173
+ | `logY` | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* | ·* |
174
+ | `niceX` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ·* | ·* | ·* | ✗ |
175
+ | `linkGroup` | · | · | · | ✗ | · | · | · | · | · | · | · | · | · | · | · | · |
176
+ | `brush` | · | · | · | ✗ | · | · | · | · | · | · | · | · | · | · | · | · |
177
+ | `showXAxis` | · | · | · | ✓ | · | · | · | · | · | · | ✓ | · | ✓ | ✓ | ✓ | ✓ |
178
+ | `showYAxis` | ✓ | ✓ | ✓ | ✓ | ✓ | · | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
179
+ | `showGridX` | · | · | · | ✓ | · | · | · | ✓* | · | ✓* | ✓ | · | · | · | · | ✓* |
180
+ | `showGridY` | · | · | · | · | · | · | · | · | · | · | · | · | ✓ | ✓ | ✓ | · |
181
+ | `showAxisLabels` | ✓ | ✓ | ✓ | ✓ | ✓ | · | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
182
+ | `xTickValues` | · | · | · | ✓* | · | · | · | · | · | · | ✓ | · | · | · | · | ✓ |
183
+ | `yTickValues` | · | · | · | · | · | · | · | · | · | · | · | · | ✓ | ✗ | ✓ | · |
184
+
185
+ ## Scatter
186
+
187
+ | Option | Animated | Basic | Beeswarm | BeeswarmHorizontal | BeeswarmLogos | BeeswarmVertical | Comet | Contour | Diagonal | Heatmap | Hexbin | KDE | Logos | Marginal | MarginalKDE | MarginalSimple | Quadrant | Trajectory |
188
+ |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
189
+ | `xDomain` | ✓ | ✓ | ✓ | ✓ | ·* | ·* | ✓* | ✓ | ✓* | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
190
+ | `yDomain` | ✓ | ✓ | ·* | ·* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
191
+ | `xFormat` | ✓ | ✓ | ✗ | ✗ | · | ·* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
192
+ | `yFormat` | ✓ | ✓ | ·* | · | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
193
+ | `xLabel` | ✓ | ✓ | ✗ | ✓ | ·* | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
194
+ | `yLabel` | ✓ | ✓ | ✗ | ·* | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
195
+ | `color` | ✓ | ✓ | ✓ | ✓* | ·* | ✓* | ✓ | · | ✗ | · | · | ✗ | ·* | ✓ | ✓ | ✓ | ✗ | ✓ |
196
+ | `colors` | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ | · | · | · | · | · | · | ✓ | ✓ | · | ✓ | ✓ |
197
+ | `colorMap` | ✗ | ✓* | ✗ | ✗ | · | ✗ | ✗ | · | · | · | · | · | · | ✗ | ✗ | · | ✓ | ✗ |
198
+ | `showTooltip` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
199
+ | `tooltipContent` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
200
+ | `tooltipValueFormat` | ✗ | ✗* | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓* | ✓* | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
201
+ | `annotations` | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | ✓ | ✓ | ✓ | ✓* | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | ✓ | ✓ |
202
+ | `extraLayers` | ✓ | ✓ | · | · | · | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
203
+ | `onRender` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
204
+ | `title` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
205
+ | `subtitle` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
206
+ | `footer` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
207
+ | `story` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
208
+ | `legend` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
209
+ | `featured` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
210
+ | `state` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
211
+ | `emptyMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
212
+ | `errorMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
213
+ | `animate` | ✓* | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
214
+ | `nullGaps` | ·* | ·* | ·* | ·* | ·* | ·* | ·* | · | · | · | · | · | ·* | · | · | · | · | ✗ |
215
+ | `logX` | ✓ | ✓ | ✗ | ✗ | · | · | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
216
+ | `logY` | ✓ | ✓ | · | · | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
217
+ | `niceX` | ✗ | ✗ | ✗ | ✗ | ·* | ·* | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
218
+ | `linkGroup` | ✗ | ✓* | · | · | · | · | ✗ | ✗ | ✓* | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓* | ✗ |
219
+ | `brush` | ✗ | ✓ | · | · | · | · | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ |
220
+ | `showXAxis` | ✓ | ✓ | ✓ | ✓ | · | ·* | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
221
+ | `showYAxis` | ✓ | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
222
+ | `showGridX` | ✓ | ✓ | ✓ | ✓* | · | · | ✓ | · | ✓ | · | · | · | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ |
223
+ | `showGridY` | ✓ | ✓ | · | · | ✓* | ✓* | ✓ | · | ✓ | · | · | · | ✓ | ✓ | ✓ | ✓ | ✓* | ✓ |
224
+ | `showAxisLabels` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
225
+ | `xTickValues` | ✓ | ✓ | ✗ | ✗ | · | · | ✓ | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
226
+ | `yTickValues` | ✓ | ✓ | · | · | ✗ | ✗ | ✓ | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
227
+
228
+ ## Dot
229
+
230
+ | Option | Basic | Comet | Confidence | Dumbbell | Gradient | Percentile | UnitHistogram |
231
+ |---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
232
+ | `xDomain` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · |
233
+ | `yDomain` | · | · | · | · | · | · | · |
234
+ | `xFormat` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✗ |
235
+ | `yFormat` | · | · | · | · | · | · | · |
236
+ | `xLabel` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
237
+ | `yLabel` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | · |
238
+ | `color` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
239
+ | `colors` | ✗ | · | · | · | · | ✗ | ✗ |
240
+ | `colorMap` | ✗ | · | · | · | · | · | ✗ |
241
+ | `showTooltip` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
242
+ | `tooltipContent` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
243
+ | `tooltipValueFormat` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* |
244
+ | `annotations` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
245
+ | `extraLayers` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
246
+ | `onRender` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
247
+ | `title` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
248
+ | `subtitle` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
249
+ | `footer` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
250
+ | `story` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
251
+ | `legend` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
252
+ | `featured` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
253
+ | `state` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
254
+ | `emptyMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
255
+ | `errorMessage` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
256
+ | `animate` | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
257
+ | `nullGaps` | · | · | · | · | · | · | · |
258
+ | `logX` | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | · |
259
+ | `logY` | · | · | · | · | · | · | · |
260
+ | `niceX` | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | · |
261
+ | `linkGroup` | · | · | · | · | · | · | · |
262
+ | `brush` | · | · | · | · | · | · | · |
263
+ | `showXAxis` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
264
+ | `showYAxis` | ✓* | ✓* | ✓* | ✓* | ✓* | ✓* | · |
265
+ | `showGridX` | ✓ | ✓ | ✓* | ✓ | ✓ | ✓ | · |
266
+ | `showGridY` | · | · | · | · | · | · | · |
267
+ | `showAxisLabels` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
268
+ | `xTickValues` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · |
269
+ | `yTickValues` | · | · | · | · | · | · | · |
270
+
271
+ ## Histogram
272
+
273
+ | Option | Basic | Overlay |
274
+ |---|:---:|:---:|
275
+ | `xDomain` | ✓* | ✓* |
276
+ | `yDomain` | ✓ | ✓ |
277
+ | `xFormat` | ✓ | ✓ |
278
+ | `yFormat` | ✓* | ✓* |
279
+ | `xLabel` | ✓ | ✓ |
280
+ | `yLabel` | ✓ | ✓ |
281
+ | `color` | ✓ | · |
282
+ | `colors` | · | ✓ |
283
+ | `colorMap` | · | ✗ |
284
+ | `showTooltip` | ✓ | ✓ |
285
+ | `tooltipContent` | ✓ | ✓ |
286
+ | `tooltipValueFormat` | ✓* | ✓* |
287
+ | `annotations` | ✓ | ✓ |
288
+ | `extraLayers` | ✓ | ✓ |
289
+ | `onRender` | ✓ | ✓ |
290
+ | `title` | ✓ | ✓ |
291
+ | `subtitle` | ✓ | ✓ |
292
+ | `footer` | ✓ | ✓ |
293
+ | `story` | ✓ | ✓ |
294
+ | `legend` | ✓ | ✓ |
295
+ | `featured` | ✓ | ✓ |
296
+ | `state` | ✓ | ✓ |
297
+ | `emptyMessage` | ✓ | ✓ |
298
+ | `errorMessage` | ✓ | ✓ |
299
+ | `animate` | ✓ | ✓ |
300
+ | `nullGaps` | · | · |
301
+ | `logX` | ✗ | ✗ |
302
+ | `logY` | ✗ | ✗ |
303
+ | `niceX` | · | · |
304
+ | `linkGroup` | ✓* | ✓* |
305
+ | `brush` | ✓ | ✓ |
306
+ | `showXAxis` | ✓ | ✓ |
307
+ | `showYAxis` | ✓ | ✓ |
308
+ | `showGridX` | · | · |
309
+ | `showGridY` | ✓ | ✓ |
310
+ | `showAxisLabels` | ✓ | ✓ |
311
+ | `xTickValues` | ✓ | ✓ |
312
+ | `yTickValues` | ✓ | ✓ |
313
+
314
+ ## Donut
315
+
316
+ | Option | Basic |
317
+ |---|:---:|
318
+ | `xDomain` | · |
319
+ | `yDomain` | · |
320
+ | `xFormat` | · |
321
+ | `yFormat` | · |
322
+ | `xLabel` | · |
323
+ | `yLabel` | · |
324
+ | `color` | · |
325
+ | `colors` | ✓ |
326
+ | `colorMap` | ✓ |
327
+ | `showTooltip` | ✓ |
328
+ | `tooltipContent` | ✓ |
329
+ | `tooltipValueFormat` | ✓* |
330
+ | `annotations` | · |
331
+ | `extraLayers` | · |
332
+ | `onRender` | ✓ |
333
+ | `title` | ✓ |
334
+ | `subtitle` | ✓ |
335
+ | `footer` | ✓ |
336
+ | `story` | ✓ |
337
+ | `legend` | ✓ |
338
+ | `featured` | ✓ |
339
+ | `state` | ✓ |
340
+ | `emptyMessage` | ✓ |
341
+ | `errorMessage` | ✓ |
342
+ | `animate` | ✓ |
343
+ | `nullGaps` | · |
344
+ | `logX` | · |
345
+ | `logY` | · |
346
+ | `niceX` | · |
347
+ | `linkGroup` | · |
348
+ | `brush` | · |
349
+ | `showXAxis` | · |
350
+ | `showYAxis` | · |
351
+ | `showGridX` | · |
352
+ | `showGridY` | · |
353
+ | `showAxisLabels` | · |
354
+ | `xTickValues` | · |
355
+ | `yTickValues` | · |
356
+
357
+ ## BoxPlot
358
+
359
+ | Option | Basic |
360
+ |---|:---:|
361
+ | `xDomain` | · |
362
+ | `yDomain` | ✓ |
363
+ | `xFormat` | ✓ |
364
+ | `yFormat` | ✓ |
365
+ | `xLabel` | ✗ |
366
+ | `yLabel` | ✗ |
367
+ | `color` | ✓ |
368
+ | `colors` | ✗ |
369
+ | `colorMap` | ✓ |
370
+ | `showTooltip` | ✓ |
371
+ | `tooltipContent` | ✓ |
372
+ | `tooltipValueFormat` | ✓* |
373
+ | `annotations` | ✓ |
374
+ | `extraLayers` | ✓ |
375
+ | `onRender` | ✓ |
376
+ | `title` | ✓ |
377
+ | `subtitle` | ✓ |
378
+ | `footer` | ✓ |
379
+ | `story` | ✓ |
380
+ | `legend` | ✓ |
381
+ | `featured` | ✓ |
382
+ | `state` | ✓ |
383
+ | `emptyMessage` | ✓ |
384
+ | `errorMessage` | ✓ |
385
+ | `animate` | ✗ |
386
+ | `nullGaps` | · |
387
+ | `logX` | · |
388
+ | `logY` | ✗ |
389
+ | `niceX` | · |
390
+ | `linkGroup` | · |
391
+ | `brush` | · |
392
+ | `showXAxis` | ✓ |
393
+ | `showYAxis` | ✓ |
394
+ | `showGridX` | · |
395
+ | `showGridY` | ✓ |
396
+ | `showAxisLabels` | ✓ |
397
+ | `xTickValues` | · |
398
+ | `yTickValues` | ✓ |
399
+
400
+ ## Calendar
401
+
402
+ | Option | Heatmap |
403
+ |---|:---:|
404
+ | `xDomain` | · |
405
+ | `yDomain` | · |
406
+ | `xFormat` | · |
407
+ | `yFormat` | · |
408
+ | `xLabel` | · |
409
+ | `yLabel` | · |
410
+ | `color` | · |
411
+ | `colors` | · |
412
+ | `colorMap` | · |
413
+ | `showTooltip` | ✓ |
414
+ | `tooltipContent` | ✓ |
415
+ | `tooltipValueFormat` | ✓* |
416
+ | `annotations` | · |
417
+ | `extraLayers` | · |
418
+ | `onRender` | ✓ |
419
+ | `title` | ✓ |
420
+ | `subtitle` | ✓ |
421
+ | `footer` | ✓ |
422
+ | `story` | ✓ |
423
+ | `legend` | ✓ |
424
+ | `featured` | ✓ |
425
+ | `state` | ✓ |
426
+ | `emptyMessage` | ✓ |
427
+ | `errorMessage` | ✓ |
428
+ | `animate` | ✗ |
429
+ | `nullGaps` | · |
430
+ | `logX` | · |
431
+ | `logY` | · |
432
+ | `niceX` | · |
433
+ | `linkGroup` | · |
434
+ | `brush` | · |
435
+ | `showXAxis` | · |
436
+ | `showYAxis` | · |
437
+ | `showGridX` | · |
438
+ | `showGridY` | · |
439
+ | `showAxisLabels` | · |
440
+ | `xTickValues` | · |
441
+ | `yTickValues` | · |
442
+
443
+ ## Sankey
444
+
445
+ | Option | Basic |
446
+ |---|:---:|
447
+ | `xDomain` | · |
448
+ | `yDomain` | · |
449
+ | `xFormat` | · |
450
+ | `yFormat` | · |
451
+ | `xLabel` | · |
452
+ | `yLabel` | · |
453
+ | `color` | · |
454
+ | `colors` | ✓ |
455
+ | `colorMap` | ✓ |
456
+ | `showTooltip` | ✓ |
457
+ | `tooltipContent` | ✓ |
458
+ | `tooltipValueFormat` | ✓* |
459
+ | `annotations` | · |
460
+ | `extraLayers` | · |
461
+ | `onRender` | ✓ |
462
+ | `title` | ✓ |
463
+ | `subtitle` | ✓ |
464
+ | `footer` | ✓ |
465
+ | `story` | ✓ |
466
+ | `legend` | ✓ |
467
+ | `featured` | ✓ |
468
+ | `state` | ✓ |
469
+ | `emptyMessage` | ✓ |
470
+ | `errorMessage` | ✓ |
471
+ | `animate` | ✓* |
472
+ | `nullGaps` | · |
473
+ | `logX` | · |
474
+ | `logY` | · |
475
+ | `niceX` | · |
476
+ | `linkGroup` | · |
477
+ | `brush` | · |
478
+ | `showXAxis` | · |
479
+ | `showYAxis` | · |
480
+ | `showGridX` | · |
481
+ | `showGridY` | · |
482
+ | `showAxisLabels` | · |
483
+ | `xTickValues` | · |
484
+ | `yTickValues` | · |
485
+
486
+ ## Table
487
+
488
+ | Option | Basic | Combined | Sortable | WithBars | WithHeatmap |
489
+ |---|:---:|:---:|:---:|:---:|:---:|
490
+ | `xDomain` | · | · | · | · | · |
491
+ | `yDomain` | · | · | · | · | · |
492
+ | `xFormat` | · | · | · | · | · |
493
+ | `yFormat` | · | · | · | · | · |
494
+ | `xLabel` | · | · | · | · | · |
495
+ | `yLabel` | · | · | · | · | · |
496
+ | `color` | ✗ | ✗ | ✗ | ✗ | ✗ |
497
+ | `colors` | ✗ | ✗ | ✗ | ✗ | ✗ |
498
+ | `colorMap` | · | · | · | · | · |
499
+ | `showTooltip` | ·* | ·* | ·* | ·* | ·* |
500
+ | `tooltipContent` | · | · | · | · | · |
501
+ | `tooltipValueFormat` | · | · | · | · | · |
502
+ | `annotations` | ·* | ·* | ·* | ·* | ·* |
503
+ | `extraLayers` | · | · | · | · | · |
504
+ | `onRender` | ·* | ·* | ·* | ·* | ·* |
505
+ | `title` | · | · | · | · | · |
506
+ | `subtitle` | · | · | · | · | · |
507
+ | `footer` | · | · | · | · | · |
508
+ | `story` | · | · | · | · | · |
509
+ | `legend` | · | · | · | · | · |
510
+ | `featured` | · | · | · | · | · |
511
+ | `state` | · | · | · | · | · |
512
+ | `emptyMessage` | · | · | · | · | · |
513
+ | `errorMessage` | · | · | · | · | · |
514
+ | `animate` | ✗ | ✗ | ✗ | ✗ | ✗ |
515
+ | `nullGaps` | · | · | · | · | · |
516
+ | `logX` | · | · | · | · | · |
517
+ | `logY` | · | · | · | · | · |
518
+ | `niceX` | · | · | · | · | · |
519
+ | `linkGroup` | · | · | · | · | · |
520
+ | `brush` | · | · | · | · | · |
521
+ | `showXAxis` | · | · | · | · | · |
522
+ | `showYAxis` | · | · | · | · | · |
523
+ | `showGridX` | · | · | · | · | · |
524
+ | `showGridY` | · | · | · | · | · |
525
+ | `showAxisLabels` | · | · | · | · | · |
526
+ | `xTickValues` | · | · | · | · | · |
527
+ | `yTickValues` | · | · | · | · | · |
528
+
529
+ \* has a caveat or defect — details below.
530
+
531
+ ## Defects (0)
532
+
533
+ None. 🎉
534
+
535
+ ## Caveats (283)
536
+
537
+ | Builder | Option | Status | Note |
538
+ |---|---|---|---|
539
+ | Area.createNormalized | `yDomain` | supported | Direct opts.yDomain read (bypasses computeYDomain): a lone yMin or yMax is silently ignored — the wrapper only synthesizes yDomain when BOTH ends are present (L11685-11689). |
540
+ | Area.createNormalized | `showTooltip` | supported | Hover-line tooltip over the whole plot — works without point markers. |
541
+ | Area.createNormalized | `tooltipValueFormat` | supported | The formatter receives each key's share FRACTION (0..1), not the raw value; the rounded "NN%" rendering stays the default. |
542
+ | Area.createNormalized | `nullGaps` | supported | Null/NaN key values count as 0 for stack POSITIONING and drop out of the share denominator (offsetExpand normalizes the sanitized values); the affected layer's own area/line break visually at those rows. |
543
+ | Area.createNormalized | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
544
+ | Area.createStacked | `showTooltip` | supported | Hover-line tooltip over the whole plot — works without point markers. |
545
+ | Area.createStacked | `nullGaps` | supported | Null/NaN key values count as 0 for stack POSITIONING (other layers keep stacking) while the affected layer's own area/line break visually at those rows. |
546
+ | Area.createStacked | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
547
+ | Area.createStreamgraph | `yDomain` | supported | Y values live in wiggle-offset space (not data units), so the override is mostly useful for adding headroom. |
548
+ | Area.createStreamgraph | `showTooltip` | supported | Hover-line tooltip: keys sorted by value desc, zero values skipped, share bars per row. |
549
+ | Area.createStreamgraph | `annotations` | supported | y-based annotations (yLine/yBand/point y) are positioned in wiggle-stack space, not data units — xLine/xBand are the useful ones here. |
550
+ | Area.createStreamgraph | `nullGaps` | supported | Null/NaN key values count as 0 for stack POSITIONING (the wiggle offset keeps flowing) while the affected layer breaks visually at those rows. |
551
+ | Area.createStreamgraph | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
552
+ | Bar.createBasic | `xDomain` | supported | Negative values are first-class: the default domain widens to [min*1.1, max*1.1] and bars grow left from a zero baseline (drawn when the domain spans both signs), with value labels at the outer end. With allowNonZeroBaseline and an explicit domain excluding zero, bars grow from the nearest domain edge, clamped to the plot. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
553
+ | Bar.createBasic | `yDomain` | na | Y is a categorical band axis of row labels (L4076-4079). |
554
+ | Bar.createBasic | `xFormat` | na | No value axis is rendered — no ticks to format. Bar-end labels use valueFormat. |
555
+ | Bar.createBasic | `yFormat` | na | No y axis; category labels are drawn directly from categoryAccessor. |
556
+ | Bar.createBasic | `annotations` | supported | y is a band scale — yLine/yBand values must be category strings. |
557
+ | Bar.createBasic | `nullGaps` | na | No path geometry. |
558
+ | Bar.createBasic | `logX` | na | Bars measure from a zero baseline — a log value axis is geometrically meaningless. API.md L29 scopes log to Scatter.createBasic and trend x. |
559
+ | Bar.createBasic | `logY` | na | Categorical band axis. |
560
+ | Bar.createBullet | `xDomain` | supported | With allowNonZeroBaseline and a nonzero domain min, measure/range bars still start at the axis (range 0) and widths clamp to ≥0. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
561
+ | Bar.createBullet | `yDomain` | na | Y is a categorical band axis (L4617-4620). |
562
+ | Bar.createBullet | `xFormat` | na | No value axis rendered; the tooltip uses valueFormat. |
563
+ | Bar.createBullet | `yFormat` | na | No y axis; category labels come from categoryAccessor. |
564
+ | Bar.createBullet | `annotations` | supported | y is a band scale — yLine/yBand values must be category strings. |
565
+ | Bar.createBullet | `nullGaps` | na | No path geometry. |
566
+ | Bar.createBullet | `logX` | na | Zero-baseline bars — log value axis is geometrically meaningless. |
567
+ | Bar.createBullet | `logY` | na | Categorical band axis. |
568
+ | Bar.createDiverging | `xDomain` | supported | The center stays at value 0 (the label column), so each side scales to its own domain end — an asymmetric override gives the two sides different pixels-per-unit. The returned chart.x is a composite piecewise scale with 0 duplicated in the domain (exact everywhere; 0 maps to the label-column right edge). |
569
+ | Bar.createDiverging | `yDomain` | na | Y is a categorical band axis (L4778-4781). |
570
+ | Bar.createDiverging | `xFormat` | na | No value axis rendered; bar-end labels use valueFormat. |
571
+ | Bar.createDiverging | `yFormat` | na | No y axis; center-column labels come from categoryAccessor. |
572
+ | Bar.createDiverging | `annotations` | supported | chart.x models the center label column explicitly (domain [min, 0, 0, max]) — negative values map onto the left half, 0 and positive values onto the right half, matching the bar geometry exactly on both sides. yLine/yBand values must be category strings (band y). |
573
+ | Bar.createDiverging | `nullGaps` | na | No path geometry. |
574
+ | Bar.createDiverging | `logX` | na | Diverging axis spans negative values — log is undefined. |
575
+ | Bar.createDiverging | `logY` | na | Categorical band axis. |
576
+ | Bar.createGantt | `xDomain` | supported | The documented builder-specific minTime/maxTime keep precedence over the universal spellings. Numeric overrides are coerced to Dates when the axis is time-based. |
577
+ | Bar.createGantt | `yDomain` | na | Y is a band scale over row indices (L5971-5974). |
578
+ | Bar.createGantt | `xFormat` | supported | xFormat only formats the AXIS ticks; dateFormat stays the default and keeps formatting the tooltip range (and the axis when xFormat is absent). |
579
+ | Bar.createGantt | `yFormat` | na | No y axis; row labels come from labelAccessor. |
580
+ | Bar.createGantt | `colorMap` | na | A colorAccessor function can implement any value -> color mapping. |
581
+ | Bar.createGantt | `annotations` | supported | xLine/xBand take Dates on time axes; y is a band scale over row INDICES, so yLine/yBand values are row indices. |
582
+ | Bar.createGantt | `nullGaps` | na | No path geometry. |
583
+ | Bar.createGantt | `logX` | na | Time (or plain linear range) axis — log has no meaning here and is scoped to Scatter.createBasic / trend x (API.md L29). |
584
+ | Bar.createGantt | `logY` | na | Categorical band axis. |
585
+ | Bar.createGantt | `xTickValues` | supported | Date coercion/domain filtering is central (resolveTickValues); values work on both time and plain linear gantt axes. |
586
+ | Bar.createGrouped | `xDomain` | supported | The documented builder-specific maxValue keeps precedence over the universal xMax spelling. With allowNonZeroBaseline and a nonzero domain min, bars still start at the axis (range 0) and widths clamp to ≥0. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
587
+ | Bar.createGrouped | `yDomain` | na | Two categorical band axes: y0 (categories, L5211-5214) and y1 (keys within a group, L5216-5219). |
588
+ | Bar.createGrouped | `xFormat` | na | No value axis rendered; bar-end labels use valueFormat. |
589
+ | Bar.createGrouped | `yFormat` | na | No y axis; category labels come from categoryAccessor. |
590
+ | Bar.createGrouped | `annotations` | supported | y is the outer category band scale (y0 alias) — yLine/yBand values must be category strings; a yLine sits at the group top edge. |
591
+ | Bar.createGrouped | `nullGaps` | na | No path geometry. |
592
+ | Bar.createGrouped | `logX` | na | Zero-baseline bars — log value axis is geometrically meaningless. |
593
+ | Bar.createGrouped | `logY` | na | Categorical band axes. |
594
+ | Bar.createInline | `xDomain` | supported | With allowNonZeroBaseline and a nonzero domain min, bars still start at the axis (range 0) and widths clamp to ≥0. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
595
+ | Bar.createInline | `yDomain` | na | Y is a categorical band axis (L4204-4207). |
596
+ | Bar.createInline | `xFormat` | na | No value axis rendered; bar-end labels use valueFormat. |
597
+ | Bar.createInline | `yFormat` | na | No y axis; inline category labels come from categoryAccessor. |
598
+ | Bar.createInline | `annotations` | supported | y is a band scale — yLine/yBand values must be category strings. |
599
+ | Bar.createInline | `nullGaps` | na | No path geometry. |
600
+ | Bar.createInline | `logX` | na | Zero-baseline bars — log value axis is geometrically meaningless (API.md L29 scopes log elsewhere). |
601
+ | Bar.createInline | `logY` | na | Categorical band axis. |
602
+ | Bar.createLabelAbove | `xDomain` | supported | With allowNonZeroBaseline and a nonzero domain min, bars still start at the axis (range 0) and widths clamp to ≥0. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
603
+ | Bar.createLabelAbove | `yDomain` | na | Rows are positioned by index; the returned y is a categorical band mirror of that layout — no numeric domain to pin. |
604
+ | Bar.createLabelAbove | `xFormat` | na | No value axis rendered; bar-end labels use valueFormat. |
605
+ | Bar.createLabelAbove | `yFormat` | na | No y axis; labels above bars come from categoryAccessor. |
606
+ | Bar.createLabelAbove | `annotations` | supported | y is a band scale — yLine/yBand values must be category strings; a yLine sits at the row top edge. |
607
+ | Bar.createLabelAbove | `nullGaps` | na | No path geometry. |
608
+ | Bar.createLabelAbove | `logX` | na | Zero-baseline bars — log value axis is geometrically meaningless. |
609
+ | Bar.createLabelAbove | `logY` | na | No y scale. |
610
+ | Bar.createLikert | `xDomain` | supported | xMax (alias of the xDomain group) sets maxExtent, the symmetric HALF-width: domain is [-xMax, xMax]. xMin is ignored. Default floor is max(±sums, 50) for survey percentages. |
611
+ | Bar.createLikert | `yDomain` | na | Y is a categorical band axis of questions (L5475-5478). |
612
+ | Bar.createLikert | `xFormat` | na | No tick labels — only dashed grid lines (L5502-5515) and the contextLabels caption row; segment labels use valueFormat. |
613
+ | Bar.createLikert | `yFormat` | na | No y axis; question labels come from categoryAccessor. |
614
+ | Bar.createLikert | `annotations` | supported | x is linear over [-maxExtent, maxExtent] (xLine at 0 = the center axis); y is a band scale of question strings. |
615
+ | Bar.createLikert | `animate` | supported | animate:false renders bars at final size — required when driving frame-to-frame animation via update(). |
616
+ | Bar.createLikert | `nullGaps` | na | No path geometry. |
617
+ | Bar.createLikert | `logX` | na | Diverging axis spans negative values — log is undefined. |
618
+ | Bar.createLikert | `logY` | na | Categorical band axis. |
619
+ | Bar.createLikert | `showGridX` | supported | The emphasized center zero line is part of the same grid group and is removed with it. |
620
+ | Bar.createProgress | `xDomain` | supported | The documented builder-specific maxValue keeps precedence over the universal xMax spelling. With allowNonZeroBaseline and a nonzero domain min, fill bars still start at the axis (range 0) and widths clamp to ≥0; tracks span the full range. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
621
+ | Bar.createProgress | `yDomain` | na | Y is a categorical band axis (L4450-4453). |
622
+ | Bar.createProgress | `xFormat` | na | No value axis rendered; value labels use valueFormat. |
623
+ | Bar.createProgress | `yFormat` | na | No y axis; category labels come from categoryAccessor. |
624
+ | Bar.createProgress | `colorMap` | na | Per-value coloring is the colorScale option. |
625
+ | Bar.createProgress | `annotations` | supported | y is a band scale — yLine/yBand values must be category strings. |
626
+ | Bar.createProgress | `nullGaps` | na | No path geometry. |
627
+ | Bar.createProgress | `logX` | na | Zero-baseline progress bars — log value axis is geometrically meaningless. |
628
+ | Bar.createProgress | `logY` | na | Categorical band axis. |
629
+ | Bar.createPyramid | `xDomain` | supported | xMax (alias of the xDomain group) sets maxExtent, the symmetric HALF-width: domain is [-xMax, xMax]. xMin is ignored. Default fits the data (max wing ×1.05) — no Likert 50-percent floor. |
630
+ | Bar.createPyramid | `yDomain` | na | Y is a categorical band axis of categories. |
631
+ | Bar.createPyramid | `xFormat` | na | No tick labels — only dashed grid lines and the contextLabels caption row; segment labels use valueFormat. |
632
+ | Bar.createPyramid | `yFormat` | na | No y axis; category labels come from categoryAccessor. |
633
+ | Bar.createPyramid | `annotations` | supported | x is linear over [-maxExtent, maxExtent] — LEFT-wing positions are negative x values (xLine at 0 = the center axis); y is a band scale of category strings. |
634
+ | Bar.createPyramid | `animate` | supported | animate:false renders bars at final size — required when driving frame-to-frame animation via update(). |
635
+ | Bar.createPyramid | `nullGaps` | na | No path geometry. |
636
+ | Bar.createPyramid | `logX` | na | Diverging axis spans negative values — log is undefined. |
637
+ | Bar.createPyramid | `logY` | na | Categorical band axis. |
638
+ | Bar.createPyramid | `showGridX` | supported | The emphasized center zero line is part of the same grid group and is removed with it. |
639
+ | Bar.createRange | `yDomain` | na | Y is a band scale over row indices. |
640
+ | Bar.createRange | `xFormat` | supported | xFormat only formats the AXIS ticks; valueFormat keeps formatting the tooltip range (and the axis when xFormat is absent). |
641
+ | Bar.createRange | `yFormat` | na | No y axis; row labels come from nameAccessor. |
642
+ | Bar.createRange | `colorMap` | na | A colorAccessor function can implement any value -> color mapping. |
643
+ | Bar.createRange | `annotations` | supported | x is linear over the value axis; y is a band scale over row INDICES, so yLine/yBand values are row indices. |
644
+ | Bar.createRange | `nullGaps` | na | No path geometry. |
645
+ | Bar.createRange | `logY` | na | Categorical band axis. |
646
+ | Bar.createStacked | `xDomain` | supported | With allowNonZeroBaseline and a nonzero domain min, the per-row clip paths clamp segments to the axis (range 0). Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
647
+ | Bar.createStacked | `yDomain` | na | Y is a categorical band axis (L4991-4994). |
648
+ | Bar.createStacked | `xFormat` | na | No value axis rendered; segment/total labels use valueFormat. |
649
+ | Bar.createStacked | `yFormat` | na | No y axis; category labels come from categoryAccessor. |
650
+ | Bar.createStacked | `annotations` | supported | y is a band scale — yLine/yBand values must be category strings. |
651
+ | Bar.createStacked | `nullGaps` | na | No path geometry. |
652
+ | Bar.createStacked | `logX` | na | Zero-baseline stacked bars — log value axis is geometrically meaningless. |
653
+ | Bar.createStacked | `logY` | na | Categorical band axis. |
654
+ | Bar.createVertical | `xDomain` | na | X is a categorical band axis (L6158-6161). |
655
+ | Bar.createVertical | `yDomain` | supported | Negative values are first-class: the default domain widens to [min*1.1, max*1.1] and columns hang below a zero baseline (drawn when the domain spans both signs), with value labels beneath them. With allowNonZeroBaseline and an explicit domain excluding zero, columns grow from the nearest domain edge, clamped to the plot. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
656
+ | Bar.createVertical | `annotations` | supported | x is a band scale — xLine/xBand values must be category strings; yLine takes numbers. |
657
+ | Bar.createVertical | `nullGaps` | na | No path geometry. |
658
+ | Bar.createVertical | `logX` | na | Categorical band axis. |
659
+ | Bar.createVertical | `logY` | na | Zero-baseline columns — a log value axis is geometrically meaningless. |
660
+ | Bar.createVertical | `niceX` | na | Categorical band x. |
661
+ | Bar.createVerticalNormalized | `xDomain` | na | X is a categorical band axis (L6513-6516). |
662
+ | Bar.createVerticalNormalized | `yDomain` | na | Y is definitionally [0, 100] — normalized percentages (L6518-6520); a domain override has no meaning. |
663
+ | Bar.createVerticalNormalized | `annotations` | supported | x is a band scale — xLine/xBand values must be category strings; yLine values are percentages 0-100. |
664
+ | Bar.createVerticalNormalized | `nullGaps` | na | No path geometry. |
665
+ | Bar.createVerticalNormalized | `logX` | na | Categorical band axis. |
666
+ | Bar.createVerticalNormalized | `logY` | na | Fixed 0-100% domain includes 0 — log is undefined. |
667
+ | Bar.createVerticalNormalized | `niceX` | na | Categorical band x. |
668
+ | Bar.createVerticalStacked | `xDomain` | na | X is a categorical band axis (L6318-6321). |
669
+ | Bar.createVerticalStacked | `yDomain` | supported | With allowNonZeroBaseline and a nonzero domain min, the per-category clip paths clamp segments to the baseline. Zero-baseline guard: an explicit domain excluding zero is clamped back to include 0 (one console warning) unless allowNonZeroBaseline: true. |
670
+ | Bar.createVerticalStacked | `annotations` | supported | x is a band scale — xLine/xBand values must be category strings; yLine takes numbers. |
671
+ | Bar.createVerticalStacked | `nullGaps` | na | No path geometry. |
672
+ | Bar.createVerticalStacked | `logX` | na | Categorical band axis. |
673
+ | Bar.createVerticalStacked | `logY` | na | Zero-baseline stacked columns — a log value axis is geometrically meaningless. |
674
+ | Bar.createVerticalStacked | `niceX` | na | Categorical band x. |
675
+ | Bar.createWaterfall | `xDomain` | supported | Overrides the axis window only — bar extents always come from the cumulative math. |
676
+ | Bar.createWaterfall | `yDomain` | na | Y is a band scale over row indices. |
677
+ | Bar.createWaterfall | `xFormat` | supported | xFormat only formats the AXIS ticks; valueFormat keeps formatting the axis when xFormat is absent, plus labels/tooltip. |
678
+ | Bar.createWaterfall | `yFormat` | na | No y axis; row labels come from nameAccessor. |
679
+ | Bar.createWaterfall | `colorMap` | na | A colorAccessor function (receives the computed { start, end, delta, running, kind } step) covers any mapping. |
680
+ | Bar.createWaterfall | `tooltipContent` | supported | tooltipContent(d) receives the step object: the original datum plus computed { start, end, delta, running, kind }. |
681
+ | Bar.createWaterfall | `annotations` | supported | x is linear over the value axis; y is a band scale over row INDICES, so yLine/yBand values are row indices. |
682
+ | Bar.createWaterfall | `nullGaps` | na | No path geometry. |
683
+ | Bar.createWaterfall | `logX` | na | Waterfall bars run through 0 (and running totals can go negative) — log is undefined. |
684
+ | Bar.createWaterfall | `logY` | na | Categorical band axis. |
685
+ | Bar.createWaterfall | `showGridX` | supported | Connector hairlines are separate (.waterfall-connector) and stay; showConnectors: false removes those. |
686
+ | BoxPlot.createBasic | `tooltipValueFormat` | supported | Formatter receives each RAW five-number value (applied per tooltip row). |
687
+ | Calendar.createHeatmap | `tooltipValueFormat` | supported | Formatter receives the RAW aggregated day/period value. |
688
+ | Donut.createBasic | `tooltipValueFormat` | supported | Formatter receives the RAW slice value, not the datum. |
689
+ | Dot.createBasic | `niceX` | unsupported | The rounding itself is documented as the default in the API.md Dot section — only the inability to disable/control it via niceX is the gap. |
690
+ | Dot.createBasic | `showYAxis` | supported | The rowLabel/valueLabel header row and divider are table-style header chrome, not axis elements — they stay. |
691
+ | Dot.createComet | `niceX` | unsupported | The rounding is documented as the default in the API.md Dot section — the gap is that niceX cannot disable/control it. |
692
+ | Dot.createComet | `showYAxis` | supported | The rowLabel/valueLabel header row and divider are table-style header chrome, not axis elements — they stay. |
693
+ | Dot.createConfidence | `niceX` | unsupported | The rounding is documented as the default in the API.md Dot section — the gap is that niceX cannot disable/control it. |
694
+ | Dot.createConfidence | `showYAxis` | supported | The rowLabel/valueLabel header row and divider are table-style header chrome, not axis elements — they stay. |
695
+ | Dot.createConfidence | `showGridX` | supported | The dashed vertical control-reference line is a data annotation, not a gridline — it stays. |
696
+ | Dot.createDumbbell | `niceX` | unsupported | The rounding is documented as the default in the API.md Dot section — the gap is that niceX cannot disable/control it. |
697
+ | Dot.createDumbbell | `showYAxis` | supported | The rowLabel/valueLabel header row and divider are table-style header chrome, not axis elements — they stay. |
698
+ | Dot.createGradient | `niceX` | unsupported | The rounding is documented as the default in the API.md Dot section — the gap is that niceX cannot disable/control it. |
699
+ | Dot.createGradient | `showYAxis` | supported | The rowLabel/valueLabel header row and divider are table-style header chrome, not axis elements — they stay. |
700
+ | Dot.createPercentile | `xFormat` | supported | Axis/label split: xFormat wins for the AXIS ticks only; valueFormat stays the axis default and keeps formatting the drawn value labels and the tooltip fallback. |
701
+ | Dot.createPercentile | `niceX` | unsupported | The padding is documented as the default in the API.md Dot section — the gap is that niceX cannot disable/control it. |
702
+ | Dot.createPercentile | `showYAxis` | supported | The rowLabel/valueLabel header row and divider are table-style header chrome, not axis elements — they stay. |
703
+ | Dot.createUnitHistogram | `tooltipValueFormat` | supported | The formatter receives the bin COUNT; the unitLabel suffix is appended either way. |
704
+ | Histogram.createBasic | `xDomain` | supported | Also pins the binning domain, so bins outside it are cut rather than squeezed. |
705
+ | Histogram.createBasic | `yFormat` | supported | Default depends on mode: counts use ',' grouping; percent/density/cumulative use a % formatter. |
706
+ | Histogram.createBasic | `tooltipValueFormat` | supported | Formatter receives the RAW bin value (count or share), not the datum. |
707
+ | Histogram.createBasic | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
708
+ | Histogram.createOverlay | `xDomain` | supported | Also pins the shared binning domain across every series. |
709
+ | Histogram.createOverlay | `yFormat` | supported | Default depends on mode: counts use ',' grouping; percent/density/cumulative use a % formatter. |
710
+ | Histogram.createOverlay | `tooltipValueFormat` | supported | Formatter receives the RAW bin value of the hovered series, not the datum. |
711
+ | Histogram.createOverlay | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
712
+ | Line.createAreaGradient | `tooltipValueFormat` | supported | Formatter receives the DATUM d, not the raw y value (L414). |
713
+ | Line.createAreaGradient | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
714
+ | Line.createBasic | `tooltipValueFormat` | supported | Formatter receives the DATUM d, not the raw y value (L1566). |
715
+ | Line.createBasic | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType (L516-523). |
716
+ | Line.createBumpChart | `xFormat` | supported | The formatter receives the raw period STRINGS (point-scale domain values), not numbers/dates. |
717
+ | Line.createBumpChart | `annotations` | supported | x is a point scale — annotation x values must be exact period strings; y values are ranks. |
718
+ | Line.createCombined | `tooltipValueFormat` | supported | Applies to the raw ("Daily") row only and receives the DATUM d (L1919); the moving-average row is hardcoded .toFixed(0) (L1920). |
719
+ | Line.createCombined | `nullGaps` | supported | Raw line only. The moving-average overlay (L1859-1861) has no .defined(), but d3.mean skips invalid values so it only breaks when an entire window is null. |
720
+ | Line.createCombined | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
721
+ | Line.createCumulativeVsMoving | `tooltipValueFormat` | supported | Formatter receives the RAW NUMBER (applied to cumulative, moving, and the diff note separately) — not the datum. |
722
+ | Line.createCumulativeVsMoving | `nullGaps` | supported | Each line breaks on its own null/NaN; the hot/cold shaded area (and its clip paths) breaks where EITHER series is missing. |
723
+ | Line.createCumulativeVsMoving | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
724
+ | Line.createDynamicBand | `tooltipValueFormat` | supported | Formatter receives the RAW NUMBER (applied to actual, forecast, lower, upper separately) — not the datum. |
725
+ | Line.createDynamicBand | `nullGaps` | supported | The documented null-padded shape renders cleanly: the forecast line and band break where forecast (or a bound) is null/NaN; the actual line breaks on its own nulls. |
726
+ | Line.createDynamicBand | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
727
+ | Line.createForecastBand | `tooltipValueFormat` | supported | Formatter receives the RAW NUMBER (applied to actual, lower, upper separately) — not the datum. |
728
+ | Line.createForecastBand | `nullGaps` | supported | The actual line breaks on its own null/NaN; the confidence band breaks where either bound is null/NaN. |
729
+ | Line.createForecastBand | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
730
+ | Line.createGrowthRate | `yDomain` | supported | Default is symmetric around zero and never .nice()d (nicing could break symmetry). |
731
+ | Line.createGrowthRate | `tooltipValueFormat` | supported | Formatter receives the DATUM d, not the raw value (L2472); default renders "+X.X%". |
732
+ | Line.createGrowthRate | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
733
+ | Line.createMulti | `showTooltip` | supported | Shared hover-line tooltip works regardless of showPoints; per-point dots only enlarge on hover, they carry no tooltip of their own. |
734
+ | Line.createMulti | `tooltipValueFormat` | supported | Formatter receives the raw y VALUE (L484-486), unlike the single-line builders which pass the datum. |
735
+ | Line.createMulti | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
736
+ | Line.createPulseAnomalies | `tooltipValueFormat` | supported | Formatter receives the RAW NUMBER (applied to actual, lower, upper separately) — not the datum. |
737
+ | Line.createPulseAnomalies | `animate` | supported | Gates the CONTINUOUS pulse rings (base.css owns the keyframes; prefers-reduced-motion also stops them). No entrance animation — animate: false renders static rings. |
738
+ | Line.createPulseAnomalies | `nullGaps` | supported | The actual line breaks on its own null/NaN; the confidence band breaks where either bound is null/NaN. |
739
+ | Line.createPulseAnomalies | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
740
+ | Line.createSmoothed | `tooltipValueFormat` | supported | Formatter receives the DATUM d, not the raw y value (L414). |
741
+ | Line.createSmoothed | `nullGaps` | supported | curveBasis interpolates across each defined segment; gaps still split the path. |
742
+ | Line.createSmoothed | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
743
+ | Line.createTextures | `yDomain` | supported | Reads opts.yDomain only (not computeYDomain). yMin/yMax work only when BOTH are passed — the wrapper synthesizes yDomain from the pair (L11687); a single yMin or yMax alone is ignored. |
744
+ | Line.createTextures | `showTooltip` | supported | Hover looks up the SAME index in every series (L2198) — series need aligned point counts. |
745
+ | Line.createTextures | `tooltipValueFormat` | supported | Formatter receives the DATUM d, not the raw y value (L2206). |
746
+ | Line.createTextures | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
747
+ | Line.createTextures | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
748
+ | Line.createYearly | `tooltipValueFormat` | supported | Formatter receives the DATUM d, not the raw y value (L414). |
749
+ | Line.createYearly | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
750
+ | Line.createYoY | `showTooltip` | supported | Shared addMultiHoverTooltip overlay — per-series nearest-x bisect, so series with unequal point counts are safe. |
751
+ | Line.createYoY | `tooltipValueFormat` | supported | Formatter receives the raw y VALUE (cross-builder convention). |
752
+ | Line.createYoY | `logX` | supported | Only when x values are numeric — Date/ISO-string detection wins over xScaleType. |
753
+ | Sankey.createBasic | `tooltipValueFormat` | supported | Formatter receives the RAW link or node value, not the datum. |
754
+ | Sankey.createBasic | `animate` | supported | Load flow-sweep: roots fade in, links draw column by column (ribbons dash-draw, tapers clip-reveal), each node/label reveals when its last incoming ribbon completes, and the flow pauses at every node before flowing on. |
755
+ | Scatter.createAnimated | `annotations` | supported | Annotations stay anchored to the scales while the random walk moves dots away from their data positions. |
756
+ | Scatter.createAnimated | `animate` | supported | animate:false renders static dots (no interval). The wrapper injects animate:false on resize so the walk does not restart mid-resize, and stopResultAnimation/destroy call stopAnimation() to clear the interval (L11716-11720). Caveat: createBasic's entrance radius transition still replays regardless (see createBasic animate defect). |
757
+ | Scatter.createAnimated | `nullGaps` | na | Point cloud; trails are synthetic animation artifacts, not data paths. |
758
+ | Scatter.createBasic | `colorMap` | supported | Categories missing from the map fall back to the ordinal `colors` palette. |
759
+ | Scatter.createBasic | `tooltipValueFormat` | unsupported | CLAUDE.md claims tooltipValueFormat universally — tension with the API.md scatter carve-out. (The dead `valueFormat` combined formatter was removed 2026-08-22 — tooltip rows use xFormat/yFormat.) |
760
+ | Scatter.createBasic | `annotations` | supported | When the entrance animation runs, point/callout annotations fade in only after their anchor dot's entrance transition lands (matched by data-space x/y via the internal _entranceDelayFor hook read by drawAnnotations; unmatched points wait for the full entrance). Lines/bands draw immediately. |
761
+ | Scatter.createBasic | `nullGaps` | na | Point cloud — no connecting path geometry. |
762
+ | Scatter.createBasic | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
763
+ | Scatter.createBeeswarm | `yDomain` | na | Y is a categorical band scale (rows); no numeric domain to pin. |
764
+ | Scatter.createBeeswarm | `yFormat` | na | Categorical band axis renders raw category names (d3.axisLeft(yBand), L7739). |
765
+ | Scatter.createBeeswarm | `annotations` | supported | y is the category band scale (yBand alias) — yLine/yBand values must be category names; a yLine sits at the band top edge, not its center. |
766
+ | Scatter.createBeeswarm | `nullGaps` | na | Point cloud — no connecting path geometry. |
767
+ | Scatter.createBeeswarmHorizontal | `yDomain` | na | No y axis — vertical position is the dodge offset around the center line. |
768
+ | Scatter.createBeeswarmHorizontal | `yLabel` | na | No y axis to title. |
769
+ | Scatter.createBeeswarmHorizontal | `color` | supported | colorAccessor wins over color/colors (L8089-8091); in logo mode color has no effect (marks are images). |
770
+ | Scatter.createBeeswarmHorizontal | `annotations` | supported | Use xLine/xBand on the value axis. There is no y axis — y is a constant row-center callable, so yLine/yBand all land on the center line. |
771
+ | Scatter.createBeeswarmHorizontal | `nullGaps` | na | Point cloud — no connecting path geometry. |
772
+ | Scatter.createBeeswarmHorizontal | `showGridX` | supported | The pre-existing builder option showGrid: false skips drawing the grid entirely; the central showGridX removal is then a harmless no-op. |
773
+ | Scatter.createBeeswarmLogos | `xDomain` | na | No x axis — horizontal position is the dodge offset around the center line. |
774
+ | Scatter.createBeeswarmLogos | `xLabel` | na | No x axis to title. |
775
+ | Scatter.createBeeswarmLogos | `color` | na | Marks are images — no color encoding at all in this builder (no colorScale). |
776
+ | Scatter.createBeeswarmLogos | `annotations` | supported | Use yLine/yBand on the value axis. There is no x axis — x is a constant column-center callable, so xLine/xBand all land on the center line. |
777
+ | Scatter.createBeeswarmLogos | `nullGaps` | na | Point cloud (images) — no connecting path geometry. |
778
+ | Scatter.createBeeswarmLogos | `niceX` | na | No x axis. |
779
+ | Scatter.createBeeswarmLogos | `showGridY` | supported | The pre-existing builder option showGrid: false skips drawing the grid entirely; the central showGridY removal is then a harmless no-op. |
780
+ | Scatter.createBeeswarmVertical | `xDomain` | na | X is a categorical band scale (columns) or the single-column center + dodge offset; no numeric x domain. |
781
+ | Scatter.createBeeswarmVertical | `xFormat` | na | Categorical band axis (raw category names, L7871) or no x axis at all in singleColumn mode. |
782
+ | Scatter.createBeeswarmVertical | `color` | supported | colorAccessor wins over color/colors when provided (L7918-7920). |
783
+ | Scatter.createBeeswarmVertical | `annotations` | supported | yLine/yBand on the numeric value axis are the useful ones. x is the category band scale (xLine values must be category names; line at the band left edge) — or a constant column-center callable in singleColumn mode. |
784
+ | Scatter.createBeeswarmVertical | `nullGaps` | na | Point cloud — no connecting path geometry. |
785
+ | Scatter.createBeeswarmVertical | `niceX` | na | Band/categorical x (or none in singleColumn mode). |
786
+ | Scatter.createBeeswarmVertical | `showXAxis` | na | In category mode the band x axis IS tagged .axis-x (L8240) and the central toggle removes it. |
787
+ | Scatter.createBeeswarmVertical | `showGridY` | supported | The pre-existing builder option showGrid: false skips drawing the grid entirely; the central showGridY removal is then a harmless no-op. |
788
+ | Scatter.createComet | `xDomain` | supported | Wave 3 of docs/stress-test.md found this silently ignored; the fix is present — override wins over the padded extent. |
789
+ | Scatter.createComet | `nullGaps` | na | Each comet is a single tail-to-head segment (two fixed endpoints) — no multi-point path for a gap to break. |
790
+ | Scatter.createContour | `tooltipContent` | supported | The datum passed to tooltipContent is the cursor position {x, y} (scale-inverted values, L8834-8836), not a data record. |
791
+ | Scatter.createDiagonal | `xDomain` | supported | reverseX interplay: an explicit xDomain array is used exactly AS GIVEN — reverseX does not re-flip it, the caller controls the order (and passing both xMin AND xMax is normalized into an xDomain by the wrapper, so it behaves the same). A LONE xMin/xMax pins that value end of the padded extent BEFORE the reverseX flip. |
792
+ | Scatter.createDiagonal | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
793
+ | Scatter.createHeatmap | `xDomain` | supported | Density mode only; defaults to the data extent (lone xMin/xMax pin an end). Categorical mode builds a band scale from the data values; the override is meaningless there. |
794
+ | Scatter.createHeatmap | `yDomain` | supported | Same as xDomain: density mode only, defaults to the data extent; categorical mode is a band scale. |
795
+ | Scatter.createHeatmap | `tooltipValueFormat` | supported | Categorical mode only — the density-mode tooltip hardcodes "{count} points" (L8464-8465) and ignores the formatter. |
796
+ | Scatter.createHeatmap | `annotations` | supported | In categorical mode x/y are band scales: xLine/yLine values must be exact domain members (non-members are skipped as non-finite). |
797
+ | Scatter.createHexbin | `tooltipValueFormat` | supported | The formatter receives the hovered hex's point COUNT; "{n} points" stays the default. |
798
+ | Scatter.createKDE | `showTooltip` | supported | Tooltip only exists when showDots !== false (the whole dot layer including hover targets is skipped otherwise, L9970). |
799
+ | Scatter.createLogos | `color` | na | Marks are images — no color encoding at all in this builder. |
800
+ | Scatter.createLogos | `annotations` | supported | When the entrance fade runs, point/callout annotations fade in only after their anchor logo's entrance lands (matched by data-space x/y via the internal _entranceDelayFor hook read by drawAnnotations; unmatched points wait for the full entrance). Lines/bands draw immediately. |
801
+ | Scatter.createLogos | `nullGaps` | na | Point cloud (images) — no connecting path geometry. |
802
+ | Scatter.createQuadrant | `linkGroup` | supported | Crosshair guide + shared x-domain only — no linkPoints probe yet, so linked charts show the guide line without dots/labels. |
803
+ | Scatter.createQuadrant | `showGridX` | supported | The pre-existing builder option showGrid: false skips drawing BOTH grids; the central showGridX/showGridY removal is then a harmless no-op. With showGrid left on, each central toggle removes only its own grid. |
804
+ | Scatter.createQuadrant | `showGridY` | supported | Same showGrid interplay as showGridX. |
805
+ | Slope.createAnimated | `animate` | supported | Animates by default on this variant; opt out with animate:false. The wrapper-injected animate:false on resize re-renders wins over the default, so entrance animation runs on fresh load only, not on every resize. |
806
+ | Slope.createBands | `yDomain` | supported | Default scale is the bands [0, 100]; yDomain replaces it outright and a lone yMin/yMax pins one end of that default. |
807
+ | Table.createBasic | `showTooltip` | na | No tooltip system in D3Table — the file-header feature list (d3-table.js L10 "Tooltips") is stale; no tooltip code or config read exists. |
808
+ | Table.createBasic | `annotations` | na | No svg/x/y returned; wrapper drawAnnotations requires cartesian scales. |
809
+ | Table.createBasic | `onRender` | na | Wrapper-level hook; Table builders are not responsive-wrapped. |
810
+ | Table.createCombined | `showTooltip` | na | No tooltip system in D3Table — the file-header feature list (d3-table.js L10 "Tooltips") is stale; no tooltip code or config read exists. |
811
+ | Table.createCombined | `annotations` | na | No svg/x/y returned; wrapper drawAnnotations requires cartesian scales. |
812
+ | Table.createCombined | `onRender` | na | Wrapper-level hook; Table builders are not responsive-wrapped. |
813
+ | Table.createSortable | `showTooltip` | na | No tooltip system in D3Table — the file-header feature list (d3-table.js L10 "Tooltips") is stale; no tooltip code or config read exists. |
814
+ | Table.createSortable | `annotations` | na | No svg/x/y returned; wrapper drawAnnotations requires cartesian scales. |
815
+ | Table.createSortable | `onRender` | na | Wrapper-level hook; Table builders are not responsive-wrapped. |
816
+ | Table.createWithBars | `showTooltip` | na | No tooltip system in D3Table — the file-header feature list (d3-table.js L10 "Tooltips") is stale; no tooltip code or config read exists. |
817
+ | Table.createWithBars | `annotations` | na | No svg/x/y returned; wrapper drawAnnotations requires cartesian scales. |
818
+ | Table.createWithBars | `onRender` | na | Wrapper-level hook; Table builders are not responsive-wrapped. |
819
+ | Table.createWithHeatmap | `showTooltip` | na | No tooltip system in D3Table — the file-header feature list (d3-table.js L10 "Tooltips") is stale; no tooltip code or config read exists. |
820
+ | Table.createWithHeatmap | `annotations` | na | No svg/x/y returned; wrapper drawAnnotations requires cartesian scales. |
821
+ | Table.createWithHeatmap | `onRender` | na | Wrapper-level hook; Table builders are not responsive-wrapped. |
822
+
823
+ ## Universal option definitions
824
+
825
+ | Key | "Supported" means |
826
+ |---|---|
827
+ | `xDomain` | xDomain / xMin / xMax pin the x scale domain (wrapper normalizes spellings; builder must apply) |
828
+ | `yDomain` | yDomain / yMin / yMax pin the y scale domain |
829
+ | `xFormat` | xFormat overrides x axis tick formatting |
830
+ | `yFormat` | yFormat overrides y axis tick formatting |
831
+ | `xLabel` | xLabel renders an x axis title |
832
+ | `yLabel` | yLabel renders a y axis title |
833
+ | `color` | color (singular) overrides the primary color / seeds the categorical range |
834
+ | `colors` | colors (plural) overrides the multi-series palette |
835
+ | `colorMap` | colorMap maps category values to explicit colors |
836
+ | `showTooltip` | showTooltip: false disables the built-in tooltip |
837
+ | `tooltipContent` | tooltipContent(d) replaces the tooltip HTML |
838
+ | `tooltipValueFormat` | tooltipValueFormat (alias tooltipFormat) formats tooltip values |
839
+ | `annotations` | annotations array is drawn post-render (requires returning svg + x + y scales) |
840
+ | `extraLayers` | extraLayers: [{type: 'points'|'line'|'bars', data?, x, y, ...}] draws extra mark series with the chart's live scales post-render, clipped to the plot, re-drawn on resize (requires returning svg + x + y scales) |
841
+ | `onRender` | onRender(chart) fires after every render (wrapper-level; all wrapped builders) |
842
+ | `title` | title renders a shell heading above the chart (wrapper-level; all wrapped builders) |
843
+ | `subtitle` | subtitle renders shell secondary text under the title (wrapper-level) |
844
+ | `footer` | footer renders a shell footer strip below the chart — string or {left, right} (wrapper-level) |
845
+ | `story` | story renders a narrative summary module below the chart, above the footer — html string (shorthand for variant 'panel') or { html, variant: 'panel'|'bubble'|'band', label?, icon?, accent? } (wrapper-level) |
846
+ | `legend` | legend renders a createLegend strip below the chart — {items, colors} or true to derive from keys/labels (wrapper-level) |
847
+ | `featured` | featured: true switches shell title/subtitle from the 15/11 card tier to the 20/14 featured tier (wrapper-level) |
848
+ | `state` | state: 'loading' | 'empty' | 'error' renders a built-in state (family-aware loading skeleton, quiet empty/error messages) instead of the chart; empty data auto-renders 'empty' (wrapper-level) |
849
+ | `emptyMessage` | emptyMessage overrides the empty-state primary text (wrapper-level) |
850
+ | `errorMessage` | errorMessage overrides the error-state primary text (wrapper-level) |
851
+ | `animate` | animate (alias animated) toggles entrance animation |
852
+ | `nullGaps` | null/NaN y values break paths cleanly via .defined() instead of drawing to zero |
853
+ | `logX` | xScaleType: 'log' switches the x scale to log |
854
+ | `logY` | yScaleType: 'log' switches the y scale to log |
855
+ | `niceX` | niceX: true rounds the x domain out to the next tick interval (default: exact data extent) |
856
+ | `linkGroup` | linkGroup: 'name' (or { name, labels?, sharedX? }) enrolls the chart in a linked-hover group: shared snapped crosshair across members (dots + value labels where the builder provides a linkPoints probe) and a shared union x-domain (sharedX: false or an explicit xDomain opts out) |
857
+ | `brush` | brush: true | { mode: 'highlight'|'zoom', onBrush } puts a d3.brushX range selection on the plot; the selection survives re-renders and broadcasts through the chart's linkGroup (highlight = veil outside the range on members; zoom = members pin their x-domain to the range); onBrush(range|null, chart) fires live while the user scrubs and again on gesture end; facade setBrush(range|null) drives it programmatically |
858
+ | `showXAxis` | showXAxis: false removes the x-axis group (.axis-x) on every render (margins unchanged) |
859
+ | `showYAxis` | showYAxis: false removes the y-axis group (.axis-y) |
860
+ | `showGridX` | showGridX: false removes vertical gridlines (.grid-x) |
861
+ | `showGridY` | showGridY: false removes horizontal gridlines (.grid-y, legacy .grid) |
862
+ | `showAxisLabels` | showAxisLabels: false removes tick-label text inside axis groups (tick/domain lines and xLabel/yLabel titles stay) |
863
+ | `xTickValues` | xTickValues: [...] pins explicit tick values on a continuous x axis |
864
+ | `yTickValues` | yTickValues: [...] pins explicit tick values on a continuous y axis |